phatch-0.2.7/AUTHORS0000644000000000000000000000426311346363116014006 0ustar rootroot00000000000000Phatch is the result of work by (in no particular order): Code: Stani - spe.stani.be@gmail.com Nadia Alramli - blog@nadiana.com Documentation: Stani - spe.stani.be@gmail.com http://www.gbiloba.org - Frédéric Mantegazza - frederic.mantegazza@gbiloba.org Graphics: http://www.admiror-ns.co.yu - Igor Kekeljevic - admiror@nscable.net http://nuovext.pwsp.net - NuoveXt 1.6 - Alexandre Moore http://www.openclipart.org - Open Clip Art Library Stani - spe.stani.be@gmail.com Libraries: http://www.python.org - Python 2.5.2 - Python license - Guido Van Rossum http://wxglade.sourceforge.net/ - wxGlade - Alberto Griggio pubsub.py - wxWidgets license - Oliver Schoenborn http://wiki.wxpython.org/TextCtrlAutoComplete - TextCtrlAutoComplete.py - wxWidgets license - Edward Flick (CDF Inc, http://www.cdf-imaging.com) http://tilloy.net/dev/pyexiv2/ - PyExiv2 - GPL license - Olivier Somon http://www.gnome.org/projects/nautilus/ - python-nautilus - GPL license http://www.pythonware.com/products/pil/ - Python Image Library 1.1.6 - PIL license - Fredrik Lundh http://www.wxpython.org - wxPython 2.8.7.1 - wxWidgets license - Robin Dunn Sponsors: http://www.zindep.com - Webhost (python, zope, plone) - gbourge@zindep.com Translation: Stani - spe.stani.be@gmail.com John Lejeune aeglos Aktiwers Alexander Taubenkorb Alexandre Prokoudine alex Andras Bibok Andrea (pikkio) André Gondim Andrey Skuryatin Archie Arielle B Cruz Aristotelis Grammatikakis Arnau Llovet Vidal Aktiwers Cedric Graebin Clovis Gauzy Daniel Nylander Daniel Voicu Diska DPini drag0nl0rd Dread Knight emil.s Halgeir Felipe frinux Galvin Gérard Duteil Jad Johannes Majobe kasade Kulcsár, Kázmér Luca Livraghi madcore Marcos Mario Ferraro Martin Lettner matrixik Maudy Pedrao medeshago Michael Christoph Jan Godawski Michael Katz Mijia Miroslav Koucký Mortimer Motin http://www.goermezer.de - Mustafa Görmezer - mustafa@goermezer.de Nicola Piovesan Nicolae Istratii pasirt Pavel Korotvička Petr Pulc Pierre Slamich Piotr Ożarowski pveith qiuty quina rainofchaos Rodrigo Garcia Gonzalez Roman Shiryaev Salandro SebX86 Sergiy Babakin skarevoluti Stephan Klein Swarms therapiekind Todor Eemreorov Tosszyx wcoqui Wiesiek Will Scott zelezni Zirro phatch-0.2.7/COPYING0000644000000000000000000010451411346363116013771 0ustar rootroot00000000000000 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 . phatch-0.2.7/INSTALL0000644000000000000000000000014311346363116013760 0ustar rootroot00000000000000Installation instructions are on the website: http://photobatch.stani.be > documentation > install phatch-0.2.7/MANIFEST.in0000644000000000000000000000024311346363116014466 0ustar rootroot00000000000000include AUTHORS COPYING README linux/phatch.desktop recursive-include phatch *.wxg recursive-include locale */LC_MESSAGES/phatch.mo recursive-include images *.png phatch-0.2.7/README0000644000000000000000000000215611346363116013615 0ustar rootroot00000000000000Phatch = PHoto bATCH Processor http://photobatch.stani.be Batch your photo's with one mouse click. Typical examples are resizing, rotating, applying shadows, watermarks, rounded corners, EXIF renaming, ... Phatch was developed with the SPE editor (http://pythonide.stani.be) on Ubuntu (GNU/Linux), but should run fine as well on Windows and Mac Os X. Please read first carefully the installation instructions for your platform on the documentation website, which you can find at: http://photobatch.stani.be > documentation > install If you are a python developer, you can write easily your own plugins with PIL (Python Image Library). Please send your plugins to spe.stani.be@gmail.com You probably first want to read the developers documentation: http://photobatch.stani.be > documentation > developers All credits are in the AUTHORS file or in the Help> About dialog box. Phatch is licensed under the GPL v.3, of which you can find the details in the COPYING file. Phatch has no limitations, no time-outs, no nags, no adware, no banner ads and no spyware. It is 100% free and open source. (c) 2007-2008 www.stani.be phatch-0.2.7/bin/0000755000000000000000000000000011346363116013501 5ustar rootroot00000000000000phatch-0.2.7/bin/phatch0000755000000000000000000000047611346363116014705 0ustar rootroot00000000000000#!/usr/bin/env python """Launch script from the bin folder.""" import sys if sys.version_info[0] != 2: sys.exit('Sorry, Phatch is only compatible with Python 2.x!\n') import phatch from core import config config_paths = config.init_config_paths() from app import main main(config_paths, app_file = __file__) phatch-0.2.7/copyright0000644000000000000000000003720311346363116014671 0ustar rootroot00000000000000This package was debianized by Emilio Pozuelo Monfort on Wed, 05 Dec 2007 19:42:32 +0100. It was downloaded from http://photobatch.stani.be Upstream Authors: Stani , Copyright: (c) 2007-2008 Stani License: This package 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 package 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-3'. The Debian packaging is Copyright (C) 2007-2009 Emilio Pozuelo Monfort and is licensed under the GPL, see above. Some Files in phatch/actions are contributed: - color_to_alpha.py, crop.py, highlight.py, sketch.py, contour.py: Copyright (c) 2009 Nadia Alramli The Files in phatch/other/pyWx: - pubsub.py is Copyright (c) 2004 Oliver Schoenborn - img2py.py, img2img.py is Copyright (c) 2002 Total Control Software - ToasterBox.py is Copyright (c) 2005-2007 Andrea Gavana - TextCtrlAutoComplete.py is Copyright (c) 2006 Edward Flick (CDF Inc, http://www.cdf-imaging.com) and are licensed under the wxWidgets/wxWindows license: http://www.wxwidgets.org/about/newlicen.htm http://www.opensource.org/licenses/wxwindows.php WXWINDOWS LIBRARY LICENCE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public Licence for more details. You should have received a copy of the GNU Library General Public Licence along with this software, usually in a file named COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. EXCEPTION NOTICE 1. As a special exception, the copyright holders of this library give permission for additional uses of the text contained in this release of the library as licenced under the wxWindows Library Licence, applying either version 3 of the Licence, or (at your option) any later version of the Licence as published by the copyright holders of version 3 of the Licence document. 2. The exception is that you may use, copy, link, modify and distribute under the user's own terms, binary object code versions of works based on the Library. 3. If you copy code from files distributed under the terms of the GNU General Public Licence or the GNU Library General Public Licence into a copy of this library, as this licence permits, the exception does not apply to the code that you add in this way. To avoid misleading anyone as to the status of such modified files, you must delete this exception notice from such code and/or adjust the licensing conditions notice accordingly. 4. If you write modifications of your own for this library, it is your choice whether to permit this exception to apply to your modifications. If you do not wish that, you must delete the exception notice from such code and/or adjust the licensing conditions notice accordingly. The Files JpegImagePlugin.py and TiffImagePlugin.py in phatch/other are patched versions of source files of the Python Imaging Library (PIL) and are licensed under its license: http://www.pythonware.com/products/pil/license.htm Copyright (c) 1997-2006 by Secret Labs AB Copyright (c) 1995-2006 by Fredrik Lundh By obtaining, using, and/or copying this software and/or its associated documentation, you agree that you have read, understood, and will comply with the following terms and conditions: Permission to use, copy, modify, and distribute this software and its associated documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies, and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Secret Labs AB or the author not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. The file phatch/other/EXIF.py is copyrighted and licensed as: Copyright (c) 2002-2007 Gene Cash All rights reserved Copyright (c) 2007-2008 Ianaré Sévi All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the authors nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The file phatch/other/findsystem.py is a source file of TTFQuery-1.0.1 and is licensed under its license: http://ttfquery.sourceforge.net/ THIS SOFTWARE IS NOT FAULT TOLERANT AND SHOULD NOT BE USED IN ANY SITUATION ENDANGERING HUMAN LIFE OR PROPERTY. TTFQuery License Copyright (c) 2003, Michael C. Fletcher and Contributors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. The name of Michael C. Fletcher, or the name of any Contributor, may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The file phatch/other/surd.py is copyrighted as: Copyright (c) 1995 Nick Seidenman, nick@osg.saic.com It is freely available from: http://www.python.org/ftp/python/contrib-09-Dec-1999/DataStructures/ The file phatch/other/relativedelta.py is a source file of dateutil and is licensed under its license: Copyright (c) 2003-2007 Gustavo Niemeyer This module offers extensions to the standard python 2.3+ datetime module. PSF License The file phatch/other/tamogen.py is Copyright (C) 2008-2009 Jack Whitsitt, Juho Vepsäläinen and is licensed under the GPL, see above. Most Icons embedded in the Files in phatch/actions are from the Open Clip Art Library and their copyright information is embedded in the svg image files in the image/source/openclipart folder of the original phatch source tarball. The icons belong to the Public Domain: Copyright-Only Dedication (based on United States law) or Public Domain Certification The person or persons who have associated work with this document (the "Dedicator" or "Certifier") hereby either (a) certifies that, to the best of his knowledge, the work of authorship identified is in the public domain of the country from which the work is published, or (b) hereby dedicates whatever copyright the dedicators holds in the work of authorship identified below (the "Work") to the public domain. A certifier, moreover, dedicates any copyright interest he may have in the associated work, and for these purposes, is described as a "dedicator" below. A certifier has taken reasonable steps to verify the copyright status of this work. Certifier recognizes that his good faith efforts may not shield him from liability if in fact the work certified is not in the public domain. Dedicator makes this dedication for the benefit of the public at large and to the detriment of the Dedicator's heirs and successors. Dedicator intends this dedication to be an overt act of relinquishment in perpetuity of all present and future rights under copyright law, whether vested or contingent, in the Work. Dedicator understands that such relinquishment of all rights includes the relinquishment of all rights to enforce (by lawsuit or otherwise) those copyrights in the Work. Dedicator recognizes that, once placed in the public domain, the Work may be freely reproduced, distributed, transmitted, used, modified, built upon, or otherwise exploited by anyone for any purpose, commercial or non-commercial, and in any way, including by methods that have not yet been invented or conceived. http://openclipart.org The Phatch Logo and Icon, and some Icons embedded in the Files in phatch/actions are Copyright (c)2007-2008 Igor Kekeljevic and their copyright information is embedded in the svg images or blender files in the image/source/actions folder of the original phatch source tarball. These icons are released under the GPL, see above. The Icons embedded in phatch/pyWx/nuovext.py are Copyright (c) 2005 Alexandre Moore and are licensed under the GPL, see above. The icons can be obtained from: http://www.gnome-look.org/content/download.php?content=26448&id=1&tan=15504822&PHPSESSID=34ec3de1af33e253ee03357a124bfbeb The copyright information of the files in phatch/images is embedded in the svg images: - Copyright (c) 2009 Nadia Alramli , GPL license - Copyright (c) 2009 Stani , GPL license The Icon embedded in phatch/actions/colour_to_alpha.py is Copyright (c) Everaldo Coelho and is licensed under the LGPL. The icon can be obtained from: http://www.iconlet.com/info/9657_colorscm_128x128 The Icon embedded in phatch/actions/sketch.py is Copyright (c) Jonatan Castro Fernández The icon can be obtained from:http://www.tutorial9.net/resources/free-icon-pack-web-injection/ This Free Icon Pack is for use in your personal and commercial projects, and can be used without attribution. It may not be redistributed. The font fonts/FreeSans.ttf is licensed and copyrighted as: Copyleft 2002, 2003, 2005, 2008 Free Software Foundation The use of this font is granted subject to GNU General Public License The font fonts/Purisa.ttf is licensed and copyrighted as: Copyright (C) 2003, 2004 Free Poonlap Veerathanbutr The use of this font is granted subject to GNU General Public License Files book.blend, can.blend, cd.blend and lcd.blend have been licensed in the following way as described at http://e2-productions.com/repository/: All submissions to the Blender Model Repository can be used for any use. None of the original files have any additional restrictions. The original files are available according to the next listing: book.blend - http://e2-productions.com/repository/modules/PDdownloads/singlefile.php?cid=10&lid=242 can.blend - http://e2-productions.com/repository/modules/PDdownloads/singlefile.php?cid=10&lid=186 cd.blend - http://e2-productions.com/repository/modules/PDdownloads/singlefile.php?cid=10&lid=268 lcd.blend - http://e2-productions.com/repository/modules/PDdownloads/singlefile.php?cid=19&lid=327 box.blend and sphere.blend are Copyright (c) of Juho Vepsäläinen and licensed under GPL, see above. The file tests/pep8.py is Copyright (C) 2006 Johann C. Rocholl and licensed under: pep8.py - Check Python source code formatting, according to PEP 8 Copyright (C) 2006 Johann C. Rocholl Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. phatch/actions/grid.py and phatch/actions/warm_up.py files are (C) 2010 by Pawel T. Jochym phatch-0.2.7/data/0000755000000000000000000000000011346363116013642 5ustar rootroot00000000000000phatch-0.2.7/data/actionlists/0000755000000000000000000000000011346363116016176 5ustar rootroot00000000000000phatch-0.2.7/data/actionlists/badge.phatch0000644000000000000000000000501511346363116020432 0ustar rootroot00000000000000{'actions': [{'fields': {'Align Horizontal': u'50', 'Align Vertical': u'50', 'Bleed': u'0', 'Canvas Height': u' px', 'Canvas Width': u' px', 'Resample Image': 'automatic', 'Resolution': u'', '__enabled__': u'true'}, 'label': 'Fit'}, {'fields': {'Color': u'#e5e5e5', 'Opacity': u'100', '__enabled__': u'true'}, 'label': 'Background'}, {'fields': {'Mask': u'12 Pointed Round', 'Resample Mask': u'antialias', '__enabled__': u'true'}, 'label': 'Mask'}, {'fields': {'Contour Color': '#000000', 'Fill Color': u'#ffffff', 'Include image': u'true', 'Offset': u'2 %', 'Opacity': u'100', 'Size': u'0.4 %', '__enabled__': u'true'}, 'label': 'Contour'}, {'fields': {'Highlight': u'Curved', 'Opacity': u'100', 'Resample Highlight': 'antialias', '__enabled__': u'true'}, 'label': 'Highlight'}, {'fields': {'Background Color': '#FFFFFF', 'Border': '4%', 'Force Background Color': u'true', 'Horizontal Offset': '2%', 'Shadow Blur': u'3', 'Shadow Color': '#444444', 'Vertical Offset': '2%', '__enabled__': u'true'}, 'label': 'Shadow'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': u'true', 'PNG Optimize': u'false', 'Resolution': u'', 'TIFF Compression': u'', '__enabled__': u'true'}, 'label': 'Save'}], 'description': u'Turn any image into a shiny web 2.0 badge.', 'version': '0.2.0'} phatch-0.2.7/data/actionlists/badge.png0000644000000000000000000005232111346363116017751 0ustar rootroot00000000000000PNG  IHDR>a pHYs B(xTIDATxb?(bhbh rFF(?##㿁tbU파 T!šaX$R Lg!GL􏁁۷o\߾}S###;;;nn Ȉ+ 2 ̰/ׯ_~#;;?&&xD{ׯ_{>CǏ_qmZnn,,,L?F@Ԗ1 0kKTx0G'PTI*YG}7|7 @H1Ʋe_Ԝ1XD9zwιR|AH]ChU90{$8Z4!Hn{k- o\?'Ԗ;@]P_x`kQHLN<Bsd `0\I b0ö񬐧W\ⳮzO#8PJU_heNQǵ.X4]ar!^#}a fQteY&e%JM5x 0JPP=t]97OA?EP__/Y,ZpA`OA *2p[{_dYLEQxAn6՞}%WG~dJ@jm :)VιY<Ƙcr7̖=QE{!ƓLLAÖ,$:MA MD}KoHˆaU5->6c|?` #H"ȭ[e:\v#֫hu~`:sZ_Ea3WvKd -,D׶J.}$}gADRU`JH'mQ5Xn^,D&F 6r/ ? NNjngYTT\H  >RPTmUn T. m7m93M3u=e,Uo-I|?'\*^z4uԠ5]-=oukqR3_7xA a|io{Vnh?hAh, }CFv ZZƢ?m{·oIJJxmXן?bb aw ]ab1e+`8t >yb%,"ǕL ?10pA#CP#?hb`fg`׳CLL_`κy2Ǘϟ)ht6&X E @4{X{}>>EӧO?|g..?~*ts cx]Gt_D.DQ(HB```dd[+e6HUdc`;ÿߌdA1?c``bfß/exy=z[߿=E *T $'+O_O222#QhDG? ?dyw??0202^E#8!׌ ?1(*Hsqq>}TÇ?/+ 122E K&̙1 0ߵ$┭`R\x;213aW(1"y/1Ȁږ@>̖͘2Ǩ ңk\,7U]sZ[!ﻅ{eK 5J&t餝1P W'Cd<7xFh@DئMoӦ Nb@%̾[rqz4lk3o 7 Ӻ~e`fwl QX ƐOiFi(LkU]Y/'DH,nYvً9 f~QoBxU͔'avO\ʌ1@ֆ@ɥ F$,4 ?^3 JKHzgsrqrr221026fE # 3 _|&AAܿ988>jPϸܟRB*A!<'F@.h*ZXZMfrrV3ɜ qU ˲I^15rf:HƘSݹv۹2fn@-^ďJ(u/M%K/~Qӗ:f4!ПY[ v%(Hc[}^hU:a:\}Y ^lzc!xo0ƘeDžzER\ P FRJD:8 >o9:t_{R-B>jQm$9nvA_ A $BP.a1,J-9ex.D[wnkzneCS&Ah^&R%J%.!:=Y/ e&@!F471azi8~2A@X10 Z*F^,܍1`BP 6;Yb;>۳',]4{cB)utvD8wwY 2cJsVj "[S)r`?ÀT$6儁5eOu,%%A x\ 8RD2Xm۪Xk}R>o"Y10 $U+K>,|O Pua&$@j5 , Œe%|J e9%yQ m["FϠm:W \m<ڃkd+T2rJq#у$ʍBE*pn":H\zRf#X;6ιIUU9w,j_O 0ORS PҾutpԡ!"uhfrB 9~7dRjV6NQEdiLM@76*1^&Qn<0aq0O8uO=$/q2 4vr_lD-Vn874& 8( }LE&91 iY%uXjWƘZ 0 }i2-WDx,.A,BS^~N]ιF+G{RcAŒɾ (K f _|oI!ϰ*@sa0X;UGa5o-/;??~ZrcV!]q?TG/10 Efb9aB2.qhVe+=ynhf禍'pH`V)&^Å~7pG-,F** P'nnYf-Q@ӱi˺35!o#" 9砪F3;_y; DJ M|\V-l 0^T4-h!mk\WQBֻMk2sۃ3ɓJ16AzRczXI -/:5 +v(>0HWX:K_10 E_H*L, B;.LQT*"n%_/)xIQ"001ʸ0F00 j1oD)4D,bU=;` zXݽh%B&e7Ps" m>c8Ϗ H? edDta3BfDA fuFN1FfV_~Ǐ4 nn8882BGH݉[a_Bj?_a`I,\n.ܸb`@ Dħ)YB[rѢG-dπ2HwD-X8Yy8x$y1)|-?~mQ.._ D"@:/kWINWt&6^a`e`摃6̧,ƇBae*t{Hce*dhF& /  %"4Sgdbg`b+./7/{n#++$!!+ؾ3Y\;0 }IhB:"; 7N܅+q2@Ő%(ah $Ų'? @RUì>_(gY6er?65n',`t89| " ߳g5!0jVF|sMXWx% %  Lk,+)2Mu$J!9_"*x300ϣ".)o*.ßG~>KqY3Ҁ 7Xedb`ddc`S``dlÖc`Gx),h eo~?$0JD#M͈-ᠷ `} \Y1023?}ϣGVû"`ׯ_ ׯ_g G|7fddfgD__ÈTŠ_-h`120001s00q10q2H;1000 (дq_ii/p-)›`S۷o+((y+(309%>܁zea8 y}=rVeD.:Jx)2a-1cFyFfLZ&yOv3tz^čaGZKIJB$R&H-,lsj0@K>l?ztIĈ[۷owڽm9ѷB/]ۍNrϓ=L,\G%hcRKPGװa Tθ100r2׍ ?.2y~>OHh* Y+b 0E iP?l0?G6I|G 32Ppg`v1Yy~}b}#Ï } ^D/Z '&~eHI/2"?zBb+R`@6 )Qdfׯ_޽Я_8p\A Њ6zbҾ£/^|NcLLYO?ef' NOǮkw vB7cEQf'V/ll OKS-ũ!$DU#~!-e~bE.a!ք.,WLiO^$ZzǕ1qΩ: =!i-`- ^sK XQpR01<#i̛^8aλ]kY~GV9IBkG4`L\. Чd B{lbQjw"O[I–G y뻍<0zO Im/3RG =0 Qt0r .bau))YKDJbG{6dQE1˜DNT<*ײkPiJul!6&?CĸE.J%Rq g0[=(!eC&R#w:ޥh3^Z!{U$\ 0.gꢋB>c/AѡRõI*N1C _?Kh4M-o{r䟗h_>rq<(i2J@i ŪfmKPmnN!fO%ǵL`!징a MI .8` $Ik 44BU{0hb"6M4RuJ!.;o_ !&7'ITT -wpC~ );7z{^o rzs;aD=,`@'z_7~cX{D)h3)[p[%&!..## L@=0B[ L* l LZ ̐ȳ|hݱ! l _equ:o/˲)$002 n@jûtAԞ_hIF1s11~ɓ-['BN}>(ˣH%aT,يeD^ p30\ߞS=[00rB`E 30!ߟ L|\ŋ,\\\?^ αw, l5M[%_,bR"Q0@{ L `y}燨` ,"9CJb@f`dg`d|Ͻ}# QQ"""ϸ?`^ BISedd7ܻ}+?PH*@nG@WC'M#W M w"Y~?CD(e^%!@#zbe9R&> <|||JHHzqsBIJJϟ?|C-+ZXb.>~!?twOxV~cdcx''c`b`51 `䄀Pr]& $G҅s/w?&11GRRRw%%%aee: h122eaaaQTRw%UAUz5 #XX|8 ew;JIR'c`]KВYPrn?,cCHj%ß L\Y-?xq>}* ""LJJꎬM11\\\aEDD5;}-RͿ?A7Nb̧,f \ $`@ˁȉN<R 0q22sR %mr~g``c`wc|uk׼t));Wo Y%šWP8o2.cbSo` v- Y884SX[;@HN."=!XPԐ[oh\{%1 7!]>FvA6y/?X8~xYAA᪘cNNY~{7F6~/?~/vvbbb())] s™qrr~('+}nc,Ϥ P-Gh `hX8 JY~' #&?_~\G|! yx|E1 M‹ysOw~Ƞě/`HTT추} |||o * ̿yxxފ~޳4ofd3 w&o>(iu9^.#h"QV0@3dZ&HSX!QĀ0 ?ob 4gcc{1+›x%.!TII{^ӴO??|?$qߞ3' wd R@#(^dJ"2P# 'ß>KaNL\ ̢&!R[yxQf6_2꿘/ 3۷o>~(/.Bg "j_{+W&?l"`yǧ̯) ip1s0J;BGM k&10l1*b$]3WDͿ ?LS0!l&M ANcϡ˿׮^.($AFF桠shU5"ecȿӧNTH+K1D#3#CH+3002020*9 麝U5,|b/4"r1B{󃁉GC7 r&$ayuϳh'b[,΀ |o޼}G<ǵ/"9a` ?b`We`S 8&CP"@ae`fuc!#;?e'%s}~iH=]G pX ia%25?B(I)[&,Y^v5KIU˅ˍncfb`(2@j zݝY1FH __g`U cL\ aFFĊYObd``]=ˎhdeGF\'01~yOUҊ?H@ҹX11}}vu-bF,63@ŠTTN>÷"""ϹÖLN0?0 Rx`yFv>B$U%M18CR[ب;c,tkYpeL;ܬ㞑7NA 11.Obƒp| #r4{pI`Z.5zkito-$oCVׯrSC„Tzآ.C4fH>G%W6>RWvBeӺd'#\Tq߭; D'g$e.cs2(hƎB帜 wxd`"_F}^PH ۝4Mڻ,ˮ!_=0 -ʏ@pfN5$+10 1Tj@IBXzˊ'?/BB%InhǝKk92cTaeY쭂c<1+gafSkhn^Ӟ.)A3J,p!no` HvvC/B:H/[]*[+Fh U(MQeiq4]+@R( X qg,M5 CKU '>3ٝy}n|4~&F(iݹ Gg(ax]0Zb>4dKiʦ($dSA4rx( "O|@Q)E 研qJ'@T gyK11(!Dֶ-㜏V]; 1}IL0+66vAo5+؈U& b'7?üi:{}drG> a1"9nn2@" Q ~ [{Oހqd*a=ZǐU'Ӗ xs  QWu@6uF1fKR*sZ ߿g/}~׉Ttz] N2K XXPK34/N2yy*FN2!f@n mY ]d&Ȗ9ƿ?{u/O1~O " _|a|7h0 @ @}D$zZ` &bzF1+HB# ׶~< @]̟-\TsH{.e+ԍk݊T4u^`̛=oN B\df Yq=E5@4]*HMOs.b-% d: 7%9 '>32%ȫȫ#Oܯ =&A2y~gˀ#+ß}yʀ}]qĦ"i @R[2V6 /^߿߿s{󑕕`:":f>Eȸ=5Gr"e!, ݈ Yu2~ۋd&O2`\:<b ï+9#3001 l< ?HHH@?3(3p5k߿台SaaX󏉉O53(00I\QLL32pd`ug`5Fk,z 쪑 a\b峣ǎ1SDD1lykaˆQ0&??wn202s0)@jp  e"a[-FX<xV30)CH"_7[$h5Ů%]%rc`dfÿɬ 00 h@Vcpx+?E. gϞ7oޓ={2|ODD䱬M99kyxxޣ¶/֞;w;r_i'n|00Yܜ˲k|(? L N!w?A&Z0 Z֤삐`c ?3yy*@^~)(<,a?&v՘|k9yʔɏ9oN11 WUTT)((\y}ad԰w L̜-ExKz7FV>N L)% # $RمgCZ~1,ng`d`s˕HӶ5 L3200022~ ~~&S;A{q5;o͚6 ]~叔-ee'UTTKJJmy8¹"ϟ?_~9yd0c#Ï_O0y 2L|r&^VE:ǹvx[xV00)n7tW _Bv`1q3Nkr b˓~^9#5?򟇇磰SqqRRRwdddnIJJ~¹?Wnn***nݺ5q fBN 1z~y]&-pq2I/#? de`da}o=z<1GR@iY5Síw b"_nf&_gҝϚϢl\\\ş =~&&&HBB⾘Cg888111al G»$//1k._--#+!Qͣ=o/1} >̟3020*hSi/3ob`d1qmY>=G?᳭=ΠV%$$ '<y*,,L@@%//{`D"(? /~~LLLXYYrqqx7?x<%+~\-5!fH30\@q?#3+ϫ3Xe!'18=c@S!F30p0|yvm]x*!!q_UUu'︸>gaa\"*? O^^޷,,,?x˗/e߼y#~ kW.qSBB+9=τH0H6Z G|IlW23x1Хd~c<? ;4Sw4t/_<=/ٿc;]1 @`DX[E[hq'DKbq ,˲ 3VA͇K^A0 /iBDJ !,hEǚq":I877 fʸ%iv>5 U~Elӹk$MV({ZiVC{Zk "Ҩ=gߠU'~~W}Wϟ?gd3d, L _3}wEŠ?>XO5#+ï{bvb rCo*iKM2X7###7+pqׯ?䄞Iv";;7^^$%%*))]%-ҩL buo-v#`i.j '`dB$ L, ??edgdOD}ƇxR(6 _߸?23|FXߧHýN/C}Ď32ۋ>9L,j / _e?~srr!?# ߟ!QvkQ1!F>2t!F,-``S,Qף FFH7˟?8|"7_~V`d```(#3_H+drߗ ϶2Q_ ?/Of ~I``LY32`nBr###Pjt{3@dbf`ggg;߹=xj &غ>d/dC ?ρ^"?Ԏ{<.HFbbd-z`N4AϷ(,`g7߿X~/hTj >T_BcFXi/` [~Y!{ {8Ct ̬ 0_#ȴ Ra`Sd```d&&e/` \L2300230222|? ,i-H+`k`C?.1f&9m" 7b3 jPy!X{Y^xǏ&NVxd3vd7 # "a.UF3c lɦ)F&bMDɟbnqcdá000gog?!' _%20qK#N 'Α , >f`󃁑]?#3;+=x3333;;W?9C0J-4y .: %MWVL:ȇH3 Ai!11poGNp+F1 م؍XM>~xϰ{Ϟ?2ϏfG߾h*bnf6u K"S#Q+RQ!722030B/¸zD,8 0~qu/n޸!!BBB/B!;Z; ATTtW-,Yt~(f`dfϨa׌&;v&-niz.!ty i ^_b_1~T-#### '!]69q+FƧO3lٺٙ3gUXTT􁄄}qq ]@D3Z *Dk~o+H[ km5cp&{ (k\TY)%J;CFGPig%.^E>2v3J){:>MZ;&j#?55}[Jrhebuu*ÿ/ZcWiÿ?4O]ҜUї _eQәt 0v!5/^OEV^ῐ($ + 3 ~?ϟ>鳯>kϟ?222+##sKYYeQQ'_HY j```F[/^ذqc(7v3~yG f`c`fc`cdf`3d.͏on 4n}'D0<A$&UcdٓijĖe]l>K)n荪|7e?|ZjdhP ?{Mʉ py^LJydUcRe9 "?#5=@gV6! zk 2Y؈5.ʏkc+`^2_f2M*Rz^U3mƳKa|߿APaX0s!TqOOJvRvSk&#aUmwnbx,#|8RfQiqZ{S#:"j+zU-$ ݖ؃?|U\3똘dgg77'o?~ѝcrV: YKAF`ba=Z4q '>.b`bY?3J;gVaraɧ/_yl>333E]8jY,,,?}}'""]g􏙙7++OVV_,,,`g<} kiYʊj&?1{1V2]O |>d]dbgd|ӟK/g``}z}+mZu```k:''1b{#pUVN~ǵN8k$ye#sgri͸i׫VvqI2j8n&&V.>D#3t3 h0ھ͓'O999 x BYXX~@FrwCn"2BU?dƃ_f?~>yˎ:w#$&Yx Oaر8Ϸ A Y/_Bߞ B~g`SOb2k-[>w>/wbbb_t"Ɛcݻwoܸ_߯<g@4~;# ~ á߮\ӧD__UQQ9/!!qwo%~e`lnϻ[~~2302010 00 23IX/_mݾ˧dddn;tA@@5c _~p݇'zyI2`;{+HҚUb`WϮ7ÎMko۱o^^WWW?zVBBo|;wӗ/+\]]ywχ{~c`f§$٣;myv o߾ zVMM팜 W|+'Or[~'$$\AAኦ 222xyy Ԝ1 @@ ,M1(<)p(~L?h0/9 "0kjǛ?EQ,IP'ax p4&~O8b~ 9"Jie26ҽa1!D+󲔲&hEQĂ ri*:Ri`B DZn8AJ`A ۸m{igsԚA 07bE yکbitZ 0T֥szyJc6ZR)RF8~1„N]{'Q=$qB9Wq?(Ŋy^YkCc k6MӤιZð>1vOZ\o_ر 0B`̕,ϣ`bKXJ8پ87cY sCDuXUi1Fq fY6'I2y~QJuY')es\0 ח[!"jiԲ,dݶm>cEњ@D}Q9W=ԛ !D kbN DYxm\yލ\'לZJZ3;Uc^Ǎ=ƸψsQU]f&Zk^DngUu7"6"*ι= ?kԝ 0 DB(]B⒎nz?pCn~BPU"ڈhof^lzERcB퍗YDb}`fӀ[k}I7ԛ ۦo5 ~|8@c"3 |mVUquT3+3"!!wz_N8,x  ANBm=<6 `sQYw|IENDB`phatch-0.2.7/data/actionlists/button.phatch0000644000000000000000000000721311346363116020705 0ustar rootroot00000000000000{'actions': [{'fields': {'Canvas Height': u'128 px', 'Canvas Width': u'128 px', 'Constrain Proportions': u'true', 'Resample Image': u'automatic', 'Resolution': u'', 'Scale Down Only': u'yes', '__enabled__': u'true'}, 'label': 'Scale'}, {'fields': {'Color': u'#e5e5e5', 'Opacity': u'100', '__enabled__': u'true'}, 'label': 'Background'}, {'fields': {'Mode': u'RGBA (4x8-bit pixels, RGB with transparency mask)', '__enabled__': u'true'}, 'label': 'Convert Mode'}, {'fields': {'Color': '#000000', 'Font': 'Free Sans', 'Horizontal Justification': 'Middle', 'Horizontal Offset': '50%', 'Orientation': u'Normal', 'Size': u'18 %', 'Position': u'Custom', 'Text': u'Phatch me!', 'Vertical Justification': 'Middle', 'Vertical Offset': '50%', '__enabled__': u'false'}, 'label': 'Text'}, {'fields': {'Highlight': u'Curved Up Contrast', 'Opacity': u'100', 'Resample Highlight': 'antialias', '__enabled__': u'true'}, 'label': 'Highlight'}, {'fields': {'Background Color': u'#ffffff', 'Bottom Left Corner': 'Rounded', 'Bottom Right Corner': 'Rounded', 'Method': 'Rounded', 'Opacity': u'100', 'Radius': u'10 %', 'Same Method for All Corners': u'true', 'Top Left Corner': 'Rounded', 'Top Right Corner': 'Rounded', '__enabled__': u'true'}, 'label': 'Round'}, {'fields': {'Contour Color': '#000000', 'Fill Color': '#FFFFFF', 'Include image': u'yes', 'Offset': u'2 px', 'Opacity': u'100', 'Size': u'1 px', '__enabled__': u'true'}, 'label': 'Contour'}, {'fields': {'Background Color': '#FFFFFF', 'Border': '4%', 'Force Background Color': u'true', 'Horizontal Offset': '2%', 'Shadow Blur': u'3', 'Shadow Color': '#444444', 'Vertical Offset': u'2 %', '__enabled__': u'false'}, 'label': 'Shadow'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': u'true', 'PNG Optimize': u'false', 'Resolution': u'', 'TIFF Compression': u'', '__enabled__': u'true'}, 'label': 'Save'}], 'description': u'Turn any image into a shiny web 2.0 button. You can turn on the shadow action for a 3D effect.', 'version': '0.2.0'} phatch-0.2.7/data/actionlists/button.png0000644000000000000000000005616411346363116020233 0ustar rootroot00000000000000PNG  IHDR>a pHYs  \&IDATx B17YI n#i#X;< 9x+?̀ Zjf{1tys 6>[W)嬵Zks~HIbWb$~~ k׆l޼9IܜܜچQEE|w9O<߿|}}Wиšϟ?,W\\|y]BDDDYe/jjhG01dq$x䰊!EdLj3?1jx2޽cؾm y恛ۚ:::YXXDl1N0E--B%8R8YH!W [D+vϟ?>:MSsu/!i6UUx3P z؃ KٳjY T1Y L]+1y 2jᥕ qa4X3ZgeiHw %?=4%@ o4+Y&dz@.!"/\W10 S7E}?xC6BBR`'آȱw+903RJSq!t}?2dc|$단GVZ(FGy)qFPKpfݍDܰ^Ds CVW ~ %r. {gŝIa& /64t CDJۅ8p.8&fT!Ą l$SKD/Yef#̭ZE/dLD8@РD (x:cb:ZX,6AEBj^$<ƙh n&cfB\~ UgT蔐 ;P7N DN^S)emm$dX; }DJ.aҋeܥpJUqve}@,D͘NK?ZVnH6kt!d= `N:UܨXUh :h? %Ue |{hJO xADd1 E.DzS PCψn"`ݑ__TGA&`,!`_''2 n@ոR/b Ayu Smēݍ4Espp_}=p|0RUUl=0 _(BPK/ ֋<>@/̄Jm'!S~"yD4aa>8U V'\]o)!MtOծJ{g6LWZQQҁ'u^"f 7v@}^ $+^nc&htA0? ?oDyAU^L8X`]wUDdRE%s[K+K*:Ϙ ?j 9}&q"fli9I?!2GB6XCԩ8Ψ*"vA]mGm9 5|v7@CO]A n PGZў7l'le4l;1 D'm%> ThC$jL^lkYyEŋx"X/―'q,Dׯ^*4=t_M q$ \-2Vag̜RA b~ȵ;~>pavo_|=0 Fi$JHOz!.ԥB k'r2oϛ=Q./ UD9@`2λUfK;nc@QJiCVsTX,=1?v{/3),`neOB1e2 }s݂+A ef:_1}AJckFK.`F# [s0a!C".HƏbcԝO ޟ#'maz/ l1 E)Kd zC$uhU)R" e5hE@LHpz߳tE`_!a2R# Cf UrhݨϚ[!dz>OG\l Dhg fш&n‰0 ;;| m!B|Y"9lȩAj@(a[U#(޼y[<՘Txjjky ײRwLSxZl3&nq-1@ዣ ;1 D\ 1zN)#g<2hz&F-Gĥ %Ɛ du_L?m쏬w,?y]N@ƞ7w0%Dr~G35qN1?֥} D/ |0 Ei؃ E FFƺt hީK6kp z贐-\.PqFt0-g*~ݑn/$MT1b Cb|jsce|J{|; ?E*&^dO[!&RQ! `\*.eՓs #S{".vT@3L4ϛ;B\8i/7N˙.c@rg #  IVxL[pS `x 1 D_JѿY/<mYœ9 a&!M$/P{䰪j@,u[(auZ?wGBy\9 ju%>PJsKC7wx?KŻ|50|B+00@OxfA a1qZF&P HbPc/a`ם ]f%ÿOXX8~ )7X/ XuQ "P0>\ X5bPvr=j@*`x4@BBG#[@k8v1P ## 7F"##ßק~]-200s10r0 0@ s 2#1;#"sv?bQO`fxD #v] 09Ě0 Ix8 C bttYjko% z:X+f~Q@)AXxBmR\=$4 88 K_F6~, 1gddiKhlɀi2r` hD3< ě1 EUFΛ3{O%3$F`#FL@ESu2\;oko~|0ް̀TB CxX~30l"## a`ZH3"MHa`dfÿ_EuE ~\qvF&60g`̚cihak H^ہj6%crH%Q;t=ƾ[qߞ#~u}9t_9ƠVE񤪄g^z!IìFSecQwh%һM,#010 E_ݴRXX1pV.Ą+T&h–!rTZܙ_I%<cH0}M$zz(^ODž~E[H=& }A;OzM1(ۙazȣ15zR}0—10 ` i3r303EڅU!E̔+t?#Y _@8L G,bx4! gbf`Fk7B  B#j˭a<AH>W_v0|Y̌U9YԌx00&MZM ed ̊ 3|22i ÖGir+Z\7ǣ2F g`gedff`d@=0 ,q8bݑ M `Ȗx{~]oRͧ*6$T=eFZr&H<.C*v+;gktH^}"w?Ap ezJ"k?[g0}fhP^\91 [ $DAIIK;xS44|PL"Md)qxq-$ԉ\b9M( ='*;$;~d(eqhDݸ?Hts@ܟG:KY(~PXB؝0 Bbp;lM/oDˀ\s@e1!Eh1fulv^#o`ia0 &V$f3~%L`)[}1t>|aTLZ^UPdȨ2uBm(#X^Rvu?b=+E]l-VրDDvR@2{e Oҿa6* &٤U?|K 1 @_QE\+x%x ^p|L"q[h&i>ͧ]IM] $Llu6XKM9Tr^;Z'8۹e}pݷ:SbFAI Py $X[qOo!;Q,HfL2kÅ!IHm0>h7sx݉׹T@j(YLG:T9/tN19D9(еT)HyJh#QQФH O|lΌ<I`so.>?Y] PP153hO; 08_ÑIN<úAn 8-!rKOA1hy|jo0ouAb^\}iod|ݔz&#EP?t;1 D, @5DDM 6J7v 43hz|"BHgnXI+qNd}ЊRSN\U c9i!9v[ ͎x38^D^)'Ge4̹)[F |g=n1HBPpj1RpQ@"E`YC1fWPڍgy'0]6MӹQ ǽdl (!p5BuԈqF 隲zSz>p:zy飃W'*|V?$4TG/)W;_6M VCsLtG8%0 V^=2}^Q{MU9$ 7|\A 0V*^D|gOI? _PD54۠aGxCeVTAbt [9.5([\j"H8Jx`e@ @@:ϴbքG6ݹ1Ѡ8uTɤ"_(g| 1 )"88[NO n: ]Dz v ]IohVʶ6%C"ŋEgߕ,^}b]vux\o $S">qaH[yr?HFͥo 䲎^?f+B{;Ao45g5W<:.)|[xM~] M 0$ՂFz!x!ew{Ji4.Q\d$n!uM3d)N޳wNxC" 8,އ&UY٪FkHAN'L\K<;9v=V;dB6c6~bdr }KąF!B}PYHPaָ6Hw{\{l 0EA g!Fbv`H> ;vb7_K7r}D߮dd6/?:Síp]zwDtvƛe R9DLQx"jN-("W|{jxj^m ?"2\ kKDP3 D/؃f" ‘-J6tA]Wg2z+ ::]10 ďL4v\P$-"''O84 6sÇWӤ#gʩiB- EN)9"`ꍛ\1? #6& ,n G- z<И;Gl9TbRW(v łg|j''V;0DM@6'IDKǙg2t|H+ٝAs{){h++yNWH["bq6^|qy!K]du6&7"bb |CYֺ11}\dImvt.ԕ)gkLy$YL{=eC !zA0E_)1&0ltex^Kx+."(*em?M'By>DzG$5HB s37M .ܫ k7"X א%lIBE%}uT4GŸ)߫4Ơqog <;n1.eY QD)#:j$j.M!ERGx5e#_( 4Wkc#f=x:AwohI^HY$i?o(ZX 8xA]Zþ3Mѫ_}hw_ ;oTme<nF0교!?-"P=G 0E1}'gps$88 !Mm bl{9p%'{>-I`xVrxooKJu=4r'+Tڹ ,1IqD5r*0TgPHykc ~0_`zFζu-l'>mRyBHLD|v Bd$Ʊ; ^Aj0E,M Bpzzޡ4B㌦ [eZ謄G_̟i :h"N.o8o ]VʑiO[v%i]%t{&mp.1hGpͶx't,aVPŢ Z;aPfk'ͮPEc_ ]F8|a8_2%e{OEAec /` vȥIRx:pt\908"]D_O? Q(׻k;!"ʒb5+3c _|~0o 5,jTxֹ}H{XG&/L/ݫ9+v-:+cy!b,l`N9r DR@=R<ZkQ5ڶE491y>K:5*:0hh :$XǨ=j1ֲ`AB >9@n2EMwWr)\H`޼y3c RD^EiO #*/x%>x(ʖ#71k!Y[Ft+Ymot/c1msMPUTlUK;f}}~! j0S~$O%L+M\t=!xoɼbV]`v5$ރaf EP\ZOd禁,=j?i©Qы5Ņv=mp%f8WBmaF0KjMB{xױRkIq_Vyt|\;%Z~$Eia|鏐vC=ERg|E "t10 E*@ p1ʀ%8mmIDŐ-Q<߱L`ze$:Ȭ#Cv]ܺV_Yצ;}P;kпx?.H*a9@rv5h Ё$c `F5',ksn@ۮ= 1DvDZ8 H~{Du8aT`R[ZA2 ~|= 1I?6*Xg6^ϳx*hϮ&kvR$f͛Ҥ כmSBR8oD nD*0X4 )o'tq!qŝ0K+7Ga_G 9fu܂RE0z%)dvDN@=?\ELwB~LN=S2P|q="] ]! brq=}K_׹I#Gh\Ґ|-³/6[pTkxȠUAYɠ{] I UŜpȌ?կbzPXY7tG3+b t^?=ⱀz :?@>e ZlO9ȵ$˂;0 -G`ks)8##++;*1fH+2$xr? фvdk%<]@ffqܘb>B1FZС\hb>Sa_{57B։e:"?#07": [wz\Ӂ7kd n2!, =n1gc *:RA=9B\ iidw&4ͼ]}kvΦRGÆ h{0,'R*>hӌLy)PQFESĆr$'?k9b!j/NHqcVKnI>cWtC, >.2r_!8_+ x*gfъQ2l1n0 EeKN ⯟Ub$$vO"僲?1&vjCݾvo4_'rCHFL>ofqdj0?d@)n]B=gk% :ZBXVIv$O?ߝPVHO$:JunPK [{#yD/aHb|w`37DPvMI{j_,GTvϟCf- MM*RP]2,%XT ,bOBKc—l=$E#;A7K 0IZR]uOGЕ. EZ_.Ο ^ A5"n`қWl>]kUZ ٌh) 5_f&E V7ㆨK' ՙG|RMv- %pD.{yG4CuGŎmwvO(ss~s Z My|1n1Egvv (hhWJH;A97K)vSػ0h-V7'2]b튇- Y:}^IH)^6h|IlPqT0u4bʨaGڃMR^j 5w|=q@8!RƳJDIJ@9?(,w2_4\dc 0TEu}Q}PC4ْf8snro6۳d4жQeXYg%\,w՞zc5ك{1qL0Zr%P`BD@p&-ɰ8fP/Mkx5RWaHBFK^CՂvb6=]Jy+G1Gs!|?0C,M 0L+QA <'"]7*I\$m&{Akpco&T"80ĞOEz03Eă\^~X"Bѩ]6qsV@RqChy_JX M1%V&c$kFqّ `tkJ ;A?Ə+KbEoql]A B!}3&(hѦ ݲ;tVn_Q ިu Z\ߞKM-I1aO5*W6%Ɂbfsx/ (h[a}/erwLpw;\!%FH-] QbXr ~]ou 1 I=6< $2t\y~lEoe<" ;a1'cR6%ی6_MsEuwI yeْ5e™m̆_ABz ~ x#H"X$!G120`lKA \8F- ̼ |GfxC ?@HB("U 3ӿ b& L~@sҞ<X{ S!m1x}b㵽vm|zS10 EPބo܀%e)#_ZmͦK&S<'nKUQ |WXΤ]K_<Տ| Hji&De" 4\aѨ}״Ѷgz8!]P;ɡg=` *?hbv 1D_69l7ʯkN$bs!ؘ*,i 3ɒL]0+KK'')30OT?׏M+ A6|]%k-G j,:$,gδ餽%% owq/ShD-5 b710 EPf.  T$aݴtC"Hb_^d3:hnVmӀX ӈ(*-'*('2Y˱8C>zg1%2r$#/ ,>i&^; DI;9BbÂ;&HiBCAggԆr9/H'{D˦ۂEt#n;xa`z O襷&Wt75h.cӉFff-| F!@ج箽1 EBJA -K(0, ,d!n"Z 8~4. Q08  26,~ wIEk uЬ>!<h|BX>v a]D Dc1yOup \`|10 EӈJ )ٹ@PR0@XG%;@n~ Lbm`3S 30DvU+zS I+ns&Ň坹AR M :}!D>7[ºEF<ruz~ 2ҺYvow7[1!E)Xm0uԄ?a"e|g '},ef nq_\yR7/XJG6oבx>PmK4 )#( 4@BƐdr4aov(} zL;$|Lx;4ҾAѼԼ M2'("FCI{(HO]6C`>v 3 0 ET |6~wp^u)>WV q$}^WG>7t|ip6WoĆ;H(O:'"> (97pDDߤEH]4\~S`Gq4%3| 1 N؄XEJz$J$v\Il~yqo!6l{"}^\Ի[:t$mIj:Jz4&F o'Ǚϯ{uDN r5Qk v=G׭i𞔺oYn`0M"1l B?];A}Q;oaE=G0Xib&F`2 0o`x]EJwvX&uSyFؠ.א <| x*G@'n{/[|Gp7wd<N(,#ɨD8;&oOek!Uu9T}L*.ϡD /n=E0XB=0 ?t`qЕ i-H'َ `~ETv&羟RDi)-49~N+$N:]|XsrqZucc-B #ybD,uNǔ޻yO(YI) .q63U[ f@, aie>ڸ+PoZZ/| 1 0 E6i_KѭP:uHVdťM 1_ : )gș-(5@6dU~|w[zyY+W &vk[iaM ݻm.yHvGZ C;v-9A9v<*`x l]ړUX\t+ϵ.Io[^3uC@ gX@Å`D\!m!^D,;VՏPΥ> |\A zȒyĠ. Kӏ=p{MBQ CsaC`$ȫ%q"Q,{,A) ~8O3f T vet9jeI !\vEc_XT;|[A!a5{iW'){PpG8 Aw~;x~P3u2q$.TCQn+ 5Uz,ggu &ш-c6ZDblhnk3HH,>*?ed,\[ C! H:B{I@@ǀ^sN=|q5[c5)XLqp 6g'#kpk=~n(uHƴ1]18jub-'7VZ8~v93t̾,m{e~C@\7 1Tl\; ڮzO+5 o: %fn?NwHUC@S-bplW0݁uVt3e !<\G'SW٧)Rl׋n ?vK&{qp/O3t];0}UfvzܨCYgHyaMDv`_v5PJߒ&Zvl`nȊ3(d yCT${T͐9y<w^SOl֞}:ߘesq11v}.+t\10 : Ub#Y%K$0v*x|B̼Jgy]+"+Q-+t8)9tZ6Dc|*|XTu:7wzj eZ3ٹ%UR i>kf^lZ1 <;T]!CյS7x "CmL a8,"εV0 .ӹԶt7@oY]1H5E??)Y36fgږhamAeP$yÞ}o+kAD UEdl10 ELUJ, 9;%z0^lX 1K2$j;5JJ̼ȒsK)xb\n38C 9h+۽=_=|c2M}uXxH BpK:vSj[ߗ,;D]X[> #{HÄg)5." 3T[;0 }v t`DlH=K8e/@NCO yqŊGvlU54ْrq LR2OG!0%m8u\ݲ`OD0 >'!s=tۖNA ''u@_uayz), [|7()hSQ oE93[RJd[;0 }n$Rgfa^\"=Q7.T ̒NQb?gGNds}arf8"Q VL;I9R\l[TB/D'3RONn 2[^ʵy>T7W.l ܥ:d|p "BkB{|'f3 :y4@f5ͤ@g .͡_)"h+D6"v^oRX4P!ӹYe[TPV@Sڃٝ5LCBsv$"tY 0}w!PD44TyJZ΁| <%}]7pΝ1od]10 ,, WfyG犵҅td`HRZ-}7~z"jsNeyRZmYJ9 1KP2HcBRz7 `_Ϣzy L3PHf= qoa$ ՎGOQX8 #=/% Xl'*{ Zl ⌺oiڊZ~/\0 w Y}߀E6p L68@ˏ{.*kHgؕeyHd{טyR)˵o2W&׫)0ϒb>R@&b-Dpq37~eRnVv4@eS*X?w] /^C-+@4򫪺iz̲E˲l];0 }vA C;Нc0Tw`,00T$ %?`l˳cGiRH$#"e٢,Q_n5`Fʭ!? ;PaLP{.W5wKE8BBJlF>bDߨS7ŋG͛7/GPPP=11Ã_w ?>>c>×gg\^/QAXb@έ0?gD4`9"9qA#,A@FQ8[&dăXGAZ9u~$yff!-FN)| l L, >~c~ͤ)˰E>H ϟ?,W\\|y]BDDDY'ص*V)Fԕ8aƈK-n .ylP!D:6FFFfvja1l۶a…߼ymMddr,,,}dšϟ?oܸvڐ͛7311)[00*++4cPܹ{#O<ɓwwepp ;? Ԝ 0>p AmHߠ R5N!:[~泷c>_fwU[k/D_H"r?)%9oj!]DI\`!IENDB`phatch-0.2.7/data/actionlists/lcd_screen.phatch0000644000000000000000000000461211346363116021473 0ustar rootroot00000000000000{'actions': [{'fields': {'Auto Crop': 'yes', 'Background': 'Gradient', 'Background Color': '#11133A', 'Box Color': '#FFFFFF', 'Box Depth': '30%', 'Camera': 'Hori -30 Vert 0', 'Camera Distance': u'2', 'Camera Horizontal Rotation': '-30', 'Camera Lens Angle': u'51', 'Camera Roll': u'0', 'Camera Vertical Rotation': '0', 'Cover Color': '#FFFFFF', 'Floor Color': '#11133A', 'Floor Opacity': u'100', 'Floor Reflection': u'70', 'Gradient Bottom': '#5B86B5', 'Gradient Top': '#11133A', 'Image Size': 'Fit Image', 'Left Page': ' ', 'Lid Rotation': u'0', 'Mist': 'no', 'Object': u'Lcd', 'Page Mapping': 'Wrap Both', 'Render Height': '600px', 'Render Width': '800px', 'Show Background Options': 'no', 'Show Floor Options': 'no', 'Stars': 'no', 'Stars Color': '#FFFFFF', 'Transparent Background': 'no', 'Use Floor': 'yes', '__enabled__': 'yes'}, 'label': 'Blender'}, {'fields': {'As': u'', 'File Name': u'', 'In': u'/phatch/', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}], 'description': u'Place a screenshot on a LCD monitor in 3D. Warning: this will take long to complete and requires Blender.', 'version': '0.2.0'}phatch-0.2.7/data/actionlists/lcd_screen.png0000644000000000000000000004051511346363116021012 0ustar rootroot00000000000000PNG  IHDRL\ pHYs B(x@IDATx ۍ圼>4 >A& -QEok+Zy4I}$2/ 9 0ltdT7 ` >ݾR!"G^ rGQiK7bad?B!,D!ψf$VJ1j#Jt/rt $00` /X2<seFbG>"iaY9pRĠ E.!A`4T #Nbad-А8(aaŀR|Z @zIǒML\F 5LC#bavX4! K3X#9GDqG""ⴣ1Pf@+y=1} T (Fa jZϧ&h1ĀBGL؅qU(8rŌ0FDjE*|I [Eޔ@”ָj4L\rB0Y@"HQ9)rc( aQ=bA7nҙF+0CYa@ XD !LBiTD q=Tỳkb#bAI^:K`x 5NC"tD9🁑 d֌J03Č0̀M\?,•ba`2bGXAUA%!¨=:dZ`=TpRX020@DAO=zmc)4baD Rkxk*H`ĀC HBGȰJ995+!LFLA4 HS9R FVbaddB4 706C XR?EjH#l"k\/Leqla**bAQ#K0 j HEɩHʄS>!݀f>R3aH%јDbabbB aDnb0"qD r021j%aoQe #Zم -hQxHC͈T01 0sBfA9zVu cIF6;ϯ9Sy핮ԧE Iw48BSG*sbA Dꃄ.R֕FFDТF8Jcv#0иU;"q5!bD2ʮA;7 y^U gҬ?u{kt^54u[li5FmIŒ# 7| +#|'YpZA 1 IKuYOC~B)C]dՃ@rHLY14IN.Ymb{CM6g R!;Hb`sz>nlYvNūxnӭ>qkև(,ՒXaWj~Uy)yV30tZ0 <; . O`@,CRHKm֝vYG0^=ς:4?m+NA$*Hdd| T:Sp膓Gog/S̉k;hmjTڍ?95 )rl 0 O~u |)vmha6w ))zBn;{X NlEpww Ue&fL 2˰wqI?i O6LKص?'j[r.k}~tYK@ m3 Hј(n8 U~!$$df\Likk9fhi{F~mDQQ8$~M!SU] @'#b8iJqm~9%qB`6DR ?h ]#GFi?./vI~tZ @ LݮoE)^"o-DbѓhVjkwi9dd&D`$\2-[BqE 2 bfyvZ#ba/~ <qbKp1C>k6>qgf(H3?Qiw4WOP"ڌً־VuʬPn/n@ Emσ "S- BaxdEp? W<?D;ɋ\q{_eUUtGY6~Nf[kk[;kz۶B GAl P;anλKK3G 7ΆA@MHB? / 1lO0'3ԊћE'qqE6xHW[tW< "4=]jR)s MDh<,z0;km^'%)Dl""OPHvY)j[oU08<6|[I!k=e` ЍUԺ9B$@Ijj -\f Ϣ/#2`9NC׆bl|6B `oac LGNkyLrL c1L7#\;61 s!t@M 0tYym:?5tvSۜgn Tq<$G jYV}/_|;!D/?kKc#=~Ka*~Ff1 0퉫7 6IzhP1rajk~K D3[tBImUB`iH~qYL ӈ 3xc4n7P,*RJdG,UAҐD.Gy98Z ^? z(iO s%[6̒a+c̯|Tۆ(B$um@T"u00?Vgf@𥮙3D:[bAa``>2@~䂉 RtbB٘c|[[%M?-.)-`_q31 jZU`_&fF&F&'DH02bA3fDP|uQ&DmĄj5n'zڜh X_~wv5is&o)xbf*2Jl^ʬߟ򎤪ٟ?B&F*g Nyv.MD؍2+ ! X4;f?6vVP—zˤ}yĠff<܇Nj{Yb@b#h+ hb#h%K?q _}KIY]?~W`{?>vߟ 1HAAR >C1C$=/KAo]JKѤLL 4RTOd)W BW 4[4Ȅ5v`zcef$,)?+//Vf66_?Y0``afdbǯ_ٸQzVmcK߸"Jb" "ȪQ 18߾{_VsV6fe&[;|w ,c?߿9XaT߿L Kfh{a7PQb'rt0 Em6UK31#0!j#2<@besye 9 3'm:{Uաi/1u] RSXLT d cY쏼k7!Aq;M?4i&17b'S rt1I#FX2!?7N^)." &݇~]ZL ,ged_c'?~32b!n^IE#h@Ú􌌰>uV_BAD,ÚCZH"+q(`bs21cdd?;ۇ~/&fVz9?O~g``b{3wv&&N]HlbA9r?nv6>Ycˊ)+|QgO`t3Ϻ70Vd?I?A%zg666&.W!h'Jba$2m䂵s4#߿%>}j(-"_88,M㻗ر~^>'B<\t8Xe`ceab<+${'$ą<gȣ;ΠG(畔bc`e?V_f ;?߼>211߿{_VTy%40 0B> 7 #gD2qwA?+#7''+ t9;_pqd|HED<9Ϝ{ꥪߙgcF:,I0W1211IPiQl saDi 1 W9X:\,L ,,?~7XYE8sݽƢ%f)@>W1[dv120@wQ3fQbHW܆ʸ :2$/NsWo}DFJӗ<"2 ~ed`#Ĩ_S!Q hB \I0 >PG3o~ۃ! ]ն#Y~p.-~hX$j{`/ 9k޿?Qn@ι;ee]8[=E SV]6ǸhU6}<_|]ݱ cHXC~\Ɗي ۼ"JtJ$_byy˄;+ ?ӿadD-0 D9[U3 YYYݹ`l#e$WI1q.v3JaDs%$220022aElX{f3baa*O@;aGnA $`TKQ$}ox߿4#-ڡ`4 bUP pwPePwY@R(#\?ﻷx89~+0I8fISbA6d`drl<#?rA Q89222ɏ7qb_F LL LL@1"V3ACt}J\10; 2h~'38ѡVU$>ϋ~sš}v% ]1]:o-u9eUf)UŹ0Rn=4j&y?q8 CXn YX9~sG?qp1ϟK]x5s_111{/g^ܶ}?]t/^|O_QgFFȡF (s"V)I Kpf&mڱ›Oe϶/],,LLL?~b``NyͣOO:a_tumϟ|ɟ?>}m7o}/_{;;PBՑ0@0XpBv4)5( aUHOJ01^br?\ն{xΕ%Kӧ߿ط /ϗ/t4޽}GNN߿MTT$ǚj1Q?~QSUQQVFA>F320200ǗFB<"ŸJ1GzGH ~s_x&_G<Ç׭GFF&V@ϟ ?q߿\\\^y/]~ŷqrrz R!V G J!bF㐠8<pgnhXcx߾|b-9ɯ"I:!qPvJic0 h躮sqzNMVz Uj@SHղ |\0Ek5jἤƹzi){4s{!ၗs7??(v]!`)eB=v]eZwm3k>tk=dL]ߦXk%e.!$q$TsfL>|""B@ʴViEʔR 457\y5]bSib AO!V, 1#LcL!T{J+]UI5C}Ї hDLՃY|r$#K|\K @ ͧtFp^k2Bu&|9JAko0l7 sFrjj`MzL!Iy.jf>u 2H""R$u)Ddnq`~SʧXnQ}a0 ]%k&L[4G>a/o+0by5w+ U5YkVG f0x9O]aH}E{32UsUs)"s>02i:#bNo""\v㺩j&]N/G?=DdY/ @E} LE0cfUP 1rC|RJ!\(]2#8>K`7Z HP3 ( soC[\ H%Ull~\QP7˲l,=CF }j b%`8LoK] Gh,RιVΗ^njY?G󨶸$b-0\{z[10 tLQ@DC?% L ! U?pNd(ܜqA %Sr4foW?vnݤYRzhrQDm1;C wkљP%^;4՟:s9~" bTFr D,6M3 #O(Ϫ('?ï_9y>}}ӧ?~Ǐ2 [@[ qD; 2k "/ \= @ M.wc.Y$wPc {!W cfwP돧p{a:/Dƙ1 Y " uC / @ wbĴhcoS/0i%3f\1 A.EH)R:M h2]YMLK% \y<_ K-զ_K2Jظ~iy@233NFNv=- 6 vCʕ8$\ 06`Zjӵx9:&-~BN":|ikShʁi20$ YK*wق4L\] 0Tt?[HGڤЇq!*>$iP-@{<SbXnfmw^g !4Ű\""Yh6z=q;J&dc psljh)Gh8@gwdНO  ā>T&P5z]Jɵ ]TvoGx]I1S K;mOCFj8YuqgkQj+|y S3"|*j*zߞ7tC #p 9ͦ[\\<(G ߎ/ D j3Ͷ//23>CA'ۛ gTmfqPP99Y1;zNTSΥS,Z\z tK-y D.5tX+/Yw, o`|f!^~;Rb(lZ}D7գp޿ ;r9R!"e)̹Q2MNn~?*$(fZAr'j=3x>c: qvu|Ms`9mwJ?W!dR ] ,/Ck6/hh3Zij3swORm[aG)wȀQ$"!\$}c+3[rCR1Ѷ8Vyf]roGN#}{ ا[!AtSC#=lҤw"A3G.Y-uUNتH~o^kimk7͙{EtF=I,7EA2[7 Q0DPzu-&5&H d@c C׼8$[:EWeG:IQM/fOþEQ3B 2!35?^#(gE^Z 0 C-;aIikt+e>dc,uy}C,r>ɐ1OR@U[clfSE)ٻbtj)IIP J ƿ?Yd 㭺\0`?:_38', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'Background Color': '#FFFFFF', 'Bottom Left Corner': 'Rounded', 'Bottom Right Corner': 'Rounded', 'Method': 'Rounded', 'Opacity': u'100', 'Radius': u'2 %', 'Same Method for All Corners': 'yes', 'Top Left Corner': 'Rounded', 'Top Right Corner': 'Rounded', '__enabled__': 'no'}, 'label': 'Round'}, {'fields': {'Background Color': u'#FFFFFF', 'Background Opacity': u'0', 'Blur Reflection': 'no', 'Depth': u'100 %', 'Gap': u'1 %', 'Opacity': u'90', 'Scale Method': 'antialias', 'Scale Reflection': 'no', '__enabled__': 'yes'}, 'label': 'Reflection'}, {'fields': {'Auto Crop': 'yes', 'Background Color': u'#FFFFFF', 'Background Opacity': u'0', 'Bottom Shear Factor': '40', 'Horizontal Offset': '15%', 'Left Shear Angle': '5', 'Projection': u'Corner Top Left', 'Resample Image': u'bicubic', 'Right Shear Factor': '40', 'Scale': '100', 'Top Shear Angle': '5', 'Transpose': 'None', 'Vertical Offset': '5%', '__enabled__': 'yes'}, 'label': 'Perspective'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': u'false', 'Resolution': '', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}], 'description': u'Turns a photo in perspective with a reflection. The corners can be rounded optionally.', 'version': '0.2.6'}phatch-0.2.7/data/actionlists/perspective_reflection.png0000644000000000000000000004232211346363116023452 0ustar rootroot00000000000000PNG  IHDR>a pHYs  DIDATx1 @Й%Mf.H 4AP٬?m4Kqtrm'fT՗$zX\*w'EҎ9I Ȳ+l; ADzvn( J 4l̴[p-EUPkC)nLQ RtLgwc )$Ofj/3_寰Ĕ @gwr?c[X  1 ^l馜K)fKٔm{N'Mxs&k-R3! Tq" fA`s:c:QXqb1{Jʹ@O<,^̕N@DgvmFA E߃Di]9Gwty4o4h/+D*)qgPr:a bl<a\nqq<.aAYإl.k& PW s@u&=n ڮ)klAU^D>I$ n dK>N@ 7-Rh*TOiCr>XqGU#m H)&Xkѝz a  )-uc/eYfՔ|z[z[vw("F%fFR)21(̃7a[^ĽXqsXy" g%Ia2@ާsޗr>>~NQDO_27\10nĸ#qGD|"3G`>7uRU`m1ƈ7(Ƅ ޓb mQd@1"0`ف^~Jg/1D*ߖ>cetบ2* B|iオP_0s>@,*RRRl68Y}jSntZm,Niۦ@)j9ޗ˫C JP FOVa^AЅn֦޸πfs`~QU6y=u]-̳^_IC~4?מŹ0#=% EtXHhM?AD ME ޏHjཧ( r aC0ױI lKSOvbs ;4-l8CHS'?uuw]n0@&DVUKB[CZI|4Hl/Nt`$5sNv( W>÷sf3T=~|"O,{""cGU 3b͐CDUA\OG$@ѵaz@VU<<2]IMӐ E BeG:4cDpU-j_!u,ƣoP4@;o8uA쓢 t i,͙>%B|;<75*!!0D/8~'8<%iϡݹl@6 4ԓO%[Q~Ύ $𶝑BCH|CHTA MČR>`f㱵MOPD}VPk!,11wJByE1' pt\ 5-׭K!@4TޓR"u5" 9鄇{4%R3m-`@^aO; c  )"Cv )\7nFJdvLLh/0kD=:% ne f+bW/Xdt~N@Dw׎M0(R?ACGARE@ sg?PK)+\ϪX5]m1z>_?6O&97W_^0S+ L|DM~R9hd$֡TzBNclͶZ4`Ĭ Ew׊^P>>A9uWY=ŔAx Kc=F=>eGئi>e!du#o`S}_N@v`P1>x>1@|7!#X ߮`0̷$ևoYw'^Jx-CCLAWlu:9iY򾺎 pb+f5:GGfI1S?Py46o߹=ô2"LHzfe(?C6rG˜'RX$@ 5|1MQL, #wA]oڧZJAQ<.@3a#~fg{ \V4N*k(Pu#!THDAE֓޳k7JQ BT\+A|@}JZ DolsΙbfR/Bx̥bY.S:.n2{w )M x?=UX߹%iJ7-^.G6m҅ 2 % }.1Gܭ-ӏEvμNf &w;D䈀io[fv\:{դ@~hK|NA D;(T9)~.  oQRPS  $@Kvjlyds298\U"QG$ '2{'{} b[]R$H!DJ]CB6rA.W 9Z a0~m~? 1ۙ2&0q_c!iվ1(,h^<(~ Ew:k1N1E,B@)9D*.G rHTT)R 3v g(蠟nugiI!>ZY3B/,ѬkP4U+Y$!*D}BTPI}B&IIii,oˡ1@\ԇ63JpydwΡ픐;VT}FvFl' ;RȮxo^?_>1j@EvW!`1H'7gPޕ A3k܄TSN?3RJ_*B%;Ǒ3]סxy&ey<8 _9=55C d K`)#"Lk/"fUɔt1ke)rT'P [7a| bB4mOpPr @?s&wA?Gη0(xgX”0;S;c JdYF$Ix6cR*;@q>v/kAQcR*T,xRS! =}zyI`_(AgB$O2031dc//11::MI )& ޾yOw YԚ @疌 /Q@ S} o2000pqq1*(bhV`cx߿1󛁝 L Wh DmSGT*Т$Cft>y:Yab @#)\! UEQFF A6q 33vó<Zkm頜 0D_HkѲ,7`.CIMܤdYI"8o]-9b#"vd ,,̗P蘘RC_'m5|բwchj/ر 0Ek}7 ) Ԩ*9*!.xGV1͑m `X뗪߿}%+f}{4ڕKx<{dZ<#dPzAq2H-S,Y @!LȒHk OVv1pss Y^cae k31s &0H203|y_#ÿ @`?ٳ׭X$.-#)#(T?1@Do(D CAbA<7z:bBG"j-o N9ofVځW9GQQ4a c\q;!$$## %%'G,'& 4\SW+Hٯ*Ԝ 0D&n"7'@ wY( @|(}wrh3{!1cϚ kU԰8 d233--a(J"?tX(✞;]YF1a`#YQ'~q3ebgĠϠ V= !!^|;&n^^E%P96ZI5 vL(3p I00bve߷صŔHcPdPd``d*ډxXoG>ÛWIB^ᓨ)ڭi+'~~~d> l o30 _ (bĈӯ'|~|άy-=fԛ1 @DdAI&h]ΩW!r/6.X.~-" >L7oZk^NB97A6 +d`uPU!)m )X M~ |b~2~Ԝ @CPPlw%\L,\A,[-l nӧ w@-oEWJa=,{Ӓwq0EÙ&XgHG?o#]TgWQV|7U? ]^`dd Q˗2(1;AfJHO..H E;r~x;ÛW/}IEG ?%t i`Ȕ . X],gagakn7)\\ iy9b{&=xp3}_TUO222n?2͊ ؄׳O?```aϟ?Q0000˥ >a`Seэd`bea`N{sq#Pjy7YT5w007*̛ @D߀6 e+&,,VOC!F (N3f` .ݣ`]C)D Ÿw -/͞GТ))122ZZAHI1[>u2L|/̜1@,+'6&^kz KC6 lJ] F0̷> IDUVH)s!VGp5{B S|HINc0h4KFFKKMDCCA|0=6jٖ4'<i/V 41AeX|K÷8D]jYb00221e𝁝? P` ~ͫWà~Y9 e`fecvF?d.?#wiwO3p2p˨00000230gAfnv!Hu|79Tԡ?0ҋ?33#/FFFAГ3f` × <#U cDZ>rQH]C$_xû̢DE`? XęA @1&+7ÅMO9ڈN0"dS{6s躎m)c <1!9Qfk(`DPCCCr .  lV|D^q\la~yϿ 7m `x'&tF?~2agg`2?í[ ""1ׯHEH //dHZ"gh0(߿cx1ihf``@kh@-@P񿯂jƈ6 _:t0{sI2n?'__ a֞ (Zxb nQkb M >Kov+yYٍE^?y߿? CnU\ 🁁A4(ڕC3UƆE< 0u~/_<{&%"¢grV3000ĝ1@Dߺ=1oBa1SL`-g2>0U{s>>O~ABB  eGj®C–߽~,,*SJJm~:r61^^^>333p]MG)`ddd}T<ӁEillX. gc%0L 1000|gàu"l[F N\1'31pss3HHH0yG fbˆj޽ex'7!Eluș NSE/_~/>00000|r(??KE F۳_|L2o%MK ah4 'KII! pxrJ1 XXH&Ϟ39f&cbdd4 ]1 0 KB>  B,E1uqQ5CB0Ƙy[|O3.W٨R?O){Z+Ĵr9e@XkO/3B`f_]Di[k@Abbh?̝ 0? FjP|(4hD: o:` 0>=}c)%iuqӶ-Z9"c'0DE{-fWӌgLC0]Ksn:4{)CI'G |E;0y Kq#Ɓr>u8͟5igǐJ#BH.P`JT(1Y팺uLUlɵ|KB5/̝PEO1&beobm&, X q)gSX{Z\058`G*5|VeYdIn?ĝ0 D/9'U-O,l,,BH8mV 1uw+Rǘռ4[x;OGdLŌ@_Xlw-d6;H~DYR2%7~o6jcb6s6UyY*RŁwt!H]lR!E]op<̝0 EoRB 1,@Ʈ3BH, ݓr[;rޕ˕˜>BLi0{!@ֶ hoDk;3g{TuPWXc 1` C ;LAĩ(fhhmvPvZ,6x?][r0 \9( 8L)SLؖd fv=Ï_8~%c{+E)3T8 ,&#6MD`fF d`fgՋakt~h' a8sFw蠪/ڶ#3`iOty.Li*!=Sځj1C'/ĝAN0EcN Xp{!` 4 8+xoA=")U 5) 3?XZ@DXX71# D)ڜ3ʲD]7#DN^i˫cL MwX..Fkmd"䜒ڤq?ƘܮDyY ]O9)vR6y3squzv**_AN0E3ƑJ!qGiW$RRB ޿D֮\ϗsI! Zx9`qM|*^^߮ 2ד+Q^^cܪyKUMuA}-'"$Пq ='ykXs=EmiNI8=)3/-ghD.m{|̛AN@ E) MI8G,`nPɐm9I`q8?<3AXкoF}Tݮ;2bԤXjFqEzme.Bl< QXѶ9LN:na`j݇;a{;̚K ACS]- % mTDž dH6L#4b۱wJ)>57de\if\4A5}!Mhx >^9 3[ =~D/M"”0%hBK K^D6u̝n@mAUy. !%wFXճg,O(i}ֈp9^yA\&a8O+..V,s[[sS(%&eQH 0APsajjm(ncR֒\|;_}_7z_̝;1 DI6a[Z44l"K6RP!,{4OYeUMpyŒgԒiyԜ(>%djAv?c#Vapݨմ@%cc<} C#fu{c +sĬ0vkC鬪V/]@ sRe ~@Au3C+"sȉ-G8@̥r>XҘS4i2(.)3CEvдJ泥-DJ`9yƪFY,Ff+:b;5 u" o"?~+l8^k_o}0 /?%"00?:,yu:_wHR [r"1_ݺJ;cSڈ))9S>U?: GnU<%́E<ć2`yu1"Y]uRf.r]&oO̝0gw[ZJ+*P9p6+O%khOq)PyP3&R!DU|SK/m+S1exq{if|sTGG:p7Z<0R_Gz[@ suRLlGPz'jN+ ?!bKv~E@0ܶffUM8m|,ri,xI4)gFfF,U~ /``=MJ -*r1Ư`xϜb۟, \ <)D*EjajCI6{o'Yك-][J xrP]_HH=ǭ? !d)BJU@Us5 D"±Z9/ݘysuuwjyԜ 0 D_ oܵX!jЮjwfMpGϣ@w?+TkwWk wWEcf (;RRRI ":}W|ñwb}Y{ ̜ 0 S)YP(vH\M,9> hbVsFD "VJ1f$AJB@D6r}_8_[^+2qۣ:s1(477X d?ˆ*##Xc )ף؅$Fp]TP)dė 0DO]~@!!] SEA2ps)03ZlQUDw+qs_:\1 @ 9W:ySqAA'cǐ@I?'EefeMU۫d:2"H*vL3%O] 0S.AcoX]yUDD_@F#s,CV"Bw?z~!<}- ?R*"C/ԛ@C0YyY8AN\lZ}VMלTkPfWUt"Έv6|/6d``͓c /_0?''fFfv6ܜ!QBp!T'&1?3 ?N.wPϑԝ 0CSCEi8 *.b@2 7f`ۏ <}\J'8Re:If 7Xԛ 0 DϴU.XAy:"5o>y0kTW^ o^$TR(;}@P@+n]|?Cfn7<] 0 K*CtxT1@R`OsN]Ӷ p%慘F"PĽ%͏{w_DDcKԜ C1By!y!JRhIwE_ fD<_9\0\J썎4:A2A^WX\k?̜1 C x2$uعyC `ܝY+jMV ] WW6bJ3~NԜ PCO$]ġXv@ȅZR 趵14ŏ{t:ǘN08SKij4v7v uix]10 "M3|񮍸d\:(34@@gG?69YgeJe h0(!8(Ę?A"f2\1 @ KZኋpC)K;%JB>1XaIb_5\q 2p'>!mF̨̛;0 CToCA,T x8@9@=Ir f%ilL$Z4@WqoݻCD'wD4O߿2ϯ ~gi#g,?33U14~5?I ̜+0 C_}IU L%[I+(aLU/C 澋NB$Yt ,Dxyk6~1@{;[ؙ@qp_EM*:', '__enabled__': 'yes'}, 'label': 'Fit'}, {'fields': {'Highlight': u'Diagonal Right Down', 'Opacity': u'18', 'Resample Highlight': 'antialias', '__enabled__': 'no'}, 'label': 'Highlight'}, {'fields': {'Highlight': u'Shades', 'Opacity': u'50', 'Resample Highlight': 'antialias', '__enabled__': 'yes'}, 'label': 'Highlight'}, {'fields': {'Border Width': u'0 px', 'Bottom': u'20 %', 'Color': u'#efefef', 'Left': u'5 %', 'Method': u'Different for each side', 'Opacity': u'100', 'Right': u'5 %', 'Top': u'5 %', '__enabled__': 'yes'}, 'label': 'Border'}, {'fields': {'Color': u'#443fa5', 'Font': u'Purisa', 'Horizontal Justification': 'Middle', 'Horizontal Offset': '50%', 'Offset': '5%', 'Orientation': u'Normal', 'Position': u'Custom', 'Size': u'4 %', 'Text': u' , h', 'Vertical Justification': 'Middle', 'Vertical Offset': '-5%', '__enabled__': 'yes'}, 'label': 'Text'}, {'fields': {'Mode': u'RGBA (4x8-bit pixels, RGB with transparency mask)', '__enabled__': 'yes'}, 'label': 'Convert Mode'}, {'fields': {'Highlight': u'Shades', 'Opacity': u'40', 'Resample Highlight': 'antialias', '__enabled__': 'yes'}, 'label': 'Highlight'}, {'fields': {'Mask': u'Square Twisted', 'Resample Mask': 'antialias', '__enabled__': 'no'}, 'label': 'Mask'}, {'fields': {'Background Color': '#FFFFFF', 'Border': '4%', 'Force Background Color': u'true', 'Horizontal Offset': '2%', 'Shadow Blur': u'3', 'Shadow Color': '#444444', 'Vertical Offset': u'2 %', '__enabled__': 'yes'}, 'label': 'Shadow'}, {'fields': {'Color': u'#ffffff', 'Fill': 'Color', 'Horizontal Justification': 'Middle', 'Horizontal Offset': '50%', 'Mark': 'Phatch', 'Method': 'Scale', 'Offset': '5%', 'Opacity': u'100', 'Orientation': u'Normal', 'Position': 'Center', 'Vertical Justification': 'Middle', 'Vertical Offset': '50%', '__enabled__': 'no'}, 'label': 'Background'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/', 'JPEG Quality': u'85', 'JPEG Size Maximum': u'0 kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': u'yes', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}], 'description': u'Create a polaroid effect of your photo. (Turn on the mask actions to get a twisted polaroid.)', 'version': '0.2.0'} phatch-0.2.7/data/actionlists/polaroid.png0000644000000000000000000007033311346363116020523 0ustar rootroot00000000000000PNG  IHDR>a pHYs  pIDATxb?(bhb!EhQ@`+122#,bF6"?##㿇?~؛3###31! Ra 3#2 g ߯_xIJJv쒹 0p3tC%\䳈LYi f>Pk]K)5"Rf@Dx1f6^{5tXT" ###JhXI0H 5c?<_Ǐ}CBB⥜5VVVĖ ! '`vzXmd Ǿ6!0$#xKnιm!GOA',KO)u斸֚W.SU15VNC䜏RʞRz]'A0 gC(=QHF?5@7{ݝRe M g;f+IBH]`k5s[|ض}!Y늻aVcGaj]ay4=e#bxN@ELiX(1A+wM7H"I%Q(} .g~|1QaB1(PJ~|gwf Mmxz^ zz/C1e [V%8C, ڦ ; {tC'1q|8lJg;mS-m)KTiM%U#no(VzMXWAa6F}(щd&Wf3B-zJ@7!B (ZjٺZHM12I2ɸu%sx|'0+E2!<[DØ4$ "D +m u>>f,S8pԊJt=MYbOn7(ݲYߑ_^Sm}ַ{5>U;J$ri_P]4m3O0-L()%uB?OPEO{m_"#E A4 `Xs>}DAkBD'2g }B;nH1Ⴇ=0M)|M@t;xX06%G>\a’ 04u+2g`5O?"*j&b<5I9#EM>F*%!%s䗚|N@Eϴm), qa?011! E0u#$~͹ !~6 c /yxzߋt`JdII i/A|dg?+TTmB6LJ=.G#IAI"Fy)F'D!dowG%wzAvv-@j#Qn8BŘEQc]8^Ƹq}sAiue[[[|pHa@*ٌNȋ|YsOANPD(hZCՕ 7]7.6m#qQN 3+m?H |yv")KKJܮ\|Pъ kiH6UJcqB2٢*`,c2s>$ /H)em=m(ϳѶK`\Se9sMedyS# ?^@;?ft,E ViCס56d[h|&h^?6+N3a2yW}N@Ԗv,(QMY튅č-rܦeں FR|tO_jc|ףqqI~N8F#6!ij,֚$^OdK=GKܽŘARE'a6-(}r6(ߥ[=*ج8;% Y0"7Mn[<>uMZ;NPEO_VRD" 8hLt[uJR:W&,\y&5. , HYx2 N %iѪ $Z!T+ "c[ >e!n/9=|@,L2 Ea=DZ;|.>Og W1Ql"NX:rE"r2'LVxK^s$ $RKi -S(}cR4*1ZV!);@WVe2Ԝ:soA'(zxe9N&?,?NP>ھV"*XxI?h%HE Ń1&Ƌ60? _s }!b7kt4])䅂AH9`0ydDunᴎ>E O'V&H`q߿cwyߐ%Ь4!NDYM(CMF-Sgz̗slDn!0Mi8Knt*2e^c77VP*p'S(fƴv{$q{R0$UKg`4ྸdW Q5HgпDKNPO M Ap T >7.qd6'~mۤZ9=;tuV"3`r!e^ۀ\c[&E-$"@g&WGFW2#f:31 ܊C(yш*b(*q2CFNvU9Ӭ]jJϓfK,KUJvv%G'2"[t<1 8Z"UVN@Et(I) >&DaƟJW$5DHlB;FL{vz휧s;r98G)Oͩ)Êb=3홬H6RxTBJlE@Jjk tpO6q͹GjD4=S^9w6+),#M5AXy^cg\ :6U: ICt4W#<k(9C)8k) kXc16$"<9S#_ٱR1 QtNܧ)l(ld9."6Vl}U2j4 175WN5ۏ}pطʔL&5#莑fG$X" .JEHV *m70C\ hmP=ub:Znvt3kj[qU͘=,S&ZDD>F(Wn*(U6͘;\PՑLA"`C* y};NP`4X%j?qs}W|GU`ѐhJo Զ99ɗo(!l`>"xL,LilKvժ-lt4xŭy &Vy@aM)%#yx{mqKJ^|l@L1Z'H Gn./9E,qj0GyN%&\ 0aS@jsztBwG{RZ,1mftH1pR#bS/N@@״@ZP_hƅ n]D!5θ/ wym?OV9Z}y%H3-i*Ϧ# l+Y[ -0 <|zA뎺VX(1"1:ToquM^uK9X_ph;OF)9TW\o RFKں)3bKm5nv+Ȍhhb煄y^MH&c28tnkL\x,MqҼ<A1~MN@Fv U@<1.\x A%BCfqQow޻޷dM*1#D$ٙzhCJUl#(VZ쿏l}uQ*P(eo,#4mz'$B q*Ň۟u8vl7+֋9QGs<qBv15ט0::mo~F\eEe(QC YQ3fu"2 qoKN@@_N X>BTpcFe6qeb# abBn1g;$Yc0 iRXHGÄlSS!-*Ay*VʺĐ&QHEc%e;S,UunFwx0o{R*(ȭ!I|lU0-jug+,=u:͒eZHpC?{?MJ@@7Sj"k xEWED?M4$d\y{*4w< ecv) OԔ ֚,s.a|nr|) R4l-,LxDzZe(ud/b`)nj XAաFⴍҚi㬢XjG;]9e4ͦB5mu҂R!M#hePVIB!Rc˜ QIgK ӔO5~LpCAcqjx98ÖIOv%=Ȗe#vː WE^.0><`4`mMY{AiCb79GG)R Ep?pz|D? 0_MN@@72 5.$^{hL@#11 T--Lgx=x=bAf:d>E Wג@2M԰t2 S|-y(!}h_K!(FJ Ctl4jRbGydQsrt2e0izpsI G& MjkTz}FHnҒ冼t MØPQ|jlcP +!DQY3 @ ib H8D wl)%KR@EOrK ${HXqI1`!0f@%EcP,t?Te]ÙsTX1tv՞_ox~#$Ќ156C:wjDy>ĬP0s"4MwȮ Mm ʂ%8Y'ܧ(B6Vr2`8f881YRV7N0qM- ^BgX@UB6ib;'N'ұe4P&8Q{7ה0:T!?᩠.kv"9RH aDR;Ke'mZ &w$E+2F *0= 8\P.y[VK 28 )k g8Dg4G NQdk=Mن_Rk;n/rIJWմEWWLxϏw]Oפmv1F<N@D_-mA$jH4$'CzDFAHPJm0o RVC*AW v$Snn ŚͻYaTT"}B9ucTM4(Ee e|M^QF9eU!o0:1NN ͧ9l]%,"ӂ˔ye:7\-8cbGs7Ʀ%K/azy.l+zN@ELvZi1ua?LD@!-t(s) VPXa(4eZB]< Ա97Q/<0,TO1H #J\8lrG-A[ZEAPIJYQPOήOJ2lHfSꝣOn 1>55v 10.)ڜC,i:JOwo xM;} W~;2HM-ybJlה{D<zަHqIR@?ݝ@et.<;-, &$\z@"DP$Eg\kPR";*|^ri 14ͮOB0M1'= xTHhAqx6-yƇ?Lx_|%Pm0בMw9aMk oJ@ENR*Fp n}b}7.FZlb2}=AmI N47DFIKF{w4L .}CXj)~@ b:lVi ??%u=]Tc4Fe:QK݂5|"6yΟXg-[L[MUyu8k::PM V4U!JQƠ =Ov˫y2pzv97wIJa8<1[Rjr1uf >/PEm.IN1D;20 @,8 +.Ć-B3JHq;mh !JO rbG5 ƀА1Bi9 8 upIBTkJKBI!F"xdwh|Ӛh,UpuCY(" ]#et˂Wc2lǑ%ga=TN$2"ֈ"3p;XȊ w\NX-|*Qz/hҶ4TUq0?]N@F0S?D 6j4!&n7q.A iPuE|;(*Ǹ(FW sdeInEiXPt5OAK$*0" ~L 4Ysvdo?aNGX-ْ0Hk+Apbm<(q&|~I)ak +Q۸ֹcTV4s՞C7WD~:˱e-8Ɲ.'1 ߱?ӠJ)]fk,|t]Ŀ|KNPEG)MIj -ZǮX &&|ZZv{9{S IbT!q+ Z,V+tO~{Sﲌ,9+F&9( 6J@X*mu^K/bYO$"aaJ$cOS]m1ހw979@M" ,d%(\w0^X]9pu|ONaSM("\\,X&ԟIB*Wrw{7n1ѬJ!!i%Ո:FT${.~È%^,!Ó` ZXCÌ<(1$M!KZLv!x7!UpwuAVC{jA#ڒxjc8| UbZ7?:9N@Eg<8^DHH*@Mɹ8H E@HHLx=39=gPm<ڐLG;B`AL&)0%!E̵-UhMg3g&J*`6z;$2F lҊ$IfE T@$ɲy%+^5G) n`ۻ!#;=fe [ AJPE{??MFR:AqN ]9DIJ&A\˽ Ru)'[322c1B o_Q]URUȒ3-iE&YF+E$ӈPDN5 W?wm;]O۳X?#CB7K r bsv'gS^_+.b=njFf)!&'Ka!|ސRK@Y„,.ĢeLw5!Zto(!!# 62ec@`CQВcb߃xX 1NP ?J0tf&BT!EBhPl3'l { l'[>\,@fnV{xyLEmȴ^̎9[㥥;4B3q\rw˨,Q5b0SvXquqN] uM3gt}=➙"PJ#4Pf:n "d`j5!s;$d!HFS\O7̼89f,:!~\3~JA ̮ zVт'Y`n;CF@<537/99o q;7h00aH >3.s8T +8,V ̈́VVrf}wK8?s)X^=~X\I'3XQVP-UpB6k%R.YK[{9TPD҄$~-+1(Zb]h`o=R1 F @G# פttt I]ۢ4%}~:SW$PpIe}NYʅ15B@P yd.!J [k4sJחgp^Gf[ILZD@Q޾ .Ղ'"R!jY [lvZ;12nFR9#.xZaM`/闧m kP֧j*T ya!Ϫ"dk-78f2#8UBƤ壚E&ФF',KtU0G_oWط;GȦ%3s _=N@FNl"Хq 8*@M1 +팴~7 =3(wda]!()8m|dq bx: @.rhl8N8t2bM\0A[zҁu[|[SK$r Vkڠ d;W&H A Z4@P~je]>DsCW䧬6\V ;/OldMEiN@Eډ 4 ZDDh"ıO@|\Fs=@^H֑eHW-ЬvqQL#\J0b(35{cv%_l PmnE^7]xvT#3MWGw RYY4;aZ3lyy*.9^3?;a2Hڹ_ >@U[]`g1@9ZR 8# bhO 3 #! (%uÉ'O !JCQE׹ϼ|5BXE@QN,[X؈!>ϙ9G^'fٳ 6<] n% H&n0nӹFAyX/8{]={Rk/_Hl-pƼ(>28%zxpՂ8 rX)bj.Lgdy"d[4cp4"U%<~xQR@+Ayj TQJiF78U{Iu79qLxcV "R-Zb$KJBa{߫I@ 4lU4A Q_]7@-q㜿(%,p 3[gQDdTGBеVٔj"ɭ%mbk΀fIګ2|pu3Ug8p("xsWI$ZIn0H<:~v5L鯕ǞDɲrB&BD$!Gq;O٨%607rLu _Xg2(22;v8?ag;ƚpq̊(3}7 )YIFlm,sp}bFa͜gI8I8DA4HIAʖV`*h4ʏjf׎ =*?H0Egp 1 =N0F_b;nl ԁ 3#0Om4q3 .OO €爻>;-K㜣$d`(h$MdPU9m!9Y HIS7g$DtPu}6L طoh'TNjyA ; ޟ1V1yh2͐R#GY"lvPZa#!qDb4DX%jbcP# =IuMk3zTu M7| 똲|"2lL;NBAAH,ԝ஬!+0wf,pS|Ο͠bA,7#Qi h4]R"!0xEZm-Ґf(\[$$^׉si QYnS}9\lc:ZKZq%,&kèՠe\]dLzQG UWʼn>Q*GEiT2lK6 M5-J19ZSv 鼮qݡ3"/?N`a-LMX*̏YnBD'gpɐVsmx]Jl~:zWN0?{ ʏT$N[p!QTQ(M6'jٙ#ra@0^wol z%ܟ<"z6g;y )=5\ 1hbdqaaxvyYbg2ʽcT"ȶNW +:\C@ S%adԨ\eȑIdwΑd'>7(w"pbX:7L,lPa:)}8zFSPy@n1N@Eױ" HĽ騐(e$db;\by g^X\;d]Gc U=YrObH3 &e^K=е[VUGBϸ٘lPN\JS8`Fi6lۖu]{CU9[:$nFV!|)$Tt@Qc_B#1K3&Td`Ɓl)F[~9Na F߿&(,BRB)(BI&;Gn,{~i nbuk#Ř˜۰КשbUvGW˓hb>񵃜i[G x~zx@ JEa<)J{yJ٭ hkh3% ;I=: dm&\ĘBܖ EZQPG(O)TfB^-,Ah(2hfjdU5QsWI/N@D^;^')) QQH(4!QDdܹ3s.cle4ŪPYՄUX% pj\b+;!Ҝim+K-G-7)Oq9dh ӗO>ޗ?ź"qOh{L22a N@D_v[*#ńƛ&zJz(7$o&Z`4l[T$ c:tyYxڲz,ykOД_E1v"}A+veM1|-L'Hә#"iJ"RJTþkGd87l!k|\;A `Н`qzy"^wr4L 0R!&NJ#GWDɌQFc='2;7oe~BKN@ d2/PQ[(!!DyDj2t,& 7^ [a]]n[ !躞Q8:L]3槂'L'EQѴY>J19jgáams.J9PJJʁaNcbɨoaO8k_IguQAǘrJ䫟x%bHQ!FSזG̖89Y35c]x40&xs?׈'W5z֥Qgqiia_Iێ 䭛ƳںCD R*gcv5}נ˕DHY(bNVF_RIJ/[ }1ɶo%m ".J)RY9I'R8|# R0$;!)L* PAʏر =7*՟fT9+hexQܬݾʫÎ /EG9P2<[UBvڙJf^2mGncfO+# k]X'QGiR:nEV/њ[PbV)93){XKG.<MN0IBR%UWl?g !(Nk;,lqě4ȒtEUfs&h4!چb5xc68ZFM r&1U)\DO!"SĻ/S@i n[lSUFxb],UY&*& 5b$ն$#LyLRUQQ#yU(EU<V=1!co֫wpN0E8$mWK$_Emaa7|lgii4g{nhZamgHM+HFs Mgyoy#w4}Z0&CۅB ,i[FdŲuvAHprHCvH#rʜƍ0Lߑ6maUxBksV^e׌) Ŝ`f*ĶXmxy{Q/Q0?MN@ xf(m 5Rw Ċ_ء"B@;aV0l{s 8z's2jؗ%}8_ss{0⃇pޛ/-nL\^mY找)x|Y0z'XZtVVZռt>x$p]'vnl`:~xUl$1 Vd NqemT26^8Ɍc?1Ȯm9 !'^W[N0EgUT t UI?XDmx`;VYY')Z [^xmE t5c/mj0D\zߡPzh!q)?v{ H;pg76%H` !Po||~qrNP+yI8#]wtFiG]ӍMz*C9!iV;X A5jת_By:\;ec3}("`b,=nb]jRu99ơ >rimIKN0D?8BH w`%Vl 4d,p8AoJ?Yi!c$S;K8ۄ+1456 ]ױ}qx_8[\|24Ͽ4ȔmPPjK.r6^)Ep5 Js1d]­˲#Ɩtd?8O^^DO5ĿO VXce`O[zg[;6o8mYaZ;i̫C\9V? MN0?'mk$6*.ZԪJ,z8F# (#y1F"Zbk8lЬy{}K9RW&TGn1m-s$1,g.zV B|(^W URLӄXS^ݪC4 !9&sq'Vd e:Y,$yGW ۻ횛u s@" H}s<߄[N0EOllbfǟo=9E(f Rk?ڈ3{X> ڐP.,Mm*VM0q8Ll䇍RSlWNޙP r{EAF)$HMXJD ~ZpPW%Fә -s }ÖukX9|‚NL2_ .RWAN0EI6MԆl*Wb.8qM/9Č=waY3efoRmZP xxz&V-$L~bpzm3w ;Ԧ}1L/0 k+VX]M"_ S9R~wNHRhTs<q;lSi訌f,!%,yiCRBL+xSr@t7zoMR@$ 's,4th\zzǟǧB%ƍ+gZ󌙱LΟgM+lS媁yqZd'F[^^Gru;6@'w ~!*GY{q%ϫ"ga k[ ?#aPҦDm_#m~3HM<_lja`* W./J1EWnc 3`B'g|PDuhć)7?@8NeiBGi)PNHHC߶%aH eu] DY}c'b%MJ,+nص#@5e阇AK{ i@izt-Pj9&1y?(H#h8Kڟ4 O|O~x~eӂ1Fя1țF w=D׏teoJAEOOdBNp!YU6>@;(~CQEսԟ@(F?$*pV.w)-Yb.w$iY;}=4'ju͢9gbp$L4F0VlQ[/I\u•q!b&W'ٖ7`uKBufy3^/:bnts}>}u,3ȑ`&XWz씍J@t ZvNgQ8E\{Vf2V9e.% +~*#;sm"֪}{s%ӧl5TlfQ2Y6b*RIsY]tfݚ=#ga`iR>۞uI6t]ET)1e ME5YN@D,38ApE$&xG\`~FnU^5%il U%)8Љ^H9Ki1׈q$ՕaYĤHd_mwdd+B]Π.eRLb| B;gyFcl_2~Х. ~gn~!t_p\9ޙTMKut@Ai8\"V[N0Ec;ӔJJU7w!P"&4,&=%/<̝{ ia"[S,"Ȃ-Q^BdਫR =L9Kˇd[&753 ݐ!P mJLJ ֖2+ h h2yN<$21l帯y9>6H~b؟>#(1va$<|t@Lቕͨ"74]Ůf,H[R0 EOl1IKL/? |@rc!lHsttuÐMKVH?Hc1ۘRt괪V>5<"˟>wm|AiHRa4 ZHypnі8 7+iqXb*)vJ4Tkh]aձ_uVeK} &%J!$%L2b h5.+2Ǽ]þg=83ǧ#)YmOŸ̰y/AN0EdTXTHUBj711\g3% kbT[c#Hx/#;a`YHj:[b]65ʔMQ3(ϬQ/yks"Ze#56|aO#7Yr!\_\&4k!BNVWrw+}y)eBL"D ֨obUtlCaEֺkc05&~Ϯ͟\a8AN1 E_g&"!n**!":L3 2~?pа'z)=D<ڏk( ^U5Vk˜vN;%#1Eu(l$"#{HOH1@,$rp)m6u5y+s G43 G,u[lf3:> N0 D_ci"#b[n{Si/cc`eYyݟWUechGr.?/?Gg^%0ѫ%peL,_++V!;ܪiUq'3 ;u9ynn_!9\y}{'x~Rr Qq;j q*[Τ!ac*9 cQy)<$e蕚WJTl[[qr6b\G&mϥ`5|]K  GN-U`0L$!?_Op]s)F9[^-b[}/@8=qr'oӜ0# iB#>=Yʞ<Zډq@3t2Q)$r#Ldd^ _F&&&ؔ4F$! CE$ Ȯ\9ȻR#" "90E"P&&&DfFH k&TP#( ;XX#rQI [d'l9Wi@i" @Wbm_DJLlilZ": NK33H6T{K"ؿ=FFȤt*)>1W s@nc#ت J\K! }3^`+=`?. '$&kX=JyMPS-=J믶Cձm4D?)ޒ3Zqz,3rW`0s#c}Ɖ̘ "ڬ7$ 3OKRgVDCMX{ I_N0FOj** oxfoЍR)dHIک*(&6n?u S4h(-ƘlfeL2`u]1 c@6sxTd6Kٯ ;2 fN`^6}k([~ QJ")E%Qڳ٭CQZFx9=k2ωEAk !dJlB=9) @}ב$iּvǦxkQD:3Rb1- la<=1~6 1 _P~4LıRiw_O׹Oo0 n4!Ip+!A&j9de?'n>Z{Ol=!?U sZ6'zϟ "Aq/MRL84M)Tq8NQc1(%ԕ&BUyBH``/.KR{˫NS~ZB,9 ۻ"e}Ot ɯuO*"9 B}`lpo.;[ a*ß?~!ԡ 0 0|vdCHnӁO4C0"qu[л8 ";#W߿ |9Mn ")ׯ_ ,,, LLL#}CfG*>EZ[3+H"*011e```՝,))ĉ>###r9_%0Ab >}b`aaa"K")oߜ?}>Gf %" |kya荂gdccq;L>"'2Ǐ\aA@d)-G8dUh $U8(IENDB`phatch-0.2.7/data/actionlists/resize.phatch0000644000000000000000000000213711346363116020673 0ustar rootroot00000000000000{'actions': [{'fields': {'Canvas Height': '800px', 'Canvas Width': '800px', 'Constrain Proportions': 'yes', 'Resample Image': 'automatic', 'Resolution': u'', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'As': u'', 'File Name': u'', 'In': u'/phatch/', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}], 'description': u'Make the image smaller or bigger.', 'version': '0.2.0'} phatch-0.2.7/data/actionlists/resize.png0000644000000000000000000005623711346363116020222 0ustar rootroot00000000000000PNG  IHDR>a pHYs(K(KV{f\QIDATxb?(bhM#M#M#M#M#1 ߿pG>}Ȱ`gϟ1=~򘁁ϟ? (bc7;;;Õ+W^|۴N@MWf```d`|omHaffPb9!Uzc7ERyظXVYp3sAK %߿XYYΝ;Ǹ{ݽ,o_/iW'R$ʡT_jY T_?6%U?l7..M ϟ? ,,, ׯ_g`u3$q<&9}ϯrg߬OOOxU|+Ú>k]n?MMM v Vo?|řΝ,L me<tXܿ ?;Iǧw>_pj2׮]Rl2276 9b^|`dd3FanMfAj]3_ߌd׿ ~0+??.1_۷ncfffpH1 0?i@$w!$i^w |3Qblϳ&q̬zAB'] q |A$&B1Uj,GCO1AD$ hDIAщ]Cq'nG!(m%1;ac|~I8P Ϗv8ٝ6~gp0PiQ(Uш""*"i -(j,FݥsVz:vAY M ߿ LLL /_dسg;[wJ _`P*x''AOFLL/? ~17O0J3g 30clq_QW`dz0$(ԕ1A@_HlB$j'mZ@HF"-N!*W5fBw2nv ZILۍ΢ S',hd11R|TJ RMN󼺿M$kbs(~X;Ԗ1 0F_E."%nYsb%ݔ4i4]ܝ{j֧|p.ĤB/ áI,^j81X1bPZA}B?.Y{vj1_Zk|R yhři}zB:­]Z9 (_~2 Ar 9g?CO .&Y.Vyg512 ߿ LLL gp_Y#a jy0qc/xqO/ }AP ~1~c``d7 õ/WXrN1'S``uJ̘?AF_vv 4HtD*\8 u'V͘cf~Q) {yh~ 7_b7O4荦 /ES)|jZd5T菅nM! Py6UZrE׳C4Y7 p?dxCaAˊ+r002[,,)LWh#r~ Z`';1\8g!9C;F 20@d2^7caY.cWg?000002̙1 @Dnd  ;^ll8srۦ79考;Boi .i~ɂdzFg69ozt ׯ_ c`kcjnlfmPԭ!`??_ !o?A/ d3׿3_9n9v5&52˿/  J8y~```"~? Ll" _^g6_?kY ~ ʮ"T 9TԔ3wv5ݳ㻄,ߡE7 r'x"׿~0|f geϊۏAC7ο 翝gu#ĕ3g蒀_ L 1,|\G l%4 ;:::ݿ2{֜?*,]n6nyyyx~320~ِ 90@ro ~|`8wÕ3 382p001000/|pq.!m+FY Bz D ?3(闛XNF2sGwۿ?~``ggC ---L cgX;6T1/̰~x N/Vp0#~c.6V6x~G_1/e]FM ,, 2K`r3| ~24771|C߷3UUWc```(f?27lll;ww[w^3=ۇ  \ \\\ lQ?0 ߿}gåV|\3FC B ?0 2q% YX?h0VT3CĚJAEϛ8ʚNj?JU~V! I {kC:u7.p\n uu 7<;9v"3ҒHvpFR;_s W%>.6Yc J)D#!i?YȽ0YL0 B*Pa+fz[#ϣ')2{-fcccشe#o#_N}biq10gf`b/X>tV0@r_~3fxÁ}/ *`)򹹹888!9Ǐ _}e;Ï?v|?4LTM3AJb 30g``dd>Sٕ:yO6azf]]ݿJ  k@32 `_ #X g/?3bo}=>>C8O844+'+7j&Ћϟ?W_1|au =gWbdгe`7'!!020003̺Rp9ˉXҽNAF϶ag(>%SE'"x!l!$(~nJ0puW|9_ο{֚,xxήSm:D2sy5?q9WϘbAgE[5mj+h5>"B~HP%"2"/SN17_cE譵T~],qy&\I;;? 91fo!SQ?>XR0tDl6 $쌿LTjC`Y.o5,,V x9l mz*\ji G(Hbz٨l_E|fM*7yQ΂_sBR$I֨H#MyF+bLDP93^ I}068{/JAELV] %(Ii%U7$`ck?hczZ-)Tf23Li_s01=̝vGW{VE b_9[M2aZ 6ჯޤ!KWJ-_K)ɲ !I` dn`1!й-/C?d+ +l|:H<׍A??V{`1JA?ec E*IAA igb"B" fvEXH@˼=k`}z~~ƭ7ڊ)uQ2}%)0RxC˄^_ ޿c#ZI P4&qZyޓ)YFk~%6ǘ./!wǧaw:]pEʇEԤ okQ/nT JA݉Y4Ņa. >s-6VF5W ]tn=WZO79!P::Um󰦮n/~o-7JPϽiEp-YuBEZAwo."]3Z\*"A|.H_;gdY9gr+u; NmkԁKhsVAAB)!Q2L_xzLǷg'5{:kc i"IU%3Ƽ !8!Xk5BXCq?1f<!}Z_^z稾+1FrcGo2^`m*vxuqu.׺f1JPyeu Dbaeg"x ;xX66 h+IXh8Gc vK_G>X=Zg7\aQ˒P  _D cZ(ݍp|,Av;]^{"IpRRe(8~B~H2oaxl1ƸKE_ی5&zh .> Kmf77 Ls:J@L2 "4[%Zl|4;X [وF m";s-t!z_|*Ou}^m )RJkn2avEs(Qm(jLn+O7[!O`})IY IDDP)?d? vCKp 0!Xۑ+}R rDs'I+shd{S;po12"2y؃ r0bpt owṃp^)%EQ8ZfYvSui_~}/Mӫ(Ι P88.h--#1cXx_yn?|fYM;_\J@}U"ʥTǁpU  m-A@? ~@҈ DC2lv"982T37cf4ܰS%( #;3\.z'ǧz~#A#a:`uˈs̾ _5UUEJ)nYy~evXw&ڕϰWM0L$I8o(ba2c@.nUlZVY|5xvx5]-qѫ/ЯOF7J44I)m1ZJ`}1ՁZHaP a,|tKSr 5|?hsv˲2ж-A9qIJiCa3Lܿ#C[ 4 ]/f ihrepտu]( `Mq|eƘCObu@!t__s6mDQtYS'B$Iyu]6 Ĩ_.a #lჽf;P̀|n53tpTgY iF_NAݽ[DII%%A*H=O (PI@H.Ԕ@sw;h/*&$?6n$F#mJWZӐ4p9{/{X#mW3cwNav1lipQ0[.G:{ 9~o{|$gvz:Tu57ϔj ! j 7#MTu}85FVT`0(ijrY71cN|\1G-ֹLhsFe`9lY J`FB ]B5 >Kޠ[,.n!Oѥ H ⠃Z\SR/|Op\ Cv8N%˲"4TXݎ}ޫx;㾭qtHr; Iu$'FU1&Sߐ?z!"DQqKyI0{*Y-3@oX}mGM:3L̈́ja)]q}W=a0\'c%%x֦: t:yUk>1KpmZq0K!n(7NY BMuTb(b" Ms`DqwvoHRb}~`.^F>]ExyV7ٹ8?Πe o!ZCu16{wڌ8Q̿1r秠۶p]Wǡ _33QIDJN'8>9r{zeݿ [Hh~B 7he3߯ *^;&Q RjcT)˲$Խw\=K`~.[+ C6WA7) G \ߐ%dnq% 9F烻@7SeN;v%q_/^jzŭCַ#v{ib:F X0oy}5 k?|!"+h1!EAHkEeIRJ:]p{ΙtX{oz Q̀rGÔa#w?`'cfr Bj$4M' JPE{/B61M-kTHV),XlM1B $&k7Lus$0 C-˲<}&㇪uke[Y`[ 4՜٥Frr'٠ghAT?piR!}r]EQmj5ۜAk'&nYi `m]^_C"Y$ @EspL 5w~|wv{ X^wf81FcZ\3TCŜSə#IW;=>_x4e!nkJ)gZ5MVƣ.2:FLSP%ݒVEBl÷Qx£<z4u.+uTH(0 ]2MS뽿vJg0(kݵ? 1NQǺ@LB!&Z8DLlT[XY؉QB{bl%J<Ϗgt:=!"bʲ\-c-k!,Lc7f+P]OJBB&w\,M)Ub6Чi\U%2yNb5j7/ JB\DF_n$j#ƃx^_ ŧrRO94*m}ATU:C$V=N@7k[:! 5T4" PrJ*DQ8ADGGP(SPBlhh(> -PVQg㡲!s|@wٹLUW8owh:ee`>Q"Zftfwbz(m}7x(@ez?U.TΈ$h5#bo>B`UxɫgO/.aKs]K;ڈH,NcZϏ1xJAKpEЫY,3aa#Zv>RCrZ(c=MN3l7~T$"@D.Dd#~Owg<SEQqD^=+}?\đS3\!Kxjm^_ֹ5VP񄿖BaQy4\; /n8 -qD717CxLv@wcذ;s YigC&sHd.żi\聈8DtM|c>?K`Ɵ'Ed BAJ C!8/ Ppp 1PJ,yl5D[n{~wl-Z/FQ>"U*WQ{$Iv84KMw߹k.nB>zf{zظ(ت@^ >/8i0<1'ý౸=[rk;|(  FަaCsپS\9-լ7ȠaZAD~POeeE@L$|?m\J@}YW W!,amuߡpX6b  bm΋cqD=b`yfy/c<_OӴkݟl:($ eYʲ8@ӗ_!V.ZmJ ̚jq߯]osіCu*قga' byý:{x=ZI6ϦG^xE&Sƒ O/LJ}\1֛zKk#\TJ֚g`BzNiGRfJ`]_@[$8Z($. .fq⢃$PԵSEJڄZn w?f~ðt:moF#EDzJ)DQ$I`BDZkcvThP@c4nX)9WZE^LvcWWAc d@:I6a6=?nm-$ SCԘ{e*dJODOu#{< |xA̫}Zz/v"[ `^ v-4=qeeYuoJP{R` UpP\SP$:n-u>8L\ v 8h6m;~p >mضvz}?IنePEV # H};蓙kZܲ1e@FhvQWjCIq6x?:DHd,) @\6QbX()P4`;NGY&VgD=+ Bd"Zi4-˲D)7wD4 @ffaxt]}<VK?o\?Kp}*At X@jqpHEVW?A:dvS4A]u T K琤ztw;۳R AP qmۻzuݭJ"jLdhv{N)& ,P5YAuolC߫"(()I!{Gi4 &!AN[yt,VIQ.*e4iQ@~YsȂbWxz}6> ^#?>1@]Lin5}˲fiv&_ s58FGEygjs !OP}+ML`JZPPԂo`' *2#$3$k sM`!0H{GK$4X\FSq=LPTA%U=m^`0Rf,/ ulPSȲ@(zcNjkI Kw.q׍3t$0A& `$l2GfMUϲ❧?'̑ABa""S[QEa֤׿}<'4M1.eWYn0L=Zv@!s1΃0B7Uz$q8IPlSxT F_ٞ{p;ed~t]]YX1}ej+-ذA&/h '%:/|zuNW.LO!0'>&0 ע(:.k{gl88vMZkXvƍz2Zkl6R MSJQF޻?H@FIMOa-MzU@m")lyф]Xf,\% S+ *FiD:Lfsj]9jDQĎ_,'{;vWIxQ?`8Fu`?9.,, @*C%@劯GoQY ~@T8~ҋkLg7<=nt (D4gR:Q>ϲlSDnK6O@8fc K?"{'qk^\JA{{w3W?@V1!`)~tiH!&"v/ j~`ޛya(s}$IBJ)a݌H(v}Q<7Zh42"X ffRJ(n{= 2"9WVhP!Cx'XA05B؅ 0%)dBRA(’/A42|7zѓsz#y[xo6NsYV "^7k֘Nx<Ƙd2I4ɲ YL8Ta]z=nZ|[=KA}w6 ha*]$ئ*`Zl B8,b!)*ajf۷3TZU_ MD:J)E;v'̼̮fIKsh4nx<ν[̜Xk6GGۻmjJPTGRE?B Eu(JR*C I 6PFFl?mk>7xgU f^ZkWR`7y_N^hV^} "f0L1f}2˲kc'gJ걕DQ\=KA}s{_ h h]JIJRv==LT]p41lrc= ba63̲)iF[8[%!"r[vV#I 캮6L8lKHEQ)ZKa~ӻ˃HoplRښiI8"Oh%l ǖ&'wEBA"z'5!}4S24he!)%ioy$/D]`цOCNZm䷶ ' :P#rjǀ6`:|?=>{>^,`(~h4ڛL&㪪vɲ irQ$NW,UdQlhK)5|>`/JAٻswZ䰵J:k{[ @caI4 (V*j w;,|曅Nf 17Gxjq|ffÐj+?YY)7Q$W~y^ZpeX(= TV&UP9%H,"  Ibt<<=F|ɯ Z;}!><-Iz~HN;TW`.n^Lj {"wn@kAFo1KAn]<"Vi,@~[YZRX6vR (&w Q0Û2}CQKѰqeP%"\ZV\׏PAQ YEE1(cLnn7iTRfvJCqB/jQS"R| vVS?>C EQW@kg!MRJBp:suO&p3zEfI=;`-7DQ9(* K)6cliF8Qf3qRBY$@uny,Q7{sB YQ$?bn»,EdccchmmeaddddFĀU@<mذ899yXYY #J #ÇߟQ[[A: *BJ^  eUUmSQۦicy740 N84M1}"go CLL ҥKYXX'r5_TT7GYYǏ,RRR͙F%^v>?&&& _`ff~%//ߟbmm'FkFF>} ؇۷o{-f?۷qo߾5E_ ,YHG"yw0lmbb"83`q/cp ,|9eY<Z=C!'}΍Pu$0|msguCD}r}q!MS뚶=K]OjPƿ'CʃJ O A9B/d  ݊Ѕb6H^H6sa?oa{%"dY)%q&:7%v,\c1Ƶ֋bk4M}_axeY΁ c~y^ !,ߤMӸD~""+IM۾_81|wssqQ׵nq]] q&߸8L( +uwc`*O>1۷a„  !Cssss9;;{%SHH近 !1 ,>}hѢE%_yaAO TQQ!+##+&? ,99000L Qׯ3߿'OfKG(2?~?///5/] 0 % CߝtsGy4m>>{קQXk1# À(R]ޕ*J)Ƙ#CY윣ifAk` X3g!Zίc?L=(m/!>On"zȲkő>|`033c}6ϟ?]#t83+'',>>>?755ec䄏t=Cb&^Gspp0ٳmӧ{zܹ P #ַߏ?2:u꿀AO4Y8z˗ Ǯ>FB'/YYYoo$999ϟ?3`%z*q ==vÃvoݺuӧO3A/F?}He.?]]];v`9#i [urMŋ3.^vR>f9><Ǐ|||TTTWSHFÎ;>}cǖ:thϟ@ a;vu ȗc_]]Ws OOOϟ?3011a^FNP~Z'311)322544d622bTa+N>Ͱk׮f߭ 6̽|)!-@_eؾ} 3888.]`jjCeAn `gg``!###!![[[v+܅5+00@rׯ_vpyVVV/^ܰaҧO>'Q=#0@~?!K1<} 6[Wyyy\\\ޞQAA*\l\osk5# 3gۻw_W&r2@jBG;_ZZANNE>: 1 %l*[w^%dK`r/]~@Huo!}Bz&ьR yN.]99e6(f^DB8i "$"z~>Nc bהҹzv۪'ZXk) Wl{```0߿!77ѣG ?KZ0@)**JzyyeJJJZA^^=???z1OE>w9&66O<9}=z9 ]"'''0y ^ ̛71##L?D% 'gervv611 '??_;;;f999!U3lv!\gϞ1_˗/>dfff/>Lo߿O8^^̝ ' 7ؑva >@Qbpw=v&6R J  xcZZϟ srr&O<$ 6:x9'O"DF߯uRze;;8?v.o߾==vC`{Gˇc077odd0mڴ# u,88qݺu V%`Mo555ygg,999Sݳg{=amF)YYYPPڵku2 ǰxbFh}z߿?\...1sΥ_|Vףtӷbcc-Z6Ԝ 0l;0;vHMIDnȇ+XB#DD3YœLOEWM_{UEf r qH]v1 o%2;Y~EF><1}\>B777˗br ˷>}xaH }y"+### tHf{mmm6ovT. ] 0 "%g NYz@a`q/pI1ZD4UmUD..|HȝOwf3;* u߿TUU߿È@D>{POÀXῢ"۷&<{ `W`3ܺu x2 +**2]?Ba0Bk`&׮]cPSScb```B1\JV...&F555k׮90ܜ 1 ? 0k/%DR\(vQUn؆$;sgC2d VU:tE7o2DGG3`'yg)°t =< q ˗?߹sIII]]]  U d```x)##Z[ZZ2$|8 `I|M#M#M#M#M#M#EyIENDB`phatch-0.2.7/data/actionlists/round_corners_shadow.phatch0000644000000000000000000000362411346363116023623 0ustar rootroot00000000000000{'actions': [{'fields': {'Canvas Height': u'256 px', 'Canvas Width': u'256 px', 'Constrain Proportions': u'yes', 'Resample Image': u'antialias', 'Resolution': '', 'Scale Down Only': u'yes', '__enabled__': u'true'}, 'label': 'Scale'}, {'fields': {'Background Color': '#FFFFFF', 'Bottom Left Corner': 'Rounded', 'Bottom Right Corner': 'Rounded', 'Opacity': u'100', 'Radius': u'2 %', 'Top Left Corner': 'Rounded', 'Top Right Corner': 'Rounded', '__enabled__': u'true'}, 'label': 'Round'}, {'fields': {'Background Color': '#FFFFFF', 'Border': '8', 'Force Background Color': u'true', 'Horizontal Offset': '5', 'Shadow Blur': u'3', 'Shadow Color': '#444444', 'Vertical Offset': '5', '__enabled__': u'true'}, 'label': 'Shadow'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'PNG Optimize': u'false', 'Resolution': '', 'TIFF Compression': '', '__enabled__': u'true'}, 'label': 'Save'}], 'description': u'Make thumbnails with rounded corners and shadow.', 'version': '0.2.0'} phatch-0.2.7/data/actionlists/round_corners_shadow.png0000644000000000000000000005116111346363116023137 0ustar rootroot00000000000000PNG  IHDR>a pHYs  R#IDATxb?(bhM#M#M#M#M#M#M#M#M#M#M#M#M#M#M#b!FFZ;d W"g``d$Q@]@Ls0 D |@ؐ@4סIIY;r2E?5OϷ`lc[U ަ)h3o«.8GReVG-dȡز4^yȫo_c] wA(p$kt=N1 TC49\ Htpd=ϻ(==?q<|^޿6\0{aB"* gw#B˸k81M'DzTI" 2XXAZ!m*yes u3EV{uҽu]}U:ExX6\lt(N󜒆u5n_o-mO}5'MR_|MDA DߌWHPىf鄜N""'R_M`h]3~x}x|9~>Oj;`#EyFȲ%$nŒNm:ɔNwfHt r s3qY+U'W &'*,06"/=[ S:\qnZg#Ta )g;̲wyEKH}ߣztK! C0Jg5@wa-RD >p{ql xpgG֬PpUCpHԊF)b&%`/\`:igSX2z Ps烠tjߥdu:d".8{/ I\_T)hTsI Fem-g~?_v{&)s^K)4MI|Kn@ C)^tOdݢ(bǢ͌Hȧ@d#( =ռ`ruZTNٿq08h-A @BȡhA;٫ )Y&a D0ZWvDWG8vYIy٪7f1%V|B^~Pf0'`qiq mc <ϏeYurMҳ8|0 CiN0FhvGBy_qdW9W1@Nj#B.k'N ʑEs:Q1ZUQ @'>C7]8j񡙂&\mSYp[*҆Z 4ċLxyCC1#Ep_),|>0L۶_sQD' tˮ0D8Vibܕ7f/;nwYB o=*m >o':_UUxUc;PՄȒ8,xAVcʕ#T9+^@X(`4$.̢vpЉ2sc(m@Y6Bb:#8~z}of"BktK D(`]`w! 7fdYW[SEw{vMQS6#Q!@0 x= v6gly.TrT..K$'0 |H-\$);*rh4a4yq }ZP/~(b!Df RJy۶j:l|0 C?i#qZN; !Ԫγ/pWjo&lTBT  glNJru(SDFA֛5"7؝;l7 ٹGYѸ,0U{n{h '&N , ^'.ӵ~,"Ff̈}I7|;1DƫH9@R&-v`)I4Ԁ$Ӣoxzb؟Zm0-^-(Τ3XJ!kJقp"AeO&qQJB,&Gw wkܬ9V56^5 |0 N J@%|vS3Tsr{ &Mppy!QcBӨxgRoȽb,(_u{B&D5eE`:/B.!J_r|"R©VJtq<'qmǛ3ޠ]m;~a`%_||A!ߛ\km9 X` ZHlbjV7_Otth*M)-\8|nF>S(¶®3 NL'{;VV$}sP8[q䪩1q3^sZOY2ֳ>%A_YA0 sV\Gr fNr@bIk*;]@e2/>PQd!VknRPF)|qDQd+| -i\Bf0U H8Sy|yX4J9~ΐ]rBEE5y~xۦF;+щ:Z5 tSVM8?r-84v۰,M{&s9Q,*U+*U`(7J#D mS"ηp C7+%63(2tEDs~s kWO-aML\iOsM,4x#[_^acuBg"lN0? w ̜PD[hOKlo88nOxk=;;nC"@)J\e+*穼k")ͼI }fT r 򣕴MG$OeV L†~K;j#DNK`=  NYsqE<|ī-*f/Kg<=y[waSd=WMKL 6M%g1 b3(I !П)q$bv`7].JC1EO2 W?GG`-̸HuYf \N @I1aC(dLoueܰUTQAeΏ8f6Mَ)} "}f~b>P"ۢx\@*eg1PIp;"9%wt!Y5Y-\\]s4bdf%a:򝩭‰F̌˛[&MIT /09%x y7=NC1?%䏄44KP $Zz$N8'B)B^^ TZ;M9  f*Y-a)H_֞-RPT# *$wUs~d~Yn8bwr&`epEv*ihqwD\N8?9q`u4u+ono|ܑ{bu=;ꤪɘlFX*l0O=N1 F_̌$ z:V .HA-͂qb g~,7Фܭ)nһN NZlZ)ըUIA 9OɿR\=BLÙ%K ӊId{BN(9HL6|T:3N0J@fj%H`zqL2eT " xh+lpT ݚ*Ws 4oMN1 ?'0e"sn.$JT])IltX!q,YJBM / ͖C`HxY;A/TCahaV)|*c8s=3OPa(H׊0 /k H:w$ htmVx~zdinoT=J+o ňBi 'aIj=AΛĖWOK1/Iw7-DɫAEvQdIsefOp|c0R(VpJ@Uj582e AA!eߢYcv3aOg֗KBt_x V2B+):?dPJS8~l SqZM`7H*8r%qzi!?Sf/On\qp+:ӑc=+n_MK1nx/'$(Ban6Izs 9;y)NLз'vkď+R?mL**I1u'Q3!sf|ߟ9GV+tq M5<=DR0/!>3b?樂ff%e52e(FPȪ@/D2@&W?[v;2t}+~~I,jiЈp~qg5F?|N1I(RHP<5e* (@QKλXן5;O$Ϡzq=tUBIEyì9hVKn?1>xyf>[pWOxB7t vhdMY16U1c->?9B(8oY MiE4 1oDȈqf Qg-mgжo ) v J̟gEl]bmzY-zEpt K4&%IЈJN1EϬ,yJ|"5MP"A$7%0;wJTn*aWabfa,88ʲįnÚקGbk얋 sy6m䍎rlX)1dHR`]>c(>tÊS3ȺLTdXKxds|EA lnoXi&jyȎBa90?xx`5Ys;')7Wd6/䧇hc+cc[Z zqBwmdS.(4N㢠r ZvcPb'X0 &sx'8ȨC$H?$>Q娨]tYZt'8㙏|N笤5x&qz##IB&Ħ (1N0?;44ؐ*$ea@@4iI; 6lHx?~ {O=8IV 5 E-*&EH|ּP=i^Y~,pP)$0꒶nq2לO(R:G&|FSF z1mؿ4r6=Dp`RjʱZWV"#:fm`jT A. ?MO G;; ֑)A֢blX:p1Rjцr߁I0Ρj{jg}J1FOn~3(jѩ\A.tQPQ[MbJwN' ne{&|T4lW5 rF=`:yg<s 6K7TU)zwgFcT8uKb֩n*1<6 H H+&";lank$Ĵآdޓ-fZ`AJ::6ONmwK`A<ߏ|e;Q;QZlIUfZLqec=EcEn2Jmh+WJ1eXQ Çw…"jkm:4t+A|sIR egvCъdO/r50]" nB똗wV_mA+$/@Jfg)B;TA6NEkJepRD4:jQUz)rr,UtuW.!yn~0`嘧5%nBNQD}-!AEIh~1VjKD6 ,ܻkqdf27eYJaW f:S f g$&Q-r{`<9>ڧyX',РM'jY9I}9vg'ӗ[2?ȒZ0~0DC)VBޯ&9Lb9Ao{AnkhIeXBF*:$KwwGa!HQF!BHbEL?',9{j {Ug)WK1ǯ,hhA(H-L#UAJ@$THS[HRD] kEL-mm;3-kȲg|Gxا$&v(JkL$Z2w2Rh.}vCnQT*[de`ց]&TeUQJrQ;,Cm! +a( h%$ϣB {}!DomC+ 7}iQWc鈸`x|6a2~u^Q,957;T(դ$&B NAEO<A$8J+=4R9H^2(!bT?͘@O+%15"i b$ST1 0& '05EٚKJMxZޱ|_ f,C]TIh:WeHnLZ5o44U d8J<ҌAs"(0_+VK".t̓oVq7_nq|rJ?0R;NAD|<!q""$38 !A `^#o4q :UT 㱻\T(TS8OKNy!YSΨ*m0RDUAq8gi <;qyJM<4ڔn" 9;[784m%gGaFU4ˊ .hj0-Vo 0nf'7,[i M!vβfnC/;r * 5$No?;%Opɤl߱0hf)bQ0bpd^f,ٻXAu^x.d84*a51ue"3R531#Bz%|J8W+o4m9mӐUFaBLфDq \dmAMi4MN0 ?NHq`M،:mfKɳϟ_bU%Ze[VœĐhoPwB'p8\xN\jgMV .q hwckip0a`o(7Wv`NAx=9bvqoo~jɈ1_B^mHwFjDm1D \4>k?^_ E!9%BL=u 8Ī_ MN!80d\hlgGpZ7n<x?şp;Dž⦁kaߘ_;?̜3;)㉧3Ӵ`(dڍTq䜉)#fNa_vG.EW-̗^mPHkJ)~"77SK$Ahģ{i\NhF*zO=`> &_B Np(99'JYYk`#@Y+kwvcǨ|nϰرa|AN1 Ed&3u8{$TT!i;$a%AD#&D7)x58/Jly#E%@鉐) :L R+z#亹 Z ee1M,y!oh1MO^Sj }քt?C)6VO3J"(Y 0G9D԰@!\/8 )bAy~|_ݴjʤœFdL"-ŧX?[N0 EO^m2F !$ڦMl|"6>\[' t6OL)J"Ȓ!Zw sqmq _ab 49p8/ QhWCLĶw:Xdۯ}8P5:t3 SE3ͅkqix=nL,CJ&*DT>dG=OMFG*Wo>ذ 0nLYy_&G'PN_Y? AN@ E_Ɠ6Z $ XL:=f%b0gswg*xkDL2`A, }p+ӑ6]BPA)`\\ՌFR+Y62] c+r>ѥL? ȭXQ]kD7$5 ƦiM5bblqRsԜW;XD#ɱQR$w,I1 E83F,m !ZJ(Г-Z$~\? G?Z"t}Zlx|gB;DŽN'pF([jN BDHNhOOqV9- ۾K%p;i(M=$("@] fF*Z2:lb ;AOO5-؛3|PyX Dc Y>lƒ6sYVT x[_Y_w8;2PR~_cb5 MnAD_cw<6$Hp nϞw@ ~+Ju_sg)1RT=r:DVHט Uȥ_Bg;Nk6 FPi!Â8s5%r6BzI8y,hpϙG~L;vczd/N1 "lo=BSٮ4oo-)F3:kF-uzlA< XRj#ƔL0+n2iJ$1Ii DB[4û5fՂ6,(R5͉ȱNXo^SN]=ShJhw[]!h^8q¹>*\0Zq:DgE2 %B Q{bfgun`" ArhaKCbR{z6!4n} 7J$ctuխvу;߽1( Gb3WyLxxm߿~)us\_!k>sCw߸*L:AiCv>׾6 kwTo"[_+&%42 ^^SuIM|h,TbGP g,A9*O͆#mO‚T2FCĤ4n@FϝdZ DqL?5q<wl0gV \(|N"5|}C1a`^OO|qSS4i#J#.mP.Z݌▲q xEߧ'N}YGɎQ y&9AUvS%erD)2j(0"" ~la*fILz|D@ӅpoWM Q-K%R_vݮg%WZ9:V.#(jHiA =O1D h? HG^:DƒW?B2=V4+7bP xv&Rz }xxtr|zFS@J|` "j4̿S6Rnf7 5WGN 7#9W˸$J k5DvB)\ +7 \FAcb"wGH7.c P&Ga<%a# TW>~/[6n!iQAPZ,HEYwJ+|*FsY)Ӓ:JF4?_[J1EO*i3"_(vw17Oq!$PU"`h稶)bf^0~gSttUD^b3kvi ,2VActJ XLRjlȋkɄ7}~:כx{\Vx`$5˰YjcIFΑ֍%/Z/Bn?;Tuϓ_w̤hֆ]8񢈛Fjn!?m_7=5P߮p8R SLN$VEz%%oog 7(Y?НYY`0;t /e }`ɛ [OeB!9@ [ԯgڧbn/޴w\&1jN.Ƶ/ݤ\,9BFtg*wb,2(? A?]A0 "NI=ܥU;쀓&9բ} hso蛤1WynrW.O%exU<*;'` Ag2|p4`>jj Qn3qA"n_Q+~>Z"eF 6L!˳:s qm%%@e.=2ʄ'0L 0ˆN.ȟ(30vF+>K0 C;dzӑf(D;// ްZu!>S+m`k? 癐SZà㪵LVkman¡y~Jvq4vja)6EFK !kIe&6Q Iȹ RxkEYmV*o$4L/ رg] Ul#ݧ Y)2] xS=|6^&rf1_6.4NjÖd}ђi1 ڟ?}6V#i5ckggbxv迄t.3.Io+*^ǡU8W(4-(~ x2 r>LPGN}VrJŽd}0Cp'өw!6d{]q a #`\aL,7Dh㓍k}T; eUIV^=B9=y#DEBQ1 ܾ[@3sh{c0>[p/*~$#=ʥ,ėCje>] /6wձKL==sLRɏcr tmbNAc>1i`HA`WA4Hcon-iC&ŀ;8kh7xh;Ax{_B3R|A7SI<] +n/y;6y(}/yn̻Xn*}3݅H]\أSμ(ΊRL0.'zKhꏢ2p.!'#U1 {f^ktqϣ,}+9Ydt}p.+Kum]A03d;$T{A4`y_',vz޹^?d6[/* ZĒzwODQKeSj'Ek ֺ#Jo~zBd|^ڼk_G%Bˬov?U.2뵜D8`ɱju4հ*1D6G 5>T7e 2ceA CeC{ۂAɔNLt?0W6Av^yGB-V8bm^sH(['8)$}}Dԇf&G" or.adq =n6OwҬan VC h&R3hJco/ l|]A!+l2#7DC xO4*RZ^uϓ?>࠼j 52n\#L̨6@٢ `tRh5/ML@UHܽn2;`4Dgzb$uMX~XSt%@ʈx g{y|]10c^lg͗ B q1^ k] wZ:7z$ژYkԆ~J$jv4&&"헪Uh<CTtj vqK۱Q`F̉9pV=+m9*iN9GQ3j݉5\9ta 0 _Rxe xk(^@6xI7%y|xL(cC\DOzGtQP%0,%q$ku74O"\*URD^*D9h Vp (ۨH!fy"'Ƣv&\w7VU 8YEd10 E8@vÑzv&h> :WUS:vl$Qk}\v,YC$q MS"'G/pmvLbf SUS2L+WSHl}Zl)g ( #cV;A9DE BRnߠ9އJ-=2t4j}<{w_ܽRF l;0 @)!nP1 YZvNPc X2DsyQ{8ޟ.y["K!Č 5bCRX..ꢩ*71 X3e bse1C"<)w]! i(hAʋ[v4ZS@egk%@i>D*^ǁz_0)1w̑nڬqVm~sy" D1y4@ _̛A !wU:% j*xDɺ^"~ &)s<Bι~gc1mJiSJh-yj j}\l5?j j}@A!!s~RNZbRJ]RgXD{/A 0YJH[/ d< A0H1ffPUg)"{J圷ZTJl9tn; и.p٘`A†Z=sn~caPJ5"*̦"cJ50c(Z. LDd"*!R:bsulA 0!Q(kՋ2IBFpBL*fvO>8I6=缤+${1 0 1& iJPwڡMӠ7'L"Zvw׈ k"2U0̬Vwf/K K+AR?Hq!ϭK7 I `"T51sS=4RZ73|9׼ ` !,1&"엻0 C/[6- Azzק$JXz̜U՜G'|CO\얱 */&.KYXX %_}*"6m-G8M#M#M#M#M#M#M#M#M#M#M#M#M#Osv1IENDB`phatch-0.2.7/data/actionlists/scale_icons.phatch0000644000000000000000000002460111346363116021654 0ustar rootroot00000000000000{'actions': [{'fields': {'Canvas Height': u'512 px', 'Canvas Width': u'512 px', 'Constrain Proportions': 'yes', 'Resample Image': 'automatic', 'Resolution': u'', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/x', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': u'yes', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}, {'fields': {'Canvas Height': u'256 px', 'Canvas Width': u'256 px', 'Constrain Proportions': 'yes', 'Resample Image': 'automatic', 'Resolution': u'', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/x', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}, {'fields': {'Canvas Height': u'192 px', 'Canvas Width': u'192 px', 'Constrain Proportions': 'yes', 'Resample Image': 'automatic', 'Resolution': u'', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/x', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}, {'fields': {'Canvas Height': u'128 px', 'Canvas Width': u'128 px', 'Constrain Proportions': 'yes', 'Resample Image': 'automatic', 'Resolution': u'', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/x', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}, {'fields': {'Canvas Height': u'96 px', 'Canvas Width': u'96 px', 'Constrain Proportions': 'yes', 'Resample Image': 'automatic', 'Resolution': u'', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/x', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}, {'fields': {'Canvas Height': u'64 px', 'Canvas Width': u'64 px', 'Constrain Proportions': 'yes', 'Resample Image': 'automatic', 'Resolution': u'', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/x', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}, {'fields': {'Canvas Height': u'48 px', 'Canvas Width': u'48 px', 'Constrain Proportions': 'yes', 'Resample Image': 'automatic', 'Resolution': u'', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/x', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}, {'fields': {'Canvas Height': u'32 px', 'Canvas Width': u'32 px', 'Constrain Proportions': 'yes', 'Resample Image': 'automatic', 'Resolution': u'', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/x', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}, {'fields': {'Canvas Height': u'24 px', 'Canvas Width': u'24 px', 'Constrain Proportions': 'yes', 'Resample Image': 'automatic', 'Resolution': u'', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/x', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}, {'fields': {'Canvas Height': u'16 px', 'Canvas Width': u'16 px', 'Constrain Proportions': 'yes', 'Resample Image': 'automatic', 'Resolution': u'', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/x', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}], 'description': u'Scale to 16x16, 24x24, 32x32, 48x48, 64x64, 96x96, 128x128, 192x192, 256x256 and 512x512 pixels.', 'version': '0.2.0'} phatch-0.2.7/data/actionlists/scale_icons.png0000644000000000000000000005251311346363116021174 0ustar rootroot00000000000000PNG  IHDR>a pHYsvVTIDATxbd (h7 `Fxk o޽'/ϞuoTXؽgBO#200edP#OQ..Y[Ln}&~NjöUD@; bhG200fb?cx'Ö-QW?_2~]JLLF&& ~jq !UJ*CBϟ__2׻wLLLjiI #_̶ܕ1 0С+:3D5!M spGzfV0ּZCfw]'a0)@_9!0 Ĝ +V F.%}v0Wꕀ$zpGiLJvqױ 0@'SdB@* Mqa-t}j,KJQ YEd#wұ 0EZYu $` 6N * L; H{;rK>dUz$/䘱 7v..AAiaK BoK._ 2p8f^9/E$%w*7i}C KJst`%|(!]na` [pƣǒRP|/ر QDѳ/>{e,XUh`n#~ma &&'#X%95XB櫁+݅ہ{݄Q4,ׅԖ1 @Ǹ ,,y OaU,RAA.ioG b 0S`Z w vKy:+Em5tfA}MnIkùכWeYsx!@/>g`3&>L+t`HY5x}&eK/z6e &IBǼZƦ{Ojs8༆7EA)Ŷ,&Mڃk[:C5f9Sk }87 3˲]Qz oԘ1 @DF`JJ\@Hs-;x5X V^ JvQ!-wyÛ@>t0; ^^OZa$i.rv̵sxu] AA+sDԴm!REǧ,ˈ1?wOX; @ͮF&f1Rx՞ 7`@*!aK-CFɮ(bcūa_ @bz S>AQq $lՏwcGmefz:&@jk>)Ќ((bQ1v-{sU)p.ƞ@i B(`ƲK۶,˖B! J%~A;@DgُE2Ƅ[P`DC1젆@dհk#Fz&y?9#:I^$lFZkXa4e  _ah8,/d'!,M}Q[۶ WJ GJ8p:x)& ݁R,ˌRLyz 1n@D߮( bԈ"M@w!R8劎6; 7F] l(]8bfh*lf@k b=`<* z Tݧs?g.`"&c( 4}˲,wim8caZQ5͓Ak}}0@QyJD{XOe,pW1NPDOb`[iT Qr:7PPpC;PQ"RDCAaec ivvF9j韃} OUu^lαn\705EhtXY./oyTཷY<~j,"'0@T$IHqڷ="BQeIEchfSgax%EѶ]=P!XD& 7.f-)Xj1Sqbyvr ggD.suX,pC n|ޟo@0\'q̽8{&BdmPYY9'f<~""03(BeH0 aEUU(M MSac֦m[gSd:Ͽd4ctZe1-g{1n@EYd [R9B:lTN6l H,03_oޟ<@<!tZ98C ܌J 0Le;n,8iq(Zcd7"iBDPUUmQ,ڶ""圛yODo_w9I,g3YlG~΀{_=N@ ?O~Shڎ#d{ R,JAB&1R,e'N <ltŎ#4A0)|xC* `:m p1ͱmYql,I(='5PU0Z|i4( sja(-VDգZD<}n Pι>V}'1j@Eߌ Ċ e@9i.V@`XE,KƖI )㩦x_,1"]G\鄩\k@e(f嘙yUUQ%EQ0 {DixqQ5]בeж[48&I!0rH`b/"ǧfyPEl]0G AJPy&Bʞ!BXz fa6va@Ї<߼qBfo X]vlN :4DA OsƷka@ {u*Jk(y#f4M)Iqi`9aEȲ "0 Tu[bqgy)`bfnEpO4_.>@]Lpm+nUlR?KJ@@0o<+z'rZT"!zJfP9 7v5Ϡmbi\msej@x;*#Ã($In,F)(y3 `ab!c4Ekֈr8f[+vݫ9H8_q(ua^YUx/˫hoUJ`& %%CĹ} =\|NAM(2R44:XA) >=\ZO |.aжJ)(` Io d]&̅^'rzi>fYvy޹뺧ei*X8˲9 e7M]^ɲRRG`6v+51%0@ ו*z0xP(k"wl$߿8(6wJPs b:H:#G%pYJ78TR1WS0i) oh @mxa71(X߱t1+ 1,M3@m@Z ȅVQ`08Kv!$˲X)EI "eɍFM0r*k uʼ΁:]cEPٸk^o?[.f)`p:b6R:q|i>N&WNa;#D$br$< |1T[Z + +y [m ;-Nc&n5̿fkKzdYp7E\DV#W,J"vPkU4Iȉપp~~g"RavQٌժS.5Ifj8fb%_(8Nxa F[PUNPϽ3&L,]L|㢃ى Q !1#)M#Bo` s~V8 pbh1DPeA3MpXHij(d( R 6c[q ~;VCB`q΋I䤔;zqZf 'O}}=kRU\.tc'DW/*(.gJE4M۶`abLu:lZz&lf: )%t]y_Vv[F/T ?KBaMPjR?[_ E(ACC-M.!s-i{5ji8< <8A3+] OU[ü[ۇ8IcN޼q aZ&_Crs @{=qI\ ŏZe t*"zocDtZeR! Cscݮ\ǻ~/|Jpƿ",vq(q(NN} OT_d*bER#iդ9$8|pK7@/lE^i/J"Θ(Wis6ˤ$F gfΈKJt]<|i:yLFDG!fJv[чCl@bvy\h jev, 8X R4%0Iǚ+f('Vf Mlf4I!<ϻsOoKPQ( Q\:ur_QN]SggN!N N`$%!B0c;88/=u{٬РSUш"~KtRTӤo8Ό )ð;`l6T}օ!XUkts>2_7-|u (kp8 P㨢(1l[8,˔\.i$~ZNP=}+ɲ9HfI3sBB ?@L!%M!ŀaf {,(##[*pknk| ϾԱf\Td_m6 kfT=mܲ p<\v+Kt ρ߃m`ju9030\,DoI( Q5GQq cN5,DJpƿjRt:) s'|>KJ293&dI#;$ .||+@kU}$:?v eZ 3aZA03|yCכu]F Wd \NXk~<6A Rv'8v8_,p:Btg"c(ai$ eYFUUQAp4#3j?xO [=@.tuo]kuE,HJ# D$^%ȕcA"@VB"q`P*ϡ xa$^)5*I%c @RnC]5|/P<\h΁|y:U(BC&~J,߲,[[kyn]/!' [1jP }J)ŘBHkf'rrKC& 4ҭY{zMfsڹx /sܮVpwtBD.s4Oi&Y=yZUP53\v DpNnpn1iCQ@{P@x>~>3hQE0r zT xVHtu#3euݛض1ƪjxTNP޶T P5]gv V` 47a\D, qIIN)B(˻u~lgsJc%љt:%LOU4M뺾,ϳ,!%`zoBmZ~lPce:مF麡+n1Iq)"Zk?y޿XkUs/=@ld#%vt` W0 v !0X쮡0!& vߛ6HȲlUpZfN@'r]&hp@7)GʔZk`:r%O"zэ1 @D,AHBH$ǰ r!'rԋRⲛU$HW3y3?%J(]زm<"` 1C7`cYwJ)uBt+ms7Ji]UtBBWJ#_KE&'r +?PpH{yejB1fXW`(GR$/= @ǘeנ`m!. x&M+Z؈KuwS,$]~ 73_1Pd~,9̲(FJЪnA8i)X`j[m>_)e!(cl $IP)˲in 0`{lG{x٫@5 X7>A!SRV/s=j@F*uQmWitAW!|+]@6$JfR׉ WW[|3|`~n*h*EQi_ueωG"0 Tc|/4 χVNsblpO}A`TR D.sD^ᰂӅ{Cͻj@ ]c_8^ky딼#Ww0V8d*@@/ׯ`Q"H*ualQbZʲdGڶ{Ceiz G?:\5ty{O4t]sX[hwydJp>s{f&\.{wRۭٻ%̧Ǿ{"-y*`_L_1N@E_V#ySњ p$4GHpޑi(,NSshƘ@i<*2JUDd>ez׮ =!1)ZKQXkg#D.Yum2 ιinkf5ƘYmz _'w<ʨz|xub'v?Oi_1j@E_n"Et"7]t!@  PVhw+Ņ!]Xk+f.>$3,&3|)%REWU Zk@0`Guv(8V̼ X$@'ޒs#v&=p&,w$T|ݧ9湸m>U"&3lJ=@XqCaކx*+i\1 0 <%qӘ>_ìnyBV }A.E/%[`K'qwI:^˲|ڶ=}O] bo0ͷ4M9} Ha7f~%-sA3pO6!Wt6*Q$)A K206uH&?\;0 }P"1qe"C,uD M,ՒG{y;1^iᜃR UU%JtfChZeh_)e !Da޺:^$,dO'`u'Q*a/@S8G\4K]?1 *Y+›+L<<< Ϟ=cXbn:VcxDK˗/ ;v`شiÛ7o1z "۷o^bzsM011q"? ÿ {v)00\iA_ g@WLLedOIaSwQJʄjUꋘT]1nP }6 eeG܁eM+pn!K/P( UPB8DQUxk-8F]A,)H\ם\r"BUUHi}c|fڮ뜦i>m33T:FH# xf1oύ+~KɈ1Dlv;,kep<}ECDI\ 0}MP)n_8 tn׸f C֡^mEPtC p9ݽOMd .LDB<<ϑeY8 ޅy=YQ! C!`YʲA._)($I}G)1fTUut>088l ?m /C-uшj}6C%nN&m[qvA4M w=\ 0}&67رNn]bAjAt BoȽ#/. -RG0vs}4M9c g_ hBh!eڶ])MxUU݋u-q|B^RZ - 1P5 p#uԍ58]q `BI s(3Pj`l.(9IR3M}1P' RGe97Ioc-69, 6M 3V;'fgY",!ěi,KDQ0 aE4\RZשZdY<=Ko֯j0\1W"c@}r%}_`MZo`Q)1V-z ~<GfRJZEQ81I<_)5r1 P tkt@KN~õ/4N9 ""ADS~wK!RN˲$"W:!4EQp]`(|%Dƿ*OB@4DQ0 J>\m+YqvF0 m2mB?;x ܎#{B<ȏ YZxeI/ 0J+)]e70c< \j@ d7umbo2t1}]}3LߢOc_`LKbLp)Ŏs`L]!$}.0ᜋ nRqH)ݎlYڶyRJez}lC))q#Iaml(}oYVUtp0'w^ʶ'Mju ƴ6Ι@;mq%.snX[B(&"v_7?[nxU۷oW@HH/te8 f000`gfx)ß?PV3pppU䳰?2?}åK?y_111B*2@"\cD<t?VWg~r4+3nj I)~77v33:C|`- ~yFٳgtZZZn߿q'D[j@};^qlvr~@~+x] ,(US/K8700ÛǼ[ `ƙJE):gEORʘspaa+[}tʲD۶RBu0DZ#sE4 47 I<ϣa6qI'R 6^;lMJq&cul;}k3O11q[wl"Z+,0}s8ηeY2Msf=ۺAu]e0 o,{朧 Ci:B.<;rcB^))%Bu]< C:&oY>E15Ms9Q3>t1R Zk(0#_w;RbW=.F8]R̔bszA?<8oG/rc(8c ڶ\ZO0 ;F /U}2_7/ N. ,d1 ti__.g;Lҳuv]wB܇axdYvRFiN˲6*n]!%M\_R^| Zm=֎6  $A\Uճ,KҶN0J1TÁ?!Onr\8˅ MJ`6}bK`P (BJi:(qo߄axhf`qnZkJ,MӜ#9'(94ؑR$Ie.M}]k!М.cѹ[8c <h`c> .]7#7Jm'm[Ad%uy( ޶- 0n]M @&hnBMh1:U(""VSNҦ ҩS[J)!g$Ivu]eY<[m ۶xxMeu(be!m{?]|J)BPu/A,NtfYj-Bii14 S0|o?"u}`S`Nc*a(g [A EEJD@. =XneR=@i %Y]4ڐzq? KKOx޶V!ƸB !m4`9Ykι !$#f/򥔃RXeu9R( /dL82!O%w)ϗP|xJ78,!bD7FFF>|%hr,a}{XOT+Z`O[[?~~YaaaPq%%%&&&—#7u4l]#?QԫW2?~ݻ 6_\A ! ,T! ID JzXSn{\<&8U܏ kCgfJ[/BmNjC*1>rwĉSkm^_JZ+,SWt{9 3X`D 7W2RΨ)^E)]1 !]#XXY>!y_%"hD!+` g댬W4Zo$!(lGg?izYkZ1Rڄ-ƸSkEkm*g6{ 0 D'ҁHϺ'Bs{kȟAtz);  E15 c1{З & iyiȟBI1;z74̸Lk:ISJ:Jao)ԜLC0 g*a3g|xkGWZh<ah""10#kCIII_ZZ~%LȹZ "-ֽC|䳌 k3߿ ?~$X#˱+|?bkYȽԡG8V_2222CBBx܇~۷o,UHO xxx899 F:{{2\t \my&ϟ?% .,1a z= b3000|a\\\<<<~r޻wÇ֊YB^4$vX?v Jb"Ç>|ƍl\= C1:"9Gٻdr$dH4)vh_uA?EgڿCkMRJWfޘy3ƀBc; _d_)ϕ>3?ipཇR|"圱zvΝ""Gxޗ]1 ?vgcB)":7-P1Vk=1}ߟ)>1 v}!x\ C! =q rApq`KpoЭYdO(UGkMZ/+~<[l۶!c "xQJțV[YRʷ"<+>!4f29w1<e1OS.w~/ 臟t7,Raǎ /^`pvvff[%a+#Jbggg#Ν;\Br߿7n`۷>x1@rhcFGp 30y!'. ߿3;w `˫) `vX. [\?~ ~>+?|Ç,q̙/^8 HF>;"̜= !?a=xiR XXHH +,ɖ̛7o_6ƐMJIkM|͑ ƈ1Z38S}?XkqQk(zm#0rβr_RJW^)z=?u{̜1 0 E?]#![g0lf4ثm iK+!#x_*x}~$YJ1D!_  A9Ck}wk-ZksnO)S0YO  6W<۷޽{?ϟ?QVVČ|!HqL۽{޿`eeŠc߿c- Ї~a J`ׯ38pӧϟ??ׯ  iM5,f$66&&&...AEE ?(((`'0l~Ơ`jj?{1|#`~~~d 7oް~ŋwxx@>yr % K- ]WNNRKK+PHH跌 ߿X ]u SSSQQQǏ3|%DDDVz׮]/$w2ݻ{n߾}ǏO(G>rmu\ 09D\\~? H@._~˗ۗ.] "V#@{?̜ !DGrfIM$"a#W i, lARva70  S`&B3$<)p!<bf191Z3j "hȏ1K/,Z^SJRېG䏏/>~ K,zVVVO>>={vgN3$wBG* a* +---.&&GRR60Ɔ|*JJJ .]b8rZ!7oް~΅ |:tV9BC W*I F#Wl %022@ϟ? n*A/9sfӧOO G>6>kR*K#V10@,w)[n3{)~鯂ӯ_l챰0e9Ty5˷o^xqˋ/nB|\\\#G>yo }3z"@M(b߿>{ƻw^ jjj6"_{vGZƍ~ׯ_˗W mv=p.q4|U U r#GQQHSSӇOQQ񯸸83C666o߾1|eE{~={vǏOy@{G|1 33% 0:ݻ?|DWWחAǏa _x…/^] \|dwҴG*%2U !GKKQYYٍQUU37çO7!޽ϟ̏=:p=_|yÀ}{إȑTog 3O2 fHȘGNNNSKK˗C\ZZ$3b߿}rvϟݻw $N p9Dabb'))߿L?~u…5O>݅KvMn <ؙԌc>}z… >3=-2`- u[4D.aD_΀8;s/" p,H4;b fCR}TE>:?*#d>$1`X~o4$5 5e@'`O 'n"5q~Kr-A   3r)xF6یz") pM/#/ˀȧO$"@B}#|HF< ÁPGx?U:@@F"tHF::M`XD,IGQIENDB`phatch-0.2.7/data/actionlists/shaped_button.phatch0000644000000000000000000000423111346363116022226 0ustar rootroot00000000000000{'actions': [{'fields': {'Canvas Height': u'128 px', 'Canvas Width': u'128 px', 'Constrain Proportions': u'true', 'Resample Image': u'automatic', 'Resolution': u'', 'Scale Down Only': u'yes', '__enabled__': u'true'}, 'label': 'Scale'}, {'fields': {'Color': u'#e5e5e5', 'Opacity': u'100', '__enabled__': u'true'}, 'label': 'Background'}, {'fields': {'Mask': u'Heart', 'Resample Mask': 'antialias', '__enabled__': u'true'}, 'label': 'Mask'}, {'fields': {'Highlight': u'Heart', 'Opacity': u'100', 'Resample Highlight': 'antialias', '__enabled__': u'true'}, 'label': 'Highlight'}, {'fields': {'Background Color': '#FFFFFF', 'Border': '4%', 'Force Background Color': u'yes', 'Horizontal Offset': '2%', 'Shadow Blur': u'3', 'Shadow Color': '#444444', 'Vertical Offset': u'2 %', '__enabled__': u'false'}, 'label': 'Shadow'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': u'true', 'PNG Optimize': u'yes', 'Resolution': u'', 'TIFF Compression': u'', '__enabled__': u'true'}, 'label': 'Save'}], 'description': u'Turn any image into a shiny web 2.0 button with a cool shape. You can turn on the shadow action for a 3D effect.', 'version': '0.2.0'} phatch-0.2.7/data/actionlists/shaped_button.png0000644000000000000000000012104411346363116021545 0ustar rootroot00000000000000PNG  IHDR>a pHYs.#.#x?vIDATx,1rA{fVN" ?G//00N7Q^fD!;r[B c4Ah7TX3msx Bܓ5 DDs3g'э1 $Œ" 5^W;;~E1Eo %LT{ srLdA:9DHNN9W(>AHE`@T%Vu;X93,ogRGDw Aق0B?TюC!DϠv_2. NM-1JźmwlQT۴ s0gKK$ MQ-L2ZN6k5{ H.ʴq8K1do2_ %߯>6OOx/LU5/D{37^| ~CX<@u؊Lr1 {d#`T&o$OxiJBIH\NPcEaG*"* f҅z-F祰T!S|yl;'b Q Nt"B2ZZ0:q< K#L; 6iiy4C]lʥPP[/Rx5P@; W'x ?)!D@Cn (vbAu= !kDN1 D !FܒCT^9{$[2i 8N4>`BD$jِ׍|DwAS9|=P|7cVj,κ:^0wz?YeAL b'l RXF7{aĘ#sF=h)@?rAIyO9J"_ @tA̷A7Fk̷ٶ3P N'V^g%'7Dn1 9"9O ؍EI.g6PJ1J1mܨ!5 `d3%GΗ袷){gsrD |Udw3%Őɻr0~vU.ω퐹ýGvZ䔐wwfOJ cCG Q 9hUx5umOkQ {@%FA"[ۀ1BL$,"0^d $(Qeb~cImgr}=Q۳'!wٞV 1{ۡq $(#Ż㛷fnN<%Prߗg/]{*d;$kE1\4+XOhOVzʲaO{<af"!OAißӠNZDn1Ectz&a(,Ab kXD $i*33U;?\O#W} pvqpF1WQ Ʌ/I>t|jom\ S꽟_\MakdNZ%OIJax!D š 㔸{w˴^ +3||TibB[N)/:I9JoEdE1 8b!}6qbyh?^-9XME<߭NWhk"}ܣiGG|訾Ü<=o@Ex-&+ " H P$`{{†?q9^.z DC0&A)@U|$Ě̢Rpg(/Y0RII@lj^IE@ߧ?T.XWޅ:fpV+0]:پڴ'pwƒ N*Gf D . v98W 6nzh@>Sg-oSĸ7?o?mߎx?} 1~u,c ǡt_oAܞԇO窹?߃;-G3r Kq T ,)Yֈ*<"Ob`W X2 <=kQ{gͬatAB@ ;tX(h fEݙ_VF,CW0b0u ZR ]GMgLܜttBRJ FžCr_=_eM"O(fO99q& wCvfd} 2-o&I񢉝6}]Ec-ιA M,VX1U@4InQ<;@ eĆ 8@?WUUybi16?~bBR@kqQu0"I{+e%ׇa /. dyWғ\TEQ$:gѽ`1%I|CsWv3Sů,“q7O J6uekZcBpzii-eQҶ1[t}KrvAa;þb6_]| >1O&ל_KJ} |sO<TsUWç[^Ͻjm3~ d> Ѩ(b]m;A0 j8xQшhĸk1,MnP}-9P5 C$ ,,}0aVq69G0ұ9τPP03VBfw/﫚n &œ(&SL:Zf ;xߣ@M̖!Ms87E n{_nqw*7ϴ'r5Jl6qN}#I=$>khg{tSқby"NW|2xare3Qy(D=|VnV$A`%Zŏp^߭^SM۫|[^/6b׳[?< ް$kl a mϒ)` mZ){Z|Q+$?zA͘tx2>|Jc KX1J^šYfHgtvkeb߉+vuK4]GG /pDٽATթaV]vQŋ0441SD5uVZʠw|',V@t= `^w#q,YGn=,zv: )CZ1F,k03ssG)?q2ԔDppS~~#>xbʥ˔qg+jkTu=9tO6|~k7wFٻPmq$Md|QEƩ##RnJ'r?hy+UuY}nxq~?wjJ1sBM{<zs`2`*IA̡LIjnNGw({xz^1B`fZro87x\+b2|)p,0c9`A jZo&INYCSW./>w<{yVҧY='u6 ""XWM{#t5Rh#S$ƀ,S1b#!s T=TF+"dK En$qvh?|㯟wt[nuJ5Y=Aq(KEBi=DONQƿz= 4qC6 &+Æ+pO 8 JX&0!&zzWȺVUO~~L`@ -еI!ĸ~=.aUçןq8j4!fO.Rf%c8G0ڲcq;lNF*FQOfQc9~c{.;ϙеu ,HX4zpsx7'ar_|_Sfрm B'ef1"&*1,C5?^?EMx9HCI,pn4~~ewo5xCsmdZ BDaCcLMJA_Uw'N 1"E"Ņ "/! Hz @A%03S.. jWU^}ZMNȗ  5w8-pzq%'FJATG8U+(ş1 e8ɉ̉ . aGP(bi~Y&ks0iesR}a~݊"8(E29kĝuz88ƾ@p5UD%y it !㏟Ɯ /xє;ߟxA=,t6x`jTkO͊(x'֖<Bd~D.DQsιsڍbCHgPD+=x!ZP(Ȋ"K{>f꧛1 K(] BHaBY%!WWo_t}ã3E_ñQc !)l\vsӍ 6`6-ͫ@"scw˰xܠS)R1EǧCu@UU1P._37xEpt^u,R(XLMZZ߬u @P,F40c0n9dkd[IiȨ)E@2F-RVV˒>nw/m| 7"'>P ftLJAw?BL!A!vF} [@|2oDDb@B.^r{;cg>lX  J*W+)~eLcH Vn}[҇h 3BWzQHPJ9:Fj!#m|5 JblkI13 $9bS{ߙ?VQr8F퍃+=4l%qj BUa%[Ip[X=CwrZh~ J J9Gg6$pKT|o{ݘ1A˒0뛒1˖9DJ@dlp] AXbZD 7)l}*rEٟMZl|3=_s ǟME3!DAUn.\cDb p=C*R1/)/2!Da kPjw8) I`IشB/f1m,_tj{U=24sΰȋ^í>Rg.%>~ @$`4n"0?GFLὍmSi*Q9>:,y{}<6M?Rf8POmZJ iX`>[TQK0Mu]a*:hEaPa)ulmC? s"e!A=E $c$d GghCuTƕ(""xbv|򦏋vU ڇDđ )|Ų;Xm4"4iC o)݊<-k`xaQ~NQUUz]M 6߿úl&*قB ]*ߺH(-(8ZH{*/Oi>{~Hb,%fmc$C[!$4Dn1E$, ! M ~[|O"MHK!O3)]>.{gh80tZ^9`8"[3-`?ӚK' VajӘʔ# jjXC{5V FP.fWX>ܶ7wVoTqks|Hur3bnHPa -FNP˂"tz*F_NE ]8=3BXS0lN˷E' x1 (|.NcI1LAN1 E_L+IJ؀8'L\ntю: ]֎c|W5o#K>bYmwϼ=#UG*B)_ޕzu{fat[kWUxH"t ݘ Vn!,<쉮cFX0]%Jp:ТĘTwZ%_F)&bJ\34K'dPy~lsB=muhPTuo$shMSiնB@Za80Fn-Z_]/OW"|/9F1ATJAEOc&( `P/0wm y`p2(5 Uӷu並Z@0%Oﭮva|A?N]?Yg=B f+T%gx!ƾ=זr"vIdPs&M>?!\M4}"#]]|!xP1Kfk {њ}ggBVc隦%8J;np1"C>Qz&dfJIl aAk6ڠjb9Z'9'nDRsUa:}dx}=~ߢKi.LKN1Dff0Eq –Ss2wE;#Xj^҇'sas|GX]ޔ÷v]L9;Z"Vc'9396OX©U@,E=WsΤ!kz7{ h"KFDEbjB$m{tqLBP{o D*{"f- t0̎ C&8W9apϻGD]?J Ud*?=;i0O_h10,*#rvC0 !T8[C}? TQ$hЦ ;@FOV@[=x$UlFVQfq!vn!dLB*VF HVr7;H|P5vyu5^bW8~D[KN0}c;M$HӲ=4b -M, wFFjH}uGWa;m\2cDp&ęæ|kzѵJ1A" QT!S+ZisaQ؈|Ri)FAzq<A@܂#p"@"όfa,vu!ц޽,5cBcD 9#-#nZQ\tabd )+W圥aW>7-UcѴ0ZpMdc09F\{cp6Gldj7D-L!fʰn_%88  ~@cQ-]@\ud9"fe(9!\XDCх$u9^7iU683"6av,DJ1EON/b_"(8=t|H!˽9gP3_+ۻK;"M)e->8*G*}G bJ|㈋OOuXWfj4ŚY2͎M7WpqֲZyڠH0v qa7T(4B`jmx:0oH3T}-d8&c ηdIE jPT- -ʍx RH45^[8+)YH1w痴]~^޽c{Q6&]UX_ Vhza}AA8u5 ;y8{-)IsPl5]\J{{X^n{ `v0,#EW*I3a Yjz39@ ?qLVxyDuJrE4pɷj7"X7bSJDBa9RR{5dD(JJ\W+NZZpp/dǪw8y}:> '!LS D%} DzϽwV{=Mb &}5 as6۵< +DPLB4~ybWeHjڴM lCmN"5k6_$g#&̹m|+bwhp~`-}kGeJJʲ $*y7\st&EL@)sSnCXk9}"B%6xʉ0E2D޿fmt!PK Z JyD[r0 E@LYCRDz؂z{z?ˍ̓%^ݻoAsaBU}fGh J'^Z;0s9X &D)"9|^pxK͏nJxX=6Zdj|؝<;7)mDÕ#nzbfDZp۱c;T,'G'($}b>+ߧK۸D̳]޲3P t 7Ś1;)\6W[ҭn[n& cJJp иYUԺ jZeuE 6YE:2m4@]Cvܬ.P2*u>?DdMw><]n @H6UJ}o.!Idp=5[+ R 2w#ІXCUO Cpе5[+Z D<Jfmqط,o) :emDKR1 De Rp T"w<r/,˭V\|=ͽһS[vLm+,fX}j&yj>@i1]+~R>wtz!&GGôfO&PCBn** " Vwb{íp8^y}^A+xЊ5&n'f^^?㔌`mŭKxQ@J ruqD`äbDb9cƨyєȹAL {bұ\Fc\K?g0 `$?L[N@ E=y_wIhd2i,3ֽjoAm ^nyN CC׈k녵C55×ia0%U/L]ŗL Z|6\f-*6WCe-`d%&vrӄ*dTk@A(dD|Issg!o Q!bFTψP,PڳM-|ECK]u,a s"sjcW%9~?#u%$<=:yC"rLJ0EIMt<䛠 c;m&LJ!a庘 Pd~|oUZ(b&͂)F#''>V4xX00C1ٴ| Oϑ[; Y=:b\R+\)X t)P%Вye!]m ~ql,ZZpi LUf 3ޙ8svb :-h -kQT*rV<坨NaZ%l0nnǑ0pQ>~!/ s?@x^hkřŗ諣 逫I'i,-#΢}r钋k}qqKqzR7&G+=$1K٣iVD'JD8%DmR6;b2?s~`A煗UcF1urqK ¿;6yoi>@?dƏ7_?,L]Ȯ#+)Xj ~|' /"zDBݐ NʪJ6e!@"TXײ:. M~%ZG3rQY)ƽ'8d{'Tk[$v+D]R0 ܤI98PI< &ݍ01I4`²^"oJy Ѡ ԍM䩊{ 2v%!{nNrƩJ$Ѐ$DN s3tn$-hk6RtR+~{#~x\*pTKn1DmxBu_ @:dԟzVg?cgFAî=pA .Ϗj&8ۅ!{sD;f򈏸n|Cڐ+"/#E E+t^1?6dUYS9D^<<% ^jXxuqw֗R;bƼ6 qEU>Tn0 D)[ :H@'EϺR]Rq teEvDIJGMýr9 Y|.?xGHZs}ָ()7\@")]Ps~j# ѵL;r7j!hڭ^!@ \H F_h{TN.bN m3AWJsl <}5Ɨ7$t ޵0qo|JxTm$zYY٧d%0gOLIN1 E_ u 6X-hՐ8 G4gHdOwyvp0`R^<>a@G4?8+tyhH5=rQq ^' ݶNG5,:, k Ճ*Ys5^-vEXa\1QPƾfK,ڼ+gfٷ̾7yf!&,Jbe[$E]UǙ0-0.3 9caX߽uyhFp"`HѽAB/Lq0Ca'&REfHȥXz"! (A gqRQ]keܖ>H6Q ]6o4e;\TuN6/LQN#fŽ8zTO&O ]Ȝ"\Z1;qqz'wwRi3ƹ= |Khb\|_#VW;PL+N6 ֌|WIs) i$r , ,K"&M N7a/LMR0 ?YE' 30$Md,쵖~4ϯljSׄù\-֘f.t MDmF3hC:@3a.'e>*wzl2,!I4+)Q&3۲p8G+Q@X$6eD>%<Op 2L2DqcY~V8Txtض0fro†{,Q=BC`Pk_=PBtބR[A4P:i劉/LKN1DLLň" 3{,ڑC?!%wEAwmbǞɍۥyFa\N(:'{&xF/LP^;xQk(+1Jmu-M2;TNd P.=nt.:nN4[ZUBD0xoi3}96Ö[|AQ"*@ G7|l<%-,3ld62ʄH0l8̴yar䪔 2v"/DmN1 DnhKEO (ڲ_qHϛa7!i^-^$edrO>͂{1zVGT5R(O#&UKg'0}Ek,]o(7 U5 a #|^ݎ{bVIjթ{\'f/NDsu$EZtb:L8 %a]tP4nR'ԇD_Юh*د v6n+!vNhWJc;oSlǛD:/,&1BD/#n o" fj) w˼ܩFpXS* [B Z(LkEB.>382đnJneS-XcUC)λ˹R? '8-̳a+PB)oSFF(Cui)̞a*QmM$֪i[L[0E$Kv f7l*@zXVavu} [$[Hm{%(i|L;{qDEԙ+UkcnnH,=lDtN{zȧDqc'Äu#:^z%o2;`4/sݪշ>nh/m)·*5`e-|m eWֺۛr=Rzzܹ) ]CΙ6J4i`k->dGNg{j`&Q+_&%#m/oכΣw Ҩs *hbfߛ Y9/2 XFTrT5α^Mkx8sODv{l坁. [N$%8nnc[ y5GX2ie٦W?P>DXn0qa]EXY[Ne%A2?咈y / BdYTXYI%JdIYh\$s"'0V:cLb8Veks[lk`ؒs:!ݽ~U軀St&BE lm@ mWh[ӳ}4A?{*lCrB Fű 6// D?lpa*b0db8_8=d{ #ʞ2z ${"rpbZJf[fI^J^eCJaOTIyRVMGr]v>vmHߕr?m3b2+`ĶJa9M]?U̞wT+s|;?̵,ҵ^LKn@EOm X dV2`)Cj 6Q{˹RV)Uc?o׵|Ygu+Tmce9Ng톰: SqPj1a뗁V2? +pMkև U!|[Å!>IZ vkk7Vzջ+O lFiT`0.iyv+8FFSEpV!H `lll̼yg*5 Yi͍|/0 %N13%rZ n\9 zjCR\@/O5*/<[n0E)ѵN.@MA_HD$R$A[ b>ιFn AE8z"S(Jb,,#ӤI`k"Ιqy4b^u$ +h3[!?W q mĬR.\J^$Aa?qjZJ=ǯ1M 'Eլ'beiA(v{=~}Wmu7zmu:GM\mo*o%8W%W9DKr@D_f?ƗvȒCwu͢ ̗[S0Z3bט}]W;}_ ΐX(8&PuD7o ϧ ÉC|0 {z *d#v8lok "1.lB$U%H E/ mEʊ 1z*0pk6 _5j^SMi1pz6̳a$\\P}QszUڳw<fsw)ʤf k|;MavQa%II)]$$ i`r$ئîh 9ℐ/RjZE0hM8Ku,g.F8sd4E^3XDJ'1JBIA]d}z~Cʙ:|. }ͳ'Zb=c m}>7{3@ZCkaߙO#qPN|OA+ RZ5%rya:>\$f|ͦ*cec 'ȩ#^e*&r&?}xʹ Ru!:%@L17DZ޼7jUwVJFn){%ީ꒶UR.!ne&1+#}n/#nn+o_?^pmo筍oud%&u~.GeNEP8yDӞ0X(רBD&^ h`:N#14Iy|(+5"弒B_,)@cVoE~}Ǐ"^i0\IiӬ4An1E_t23 :$XE G.Y&A  Je4mlܡUa)Tβ>8!b(z㯟Y$xgsg.#6Uۥ)M /pP2^ul 9 ²ushnPѿU["=Vk7߿~ӊvB[Cx+=: A `PTNHb^nc}魐u_0(?Kb>0:4.@, =O6xPT0@[XĹ&B +-c'l|URj[^Qs<,a@TE+RyǽiXBlbE3C/8`Flk\D Ge5^|ULAkp½r;YOF0 Jk7Q%jͭO1Tad:4&@@pii B9shzmoMmT;&eU=B Đ|{7a-mKkiԥ|ݑOqJuSEq荡2׌x:+jI<=3-ZkvNr!V+W!BWc#RT s^9'/+//A܄R5琪9gj4K@DOov{"$-1`[,-1@Ċ 췍:$鴗-pyМi;eHEc1~L~zom^?K"b~M&ɸi- {Wi $O&0v __`-,w+t]sOٜxuHV$%d_r^d1Lؔ!#w!b+SGU 1(J}O ~0ɕ Wwq4rjy*}\aL5,lL3yQ1۹Hu/"y㐢Bcn+aqDN@DO0I$q~"d) ȢX܏[U b#8%%W[ d'p.K.6o}uy67Ônbzi -t-BFq̮-Sୟyz0rMYSHPMӠHi! Ay5rX]>>*ʶo)0SDiRźG,H!.Sk=ZkyD">Ĕ?7\0*J=9kFp7s:rx9ڊɲ )>ιقNxm?j[14ʬg-+1|U#řDKrAD_[#Y ;970ޠC 3U,zNQYϺjV .TC&֬4|1_kΫ{[0.<֋ҬD `Xz3K7jJ1\.ӍsGѭ$t;ZpzBI.J>ƢklxCa 4i,D{:̑""ZgdM[p_Tֵ2^Fpb#NJHLqCJIA̝4^VVLs:G>>40/q;=vˇ Tsz~Q)meYNA;h˟")7rojֺJ,)(eDžu+K'7ktiy$*0YR%+ڱZ_ٗ7no9Jjժ &x7=q884^/?b/iCm4V͞u B{a4jAPmcԦe1G/LYn1E+UN b%m/B=DI p9צؓ_%1l ;3bVx3 p}yx-]븿ڲƱ~˟m+NshBX\َ hᔘ&=_20E@VIYQiP sVg9.ƙ8?煤R!!"h %)w'geZf Ӟuzdyo{DuAK Wo߱?9M /՛XQl%eEg)s<`:ctM 8܇x:1^^_Fx>y`mF҂YZcDQn0ExҴjˆR+DUvIc >{UaəawTn>*}gZi45sy%xYH >C(Yn>ȗq:}J;>Av'Ӆ,fw9Y-l7h"=nJvР?3X(ubgJi+I7·Lηc涝bCùH',_ >f jD 1|Gȵ2 61R1SAо^zw};c >zWuD=1%~O2m@ DTZJΛR!gQz&(( c ʙ['X"#Ů8v+ƊSyQ{BLӎА\Zc8yy|he]<^p1e-5̱zѲ=P)Uz3[1t5؄/# iΟ" db\XHL2|Q+Kݖ ) ۿ|\#Vۤnc- {JaH qhZqd ]P:"G|w"9$NḪ=sRSq1_0GꚫfU?,MA ?Wu3.%8$fBtWWŢzez~^sFJ4 Cmy9{'KՕۥj: L]9]ja|]-VCԴ'\#6D&umv8/2BV0uxެy|˔@ ^v=:/J8aVoj]t'nqoD-$P)"Sp83 q 4)}K*>"6Y/W ux_~x4!i ww;v=sMtÀ>xbLF64An0EOR,Y04fiu_]AEAXĦ(0<㼯I hi8901 yIx;'N/~xߔB-VKb[q Ƅ7,Zl.Ƅ ȧIRlaA`a`w 3jXBVW1CDa#1mö%X߷m{K@3bDb"Qs=+at_1dۊR\bnFjg1e^Y8XkI4CQhP)"gK\ARF=S"S&Mn!D6_<mW0%f]tdيlYTU /^)!2qlߟw?bA;vús8Gt(c Wby%c moMPm(HY r,K0EoIlqLrt}$Ā9` ۉ).{˭Kxg؜0)}QUƣgwl!To(/+ y ra&;vAN.<2˟e5xhc?9)^{aq>q]_kNP%״o^1VmlSI !SFY1s5 \gr8 ruqJZ)֐Sĸ_زu쎶 ]q|pVh}k &8O!KAM{$)\͖=g5av} lZ덜B<)YP~DmA9=, ;Rq$d dˋ>GDU-w#6Ppz{8+1Vοfx;GfzUαL_˅W_WTo?ߧx'Uk%1JZj!fѱ.GnF-jfFD#PJ0!FzJIM[/skR3)\aDRpaSBﴜvr35lHjk)lEO<m^w7VjhY0^/ 2:#0;UyЊ/TɸIOx<]n@Fy'[Z(j "X `%X&Xl^;Gݷ-X CcF]4g/Pc]L1tן߯\]loNәKŊзqQٻӻiTZI)!DEj7ߕ~Eʥ镭\CCU).H%"E%VbYclمZ(mZYEC4$]M;);u|m|~fe|JhmT:iQƒi*XVCE/L21WdNXALH?{8am@,?DKN1Dxf| **cf |83mCt/T)۫4%6! ˚i]DŽۗQ_ ZΫuo ؜{lSnV`1єUFiLj[\+C@ oDźٸYՕe t*z~^Ashp"gI4Sdb؟᥃)*fLH_wigo$Kù#7n*ZOLJIS|AR-ic4 ">  DxDRK?bI`34eΈg0#}s)4Mn@F_u;ɐY+p֬#E,@!vE7e{ߞ̳qTnCJJ:;mjh;6 +W6p3e.>n94JBDW9er!TDMk_$y}цI;J1TݮE`Vȥ]ꖼQ)m :4ƪ_jӁI

lvKrз-v.ZBe<3"Zc:FN"fpgW <@O!x 3V%,m1F˗fF"Hi(4U6 X@q;U컈(>(В'aK`]-<{a :  {GLgK(=o;˽r:Fvd?>|>^ǧ_o;Mm66ڌp<+=CW6(<Ҋ{J){:׹p~2k+8ojZ.fĩ=C=/__OO'=`D;A!9)4Կ9šV0fJw>Jw`hmOS` ,MRQ ;Tf_0B`G8f{8DuLX/MUHX/+B91EȡJIB5K r&D0 ?wxp##L.}7u_FmC蝏 !fe(@)*HP{Թ<)X9hDΞDHd"Pe f"f<Oc>*/"Ue)e@l>#Q:LVxwZjw;]B>Ў{N @ft]+=I-?& .ZkvSwwwYsµTSU7{"a~ϔjbrKjŬۻb UwewuupDw b||s?(9#֖\QOM[Y=޺)h#N'6-qgg7ýM`;=ah#Fet@T7ZI ,K1tH 9+4(v:ۡK9r80=wINWG+6mn& ޱĺQFVXz:}8\Lƞx,wɹsxLIJ׶Ŭr:痗_8M.B5Kv`ȹU!ZO@|<J6û rPrf6>J$*ü>'6醕VeסJxhۈOƖnHyT{ )#q:y쩣#э$smE)̒FR/mضx7VLJlL[now/<|z|8NiCqUqJj32tM7Xy@`rZ&UŔU%mD/pw{׮ q@Ռ2z5s8lCkaӑV sqk=xLY(%-p:h7mAu?hn-!YyN 4Yn1EϳU;JA*X 7+sNs% c}^M(k`1}@ji/]21VJ3}Kmk-tZqkB1-Vj6#(95%ɍ%J4i{?7qz{Z.˪+w.}JV@")W'1{xK rF1t*7Ecebt?>LR>cqDXݷ*ִh4ݠPZӵg&!t@ϜWǷG ‘Vݾb oesbW,-4Ls&8-!妢o% ȿ,Kr0@_K=0NbleY8@! @MO$dȒP. Qjokh`-'z" kq|&!,jH#|L+"ŋ^mDVr ނNˋi,,<,z6o:;T6"Ih}~?|zx2yFO3qbeG]?$jFTd+ͅIJ :|?p/'wJ{&PRX jL%@Vl%b\H$safK$8:]nƅǧ+mE8J,\k$.>xy9 OӶsusmC{5gs=9HISUV7!@x^wb 1p:riy#ƠԒk_X%S˯ 8\I-x/P_ju'Lጊita Oݍ훞!Ql}/O[ 'CWRtfSVRcY3WeKX@HhL ~bv7,ۍPFum_BH#B B4Ctmfryp׷0**/퍍 )21-*yp;NgϚ$0&p:|,K0_b'TQŪXka)AWF (Iۉ$ے(:!.FcJ#Xw<@¦\(xF~[I9l .g 왮Sg9;#zGC`t S: Q GamRt ߦ{pr --Z(O}^>?ۄshaW}CMޔ1^:6hse6/tƢrdȫbTո:!Mfg*m.MOTKVixBTK: ecrw8<ӯX.d)1aΠ~ >) 2r{0#F]p.,ц Qx8k0Es _Wu ˈ^h% k S:<3;ROt~쾿; F>ooy23؜Q h2Q,a>B'9TyKK^‹ :8mM# BTъ9Em&q4hgi]zt 6XkD?GT ֬>᧒KE* RP;O;伽xF(@Y%>Ğ5s1_43O?+o_+$I0([H2S=dR$}H:!D\H{E*բZM~/^4f !blNvHyR"M0|G_M7%U]sucD a x`l _~I ";#y_kW%/nL.<{(JX#kOˬKHtO9`BB. GBak(˘I=qiq8f]@FT"lbUEd^P[Dp!H֍ %[,y090i(?ywdxpm~x:Pgݚo?׼tτC)24Jno$Bvi=|x,Ir@@߭nK8(*UpMXdAcGZC qOZd UDFޛkRtm={> TcҌXH<~]c4F5YqYޚEM1&EDuлis@$%>2a!V%PI"28?3Y[鎔|G {(E frS0'ReHr]ÀX e=VQjM{n=/y 1?Lts8>iAn V8uG|h#7v>4r0R6oSM;u~LccH7FrƑ&#~? U&'1!q]ʶi<"Sl˄<[QVw|0˄<(#obIFb`gyB.fT:Vd1zHHOMu.[ΠKޟ8^;LHN(o&.-iPBbYbGq2R\ZQm7|PP([iƘ+=S!LTXӯ';pFyX?q96UN}^:F]jo px', 'Canvas Width': u'100 %', 'Resample Image': 'automatic', 'Resolution': u'', '__enabled__': 'yes'}, 'label': 'Fit'}, {'fields': {'Highlight': u'Sphere Bottom', 'Opacity': u'50', 'Resample Highlight': 'antialias', '__enabled__': 'yes'}, 'label': 'Highlight'}, {'fields': {'Mask': u'Circle', 'Resample Mask': 'antialias', '__enabled__': 'yes'}, 'label': 'Mask'}, {'fields': {'Background Color': '#FFFFFF', 'Border': '4%', 'Force Background Color': 'yes', 'Horizontal Offset': '2%', 'Shadow Blur': u'3', 'Shadow Color': '#444444', 'Vertical Offset': '2%', '__enabled__': 'yes'}, 'label': 'Shadow'}, {'fields': {'As': u'png', 'File Name': u'', 'In': u'/phatch/', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}], 'description': u'Put your image as a 3D box in a snow globe. (Requires Blender!)', 'version': '0.2.0'}phatch-0.2.7/data/actionlists/snow_globe.png0000644000000000000000000006115411346363116021051 0ustar rootroot00000000000000PNG  IHDR>a pHYs  bIDATxb?(bh! `_ vgm$YHy-E'ܕ B7h ) Р.fqaA 0D?v& "L/`㭾jH` 1il=;=MzBRL gFkBkkgv,I2uR 3122cBݯ?ڵG? o=KKˏ\_R00V^/<_$X_ʉ=㸧+yNM㊼(]nO^ ̕ QEwf8 x5yʍ8grd=k kYJ?뼱ƃFOx;$5G@.jʇ%VQhp*w_dDwc9M8nw5E$i" UvЪ{n3\r6E~[|O²CD_< V331=Gn{.~pĿ_)QnFi.>6F^.V&6f&&F(N00?W~W__o Brv7_g{+ۙ@t =vgu|Ľ ľ fReTagc`g?Ÿ ℑh b`xϿ{W2}6fEqͅ*𜅙4 =_-G%_{C_v6ff&00pp3)I3j3Hp0B"_300@v8M{ 1%Xd`x;ÍG?|ϟ300󗁗ᷥ:H[YY20@ri6X 9p^~%̕ߥy[?+3 &'̠, /ßHH8Gv ҁҶx7;o?y/+ o?A_ZHwBF3@i30331۬ٻ^~CF %*`! )Xurz܍TЪ? #|g6 :B_FsM= !a0{@0o[ЕO6ܜL l?edcd`d +8<#gddvXD8>g`dca`w 7b`d/0eW'Y+*lKk nEןXX  f ~C OǗ)?ĝ,, O^`8{9ׯXY?oD Xc``AW`wS٬?X cbd?3#db_y)aU6VF30!.r"@nm:c00#?ZÙ/^3? Q +_H*y {m99y` 🁁?Fu%qu9~;#D@Acxw_,7F\ 0 31-I"YƚbgabTtəi@.6y1; #+Y3g ,Π(7<"#фҰ?U1|a``aB>haa`d`aDp'_003g``-  //e>U3süADY]tSo}Y1001&fUi !v߿[3`& 4"UDQKW, ?~# "!gtp3&hu?&~ox[)ޒ\B!Iuo^#;S>?###؇D>+4??|JDpVD >Ghf]7D?ÿ0X,#,*?#-zkO~{믲cd ASYADoH1%C"(?du :? #ó7YʪWl5o?~`g$򙘘>a!! an,P0P\#$'|Vl$g6r1#ß? 2 ||  ? ;미4uɏ?8,8sn/7۟?D8C.nni ?Z&T c`AZ |lI~> N:C?Gz@FR&hfabbbSwosϟ8dX10 Mv.&f'+`CbFb``: %0 <ؗst%l?YO82wA@8g ˏknB\zZWxVYA"%j]_ 8\klZ{r]6ǭhB'mA %8nV[^_(wg~߹@a>3@{&? " , aHu'g@ 8fg!6_C"%Pȥ ԌlFT#Q* M=Jć ((^eª&&&N>xiGUϊ!d";{{/E7 L \L b| L , < \gDP DĠglFc`"M aD!F41d.ف&d1R 1pprA$FhֻR1{Oފx"ˀ<~Wk,gdff`db`ffdoHgdd``aeeE+ !`4lHE ZWZ酩Ĉ(P1iDc`bfdb`bfFTВ.M7O>;1"9g``_f?7##+3&fHP3130{b'#A(lu4:\M4-Q0p6w32`F e``c$nx ̌-**k ~ΏZ"=c`bfbƣ>Xpc49xx!>XQeH4r DbZ?&. !h ]UFPf QT 2AV'K*#33+79:+(") c`baffd?Fffc!?7/?bRE 0A P>ֱ,]\?)A0000020J1023`veJXy#|&t%O("ew0# oVNAR7+$Ur,F UEb3i"jM4IF] PZPIFH"'7_m'c?3#_-~>|H&"ﮋ_SOd?#3#)F(HX#R5Xx\ZA==D=,Б0 %n^xn?de`ddgL:*uH "*,?GWLЖ?+;' ++JF3"5PM@'FP°  ?]&Q^F8XDy3cbSs/^T` *"*c``bdd/Ȱ@t@&܏(عQ=paDg 7 _x3@V #ā%ѣ$d7FOW1X_t) ZK @ }I&łƅn]%WzRp2-uH $Lo]ec'DU{Z UPH ZK>sp)=0[F60{XDoTQ2T OO8\"b&#'nQYM 0zyC/!(x])V:.RB+6%03 /mvuyzγD?:Vj>ͣJt__1lMAŜFE0m3#̠Uz@y RA11k[E`@.S|z>;%׀-fs<췫z+V_;A D h.@V"Dܑ[@4 Li M̀e[>wD4-Y_ 4H+Ntߗ-"7x-OMO})}7sfM-QKHc5PT6.B%v{O,3YmCu0iGW'סE*n)8n0y>)7|=O0UB`* 1,RĈćX4M\C6DV{{;]7P#}~m*QkZ 3`&~}3ܓ ކ\]_pplMG}A";Y0bR?!IF-5=qg Y[9\.`UΗ/po)ËٚE,u+k`!uvD ?9nn Om&VbK36H62Pw>:~}y:]}m |KO@vZB$F"qoׅnԍD PNgEK@nサ;?N_ݽ&a+ (a3 /o3dцbTYJRINXe`mIm;Fp#ÐS%qIS/svscV&=e%fZEE•U4 % )WNz> E8|..3(`}.{m8pNࣝ.'םvuI|JQGϒw54{zS!d#ȤVVZWϟ.ΪEٹ3|303  E);Fg?vςxh6xVjI<H,ŀzIlh l iJ}nb~<1! ;!xZLkfbdIVB%%^o1~ji\ ;]ؒ3rbB92leEC nt{տϏ|NQ ;w!Ę ĄGm@ L0ekMYxpI 4zokuWb(\xLS?Yo*(QED51ٌiJSR(1ݚI<~E݇Gڝ{T!EUzxgb[%6w6 C:=a8O)֎0*!R(ˌ<-8oEdSr<ȯRp쉱`]K~2T~]~w8:{^ˏ|N@$Hk`Sn| _ $ )j@zX(tEz d3ҏb.iIc|ͧݩ(Jf_g#A~p/;uȷZm2X|~Co15 "жn&htKN0?OHQ( XpKo J JxfMv55^̌gLJK[Z_)D->?%jKrh1x'mg\F&L/łNZDi6T&/欪nUzM(o>I1Xlˇ Ot02 1}EphE=lKyiE3DhS|. t#֜0:E65P=wB/l ]U5ILZzK2Y")k qutne;I_h)cI0GYi0~N@Gp` hhҀ H[Id [̎fTo3oM[ ;&8#P 򄧅n;|GPuG(:}ƙТh&+>.NZ;Y)TeEtF:)hi;#::W`; `,X8kɩ3x `l;G!VXՃ<ԕ"h">pRySAS0l(ppFKb) ДR6:w%;y;N~uoϔ~$!(tL!%;cř-x$E>3MƱ.)aP ^a%/6$%c\SY"s=劲)(+s-DI+mZlU:%guRg,c/;4.6c2wQUxYz |MK@nh-Ѵdw=$603̉bg›$ҭ'@v3`ɉ0 Q+ZImO9O(tomZ}W&g'Ñ](^0ZcaxϲM@Qb4gA$ bm^a dm 㤆c`:5a0FbT.ת.U?tN@ E3y̴XߡP4 !MK[wFoУ%k-!W7궀a"XBf?8aO[f􇤪O,DA\ ( BDc*%pnuyQR7 q$][+f"1cx Vk5z39}}eTedweL8!T1- ~^su] |N0?- 6fXx`B,E!mL3$iSbdlG9Hu.~?|w xH$tu[@ Ey,Vx@>_ xo8 I%㳐 W֌?U"ƈPjEht\8^sF\[[)ES~ F| B :TA\ }i0oAo4k^_;t0R2U6̖˫1J04mVq؁8/0 2, kċns$_~N~ BAbOpbnKYvISI_o9 NFڴ$BJv._0So! W#BBp?dIYӮ%N0?_ŭC(0 D1 E" Kb3ĩ Ltt~_~&D\SOH[ dT΢̦9ʼn}S#D)D* %H6עuu}1|f|QK0iڵBw :ҹM5Mmn=>(V;{.S&Vʿ! s\q@W:@$MX?y~y;Ȳ,iFJrrTm;l{$њ{noGyAYƢT3v=fN \GL&xYNc%6_< g*Ays ],"-.}91l[O@]`!mQc4j e} 4u^&99g29gݙFLt.]>mxe_\p1I LcY?Y cOz8PYj1] %$Z|0,[Ldmێ7N0?;vJ?U ^ #p傄@U& 9$Tx@1NFuÅ>8 9g' {|3 ]uޢ )ZD {B6-[DR(b; };lpק+m2X{cQwhd3C&й?p|-j%hsGH1&)Eᝯ1g1B ~n EɨRNvRUMR.B2Ubd $R,^EY8XMgts# s:yzj(\ CuzMM#PY8rhk';ڇ{f8/xSb::th(YǾih4BI7DtqEB>eF2R,s1 -hiBLj(ƎPu}jMO0 ;Z`C!H (l!-X؉#S4UQM`y}?K +"$9k_O=mfoܝ,o|æm[|y^SWd 9"zGחGDQ-Rx[ kvЉ qu")pwGbV3|8O)Q803bӲyܰ^_xYXbq剷rl^b 1&D94pK^6_q8 t;DXueD~8|n ?SOPbɵb̏R3v@$ϷD7_:4u18ks= g4Ϟy9϶*o"R&†q i?ЪrD$u} !E.q0֓s`Dcn7@p@ gaN޲TZ{1tJ@=ԐDZ/ZH6kT`ٝݛh1BFs ~ {&wOAcG0 {Af-J疠n-Z)Z/ZgQG A2qL..4i{9''7y^gxn~91CX?a-fm? }oxy~,wt8cP9ј䫪y+^.2,mN'cٕPWqI͠{wXk0!iZYBKxsBU্%_m0",p}RKgln0E!d?'\֠PF9'EhJS8&$IzXkmK~*(Ms}R[.x? +ĵcs>;L6遪.l0MEQ5iHv1/sM6*Y`DžThی>]ԭn_#7A, [S(gYf4ֹ|n0ECT**&=n&UyqHԵ^x&x5ՈEBx0M[_w Ui^d1q{DFG6s@P5 :=WLc( $2px9p@,*i);,{l*Rg9Ym@}p|;QE+laIo,#_}K8Sd~b PJ׹o' `$[df|[N0EOl׮($~X QIFGhcnwEJ`-ExEkȲ1c[ΠsCXmdkBMNuci/pVY;L続enYdd_:R@atMYoιl]N0u )@ Bpnn@m!P*u&ͳeX;iwp+yyV"Ujݧ9.߯MF8x pm/DS̿, nnC w4R$;تqG 1Q`*-Z/H <&U~C#ծ6 ,aa-QAH+w 7!Yu}kDzhZ#3gEþYK@Y15d1i"E HC.ŘP 9cGT]aW e~kP7ú;Dm@IB|6m-gilfV+8#Byq zMdoC`ZYJ{DaH׶ _lY,ZK$TeE]7 p 3LJoAk,u:Eoyosq?N0?۱A(y1^A,*4Jm?s$)wᖯZfjF!M,&f +@9'F*W-0&kL/Reȱֲ\c]?7FǎS.N!t[lͺEiC#vM: T  a-$G1od;O(%4yzPcY/u]?cfN0 4֦ ʦop8.L 1m鲴Xm|%m_@y%[RRy|Jps6^!S`"0y\iRfyv{H %D`LL@kI{k릦4Ҵp[(3h.NnaZ6ނԵQlȋkd;lzŐc]?[E1ӣi|N'eY |tN0EOi e@TX~G.ĽFLB]zn}}L15WyypBDcP38Tv\>jH!a_\3u4jI)!@70b+J_"o,`Yu-WKcK`W"…OF˔Q#>sj?@ F>^v_ϻ.iiQ?~?7t\M0}L֊( 3şe R[e<$mu ͼLf~U_ïXl|1A;2cPav!a(y"[E am R0JaF&Mh 3|3Q c')#Z. ҷ]P9K&$|#$矣Ueۦ(ok/3;̜|];n0 }|IK/`&b#@-Pؖ-v(GH>#?(BK5;\]'&Q8q)?[#Krj6OK4dN~!SeJəX[XU䔰FSL$b-!FPƯ !ovO~Ms>8$a,s'\~{!=ǣoF8WClDTy}~߷ofs2 c3:]10 .@VNFdoL`> i"[R   U' fs%4[`߲ $B0_U*DO7cf]#(!ET SDKLA@*noǯHLͩ NDfm{n˱x]0 nxvs`` b+4/Y<''ۊ}>y4Q`S.H)6M> zv=~4"kDJňEUB`ƳxQ0._('3prVs% 1FR#Rk!$ X;'Xeo[$_Nۿ1Ru>gj<1Y<ߤiz]K }0va=I x 0qą&Sh]Ȃ63# *㱾XErs_gc9`f|XaRfXpk[E,Ke R&tÀ`N0PH;I) ̽|njS?kx@~}˙y~.˲* ]= <(ZM&nƅr8w2qhbP|N;{m**>\H!8_p`D?! tZhMR)aj"D!8fj D /7c|'/$栝Y0j 5|'@8XR~ˇ`(obh[1MfKya9gYVXo]10 <;q%?`BF Uc38-)ur>v9fm~or_I԰<m3#)8{XWT(쀦&8!Ч!;q3>'wI:mT!o qܕgh"`S@g+1hzi"f(:v¡4ͱ듈? ]10 8Vs~4>Yٙ@ln%Rdۉ/ k`[bC1'(-HPp3#"m`A >{@aB@(`dֆ/\ jf `⸉sɩsP>r7,˪(x] 0kC'}=E-W B;Vzs9r_# ý]T I?ι[4X ]10 8 UbCyFw¯y#3`a vhZb' U@O8Qr@ YeW]mrIu0(3/`8~{#a @0 jXvkn8 M 3lA-"7Bº_@.` aP Uy4%">qzL|ܻyWkY'ke5"9@?fvF5e~|G 2z w(#Ѱ s\ mL_3 rG?"_t;?ҙȄBW;|a#~:r9dA /"'Q"pOfa{nllGGG[A"7g```y*.-ظ !3He$MH ,,L! 1dBD 7F&/",9^3* r5J:˹ paA^ɝoY[[V11n!"70000c`db=;'231eb 0bD=ݍX!?+ r' ld Nϰ)lgdڑo |DNgDi3@ld0 L,P1#5c=_zпOX>ymˢv?qqrTPPlmmAYY333?|$0000cfeg_YebddFa3ɑ[ Fh 2Bc!ifyNFhQ"fxgF22DR)jwqv1tFF (xh+[6E gr&ƿ.=.n?bb6"40000cT]WyY011v /!0gf`qr..wFFF{lmmHII!4GbUd߿=48w?8tX 33$aWΰ@(>"_ w*HFY$%6QcS,PF46a #z Pr=6ӝ ?fVOmtbR.F&6..ΏgBE6f`````7{?;/N V! !|xB&!5 IHe0#F 3`M8\π%@# 2F21000a l!;}B_H_30qqf맓{r11s:=h/ 04L 0@f@@t !>U \Y޳|ӫ}Ϯ~M۝"k V@X ,}x0D<?9 Y?H3(dxqywXJ'x 8a ivn6 ^}TUu(˲Y_ھ];0 }NP[gf#"`#VƎ U͐@,Hd{G?ԶMv9-v6WYkR1 b,6ۍb Oou 1)l@u„sM$DX[-{H߮a'YNi<ʲUU4ƬU`````WPXFV 2cGs<@d&&ޅDHa|)݉ #@7î `c83B.l1? Ll ?}z_O]ceb`gqiNAAW 8[2]K 0}O]z 1-<{@܈B-$"{r6 ̛G+rϏճ- SX#d"_ ؾ&N)z/=Nآ빯pv9ltE?5=)w4haNMz ַ|mɔsnWyFfYV)EVJ<~Y|y````/{T_ _&~)FYXXm6|fï 3('cPyh?>>0Fo:v+|a(-MHDz264?Rß?;=sՓٿWPGGZZZǩ]10 8IA|b1+P. ͐-#"HrRN{:d A? 5X$cP^k K> R,|}E o ,}`e[Sؤ)XHeB'6ǹ@fYy~tʲEq] 0}IZ!S?\ RpCt%qIr$#@4YluHt@HBP]a?H `ۏ ~4z`]GahӁn# "^uoڭQjα2J~l,Y@@4gX+8ӽuN ~9a#NR-^yʲ\E6|+{];0 }uehoTU=g H|$l D+h34-t`On[ExoGfr1#_zV դ H S4?f w!k)6r,y7Ucle< 'eu@B`{L-T{ c)_/Ec0CIL8iN$Sĝ=0 _P !CāA+ 숪-2$E0xe@FeY.~u*kZN309CHɸTsx Q%R?L ǴBxOcɿómߨW gނ?G׹p$Cpt99^gq:BOO0+r`NuUA)pљMtq` BU7"k;~?85(*upaF;ۯy>IOz(VI,8~pw[g]0 NKK+r9yX ԡ +$_~$@'=M~Ld)ЂO'DA, "o:ힴ6lA l9m}X(!p54aL06G'ܾ, *<eq%E^vy)(N+ 8Qm 8]1 @hgPJ$MZ ne+`eQT̙K"Q,/̲3 Q ,)Ȳl$:McF۶e`0p]OnD0Zskj$bUVQqS/!@(jH76 P( rEa[w+v9t&ƹ[ ;Ah< _ ̝ @g7!࡜2R[*"ZIP󷱸 S| 3? "r1l֫q|KFh񵧺\uHDV-["obOM`YvHe?efJsu8l0EQ4 `n957?\K @uw% E ȃ{?zXw%+Gv;INa>afo!HU]$M}6mE0 SyPz̝K 0XG PwaA#46/υ.t0 Xku]׳,}mVyaZ3%/pJ8(c$F 9wAy0p$=92s[DxJJ]{۪M)c̽Z;{'4 ~uԛ1 eDD;I+d^6#cZT2󇙷Z3{0Ss":(Dt"Rcѷ<L<DATA><?<Link and MaterialsEditing>DATA?<A<><MeshEditingF>DATAA<0B<?<Anim settingsObject>DATA0B<`C<A<DrawObjectF>DATA`C<D<0B<ConstraintsObject>DATAD<E<`C<EffectsObjectDATAE<F<D<HooksObjectF>0B<DATAF< H<E<Particle InteractionObject>`C<DATA H<PI<F<SoftbodyObject>`C<DATAPI<J< H<OutputRender>DATAJ<K<PI<RenderRenderF>DATAK<L<J<AnimRender>DATAL<K<FormatRender>DATAN<@O<333?V,@DhCDhCC(BDC?z?DATA@O<N<333?V,/9DATAQ<R<P=< ˢ@3AP !  DATAR<`\<Q<H`j:,3G==o?V< Z< T<PU<DATA T<PU<Transform PropertiesView3d>DATAPU< T<3D Viewport propertiesView3d>"DATAXV< Z<333?V<????????G==o? A*A?G==o??????*A B??=C ݢM@ݢM@ݢM@? DATA Z<V<333?V</9DATA`\<k<R<,3:AP??PףH^<i<]<]<DATA]<Transform PropertiesIpo!>DATAx^<`<333?V\zC̽̌?zC@ #< #<`jFzD OBzC̽̌?DATA0`<b<^<333?V\CC|||??l|DATAb<c<`< 333?V\zCCHBC|||?CFC= ADATAc<c<b< 333?V\е =rttDATAc<d<c< 333?V\?zDzDBCl||ll|zDzD=HB DATAd<e<c< 333?V\BCBCl|llFzD #<HB DATAXe<i<d<333?V\??? ???? A???PA A!O?j?}GCHB? A B? #<C DATAi<e<333?V\/9DATAk<t<`\<;Hp o<r< m<Pn<DATA m<Pn<Link and MaterialsEditing>DATAPn< m<MeshEditingF>DATAo<pp<333?VLzCB{ µCB ?BFB= ADATApp<pq<o< 333?VLzCCHBC$?CFC= ADATApq<r<pp<333?VL#DhC`DpJgChCC(BDC?z?DATAr<pq<333?VL/9DATAt<k<B`j;} ?=o?.x<~<0v<`w<DATA0v<`w<Transform PropertiesView3d>DATA`w<0v<3D Viewport propertiesView3d>"DATA0x<z<333?Y!pDǡ<DATA p>!M<DATA M`ωp>!DATA `ωLMDATA L`ω<DATA 2LDATA 2`P\DATA `PL2\DATA L|`P|DATA |L|DATA(< < fgעDATA( <<<P8VpDǡDATA(<< <P8VDATA(<p<<p>!pDǡDATA(p<<<p>!DATA(<P<p<MgעDATA(P<<< f`ωDATA(<0<P<`ωMDATA(0<<<LDATA(<<0<MDATA(<<<`ωDATA(<<<p>!LDATA(<`<<2LDATA(`<Ї<<2DATA(Ї<@<`<`ω`PDATA(@<<Ї<p>!`PDATA(< <@<2`PDATA( <<<LDATA(<< <LMDATA(<p<<|DATA(p<<<|LDATA(<p<|LDATAP<<P8Vp>!pDǡ?@Pף;!; ! <p<ω1<<DATA<Ѝ<PreviewLamp>DATAЍ<<<LampLampF>DATA<0<Ѝ<SpotLamp>DATA0<`<<Texture and InputLamp>DATA`<<0<Map ToLamp>0<DATA<<`<PreviewMaterial>5DATA<<<MaterialMaterial>5DATA< <<PreviewWorld>EDATA <P<<WorldWorldF>EDATAP<< <Mist Stars PhysicsWorld>DATA<<P<Texture and InputWorld>EDATA<<<Map ToWorld>E<DATA<<<OutputRender>DATA<@<<RenderRenderF>DATA@<p<<AnimRender>DATAp<<@<FormatRender>DATA<Р<p<Link and MaterialsEditing>DATAР<<<MeshEditingF>DATA<0<Р<Mesh ToolsEditing4>DATA0<`<<Mesh Tools 1Editing^>DATA`<<0<CameraEditingF>DATA<<`<ShadersMaterial>5DATA<<<TextureMaterial4>5DATA< <<Anim settingsObjectF>DATA <P<<DrawObject>DATAP<< <ConstraintsObject>DATA<<P<ScriptlinksScript>DATA<<<EffectsObjectP<DATA<<<Map InputMaterial4>5<DATA<@<<Map ToMaterial>5DATA@<p<<AnimAnim>DATAp<<@<SoundSound>DATA<г<p<ListenerSoundF>DATAг<<<SequencerSound>DATA<0<г<ArmatureEditingF>DATA0<`<<RampsMaterial>5<DATA`<<0<Mirror TranspMaterial>5<DATA<<`<Mist / Stars / PhysicsWorld>EDATA<<<Amb OccWorld>E<DATA< <<Shadow and SpotLamp>DATA <P<<ModifiersEditing>DATAP<< <ShapesEditing> <DATA<<P<MultiresEditing>DATA<<<Render LayersRender><DATA<<<BakeRender>@<DATA<@<<Links and PipelineMaterialF>5DATA@<p<<Object and LinksObject>DATAp<<@<SSSMaterial>5<DATA<<p<PreviewTexture>DATA<<<TextureTextureF>DATA<0<<ColorsTextureF><DATA0<`<<CloudsTexture>DATA`<<0<Fields and DeflectionPhysics>DATA<<`<Particles PhysicsF>DATA<<<Particle MotionPhysicsF><DATA< <<Soft BodyPhysics>DATA <P<<Soft Body CollisionPhysics><DATAP<< <Fluid SimulationPhysics>DATA<<P<StucciTexture>DATA<<<MusgraveTexture>DATA<<<ImageTexture>DATA<@<<Map ImageTexture>DATA@<p<<VoronoiTexture>DATAp<<@<Armature BonesEditing>DATA<<p<Armature VisualisationsEditingF><DATA<<<ConstraintsEditing>DATA<0<<WoodTexture>DATA0<`<<StampRender>p<DATA`<<0<Mesh Tools MoreEditing>DATA<<`<UV CalculationEditing><DATA<<<Radio RenderRadio>DATA<<Radio ToolRadioF>DATA <P<333?P<p) EpCX CMDhNpCC(BDC?z?!@mDATAP<`< < 333?P<?zDzD=@ǩ8B_C!!FzD #<HB !DATAX`<<P<333?P<??? ???? A??@PA Aj?c3>}GCHB? A B? #<C DATA0<p<`<333?P<   ??DATAp<<333?P<Load LibraryC:\Users\jutuveps\My Projects\phatch-blender\data\blender\scene.blend\Object\1.blend\Object\ODATA<<P<Mgע f`ωp2VUDATA< o<L2`Pp>!YqR=)<=o?=[=WX[  <l*3*3P<<DATAP<<Transform PropertiesView3d,>DATA<P<View PropertiesView3dT>"DATA<< 333?<?zDzDy?FB.BzDzD=HB DATAx<p<<333?<$B̽̌? C@\\ #< #<`jF@F page.0105 AC$B̽̌?DATA0p<<<333?<CCCC??DATA<@ip< 333?<?zDzDy*CC   FzD #<HB DATAX@il<333?<????????YqR=)<=o?A,&Ay?YqR=)<=o??????,&A? B??ծ==C7?X<@@@? DATAl@i333?<!Save FileC:\Documents and Settings\Milivoj Kuhar\Desktop\blender\untitled.blendlDATA o |<L|L?t2@ JL={=WX{ $#0uy^^pptDATAppqTransform PropertiesView3d>" DATAqrppView PropertiesView3dd>"DATArtqBackground ImageView3dT>"DATAtrPreviewView3dt,"DATAX0ux333? oN>z>?+Su?g8>2cF?:T!?@w=g=D?N>^Su?ص,g8>F?{>? 3c;T!?[[?˕Q)??C>+4m>z>{)?U>Ic>2c> P?d!:T!m=],>8qk?D?~ą>8L`?EJ2 4!4=b>ok5?S0b@6➿[+@2@?t2@ JLN>z>?+Su?g8>2cF?:T!?@w=g=D?_P9?V ^T?]T? B??{3:=Cr=1Jktk=t" 7?X<+2>ˋ+o5+2^/ˋ;>KL+;Z<? DATAxy0u 333? o?zDzDBDHXdHHdFzD #<HB DATAyx333? o!Save AsAGEC:\Users\jutuveps\My Projects\phatch-blender\data\blender\va\objects\.\..\tex\book.blendinal.blendddna.png1full.pngO DATA |ࣵ o2`ω`P$g?m?AHM]]wx #p}~DATAp}~Transform PropertiesView3d,>DATA~p}View PropertiesView3dT>"DATAXp333? |/;3@??i!"4,;i!"?/;30L?.;3?i!"-;i!"4??-;@3@??)3$gA$g?C4d<3,;33m?g MNнMM         ַJS[dmvpWMpWMpWM `鷣𝷣P`p   㷣p Й0@   ܷ@𒷣P`     zMN zM zMzMzMzMzMzMzMzMzM     ﷣ Ф0ষ@𨷣P`p Я0౷ DATA0 333? |?zDzDy*CC   FzD #<HB DATA333? |!Save FileC:\Documents and Settings\Milivoj Kuhar\Desktop\blender\untitled.blendlDATAࣵ |LM|?@ JL}} `*𩵣p;8;80DATA0`Transform PropertiesView3d>" DATA`0View PropertiesView3dd>"DATA`Background ImageView3dT>"DATAPreviewView3dt,"DATA𩵣 333?ࣵе =VXXDATAX`𩵣333?ࣵN>z>?+Su?g8>2cF?:T!?Aw=g=D?N>^Su?ص,g8>F?{>? 3c;T!?[[?˕Q)??D> m>z>|)??Ic>2c> @d!:T!o=#>8qk?D?xą>8L`?ʵD0<1=oj5?S0b@5➿[+@2@?@ JLN>z>?+Su?g8>2cF?:T!?Aw=g=D?_P9?V ^T?]T? B??S:=Cr=1Jktk=t" 7?X<???? DATA`p 333?ࣵ?zDzDBDHXdHHdFzD #<HB DATAp`333?ࣵ!Save AsAGEC:\Users\jutuveps\My Projects\phatch-blender\data\blender\va\objects\.\..\tex\book.blendinal.blendddna.png1full.pngO SRp<SR3-Materialodel Sing \``нP 7DATA \ 2DATA 2x \DATA xף 2DATA ףxDATA hף8DATA h8DATA P" hDATA P" DATA DP" 8DATA DDATA DDATA DATA `DATA `DATA(0 2xDATA(0 \ףDATA(0 \DATA(ףhDATA(𵵣hDATA(𵵣` 2DATA(`ж𵵣P" xDATA(ж@`P" DATA(@жP" hDATA( @DATA( hDATA( P" DDATA(pDDATA(p๵DATA(๵PpDATA(P๵DDATA(0PDATA(0DATA(0DATA(DATA(𼵣`DATA(𼵣`D`DATA(`𼵣`DATAнPε \hף?@Pף77õ̵ µDATA POutputRender>DATAP RenderRenderF>DATAµPAnimRender>DATAµFormatRender>DATAõĵ333?ح0~CA~CA?AFA= ADATAĵŵõ 333?ح0zCCHBC ?CFC= ADATAŵǵĵ333?ح0DhC?DhCC(BDC?z?mDATAXǵʵŵ333?ح0??? ???? A??@PA Aj?c3>}GCHB? A B? #<C DATA0ʵ̵ǵ333?ح0@̌AR|B1@lA A@CC #<@DATA̵ʵ333?ح0/9DATAPεϵн 2xP" DATAϵPεDP" hG@? JL99STzwc@쵣е뵣DATAе ҵOutputRender>DATA ҵPӵеRenderRender>DATAPӵԵ ҵAnimRender0>DATAԵյPӵFormatRenderH>DATAյֵԵPreviewMaterial>DATAֵصյMaterialMaterial>DATAص@ٵֵShadersMaterial0>DATA@ٵpڵصTextureMaterialD>DATApڵ۵@ٵMap InputMaterial\>DATA۵ܵpڵMap ToMaterial`>DATAܵ޵۵RampsMaterial>ֵDATA޵0ߵܵMirror TranspMaterialH>DATA0ߵ`ൣ޵Links and PipelineMaterial>DATA`ൣᵣ0ߵObject and LinksObjectH>DATAᵣⵣ`ൣAnim settingsObject>DATAⵣ㵣ᵣDrawObject>DATA㵣 嵣ⵣConstraintsObject0>DATA 嵣P浣㵣Fields and DeflectionPhysicsH>DATAP浣絣 嵣Particles Physics>DATA絣赣P浣Soft BodyPhysics>DATA赣鵣絣Soft Body CollisionPhysics>絣DATA鵣뵣赣Fluid SimulationPhysics0>DATA뵣鵣Particle MotionPhysics>P浣DATA@쵣p333?P!ChCCD"hCC(BDC?z?zDATAXp@쵣333?P!J>H!?)xu?i6>Pbܗ=(?^L?a?滎z?J>#xu?ܗ=Hi6>(? ?Pb^L?\FAA?4[?[!?@jG>gb>Pb>4Im>k&?]M^L<0@AzA=>Kc<2֍7&> ?:x¸A1vB,jB~@G@? JLJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?@?$$OA B?=Ch?j(4?t'>d DATAxp333?P!zC AzC A #< #<`jFzD OBDATA333?P!;SAVE FILE/usr/home/intrr/blender/blend/untitled.blendDATA0ϵU.=E#>o?99ST@`DATAX`333?!???h?j(4?t'>????hj(4t'?U.=E#>oo????h?j(4?t'>??OA B??m8==Ch?j(4?t'>d X@ X@ X@? DATA0`333?!DdC>9C,DeCC(BDC?z?DATAx0333?!zC AzC A #< #<`jFzD OBDATA0333?! SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATA0P `De?d@AHM9SDATAX 333?؆ݕ/?V~'?3F:?>T8175e?4>Z& 4?ߕ/?7F:?81X~>75e?'?T3>ne@>N@?4z?8''䷄?*5??T?w|H-@ l4.[11A 4Ao≯?,  >>z4xkBˇ֟&B{`eA(@e?d@AHMݕ/?V~'?3F:?>T8175e?4>Z& 4?H?N+Z#OA B?? U8;=Ch?j(4?t'>d@@@? DATA P333?؆DdC>9C,DeCC(BDC?z?DATAxP 333?؆zC AzC A #< #<`jFzD OBDATAP333?؆ SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATAP 0`&=b>o?9S 0DATAX @333?(@q?3?3:-vl(4??3?3;@k(40v@?&=1n;b>ø;9P{8;?JXAz(4P@+zC:@l(40v@?&=b>o??3?3:-vl(4?5?5IXA B??M==C:j(4?.vdp@p@p@? DATA@p 333?(@qDdC>9C,DeCC(BDC?z?DATAxp0@333?(@qzC AzC A #< #<`jFzD OBDATA0p333?(@q SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendSRppPSR4-Sequence`@`"" H DATA `DATA  ` DATA  DATA  DATA @DATA @DATA @DATA `DATA `DATA  `DATA TDATA  TDATA @DATA @DATA( DATA(`DATA(`DATA(`@DATA(`@DATA(@`DATA(@ DATA( @DATA( `DATA( DATA(p`DATA(p` DATA(Pp DATA(PDATA(0 PDATA(0   DATA( !0 DATA(!! `DATA(!!!@DATA(!`"!@@DATA(`"!@DATA"P,`@(* $'DATA $P%OutputRender>DATAP%& $RenderRenderF>DATA&'P%AnimRender>DATA'&FormatRender>DATA(*333?WDhCvDhCC(BDC?z?DATA*(333?W/9DATAP,-"  !  DATA-6P,@@8=i>o? .4DATA./333?W&~CB~CB ?BFB= ADATA/1.333?W&zCAzCA  A@FB= A ?DATAX14/333?W&????????8=i>o?fffAD&@??fffA B? #<C DATA41333?W&AVE TARGA/t1.blend9DATA60?- 8=H>o?UUU 08<DATA08P9333?W*zCAzCA1||1 A@FB= A ?DATAXP9<08333?W*????????8=H>o?fffA*@??fffA B? #<C DATA<P9333?W*AVE TARGA/t1.blend9DATA0? H6` 8=>o?SSST@EDATAx@@B333?W.B̽̌?B̽̌? #< #<`jFzD SQB̽̌?DATAX@BE@333?W.????????8=>o?fffA@??fffA B? #<C DATAE@B333?W.OAD FILE/9DATA H0?`@8=i>o? pI0NDATApIJ333?W1zCAzCA A@FB= A ?DATAXJ0NpI333?W1????????8=i>o?fffAD&@??fffA B? #<C DATA0NJ333?W1AVE TARGA/t1.blend9SRpPpSR5-Scripting`QT U@[[`w DATA `QQDATA Q R`Q DATA RRQ DATA RR RDATA R@SRDATA @SSRDATA ST@SDATA T`TSDATA `TTTDATA T`TDATA( UUQ RDATA(UV UQ@SDATA(VpVU RSDATA(pVVV@SSDATA(VPWpVRTDATA(PWWV@S`TDATA(W0XPWS`TDATA(0XXWT`TDATA(XY0XR@SDATA(YYX`QRDATA(YYY`QTDATA(Y`ZYRTDATA(`ZZYTTDATA(Z@[`Z`TTDATA(@[ZRSDATA[]@SQ RS !  DATA]f[R@S`TTz==o?`PdP^_DATAP^_Transform PropertiesView3d>DATA_P^3D Viewport propertiesView3d>"DATAX`Pd333?Y.|????????z==o?&A*A?z==o??????*A B??=C ?@?@?@? DATAPd`333?Y.|/9DATAf`w]T`TSR??Pף Li uggDATAgTransform PropertiesIpo!>DATAii 333?Y/|е> =DATA i@ki333?Y/|CCx??|?DATAx@kmi333?Y/|zC̽̌?zC@;; #< #<`jFzD OBzC̽̌?DATA0mpn@k333?Y/|CC|||??l|DATApnpom 333?Y/|zCCHBC|||?CFC= ADATApopppn 333?Y/|?zDzDBCl||ll|zDzD=HB DATAppqpo 333?Y/|BCBCl|llFzD #<HB DATAXq upp333?Y/|??? ???? A???PA A!O?j?}GCHB? A B? #<C DATA uq333?Y/|/9DATA`wf`QRTTOPx DATAxyLink and MaterialsEditing>DATAy{xMeshEditingF>DATA{@|yAnim settingsObject>DATA@|p}{DrawObjectF>DATAp}~@|ConstraintsObject>DATA~p}EffectsObjectDATA~HooksObjectF>@|DATA0Particle InteractionObject>p}DATA0`SoftbodyObject>p}DATA`0OutputRender>DATA`RenderRenderF>DATAAnimRender>DATA FormatRender>DATA ScriptlinksScript>DATAP333?Y0|ChC#DhCC(BDC?z?DATAP333?Y0|/9SC@SCScenetageain@<=y'~ >KL+;Z<KL+;Z<KL+;Z<=𘶣`)dd??< d X d! ??BB?33s????//backbuf/tmp/L?L?L??>??_??D P㢠DATA(<{@oPDATA(@{<DATA({ @hMDATA( {_MDATA({ NMDATA({pqMDATA(p{pWMDATA({PpzMDATA(P{@DATA({0P DATA(0{ .DATA({0  DATA({ .DATA({ ;pDATA(𘶣z,d'=A@DATA`L?B ?o: ??P22 2d 22 22 22 22 22 > #<===ff??AHz?=???CDATA8'????C?N $,=N +=??????DATAH%?=Vy?>`fff?Ou<?DATAX1 RenderLayerIMLM IMRender Result   J??CA@CAcameraamera.001a.001,L>LB=B-B@?LA0(LALamp?????A4B>??`? B4B?@@???o:??????@?????@DATA8`'????C?55?55?ࡶ??????DATAࡶ%??DATA(@LA(00LASpot.004 ????Ю?AB>??श.?A4B?@@@ ???o:??????@?????DATA8श'????C?55?55?`??????DATA`%??DATA(LA0(LASpot.005 ????>AB>??`.?A4B?@@@ ???o:??????@?????@DATA8`'????C?55?55?શ??????DATAશ%??DATA(@IPp`IPActIpo?zC@ACIPp`IPActIpo.001?zC@ACIPp`IPActIpo.002?zC@ACIPppIPActIpo.003?zC@ACIPpp IPActIpo.004?zC@ACIPp ЯpIPActIpo.005?zC@ACIPpЯ IPActIpo.006?zC@ACIPp0ЯIPActIpo.007?zC@ACIPp0౶IPActIpo.008?zC@ACIPp౶0IPActIpo.009?zC@ACIPp@౶IPActIpo.010?zC@ACIPp@𳶣IPActIpo.011?zC@ACIPp𳶣@IPActIpo.012?zC@ACIPpP𳶣IPActIpo.013?zC@ACIPpPIPActIpo.014?zC@ACIPpPIPActIpo.015?zC@ACIPp`IPActIpo.016?zC@ACIPp`IPActIpo.017?zC@ACIPp@`IPActIpo.018к?zC@ACDATAppACDATApp pACDATAp кp`ACDATApк PAC?DATA.IA(> B/>odB?$B#*?3BK?bLB>Ɯ[B>0bdB>tB>΁B>1B>B>ΕB>IPppIPActIpo.027?zC@ACDATAp`pACDATAp`pACDATAp`pACDATAppAC?DATAp.9?V@_@ ;0A"=vnAr}=ĈA>A>~;A>_A>A>Н B>0bB>$B>Н3B>DbLB>[B>DbdBы>tBы>΁Bы>1Bы>Bы>ΕBы>DATAp.9?@~@@0A`AwnAޓ_ĈAGAG;AG_AGAGН BG0bBG$BGН3BG0bAvC>D;AvC>_AvC>AvC>Н BvC>0bBvC>$BvC>Н3BvC>2bLBvC>Ν[BvC>2bdB1S>tB1S>΁B1S>1B1S>B1S>ΕB1S>DATA .9?@~@0AAwnA_ĈA@ClA@Cl;A@Cl_A@ClA@ClН B@Cl0bB@Cl$B@ClН3B@Cl0bAZ8>N;AZ8>_AZ8>AZ8>Н BZ8>7bBZ8>$BZ8>ɝ3BZ8>bLB,=u[BT=_bdBۇtBۇ΁Bۇ1BۇBۇΕBۇDATAP.9?@~@0AAwnA_ĈAYAY;AY_AYAYН BY0bBY$BYН3BY0bAH>?;AH>AH>AH> BH>tbB=$B^=3B(}<?b0A8>vnA8>_ĈA8>A8>;A8>lA8>A8>ʝ B8>bB.>$BJ =T3BH=6b'IPActIpo.03235?zC@ACDATAp346ACDATAp4@538ACDATAp@554:ACDATAp5@5<AC?DATA6.9? @@;+>0A;+>vnA;+>ĈA;+>A;+>,;A;+>AM<AM< BM<0bBM<$BM<Н3BM<:b0A>vnA>`ĈA>A>;A>`A >A >Н B >0bB >$B >Н3B >0bLB >Н[B >0bdBL>tBL>΁BL>1B_S>B_S>ΕB_S>DATA<.9???j@?@y?0Ay?>wnAy?`ĈAy?Ay?;Ay?`A9}?A9}?Н B9}?0bB9}?$B9}?Н3B9}?0bJ03IPActIpo.033P?`A?zC@ACDATApP?@BACDATAp@@P?DACDATAp@`A@FACDATAp`A@HAC?DATAB.%9?@@3>0A3>unA3>ňA3>A3>G:A3>Aض<A( B+AbBSB$BSB3BSB1b0A(&>vnA(&>`ĈA(&>A(&>;A(&>`A=A=Н B=0bB=$B=Н3B=0bz?tBz?΁Bt{?1B}?B}?ΕB}?IPpJS>IPActIpo.034JL?zC@ACDATApJpKMACB0L>>DATAppK LJNACB4/#<DATAp LLpK@PACB֕<DATApL LQACBw{?DATAM.90L>>?0L>>tۜ@0L>>2#@M|>0A?gnnA?)?dňA>tJ?AZ?-:A=i?iA=i?A=i?̝ B=i?0bB=i?$B=i?Н3B=i?DATAN.94/#<?4/#<Q@4/#<@%0AF2˼$wnA!ĈA0"A…t;ATmtA!M A!M Ɲ B!M 0bB!M $B!M Н3B!M DATA@P.9֕<?֕<@֕<&@r=0Az?>tnA`ށ>ĈAu5>Au5>q;Au5>cA2j>A2j>Ν B2j>0bB2j>$B2j>Н3B2j>DATAQ.49w{??w{?@w{?L @q?0A#pS?onA/5?UȈAH)>AC>7A]>A`I>A`I> B`I>0bB`I>$B`I>Н3B`I>IPpS[JIPActIpo.035SU?zC@ACDATApS`TpVACJ)DATAp`TUSWAC?1DATApUU`T0YACDATApUUZAC}?DATApV.9J)?J)@J)~@J)0AJ)AwnAJ)ĈAJ)AJ)J;AJ)A|=AQk= B=3bB=$B=͝3B=DATAW.9?1??1@?1~@?10A?1AwnA?1`ĈA?1A?1;A?1`AA<#Н B.0bB.$B.Н3B.DATA0Y.9?@~@0AAwnA`ĈAA;A`A;A¡;Н B;0bB;$B;Н3B;DATAZ.9}??}?@}?~@}?0A}?AwnA}?_ĈA}?A}?;A}?_Al^?Al^?Н Bl^?0bBt~?$Bt~?Н3Bt~?IPp[dSIPActIpo.036\^?zC@ACDATAp\P]`_ACB hDATApP]^\`ACVKDATAp^^P] bACDATAp^^cAC?DATA`_.9B h?B h@B h~@B h0AB hAwnAB hĈAB hAB hT;AB hAe=Ak= BK/=0bBK/=$BK/=Н3BK/=DATA`.9VK?VK@VK~@VK0AVKAwnAVK`ĈAVKAVK;AVK`AAfН B0bB$BН3BDATA b.9?@~@0AAwnAaĈAA;AaA.O;A;Н B6";0bB6";$B6";Н3B6";DATAc.9???@?~@?0A?AwnA?_ĈA?A?;A?_A39~?A&~?Н B~?0bB~?$B~?Н3B~?IPpdm[IPActIpo.037eg?zC@ACDATApe@fPhACpDATAp@ffeiACKۺDATApfg@fkACDATApgfplAC?DATAPh.9p?p@p@p0ApvnAp_ĈAKAK;AKIA Ap[ Br<bB=$B=r3B=DATAi.9Kۺ?Kۺ@Kۺ~@Kۺ0AKۺAwnAKۺ_ĈA ~A ~;A ~_AKۺAKۺН BKۺ0bB~$B~Н3B~DATAk.9?@@0A1wnA_ĈAnAn;AnpA/pAȝ BZ<3bBz{<$Bz{<͝3Bz{<DATApl.9???@?@?0A??wnA?_ĈAnz?Anz?;Anz?`A?A?Н B?0bB~?$B~?Н3B~?IPpmvdIPActIpo.038np?zC@ACDATApn0o@qACLCb<DATAp0oonrACyDATApop0otACY;DATAppo`uAC?DATA@q.9LCb<?LCb<@LCb<@LCb<0ALCb<unALCb<_ĈAA;AALCb<ALCb< BLCb<:bBD$BDƝ3BDDATAr.9y?y@y@y0AyvnAy_ĈA=A=;A=A+^Ay B{0bB{$B{Н3B{DATAt.9Y;?Y;@Y;@Y;0AY;8wnAY;_ĈA!A!;A!bAY;AY;ϝ BY;0bBu ǻ$Bu ǻН3Bu ǻDATA`u.9???@?@?0A?8wnA?_ĈAt?At?;At?dA?A?Ν B?0bBX?$BX?Н3BX?IPpvmIPActIpo.039pwy?zC@ACDATAppw x0zAC?<DATAp xxpw{ACl;DATApxy x|AC,;DATApyxP~AC?DATA0z.9?<??<@?<x@?<0A?<vnA?<tĈAwAw;AwxA*ԥA|ĝ B¨-5bBU$BU˝3BUDATA{.9l;?l;@l;~@l;0Al;AwnAl;_ĈAb6<A`9<;A@;<_A@;<A@;<Н B@;<0bBp#<$Bp#<Н3Bp#<DATA|.9,;?,;@,;@,;0A,;>wnA,;`ĈAA;A`ABɋARhН B90bB$BН3BDATAP~.9???@?~@?0A?AwnA?_ĈA`}?A`}?;A`}?`A?AHx?Н B?0bB?$B?Н3B?IPpvIPActIpo.040`p?zC@ACDATAp` AC #=DATAp`AC<DATAppAC3;DATApp@AC?DATA .9 #=? #=@ #= @ #=0A #=zvnA #=qĈAr2!Ar2!;Ar2!dA+,A+,Ν B+,JbB$B3BDATA.9<?<@<@<0A<8wnA<`ĈAS=AS=;AS=bA?u<A?u<ϝ B?u<0bB<<$B<<Н3B<<DATA.93;?3;@3;@3;0A3;3wnA3;`ĈA}HA}H;A}HaAn2An2Н Bn21bByм$Byмϝ3ByмDATA@.9???@?@?0A?@wnA?_ĈA&|?A&|?;A&|?`AҺ?AҺ?Н BҺ?0bB7~?$B7~?Н3B7~?IPpIPActIpo.041P`?zC@ACDATApPACDATApPpACDATAp`ЎACDATAp`0AC?DATA.9?@~@0AAwnA_ĈAA;AaAAН B3bB?׼$B?׼͝3B?׼DATAp.9?@~@0AAwnA_ĈAA;A_AAН B0bB}:$B}:Н3B}:DATAЎ.9?@~@0AAwnA_ĈAA;A_AAН B0bB $B Н3B DATA0.9???@?~@?0A?AwnA?_ĈA?A?;A?_A?A?Н B?0bB?$B?Н3B?IPp@IPActIpo.042?zC@ACIPp@𒷣IPActIpo.043?zC@ACIPp𒷣@IPActIpo.044?zC@ACIPpP𒷣IPActIpo.045?zC@ACIPpPIPActIpo.046?zC@ACIPpPIPActIpo.047?zC@ACIPp`IPActIpo.048?zC@ACIPp`IPActIpo.049?zC@ACIPp`IPActIpo.050?zC@ACIPppIPActIpo.051?zC@ACIPpp IPActIpo.052?zC@ACIPp ЙpIPActIpo.053?zC@ACIPpЙ IPActIpo.054?zC@ACIPp0ЙIPActIpo.055?zC@ACIPp0IPActIpo.056?zC@ACIPp0IPActIpo.057?zC@ACIPp@IPActIpo.058?zC@ACIPp@𝷣IPActIpo.059?zC@ACIPp𝷣@IPActIpo.060?zC@ACIPpP𝷣IPActIpo.061 C@ACIPpPIPActIpo.062?zC@ACIPpPIPActIpo.063?zC@ACIPp`IPActIpo.064?zC@ACIPp`IPActIpo.065?zC@ACIPp`IPActIpo.066?zC@ACIPppIPActIpo.067?zC@ACIPpp IPActIpo.068?zC@ACIPp ФpIPActIpo.069?$B@ACIPpФ IPActIpo.070?$B@ACIPp0ФIPActIpo.071)wBAACIPp0ষIPActIpo.072?$B@ACIPpষ0IPActIpo.073?$B@ACIPp@ষIPActIpo.074?$B@ACIPp@𨷣IPActIpo.075?$B@ACIPp𨷣@IPActIpo.076?$B@ACIPpP𨷣IPActIpo.077?$B@ACIPpPIPActIpo.078?$B@ACIPpPIPActIpo.079?$B@ACIPp`IPActIpo.080?$B@ACIPp`IPActIpo.081?$B@ACIPp`IPActIpo.082?$B@ACIPppIPActIpo.083?$B@ACIPpp IPActIpo.084?$B@ACIPp ЯpIPActIpo.085?$B@ACIPpЯ IPActIpo.086?$B@ACIPp0ЯIPActIpo.087?$B@ACIPp0౷IPActIpo.088?$B@ACIPp౷0IPActIpo.089?$B@ACIPp౷IPActIpo.090?$B@ACWO@yWOWorldJ===??A <>?L>@pA A?L=>`DATA(`TXеTXTextVVзDATA(0VEERFDATAX0http://e2-productions.com/repository/modules/PDdownloads/singlefile.php?cid=10&lid=242EGRhGRbookroup𾷣DATA(0hMDATA(0_MDATA(0NMDATA(qMDATA(𾷣pWMDATA(𾷣zMAC``˷ACAction ʷDATAX pageIKDATAX` `page.01DATAX`·page.02DATAX··`page.03DATAX·@÷·ppage.04DATAX@÷÷· page.05DATAX÷ķ@÷Яpage.06DATAXķ ŷ÷page.07DATAX ŷŷķ0page.08DATAXŷ`Ʒ ŷ౶pageIK.001DATAX`ƷǷŷpage.001DATAXǷǷ`Ʒ@page.002DATAXǷ@ȷǷ𳶣page.003DATAX@ȷȷǷpage.004DATAXȷɷ@ȷPpage.005DATAXɷ ʷȷpage.006DATAX ʷʷɷpage.007DATAXʷ ʷ`page.008AC`˷ ѷ`ACAction.001 ̷зDATAX ̷̷page.04DATAX̷`ͷ ̷@page.05DATAX`ͷη̷pƶpage.06DATAXηη`ͷͶpage.07DATAXη@ϷηԶpage.08DATAX@ϷϷηܶpage.01DATAXϷз@Ϸ0ⶣpage.02DATAXзϷ`趣page.03AC ѷַ`˷ACAction.002ѷ@ַDATAXѷҷpage.01DATAXҷ ӷѷpage.02DATAX ӷӷҷppage.03DATAXӷ`Է ӷpage.04DATAX`ԷշӷPpage.05DATAXշշ`Է'page.06DATAXշ@ַշ03page.07DATAX@ַշ>page.08ACַܷ ѷACAction.003׷ܷDATAX׷@طJ3page.01DATAX@طط׷Spage.02DATAXطٷ@ط[page.03DATAXٷ ڷطdpage.04DATAX ڷڷٷmpage.05DATAXڷ`۷ ڷvpage.06DATAX`۷ܷڷpage.07DATAXܷ`۷page.08ACܷ㷣ַACAction.004`ݷ`ⷣDATAX`ݷ޷pageDATAX޷޷`ݷ@page.01DATAX޷@߷޷𒷣page.02DATAX@߷߷޷page.03DATAX߷෣@߷Ppage.04DATAX෣ ᷣ߷page.05DATAX ᷣᷣ෣page.06DATAXᷣ`ⷣ ᷣ`page.07DATAX`ⷣᷣpage.08AC㷣`鷣ܷACAction.005㷣跣DATAX㷣`䷣pageDATAX`䷣巣㷣ppage.01DATAX巣巣`䷣ page.02DATAX巣@淣巣Йpage.03DATAX@淣淣巣page.04DATAX淣緣@淣0page.05DATAX緣 跣淣page.06DATAX 跣跣緣page.07DATAX跣 跣@page.08AC`鷣﷣㷣ACAction.006 귣 ﷣DATAX 귣귣𝷣pageDATAX귣`뷣 귣page.01DATAX`뷣췣귣Ppage.02DATAX췣췣`뷣page.03DATAX췣@췣page.04DATAX@췣`page.05DATAX@page.06DATAX ﷣page.07DATAX ﷣ppage.08AC﷣`鷣ACAction.007DATAX  #Book.IKDATAX ФBookDATAX` Bone_L.005DATAX`0Book_spine_L.001DATAX`ষBook_spine_L.003DATAX@Book_spine_L.002DATAX@@Book_L.004DATAX@𨷣Book_LDATAX Book_L.001DATAX PBook_L.001aDATAX` Book_L.002DATAX`Book_L.003DATAX``Bone_R.005DATAX@Book_spine_R.001DATAX@Book_spine_R.003DATAX@pBook_spine_R.002DATAX  Book_R.004DATAX ЯBook_RDATAX` Book_R.001DATAX`0Book_R.001aDATAX`౷Book_R.002DATAXBook_R.003OB0@qOBBounding Boxube?ǡM?>>?>>???????????43@i!3n!4@@33@Y'?DOBd8? #=?>=???????@???0ۺ2OB0q @OBcameraameraamera.001 @@?????ɿI@ɿ.;3?i!"-;i!"4??-;.;3@???????$Z0? ' '???<?Z0??OBd??>?>B@?u=??????OB0 q OBcamera_targetmpty?????????????????.;3?i!"-;i!"4??-;@3@?DOBd8? #=?>=???????@???OB0 q OBfloorlaneϡ0ލU???????????????.;3?i!"-;i!"4??-;@3@??DOBd8?<?>Q8>???????@???٢`ڻDATAUOB0qp OBLamp  ?Ν????{&?W+b=?6씾t? bfE9L"?%?_>oK? ?Ν???????33?&&?'?t?AL_> b"?oK?7씾fE&??>J/?DOBd8? <?>#y>u=???@???OB0pqOBLamp.001 0b٤.LX?6Ƶ????{&?W+b=?6씾t? bfE9L"?%?_>oK?b٤.LX?6Ƶ???????@?33? (@4?t??L_> b#?oK?6씾fE&?5ۿx ;Or??DOBd8? <?>#y>u=???@???OB0qPpOBLamp.002 04^NZ>??????4^NZ>?????????-;3?i!"-;i!"4??YE3 @?ǖ=?DOBd8? #=?>=???????@???OB0PqNMOBLamp.003 0s ? 2?>??????s ? 2?>?????????.;3?i!",;i!"4??bK763G? 2Q=?DOBd8? #=?>=???????@???OB0NMqpWMPOBPlaneN!`VMVMVM KL@:E(;&v"4>ЃЃ>Ѓ>Rg=?pIzn;Ѓ J2*ҡ/;zn>KL@:E(;?RJ@@RJ@@RJ@@t;$N >??%`?`&,?`?Ps4utT>vtT>3,5P@qDU>lH4/=N'J@?DOBd8?<?>Q8>u=????@??? l=0ڢDATA DATA0!oPSMpage.01DATA0PSMoSM!page.02DATA0SMo0TMPSMpage.03DATA00TMoTMSMpage.04DATA0TMoUM0TMpage.05DATA0UMoUMTMpage.06DATA0UMoUMUMpage.07DATA0UMo`VMUMpage.08DATA0`VMoUMpageDATAXVMNSubsurfOB0pWMq_MNMOBPlane.001)ʢ捡[M0]Mp^Mp^M o8ԸK;;o:E;&v"4>Ѓ>Ѓ>Ѓ>?v J2Ѓ>Ѓv J2Ѓ>ԸK;;o:E;?RJ@@RJ@@RJ@@t;$N >??(???>l@[4PG 5|ʹ?l@; [4?lem4M.L@?DOBd8?<?>Q8>u=????@???]MR/=@8DATA o8DATA0[MoP\MleftroupDATA0P\Mo\M[MrightroupDATA0\Mo0]MP\MBook_L.004roupDATA00]Mo\MBook_R.004roupDATA]Ms=L> ף<:DATAXp^MNSubsurfOB0_MqhMpWMOBPlane.002ꑠe cMgMpgMpgMMKL*;Ŏ;&v"4>σ>Ѓ>σ>:H ?NI2l>B;Ѓa>J26_IBl>KL*;Ŏ;?RJ@@RJ@@RJ@@t;$N >???e&?/?M@4+j`+j`>5M@J?c4>lŅ4v=N`J@?DOBd8?<?>Q8>u=????@???=Z=0kDATAMDATA0cMocMpage.01DATA0cMo`dMcMpage.02DATA0`dModMcMpage.03DATA0dMo@eM`dMpage.04DATA0@eMoeMdMpage.05DATA0eMo fM@eMpage.06DATA0 fMofMeMpage.07DATA0fMogM fMpage.08DATA0gMofMpageDATAXpgMNSubsurfOB0hMqqM_MOBPlane.003@@ lMpMppMppMeKL+;Z<&v"4>Ѓ>Ѓ>Ѓ>Rg=?pI2zn>Ѓ J2*ҡ/;zn>KL+;Z<?RJ@@RJ@@RJ@@t;$N >??%`?`&,?`?P@-14vtT>wtTۓP@dP4?l4kNJ@?DOBd8?<?>Q8>u=????@???*Uc=@DATAeDATA0lMolMpage.01DATA0lMo`mMlMpage.02DATA0`mMomMlMpage.03DATA0mMo@nM`mMpage.04DATA0@nMonMmMpage.05DATA0nMo oM@nMpage.06DATA0 oMooMnMpage.07DATA0oMopM oMpage.08DATA0pMooMpageDATAXppMNSubsurfOB0qMqzMhMOBPlane.005@pNuMyMpyMpyM_KLE9;&v"4>σ>Ѓ>σ>:H ?NI2l>B;Ѓa>J26_IBl>KLE9;?RJ@@RJ@@RJ@@t;$N >???e&?/?M@4*j`*j`> 5M@խd4>lj4=N.J@?DOBd8?<?>Q8>u=????@???l=xU BDATA_DATA0uMouMpage.01DATA0uMo`vMuMpage.02DATA0`vMovMuMpage.03DATA0vMo@wM`vMpage.04DATA0@wMowMvMpage.05DATA0wMo xM@wMpage.06DATA0 xMoxMwMpage.07DATA0xMoyM xMpage.08DATA0yMoxMpageDATAXpyMNSubsurfOB0zMqqMOBPlane.006@pN~M MMMҢd4=;@_H:Vn;&v"4>TR=TR=TR=?851TR=TR851TR=d4=;@_H:Vn;????????/./?ʛA*&5:UE4iE66ʛA!&5ʛ c45\s%էA?DOBd8?<?>Q8>u=????@???h>EǡPҢDATAҢDATA0~Mo~MBook_spine_R.001DATA0~Mo`M~MBook_spine_L.001DATA0`MoM~MBook.IKroupDATA0Mo@M`MBook_spine_L.003DATA0@MoMMBook_spine_R.003DATA0Mo M@MBook_spine_R.002DATA0 MoMBook_spine_L.002DATAXMNSubsurfMA0M*MMAcoveraterial.007B?{d>???????Z=????????? ף; ף;?AA ?????????@?=?==???`M????L?L?L?L==ff????DATA(`M ЅMDATAЅMCsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@r  !"""     @q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFv !&),----+)'#  FvFvGvHwHxIxJyKyQ~P}O|N|M{M{Lz!).145665532/,)%  KzLzM{M{N|O|P}VUTSR '/47:<<===<;9741-)# 'RRSTU[ZYX +5<@CDEEEDDCB@>;850,%*6XXYZ`_^^0<CH K"M#O$O$O$O$N#L"J"H F DB?<83-07]^^_eed2@I!O#R%U'W'X(X(Y(X(W'U'S&Q%N#J!G DA>946<Ecdekj,BM#T&Y(\*^+`+a,a,b,a,`+^*\*Y(V'R%N#J!F C?:;BJ!V'jjppBO$X(^*b,e.g/i/j0j0j0i0h/f.d-a,^*Z)V'Q%L"G D?@F N#Y(opv7O$Z)b,g/k0n2p3q3r3r4r3q3o2m1k0h/e.a,]*X(S&N#H CDJ"R%\*n2u|I!\)e-k0p3t4v5x6y7z7z7y7x6w6u5r4o2l1h/d-_+Z)T&N#G I!N#W'`,o2{W'e.n2t4x6|8~9:::::9}9{8y7v5r4o2j0f.`,[)U&N#M#R%Z)d-q3a,n2v6|8:;<=>>>=<<;:|8y7u5q3l1f.a,Z)T&S&V'^*g/t4N#j0v5~9<=?@@AAA@?>=<;9{7v6r3l1f.`+Y(Z(\*a,k0w6BV'q3}8<?ABCCDDCCBA@?=<:|8w6r3l1e.^*`+b,e.n2{7C^*x6;?BDEFFGGFFEDCA@><:|8w6q3j0c-e.h/l1q3~9D`+~9>BDFHIIIIIHGFEDBA?=:{8u5n2i/k0n2q3w6;H;@DGIJKLLLKKJIGFDCA?<:y7r4n2p3s4w6|8<O<BFIKMMNNNNMLKJHGEC@>;}8v5s4u5x6|8:?=DHKMOPPPPPONMLJHGDB@=:y7x6z7}9:=B:DJMOQRRRRRQPONLJHFDA>;|8}89:=?FDJNQRSTTTTSRQONLJHEB?<::;<>BAJORTUUUUUTSRQOMKIFC@=;<=>@DIORTVVWWVVUSRPNLJGDA===>@BMRUVWWWWVVTSQOMJGDA=>>?AFPTVWXXXWVUSQOMJGD@>>?@AGQUWWXXWVUSQOMJGC?>>??QTVWWVVTSQOLIEA>==NRTUUTSQOMJGC><;KOPPONLIFB=y7AEEB?w6MAM*M0MMAflooraterial.001Cli=i=sj>?????????>?L?Vn@33???2?? ף; ף;EE ????????@?=?==???@M????L?L?L?L==ff????DATA(@M MDATAMCsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@r'1"*"  ! &&0@q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFv$0$  !#,FvFvGvHwHxIxJyKyQ~P}O|N|M{M{Lz'             "KzLzM{M{N|O|P}VUTSR)6                 %4RRSTU[ZYX+8       ):XXYZ`_^^ !    !]^^_eed(     *cdekj*7    *=jjpp)           .opv%2?"              %%2Gu|'6       ! !       (={ 1    ! " " # # # # " " !      "6.   ! # $ $ % % % % % $ $ # " !     24>N-  " $ % & ' ' ' ' ' ' & & % $ # " !     /7BZ6?O. " $ & ' ( ) ) ) ) ) ) ( ( ' & % $ # !     .5>W8AQ0 $ & ( ) * + + + + + + * * ) ( ' & $ # !       07@X?HX4 & ( * +,------, + * ) ( ' & $ # !       2?Ga"&; ' * ,-./////..-, + * ) ' & $ "     !"9LUo+/D ) +-/0011100/..- + * ) ' % $ "    ! #(+B6:O1-/0122222110/.- + * ( ' % # ! " #*48OFK^$&?.012334433210/.- + ) ( & # ! " " # $ 8FKb47N01344555543320/., * ) & $ " # $ $ &13JJMb'(C13456666544310/- + ) ' % $ $ % & 8FI_?AY;4566776654321/. , * ' % % % %/;77777654310. + ) & &.12GVWhBC^'(H677765431/- + ( %"#9<=PTVl;=Y'(H;554310. ,."#956JMN_[\qFGa89U,.K()G%&C$%A'(C+-E45K?@SUUdmm}]^qXYlXYlZZlklxMAM*нMMMAMaterial.002D?{d>???????Z=???L?????? ף; ף;?AA ?????????@?=?==??? M????L?L?L?L==ff????DATA( M MDATAMCsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@r  #&(('%"   @q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFv &-15777641.)$  FvFvGvHwHxIxJyKyQ~P}O|N|M{M{Lz&18=@BCCBA@=:61,% KzLzM{M{N|O|P}VUTSR /9@EI!K"L"M#M#M#K"J!H DA<71)!.RRSTU[ZYX 4CK"Q%U&W'X(X(X(V'V'U&S&Q%N#K"F A<5,2CXXYZ`_^^;L"U&[)a,d-e.f.f.e.d-b,_+\)Y(W'T&P$K"F ?7;D]^^_eed=Q%]*e.j0n2q3r4s4s4s4q3o2l1h/d-_+[)W'S%N#H @CL"X(cdekj6T&c-m1s4x6{8}999:9}8z7w6t4o2j0e._+Z)U&O$H!J!S&_+p2jjppS&f.r3z7:<=>???>=<;~9z7u5o2i/b,[)V'O$Q%Z)d-s4opvDf.u5:=?ABCDDDCBA?><9y7s4l1d-\)U'W'_+j0x6Au|^*w6;?BEFHHIIHHGEDB@>;|8u5m1e-[)]*d-p3~9B{p3<AEHJKLMMMMLKJHFDB?<~9v5m1d-c-j0u5;C~9AGJMOPQRRRQPONLJHFC@=~9u5l1l1o2z7=Ed-?FKOQSUUVVVUTSRPNLIGC@=}9t4t5w6~9?GXp3CKPSVXYZZZZYXWUSROMJGD@<z7}8:<AIYz7GOTWZ\]^^^]]\ZYWUSPMJGC?;<>@CL[}8KRW[^`aabba`_^\ZXVSPMJFA>?ACGM`NV[_acdeeeedba_][YVSPLHDBCDGJPiOX^befhhihhgfdb`^[YVROKFEFHJMSPZ`egikkkkkjigeca^[XTQMHGIKMQWM[bgjlmnnnnmkjhec`]ZWSNJKLMPT][chlnppqpponljheb_\XTPLMOPRWWcjmpqrsrrqpnljgda^ZUQOPQRU[ainqsttttsqpnkifb_[VQQQRTXgnqsuuuutsqomjgc_[VQRSTV]kpsuvvvusrpmjgc_ZURSSUW_mqtuvvusrpmjfc^YTRSSTlqstttsqoliea\WRRQhnqrqpomjfc^YRONejkljhea]XQHW\[XTGMAнM*MMMApage.003E?????????????-?????? ף; ף;?CACA ?????????@?=?==???MM????L?L?L?L==ff????DATAM!M??????????L>DATA(M @MDATA@MCsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@r  @q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFvFvFvGvHwHxIxJyKyQ~P}O|N|M{M{Lz###&&&((())))))((('''&&&$$$!!!KzLzM{M{N|O|P}VUTSR &&&+++...000111111111111000///---***'''### RRSTU[ZYX(((000555888:::;;;;;;:::999999888777555333///,,,(((###)))XXYZ`_^^"""000888>>>BBBEEEFFFFFFGGGFFFEEECCCAAA>>><<<:::777333000+++%%%"""***]^^_eed$$$555???FFFJJJNNNPPPQQQQQQQQQQQQPPPNNNKKKHHHEEE@@@===:::666222---''')))111:::cdekj777DDDLLLRRRVVVXXXZZZ[[[\\\\\\[[[ZZZXXXUUURRRNNNJJJEEE@@@<<<888333---///777@@@OOOjjpp777GGGPPPWWW]]]```cccdddeeeffffffeeecccaaa^^^[[[WWWSSSNNNIIICCC===999333555<<>>888:::AAAJJJVVVjjju|@@@UUU___gggmmmqqqtttvvvxxxxxxxxxxxxvvvtttrrrooolllhhhddd___YYYSSSMMMEEE===???EEEOOO[[[lll{OOO```jjjqqqwww{{{}}}~~~|||zzzwwwtttpppkkkfffaaa[[[TTTMMMEEEDDDJJJSSS___nnn[[[jjjttt{{{{{{wwwrrrmmmhhhbbb[[[TTTLLLKKKOOOXXXcccqqqEEEeeettt}}}~~~yyytttooohhhbbbZZZRRRSSSUUU[[[ggguuuOOOnnn|||{{{uuuooohhh```XXXZZZ\\\```kkkyyyWWWvvv{{{tttmmmfff^^^```dddhhhnnn~~~ZZZ}}}zzzssskkkdddgggjjjnnntttxxxpppkkkmmmpppttt{{{|||tttqqqsssvvv{{{wwwvvvyyy|||zzz|||~~~wwwuuuMAM*0MнMMApage.005F?????????????h-?????? ף; ף;?CACA ?????????@?=?==???MM????L?L?L?L==ff????DATAM!M??????????L>DATA(M MDATAMCsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@r  @q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFvFvFvGvHwHxIxJyKyQ~P}O|N|M{M{Lz###&&&((())))))((('''&&&$$$!!!KzLzM{M{N|O|P}VUTSR &&&+++...000111111111111000///---***'''### RRSTU[ZYX(((000444888:::;;;;;;:::999999888777555333///,,,'''###)))XXYZ`_^^"""000888>>>BBBDDDFFFFFFGGGFFFEEECCCAAA>>><<<:::777333000+++%%%"""***]^^_eed$$$555???FFFJJJNNNPPPQQQQQQQQQQQQPPPNNNKKKHHHEEE@@@===:::666222---''')))111:::cdekj777DDDLLLQQQVVVXXXZZZ[[[\\\\\\[[[ZZZXXXUUURRRNNNJJJEEE@@@<<<888333---///777@@@OOOjjpp777GGGPPPWWW]]]```cccdddeeeffffffeeecccaaa^^^[[[WWWSSSNNNIIICCC===999333555<<>>888:::AAAJJJVVVjjju|@@@UUU___gggmmmqqqtttvvvxxxxxxxxxxxxvvvtttrrrooolllhhhddd___YYYSSSMMMEEE===???EEEOOO[[[lll{OOO```jjjqqqwwwzzz}}}~~~|||zzzwwwtttpppkkkfffaaa[[[TTTMMMEEEDDDJJJSSS___nnn[[[jjjttt{{{{{{wwwrrrmmmhhhbbb[[[TTTLLLKKKOOOXXXcccqqqEEEeeettt}}}~~~yyytttooohhhbbbZZZRRRSSSUUU[[[ggguuuOOOnnn|||{{{uuuooohhh```XXXZZZ\\\```kkkyyyWWWvvv{{{tttmmmfff^^^```dddhhhnnn~~~ZZZ}}}zzzssskkkdddgggjjjnnntttxxxpppkkkmmmpppttt{{{|||tttqqqsssvvv{{{wwwvvvyyy|||zzz|||~~~wwwuuuMA0M*MMApage2age.005G??????????????????? ף; ף;?CACA ?????????@?=?==???`M????L?L?L?L==ff????DATA(`M MDATAMCsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@r  @q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFv &&&+++------...,,,***&&&### FvFvGvHwHxIxJyKyQ~P}O|N|M{M{Lz%%%...444999;;;<<<<<<<<<:::888555111,,,&&& KzLzM{M{N|O|P}VUTSR###000999???DDDFFFHHHIIIIIIHHHGGGEEEBBB>>>999444---&&&"""RRSTU[ZYX ***<<>>]^^_eed555NNN]]]gggmmmsssvvvwwwxxxxxxxxxvvvsssoookkkeee___ZZZUUUPPPJJJBBB999<<>>hhh{{{xxxoooeee[[[SSSUUU```mmmu|^^^~~~{{{qqqfffZZZ]]]fffuuu{uuu|||qqqeeedddmmm{{{{{{pppoootttfffyyyzzz~~~tttTE@M&MTEphatch_tex_2ex.015H>@???????@@????? @??<[?dMDATA(MTE@M&MTEphatch_tex_1I>@???????@@????? @??<[?dMDATA(MMEM4NMECube.001pN NNpN N ???DATAhN*pNDATApN:??II?I?I???III??II?I??IIDATAhpN* NDATA N7 DATAhN*MEN4NMMEPlane.002𱻡N NPN`Np N$N `N <ș<1L+G>S7?@1>DATA𱻡0MDATAhp N* N`NDATA N: G(xQZZG(v0@QZZG(?u@ckNQZG(?@ckV~IG(@IIJG(?ۿbkNQZG(?bkvJJG(xBJIIG( ck=JI}G(?=HJG(?ۿ=NG(@bk=IG(?@=IHG(?u@=NG(v0@bk=ZG( ck=Z?0kZZ?@`kZ?@`kw?@X=~?p=Z?@X=?ؿp=?ؿ0kw$XۀZZ$p@xۀZ$B/@xۀw$p@ k=~$`k=Z$B/@ k=$`k=$XۀwDATA`N9 _@ݺpe鑠֠@ ʢepF8@ZQ!hġDATA_8?DATA@8?DATAݺ8?DATApe8?DATA鑠8?DATA֠8?DATA@8?DATA 8?DATAʢ8??DATAe8??DATA8??DATApF88??DATA@ZQ8>@?DATA!8>@?DATAh8>@?DATAġ8>@?DATAhN*PNDATAPN7<"" " "# " "  """ "!"" "##"" " "            #"""  ""#"  ! !  !  ! ! DATAh`N*NDATAXN6              MEN4e NMEPlane.003e 0NϡN$ c !?8Ƚ<\??j>DATAe 0MDATAhN*0NϡDATAP0N:$H@?$ͽvdhG@?E[F@?!, 7qF@?dhE@?3aE@?)AAD@?esD@?fUƼD@?:JbC@?q(KC@? k4B@?zxB@?`3<B@?Ծ<G-A@?/o5=|$H@l$ͽo@hG@l\F@l,WA8qF@l_hE@l3HaE@l/D@lD5/{D@lLKʼ"D@l|EC@l7SC@lB@lh2# B@ldw<$B@lj< 6A@l0=Ak\>jf<ϓKDQ>j<E\G>j"jZn<|L//>j/je<2T|>jk̞< W>j? <'CgQ>?R<|Bq&G>?S<|Cj<>?I?< KP!>??<O2>?e<`[S>?5<$V=?#̽v<;aKQ>̽̽ <>̽N<B/>̽xJ<E~!>̽qw<%r3I>̽y՝̽|d<N%q=̽j$<P(?=̽5d?kg =G~R`?km%=C~r=]?k >=O~Y?kDV=n~dV?kzNq=WL~R?k=o~aO?kQ=~`K?kU= ;HH?k= ewD?kEɼ= puM@?k9= 5jF aA4?k4B > e1?kQ[>@ u$H@^?$ͽ1hG@^? \F@^? ,F 8qF@^?ahE@^?3aE@^?l)D@^?~(D@^?Bμ*D@^?dBnC@^?]C@^? 3pXB@^?2lkB@^?pl<0B@^?N<@A@^?+=$H@$ͽBhG@r\F@ ,rx8qF@ahE@3aE@D@2%V~D@˼w;%D@ɮD$C@M>WC@j&e9B@h\D:B@<)B@<9A@-/=5eR@?ᖽ@?k@?,V@?鼃 f@? |@?gP KpE@?lλ i^@?Xjb Ma@?>ȹm {@?*; `t@?;S  @?zcP=" N8??>( 3TH4??B >O }1??[>smM[>r<}BP><X=CHAF>ͣ{e<ݖmHV.>$Vw<ޚrNN,>ʝN]>^?k<6oCR>^? < D%H>^?N^?؎<-J0>^?1<)M##>^?x<לP[>^?<@WT>^?4X 4?̽ >E "k1?̽1>v ? ^?.:V? ^?rl? ^?ݼkBg? ^?I7L? ^?J"? ^?:d? ^?;r  @? ^?T4?^?O0 >Hm1?^?aI>j@^?&|@^?n:=@^?Q {1w@^?7! e"@^?TڼR a@^?t2 KL)@^?Rc a@^? 1D @^?d ; 18@^?\o;`P7@^?. <.@B@^?nx<XB(@^?f| KdY4?C >i 0?`> a@ꜽc@܊l 6@ZIet@X 03@ļ7 @R b/@A( G@@ Z@j:R ~@Ԇ; @<@6p<=(@(<d@ (={@ X=@kt?m@kJ)h@k;HZ?k޼U?kiE?k`_P?kb; ?kM<?kL<;t?k<?k.< h w?k2= ?k3=k'=$ H>kγ=gP5d>k@=HR}>k~=n~# >k=p~7(>kuK=|,~O`>k=>}DD>k=?}7>k>=|O&>kN=.|>kJE=rZ{>k<=Fzɚ>k>="dz>ko<=*z_>ki=3y$H@|n?$ͽdhG@|n?\F@|n? ,38qF@|n?ahE@|n?3zaE@|n?fD@|n?<܈D@|n?4м ]0D@|n?ﳼC@|n?KȗWcC@|n?07/B@|n?B@|n?;d7B@|n?<RA@|n? B!=$H@">$ͽihG@">\F@"> ,?8qF@">ah E@">3aE@">,D@">xaڂD@">ͼ0 *D@">갼#nC@">6Q\C@">.)B@">5 7B@">(v<> /B@">ꓩ<0JBGA@">'=H$H@^ ǿ$ͽ5hG@^ ǿ5\F@^ ǿ ,8qF@^ ǿahE@^ ǿ3vaE@^ ǿ[iD@^ ǿKD@^ ǿ>#ϼ,D@^ ǿ$C@^ ǿ$u`C@^ ǿ 8-B@^ ǿ:B@^ ǿJ;;w2B@^ ǿ'<DA@^ ǿϞ)=$H@$ͽyhG@XM\F@ ,> 8qF@ahE@3haE@#UD@-HD@"ּ%:D@L.AC@pC@LB@D +B@P`;DB@ݑ<5=`A@=H@?-m}@?_7H56@?r ]??綼 Di??L7<??:?? 0@?KJ8/@?zh /@?th/ff.@?6--@?<-@?μqD-$-@?,@?oZ0 I,@?n5S+@?BҦ(_+@?`]Anc*@?:;L*@?NT<_)@?<}%(@?J=^0??6??v;I}??%<D!~ў??} ?7=K>?u=>?T=et>?Ǽ=P>?7=X>?SĹ=+Ntg>?O=~M>?:=fg~^@>?O=}/>?=SZ|@>?$={W>?%=O{Қ>?=Zgz>?$=|mzg>?*N=rizO@[>d<׏=jP>7BF><ݑ5Ad;>ۊɑ<&6G >_9<Nե=l< O3t=P< ObA= d<+ N =Ҩ<P=`<[QE=ī<49R~ =ӛ<YS\>Y ǿ<VCF.R>Y ǿH@Y ǿjY ǿݍ<&hM@0>Y ǿ-Y ǿul<T>Y ǿtܞY ǿj}<Y=Y ǿGO<ΥZ =Y ǿQ<Z?e=Y ǿ<Y0=Y ǿ<˦[D=Y ǿ~<\N=Y ǿD<\7=Y ǿ*;<][>9> <@Q>9>0<_M@fF>9>5<\#Aa<>9>_<ޔ2E.>9>9>!9>z9><CS=9><@VҶ=9><ӢIW҃=9>̪k<+k$Z?H=9>xI(*n? n?&<_M@hn?#ڝn?d%<GS".>n?n?1<:NM>n?Ln?<\e"V6=n?<ޡV\=n?<)W)=n?J<VV=n?W< Yd=n?(b̽T/=,o@>̽=f>̽t5=P>̽5Ѧ=mN>̽d=7W֦>̽?=?~}>̽= ~*R>̽!=ST~cD>̽;7=}3>̽i=B} >̽=| >̽=w|Vך>̽W={|>̽=U{4l>̽C=܆z,?-><?->> 2:$?->3?->+Ƽ?->%=[?->$ץ?->2`;8<?->L2<: *?->4L<) C?->`< 8?->#Y< k.U?->O $=F ^|?->df= .m{?~n?<0Cg?~n?'y?~n?w"o?~n?Ag?~n?!c$+-'?~n? :?~n?;` @?~n?T-@ ̽ x,@ ̽a{Ly4;,@ ̽>G +@ ̽8#IR+@ ̽rùz%]*@ ̽Pͮ;z)@ ̽n< )@ ̽z<(@ ̽(=?P0m/e?-q00?2g.eg?6;?YRQ ?;r?|;N @?T<[? 6<*?L^?8n=i>^?="4>^?=*M>^?=P>^?=>^?==^>^?H=~~B>^?P3=LN~u6>^?=}$>^?=}">^?F(=Y|2>^?= {Ț>^?ں={>^?=ۖz^>^?K=ژzd?n?d =e&`?n?Bk%= :=]?n? >= BY?n?tBV= [;dV?n?sIq=u GR?n?:= uaO?n?= OfK?n?`^= HH?n?@ī=? wD?n?Ѽ=M M@?n?A=2  :4?n?F > q1?n?_>R Swv? ^?@зE aNߡ? ^?;{ Wb/9? ^?2w<3 ,? ^?i< ޜ? ^?B =D Dc? ^?.=Z 7? ^?V=- ?? ^?:z= n? ^?c= tV(? ^?=[? ^?ī=c~? ^?=~ ? ^?=~X? ^?e=c~o? ^?E= d?2>= 6w%`?2>4=r McUM]?2>8= mY?2>ZP=& juV?2>)k= a6R?2>= raO?2>^= wK?2>1=% bHH?2>v= xD?2>Ȅ=@?2>m=- =[8?2>>|4?2>L >60?2>3>:@^?*qs[@^?x?+U@^?/D?^?f<ռHq?^?Dd ?^?x $?^?`~;f '?^?D<_$?^?<|?^?a-@^?Fwz*-@^?z,@^?CHz=,@^?+@^?JOT+@^?ŸJp*@^?;)@^?7G<<>(@^?><<8(@^?D= V@'>`Ǩ@'>=txt@'>9^ 0=@'>RN ~@'>. 1yl@'>b% QB5@'>Н ;@'>PX: 0_@'>Ev;  @'>g; @'>b&Y<c5@'>{<4X@'>+=(|@'>8q="O=>A=%n\>[=\>gv=(O> =7v-n>}= YG>=F~>=~x> =+pO}$>9=|Ұ>'=N|U>={>5='{t>O=1z>>=uz >=zkzd?= iD`?.=l sJ?M]?<8= :@Y?PtP=c1/uV?j=a67R?Y=W LaO?== _K?~= AmIH?mT=X m}(xD?c=R gՐ@?(= {_8?>L 4?^ > 0?> wkP?v;~7?xI,<V~6?W< I~K?I4?\ ǿ" >Z91?\ ǿ;><O!@iT@4-@8m?'(?л#s}?0;?]K<?JB<=?r<p?tH<?< %??= 1?;'=@?I=W4?%=[V@ӗ)D@&rWS@6P/2@[ Gz@Akv y@ԛ" Wk6@`D : @ !:R 1Lt!@c;m {o@L;  @f!< u@G< 4@<J@(5=TzGl@`%|=~|0@*/@/:y /@neHk.@.-@ b-@VмJ'-@&wgK,@\a'.H,@J+@ }ib_+@ӺDu*@8;*@<)@es< $(@L8=xU@] ǿsc$:@] ǿq7@] ǿ\D6)2@] ǿ5 qz@] ǿ]/ o@] ǿ<# s7@] ǿ+ QI@] ǿ 9 Tc"@] ǿ(P; Uuv@] ǿ$;j  @] ǿR<5 3@] ǿ_<$]4@] ǿ]< `O@] ǿ2=t5u@] ǿԮv=IG>n?=>n?=8>n?=h>n?T=Fx>n?{˱=THs>n?4t=~n>n?.=S5q~Q>n?n=}C>n?=9k}=3>n?=qf|>n?6={ >n?h=<<{*֚>n?H=ez*>n?=DFzj>n?J=^DSz_?n?: PB?n?< i2 ?n?~< clZ?n?<4 4?n?= 14>^Y=ul>4>_=>4>=*>4>`=m>4>%=CA>4>=~}>4>)=:nL~ R>4>ɶ=}OD>4>I=}3>4>=b | >4>O=H%| >4>m=QT{{ך>4>bj=fܐz9>4>==Zzk>4>=qz6?/>>;K~?/>+S<~ߟ?/>Cx< ~/-?/>=&<~'?/>P#=[~W?/>^I=yW~f?/>تq= ?/>bM= ~Y?/>=٫=;~?/>}=L~??/>= ~_ɑ?/>P=~?/>l=~c?/>=9~3?/>=z~@~n?.i@~n?2x@@~n??~n?Qe?~n?ی CN?~n?(;BQW?~n?:n<Fֿ?~n?b< 1?~n?`?~n?p<6?~n?ǻ=/?~n?e'=k?~n?_fI=;?~n?`=d0@}n?-+/@}n?%.@}n?H[u3B.@}n? -@}n?qjNp-@}n?-@}n?&Xm,@}n?\)H#&,@}n?x_л)+@}n?0 5>+@}n?*2;*@}n?( <85)@}n?S<(@}n?<R.'@}n?ԷE=@)>ʰt "@)>Izua@)>y?_@?)>jԼ]z?)>T\KI*?)>`Z"?)>x;?)>l<fH?)>0 <?)>V<Ob?)>=8?)>˨7=@?)>'Y=b?)>q|=rOr0@$>|m/@$>* .@$>k]ML.@$>"-@$>Rx-@$> ᵼX -@$>wTy,@$> 4u4,@$> 仃+@$>xJOK+@$>:tR*@$>X2;5)@$><;0(@$>^7=1>iɠ=0Al>o=IYt>l=f> =t>ߦ=pR>=yU~}>ٴ=1r~-R>T='}qD>g&=ih}3>=& } >=k| >ʧ=|ך>F=ޮ{>=_ݬ8{tl>m=}ܯz?`ϕ:~?;~K?]<~,?c<;~?=z~f?*8+=B_ ?S=w-`S?ܜ= ^X?r=X DKD?c,= Z?U=~Α?/=j~?V=z.~[ ǿ=q a>[ ǿJ=p>[ ǿx=.->[ ǿ$=5C>[ ǿ6=IB>[ ǿ=mM~h>[ ǿN?=;~Q>[ ǿ=E~\C>[ ǿBS=}2>[ ǿt=R}>[ ǿ=| >[ ǿ=C{,֚>[ ǿ{s=]8{U>[ ǿ(=ۏz k>[ ǿ =ڏ{zO@uy2?ͼ6B?zO}Z? a=?;}?0)`<^?<`e?<Z?2<a?!=?8={?%Z=?n}=e<\0@ tf/@lGo.@vUM8.@(Z-@ݼ<k-@zk^,@Uߍ,@Q ,@(V +@%u5+@~;5U*@i !>5@ R;hlQ4@ 6l<_3@ 5?=l ?l~$?l'J~q~?l."~׳?l((:S4?lC<?l<1?l =T~E|?lcI=P~?l>0K=a~?l.nL=#-~?lM=uB}?l}D=}4?l6H=}ͽ?lc=}?l=}?0e_< 3t?0ղ< 8ƈ?0A<0 G?0&= S]?08=R uը?0GU={ >?0= My?0Yi=s6|?0=Pu.x?0 =jt?0u=Yp?0=4l?0*"=Wh?0@=9 xe?0.> 61?tQX=a shlo.?t:l= t+*?t@!= {u%?t=ix6!?t=<?t=]"?tq=:s?tQ=Z?t =wR ?t3=h?t`>$`N?tY>>t >g>t,>cy>t>H>9=@^wUw>\:= Uvk>b8= u`>3=̏ uU>k_+=бv0K>=!=FxSA>$=!fyd7>C =>y*> =\=y>s==[x;7>=_[w>"=[4w==p]-w!=0=`3wᯰ==fb)w%I@ ?jؽRH@ ?TG@ ?zz9IF@ ?ER0UF@ ?)ksE@ ?޼%1E@ ?ӟ2~;D@ ?<({D@ ?xFi3C@ ?!C@ ?SC@ ?;ѽB@ ?<^4^B@ ?M<G@8?ϽEF@8?RX' F@8?Ù1BE@8?,~:* E@8?I8L0|D@8?,)0C@8? oC@8?' -NC@8?ʼB@8?񈼶;1B@8?;нA@8?bRaA@8?|<A@8?j< j@@8?.=ϬG@#?;⽟vF@#?dhF@#? E@#?fnE@#?x[baRD@#?w&Uv[D@#?DWjC@#?ϼ[KC@#? S]JB@#?σ\Y~B@#?jd B@#?`fOA@#?>;9A@#?<^@@#?ں<5kG@_>ݽ{2G@_>-^F@_>rĝ 6F@_>z/!E@_>@zQ86E@_>^OD@_>͏D@_>-͜C@_>FEBC@_>>f2B@_>sͻ^B@_>.9A@_>;A@_><*A@_>=H@{^ǽG@{죽nG@{ >F@{\'pF@{D'E@{XRE@{tμ) D@{k8D@{FzGD@{m!xC@{dԻl`C@{d9/C@{M<'ƥB@{<≠A@{!<=bG@JҗĽF@JiQ F@J3E@Jj!hx E@J翄f3aTD@J(MC@J翠}輱&C@J$ļ+-=C@J翠ҧuB@Jb{d_B@J@fA@JTA@J\DD@Uړ4&D@Ur ǻ% 4C@UP:HB??^)qh??xDy ne??> ~)??q X.??f W??6#V KF?? M95 ]O@??'?=.~??@=~:??~A=~:?? nB=}P??`h7=%}C??z;=$}+??`=}S??0d=v~x3??+j= /??o= f+??=A o'??z=?{"??D!=x z?? = $??T=5??='Q??6=EtJu ??Xk=i?? @ >n??U>aU>?s>9O>?f > F>?>^m>4v?C=zt>4v?'D=>Pyi>4v?<@=;wg/^>4v?:=~SlvS>4v?@2=0[wsI>4v?I(=}ux@l?>4v?=Yfy*5>4v?M=yM(>4v?=z>4v?O=ٳz >4v?1w=yF=4v?=y=4v?Q1= y[=4v?q=.yt=4v?I=+4yT>=XI/=X%L< aPF{9>=Xp=X潗<~ZIK&>=Xm<lqM>=X<zOz>=X[X<vR>==X<T==X%;c8J@>%;92>%;(<K%>%%%7Ȏ<)@aQL>X.<ˑ AB>0<9Dq 5>DHt'>̝ao^k;GVR>^kN};>HxF>^kS;J#9>^k:;ŚSN+>^kR;uQ>^k俷5;z1U>^kp^k俷+ >C><ϐ+d?`>>C><%?RU>>C>}< A>NK>>C>r<E?>>C>k< I1>>C>=z>C>q< Oo>>C><ž9S>>C><[V=>C>C><VQA=>C>C>mC>8<+.ZxQ=>C><[^a>Y %?b&<֒BW>Y %?{Y %?ڤ< +CMB>Y %?(C<*G7>Y %?O<6JC)>Y %?<ÚON4>Y %?Ͽ<QD>Y %?p<~5Uf>Y %?K<X=Y %?y<2/Y=Y %?K?Ɲo<ԐNm?OS>K?JK?L<^~DEg9>K?;[< _IW+>K?]iK?wMuK?K?*<\BW=K?۶?`=>C1N>?e=6A0D>?l=C:>? 9<BG.>?r_<_K. >??s?^Yr=?=Y=?%=(#\=?_=i^`@=?/=f_z=?|=] a?SXӽX~OA?SXӽjaػ~?SXӽl;~6?SXӽι<a?SXӽz<~?SXӽj-=可?SXӽ UI=E~/?SXӽP=l~?SXӽHFQ=}M?SXӽ5hV=}v?SXӽX=un}n?SXӽRl=e}A?SXӽ˅=Bo}[h?SXӽ`=zIa}?SXӽ]=H}e?kӽLI< i]?kӽ< jI?kӽb5R?Ĵp>H7?ĴF>Y]>Ĵn>>wսv=Z4,wZ{>wսNy=xvo>wսw=̅+uud>wսk3r=m˿t#Y>wս(i=BκuO>wս6_=~=w/E>wսT=@w;>wսOH=2 x](2>wս";=nPNx%>wս O;=xM>wս>=Gw >wսKy@=8Жveg=wսpB=?vS=wսC=1v-=wս8$E=&tvݮ?#>k] A-?#>q8R ?#>7aTP?#>*y?#>86 ?#> sYK?#>@[:-?#>tό;xzo?#>Z B6BL< ?#>fS۵< [?#>< /vg?#>^= o??a4+l??w_]p??BBr??Fu-??z??O-;.y{??wb;?\ ??@<F?? V< ??l<( `??< Ͽ??< ɓ??2= ??y\=K "??= {??|td??z9U??a1??_BG??:#o??;Hrb??l͍;??F;} ??);P??)< \}??_<o??H=g{??%7= ~??6[=|??=?_?7I?_?N"?_?n?_?2ļjDJ?_?#[W8?_?8:Q?_?;?_?k<10?_?< N?_?#< `?_?»<>v?_? @bS;}2@bSd;vNw@bS[<`@bSʗk<,@bS H<w@bS<:@bSw<=m?:rv<d?:r$wN-?:r VV5?:r)O>?:r8I?:r 8n*?oR)?oR$Y8j?oRSY?oRCAZN?oRR2 ?oRpm<?oR);:J?oR/I;?oRehe[?b1D=ׂy }>he[?\G=Ө'xq>he[?F=ЙwԽe>he[?hB=Z>vZ>he[?`w;=GwP>he[?#2=nxdF>he[?2-(=yYg<>he[?n=TRz1>he[?1=ڳ}z$>he[?[=~zC[>he[?=ףy>he[?w=գxG=he[?h=ԣxzQ=he[?=ԥxi׾=he[? =ԧ~x1?4a?[=& ?j7.?4a?SFo=R ;~)?4a?fÆ= >2[%?4a?͙= 5 ?4a?8j=(~?4a?=F?4a?F=_&:?4a?=a?4a?s=bl ?4a?= ?4a?>3(?4a?>ybX>4a?>|S>4a?q>8L>4a?/>v(yYh?N?5=F6fd?N?BPO=# -Pa?N?:th= Xz^?N?= QZ?N?=Q f0W?N?2H= zS?N?= )O?N?h=K?N?=e"aH?N?k= -G'D?N?= FF5@?N?_> )= 68?N?;> Z,5?N?W"> ob?W?,= Z_?W?1=J f\?W?ΉI= oX?W?ڜa=* i\CU?W?Gy= mݹQ?W? ͎= ,N?W? = J?W?6=`F?W?=+B?W?&=>?W?d=zN;?W?= 7?W? >a >L3?W?&>" ;L/?W? >QB1?/]?s%!?/]?V0x ?/]?e[:}GD?/]?o><z?/]?8<~j ?/]?r=?/]?C=6W~D?/]?|S=.x~/ɭ?/]?W=$~G?/]?/sX=}Ǫ?/]?u]=}2d?/]?&b=aV}?/]?S=E}إ?/]?ׄ=}?/]?=-u;~Z?nxZ?Eqb?=X =_,^?="%=m qI[?===% 9W?=`~U=7pT?=jo=P?=3D=~v[M?=Pn={CI?=Z=AF?=L=q,pB?=O=>?==͞:?==K6?=>t2?=# >}Xg/?=>-a?u?Z= Y]?u?'-= NWcZ?u?NE=F fb|V?u?-]=c ]rS?u?t=" 4a)P?u?#x= goxL?u?=" q3H?u?= ;E?u?= j@6A?u?х=U M=?u?=ub9?u?=p5?u?m > 1?u?>,-?u?&>oZ?Z?B7F(*?Z?y.?Z?Ťlo?Z?k"Pq-?Z?1: ?Z?|<&?Z?ȝ{<?Z? V<L/?Z?]]<%Jc?Z?<.?Z?\`@? : Ox'M@?Ha; @?d=; )V@?6t< '@?)*@Ś?$=@Ś?(_=n<@F_?hԽ03G;@F_? *S;@F_?N:@F_?BJ~A21:@F_?If49@F_?wA9@F_?[鼓W8@F_?DJ.L:8@F_?mi7@F_?,ROL7@F_?Rm6@F_?(#[V6@F_?ń ;2.5@F_?< 24@F_?&<a%$@\?(%$@\?tT#@\?/$"@\?:l"@\?Yq.C!@\?>5~@!@\?e  @\?5^+P @\?ټL@\?DP@\?mQeop@\?a}@\?8 !<@\?<:@\?.&=-h@ߙ>;^z@ߙ>3Rb@ߙ>ZYUPQ@ߙ>p a@ߙ>%ؼs d@ߙ>$C{l {<@ߙ> T L@ߙ>Ք2 P(@ߙ>@ m@ߙ>: W@ߙ>;e @ߙ>Fa;< }@ߙ> =yXQ@ߙ>̷N=@??;i@??fŏ @??f ,@??и2 }r8@??b K|@??+ɣ#&@??8cA@?? o@??0, ~,@?? bԺL@??:d:@??! <)|@??A݆<V@??=^@??BF=O>.ߊys= ֯xn˃>.ߊRz=Ewɶz>.ߊh5}=vn>.ߊ6A{=mv>c>.ߊku=="w?Y>.ߊm=7'ExO>.ߊc=ZxD>.ߊ2[X=Ux;>.ߊUL=oxKK1>.ߊ&>=nx#>.ߊY@=MuwT>.ߊ9C=TwL>.ߊqE=Mwx=.ߊ_G=NwY=.ߊH=Aw=9? h= C>6? 0= Pl2? 5=4 .f -? '= )? =]k$? #>^? > s? >hG;? >>[? D>? >D ? $'>z? +>i$!? A,>c> ܖ,>Ba?ީ:32= \~]?ީJ=qZ?ީ9,c=~W?ީ {=~m{S?ީ趏=]H~O?ީ=~`L?ީꬪ=z~H?ީ»=ƩD?ީc=$@?ީܼ=8 jM A fu 5?ީ> f^1?ީ>: hgr/-?ީd)$>! &a?T\:= ?Pۯ]?TU S= 4UEZ?TOk= FXV?T= MuMS?T =C ^iO?T]= fEL?T = fuH?T'= e,D?Tl=- y@?T.%=] T 4?Ti>O ig1?TƔ>o U-?T"#><?L< RA?LP?=x ^#Z?Lr>= j?L|_= Lr?L=3 Bs?L= {?LE= q(?Li=J~?L =Oπz?L=ީv?Lsv=mr?Lf=An?Lz>r kWk?L >N )vg?L> pf?9n5+g?9?9`j/;v?9aZ<i'g?9*H 3?^>>f?{;E= 6Ubc?{翄o^= _?_?{U?{ С= W7$R?{l = ~nN?{翯G=b IK?{ʺ=7:G?{H=LKC?{O= mo??{=G <;?{r>5 2(7?{翡K> 4?{+>x 4;@{~| @{~m @{~^.</@ @{~x @{~߭˼x! @{~[AXI @{~3P @{~:;/u@{~<55@{~ YI<\0@{~nj<IR@{~<P@{~D<@{~ =!P@{~,=>8?M @gp2?M UL?M {¼dZC?M U?M ̺k?M @;3*?M a<D?M wF?F=%yr>F?F=wSf>F?x B=,v7[>F?D;=%vQ>F?{y2=.8w\G>F?((=մx`=>F?3=X.y.`3>F?r=L?ze%>F?3=aىy->F?w=0Qy7 >F?41=֡yo=F?b.=ԟrx=F?=MIx =F?=cQxɒ=F?L=LHxY>?莃=>?)=:>?=\>?瘖=5>?!S=>th>?OK= 1XM>?Sp=~&>?=?~>?^=}>? =|>?=3{D>?={这>?=ېzQ>?==ۏzN[>?|$=%ڎDz.3??U-= \ۊ/??\= 9+??iO=y&??U=5T"??ݖ=(y??=t'??^=3??=5??O9>qb ??E >*/צ??!>t:1??>gY>?f >-J>?#>iB9>?k'>(m>q?=Q>q?Վ=$v>q?ߌ=>q?=>q?I=e>q?ž=w  >q?f=,~>q?)=~>q?=^}9>q?=}>q?3=r|>q?/=|{~>q?7=0T{UO>q?.=Y3z>q?d=p6z??Η< R8s??: ??4a!??Ż 634??@; A{??F1a< OTȝ??s< XuD??n= T[??== NjL5??܁t= `}??u= '9Օ??;A= ~^;??س=~??=K~f??h=X~LS??=vA~W??=%~ ?i? xt?i?+˷?i?@<:?i?Db?<Ut?i?<5G-?i?=(.×?i?+==~0?i?=;=~®?i?vH=$~C?i?N=d^}h?i?%T=a}?i?s=a}^X?i?<=z}w?i?r=}S?i?=6 5~?v?$;! L?v?PI<7 i?v?iH<v?v?).>;Lc=eze|>).>df={xp>).>e= AwTe>).>D`=)vZ>).>X= w

).>ٜO=!xF>).>D=x<>).>9=GVyf1>).>.=7yh#>).>i1=y*>).>X4=P>yeb>).>T6=T>Ox3=).>U8=w0w=).>S[:=y1wt =).>Ix;=Z1wn>8?9us=!6>8?o=xE>8?=SD>8?u2=44>8?^=H"\K>8?5݋=d~:>8?W=~>8?=}3>8?훱=_)}>8?=V|?z>8?7=#{Wq>8?e8=ݓH{e>8?=8z":>8? =2z' >8?_=\UzѬ9?0>6=N eU5?0>ဩ= qZ2?0>O= oP-?0>e= 89(?0>=1$?0>>y+?0>J >#V?0>Q>j ?0>s>j?0>> J6?0>Y>m# ?0>%!>K?0>{I%>?0>*)>A>0>)>G_>Zf>=#>Zf> =8 6>Zf>O=;>Zf>V<=2,>Zf>ʩ=+E>Zf>J+=jBn>Zf>B=H~>Zf>'=;Y~5>Zf>;=/}>Zf>3=PR}O>Zf>=j|b>Zf>&=]|y>Zf>={I>Zf>=B>0{>Zf>=ۣz?X>5E<kx?X>R;=dSe?X>X(=?X>] I=?X>(k=1?X>=rN?X>^l=Era?X>Q\=`X~?X>=IQz?X>0=Yv?X>=!Pr?X>=Yr'o?X>b?=k?X>>9vh?X>J >?"?ӭO<L~iM?"?g<<O~?"?<,\t?"?.%=]$t?"?E=m\,?"?Ģn= =K?"?d= +`k?"?= @?"?oթ=  e?"?j=5?~?"?)=(~D.?"?B=~z?"?=3~:ō?"?a=~ ?"??>g~#?>u] ~?>5~?>=z~\?>pBM;Hy~?>̎`<% e~ ?>J#<}~Ƴ?>7=nTZ~_?>Q=d7~;?>i/=}c?>{?=?F} ?>8Q='}J?> eq=%}҅?>=[N}?>$3=zm}?>Ơ=4}?0G>6!-<>~9?0G>cj<5~?0G>^=UYLr?0G>+=4c1b?0G>R=j 8GGu?0G>M= Q?0G>= 5v?0G>Fc=?0G>Ѓ=|~ ?0G>-=~W?0G>R= ~?0G>b=Y`~7?0G>́=~;?0G>&>'~S?:?M?:?Gּq)i?:?+b?:?pe>'94?:?48)@8?ZI<]=-(@8? ޲<l'@8?="=@?4ս7җ<@? p <@?B;@?.:@?S(W:@?)e9@?>0~9@?{ۼ+W9@?ͺ6J8@?U&8@?bHP 7@?d$V/7@? 36@?ʗ;5@?/<R1@?N 0@?v#0@?Hy/@? >E.@?f(U.@?-.@?X}n-@?čs19-@?t\,@?M.&N,@?_E;M+@?H:<1*@?Nͺ< x *@?Y'=N )@?Dqr=q)}?B>0NvE?B>Qf.34?B>WƼ+?B>KnL?B>@c" (?B>;1G0?B>< ?B>,<CH?B>C<?B>Q<Hϝ?B>z =A?B>#=^\(?B>==m!%@ I?臽+t@ I?`se@ I?e7)@ I?7 ĩ? I?2,1PB? I?1phfU? I?{F9VW? I?\<Y? I?w<6S? I?0.q-$\ @>D :;P @>+5 @>Wɼx @>N2 @>H(7^ @>``-=V@>p93@>Ȝ;@>;0@>Cp;&@>{(<@>D8<+@><9@>A'=v,@ >;Sg@ >D i`? >*]ۼ u? >Rh^/? >2 |? >-<'p}? >XG<#R\? >VR<? >F<? >^<Ç? >9 =? >8B=N ? >_d=? >=w&@ >I%@ >,l$@ >au#@ >rmC#@ >8TT"@ >hIe"@ >=4H"@ >l$W!@ >:U!@ >l׼m @ >`ZŽ@ >"d~@ >|];@$@ >?<:@ >H</@t ?k b/@t ?s턽RZ.@t ?6KJS-@t ?2 Ff(t-@t ?r--@t ?ͼ,@t ?ZM,@t ?P4S+@t ?^e+@t ?{:*@t ?:$*@t ?!<A/)@t ?,̕]Ž#Q;@o>K7w^;@o>T:@o>l8:@o>=9@o>@3(8@o>Լ%+t8@o>**7@o>!߇7@o>.*7@o>Ts76@o> Ϲ\.6@o>,;BJ5@o><4@o>־=kP0@={/@=J.@=q,+.@=5@-@=dY-@=ӼX,@=t6",@=c&,@=~Ck+@=0*+@=b^v*@= :)@=<](@=F @=jFjv|>F=iu.p>F-=̈Cue>F8~=̤KuF,[>F;v=ϺtvP>Fl=qwF>Fެa=^w{=>FaU=wFw =3>FO>H=}Zxs&>F_F=\tw >FI=$Zve >FL=]Hv`3=FN=_Dv?=FO=f@v=F4P=l,vf>r}=/]&>rq==c>rN%=6o>r=1>rR=>r=L~U>r~P=x~+~%>ri=}7 >rr=L}>r|=X|Ů>r.>|>r/>-|M>r>p{/>r>Yo6{Ε>rI>67z;9?X,U=kb5?X'Q~=#2?X= 47-?X= Q(?X^m= d$?XE=?X^(=̇?Xn=r?Xce=H?XU@=P9 ?X>: ?X >?X> ?Xq>>X>>O=L+>O=h>OVw=^>O)='I>O{=Kq>OF=~x>O/=K4J~x>O=Xk}^`>O¼=*}D>OF=||%>OMM>|>O C>fރ{>O>I {v>O4>z 9>OP~>@۫z_m??< IBي?< 1F1?$ = .UA?+=T d?V= 2p ?Ʌ= v5?\m=V E&?]=S|?9=Bx? ^=Nst?_=p?=m?zI=7 i?jp=  f?0>  ?*t?-~R?*֘;G|g?*O= ~0?*>=q~}?*9m=~]ˍ?*Ae=~?*H=(~̻??f'F??V't5X??D*~5??^ƻ 9c??;C2??FI< ;?(5???|Q@_=}*?|Q/|=~0>Ŀ@=ֶxX>ĿF=Wwfw>ĿG= u`k>ĿzFE=,cuܮ`>ĿQ?=ћFw'V>Ŀ7=xK>ĿM.=z:yA>Ŀkg#=#ٶy97>Ŀm=ٵyf*>Ŀԡ=״oyD>Ŀ=ղx>Ŀ&=ӱx>ĿL=Ӳ xw"=Ŀ =ӳ xB=Ŀ&^!=Ӵx>fu={x#>f.=aC>fs=>fJܥ=KI>f=%W>f= E~E>fӰ=p~$>f=R!~>f ={}]|>f=E=}rk>f=|W>fp=rx{&>fvF=R{>fu=uCzt>f\=~z4?ǿmr7= EV1?ǿS=1 >h-?ǿe=l Cw;Y)?ǿ=W $?ǿ=v_G ?ǿ(=q?ǿ(1=e$T?ǿ"=n?ǿG= ?ǿ=Z?ǿ=H?ǿ;>U?ǿl>z>ǿ>3]>ǿh>]>?j=E+>?㿎"=}jF>?=>?=g=/0?2>?'=Nj~>?@=dS~>?=Cz}&>?"=}|>?T=}6i>?㿊=(7v|S>?0=Q{;>?㿲 ={)>?=zϖ>?f2=٠3zf>?vq= ٞyg? ɿ0= s ʼn? ɿG!= _? ɿv@=P Q? ɿuTj= ? ɿ=t? ɿ㲟=J岀? ɿ`=Vh}? ɿ %=]JQy? ɿ=Ax}u? ɿ/=P-&q? ɿ*=eZm? ɿL=.rpj? ɿ>Vkf? ɿ' >< rSUc? ɿ> g>?䥿?䥿4g;?䥿PQ<72U?䥿< BD?䥿=u=+~Б?|!=y~~P?=e{~j? = ~P?Q=k^~e?M+?s?Pü&?ez1?p?;+?tRT<1?<}X=?Rk<?"<51?(<?=h?=Y2 ?1 7= ?6P=h3=@񟫾KKlH;@񟫾)@񟫾Ѽ6:?񟫾X^Y?񟫾d:5?񟫾<8?񟫾><*g?񟫾خ<?񟫾t<-?񟫾~O<'?񟫾7=mf9?񟫾+&=?񟫾u7H=9{P?[9<?[9f/=Fb"@ɿV1 0"@ɿ#$!kR!@ɿU!@ɿ\ܼ! @ɿ2@ɿr@ɿ z8;Q#@ɿᰅ< H?&@ɿ1d<?/@몿y.@몿-@몿G-@몿$ ,@몿Oż)V,@몿[{ +@몿&mi4w+@몿d)˻+@몿 *@몿G:*@몿;Û)@몿;k(@몿Y<,'@몿e<&@몿-=<@WȿԽj.<@WȿYz؄;@Wȿ#5:@WȿXc:@Wȿ.K9@WȿO1?9@Wȿ켊)8@Wȿ ¼{j8@Wȿr}7@WȿT|7@Wȿ7@WȿI.6@Wȿ;6@Wȿba < 5@WȿD.s?= ܐz<>.s?=[׈^y5z>.s?7= wsn>.s?=φvc>.s?=wє.s?5=#ՕxN>.s?t=yEE>.s?h=zE;>.s?N\=%zf1>.s?CN=z%>.s?hI=y>.s?ǍL=y >.s?N=py=.s?P="y=.s?R=#yk3?~?~~=P x90?~?=p X+?~?Χ=Ud'?~?u/={k"?~?:=V?~?=lW>Z?~?u=99?~?=?~?@=4 ?~?S{>;?~?{>?~?Z>CF?~?>g>~?=#>Mm>~?c&>3d,>e#?;\=wu>e#?Y= $Bvfy>e#??U=Bu o>e#?|N=Tucd>e#?)F=iwZ>e#?j;=-{xP>e#?N0=$y)F>e#?_$=#czg:>e#?$=vzN,>e#?n!(=IrXy8>e#?)"+=dox>e#?-=~mx>e#?#/=lw~=e#?Q1=pw=e#? 3=sw^v7?z,?U=* #g3?z,?w=L {j0?z,?b=w ,?z,?Tz= w'?z,?= "?z,?Y=5?z,?=~  u?z,?={![?z,?,=_?z,?#= ?z,? >pC^?z,?w >Fv?z,?8C>Cj?z,?U> >z,?1>H?y?<x~?y?L|<"x~W?y?= f;?y?N4=A aN4?y? ^= o ?y?>=- =?y?=; 52M?y?\,=B~?y?bº=3eтz?y?R=7$v?y?W=j8r?y?= g9o?y?= sk?y?>U ~&h?y?q> ??>v C &??+ >??IK--D??m;9;/jȵ??tt~?s?=5Tz?s?=u~v?s?=pr?s?d=n?s?=5^k?s?=g?s?}>T JLd?s?>p??XqV0??;44??g?'h=$zn>?]j=yc>?l= xu>?.j=fv>8j>?d=Җrw_>?\C\=+xU>?|R=$yK>?̞F=ze!B>?<:=mzr8>?8-=P)Pz,>?'y(= 1y>??|+= 2By.>?.=&xS>?G0=%xz=?u2=%x6?K?!s= s2?K? = ~/?K?: =# 5*?K?= Bd&?K?ʸ=4!?K?o=t?K?c=_M?K?z =8?K?=2P?K?>K ?K?1 >g?K?>p!?K?t_>p>K?~>D>K?} >n{>^Y>fB=5xb>^Y>D=4iw>^Y>H=!uy>^Y>hG=tn>^Y>lC=!ugc>^Y>2w<=Wч/wY>^Y>n3=Ӎ-xO>^Y>f>)=dՍxE>^Y>=qy;>^Y>=OUy~->^Y>p=WUQx6 >^Y>}=^Uw3|>^Y>"=PBw>^Y>^=QFw=^Y>X2=xQ= 6\$4?%>oH= Hj0?%>DRi=: b~8-?%>j= G(?%>| =`2$?%>ġ=FJ?%> =ze?%>cz=1qM?%>3=?%>y =Ft ?%>c=uUL?%>&=~U?%>N>4?%>S>ܤ>%>>C\?L?2(<8 ?L?Ra=?L?8=+E?L?-c=!z?L?)=?L?Y=?L?=,?L?λ={?L?X=\'Ew?L?=#t?L?Ə=G(p?L?e=l?L?> t i?L?Od >s/~e?L?>66=?{?"ڼ~?{? ~(?{?ʻ7~?{?|;r~ѵ?{?v|<1~{N?{?<~.?{?k=n~+?{?3=_g2~?{?61H=!}?{?}R=>z}E)?{?DX=U}s?{?\-o="{J}?{?!j=8!{}?{?=} ?{?D=}a? =Qy=o 1? =1= (r? =[=զ? =9=)`;ł? =X=U`߀? =/=O}? ==iby? =y=W0xv? =y=94r? = =:un? =<='bj? =׍>Yrcg? =>qc? =rx >}F`? =%>X5?S>Լr~೻?S>}~#?S>Ⱦ~-?S>k;X~Զ?S>\{< ~I?S><~?S>^=}~?S>h&=}~"?S>p;=}?S>F=;h}G+?S>T=AD}`h?S>u=6}+?S>j=4}ۨ?S>=(+}?S>=}?7?/o;0?7?jP,?7?^A?7?pJa?7?`:*?7?z<?7?2<?7?s<%(l?7?K* <@-?ׅ<(@-?&b<3@-?,'=$@ޟ?|$*$@ޟ?/'y#@ޟ?^"@ޟ?I"@ޟ?9a{!@ޟ?^9y!@ޟ?^R @ޟ?;'r0 @ޟ?@ޟ?`-3@ޟ?k<<@ޟ?jλ`<@ޟ?;rj@ޟ?"??BX7%??+6??;7:`HQ? 8)>a!? 8)>? 8)>U ? 8)> 5a? 8)>p"j<^? 8)>u<>? 8)>{<z? 8)>,<2? 8)>m<Ҫ? 8)><|dQ? 8)>=P/? 8)>0=y/~? 8)>J=MA@<> l @<>vst] @<>@Fw%P @<>o67 @<>{޼ @<>Te?V @<>hA\ @<><;+z@<>;9;@<>+<?@<>^K<3CW]@<>]<j@<>S=q"_Z@<>ˏ%=0U%@i!?&a9$@i!?"[9$@i!?=]:_#@i!?hm~"@i!?RV="@i!?\H!@i!?R1Fe!@i!?! ;? @i!?v[j @i!?dȼ9j@i!?lk@i!?v$@i!?a1;)"@i!?<9i/@i!?G=:@H!?EAH.:@H!? G9@H!?Nm 9@H!?\?y8@H!?O-.g7@H!?]"7@H!?_ d6@H!?0(e6@H!?02?eؤ5@H!?0_d+5@H!?s~iX4@H!?.o;ks'4@H!?EE<l׻3@H!?<<2@H!?=1=&@>Rm%@>',$@>eUnF.$@>x@|.o#@>j&"@>ȢU7"@>I+!@>0!f!@>2 @>.伺n @>Z.%@>F〼XR @>_)I@>=?7<;@V>KӽeJj;@V>'5:@V>ŜOZ:@V>j f9@V>VU>29@V>2'KD8@V>}EQ48@V>ټv7@V> ͭH>K7@V>^-dV6@V>508W6@V>5@V> q:T5@V>ML<]4@V>l<z/ك>O4=Yu?{>3==[u4ip>/=hte>p)=ytZ>W!=΁vtP>(=kMwD>=dYw.7>~=Wlwt)>=(Uw&>ּ=Dv\ >T? =D.vy>>)Y"=Cu^=M $=Du_=R%=EuY=k2&=Eu/t4?%ϕ=$ 1?%=&Xy,?%= ='?%N= [Z"?%[|=y sC?%>bv?%>H?%&+ >w9?%> ?%>pN?%q> >?%>5Ȍ?%$>>%5'>>%2+>:>eYGI=qlxur>eYIM=VҀw:z>eYHM=Цv o>eYH?J=Rvc>eYD=w$Y>eYv1==Դx;N>eYv 4=x C>eY+=x[6>eY/=xR(>eY2=y\]x>eYN5=Iw >eY(8=iJ6w&=eY9:=SL-w`=eY^;=NN+w/=eY==(Pw|4?eM+|=bn)u1?eMӉ= U<P6-?eM,= gR(?eMʬ= h=#?eMƿ=  ^?eM0=?`?eMA=I?eM\S=$?eM->*k ?eM! >$\?eMO>n60?eMze>?eM >nuw>eMq$>ju4f>eMH'>e?I q<[ KҊ?It<8 N3?Ih< ]ょ?I5= mυ?I^?8=H 1}?Iyb= !F?I߿= r_?I^f=9@|?I|=0x?I=_t?I=Jp?In=D8m?I<= 'i?I=h '-f?I~>_ 7?;?;Wϼ{& ?;!ye%g?;}dͻ65,Խ?;;f#?;4{ ame?S(> eka?SR > wk᧺?9UiyS?9UvͼJ)?9U{kX(c?9U*H+QH?9U[+w@Z=xn>w&X=vc>wYS=_u Y>wK=JuqN>wA=VvD>w'6=x:>w'*=+֬xb0>wJ"=?ySyHF">wg%=EpTy̅>w(={y>wg*=lx=w[J,=w{=wJ-=w=w_.=wj=w}/=wL7?KO= 543?KΏ=@ D30?Kߘ=V tYݧ+?K= s '?KK=  "?K5s=>.Z?K>=E?K=zht?KР=?KϹ=i6 ?K3>?Kt>JQ?K]>As:?Khn>"9@h>K#>>L6ῐ<|xu0y>L6῜L6L6~g<(Vu~W>L6CzL6l&L6῝ L6Ὺ<|y-(>L6 L6TL6<?迸>H?<>@'_ ?迷P>L?>t>B?н >R?迮g$>>'>?B?A{em=};y?Ao=> ~?A=>~?M<: KH?濣< -Pa?濙=3 ,a?x= l?[==< G?eZ= ?lI= EH{?=xLw?H=tv=s? =qo?6=k?i=J"h?濃T=^d?D= a?濋= |X?鿹PP~3?鿧ُo~6?:(~•?鿜;;~?YS<T~/?@<~Y?=bO~Z?v:=q~e?J=uW~?L=VV~n?VM=}?鿾]=m}Z3?鿆_=}n?~!=}??鿳=}1?ץ8OlY$?ץ_6?ץFȼd ?ץKezNi?ץ@;;?ץ<_Ex?ץXx?{X@a ;?{X<9G?{XW="5?{X0=]3e?{XL=v @,P~$ @,PlGt t @,P  @,Ps!( @,Pf@,PFtzZ@,PT!A7@,Pv;B'@,P^#;p@,Pꚇ;>@,PX;BFR@,P <o^@,P8<qȪ@,Pִ</@,Pߢ=%@>%@>菽w/o$@>B}.4/#@>L(_#@>H"@>D; ("@>,[!@>ޤ"Jw]!@> @>4~k_ @>~@>ԕA/@>;@>RB =dx<@- dսP;@- (}Yb;@- Ozh:@- g@:@- cM5"9@- ##c9@- EVH}8@- ǼF8@- 5y7@- \Y`+Y7@- -<6@- m߉`Q.f6@- :a5@- ;q14@- A<c$@V(P$@V$#@V&"@Vn!A"@V7\UK!@V.AZSk!@Vv$+E @V~#M @VVԼU @VPqu@VCclb@V6@VN*< @V{<E@VL,=o\;@R򡢽G57;@R9 I:@R3_8:@Rс/Cπ9@RfL8@RMh.8@R0 8@Rd0 7@R\$7@R<6@R;9z6@R'<5@RVD<4@R3W=3@Rl=?;,H4o?;B"9?;K¼KAl?;=]9 ?; 'K?;/<2 @#<6@^鿐MQ~ M>Uoc|@>$N_(3>PvL%%>DPvb$t>8 vx# >[/Ʉv"x=@&v!P=X Iv = v6C=xKЃv=z$D_\=4s6K'A=8(J<+K>=XڷcWp'=>=XT+luV0>=XE}y-">=Xg98b'$>=Xz.b=#C>=X$%bR"p==XBfqbg! ==X>3b| BO==Xb==Xb~ϊ==XUbX==X1!d#Jq==X\Zυe&<=X Bf'<=X4Ph* [>N=M>oC @>U_p!k.3>[QxAz%>`DIA {>z<9A{ >/A)=y'ȁA9= AI=zAXP=~X@p̌= VRK}z\=XZ6]=_*}A<km ,[>̽.5EM>̽ps!@@>̽Hx`@c273>̽R(%>̽G*E܃>̽W9Q( >̽V70n=̽f (~=̽!Z2 =̽*/*b=̽gCdތ=̽I \=̽J=̽ <̽ G"mN>%m_A>%ۼ!4>%bӼQx"&>%=ͼ׀r8>%Ǽr  _ >%a¼r 7=%r N=%/vr %=%cr =%3䶼Qr=%BrqOk=%µv ԥ.=%d`yu><%ȷA~nXU<%QR>hKnMUE>tNX[s7>JIyc *>;J_'G>[0U&><%˅U &>T U!%\==U8$b=UN#'ݴ= Uc"0=j vUx!8+w= 9Xe':= T)< V@+<.Z.#[>Y ǿu 8M>Y ǿGq@>Y ǿ/=ai6!@3>Y ǿR(%>Y ǿE(č>Y ǿ:P'P2 >Y ǿ0&=Y ǿn(%=Y ǿx^"u$4=Y ǿt0#w=Y ǿi"#0=Y ǿng(\=Y ǿCs+=Y ǿ$f, #^k俧ݼ ,I>^k俴-ռ8;>^k俄pͼuw!.>^k3}Ƽ(j!>^kSb ''&>^k俒 &>^kk_΅ &5=^kw ,%=^kÓ@ C$=^k[] Y#x=^kG񫼾 }",=^k俋O](&M=^k*xp*l=^k$k6,=<^ku(.i?[>jT, M>jr#<C@>jbXa !S3>j9BTs(%>jcG.D'>j<䅾\&E >j:i2s%=jN*U$D=j{##|\=jn΄"=j!|=jPV']=jR5AR*"=j]+>C>Q5\>>C>-y \LO>>C>u}A>>C>|Ot$Ȫ4>>C>`3&nW'>>C>w^s%>>C>Lgv$ >>C>i^1$ɪ=>C>U턡$#=>C>O9"4I=>C>JkN!y˪=>C>F-C'UI=>C>AD)ˍ[=>C>/CDw+=>C>E-[>9>(ZM>9>pe @>9>`~]f93>9>5R]"%>9>YE`&%H>9>:E`=$* >9>e0`S#[=9>DN(`h"u=9>7!~`}!4%=9>p?` g=9>`v=9>Q%ө\=9>SvE (=9>,@g)_<9>J8:f,/[>^?\d M>^?hq5mod@>^?aɂ*uSI3>^?rS%%>^?6F2?'>^?M;腠W& ; >^?՜1n%a=^?)Z$=^?##F=^?҄"ډ=^?j!=^?XU'\=^?4D*X=^?fU+[n<^?_ ].I`>Y %?t  FuU>Y %?#T H>Y %?O s-;>Y %?gC!=.>Y %? f% >Y %? |Q |$%x>Y %?$ػ #`>Y %?5Żʄ "=[=Y %? !"=Y %??I ѿ=Y %? 1=Y %?D%}=Y %?M(q?=Y %?N )=Y %?; ,6W>K?䝼 ^J>K?K2=>K?'|σ/>K?x%n">K?>~%>K?٠u9)$>K?RZl?#)=K?dU"5=K?^rj!=K?r Z3~ N٤=K?YW,]=K?U% O=K?Vl(,=K?4W])n?-0N>n?Yr@>n?bI U3>n?#hT&!%>n?ÈGh#>n? @<҄h"G >n?c2h!=n?s*Qh =n?"#h `=n?׃h=n?Ӯh+=n?/u $#]=n?( =n?<G(|*?2L6K>?0W6 %?>?;;*~q#1>?YFut!I$>?y%>? t$h >?B29.$=?M:#=?Ę:2"=?*:hF!7=?:*[ =?:m(*I=?^:.v =?|:Ph1o? HM>?vri @>?jb4S3>??T˄"%>?`G7& >?1<х7&E >?f27&%=?=L*C7<$l=?#7R#\=?7h"ޟ=? |7}!j=?27*RR=?82=? j 4ŕѡp>ѡ>ѡ?ѡ`?ѡ?ѡ@ѡP@ѡ@ѡ@ѡ@AѡAѡAѡ0BѡBѡBѡ CѡpCѡCѡDѡ`DѡDѡEѡPEѡEѡEѡ@FѡFѡFѡ0GѡGѡGѡ HѡpHѡHѡIѡ`IѡIѡJѡPJѡJѡJѡ@KѡKѡKѡ0LѡLѡLѡ MѡpMѡMѡNѡ`NѡNѡOѡPOѡOѡOѡ@PѡPѡPѡ0QѡQѡQѡ RѡpRѡRѡSѡ`SѡSѡTѡPTѡTѡTѡ@UѡUѡUѡ0VѡVѡVѡ WѡpWѡWѡXѡ`XѡXѡYѡPYѡYѡYѡ@ZѡZѡZѡ0[ѡ[ѡ[ѡ \ѡp\ѡ\ѡ]ѡ`]ѡ]ѡ^ѡP^ѡ^ѡ^ѡ@_ѡ_ѡ_ѡ0`ѡ`ѡ`ѡ aѡpaѡaѡbѡ`bѡbѡcѡPcѡcѡcѡ@dѡdѡdѡ0eѡeѡeѡ fѡpfѡfѡgѡ`gѡgѡhѡPhѡhѡhѡ@iѡiѡiѡ0jѡjѡjѡ kѡpkѡkѡlѡ`lѡlѡmѡPmѡmѡmѡ@nѡnѡnѡ0oѡoѡoѡ pѡppѡpѡqѡ`qѡqѡrѡPrѡrѡrѡ@sѡsѡsѡ0tѡtѡtѡ uѡpuѡuѡvѡ`vѡvѡwѡPwѡwѡwѡ@xѡxѡxѡ0yѡyѡyѡ zѡpzѡzѡ{ѡ`{ѡ{ѡ|ѡP|ѡ|ѡ|ѡ@}ѡ}ѡ}ѡ0~ѡ~ѡ~ѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡЃѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡЈѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡЍѡ ѡpѡѡ ѡѡѡ@ѡѡѡ`ѡѡ ѡѡѡ@ѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡЗѡ ѡpѡѡѡpѡЙѡ0ѡѡѡPѡѡѡpѡМѡ0ѡѡѡPѡѡѡPѡѡѡ@ѡѡѡ0ѡѡСѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡЦѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡЫѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡаѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡеѡ ѡѡѡ@ѡѡѡ`ѡѡ ѡѡѡ@ѡѡѡ`ѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡпѡ ѡpѡѡ0ѡѡѡPѡѡѡpѡѡ0ѡѡѡPѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡpҡҡҡ`ҡҡҡPҡҡҡ@ҡҡҡ0ҡҡЫҡ ҡpҡҡҡ`ҡҡҡPҡҡҡ@ҡҡҡ0ҡҡаҡ ҡpҡҡҡ`ҡҡҡPҡҡҡ@ҡҡҡ0ҡҡеҡ ҡpҡҡҡ`ҡҡҡPҡҡҡ@ҡҡҡ0ҡҡкҡ ҡpҡҡҡ`ҡҡҡPҡҡҡ@ҡҡҡ0ҡҡпҡ ҡpҡҡҡ`ҡҡҡPҡҡҡ@ҡҡҡ0ҡҡҡ ҡpҡ0 p`P@0 p`P@0 p  !`!!"P"""@###0$$$ %p%%&`&&'P'''@(((0))) *p**+`++,P,,,@---0... /p//0`001P111@2220333P445p550666P778p880999P::;p;;0<<<P==>p>>0???P@@ApAA0BBBPCCD`DDEPEEE@FFF0GGG HpHH III@JJK`KK LLL@MMN`NN OOO@PPQ`QQ RRR@SST`TT UUU@VVW`WW XXX@YYY@ZZZ0[[[ \p\\]`]]^P^^^@___0``` apaab`bbcPccc@ddd0eee fpffg`gghPhhh@iii0jjj kpkkl`llmPmmm@nnn0ooo ppppq`qqrPrrr@sss0ttt`P@0 p`P@0 p`P@0    p  0   P   p  0Pp0Pp0PP@0 p` @` @ `   !!!@""#`## $$$@%%&`&& '''@(()`)) ***@++,`,, ---@../`// 0000111 2p223`334P444@5550666 7p778`889P999@:::0;;; <p<<=`==>P>>>@???0@@@ ApAAB`BBCPCCC@DDD0EEE FpFFG`GGHPHHH@III0JJJ KpKKL`LLMPMMM@NNN0OOO PpPPQ`QQRPRRR@SSS0TTT UpUUV`VVWPWWW@XXX0YYY ZpZZ[p[[0\\\P]]^p^^0___P``apaa0bbbPccdpdd0eeePffgpgg0hhhPiijpjj0kkk@lll0mmm npnno`oopPppp@qqq0rrr spsst`ttuPuuu@vvv0www xpxxy`yyzPzzz@{{{0||| }p}}~`~~P@0Ё p` @` @` @` @` @` @0Е p`P@0К p`P@0П p`P@0Ф p`P@0Щ p`P@0Ю p` @` @` @` @` @` @` @` @` @` @` @` @@TTU`UU VVV@WWX`XX YYY@ZZ[`[[ \\\@]]^`^^ ___@``a`aa bbb@ccc0ddd epeef`ffgPggg@hhh0iii jpjjk`kklPlll@mmm0nnn opoop`ppqPqqrprr0sssPttupuu0vvv@www0xxx ypyyz`zz{P{{{@|||0}}} ~p~~`P@0Ђ p`` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @` @@0й p`P@0о p`` @` @@0 p`P@0 p`P@0 p`P@0 p`P@0 pp0Pp0PP@0 p` @` @P@0 p`p0Pp0P@0 p0ѡѡѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡѡ ѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡѡ0ѡѡѡPѡѡѡpѡѡ0ѡѡѡPѡѡѡpѡѡѡ`ѡѡѡPѡѡѡ@ѡѡѡ0ѡѡѡ ѡѡѡ@ѡѡѡ`ѡѡ ѡѡѡ@ҡҡҡ`ҡҡҡ`ҡҡҡPҡҡҡ@ҡҡҡ0ҡҡҡ ҡpҡҡ0ҡҡҡPҡҡ ҡp ҡ ҡ0 ҡ ҡ ҡP ҡ ҡ ҡ` ҡ ҡ ҡP ҡ ҡ ҡ@ҡҡҡ0ҡҡҡ ҡpҡҡ ҡҡҡ@ҡҡҡ`ҡҡ ҡҡҡ@ҡҡҡ`ҡҡҡPҡҡҡ@ҡҡҡ0ҡҡҡ ҡpҡҡҡpҡҡ0ҡҡҡPҡҡҡpҡҡ0ҡҡҡP ҡ ҡ!ҡP!ҡ!ҡ!ҡ@"ҡ"ҡ"ҡ0#ҡ#ҡ#ҡ $ҡp$ҡ$ҡ%ҡ`%ҡ%ҡ &ҡ&ҡ&ҡ@'ҡ'ҡ(ҡ`(ҡ(ҡ )ҡ)ҡ)ҡ@*ҡ*ҡ+ҡP+ҡ+ҡ+ҡ@,ҡ,ҡ,ҡ0-ҡ-ҡ-ҡ .ҡp.ҡ.ҡ/ҡ`/ҡ/ҡ0ҡP0ҡ0ҡ0ҡ@1ҡ1ҡ1ҡ02ҡ2ҡ2ҡ 3ҡp3ҡ3ҡ4ҡ`4ҡ4ҡ5ҡP5ҡ5ҡ5ҡ@6ҡ6ҡ6ҡ07ҡ7ҡ7ҡ 8ҡp8ҡ8ҡ9ҡp9ҡ9ҡ0:ҡ:ҡ:ҡP;ҡ;ҡ<ҡp<ҡ<ҡ0=ҡ=ҡ=ҡP>ҡ>ҡ?ҡP?ҡ?ҡ?ҡ@@ҡ@ҡ@ҡ0AҡAҡAҡ BҡpBҡBҡCҡ`CҡCҡ DҡDҡDҡ@EҡEҡFҡ`FҡFҡ GҡGҡGҡ@HҡHҡIҡPIҡIҡIҡ@JҡJҡJҡ0KҡKҡKҡ LҡpLҡLҡMҡ`MҡMҡNҡpNҡNҡ0OҡOҡOҡPPҡPҡQҡpQҡQҡ0RҡRҡRҡPSҡSҡSҡ@TҡTҡTҡ0UҡUҡUҡ VҡpVҡVҡWҡ`WҡWҡXҡPXҡXҡXҡ@YҡYҡYҡ0ZҡZҡZҡ [ҡp[ҡ[ҡ\ҡ`\ҡ\ҡ]ҡP]ҡ]ҡ]ҡ@^ҡ^ҡ^ҡ0_ҡ_ҡ_ҡ `ҡp`ҡ`ҡaҡ`aҡaҡbҡPbҡbҡbҡ@cҡcҡcҡ0dҡdҡdҡ eҡpeҡeҡfҡ`fҡfҡgҡPgҡgҡgҡ@hҡhҡhҡ0iҡiҡiҡ jҡpjҡjҡ kҡkҡkҡ@lҡlҡmҡ`mҡmҡ nҡnҡnҡ@oҡoҡpҡ`pҡpҡqҡPqҡqҡqҡ@rҡrҡrҡ0sҡsҡsҡ tҡptҡtҡuҡpuҡuҡ0vҡvҡvҡPwҡwҡxҡpxҡxҡ0yҡyҡyҡPzҡzҡ{ҡP{ҡ{ҡ{ҡ@|ҡ|ҡ|ҡ0}ҡ}ҡ}ҡ ~ҡp~ҡ~ҡҡ`ҡҡ ҡҡҡ@ҡҡҡ`ҡҡ ҡҡҡ@ҡҡҡPҡҡҡ@ҡҡҡ0ҡҡЇҡ ҡpҡҡҡ`ҡҡҡPҡҡҡ@ҡҡҡ0ҡҡЌҡ ҡpҡҡҡ`ҡҡҡPҡҡҡ@ҡҡҡ0ҡҡБҡ ҡpҡҡҡpҡГҡ0ҡҡҡPҡҡҡpҡЖҡ0ҡҡҡPҡҡҡPҡҡҡ@ҡҡҡ0ҡҡЛҡ ҡpҡҡҡ`ҡҡ ҡҡҡ@ҡҡҡ`ҡҡ ҡҡҡ@ҡҡҡPҡҡҡ@ҡҡҡ0ҡҡХҡ ҡpҡҡҡpp@qqr`rr sss@ttu`uu vvv wpwwx`xxyPyyy@zzz0{{{P||}p}}0~~~PpЀ p`P@0@` @` p`P@0Џ0PpВ0Pp`P@0Й p`P@0О p`P@0@` @` p`P@0Э0Ppа0Pp`P@0з @` @``P@0 p`P@0 p`P@0 p`P@0@` @` p`P@00Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0Pp0@0 p`P` @` @0 p`PPp0P   p  0   P   p  0Pp0Pp0Pp0Pp0Pp0Pp0   P!!"p""0###P$$%p%%0&&&P''(p((0)))P**+p++0,,,P--.p..0///P001p110222P334p440555P667p770888P99:p::0;;;P<<=p==0>>> ?p??@`@@APAAA@BBB@CCD`DD EEE@FFG`GG HHH IpIIJ`JJKPKKK@LLL0MMMPNNOpOO0PPPPQQRpRR0SSSPTTUpUU0VVVPWWXpXX0YYYPZZ[p[[0\\\P]]^p^^0___P``apaa0bbbPccdpdd0eeePffgpgg0hhhPiii@jjj0kkk lpllm`mmn`nn ooo@ppq`qq rrr@sss@ttt0uuu vpvvw`wwxPxxx@yyy0zzz {p{{|`||}`}} ~~~@` @@0Є p`PpЈ0PpЋ0PpЎ0PpБ0PpД0PpЗ0PpК0PpН0PpР0Pp`P@0Ч @` @``P@0б pв0Ppе0Ppи0Ppл0Ppо0Pp0Pp0Pp0Pp0Ppz`zz {{{@||}`}} ~~~@` @` @` @` @` @` @` @` 0З p`P𚢠@𛢠PpН0𞢠PpР0С p`P𤢠@ॢ@` ਢ@` ૢ@` ஢@` ౢ@` ഢ@` ෢@` @` @` @P@0 p`p0Pp0P@0 p`DATAU8?DATAx8?DATAp8?DATA0N8?DATAЭl8?DATA8?DATAM8?DATA 8?DATA 8?DATA!8?DATAO8?DATAO8?DATA`O8?DATAO8?DATAO8?DATAPO8?DATAO8?DATAO8?DATA@O8?DATAO8?DATAO8?DATA0O8?DATAO8?DATAO8?DATA O8?DATApO8?DATAO8?DATAO8?DATA`O8?DATAO8?DATAO8?DATAPO8?DATAO8?DATAO8?DATA@O8?DATAO8?DATAO8?DATA0O8?DATAO8?DATAO8?DATA O8?DATApO8?DATAO8?DATAO8?DATA`O8?DATAO8?DATAO8?DATAPO8?DATAO8?DATAO8?DATA@O8?DATAO8?DATAO8?DATA0O8?DATAO8?DATAO8?DATA O8?DATApO8?DATAO8?DATAO8?DATA`O8??DATAO8??DATAO8??DATAPO8??DATAO8??DATAO8??DATA@O8??DATAO8??DATAO8??DATA0O8??DATAO8??DATAO8??DATA O8??DATApO8??DATAO8??DATAO8?DATA`O8?DATAO8?DATAO8?DATAPO8?DATAO8?DATAO8?DATA@O8?DATAO8?DATAO8?DATA0O8?DATAO8?DATAO8?DATA O8?DATApO8?DATAO8??DATAO8??DATA`O8??DATAO8??DATAO8??DATAPO8??DATAO8??DATAO8??DATA@O8??DATAO8??DATAO8??DATA0O8??DATAO8??DATAO8??DATA O8??DATApO8?DATAO8?DATAO8?DATA`O8?DATAO8?DATAO8?DATAPO8?DATAO8?DATAO8?DATA@O8?DATAO8?DATAO8?DATA0O8?DATAO8?DATAO8?DATA O8??DATApO8??DATAO8??DATAO8??DATA`O8??DATAO8??DATAO8??DATAPO8??DATAO8??DATAO8??DATA@O8??DATAO8??DATAO8??DATA0O8??DATAO8??DATAO8??DATA O8??DATApO8??DATAO8??DATAO8??DATA`O8??DATAO8??DATAO8??DATAPO8??DATAO8??DATAO8??DATA@O8??DATAO8??DATAO8??DATA0O8??DATAO8???DATAO8???DATA@O8???DATAO8???DATAO8???DATA`O8???DATAO8???DATA O8???DATAO8???DATAO8???DATA@O8???DATAO8???DATAO8???DATA`O8???DATAO8???DATA O8?DATApO8?DATAO8?DATAO8?DATA`O8?DATAO8?DATAO8?DATAPO8?DATAO8?DATAO8?DATA@P8?DATAP8?DATAP8?DATA0P8?DATAP8?DATAP8?DATA P8?DATApP8?DATAP8?DATAP8?DATA`P8?DATAP8?DATAP8?DATAPP8?DATAP8?DATAP8?DATA@P8?DATAP8?DATAP8?DATA0P8?DATAP8??DATAP8??DATA P8??DATApP8??DATAP8??DATAP8??DATA`P8??DATAP8??DATA P8??DATAP P8??DATA P8??DATA P8??DATA@ P8??DATA P8??DATA P8??DATA0 P8???DATA P8???DATA P8???DATAP P8???DATA P8???DATA P8???DATAp P8???DATA P8???DATA0P8???DATAС8???DATAС8???DATA`С8???DATAС8???DATA С8???DATAС8???DATAС8?DATA0С8?DATAС8?DATAС8?DATA С8?DATApС8?DATAС8?DATAС8?DATA`С8?DATAС8?DATAС8?DATAPС8?DATAС8?DATAС8?DATA@С8?DATAС8?DATAС8?DATA0С8?DATAС8?DATAС8?DATA С8?DATApС8?DATAС8?DATAС8?DATA`С8?DATAС8?DATAС8?DATAPС8?DATAС8?DATAС8?DATA@С8???DATAС8???DATAС8???DATA`С8???DATAС8???DATA С8???DATAС8???DATAС8???DATA@С8???DATAС8???DATAС8???DATA`С8???DATAС8???DATA С8???DATAС8???DATAС8??DATA0С8??DATAС8??DATAС8??DATA С8??DATApС8??DATAС8??DATAС8??DATA`С8??DATAС8??DATAС8??DATAPС8??DATAС8??DATAС8??DATA@С8??DATAС8??DATAС8??DATA0С8??DATAС8??DATAС8??DATA С8??DATApС8??DATAС8??DATAС8??DATA`С8??DATAС8??DATAС8??DATAPС8??DATAС8??DATAС8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8???DATAPѡ8???DATAѡ8???DATAѡ8???DATApѡ8???DATAѡ8???DATA0ѡ8???DATAѡ8???DATAѡ8???DATAPѡ8???DATAѡ8???DATA ѡ8???DATAp ѡ8???DATA ѡ8???DATA0 ѡ8???DATA ѡ8??DATA ѡ8??DATA0 ѡ8??DATA ѡ8??DATA ѡ8??DATA ѡ8??DATAp ѡ8??DATA ѡ8??DATA ѡ8??DATA` ѡ8??DATA ѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8???DATAѡ8???DATAѡ8???DATA`ѡ8???DATAѡ8???DATA ѡ8???DATAѡ8???DATAѡ8???DATA@ѡ8???DATAѡ8???DATAѡ8???DATA`ѡ8???DATAѡ8???DATA ѡ8???DATAѡ8???DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8??DATAp ѡ8??DATA ѡ8??DATA!ѡ8??DATA`!ѡ8??DATA!ѡ8??DATA"ѡ8??DATAP"ѡ8??DATA"ѡ8??DATA"ѡ8??DATA@#ѡ8??DATA#ѡ8??DATA#ѡ8??DATA0$ѡ8??DATA$ѡ8??DATA$ѡ8??DATA %ѡ8??DATAp%ѡ8??DATA%ѡ8??DATA&ѡ8??DATA`&ѡ8??DATA&ѡ8??DATA'ѡ8??DATAP'ѡ8??DATA'ѡ8??DATA'ѡ8??DATA@(ѡ8??DATA(ѡ8??DATA(ѡ8??DATA0)ѡ8??DATA)ѡ8??DATA)ѡ8??DATA *ѡ8??DATAp*ѡ8??DATA*ѡ8??DATA+ѡ8??DATA`+ѡ8??DATA+ѡ8??DATA,ѡ8??DATAP,ѡ8?DATA,ѡ8?DATA,ѡ8?DATA@-ѡ8?DATA-ѡ8?DATA-ѡ8?DATA0.ѡ8?DATA.ѡ8?DATA.ѡ8?DATA /ѡ8?DATAp/ѡ8?DATA/ѡ8?DATA0ѡ8?DATA`0ѡ8?DATA0ѡ8?DATA1ѡ8?DATAP1ѡ8?DATA1ѡ8?DATA1ѡ8?DATA@2ѡ8?DATA2ѡ8?DATA2ѡ8?DATA03ѡ8?DATA3ѡ8?DATA3ѡ8?DATA 4ѡ8?DATAp4ѡ8?DATA4ѡ8?DATA5ѡ8?DATA`5ѡ8?DATA5ѡ8?DATA6ѡ8?DATAP6ѡ8?DATA6ѡ8?DATA6ѡ8?DATA@7ѡ8?DATA7ѡ8?DATA7ѡ8?DATA08ѡ8?DATA8ѡ8?DATA8ѡ8?DATA 9ѡ8?DATAp9ѡ8?DATA9ѡ8?DATA:ѡ8?DATA`:ѡ8?DATA:ѡ8?DATA;ѡ8?DATAP;ѡ8?DATA;ѡ8?DATA;ѡ8?DATA@<ѡ8?DATA<ѡ8?DATA<ѡ8?DATA0=ѡ8?DATA=ѡ8?DATA=ѡ8?DATA >ѡ8?DATAp>ѡ8?DATA>ѡ8?DATA?ѡ8??DATA`?ѡ8??DATA?ѡ8??DATA@ѡ8??DATAP@ѡ8??DATA@ѡ8??DATA@ѡ8??DATA@Aѡ8??DATAAѡ8??DATAAѡ8??DATA0Bѡ8??DATABѡ8??DATABѡ8??DATA Cѡ8??DATApCѡ8??DATACѡ8??DATADѡ8??DATA`Dѡ8??DATADѡ8??DATAEѡ8??DATAPEѡ8??DATAEѡ8??DATAEѡ8??DATA@Fѡ8??DATAFѡ8??DATAFѡ8??DATA0Gѡ8??DATAGѡ8??DATAGѡ8??DATA Hѡ8??DATApHѡ8??DATAHѡ8??DATAIѡ8??DATA`Iѡ8??DATAIѡ8??DATAJѡ8??DATAPJѡ8??DATAJѡ8??DATAJѡ8??DATA@Kѡ8??DATAKѡ8??DATAKѡ8??DATA0Lѡ8??DATALѡ8??DATALѡ8??DATA Mѡ8??DATApMѡ8??DATAMѡ8??DATANѡ8??DATA`Nѡ8??DATANѡ8??DATAOѡ8??DATAPOѡ8??DATAOѡ8??DATAOѡ8??DATA@Pѡ8??DATAPѡ8??DATAPѡ8??DATA0Qѡ8??DATAQѡ8??DATAQѡ8?DATA Rѡ8?DATApRѡ8?DATARѡ8?DATASѡ8?DATA`Sѡ8?DATASѡ8?DATATѡ8?DATAPTѡ8?DATATѡ8?DATATѡ8?DATA@Uѡ8?DATAUѡ8?DATAUѡ8?DATA0Vѡ8?DATAVѡ8?DATAVѡ8?DATA Wѡ8?DATApWѡ8?DATAWѡ8?DATAXѡ8?DATA`Xѡ8?DATAXѡ8?DATAYѡ8?DATAPYѡ8?DATAYѡ8?DATAYѡ8?DATA@Zѡ8?DATAZѡ8?DATAZѡ8?DATA0[ѡ8?DATA[ѡ8?DATA[ѡ8?DATA \ѡ8?DATAp\ѡ8?DATA\ѡ8?DATA]ѡ8?DATA`]ѡ8?DATA]ѡ8?DATA^ѡ8?DATAP^ѡ8?DATA^ѡ8?DATA^ѡ8?DATA@_ѡ8?DATA_ѡ8?DATA_ѡ8?DATA0`ѡ8?DATA`ѡ8?DATA`ѡ8?DATA aѡ8?DATApaѡ8?DATAaѡ8?DATAbѡ8?DATA`bѡ8?DATAbѡ8?DATAcѡ8?DATAPcѡ8?DATAcѡ8?DATAcѡ8?DATA@dѡ8?DATAdѡ8??DATAdѡ8??DATA0eѡ8??DATAeѡ8??DATAeѡ8??DATA fѡ8??DATApfѡ8??DATAfѡ8??DATAgѡ8??DATA`gѡ8??DATAgѡ8??DATAhѡ8??DATAPhѡ8??DATAhѡ8??DATAhѡ8??DATA@iѡ8??DATAiѡ8??DATAiѡ8??DATA0jѡ8??DATAjѡ8??DATAjѡ8??DATA kѡ8??DATApkѡ8??DATAkѡ8??DATAlѡ8??DATA`lѡ8??DATAlѡ8??DATAmѡ8??DATAPmѡ8??DATAmѡ8??DATAmѡ8??DATA@nѡ8??DATAnѡ8??DATAnѡ8??DATA0oѡ8??DATAoѡ8??DATAoѡ8??DATA pѡ8??DATAppѡ8??DATApѡ8??DATAqѡ8??DATA`qѡ8??DATAqѡ8??DATArѡ8??DATAPrѡ8??DATArѡ8??DATArѡ8??DATA@sѡ8??DATAsѡ8??DATAsѡ8??DATA0tѡ8??DATAtѡ8??DATAtѡ8??DATA uѡ8??DATApuѡ8??DATAuѡ8??DATAvѡ8??DATA`vѡ8??DATAvѡ8??DATAwѡ8??DATAPwѡ8??DATAwѡ8??DATAwѡ8??DATA@xѡ8??DATAxѡ8??DATAxѡ8??DATA0yѡ8??DATAyѡ8??DATAyѡ8??DATA zѡ8??DATApzѡ8??DATAzѡ8??DATA{ѡ8??DATA`{ѡ8??DATA{ѡ8??DATA|ѡ8??DATAP|ѡ8??DATA|ѡ8??DATA|ѡ8??DATA@}ѡ8??DATA}ѡ8??DATA}ѡ8??DATA0~ѡ8??DATA~ѡ8??DATA~ѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAЃѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAЈѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAЍѡ8??DATA ѡ8??DATApѡ8??DATAѡ8???DATA ѡ8???DATAѡ8???DATAѡ8???DATA@ѡ8???DATAѡ8???DATAѡ8???DATA`ѡ8???DATAѡ8???DATA ѡ8???DATAѡ8???DATAѡ8???DATA@ѡ8???DATAѡ8???DATAѡ8???DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAЗѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8???DATApѡ8???DATAЙѡ8???DATA0ѡ8???DATAѡ8???DATAѡ8???DATAPѡ8???DATAѡ8???DATAѡ8???DATApѡ8???DATAМѡ8???DATA0ѡ8???DATAѡ8???DATAѡ8???DATAPѡ8???DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAСѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAЦѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAЫѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAаѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAеѡ8??DATA ѡ8???DATAѡ8???DATAѡ8???DATA@ѡ8???DATAѡ8???DATAѡ8???DATA`ѡ8???DATAѡ8???DATA ѡ8???DATAѡ8???DATAѡ8???DATA@ѡ8???DATAѡ8???DATAѡ8???DATA`ѡ8???DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAпѡ8??DATA ѡ8??DATApѡ8???DATAѡ8???DATA0ѡ8???DATAѡ8???DATAѡ8???DATAPѡ8???DATAѡ8???DATAѡ8???DATApѡ8???DATAѡ8???DATA0ѡ8???DATAѡ8???DATAѡ8???DATAPѡ8???DATAѡ8???DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATApҡ8??DATAҡ8??DATAҡ8??DATA`ҡ8??DATAҡ8??DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAЫҡ8??DATA ҡ8??DATApҡ8??DATAҡ8??DATAҡ8??DATA`ҡ8??DATAҡ8??DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAаҡ8??DATA ҡ8??DATApҡ8??DATAҡ8??DATAҡ8??DATA`ҡ8??DATAҡ8??DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAеҡ8??DATA ҡ8??DATApҡ8??DATAҡ8??DATAҡ8??DATA`ҡ8??DATAҡ8??DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAкҡ8??DATA ҡ8??DATApҡ8??DATAҡ8??DATAҡ8??DATA`ҡ8??DATAҡ8??DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAпҡ8??DATA ҡ8??DATApҡ8??DATAҡ8??DATAҡ8??DATA`ҡ8??DATAҡ8??DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAҡ8??DATA ҡ8??DATApҡ8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp 8??DATA 8??DATA!8??DATA`!8??DATA!8??DATA"8??DATAP"8??DATA"8??DATA"8??DATA@#8??DATA#8??DATA#8??DATA0$8??DATA$8??DATA$8??DATA %8??DATAp%8??DATA%8??DATA&8??DATA`&8??DATA&8??DATA'8??DATAP'8??DATA'8??DATA'8??DATA@(8??DATA(8??DATA(8??DATA0)8??DATA)8??DATA)8??DATA *8??DATAp*8??DATA*8??DATA+8??DATA`+8??DATA+8??DATA,8??DATAP,8??DATA,8??DATA,8??DATA@-8??DATA-8??DATA-8??DATA0.8??DATA.8??DATA.8??DATA /8??DATAp/8??DATA/8??DATA08??DATA`08??DATA08??DATA18??DATAP18??DATA18??DATA18??DATA@28??DATA28??DATA28??DATA038???DATA38???DATA38???DATAP48???DATA48???DATA58???DATAp58???DATA58???DATA068???DATA68???DATA68???DATAP78???DATA78???DATA88???DATAp88???DATA88???DATA098???DATA98???DATA98???DATAP:8???DATA:8???DATA;8???DATAp;8???DATA;8???DATA0<8???DATA<8???DATA<8???DATAP=8???DATA=8???DATA>8???DATAp>8???DATA>8???DATA0?8???DATA?8???DATA?8???DATAP@8???DATA@8???DATAA8???DATApA8???DATAA8???DATA0B8???DATAB8???DATAB8???DATAPC8???DATAC8???DATAD8??DATA`D8??DATAD8??DATAE8??DATAPE8??DATAE8??DATAE8??DATA@F8??DATAF8??DATAF8??DATA0G8??DATAG8??DATAG8??DATA H8??DATApH8??DATAH8???DATA I8???DATAI8???DATAI8???DATA@J8???DATAJ8???DATAK8???DATA`K8???DATAK8???DATA L8???DATAL8???DATAL8???DATA@M8???DATAM8???DATAN8???DATA`N8???DATAN8???DATA O8???DATAO8???DATAO8???DATA@P8???DATAP8???DATAQ8???DATA`Q8???DATAQ8???DATA R8???DATAR8???DATAR8???DATA@S8???DATAS8???DATAT8???DATA`T8???DATAT8???DATA U8???DATAU8???DATAU8???DATA@V8???DATAV8???DATAW8???DATA`W8???DATAW8???DATA X8???DATAX8???DATAX8???DATA@Y8???DATAY8??DATAY8??DATA@Z8??DATAZ8??DATAZ8??DATA0[8??DATA[8??DATA[8??DATA \8??DATAp\8??DATA\8??DATA]8??DATA`]8??DATA]8??DATA^8??DATAP^8?DATA^8?DATA^8?DATA@_8?DATA_8?DATA_8?DATA0`8?DATA`8?DATA`8?DATA a8?DATApa8?DATAa8?DATAb8?DATA`b8?DATAb8?DATAc8?DATAPc8?DATAc8?DATAc8?DATA@d8?DATAd8?DATAd8?DATA0e8?DATAe8?DATAe8?DATA f8?DATApf8?DATAf8?DATAg8?DATA`g8?DATAg8?DATAh8?DATAPh8?DATAh8?DATAh8?DATA@i8?DATAi8?DATAi8?DATA0j8?DATAj8?DATAj8?DATA k8?DATApk8?DATAk8?DATAl8?DATA`l8?DATAl8?DATAm8?DATAPm8?DATAm8?DATAm8?DATA@n8?DATAn8?DATAn8?DATA0o8?DATAo8?DATAo8?DATA p8?DATApp8?DATAp8?DATAq8?DATA`q8?DATAq8?DATAr8?DATAPr8?DATAr8?DATAr8?DATA@s8?DATAs8?DATAs8?DATA0t8?DATAt8?DATAt8?DATA8?DATA8?DATA`8?DATA8?DATA8?DATAP8?DATA8?DATA8?DATA@8?DATA8?DATA8?DATA08?DATA8?DATA8?DATA 8?DATAp8?DATA8?DATA8?DATA`8?DATA8?DATA8?DATAP8?DATA8?DATA8?DATA@8?DATA8?DATA8?DATA08?DATA8?DATA8?DATA 8?DATAp8?DATA8?DATA8?DATA`8?DATA8?DATA8?DATAP8?DATA8?DATA8?DATA@8?DATA8?DATA8?DATA0 8?DATA 8?DATA 8?DATA 8?DATAp 8???DATA 8???DATA0 8???DATA 8???DATA 8???DATAP 8???DATA 8???DATA 8???DATAp 8???DATA 8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA 8???DATA` 8???DATA 8???DATA !8???DATA!8???DATA!8???DATA@"8???DATA"8???DATA#8???DATA`#8???DATA#8???DATA $8???DATA$8???DATA$8???DATA@%8???DATA%8???DATA&8???DATA`&8???DATA&8???DATA '8???DATA'8???DATA'8???DATA@(8???DATA(8???DATA)8???DATA`)8???DATA)8???DATA *8???DATA*8???DATA*8???DATA@+8???DATA+8???DATA,8???DATA`,8???DATA,8???DATA -8???DATA-8???DATA-8???DATA@.8???DATA.8???DATA/8???DATA`/8???DATA/8???DATA 08???DATA08???DATA08??DATA018??DATA18??DATA18??DATA 28??DATAp28??DATA28??DATA38??DATA`38??DATA38??DATA48??DATAP48??DATA48??DATA48??DATA@58??DATA58?DATA58?DATA068?DATA68?DATA68?DATA 78?DATAp78?DATA78?DATA88?DATA`88?DATA88?DATA98?DATAP98?DATA98?DATA98?DATA@:8?DATA:8?DATA:8?DATA0;8?DATA;8?DATA;8?DATA <8?DATAp<8?DATA<8?DATA=8?DATA`=8?DATA=8?DATA>8?DATAP>8?DATA>8?DATA>8?DATA@?8?DATA?8?DATA?8?DATA0@8?DATA@8?DATA@8?DATA A8?DATApA8?DATAA8?DATAB8?DATA`B8?DATAB8?DATAC8?DATAPC8?DATAC8?DATAC8?DATA@D8?DATAD8?DATAD8?DATA0E8?DATAE8?DATAE8?DATA F8?DATApF8?DATAF8?DATAG8?DATA`G8?DATAG8?DATAH8?DATAPH8?DATAH8?DATAH8?DATA@I8?DATAI8?DATAI8?DATA0J8?DATAJ8?DATAJ8?DATA K8?DATApK8?DATAK8?DATAL8?DATA`L8?DATAL8?DATAM8?DATAPM8?DATAM8?DATAM8?DATA@N8?DATAN8?DATAN8?DATA0O8?DATAO8?DATAO8?DATA P8?DATApP8?DATAP8?DATAQ8?DATA`Q8?DATAQ8?DATAR8?DATAPR8?DATAR8?DATAR8?DATA@S8?DATAS8?DATAS8?DATA0T8?DATAT8?DATAT8?DATA U8?DATApU8?DATAU8?DATAV8?DATA`V8?DATAV8?DATAW8?DATAPW8?DATAW8?DATAW8?DATA@X8?DATAX8?DATAX8?DATA0Y8?DATAY8?DATAY8?DATA Z8?DATApZ8?DATAZ8?DATA[8???DATAp[8???DATA[8???DATA0\8???DATA\8???DATA\8???DATAP]8???DATA]8???DATA^8???DATAp^8???DATA^8???DATA0_8???DATA_8???DATA_8???DATAP`8???DATA`8???DATAa8???DATApa8???DATAa8???DATA0b8???DATAb8???DATAb8???DATAPc8???DATAc8???DATAd8???DATApd8???DATAd8???DATA0e8???DATAe8???DATAe8???DATAPf8???DATAf8???DATAg8???DATApg8???DATAg8???DATA0h8???DATAh8???DATAh8???DATAPi8???DATAi8???DATAj8???DATApj8???DATAj8???DATA0k8???DATAk8???DATAk8??DATA@l8??DATAl8??DATAl8??DATA0m8??DATAm8??DATAm8??DATA n8??DATApn8??DATAn8??DATAo8??DATA`o8??DATAo8??DATAp8??DATAPp8??DATAp8??DATAp8??DATA@q8??DATAq8??DATAq8??DATA0r8??DATAr8??DATAr8??DATA s8??DATAps8??DATAs8??DATAt8??DATA`t8??DATAt8??DATAu8??DATAPu8??DATAu8??DATAu8??DATA@v8??DATAv8??DATAv8??DATA0w8??DATAw8??DATAw8??DATA x8??DATApx8??DATAx8??DATAy8??DATA`y8??DATAy8??DATAz8??DATAPz8??DATAz8??DATAz8??DATA@{8??DATA{8??DATA{8??DATA0|8??DATA|8??DATA|8??DATA }8??DATAp}8??DATA}8??DATA~8??DATA`~8??DATA~8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAЁ8??DATA 8??DATAp8??DATA8??DATA8??DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8??DATA8??DATA8??DATA08??DATA8??DATAЕ8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAК8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAП8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAФ8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAЩ8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAЮ8??DATA 8??DATAp8??DATA8??DATA8??DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA@T8???DATAT8???DATAU8???DATA`U8???DATAU8???DATA V8???DATAV8???DATAV8???DATA@W8???DATAW8???DATAX8???DATA`X8???DATAX8???DATA Y8???DATAY8???DATAY8???DATA@Z8???DATAZ8???DATA[8???DATA`[8???DATA[8???DATA \8???DATA\8???DATA\8???DATA@]8???DATA]8???DATA^8???DATA`^8???DATA^8???DATA _8???DATA_8???DATA_8???DATA@`8???DATA`8???DATAa8???DATA`a8???DATAa8???DATA b8???DATAb8???DATAb8???DATA@c8??DATAc8??DATAc8??DATA0d8??DATAd8??DATAd8??DATA e8??DATApe8??DATAe8??DATAf8??DATA`f8??DATAf8??DATAg8??DATAPg8??DATAg8??DATAg8??DATA@h8??DATAh8??DATAh8??DATA0i8??DATAi8??DATAi8??DATA j8??DATApj8??DATAj8??DATAk8??DATA`k8??DATAk8??DATAl8??DATAPl8??DATAl8??DATAl8??DATA@m8??DATAm8??DATAm8??DATA0n8??DATAn8??DATAn8??DATA o8??DATApo8??DATAo8??DATAp8??DATA`p8??DATAp8??DATAq8??DATAPq8???DATAq8???DATAr8???DATApr8???DATAr8???DATA0s8???DATAs8???DATAs8???DATAPt8???DATAt8???DATAu8???DATApu8???DATAu8???DATA0v8???DATAv8???DATAv8??DATA@w8??DATAw8??DATAw8??DATA0x8??DATAx8??DATAx8??DATA y8??DATApy8??DATAy8??DATAz8??DATA`z8??DATAz8??DATA{8??DATAP{8??DATA{8??DATA{8??DATA@|8??DATA|8??DATA|8??DATA0}8??DATA}8??DATA}8??DATA ~8??DATAp~8??DATA~8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAЂ8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAй8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAо8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8??DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8???DATA0ѡ8???DATAѡ8???DATAѡ8???DATAPѡ8???DATAѡ8???DATAѡ8???DATApѡ8???DATAѡ8???DATA0ѡ8???DATAѡ8???DATAѡ8???DATAPѡ8???DATAѡ8???DATAѡ8???DATApѡ8??DATAѡ8??DATAѡ8??DATA`ѡ8??DATAѡ8??DATAѡ8??DATAPѡ8??DATAѡ8??DATAѡ8??DATA@ѡ8??DATAѡ8??DATAѡ8??DATA0ѡ8??DATAѡ8??DATAѡ8??DATA ѡ8???DATAѡ8???DATAѡ8???DATA@ѡ8???DATAѡ8???DATAѡ8???DATA`ѡ8???DATAѡ8???DATA ѡ8???DATAѡ8???DATAѡ8???DATA@ҡ8???DATAҡ8???DATAҡ8???DATA`ҡ8???DATAҡ8??DATAҡ8??DATA`ҡ8??DATAҡ8??DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAҡ8??DATA ҡ8??DATApҡ8???DATAҡ8???DATA0ҡ8???DATAҡ8???DATAҡ8???DATAPҡ8???DATAҡ8???DATA ҡ8???DATAp ҡ8???DATA ҡ8???DATA0 ҡ8???DATA ҡ8???DATA ҡ8???DATAP ҡ8???DATA ҡ8???DATA ҡ8??DATA` ҡ8??DATA ҡ8??DATA ҡ8??DATAP ҡ8??DATA ҡ8??DATA ҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAҡ8??DATA ҡ8??DATApҡ8??DATAҡ8???DATA ҡ8???DATAҡ8???DATAҡ8???DATA@ҡ8???DATAҡ8???DATAҡ8???DATA`ҡ8???DATAҡ8???DATA ҡ8???DATAҡ8???DATAҡ8???DATA@ҡ8???DATAҡ8???DATAҡ8???DATA`ҡ8??DATAҡ8??DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAҡ8??DATA ҡ8??DATApҡ8??DATAҡ8??DATAҡ8???DATApҡ8???DATAҡ8???DATA0ҡ8???DATAҡ8???DATAҡ8???DATAPҡ8???DATAҡ8???DATAҡ8???DATApҡ8???DATAҡ8???DATA0ҡ8???DATAҡ8???DATAҡ8???DATAP ҡ8???DATA ҡ8??DATA!ҡ8??DATAP!ҡ8??DATA!ҡ8??DATA!ҡ8??DATA@"ҡ8??DATA"ҡ8??DATA"ҡ8??DATA0#ҡ8??DATA#ҡ8??DATA#ҡ8??DATA $ҡ8??DATAp$ҡ8??DATA$ҡ8??DATA%ҡ8??DATA`%ҡ8???DATA%ҡ8???DATA &ҡ8???DATA&ҡ8???DATA&ҡ8???DATA@'ҡ8???DATA'ҡ8???DATA(ҡ8???DATA`(ҡ8???DATA(ҡ8???DATA )ҡ8???DATA)ҡ8???DATA)ҡ8???DATA@*ҡ8???DATA*ҡ8???DATA+ҡ8??DATAP+ҡ8??DATA+ҡ8??DATA+ҡ8??DATA@,ҡ8??DATA,ҡ8??DATA,ҡ8??DATA0-ҡ8??DATA-ҡ8??DATA-ҡ8??DATA .ҡ8??DATAp.ҡ8??DATA.ҡ8??DATA/ҡ8??DATA`/ҡ8??DATA/ҡ8??DATA0ҡ8??DATAP0ҡ8??DATA0ҡ8??DATA0ҡ8??DATA@1ҡ8??DATA1ҡ8??DATA1ҡ8??DATA02ҡ8??DATA2ҡ8??DATA2ҡ8??DATA 3ҡ8??DATAp3ҡ8??DATA3ҡ8??DATA4ҡ8??DATA`4ҡ8??DATA4ҡ8??DATA5ҡ8??DATAP5ҡ8??DATA5ҡ8??DATA5ҡ8??DATA@6ҡ8??DATA6ҡ8??DATA6ҡ8??DATA07ҡ8??DATA7ҡ8??DATA7ҡ8??DATA 8ҡ8??DATAp8ҡ8??DATA8ҡ8??DATA9ҡ8???DATAp9ҡ8???DATA9ҡ8???DATA0:ҡ8???DATA:ҡ8???DATA:ҡ8???DATAP;ҡ8???DATA;ҡ8???DATA<ҡ8???DATAp<ҡ8???DATA<ҡ8???DATA0=ҡ8???DATA=ҡ8???DATA=ҡ8???DATAP>ҡ8???DATA>ҡ8??DATA?ҡ8??DATAP?ҡ8??DATA?ҡ8??DATA?ҡ8??DATA@@ҡ8??DATA@ҡ8??DATA@ҡ8??DATA0Aҡ8??DATAAҡ8??DATAAҡ8??DATA Bҡ8??DATApBҡ8??DATABҡ8??DATACҡ8??DATA`Cҡ8???DATACҡ8???DATA Dҡ8???DATADҡ8???DATADҡ8???DATA@Eҡ8???DATAEҡ8???DATAFҡ8???DATA`Fҡ8???DATAFҡ8???DATA Gҡ8???DATAGҡ8???DATAGҡ8???DATA@Hҡ8???DATAHҡ8???DATAIҡ8??DATAPIҡ8??DATAIҡ8??DATAIҡ8??DATA@Jҡ8??DATAJҡ8??DATAJҡ8??DATA0Kҡ8??DATAKҡ8??DATAKҡ8??DATA Lҡ8??DATApLҡ8??DATALҡ8??DATAMҡ8??DATA`Mҡ8??DATAMҡ8???DATANҡ8???DATApNҡ8???DATANҡ8???DATA0Oҡ8???DATAOҡ8???DATAOҡ8???DATAPPҡ8???DATAPҡ8???DATAQҡ8???DATApQҡ8???DATAQҡ8???DATA0Rҡ8???DATARҡ8???DATARҡ8???DATAPSҡ8??DATASҡ8??DATASҡ8??DATA@Tҡ8??DATATҡ8??DATATҡ8??DATA0Uҡ8??DATAUҡ8??DATAUҡ8??DATA Vҡ8??DATApVҡ8??DATAVҡ8??DATAWҡ8??DATA`Wҡ8??DATAWҡ8??DATAXҡ8??DATAPXҡ8??DATAXҡ8??DATAXҡ8??DATA@Yҡ8??DATAYҡ8??DATAYҡ8??DATA0Zҡ8??DATAZҡ8??DATAZҡ8??DATA [ҡ8??DATAp[ҡ8??DATA[ҡ8??DATA\ҡ8??DATA`\ҡ8??DATA\ҡ8??DATA]ҡ8??DATAP]ҡ8??DATA]ҡ8??DATA]ҡ8??DATA@^ҡ8??DATA^ҡ8??DATA^ҡ8??DATA0_ҡ8??DATA_ҡ8??DATA_ҡ8??DATA `ҡ8??DATAp`ҡ8??DATA`ҡ8??DATAaҡ8??DATA`aҡ8??DATAaҡ8??DATAbҡ8??DATAPbҡ8??DATAbҡ8??DATAbҡ8??DATA@cҡ8??DATAcҡ8??DATAcҡ8??DATA0dҡ8??DATAdҡ8??DATAdҡ8??DATA eҡ8??DATApeҡ8??DATAeҡ8??DATAfҡ8??DATA`fҡ8??DATAfҡ8??DATAgҡ8??DATAPgҡ8??DATAgҡ8??DATAgҡ8??DATA@hҡ8??DATAhҡ8??DATAhҡ8??DATA0iҡ8??DATAiҡ8??DATAiҡ8??DATA jҡ8??DATApjҡ8??DATAjҡ8???DATA kҡ8???DATAkҡ8???DATAkҡ8???DATA@lҡ8???DATAlҡ8???DATAmҡ8???DATA`mҡ8???DATAmҡ8???DATA nҡ8???DATAnҡ8???DATAnҡ8???DATA@oҡ8???DATAoҡ8???DATApҡ8???DATA`pҡ8??DATApҡ8??DATAqҡ8??DATAPqҡ8??DATAqҡ8??DATAqҡ8??DATA@rҡ8??DATArҡ8??DATArҡ8??DATA0sҡ8??DATAsҡ8??DATAsҡ8??DATA tҡ8??DATAptҡ8??DATAtҡ8??DATAuҡ8???DATApuҡ8???DATAuҡ8???DATA0vҡ8???DATAvҡ8???DATAvҡ8???DATAPwҡ8???DATAwҡ8???DATAxҡ8???DATApxҡ8???DATAxҡ8???DATA0yҡ8???DATAyҡ8???DATAyҡ8???DATAPzҡ8???DATAzҡ8??DATA{ҡ8??DATAP{ҡ8??DATA{ҡ8??DATA{ҡ8??DATA@|ҡ8??DATA|ҡ8??DATA|ҡ8??DATA0}ҡ8??DATA}ҡ8??DATA}ҡ8??DATA ~ҡ8??DATAp~ҡ8??DATA~ҡ8??DATAҡ8??DATA`ҡ8???DATAҡ8???DATA ҡ8???DATAҡ8???DATAҡ8???DATA@ҡ8???DATAҡ8???DATAҡ8???DATA`ҡ8???DATAҡ8???DATA ҡ8???DATAҡ8???DATAҡ8???DATA@ҡ8???DATAҡ8???DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAЇҡ8??DATA ҡ8??DATApҡ8??DATAҡ8??DATAҡ8??DATA`ҡ8??DATAҡ8??DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAЌҡ8??DATA ҡ8??DATApҡ8??DATAҡ8??DATAҡ8??DATA`ҡ8??DATAҡ8??DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAБҡ8??DATA ҡ8??DATApҡ8??DATAҡ8??DATAҡ8???DATApҡ8???DATAГҡ8???DATA0ҡ8???DATAҡ8???DATAҡ8???DATAPҡ8???DATAҡ8???DATAҡ8???DATApҡ8???DATAЖҡ8???DATA0ҡ8???DATAҡ8???DATAҡ8???DATAPҡ8???DATAҡ8??DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAЛҡ8??DATA ҡ8??DATApҡ8??DATAҡ8??DATAҡ8??DATA`ҡ8???DATAҡ8???DATA ҡ8???DATAҡ8???DATAҡ8???DATA@ҡ8???DATAҡ8???DATAҡ8???DATA`ҡ8???DATAҡ8???DATA ҡ8???DATAҡ8???DATAҡ8???DATA@ҡ8???DATAҡ8???DATAҡ8??DATAPҡ8??DATAҡ8??DATAҡ8??DATA@ҡ8??DATAҡ8??DATAҡ8??DATA0ҡ8??DATAҡ8??DATAХҡ8??DATA ҡ8??DATApҡ8??DATAҡ8??DATAҡ8??DATAp8??DATAp8???DATA@q8???DATAq8???DATAr8???DATA`r8???DATAr8???DATA s8???DATAs8???DATAs8???DATA@t8???DATAt8???DATAu8???DATA`u8???DATAu8???DATA v8???DATAv8??DATAv8??DATA w8??DATApw8??DATAw8??DATAx8??DATA`x8??DATAx8??DATAy8??DATAPy8??DATAy8??DATAy8??DATA@z8??DATAz8??DATAz8??DATA0{8???DATA{8???DATA{8???DATAP|8???DATA|8???DATA}8???DATAp}8???DATA}8???DATA0~8???DATA~8???DATA~8???DATAP8???DATA8???DATA8???DATAp8???DATAЀ8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAЏ8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAВ8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAЙ8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAО8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAЭ8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAа8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAз8??DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP 8???DATA 8???DATA 8???DATAp 8???DATA 8???DATA0 8???DATA 8???DATA 8???DATAP 8???DATA 8???DATA 8???DATAp 8???DATA 8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA0 8???DATA 8???DATA 8???DATAP!8???DATA!8???DATA"8???DATAp"8???DATA"8???DATA0#8???DATA#8???DATA#8???DATAP$8???DATA$8???DATA%8???DATAp%8???DATA%8???DATA0&8???DATA&8???DATA&8???DATAP'8???DATA'8???DATA(8???DATAp(8???DATA(8???DATA0)8???DATA)8???DATA)8???DATAP*8???DATA*8???DATA+8???DATAp+8???DATA+8???DATA0,8???DATA,8???DATA,8???DATAP-8???DATA-8???DATA.8???DATAp.8???DATA.8???DATA0/8???DATA/8???DATA/8???DATAP08???DATA08???DATA18???DATAp18???DATA18???DATA028???DATA28???DATA28???DATAP38???DATA38???DATA48???DATAp48???DATA48???DATA058???DATA58???DATA58???DATAP68???DATA68???DATA78???DATAp78???DATA78???DATA088???DATA88???DATA88???DATAP98???DATA98???DATA:8???DATAp:8???DATA:8???DATA0;8???DATA;8???DATA;8???DATAP<8???DATA<8???DATA=8???DATAp=8???DATA=8???DATA0>8??DATA>8??DATA>8??DATA ?8??DATAp?8??DATA?8??DATA@8??DATA`@8??DATA@8??DATAA8??DATAPA8??DATAA8??DATAA8??DATA@B8??DATAB8??DATAB8???DATA@C8???DATAC8???DATAD8???DATA`D8???DATAD8???DATA E8???DATAE8???DATAE8???DATA@F8???DATAF8???DATAG8???DATA`G8???DATAG8???DATA H8???DATAH8??DATAH8??DATA I8??DATApI8??DATAI8??DATAJ8??DATA`J8??DATAJ8??DATAK8??DATAPK8??DATAK8??DATAK8??DATA@L8??DATAL8??DATAL8??DATA0M8???DATAM8???DATAM8???DATAPN8???DATAN8???DATAO8???DATApO8???DATAO8???DATA0P8???DATAP8???DATAP8???DATAPQ8???DATAQ8???DATAR8???DATApR8???DATAR8???DATA0S8???DATAS8???DATAS8???DATAPT8???DATAT8???DATAU8???DATApU8???DATAU8???DATA0V8???DATAV8???DATAV8???DATAPW8???DATAW8???DATAX8???DATApX8???DATAX8???DATA0Y8???DATAY8???DATAY8???DATAPZ8???DATAZ8???DATA[8???DATAp[8???DATA[8???DATA0\8???DATA\8???DATA\8???DATAP]8???DATA]8???DATA^8???DATAp^8???DATA^8???DATA0_8???DATA_8???DATA_8???DATAP`8???DATA`8???DATAa8???DATApa8???DATAa8???DATA0b8???DATAb8???DATAb8???DATAPc8???DATAc8???DATAd8???DATApd8???DATAd8???DATA0e8???DATAe8???DATAe8???DATAPf8???DATAf8???DATAg8???DATApg8???DATAg8???DATA0h8???DATAh8???DATAh8???DATAPi8??DATAi8??DATAi8??DATA@j8??DATAj8??DATAj8??DATA0k8??DATAk8??DATAk8??DATA l8??DATApl8??DATAl8??DATAm8??DATA`m8??DATAm8??DATAn8???DATA`n8???DATAn8???DATA o8???DATAo8???DATAo8???DATA@p8???DATAp8???DATAq8???DATA`q8???DATAq8???DATA r8???DATAr8???DATAr8???DATA@s8???DATAs8??DATAs8??DATA@t8??DATAt8??DATAt8??DATA0u8??DATAu8??DATAu8??DATA v8??DATApv8??DATAv8??DATAw8??DATA`w8??DATAw8??DATAx8??DATAPx8??DATAx8??DATAx8??DATA@y8??DATAy8??DATAy8??DATA0z8??DATAz8??DATAz8??DATA {8??DATAp{8??DATA{8??DATA|8??DATA`|8??DATA|8??DATA}8???DATA`}8???DATA}8???DATA ~8???DATA~8???DATA~8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAЄ8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8???DATA8???DATA8???DATAp8???DATAЈ8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAЋ8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAЎ8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAБ8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAД8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAЗ8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAК8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAН8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAР8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAЧ8??DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAб8??DATA 8??DATAp8???DATAв8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAе8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAи8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAл8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAо8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATAz8???DATA`z8???DATAz8???DATA {8???DATA{8???DATA{8???DATA@|8???DATA|8???DATA}8???DATA`}8???DATA}8???DATA ~8???DATA~8???DATA~8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8??DATA08??DATA8??DATAЗ8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA𚢠8??DATA@8??DATA8???DATA𛢠8???DATAP8???DATA8???DATA8???DATAp8???DATAН8???DATA08???DATA8???DATA𞢠8???DATAP8???DATA8???DATA8???DATAp8???DATAР8???DATA08??DATA8??DATAС8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA𤢠8??DATA@8??DATA8??DATAॢ8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATAਢ8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATAૢ8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA஢8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATAౢ8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATAഢ8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA෢8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8???DATA`8???DATA8???DATA 8???DATA8???DATA8???DATA@8???DATA8???DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8???DATA8???DATA8???DATAp8???DATA8???DATA08???DATA8???DATA8???DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATAh*DATA7!<"=">"?"@"A"B"C"D"E"F"G"H"I"J"w"x"y"z"{"|"}"~"""""""""""""""""""""""w"x"y"z"{"|"}"~""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""<"=">"?"@"A"B"C"D"E"F"G"H"I"J """"""""""""""" " " " " """""""""""" " " " """"""""""""""""""" "!"""#"$"%"&"'"""""""" "!"""#"$"%"&"'"(")"*"+","-"."/"0"1"2"3"4"5"6"(")" *"!+"","#-"$."%/"&0"'1"(2")3"*4"+5",6"7"8"9":";"<"=">"?"@"A"B"C"D"E"7"8"9":";"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N" O" P" Q" R" S"T"F"G"H"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o"p"q"r"Kd"Le"Mf"Ng"Oh"Pi"Qj"Rk"Sl"Tm"Un"Vo"Wp"Xq"Yr"s"t"u"v"w"x"y"z"{"|"}"~""""s"t"u"v"w"x"y"z"{"|"}"~"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""K"L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c"d"e"f"g"h""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " " """""""""" " " " " """"""""""""" " " " """"""""""""""""""""""""""""""" """""""""""""""Z"["\"]"^"_"`"a"b"c"d"e"f"g"h" """"""""""""""" " " " " """"""""""" " " " "  "!"""#"$"%"&"'"(")"*""""" "!"""#"$ "%!"&""'#"($")%"*&"-"."/"0"1"2"3"4"5 "6!"7""8#"9$":%";&"'"(")"*"+","-"."/"0"1"2"3"4"5"+'",("-)".*"/+"0,"1-"2."3/"40"51"62"73"84"95"i6"j7"k8"l9"m:"n;"o<"p="q>"r?"s@"tA"uB"vC"wD"+6",7"-8".9"/:"0;"1<"2="3>"4?"5@"6A"7B"8C"9D"E"F"G"H"I"J"K"L"M"N"O"P"Q"R"S":E";F"<G"=H">I"?J"@K"AL"BM"CN"DO"EP"FQ"GR"HS":T";U"<V"=W">X"?Y"@Z"A["B\"C]"D^"E_"F`"Ga"Hb"T"U" V"!W""X"#Y"$Z"%["&\"']"(^")_"*`"+a",b"ic"jd"ke"lf"mg"nh"oi"pj"qk"rl"sm"tn"uo"vp"wq"Ic"Jd"Ke"Lf"Mg"Nh"Oi"Pj"Qk"Rl"Sm"Tn"Uo"Vp"Wq"r"s"t"u"v"w"x"y"z"{"|"}"~"""Ir"Js"Kt"Lu"Mv"Nw"Ox"Py"Qz"R{"S|"T}"U~"V"W""""""""""""""""X"Y"Z"["\"]"^"_"`"a"b"c"d"e"f"X"Y"Z"["\"]"^"_"`"a"b"c"d"e"f"-"."/"0"1"2"3"4"5"6"7"8"9":";"x"y"z"{"|"}"~"    """"g h i j"k"l"m"n o p q r s"t"u""""""""""" " " " " "g"h"i"j"k"l"m"n"o"p"q"r"s"t"u""""""""""" " " " "  v"w"x"y"z"{"|"}"~"""""" i"j"k"l"m"n"o"p"q"r"s"t"u"v"w"v"w"x"y"z"{"|"}"~""""   x"y"z"{"|"}"~""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Z"[ "\ "] "^ "_ "`"a"b"c"d"e"f"g"h"" " " " " """"""""""    ! " # $ % &  '! (" )# *$ +%""""""""    !"""#"$"%"x&"y'"z("{)"|*"}+"~, - . / 0 1"2"3"4"& ' ( ) * + , - . / 0 1 2 3 4 5"6"7" 8 !9 ": #; $< %= &> '? (@ )A *B +C 5 6"7"8"9":";"<"= > ? @ A B C D"E"F"G H I J"K"L"M"N"O"P"Q"R"KD"LE"MF"NG"OH"PI"QJ"RK"SL"TM"UN"VO WP"XQ"YR"xS"yT"zU"{V"|W"}X"~Y"Z"["\"]"^"_"`"a"S T"U"V"W"X"Y"Z"["\"]"^"_"`"a",b"-c".d"/e"0f"1g"2h"3i"4j"5k"6l"7m"8n"9o":p"b"c"d"e"f"g"h"i"j"k"l"m"n"o"p <q"=r">s"?t"@u"Av"Bw"Cx"Dy"Ez"F{"G|"H}"I~"J"q"r"s"t"u"v"w"x"y"z"{"|"}"~"","-"."/"0"1"2"3"4"5"6"7"8"9":"""""""""""""""""""      """""""""""""""""""" """""""  """"""; < = > ? @"A"B"C"D"E F G H I    """"""""" "" """""""""""  """""""""""""  "; < = >"?"@"A"B"C"D"E"F"G H"I"""         """"""""""""  "" " " """"""""""""" " " ";"<"=">"?"@"A"B"C"D"E"F"G"H"I""""""""""" " " " " " " """""""""""""" " """"""""""""" ;"<"=">"?"@"A"B"C"D"E"F"G H I""" " " "        """"          !  " # $ % & ' ( ) """"" "! " # $ %  &!"'""(#")$"J"K L M N"O"P Q R S T "U!"V""W#"X$"*% +& ,' -( .)"/*"0+"1,"2-"3."4/"50"61"72"83"%"& '"(")"*"+","-"."/"0"1"2"3"*4"+5",6"-7 .8"/9"0:"1;"2<"3="4>"5?"6@"7A"8B"J4"K5"L6"M7"N8"O9"P:"Q;"R<"S="T>"U?"V@"WA"XB"C D E F G H I J K L M N O P"Q 9C":D";E"<F"=G">H ?I @J AK BL CM DN EO FP"GQ"9R":S";T"<U"=V >W ?X @Y AZ B[ C\ D] E^ F_ G` JR"KS"LT"MU"NV"OW PX QY RZ S[ T\ U] V^ W_ X` a"b c d"!e""f"#g"$h"%i"&j"'k"(l")m"*n"+o"Ha Ib Jc"Kd"Le"Mf"Ng"Oh"Pi"Qj"Rk"Sl"Tm"Un"Vo"Hp"Iq"Jr Ks Lt"Mu"Nv"Ow"Px"Qy"Rz"S{"T|"U}"V~"Jp"Kq"Lr"Ms Nt Ou"Pv"Qw"Rx"Sy"Tz"U{"V|"W}"X~""""""""""""""""W"X"Y"Z"["\"]"^"_"`"a"b c d e Y"Z"["\"]"^"_"`"a"b"c"d"e"f g W"X"Y Z"["\"]"^"_"`"a"b"c d e    """""""  " " " "f"g"h"i"j"k"l"m"n"o"p"q"r s"t"Y"Z"["\"]"^"_"`"a"b"c"d"e"f"g f g"h"i"j"k"l"m"n"o"p"q"r s t"Y Z [ \ ] ^ _ ` a b c d e f g u"v"w"x"y"z"{"|"}"~"""""","-"."/"0"1"2 3 4 5 6 7 8"9":"u"v"w"x"y"z"{"|"}"~" """"Y"Z"["\"]"^"_"`"a"b"c"d"e"f"g """"""""""""""""""""""""""" """""""""""""""""h i j k l m n o p q r s "t u v "              , - . / 0 "1 2 3 4 5 6 7 8 9 : "               " " "  ! "" "# "$ "% "& "' "( ")! "*" "+# " "   " " " " " " " " "! "" "# "h$ i% j& "k' "l( "m) "n* "o+ "p, "q- "r. "s/ "t0 "u1 "v2 "$ % & ' "( ") "* "+ ", "- ". "/ "0 "1 "2 "h3 i4 j5 k6 l7 m8 n9 o: p; q< r= s> "t? "u@ "vA 3 4 5 6 7 8 9 ": "; < = > ? "@ "A "B "C "D "E "F "G "H I J K L M N O "P B "C "D "E "F "G "H "I J K L "M "N "O "P "hQ iR jS "kT "lU "mV "nW "oX "pY "qZ "r[ "s\ "t] "u^ "v_ "Q R S "T "U "V "W "X "Y "Z "[ "\ "] "^ "_ "` "a "b c d e "f "g "h "i "j "k "l "m "n "` "a "b "c d e "f "g "h "i "j "k "l "m "n "o p q r s t u v w x y z { | } Xo "Yp "Zq "[r \s ]t ^u "_v "`w ax "by "cz "d{ "e| "f} "~ " " " " " " " " " " " " " " "~ " " " "  "! "" "# "$ "% "& "' "( ") "* " " " " " " " " " " " " " " " "                " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "    " "          " " " " " "  " " " " " " " " " " " " " " "   " " " " " "  " " " " " " " "  " " " " " "                           " " "          " " " " " " "   "      " " " "  "  "  " " " " " " " " " " " " " " " "I "J "K "L "M "N "O "P "Q R "S "T "U "V "W " "   " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  "  " " " " " " " " " " " " " " " " " " " " " " " " " " "! "" "v "w "x "y "z "{ "| "} "~ " " " " "! "" "# "$ "% "& "' "( ") "* + , - . / " 0 " 1 " # $ % "& "' "( ") "* "+ ", "- ". "/ "0 1 2 "3 "4 "5 6 7 8 9 ": "; "< "= "> " ? " @ "2 "3 "4 "5 "6 "7 "8 "9 ": "; "< "= " > " ? " @ "A B C D E F G H I J K L M N O A B C D E F G H I J K L M N "O P "Q R S T U V W "X "Y "Z "[ "\ " ] " ^ "gP "hQ "iR "jS "kT "lU "mV "nW "oX "pY "qZ "r[ "s\ "t] "u^ " _ ` a b c d e f g h i j k l m _ ` a b c d e f g h "i j "k "l "m n " o " p "q r s t u v w x y z { | n "o "p "q r s t u v "w "x "y "z "{ "| " } ~           " " " "*} +~ , - . / 0 1 2 3 4 "5 "6 "7 "8  "  "  " "        " " " " " " " " "  "! " # "$ "% "& "' "( ") " " " "    ! " # $ % & ' ( * "+ ", "- ". / 0 1 2 3 4 5 "6 7 "8 "  " " " " "  "! "" "# "$ "% "& "' "( " "  " " " " " " " " "  "  "  "         ! " # $ % & ' "( "              " "   " " " "  "! "" "# "$ "% "& "' "( "9 : "; "< "= "> "? "@ "A "B "C "D "E "F "G "              " ") "* "+ ", "- ". "/ "0 1 2 3 4 5 6 "7 " " " " " "  "! "" # "$ "% "& "' "( ") ") "* "+ ", "- ". "/ "0 1 "2 "3 "4 "5 "6 "7 "H "I "J "K "L "M "N O P Q R S T U V ) "* "+ ", "- ". "/ "0 1 2 3 4 5 6 7     " " " " " " " " " " " ") * + , - ". "/ "0 "1 "2 "3 "4 "5 "6 "7 "8 9 : ; < = > ? @ A B C D E F! H I "J "K "L "M N O P Q R S "T "U "V! "8" 9# ":$ ";% "<& "=' ">( "?) "@* "A+ "B, "C- "D. "E/ "F0 "9" ":# ";$ "<% "=& ">' "?( "@) "A* "B+ "C, "D- "E. "F/ "G0 "81 92 :3 ;4 <5 =6 >7 ?8 @9 A: B; C< D= E> F? 1 "2 "3 "4 "5 "6 7 8 9 : ; < = > "? "8@ 9A ":B ";C "<D "=E ">F "?G "@H "AI "BJ "CK "DL "EM "FN "@ A B "C "D "E "F "G "H "I "J "K "L "M "N "GO HP IQ JR KS LT MU NV OW PX QY RZ S[ T\ U] +O ",P "-Q ".R "/S "0T "1U "2V "3W "4X "5Y "6Z "7[ "8\ "9] "G^ "H_ "I` "Ja "Kb "Lc "Md "Ne "Of "Pg "Qh "Ri "Sj "Tk "Ul "v^ "w_ "x` "ya "zb "{c "|d "}e "~f "g "h "i "j "k "l "Gm "Hn "Io "Jp "Kq "Lr "Ms "Nt "Ou "Pv "Qw "Rx "Sy "Tz "U{ "fm "gn "ho "ip "jq "kr "ls "mt "nu "ov "pw "qx "ry "sz "t{ "G| "H} "I~ "J "K "L "M "N "O "P "Q "R "S "T "U "W| "X} "Y~ "Z "[ "\ "] "^ "_ "` "a "b "c "d "e "V W "X "Y "Z "[ "\ "] "^ "_ "` "a "b "c "d "f "g "h "i "j "k "l "m "n "o "p "q "r "s "t "V "W "X "Y Z [ \ ] "^ "_ "` "a "b "c "d "g "h "i "j "k "l "m "n "o "p "q "r "s "t "u "V W X Y Z "[ "\ "] "^ "_ "` "a "b "c "d "      "         V W X Y "Z "[ "\ "] "^ _ ` "a "b "c "d "u v "w "x "y "z "{ "| "} ~  " " " " "e "f "g "h "i "j "k "l "m "n "o "p "q "r "s ": "; "< "= "> "? "@ "A "B C D E F G H e "f "g "h "i "j "k "l "m "n "o "p "q "r "s "W "X "Y "Z [ \ ] "^ "_ "` "a "b "c "d "e "e f g "h "i "j "k "l "m "n "o "p "q "r s  " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "e "f "g "h "i "j "k "l "m "n "o "p "q "r "s "t "u "v "w "x "y "z "{ "| "} "~ " " " " " " " " " " " " " " " " " " " "t u v w x "y "z "{ | "} "~ " " " " "u v w "x "y "z "{ "| "} "~ " " "  " "t! u" v# "w$ "x% "y& "z' "{( "|) }* ~+ , "- ". "/ "! "" # $ % & ' ( ) * + , - ". "/ "t0 "u1 v2 w3 x4 y5 "z6 "{7 "|8 "}9 "~: "; "< "= "> "0 "1 "2 3 4 5 "6 7 8 "9 ": "; "< "= "> "? "@ "A "B "C "D E "F G H I J K L M ? @ A B C D E F G H I J K L M "N O P Q R S T U V "W "X "Y "Z "[ "\ "N O P Q R S T U "V "W "X "Y "Z "[ "\ "] ^ _ ` a b c d e f g h i j k "] ^ _ ` a b c d e f g h i j "k "l m "n "o "p "q r "s t "u "v "w "x "y "z "l m n o p q r s t u "v "w "x "y "z "{ | } ~           " "{ | } ~             " " " " " " " " " " " " " " "  " " " " " " " " " " " " " " " " " " "        " " "                 " " " " " " " " " "      " " " " " " " " " " " "   " " " " " "   "   " " " "               " "   " " " "   " " " " " "         " " " " " " "  " " " " "          "   "            " " " " "    " " " " " " "w "x "y "z "{ "| "} ~  " " " " " " " " " " " " " " " "   " " " " " " " " " " " " " " "    " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "                "             " " ! "" "# "$ "% "& "' "( ") "* "+ ", "- ". " ! "" "# "$ "% "& "' "( ") "* "+ ", "- ". "/ "0 "1 "2 "3 "4 "5 "6 "7 "8 "9 ": "; "< "= "/ "0 "1 "2 "3 "4 "5 "6 " 7 "!8 "9 "#: "$; "%< "&= "~ /  0 1 2 3 4 5 " 6 " 7 8 9 : ; < = o / "p 0 "q 1 "r 2 "s 3 "t 4 "u 5 "v 6 "w 7 "x 8 y 9 "z : "{ ; "| < "} = "~ > " ? " @ " A " B " C " D " E " F G H I J K L > " ? " @ " A " B "C "D "E "F "G "H "I "J "K "L "> "? "@ "A "B "C D E "F "G "H "I "J "K "L " > " ? " @ " A " B " C " D " E " F " G " H " I " J " K " L "M "N "O "P Q R S T U V W X Y Z [ o M "p N "q O "r P "s Q "t R "u S "v T "w U "x V y W z X { Y | Z } [ M " N " O " P " Q " R " S " T " U " V " W " X " Y Z [ M "N "O "P "Q "R "S "T "U V W X Y "Z [ \ " ] " ^ " _ " ` " a " b " c " d " e " f " g " h " i " j " \ " ] " ^ " _ " ` " a " b " c " d " e " f " g " h " i " j "\ "] "^ "_ "` "a "b "c "d "e f g h i j \ ] ^ "_ "` "a "b "c "d "e "f "g "h "i "j "k "l "m "n "o "p "q "r "s "t "u "v "w "x "y "k "l "m "n "o "p "q "r "s "t "u "v "w "x "y " k " l m n o p " q r s t u v w x y k " l " m " n " o " p " q " r " s " t " u " v " w " x " y " z { | } ~  " " " " "z { "| "} "~ " " " " "   " " " "z { | } " ~ "  "    "  " " " " z " { " | " } " ~ "  " " " " "       " "  " " " " " " " " " " " " " " " " "         " " " " "   " " " " " " " " " " " " " " " "  " " " " " "      " " " " " " " " " " " " " "   " " "r "s "t "u "v "w "x "y "z "{ "| "} "~ " " " " " " " " " " "  " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "    " " " " " " " " " " " " " " "c "d "e "f "g "h "i "j "k "l "m "n "o "p "q " " " " " " " " " " " " " "  "    " " " " " " " "! "" " " " " " " " " " "       " " " " " " " " " " " " "! "" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "    " " " " " " " " " " " " " " " " " " " " " " " " " "   " " " " " " " " " "   "2 "3 "4 "5 "6 "7 "8 "9 ": "; "< "= "> "? "@ "# "$ "% "& "' "( ") "* "+ ", "- ". "/ "0 1 2 3 4 5 "6 "7 "8 "9 ": "; < = "> "? "@ " "   " " " " " " "   " ""              " A "B C D E F G "H I J K L M N O """"""""" " " " " """# "$ "% "& "' "( ") "* "+ ", "- ". "/ "0 "1  P "Q "R "S "T "U "V "W "X "Y "Z "[ "\ "] "^ """"""""" " " " "   "P  Q  R  S "T "U "V "W  X  Y  Z  [  \ "]  ^  A  B  C  D "E "F "G "H  I  J  K  L "M "N "O     "           """""""""     ""   ! " # $ % & '"(") * + , - " "!"""#"$"%"&"'"(")"*"+", - n "o  p ! q " r # s $ t % u & v ' w ( x ) y * z + { , | -"_ "` "a !"b ""c #"d $"e %"f &"g '"h ("i )"j *"k +"l ,"m - n . o / p 0 q 1 r 2 s 3 t 4 u 5 v 6 w 7 x 8 y 9 z : { ; | < . / 0 1 2 3 4 5 6 7 8 9":";"<"%. &/ '0 (1 )2 *3 +4 ,5 -6 .7 /8 09 1:"2;"3<"} ."~ /" 0 1 2 3 4 5 6 7 8 9 : ; < =">"?"@"A"B C D E F G H"I"J"K"_ ="` >"a ?"b @"c A"d B"e C"f D"g E"h F"i G"j H"k I"l J"m K" = > ? @ A B C D E F G H I J K"=">" ?" @" A" B" C"D"E"F"G"H"I"J"K L M" N" O" P" Q" R S T" U" V" W" X" Y" Z"} L"~ M" N" O P" Q R" S" T" U" V" W" X" Y" Z"4L 5M 6N 7O 8P 9Q :R ;S <T =U >V ?W"@X"AY"BZ"L"M"N"O"P"Q R S"T"U" V"!W""X"#Y"$Z"%["&\"']"(^")_"*`"+a ,b -c .d /e 0f 1g 2h 3i ["\ ]"^"_"`"a"b"c"d"e"f"g"h"i" [" \" ]" ^" _" ` a b c" d" e f g h i" [ \" ]" ^" _" `" a" b" c" d" e" f" g" h" i" j k l m n o p q r s t u v" w" x j k l"m"n"o p q r s t u v"w"x"Fj Gk Hl Im Jn Ko Lp Mq Nr Os Pt Qu Rv Sw Tx j" k" l" m" n" o" p" q" r" s" t" u" v" w" x"4y"5z"6{"7|"8}"9~":"; < = > ?"@ A"B" y" z" { |" }" ~" " " " " " " " " " y" z" {" |" }" ~        " "Ry"Sz T{"U|"V}"W~"X"Y"Z"["\"]"^"_"`" " " " " " "       " " " " " " " " " " " " " " " " " "7 8 9 : ; < = > ?"@"A B C D"E"C"D"E"F"G"H"I"J"K"L M N"O"P"Q"""""""      """"" " " " " """""""                 " " " " " " " " " " " "  " " " " " " " "      " " " """""""  "" "!"""#"$"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~" " " " " " "  " " " " " " " ""  ""       "" " " " " " " " " " "    " "          "               &"'"(")"*"+","-"."/"0"1"2 3 4"                            " " " " " " " " " " " "a"b"c"d"e f g h i j k l m n o"   """""" "!"""#"$"%"p q r s t u v w x y z { | } ~ R S"T"U"V"W"X"Y"Z"["\"]"^"_"`""  #  $  %  &  '  (  )  *  +  ,  -  .  /  0     " " " " " " " " " " " " "! "" "# "$  %  &  '  (  )  *  +  ,  -  .  / "0 "C D"E"F"G"H I J K L M N O"P"Q"U V W X Y Z [ \ ] ^ _ ` a b c 1  2  3 "4 "5 "6  7  8  9  :  ;  <  =  >  ?  a"b"c"d"e"f"g"h i j k l m"n"o"   " " " " " " " " " " " " "! "@ "A "B "C "D "E "F "G "H "I  J  K "L "M "N "5"6 7"8"9":";"<"=">"?"@"A"B"C"@ "A "B "C "D "E "F "G "H "I "J "K "L "M "N "1  2 "3 "4 "5 "6 "7 "8 "9 ":  ;  < "= "> "? "d"e"f"g"h"i"j k l m  n  o  p  q "r"D E F"G"H"I J K L M  N  O  P "Q "R 6"7"8"9 :";"<"="> ? @ A B C D """"""""""     ^  _  `  a  b  c  d  e  f  g  h  i  j  k  l  O "P "Q "R "S "T "U "V "W "X "Y "Z  [  \  ] "^ "_ "` "a !"b ""c #"d $"e %"f &"g '"h ("i )"j *"k +"l ," " "!"""#"$"%"&"'"(")"*"+",""" "!"""#"$"%"&"'"(")"*"+","m  n "o "p !"q ""r #"s $"t %"u &"v '"w ("x )"y *"z +"{ ,"'-"(.")/"*0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; O -"P ."Q /"R 0"S 1"T 2"U 3"V 4"W 5 X 6 Y 7 Z 8 [ 9 \ : ] ; | - } . ~ /  0" 1" 2 3 4 5 6 7 8 9 : ; -"."/"0"1"2"3"4"5 6 7"8"9":";"| <"} ="~ >" ?" @" A" B" C" D" E" F" G" H" I" J"m < n = o > p ?"q @"r A"s B"t C"u D"v E"w F"x G"y H"z I"{ J"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"K"L"M"N O"P"Q"R"S"T"U"V"W"X"Y" K L M N O P" Q" R" S T U V W X Y K L M N O P" Q" R" S" T" U" V" W" X" Y" Z" [" \" ]" ^" _" `" a b c d e f" g" h"Z [ \ ]"^"_"`"a"b"c d e"f"g"h"SZ"T["U\"V]"W^"X_"Y`"Za [b \c ]d ^e _f"`g"ah" Z" [" \" ]" ^ _ ` a" b" c d e" f" g" h"i"j"k"l"m"n"o"p"q"r"s"t"u"v"w" i" j" k" l" m" n" o" p" q" r" s" t" u" v" w" i j" k" l m" n" o" p" q" r" s" t u v" w"i"j"k"l"m"n"o"p"q"r"s"t"u"v"w" x" y" z" {" |" }" ~" " " "  " " " " x" y" z" { | }" ~" " " "   " " "bx"cy"dz"e{"f|"g}"h~ i j k l m n"o"p"x y z {"|"}"~""""  """E"F"G"H"I"J"K"L"M"N"O"P"Q"R"S"""""""""""     " " " " " " "         " " " " " " " "   " " " " " " " " " " " " " " " " " "   """"""""""""""""""""""""""""""    " " " " " " " " " " " "T"U"V"W"X"Y"Z"["\"]"^"_"`"a"b" " " " " " " "  " " " " " " " " " " " " " " "          (")"*"+","-"."/ 0"1"2"3"4"5"6"   " " " " " " " " " " " "  " " " " " " " " " " " " " " """"""""""""""""""""""" "!"""#"$"%"&"'""""""""""""""""""""""""""""""  " " " " " " " " " " " " " " " " " " " " " " " " " " " " "   " " " " " " " " " "   " " " "  """"""""     "             "!  "  #  $ "% "& "' "( ") "* "+  ,  -  .  /  """""""""""""""   " " " " " " " " " " " "    0  1  2  3  4 "5 "6 "7  8  9  :  ;  < "= "> " " "    "   ""  ""0  1  2  3  4  5  6  7 "8  9  :  ;  < "= "> "!  "  #  $ "% "& "' "( ")  *  +  ,  - ". "/ "q"r"s"t"u"v"w x y"z"{ |"}"~"""" "" """  """ "S T U V W X Y Z [ \ ]  ^  _  `  a "& '"(")"*"+","-"."/"0 "1 "2  3  4 "N  O  P  Q  R  S  T  U  V  W  X  Y  Z  [  \  ?  @  A "B "C "D "E "F "G "H "I  J  K  L  M "N "O "P "Q "R "S "T "U "V  W "X "Y "Z "[ "\ "          ! ""#"$"%"                     " "! "" "# "] "^  _  `  a  b  c  d  e  f  g  h "i "j "k "b c d e  f! g" h# i$ j% k& l' m( n) o* p+ ? "@ "A "B "C !"D ""E #"F $"G %"H &"I '"J ( K ) L * M +"l  m  n  o  p ! q " r # s $ t % u & v ' w ( x ) y * z +  " " " " !" "" #" $" %" &" '" (" )  *  +"l , m - n . o / p 0"q 1"r 2"s 3 t 4 u 5 v 6"w 7"x 8"y 9"z : ] ,"^ -"_ ."` / a 0 b 1 c 2 d 3 e 4"f 5"g 6"h 7"i 8"j 9"k :"$ , % - & . ' / ( 0 ) 1 * 2 + 3 , 4 - 5 . 6 / 7"0 8 1 9 2 : , - . / 0 1"2 3 4 5" 6" 7" 8" 9" :" ;  <  =" >" ?  @  A  B  C  D  E F ! G " H # I"5;"6< 7="8>"9?":@";A"<B"=C">D"?E"@F"AG"BH"CI" ; < =" >" ? @" A" B" C D E F G H" I"{ ; | <"} ="~ >" ?" @" A" B" C" D" E" F" G" H" I" J K L M N O P Q" R" S T U V W X DJ"EK"FL"GM"HN"IO"JP KQ LR MS NT OU PV"QW"RX"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X" J" K" L" M" N" O" P Q R S T U V" W" X"$ Y % Z & [ ' \ ( ] ) ^ * _ + ` , a - b . c / d 0 e 1 f 2 g { Y | Z"} ["~ \" ]" ^" _" `" a" b" c" d" e" f" g" Y Z [ \ ] ^" _" `" a" b" c" d" e f g"3 Y 4 Z"5 ["6 \"7 ]"8 ^"9 _": `"; a"< b"= c"> d"? e"@ f"A g" h" i" j" k" l" m" n o p q r s t u" v" h i j k l" m n o p q" r s t u" v"h"i"j"k"l"m"n"o"p"q"r"s"t"u"v"B h C i D j E k F l G m H n I o J p K q"L r M s N t O u P v w x y z { | } ~    """" w  x" y" z" {" |" }" ~" " " " "     " w x y z { | } ~        w" x" y" z" {" |" }" ~" " " "    "             " " "   """"    " " " " "Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^  _       "   " " " " " " "q"r"s"t"u"v"w x y"z"{ | } ~ "  " " " " " " " " "     " " " " " " " "     " " " """""""""""""                  " " " " "    " " " " " " "` "a "b "c "d "e "f "g "h "i "j "k "l "m "n """""""  """""""Q "R "S "T "U  V  W "X "Y "Z  [  \ "] "^ "_ "3 "4 "5 "6 "7 "8 "9 ": "; "< "= "> "? "@ "A "                "  " " " " " " " " " " " " " " " " " " " " " " " " " " " " "        "B  C  D "E "F "G  H  I  J  K  L  M  N  O  P  s"t"u v w x y z { | } ~  "" " " " " " " "           " " "`  a  b  c "d "e  f  g  h  i  j  k "l "m "n " "  " " " " " " " " " " " " "  !  "  #  $  % "& "' "( ")  *  +  ,  -  .  " """"""""""""" "!  "  #  $  %  &  '  (  )  *  +  ,  - ". " " " " " " " " "       " " " "             "" """" "     "  '"(")"*"+","-"."/"0"1"2 "3 "4 "5 """""""""""" " " " """"""""""""""""+ ","-"."/"0"1"2"3"4"5"6"7"8"9" """"""""""" " " " "i j"k"l"m "n!"o""p#"q$"r%"s&"t'"u("v)"w*"+","-"." /"!0""1"#2"$3"%4"&5"'6"(7")8"*9"6+"7,"8-"9.":/";0"<1"=2">3"?4"@5"A6"B7"C8"D9" +","-"."/"0"1"2"3"4"5"6"7"8"9":";"<"=">"?"@"A"B"C"D"E"F"G"H"E:"F;"G<"H="I>"J?"K@"LA"MB"NC"OD"PE"QF"RG"SH":I";J"<K"=L">M"?N"@O"AP"BQ"CR"DS"ET"FU"GV"HW":I";J"<K =L >M ?N @O AP BQ CR DS ET FU GV HW IX"JY"KZ"L["M\"N]"O^"P_"Q`"Ra"Sb"Tc"Ud"Ve"Wf"TX UY VZ W[ X\ Y] Z^ [_ \` ]a ^b _c `d ae bf Xg"Yh"Zi"[j"\k"]l"^m"_n"`o"ap"bq"cr"ds"et"fu"g"h" i"!j""k"#l"$m"%n"&o"'p"(q")r"*s"+t",u"cv"dw"ex"fy"gz"h{"i|"j}"k~"l"m"n"o"p"q"v"w"x"y" z"!{""|"#}"$~"%"&"'"(")"*"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"v"w"x"y"z"{"|"}"~""""""""""            """""""""""""""r s"t"u"v"w"x"y"z"{"|"}"~""""""""""""""""""            "  """""""""""""""X"Y"Z"[ \ ] ^ _ ` a b c d"e"f""""""""""""""""   "       """""""""""""""""""-"."/"0"1"2"3"4"5"6"7"8"9":";"""""""""""""""#DATAhc *DATA>6-/ .0 /1 02 13 24 35 46  57 !68 "79 #8: $9; %:< &;= / ~ 0  1 2  3 !4 "5 #6 $ 7 %!8 &"9 '#: ($; )%< *&= / Xo 0 Yp 1 Zq 2 [r 3 \s 4 ]t 5 ^u 6 _v 7 `w 8 ax 9 by : cz ; d{ < e| = f} ~ / o  0 p  1 q  2 r  3 s  4 t  5 u  6 v  7 w  8 x  9 y  : z  ; {  < |  = }  ~ >   ?   @   A    B ! C " D # E $ F % G & H ' I ( J ) K * L  >  ?  @  A  B C D E F G H I J K L > ~  ?   @  A  B  C  D  E  F  G  H  I  J  K  L  > ? @ A B C D E F G H I J K L o XM p YN q ZO r [P s \Q t ]R u ^S v _T w `U x aV y bW z cX { dY | eZ } f[ o M p N q O r P s Q t R u S v T w U x V y W z X { Y | Z } [ M N O P Q R S T U V W X Y Z [  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  [   \   ]   ^   _   `   a   b   c   d   e   f   g   h   i   j  \  ]  ^  _  `  a  b  c  d  e  f  g  h  i  j \ ] ^ _ ` a b c d e f g h i j \ ;] <^ =_ >` ?a @b Ac Bd Ce Df Eg Fh Gi Hj Ik l m n o p q r s t u v w x y  k l m n o p q r s t u v w x y k  l  m  n  o  p  q  r  s  t  u  v  w  x  y   k  l  m  n  o  p  q  r  s  t  u  v  w  x  y   z  {  |  }  ~            Zz [{ \| ]} ^~ _ ` a b c d e f g h z  {  |  }  ~                      z  {  |  }  ~                                                          ; < = > ? @ A B C D E F G H I                                                                                             r s t u v w x y z { | } ~                       rI  sJ  tK  uL  vM  wN  xO  yP  zQ  {R  |S  }T  ~U  V  W                               ; < = > ? @ A B C D E F G H I                                                             Ic  Jd  Ke  Lf  Mg  Nh  Oi  Pj  Qk  Rl  Sm  Tn  Uo  Vp  Wq                           !  "  ci dj ek fl gm hn io jp kq lr ms nt ou pv qw v w x y z { | } ~    ! "                            !  "                    v  w  x  y  z  {  |  }  ~        !  "                     ; < = > ? @ A B C D E F G H I  2  3  4  5  6  7  8  9  :  ;  <  =   >   ?   @   #   $  %  &  '  (  )  *  +  ,  -  .  /  0  1 2 # 3 $ 4 % 5 & 6 ' 7 ( 8 ) 9 * : + ; , < - = . > / ? 0 @ 1 2 3 4 5 6 7 8 9 : ; < =  >  ?  @                2 A  3 B  4 C  5 D  6 E  7 F  8 G  9 H  : I  ; J  < K  = L  > M  ? N @ O  A  B  C  D  E  F  G  H  I  J  K  L  M  N O # $ % & ' ( ) * +  ,  -  .  /  0 1 # P $ Q % R & S ' T ( U ) V * W + X , Y - Z . [ / \  0 ]  1 ^           P gQ hR iS jT kU lV mW nX oY pZ q[ r\ s] t^ uA P B Q C R D S E T F U G V H W I X J Y K Z L [ M \ N ] O ^ A B C D E F G H I J K L M N O P gQ hR iS jT kU lV mW nX oY pZ q[ r\ s] t^ uxyz{|}~Z[  \ !] "^ #_ $`%a&b'c(d)e*f+g,h-n  o !p "q #r $s %t &u 'v (w )x *y +z ,{ -| _   ` ! a " b # c $ d %e &f 'g (h )i *j +k ,l -m n _ o ` p !a q "b r #c s $d t %e u &f v 'g w (h x )i y *j z +k { ,l | -m n .o /p 0q 1r 2s 3t 4u 5v 6w 7x 8y 9z :{ ;| <.%/&0'1(2)3*4+5,6-7.8/90:1;2<3.n } /o ~ 0p  1q  2r  3s  4t  5u  6v  7w  8x  9y  :z  ;{  <|  %.} *&/~ +'0 ,(1 -)2 .*3 /+4 0,5 1-6 2.7 3/8 409 51: 62; 73< 8_ =` >a ?b @c Ad Be Cf Dg Eh Fi Gj Hk Il Jm K _ =  ` >  a ? b @ c A d B e C f D g E h F i G j H k I l J m K =>? @ A B C DEFGHIJK = > ?  @  A  B   C ! D" E# F$ G% H& I' J( K)}  L~  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z*} L4+~ M5, N6- O7. P8/ Q90 R:1 S;2 T<3 U=4 V>5 W?6 X@7 YA8 ZBL M N O P Q R !S "T #U $V % W &!X '"Y (#Z )$4LJ5MK6NL7OM8PN9QO:RP;SQ<TR=US>V T?W!U@X"VAY#WBZ$X%[&\'](^)_*`+a,b-c.d/e0f1g2h3i[ \ ] ^ _ ` a b c d e  f  g  h  i [%* \&+ ]', ^(- _). `*/ a+0 b,1 c-2 d.3 e/4 f05 g16 h27 i38  [  \  ]  ^  _  `  a  b ! c " d # e $ f % g & h ' i ( j k l m n o p q r s t  u  v  w  xjFkGlHmInJoKpLqMrN sO tP uQ vR wSxTj  k  l  m  n  o  p  q ! r " s # t $ u % v & w ' x ( Fj Gk Hl Im Jn Ko Lp Mq Nr Os Pt Qu Rv Sw Tx  *4y +5z ,6{ -7| .8} /9~ 0: 1; 2< 3= 4> 5? 6@ 7A 8B y  z  {  |  }  ~    !  "  #  $  %  &  '  (  y4JRz5KS{6LT|7MU}8NV~9OW:PX;QY<RZ=S[>T\?U]@V^AW_BX` yR9 zS: {T; |U< }V= ~W> X? Y@ ZA [B \C ]D ^E _F `G               !  "  #  $  %  &  '  (  7 8 9 : ; < = > ? @ A B C D E 9C :D ;E <F =G >H ?I @J AK BL CM DN EO FP GQ7C8D9E:F;G<H=I>J?K@LAMBNCODPEQ                !  " # $ % & ' ( )                  )  *  +  ,  -  .  /  0  1  2  3  4  5  6  7       ! " # $  % !& "' #( $) JpKqLrMsNtOuPvQwRxSyT zU!{V"|W#}X$~ )  *  +  ,  -  .  /  0  1  2  3  4  5  6  7 p Hq Ir Js Kt Lu Mv Nw Ox Py Qz R{ S| T} U~ V               )  *  +  ,  -  .  /  0  1  2  3  4  5  6  7  x&y'z({)|*}+~,-./01234 & ' ( ) * + , - . / 0 1 2 3 4 )  *  +  ,  -  .  /  0  1  2  3  4  5  6  7 H aI bJ cK dL eM fN gO hP iQ jR kS lT mU nV o            ! " # $ %abcd e!f"g#h$i%j &k!'l"(m#)n$*o%+RJpSKqTLrUMsVNtWOuXPvYQwZRx[Sy\Tz]U{^V|_W}`X~9R" :S# ;T$ <U% =V& >W' ?X( @Y) AZ* B[+ C\, D]- E^. F_/ G`0 pH qI rJ sK tL uM vN wO xP yQ zR {S |T }U ~V! "  8#  9$  :%  ;&  <'  =(  >)  ?*  @+  A,  B-  C.  D/  E0 ! FC9" D:# E;$ F<% G=& H>' I?( J@) KA* LB+ MC, ND- OE. PF/ QG0 CUDVEWFXGYHZI[J\K]L^M_N`OaPbQc" 81 # 92 $ :3 % ;4 & <5 ' =6 ( >7 ) ?8 * @9 + A: , B; - C< . D= / E> 0 F? U1 V2 W3 X4 Y5 Z6 [7 \8 ]9 ^: _; `< a= b> c?  Ha Ib Jc Kd Le Mf Ng Oh Pi Qj Rk Sl Tm Un! Vo8 @ 9 A : B ; C < D = E > F ? G @ H A I B J C K D L E M F! N a5b6c7d 8e!9f":g#;h$<i%=j&>k'?l(@m)An*Bo+C@ 5A 6B 7C 8D 9E :F ;G <H =I >J ?K @L AM BN C1 8@ 2 9A 3 :B 4 ;C 5 <D 6 =E 7 >F 8 ?G 9 @H : AI ; BJ < CK = DL > EM ? FN 1 d2 e3 f4 g5 h6 i7 j8 k9 l: m; n< o= p> q? r@ DA EB FC GD HE IF JG KH L I M J N K O L P M QN RdDKeELfFMgGNhHOiIPjJQkKRlLSm MTn NUo OVp PWq QXrRYi6j7k8l9m:n;o<p=q>r?s@tAuBvCwDv^ w_ x` ya zb {c |d }e ~f g h i j k l 6+O 7,P 8-Q 9.R :/S ;0T <1U =2V >3W ?4X @5Y A6Z B7[ C8\ D9] ^ O G_ P H` Q Ia R Jb S Kc T Ld U Me V Nf W Og X Ph Y Qi Z Rj [ Sk \ Tl ] Uv^ w_ x` ya !zb "{c #|d $}e %~f &g 'h (i )j *k +l , !"#$%&' ( ) * + ,^ Gm _ Hn  ` Io !a Jp "b Kq #c Lr $d Ms %e Nt &f Ou 'g Pv (h Qw )i Rx *j Sy +k Tz ,l U{ m fn g o h!p i"q j#r k$s l%t m&u n'v o(w p)x q*y r+z s,{ tO +'-P ,(.Q -)/R .*0S /+1T 0,2U 1-3V 2.4W 3/5X 406Y 517Z 628[ 739\ 84:] 95;GO -| HP .} IQ /~ JR 0 KS 1 LT 2 MU 3 NV 4 OW 5 PX 6 QY 7 RZ 8 S[ 9 T\ : U] ; -'.(/)0*1+2,3-4.5/60718293:4;5| -W} .X~ /Y 0Z 1[ 2\ 3] 4^ 5_ 6` 7a 8b 9c :d ;em G| <n H} =o I~ >p J ?q K @r L As M Bt N Cu O Dv P Ew Q Fx R Gy S Hz T I{ U Jfm <gn =ho >ip ?jq @kr Als Bmt Cnu Dov Epw Fqx Gry Hsz It{ J<| W=} X>~ Y? Z@ [A \B ]C ^D _E `F aG bH cI dJ e<Y=Z>[?\@]A^B_C`DaEbFcGdHeIfJgKLMNOPQRST U V W X YgK hL iM jN kO lP mQ nR oS pT qU rV sW tX uY Kf Lg Mh Ni Oj Pk Ql Rm Sn To Up Vq Wr Xs Yt  K V L W M X N Y O Z P [ Q \ R ] S ^ T _ U ` V a W b X c Y dg Zh [i \j ]k ^l _m `n ao bp cq dr es ft gu hxZSy[Tz\U{]V|^W}_X~`YaZb[c\d]e^f_g`haZ V [ W \ X ] Y ^ Z _ [ ` \ a ] b ^ c _ d ` e a f b g c h d SZ T[ U\ V] W^ X_ Y` Za [b \c ]d ^e _f `g ah  fi gj hk il jm kn lo mp nq or ps qt ru sv twV i W j X k Y l Z m [ n \ o ] p ^ q _ r ` s a t b u c v d w iYjZk[l\m]n^o_p`qarbsctduevfwg iu jv kw lx my nz o{ p| q} r~ s t u v w V x W y X z Y { Z | [ } \ ~ ]  ^  _  `  a  b  c  d  xb yc zd {e |f }g ~h i j k l m n o px uy vz w{ x| y} z~ { | } ~     bx,cy-dz.e{/f|0g}1h~2i3j4k5l6m7n8o9p:EFGHIJKLMNOPQRSW X Y Z [ \ ] ^ _ ` a b c d e E: F; G< H= I> J? K@ LA MB NC OD PE QF RG SH   e  f  g  h  i  j  k  l  m  n  o  p  q  r  sW X Y Z [ \ ] ^ _ ` a b c d e YZ[\]^_`abcdefg e  f  g  h  i  j  k  l  m  n  o  p  q  r  s                 :T ;U <V =W >X ?Y @Z A[ B\ C] D^ E_ F` Ga Hbe  f  g  h  i  j  k  l  m  n  o  p  q  r  s  T(U)V *W!+X",Y#-Z$.[%/\&0]'1^(2_)3`*4a+5b,6 ( ) * + , - . / 0 1 2 3 4 5 6 e  f  g  h  i  j  k  l  m  n  o  p  q  r  s                          ! " # $ % & ' !"#$%&'YZ[\]^_`abcdefgu v w x y z { | } ~                       t  u  v  w  x  y  z  {  |  }  ~        u v w x y z { | } ~      ,-./0123456789: t!  u"  v#  w$  x%  y&  z'  {(  |)  }*  ~+  ,  -  .  / ! " # $ % & ' ( ) * + , - . /                t 0 u 1 v 2 w 3 x 4 y 5 z 6 { 7 | 8 } 9 ~ :  ;  <  =  >     0  1  2  3  4 5 6 7 8 9 : ; < = > ! t0 " u1 # v2 $ w3 % x4 & y5 ' z6 ( {7 ) |8 * }9 + ~: , ; - < . = / > ! q" r# s$ t% u& v' w( x) y* z+ {, |- }. ~/ 0 1 2 3 4 5 6 7 8 9 : ; < = >  q<r=s>t?u@vAwBxCyDzE{F|G}H~I J&xS'yT(zU){V*|W+}X,~Y-Z.[/\0] 1^ 2_ 3` 4a &N 'O (P )Q *R +S ,T -U .V /W 0 X 1 Y 2 Z 3 [ 4 \ S? T@ UA VB WC XD YE ZF [G \H  ]I  ^J  _K  `L  aM N ? O @ P A Q B R C S D T E U F V G W H X I Y J Z K [ L \ M N O P Q R S T U V  W !X "Y #Z $[ %\      ! " # $ % &  '! (" )#! *$" +%# N ] O ^ P _ Q ` R a S b T c U d V e W f X g Y h Z i [ j \ k  ]  ^  _  `  a  b  c  d  e  f  g  h ! i " j # k ? b@ cA dB e C f!D g"E h#F i$G j%H k&I l'J m(K n)L o*M p+? l @ m A n B o C !p D "q E #r F $s G %t H &u I 'v J (w K )x L *y M +z b, c- d.  e/ !f0 "g1 #h2 $i3 %j4 &k5 'l6 (m7 )n8 *o9 +p: l  m  n  o  p ! q " r # s $ t % u & v ' w ( x ) y * z + ] l ,^ m -_ n .` o /a p 0b q 1c r 2d s 3e t 4f u 5g v 6h w 7i x 8j y 9k z :] ,$ ^ -% _ .& ` /' a 0( b 1) c 2* d 3+ e 4, f 5- g 6. h 7/ i 80 j 91 k :2 ,l -m .n /o 0p 1q 2r 3s 4t 5u  6v  7w  8x  9y  :z  $ ,h% -i& .j' /k( 0l) 1m* 2n+ 3o, 4p- 5 q. 6 r/ 7 s0 8 t1 9 u2 : v5 ;6 <7 =8  >9! ?:" @;# A<$ B=% C>& D?' E@( FA)! GB*" HC+# I5; 6< 7= 8> 9? :@ ;A <B =C >D ?E @F AG BH CI ; { < | = } > ~ ?  @  A  B  C  D  E  F  G!  H"  I#   ;{  <|  =}  >~  ?  @  A  B  C  D  E  F  G  H  I D JE KF LG MH NI OJ PK QL RM SN TO UP VQ WR XKDJLEKMFLNGMOHNPIOQJPRKQSLRTMSUNTVOUWPVXQWYRXJ  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  J K L M N O P Q R S T U V W X { $ Y| % Z} & [~ ' \ ( ] ) ^ * _ + ` , a - b . c / d 0 e 1 f 2 g{ Y | Z } [ ~ \  ]  ^  _  `  a  b  c  d  e  f  g Y$ h3 Z% i4 [& j5 \' k6 ]( l7 ^) m8 _* n9 `+ o: a, p; b- q< c. r= d/ s> e0 t? f1 u@ g2 vA  Y3  Z4  [5  \6  ]7  ^8  _9  `:  a;  b<  c=  d>  e?  f@  gA   h  i  j  k  l  m  n  o  p  q  r  s  t  u  v h i j k l m n o p q r s t u vh B i C j D k E l F m G n H o I p J q K r L s M t N u O v P hB iC jD kE lF mG nH oI pJ qK rL sM tN uO vP  ,w -x .y /z 0{ 1| 2} 3~ 4 5 6 7 8 9 : w  x  y  z  {  |  }  ~               w x y z { | } ~         w  x  y  z  {  |  }  ~                                    hQ iR jS kT lU mV nW oX pY q Z r [ s \ t ] u ^ v _                               Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^  _   q r s t u v w x y z { | } ~                               q<r=s>t?u@vAwBxCyDzE{F|G}H~IJ w x y z { | } ~                                      `  a  b  c  d  e  f  g  h  i  j  k  l  m  n  w x y z { | } ~       ` a b c d e f g h i j k l m n 3 hQ 4 iR 5 jS 6 kT 7 lU 8 mV 9 nW : oX ; pY < qZ = r[ > s\ ? t] @ u^ A v_ 3  4  5  6  7  8  9  :  ;  <  =  >  ?  @  A  Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^  _                                B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  B sC tD uE vF wG xH yI zJ {K |L }M ~N O P                               s t u v w x y z { | } ~     `  a  b  c  d  e  f  g  h  i  j  k  l  m  n    !  "  #  $  %  &  '  (  )  *  +  ,  -  . ` a b c d e f g h i j k l m n  ! " # $ % & ' ( ) * + , - .    !  "  #  $  %  &  '  (  )  *  +  ,  -  .                 ! " # $ % & ' ( ) * + , - . '()*+,-./012 3 4 5 '+ (,)-*.+/,0-1.2/3041526 37 48 59 6i+7j,8k-9l.:m /;n!0<o"1=p#2>q$3?r%4@s&5At'6Bu(7Cv)8Dw*9+6+ ,7,-8-.9./:/0;01<12=23>34?45@56A67B78C89D9E:F;G<H=I>J?K@LAMBNCODPEQFRGSH:E:I;F;J<G<K=H=L>I>M?J?N@K@OALAPBMBQCNCRDODSEPETFQFUGRGVHSHWT:IXU;JYV<KZW=L[X>M\Y?N]Z@O^[AP_\BQ`]CRa^DSb_ETc`FUdaGVebHWfTXgUYh VZi!W[j"X\k#Y]l$Z^m%[_n&\`o']ap(^bq)_cr*`ds+aet,bfuicvjdwkexlfymgz nh{!oi|"pj}#qk~$rl%sm&tn'uo(vp)wq*cIvdJweKxfLygMzhN{iO|jP}kQ~lRmSnToUpVqWrstuvwxyz{|}~IrJsKtLuMvNwOxPyQzR{S|T}U~VWXYZ[\]^_`abcdefXYZ[\]^_`abcdef-./0123456789:;MEe 4 NMEPlane.005PUP,Pጡg $ߌ 2A*?8Ƚ/0=$??=DATAMDATAhg *,DATA,:2讚?# Fc?ތ::߃8쐼n? &gG՞K?4ch5QY %?(l".!T^?9(wq{!Z)9>'! >C> FGlB$j(hA4ؼ^kQP8aY ǿ$N4䆼,݂%m¼֋̽&U@yJ! eA=X+X!tM~!ч,2@^鿮=h@*=ar2@~SB=I}.@dl=(y@#,=Y?4NuĆ=tf@`r=?;"=l91@Rȡ=@V=K}'2@- s= 0@>=g4?,P=1?{XU=|@C=*?ץN=a?Z=~AY?| > ?A= ~`? > xz>25>R]p0=L6=ɦs:Q>K@I0>CsFH=wU=ʞbt??9U=Y?S> AI_?;r=~]?Iy > o>eM'5> MY=eYЖe=sFu>%a8>GE\!W=bM=~Vq9R2@V>o=&j@>_4v=0@H!? =U0@i!?R=X)@<>V|=!g? 8)>=wߡ@j!?Tm=+ש??=N3@1?٢=qp@?ž=*ETa1@_?N=aZ@ޟ?b=A8p@-?J=e?#?5=n@wL?="?7?F=!?S>=0~gW? = >; ?{?[g=a[~ޢ\?L?p>6>%>$>S}[؊h=^Y>@H=YeuW>K?Y->u'[=?[= vu??.=e;@[?s?Hn>9 b??,=e~n _?y?X>Q ~>z,? ~*>|)=e#?([=˄t`>~?3>*.=.s?{=eu`z%@`q}=3@Wȿ%t=  %@몿c=u$+@ɿ=h?x:C=:@IɿI=U-?[9=?3ɿX=[/|%@XVޅ=H 2@7=H[\&@Q=)1F@-[=(?VX[=kX@ Ƈ=?񟫾b= ?s0=6/?>f (N?ĿFu=~u}?䥿ڶ=9[? ɿ> ¥>?S>ٵz%>ǿ&>n~>f6f>+۸z(x=ĿJ=ʬot?|Q^ >y~??,=e~ ?*ߞ >:]?> _Ղ>OL>ڨhz>X~,>zS>r0>ۨzS=F+y=NrR%@=0T=D 2@o>=g%@t ?- =?@ >=5x? >(J=.@>"=L? I?̕=bS?B>=_ &@?=(3@?n=%@8?Ѝs=K@ ?ޒ=Q22??l>=@ڪ?8=YG ?TF?ؕ=J??:?= ?0G>> C?>@= ~뻇?"?> 0;J[_?X>^ >= &x>Zf>q-=9#{>0>(7>TB~w>8?\=![zԊ=).>c=hu?v?q> ?i?D=9~C??] > <n]Z??> >q?:(>-Iz->?w4>]$n(u>?Dx>ٻ!z=F?5F=du(@2=Q@^j=1@Շ=|2@؆:v=#8 @Vx=n@#=|s>?M C=;G@{~=Q+?{Y5> 8+?Ϊ)>^$?9D=_?L![> zN)#?Tx;>#?ީ}<> T> ]9>m_ȕ=.ߊ&q=:s,@??=@ߙ>2d=>Qw@\? =2@F_?n='r@Ś?02=?@?^L=:!?Y?v=uK?Z?=O(#?u?2>$j%?=->h Z?nxZ? > r?/]?=B7~U$?W?K3>R+?N?R4>[ z6Y>4a?*>H.oA=he[?DMH=Q̈́u\? &=D  n?x;N=v?oRX=}0?v/=v01@x=$@hœ=-?:rk=# Z@bS=o+?_?p=Y0??/=1??s=dLԸ?#>Vޢ=? F=wսim=Is>Ĵ+>KX?kӽU> N?SXӽz=~?0=Ý% RDGK?ވC>A< S1 ^kw^<Zp<6ThC%{W<?K=Xߗ?h,>`,뽞??;=~\??Ti>\ zH@?D=HB+1@l?d=b@9?2=P&??=>@@$=?@U =Y>@J=hb?@{=H2?@_>=)>@#?~=r>@8?X=r]@@ ? z=o.-=>=+sb>t*>"TKR^?0 > =?l0= ~s1@ = @p=W@ d#=?"ú=<&@^ ǿt=?\ ǿ=QE &@k=?=$ ?\ ǿK >$.{>[ ǿx>uz?7 >F~>}>c>۟zT%@$>B=b~?)>=Q%@}n?i=D`?~n?=Y jw?/>PH >!r>4>tu>OzJ?n?qk > 3v>n?>6z@] ǿ=L}&&@ܓ=WnD@F= ?=CB)?\ ǿya*>?' >~&?0>[|>#>q2z}@'>,=%@^? =E@}n?U=g ?^?ۡ=x%?2>i2> Y? ^?y1 > mk&?n?..>t u>^?>)9zC?\ ǿ=P?=g&@ ̽=9٘?̽=-?~n?=^?->=. n.w>̽l>|{?̽s > UQ"q5n?9<›2OR9>}<HR%ZY ǿ<^WY?>ڟ=zyH??k > %@?=,_??=6u?@͋=!]?@^ ǿVb=D?@">ؔ=jJ?@|n?p=z>k>hf z_5?kck >K.&@l:=W?kV=@Z>=.F&?#2> e@^?H=f_'?^?F+>p?=]{@̽=i? ^?=\(A'?̽.>[ "^^?N<NRvu;u@?X=kL?@Zi=$19?@^?H=u5)?kh+> 2i@k=KvO׷?̽=AP̽<1J??=Ck4?@̽Pb={b?k=:?<R*>%jCʨ<_iWJ?@lX=?@?=<DATA 92IIPJJK`KK LLL0MMM@NNO`OO PPP@QQQ@RRS`SSPi i j Pj j k Pk k l pl l 0m m m 0n n n Po o p pp p 0q q q @r r r Ps s  00Е0000@𚌡@𛌡P𜌡@𝌡PP🌡@𠌡@𡌡P𢌡@𣌡PP`````PPpЭ0𮌡PPP𱌡Ppг0𴌡P𵌡@ඌ0𷌡P𸌡@์@P𻌡@༌0н0𾌡P`P@ŒŒŒ0ÌÌÌPČČŌ`ŌŌƌ`ƌƌnjPnjnjnj@ȌȌȌ0ɌɌɌ ʌpʌʌˌ`ˌˌ̌`̌̌͌`͌͌ΌPΌΌόPόόЌPЌЌЌ@ььь0ҌҌҌ ӌpӌӌԌ`ԌԌՌPՌՌՌ@֌֌֌0׌׌׌0،،،0ٌٌٌ0ڌڌڌ0ییی ܌܌܌ ݌p݌݌ތ`ތތߌPߌDATAI8??DATAI8???DATAPJ8??DATAJ8???DATAK8???DATA`K8???DATAK8???DATA L8???DATAL8??DATAL8???DATA0M8??DATAM8???DATAM8???DATA@N8???DATAN8???DATAO8???DATA`O8???DATAO8???DATA P8???DATAP8???DATAP8???DATA@Q8??DATAQ8???DATAQ8??DATA@R8???DATAR8???DATAS8???DATA`S8???DATAS8???DATAPi 8??DATAi 8???DATAj 8??DATAPj 8??DATAj 8???DATAk 8??DATAPk 8???DATAk 8???DATAl 8???DATApl 8???DATAl 8???DATA0m 8??DATAm 8???DATAm 8??DATA0n 8???DATAn 8???DATAn 8???DATAPo 8???DATAo 8???DATAp 8???DATApp 8???DATAp 8???DATA0q 8???DATAq 8???DATAq 8??DATA@r 8???DATAr 8??DATAr 8???DATAPs 8???DATAs 8???DATA 8???DATA8???DATA8??DATA08???DATA8??DATA8??DATA08??DATA8??DATAЕ8???DATA08??DATA8???DATA8??DATA08???DATA8??DATA8??DATA08??DATA8???DATA8??DATA08???DATA8??DATA8???DATA@8??DATA8???DATA𚌡8??DATA@8???DATA8??DATA𛌡8???DATAP8??DATA8??DATA𜌡8??DATA@8???DATA8??DATA𝌡8???DATAP8??DATA8???DATA8??DATAP8??DATA8??DATA🌡8??DATA@8??DATA8???DATA𠌡8??DATA@8???DATA8??DATA𡌡8???DATAP8??DATA8??DATA𢌡8??DATA@8???DATA8??DATA𣌡8???DATAP8??DATA8???DATA8??DATAP8???DATA8??DATA8???DATA`8??DATA8???DATA8??DATA`8??DATA8??DATA8???DATA`8??DATA8???DATA8??DATA`8???DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8???DATA8??DATA8??DATAP8???DATA8???DATA8???DATAp8???DATAЭ8???DATA08???DATA8???DATA𮌡8???DATAP8???DATA8??DATA8??DATAP8??DATA8???DATA8??DATAP8??DATA8??DATA𱌡8???DATAP8???DATA8???DATA8???DATAp8???DATAг8???DATA08???DATA8???DATA𴌡8???DATAP8??DATA8??DATA𵌡8??DATA@8??DATA8??DATAඌ8??DATA08???DATA8???DATA𷌡8???DATAP8??DATA8??DATA𸌡8??DATA@8??DATA8??DATA์8???DATA@8???DATA8???DATA8?DATAP8?DATA8?DATA𻌡8?DATA@8?DATA8?DATA༌8?DATA08?DATA8??DATAн8???DATA08???DATA8???DATA𾌡8???DATAP8??DATA8???DATA8???DATA`8?DATA8?DATA8?DATAP8?DATA8?DATA8?DATA@Œ8?DATAŒ8?DATAŒ8??DATA0Ì8???DATAÌ8???DATAÌ8???DATAPČ8??DATAČ8???DATAŌ8???DATA`Ō8???DATAŌ8??DATAƌ8??DATA`ƌ8??DATAƌ8??DATAnj8??DATAPnj8??DATAnj8??DATAnj8??DATA@Ȍ8??DATAȌ8??DATAȌ8??DATA0Ɍ8??DATAɌ8??DATAɌ8??DATA ʌ8??DATApʌ8??DATAʌ8??DATAˌ8??DATA`ˌ8??DATAˌ8??DATǍ8???DATA`̌8??DATǍ8???DATA͌8??DATA`͌8??DATA͌8??DATAΌ8??DATAPΌ8??DATAΌ8???DATAό8??DATAPό8???DATAό8??DATAЌ8??DATAPЌ8??DATAЌ8??DATAЌ8??DATA@ь8??DATAь8??DATAь8??DATA0Ҍ8??DATAҌ8?DATAҌ8?DATA ӌ8?DATApӌ8?DATAӌ8??DATAԌ8??DATA`Ԍ8??DATAԌ8??DATAՌ8?DATAPՌ8?DATAՌ8?DATAՌ8?DATA@֌8??DATA֌8??DATA֌8??DATA0׌8??DATA׌8??DATA׌8???DATA0،8??DATA،8???DATA،8??DATA0ٌ8??DATAٌ8??DATAٌ8???DATA0ڌ8?DATAڌ8?DATAڌ8???DATA0ی8??DATAی8?DATAی8?DATA ܌8???DATA܌8??DATA܌8??DATA ݌8?DATAp݌8??DATA݌8?DATAތ8??DATA`ތ8?DATAތ8?DATAߌ8?DATAPߌ8?DATAhߌ*PጡDATA Pጡ7A"."" "  " " "! "   ""/" " " " " " " " " " *"" "" ""  R"Q  Q T "R " S T"S""" "V"U  U"X""V"  W"X"W "" "Z"Y" Y \  Z ""[ \"["  " ^"] "] `" ^ ""_" `" _ " "!"!"!b"!a""""a""d"" #b"#"# #c"$d"$c"$ $"%"%"%f"%e &"&e &h &"'f"' '"'g (h"(g ("(")")")j")i"*"*i"*l"* +j"+"+"+k",l",k ,","-"-"-n"-m".".m .p". /n"/"/"/o"0p"0o 0"0"1 1"1r 1q"2 2q"2t"2"3r 3 3"3s"4t"4s 4 4 5 5"5v"5u 6"6u 6x"6"7v 7"7 7w"8x"8w 8 8"9"9"9z"9y":":y":|":";z";";";{ <|"<{"< < = ="=~"=}"> >}"> >"?~"?"? ? @ @"@ @ A"A A"A B"B"B B"C"C C"C"D"D"D"D"E"E"E"E"F"F"F"F"G"G G"G"H"H"H"H I"I"I"I J"J J"J"K"K"K"K"L"L L"L"M"M M"M"N"N"N"N O"O O"O P"P P P Q Q R"R S"S T"T"U"U"V V W"W"X"X"Y"Y"Z Z"["["\ \"]"]"^"^"_"_"` ` a"a"b"b"c"c"d"d"e"e"f"f g"g"h  h i"i"j j k"k"l l"m"m"n"n"o"o"p "p q q r"r s"s t t u"u"v v w w"x"x y y z"z"{"{ |"| }"}"~"~""" "" "" """"""" """" """ "" " ""  ( " %" """ """ "#'###""" ### #  "   """& ""$" "" "### #""""##### ""!""" -""  )","" " )"" "+""   ")""*"  " "")"." " "!" "!" "*"/" " """ "*" """." " "#""+""#"$""1""$"""+","""%"0"""%","""&""1""&"/""'"""'""-"0""("""(""-"DATAh*PDATA@P6.  ! ! * /     "   *  "0QRRQQ(TQTRSR%SSTTS(UVVUU-XUXVWVWWXXW%YZZYY\Y\Z,[[\\[]^^]]`]`^_^__ ` ` _) !-!ab!ba!a""'d"ad"#b#cb#c#c$d$d$c$%'%ef%fe%e&&/h&eh &'f'gf'g'g(h( h(g"())ij)ji)i**l*il*+j+kj)+k+k,l,l,k ,--mn-nm-m.."p.mp ./n/on /o/o0p0 p0o*01,1qr1rq1q22t2qt23r3sr&3s3s4t4t4s455uv5vu5u66)x6ux67v7wv7w7w8x8x8w89&9yz9zy9y::|:y|:;z;{z1;{;{<|<|<{$<==}~=~}=}>>>}>?~?~$??@@@+@A)AAABB BBCCCCDDDDE EEEFF*F FGGGGHH H!HIIIIJJJJKK+KKLLL#LMMMMNN!N NOO#O OPP  P.PME 40ލe MEPlane.006fݍ`ȍ`4$ ƍ2AV8Ƚ=ӎ??=DATAݍнMDATAh*4DATA:2uj?"Zp@?: #jn?`"O6K?O`׃IMY %?8i^?"mFh9> ル]>C>a_HH_2xtjj"iR0^kt&iY ǿxe!DŽiuT OW%N<`zh̽` D/gc H:=XQdqgr 4^M#c=nL= 3~Sv= d~'=Zh#Qt=PAӿ4N%(n= A=ֿ;s= 2Rjb=AVzZp= /3- WE= >:Z=XM,P,pm=r[п{X=ir=|uQտץ= sУ S=%3]濗> @c٤A~^=bl1 tw2П3>%sߎL6[G=4UK.>vT2wLT=|  9U握=%S&}^Sl> 迣;]=bIs>! *s쾑eMȤ3>6eYb=\ %6>}-9K=ƿx^3V>I=1 >z-=v1H!?~=:i!?QCa=_.c<>=] aӿ 8)>= ij!?d= C*ѿ?X*= it41?c[=^"I?=2_?c=Tޟ?L<=!`-?={J +ѿ#?M=dtbwL?=2OAҿ7?&=6S>=ځ\ =*4&>>M2{?|=l3bL?o">FQ%>C#>ykн^Y>-E=ɵ K?L8,>\Sν?W==2? 9==`s?v>T kY)#?߼=A}ddy?C> ZzCz,?(>T|ܱe#?X=ʰ~?92>R.s?9x=7ob&νp=8M 4WȿG=h%몿y=0&n+ɿQH=ljxVA=6Iɿ\p=[9r= nҿ3ɿ=cw&XV=+$47=o'JW=m]-[`@=u6鿛V_=: r i=m񟫾 <=Կk=;迷 >{pWĿpt=d䥿=u\_ ɿ$> ub?㿰l>c>UǿP%>*fs>S}b1ĿF=L>|Qz=;?=USe*K >əb> m拾Oh >X3X*>Rtzr>GCuF8'v=Fƌ&=zm=A 3o>r=NO&t ?=_  >0FI=_h >Z=/D>P=% I?ы=J ҿB>==!(?Ƞ=14?կ>=}9r&8?6Z=} ?a=k鿸? =ڪ?=] KTF?,=+:ҿ:?;=& 0G>`a>E5>=B;Y"?t>XV&dX>>e]H:Zf>=wXU%0>j5>v8?l=хv).>`=v?, >Q٢i?v=h틿?У>oXI`?I> 3f~q?76=M?3>nˆ?m[=rF?ҜC=+z=v^ņ=32Շxt=e ؆Y= 2V=x#Nd=2QԿM "=[{~= 0{6->S80l">%+Т9T=ACPdL!I#>[ (TD4> 2)(ީv5>St H8>~m.ߊn=x4??j=D'ߙ>VM=I$%\?.i=v 3F_?U D=/(Ś?=m?xi=4?k.Y?=\)ӿZ?= Gt)u?@++>na+=Jt%>}f0`nxZ?[>U:J#/]?=dZ+W?+>.)1N?5/>u3}c4a?w)>꠽he[?WE=͕F滿 PQ=J%x;E=%oRR=znB_= 2xv=Io<c=M /Կ:r˗= bS*=_?=#X?6 =1)?=~?#>R؊= Jgwսoj=vWjvĴqA*>~]kӽv > bSXӽz =BŁ9?Ϙ=$.☼K?B<;]Y %?<Ý]la>C><ڛL^^k'<i7<׶8%#<+=Xr<-(lh4v?GB=g*`꾏?7+>l4€|?`= Hb?f>) ?m=S";2l?@=>\ 9?|=ӿ?=-]?@l=@U=LR?J翠=6#@{H={ 5=@_>?U=?6#?#?AR=&?8?08=x;vrA ?;O=aMZ+<=E澐t_5)>Mb0> Qc@l()=MOVu2 -=XI>=Uw  |= ҿ"E=_J='^ ǿZЅ=C \ ǿ>= 'J=\Z=U &\ ǿB >/pԇ[ ǿ#*>Qp >^ZՇ">O1V '$>=-G)>䰜=&}n?Ј='Y~n? = 5/>' >+sԇ4>&>B.n?p >;Ӈn?L>օG] ǿzI=T+-'#=r&X8=:Y=L-\ ǿ3$>c; >p, )>00p+>%qQ'>Ⱦ= '^? = }n?Ύ=D)9^?=,2>*>~ ^? <>]-n?&>327ԇ^?6>sd\ ǿr=/eEt= ' ̽\}= ̽=m~n?|=6->|= h Շ̽>sB̽$> 3Ѫn?5<]Z>9>;ڔa?>Yz&'?h=>U?8=q@gHj=`.S@^ ǿO~=|(V@">{=ud@|n? s=jMӇkH>CUsk&>.'l2=4t kZ=3&X=+,.*> ;}^?= -^? A$>Rnr=<ˮ̽P=4 ^?|=3-̽ :&>G;R^?<̝cw~KR<?l=$C@F=I O@^?=-kR$># drk"T=z:̽|=o: b̽@̽Nu=}kr=H?<+ j8<֛Y)C@l=]9@?= GDATA 492G@HHHPIIJpJJ KKK0LLLPMMNpNN0OOO@PPPPQQRpRR SpSS TpTT0UUUPVVWPWWXpXX0YYYPZZ[`[[\p\\0]]]@^^^@___@```@aaa@bbb@cccPddePeef`ffgPggh`hhi`iijPjjkPkkl`llmPmmn`nno`oopppp qpqqrprr spss tpttu`uuv`vv www@xxy`yyz`zz{`{{|`|| }}}@~~`P@`PP`P@@`p`P@`pЏ p`P𒍡@0Д pp p```P𛍡@0Н p`P𠍡@ࡍ@𢍡@࣍@ऍ@्0঍0Ч p`DATAG8??DATA@H8???DATAH8??DATAH8???DATAPI8???DATAI8???DATAJ8???DATApJ8???DATAJ8??DATA K8???DATAK8??DATAK8???DATA0L8???DATAL8???DATAL8???DATAPM8???DATAM8???DATAN8???DATApN8???DATAN8???DATA0O8???DATAO8??DATAO8???DATA@P8??DATAP8???DATAP8???DATAPQ8???DATAQ8???DATAR8???DATApR8??DATAR8???DATA S8??DATApS8??DATAS8???DATA T8??DATApT8???DATAT8???DATA0U8???DATAU8???DATAU8???DATAPV8??DATAV8???DATAW8??DATAPW8???DATAW8???DATAX8???DATApX8???DATAX8???DATA0Y8???DATAY8???DATAY8???DATAPZ8???DATAZ8???DATA[8??DATA`[8???DATA[8??DATA\8???DATAp\8???DATA\8???DATA0]8???DATA]8???DATA]8??DATA@^8???DATA^8??DATA^8??DATA@_8??DATA_8??DATA_8???DATA@`8??DATA`8???DATA`8??DATA@a8???DATAa8??DATAa8??DATA@b8??DATAb8???DATAb8??DATA@c8???DATAc8??DATAc8???DATAPd8??DATAd8???DATAe8??DATAPe8???DATAe8??DATAf8???DATA`f8??DATAf8??DATAg8??DATAPg8???DATAg8??DATAh8???DATA`h8??DATAh8???DATAi8??DATA`i8??DATAi8??DATAj8??DATAPj8??DATAj8???DATAk8??DATAPk8???DATAk8??DATAl8???DATA`l8??DATAl8??DATAm8??DATAPm8???DATAm8??DATAn8???DATA`n8??DATAn8???DATAo8??DATA`o8???DATAo8??DATAp8???DATApp8??DATAp8???DATA q8??DATApq8??DATAq8??DATAr8???DATApr8??DATAr8???DATA s8??DATAps8???DATAs8??DATA t8??DATApt8??DATAt8??DATAu8??DATA`u8???DATAu8??DATAv8??DATA`v8???DATAv8???DATA w8???DATAw8???DATAw8???DATA@x8???DATAx8???DATAy8???DATA`y8???DATAy8??DATAz8??DATA`z8??DATAz8???DATA{8??DATA`{8??DATA{8??DATA|8???DATA`|8???DATA|8???DATA }8???DATA}8???DATA}8???DATA@~8???DATA~8???DATA8???DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8???DATA8???DATA8???DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8???DATAP8???DATA8???DATA8?DATA`8?DATA8?DATA8?DATAP8?DATA8?DATA8?DATA@8?DATA8??DATA8???DATA@8???DATA8???DATA8???DATA`8??DATA8???DATA8???DATAp8?DATA8?DATA8?DATA`8?DATA8?DATA8?DATAP8?DATA8?DATA8??DATA@8???DATA8???DATA8???DATA`8??DATA8???DATA8???DATAp8???DATAЏ8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA𒍡8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATAД8??DATA 8??DATAp8??DATA8??DATA8???DATAp8??DATA8???DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8???DATA8??DATA`8???DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA𛍡8??DATA@8??DATA8?DATA8?DATA08?DATA8?DATAН8??DATA 8??DATAp8??DATA8??DATA8?DATA`8?DATA8?DATA8?DATAP8??DATA8??DATA𠍡8??DATA@8??DATA8??DATAࡍ8???DATA@8??DATA8???DATA𢍡8??DATA@8??DATA8??DATA࣍8???DATA@8?DATA8?DATAऍ8???DATA@8??DATA8?DATA्8?DATA08???DATA8??DATA঍8??DATA08?DATA8??DATAЧ8?DATA 8??DATAp8?DATA8?DATA8?DATA`8?DATAh*`DATA `7A"."" "  " """! " " ""/" " "  " " " " " " *"" """""  R"Q""Q T""R"" S T"S"""""V"U  U"X""V" "W"X"W "" "Z"Y""Y"\" Z"""[ \"["" " ^"] "] `" ^"" _" `" _ " !#!"!b#!a""""a""d " #b##"###c"$d"$c"$"$"%"%"%f"%e &"&e &h &"'f"' '"'g (h"(g ("(")#)")j#)i"*"*i"*l"*"+j#+"+#+k",l",k ,","-"-"-n"-m".".m .p"."/n"/"/"/o"0p"0o 0"0 1 1"1r"1q"2"2q"2t"2"3r 3 3"3s"4t"4s 4"4 5"5"5v"5u 6"6u 6x"6"7v"7"7 7w"8x 8w 8 8"9"9"9z"9y":":y":|":";z";";";{ <|"<{"<"< ="="=~ =}"> >}">">"?~"?"?"? @ @"@ @ A#A A#A B B"B"B"C#C C#C"D"D"D D"E"E"E"E"F"F"F"F"G"G G"G"H"H"H H"I#I"I#I J J J J"K#K"K#K"L L L L"M"M M"M"N"N N"N O"O"O"O P"P P"P"Q"Q"R"R S"S"T"T"U"U"V V W"W"X"X"Y Y Z Z"["["\ \"]"]"^"^"_"_"` ` a"a"b"b"c c"d"d"e"e"f"f g"g"h  h"i"i"j j"k"k"l"l"m"m"n"n"o"o"p "p q"q"r"r s"s"t"t u"u"v v w"w x"x y"y"z"z"{"{"|"| }"}"~ ~"   "" "" """"""" """" """ "" " "" " (""""%" " """""  "'"" """ " " "  """""" "& ""$"""" "" " """"""""#" ""!""" -" " )",""   )"" "+"""""")" *"  " "")"." " "!" "!" "*"/" " """ "*" """." " "#""+""#"$""1""$"""+","""%"0"""%","""&""1""&"/""'"""'""-"0""("""(""-"DATAhƍ*`ȍDATA@`ȍ6.  ! ! * /     "   *  "0QRRQQ(TQTRSR%SSTTS(UVVUU-XUXVWVWWXXW%YZZYY\Y\Z,[[\\[]^^]]`]`^_^__ ` ` _) !-!ab!ba!a""'d"ad"#b#cb#c#c$d$d$c$%'%ef%fe%e&&/h&eh &'f'gf'g'g(h( h(g"())ij)ji)i**l*il*+j+kj)+k+k,l,l,k ,--mn-nm-m.."p.mp ./n/on /o/o0p0 p0o*01,1qr1rq1q22t2qt23r3sr&3s3s4t4t4s455uv5vu5u66)x6ux67v7wv7w7w8x8x8w89&9yz9zy9y::|:y|:;z;{z1;{;{<|<|<{$<==}~=~}=}>>>}>?~?~$??@@@+@A)AAABB BBCCCCDDDDE EEEFF*F FGGGGHH H!HIIIIJJJJKK+KKLLL#LMMMMNN!N NOO#O OPP  P.PME0ލ4捡 MEPlane.007B捡 捡፡䍡P⍡ p䍡@5RARA?DATA捡MDATAh*፡DATA`፡:RARARARRRRRADATAhP⍡*䍡DATA0䍡7####DATAhp䍡* 捡DATA 捡6ME捡40ލMEPlane.010 p Pꍡ荡$P 0`4ˋ;2M@> @^!<DATA 0MMDATAh荡*PꍡDATAPꍡ:0܋L7%%Ч@]9%%.Ч@]??...ڋLE?..2MӜhn2M?VM.2M?</.2M0</ڋL @,MYm@] @,M.Ym@]; @Ѓ<.vm.ڋL> @΃<vm.+S?TMhm.+S՜hnhm+S0ј؋L@.ј؋L@ʛ?.. ]>Л?.0+S>a+`+S>Л?a+.`+S>Л?<..0+S><. ]>?a+hm؋L@?a+.hm؋L@?<.hm. ]>?<hm.2M@ʛ?a+hm.2M@a+hm2M@ a+.]>= a+ј]>= <ј.؋L@> <.. ]>Л?<.hm؋L@ʛ?<..hm؋L@<.hm]><hmDATA90P@0 p`P@0 p`P@0 p`DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAP8??DATA8??DATA8??DATA@8??DATA8??DATA8??DATA08??DATA8??DATA8??DATA 8??DATAp8??DATA8??DATA8??DATA`8??DATA8??DATA8??DATAhP*DATA7`"""""""" " " " " " "" """"""""""" " "" """ """""" " " " " """"""""#""""" !"!"""#" #"$%"%&"&'"$'"()")*"*+"(+",-"-."./",/"(")"$"%" "!"""#" "/","*")"!$""'""-"#,"%("&+"'-"&."+."*/"DATAh*p DATAp 64                #"!$'&%(+*),/.-()$% !# /,)*"'$!#,-"&+(%'-.&*+./)%(!$ ,#*/"-'&.+DNA1SDNANAMEq *next*prev*data*first*lastxyzwxminxmaxyminymax*pointergroupvalval2name[32]typesubtypeflagsaveddatalentotallen*newid*libname[24]usicon_id*propertiesid*idblock*filedataname[240]filename[240]totpad*parentw[2]h[2]changed[2]pad0pad1*rect[2]*obblocktypeadrcodename[128]*bp*beztmaxrcttotrctvartypetotvertipoextraprtbitmaskslide_minslide_maxcurval*drivercurvecurshowkeymuteipoposrelativetotelempad2*weightsvgroup[32]sliderminslidermax*refkeyelemstr[32]elemsizeblock*ipo*fromtotkeyslurph**scripts*flagactscripttotscript*line*formatblenlinenostartendflagscolor[4]pad[4]*namenlineslines*curl*sellcurcselcmarkers*undo_bufundo_posundo_len*compiledmtimesizeseekpassepartalphaangleclipstaclipendlensortho_scaledrawsizeshiftxshiftyYF_dofdistYF_apertureYF_bkhtypeYF_bkhbiasYF_bkhrotscriptlink*dof_obframenrframesoffsetsfrafie_imacyclokmulti_indexlayerpassmenunribufs*gputexture*anim*rrsourcelastframetpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfile*previewlastupdatelastusedanimspeedgen_xgen_ygen_typeaspxaspy*vnodetexcomaptomaptonegblendtype*object*texuvname[32]projxprojyprojzmappingofs[3]size[3]texflagcolormodelpmaptopmaptonegnormapspacewhich_outputpad[2]rgbkdef_varcolfacnorfacvarfacdispfacwarpfacname[160]*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*instance_init)()(*callback)()versionaipotype*ima*cube[6]imat[4][4]obimat[3][3]stypeviewscalenotlaycuberesdepthrecalclastsizenoisesizeturbulbrightcontrastrfacgfacbfacfiltersizemg_Hmg_lacunaritymg_octavesmg_offsetmg_gaindist_amountns_outscalevn_w1vn_w2vn_w3vn_w4vn_mexpvn_distmvn_coltypenoisedepthnoisetypenoisebasisnoisebasis2imaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendcheckerdistnablaiuser*nodetree*plugin*coba*envuse_nodespad[7]loc[3]rot[3]mat[4][4]min[3]max[3]pad3modetotexshdwrshdwgshdwbshdwpadenergydistspotsizespotblendhaintatt1att2*curfallofffalloff_typeshadspotsizebiassoftbufsizesampbuffersfiltertypebufflagbuftyperay_sampray_sampyray_sampzray_samp_typearea_shapearea_sizearea_sizeyarea_sizezadapt_threshray_samp_methodtexactshadhalostepsun_effect_typeskyblendtypehorizon_brightnessspreadsun_brightnesssun_sizebackscattered_lightsun_intensityatm_turbidityatm_inscattering_factoratm_extinction_factoratm_distance_factorskyblendfacsky_exposuresky_colorspacepad4YF_numphotonsYF_numsearchYF_phdepthYF_useqmcYF_bufsizeYF_padYF_causticblurYF_ltradiusYF_glowintYF_glowofsYF_glowtypeYF_pad2*mtex[18]specrspecgspecbmirrmirgmirbambrambbambgambemitangspectraray_mirroralpharefspeczoffsaddtranslucencyfresnel_mirfresnel_mir_ifresnel_trafresnel_tra_ifiltertx_limittx_falloffray_depthray_depth_traharseed1seed2gloss_mirgloss_trasamp_gloss_mirsamp_gloss_traadapt_thresh_miradapt_thresh_traaniso_gloss_mirdist_mirfadeto_mirshade_flagmode_lflarecstarclinecringchasizeflaresizesubsizeflarebooststrand_stastrand_endstrand_easestrand_surfnorstrand_minstrand_widthfadestrand_uvname[32]sbiaslbiasshad_alphaseptexrgbselpr_typepr_backpr_lampml_flagdiff_shaderspec_shaderroughnessrefracparam[4]rmsdarkness*ramp_col*ramp_specrampin_colrampin_specrampblend_colrampblend_specramp_showrampfac_colrampfac_spec*groupfrictionfhreflectfhdistxyfrictdynamodesss_radius[3]sss_col[3]sss_errorsss_scalesss_iorsss_colfacsss_texfacsss_frontsss_backsss_flagsss_presetYF_arYF_agYF_abYF_dscaleYF_dpwrYF_dsmpYF_presetYF_djitgpumaterialname[256]scale*bbi1j1k1i2j2k2selcol1selcol2quat[4]expxexpyexpzradrad2s*mat*imatelemsdisp**mattotcolwiresizerendersizethreshvec[3][3]alfaweightradiush1h2f1f2f3hidevec[4]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsvtilt_interpradius_interpcharidxkernhnurb*bevobj*taperobj*textoncurve*path*keybevpathlenbevresolwidthext1ext2resolu_renresolv_renspacemodespacinglinedistshearfsizewordspaceulposulheightxofyoflinewidth*strfamily[24]*vfont*vfontb*vfonti*vfontbisepchartotboxactbox*tbselstartselend*strinfocurinfoeffect*mface*mtface*tface*mvert*medge*dvert*mcol*msticky*texcomesh*mselectvdataedatafdatatotedgetotfacetotselectact_facecubemapsizesmoothreshsubdivsubdivrsubsurftype*mr*pv*tpageuv[4][2]col[4]transptileunwrapv1v2v3v4edcodecreasebweightdef_nr*dwtotweightco[3]no[3]pad[3]uv[2]co[2]indexfis[256]v[4]midv[2]*faces*colfaces*edges*edge_boundary_states*vert_edge_map*vert_face_map*map_mem*vertslevelslevel_countcurrentnewlvledgelvlpinlvlrenderlvluse_col*edge_flags*edge_creases*vert_map*edge_map*old_faces*old_edges*errormodifiersubdivTyperenderLevels*emCache*mCachedefaxispad[6]lengthrandomizeseed*ob_arm*start_cap*end_cap*curve_ob*offset_oboffset[3]scale[3]merge_distfit_typeoffset_typecountaxistolerance*mirror_obsplit_anglevalueresval_flagslim_flagse_flagsbevel_angledefgrp_name[32]*texturestrengthdirectionmidleveltexmapping*map_objectuvlayer_name[32]uvlayer_tmp*projectors[10]*imagenum_projectorsaspectxaspectypercentfaceCountfacrepeat*objectcenterstartxstartyheightnarrowspeeddampfallofftimeoffslifetimedeformflagmulti*prevCosparentinv[4][4]cent[3]*indexartotindexforce*clothObject*sim_parms*coll_parms*point_cache*x*xnew*xold*current_xnew*current_x*current_v*mfacesnumvertsnumfacesabsorptiontime*bvhtree*dmoperationvertextotinfluencegridsizeneedbind*bindweights*bindcostotcagevert*dyngrid*dyninfluences*dynverts*pad2dyngridsizedyncellmin[3]dyncellwidthbindmat[4][4]*psystotdmverttotdmedgetotdmfacepsysrt[2]*facepavgroupprotect*fss*target*auxTargetvgroup_name[32]keepDistshrinkTypeshrinkOptsprojAxissubsurfLevels*originfactorlimit[2]originOptspntswopntsuopntsvopntswtypeutypevtypewfufvfwdudvdw*defvec[8][3]partypepar1par2par3parsubstr[32]*track*proxy*proxy_group*proxy_from*action*poselib*poseconstraintChannelsdefbasemodifiersdloc[3]orig[3]dsize[3]drot[3]obmat[4][4]constinv[4][4]laycolbitstransflagipoflagtrackflagupflagnlaflagprotectflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactorrdampingsizefacmarginmax_velmin_velm_contactProcessingThresholddtdtxactcolempty_drawtypepad1[3]empty_drawsizedupfacescapropsensorscontrollersactuatorsbbsize[3]actdefgameflaggameflag2*bsoftsoftflaganisotropicFriction[3]constraintsnlastripshooksparticlesystem*pd*soft*dup_groupfluidsimFlagrestrictflagshapenrshapeflagrecalcobody_type*fluidsimSettings*derivedDeform*derivedFinallastDataMaskstateinit_stategpulampcurindexactivedeflectforcefieldpdef_damppdef_rdamppdef_permpdef_frictpdef_rfrictf_strengthf_powerf_distf_dampmaxdistmindistmaxradminradf_power_rpdef_sbdamppdef_sbiftpdef_sboftclump_facclump_powkink_freqkink_shapekink_ampfree_endtex_nablatex_modekinkkink_axisrt2*rngf_noisesimframestartframeendframeeditframelinStiffangStiffvolumeviterationspiterationsditerationsciterationskSRHR_CLkSKHR_CLkSSHR_CLkSR_SPLT_CLkSK_SPLT_CLkSS_SPLT_CLkVCFkDPkDGkLFkPRkVCkDFkMTkCHRkKHRkSHRkAHRcollisionflagsnumclusteriterationswelding*particlestotpointtotspring*bpoint*bspringnodemassgravmediafrictrklimitphysics_speedgoalspringgoalfrictmingoalmaxgoaldefgoalvertgroupfuzzynessinspringinfrictefraintervallocalsolverflags**keystotpointkeysecondspringcolballballdampballstiffsbc_modeaeroedgeminloopsmaxloopschokesolver_IDplasticspringpreload*scratchshearstiffinpush*pointcacheshow_advancedoptionsresolutionxyzpreviewresxyzrealsizeguiDisplayModerenderDisplayModeviscosityValueviscosityModeviscosityExponentgravxgravygravzanimStartanimEndgstarmaxRefineiniVelxiniVelyiniVelz*orgMesh*meshSurface*meshBBsurfdataPath[240]bbStart[3]bbSize[3]typeFlagsdomainNovecgenvolumeInitTypepartSlipValuegenerateTracersgenerateParticlessurfaceSmoothingsurfaceSubdivsparticleInfSizeparticleInfAlphafarFieldSize*meshSurfNormalscpsTimeStartcpsTimeEndcpsQualityattractforceStrengthattractforceRadiusvelocityforceStrengthvelocityforceRadiuslastgoodframemistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposureexprangelinfaclogfacgravityactivityBoxRadiusskytypeocclusionResphysicsEngineticratemaxlogicstepphysubstepmaxphystepmisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxaodistaodistfacaoenergyaobiasaomodeaosampaomixaocolorao_adapt_threshao_adapt_speed_facao_approx_errorao_approx_correctionao_samp_methodao_gather_methodao_approx_passes*aosphere*aotableshemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammaselcolsxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizeqtcodecname[128]codecaudio_codecvideo_bitrateaudio_bitrategop_sizerc_min_raterc_max_raterc_buffer_sizemux_packet_sizemux_ratemixratemain*mat_override*light_overridelay_zmasklayflagpassflagpass_xor*avicodecdata*qtcodecdataffcodecdatacfrapsfrapefraimagesframaptothreadsframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1stereomodedimensionspresetmaximsizexschyschxpartsypartswinposplanesimtypesubimtypequalityrpadrpad1rpad2scemoderendererocresalphamodeosafrs_secedgeintsafetyborderdisprectlayersactlayxaspyaspfrs_sec_basegausspostmulpostgammaposthuepostsatdither_intensitybake_osabake_filterbake_modebake_flagbake_normal_spacebake_quad_splitbake_maxdistbake_biasdistbake_padGIqualityGIcacheGImethodGIphotonsGIdirectYF_AAYFexportxmlYF_nobumpYF_clamprgbyfpad1GIdepthGIcausdepthGIpixelspersampleGIphotoncountGImixphotonsGIphotonradiusYF_raydepthYF_AApassesYF_AAsamplesyfpad2GIshadowqualityGIrefinementGIpowerGIindirpowerYF_gammaYF_exposureYF_raybiasYF_AApixelsizeYF_AAthresholdbackbuf[160]pic[160]stampstamp_font_idstamp_udata[160]fg_stamp[4]bg_stamp[4]simplify_subsurfsimplify_shadowsamplessimplify_particlessimplify_aossscineonwhitecineonblackcineongammajp2_presetjp2_depthrpad3domeresdomemodedomeangledometiltdomeresbuf*dometextparticle_percsubsurf_maxshadbufsample_maxao_errorcol[3]framename[64]*brushtoolseam_bleednormal_anglestepinverttotrekeytotaddkeybrushtypebrush[7]emitterdistdraw_timedname[36]mat[3][3]cornertypeeditbutflagjointrilimitdegrturnextr_offsdoublimitsegmentsringsverticesunwrapperuvcalc_radiusuvcalc_cubesizeuvcalc_marginuvcalc_mapdiruvcalc_mapalignuvcalc_flagautoik_chainlenimapaintparticleselect_threshclean_threshretopo_moderetopo_paint_toolline_divellipse_divretopo_hotspotmultires_subdiv_typeskgen_resolutionskgen_threshold_internalskgen_threshold_externalskgen_length_ratioskgen_length_limitskgen_angle_limitskgen_correlation_limitskgen_symmetry_limitskgen_retarget_angle_weightskgen_retarget_length_weightskgen_retarget_distance_weightskgen_optionsskgen_postproskgen_postpro_passesskgen_subdivisions[3]skgen_multi_level*skgen_templatebone_sketchingbone_sketching_convertskgen_subdivision_numberskgen_retarget_optionsskgen_retarget_rollskgen_side_string[8]skgen_num_string[8]edge_modepad3[2]dirview*session*cumapdrawbrushsmoothbrushpinchbrushinflatebrushgrabbrushlayerbrushflattenbrushpivot[3]brush_typetexnrtexrepttexfadetexsepaveragingtablet_sizetablet_strengthsymmrakeaxislock*camera*world*setbase*basactcursor[3]twcent[3]twmin[3]twmax[3]editbutsizeselectmodeproportionalprop_modeautomergepad5pad6autokey_mode*ed*radioframing*toolsettingsaudiotransform_spacesjumpframesnap_modesnap_flagsnap_target*theDagdagisvaliddagflagssculptdataframe_stepzoomblendximyimspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]zfaclay_usedpersp*ob_centre*bgpic*localvd*ri*retopo_view_data*depthsob_centre_bone[32]localviewlayactscenelockaroundcamzoompivot_lastgridgridviewpixsizenearfarcamdxcamdygridlinesviewbutgridflagmodeselecttwtypetwmodetwflagtwdrawflagtwmat[4][4]clip[4][4]*clipbbafterdrawzbufxrayflag2gridsubdivkeyflagsndofmodendoffilter*properties_storage*gpdlviewquat[4]lpersplviewverthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinycursor[2]rowbutv2d*editipoipokeyactname[32]constname[32]bonename[32]totipopinbutofschannellockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexfromshowgroupmodeltypescriptblockre_alignoldkeypresstab[7]render_sizechanshownzebra*filelisttotfiletitle[24]dir[240]file[80]ofssortmaxnamelencollumsf_fpfp_str[8]*libfiledataretvalmenuact(*returnfunc)()(*returnfunc_event)()(*returnfunc_args)()*arg1*arg2*menup*pupmenuoopsvisiflagtree*treestoresearch_string[32]search_tsesearch_flagsdo_outlinevisstoreflagdeps_flagsimanrcurtileimtypenrdt_uvstickydt_uvstretchpad[5]centxcentyautosnap*texttopviewlinesfont_idlheightleftshowlinenrstabnumbercurrtab_setshowsyntaxoverwritepix_per_linetxtscrolltxtbarwordwrapdoplugins*py_draw*py_event*py_button*py_browsercallback*py_globaldictlastspacescriptname[256]scriptarg[256]*script*but_refsredraws*idaspect*curfont*edittreetreetype*filesactive_filenumtilesxnumtilesyselstateviewrectbookmarkrectscrollposscrollheightscrollareaactive_bookmarkprv_wprv_h*imgoutline[4]neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]textfield_hi[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeiconfile[80]back[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]lamp[4]active[4]group[4]group_active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]edge_seam[4]edge_sharp[4]edge_facesel[4]face[4]face_select[4]face_dot[4]normal[4]bone_solid[4]bone_pose[4]strip[4]strip_select[4]cframe[4]vertex_sizefacedot_sizebpad[2]syntaxl[4]syntaxn[4]syntaxb[4]syntaxv[4]syntaxc[4]movie[4]image[4]scene[4]audio[4]effect[4]plugin[4]transition[4]meta[4]editmesh_active[4]handle_vertex[4]handle_vertex_select[4]handle_vertex_sizehpad[7]solid[4]tuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsttimetnodetarm[20]bpad[4]bpad1[4]spec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]yfexportdir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefviewzoomconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[256]themesundostepsundomemorygp_manhattendistgp_euclideandistgp_erasergp_settingstb_leftmousetb_rightmouselight[3]tw_hotspottw_flagtw_handlesizetw_sizetextimeouttexcollectratememcachelimitprefetchframesframeserverportpad_rot_angleobcenter_diarvisizervibrightrecent_filessmooth_viewtxglreslimitndof_panndof_rotatecurssizepad[8]versemaster[160]verseuser[160]glalphaclipautokey_flagcoba_weightvertbaseedgebaseareabase*sceneendxendysizexsizeyscenenrscreennrfullmainwinwinakthandler[8]*newvvec*v1*v2panelname[64]tabname[64]drawname[64]ofsxofsycontrolsnapold_ofsxold_ofsysortcounter*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanelssubvstr[4]subversionpadsminversionminsubversiondisplaymode*curscreen*curscenefileflagsglobalfname[80]*ibuf*ibuf_comp*se1*se2*se3nrbottomrightxofsyofslift[3]gamma[3]gain[3]saturation*guidir[160]donestartstillendstill*stripdataorxory*crop*transform*color_balance*tstripdata*tstripdata_startstill*tstripdata_endstill*ibuf_startstill*ibuf_endstill*instance_private_data**current_private_data*tmpstartofsendofsmachinestartdispenddispmulhandsizeanim_preseek*stripfacf0facf1*seq1*seq2*seq3seqbase*sound*hdaudiolevelpanstrobe*effectdataanim_startofsanim_endofsblend_modeblend_opacity*oldbasep*parseq*seqbasepmetastackedgeWidthforwardwipetypefMinifClampfBoostdDistdQualitybNoCompScalexIniScaleyIniScalexFinScaleyFinxInixFinyIniyFinrotInirotFininterpolation*frameMapglobalSpeedlastValidFramebuttypeuserjitstatotpartnormfacobfacrandfactexfacrandlifeforce[3]vectsizemaxlendefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstepomattimetexspeedtexflag2negvertgroup_vvgroupname[32]vgroupname_v[32]*keysminfacusedusedelemdxdylinkotypeold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]delaydurationmaterialName[32]damptimerpropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linkstapjoyindexaxis_singleaxisfbuttonhathatfprecisionstr[128]module[64]*mynewinputstotslinks**slinksvalostate_mask*actframeProp[32]blendinpriorityend_resetstrideaxisstridelengthsndnrpad1[2]makecopycopymadepad2[1]track*melinVelocity[3]angVelocity[3]localflagdyn_operationforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]*referencebutstabutendminmaxvisifacrotdampminloc[3]maxloc[3]minrot[3]maxrot[3]matprop[32]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]int_argfloat_arggoaccellerationmaxspeedmaxrotspeedmaxtiltspeedtiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*lamprengobjectdupli_ofs[3]childbaserollhead[3]tail[3]bone_mat[3][3]arm_head[3]arm_tail[3]arm_mat[4][4]xwidthzwidthease1ease2rad_headrad_tailbonebasechainbasepathflaglayer_protectedghostepghostsizeghosttypepathsizeghostsfghostefpathsfpathefpathbcpathacconstflagikflagselectflagagrp_index*bone*childiktree*b_bone_mats*dual_quat*b_bone_dual_quatschan_mat[4][4]pose_mat[4][4]pose_head[3]pose_tail[3]limitmin[3]limitmax[3]stiffness[3]ikstretch*customchanbaseproxy_layerstride_offset[3]cyclic_offset[3]agroupsactive_groupcustomColcs*grpreserved1groupsactive_markeractnractwidthtimeslidename[30]ownspacetarspaceenforceheadtail*tarsubtarget[32]matrix[4][4]space*proptarnumtargetsiterationsrootbonemax_rootbone*poletarpolesubtarget[32]poleangleorientweightgrabtarget[3]reserved2minmaxflagstuckcache[3]lockflagfollowflagvolmodeplaneorglengthbulgepivXpivYpivZaxXaxYaxZminLimit[6]maxLimit[6]extraFzinvmat[4][4]fromtomap[3]expofrom_min[3]from_max[3]to_min[3]to_max[3]zminzmaxpad[9]channel[32]no_rot_axisstride_axiscurmodactstartactendactoffsstridelenblendoutstridechannel[32]offs_bone[32]hasinputhasoutputdatatypesockettype*new_socknslimitstack_indexinternstack_index_extlocxlocyown_indexto_index*tosock*link*new_nodeusername[32]lastyoutputs*storageminiwidthcustom1custom2custom3custom4need_execexectotrbutrprvr*typeinfo*fromnode*tonode*fromsocknodeslinks*stack*threadstackinitstacksizecur_indexalltypes*owntype*selin*selout(*timecursor)()(*stats_draw)()(*test_break)()cyclicmoviesamplesminspeedpercentxpercentybokehcurvedimage_in_widthimage_in_heightcenter_xcenter_yspiniterwrapsigma_colorsigma_spacehuesatt1t2t3fstrengthfalphakey[4]x1x2y1y2colname[32]bktyperotationpreviewgamcono_zbuffstopmaxblurbthresh*dict*nodeangle_ofscolmodmixthresholdfademcjitprojfitshortymintablemaxtableext_in[2]ext_out[2]*curve*table*premultablecurrcliprcm[4]black[3]white[3]bwmul[3]sample[3]offset[2]innerradiusratergb[3]cloneactive_rndactive_cloneactive_mask*layerstotlayermaxlayertotsize*pooleditflagvel[3]rot[4]ave[3]numparentpa[4]w[4]fuv[4]foffsetrand[3]*stick_obprev_state*hairi_rot[4]r_rot[4]r_ave[3]r_ve[3]dietimebanksizemulnum_dmcachebpialiveloopdistrphystyperotmodeavemodereacteventdrawdraw_asdraw_sizechildtypedraw_stepren_stephair_stepkeys_stepadapt_angleadapt_pixrotfromintegratornbetweenboidneighboursbb_alignbb_uv_splitbb_animbb_split_offsetbb_tiltbb_rand_tiltbb_offset[2]simplify_flagsimplify_refsizesimplify_ratesimplify_transitionsimplify_viewporttimetweakjitfackeyed_timeeff_hairgrid_respartfactanfactanphasereactfacavefacphasefacrandrotfacrandphasefacrandsizereactshapeacc[3]dragfacbrownfacdampfacabslengthrandlengthchild_nbrren_child_nbrparentschildsizechildrandsizechildradchildflatchildspreadclumpfacclumppowrough1rough1_sizerough2rough2_sizerough2_thresrough_endrough_end_shapebranch_thresdraw_line[2]max_lat_accmax_tan_accaverage_velbankingmax_bankgroundzboidfac[8]boidrule[8]*eff_group*dup_ob*bb_ob*pd2*part*edit**pathcache**childcachepathcachebufschildcachebufs*target_ob*keyed_ob*latticeeffectorsreacteventstotchildtotcachedtotchildcachetarget_psyskeyed_psystotkeyedbakespacebb_uvname[3][32]vgroup[12]vg_negrt3*renderdata*cacheCdisCvi[3]structuralbendingmax_bendmax_structmax_shearavg_spring_lentimescaleeff_force_scaleeff_wind_scalesim_time_oldstepsPerFrameprerollmaxspringlensolver_typevgroup_bendvgroup_massvgroup_structpresets*collision_listepsilonself_frictionselfepsilonself_loop_countloop_countpressure*pointstotpointsthicknessstrokesframenum*actframegstepinfo[128]sbuffer_sizesbuffer_sflag*sbufferTYPEdcharucharshortushortintlongulongfloatdoublevoidLinkLinkDataListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDPropertyDataIDPropertyIDLibraryFileDataPreviewImageIpoDriverObjectIpoCurveBPointBezTripleIpoKeyBlockKeyScriptLinkTextLineTextMarkerTextPackedFileCameraImageUserImageGPUTextureanimRenderResultMTexTexPluginTexCBDataColorBandEnvMapImBufbNodeTreeTexMappingLampCurveMappingWaveMaterialGroupVFontVFontDataMetaElemBoundBoxMetaBallNurbCharInfoTextBoxCurvePathMeshMFaceMTFaceTFaceMVertMEdgeMDeformVertMColMStickyMSelectCustomDataMultiresPartialVisibilityMDeformWeightMTexPolyMLoopUVMLoopColMFloatPropertyMIntPropertyMStringPropertyOrigSpaceFaceMultiresColMultiresColFaceMultiresFaceMultiresEdgeMultiresLevelMultiresMapNodeModifierDataSubsurfModifierDataLatticeModifierDataCurveModifierDataBuildModifierDataMaskModifierDataArrayModifierDataMirrorModifierDataEdgeSplitModifierDataBevelModifierDataBMeshModifierDataDisplaceModifierDataUVProjectModifierDataDecimateModifierDataSmoothModifierDataCastModifierDataWaveModifierDataArmatureModifierDataHookModifierDataSoftbodyModifierDataClothModifierDataClothClothSimSettingsClothCollSettingsPointCacheCollisionModifierDataBVHTreeSurfaceModifierDataDerivedMeshBVHTreeFromMeshBooleanModifierDataMDefInfluenceMDefCellMeshDeformModifierDataParticleSystemModifierDataParticleSystemParticleInstanceModifierDataExplodeModifierDataFluidsimModifierDataFluidsimSettingsShrinkwrapModifierDataSimpleDeformModifierDataLatticebDeformGroupbActionbPoseBulletSoftBodyPartDeflectSoftBodyObHookRNGSBVertexBodyPointBodySpringSBScratchWorldRadioBaseAviCodecDataQuicktimeCodecDataFFMpegCodecDataAudioDataSceneRenderLayerRenderDataRenderProfileGameFramingTimeMarkerImagePaintSettingsBrushParticleBrushDataParticleEditSettingsTransformOrientationToolSettingsBrushDataSculptDataSculptSessionSceneDagForestBGpicView3DSpaceLinkScrAreaRenderInfoRetopoViewDataViewDepthsbGPdataView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsTreeStoreTreeStoreElemSpaceImageSpaceNlaSpaceTextScriptSpaceScriptSpaceTimeSpaceNodeSpaceImaSelFileListThemeUIThemeSpaceThemeWireColorbThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemTStripElemStripCropStripTransformStripColorBalanceStripColorBalanceGUIHelperStripProxyStripPluginSeqSequencebSoundhdaudioMetaStackEditingWipeVarsGlowVarsTransformVarsSolidColorVarsSpeedControlVarsEffectBuildEffPartEffParticleWaveEffOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbActuatorSensorbDelaySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbJoystickSensorbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorbTwoDFilterActuatorbParentActuatorbStateActuatorFreeCamerabSamplebSoundListenerSpaceSoundGroupObjectBonebArmaturebPoseChannelbActionGroupbActionChannelSpaceActionbConstraintChannelbConstraintbConstraintTargetbPythonConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbMinMaxConstraintbSizeLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbStretchToConstraintbRigidBodyJointConstraintbClampToConstraintbChildOfConstraintbTransformConstraintbLocLimitConstraintbRotLimitConstraintbSizeLimitConstraintbDistLimitConstraintbShrinkwrapConstraintbActionModifierbActionStripbNodeStackbNodeSocketbNodeLinkbNodebNodePreviewbNodeTypeNodeImageAnimNodeBlurDataNodeDBlurDataNodeBilateralBlurDataNodeHueSatNodeImageFileNodeChromaNodeTwoXYsNodeTwoFloatsNodeGeometryNodeVertexColNodeDefocusNodeScriptDictNodeGlareNodeTonemapNodeLensDistTexNodeOutputCurveMapPointCurveMapBrushCloneCustomDataLayerHairKeyParticleKeyChildParticleParticleDataParticleSettingsParticleEditParticleCacheKeyLinkNodebGPDspointbGPDstrokebGPDframebGPDlayerTLEN   `HH(0p$8p(0 @x8Ph`hP0@  p0 @ `@XhpPpPHxHHhxx@` PP`PPPx0Hx((8X@XHX@@X0 0x0 x8@8( ((P0@ H 0 0 H@@P00Hh(H,(lH`h<PP` XPpT `@8p(X(XX8PPp800H0H08hp`8H(0( (@   8H8H (STRC9                     !"#$%&'()*+, -./0!!!"1#234./56789  :;<=>$ ?@.AB%%%%C=/DEF GHIJ& %KLM= N$OPQR'STUV%(((WXY) ))Z[\+]^_*`]a b(c(def ghij kl+mn]% ,opqrstuvwxyz{|$O'} ~- . " /01%++ 2 394   %5C@6$@57 .8qr38-9$O.467:    -;P  <Fqr !"#$%&'()*+,-.+/0123456789:;<=>?@ABCDEFGHIJKL2M$O'}=$O>NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw xyz{|}~/@66 2M9$O?F'} @%A+BBBCDC  $O># "%EEE"1#2F%FGH9C     $OI&> FbC    @ @@@%GFFJ'C $O&>KLMNOPQ R!J"S#T$T%T&6'()*+%,-./U0V1 M 2345 67K89:;%<O89=>W?PW@ANBC>DQX.25 67YEZ%RFSGL3.25 67[H\I]J^3_`_4aKLbMLcccaN`ObPQ R SdT6('%NUU VNUWXYZ[\]T$T&^_V`aKbOc('6%eee dfeefVg] h igee hee jkiee[lmnjee oH k ee p q r stulvwx]yleez{ |mee}]n ee~%]oee%p ee3 %q ee .]%reeseetee muee 3 %+veeF w ee xeeyeez{|}~eeNNNNNNK%eeee %ee %6ee9ee -eeee} ee  k ee  z%F%"$O&PC% o &    $OIC      >      !"#$%'} & ' ( )*G+4,-./0 1 2 3 456?789:;,<=>?@ABCF D & EF$GHIJKLMNOPQRSTUVWXYZ[\]^_`abcd3efn}ghijklmnopqrstuvwxyz{|}~,%Q}0JJJ$ONG/TVU      +$O2M'} !"#$%&'( ) *+,-./0123%4 5 67F8 9:;<=]>?@ABCDD >E?FGH%IJKLMNOPQRSTUVWXYZ[\]^d_`"mabcdefghi#jklmn opqrstuvw xy%z{|}~ F* +F+F m8%   m   2M</] !+ "#$. %&'()*+,-./0129 34567'} g 89:;<=>?@@A% .- mBCDEKFGHIJKLMNOPQRS  " TUVWXYZ[\]^_`+sabcdefg'hijklmnopqCr st5uvwxyz {|}~01$@^kFGHIFGHIFGHIF  $OPA.$FGHWI  %/FGHI B|!FGHI+F     FGHI 9  FGHI.-< ,B | FGHIFGHI*]      ] FGH]+ FGHFGHIP  99%|*FGHI f%+     8     D6 !"#$%&'()*+,-./012345_6789:;<=>?@ABCDEFGHIJK "%LMNOPQRSTUVWXYZ[\]^%4_B`abcdefghijklmnopqrstuvwxyz{ |}~%26   % v%F4F'}    f  88  %0mj%988      +  [$O0          %9p !"# $%&'()*+,-.%/0]l12929-234\5Qn6789:;<=%>?@ABCDEFGHvIJKLM?2NOEP QR S TU% V WXY%+F>Z%[\]^_%`a%bc%de Fpznbfg +h ijkTlmn+F o -p% qzrstuvwx*y z{nT|F  o}~% - 4\ 4\  4\m   -J % " ` -  T  4\+@ -z  % 4\D@?nf j+Fk4\_* - zT  - % ++ $Om]FGH   F - %? & l   "   1  &        %!!! """!$O    g%#FGHI $$$$O % %%      %$O& && %'*  (  ) ]%* + , +F - . [\%/ !0 "1 #$%&2  '()*+,-./%+F3 v4 %05 123456786    9:v7    9:v8    9:v9  %: ;; ;;<= -<<< >?$O [\@ABCDEF = GHIJ>>>>K=LMNOP+QRST>U?V@ @@@WXYN { Z [QR\]^_`abcdeABf???@g@h>i>U9 j k=l mnop qBr>s>t u vwCxy%Dz{D|}"~%%E pB%F%GHhij9IJKLMN zO  P jpmQ[%HR%STU TTT< @UV.\% Cm\/%2MVW F_ TW% XB%YBZ[ YBYXYMm%Qd\p1F.bc4\:  953 678        m      l            ^\]    ! " # $ % & ' ( ) * + , - ?7?. / 0 $O51 %\2 [Z]3 ^4 ^5 6 7 6 8 9 : ; < Nn5= > ? 9@ A B /C D E F G H }{"_I J K L M N O P Q R S T U V W ]X Y Z [ \ ] ^ %F|__ ` a b ]c d `e aaa`f g h bbb i j c cc bk h l ^m  xn o p ENDBphatch-0.2.7/data/blender/box.blend0000644000000000000000000043123411346363116017062 0ustar rootroot00000000000000BLENDER_v249REND SceneGLOB  201 SRxPg00SR1-Animation:*p>*>* m0n,s,1 DATA:*;*DATA;*X;*:* DATAX;*;*;* DATA;*;*X;*DATA;*0<*;*DATA0<*x<*;*DATAx<*<*0<*DATA<*=*x<*DATA=*P=*<*DATAP=*=*=*DATA=*=*P=*DATA=*(>*=*DATA(>*p>*=*DATAp>*(>*DATA>*?*;*X;*DATA?*H?*>*:*;*DATAH?*?*?*;*0<*DATA?*h0H?*X;*x<*DATAh0Xh0?*0<*x<*DATAXh0h0h0;*<*DATAh0h0Xh0x<*=*DATAh00i0h0<*=*DATA0i0xi0h0;*x<*DATAxi0i00i0:*P=*DATAi0j0xi0;*=*DATAj0Pj0i0;*=*DATAPj0j0j0P=*=*DATAj0j0Pj0<*=*DATAj0(k0j00<*(>*DATA(k0pk0j0=*(>*DATApk0k0(k0=*(>*DATAk0l0pk0P=*p>*DATAl0Hl0k0=*p>*DATAHl0l0l0;*=*DATAl0l0Hl0=*p>*DATAl0 m0l00<*P=*DATA m0l0(>*p>*DATAn,o,:*P=*=*;*O000P660DATAP66x0Link and MaterialsEditing>DATAx0(y0P66MeshEditingF>DATA(y0@z0x0Anim settingsObject>DATA@z0X{0(y0DrawObjectF>DATAX{0p|0@z0ConstraintsObject>DATAp|0}0X{0EffectsObjectDATA}0~0p|0HooksObjectF>@z0DATA~00}0Particle InteractionObject>X{0DATA0Ѐ0~0SoftbodyObject>X{0DATAЀ000OutputRender>DATA00Ѐ0RenderRenderF>DATA000AnimRender>DATA00FormatRender>DATA000333?F@DhCDhCC(BDC?z?DATA000333?F/9DATAo,p,n,0<*;*X;*x<* !  DATAp,q,o,=*(>*=*<*G==o?,0H0`0DATAH0`0Transform PropertiesView3d>DATA`0H03D Viewport propertiesView3d>"DATA,0333?+N????????G==o? A*A?G==o??????*A86 B??=C ݢM@ݢM@ݢM@? DATA0,333?+N/9DATAq,r,p,<*=*x<*;*??PףH00x0x0DATAx0Transform PropertiesIpo!>DATAX0t.333?+P.zC̽̌?zC@ #< #<`jFzD OBzC̽̌?DATAt.00333?+P.CC|||??l|DATA0ؘ0t. 333?+P.zCCHBC|||?CFC= ADATAؘ000 333?+P. =rttDATA0p0ؘ0 333?+P.?zDzDBCl||ll|zDzD=HB DATAp0,0 333?+P.BzB@l|llFzD #<HB DATA,0p0333?+P.??? ???? A???PA A!O?j?}GCHB? A86 B? #<C DATA0,333?+P./9DATAr,s,q,p>*=*;*=* `0000DATA00Link and MaterialsEditing>DATA00MeshEditingF>DATA`080333?+U&zCB{ µCB ?BFB= ADATA800`0 333?+U&zCCHBC$?CFC= ADATA0080333?+U&#DhC`DpJgChCC(BDC?z?DATA00333?+U&/9DATAs,r,P=*0<*(>*p>*} ?=o?.u.0،00DATA،00Transform PropertiesView3d>DATA0،03D Viewport propertiesView3d>"DATAu.h ,333?,DATA 0800LampLampF>DATA80P0 0SpotLamp>DATAP0h080Texture and InputLamp>DATAh00P0Map ToLamp>P0DATA00h0PreviewMaterial>dDATA000MaterialMaterialF>dDATA000PreviewWorld>DATA000WorldWorldF>DATA000Mist Stars PhysicsWorld>DATA0ȡ00Texture and InputWorld>DATAȡ000Map ToWorld>0DATA00ȡ0OutputRender>DATA000RenderRenderF>DATA0(00AnimRender>DATA(0@00FormatRender>DATA@0X0(0Link and MaterialsEditing>ODATAX0p0@0MeshEditingF>ODATAp00X0Mesh ToolsEditing>ODATA00p0Mesh Tools 1Editing>DATA000CameraEditingF>DATA0Э00ShadersMaterial>d 0DATAЭ000TextureMaterial>dDATA00Э0Anim settingsObject>DATA000DrawObject>DATA0000ConstraintsObject>DATA00H00ScriptlinksScript>DATAH0`000EffectsObject0DATA`0x0H0Map InputMaterial>dЭ0DATAx00`0Map ToMaterial>dЭ0DATA00x0AnimAnim>DATA000SoundSound>DATA0ع00ListenerSoundF>DATAع000SequencerSound>DATA00ع0ArmatureEditingF>DATA0 00RampsMaterialF>d0DATA 000Mirror TranspMaterial>dDATA00 0Mist / Stars / PhysicsWorld>DATA000Amb OccWorld>0DATA000Shadow and SpotLamp>DATA000ModifiersEditing>ODATA000ShapesEditing>O0DATA000MultiresEditing>ODATA0(00Mesh Tools MoreEditing^>ODATA(0@00UV CalculationEditing>O0DATA@0X0(0Curve and SurfaceEditingF>DATAX0p0@0FontEditingDATAp00X0Render LayersRender>0DATA00p0BakeRender>0DATA000StampRender>(0DATA000Object and LinksObjectF>DATA000Links and PipelineMaterial>dDATA000SSSMaterial>d 0DATA000PreviewTexture>DATA0000TextureTextureF>DATA00H00ColorsTextureF>0DATAH0`000ImageTexture>DATA`0x0H0Map ImageTexture>DATAx0`0Texture FaceEditing>O0DATA0#,333?t,*DhCjDrI2eCC(BDC?z?Wx1mDATA#,v.0333?t,??? ???? A??@PA Aj?c3>}GCHB? A86 B? #<C DATAv.0#,333?t,HE}CHE}C HE}C??DATA0v.333?t,Load LibraryC:\Users\jutuveps\My Projects\phatch\data\blender\scene.blend\Object\titled.blend\Bounding BoxendODATAu,v,t,o0m0m0`o0VVVW]0]0DATAv,w,u,o08p0p0n0?UU? JLV;V/V0;  `.0h0/h0/00DATA00Transform PropertiesView3d,>DATA00View PropertiesView3dT>"DATA`.0x.333?v,CCOY?? d #?DATA0x.0`.333?v,C+C+HEVD??((((5DATA 5ȋ5DATADȋ5111116@1 1x116686H66X61666(6p~77p7H733DATA0P00x.333?v,A'?ڧ3AAV3A']?4N>m4?A'?A3?AA'4,Pnn??6?w3jA?A?S3R'?A'?݌rTU?t?jA4A?114h4Ch^?TBA&\¯R@[@?UU? JLA'?ڧ3AAV3A']?4N>m4?$?$Ĺ>Ź>A0'@86 B??;=C=m7?X<???? ?DATAXP0h10333?v,zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATAh10P0 333?v,?zDzB@22FzD #<HB DATA00h1333?v,DdC8CnD fCC(BDC?z?DATA00333?v, SELECT IMAGE PICTURES/home/jutuveps/py_tests/blender//ender.app/Contents/Resources/box.png.blend =G!Il'Il'DATAw,x,v,n0o0o0o02>2V?o?/0 U00N01/00DATA00Transform PropertiesView3daint Propertieshr>"DATA00View PropertiesView3dT>"DATA0hy.333?w,k8F/?b1?| $!?JbN?7=?k8b1?<D/y Jb??$!?>Yj>rQ}>?nv>#:>X-%:?T7 >R߾?,4?0T=nl־?16]Xj>rQ}>?2>2V?o?k8F/?b1?| $!?JbN?7=?ܟ>ۥR7KoL)@?86 B??;=CYjqQ?}7?X<??? ;;?8 H+DATAhy.00333?w,@0AffQBRYCA?p5B88 A@CC #<@8P.pR.5DATA,P.P.SCff1DATA,P.PQ.P.OB6DATA,PQ.Q.P.ME@|A@1DATA,Q.R.PQ.MAffA 1DATA,R.pR.Q.MAffAx1DATA,pR.R.TE@¸B1DATA 5^^X1DATAhX1^111116@1 1x11  1      11111@11111 1@111 1DATAX0#1hy.333?w,zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATA#1 00 333?w,?zDzB@22FzD #<HB DATA 00#1333?w,DdC8CnD fCC(BDC?z?DATA0 0333?w, Save AseNT PICTURES/home/stani/sync/python/phatch/trunk/data/blender/ts/Resources/box.blenddendKDATAx,w,8p0o0`o0p0#g?gfU@AHMV=V=WVX xP0E183/83/$1&1DATA$1&1Transform PropertiesView3d,>DATA&1$1View PropertiesView3dT>"DATAP0z.333?x,/;3@??i!"4,;i!"?/;30L?.;3?i!"-;i!"4??-;@3@??)3 A#g?&5d<3,;33gfU@g&   ן(A6;3( @(@#g?gfU@AHM/;3@??i!"4,;i!"?/;30L??A0'@86 B??ɣ;=C=m7?X<X??X??X?? ;;? $?$Ĺ>Ź>DATAz.`!0P0333?x,C+CXHEVD??05DATA 05{.DATA{.111116@1 1x116686H66X6DATAX`!0D1z.333?x,zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATAD1('1`!0 333?x,?zDzB@22FzD #<HB DATA('1E1D1333?x,DdC8CnD fCC(BDC?z?DATAE1('1333?x, SELECT IMAGE PICTURES/home/jutuveps/py_tests/blender//ender.app/Contents/Resources/box.png.blend =G!Il'Il'SRxi10|10SR3-Materialodel Sing v0l1l1s1y,~,1 DATA v0hv0DATAhv0v0 v0 DATAv0v0hv0 DATAv0@w0v0DATA@w0w0v0<DATAw0j1@w0<DATAj1j1w0DATAj1 k1j1DATA k1hk1j1,<DATAhk1k1 k1,DATAk1k1hk1DATAk1@l1k1,DATA@l1l1k1DATAl1@l1DATAl1m1hv0v0DATAm1`m1l1 v0v0DATA`m1m1m1 v0@w0DATAm1m1`m1v0w0DATAm18n1m1@w0w0DATA8n1n1m1hv0j1DATAn1n18n1v0j1DATAn1o1n1j1j1DATAo1Xo1n1w0j1DATAXo1o1o1@w0 k1DATAo1o1Xo1w0 k1DATAo10p1o1j1hk1DATA0p1xp1o1 k1hk1DATAxp1p10p1@w0k1DATAp1q1xp1j1k1DATAq1Pq1p1hk1k1DATAPq1q1q1 k1k1DATAq1q1Pq1k1k1DATAq1(r1q1k1@l1DATA(r1pr1q1k1@l1DATApr1r1(r1j1l1DATAr1s1pr1hk1l1DATAs1r1@l1l1DATAy,z, v0@w0w0v0?@Pף;;!xz1G1@(1+1DATA@(1X)1OutputRender>DATAX)1p*1@(1RenderRenderF>DATAp*1+1X)1AnimRender>DATA+1p*1FormatRender>DATAxz1P{1333?w.~CA~CA!?AFA= ADATAP{1,1xz1 333?w.zCCHBC ?CFC= ADATA,10P{1333?w.DhC?DhCC(BDC?z?mDATA0}.,1333?w.??? ???? A??@PA Aj?c3>}GCHB? A86 B? #<C DATA}.G10333?w.@̌AR|B1@lA A@CC #<@DATAG1}.333?w./9DATAz,{,y,j1hv0v0j1 !  DATA{,|,z, k1hk1j1w0G@? JL-=-=W-X~:1I1-191DATA-1.1OutputRender>DATA.1/1-1RenderRender>DATA/111.1AnimRender0>DATA1121/1FormatRenderH>DATA2103111PreviewMaterial>DATA031H4121MaterialMaterial>DATAH41`51031ShadersMaterial0>DATA`51x61H41TextureMaterialD>DATAx6171`51Map InputMaterial\>DATA7181x61Map ToMaterial`>DATA819171RampsMaterial>031DATA9181Mirror TranspMaterialH>DATA:1 0333?|ChCCvgCC(BDC?z?DATA 0"0:1333?|J>H!?)xu?i6>Pbܗ=(?^L?a?滎z?J>#xu?ܗ=Hi6>(? ?Pb^L?\FAA?4[?[!?@jG>gb>Pb>4Im>k&?]M^L<0@AzA=>Kc<2֍7&> ?:x¸A1vB,jB~@G@? JLJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?@?$$OA86 B?=Ch?j(4?t'>d DATAX"0I1 0333?|zC AzC A #< #<`jFzD OBDATAI1"0333?|;SAVE FILE/usr/home/intrr/blender/blend/untitled.blendDATA|,},{,@w0k1k1 k1U.=w=o?+=+=W+X,X0K1DATA0;1333????h?j(4?t'>????hj(4t'?U.=w=o??OA86 B??=Ch?j(4?t'>dEh@Eh@Eh@? DATA;1p$00333?DdC>9C,DeCC(BDC?z?DATAXp$0K1;1333?zC AzC A #< #<`jFzD OBDATAK1p$0333? SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATA},~,|,@l1l1hk1k1e?B$?AHM+++US0M1DATA0=1333?+>ݕ/?U~'?3F:?>T8165e?2>Z& 4?ߕ/?7F:?81W~>85e?'?T2>ne@>M@?4z?'''䷄?K??T?v|@?l211A 4Atp>?@@FC>G ?4xB֟&BĭeA(@e?B$?AHMݕ/?U~'?3F:?>T8165e?2>Z& 4?H?N,Z#OA86 B??=Ch?j(4?t'>dA@A@A@? DATA=1%00333?+>DdC>9C,DeCC(BDC?z?DATAX%0M1=1333?+>zC AzC A #< #<`jFzD OBDATAM1%0333?+> SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATA~,},k1j1l1@l1&=+=o?USX0O1DATAX0 >1333??3?3:-vk(4??3?3;@k(40v@?&=PU1n;+=ꉖø;ZO{:?JXA54U0AC;@j(40v@?&=+=o??3?3:-vk(4?5?5IXA86 B??=C:j(4?.vdٚ@ٚ@ٚ@? DATA >1'0X0333?DdC>9C,DeCC(BDC?z?DATAX'0O1 >1333?zC AzC A #< #<`jFzD OBDATAO1'0333? SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendSRx0|11i1SR4-SequenceHs1v18w1x1,,1 DATAHs1s1DATAs1s1Hs1 DATAs1 t1s1 DATA t1ht1s1DATAht1t1 t1DATAt1t1ht1DATAt1@u1t1DATA@u1u1t1DATAu1u1@u1DATAu1v1u1DATAv1`v1u1TDATA`v1v1v1TDATAv1v1`v1DATAv1v1DATA8w1w1s1s1DATAw1w18w1Hs1 t1DATAw1x1w1Hs1ht1DATAx1Xx1w1 t1t1DATAXx1x1x1ht1t1DATAx1x1Xx1s1t1DATAx10y1x1s1@u1DATA0y1xy1x1t1@u1DATAxy1y10y1t1u1DATAy1z1xy1@u1u1DATAz1|1y1u1u1DATA|18}1z1u1v1DATA8}1}1|1u1v1DATA}1}18}1t1`v1DATA}1~1}1@u1`v1DATA~1X~1}1v1`v1DATAX~1~1~1ht1v1DATA~1~1X~1u1v1DATA~101~1u1v1DATA01x1~1t1v1DATAx101v1v1DATA,,Hs1ht1t1 t1C1Q18?1B1DATA8?1P@1OutputRender>DATAP@1hA18?1RenderRenderF>DATAhA1B1P@1AnimRender>DATAB1hA1FormatRender>DATAC1Q1333?+DhCvDhCC(BDC?z?DATAQ1C1333?+/9DATA,,,t1s1s1@u1 !  DATA,,,ht1v1v1t18=i>o? 1S1DATA1ج1333?+~CB~CB ?BFB= ADATAج101333?+zCAzCA  A@FB= A ?DATA0S1ج1333?+????????8=i>o?fffAD&@??fffA86 B? #<C DATAS10333?+AVE TARGA/t1.blend9DATA,,,v1`v1@u1u18=H>o?UUU Э1U1DATAЭ1(0333?+zCAzCA1||1 A@FB= A ?DATA(0U1Э1333?+????????8=H>o?fffA*@??fffA86 B? #<C DATAU1(0333?+AVE TARGA/t1.blend9DATA,,,u1t1`v1v18=>o?SSST)0W1DATAX)01333?+B̽̌?B̽̌? #< #<`jFzD SQB̽̌?DATA1W1)0333?+????????8=>o?fffA@??fffA86 B? #<C DATAW11333?+OAD FILE/9DATA,,v1u1u1v18=i>o? Ȯ1Y1DATAȮ11333?zCAzCA A@FB= A ?DATA1Y1Ȯ1333?????????8=i>o?fffAD&@??fffA86 B? #<C DATAY11333?AVE TARGA/t1.blend9SRx10|1SR5-Scripting1H111,,1 DATA11DATA1P11 DATAP111 DATA11P1DATA1(11DATA(1p11DATAp11(1DATA11p1DATA1H11DATAH11DATA1؂11P1DATA؂1 111(1DATA 1h1؂1P1p1DATAh11 1(1p1DATA11h111DATA1@11(11DATA@111p11DATA1Є1@111DATAЄ1111(1DATA1`1Є111DATA`1111H1DATA11`11H1DATA18111H1DATA81111H1DATA1811p1DATA,,(11P1p1 !  DATA,,,1(111z==o?`1[111DATA11Transform PropertiesView3d>DATA113D Viewport propertiesView3d>"DATA`1[1333?,>????????z==o?&A*A?z==o??????*A86 B??=C ?@?@?@? DATA[1`1333?,>/9DATA,,,H11p11??Pף Lh1]111DATA1Transform PropertiesIpo!>DATAh1H~. 333?>> =DATAH~.*0h1333?>CCx??|?DATAX*0.H~.333?>zC̽̌?zC@;; #< #<`jFzD OBzC̽̌?DATA.1*0333?>CC|||??l|DATA11. 333?>zCCHBC|||?CFC= ADATA111 333?>?zDzDBCl||ll|zDzD=HB DATA1 11 333?>BzB@l|llFzD #<HB DATA 1]11333?>??? ???? A???PA A!O?j?}GCHB? A86 B? #<C DATA]1 1333?>/9DATA,,111H1O1_1ȳ11DATAȳ11Link and MaterialsEditing>DATA11ȳ1MeshEditingF>DATA111Anim settingsObject>DATA1(11DrawObjectF>DATA(1@11ConstraintsObject>DATA@1X1(1EffectsObjectDATAX1p1@1HooksObjectF>1DATAp11X1Particle InteractionObject>(1DATA11p1SoftbodyObject>(1DATA111OutputRender>DATA1п11RenderRenderF>DATAп111AnimRender>DATA11п1FormatRender>DATA11ScriptlinksScript>DATA1_1333?,>ChC#DhCC(BDC?z?DATA_11333?,>/9SC|1SCScenetageain8618C*hE*C* ;; ;; ;; ;;=*01dd??< d X d! ??X+X+BB?????//backbuf/tmp\L?L?L??>??_??D f(.DATA8C*{C* (6DATAC*{C*8C* 6DATAC*{(D*C*<6DATA(D*{xD*C*<6DATAxD*{D*(D*.Y86DATAD*{E*xD* H6DATAE*{hE*D*.6DATAhE*{E*sX6DATA(*z,d'=A@DATA01L?B ?o: ??P22 2d 22 22 22 22 22 > #<===ff??AHz?=???CDATA.'????C?N #,=P +=+??????DATAH+%?=Vy?>`fff?Ou<?DATAHX+1 RenderLayerWOl1yWOWorld>O?r6?li=i=sj>??A <D>L>@?@pA A?L= ף;>E*DATA E*OBP6q(6OBBoxube(6h4@18**v( ;; ;;ST3?ST3?ST3??ST3?ST3ST3? ;;????7 ??&??4,K r????5?4??DOBd??<?>Q8>???????@???,,DATAv(DATA(8*o*phatch_tex_1roupDATA(*o8*phatch_tex_1_cornerroupOBP(6q6OBscalermpty ;;?????? ;;?????????DOBd8? #=?>=???????@???MAl 1*x1MAboxaterial.0027?????????????????2?? ף; ף;AA ????????@?=?==???F*????L?L?L?L==ff????DATA F*MAlx1* 1MAbox_frontaterial6?????????????????2?? ף; ף;AA ????????@?=?==???1XF*????L?L?L?L==ff????DATA1!1??????????L>DATA XF*TE1&TEphatch_tex_1ront_tex5>@?????=?@@????? @??<dF*DATA F* 1DATA1ME@14MECubew(5.p13-8-2$,0 02P 5?5?z5?5?5?z5?DATAw( 1x1DATAT2*p1-DATAp1:55z?I5? 5z?II55@#.5?5@#.I5?5?@#.II55?@#.I5?5?z?III55?z?IIDATA`-905w(w(Hw(DATA058??DATAw(8?DATAw(8?DATAHw(8?DATAT,0*3DATA37 """"""""""""DATAT02*VTex5UVTex.@Col8-DATAx56DATA.A?3?3??0????????????????????DATA`8-;LI(P62LIlib //scene.blendeps/My Projects/phatch-blender/data/blender/scene.blendC:\Users\jutuveps\My Projects\phatch-blender\data\blender\scene.blendID4686P62OBBounding BoxubeID48666P62OBcameraameraamera.001ID46H686P62OBcamera_targetmptyID4H666P62OBfloorlaneID46X6H6P62OBLampID4X66P62OBLamp.001DNA1),SDNANAMEq *next*prev*data*first*lastxyzwxminxmaxyminymax*pointergroupvalval2name[32]typesubtypeflagsaveddatalentotallen*newid*libname[24]usicon_id*propertiesid*idblock*filedataname[240]filename[240]totpad*parentw[2]h[2]changed[2]pad0pad1*rect[2]*obblocktypeadrcodename[128]*bp*beztmaxrcttotrctvartypetotvertipoextraprtbitmaskslide_minslide_maxcurval*drivercurvecurshowkeymuteipoposrelativetotelempad2*weightsvgroup[32]sliderminslidermax*refkeyelemstr[32]elemsizeblock*ipo*fromtotkeyslurph**scripts*flagactscripttotscript*line*formatblenlinenostartendflagscolor[4]pad[4]*namenlineslines*curl*sellcurcselcmarkers*undo_bufundo_posundo_len*compiledmtimesizeseekpassepartalphaangleclipstaclipendlensortho_scaledrawsizeshiftxshiftyYF_dofdistYF_apertureYF_bkhtypeYF_bkhbiasYF_bkhrotscriptlink*dof_obframenrframesoffsetsfrafie_imacyclokmulti_indexlayerpassmenunribufs*gputexture*anim*rrsourcelastframetpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfile*previewlastupdatelastusedanimspeedgen_xgen_ygen_typeaspxaspy*vnodetexcomaptomaptonegblendtype*object*texuvname[32]projxprojyprojzmappingofs[3]size[3]texflagcolormodelpmaptopmaptonegnormapspacewhich_outputpad[2]rgbkdef_varcolfacnorfacvarfacdispfacwarpfacname[160]*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*instance_init)()(*callback)()versionaipotype*ima*cube[6]imat[4][4]obimat[3][3]stypeviewscalenotlaycuberesdepthrecalclastsizenoisesizeturbulbrightcontrastrfacgfacbfacfiltersizemg_Hmg_lacunaritymg_octavesmg_offsetmg_gaindist_amountns_outscalevn_w1vn_w2vn_w3vn_w4vn_mexpvn_distmvn_coltypenoisedepthnoisetypenoisebasisnoisebasis2imaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendcheckerdistnablaiuser*nodetree*plugin*coba*envuse_nodespad[7]loc[3]rot[3]mat[4][4]min[3]max[3]pad3modetotexshdwrshdwgshdwbshdwpadenergydistspotsizespotblendhaintatt1att2*curfallofffalloff_typeshadspotsizebiassoftbufsizesampbuffersfiltertypebufflagbuftyperay_sampray_sampyray_sampzray_samp_typearea_shapearea_sizearea_sizeyarea_sizezadapt_threshray_samp_methodtexactshadhalostepsun_effect_typeskyblendtypehorizon_brightnessspreadsun_brightnesssun_sizebackscattered_lightsun_intensityatm_turbidityatm_inscattering_factoratm_extinction_factoratm_distance_factorskyblendfacsky_exposuresky_colorspacepad4YF_numphotonsYF_numsearchYF_phdepthYF_useqmcYF_bufsizeYF_padYF_causticblurYF_ltradiusYF_glowintYF_glowofsYF_glowtypeYF_pad2*mtex[18]specrspecgspecbmirrmirgmirbambrambbambgambemitangspectraray_mirroralpharefspeczoffsaddtranslucencyfresnel_mirfresnel_mir_ifresnel_trafresnel_tra_ifiltertx_limittx_falloffray_depthray_depth_traharseed1seed2gloss_mirgloss_trasamp_gloss_mirsamp_gloss_traadapt_thresh_miradapt_thresh_traaniso_gloss_mirdist_mirfadeto_mirshade_flagmode_lflarecstarclinecringchasizeflaresizesubsizeflarebooststrand_stastrand_endstrand_easestrand_surfnorstrand_minstrand_widthfadestrand_uvname[32]sbiaslbiasshad_alphaseptexrgbselpr_typepr_backpr_lampml_flagdiff_shaderspec_shaderroughnessrefracparam[4]rmsdarkness*ramp_col*ramp_specrampin_colrampin_specrampblend_colrampblend_specramp_showrampfac_colrampfac_spec*groupfrictionfhreflectfhdistxyfrictdynamodesss_radius[3]sss_col[3]sss_errorsss_scalesss_iorsss_colfacsss_texfacsss_frontsss_backsss_flagsss_presetYF_arYF_agYF_abYF_dscaleYF_dpwrYF_dsmpYF_presetYF_djitgpumaterialname[256]scale*bbi1j1k1i2j2k2selcol1selcol2quat[4]expxexpyexpzradrad2s*mat*imatelemsdisp**mattotcolwiresizerendersizethreshvec[3][3]alfaweightradiush1h2f1f2f3hidevec[4]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsvtilt_interpradius_interpcharidxkernhnurb*bevobj*taperobj*textoncurve*path*keybevpathlenbevresolwidthext1ext2resolu_renresolv_renspacemodespacinglinedistshearfsizewordspaceulposulheightxofyoflinewidth*strfamily[24]*vfont*vfontb*vfonti*vfontbisepchartotboxactbox*tbselstartselend*strinfocurinfoeffect*mface*mtface*tface*mvert*medge*dvert*mcol*msticky*texcomesh*mselectvdataedatafdatatotedgetotfacetotselectact_facecubemapsizesmoothreshsubdivsubdivrsubsurftype*mr*pv*tpageuv[4][2]col[4]transptileunwrapv1v2v3v4edcodecreasebweightdef_nr*dwtotweightco[3]no[3]pad[3]uv[2]co[2]indexfis[256]v[4]midv[2]*faces*colfaces*edges*edge_boundary_states*vert_edge_map*vert_face_map*map_mem*vertslevelslevel_countcurrentnewlvledgelvlpinlvlrenderlvluse_col*edge_flags*edge_creases*vert_map*edge_map*old_faces*old_edges*errormodifiersubdivTyperenderLevels*emCache*mCachedefaxispad[6]lengthrandomizeseed*ob_arm*start_cap*end_cap*curve_ob*offset_oboffset[3]scale[3]merge_distfit_typeoffset_typecountaxistolerance*mirror_obsplit_anglevalueresval_flagslim_flagse_flagsbevel_angledefgrp_name[32]*texturestrengthdirectionmidleveltexmapping*map_objectuvlayer_name[32]uvlayer_tmp*projectors[10]*imagenum_projectorsaspectxaspectypercentfaceCountfacrepeat*objectcenterstartxstartyheightnarrowspeeddampfallofftimeoffslifetimedeformflagmulti*prevCosparentinv[4][4]cent[3]*indexartotindexforce*clothObject*sim_parms*coll_parms*point_cache*x*xnew*xold*current_xnew*current_x*current_v*mfacesnumvertsnumfacesabsorptiontime*bvhtree*dmoperationvertextotinfluencegridsizeneedbind*bindweights*bindcostotcagevert*dyngrid*dyninfluences*dynverts*pad2dyngridsizedyncellmin[3]dyncellwidthbindmat[4][4]*psystotdmverttotdmedgetotdmfacepsysrt[2]*facepavgroupprotect*fss*target*auxTargetvgroup_name[32]keepDistshrinkTypeshrinkOptsprojAxissubsurfLevels*originfactorlimit[2]originOptspntswopntsuopntsvopntswtypeutypevtypewfufvfwdudvdw*defvec[8][3]partypepar1par2par3parsubstr[32]*track*proxy*proxy_group*proxy_from*action*poselib*poseconstraintChannelsdefbasemodifiersdloc[3]orig[3]dsize[3]drot[3]obmat[4][4]constinv[4][4]laycolbitstransflagipoflagtrackflagupflagnlaflagprotectflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactorrdampingsizefacmarginmax_velmin_velm_contactProcessingThresholddtdtxactcolempty_drawtypepad1[3]empty_drawsizedupfacescapropsensorscontrollersactuatorsbbsize[3]actdefgameflaggameflag2*bsoftsoftflaganisotropicFriction[3]constraintsnlastripshooksparticlesystem*pd*soft*dup_groupfluidsimFlagrestrictflagshapenrshapeflagrecalcobody_type*fluidsimSettings*derivedDeform*derivedFinallastDataMaskstateinit_stategpulampcurindexactivedeflectforcefieldpdef_damppdef_rdamppdef_permpdef_frictpdef_rfrictf_strengthf_powerf_distf_dampmaxdistmindistmaxradminradf_power_rpdef_sbdamppdef_sbiftpdef_sboftclump_facclump_powkink_freqkink_shapekink_ampfree_endtex_nablatex_modekinkkink_axisrt2*rngf_noisesimframestartframeendframeeditframelinStiffangStiffvolumeviterationspiterationsditerationsciterationskSRHR_CLkSKHR_CLkSSHR_CLkSR_SPLT_CLkSK_SPLT_CLkSS_SPLT_CLkVCFkDPkDGkLFkPRkVCkDFkMTkCHRkKHRkSHRkAHRcollisionflagsnumclusteriterationswelding*particlestotpointtotspring*bpoint*bspringnodemassgravmediafrictrklimitphysics_speedgoalspringgoalfrictmingoalmaxgoaldefgoalvertgroupfuzzynessinspringinfrictefraintervallocalsolverflags**keystotpointkeysecondspringcolballballdampballstiffsbc_modeaeroedgeminloopsmaxloopschokesolver_IDplasticspringpreload*scratchshearstiffinpush*pointcacheshow_advancedoptionsresolutionxyzpreviewresxyzrealsizeguiDisplayModerenderDisplayModeviscosityValueviscosityModeviscosityExponentgravxgravygravzanimStartanimEndgstarmaxRefineiniVelxiniVelyiniVelz*orgMesh*meshSurface*meshBBsurfdataPath[240]bbStart[3]bbSize[3]typeFlagsdomainNovecgenvolumeInitTypepartSlipValuegenerateTracersgenerateParticlessurfaceSmoothingsurfaceSubdivsparticleInfSizeparticleInfAlphafarFieldSize*meshSurfNormalscpsTimeStartcpsTimeEndcpsQualityattractforceStrengthattractforceRadiusvelocityforceStrengthvelocityforceRadiuslastgoodframemistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposureexprangelinfaclogfacgravityactivityBoxRadiusskytypeocclusionResphysicsEngineticratemaxlogicstepphysubstepmaxphystepmisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxaodistaodistfacaoenergyaobiasaomodeaosampaomixaocolorao_adapt_threshao_adapt_speed_facao_approx_errorao_approx_correctionao_samp_methodao_gather_methodao_approx_passes*aosphere*aotableshemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammaselcolsxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizeqtcodecname[128]codecaudio_codecvideo_bitrateaudio_bitrategop_sizerc_min_raterc_max_raterc_buffer_sizemux_packet_sizemux_ratemixratemain*mat_override*light_overridelay_zmasklayflagpassflagpass_xor*avicodecdata*qtcodecdataffcodecdatacfrapsfrapefraimagesframaptothreadsframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1stereomodedimensionspresetmaximsizexschyschxpartsypartswinposplanesimtypesubimtypequalityrpadrpad1rpad2scemoderendererocresalphamodeosafrs_secedgeintsafetyborderdisprectlayersactlayxaspyaspfrs_sec_basegausspostmulpostgammaposthuepostsatdither_intensitybake_osabake_filterbake_modebake_flagbake_normal_spacebake_quad_splitbake_maxdistbake_biasdistbake_padGIqualityGIcacheGImethodGIphotonsGIdirectYF_AAYFexportxmlYF_nobumpYF_clamprgbyfpad1GIdepthGIcausdepthGIpixelspersampleGIphotoncountGImixphotonsGIphotonradiusYF_raydepthYF_AApassesYF_AAsamplesyfpad2GIshadowqualityGIrefinementGIpowerGIindirpowerYF_gammaYF_exposureYF_raybiasYF_AApixelsizeYF_AAthresholdbackbuf[160]pic[160]stampstamp_font_idstamp_udata[160]fg_stamp[4]bg_stamp[4]simplify_subsurfsimplify_shadowsamplessimplify_particlessimplify_aossscineonwhitecineonblackcineongammajp2_presetjp2_depthrpad3domeresdomemodedomeangledometiltdomeresbuf*dometextparticle_percsubsurf_maxshadbufsample_maxao_errorcol[3]framename[64]*brushtoolseam_bleednormal_anglestepinverttotrekeytotaddkeybrushtypebrush[7]emitterdistdraw_timedname[36]mat[3][3]cornertypeeditbutflagjointrilimitdegrturnextr_offsdoublimitsegmentsringsverticesunwrapperuvcalc_radiusuvcalc_cubesizeuvcalc_marginuvcalc_mapdiruvcalc_mapalignuvcalc_flagautoik_chainlenimapaintparticleselect_threshclean_threshretopo_moderetopo_paint_toolline_divellipse_divretopo_hotspotmultires_subdiv_typeskgen_resolutionskgen_threshold_internalskgen_threshold_externalskgen_length_ratioskgen_length_limitskgen_angle_limitskgen_correlation_limitskgen_symmetry_limitskgen_retarget_angle_weightskgen_retarget_length_weightskgen_retarget_distance_weightskgen_optionsskgen_postproskgen_postpro_passesskgen_subdivisions[3]skgen_multi_level*skgen_templatebone_sketchingbone_sketching_convertskgen_subdivision_numberskgen_retarget_optionsskgen_retarget_rollskgen_side_string[8]skgen_num_string[8]edge_modepad3[2]dirview*session*cumapdrawbrushsmoothbrushpinchbrushinflatebrushgrabbrushlayerbrushflattenbrushpivot[3]brush_typetexnrtexrepttexfadetexsepaveragingtablet_sizetablet_strengthsymmrakeaxislock*camera*world*setbase*basactcursor[3]twcent[3]twmin[3]twmax[3]editbutsizeselectmodeproportionalprop_modeautomergepad5pad6autokey_mode*ed*radioframing*toolsettingsaudiotransform_spacesjumpframesnap_modesnap_flagsnap_target*theDagdagisvaliddagflagssculptdataframe_stepzoomblendximyimspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]zfaclay_usedpersp*ob_centre*bgpic*localvd*ri*retopo_view_data*depthsob_centre_bone[32]localviewlayactscenelockaroundcamzoompivot_lastgridgridviewpixsizenearfarcamdxcamdygridlinesviewbutgridflagmodeselecttwtypetwmodetwflagtwdrawflagtwmat[4][4]clip[4][4]*clipbbafterdrawzbufxrayflag2gridsubdivkeyflagsndofmodendoffilter*properties_storage*gpdlviewquat[4]lpersplviewverthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinycursor[2]rowbutv2d*editipoipokeyactname[32]constname[32]bonename[32]totipopinbutofschannellockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexfromshowgroupmodeltypescriptblockre_alignoldkeypresstab[7]render_sizechanshownzebra*filelisttotfiletitle[24]dir[240]file[80]ofssortmaxnamelencollumsf_fpfp_str[8]*libfiledataretvalmenuact(*returnfunc)()(*returnfunc_event)()(*returnfunc_args)()*arg1*arg2*menup*pupmenuoopsvisiflagtree*treestoresearch_string[32]search_tsesearch_flagsdo_outlinevisstoreflagdeps_flagsimanrcurtileimtypenrdt_uvstickydt_uvstretchpad[5]centxcentyautosnap*texttopviewlinesfont_idlheightleftshowlinenrstabnumbercurrtab_setshowsyntaxoverwritepix_per_linetxtscrolltxtbarwordwrapdoplugins*py_draw*py_event*py_button*py_browsercallback*py_globaldictlastspacescriptname[256]scriptarg[256]*script*but_refsredraws*idaspect*curfont*edittreetreetype*filesactive_filenumtilesxnumtilesyselstateviewrectbookmarkrectscrollposscrollheightscrollareaactive_bookmarkprv_wprv_h*imgoutline[4]neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]textfield_hi[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeiconfile[80]back[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]lamp[4]active[4]group[4]group_active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]edge_seam[4]edge_sharp[4]edge_facesel[4]face[4]face_select[4]face_dot[4]normal[4]bone_solid[4]bone_pose[4]strip[4]strip_select[4]cframe[4]vertex_sizefacedot_sizebpad[2]syntaxl[4]syntaxn[4]syntaxb[4]syntaxv[4]syntaxc[4]movie[4]image[4]scene[4]audio[4]effect[4]plugin[4]transition[4]meta[4]editmesh_active[4]handle_vertex[4]handle_vertex_select[4]handle_vertex_sizehpad[7]solid[4]tuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsttimetnodetarm[20]bpad[4]bpad1[4]spec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]yfexportdir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefviewzoomconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[256]themesundostepsundomemorygp_manhattendistgp_euclideandistgp_erasergp_settingstb_leftmousetb_rightmouselight[3]tw_hotspottw_flagtw_handlesizetw_sizetextimeouttexcollectratememcachelimitprefetchframesframeserverportpad_rot_angleobcenter_diarvisizervibrightrecent_filessmooth_viewtxglreslimitndof_panndof_rotatecurssizepad[8]versemaster[160]verseuser[160]glalphaclipautokey_flagcoba_weightvertbaseedgebaseareabase*sceneendxendysizexsizeyscenenrscreennrfullmainwinwinakthandler[8]*newvvec*v1*v2panelname[64]tabname[64]drawname[64]ofsxofsycontrolsnapold_ofsxold_ofsysortcounter*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanelssubvstr[4]subversionpadsminversionminsubversiondisplaymode*curscreen*curscenefileflagsglobalfname[80]*ibuf*ibuf_comp*se1*se2*se3nrbottomrightxofsyofslift[3]gamma[3]gain[3]saturation*guidir[160]donestartstillendstill*stripdataorxory*crop*transform*color_balance*tstripdata*tstripdata_startstill*tstripdata_endstill*ibuf_startstill*ibuf_endstill*instance_private_data**current_private_data*tmpstartofsendofsmachinestartdispenddispmulhandsizeanim_preseek*stripfacf0facf1*seq1*seq2*seq3seqbase*sound*hdaudiolevelpanstrobe*effectdataanim_startofsanim_endofsblend_modeblend_opacity*oldbasep*parseq*seqbasepmetastackedgeWidthforwardwipetypefMinifClampfBoostdDistdQualitybNoCompScalexIniScaleyIniScalexFinScaleyFinxInixFinyIniyFinrotInirotFininterpolation*frameMapglobalSpeedlastValidFramebuttypeuserjitstatotpartnormfacobfacrandfactexfacrandlifeforce[3]vectsizemaxlendefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstepomattimetexspeedtexflag2negvertgroup_vvgroupname[32]vgroupname_v[32]*keysminfacusedusedelemdxdylinkotypeold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]delaydurationmaterialName[32]damptimerpropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linkstapjoyindexaxis_singleaxisfbuttonhathatfprecisionstr[128]module[64]*mynewinputstotslinks**slinksvalostate_mask*actframeProp[32]blendinpriorityend_resetstrideaxisstridelengthsndnrpad1[2]makecopycopymadepad2[1]track*melinVelocity[3]angVelocity[3]localflagdyn_operationforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]*referencebutstabutendminmaxvisifacrotdampminloc[3]maxloc[3]minrot[3]maxrot[3]matprop[32]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]int_argfloat_arggoaccellerationmaxspeedmaxrotspeedmaxtiltspeedtiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*lamprengobjectdupli_ofs[3]childbaserollhead[3]tail[3]bone_mat[3][3]arm_head[3]arm_tail[3]arm_mat[4][4]xwidthzwidthease1ease2rad_headrad_tailbonebasechainbasepathflaglayer_protectedghostepghostsizeghosttypepathsizeghostsfghostefpathsfpathefpathbcpathacconstflagikflagselectflagagrp_index*bone*childiktree*b_bone_mats*dual_quat*b_bone_dual_quatschan_mat[4][4]pose_mat[4][4]pose_head[3]pose_tail[3]limitmin[3]limitmax[3]stiffness[3]ikstretch*customchanbaseproxy_layerstride_offset[3]cyclic_offset[3]agroupsactive_groupcustomColcs*grpreserved1groupsactive_markeractnractwidthtimeslidename[30]ownspacetarspaceenforceheadtail*tarsubtarget[32]matrix[4][4]space*proptarnumtargetsiterationsrootbonemax_rootbone*poletarpolesubtarget[32]poleangleorientweightgrabtarget[3]reserved2minmaxflagstuckcache[3]lockflagfollowflagvolmodeplaneorglengthbulgepivXpivYpivZaxXaxYaxZminLimit[6]maxLimit[6]extraFzinvmat[4][4]fromtomap[3]expofrom_min[3]from_max[3]to_min[3]to_max[3]zminzmaxpad[9]channel[32]no_rot_axisstride_axiscurmodactstartactendactoffsstridelenblendoutstridechannel[32]offs_bone[32]hasinputhasoutputdatatypesockettype*new_socknslimitstack_indexinternstack_index_extlocxlocyown_indexto_index*tosock*link*new_nodeusername[32]lastyoutputs*storageminiwidthcustom1custom2custom3custom4need_execexectotrbutrprvr*typeinfo*fromnode*tonode*fromsocknodeslinks*stack*threadstackinitstacksizecur_indexalltypes*owntype*selin*selout(*timecursor)()(*stats_draw)()(*test_break)()cyclicmoviesamplesminspeedpercentxpercentybokehcurvedimage_in_widthimage_in_heightcenter_xcenter_yspiniterwrapsigma_colorsigma_spacehuesatt1t2t3fstrengthfalphakey[4]x1x2y1y2colname[32]bktyperotationpreviewgamcono_zbuffstopmaxblurbthresh*dict*nodeangle_ofscolmodmixthresholdfademcjitprojfitshortymintablemaxtableext_in[2]ext_out[2]*curve*table*premultablecurrcliprcm[4]black[3]white[3]bwmul[3]sample[3]offset[2]innerradiusratergb[3]cloneactive_rndactive_cloneactive_mask*layerstotlayermaxlayertotsize*pooleditflagvel[3]rot[4]ave[3]numparentpa[4]w[4]fuv[4]foffsetrand[3]*stick_obprev_state*hairi_rot[4]r_rot[4]r_ave[3]r_ve[3]dietimebanksizemulnum_dmcachebpialiveloopdistrphystyperotmodeavemodereacteventdrawdraw_asdraw_sizechildtypedraw_stepren_stephair_stepkeys_stepadapt_angleadapt_pixrotfromintegratornbetweenboidneighboursbb_alignbb_uv_splitbb_animbb_split_offsetbb_tiltbb_rand_tiltbb_offset[2]simplify_flagsimplify_refsizesimplify_ratesimplify_transitionsimplify_viewporttimetweakjitfackeyed_timeeff_hairgrid_respartfactanfactanphasereactfacavefacphasefacrandrotfacrandphasefacrandsizereactshapeacc[3]dragfacbrownfacdampfacabslengthrandlengthchild_nbrren_child_nbrparentschildsizechildrandsizechildradchildflatchildspreadclumpfacclumppowrough1rough1_sizerough2rough2_sizerough2_thresrough_endrough_end_shapebranch_thresdraw_line[2]max_lat_accmax_tan_accaverage_velbankingmax_bankgroundzboidfac[8]boidrule[8]*eff_group*dup_ob*bb_ob*pd2*part*edit**pathcache**childcachepathcachebufschildcachebufs*target_ob*keyed_ob*latticeeffectorsreacteventstotchildtotcachedtotchildcachetarget_psyskeyed_psystotkeyedbakespacebb_uvname[3][32]vgroup[12]vg_negrt3*renderdata*cacheCdisCvi[3]structuralbendingmax_bendmax_structmax_shearavg_spring_lentimescaleeff_force_scaleeff_wind_scalesim_time_oldstepsPerFrameprerollmaxspringlensolver_typevgroup_bendvgroup_massvgroup_structpresets*collision_listepsilonself_frictionselfepsilonself_loop_countloop_countpressure*pointstotpointsthicknessstrokesframenum*actframegstepinfo[128]sbuffer_sizesbuffer_sflag*sbufferTYPEdcharucharshortushortintlongulongfloatdoublevoidLinkLinkDataListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDPropertyDataIDPropertyIDLibraryFileDataPreviewImageIpoDriverObjectIpoCurveBPointBezTripleIpoKeyBlockKeyScriptLinkTextLineTextMarkerTextPackedFileCameraImageUserImageGPUTextureanimRenderResultMTexTexPluginTexCBDataColorBandEnvMapImBufbNodeTreeTexMappingLampCurveMappingWaveMaterialGroupVFontVFontDataMetaElemBoundBoxMetaBallNurbCharInfoTextBoxCurvePathMeshMFaceMTFaceTFaceMVertMEdgeMDeformVertMColMStickyMSelectCustomDataMultiresPartialVisibilityMDeformWeightMTexPolyMLoopUVMLoopColMFloatPropertyMIntPropertyMStringPropertyOrigSpaceFaceMultiresColMultiresColFaceMultiresFaceMultiresEdgeMultiresLevelMultiresMapNodeModifierDataSubsurfModifierDataLatticeModifierDataCurveModifierDataBuildModifierDataMaskModifierDataArrayModifierDataMirrorModifierDataEdgeSplitModifierDataBevelModifierDataBMeshModifierDataDisplaceModifierDataUVProjectModifierDataDecimateModifierDataSmoothModifierDataCastModifierDataWaveModifierDataArmatureModifierDataHookModifierDataSoftbodyModifierDataClothModifierDataClothClothSimSettingsClothCollSettingsPointCacheCollisionModifierDataBVHTreeSurfaceModifierDataDerivedMeshBVHTreeFromMeshBooleanModifierDataMDefInfluenceMDefCellMeshDeformModifierDataParticleSystemModifierDataParticleSystemParticleInstanceModifierDataExplodeModifierDataFluidsimModifierDataFluidsimSettingsShrinkwrapModifierDataSimpleDeformModifierDataLatticebDeformGroupbActionbPoseBulletSoftBodyPartDeflectSoftBodyObHookRNGSBVertexBodyPointBodySpringSBScratchWorldRadioBaseAviCodecDataQuicktimeCodecDataFFMpegCodecDataAudioDataSceneRenderLayerRenderDataRenderProfileGameFramingTimeMarkerImagePaintSettingsBrushParticleBrushDataParticleEditSettingsTransformOrientationToolSettingsBrushDataSculptDataSculptSessionSceneDagForestBGpicView3DSpaceLinkScrAreaRenderInfoRetopoViewDataViewDepthsbGPdataView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsTreeStoreTreeStoreElemSpaceImageSpaceNlaSpaceTextScriptSpaceScriptSpaceTimeSpaceNodeSpaceImaSelFileListThemeUIThemeSpaceThemeWireColorbThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemTStripElemStripCropStripTransformStripColorBalanceStripColorBalanceGUIHelperStripProxyStripPluginSeqSequencebSoundhdaudioMetaStackEditingWipeVarsGlowVarsTransformVarsSolidColorVarsSpeedControlVarsEffectBuildEffPartEffParticleWaveEffOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbActuatorSensorbDelaySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbJoystickSensorbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorbTwoDFilterActuatorbParentActuatorbStateActuatorFreeCamerabSamplebSoundListenerSpaceSoundGroupObjectBonebArmaturebPoseChannelbActionGroupbActionChannelSpaceActionbConstraintChannelbConstraintbConstraintTargetbPythonConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbMinMaxConstraintbSizeLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbStretchToConstraintbRigidBodyJointConstraintbClampToConstraintbChildOfConstraintbTransformConstraintbLocLimitConstraintbRotLimitConstraintbSizeLimitConstraintbDistLimitConstraintbShrinkwrapConstraintbActionModifierbActionStripbNodeStackbNodeSocketbNodeLinkbNodebNodePreviewbNodeTypeNodeImageAnimNodeBlurDataNodeDBlurDataNodeBilateralBlurDataNodeHueSatNodeImageFileNodeChromaNodeTwoXYsNodeTwoFloatsNodeGeometryNodeVertexColNodeDefocusNodeScriptDictNodeGlareNodeTonemapNodeLensDistTexNodeOutputCurveMapPointCurveMapBrushCloneCustomDataLayerHairKeyParticleKeyChildParticleParticleDataParticleSettingsParticleEditParticleCacheKeyLinkNodebGPDspointbGPDstrokebGPDframebGPDlayerTLEN   L4( P\$8Tpx(x T|8lLDlh88,< L   @ 84DX`D`t@<l<<\hd4Dd<@L@@@<lht(T8xl(4H8P HP|<$$X P$88 x P< 088,@0,Hh(H,(lDLP<L< \PLlT`<8l (DtH@,@t<h4,,D,@,4` l\4<$x( (@   ,D8HSTRC9                     !"#$%&'()*+, -./0!!!"1#234./56789  :;<=>$ ?@.AB%%%%C=/DEF GHIJ& %KLM= N$OPQR'STUV%(((WXY) ))Z[\+]^_*`]a b(c(def ghij kl+mn]% ,opqrstuvwxyz{|$O'} ~- . " /01%++ 2 394   %5C@6$@57 .8qr38-9$O.467:    -;P  <Fqr !"#$%&'()*+,-.+/0123456789:;<=>?@ABCDEFGHIJKL2M$O'}=$O>NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw xyz{|}~/@66 2M9$O?F'} @%A+BBBCDC  $O># "%EEE"1#2F%FGH9C     $OI&> FbC    @ @@@%GFFJ'C $O&>KLMNOPQ R!J"S#T$T%T&6'()*+%,-./U0V1 M 2345 67K89:;%<O89=>W?PW@ANBC>DQX.25 67YEZ%RFSGL3.25 67[H\I]J^3_`_4aKLbMLcccaN`ObPQ R SdT6('%NUU VNUWXYZ[\]T$T&^_V`aKbOc('6%eee dfeefVg] h igee hee jkiee[lmnjee oH k ee p q r stulvwx]yleez{ |mee}]n ee~%]oee%p ee3 %q ee .]%reeseetee muee 3 %+veeF w ee xeeyeez{|}~eeNNNNNNK%eeee %ee %6ee9ee -eeee} ee  k ee  z%F%"$O&PC% o &    $OIC      >      !"#$%'} & ' ( )*G+4,-./0 1 2 3 456?789:;,<=>?@ABCF D & EF$GHIJKLMNOPQRSTUVWXYZ[\]^_`abcd3efn}ghijklmnopqrstuvwxyz{|}~,%Q}0JJJ$ONG/TVU      +$O2M'} !"#$%&'( ) *+,-./0123%4 5 67F8 9:;<=]>?@ABCDD >E?FGH%IJKLMNOPQRSTUVWXYZ[\]^d_`"mabcdefghi#jklmn opqrstuvw xy%z{|}~ F* +F+F m8%   m   2M</] !+ "#$. %&'()*+,-./0129 34567'} g 89:;<=>?@@A% .- mBCDEKFGHIJKLMNOPQRS  " TUVWXYZ[\]^_`+sabcdefg'hijklmnopqCr st5uvwxyz {|}~01$@^kFGHIFGHIFGHIF  $OPA.$FGHWI  %/FGHI B|!FGHI+F     FGHI 9  FGHI.-< ,B | FGHIFGHI*]      ] FGH]+ FGHFGHIP  99%|*FGHI f%+     8     D6 !"#$%&'()*+,-./012345_6789:;<=>?@ABCDEFGHIJK "%LMNOPQRSTUVWXYZ[\]^%4_B`abcdefghijklmnopqrstuvwxyz{ |}~%26   % v%F4F'}    f  88  %0mj%988      +  [$O0          %9p !"# $%&'()*+,-.%/0]l12929-234\5Qn6789:;<=%>?@ABCDEFGHvIJKLM?2NOEP QR S TU% V WXY%+F>Z%[\]^_%`a%bc%de Fpznbfg +h ijkTlmn+F o -p% qzrstuvwx*y z{nT|F  o}~% - 4\ 4\  4\m   -J % " ` -  T  4\+@ -z  % 4\D@?nf j+Fk4\_* - zT  - % ++ $Om]FGH   F - %? & l   "   1  &        %!!! """!$O    g%#FGHI $$$$O % %%      %$O& && %'*  (  ) ]%* + , +F - . [\%/ !0 "1 #$%&2  '()*+,-./%+F3 v4 %05 123456786    9:v7    9:v8    9:v9  %: ;; ;;<= -<<< >?$O [\@ABCDEF = GHIJ>>>>K=LMNOP+QRST>U?V@ @@@WXYN { Z [QR\]^_`abcdeABf???@g@h>i>U9 j k=l mnop qBr>s>t u vwCxy%Dz{D|}"~%%E pB%F%GHhij9IJKLMN zO  P jpmQ[%HR%STU TTT< @UV.\% Cm\/%2MVW F_ TW% XB%YBZ[ YBYXYMm%Qd\p1F.bc4\:  953 678        m      l            ^\]    ! " # $ % & ' ( ) * + , - ?7?. / 0 $O51 %\2 [Z]3 ^4 ^5 6 7 6 8 9 : ; < Nn5= > ? 9@ A B /C D E F G H }{"_I J K L M N O P Q R S T U V W ]X Y Z [ \ ] ^ %F|__ ` a b ]c d `e aaa`f g h bbb i j c cc bk h l ^m  xn o p ENDBphatch-0.2.7/data/blender/can.blend0000644000000000000000000070371011346363116017034 0ustar rootroot00000000000000BLENDER-v249REND jv http://e2-productionsGLOB(jv  20* SRp 0SR1-Animation0+m@@`V@* 5DATA 0+mEk DATA Ek `_h0+mDATA `_hCEk DATA C`6 `_hDATA `6 p CDATA p `6 DATA Ѝp DATA Ѝp7I DATA p7I PZЍDATA PZP6p7I DATA P6@PZDATA @P6DATA(0`_hEk DATA(0PVC0+mDATA(PVV0p `6 DATA(V0VPVEk DATA(0VVVЍ`_hDATA(VV0VЍDATA(VVV`6 p7I DATA(V[DVp p7I DATA([D`\DVPZDATA(`\D\D[DЍPZDATA(\D@]D`\DPZp7I DATA(@]D]D\DЍp DATA(]D ^D@]D`6 DATA( ^D^]D0+mP6DATA(^`_ ^DP6`6 DATA(`__^@p DATA(_@``_C@DATA(@`_P6@DATAV0+mP6@CJ9 0V8DATA0VLink and MaterialsEditing>DATA00VMeshEditingF>DATA0Anim settingsObject>DATA0DrawObjectF>DATA8ConstraintsObject>DATA8EffectsObjectDATA9 333?\<@DhC)DhCC(BDC?z?DATA 9333?\</9DATA`VEk `_hЍDATA` " `6 PZp7I |+9=U_=o?  #$S@P6 е6 DATA6 е6 Transform PropertiesView3d>DATAе6 6 3D Viewport propertiesView3d>"DATAX@P333?e|????????|+9=U_=o?;AkA?|+9=U_=o??????;A  B?=C  DATAP@333?e|/9DATA " @`p7I PZЍp ??Pף  #$pЂp" p" DATAp" Transform PropertiesIpo!>DATAxp 333?kzC̽̌?zC@ #< #<`jFzD OBzC̽̌?DATA0  p333?k@zAAQAQAB A@CC #<@DATA Y  333?k6 j>DATAXYЂ 333?k??? ???? A???PA A!O?j?}GCHB? A  B? #<C DATAЂY333?k/9DATA@ " P6`6 p @ '``U0DATA0Link and MaterialsEditing>DATA0MeshEditingF>DATA`@0 333?v<zCCHBC'?CFC= ADATA@0`U`333?v<#DhC`DpJgChCC(BDC?z?DATA`U@0333?v</9SR0<p SR2-Model K@z6 @#U K* DATA KpIDATA pI KDATA  pIDATA 6  DATA 6 PW<DATA PW s6 <DATA spkPWDATA pkpC sDATA pCm pkd<DATA m PpCdDATA P@zm |DATA @zPd|DATA(6  pIDATA(` 6 KDATA(` K6 DATA(p0` PWDATA(p0 PW6 DATA( p0pI sDATA(W  pkDATA(WZ spkDATA(ZpZWpkPWDATA(pZZZpC6 DATA(ZP[pZpCPWDATA(P[[Z sm DATA([0\P[pkm DATA(0\#[pCm DATA(##0\P6 DATA(#`##P sDATA(`###@zm DATA(#@#`#pC@zDATA(@##P@zDATAU pLK6 PW?@Pף;!; !@[hp\h@ǫ V yDATAV 0FPreviewLamp>DATA0F`GV LampLampF>DATA`G`j0FSpotLamp>DATA`jj`GTexture and InputLamp>DATAj^`jMap ToLamp>`jDATA^ `jPreviewMaterial>DATA ` ^MaterialMaterial>DATA P `PreviewWorld>/DATAPC WorldWorldF>/DATACCPMist Stars PhysicsWorld>DATACoACTexture and InputWorld>/DATAoAqACMap ToWorld>/CDATAqA@9oAOutputRender> DATA@9p:qARenderRenderF> DATAp:@>J@9AnimRender> DATA@>Jp?Jp:FormatRender> DATAp?JK@>JLink and MaterialsEditing>DATAKKp?JMeshEditingF>DATAK Y8 KMesh ToolsEditing>DATA Y8 PZ8 KMesh Tools 1Editing>DATAPZ8 P: Y8 CameraEditingF>DATAP:;PZ8 ShadersMaterial>DATA;P[?P:TextureMaterial4>DATAP[?\?;Anim settingsObjectF>DATA\?9bP[?DrawObject>DATA9b ;b\?ConstraintsObject>DATA ;bД9bScriptlinksScript>DATAД ;bEffectsObject9bDATA@ÄДMap InputMaterial4>;DATA@ÄpĄMap ToMaterial4>;DATApĄ.@ÄAnimAnim>DATA..pĄSoundSound>DATA..ListenerSoundF>DATA.SequencerSound>DATA1F Mirror TranspMaterial>DATA1F 3F Shadow and SpotLamp>DATA3F ~1F Ambient Occlusion/DirtmapLamp>DATA~3F Radio RenderRadio>DATA`~Radio ToolRadioF>DATA`Mist / Stars / PhysicsWorld>/DATA`Amb OccWorld>/`DATA0 RampsMaterial> `DATA0 Render LayersRender> qADATA0 BakeRender> p:DATA0Object and LinksObject>DATA0`Links and PipelineMaterialF>DATA`50SSSMaterial>DATA505`PreviewTexture>DATA05Й5TextureTextureF>DATAЙ ҙ05ColorsTextureF>05DATA ҙ q ЙImageTexture>DATA q  q ҙMap ImageTexture>DATA q P" q ModifiersEditing>DATAP" " q ShapesEditing> q DATA" ݆P" MultiresEditing>DATA݆@ކ" Texture faceEditing>@ކDATA@ކ ݆UV CalculationEditingP>DATA 0 @ކStucciTexture>DATA0 y Mesh Tools MoreEditing4>DATAyy0 Texture FaceEditing>" DATAyyStampRender> @>JDATA@[hp\h333?U 0? EhCCD7|hCC(BDC?z?!5mDATAp\h@[h333?U Save JPEG/Users/katorlegaz/3D/Model CD/food/aluminum-can.jpg DATApLMU spI pk `DATAM&pLpCm pkPWF@u$@AHMe=e=WeX ,#Pk zB֠M DATAM M Transform PropertiesView3d4>" DATAM ПM PreviewView3dH"DATAПM Image PropertiesImage>" DATAПView PropertiesImage>" DATAReal-time PropertiesImage>" DATAXPk@J333?M/;3@??i!"4,;i!"?/;30L?.;3?i!"-;i!"4??-;@3@??S4аAF@P4d<3,;3!u$@g P_|3>>(   ן(A6;3( @(@F@u$@AHM/;3@??i!"4,;i!"?/;30L??}A@ ( B??[Η:=Cu< ?3TS 3NY=3NY=3NY=ұ?Ԩ?GI?? w\?(f%=>DATA@JPk 333?M' =DATA o@J333?MCC'??dL?@@DATAo q333?MDdC8CnD fCC(BDC?z?DATAx q zBo333?MzC AzC A #< #<`jFzD OBDATA zB q333?MLoad Library PATHRESC:\Users\jutuveps\My Projects\phatch-blender\data\blender\scene.blend\Object\Material/top.blend/Object/can.blendm-can.blendAL aluminumom.blenddO DATA& KM6 P@zpC?@ JLc={c=WcX{ d$#?Qʫ@+3`|B'DATA`|B'Transform PropertiesView3d4>" DATA'`|BPreviewView3dH"DATAX?i333?&>O?}?=Do׽Щ7Q??| ҽu`y?>}}??7_P=Q?O?u׽?ßX@8*? @?>N-OOw֊?)>T=Do=)7Q?Gll@u`y@=h?A74=2պ>`3\ 39AnpAŸ0A@?@ JL>O?}?=Do׽Щ7Q??| ҽu`y?ś*?lno뛾.@Ga@  B??|<:=C?,ȿl^Z 7>7>7>ұ?Ԩ?GI?? DATAij?333?&DdC8CnD fCC(BDC?z?DATAxjQi333?&zC AzC A #< #<`jFzD OBDATAQj333?& Save PNGAGE PATHRESC:\Users\jutuveps\Pictures\gmaps\blender\ata\lender\eviews\\Object\Material/top.blend/Object/can.pngjpglendAL aluminumom.blendd  DATA K&P sm @z?A JLc}c}c  d`*OP+V+V@ KQDATA@ KQTransform PropertiesView3d4>" DATAQ@ KPreviewView3dH"DATAO N 333? K) =VXXDATAX NrCO333? K>O?}?=Do׽Щ7Q??| ҽu`y? >|}?>7_L=Q?O?u׽?ğX@8*? @?>-OOw֊??T=Do=)7SYAFoۿl@u`y@=h? .71U n;I=2\) H9 A~pA֟0A-@?A JL>O?}?=Do׽Щ7Q??| ҽu`y?ś*?lno뛾.@GP@  B??f;=C?,ȿl^Z c>c>c>ұ?Ԩ?GI?? DATArCsC N333? KDdC8CnD fCC(BDC?z?DATAxsCPrC333? KzC AzC A #< #<`jFzD OBDATAPsC333? K Save PNGAGE PATHRESC:\Users\jutuveps\Pictures\gmaps\blender\ata\lender\eviews\\Object\Material/top.blend/Object/can.pngjpglendAL aluminumom.blendd  SR<PDATAq p+Pq RenderRenderF>DATAp++q AnimRender>DATA+p+FormatRender>DATAб+ 333?zCCHBC,?CFC= ADATAб+!333?DhC?DhCC(BDC?z?mDATAX!NUб+333???? ???? A??@PA Aj?c3>}GCHB? A  B? #<C DATA0NUOU!333?@̌AR|B1@lA A@CC #<@DATAOUNU333?/9DATA`q * 7znDATAМ2`` G@? JL - -G Hh~ ӝ2DATAGOutputRender>DATAGIRenderRender>DATAI@JGAnimRender0>DATA@J.IFormatRenderH>DATA..@JPreviewMaterial>DATA.0..MaterialMaterial>DATA0..ShadersMaterial0>DATA0.TextureMaterialH>DATAMap InputMaterialD>DATAMap ToMaterial`>DATA ӝG333?lCqhCC~qLmCC(BDC?z?hDATAXGPԝ ӝ333?lJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?J>#xu?ܗ=Hi6>(? ?Pb^L?\FAA?4[?[!?@jG>gb>Pb>4Im>k&?]M^L<0@AzA=>Kc<2֍7&> ?:x¸A1vB,jB~@G@? JLJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?@?$$OA  B?=Ch?j(4?t'>d DATAxPԝ2G333?lzC AzC A #< #<`jFzD OBDATA2Pԝ333?l;SAVE FILE/usr/home/intrr/blender/blend/untitled.blendDATAМ2s DF U.=z=o?- -GH Sp۝DATAXp۝֝333?\???h?j(4?t'>????hj(4t'?U.=z=o??OA  B?=Ch?j(4?t'>d DATA֝p۝333?\DdC>9C,DeCC(BDC?z?DATAx֝333?\zC AzC A #< #<`jFzD OBDATA333?\ SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATAsCМ2`0p  e?8?AHM    SCDATAX0u333?,L?В ?K?ȳ>?M?K?<ȳ>T5L?В ?ZI? @μ@?ƾ\?lU В (??3>>]`b4AAVl>K?x<4쓾S>>3ApןAAA)@e?8?AHML?В ?K?ȳ>?L?ՙξAE;OA  B?=Ch?j(4?t'>d DATA0u`v333?,DdC>9C,DeCC(BDC?z?DATAx`vC0u333?,zC AzC A #< #<`jFzD OBDATAC`v333?, SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATACsF* p `0(.=^=o?    S9JMDATAX9J`7333??3?3^I2(o(4?? 3?3^=i(4J2(A?(.=0n;^=ꉖW5jOT{:?OA2 5AC^=k(4J2(A?(.=^=o??3?3^I2(o(4?5?5OA  B?=C^j(4?J2(d DATA`779J333?DdC>9C,DeCC(BDC?z?DATAx7M`7333?zC AzC A #< #<`jFzD OBDATAM7333? SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendSRPDATA@pRenderRenderF>DATAp@AnimRender>DATApFormatRender>DATA@p333?uDhC&ԓDhCC(BDC?z?DATAp@333?u/9DATA%'P7QU`0PODATA'`Fh%" OP0N8=i>o?[  [P `( DhDATA`(Q333?}|zCAzCAPP A@FB= A ?DATAXQ Dh`(333?}|????????8=i>o?fffAD&@??fffA  B? #<C DATA DhQ333?}|AVE TARGA/t1.blend9DATA`FhC'pPPPOP8=H>o?]]]]S QCDATAQy333? zCAzCA1||1 A@FB= A ?DATAXyCQ333? ????????8=H>o?fffA*@??fffA  B? #<C DATACy333? AVE TARGA/t1.blend9DATAC`FhOQUPpP8=>o?]]wx8 ` DATAx P333?ሜB̽̌?B̽̌?88 #< #<`jFzD SQB̽̌?DATAXP`  333?ሜ????????8=>o?fffA@??fffA  B? #<C DATA` P333?ሜOAD FILE/9SC@* SChttp://e2-productions 5  8< e@P?ұ?Ԩ?GI?ұ?Ԩ?GI?ұ?Ԩ?GI?=pGhdd??< d X d!?? C CBB?????//backbuf/tmp/L?L?L??>??_??D @DCDATA( {0.=@5DATA(0.{. F  DATA(.{0.F DATA({P..n DATA(P{04F FOmDATA(04F {4F Pp DATA(4F {04F .& DATA({4F V P DATA(pz,d'=A@DATAGhL?B ?o: ??P22 2d 22 22 22 22 22 > #<===ff??AHz?=???CDATA8C'????C?N $,=N +=C??????DATAHC%?=Vy?>`fff?Ou<?DATAX C1 RenderLayerIMPt IMRender Result-V-VEJ??LAC(LALamp????D6?A4B>??5? B4B?@@???o:??????@?????@5DATA85'????C?55?55? ??????DATA %??DATA(@5WO5yWOWorld=?????A <>??@pA A?L= ף;>о5DATA(о5TX)TXText))))VVDATA()`!VDATAX`!http://e2-productions.com/repository/modules/PDdownloads/singlefile.php?cid=10&lid=186EOB0Omq@5OBCaneverage Can`M )p Kp K7y>??????y>?????????.;3?h!"-;i!"4??-;@3@+:?DOBd8?<?>Q8>u=????@???I1> 0 0y@DATA7DATA0)oSmtopDATA0SmoP)labelDATA0Po SmtabDATA0 oPphatch_tex_1roupDATA0o phatch_tex_1_cornerroupDATAXp KNSubsurfOB0@5qOmOBLamp Cұ?Ԩ?GI???????ұ?Ԩ?GI??????????63?$-;i!"4??.;@3Z?Ԩ$?DOBd8? #=?>=???????@???NNMAf!*P-VLMAMETAL aluminum333?333?333?p|>p|>p|>??????yf7??L?9>8????oŗ2?? ף; ף;? ?????????@?=?==???0i!????L?L?L?L==ff????eעeעDATA(0i!MAP-*f!MAMETAL can label????????????ȶ^>?L?9>????? ף; ף;? ?????????@?=?==???0P1????L?L?L?L==ff????$V$VDATA0!i!>>>??????????L>DATA(P1TE@i!&TEphatch_tex_1ex>>@?????=?@@????? @??<d1DATA(1MEM 4MEBeverage Can 9@vn 0b03PM $P I,@$^@@a>b>8>DATAf!P-DATAhPM *03DATAxB:Bսј>D:eƉ8>]Ҕi2 8>=i `u;;ј>_p+e뽔<>mwN^懻pA=> ]VZR=ރ=wO>3UOLq= +'=9>V7KPO=f;9>ef Kʅ=0wO>^w߾O @-=i>AqV܌qǽ>^02`>]V<'Aq>=9OT^G=wȼ;>$[r)'=1$ >3NjrC<} = >J)r˱<2M=;> [r[_`=q> T^н썩<>@V@ W>]cPv3>Zf K4m3>U8Kɜ W>1VP <Q>-H!Y;$ d2>0tIfTU>-H!YnDRԙW>9!oZyp=Q>pZ!YG~==x2>>fH]+=>pZ!Ymͷ<>Ymu~ٯƢk@_P<>dNB#u/>} j[#>N?N\&%>Y/4s,Rx>ItxI D<%>0FtϠ<>H  <&b>(۴0(=c>\ҸOߦX\ h:=>J!m=>\ҸOߦSM)_\>x -3="౽c>ߦ a;g->ߦ8ƽT>KpL>7-Y֖L>?HY@'0>?|ҶԽb<|>"ǰ$I]=>Lʠ<J='>ݴC<=>$הc=O> ۽הK?=ϼ'>ݤ<=D> 맽|>SȽ?`>V$=|lQ>#X=\>@k=h;F>VHl$i=\$=F>8-lJl˻=T>SXT;4_CV` ;v/>Q BQ# >VA6 P>NAٽ왻v/>6RBƼh><0U;>u' ;I>oH cI>oHܻ4 >3^vJ }j>;x켢IwۼѰ<>C=3^Wͽs["}>?9"}>hG "}>:dH"}>qP"}>o)="}>[0="}>J9@>"}> nG>"}>;d>"}>Tq>"}>)=No>"}>=\[>"}>?>X9>"}>G>W >"}>;d>="}>q>M<"}>o>)"}>[>Ǫͽ"}> 9>A"}>H >G"}>=(Q)Ao"}>Wͽs[>e?9>hG >):dHO>qP>o)=>?[0=>J9@>> oG>>/+;d>>WTq>>k)=No>>?g=[[>>J?>X9>>G>V >>+;d>=>W|q>N<>ko>ܞ)>g[>Īͽ>Jf9>A>J >G>=|0Qx)Bo>0(%&h>nD=>^>| h>wA>4>8'>4*V>DȽ>Jfh><+%>gk><>k=^>D=>W|aA>h>>+&>4>>B=*V>>J'%=0h>>?gzk>>kE>^>>WShHA>>/+4&>>^*VjD=>h*%=>?kx좼>=^Dc>GAMh>)&'4f>BȽ*V>eM!Xc"}>< f"}>=V Y"}>">>KF="}>?0>'"}>:)Q>$ý"}>.Xc>\O!"}>f><"}>_ Y>z="}>;E=>0>>"}>>0>"}>=)Q>"}>K!=Xc>"}>@! f>"}>v8 Y>"}>k>F=>"}>y0>"}>e)Q="}>GXc$N!="}>f"}>P Y"}>E=e>"}>0"}>Ҕý)Q"}>Ҕý)Qd >0d >E=e>d >P Yd >fd >GXc$N!=d >e)Q=d >y0>d >k>F=>d >v8 Y>d >@! f>d >K!=Xc>d >=)Q>d >>0>d >;E=>0>>d >_ Y>z=d >f>.Xc>\O!d >:)Q>$ýd >?0>'d >">>KF=d >=V Yd >< fd >M!Xcd > U Zd >S?e(;?eȫ=!Qd >d?e=;E6d >,п?e/*>nd >;?ekI>?Zd >F?ewZ>8Wd >MS?e]>88N?e1Q>r=d >I?e6D6>β=d >0@,?ef>Y/*>d >e2;?eHX=

  • d >*!F?eS=Z>d > M?e=l]>d >BN?efQ>d >KI?e@ E6>d >'0@?eL/*3>d >e2?ekIY=d >*!?eZ V=d >沬 ?e]:d >A?e$Qd >dK?eD68d >п'?eF}/*d >?eXRlId >?eJ(F?>cԷL em'?>/LO3z?>LM6?>3LYྖ?>h!L7bW=?>LA(F?L=?>+L7m'~ >?>/EBLP3>?>jTL7СM>?>`LUY>?>"fLL=bW>?>eeLJ=(F>?>+H]L >Cm'>?>FBNLO3>=?>jT:LM>06=?>`#LY><?>fL"bW>?>eeL(F>L?>I]cLm'> ?>NL=Q3?>:L6=M?>#3Lh<\Y?>hLbW?>L@IHo>؏yPs؏yn=@Ho> Tڏy`=(Ho>&ߏy0>Ho>wy9>Ho>%y%I>BHo>&*xKL>N+/xB@>"=Ho>) x(>z=Ho>#j/x>n>Ho>o!xز=v9>Ho>%y?=I>Ho>'wy(SzLL>Ho>'yዽ@>Ho>U%y꽐(>Ho> yg>Ho>Ty09*=Ho>yyKL@PHo>؍y7@Ho>TUy(Ho>& yHo>6Ty9Ho>ۏyJ-s/4(>!f۽4(>bTl4(>ca C4(>j@E4(>OU 0<4(>hn/s=4(>k*۽O¸=4(>1mU=4(>aC>4(>@EU>4(>O 4<V >4(>ں=¸4(>al=U4(>cC=4(>jPE<[4(>ȼV 4(>n뗳>no5=C>\<+^g==C>6CAv=l>]>P= ~=#>7> W~{ >J=> }~;)>u=Nq>p~ 1><>5}~B>#>2)7>R~`>wu]>78~n+K8r>Gb3[Z@r>޼a3gzn>͑`3?r>5a3V$`:=?r>yb3mNq=?r>Ε1b3WK.o+>?r>FqKb3J\Z>?r>ܼ`b3hz>?r>3nb3>?r>tb3:=$>?r>ymsb3ܣ=Nq>?r>11jb32n+>hK>?r>rKYb3[Z>>?r>`$Cb3gz>=?r>3n'b3>t b3L$>:?r>msb3BNq>)?r>2jZb3K>io+?r>Yb3>\ZPr>$Cb3\=hzPr>'͑b3<ޱr> 5b3:$?r>듌b3\ὩNqr>Zϕb3nu9>X/-F\ >՝k/-c|HZ>m(.-fq>/-UnF)=>/-m[@=>2/-)u9>>XM/-e F>>j*b/-Hc>>(דp/-pgq>>Ow/->u/-P?=[>>2{l/->8u9>>M[/-F>+ >>*bD/-,c>G=>p(/-fq><>OwP /->n>G)>u/-D[>lAͽ>{lH/-t9>>[/- >}F>D֝/-&H=c>(m/-P /-E)n>/-?ͽ[>Hͅ/-BȽ*V>r&'4f>TGAMh>>5=^Dc>*?kx좼>3h*%=>^*VjD=>r54&>>PShHA>>5fE>^>>?uzk>>4|'%=0h>>m{B=*V>>5q&>4>>P_aA>h>>fG=^>D=>u*k><>| h><+%>m{4*V>DȽ>q4>8'>_T h>wA>G>nD=>^>**(%&h>꓄0 ,-SzNX >3s"] >RՖ}>ԧa繼X >Hτ8v<=X >x`t4=X >n5zNI->X >2eQ#]>X >g}>X >v빼b>X >~hs<=τ>X >|r=f`t>X >5rM->*zN>X >eQ`"]>>X >gpH}>=X >v#+a>~ =τ>w|_t>DŽX >roʨyN>-X >`>#]X >pHS=}X >#+<bX > t<τX >x)~`t >onn뗳_޾[glFb Z܂Ư ѽFL܂߽4oF e܂D`|O:FE+ ܂8F+ ܂X><>FP8܂p̾FO܂[g=l=F從܂rƯ= =F徴m܂s=4o=F܂:`>O:=F徻܂>8< оF很܂5l=]gF徦b ܂P =ǯFmL܂Lo=߽F徛 ܂@P:=`FE܂=<<F徰܂̾wF徱x܂H@zepu<^Bzg=e7zᄉFarz=%zᄐTR>z̰B0>BzC+"@>tKz]B>q6=zᄎܬT>Pz=z-Ĭ=R>zhͰA=^0>z,CH=@>zu^B>z蘬e7>zK#|z߽&>zD;-R=z4Oh 0B=zᄑ]-Ԭ*@|K=ze^Bqzgd74zFaK#`Hz߽zTD;RzリB3OA_0z+]A_0~2kkRL?[k`Hz߽aHDkd74p(k^BqvE k*@|K=bu.k 0B=kkR=?[Gk|z߽&>HDFke7>(ku^B>E :kH=@>.랊kA=^0>k=R>GkT>Pz=Fkd7>6=Wk]B>q<:k"@>tKk0>B~2kR>Lkrz=%ak=e7Wpkpu<^BvkH@buk F82 8!6>㪽8ѽF> 8vH>@<8̔=>Л=8]%>=8՚>g>8޷z=X6>8Cr =F>8 v8 QH>8kj=>8罯^%>8fg>8I'6=8.CF =82 H08#3l=Λ8@0]%8*fg8!I'᪽U68.c;8؃@z84ރκ)`.8D烇ΣB:=8fE!IN 8HK=8yՋM;8e=8KzA>8.)>8Dg#=B>8E(HIN>8H+D= K>8*c=;>8K '@>z>8!)>b.=8g#£B>@==8(IN>8<8+K>8*uE;>5e8 '탇z>~A8!5䃇.=)8܃==B8f׃(;۾*@6 V>;۾ƺQd粽nv>;۾ݹ]ͥ>;۾jUc57=>;۾i+b1(=m>;۾:*QZ(>H>;۾*@OLV>~6>;۾Q9hv>=;۾]"X>X<;۾Uc@>\97;۾+b"m>3*޽;۾QZսH>(;۾OLֿ6> V;۾9FP=pv;۾"G<<۾57o<۾՝'޽Cm8۾խ̃E*3!k%6hr 4%Q  2$,^@3!#[=3!ŕ#5J#=3!D-#!*>3!loE#r6>3!5pX#xQ>3!4ke#,^>3!}k#=[>3!;j#l=J>3!-a#>B*>3!oER#6>fr=3!qX=#Q>=3!ke$#,^>8<3!}kK #[>3!;j)#(J>&缽3!aO#*>3!R#r=63!=#`=Q3!$#h<,^3!K #[3!'ŕ$弽J NC%s<τ[ԾgG0<b[Ծ ք=}[Ծ**ʋ>#][ԾFzN>F-[Ծ^q_t>7[ԾoBτ>dv<[Ծyia> <[Ծ*{ і}>=[Ծ6t**r"]>>[ԾWeF*->FzN>[ԾO^(=x`t>[Ծ\4or<=τ>[Ծy칼b>[ԾZ*{ߗ}>[Ծ6t#]>[Ծ2WezNE->[ԾaO`t4=[Ծ[4GτTv<=[ԾGa@繼[ԾքZۖ}[Ծʋ{"]Ծ28-JzN[ԾpaCv`tԾLmTv}z(<6W$ @z7=J3$8zh6=?04 >QzC>$ж'` z~T>hwzvW>d6=c3$zX0>@6=W.%>PD>Qzζ=`C>,'`z@=gT>hz@2W>iz7J>czt6A0>5Wz.%7 >®ODzC(ж=ٟ,z~T=}zW𸔼@zJ^68ze0<65{` .%®{ζ_C ؟{x)Bo>0Q {=+J >G>OI9>A>a[>Īͽ>so>ܞ)>~q>N<> ;d>=>Rx+G>V >>hNI?>X9>>_Ra=[[>>66s)=No>>Z~Tq>>;d>>YRx oG>>hJ9@>> _R[0=> 56o)=>ZqP>{:dHO>YhG >?9> Wͽs[>)Ao"}>(Q {=+H >G"}>OI 9>A"}>a[>Ǫͽ"}>so>)"}>~q>M<"}> ;d>="}>Rx+G>W >"}>hNI?>X9>"}>_Ra=\[>"}>66s)=No>"}>Z~Tq>"}>;d>"}>YRx nG>"}>hJ9@>"}> _R[0="}> 56o)="}>ZqP"}>{:dH"}>YhG "}>?9"}> Wͽs["}>M!Xcd >[~< fd >=V Yd >YRx">>KF=d >h?0>'d > _R:)Q>$ýd >56.Xc>\O!d >Zf>{_ Y>z=d >Y;E=>0>>d >>0>d > =)Q>d >K!=Xc>d >@! f>d > {v8 Y>d >+k>F=>d >OIy0>d >ae)Q=d >sGXc$N!=d >~fd > P Yd >Rx+E=e>d >hOI0d >_RaҔý)Qd >66sҔý)Q"}>66s0"}>_RaE=e>"}>hOIP Y"}>Rx+f"}> GXc$N!="}>~e)Q="}>sy0>"}>ak>F=>"}>OIv8 Y>"}>+@! f>"}> {K!=Xc>"}>=)Q>"}>>0>"}> ;E=>0>>"}>_ Y>z="}>Yf><"}>{.Xc>\O!"}>Z:)Q>$ý"}>56?0>'"}> _R">>KF="}>h=V Y"}>YRx< f"}>M!Xc"}>[~DATAP,039p~ Bp, F @QM2Z Q? w`xDP  M`` Ŭ2 WtpV? 00\!`n`S?P=LP}B0=2 pn}pi @`7  X8 pT)n ` p05q R@@0Bq ,bP K;0 `| 7S,@7p.@Y-pQ   Pq `T 0q kC h5mnW7s`f)ЍM Pz-pp \\k ? #0kaCrA<q 07`02@5"KV550`555Pәәә0 q  q  q " " P" p߆߆`   y0yyM `M M 0ТuCuC@vC@}} ~SS@T CpCCCM PM M M @M  ]3p]3]3^3`^3^3_3P_3Є p`P@0Љ@޿޿޿0߿߿߿ p`P@ Z!pZ!Z![!`[![!\!P\!\!\!@]!]!]!0^!^!^! _!0 p`P@nn0nnЧn npnnn`nnnPnnn@nnn0nоо@ѾѾѾ0ҾҾҾ ӾpӾӾԾ`ԾԾվPվվվ@־]0^^^ _p__````aPaaa@bbb0ccP$$$@%%%0&&&0''' (p(()`))*`*D*D+DP+D+D+D@,D,D,D0-D-D-D .Dp.D.D/D`/D/D0DP0DН p`P@0Т pДQ QpQQQ`QQQPQQQ@QQQ0QQЙQ QpQQQPȾȾȾ@ɾɾɾ0ʾʾʾ ˾p˾˾̾`̾̾;P;;;@ξξ`VmVmWmPWmWmWm@XmXmXm0YmYmYm ZmpZmZm[m`[m[m\mP\m\mM M `M M M PM M M @M M M 0M M M  M pM M M `M M M pibibjb`jbjbkbPkbkbkb@lblblb0mbmbmb nbpnbnbob`obobpb/k @0k 0k 0k 01k 1k 1k  2k p2k 2k 3k `3k 3k 4k P4k 4k 4k @5k 5k 5k 06k 6k  NbpNbNbOb`ObObPbPPbPbPb@QbQbQb0RbRbRb SbpSbSbTb`TbTbUbP@0Д p`DATAp~8?DATA 8?DATA8?DATAB8?DATAp,8?DATA8?DATA 8?DATAF 8?DATA@Q8?DATAM8?DATA28?DATAZ 8?DATAQ?8?DATA w8?DATA`8?DATAxD8?DATAP8?DATA 8?DATA M8?DATA`8?DATA`8?DATA Ŭ8?DATA8?DATA28?DATA W8?DATAt8?DATA8?DATApV?8?DATA 8?DATA8?DATA08?DATA0\8?DATA8?DATA!8?DATA8?DATA`n8?DATA`S?8?DATAP=8?DATAL8?DATAP}B8?DATA08?DATA8?DATA=8?DATA2 8?DATApn8?DATA}8?DATApi8?DATA 8?DATA@8?DATA8?DATA`78?DATA8?DATA8?DATA 8?DATA X8 8?DATAp8?DATAT8?DATA)n 8?DATA` 8?DATAp8?DATA058?DATAq 8?DATAR8?DATA@@8?DATA0B8?DATAq 8?DATA,b8?DATAP K8?DATA;8?DATA08?DATA 8?DATA`|8?DATA 78?DATAS,8?DATA@78?DATAp.8?DATA@Y-8?DATApQ 8?DATA  8?DATAP8?DATAq 8?DATA8?DATA`T8?DATA 8?DATA8?DATA0q 8?DATAk8?DATAC8?DATA8?DATA 8?DATAh8?DATA5m8?DATAn8?DATAW8?DATA78?DATAs8?DATA`f8?DATA)8?DATAЍ8?DATAM 8?DATAPz8?DATA8?DATA-8?DATApp 8?DATA\8?DATA\8?DATAk8?DATA ?8?DATA #8?DATA0k8?DATAa8?DATA8?DATAC8?DATArA8?DATA<8?DATAq 8?DATA08?DATA8?DATA8?DATA78?DATA`8?DATA028?DATA@58?DATA"8?DATAK8?DATAV8?DATA58?DATA58?DATA8?DATA8?DATA08?DATA`58?DATA58?DATA58?DATAPә8?DATAә8?DATAә8?DATA0 q 8?DATA q 8?DATA q 8?DATA" 8?DATA" 8?DATAP" 8?DATAp߆8?DATA߆8?DATA8?DATA` 8?DATA 8?DATA 8?DATAy8?DATA0y8?DATAy8?DATAM 8?DATA`M 8?DATAM 8?DATA08?DATA8?DATAТ8?DATAuC8?DATAuC8?DATA@vC8?DATA8?DATA8?DATA@8?DATA}8?DATA}8?DATA ~8?DATAS8?DATAS8?DATA@T8?DATA C8?DATApC8?DATAC8?DATAC8?DATAM 8?DATAPM 8?DATAM 8?DATAM 8?DATA@M 8?DATA ]38?DATAp]38?DATA]38?DATA^38?DATA`^38?DATA^38?DATA_38?DATAP_38?DATAЄ8?DATA 8?DATAp8?DATA8?DATA8?DATA`8?DATA8?DATA8?DATAP8?DATA8?DATA8?DATA@8?DATA8?DATA8?DATA08?DATA8?DATAЉ8?DATA@޿8?DATA޿8?DATA޿8?DATA0߿8?DATA߿8?DATA߿8?DATA 8?DATAp8?DATA8?DATA8?DATA`8?DATA8?DATA8?DATAP8?DATA8?DATA8?DATA@8?DATA Z!8?DATApZ!8?DATAZ!8?DATA[!8?DATA`[!8?DATA[!8?DATA\!8?DATAP\!8?DATA\!8?DATA\!8?DATA@]!8?DATA]!8?DATA]!8?DATA0^!8?DATA^!8?DATA^!8?DATA _!8?DATA8?DATA8?DATA08?DATA8?DATA8?DATA 8?DATAp8?DATA8?DATA8?DATA`8?DATA8?DATA8?DATAP8?DATA8?DATA8?DATA@8?DATA8?DATA8?DATAn8?DATAn8?DATA0n8?DATAn8?DATAЧn8?DATA n8?DATApn8?DATAn8?DATAn8?DATA`n8?DATAn8?DATAn8?DATAPn8?DATAn8?DATAn8?DATA@n8?DATAn8?DATAn8?DATA0n8?DATAо8?DATAо8?DATA@Ѿ8?DATAѾ8?DATAѾ8?DATA0Ҿ8?DATAҾ8?DATAҾ8?DATA Ӿ8?DATApӾ8?DATAӾ8?DATAԾ8?DATA`Ծ8?DATAԾ8?DATAվ8?DATAPվ8?DATAվ8?DATAվ8?DATA@־8?DATA]8?DATA0^8?DATA^8?DATA^8?DATA _8?DATAp_8?DATA_8?DATA`8?DATA``8?DATA`8?DATAa8?DATAPa8?DATAa8?DATAa8?DATA@b8??DATAb8??DATAb8??DATA0c8??DATAc8??DATAP$8??DATA$8??DATA$8??DATA@%8??DATA%8??DATA%8??DATA0&8??DATA&8???DATA&8?DATA0'8?DATA'8?DATA'8?DATA (8?DATAp(8?DATA(8?DATA)8?DATA`)8?DATA)8?DATA*8?DATA`*D8?DATA*D8?DATA+D8?DATAP+D8?DATA+D8?DATA+D8?DATA@,D8?DATA,D8?DATA,D8?DATA0-D8?DATA-D8?DATA-D8?DATA .D8?DATAp.D8?DATA.D8?DATA/D8?DATA`/D8?DATA/D8?DATA0D8?DATAP0D8?DATA8?DATAН8?DATA 8?DATAp8?DATA8?DATA8?DATA`8?DATA8?DATA8?DATAP8?DATA8?DATA8?DATA@8?DATA8?DATA8?DATA08?DATA8?DATAТ8?DATA 8?DATAp8?DATAДQ8?DATA Q8?DATApQ8?DATAQ8?DATAQ8?DATA`Q8?DATAQ8?DATAQ8?DATAPQ8??DATAQ8??DATAQ8??DATA@Q8??DATAQ8??DATAQ8??DATA0Q8??DATAQ8??DATAЙQ8??DATA Q8??DATApQ8??DATAQ8??DATAQ8??DATAPȾ8?DATAȾ8?DATAȾ8?DATA@ɾ8?DATAɾ8?DATAɾ8?DATA0ʾ8?DATAʾ8?DATAʾ8?DATA ˾8?DATAp˾8?DATA˾8??DATA̾8??DATA`̾8??DATA̾8??DATA;8??DATAP;8??DATA;8??DATA;8??DATA@ξ8??DATAξ8??DATA`Vm8??DATAVm8??DATAWm8??DATAPWm8?DATAWm8?DATAWm8?DATA@Xm8?DATAXm8?DATAXm8??DATA0Ym8??DATAYm8??DATAYm8??DATA Zm8??DATApZm8??DATAZm8??DATA[m8??DATA`[m8??DATA[m8??DATA\m8??DATAP\m8??DATA\m8??DATAM 8?DATAM 8?DATA`M 8?DATAM 8?DATAM 8?DATAPM 8?DATAM 8?DATAM 8?DATA@M 8?DATAM 8?DATAM 8?DATA0M 8?DATAM 8?DATAM 8?DATA M 8?DATApM 8?DATAM 8?DATAM 8?DATA`M 8?DATAM 8?DATAM 8?DATApib8?DATAib8?DATAjb8?DATA`jb8?DATAjb8?DATAkb8?DATAPkb8?DATAkb8?DATAkb8?DATA@lb8?DATAlb8?DATAlb8?DATA0mb8?DATAmb8?DATAmb8?DATA nb8?DATApnb8?DATAnb8?DATAob8?DATA`ob8?DATAob8?DATApb8?DATA/k 8?DATA@0k 8?DATA0k 8?DATA0k 8?DATA01k 8?DATA1k 8?DATA1k 8?DATA 2k 8?DATAp2k 8?DATA2k 8?DATA3k 8?DATA`3k 8?DATA3k 8?DATA4k 8?DATAP4k 8?DATA4k 8?DATA4k 8?DATA@5k 8?DATA5k 8?DATA5k 8?DATA06k 8?DATA6k 8?DATA Nb8?DATApNb8?DATANb8?DATAOb8?DATA`Ob8?DATAOb8?DATAPb8?DATAPPb8?DATAPb8?DATAPb8?DATA@Qb8?DATAQb8?DATAQb8?DATA0Rb8?DATARb8?DATARb8?DATA Sb8?DATApSb8?DATASb8?DATATb8?DATA`Tb8?DATATb8?DATAUb8?DATA8?DATAP8?DATA8?DATA8?DATA@8?DATA8?DATA8?DATA08?DATA8?DATAД8?DATA 8?DATAp8?DATA8?DATA8?DATA`8?DATA8?DATA8?DATAhP*bDATA=b7$# #!G##!F##!E##!D#!#C##!#B##!A##!@# #!?# # ! ># ! # =# ! # <# # # ;# # # :##9##8#L##7#O##6##5###4##3##2##1#0#!#/!!##.#!-!"#,#!#+!!!#*#!)! #(# !! "# '#!##!&#"#!"%##$#$%!$&#$.#%'#%,#&'!&*#'(#()!(*!(4#)+#)C#*+!*5#+B#,-!,.!,;#-/#-<#./!.:#/=#01#0;#0G!12#1F!23#2E!34#3D!4C!56#5B!67#6A!78#7@!7N#89#8?!8M#9:#9>!:=!;<!<G#=>#>?#?@#@A#AB#CD#DE#EF#FG#HI#HK#HM#IJ#IN#JK#JO#KL#LM#LO!MN!NO#PQ#Pg#P!QR#Q!RS#R!ST#S!TU#T!UV#U!VW#V!WX#W!XY#X!YZ#Y!Z[#Z![\#[!\]#\!]^#]!^_#^!_`#_!`a#`!ab#a!bc#b!cd#c!de#d!ef#e!fg#f!g!hi#h#h!ij#i!jk#j!kl#k!lm#l!mn#m!no#n!op#o!pq#p!qr#q!rs#r!st#s!tu#t!uv#u!vw#v!wx#w!xy#x!yz#y!z{#z!{|#{!|}#|!}~#}!~#~!!##################################################!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!!###################################################### ## ## ## ## #################################### !#!#!#!#!#+!#*##)##(!#'##&##%!#!#!#!#! #!  # !  # !  # !  # ! # !#!!# #!!#!!#!!#!!#!!#!!#!!#!!#!!#!!#!!!!%##!!+##!!#!! #!! !!!"#!#!!$#"##"+##$#$%#%&#&'#'(#()#)*#*+#,-',C',D#,t#-.'-E#-u#./'.F#.v#/0'/G#/w#01'0H#0x#12'1I#1y#23'2J#2z#34'3K#3{#45'4L#4|#56'5M#5}#67'6N#6~#78'7O#7#89'8P#8#9:'9Q#9#:;':R#:#;<';S#;#<='<T#<#=>'=U#=#>?'>V#>#?@'?W#?#@A'@X'@'AB'AY#A#BC'BZ#B#C[#C#DE#D[#D]#EF#E^#FG#F_#GH#G`#HI#Ha#IJ#Ib#JK#Jc#KL#Kd#LM#Le#MN#Mf#NO#Ng#OP#Oh#PQ#Pi#QR#Qj#RS#Rk#ST#Sl#TU#Tm#UV#Un#VW#Vo#WX#Wp#XY#Xq'YZ#Ys#Z[#Zr#[\#\]#\r#]^#^_#_`#`a#ab#bc#cd#de#ef#fg#gh#hi#ij#jk#kl#lm#mn#no#op#pq#qs#rs#tu#t#tK#uv#uJ#vw#vI#wx#wH#xy#xG#yz#yF#z{#zE#{|#{D#|}#|C#}~#}B#~#~A##@##?##>##=##<##;##:##9##8##7'#6##5#L#!!!!!!!!!!!!!!!!!!!!!%!!############################################'#########'#####################################################################################'#####!#!#%#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!!##d##c##b##a##`##_##^##]##\##[##Z##Y##X##W##V##U##T##S##R##Q##P##O'#N#M#''#K#'#J#'#I# ' #H#  ' !# G#  ' "# F#  ' ## E#  ' $# D# ' %# C#'&#B#''#A#'(#@#')#?#'*#>#'+#=#',#<#'-#;#'.#:#'/#9#'0#8#'1'7''2#6#'3#5#4#L##4#c##b# #a# !# `#!"#!_#"##"^##$##]#$%#$\#%&#%[#&'#&Z#'(#'Y#()#(X#)*#)W#*+#*V#+,#+U#,-#,T#-.#-S#./#.R#/0#/Q#01#0P#12#1O'23#2N#34#3M#4d#56#5L#67#78#89#9:#:;#;<#<=#=>#>?#?@#@A#AB#BC#CD#DE#EF#FG#GH#HI#IJ#JK#KL#MN#Md#NO#OP#PQ#QR#RS#ST#TU#UV#VW#WX#XY#YZ#Z[#[\#\]#]^#^_#_`#`a#ab#bc#cd#ef#e|#e}#fg#f~#gh#g#hi#h#ij#i#jk#j#kl#k#lm#l#mn#m#no#n#op#o#pq#p#qr#q#rs#r#st#s#tu#t#uv#u#vw#v#wx#w#xy#x#yz#y#z{#z#{|#{#|#}~#}#~##############################################################################################DATAhI,*VTex@vn UVTex0DATAX/@vn 6^        !#" "#!!#$&" '%"%,#.$!&* ('4(+))C*5B+ ,;-/ <- :./= 01FG12EF23DE34CD56AB67@A?@89 >? 9: => ;0G< <G0;<;,-=:9>>98??87@A@76A65BC)(4C43DD32EE21FF10G/.:=-,./+B5*)+*(*&'(,%$.'&$%8LM78MN7NOOLKJIHOJKLNIJOMHINLKHMh~}~|}{|z{yzxywxvwuvtustrsqrpqopnomnlmkljkijhiPgfgefdecdbcab`a_`^_]^\][\Z[YZXYWXVWUVTUSTRSQRPQ                       !! !!!!!!!!!!!!!!())**++'(&'%&%+"!!"#!#$!$%d4ccbbaa `` !__!"^^"#]]#$\\$%[[%&ZZ&'YY'(XX()WW)*VV*+UU+,TT,-SS-.RR./QQ/0PP01OO12NN23ML565768798:9;:<;=<>=?>@?A~@B}~AC|}BD{|CEz{DFyzEGxyFHwxGIvwHJuvIKtuJLtK4dM3231201/0./-.,-+,*+)*()'(&'% &$  %#  $"  #!  "  ! 4LKKJJIIHHG  GF  FE  ED  DC  CBBAA@@??>>==<<;;::99887766543MdNMONPOQPRQSRTSUTVUWVXWYXZY[Z\[]\^]_^`_a`bacbdcC,tt,-uu-.vv./ww/0xx01yy12zz23{{34||45}}56~~6778899::;;<<==>>??@@AABL5\[Zr[CBZYsrZXqsYWpqXVopWUnoVTmnUSlmTRklSQjkRPijQOhiPNghOMfgNLefMKdeLJcdKIbcJHabIG`aHF_`GE^_FD]^E[\]DCBAYZB@XYA?WX@>VW?=UV><TU=;ST<:RS;9QR:8PQ97OP86NO75MN64LM53KL42JK31IJ20HI1/GH0.FG/-EF.,DE-C[D,|e}f~}eg~fhgihjikjlkmlnmonpoqprqsrtsutvuwvxwyxzy{z|{DATAq0A^????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? $?KX?$?J?)?}?o)?c ?S0?p ?0?}?o)?J?)?x ?~7? ?d7?p ?0?c ?S0?x ?>? ?v?? ?d7?x ?~7?c ?zF?j ?_F? ?v??x ?>?F?YL?}?L?j ?_F?c ?zF?RX?aQ??[R?}?L?F?YL?6? vU?*z?:+V??[R?RX?aQ?"?aW?>"?$X?*z?:+V?6? vU?/[*?aW?t*?$X?>"?$X?"?aW?х1?vU?1?@+V?t*?$X?/[*?aW?7?lQ?j8?\R?1?@+V?х1?vU?1=?gL?U=?L?j8?\R?7?lQ?k@?F?A?_F?U=?L?1=?gL?B?>?pC???A?_F?k@?F?B?~7?oC?e7?pC???B?>?j@?S0?A?0?oC?e7?B?~7?1=? )?P=?o)?A?0?j@?S0?7?$?j8? $?P=?o)?1=? )?Ʌ1?o ?1?C= ?j8? $?7?$?&[*??t*?nD?1?C= ?Ʌ1?o ?"??4"?nD?t*?nD?&[*??)?i ?z?B= ?4"?nD?"??KX?$?? $?z?B= ?)?i ?ʿ>1L?>M?;>peH?>G?#>?A?A>'@A?>G?;>peH?s>4p:?[>k@:?A>'@A?#>?A?o>2?X>v3?[>k@:?s>4p:?>u+?A>,?X>v3?o>2?;>j$?>E%?A>,?>u+?(>.y?ῷ> ?>E%?;>j$?4>?L>!?ῷ> ?(>.y?>?YL>?L>!?4>?)>?P>?YL>?>? >?>?P>?)>?~>+y?V> ?>? >?{?d$? ?@%?V> ?~>+y??u+?j?,? ?@%?{?d$? ?2?J?m3?j?,??u+? ?)p:?J?`@:?J?m3? ?2??8A?j? @A?J?`@:? ?)p:?r?neH??G?j? @A??8A?a>M?V>:L??G?r?neH?>Q?>EP?V>:L?a>M?)>S?->%R?>EP?>Q?>S?:L>%R?->%R?)>S?~4>Q?L>EP?:L>%R?>S?>M?ʿ>1L?L>EP?~4>Q?xC?S=?LD?D/=?F?MC?#E?-LD?pC? 6?D?n.6?LD?D/=?xC?S=?dE?/?xF? m/?D?n.6?pC? 6?,I?(? I?$i)?xF? m/?dE?/?LN?#? N?$? I?$i)?,I?(? T?; ?T?!? N?$?LN?#?[?nD?[?nG?T?!? T?; ? b?nD?b?hG?[?nG?[?nD?=i? ?Ci?w!?b?hG? b?nD?Po?#?Fo?$?Ci?w!?=i? ?Uu?(?q3t?h)?Fo?$?Po?#?x?/?Ew?ih/?q3t?h)?Uu?(?jz? 5?y?9 6?Ew?ih/?x?/?8z?,D=?"y?D!=?y?9 6?jz? 5?Ax?HD?w?QC?"y?D!=?8z?,D=?u?:J?8t?I?w?QC?Ax?HD?o?O?Ho?N?8t?I?u?:J?oi?-S?"Di?z;R?Ho?N?o?O?b?U?b?GT?"Di?z;R?oi?-S?[?LU?[?T?b?GT?b?U?T?G+S? T?9R?[?T?[?LU?SN?O?N?+N? T?9R?T?G+S?6I?aJ?ZJ?%I?N?+N?SN?O?#E?-LD?F?MC?ZJ?%I?6I?aJ?F?MC?uH?On?f%?Fo?$?Fo?$?>n?f%?h?h"?Ci?w!?Ci?w!?h?h"?3Xb?k ?b?hG?b?hG?3Xb?k ?[? ?[?nG?[?nG?[? ?_U?!"?T?!?T?!?_U?!"?\O? %? N?$? N?$?\O? %?UK?&u*? I?$i)? I?$i)?UK?&u*? H?0?xF? m/?xF? m/? H?0?\UF?g6?D?n.6?D?n.6?\UF?g6?9]F?n?f%?%m?P'?g?P$?h?h"?hr?ps*?jq?+?%m?P'?>n?f%?$!v?,0?st?0?jq?+?hr?ps*?|w?:\6?l v?6?st?0?$!v?,0?Tw?Z?E>ys?>G? >G? >ys?>3?>?>?>3?>!?>Y"?J>Y"?J>!?>D'?D>'?>'?>D'?D>z-?W>Df-?E!>Df-?E!>z-?W>3?G>2?;>2?;>3?G>8?T>a7?>a7?>8?T>Nb=?.>;?>;?>Nb=?.>@?>b>?\>b>?\>@?>9B?7>K{@?B>K{@?B>9B?7>^C??@?s~?@?s~?^C??IrB?pk?/@??/@??IrB?pk?)@? ?t$>?Ѭ ?t$>?Ѭ ?)@? ??7>1#?(!?k?Ӊu?C<=?cRc?/??/?u?C<\??/?c?/?=?cR<L@e/??Ih/?oHB<wbs/?/?L@e<Wa=bya=)/?s/?wb<'>dZ2>/?ya=)/?Wa=b<c>Cgd>Q/?Z2>/?'>d<ٜ>zk>/?d>Q/?c>Cg<G>pC>/?>/?ٜ>zk<K> v>R/?C>/?G>p<?B}s?|/?>R/?K> v<5$?N$?/?s?|/??B}<9?+9?v/?N$?/?5$?<O?k?i>?7>?> ?W? ?I? a ?>?>?6 ?N ? ? ?I? ?W?m?f_?2N???6 ? 0??4"?? ?j?2N??m?f_?'?i?j@'?nD? ?j?4"??p-?}?".?nD?j@'?nD?'?i?G3?N?W4?G?".?nD?p-?}?%@8?j0?h';??W4?G?G3?N?VH?>H??^C??@?>E?g>VH?>9B?7>Nb=?.>KA?>E?g>@?>8?T>KA?>Nb=?.>3?G>5?>8?T>z-?W>g.?$>5?>3?G>D'?D>&?Q>g.?$>z-?W>!?>?b>&?Q>D'?D>3?>m ?>?b>!?>ys?><?>m ?>3?>Z?E>ћ?q><?>ys?>!?k1#?(f?<_e?RZ<_e?RZf?<3??@<?@3?Y?0?!2<?!2Y?02? ᇾ1? <1? 2? ᇾw?*Ї6w?r<6w?rw?*Ї?t?<t??Ez?z?<z?Ez?͏d?}d?䐾<}d?䐾͏d?O?kO?א<O?אO?k9?+k9?͐<k9?͐9?+5$?x3$?Ð<x3$?Ð5$??B}?1<?1?B}K> v>ѳ<>ѳK> vG>p>~<>~G>pٜ>zk؜> <؜> ٜ>zkc>Cgc><c>c>Cg'>d+>𡐾<+>𡐾'>dWa=ba=k<a=kWa=bwbe<ewbL@eݓ<ݓL@eoHBG@Ő<o2?<\?=?cR)?)<)?)=?cRu?C?Ӊ<ћ?q>Z?E>?> a ?>?7>?i>c?>?g>???7>?g>w??a????w??g?Ȼ??T???m????c?F"???T??c?F#?M? (??F"??F#?M?_*(??B-?g? (??_*(??#-??XS2??B-?g?#-??1??-6?D?XS2??1??Pl6?c?Y;??-6?D?Pl6?c?>:?\0?t$>?Ѭ ?Y;??>:?\0?+8=?o' ?/@??t$>?Ѭ ?+8=?o' ?'??o~?@?s~?/@??'??o~?z??Kw?K{@?B>@?s~?z??Kw?j??>b>?\>K{@?B>j??>=?~>;?>b>?\>=?~>:?W>a7?>;?>:?W>6?>2?;>a7?>6?>P2?>Df-?E!>2?;>P2?>C-?YO>'?>Df-?E!>C-?YO>j(?H>Y"?J>'?>j(?H>_"?i>?>Y"?J>_"?i>1?k>G? >?>1?k>8?%>?i>G? >8?%>c?>c?>8?%>1?e>d?P>8?%>1?k>3|?)>1?e>1?k>_"?i>#?ǿ>3|?)>_"?i>j(?H>(?O>#?ǿ>j(?H>C-?YO>83-?S>(?O>C-?YO>P2?>!2?>83-?S>P2?>6?>͛6?|>!2?>6?>:?W>4_:?5>͛6?|>:?W>=?~>2=?>4_:?5>=?~>j??>>?>2=?>j??>z??Kw?h??Wt?>?>z??Kw?'??o~?X>?~\?h??Wt?'??o~?+8=?o' ??~\?+8=?o' ?>:?\0?9??:?\0?Pl6?c?x'6?C?9??Pl6?c?1??]1? #?x'6?C?1??#-??-?v:?]1? #?#-??_*(??F7(?-7?-?v:?_*(??F#?M?n#??F7(?-7?F#?M??c?U??n#???c?m?????U??g?Ȼ?w??h?x??!?w???g>N?T:>h?x??g>c?>d?P>N?T:>N?T:>d?P>\C?>3L?>h?x?N?T:>3L?>|????!?h?x?|???5?]?U??????e?#?n#??U??e?#?#?j>?F7(?-7?n#??#?j>?P(?5R?-?v:?F7(?-7?P(?5R?A,?V?]1? #?-?v:?A,?V?q1?K?x'6?C?]1? #?q1?K?*5?;?9??x'6?C?*5?;?S:9?<??~\??~\?,=?1?{>?n?>?>h??Wt?{>?n?>?a>2=?>>?>>?a>^4_:?5>2=?>^59?Vp>͛6?|>4_:?5>59?Vp> 6? >!2?>͛6?|> 6? >51?_>83-?S>!2?>51?_>-?;2>(?O>83-?S>-?;2>N4(?r1>#?ǿ>(?O>N4(?r1>n#?>3|?)>#?ǿ>n#?>1?->1?e>3|?)>1?->:?>d?P>1?e>:?>\C?>\C?>:?>w?>?ݼ>:?>1?->?>w?>1?->n#?>$?ܥ>?>n#?>N4(?r1>8g(?\w>$?ܥ>N4(?r1>-?;2>w,?r>8g(?\w>-?;2>51?_> 81?y>w,?r>51?_> 6? >&5?S> 81?y> 6? >59?Vp>,s8?ǒ>&5?S>59?Vp>^:?R>,s8?ǒ>^>?a>ao:?R>>?a>{>?n?{>?n?,=?1?[A?WB$??B(?9?#?j>?e?#?C ?d?WB$??e?#???!?ط ?C ?d?5?]?|???^????|???3L?>?>^??3L?>\C?>?ݼ>?>?>?ݼ>?B>p?C>^???>p?C>v?T???^??v?T?IA?\W?C ?d?!?ط ? ??0]#?y' ?WB$??C ?d?0]#?y' ?H%&? ?B(?9?WB$??H%&? ?()?І ?,??B(?9?()?І ?<,? ?0?n?,??<,? ?7/?> ? 4??0?n?7/?> ?)1? ?N8?* ? 4??)1? ?.C4? ?՝:?J ?N8?* ?.C4? ? 6?*?[A:?R>aoC7?ڃ>06?>,s8?ǒ>:?R>06?>0o4?ϣ>&5?S>,s8?ǒ>0o4?ϣ>f2?Ї> 81?y>&5?S>f2?Ї>Q/?>w,?r> 81?y>Q/?> B,?8>8g(?\w>w,?r> B,?8>)?M>$?ܥ>8g(?\w>)?M>%?x>?>$?ܥ>%?x>f)#?? >w?>?>f)#?? > ?~>?ݼ>w?> ?~>?B>?B> ?~>)+?Q?? ?~>f)#?? >)+?Q??f)#?? >%?x>)+?Q??%?x>)?M>)+?Q??)?M> B,?8>)+?Q?? B,?8>Q/?>)+?Q??Q/?>f2?Ї>)+?Q??f2?Ї>0o4?ϣ>)+?Q??0o4?ϣ>06?>)+?Q??06?>C7?ڃ>)+?Q??C7?ڃ>7?N?)+?Q??7?N?.7?XV?)+?Q??.7?XV? 6?*?)+?Q?? 6?*?.C4? ?)+?Q??.C4? ?)1? ?)+?Q??)1? ?7/?> ?)+?Q??7/?> ?<,? ?)+?Q??<,? ?()?І ?)+?Q??()?І ?H%&? ?)+?Q??H%&? ?0]#?y' ?)+?Q??0]#?y' ? ??)+?Q??IA?\W?v?T?)+?Q??v?T?p?C>)+?Q??p?C>?B>)+?Q??qD?/?D?_3??J]3??J/?<?J/??J]3?Dz?0^3?Dz?X/?<Dz?X/?Dz?0^3? ?h\3? ?/?< ?/? ?h\3?L?_3?L?n/?<L?n/?L?_3??g_3?x?/?<x?/??g_3?҇?_3?҇?j/?<҇?j/?҇?_3?,z?`3?,z?/?<,z?/?,z?`3?Ŵd?T`3?d? /?<d? /?Ŵd?T`3?=O?|`3?4`3?>R/?<>R/?I>4`3?>_3?C>/?<C>/?>_3?>_3?>/?<>/?>_3?Vd>_3?d>Q/?<d>Q/?Vd>_3?2>^3?Z2>/?<Z2>/?2>^3?{a=]3?ya=)/?<ya=)/?{a=]3? ]3?s/?<s/? ]3?4Y3?/?</?4Y3?HFa3??Ih/?<?/?qp?N3?k?M3?c?/?<c?/?k?M3?C?:V3??/?<qD?/?1#?(u?C?/?<>^? >?K&>~ ?>oK ? >?|?K?R?c ?K&>~ ?o?5?I>U\?>oK ?K&>~ ?”?t?`??I>U\?o?5?<4?~#=J[?Q=?U-<+?UB"= ?}O=I ?~#=J[?<4?[=?\ǂ=?}O=I ?UB"= ?e.=S'?)ˢ=5?\ǂ=?[=?=2>{=o>)ˢ=5?e.=S'?(=>wv= >{=o>=2>>Ա>>0C>wv= >(=>J!> >&>s>>0C>>Ա>7<>I>m@>c>&>s>J!> >mX>B>C[>'>m@>c>7<>I>0u>@> w>>C[>'>mX>B>þ>Yw>>IR> w>>0u>@>@>C>c>>>IR>þ>Yw>E>x>Hڥ>,>c>>@>C>_>>zD>>Hڥ>,>E>x>>>>S>zD>>_>>{> >x$>I>>S>>>|G>Q>Y>>x$>I>{> >>>Õ>ߨ>Y>>|G>Q>>C*?Z>7?Õ>ߨ>>> >?>^?Z>7?>C*?D?_3?qD?/??/?C?:V3?<6i?]N?o?5?K&>~ ?R?c ? ??”?t?o?5?6i?]N?:e.=S'?[=?|=?M= 9>=2>e.=S'?II\=%n>w4=)>(=>=2>M= 9>=\>>Ա>(=>w4=)>>9>J!> >>Ա>=\> 5>>7<>I>J!> >>9>S>٩>mX>B>7<>I> 5>>$s>I>0u>@>mX>B>S>٩> >Q>þ>Yw>0u>@>$s>I>>>@>C>þ>Yw> >Q>>>E>x>@>C>>>> >_>>E>x>>>>*>>>_>>> > 3>.f>{> >>>>*>>.>|G>Q>{> > 3>.f>>@>>>|G>Q>>.>>t>>C*?>>>@>|?K? >?>C*?>t><+?jo"ZS?>$U?<=$U?=YS?i">sQ?,%>3S?>$U? >"ZS?;>M?ZU@>6O?,%>3S?i">sQ?P>H?V>I?ZU@>6O?;>M?_>96B?Ef>B?V>I?P>H?Og>;?+|n>Y;?Ef>B?_>96B?0hg>O3?1n>C3?+|n>Y;?Og>;?_>x,?bf>+?1n>C3?0hg>O3?P>%A&?ߣV>&%?bf>+?_>x,?" <>!?rp@>:?ߣV>&%?P>%A&?@">nb?G%>Ķ?rp@>:?" <>!?>{?>?G%>Ķ?@">nb?9={? X=?>?>{?O=a?+ʒ=G? X=?9={?hJ=I!?8=ȟ?+ʒ=G?O=a?&N?fU>S?q>4V?.>4V?.>S?q>:Z?>}[?N(>}[?N(>:Z?>'`?B>тa?jC>тa?jC>'`?B>`g?mC>/>g?C>/>g?C>`g?mC>˫n?>>l?L(>>l?L(>˫n?>t?>q?>q?>t?>Ny?Y>bu?j>bu?j>Ny?Y>Д}?T>Bx?ς>Bx?ς>Д}?T>=?>z??z??=?>?-;?7z??7z???-;?}?1?=$y?l ?=$y?l ?}?1?Rz?;?&v? ?&v? ?Rz?;?"u??r??r??"u??n??cl??cl??n??wh?nD?spg?eD?spg?eD?wh?nD?a?nD?a?VO?d>VO?d>YK?#h>N?fU>R?m>LIHpK,LIlib //scene.blendnc/python/phatch/trunk/data/blender/scene.blend/home/stani/sync/python/phatch/trunk/data/blender/scene.blende.blendIDH   pK,OBBounding BoxubeIDH   pK,OBcameraameraamera.001IDH p  pK,OBcamera_targetmptyIDHp   pK,OBfloorlaneIDH P p pK,OBLampIDHP  pK,OBLamp.001IDHPP pK,MAflooraterial.001DNA1SDNANAMEq *next*prev*data*first*lastxyzwxminxmaxyminymax*pointergroupvalval2name[32]typesubtypeflagsaveddatalentotallen*newid*libname[24]usicon_id*propertiesid*idblock*filedataname[240]filename[240]totpad*parentw[2]h[2]changed[2]pad0pad1*rect[2]*obblocktypeadrcodename[128]*bp*beztmaxrcttotrctvartypetotvertipoextraprtbitmaskslide_minslide_maxcurval*drivercurvecurshowkeymuteipoposrelativetotelempad2*weightsvgroup[32]sliderminslidermax*refkeyelemstr[32]elemsizeblock*ipo*fromtotkeyslurph**scripts*flagactscripttotscript*line*formatblenlinenostartendflagscolor[4]pad[4]*namenlineslines*curl*sellcurcselcmarkers*undo_bufundo_posundo_len*compiledmtimesizeseekpassepartalphaangleclipstaclipendlensortho_scaledrawsizeshiftxshiftyYF_dofdistYF_apertureYF_bkhtypeYF_bkhbiasYF_bkhrotscriptlink*dof_obframenrframesoffsetsfrafie_imacyclokmulti_indexlayerpassmenunribufs*gputexture*anim*rrsourcelastframetpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfile*previewlastupdatelastusedanimspeedgen_xgen_ygen_typeaspxaspy*vnodetexcomaptomaptonegblendtype*object*texuvname[32]projxprojyprojzmappingofs[3]size[3]texflagcolormodelpmaptopmaptonegnormapspacewhich_outputpad[2]rgbkdef_varcolfacnorfacvarfacdispfacwarpfacname[160]*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*instance_init)()(*callback)()versionaipotype*ima*cube[6]imat[4][4]obimat[3][3]stypeviewscalenotlaycuberesdepthrecalclastsizenoisesizeturbulbrightcontrastrfacgfacbfacfiltersizemg_Hmg_lacunaritymg_octavesmg_offsetmg_gaindist_amountns_outscalevn_w1vn_w2vn_w3vn_w4vn_mexpvn_distmvn_coltypenoisedepthnoisetypenoisebasisnoisebasis2imaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendcheckerdistnablaiuser*nodetree*plugin*coba*envuse_nodespad[7]loc[3]rot[3]mat[4][4]min[3]max[3]pad3modetotexshdwrshdwgshdwbshdwpadenergydistspotsizespotblendhaintatt1att2*curfallofffalloff_typeshadspotsizebiassoftbufsizesampbuffersfiltertypebufflagbuftyperay_sampray_sampyray_sampzray_samp_typearea_shapearea_sizearea_sizeyarea_sizezadapt_threshray_samp_methodtexactshadhalostepsun_effect_typeskyblendtypehorizon_brightnessspreadsun_brightnesssun_sizebackscattered_lightsun_intensityatm_turbidityatm_inscattering_factoratm_extinction_factoratm_distance_factorskyblendfacsky_exposuresky_colorspacepad4YF_numphotonsYF_numsearchYF_phdepthYF_useqmcYF_bufsizeYF_padYF_causticblurYF_ltradiusYF_glowintYF_glowofsYF_glowtypeYF_pad2*mtex[18]specrspecgspecbmirrmirgmirbambrambbambgambemitangspectraray_mirroralpharefspeczoffsaddtranslucencyfresnel_mirfresnel_mir_ifresnel_trafresnel_tra_ifiltertx_limittx_falloffray_depthray_depth_traharseed1seed2gloss_mirgloss_trasamp_gloss_mirsamp_gloss_traadapt_thresh_miradapt_thresh_traaniso_gloss_mirdist_mirfadeto_mirshade_flagmode_lflarecstarclinecringchasizeflaresizesubsizeflarebooststrand_stastrand_endstrand_easestrand_surfnorstrand_minstrand_widthfadestrand_uvname[32]sbiaslbiasshad_alphaseptexrgbselpr_typepr_backpr_lampml_flagdiff_shaderspec_shaderroughnessrefracparam[4]rmsdarkness*ramp_col*ramp_specrampin_colrampin_specrampblend_colrampblend_specramp_showrampfac_colrampfac_spec*groupfrictionfhreflectfhdistxyfrictdynamodesss_radius[3]sss_col[3]sss_errorsss_scalesss_iorsss_colfacsss_texfacsss_frontsss_backsss_flagsss_presetYF_arYF_agYF_abYF_dscaleYF_dpwrYF_dsmpYF_presetYF_djitgpumaterialname[256]scale*bbi1j1k1i2j2k2selcol1selcol2quat[4]expxexpyexpzradrad2s*mat*imatelemsdisp**mattotcolwiresizerendersizethreshvec[3][3]alfaweightradiush1h2f1f2f3hidevec[4]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsvtilt_interpradius_interpcharidxkernhnurb*bevobj*taperobj*textoncurve*path*keybevpathlenbevresolwidthext1ext2resolu_renresolv_renspacemodespacinglinedistshearfsizewordspaceulposulheightxofyoflinewidth*strfamily[24]*vfont*vfontb*vfonti*vfontbisepchartotboxactbox*tbselstartselend*strinfocurinfoeffect*mface*mtface*tface*mvert*medge*dvert*mcol*msticky*texcomesh*mselectvdataedatafdatatotedgetotfacetotselectact_facecubemapsizesmoothreshsubdivsubdivrsubsurftype*mr*pv*tpageuv[4][2]col[4]transptileunwrapv1v2v3v4edcodecreasebweightdef_nr*dwtotweightco[3]no[3]pad[3]uv[2]co[2]indexfis[256]v[4]midv[2]*faces*colfaces*edges*edge_boundary_states*vert_edge_map*vert_face_map*map_mem*vertslevelslevel_countcurrentnewlvledgelvlpinlvlrenderlvluse_col*edge_flags*edge_creases*vert_map*edge_map*old_faces*old_edges*errormodifiersubdivTyperenderLevels*emCache*mCachedefaxispad[6]lengthrandomizeseed*ob_arm*start_cap*end_cap*curve_ob*offset_oboffset[3]scale[3]merge_distfit_typeoffset_typecountaxistolerance*mirror_obsplit_anglevalueresval_flagslim_flagse_flagsbevel_angledefgrp_name[32]*texturestrengthdirectionmidleveltexmapping*map_objectuvlayer_name[32]uvlayer_tmp*projectors[10]*imagenum_projectorsaspectxaspectypercentfaceCountfacrepeat*objectcenterstartxstartyheightnarrowspeeddampfallofftimeoffslifetimedeformflagmulti*prevCosparentinv[4][4]cent[3]*indexartotindexforce*clothObject*sim_parms*coll_parms*point_cache*x*xnew*xold*current_xnew*current_x*current_v*mfacesnumvertsnumfacesabsorptiontime*bvhtree*dmoperationvertextotinfluencegridsizeneedbind*bindweights*bindcostotcagevert*dyngrid*dyninfluences*dynverts*pad2dyngridsizedyncellmin[3]dyncellwidthbindmat[4][4]*psystotdmverttotdmedgetotdmfacepsysrt[2]*facepavgroupprotect*fss*target*auxTargetvgroup_name[32]keepDistshrinkTypeshrinkOptsprojAxissubsurfLevels*originfactorlimit[2]originOptspntswopntsuopntsvopntswtypeutypevtypewfufvfwdudvdw*defvec[8][3]partypepar1par2par3parsubstr[32]*track*proxy*proxy_group*proxy_from*action*poselib*poseconstraintChannelsdefbasemodifiersdloc[3]orig[3]dsize[3]drot[3]obmat[4][4]constinv[4][4]laycolbitstransflagipoflagtrackflagupflagnlaflagprotectflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactorrdampingsizefacmarginmax_velmin_velm_contactProcessingThresholddtdtxactcolempty_drawtypepad1[3]empty_drawsizedupfacescapropsensorscontrollersactuatorsbbsize[3]actdefgameflaggameflag2*bsoftsoftflaganisotropicFriction[3]constraintsnlastripshooksparticlesystem*pd*soft*dup_groupfluidsimFlagrestrictflagshapenrshapeflagrecalcobody_type*fluidsimSettings*derivedDeform*derivedFinallastDataMaskstateinit_stategpulampcurindexactivedeflectforcefieldpdef_damppdef_rdamppdef_permpdef_frictpdef_rfrictf_strengthf_powerf_distf_dampmaxdistmindistmaxradminradf_power_rpdef_sbdamppdef_sbiftpdef_sboftclump_facclump_powkink_freqkink_shapekink_ampfree_endtex_nablatex_modekinkkink_axisrt2*rngf_noisesimframestartframeendframeeditframelinStiffangStiffvolumeviterationspiterationsditerationsciterationskSRHR_CLkSKHR_CLkSSHR_CLkSR_SPLT_CLkSK_SPLT_CLkSS_SPLT_CLkVCFkDPkDGkLFkPRkVCkDFkMTkCHRkKHRkSHRkAHRcollisionflagsnumclusteriterationswelding*particlestotpointtotspring*bpoint*bspringnodemassgravmediafrictrklimitphysics_speedgoalspringgoalfrictmingoalmaxgoaldefgoalvertgroupfuzzynessinspringinfrictefraintervallocalsolverflags**keystotpointkeysecondspringcolballballdampballstiffsbc_modeaeroedgeminloopsmaxloopschokesolver_IDplasticspringpreload*scratchshearstiffinpush*pointcacheshow_advancedoptionsresolutionxyzpreviewresxyzrealsizeguiDisplayModerenderDisplayModeviscosityValueviscosityModeviscosityExponentgravxgravygravzanimStartanimEndgstarmaxRefineiniVelxiniVelyiniVelz*orgMesh*meshSurface*meshBBsurfdataPath[240]bbStart[3]bbSize[3]typeFlagsdomainNovecgenvolumeInitTypepartSlipValuegenerateTracersgenerateParticlessurfaceSmoothingsurfaceSubdivsparticleInfSizeparticleInfAlphafarFieldSize*meshSurfNormalscpsTimeStartcpsTimeEndcpsQualityattractforceStrengthattractforceRadiusvelocityforceStrengthvelocityforceRadiuslastgoodframemistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposureexprangelinfaclogfacgravityactivityBoxRadiusskytypeocclusionResphysicsEngineticratemaxlogicstepphysubstepmaxphystepmisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxaodistaodistfacaoenergyaobiasaomodeaosampaomixaocolorao_adapt_threshao_adapt_speed_facao_approx_errorao_approx_correctionao_samp_methodao_gather_methodao_approx_passes*aosphere*aotableshemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammaselcolsxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizeqtcodecname[128]codecaudio_codecvideo_bitrateaudio_bitrategop_sizerc_min_raterc_max_raterc_buffer_sizemux_packet_sizemux_ratemixratemain*mat_override*light_overridelay_zmasklayflagpassflagpass_xor*avicodecdata*qtcodecdataffcodecdatacfrapsfrapefraimagesframaptothreadsframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1stereomodedimensionspresetmaximsizexschyschxpartsypartswinposplanesimtypesubimtypequalityrpadrpad1rpad2scemoderendererocresalphamodeosafrs_secedgeintsafetyborderdisprectlayersactlayxaspyaspfrs_sec_basegausspostmulpostgammaposthuepostsatdither_intensitybake_osabake_filterbake_modebake_flagbake_normal_spacebake_quad_splitbake_maxdistbake_biasdistbake_padGIqualityGIcacheGImethodGIphotonsGIdirectYF_AAYFexportxmlYF_nobumpYF_clamprgbyfpad1GIdepthGIcausdepthGIpixelspersampleGIphotoncountGImixphotonsGIphotonradiusYF_raydepthYF_AApassesYF_AAsamplesyfpad2GIshadowqualityGIrefinementGIpowerGIindirpowerYF_gammaYF_exposureYF_raybiasYF_AApixelsizeYF_AAthresholdbackbuf[160]pic[160]stampstamp_font_idstamp_udata[160]fg_stamp[4]bg_stamp[4]simplify_subsurfsimplify_shadowsamplessimplify_particlessimplify_aossscineonwhitecineonblackcineongammajp2_presetjp2_depthrpad3domeresdomemodedomeangledometiltdomeresbuf*dometextparticle_percsubsurf_maxshadbufsample_maxao_errorcol[3]framename[64]*brushtoolseam_bleednormal_anglestepinverttotrekeytotaddkeybrushtypebrush[7]emitterdistdraw_timedname[36]mat[3][3]cornertypeeditbutflagjointrilimitdegrturnextr_offsdoublimitsegmentsringsverticesunwrapperuvcalc_radiusuvcalc_cubesizeuvcalc_marginuvcalc_mapdiruvcalc_mapalignuvcalc_flagautoik_chainlenimapaintparticleselect_threshclean_threshretopo_moderetopo_paint_toolline_divellipse_divretopo_hotspotmultires_subdiv_typeskgen_resolutionskgen_threshold_internalskgen_threshold_externalskgen_length_ratioskgen_length_limitskgen_angle_limitskgen_correlation_limitskgen_symmetry_limitskgen_retarget_angle_weightskgen_retarget_length_weightskgen_retarget_distance_weightskgen_optionsskgen_postproskgen_postpro_passesskgen_subdivisions[3]skgen_multi_level*skgen_templatebone_sketchingbone_sketching_convertskgen_subdivision_numberskgen_retarget_optionsskgen_retarget_rollskgen_side_string[8]skgen_num_string[8]edge_modepad3[2]dirview*session*cumapdrawbrushsmoothbrushpinchbrushinflatebrushgrabbrushlayerbrushflattenbrushpivot[3]brush_typetexnrtexrepttexfadetexsepaveragingtablet_sizetablet_strengthsymmrakeaxislock*camera*world*setbase*basactcursor[3]twcent[3]twmin[3]twmax[3]editbutsizeselectmodeproportionalprop_modeautomergepad5pad6autokey_mode*ed*radioframing*toolsettingsaudiotransform_spacesjumpframesnap_modesnap_flagsnap_target*theDagdagisvaliddagflagssculptdataframe_stepzoomblendximyimspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]zfaclay_usedpersp*ob_centre*bgpic*localvd*ri*retopo_view_data*depthsob_centre_bone[32]localviewlayactscenelockaroundcamzoompivot_lastgridgridviewpixsizenearfarcamdxcamdygridlinesviewbutgridflagmodeselecttwtypetwmodetwflagtwdrawflagtwmat[4][4]clip[4][4]*clipbbafterdrawzbufxrayflag2gridsubdivkeyflagsndofmodendoffilter*properties_storage*gpdlviewquat[4]lpersplviewverthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinycursor[2]rowbutv2d*editipoipokeyactname[32]constname[32]bonename[32]totipopinbutofschannellockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexfromshowgroupmodeltypescriptblockre_alignoldkeypresstab[7]render_sizechanshownzebra*filelisttotfiletitle[24]dir[240]file[80]ofssortmaxnamelencollumsf_fpfp_str[8]*libfiledataretvalmenuact(*returnfunc)()(*returnfunc_event)()(*returnfunc_args)()*arg1*arg2*menup*pupmenuoopsvisiflagtree*treestoresearch_string[32]search_tsesearch_flagsdo_outlinevisstoreflagdeps_flagsimanrcurtileimtypenrdt_uvstickydt_uvstretchpad[5]centxcentyautosnap*texttopviewlinesfont_idlheightleftshowlinenrstabnumbercurrtab_setshowsyntaxoverwritepix_per_linetxtscrolltxtbarwordwrapdoplugins*py_draw*py_event*py_button*py_browsercallback*py_globaldictlastspacescriptname[256]scriptarg[256]*script*but_refsredraws*idaspect*curfont*edittreetreetype*filesactive_filenumtilesxnumtilesyselstateviewrectbookmarkrectscrollposscrollheightscrollareaactive_bookmarkprv_wprv_h*imgoutline[4]neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]textfield_hi[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeiconfile[80]back[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]lamp[4]active[4]group[4]group_active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]edge_seam[4]edge_sharp[4]edge_facesel[4]face[4]face_select[4]face_dot[4]normal[4]bone_solid[4]bone_pose[4]strip[4]strip_select[4]cframe[4]vertex_sizefacedot_sizebpad[2]syntaxl[4]syntaxn[4]syntaxb[4]syntaxv[4]syntaxc[4]movie[4]image[4]scene[4]audio[4]effect[4]plugin[4]transition[4]meta[4]editmesh_active[4]handle_vertex[4]handle_vertex_select[4]handle_vertex_sizehpad[7]solid[4]tuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsttimetnodetarm[20]bpad[4]bpad1[4]spec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]yfexportdir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefviewzoomconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[256]themesundostepsundomemorygp_manhattendistgp_euclideandistgp_erasergp_settingstb_leftmousetb_rightmouselight[3]tw_hotspottw_flagtw_handlesizetw_sizetextimeouttexcollectratememcachelimitprefetchframesframeserverportpad_rot_angleobcenter_diarvisizervibrightrecent_filessmooth_viewtxglreslimitndof_panndof_rotatecurssizepad[8]versemaster[160]verseuser[160]glalphaclipautokey_flagcoba_weightvertbaseedgebaseareabase*sceneendxendysizexsizeyscenenrscreennrfullmainwinwinakthandler[8]*newvvec*v1*v2panelname[64]tabname[64]drawname[64]ofsxofsycontrolsnapold_ofsxold_ofsysortcounter*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanelssubvstr[4]subversionpadsminversionminsubversiondisplaymode*curscreen*curscenefileflagsglobalfname[80]*ibuf*ibuf_comp*se1*se2*se3nrbottomrightxofsyofslift[3]gamma[3]gain[3]saturation*guidir[160]donestartstillendstill*stripdataorxory*crop*transform*color_balance*tstripdata*tstripdata_startstill*tstripdata_endstill*ibuf_startstill*ibuf_endstill*instance_private_data**current_private_data*tmpstartofsendofsmachinestartdispenddispmulhandsizeanim_preseek*stripfacf0facf1*seq1*seq2*seq3seqbase*sound*hdaudiolevelpanstrobe*effectdataanim_startofsanim_endofsblend_modeblend_opacity*oldbasep*parseq*seqbasepmetastackedgeWidthforwardwipetypefMinifClampfBoostdDistdQualitybNoCompScalexIniScaleyIniScalexFinScaleyFinxInixFinyIniyFinrotInirotFininterpolation*frameMapglobalSpeedlastValidFramebuttypeuserjitstatotpartnormfacobfacrandfactexfacrandlifeforce[3]vectsizemaxlendefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstepomattimetexspeedtexflag2negvertgroup_vvgroupname[32]vgroupname_v[32]*keysminfacusedusedelemdxdylinkotypeold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]delaydurationmaterialName[32]damptimerpropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linkstapjoyindexaxis_singleaxisfbuttonhathatfprecisionstr[128]module[64]*mynewinputstotslinks**slinksvalostate_mask*actframeProp[32]blendinpriorityend_resetstrideaxisstridelengthsndnrpad1[2]makecopycopymadepad2[1]track*melinVelocity[3]angVelocity[3]localflagdyn_operationforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]*referencebutstabutendminmaxvisifacrotdampminloc[3]maxloc[3]minrot[3]maxrot[3]matprop[32]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]int_argfloat_arggoaccellerationmaxspeedmaxrotspeedmaxtiltspeedtiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*lamprengobjectdupli_ofs[3]childbaserollhead[3]tail[3]bone_mat[3][3]arm_head[3]arm_tail[3]arm_mat[4][4]xwidthzwidthease1ease2rad_headrad_tailbonebasechainbasepathflaglayer_protectedghostepghostsizeghosttypepathsizeghostsfghostefpathsfpathefpathbcpathacconstflagikflagselectflagagrp_index*bone*childiktree*b_bone_mats*dual_quat*b_bone_dual_quatschan_mat[4][4]pose_mat[4][4]pose_head[3]pose_tail[3]limitmin[3]limitmax[3]stiffness[3]ikstretch*customchanbaseproxy_layerstride_offset[3]cyclic_offset[3]agroupsactive_groupcustomColcs*grpreserved1groupsactive_markeractnractwidthtimeslidename[30]ownspacetarspaceenforceheadtail*tarsubtarget[32]matrix[4][4]space*proptarnumtargetsiterationsrootbonemax_rootbone*poletarpolesubtarget[32]poleangleorientweightgrabtarget[3]reserved2minmaxflagstuckcache[3]lockflagfollowflagvolmodeplaneorglengthbulgepivXpivYpivZaxXaxYaxZminLimit[6]maxLimit[6]extraFzinvmat[4][4]fromtomap[3]expofrom_min[3]from_max[3]to_min[3]to_max[3]zminzmaxpad[9]channel[32]no_rot_axisstride_axiscurmodactstartactendactoffsstridelenblendoutstridechannel[32]offs_bone[32]hasinputhasoutputdatatypesockettype*new_socknslimitstack_indexinternstack_index_extlocxlocyown_indexto_index*tosock*link*new_nodeusername[32]lastyoutputs*storageminiwidthcustom1custom2custom3custom4need_execexectotrbutrprvr*typeinfo*fromnode*tonode*fromsocknodeslinks*stack*threadstackinitstacksizecur_indexalltypes*owntype*selin*selout(*timecursor)()(*stats_draw)()(*test_break)()cyclicmoviesamplesminspeedpercentxpercentybokehcurvedimage_in_widthimage_in_heightcenter_xcenter_yspiniterwrapsigma_colorsigma_spacehuesatt1t2t3fstrengthfalphakey[4]x1x2y1y2colname[32]bktyperotationpreviewgamcono_zbuffstopmaxblurbthresh*dict*nodeangle_ofscolmodmixthresholdfademcjitprojfitshortymintablemaxtableext_in[2]ext_out[2]*curve*table*premultablecurrcliprcm[4]black[3]white[3]bwmul[3]sample[3]offset[2]innerradiusratergb[3]cloneactive_rndactive_cloneactive_mask*layerstotlayermaxlayertotsize*pooleditflagvel[3]rot[4]ave[3]numparentpa[4]w[4]fuv[4]foffsetrand[3]*stick_obprev_state*hairi_rot[4]r_rot[4]r_ave[3]r_ve[3]dietimebanksizemulnum_dmcachebpialiveloopdistrphystyperotmodeavemodereacteventdrawdraw_asdraw_sizechildtypedraw_stepren_stephair_stepkeys_stepadapt_angleadapt_pixrotfromintegratornbetweenboidneighboursbb_alignbb_uv_splitbb_animbb_split_offsetbb_tiltbb_rand_tiltbb_offset[2]simplify_flagsimplify_refsizesimplify_ratesimplify_transitionsimplify_viewporttimetweakjitfackeyed_timeeff_hairgrid_respartfactanfactanphasereactfacavefacphasefacrandrotfacrandphasefacrandsizereactshapeacc[3]dragfacbrownfacdampfacabslengthrandlengthchild_nbrren_child_nbrparentschildsizechildrandsizechildradchildflatchildspreadclumpfacclumppowrough1rough1_sizerough2rough2_sizerough2_thresrough_endrough_end_shapebranch_thresdraw_line[2]max_lat_accmax_tan_accaverage_velbankingmax_bankgroundzboidfac[8]boidrule[8]*eff_group*dup_ob*bb_ob*pd2*part*edit**pathcache**childcachepathcachebufschildcachebufs*target_ob*keyed_ob*latticeeffectorsreacteventstotchildtotcachedtotchildcachetarget_psyskeyed_psystotkeyedbakespacebb_uvname[3][32]vgroup[12]vg_negrt3*renderdata*cacheCdisCvi[3]structuralbendingmax_bendmax_structmax_shearavg_spring_lentimescaleeff_force_scaleeff_wind_scalesim_time_oldstepsPerFrameprerollmaxspringlensolver_typevgroup_bendvgroup_massvgroup_structpresets*collision_listepsilonself_frictionselfepsilonself_loop_countloop_countpressure*pointstotpointsthicknessstrokesframenum*actframegstepinfo[128]sbuffer_sizesbuffer_sflag*sbufferTYPEdcharucharshortushortintlongulongfloatdoublevoidLinkLinkDataListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDPropertyDataIDPropertyIDLibraryFileDataPreviewImageIpoDriverObjectIpoCurveBPointBezTripleIpoKeyBlockKeyScriptLinkTextLineTextMarkerTextPackedFileCameraImageUserImageGPUTextureanimRenderResultMTexTexPluginTexCBDataColorBandEnvMapImBufbNodeTreeTexMappingLampCurveMappingWaveMaterialGroupVFontVFontDataMetaElemBoundBoxMetaBallNurbCharInfoTextBoxCurvePathMeshMFaceMTFaceTFaceMVertMEdgeMDeformVertMColMStickyMSelectCustomDataMultiresPartialVisibilityMDeformWeightMTexPolyMLoopUVMLoopColMFloatPropertyMIntPropertyMStringPropertyOrigSpaceFaceMultiresColMultiresColFaceMultiresFaceMultiresEdgeMultiresLevelMultiresMapNodeModifierDataSubsurfModifierDataLatticeModifierDataCurveModifierDataBuildModifierDataMaskModifierDataArrayModifierDataMirrorModifierDataEdgeSplitModifierDataBevelModifierDataBMeshModifierDataDisplaceModifierDataUVProjectModifierDataDecimateModifierDataSmoothModifierDataCastModifierDataWaveModifierDataArmatureModifierDataHookModifierDataSoftbodyModifierDataClothModifierDataClothClothSimSettingsClothCollSettingsPointCacheCollisionModifierDataBVHTreeSurfaceModifierDataDerivedMeshBVHTreeFromMeshBooleanModifierDataMDefInfluenceMDefCellMeshDeformModifierDataParticleSystemModifierDataParticleSystemParticleInstanceModifierDataExplodeModifierDataFluidsimModifierDataFluidsimSettingsShrinkwrapModifierDataSimpleDeformModifierDataLatticebDeformGroupbActionbPoseBulletSoftBodyPartDeflectSoftBodyObHookRNGSBVertexBodyPointBodySpringSBScratchWorldRadioBaseAviCodecDataQuicktimeCodecDataFFMpegCodecDataAudioDataSceneRenderLayerRenderDataRenderProfileGameFramingTimeMarkerImagePaintSettingsBrushParticleBrushDataParticleEditSettingsTransformOrientationToolSettingsBrushDataSculptDataSculptSessionSceneDagForestBGpicView3DSpaceLinkScrAreaRenderInfoRetopoViewDataViewDepthsbGPdataView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsTreeStoreTreeStoreElemSpaceImageSpaceNlaSpaceTextScriptSpaceScriptSpaceTimeSpaceNodeSpaceImaSelFileListThemeUIThemeSpaceThemeWireColorbThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemTStripElemStripCropStripTransformStripColorBalanceStripColorBalanceGUIHelperStripProxyStripPluginSeqSequencebSoundhdaudioMetaStackEditingWipeVarsGlowVarsTransformVarsSolidColorVarsSpeedControlVarsEffectBuildEffPartEffParticleWaveEffOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbActuatorSensorbDelaySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbJoystickSensorbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorbTwoDFilterActuatorbParentActuatorbStateActuatorFreeCamerabSamplebSoundListenerSpaceSoundGroupObjectBonebArmaturebPoseChannelbActionGroupbActionChannelSpaceActionbConstraintChannelbConstraintbConstraintTargetbPythonConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbMinMaxConstraintbSizeLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbStretchToConstraintbRigidBodyJointConstraintbClampToConstraintbChildOfConstraintbTransformConstraintbLocLimitConstraintbRotLimitConstraintbSizeLimitConstraintbDistLimitConstraintbShrinkwrapConstraintbActionModifierbActionStripbNodeStackbNodeSocketbNodeLinkbNodebNodePreviewbNodeTypeNodeImageAnimNodeBlurDataNodeDBlurDataNodeBilateralBlurDataNodeHueSatNodeImageFileNodeChromaNodeTwoXYsNodeTwoFloatsNodeGeometryNodeVertexColNodeDefocusNodeScriptDictNodeGlareNodeTonemapNodeLensDistTexNodeOutputCurveMapPointCurveMapBrushCloneCustomDataLayerHairKeyParticleKeyChildParticleParticleDataParticleSettingsParticleEditParticleCacheKeyLinkNodebGPDspointbGPDstrokebGPDframebGPDlayerTLEN   `HH(0p$8p(0 @x8Ph`hP0@  p0 @ `@XhpPpPHxHHhxx@` PP`PPPx0Hx((8X@XHX@@X0 0x0 x8@8( ((P0@ H 0 0 H@@P00Hh(H,(lH`h<PP` XPpT `@8p(X(XX8PPp800H0H08hp`8H(0( (@   8H8H (STRC9                     !"#$%&'()*+, -./0!!!"1#234./56789  :;<=>$ ?@.AB%%%%C=/DEF GHIJ& %KLM= N$OPQR'STUV%(((WXY) ))Z[\+]^_*`]a b(c(def ghij kl+mn]% ,opqrstuvwxyz{|$O'} ~- . " /01%++ 2 394   %5C@6$@57 .8qr38-9$O.467:    -;P  <Fqr !"#$%&'()*+,-.+/0123456789:;<=>?@ABCDEFGHIJKL2M$O'}=$O>NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw xyz{|}~/@66 2M9$O?F'} @%A+BBBCDC  $O># "%EEE"1#2F%FGH9C     $OI&> FbC    @ @@@%GFFJ'C $O&>KLMNOPQ R!J"S#T$T%T&6'()*+%,-./U0V1 M 2345 67K89:;%<O89=>W?PW@ANBC>DQX.25 67YEZ%RFSGL3.25 67[H\I]J^3_`_4aKLbMLcccaN`ObPQ R SdT6('%NUU VNUWXYZ[\]T$T&^_V`aKbOc('6%eee dfeefVg] h igee hee jkiee[lmnjee oH k ee p q r stulvwx]yleez{ |mee}]n ee~%]oee%p ee3 %q ee .]%reeseetee muee 3 %+veeF w ee xeeyeez{|}~eeNNNNNNK%eeee %ee %6ee9ee -eeee} ee  k ee  z%F%"$O&PC% o &    $OIC      >      !"#$%'} & ' ( )*G+4,-./0 1 2 3 456?789:;,<=>?@ABCF D & EF$GHIJKLMNOPQRSTUVWXYZ[\]^_`abcd3efn}ghijklmnopqrstuvwxyz{|}~,%Q}0JJJ$ONG/TVU      +$O2M'} !"#$%&'( ) *+,-./0123%4 5 67F8 9:;<=]>?@ABCDD >E?FGH%IJKLMNOPQRSTUVWXYZ[\]^d_`"mabcdefghi#jklmn opqrstuvw xy%z{|}~ F* +F+F m8%   m   2M</] !+ "#$. %&'()*+,-./0129 34567'} g 89:;<=>?@@A% .- mBCDEKFGHIJKLMNOPQRS  " TUVWXYZ[\]^_`+sabcdefg'hijklmnopqCr st5uvwxyz {|}~01$@^kFGHIFGHIFGHIF  $OPA.$FGHWI  %/FGHI B|!FGHI+F     FGHI 9  FGHI.-< ,B | FGHIFGHI*]      ] FGH]+ FGHFGHIP  99%|*FGHI f%+     8     D6 !"#$%&'()*+,-./012345_6789:;<=>?@ABCDEFGHIJK "%LMNOPQRSTUVWXYZ[\]^%4_B`abcdefghijklmnopqrstuvwxyz{ |}~%26   % v%F4F'}    f  88  %0mj%988      +  [$O0          %9p !"# $%&'()*+,-.%/0]l12929-234\5Qn6789:;<=%>?@ABCDEFGHvIJKLM?2NOEP QR S TU% V WXY%+F>Z%[\]^_%`a%bc%de Fpznbfg +h ijkTlmn+F o -p% qzrstuvwx*y z{nT|F  o}~% - 4\ 4\  4\m   -J % " ` -  T  4\+@ -z  % 4\D@?nf j+Fk4\_* - zT  - % ++ $Om]FGH   F - %? & l   "   1  &        %!!! """!$O    g%#FGHI $$$$O % %%      %$O& && %'*  (  ) ]%* + , +F - . [\%/ !0 "1 #$%&2  '()*+,-./%+F3 v4 %05 123456786    9:v7    9:v8    9:v9  %: ;; ;;<= -<<< >?$O [\@ABCDEF = GHIJ>>>>K=LMNOP+QRST>U?V@ @@@WXYN { Z [QR\]^_`abcdeABf???@g@h>i>U9 j k=l mnop qBr>s>t u vwCxy%Dz{D|}"~%%E pB%F%GHhij9IJKLMN zO  P jpmQ[%HR%STU TTT< @UV.\% Cm\/%2MVW F_ TW% XB%YBZ[ YBYXYMm%Qd\p1F.bc4\:  953 678        m      l            ^\]    ! " # $ % & ' ( ) * + , - ?7?. / 0 $O51 %\2 [Z]3 ^4 ^5 6 7 6 8 9 : ; < Nn5= > ? 9@ A B /C D E F G H }{"_I J K L M N O P Q R S T U V W ]X Y Z [ \ ] ^ %F|__ ` a b ]c d `e aaa`f g h bbb i j c cc bk h l ^m  xn o p ENDBphatch-0.2.7/data/blender/cd.blend0000644000000000000000000241604011346363116016660 0ustar rootroot00000000000000BLENDER-v249REND jv SceneGLOB(jv  2  " SR٢  SR1-Animation?@x٢ԉ ՉS" DATA ?õDATA õ? DATA _õ DATA _`ߪDATA `ߪ0_DATA 0 Ǣ`ߪDATA Ǣ0Œ0DATA 0Œġ ǢDATA ġ00ŒDATA 0p{ġDATA p{00DATA 0`ȫp{DATA `ȫ@x0DATA @x`ȫDATA(٢p٢õDATA(p٢٢٢?_DATA(٢Pڢp٢0õDATA(Pڢڢ٢ ǢDATA(ڢ0ڢPڢ0 ǢDATA(0ڢڢڢ0Œ`ߪDATA(ڢڢ0ڢġ ǢDATA(ڢڢڢ0ŒġDATA(ڢڢڢ`ߪ ǢDATA(ڢ`ڢڢ0?DATA(`ڢڢڢp{`ߪDATA(ڢ`ڢp{_DATA(03ڢp{0DATA(03X00ŒDATA(X X030`ȫDATA( XiX`ȫġDATA(i`i X0`ȫDATA(`ii0@xDATA( `ip{@xDATA( Ӊ0`ߪDATA(Ӊ@ԉ 0@xDATA(@ԉԉӉ00DATA(ԉ@ԉ@x`ȫDATA Չ8?0p{_O`88p։08DATAp։׉Link and MaterialsEditing>DATA׉؉p։MeshEditingF>DATA؉ډ׉Anim settingsObject>DATAډ0ۉ؉DrawObjectF>DATA0ۉ0ڢډConstraintsObject>DATA0ڢ`ڢ0ۉEffectsObjectDATA`ڢڢ0ڢHooksObjectF>ډDATAڢ ڢ`ڢParticle InteractionObject>0ۉDATA ڢ ڢڢSoftbodyObject>0ۉDATA ڢ ڢ ڢOutputRender>DATA ڢP ڢ ڢRenderRenderF>DATAP ڢ08 ڢAnimRender>DATA08P ڢFormatRender>DATA`88333?@DhCDhCC(BDC?z?DATA8`8333?/9DATA8 8 Չ0õ Ǣ !  DATA 8@s^80`ȫġ0ŒG==o?`m^q^p80l^DATAp80l^Transform PropertiesView3d>DATA0l^p83D Viewport propertiesView3d>"DATAX`m^q^333?????????G==o? A*A?G==o??????*A@ B??=C ݢM@ݢM@ݢM@? DATAq^`m^333?/9DATA@s^7\ 80Œġ Ǣ`ߪ??PףH`뫡`0ꫡ0ꫡDATA0ꫡTransform PropertiesIpo!>DATAx`뫡 333? zC̽̌?zC@ #< #<`jFzD OBzC̽̌?DATA0 `뫡333? CC|||??l|DATA﫡  333? zCCHBC|||?CFC= ADATA﫡` 333? = =rttDATA`t^﫡 333? ?zDzDBCl||ll|zDzD=HB DATAt^P4\` 333? BzB@l|llFzD #<HB DATAXP4\`t^333? ??? ???? A???PA A!O?j?}GCHB? A@ B? #<C DATA`P4\333? /9DATA7\S@s^@x0`ߪp{ ڢS@9\p:\DATA@9\p:\Link and MaterialsEditing>DATAp:\@9\MeshEditingF>DATAڢ;\333?J zCB{ µCB ?BFB= ADATA;\<\ڢ 333?J zCCHBC$?CFC= ADATA<\S;\333?J #DhC`DpJgChCC(BDC?z?DATAS<\333?J /9DATAS7\00`ȫ@x} ?=o?.S @SpSDATA@SpSTransform PropertiesView3d>DATApS@S3D Viewport propertiesView3d>"DATA0S@ 333? KDATAж™™™LampLampF>DATA™0™ж™SpotLamp>DATA0™`™™Texture and InputLamp>DATA`™04s0™Map ToLamp>0™DATA04s`5s`™PreviewMaterial>MDATA`5s6s04sMaterialMaterial>MDATA6s7s`5sPreviewWorld>[DATA7s8s6sWorldWorldF>[DATA8s :s7sMist Stars PhysicsWorld>DATA :sP;s8sTexture and InputWorld>[DATAP;s[ :sDATADATA=s>sDATA>sҡ=sAnimRender>DATAҡҡ>sFormatRender>DATAҡ@ҡҡLink and MaterialsEditing>DATA@ҡpҡҡMeshEditingF>DATApҡҡ@ҡMesh ToolsEditing>DATAҡҡpҡMesh Tools 1Editing>DATAҡҡҡCameraEditingF>DATAҡ0ҡҡShadersMaterial>MDATA0ҡ`ҡҡTextureMaterial>MDATA`ҡҡ0ҡAnim settingsObject>DATAҡ\ע`ҡDrawObjectF>DATA\ע]עҡConstraintsObject>DATA]ע_ע\עScriptlinksScript>DATA_ע@`ע]עEffectsObject\עDATA@`עpaע_עMap InputMaterial>M0ҡDATApaעbע@`עMap ToMaterial>M0ҡDATAbעcעpaעAnimAnim>DATAcעeעbעSoundSound>DATAeע0fעcעListenerSoundF>DATA0fע`gעeעSequencerSound>DATA`gע0fעArmatureEditingF>DATA`gעRampsMaterial>M`5sDATA Mirror TranspMaterial>MDATA PMist / Stars / PhysicsWorld>[DATAP Amb OccWorld>[ DATAPShadow and SpotLamp>DATAModifiersEditing>DATAShapesEditing>DATA@MultiresEditing>DATA@p Render LayersRender>>sDATA!0Wp StampRender>ҡDATA0W`W!Links and PipelineMaterialF>MDATA`WW0WSSSMaterial>MDATAWW`WMesh Tools MoreEditing>DATAWWWUV CalculationEditing>DATAWWTexture FaceEditing>DATA WPW333?P™DDhC6-DpHhCC(BDC?z? =mDATAXPWW W333?P™??? ???? A??@PA Aj?c3>}GCHB? A@ B? #<C DATA0WΣPW333?P™HE}CHE}C HE}C??DATAΣW333?P™Load LibraryC:\Users\jutuveps\Blends\cd-case.blend\Object\\scene.blend\Object\disc2DATA@ΣΣP™0 3 Xн DATAΣM+@Σ   Ь b?df?AHM!!!!;!< p@ΣJ+ VeΣΣDATAΣΣTransform PropertiesView3d,>DATAΣΣView PropertiesView3dT>"DATA0@Σ0C+333?ΣC>C+ppHEVD??`p2p2`dDATA`d+բDATAբ+"""" =퓠0``ߘ퓠퓠 @`=8A8@F8|0`|0|0``ߘ|0 0儣p0_  0  0ߘ@`0=0 ;<U8`L8P8DATAX0C+F+@Σ333?Σ/;3@??i!"4+;i!"?0;3 \O֓?.;3?i!".;i!"4??-;@3֓@S??38-Ab?F4c<3+;3wdf?h<0;~Gfb@֓@f{2^'?NӳDPϴ349?ןA=;3Jܟ@ )@b?df?AHM/;3@??i!"4+;i!"?0;3 \O֓??4A?@ B??9;=C7?X<???? RU?x _ DATAxF+H+0C+333?ΣzC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATAH+I+F+ 333?Σ?zDzB@22FzD #<HB DATAI+J+H+333?ΣDdC8CnD fCC(BDC?z?DATAJ+I+333?ΣLoad Library PICTURESC:\Users\jutuveps\My Projects\phatch\data\blender\box.blend\Object\CDblendZDATAM+Σp p Я  ?m?Pף!!;< \#p@ŵ@ŵ`N+ΣDATA`N+ΣTransform PropertiesView3d,>DATAΣ`N+View PropertiesView3dhh>"DATAXp333?M+Ҿi{@`?!Oi?D㽀>5Ƅv? >S6&?üҾOi?{|G-v?`?w> >?#?ڤ??}kӾ`@`.?~>ʾʾc5!?b i􋿿@@~(PU?4r??3]žIɀG2B1HB@BGB?m?PףҾi{@`?!Oi?D㽀>5Ƅv? >S6&?D>ҧV[+RkG@RkG@@ B??"; #<CbuJ?g>H7?X<???? DATAxЍp333?M+zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATA0Ѝ@333?M+HEVDHEVD2 XHEVD??2DATA@PЍ 333?M+?zDzB@22FzD #<HB DATAP@333?M+DdC8CnD fCC(BDC?z?DATAP333?M+Load Library PICTURESC:\Users\jutuveps\My Projects\phatch\data\blender\box.blend\Object\CDblendZDATARM+ P   g?$g?AHM!!;< #R='='DATATransform PropertiesView3d,>DATAView PropertiesView3dT>"DATAX333?/;3@??i!"4,;i!"?/;30L?.;3?i!"-;i!"4??-;@3@??)O3[-Ag?34d<3,;3$g?gDATA`R0RView PropertiesView3dhh>"DATAR`R 333?Rp3 =:<<DATAX`RRR333?RҾi{@`?!Oi?D㽀>5Ƅv? >S5&?üҾOi?{|G-v?`?w> >?#?ڤ??}m `@`.?}ʾʾd5 Ab j$@@~&PU?4+(L_K\=4]žIɀG2B1HB@BGB?! APףҾi{@`?!Oi?D㽀>5Ƅv? >S5&?D>ҧV[+RkG@RkG@@ B??[; #<CbuJ?g>H7?X<???? DATAxR`R333?RzC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATA0`WR333?RHEVDHEVD2 XHEVD??2@s@sDATA@@sCS@ff"DATA`WR 333?R?zDzB@22FzD #<HB DATARz`W333?RDdC8CnD fCC(BDC?z?DATAzR333?RLoad Library PICTURESC:\Users\jutuveps\My Projects\phatch\data\blender\box.blend\Object\CDblendZSRҡP  SR3-Materialodel Sing P+p|" DATA   }DATA }}  DATA }} } DATA }@~}DATA @~~}<DATA ~@~<DATA `~DATA `DATA  `,<DATA ,DATA  DATA @,DATA @DATA @DATA( }}DATA(p} DATA(p@~ DATA(Pp}~DATA(P@~~DATA(0P }DATA(0}`DATA(0`DATA(~`DATA(@~DATA(`~DATA(`І` DATA(І@` DATA(@І@~DATA( @DATA( нΣ DATA(нΣ DATA(нΣDATA(hע@DATA(hעiע@DATA(iעO+hעDATA(O+P+iע DATA(P+O+@DATAp|pN" @~~}?@Pף;;!}0L"|P|DATA||OutputRender>DATA| ||RenderRenderF>DATA |P||AnimRender>DATAP| |FormatRender>DATA}p}333? ~CA~CA!?AFA= ADATAp}p}} 333? zCCHBC ?CFC= ADATAp}}p}333? DhC?DhCC(BDC?z?mDATAX}@}p}333? ??? ???? A??@PA Aj?c3>}GCHB? A@ B? #<C DATA0@}0L"}333? @̌AR|B1@lA A@CC #<@DATA0L"@}333? /9DATApN"O"p| }}` !  DATAO"pN" `~G@? JL-=-=W-X~PQ"DATAQ"@R"OutputRender>DATA@R"pS"Q"RenderRender>DATApS"T"@R"AnimRender0>DATAT"U"pS"FormatRenderH>DATAU"W"T"PreviewMaterial>DATAW"0X"U"MaterialMaterial>DATA0X"`Y"W"ShadersMaterial0>DATA`Y"Z"0X"TextureMaterialD>DATAZ"0`Y"Map InputMaterial\>DATA0`Z"Map ToMaterial`>DATA`0RampsMaterial>W"DATA`Mirror TranspMaterialH>DATA333?*ChCCvgCC(BDC?z?DATAX333?*J>H!?)xu?i6>Pbܗ=(?^L?a?滎z?J>#xu?ܗ=Hi6>(? ?Pb^L?\FAA?4[?[!?@jG>gb>Pb>4Im>k&?]M^L<0@AzA=>Kc<2֍7&> ?:x¸A1vB,jB~@G@? JLJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?@?$$OA@ B?=Ch?j(4?t'>d DATAxP333?*zC AzC A #< #<`jFzD OBDATAP333?*;SAVE FILE/usr/home/intrr/blender/blend/untitled.blendDATAcnO"@~U.=w=o?+=+=W+X,XZn@anDATAXZnP^n333????h?j(4?t'>????hj(4t'?U.=w=o??OA@ B??=Ch?j(4?t'>dEh@Eh@Eh@? DATAP^n_nZn333?DdC>9C,DeCC(BDC?z?DATAx_n@anP^n333?zC AzC A #< #<`jFzD OBDATA@an_n333? SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATAcn@ e?B$?AHM+++USdn`knDATAXdnphn333?ݕ/?U~'?3F:?>T8165e?2>Z& 4?ߕ/?7F:?81W~>85e?'?T2>ne@>M@?4z?'''䷄?K??T?v|@?l211A 4Atp>?@@FC>G ?4xB֟&BĭeA(@e?B$?AHMݕ/?U~'?3F:?>T8165e?2>Z& 4?H?N,Z#OA@ B??=Ch?j(4?t'>dA@A@A@? DATAphnindn333?DdC>9C,DeCC(BDC?z?DATAxin`knphn333?zC AzC A #< #<`jFzD OBDATA`knin333? SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATAcn@&=+=o?USDATAX 333?*?3?3:-vk(4??3?3;@k(40v@?&=PU1n;+=ꉖø;ZO{:?JXA54U0AC;@j(40v@?&=+=o??3?3:-vk(4?5?5IXA@ B??=C:j(4?.vdٚ@ٚ@ٚ@? DATA P333?*DdC>9C,DeCC(BDC?z?DATAxP 333?*zC AzC A #< #<`jFzD OBDATAP333?* SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendSRP oҡSR4-Sequence[" Pf" DATA ["@DATA @[" DATA @ DATA `DATA `DATA  `DATA DATA  DATA @DATA @DATA @TDATA `TDATA `DATA `DATA( @DATA( ["DATA(p`["DATA(pDATA(Pp`DATA(P@ DATA(0PDATA(0 DATA(0 DATA(@DATA(@DATA(`DATA(`@DATA(@` DATA(@DATA( @DATA( ``DATA( `DATA(p@DATA(pDATA(p`DATAPʟ["`0ǟ`ȟ0DATAOutputRender>DATARenderRenderF>DATA0AnimRender>DATA0FormatRender>DATA0ǟ`ȟ333?ʃDhCvDhCC(BDC?z?DATA`ȟ0ǟ333?ʃ/9DATAʟ˟P @ !  DATA˟0՟ʟ``8=i>o? @͟ҟDATA@͟0Ο333?ʄ~CB~CB ?BFB= ADATA0ΟPϟ@͟333?ʄzCAzCA  A@FB= A ?DATAXPϟҟ0Ο333?ʄ????????8=i>o?fffAD&@??fffA@ B? #<C DATAҟPϟ333?ʄAVE TARGA/t1.blend9DATA0՟ݟ˟@8=H>o?UUU ֟@۟DATA֟ן333?JzCAzCA1||1 A@FB= A ?DATAXן@۟֟333?J????????8=H>o?fffA*@??fffA@ B? #<C DATA@۟ן333?JAVE TARGA/t1.blend9DATAݟf0՟ 8=>o?SSSTޟdDATAxޟ333?ʅB̽̌?B̽̌? #< #<`jFzD SQB̽̌?DATAXdޟ333?ʅ????????8=>o?fffA@??fffA@ B? #<C DATAd333?ʅOAD FILE/9DATAfݟ`@8=i>o?  hlDATA h@i333?*zCAzCA A@FB= A ?DATAX@il h333?*????????8=i>o?fffAD&@??fffA@ B? #<C DATAl@i333?*AVE TARGA/t1.blend9SR oPSR5-Scriptingppssy`z0<" DATA pppDATA pppp DATA p0qpp DATA 0qqpDATA qq0qDATA qPrqDATA PrrqDATA rsPrDATA spsrDATA pssDATA(s@tpppDATA(@ttsppqDATA(t u@tpPrDATA( uutqPrDATA(uv uqrDATA(vpvuqsDATA(pvvvPrsDATA(vPwpvrsDATA(PwwvqqDATA(w0xPwpqDATA(0xxwppsDATA(xy0x0qpsDATA(yyxrpsDATA(yyyspsDATA(yy0qPrDATA`z{qpppPr !  DATA{p<`zqqsrz==o?<0<}0~DATA}0~Transform PropertiesView3d>DATA0~}3D Viewport propertiesView3d>"DATAX<0<333? ˅????????z==o?&A*A?z==o??????*A@ B??=C ?@?@?@? DATA0<<333? ˅/9DATAp<0<{pssPr0q??Pף L<<<<DATA<Transform PropertiesIpo!>DATA<< 333? => =DATA < <<333? CCx??|?DATAx <<<333? zC̽̌?zC@;; #< #<`jFzD OBzC̽̌?DATA0<P< <333? CC|||??l|DATAP<P<< 333? zCCHBC|||?CFC= ADATAP<0P< 333? ?zDzDBCl||ll|zDzD=HB DATA0P<P< 333? BzB@l|llFzD #<HB DATAXP<<0333? ??? ???? A???PA A!O?j?}GCHB? A@ B? #<C DATA<P<333? /9DATA0<p<pqrpsOP < DATA<<Link and MaterialsEditing>DATA<=<MeshEditingF>DATA==<Anim settingsObject>DATA=@==DrawObjectF>DATA@=`=ConstraintsObject>DATA`@=EffectsObjectDATA`HooksObjectF>=DATA0Particle InteractionObject>@=DATA0`SoftbodyObject>@=DATA`0OutputRender>DATA`RenderRenderF>DATAAnimRender>DATA FormatRender>DATA ScriptlinksScript>DATAP 333? ChC#DhCC(BDC?z?DATA P333? /9SC@"SCScenetageain@ =p+0䟢r/?>?IqIqIqIII=+P,dd??< d X Z! ??//BB?????//backbuf/tmp/L?L?L??>??_??D y-DATA({}0DATA(}{0䟢m퓠DATA(0䟢{p=}m 0DATA(p={=0䟢am|0DATA(={@)p=d0DATA(@){)=^ DATA(){ *@)^DATA( *{*).@DATA(*{+ *`=8DATA(+{p+* .A8DATA(p+{+ @F8DATA(+z,d'=A@DATAP,L?B ?o: ??P22 2d 22 22 22 22 22 > #<===ff??AHz?=???CDATA8-'????C?N #,=P +=/??????DATAH/%?=Vy?>`fff?Ou<?DATAX/1 RenderLayerIM00 @=IMplyta_uv.jpgc:/Program Files/Blender Foundation/Blender/.blender/modele/plyta_uv.jpg022F??DATA02pDATApJFIFHH ExifMM*, JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( (%-Nh=F)h>ԼE4Q@b>QEQEQEQEQEQEZ(((((((>Q@z((((z(((((((((4QEQEQEҖ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ ޖ((4Qފ((((((((((( (搐Y {P*ɢ_$ SjM\ !WX= /"#~?Z5{[-F]ZkXFɝ~u kLZQ#3͞~U/,oGu.,0YTzd K澥[Xd>"$gi֏j$qCZpD(:?u7t? ŧXn.("!=IZO/aV{%ĒOL(}3Rp5ZxWV6$A_s\м?MqOxF#O3#akෆ8`*XEN#5*PO. ]U~2n~Wm^Y[jouv#5Z7r6c"HdGc})>z.iEQb=s‘AeL"4O"2U f\W"IErzp7ZۖY,Cew^®Ck9 q3BP3N{Ԫ,tWoقHc;F3_Jo%$H9Q=*]* bpӚtt{ 褊(B' +!zSrJch5Z#glX 3 tgupjEB½ZjoZL @zު433#&IY&1VFT/mr@Z: \ɦ+JYyks`+W2X>'0Xhcy#Rc烊;]n;`i$G؊ '{VΥe->jrr˻o2YIa䜟Z[lO,C84d.H+{ilbx%F'{5glX%0QQ6| vUKX#Hn#L}>˗ݕ<ʎY[q]iZ+$lm(yٽ f|q1,.2$FTֺٶEnp`U=K&:ҔdW9<>ֻZodS~dq"Jd6⦄k[ןA+f7G>ֻkFM3̱ 彀^Y^x[2$d(aZX.^^ 3pd|g5a3F%FA]eH>?jmhoR?òDl66z֠JMpPuNFtqt2#JvH:p*[.O23#ymp:gޮQG*;֛ޛZO+ja9+;[%ӧ[%/ltV"Ave1w}qqPBcҴ&ҚI+!nQE0QEQEQEQEQEs^ ͳ,Gd|>zB#7@Uܥ&+o"v2Nv-Q3yd`F(E8Q]ɰ+RB(((E(NQEQEQEQEQEQEQEQEQEQE CK@Q@Q@ iy? _~Qdg*J(?='?Gݓ(zvO¤#߳y? _~Qdg*J(?='?Gݓ(zvO¤#߳y? _~Ry? ((((*2N#_xI_?5焟k ?5`G_'RQ@<$h_xIԔP~k ?5<~k5%OƏ5焟IEG_'RQ@<$h_xIԔh'(((((A}E-O)缟KF(O=({/TGH~Kyo=*qFEld'>gCs0Go3q$,42O-缟Skb~CdYXs6y>#B?鿮3ދwc-)|~K^ 8`1s9#_J4"?)缟'_qEF >ҝE(((((((((:QEQEQEQEQEQEQEQECC! V ! W"1(Ah#2Qaq$R%3Br4SXbs'5CDETY  !1AQa"q2TU#BRr%&3bde$SC4sDc5t ?cю~Ȫ[TQ4G*uNzu"RRi%V|~mN sX{N|SPU~};5?ҧO!f'w#{ZcQȋR7G5k"NQZB͎i8BK õ,BoX25Esoe&,jm\fN'*/VΨ) ѵR?'^ܝSj#y2rAB+ϊǓ氒O_)(IR?JEKbߔ^\&k'mzlEk]ʵq5刳NrKcnӑ?WE=7j(5s/ګъn=19"nV(͏?D{8ȕzDtbu:NȡOuLܑMUl5:?JV)*xnϙ^qmv,)}+O}L1{ԒV'r>}yjNEo^&Dj*O{ޟu7Ԇ^c:1㆞^7ܲJ\] , d$z*7/r'E+FQބ%ZⲛZs 5M>ưb Iѭ45\+ҵyg9;N,UF׹WWХUdc_Sՙa=17..Ia^z/D_Nu"S0i&ڄ$%ބ/E}f2EDm;RG^&FӫJw]$MFTF6\ZHUTJ zOnh⩩'c)rrZ<56?x{X%zR7rvY}gDNVURI*Hjxӫ8"Dޫ:Ɯ"a79ἵ7)p!:v- L81> <2'l%FE|oG1z9:/#l ^kO/bz"MMdD\JJ$וfRkD)Qʴ6fR"dhRk;eUTGȫk}8bOWz?ãzg<^O7jG;SZژO#VBD<]_>/ [8ܔ0Df8#*F[5ܓ׻ jS, Jۃ&δd!Ȟ{_--ŠET*"Qe)'Mi(7T#׷q\p\B)AV,YDgFC m$9cz'W9rwԽVZ;U^BJ4.@ZVȈW%59IVeuyj1Z57yi9Ix.×ی /oQc,=$c='%LS(_%zz"YbNw#~H"Z?XS3'TDNg**x_WO(EN3d. ^ׯظ/N^MuiԣJjp#Wkޫ:R]%K $IpI-]m_k)RW V I%aSlzW\W6EѹYnB\6r.5mf+z:|z檵\njvۅZGĞKGws~?S u>lzI>eDǔ{ъejz-v#O*s8k3R<03G'%:>y>z'9$k*5}9tIk)jkFHGMV%r>}JLIDdVW2=kJ8UDG/YIG"O/6NRj))gmKoE8ՙ[hbD?F],nlnDx6uEN)[eb[ݷ՘]el,{*1;SzHb*EO410j$\E,F2&2G5;!Vbj/TzVQRXyMY-B︸fDI~)]b:C^/p+$,Sd`jEb+`FE#RH#1DvxSK:pX[o(IEs5p⻟j(.@' n"&&&X2SYk\؜W&\/uFPO]ZJMaEfR3'eioܻ߽>űd_,Nڵej}-^Y%dK6"6F A9R|d -7.i]fFѨ봜ȦFijRb2߭iGYJ"VQRXmT\ziix|Sa6ڽQ{r02h&Cw>6'NQ(3\6>F6J)b(Hh,RH|rG#XG1Uk檢?4g͒ZQm=3(F<Ϛ F}:^#=UElt mLkcתVRYK-E.m j|K?r8 $I}󣻙Il|jzݕ*͐}vۡ9:$2̥y$Ekr. ~w $ԒK4&v>Ԋ$tMGӵ+E\ج9HVk0NH20ŬRO144IgUSzC2FiHᰏ,5]-xZU_5]^lOde%).nj>q|b%(^s\6Sٷ65zq,"FV:d,JE,H)eVq͆Sm/OIjxI$m$a,{ m,OJuV$GDnYjvE_#+I+C*e$` 2 ^R8`E*mk֢uU_TS$Kg/\^\cK|/;g(.@2F>9#c9cVj9ZRC1՚Gc,O)rcQ:nz j*Ec^7gb3Y>Ooiު]sZ`Xʵ_Y{:D!8גzV]V^Vk+IQV ]e6gUxLC3U?%$sRX<ՠ +g;\eYgig3|H^|rk׆߾knYǥ/G>#rI 42lKڭ|rFV=j\"UEEE"lթ#^$,(vi2>J%#[n7(RIIs}ڷeߕ,Zù.o+sC#%V2H|rF$oj^ǵQ{UZ**eMe){؅יc#ΎDma1jI5y>)ziC@InU|LaFř:!c'DY_x[E9Nׯ9%bƉWsI^9Xdom>FxX (c5|O}VOy>H7i{ϗ42R36 hm$~gKZjw+*]Ij:z1=i{cr;*G*Gf-hg?R\p|O)iiV+\FE~6,؊/WkŻI-{<+=פmkKsKyx(no.c{ҥDy},'QFry~dPAiӲKݼɦoY[v՞_yPA|F#jTI$g[7ܹf:}ɃO$^{W)r&)#zMZ*ةasYbױ{{$dXIچzJFc!DXͯ~\-H=n|tGOZz2O/}ŷWOy~H(JcYjÖ*ZŚNU^UogV="ZetP{v𗥴K-.?w&vbڴ \w[̑*G̖yvͻv+HIg/V 'YmpY7pbKnW#kHIXZl5c'5G$ j$I)&>k|i& C$|-ޮ#͆*v^!SIRtuw3R6$m,夒%w5)̗@,@Krtk%G5Buv9c>GGx#թN{]X~v+H{J==uViS(jy٢̚z<D.@Er9"+ܮ咥1"z#$|k=YډdK#::)َ?)]2kջETKѳ8.X')֧͗tKKsD^oW8,نaGQs(kys!,{>8aI^:I6I6rՎ%%8&gn1b,kz{$Z`ssuds^t/28kE5ijy" Yk.zY;O"_{@,@(.Ւo&W1+]9̎h{Y#^G=Uhl3>b}d]jQ2tJ>nqNw"Y"76kNֲK F1{ײFIf !RiOU\>)O\hkcsFj*r#ZEUUTDDUUEl EZz+J䕋VX2 :5jW$q~}ir~/e'fiGX$NƷ5#ȣYJNͮK=I~N v |RvVF7Q[$r5F5kZJQ/.?rKO/;޾ʰ\hWQ"t{{|dcHlB529ʍWCpK4<_HuʹQnIV(#={HkʉL1+ۆRzMVfz-IgӚJ~gībPb+Q\VIJKHE<29h+%4kIZ>$"uFjto+dDK>4-gY?-]Ǿ];bRQ5SK5% p\!mē #VDHer)=RG2FdԒlB%GM_ՖNI_6A+XE|LFjԹ$|(Դ1CrXud+ p-ZYy+9 6aw|6"xsJĒ7+ֽr/k7G5RSM&4z ]WkKtuemLOM"cbbV,n_|dF._'ڗ\՘W̽țVIdr68ai[ I{"{ڋBE$;VɝncH3OGRPS_w#Ė&]W_ tSO]2z5<}~s)nK:Hfb#$dl5" .f>'=im$6"[b^II ,g|r׶țB'rqyK=qg*6= 7؛IK-.ׁFԫf;:ڞGjtKkK++v ljUإ%,g_)VlE$|Ntrѽ$NdZD|ocؿk!qZ@Q,K4˻љԮ=$1c/T7ȕϺ42"HVx夸i>v<^grW־;zX.Ds]-k?FؠQy`'E; #{Ӫg~?dMRHlmsrϵfO*{eG)[1I&ߦ{u`a1d%*F$78 Y۞FWU%֭K vI'HQTb*_ruzK#|,N݉b)6%X7)gsos5ruE&2yel$FWRHڲM!U-lkf[mw*|iլ8ӿ<:5ίFK3ZfNVwsQRPY1y߯ba鐭eU|n:Õ\v:Y_; '-OVE%w.c E:VZ$%MMQm㌤JWJ8lXyNdFȡcc\kr,6mK/̇^H+#b2ݧdV:9%*lHՑ*rb)^DSQ|p^ykm/C?@,Mr.V$cF,jlv+HwJeٙgNKw+k<~~"T VK0,nB##cbvH'FKxJ|YZ5 dd=E#$rF{$cDZUk9j9QJ%.-^zai~ K,uw;V*F>Xfm ʌV\^&ꝨJbQAlcdPQmFG1FDDxɾȤhnK R'$iIȕ_zXI8nj; ɬdNƬ0Яaj ܈sExκ/Z. 9*JxbHt wT&#T{0L'^ZsUZ%ik^kJxiM3խr&xlclߙzw5}ZQ}P $^g @#2_Iߐ|xH2ے;ՑlRƵTFETlK]ܷIm%q^rL L7wu!Yl2y歑U|v[XsѪ&V:E.-mK/r%ڲb"Fj:>%YfBtNճPNbUj+k/\ܣU/%sOa* EN[-Fn܄ScdD]4k\*GZfȪmF;eJnj֘R 2~vܛy/m~  jUi##e;z-h+q~\>ZĴ舫yDUW>Dž?;kI},@W3=:t}+"7+.KN$ꞷJ/辱ztr*dʯ.?6/9{'g}ZvI^V5%"ex׵$H\OʿUm*u)1Hʕ%wt6LGwDUWu8'"yy XFaڱcX({˻,tQԎgr݆wWג>˹2y?:0X3&ԙq]ώN,.eǤe{],a#/w#QȪeVLG3i/_heV9,Mdm}/x}h;=EyN*;QQ?9LEV\~mNc]d|q ;W˹/_*d9LE,tb?lnQ&ۄX#ִpݽ%~Oy%Abs+VRXl̬afDnJ/VήE$X2OMBiz ||_bn]ΎTe)j߱?^TmCo ʊf'IUѪV6Z/ӏ+Ē#pђZ=nQȑ]rVȫTNĬcfOA/״I,dqFI$9W={5sDUUDAÈ<dORuI]4lg/Uf$sUبXF=7sX9UEXt.PO &HܟحrSZFf|ղz+:u '3jKSٷV-%}MYAޓ]^ s+RgyU4NrE۶?_O6gY S\DU^Z;I(kA7}3k/LwvYvRǼj/lZb>+]uVDVy=F>Ik=Dmo-/uwVtrV^IӔMŴVQѩJ)nէ:rwgA)$(6$XH'{df:9s*) &zk |l,XjzUfEO&İF說\s:*OU+Hn1oF]jKbjI_JϻνY*PʊI"uE^g%-{4zĕyI6R-JUj]YVnҵc+=:CCř*/(m#?TZ{+Ib-vK2{[e6V.ͽaGu}7{jxuj$(NI5 iyNjҵ^aoSlkXdk|\ KbPxJ hXłkc.=_[f'grmo<<3'>C7WD:{6ɗV{FsT{䆜DUV:] ]orRܧKvwS[WS̩R{4bW zr= ukIJXՎ8į=7ycuczgj,H]G2fb5126Hs{;Bf\B歭xc7)nTJN+~HΜŭ*iWZjA9f/_d\"V1x,l[\YIXk׳65Tu淺Vus-⻃|CjZ\!y&qI/v̋ou_ Y%%Ӻ;bTvPR[jɷZF)gYtI>QEjGdJ Ԡ^_A?K1_;)9E0FbGrΓ_'tʝ-Re{:4ը脙Xiun%sǟTbtv.ljvs㢱Gz/V?g֚n1~iG%qӖf,@!s)OVC# :4i֍Xr݇^j1<2(k5)F1%9JRiF1K.Ro $mdI&xIj|\1'ڻj6/k<|ԲV9q8ؖ_floG"u&9k&c+VDzF>Fժ2̎|w;N[ Z̦NUIµO:v BZu gyRNcZ*uRQN4sIW([FwZ<cکq_i x/g'7biٝ:3|r25lI0sȐ`|VlܙvadIJ-ɲN)JTP:=sMΛx(%,][79$eJ*K+)%,ij?HԹM5}G\SJsںl+.U0wPbq֩5+3-c~dwħ͝<; էk 7*(]Q:SܧNaꐔO-m[>[ʥ TܧFے̥ލ% tO!y;}3V9!9U?mDk_sWkC{;gKoQK;V#Ə%.yYEjel,UO_~ ڳ\dUXΝgԋ춅 o{Kjz}eYC"bXsNb1{ckZlM_h^K$N-uK* IߢSAQQKJS|'y'ҁ",dWukcN.jUeJ <,-rM^Y/~.yUrڎi/UN ciڿd³xK}+%bض,6R_esl͂?N'Mf͉]28ڪj9;8֮4|q$5m^g1WV9dsnuiے7',0OW7|co%aiym=X;*n*Uj|%N5jוaC꿚r,2,6 f2S;g#jEjTi5SȾV0N0e9Q!NsJ1RnRiF)6I,ci&I$m$mIqeh̿(2\V${G#kF;Lr/| oG/v&Q>z9*kzmAfE: ;vSvroT>N:IZ\8YМkJ7-5*a'5+E5X5fé'QyVV3d|Y|ۿ^;ljFb t0YGEENNiw[>步 іJURi4MQZ'(N-Jqi*B5)MNYII@1د :Rh|lŶ%%srU|>F EV#.I }شJ]F5zI&h߼sj>8(# |M1̻k'r*dwtr$TO "6+85{Hgs[n>jڵ'jm+篿޶ףӸЇQ+=NnTJ/qrKar47cѵ$~tuXcoEVđJg{$|V_X؟>GIV&5ODOUUr"'zki(\RBQM(Յ'NI4jM&z%so Jf%Vo '$SX%F6r4PYwkV'drZ5)L{N-I&M4O 4M=zs&yOTO=FG$nk9Z=k9kEEEDTTT6mxr7po)_ߵ[-{m9m^Ry]^0P۪²{WQ177=Jm[mD*ſ'yv5W+x'l[֒oHnO`>41Y_ U[,-wl`m!:/TU< VfZsu>~I|֎;7[ܖcOQE:vСV׬AN*pKfvel5խ _5&{"e6D_isOi7hߩ4UGik^SrMMѧ5$I2u+ѣ*[*Bqqp:œ˨S#/&šXJp|rXF֧?dq\]--jѩB-ʱqЩNާR#oBQfb/<8#ߖ-?tc4lc[-4=ݞ^^W#j9{{?llIǨ)+45 x:2%&qRURk;%?:Mwlp}Xy~ҚZW![)E$bJpnǶjI䭗H[XL f3m+粙 k/rG+\ەZ~&nݙgbY%G9{9{RV>SCu'ZI)Iut^w]Y%kANq]}d&ְIƟv>tiT?|m}ό[x <Z~=B939T(6&xnrJYNLRO˖#d7vG_y^3+Cёgtڷ2>X网/Hiѯb̪60S`䌅67k uZ s־3棤ʝҮE/#f4ؐ7Sc%BIf.qSMt޷(焫kZm˧N-U1ǫr{TZ.jZWrZ}o/p\a] ]ZtVNX43gM|kO#}Uq ioK#qHhCfyG?c$JggeyO7-c *cуkZJTb:2]MkuI3WFhU̚QDo[\gu ?ڜwǚ.Gj階ӣfL&9"_]'|HUr'6o Bt]CIt{t+SezU2NhʯNQ'% 5ؕkД dsZSVϞsɦT>WY^$I$r={*s\9U\w'>14د zZxm\}&媱ݬY=9$EPmV6ۋ *&W082x1;IRc~ <{-Rl=y-Iv\Vv6F{Rʽ[־SXLoZԱEk^v64zU:5#R?|Q*p Q~i&nyS+*XV)ڊbE訒C#ޥad/1RO5)rOрH5orqyNo?r6;Ř2^['[ٍ\C*y"$#byhy+v~y̆兲탟)^?⻈׳oY'9R}Ttv3tTUmG\|PطíaFݦ^tޞnC($***"EEEEQS{VxCK.J7/C]q{*Sƿ?j P5T+ScͯpصJKύn[4[:7"WFx[)ZԊƲr(AV8-YB0MօHr{u K1LWc'wO~4:Զ#e~Ί9N|ܢ^|ϼ_A {DxK$'XmbCvIN[5/ _6 !UQ^+1;i}]Rl~TUEZ8]] aVtaVw tK<_/*X|ba8?Fy12KکpG*ckYʊ**'UE.?kŮ%^]"+S=3UNvXRF1StS+{?g=V0ܠ.G *]uƸ׭wmojЃ<>{̱ߌ׳]:7 [|lj[Wt{Gqic!sܾj93YݬTZ.֍;%S=@QuTNw#Kn;NV1K-οVչ&qS65^!sO9Kަz$ db  9Y$RڽDZc"*/k8< cgtꙋ z1ծйdl@+؎X%7lƮֵ7>5 =[^яcV !t[[73oe粫OOZ9~L/icjT9T0n׭"; WJO^,KE͗w5 #/N.a[ZEs`''uQֺ֢I˟t^?fgX#(z -z'G>$ G/d^ʅ[Â_D~o`^cjE{%)+难W7iezn#܊kY)cbTs:wͶq,ݣNU}eìN9 |(f;-{>~Ŗ3^emzNC$Ԝu&ܧRrSnRoJ1QK )$XK3Z;c3;],ZZ"Yd9ڒfs.)7Xbצ6+c~dϤdz3#N擽iIզߚ4QmZmw!%IwuiE?Hc~ݪ?eJy1ݲ|fFt^Km14FW ܋ކҺѽS8n½krc5t;>hKѕTi[ݧZJh-ۙW4f:W91rVe&xK&7H]6拡QZf>4ٓuꈮ}u$9U{ݏm+{z 4iRXp=U*YÜcnÞ^pJUUUr+UzU{r-0lO8 Cco骇 kf|e~ĕֿF׽TǑv??RVHX&YY:I׽b+C"LOe4ȦkZ6,6`D VˆHk֫F5;"N!8{e:tS*T tBK 0Rb$\JRrryrmޭ y&p' skrgj;tjGEr ExZ"#J.!#}WFasdn*n|=n2/c}1W>WU(*СG`ir;L ꆏҞmu.maJk$+.J_67):TJpTWgJT9ToXeMa,mafVv <ݬ٥9675he &|FeǢtۛjuZҝ%N)JOkn2MJ-ŦN!'(pi򸧣;vmik旕 rxc.wvi\ӿNd}{>Zj7dZZuMqJSS|eטPN2Xkҍ*{GbnUI`7M=.^z>lNG$<ףZpJy/ˊI[ՉCUUW'j"zuOE辝ST0[om|Tkv0upEc[{7"T@Hڪd+[ h[$Pj/jJzvsR_ qsE6Z1saNJ1]M$aǐ}X,..bZݭ-%ʞlparts+NwJ9۽Sر]b%{Y3GU$ݞcC%:+g:R9KºҔT֭,>lfU]i_1oq[wrxۑwyvi܅י菍^k\j**oƧx`m5՘ǮNmGۆ{b5kObƽϕ Ȝ}#kmM'kTIӍ4JJa⼤mb)֥uBRoT^$3ÆƎ޽DոQ7|gV귯H}@UTEm?;sGwMz 7r6O%,dE~2ڷfHI$)##+ZR*_k{;*4-nF*7V*B7&u81syէVSNrKu-,Y|2tW5=x\pfه gcS`]INno^jr/޲ZWilukBu)ZU%83cwZ]eqZT/ ? Zwo#Fy-u|fcNǧ{WxtK5֚IE^L ʰVIyHzzNb*Z+A-"7I#ƪں;k^һoo^s }ԄJKQ{U{aRT9nmnoiKyj}>ZKйѪı^޽zz~zsqzNo~i՝}Ώ$ƣ~Sk|Wĩj}T$\uz#,6^/ms9oI' 7rzl?kԡlqU,5ߖ`Ǭ#n,jؚF=} ~kST3U!R$x&cdjG5Qnd:EJЍhu!)է'RYo#$S|;9J3r6odE-R}db̭t^1zd5خNdd{^H.JSG)&U?.K2E>cbX%K`EEuT^sqT1蟪~Uz+^EO'ߧߟȐ0}{nZEl!`1W#Gv\;|V ;U;?z+Qѭ4cVb^S}j+F_{ڃ|7ǜ l0qx [Ywz,_UME[XK :0^K~Y;',IÌ?^3z4̶JE ^r*2V/YdCGCt^ùq ѓ+aMIp1]?C3s7TkO-GCo!V>#zv=DžlZ>6U2m*r_՝5'Qmm3h՗BM}ڠa׭\G9薳\gruZkadwڢm'΅*~T)/hl# c#ltH8{5cZ9TFUUQTy7Rmqwh:VҵmqoNֿr'ONꪉӧato6wj]gS_K>͘z[/빛P'Y< -Wj6iDj^lk+{:5p+¥7k. z^̷yy8֎=ʕw)q,/?9?(|Əo y7to;7͋;ȼh(,ѿf~a|,KCKi^lMUϑkXEW9QI]=ki-I+ މ|NJ6wί6kg)M!W|A[!*ЯbϑJjy]h!Kljy#{;JNٲ41vfDwW%Z&k\} Zl+W-ZTRmE)N9ɤV\[J+KCNUJфV#:Z4/Di,,#i,|K#HU{ܪ9ʪ*g\x\_xײYLRrYOJ>K/Y7"eV[mH7 {KS{GO.1!NvM%f''8k, WWC3\T*,DwF5LЯ;ۊW•Zs͊ΑxFJ1Z$:TSӂy-o-g_nUGq54lZz]ꊶsy&Hw$̵{q-9F&٩k*LU}CeE $hMɥ3O4\vש|l 67pzisn.cC6d]h`vݍ%ڝlrK}mr_2솲ͺ%ڹ;`q5}W+epXXUm[Fu,U{cQ^мnGimZKrsiE.mrQUJ嚇[ɾm 2.ՖVKVܑW*$u(TRtVXgTVY9կVj|eR'&'B1cFb#^81 }ocK+KWyjYR"kib`t,6fWC^W7YĩFIBzbW8*j0c۹GmGIvIfd[b02T*BVJqVmdPڟP>#N1#B!1IF1QI$I,#Hmmmޭm,S<'Ƽ93YJɗuXszZnW\˵oĮQ,kSZ YȲtog- oxUbuKNI$f֏,VyjLǮ3=R7lN#>Q;_Z+Hck6N̪[IM6e% x?/\'%TmojqpׄfRfmV6.lj,~b2b][oegڕ/)SMnRpIܓ7Un֎ia=ypkH٠\I!nR6R mR>K{+G3֗<{xٌ5ug)f&#\1R&.ďzOj&s`ryW"wt4ZQٵеqqR+vw#CrOYi$f6=*JjˣR0[N*|ej%c/E/eClUթ% ^.fg;=:?ݘJs]LAxc+Cr6j:f5$F:z=&'oG2:NܩoiV'Rm*Wj8UݼvSBVu%=& #ï1,#{ ںr ݶ$Lc^Ƒ׉R.ȗʩg-eN&OcZ*RjڝfEtqs=Kf,uƲ)ǢCpҥNliڬ*wӅ̡'%N9I&Y;PJ(S'88TRi7E%c=m9[V)IJQp)jSִF95M 8,HV>9#r1sWr#_EEDT_EC9~ȎZ_MǦd+ֺz+#ZW2$tX\r"*Gw3>ό[J箶t$oN;^ v ofHHXBŋ(Yz"*2Vd꾉JR@Ϸv9fXNק4oNzt,r6c_Vjzk}]?q<~~X N^<7b=R+y>JWɎWcnRVHSPz'8%-"̎YzQ(oN(V;|kA=*8Q==:"XR_q~(9fxsZHwBV:/Fr2^oDNZ|DG__wel|Mlv /N n+OhqfK'XZ֯ӱެuͫ"AQQ'SXEG1:g=)0T+Uڵh)wf,.lc8!7ٓ>X'*r׈[8E)%s`e.mVM`$sY+ubeG/|*w״iWJj5!E>#3J|R'1].#|Jꮱv+ES]2&cpR\_Mlv̵U)wBUIF}ɛENڽOإRK΢/\Ӄn;9ozdS`6)RwuT.;_owUGyXJxgDoDOYTcm-lv=ϣ~^k(r /C{y!c *imA?T٧Uz1=r&]oB΋]8?P>K0LlTyGf kv̸\m)BMѱڿXyJ?G6L;>#ӚaUB_{Μjٻf*UrURRXj͉_,+QFI$k9ȋMmIeI%mo8/=s)WٴͽspsA [fi%\yJoVK5' 4 IE#뭕,i6Δƭ՝Ž9TjRPSNsqQK ㆝ q^Y%N'%mɴigZ\"< j|G<5/f==Fda|vcnlxS /gP5{sbT흙Bvu(QVjwo.N/qKVUam^t^*Ɯ-bz::Νa}G U5zw::/6W'|94+rjTЧNpJ#N:qQ8A(IF1I$4 JR۔m[m|X!ֳ{nR8y8r{XiH2"${U+]{Yֆtֱ˔,iȺE󶌱=uFݥi\y 4e6cX#1)*iFy&טP>~73S_.SؕJ]rޱTTf|SlXgkg[ۍT"[4c5ޙ(ZF\ng dr"uc5{LȭRVX.^Wxҧ^ZRNtӖ:p$%hPgԣ%(J/)MVexT\1[vumYQ[z^hYe5O {CdKG1 Z-u@>W{6{#jl5k^P),J %RޣƙFtm߭kzU?I5k;؟S exOalVkn2VU@ʮ^UǾI$Fō`ieWo_'w J4e,Ch[״^*}t8Lpl]eΌQv;b{LcMc S`;$v=oVF{ޕ;"2rDDSy}R?ߥ(c㽎no^گ>׺IF49,TכW5ߚŪ6J:5SfѨd)}DZM^Zymm&P_LY=kI`増N1f$jv&wlˤ9i콋eFi5jWƂO-9zIX^欩P\$U<2<~c8LaM2&:<=JX$2/5eHDjֻMWժ([u::q `jt8_zܒ*"): -{eBޛ;BUdY xJ)RX)ʭw,%'Yس]UQޔ{v q&ڦob]_ 'lqOUf~ý;*Ojgi]Uo 2#93d^LW{1Y,Q9{[nQ?+摬rF>R.cvNģӨ)F/ [ӧJZNi4ؔk֙yYoI玉ro<ɢ5?qU|..yɫKw Ys;խƱwRrV&Œcѝ{nԱ#: ^ tWJgVݍ%gF)(„PPOc$ۓo{/+P ˩:TzJYkic=.~~5Nn|hWwM_v-sZ׽Xab?cWyL|_M?j?5s0t^*} &kE_׃+n%YYHFl3N:7XbhK:J/ʍwUNUZś][Nk¤ЧVY5M7Êהtk7=!w0bY.zڶBfRv^N Zh^%owńk{/)!Y#6^sYb{^jI4Qr!ٔ7J:3;FO0N2[z1<,PK207{z?*;ʍ۪Vnm^M'8{Q[] {z0~/!nMN+>5T {#cWb?ď+Rw%G9lbW[;lʊņjK==;#d{C}!ػ3f9մQpwiҩwSvJ-B '$,#3gB[.|FrMSW)|1Skzիӭ^XcH"ZFء6'c65jz#Zrb#Xֵ5DDDC۔TRI$R\ƋE#U1!lVub96-aȯjV+Snfҋ UږzuF5[>nTs+6[ޤD&B'ՊN]Xȹz#zWe-am*6ul!QqA6{f%jGQUqj/y= 6{ZmW3*,u#/U^[[1A̝T$NO?ȼMgY{ =zLF CU{+Xވ׹au)t*ռJ7OǪ + G68wgQ[مTZY^ի.c"j~Cn ;Q+K~dDrGlEB':;5ay_x/"+k<0VO|6?urM&zEVrDݥ{:Umvmz1Jɻz)^;1j/yުmc,(W U$xz˰kB:~e`qO9~|Vby޲JD(yuU mGmI*5Hf8/%.9SəF-_Q3EMφk>[ c\gVQ+b*+79DT^訾8F'NqRHT$((&ԓËM>ƞS3^:"[SaFSщ"F7\;ɗ5ksUk5Ȩ湪"*****)ӥN0N!IF)rI$997&ۓymmQ/8\6{qzPAmjGr+ '2;37J[ IҶ~rUֵm>o^~{5ONqh^DסƦӪm˕uP[wW.[ɜ6R>~cP}i@NzfF_cѵ:W!,U/.O0_cKXG,N2㗫YrkU_*ߗN4z_n}Ā,@0OcMݝrl۞ ixB#խ9=䚗N`tWkj;Y)_ZbfCe7Qyŝt5V*/;NZoG M~@Ì+6nChUk"xeٳus"+F%kg7H1M6߾بM|^mrZmzy߉ˊ­1iO%{|Ė%VnbЏ[;;? 5V)nꎜVҧvR̭g X]MzpkYEEU3#)%_7<;q_fe)^\nO);4ޥVmDDcrb\\CQ||=I#W=rʮsUsUUUUUUO~P6V&k;x/1Gu(j.v9QMŦn;жu&RTkyIꏓfOfφ+ 4r7ͫ~&k3r11 e;w䣚[6ޥmf=}tNH,I*vR~Uyr NO͕̙$x5r✝k^~5 C#_7~FR E7Wb$r/QUti(uC8w5/E:zcAdho_R8~3F 1|GUøi`b6f>BʚMixa2=r+d}F{<'bP𝳲ʭgsMIFs>ڼfYzT$mam{\{Y]C<4 ֜r~kzٝdEGյߗYxwFvTsRڜ/iY_쪽U*IҗXbǺvF#!C-bOvG~+ԧeLGbHƹ|Je''In&k)c64|EL| [ 7|Lv㈊HY dzbei,̕r'*ma|iBRiTރqhۊNzIEgMV pca ~MY#nKr9ͱ$ Db3wXF75tf6.\[V-Vgb:YWIeI*'w҅k%z겤+MZ)e|m(׫u#Myy>Vl^xI+=CRY'{^e3VlUج>˒;2;"=a`4fҔ]5 sYPZӧ)$/%ze6azѭpe8*^2TjĞVRkz2(BH8F"F0RŒbc$Iv#ϛm[mm,@^$8+\ě'zeGɮm,&5v=)'R]^Њhi'PUNæm_صlG#"bKNl7:)Is+I$21o-lYkYAdNZъϰ+fkvdXd/&uyA(s$Ϝ{.0av#2mC=ǩ״f`e$IRSס.sK;eiҶ$IG5˨ꕯFvgs vcgRX7SI> ɧ*ZYT۩'({^sνioUUkITyOpf?6fj\C U"!C LlqEmF8b#X5kQuc%𭤡wV\FpNږy(S{r#k;A7nW'%,'$aڭCwXp3$mZT9qs,VfcVvlʋ]亦}|^e­m{i$lrzJȾ:W;y߷VsF y]3ׂLpԻdpg{cdĘKse!Y4)lzzLz#aT-٣N˜W0_KXI.>ܕ#cI w͆iYJ_F_h;U6ezmfTR\0.i]Ƽ ќ4կS0|S^hApjpiNYz⥟L'sp܎ލV^su36+,_Dޏ?ڱޥR?Nqkx_d-*J9 kK<}IN%z]T|3+9S8>LG=NU]G ݎѣ[)zȲaq"C*JUߠ[cm۪fKëFZ}J ,jZ Fi#rڷ> i-֕Z뫋Z<5˷ɋisS82ьe7/iZ5>GzY-{ɭڑ aEYzQF`m+mJU(*FQjէ ؔbBUeYBIB'xqNPkWrבWL>ۀHRkTUI*PI^vE77kdEM:o"x|]#Phץ}oM:˫[ZwRʉ4K=t2DC>LB6U஼n5dKBz YiFR\unmF&=Se(Orx}zTx/ !m" 'X╟y+Cܒ6g|NF:5I܎s[i_ٖWhάp)ǶU&.r\jWNeRJ>d޲}Yo2'iz ySFS*4( yEݧO _.jW!'TJ25u*Ѩʪ{1$m(drQl;זz-Zg/X(j>6jt^qʹrSoGX_ʎlE"6F#2YNaj*!R4zwW%)NV_7*k65Ggʚ=ҥͨ'(z CM~"ˮⱗηe_]=hUjV 'g/>@ U jQ?Sd~uHk|wwjU,O47Iw3Qj9(؎jݣN+zw74?t}Tص\ШPNR%.MMr*9QQQQQQz**/*/g b?r^i.:G5b: Ur׆)WޫD𓟥ѴƬJߞ:~fyu]EEsz*gS[fU)ByZFCХR)5NpPtө=VgqlSrQ{cz.MGIo&Ztlo :MٶV5eMwHԞW5~UEzZc2R)E=rz\&ʻYl͹o7Ly~_MZ6ot螇[SnՔT麳99I)IrmoR}ҔRQJK (qIh[?}!r]J۵Ucg69QBUT2MȬƲ_iKmmKs]Z;;Mj!kc8;hi: XV}ckѓ#-t)3C% Ĉȿ؎=v+07WϬσo1n/:v68uRma~1{sGde3R?XT&ZWAWI½aڅs-з?mzrAku-oܬ|ns,3ZMYѯbgVӿmckOeƬ\*Vy\\$UtBsTHsԶt(NIWqi. a,%s9Us\9\^Oٙ/g.GՅ}MR}ek,m7#VCgSU^b?a]`cEtbdlJu+AiJ7X:N8,OZRJ j4u7N1yC4_^y-j7W>%x]95v:-wtP֚EV~Aޞcg'|Y5 lFM f*;:Z9:Uaz 'V̭f8D69>JUUoSNtGR.^&2pe%)'iYNQxbk#fPƱGȍWbkf1)db6YH#任iU⵽M1ѩ*rz)\*B^iI}O_kEo˲Q׮:y;j6|zaUVY}Ʊe*ݷ'Q&%k)f{>$QoT(aij{rWy.YVc# aC _7J{Wr\VFee|lskT{v/mnVڲƭ1O:comJs^*/AnXQnߦrI1L6op-~rPeI[45˴:5i#G`֙^&vJoԻl,T+8zhԸ8sX]U4ֵX-̠dj \x6<&ݧzf$lw>ɬȮjYĬPzj_2\W ޝ[{k§SQXݡ^XΫ)wV3+~?l0 | r{_[9&Fyr:eһ _{d15Y^_z#Ps͉q{e\Wu&+z}b'ޏ>WsqO+T)}1q+ifyc# ׷nmzlVlӵϚr-JHHD^֘8=uV{'(P_/,_B[K 9 dE rGMZ'lj:{m6glfܝZtgR[tةUifȡjTSJ{҂*#O⍩-g|;%Y徾FtV6[X;W%|inFWqQޱg_7)5Ee쭕5Ŏđ\sQ=zݶu.jӥ6J>`Ӕ g-,e9]N0][Mx8=Ə5dcd`rgdKY~F9ciD~g\֯68ׯS TWݡZG]XyMjU׻i?&]xmYm >R\xTgV,5evܔsFGң?MX<{MSGvv^T0vUkVJ[eVU|׻:ezO\^#%3w+OKސVrͷz*:o.UTLTN6I4!o{Ƅ#0X.uEΆɴIrJߢroGC b-/ǰk[em㱫#y3~uwFD#zm?&2U.&nVMthF5dRɎu(&5vJ^Tn:<[El]vD2*S-kz.T[oI'=}'DYfZNml:nikQ~ƫ*x8v]If/j-n)c+T Gx{v6.wӿw#52PjvkϜ^X-G3]czIgc75w%DDN=DX+- ̰zž;{)H3[ku1ٝ:ϙ~%8y#8m"x=&"3G NWZ7edΖyFFڽ=X72YPRЭ=˷,ثթ^7M=zYQ1{ܽz5Ҷ4SsFnMy.ֵJ3z$akPNK B3IgF+7>!K0]lN{-:JWUF+92"/drg)qׅ.2dW/AܲPʎkػ&ZS\zדcΞ6t5ajᰔ{kG9#7? >r[tdTc Nl՛IF=eGmnԺʙxSwt򫱭FKJݒ*kY4߃ WzVVrIm.ѷ/1Edyǥ=Ocl=O Ф餗[^~Uj7Cwq+WiK^ח,u0.WӸ[z*lMWwke.J\e:ʽg#mz/2G5Xryzy?㛈d251mӶ-Kb:3/"w**D^Q}cJ\\yœ,є4FͰ)Fʄ`JmTpn|W̞G_Ti]&lVeU%y[ɾ2΍Fb Ý[,{vVUoki.+0I/>!BV^BZfw$v)܅jݓC#wk/EE觜i<%.iƝZm[uaMFMa'Me,^6^2bR9yovKN|{sߜmeȴayaW2޽Ny+Qz`z7>l}1a%+ONJ~N6%WVͻd1'cUY _"4D*Wꦯ5[|HΣ9,K%5K#YY^VtYGzFRʵԶM)b$))kKQ(qvi\Iy4PիkG? ܍B;Ueো!_H_,mK`ǯ;.s9͜/S/5;ts9eiYߑdVkI-LYu5k!u=Oݵ=ȏϭ-5[bWw, UmloqO|sQݧ{N>Ug{kIg4Ҕ?^~J(c9{ױr{UkQZ"Ȩx[+u777[6r+FG:=%#d nbtVwLɍQ.%,B ?:To+Ljv:ˍzpTw/Iy@SS5gOݼ[oGuntZ捊_^ڬb 5}1="XyHxF5Tm8\TOe;XK+._{`czŮg.8TXL^Qsr;sAТ9XnRjzաz1C 116cj""!?%v6{ZչOP:/;YF 極?مIQW5hç' ݯͰX4ڳEYkYIf)7QmU6m'6WTVq*gI.ɩGi5o>NPNo -MBy@g:έ̼o<ۇk6;=6 ޫڐ[¤LTi [ʓypקŮ#kGwh\$J 6 `M .þ[+bVo-FkUOFY)J"UU<#ډҾλ{2|8[E0Jڂ-?D%)s:ʓK%4RwOKm`viĤ7^m3/2j?gHtʒҫY'k#by7S9|BaZWֵ9\eeuݍv8vc}=<] Vt\[ow5Q?-I)E7'9'Fu%8ލӣDJK~o7L3KW+ !fZLdu=x*Bml[!įj:Hj*fxdvsHroػfO:Y^\/N4o:5-쬔ҩ8uc(F-fO}#uNJp܂RO YMxW6j[WiɾGښ5qe-Ǭ4gs^6ɥUbH)C zUmz_ײ61]EUU3&;> /+B9\\…8RTJJ2KӬx&uhε qiAM4IcF$4]HC]57~aac|sdj؝=OAmcfbkn%L*;9Rnol5k/No5z]Ke͵_cUc:xMF.8M.K::<(Rs=֡E8pcE̚Qx6op}SlqеKķ"":I=ʩhz+ ;k* hSpQ7km=ZRue''o8]˂\ ?{BvܾKMXA콎a朣BqF.;DyTa[Yqr)'5kȆj>Y?*Ufq-͗'^,OmKTYJ6w*A3X{[/\Ürk G6%2kbl\tȹYޫ$FʜϥJ Xw -(Gh<%^$hRTVjP /Zs56mo-;k#k+.^٤f͕E3i$wǧ{;O]_~![]9'/Υ T֢"if'"KJޭj/kiueowR㓸-{ru3RYRK yƜ4a~ <+՝wKD{^{vyK~PMiYcԁY{UdJ^D3f{DzK_uYӵViQRU#RS?-o*|lac:QWQԌK|^{r~l^ JC'#bRhIG5kZSQ JRJ0Nro 1roI6rNME,4m/ջL]ZxSRLRQ G.z6ѾծMS21𝗁yR-Gط=3k;梲آJsc;Ɜ&կs-v8R\եmB<q-7xӲmAJ[_֨7r2uXV}$.PWA^4OZUNz&wOkτtbm\Nq $یXK/ a@Oo!혻?41v{AbYi>vƏFT^wݶ"Vw%+RZGH:yfضaƫuהTF%oZmRj֜\zA5VgZrlɎ"I-dN^ّS#/?w<2Vۖc|ڻ3`$o|UsiՊț\B,z#e^:Qus9FVnM#3WiUVdJK{IyhhxCgkzְiPd|cse2)$V^75S|.#6x.:=j9K ӭG=)ۖT"G:8]'6W|vL:M56#Fժi&%7w)ƞͱ[~m~\3"m+\;p~4էN!l3.1isJ芫=X2ҕҶ 0IabK8̟{fVԝIk)@;ECc<5#2merǛϼ>#oc's^g^=s7:ͰΟl>}sg{;Y-J˺&Xœ6F]صС$Ԓygv*ԎZRY% J/[jMh.qzJ/<5V#{x?P_GR%rFJ,ףQ;Q;{ztdW i/W6Um*mi7:pc h?Tݹt*[BRQ?\*?B}|MBxܹW}bb QzJqSNeUjIwG%_O |95ko`]IDz%= tjlbl/OWabƱ:6;:EH\Wtڕ:QhR^TGz;VuZRNغ1BXjnrOG<<灼y;d2$ě.ٔkGlц,vk Z[R 4e3M4?ծzћˊw;7RjhG~I9[#6a+H$ԾS}B1WUE1I%M{wwɟt~{z/To!sO?붗GT?Dg߃s%[`r_{\|?iRcVn2\QbeƨS+f訋~;RdZ)ŧ֌ԣ+qk*QjIShN3Z}ZW=kZֵֵkQj'DkQ:""""""tDCNӹ@KO;.L֧l.<[]2GU tv_Z2C%br:0[S[mWs&*J'7Ti)΢(?.NM(۷BW Iͮ&o3Nlbr:.PԵWiz6<>i`Xi^ j[1RM^c^Yq3B-ۓ8uH WnwPڱfu{ Yt3#]mt|R;ʳVh-Vb؎9Ygn.3X&u)VvJ:tPq%%Ԛ2ڷBW=-rK,iٌn.3Xd W͊l~i[nʹ u~v?d3VY&ke#jd6/RǡٷTol{uBR*{P9y.NJPԣ$zvzrV9kXMakَ?7蓤;?%o9Wu6NhV^hb<wsUpqZNJ;aK2M)?:8J u`|׊)Ψ{9QUS"PQV"W$mye6m{գ9RWR݄VKфa58|ut톖>uƟkZuZR;ViתRi5'~T'uGVrp6Wp\ r)+bhr4Qv$"Z# I #T{Z(FQJIŴk >OR׆?Yr3b{#GCr~RfK33'5j;w{K$:Ur GF/R?^ 4ᎽJtD+UMlPׯ lkYlkZ`/Ff̶|*]}lTug{F3RQr%aںv8n)i'N19wur%n?(m 㟷[b,QfIYZG WH+G=ӾIz"98 Gv|=\E\q+Vtk2I^6y2=Ocz!=UUqRmסV#jS785q(Ҋo/UqR-b;T%ۖm>~Bo#7l򖫍YAˬM{ƶczQ^Tjuz%'{!h6nSFf1𽲶ұrA;U͑cUbb2_%{C}_El=1MEN[Ж6dj(兖֍.|̾[PӴ< o^ǣ ~>$7M"7ϵ;aG4W=F/}^IxݵH\d SŅg-\/YnhY*ҝuuѹlBͭߍ(ڄ6֜8ɳ)ӽW3|'-97RZjom7.hwu\޾2]rH<8/{N]> m(mLxnwM:uW/؛o$mv3q))GIB~9' %6NݓT:S+bPf7b2Yak%q^Ĭȩ':gl)BK{gN\&J3Imk{b+]8B"̞OAUUQ""~ z3',㛶p_oDhDv6%{ nkaGGqVXXA.U-ƾҗRXIJfT58ͯ"'/_2G {>ѴUjW6Zʱn%_X0TseX_Qdj/zͯxXul&.%Ӱն Zs]R6 t[O\scc= oET5މb3_lZ]*YZz45k*uV4TNѻR~EZnZ9E/8x[8sxzY Xjy3dd9H:䚬cQTTEM+0b ,3ɢ759csUj***/CYsaVV⊦\uvy{~BӔ3 'Pz5h7voVZZZ%kdBKV|::KvNo?T,=sW\_j/>XW[omz)t5eȦ([%up g#O#QM,OTk{rp?97kچ.W1CZ5ɍ5ڕS5NܬjQWPVzQs^)SsRsQNMF1NR|\YNY"!Rݍر${Uz6$kUX0WM4VjyQi[v*e{YV6ˮBv֮w7#ܫo 7ތiYer*oy>1m3Uٍ\9֒Εj&ž㡉ݸ9&\r.oXMamIkZG+ZTGz~X ͛pkںSSXxYӑգJ7*NOv\2Q=~-tR힟WOzjW 7ݛeWnK~rQqEfmsR+ETGݪzo=Hv̳{QZ5)̩NUDp{يٖPR' rZZi5)<>#oc's^gƻ#?`6iUwr۵J?֑[+nOVTkקTZzs^:iέiƝ8.-rQe)=bbI6Y׹5NZ-%+8K"2:ܭTTF5r*t=4㶼[OuԶJ5.;89&tR{)ΜSۉ$QUW'ڧ d_sGcrȰɋ})3SfGtuC#Vj"Rk^>]uMt[Tu݊Xs##rFEsDDNVw4cg;H^Ookjky·"UT:kE 8,h4Vq?Qr5UUU:"'"yMynI|3E $X]Ⱥ\eG#V'Q1ȎTjbG#SNFFcZ9ZUQRiqBm*i֤RNRk+)<8NjBPq\d$*_q1r i:ywZf)ׂٓ}$YvnuFڪYeZfGqqoiFwUPV 4a%ԩ(;Ӕa,J+-ZI(S9g\xSo 6&38㑛3?L;Cqr._q*ZZ-abG2vqB.-kѹS{B+R%R n2d(SBp98T5qqMf2I40bh4ifzi+WrʫUUUUN3'p3,n+Qdv l9l#ƪDZ?a_7:+a/of/l< cI ~`5AcxڱsIQY3:Fo=ʿ\K5>T۱Pۛf vъF_o6ރiv mJg<|jqv2"jw x/vظ-j[{|mm`H0QQS/اSh=Ns#{^s57^sUWWVFUV*%8SM,gZ3554JuMq>PȌl{H{X{;j*D$lׂyYV BaXމUctT^N)P!J1܍8EF1IcL%ro.Mmߜ&]wzYRd9w?_Up,N3 ݱ1+M:0GZ]9d1rsUULf{+dԭSgYӵx5z6rNI,y $D_1k\/x"EwET-ĸW꫻m3PqMk;,^jPtJrd񇌬hyE{Ŀ/+,VfUӫucΨONEojv:st-vt!R/!Z'QS(ҫmNPӱ+6M[ԭ'N 9,&YgZ=zm}:9~xJnc$Ek }@(qryt߯F׍9~Y}|j῁m\?OI=:7lFEdb\knjW|nmOzoڶnw3= >sZm)cNkY%*p=O*m잍PQ97SzڑMo{x)S\sRl"4/-SQ{ߛ}|su+ۖ?vnԲpˌfVDkMcefIfjr;,^g.KBwKbMb _;[U3N_!;=I0OOdzlJ( tV9֣^pNoVTܤR8':SqohNW[No.2uUK )RM֖=r^paxUkfk[dԱxeu@ն1czSٱɸ/ .zmXvs?zr-꺤5S'j[lusp&Fp Sd"gBgo]Үk-I9ҷs%$ӫ^U򌜼%(Ζ˶(7RpRSތR)-V|h]??SR3X\ly뒆;>9Z1Zlu\jYVZV!CL圴Z y29{'~#R)/lNfJXy.N1 ,n+I{umӍZTmAuNqj1IE#Mo*Z8~uM'M,Æ|6]廐\m'S]aңA-:%/|=o..pAnHN)ΓG \&M+񸍻Tpq׮ܞ21WXlɕsZa"rRvoq/-lM!v w^[y֗VӆE)%<m%F(U[&4;|O'9&~3=yzTqѪoN*~U+mo+Woffaߞ?zi>a7*\6\|iJ.ь^wi߆G#%o܉vkcWlESl]=e)e[^[X.>mJ3ݮklJԩ)WYO8z'-*xHVc >I>k\qt]Yױr֭?VFroF ;Csxk&b_W֤uܸ{\\">N٭zO aOv_NiJ;k˩aGg(/}lI7O%-qe.fV`l.ZՂWZy:9=Cɰkf3MR8fΫfJN;_aڧbkخ+e)˥Yl=svJPٵa Ί=Ʃ ɤNw*)9׋qbŤ%֌{.|R'gvKt~;&ry/gգ28\^u}ɜo6FYkd <Нs:;g^rqNUZmT*8Ӝ>3nS\ܤKjPHSJ0jQ\#]{-. <-5xy;6 p\SyFblVm5Jyy{0,r׫eXCe~:UY;򉵪݉kyʝmY۹Ÿ6Ѓ얩t_m:O>Ʒ{9J!: x ٱ׆\Qfڬ{KF!rG_+'ܤ1Og9QYmq'f#ol6?e`g5BL/3!"\lSWmuD:CړRw]SNꪡwi4.Sj*SܒefZҳ'R0mS:EƯMg/Z>x 2[rkەk؂Y"H}:?y)b椹8lǯ ?5xlw!}>NáGZuK6^0z:\]ܑ::S?N+m:+iW*W4KHюVzQkNξЩތ8gr;oQuw}W13IjvJ6(i߳~yZ 5Ŝ}Ma͂*餙͉W5z%y0]TG2</24bD-r,Odo#-~ki2VgR޼.jpjTsc)n 1]Y]j((b=ՄYoiqh{]O:ݯe43j*Usrk7䕐S"+tњeF6%V\%d=}W# ɪUݙJޯYI+^miF3gQV5T78[5Qϕ4E+;Τiќ&EkG)Y䋲fSv[UzkOeys {$X{qm㯄Uݼ_qo 06(&M[waRfY^JԮQfO Iw^wnhG=NZmVj{.]'JNEq Qn-)Tw\RQO>J1NޥMn9=M-, vό~Em>ݮ- q)RóԽJ.E*O&Nf6&6$sW/S~r,}\mnP'f6kӋ8\ÛUI3Tjlt{el͟_jY(*.6е딺T גbJS{5\W zΣڊ7ZGFuQkφ2r?*0y|%:/GDtu\fn)dbJ$NlGFr7&7Xm f*w-v$W'|.ӢsfelJ6VF/j;Bʡ}F7R;N:ƣR?JtNK~l\5[=~))[CX u:=SP_6I:ϯ*r~1+`Mis]9hQIܩU2y?:$McMs7M{9# ofRäfrb0 h08حg3Ydп۔+_EZ͆]g ۑ`o,=qvL~4GɌ^f6ĸlYYbY%+g|J"УmJzTKIO7iryP8UױSeVjy*QrE482\Ro Eڹv\NjDb1jm[!w=m-oKbO';EU)UZ8C[r Z_ekd`6Q=ym~m8U>ݮChV'J/.!=oeZJ` Tզ|*9o;ߨbE=mrusVNEr".^xg6s+hd1[fG#?W5bjktfTs&iK,W~^O!)%hN^ey?YlM/k=/9CuvzlqӀv&)R1xe$oe V>ټF:7 yV#ᯰzu5Z=Xq:nՆGj)Z귥/5Ď򧳪m}rT\i[*|򸥝^x:QuVG*Tfܗf Ox~"Ly0%s{R[jGEg+PV+lcs3f߿f;at\mV< OW$9uVUGm]eJ.;mS[[CM m{ k]v59po`_9`^J򞩈ֳ[UeL ddl+_푗"G~dr/_SBV=5hOdk/Ow~/5(t[:yc2&g 8z^մ~:Wvo:]jqkQkLm{\40&1j)-&$Qγ:D^l`28) msgIW"#ԱIonkno;ZR:R{)y3E (Gv#{Jq)nRQIJQgT/'>gQ;x? K&K;2M|DگU䥥γV7M]iWIlc'w9rY 5lETƶ<6FKflս:5Gaޝ{K;W.*SqUURޣ7ƞfuRU(ҕ{:t\"΢k7I-q1lsk`y咻9Α0DAk5?+kGYш\ue5{/%& .{qcuVG>+cZj*"*4QW˫^YEeRͣIZnʊШ%V)JuܗO6j䌅? G'd _ѣnw[w_G5KGHdW̯T|u;7qV5v[P[^krnͥm{7Rx`LkD;'%66jyoZj[bZBhB sF[raM9%I R4&4mAͬ<&Y7K}'`Ţ3!TBg+f9栛kbtI_wN{~u9^YYw-smXDeți]Wtu~Iyədzzz,7JjO:)<&z4!%Q^c)>-Ćǀc,t?[LT'Gz$J:9U6?>7ѨE)E͜jsTکJ9I>̷{;9+> _hb*՝7ׁ0Oq6d礱)UjUʉ~g%Cf#<~?7%-}]{OĬm{[?c^ȽSҫ\t_.JZJRoiNi=%:kӊJiϥ(_*N1EI&QzB0oI6uO8닠|SKkuje,EH.g>\zTk +P#^fc^='[+;+5ZZ[,p 0kgիSI^>\L`{Xwٟ 69#ycl@Ypz&ٯK\suޝ?ʩڈPr'X`u.ٲ2fr *6Zk8JG,1DH0=GFOz86Fmwhdee7ZSнX-_8oÏ%Q1xg7lk"RŒk%G3YDՂtv`쮖m lvohu-v)֩5*u{i݌*c~.)dB}Fܷ7gƒQe9g\5$=:o\ɶ!]0f6YՎ䝗Ⱥ^TRW'G1Y3mlxmM F\ޕE-Ĭ\&?rW6tNj%W79테dV+|z9^1j]'Df?%*ZY޸/+b9Ѭ.OgWQ.9|j_bֲ[ Emml6O{]ccŶziY.R[d6m->L(Wt¡Z2uZ,Zάe8%Rݭ8o8Cz5Q._(ve{G6le_f1xo3+?/g,lWEY=9GbFGyPƮWD̛A8tWdFw+ܩysRӔ=r4צ4̞{ϗHmsF1b+ʍkZUsQUU |QܗgɲG#r,0QTLd72sIWbnM km]vőۛ+fmUvwV+n#:wP]ʍӜj4 [: --f.Pʄ.9Xih5<$p>9x#ג2$;,::HYzĹ[],c+QLK, j]7wÞVǕ㤫r1:7e2Z[&Osbe[clTO!/gWͭRL^w2JJU"${:ta*q7 A$6;Tj5i%X7MеiLE^:b& ;ZL?ye1j_m^jYQ#2}Fק&HQےI(GhѸo-:?V2xӂ2,U4V"% 3!V?PV6[T՟ XlEd^W+|1\]]K[S)f*As?qvK"\]Z39^NltnJ-FԮEjKygM%6TSˊM*T8ޖ<-g~7M?eHp#V\ɶkkbӧB9U;Qtkl7Q߾]/yx}pNF`.'jC[#dZ֪I/k/f^nqaGwyY͖I[z/Fk:AܪF}'ɕ^;IgW#,3&ݪ4=]4kwh?>8͓A7rE{{||訊ڼw*wgsWZGM2l/$!ֵĉ{? =};Z{?s/NU{]1lIVy#]{5-[u#ʮWM}~+gYļ4|Zx={EG̲Ez:obfg?mN{{e}&"GEk)s\qq%=͐)C 8Pwkn8ݵm8dl9)L)i};yo߳>my.rFXڲM^\suޝ?ʩڈU;>'X0HLllY Tla1 ޏH cU[$rߔGz[h+;)Rt_vl^g5TtS΅Z#%?ȜXDg}sHgNw#Z4c"j''FI %rgF'bz/-anjq{< ejrZjSႬjaZܵa- >rY'mY:9i3IrUV%"/D^SɺCsq쫻Z0**u=겥:4oƤܪnJmI څqNrt yRQRRp)]{( 5ڹio'1nGNPsbGec#G!UBf0x 8ks YJ+!VJWhO tGVRY+tO-n轷G+[9Ɲw J.6ڣMN{r9%cyZ5tK(.: 8$^_9z ^ 䞦pkG#N=G2uV5-+L.LۖCl(뵰PL-xO%E}h{+ !^޽m~ VV+Fhr-h-e;:AwUd-EfŽTSIqGO6Z񎣄t\%M{Wת6/M;$4}nNm^nYݷ4֭M,ҽk.*b34CiIhǓkL-)>+sXFjת[طjhf?mi,*gѥk(G{1moFGy9o,K{oIMSo xxxI=..G'Ξ%,7PӪ_v~dgi)!^w;Cf'En=cݒ "|-fܞS^nٻNڗVkBۭxҫ^UidHӂQA1qZmF QNERsMGME;ɵ /1z|T{6Vpyֶߙ٨d&3;%<5~&;-ƵcpA9Ⴧi;]{+fϚk6271Nm^2{y\V􍯏C, q[i"YZM&ӣwc{+FTөZW1QomR QJ)vn)'ViYB5H9*˜yk1[w>xwgin:Ge30ՠ9۫ѳ!Ysl26VJ$ux{/ط{dcVڕGwFI]N)TUFy9IGuI&|;6ꕥíZ5%NQujR<c8O!ܮٜ2>c!X,SbⰷmzX#$VH+\W2[rX$'bL:#_cjKR&V*uWaƣZDD2}[UEs}s7 ;PF-*QmR%VozJ*086НH.irmZ$7ݜOxXX9]&? UN[a3Xb^obݩug)~"~+]ܢy]cu ky:o_O;Mk'_iil۫jqQcR7VSB)ʜ)KjxvlBڂ^IyTOu%'n$ޘ[y" 7ٺe2>OykbulǬa{ArOۓޚ qbۿ^G%[>)Jw^梊Mܽب-Ɯ )I9<]+ʴiFT ,e77|T{6Vpyֶߙ٨d&3;%<5~&;-Ƶc~쫽nvmKzu'nܮgR(ק^Iʕ*np0Z❭+Ռ),+IJ+Lgx!ۛö};~chldnb]Uqmj5_$ q[i"YZLt;ğ1s7#j5^rv-rM]nPBԕfX^k;cNbױM;֫q3 p9VHR{6m.ҡJ*N4c%):KHǃhti0*:L9&+[~BjuoXF R[rUrhGAV؟ Y6̼qge5mCoYjX,1zLЂ\a&֤mQ3ѰK'F/vGmVҝɚu^uZpum\ӡR}MQSMo4r8oZӻߍIU^K{KzyxRӵd_r/>pn_8+a{s^5onek{ɚf._ʹ-1WAW rNwBؿ?Xb;JJe j+ԭU]jGf$HX_hn7n•(:R[œ;ƚ㯭]=2]hRnJRJ=ZRn[25;4xmc>m3PMgvJxkau WRLv# 3r; :[j,voSkm7YU[m|n&dc݋I ,-:7}K7"i+ZeNޝ9֕e[[ԄBRJi֛M$mMK/fҲj*sT957&3KW>뜅m\WiZs}\zUhيybZUK*4W!>~pW]mgisq/.:w/J{(ܱQ/f֩՝b^ԉѻ흹uVtoqNjVhSsF:ԡNBJI8ZҜj)QuT[9Erm9I9gCA~n6|%ڵc2{֫R;82:dr'kOcDsƵ#™gNm;Qc:}u5ߌʞJvrI HȃmԜC]uݟ S#v|M5ux+VcRkyLgD#bg[^ͼFUĪՎ UI7Em[*5#Ђ`s5@ =:⭢e!ѳG[Aa[gh+5^"wj]t1Ji^RKJI?̧[iNi)zM}AwSǾ5֫NF \IUbWΊ}s S5nY\z7ockεdэZ9w43SQ'8 '=;`Vc^OEGNiP*%?O%@,@#Ir n{n]?&E_JoE+Ӊ?IZo6xl=^Ua7ucQɟ[.AQQl1`aD~UcQ\i{ıRkZ{Ωעv^mVu[{2#: 7|KA;iN;pY[Vx ǫl6,NmZ %x\uYW)_#3ch-]䤣NPZMB;jyVS׃i]K=}zIfNW78585QKQwn.ܶwY]f2ZSiyY^Q(MN<瑜5wnjoJNIM 4`{8eCNl)Zv28ulvwO]6WKNN/2ؘ*^rT:%V67Rztե޹J%Z]pZ&ѷk)nOTt^alHחU&LX^5CkR2,U;ƽbHFbKPcĉ/L6~朔Yڵt-_8ժ֋쨗#zٶ gJ bs]mLSO1݃@5 {$x ڼDg*WZ?;cmAr%Za~se6;ޓliʥOx9R~*+9c^ƶu7ߠΐ>43+_׮kO L&o1f1{aoU22crd.S4+Ikl sGr4DPbFC_w5d70Nݞ§nCYrE .eif\|콧-sSvj8SWx6͍e)PKYʌ)fPUR-T]8S]Ijѓ{bznxjի ,ٱ+!^,tO<9 1K,k#c\^z<xz=qώ97#Nivخ%F[9p/\3~;cԥJЌR~U84rN[Z6JMdUCE|O0MeR0P&9ÒN2aWelue\E"͡|SkAfxc~gǺh:u_0qtJ,rzI{'z[9+'vN_%;{VK:v^9Gv^imÜ^Mkoˡn ^"vڎ^52ѹ G:rtQkl^jNX9? kvՀX.x2n)(6%^5rcnGڟcҳYK+%b |&6;!34*1eW2Vh8؏-m>_2[L1c?[2~)ƅ6۱ѹnrQ*x|Mf\xE)7uSަM2}179c=Vj湪5QEEEDT^8pX|-P8e7ٔ2l؞=wr`x$f3I;p#k͜{Uzc₆lo\lmXVW[{hտ{^E zorZ˕Iu%9)֝ц %샒e,U$#!XeY\(b9I#1jTkQUQMm%Ͱl4)7}rJ%25I~ʋFČ#SOr.}Eѝ}eѢܮ~]>sfW#BS\aJ1}o5xrDf[Ҟ.Su>V؋Job_.bl v.thyb7zFfgN2~hIK%qӞn,@6l.[]12,:'1 g+V+PdydF/EE詫獿M~og<}ۓÿ]#lz.7%:|'c;ݗKjQk> ʕg6*T\NU3{窸 xkkVNTIOxk(Q;tً H|:C_Sx*jyȫy{IƜsmj_ЬY~ ʥl{zaTuR)pkլͮM't~u.'8PmjSӦY&91Yr[iugWW_֭8ٲuef^A\jgmun\I)b4EQtZV,oF](GƲ픞\ah9u $Ó-'%lz%M`+QVͭc&j>s3V۩JA3vG69ᵘT䝽n/RUr1Z&RiSIqOɎRk6 8Ҁ%E#,q6cVk$u^2hD%J <vȧJRjNQJyxy-eǭYEf<./4jio^ l1FbrKc'lȝҭ Rb`{z,Ѫ褙Xkcyo5/)ϛDbëF9l6 W*KvZWȎUKN*U:$V2Ɏ-}$/N qObZRAbh'f,r4R#)cs$ok9ZVˌ6S|n}Ktc9X;'keVt`>]W-rBzia-YoRXmQMnT*R,νvUԞ]5b3q] t]kKd9'7JjVQU7ʹFŞ$nB{^Dժק:5Tҩө(/TM3v8pd%ip so^ _W+T+"1.趢)'%  4irܱLU2uG$ρσҒofǻAX\  gM,iBߎŌSw|rC^tl]aq׼L nEwC(t>hmjqQ%ѼiܸRU!Ue%TS9mfxZʜC,5Eթgݙs;Kz¢NYJrǓR r6UWJq852\k需i#(,msGcQ\ʍkZ9QUq O^&CWYrlj8vDm`]ܝw"6 bT_Ӯ['KĚ391g&L,U;-Hg\{bQk\xIczm JvIƥ)4GIP|kUY§v))QW*uYI2[ѫPUmzT)EZ5\lPEhEU$o!NN1!TaE(1RQRJ1I$IammmmmbvJWJmeB;^ L*ȣ5 "W/VYi'N+οH ?I'Yk+UOӫ*/TYk'rwiXk={kG5r*9jUEEEEETT[G&>ylݳܶ2|k\w_leY+_I'#jt:GeGZTƭ)4NqZ7j7F˞ѮE2]M&<3$,&i9\Wx:>>HDƲ^ZW9pQb%cDٰF7!%.,VǺ:Щz3V*ѧW-o'xE-xic4Hx8Os^sNb*yk8L#ܟ6bUNاNM;Z3h„}rKkȵ_l9/SxԽ~5&[oOZnոY jE|Z}]Qgws"Hr:t,HǼavcNb|yj$a1guDw]dt?`YF_s 8IWJq*2_F9ӓZ˝wtgSvN܋%Y$z66S]3]VHZۋuyFxT.?:?~?wovI_IPX3&q֝,̎N_-$xb;䡷#7oeV\K&p0m+_`eW$,emt}w,}{xe^֪>7R?9|q+p<͒`5jNX<ڍ:ZIbsb4oY!sF~fsS'VvKdh-29[,m%k$oU푈kz9:'uqn}/}^gҤ w,VIKnE#<#{ڴ6w j"5?*UlrlOο2L tK~?>Fwu[1_V<}Ryn͎QڋUz1}+9~gk0X30~>zlV9Yݶ!nBVSK}hC4=#ErI_>\~lWvs>4O%TMU$u C׵{YO;zV莬UR3g a&MkO%ذbvQGbf~1ccc&5%_Y,KEsRiTV[,V2+Mp|uѦ|~CpZ}:S gHdjFU +f:v5sZ;cbdMU"ԎiYf^{Uȵ ,3Fa7#)F9Q{kUJ]MpզԞ8'ӂ\En1_bz@,s})EHrX%kQߩ7dp+Zc vgDCV&9e d?J]Ky/}~@ vy ՕȤl5Qg{> d[dةr2tNeKQ^tdGֺ>Do~$,@Iz]-tzE#$u$ev'I]VPdruV*ZڑXV$R;̎3בVQlj)Ԏ_/̏nj8TA78yyV p؞*a\ys"GvwkZ/NE^Rc *;u۬EұH VǶyeFzy=VY& ‹o;j"D WWWfVoTs}kb[ӺuJ?=ϻ{=<"\ ~==beoz^ tr7ν^K,Nn%l^otH广b>hO.;?\R^e,2;H'F{Ue|s[/ڊ)ʛGFaS_j)([ubѬ2|v UsPH-@:8b9be"$𫢑Zٕp_`<ւk3+ xW5͎&:GcG#Z{r,7_>WJU`ҔؘʪLOÑ>;o{ъWzxc)'bϺ.KEޙqZkqROw߂\ Bkc$ j.GJ5Q$r{oH$m!]mIR\5N_&cF-w8={ypR.Ľl_s$|V+cbtuewlʕff.L+ ">O87z{ ||o(;!?ͮ= g?v>K'.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0vKu޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'>15݂[V"ƿeke(j֗,đm;#n3͖zA W"a;V֐mmssqN4i(o5tku*Tө9Tia9I2YۗqH7+,Rk7Z=Ekr+\TTTQLj#=v.w=ofYE5_"Y:XkXgNINj5 A釖[o-}%ݜdy %oN]R*H#F%Ȓb#zX5Zz͵/ ~rmgG'^ˉW^5a V*"9sIeϖyΖy|O34>WJI$\]R8HO{c $mvV?1kZ+ڊ9us٪OV'+جA#ܮ>}>~>S hblH|ojG5*)Ji֩ڙ%y×'%:R!i(u,8x/Oߠ;X#VcH:Kײ;!$=V%bW!Z`tޏ וcIE.J+D%}  hv2 !+zqt[URĽ-kҤJG9sYJ\Gr~\8hhǥ_v kCnװl9<2Ab=yc &zkG3ي51sX6w8o6G$6b7"m7Gɗ-W}~HW-c(XVW"IeFHUZʱbř+֟/v&_ygmVy~gA]{dQ$%yl޳r|wC(bOp.@(KLc"jZNyov`W%UlSG[ɯ4򟡤O >=ݽޓx!vbZ;ZxgˑjF3˖ vHIT4%xix5pbKnTkޏIdHkW9{ 9WkVI.K|m6 SI#|^+Ά(YJ9aW9nuu Vi,笚'w% %ȗܾ,@7i{ϗ42{R3Ŗ hKuH.)VQ5 `mZ|tzzdJ־6{ܕW7˵Z-Nviׯ^eZ(xRRJ#KERYoNQe9k6_<K9|\߫0v>?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[Jṃv[շki>']; հdLWεaӪ,,W%gxNVם XFuz=hWtjFvsg9e PCB*թQu)N5 ,bn-=.1nGΓݩ BM|'c|v0tC5mZ<}nsO/^b{ҵE<.t$Nzf*)\RЅJu% SR[Жc$E9BJqn2qm5Vt}yk^骻V=bZzG;YW˳ k-+p^=O :;cgv)kKu޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿIФQGq,9YZ:,ȉ[]YF,Ҿ8 ghHMc/KI.m';VzN-Σky qE}5-j /{y$eΙbjRZ1B:40)IKv1Icy+-qmqNr'9Re&ܚI% rR[_ЪUZEN^潋=$VK^vu2Įbӹ+udY"Ǝm{nGF#-|OHIOB?&Y=%,b-mդy^ng  ۾ ^zzT/͞y{$j5n'EYf;*:{隍ڳEj/rAZ.=֜nHYէKfZ|C4bOp.@)TizK ^flJG*5gsW|HIiI4?5>)O?ǧԵmz{c""GR$Wj6+"ݠkoQi>İ)|=ގxu$JG59ncR6;cUBdZ|S'<|W4])ESz:IN[Vݍrc"MxYxVI8$WVYӛym}=@$41XsE"t|RFr+\SQ=P5Ͷϋՙ $WBTDfMUjz~+#L"UIy/X{sI9IӵtD.@%ZyqG׳^Hb1Hײ\HPi$m|J-R$i:I$*'|#5Ty$һUU|9^L;9y&*ImX%G8.@>5Qؖz]bF`T Qп$H%rI4G 11K,lqE|HF1j+*5EUTD",#lQj+d/'k25Y>6[U#<+m{4MMr}ڧ-cו$9ZkýѮO+qp"&28dqƣYlj#X5cQ֢""""eIa,%K]>z=%r6/Cn>bGz }YRh{{"*r;˱^3džMŵSǙj5Z<<</yk1:$+#c{#zV{#eڭtY4,YR2VJ>_> aa~OcbGnU;{36GWY%.zs#&>Xcՙ`"Y5ݢxIwY)e4ѣ^HR/TƲ>ƻLl1ǭͳ&DbmZɮtVx[ SZ^iѮ#s\^ƓW'2zӵHֽע9zЭ8T9lc #{FkS9SYLUJi c㗖_5߆_58Jg/{}ɢ]"'""z""~~H.1wcHI` 7IJW^UYaY 72ct4k)8jkTM4I _<! 0qc Fګi=9]2XI[-7W B&%{16kQ'j&OZo c 6bU79DTTUk:k?MɝFWiCOM- -)'z8EW*|$nĒ|Ry/!/#gXLP??xqɟ?rr?c3gC^C^C&l(~~yh"6(F*+/ޭmo/  c7ϒ6=#6{7+b+օ+VVEy\S56?>q%H{Wv/~2nmtE+`E } B|t*#,5Giv]4Ez|SMb.I$B셨؜VVUzWs^աmqOcYKw#mIqƋ/^c,#:{C]빓6X_Ds{:*6m>Q:_ Iw-Xr}\EynNRf XH >Zhb'LlWֶ&u?/aU+v*ՇxqxskXY]ɭRd\ϨI#~'Hgr:\kYFzWV9_YMF͎BPF[ˆ$_gkF c>,@#dWV^j&YG1l$TcdetFVZm)b9c#7{UZ9j***le's&Y^?W[ƫܰXUVëשIG-J/ZgYWc➫r'^oS'R $赒4CNDZXJsV^[oҖ$Fm(&R7.w-N/tsJ*{.isRF/V׺؋"I$Kz+Z41W6(#dQ=6HDwW9Ub1yޞƜ rƉM'6j1P \;.] ˚׵{Z=ױȎkTs\EG5ȪЋ\c? ѵdncI%X%H AlGcIG{ =ٯ,gK+z/ z9]q:k]VS\&FDu-W*1$8Y6j5ыvENHC46"z<E4/lK_W1r*+\V/TUA4eg ҋ5ϗo ' .@39ߗx#O,yzmyjɺa87Oɴ{,M4Fr?3zeJFn9ÖXնlGfbXqqϒ:.~8mXzF-cUתJ7^TrU­8SSrpLzUS#Vw|F#9)(Iɤx޷7)<^{u%ɺYϻK UKVcdS=lUu1|5ƾm_u`9Γ߲yW g=G=gxpbqثdYeb4XUjkSn^Rc}ZԸDvpk^cwS z'^wYB*Gm)SգT(⭵ zU ۦBrZJGm5&4A.եaᗐ'y3mW R+3FK-_7-~̘|^'y_ }cV7]>7+ zH]J\e͛;GhְgҺB-n#qlSk֯:rN^I>{9P s[Ҧ' ɹ5Q%ɨO-xuyܞW<_.ܶ#{Um%ɷd]fCb6e<FtYXK9<1ljoF;;3]~|>5{fhƶInVR睷sRw.mKY?{$8פcًľc/n VfU'BoS^UNfB* } R7:q(iRr%nGiфԥ%'t/)%Xgn鞻7Qժqe-{6Ļ&_r2mȽ-R 2ETeBixb8·|?=nC{v#Kg 3s㟆vKiϾM 1{Y[Щ;+wmcE(WnPэwNu(֥kU\E֍ 3[Rjg,z)FYӻ^j>' lvmfp gbLSOCUF-$lwjI/tl>tZV)'!f;qY,Pe[=iZҖ]:^lTv*3[Y+VUVTmgRMRYօJ-UڍXa:Z4*uGh:ķ应/&8xk9i[|* zLKĴ4.[kmmC6y͕uWKa5yD>Mυ:>#2cxqַݣ+6)BTNVkNJKsɭ n~P{:?]]rR*9=wsR&ٷ&f.Um5z Ͻ%k΁xqm\]FZLn 5y[3aqA'v.NGKPs\ʔ.vYB=+ZU&:ӭy iŻ&TkFBN.0Q*;(//n\SKž2ɰ%D9 hh i[o+Jb.Idmvl?m<⻞-x`>Y&sZl/NO5j=\m2G|@rc6H!OiQٮڳvaJT+BU'9֌J%99JRS[r*UJ>u\e- ')K 7ǎSxc<;%7IyY9NMK6q۲Yl^,l㦹67~9 /l6dkt ɞulj NZ.mllk?c\w4xǁ޳L[Z)ey 9md{ʼn3(䰵u_pû2S$5"FiNcw*i^NSs޺YTjqz,N;+ZU4ҨrR=&'֏}g#&/MM^w`~̷?O̔^.ڿ{ܜ7Z\s7mGk0Sf3uo3SXiKi/W|4hV8t~n6MiNbߵuiol{i攧 :QtR:1S;$IT犊2! FNIݓRq7V2^cr3Novp{z"3ZSZwPqE AE_GBUG'c5z un-JN\mjx/ښ }JWGV68e)^*jU]TB5kԮjmGq(uU)FTRujЭ%Ov"OyOv݆ܞ%1>3x~10OW3RɭP!ȲYǓ,rLE|k/ۭjl夙HD/2|S3 ԶM@KPZ5m_G$vVn$"bcq)d 9mG]K ԾZhG4,momyW.Z6r{RuIMMի:35#aO:79cĵ_qhx[[1ܟC(7!tW&OCbY#[Zu 2 村nlx6ٹ;=OUdoTdh/"XgA_{~V_tq9*7;2uj\ҥZ·tiJ;;gYXҵsJS҄kPRWWtF0SZJXJ')c8Ikorձ{Ρi9x\.5lT kiՒ$6=LǤrvXhxUd8GX7! 5bt>ګi 77Yn+)If /b3]+g6{B*+g{KUͤү*T:yO*+)QR*R=Z=LZpߔfҖU)Gu凌$RnMf/jm5W{%䭫 řc|tmhc}~UYydɜY_ t< ¼ xN-8?dfoۺe<+{/:_]&+uL7Ukѩ#R5(m ZRV3NZԣZ%JShFqelT4\\gBr&S .wWV#I&kχK.Ǭr_/rWq41.bx+hf^Mf֕ !Y=wpfOs2ySby,~huKUd]SR~i,lբʨl*.}yB=R8+ENm ım'sʃ9J5h=Y;*u8Gj]^ꚒJw[{e1۹6?o)9Lqt|,[sTWqҲTrx"X qe#Rׄyn|߆{'n8]]_Chlڕ`#k CbL6)}̵#c_U:SthѵŊnh-\i­WN [J.9MN3J4ŸU)%9NyԢ4龪N57XæؼlmO6.f5:4չLn; e)0, dZ61dk9e'<)qmk[;d 2:W2c?teE}ҟG&ӭ~(UU4}+SWX [()EA[i^:2-Fqbo7B'-]<w w.'<>f7~`9_ݰ8ƭǭ}byLef5zm|xEczsPt <++2o7_z|шeݹ pXڬ>Um܎㸾K5f}[1B^-aw ZrR((l{{[6m;]sqBJRW(uc NJUne9f Ԅ!9T}Z3QU4wӨQYҨil$I:SۼV³EB&,MdsZ*p,[ Vs ۙ_NBD~V HIh"6iq0} 9Ki҂[s|9.oܻޝ?[[O'5Ѿ|Q9<JGf Fc쿢ɖT{[xޓk%%%o=pK9,8gdjlו(Y8?fV$T5En^G5ȓ$S*Ꞥh3Y&O QiJ2MI5Q 5h خ屚w%;ec;]qjn[!vVpnF%%,'*`ރ꼯D +{cLsO1xI c[5$>f2gRڶZ PreFO.Su)?-J<5' c9OykufO-R}{y*T]3ݭsF_eLJLUd~JȨJ}6t5b_r+ayi]_[;ѳ\th*ۘ{w5iSPMc(Tq_suptbkܖ9udjbeR|vl-[A蔖tg5ۙ|lVy|e޺̜`rA>K Xn.ܝh!@8k~_?#OU庙7؎wnnop3y/3s?|aj^\{TLcZmzb򫐋_V)d6:Ku,~%SUz}}oS=dЍv7Vg󥽽'w=togS{r䱎`ӈy|S~ԿG{"b(.V.)b[ykJN\lmjZJΰ{S.kk-Э];ʕ9Tk{Qpzpu*Bxs`9IG8Ĕ[?Sv[x~\lgq]Zx~~={4:D9 5UiSon9I{o۫8&e(41I/㌼vr*Hgİ褚:Nb=1טYyIZbG*W؊ߖeXSmВWHdVq?[1cDQm\Ȉ:*W6UyP̥NqQ 8Oױ>Ӈe][/EҵZ 1&e 0/QZDK ; G"5s\;Or۱܅y zd1esc^qحeWFI\T8 2Y^<\q])Ѕh%q-^+f״#ME-RWwTT\JqJRkW^2YKz1ӹM g%d/|k{_df go^mv-z&BsuVw5 ={&u8W\Q԰Zlc[enٝkQN\eDch5m+J[^4jt~(U ۇ s :Q'^p*1IIDB*8㦩ʔ?# nrzK:dx=ŷ=Q׶=d[&k[#֫J>v$g'![ x-/OO`\lT8)nBRǓBRqOv=TԼR+mW1u-7A./卢ɻ]גpF:>-ּ=j.\[fYY1x f;l:v^W{6xr8žkXn\8'r{&ciڳ>k`y\M ~c+1Zm`qTZ6wGlLmKk=SSog+h׳Sh-΍=jv%JgR4'(M'iU:N{~¥IF jҌn,ޔqM㥲\]3L %.nOX)sWd[֭Zէs}[?R=1> yjg9-dRLZƷ4k={lK]n$tv*Kk mEZ{Jusmif;IfΦU:ԍIC܎:SB)b߫u*uEկ~;i8py{GG1Y-Vƚ&-ia'C]瑙k2m d2RGm(Sw6Я^RjtkBStB*)Jr'#{Rr:-hF1QĝQrnQ&I%)炬RX4U<(I$sXTNr'UD6MK-KoGKrEJQ[9`K*u[1N_)?{*c wNSKE㤿abuWծWWXjj%7Y_$8qU94%S+\yq|H} GJ]fnV :HSԬrzV܁UZU++V9UNSuIHIK{Nxorj3Z5eqWeJYWZձ7)9O#ǫTUZr(,nSTi*o(sbOLg/8)OA i$HȢQ;#լjuTNTNHblײWk^PX=dFR7c{q') E9'ŨT[-8g^v^rE=du(*X8Q"\;wO^/vhq6UN3QK/_׫l3Tz冡 k{ӧ(Y86ro&̶K%46:Vx2kYCK$5z9\B u ĉ-#I&5Kzns"5eꨞSYNMi9ᨴN1IA8%h>_j藯~Ϗ+s9:qjA1S1D/sӫ;UWU(-w'R y$FgRxXbm,֢9ױs\EDrOUWף`DObZgNᘓ_^Soz<2%5CiyMze8!<"X"gt91 ޟsعf&ΈW}#M\7(*iQ5&5N#%.LnVEֳmOt_ ȮX~*?Y1k|u!TFyGV5wXOO9Sc5XNiɗ{)$<ݛg&9:vVW[?>?>Q/t'^},~D %9Jk. UĹR \Uʟëb\DsX՜c5YSn;+,OIҟynŜH}{t:==N:'[y d؋UfOIf]ܝTT{4QݕL0W&T~ՇGt-LRh}H]SUt8vK(nԼE4Q@b>QEQEQEQEQEQEZ(((((((>Q@z((((z(((((((((4QEQEQEҖ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ ޖ((4Qފ((((((((((( (搐Y {P*ɢ_$ SjM\ !WX= /"#~?Z5{[-F]ZkXFɝ~u kLZQ#3͞~U/,oGu.,0YTzd K澥[Xd>"$gi֏j$qCZpD(:?u7t? ŧXn.("!=IZO/aV{%ĒOL(}3Rp5ZxWV6$A_s\м?MqOxF#O3#akෆ8`*XEN#5*PO. ]U~2n~Wm^Y[jouv#5Z7r6c"HdGc})>z.iEQb=s‘AeL"4O"2U f\W"IErzp7ZۖY,Cew^®Ck9 q3BP3N{Ԫ,tWoقHc;F3_Jo%$H9Q=*]* bpӚtt{ 褊(B' +!zSrJch5Z#glX 3 tgupjEB½ZjoZL @zު433#&IY&1VFT/mr@Z: \ɦ+JYyks`+W2X>'0Xhcy#Rc烊;]n;`i$G؊ '{VΥe->jrr˻o2YIa䜟Z[lO,C84d.H+{ilbx%F'{5glX%0QQ6| vUKX#Hn#L}>˗ݕ<ʎY[q]iZ+$lm(yٽ f|q1,.2$FTֺٶEnp`U=K&:ҔdW9<>ֻZodS~dq"Jd6⦄k[ןA+f7G>ֻkFM3̱ 彀^Y^x[2$d(aZX.^^ 3pd|g5a3F%FA]eH>?jmhoR?òDl66z֠JMpPuNFtqt2#JvH:p*[.O23#ymp:gޮQG*;֛ޛZO+ja9+;[%ӧ[%/ltV"Ave1w}qqPBcҴ&ҚI+!nQE0QEQEQEQEQEs^ ͳ,Gd|>zB#7@Uܥ&+o"v2Nv-Q3yd`F(E8Q]ɰ+RB(((E(NQEQEQEQEQEQEQEQEQEQE CK@Q@Q@ iy? _~Qdg*J(?='?Gݓ(zvO¤#߳y? _~Qdg*J(?='?Gݓ(zvO¤#߳y? _~Ry? ((((*2N#_xI_?5焟k ?5`G_'RQ@<$h_xIԔP~k ?5<~k5%OƏ5焟IEG_'RQ@<$h_xIԔh'(((((A}E-O)缟KF(O=({/TGH~Kyo=*qFEld'>gCs0Go3q$,42O-缟Skb~CdYXs6y>#B?鿮3ދwc-)|~K^ 8`1s9#_J4"?)缟'_qEF >ҝE(((((((((:QEQEQEQEQEQEQEQECC! V ! W"1(Ah#2Qaq$R%3Br4SXbs'5CDETY  !1AQa"q2TU#BRr%&3bde$SC4sDc5t ?cю~Ȫ[TQ4G*uNzu"RRi%V|~mN sX{N|SPU~};5?ҧO!f'w#{ZcQȋR7G5k"NQZB͎i8BK õ,BoX25Esoe&,jm\fN'*/VΨ) ѵR?'^ܝSj#y2rAB+ϊǓ氒O_)(IR?JEKbߔ^\&k'mzlEk]ʵq5刳NrKcnӑ?WE=7j(5s/ګъn=19"nV(͏?D{8ȕzDtbu:NȡOuLܑMUl5:?JV)*xnϙ^qmv,)}+O}L1{ԒV'r>}yjNEo^&Dj*O{ޟu7Ԇ^c:1㆞^7ܲJ\] , d$z*7/r'E+FQބ%ZⲛZs 5M>ưb Iѭ45\+ҵyg9;N,UF׹WWХUdc_Sՙa=17..Ia^z/D_Nu"S0i&ڄ$%ބ/E}f2EDm;RG^&FӫJw]$MFTF6\ZHUTJ zOnh⩩'c)rrZ<56?x{X%zR7rvY}gDNVURI*Hjxӫ8"Dޫ:Ɯ"a79ἵ7)p!:v- L81> <2'l%FE|oG1z9:/#l ^kO/bz"MMdD\JJ$וfRkD)Qʴ6fR"dhRk;eUTGȫk}8bOWz?ãzg<^O7jG;SZژO#VBD<]_>/ [8ܔ0Df8#*F[5ܓ׻ jS, Jۃ&δd!Ȟ{_--ŠET*"Qe)'Mi(7T#׷q\p\B)AV,YDgFC m$9cz'W9rwԽVZ;U^BJ4.@ZVȈW%59IVeuyj1Z57yi9Ix.×ی /oQc,=$c='%LS(_%zz"YbNw#~H"Z?XS3'TDNg**x_WO(EN3d. ^ׯظ/N^MuiԣJjp#Wkޫ:R]%K $IpI-]m_k)RW V I%aSlzW\W6EѹYnB\6r.5mf+z:|z檵\njvۅZGĞKGws~?S u>lzI>eDǔ{ъejz-v#O*s8k3R<03G'%:>y>z'9$k*5}9tIk)jkFHGMV%r>}JLIDdVW2=kJ8UDG/YIG"O/6NRj))gmKoE8ՙ[hbD?F],nlnDx6uEN)[eb[ݷ՘]el,{*1;SzHb*EO410j$\E,F2&2G5;!Vbj/TzVQRXyMY-B︸fDI~)]b:C^/p+$,Sd`jEb+`FE#RH#1DvxSK:pX[o(IEs5p⻟j(.@' n"&&&X2SYk\؜W&\/uFPO]ZJMaEfR3'eioܻ߽>űd_,Nڵej}-^Y%dK6"6F A9R|d -7.i]fFѨ봜ȦFijRb2߭iGYJ"VQRXmT\ziix|Sa6ڽQ{r02h&Cw>6'NQ(3\6>F6J)b(Hh,RH|rG#XG1Uk檢?4g͒ZQm=3(F<Ϛ F}:^#=UElt mLkcתVRYK-E.m j|K?r8 $I}󣻙Il|jzݕ*͐}vۡ9:$2̥y$Ekr. ~w $ԒK4&v>Ԋ$tMGӵ+E\ج9HVk0NH20ŬRO144IgUSzC2FiHᰏ,5]-xZU_5]^lOde%).nj>q|b%(^s\6Sٷ65zq,"FV:d,JE,H)eVq͆Sm/OIjxI$m$a,{ m,OJuV$GDnYjvE_#+I+C*e$` 2 ^R8`E*mk֢uU_TS$Kg/\^\cK|/;g(.@2F>9#c9cVj9ZRC1՚Gc,O)rcQ:nz j*Ec^7gb3Y>Ooiު]sZ`Xʵ_Y{:D!8גzV]V^Vk+IQV ]e6gUxLC3U?%$sRX<ՠ +g;\eYgig3|H^|rk׆߾knYǥ/G>#rI 42lKڭ|rFV=j\"UEEE"lթ#^$,(vi2>J%#[n7(RIIs}ڷeߕ,Zù.o+sC#%V2H|rF$oj^ǵQ{UZ**eMe){؅יc#ΎDma1jI5y>)ziC@InU|LaFř:!c'DY_x[E9Nׯ9%bƉWsI^9Xdom>FxX (c5|O}VOy>H7i{ϗ42R36 hm$~gKZjw+*]Ij:z1=i{cr;*G*Gf-hg?R\p|O)iiV+\FE~6,؊/WkŻI-{<+=פmkKsKyx(no.c{ҥDy},'QFry~dPAiӲKݼɦoY[v՞_yPA|F#jTI$g[7ܹf:}ɃO$^{W)r&)#zMZ*ةasYbױ{{$dXIچzJFc!DXͯ~\-H=n|tGOZz2O/}ŷWOy~H(JcYjÖ*ZŚNU^UogV="ZetP{v𗥴K-.?w&vbڴ \w[̑*G̖yvͻv+HIg/V 'YmpY7pbKnW#kHIXZl5c'5G$ j$I)&>k|i& C$|-ޮ#͆*v^!SIRtuw3R6$m,夒%w5)̗@,@Krtk%G5Buv9c>GGx#թN{]X~v+H{J==uViS(jy٢̚z<D.@Er9"+ܮ咥1"z#$|k=YډdK#::)َ?)]2kջETKѳ8.X')֧͗tKKsD^oW8,نaGQs(kys!,{>8aI^:I6I6rՎ%%8&gn1b,kz{$Z`ssuds^t/28kE5ijy" Yk.zY;O"_{@,@(.Ւo&W1+]9̎h{Y#^G=Uhl3>b}d]jQ2tJ>nqNw"Y"76kNֲK F1{ײFIf !RiOU\>)O\hkcsFj*r#ZEUUTDDUUEl EZz+J䕋VX2 :5jW$q~}ir~/e'fiGX$NƷ5#ȣYJNͮK=I~N v |RvVF7Q[$r5F5kZJQ/.?rKO/;޾ʰ\hWQ"t{{|dcHlB529ʍWCpK4<_HuʹQnIV(#={HkʉL1+ۆRzMVfz-IgӚJ~gībPb+Q\VIJKHE<29h+%4kIZ>$"uFjto+dDK>4-gY?-]Ǿ];bRQ5SK5% p\!mē #VDHer)=RG2FdԒlB%GM_ՖNI_6A+XE|LFjԹ$|(Դ1CrXud+ p-ZYy+9 6aw|6"xsJĒ7+ֽr/k7G5RSM&4z ]WkKtuemLOM"cbbV,n_|dF._'ڗ\՘W̽țVIdr68ai[ I{"{ڋBE$;VɝncH3OGRPS_w#Ė&]W_ tSO]2z5<}~s)nK:Hfb#$dl5" .f>'=im$6"[b^II ,g|r׶țB'rqyK=qg*6= 7؛IK-.ׁFԫf;:ڞGjtKkK++v ljUإ%,g_)VlE$|Ntrѽ$NdZD|ocؿk!qZ@Q,K4˻љԮ=$1c/T7ȕϺ42"HVx夸i>v<^grW־;zX.Ds]-k?FؠQy`'E; #{Ӫg~?dMRHlmsrϵfO*{eG)[1I&ߦ{u`a1d%*F$78 Y۞FWU%֭K vI'HQTb*_ruzK#|,N݉b)6%X7)gsos5ruE&2yel$FWRHڲM!U-lkf[mw*|iլ8ӿ<:5ίFK3ZfNVwsQRPY1y߯ba鐭eU|n:Õ\v:Y_; '-OVE%w.c E:VZ$%MMQm㌤JWJ8lXyNdFȡcc\kr,6mK/̇^H+#b2ݧdV:9%*lHՑ*rb)^DSQ|p^ykm/C?@,Mr.V$cF,jlv+HwJeٙgNKw+k<~~"T VK0,nB##cbvH'FKxJ|YZ5 dd=E#$rF{$cDZUk9j9QJ%.-^zai~ K,uw;V*F>Xfm ʌV\^&ꝨJbQAlcdPQmFG1FDDxɾȤhnK R'$iIȕ_zXI8nj; ɬdNƬ0Яaj ܈sExκ/Z. 9*JxbHt wT&#T{0L'^ZsUZ%ik^kJxiM3խr&xlclߙzw5}ZQ}P $^g @#2_Iߐ|xH2ے;ՑlRƵTFETlK]ܷIm%q^rL L7wu!Yl2y歑U|v[XsѪ&V:E.-mK/r%ڲb"Fj:>%YfBtNճPNbUj+k/\ܣU/%sOa* EN[-Fn܄ScdD]4k\*GZfȪmF;eJnj֘R 2~vܛy/m~  jUi##e;z-h+q~\>ZĴ舫yDUW>Dž?;kI},@W3=:t}+"7+.KN$ꞷJ/辱ztr*dʯ.?6/9{'g}ZvI^V5%"ex׵$H\OʿUm*u)1Hʕ%wt6LGwDUWu8'"yy XFaڱcX({˻,tQԎgr݆wWג>˹2y?:0X3&ԙq]ώN,.eǤe{],a#/w#QȪeVLG3i/_heV9,Mdm}/x}h;=EyN*;QQ?9LEV\~mNc]d|q ;W˹/_*d9LE,tb?lnQ&ۄX#ִpݽ%~Oy%Abs+VRXl̬afDnJ/VήE$X2OMBiz ||_bn]ΎTe)j߱?^TmCo ʊf'IUѪV6Z/ӏ+Ē#pђZ=nQȑ]rVȫTNĬcfOA/״I,dqFI$9W={5sDUUDAÈ<dORuI]4lg/Uf$sUبXF=7sX9UEXt.PO &HܟحrSZFf|ղz+:u '3jKSٷV-%}MYAޓ]^ s+RgyU4NrE۶?_O6gY S\DU^Z;I(kA7}3k/LwvYvRǼj/lZb>+]uVDVy=F>Ik=Dmo-/uwVtrV^IӔMŴVQѩJ)nէ:rwgA)$(6$XH'{df:9s*) &zk |l,XjzUfEO&İF說\s:*OU+Hn1oF]jKbjI_JϻνY*PʊI"uE^g%-{4zĕyI6R-JUj]YVnҵc+=:CCř*/(m#?TZ{+Ib-vK2{[e6V.ͽaGu}7{jxuj$(NI5 iyNjҵ^aoSlkXdk|\ KbPxJ hXłkc.=_[f'grmo<<3'>C7WD:{6ɗV{FsT{䆜DUV:] ]orRܧKvwS[WS̩R{4bW zr= ukIJXՎ8į=7ycuczgj,H]G2fb5126Hs{;Bf\B歭xc7)nTJN+~HΜŭ*iWZjA9f/_d\"V1x,l[\YIXk׳65Tu淺Vus-⻃|CjZ\!y&qI/v̋ou_ Y%%Ӻ;bTvPR[jɷZF)gYtI>QEjGdJ Ԡ^_A?K1_;)9E0FbGrΓ_'tʝ-Re{:4ը脙Xiun%sǟTbtv.ljvs㢱Gz/V?g֚n1~iG%qӖf,@!s)OVC# :4i֍Xr݇^j1<2(k5)F1%9JRiF1K.Ro $mdI&xIj|\1'ڻj6/k<|ԲV9q8ؖ_floG"u&9k&c+VDzF>Fժ2̎|w;N[ Z̦NUIµO:v BZu gyRNcZ*uRQN4sIW([FwZ<cکq_i x/g'7biٝ:3|r25lI0sȐ`|VlܙvadIJ-ɲN)JTP:=sMΛx(%,][79$eJ*K+)%,ij?HԹM5}G\SJsںl+.U0wPbq֩5+3-c~dwħ͝<; էk 7*(]Q:SܧNaꐔO-m[>[ʥ TܧFے̥ލ% tO!y;}3V9!9U?mDk_sWkC{;gKoQK;V#Ə%.yYEjel,UO_~ ڳ\dUXΝgԋ춅 o{Kjz}eYC"bXsNb1{ckZlM_h^K$N-uK* IߢSAQQKJS|'y'ҁ",dWukcN.jUeJ <,-rM^Y/~.yUrڎi/UN ciڿd³xK}+%bض,6R_esl͂?N'Mf͉]28ڪj9;8֮4|q$5m^g1WV9dsnuiے7',0OW7|co%aiym=X;*n*Uj|%N5jוaC꿚r,2,6 f2S;g#jEjTi5SȾV0N0e9Q!NsJ1RnRiF)6I,ci&I$m$mIqeh̿(2\V${G#kF;Lr/| oG/v&Q>z9*kzmAfE: ;vSvroT>N:IZ\8YМkJ7-5*a'5+E5X5fé'QyVV3d|Y|ۿ^;ljFb t0YGEENNiw[>步 іJURi4MQZ'(N-Jqi*B5)MNYII@1د :Rh|lŶ%%srU|>F EV#.I }شJ]F5zI&h߼sj>8(# |M1̻k'r*dwtr$TO "6+85{Hgs[n>jڵ'jm+篿޶ףӸЇQ+=NnTJ/qrKar47cѵ$~tuXcoEVđJg{$|V_X؟>GIV&5ODOUUr"'zki(\RBQM(Յ'NI4jM&z%so Jf%Vo '$SX%F6r4PYwkV'drZ5)L{N-I&M4O 4M=zs&yOTO=FG$nk9Z=k9kEEEDTTT6mxr7po)_ߵ[-{m9m^Ry]^0P۪²{WQ177=Jm[mD*ſ'yv5W+x'l[֒oHnO`>41Y_ U[,-wl`m!:/TU< VfZsu>~I|֎;7[ܖcOQE:vСV׬AN*pKfvel5խ _5&{"e6D_isOi7hߩ4UGik^SrMMѧ5$I2u+ѣ*[*Bqqp:œ˨S#/&šXJp|rXF֧?dq\]--jѩB-ʱqЩNާR#oBQfb/<8#ߖ-?tc4lc[-4=ݞ^^W#j9{{?llIǨ)+45 x:2%&qRURk;%?:Mwlp}Xy~ҚZW![)E$bJpnǶjI䭗H[XL f3m+粙 k/rG+\ەZ~&nݙgbY%G9{9{RV>SCu'ZI)Iut^w]Y%kANq]}d&ְIƟv>tiT?|m}ό[x <Z~=B939T(6&xnrJYNLRO˖#d7vG_y^3+Cёgtڷ2>X网/Hiѯb̪60S`䌅67k uZ s־3棤ʝҮE/#f4ؐ7Sc%BIf.qSMt޷(焫kZm˧N-U1ǫr{TZ.jZWrZ}o/p\a] ]ZtVNX43gM|kO#}Uq ioK#qHhCfyG?c$JggeyO7-c *cуkZJTb:2]MkuI3WFhU̚QDo[\gu ?ڜwǚ.Gj階ӣfL&9"_]'|HUr'6o Bt]CIt{t+SezU2NhʯNQ'% 5ؕkД dsZSVϞsɦT>WY^$I$r={*s\9U\w'>14د zZxm\}&媱ݬY=9$EPmV6ۋ *&W082x1;IRc~ <{-Rl=y-Iv\Vv6F{Rʽ[־SXLoZԱEk^v64zU:5#R?|Q*p Q~i&nyS+*XV)ڊbE訒C#ޥad/1RO5)rOрH5orqyNo?r6;Ř2^['[ٍ\C*y"$#byhy+v~y̆兲탟)^?⻈׳oY'9R}Ttv3tTUmG\|PطíaFݦ^tޞnC($***"EEEEQS{VxCK.J7/C]q{*Sƿ?j P5T+ScͯpصJKύn[4[:7"WFx[)ZԊƲr(AV8-YB0MօHr{u K1LWc'wO~4:Զ#e~Ί9N|ܢ^|ϼ_A {DxK$'XmbCvIN[5/ _6 !UQ^+1;i}]Rl~TUEZ8]] aVtaVw tK<_/*X|ba8?Fy12KکpG*ckYʊ**'UE.?kŮ%^]"+S=3UNvXRF1StS+{?g=V0ܠ.G *]uƸ׭wmojЃ<>{̱ߌ׳]:7 [|lj[Wt{Gqic!sܾj93YݬTZ.֍;%S=@QuTNw#Kn;NV1K-οVչ&qS65^!sO9Kަz$ db  9Y$RڽDZc"*/k8< cgtꙋ z1ծйdl@+؎X%7lƮֵ7>5 =[^яcV !t[[73oe粫OOZ9~L/icjT9T0n׭"; WJO^,KE͗w5 #/N.a[ZEs`''uQֺ֢I˟t^?fgX#(z -z'G>$ G/d^ʅ[Â_D~o`^cjE{%)+难W7iezn#܊kY)cbTs:wͶq,ݣNU}eìN9 |(f;-{>~Ŗ3^emzNC$Ԝu&ܧRrSnRoJ1QK )$XK3Z;c3;],ZZ"Yd9ڒfs.)7Xbצ6+c~dϤdz3#N擽iIզߚ4QmZmw!%IwuiE?Hc~ݪ?eJy1ݲ|fFt^Km14FW ܋ކҺѽS8n½krc5t;>hKѕTi[ݧZJh-ۙW4f:W91rVe&xK&7H]6拡QZf>4ٓuꈮ}u$9U{ݏm+{z 4iRXp=U*YÜcnÞ^pJUUUr+UzU{r-0lO8 Cco骇 kf|e~ĕֿF׽TǑv??RVHX&YY:I׽b+C"LOe4ȦkZ6,6`D VˆHk֫F5;"N!8{e:tS*T tBK 0Rb$\JRrryrmޭ y&p' skrgj;tjGEr ExZ"#J.!#}WFasdn*n|=n2/c}1W>WU(*СG`ir;L ꆏҞmu.maJk$+.J_67):TJpTWgJT9ToXeMa,mafVv <ݬ٥9675he &|FeǢtۛjuZҝ%N)JOkn2MJ-ŦN!'(pi򸧣;vmik旕 rxc.wvi\ӿNd}{>Zj7dZZuMqJSS|eטPN2Xkҍ*{GbnUI`7M=.^z>lNG$<ףZpJy/ˊI[ՉCUUW'j"zuOE辝ST0[om|Tkv0upEc[{7"T@Hڪd+[ h[$Pj/jJzvsR_ qsE6Z1saNJ1]M$aǐ}X,..bZݭ-%ʞlparts+NwJ9۽Sر]b%{Y3GU$ݞcC%:+g:R9KºҔT֭,>lfU]i_1oq[wrxۑwyvi܅י菍^k\j**oƧx`m5՘ǮNmGۆ{b5kObƽϕ Ȝ}#kmM'kTIӍ4JJa⼤mb)֥uBRoT^$3ÆƎ޽DոQ7|gV귯H}@UTEm?;sGwMz 7r6O%,dE~2ڷfHI$)##+ZR*_k{;*4-nF*7V*B7&u81syէVSNrKu-,Y|2tW5=x\pfه gcS`]INno^jr/޲ZWilukBu)ZU%83cwZ]eqZT/ ? Zwo#Fy-u|fcNǧ{WxtK5֚IE^L ʰVIyHzzNb*Z+A-"7I#ƪں;k^һoo^s }ԄJKQ{U{aRT9nmnoiKyj}>ZKйѪı^޽zz~zsqzNo~i՝}Ώ$ƣ~Sk|Wĩj}T$\uz#,6^/ms9oI' 7rzl?kԡlqU,5ߖ`Ǭ#n,jؚF=} ~kST3U!R$x&cdjG5Qnd:EJЍhu!)է'RYo#$S|;9J3r6odE-R}db̭t^1zd5خNdd{^H.JSG)&U?.K2E>cbX%K`EEuT^sqT1蟪~Uz+^EO'ߧߟȐ0}{nZEl!`1W#Gv\;|V ;U;?z+Qѭ4cVb^S}j+F_{ڃ|7ǜ l0qx [Ywz,_UME[XK :0^K~Y;',IÌ?^3z4̶JE ^r*2V/YdCGCt^ùq ѓ+aMIp1]?C3s7TkO-GCo!V>#zv=DžlZ>6U2m*r_՝5'Qmm3h՗BM}ڠa׭\G9薳\gruZkadwڢm'΅*~T)/hl# c#ltH8{5cZ9TFUUQTy7Rmqwh:VҵmqoNֿr'ONꪉӧato6wj]gS_K>͘z[/빛P'Y< -Wj6iDj^lk+{:5p+¥7k. z^̷yy8֎=ʕw)q,/?9?(|Əo y7to;7͋;ȼh(,ѿf~a|,KCKi^lMUϑkXEW9QI]=ki-I+ މ|NJ6wί6kg)M!W|A[!*ЯbϑJjy]h!Kljy#{;JNٲ41vfDwW%Z&k\} Zl+W-ZTRmE)N9ɤV\[J+KCNUJфV#:Z4/Di,,#i,|K#HU{ܪ9ʪ*g\x\_xײYLRrYOJ>K/Y7"eV[mH7 {KS{GO.1!NvM%f''8k, WWC3\T*,DwF5LЯ;ۊW•Zs͊ΑxFJ1Z$:TSӂy-o-g_nUGq54lZz]ꊶsy&Hw$̵{q-9F&٩k*LU}CeE $hMɥ3O4\vש|l 67pzisn.cC6d]h`vݍ%ڝlrK}mr_2솲ͺ%ڹ;`q5}W+epXXUm[Fu,U{cQ^мnGimZKrsiE.mrQUJ嚇[ɾm 2.ՖVKVܑW*$u(TRtVXgTVY9կVj|eR'&'B1cFb#^81 }ocK+KWyjYR"kib`t,6fWC^W7YĩFIBzbW8*j0c۹GmGIvIfd[b02T*BVJqVmdPڟP>#N1#B!1IF1QI$I,#Hmmmޭm,S<'Ƽ93YJɗuXszZnW\˵oĮQ,kSZ YȲtog- oxUbuKNI$f֏,VyjLǮ3=R7lN#>Q;_Z+Hck6N̪[IM6e% x?/\'%TmojqpׄfRfmV6.lj,~b2b][oegڕ/)SMnRpIܓ7Un֎ia=ypkH٠\I!nR6R mR>K{+G3֗<{xٌ5ug)f&#\1R&.ďzOj&s`ryW"wt4ZQٵеqqR+vw#CrOYi$f6=*JjˣR0[N*|ej%c/E/eClUթ% ^.fg;=:?ݘJs]LAxc+Cr6j:f5$F:z=&'oG2:NܩoiV'Rm*Wj8UݼvSBVu%=& #ï1,#{ ںr ݶ$Lc^Ƒ׉R.ȗʩg-eN&OcZ*RjڝfEtqs=Kf,uƲ)ǢCpҥNliڬ*wӅ̡'%N9I&Y;PJ(S'88TRi7E%c=m9[V)IJQp)jSִF95M 8,HV>9#r1sWr#_EEDT_EC9~ȎZ_MǦd+ֺz+#ZW2$tX\r"*Gw3>ό[J箶t$oN;^ v ofHHXBŋ(Yz"*2Vd꾉JR@Ϸv9fXNק4oNzt,r6c_Vjzk}]?q<~~X N^<7b=R+y>JWɎWcnRVHSPz'8%-"̎YzQ(oN(V;|kA=*8Q==:"XR_q~(9fxsZHwBV:/Fr2^oDNZ|DG__wel|Mlv /N n+OhqfK'XZ֯ӱެuͫ"AQQ'SXEG1:g=)0T+Uڵh)wf,.lc8!7ٓ>X'*r׈[8E)%s`e.mVM`$sY+ubeG/|*w״iWJj5!E>#3J|R'1].#|Jꮱv+ES]2&cpR\_Mlv̵U)wBUIF}ɛENڽOإRK΢/\Ӄn;9ozdS`6)RwuT.;_owUGyXJxgDoDOYTcm-lv=ϣ~^k(r /C{y!c *imA?T٧Uz1=r&]oB΋]8?P>K0LlTyGf kv̸\m)BMѱڿXyJ?G6L;>#ӚaUB_{Μjٻf*UrURRXj͉_,+QFI$k9ȋMmIeI%mo8/=s)WٴͽspsA [fi%\yJoVK5' 4 IE#뭕,i6Δƭ՝Ž9TjRPSNsqQK ㆝ q^Y%N'%mɴigZ\"< j|G<5/f==Fda|vcnlxS /gP5{sbT흙Bvu(QVjwo.N/qKVUam^t^*Ɯ-bz::Νa}G U5zw::/6W'|94+rjTЧNpJ#N:qQ8A(IF1I$4 JR۔m[m|X!ֳ{nR8y8r{XiH2"${U+]{Yֆtֱ˔,iȺE󶌱=uFݥi\y 4e6cX#1)*iFy&טP>~73S_.SؕJ]rޱTTf|SlXgkg[ۍT"[4c5ޙ(ZF\ng dr"uc5{LȭRVX.^Wxҧ^ZRNtӖ:p$%hPgԣ%(J/)MVexT\1[vumYQ[z^hYe5O {CdKG1 Z-u@>W{6{#jl5k^P),J %RޣƙFtm߭kzU?I5k;؟S exOalVkn2VU@ʮ^UǾI$Fō`ieWo_'w J4e,Ch[״^*}t8Lpl]eΌQv;b{LcMc S`;$v=oVF{ޕ;"2rDDSy}R?ߥ(c㽎no^گ>׺IF49,TכW5ߚŪ6J:5SfѨd)}DZM^Zymm&P_LY=kI`増N1f$jv&wlˤ9i콋eFi5jWƂO-9zIX^欩P\$U<2<~c8LaM2&:<=JX$2/5eHDjֻMWժ([u::q `jt8_zܒ*"): -{eBޛ;BUdY xJ)RX)ʭw,%'Yس]UQޔ{v q&ڦob]_ 'lqOUf~ý;*Ojgi]Uo 2#93d^LW{1Y,Q9{[nQ?+摬rF>R.cvNģӨ)F/ [ӧJZNi4ؔk֙yYoI玉ro<ɢ5?qU|..yɫKw Ys;խƱwRrV&Œcѝ{nԱ#: ^ tWJgVݍ%gF)(„PPOc$ۓo{/+P ˩:TzJYkic=.~~5Nn|hWwM_v-sZ׽Xab?cWyL|_M?j?5s0t^*} &kE_׃+n%YYHFl3N:7XbhK:J/ʍwUNUZś][Nk¤ЧVY5M7Êהtk7=!w0bY.zڶBfRv^N Zh^%owńk{/)!Y#6^sYb{^jI4Qr!ٔ7J:3;FO0N2[z1<,PK207{z?*;ʍ۪Vnm^M'8{Q[] {z0~/!nMN+>5T {#cWb?ď+Rw%G9lbW[;lʊņjK==;#d{C}!ػ3f9մQpwiҩwSvJ-B '$,#3gB[.|FrMSW)|1Skzիӭ^XcH"ZFء6'c65jz#Zrb#Xֵ5DDDC۔TRI$R\ƋE#U1!lVub96-aȯjV+Snfҋ UږzuF5[>nTs+6[ޤD&B'ՊN]Xȹz#zWe-am*6ul!QqA6{f%jGQUqj/y= 6{ZmW3*,u#/U^[[1A̝T$NO?ȼMgY{ =zLF CU{+Xވ׹au)t*ռJ7OǪ + G68wgQ[مTZY^ի.c"j~Cn ;Q+K~dDrGlEB':;5ay_x/"+k<0VO|6?urM&zEVrDݥ{:Umvmz1Jɻz)^;1j/yުmc,(W U$xz˰kB:~e`qO9~|Vby޲JD(yuU mGmI*5Hf8/%.9SəF-_Q3EMφk>[ c\gVQ+b*+79DT^訾8F'NqRHT$((&ԓËM>ƞS3^:"[SaFSщ"F7\;ɗ5ksUk5Ȩ湪"*****)ӥN0N!IF)rI$997&ۓymmQ/8\6{qzPAmjGr+ '2;37J[ IҶ~rUֵm>o^~{5ONqh^DסƦӪm˕uP[wW.[ɜ6R>~cP}i@NzfF_cѵ:W!,U/.O0_cKXG,N2㗫YrkU_*ߗN4z_n}Ā,@0OcMݝrl۞ ixB#խ9=䚗N`tWkj;Y)_ZbfCe7Qyŝt5V*/;NZoG M~@Ì+6nChUk"xeٳus"+F%kg7H1M6߾بM|^mrZmzy߉ˊ­1iO%{|Ė%VnbЏ[;;? 5V)nꎜVҧvR̭g X]MzpkYEEU3#)%_7<;q_fe)^\nO);4ޥVmDDcrb\\CQ||=I#W=rʮsUsUUUUUUO~P6V&k;x/1Gu(j.v9QMŦn;жu&RTkyIꏓfOfφ+ 4r7ͫ~&k3r11 e;w䣚[6ޥmf=}tNH,I*vR~Uyr NO͕̙$x5r✝k^~5 C#_7~FR E7Wb$r/QUti(uC8w5/E:zcAdho_R8~3F 1|GUøi`b6f>BʚMixa2=r+d}F{<'bP𝳲ʭgsMIFs>ڼfYzT$mam{\{Y]C<4 ֜r~kzٝdEGյߗYxwFvTsRڜ/iY_쪽U*IҗXbǺvF#!C-bOvG~+ԧeLGbHƹ|Je''In&k)c64|EL| [ 7|Lv㈊HY dzbei,̕r'*ma|iBRiTރqhۊNzIEgMV pca ~MY#nKr9ͱ$ Db3wXF75tf6.\[V-Vgb:YWIeI*'w҅k%z겤+MZ)e|m(׫u#Myy>Vl^xI+=CRY'{^e3VlUج>˒;2;"=a`4fҔ]5 sYPZӧ)$/%ze6azѭpe8*^2TjĞVRkz2(BH8F"F0RŒbc$Iv#ϛm[mm,@^$8+\ě'zeGɮm,&5v=)'R]^Њhi'PUNæm_صlG#"bKNl7:)Is+I$21o-lYkYAdNZъϰ+fkvdXd/&uyA(s$Ϝ{.0av#2mC=ǩ״f`e$IRSס.sK;eiҶ$IG5˨ꕯFvgs vcgRX7SI> ɧ*ZYT۩'({^sνioUUkITyOpf?6fj\C U"!C LlqEmF8b#X5kQuc%𭤡wV\FpNږy(S{r#k;A7nW'%,'$aڭCwXp3$mZT9qs,VfcVvlʋ]亦}|^e­m{i$lrzJȾ:W;y߷VsF y]3ׂLpԻdpg{cdĘKse!Y4)lzzLz#aT-٣N˜W0_KXI.>ܕ#cI w͆iYJ_F_h;U6ezmfTR\0.i]Ƽ ќ4կS0|S^hApjpiNYz⥟L'sp܎ލV^su36+,_Dޏ?ڱޥR?Nqkx_d-*J9 kK<}IN%z]T|3+9S8>LG=NU]G ݎѣ[)zȲaq"C*JUߠ[cm۪fKëFZ}J ,jZ Fi#rڷ> i-֕Z뫋Z<5˷ɋisS82ьe7/iZ5>GzY-{ɭڑ aEYzQF`m+mJU(*FQjէ ؔbBUeYBIB'xqNPkWrבWL>ۀHRkTUI*PI^vE77kdEM:o"x|]#Phץ}oM:˫[ZwRʉ4K=t2DC>LB6U஼n5dKBz YiFR\unmF&=Se(Orx}zTx/ !m" 'X╟y+Cܒ6g|NF:5I܎s[i_ٖWhάp)ǶU&.r\jWNeRJ>d޲}Yo2'iz ySFS*4( yEݧO _.jW!'TJ25u*Ѩʪ{1$m(drQl;זz-Zg/X(j>6jt^qʹrSoGX_ʎlE"6F#2YNaj*!R4zwW%)NV_7*k65Ggʚ=ҥͨ'(z CM~"ˮⱗηe_]=hUjV 'g/>@ U jQ?Sd~uHk|wwjU,O47Iw3Qj9(؎jݣN+zw74?t}Tص\ШPNR%.MMr*9QQQQQQz**/*/g b?r^i.:G5b: Ur׆)WޫD𓟥ѴƬJߞ:~fyu]EEsz*gS[fU)ByZFCХR)5NpPtө=VgqlSrQ{cz.MGIo&Ztlo :MٶV5eMwHԞW5~UEzZc2R)E=rz\&ʻYl͹o7Ly~_MZ6ot螇[SnՔT麳99I)IrmoR}ҔRQJK (qIh[?}!r]J۵Ucg69QBUT2MȬƲ_iKmmKs]Z;;Mj!kc8;hi: XV}ckѓ#-t)3C% Ĉȿ؎=v+07WϬσo1n/:v68uRma~1{sGde3R?XT&ZWAWI½aڅs-з?mzrAku-oܬ|ns,3ZMYѯbgVӿmckOeƬ\*Vy\\$UtBsTHsԶt(NIWqi. a,%s9Us\9\^Oٙ/g.GՅ}MR}ek,m7#VCgSU^b?a]`cEtbdlJu+AiJ7X:N8,OZRJ j4u7N1yC4_^y-j7W>%x]95v:-wtP֚EV~Aޞcg'|Y5 lFM f*;:Z9:Uaz 'V̭f8D69>JUUoSNtGR.^&2pe%)'iYNQxbk#fPƱGȍWbkf1)db6YH#任iU⵽M1ѩ*rz)\*B^iI}O_kEo˲Q׮:y;j6|zaUVY}Ʊe*ݷ'Q&%k)f{>$QoT(aij{rWy.YVc# aC _7J{Wr\VFee|lskT{v/mnVڲƭ1O:comJs^*/AnXQnߦrI1L6op-~rPeI[45˴:5i#G`֙^&vJoԻl,T+8zhԸ8sX]U4ֵX-̠dj \x6<&ݧzf$lw>ɬȮjYĬPzj_2\W ޝ[{k§SQXݡ^XΫ)wV3+~?l0 | r{_[9&Fyr:eһ _{d15Y^_z#Ps͉q{e\Wu&+z}b'ޏ>WsqO+T)}1q+ifyc# ׷nmzlVlӵϚr-JHHD^֘8=uV{'(P_/,_B[K 9 dE rGMZ'lj:{m6glfܝZtgR[tةUifȡjTSJ{҂*#O⍩-g|;%Y徾FtV6[X;W%|inFWqQޱg_7)5Ee쭕5Ŏđ\sQ=zݶu.jӥ6J>`Ӕ g-,e9]N0][Mx8=Ə5dcd`rgdKY~F9ciD~g\֯68ׯS TWݡZG]XyMjU׻i?&]xmYm >R\xTgV,5evܔsFGң?MX<{MSGvv^T0vUkVJ[eVU|׻:ezO\^#%3w+OKސVrͷz*:o.UTLTN6I4!o{Ƅ#0X.uEΆɴIrJߢroGC b-/ǰk[em㱫#y3~uwFD#zm?&2U.&nVMthF5dRɎu(&5vJ^Tn:<[El]vD2*S-kz.T[oI'=}'DYfZNml:nikQ~ƫ*x8v]If/j-n)c+T Gx{v6.wӿw#52PjvkϜ^X-G3]czIgc75w%DDN=DX+- ̰zž;{)H3[ku1ٝ:ϙ~%8y#8m"x=&"3G NWZ7edΖyFFڽ=X72YPRЭ=˷,ثթ^7M=zYQ1{ܽz5Ҷ4SsFnMy.ֵJ3z$akPNK B3IgF+7>!K0]lN{-:JWUF+92"/drg)qׅ.2dW/AܲPʎkػ&ZS\zדcΞ6t5ajᰔ{kG9#7? >r[tdTc Nl՛IF=eGmnԺʙxSwt򫱭FKJݒ*kY4߃ WzVVrIm.ѷ/1Edyǥ=Ocl=O Ф餗[^~Uj7Cwq+WiK^ח,u0.WӸ[z*lMWwke.J\e:ʽg#mz/2G5Xryzy?㛈d251mӶ-Kb:3/"w**D^Q}cJ\\yœ,є4FͰ)Fʄ`JmTpn|W̞G_Ti]&lVeU%y[ɾ2΍Fb Ý[,{vVUoki.+0I/>!BV^BZfw$v)܅jݓC#wk/EE觜i<%.iƝZm[uaMFMa'Me,^6^2bR9yovKN|{sߜmeȴayaW2޽Ny+Qz`z7>l}1a%+ONJ~N6%WVͻd1'cUY _"4D*Wꦯ5[|HΣ9,K%5K#YY^VtYGzFRʵԶM)b$))kKQ(qvi\Iy4PիkG? ܍B;Ueো!_H_,mK`ǯ;.s9͜/S/5;ts9eiYߑdVkI-LYu5k!u=Oݵ=ȏϭ-5[bWw, UmloqO|sQݧ{N>Ug{kIg4Ҕ?^~J(c9{ױr{UkQZ"Ȩx[+u777[6r+FG:=%#d nbtVwLɍQ.%,B ?:To+Ljv:ˍzpTw/Iy@SS5gOݼ[oGuntZ捊_^ڬb 5}1="XyHxF5Tm8\TOe;XK+._{`czŮg.8TXL^Qsr;sAТ9XnRjzաz1C 116cj""!?%v6{ZչOP:/;YF 極?مIQW5hç' ݯͰX4ڳEYkYIf)7QmU6m'6WTVq*gI.ɩGi5o>NPNo -MBy@g:έ̼o<ۇk6;=6 ޫڐ[¤LTi [ʓypקŮ#kGwh\$J 6 `M .þ[+bVo-FkUOFY)J"UU<#ډҾλ{2|8[E0Jڂ-?D%)s:ʓK%4RwOKm`viĤ7^m3/2j?gHtʒҫY'k#by7S9|BaZWֵ9\eeuݍv8vc}=<] Vt\[ow5Q?-I)E7'9'Fu%8ލӣDJK~o7L3KW+ !fZLdu=x*Bml[!įj:Hj*fxdvsHroػfO:Y^\/N4o:5-쬔ҩ8uc(F-fO}#uNJp܂RO YMxW6j[WiɾGښ5qe-Ǭ4gs^6ɥUbH)C zUmz_ײ61]EUU3&;> /+B9\\…8RTJJ2KӬx&uhε qiAM4IcF$4]HC]57~aac|sdj؝=OAmcfbkn%L*;9Rnol5k/No5z]Ke͵_cUc:xMF.8M.K::<(Rs=֡E8pcE̚Qx6op}SlqеKķ"":I=ʩhz+ ;k* hSpQ7km=ZRue''o8]˂\ ?{BvܾKMXA콎a朣BqF.;DyTa[Yqr)'5kȆj>Y?*Ufq-͗'^,OmKTYJ6w*A3X{[/\Ürk G6%2kbl\tȹYޫ$FʜϥJ Xw -(Gh<%^$hRTVjP /Zs56mo-;k#k+.^٤f͕E3i$wǧ{;O]_~![]9'/Υ T֢"if'"KJޭj/kiueowR㓸-{ru3RYRK yƜ4a~ <+՝wKD{^{vyK~PMiYcԁY{UdJ^D3f{DzK_uYӵViQRU#RS?-o*|lac:QWQԌK|^{r~l^ JC'#bRhIG5kZSQ JRJ0Nro 1roI6rNME,4m/ջL]ZxSRLRQ G.z6ѾծMS21𝗁yR-Gط=3k;梲آJsc;Ɜ&կs-v8R\եmB<q-7xӲmAJ[_֨7r2uXV}$.PWA^4OZUNz&wOkτtbm\Nq $یXK/ a@Oo!혻?41v{AbYi>vƏFT^wݶ"Vw%+RZGH:yfضaƫuהTF%oZmRj֜\zA5VgZrlɎ"I-dN^ّS#/?w<2Vۖc|ڻ3`$o|UsiՊț\B,z#e^:Qus9FVnM#3WiUVdJK{IyhhxCgkzְiPd|cse2)$V^75S|.#6x.:=j9K ӭG=)ۖT"G:8]'6W|vL:M56#Fժi&%7w)ƞͱ[~m~\3"m+\;p~4էN!l3.1isJ芫=X2ҕҶ 0IabK8̟{fVԝIk)@;ECc<5#2merǛϼ>#oc's^g^=s7:ͰΟl>}sg{;Y-J˺&Xœ6F]صС$Ԓygv*ԎZRY% J/[jMh.qzJ/<5V#{x?P_GR%rFJ,ףQ;Q;{ztdW i/W6Um*mi7:pc h?Tݹt*[BRQ?\*?B}|MBxܹW}bb QzJqSNeUjIwG%_O |95ko`]IDz%= tjlbl/OWabƱ:6;:EH\Wtڕ:QhR^TGz;VuZRNغ1BXjnrOG<<灼y;d2$ě.ٔkGlц,vk Z[R 4e3M4?ծzћˊw;7RjhG~I9[#6a+H$ԾS}B1WUE1I%M{wwɟt~{z/To!sO?붗GT?Dg߃s%[`r_{\|?iRcVn2\QbeƨS+f訋~;RdZ)ŧ֌ԣ+qk*QjIShN3Z}ZW=kZֵֵkQj'DkQ:""""""tDCNӹ@KO;.L֧l.<[]2GU tv_Z2C%br:0[S[mWs&*J'7Ti)΢(?.NM(۷BW Iͮ&o3Nlbr:.PԵWiz6<>i`Xi^ j[1RM^c^Yq3B-ۓ8uH WnwPڱfu{ Yt3#]mt|R;ʳVh-Vb؎9Ygn.3X&u)VvJ:tPq%%Ԛ2ڷBW=-rK,iٌn.3Xd W͊l~i[nʹ u~v?d3VY&ke#jd6/RǡٷTol{uBR*{P9y.NJPԣ$zvzrV9kXMakَ?7蓤;?%o9Wu6NhV^hb<wsUpqZNJ;aK2M)?:8J u`|׊)Ψ{9QUS"PQV"W$mye6m{գ9RWR݄VKфa58|ut톖>uƟkZuZR;ViתRi5'~T'uGVrp6Wp\ r)+bhr4Qv$"Z# I #T{Z(FQJIŴk >OR׆?Yr3b{#GCr~RfK33'5j;w{K$:Ur GF/R?^ 4ᎽJtD+UMlPׯ lkYlkZ`/Ff̶|*]}lTug{F3RQr%aںv8n)i'N19wur%n?(m 㟷[b,QfIYZG WH+G=ӾIz"98 Gv|=\E\q+Vtk2I^6y2=Ocz!=UUqRmסV#jS785q(Ҋo/UqR-b;T%ۖm>~Bo#7l򖫍YAˬM{ƶczQ^Tjuz%'{!h6nSFf1𽲶ұrA;U͑cUbb2_%{C}_El=1MEN[Ж6dj(兖֍.|̾[PӴ< o^ǣ ~>$7M"7ϵ;aG4W=F/}^IxݵH\d SŅg-\/YnhY*ҝuuѹlBͭߍ(ڄ6֜8ɳ)ӽW3|'-97RZjom7.hwu\޾2]rH<8/{N]> m(mLxnwM:uW/؛o$mv3q))GIB~9' %6NݓT:S+bPf7b2Yak%q^Ĭȩ':gl)BK{gN\&J3Imk{b+]8B"̞OAUUQ""~ z3',㛶p_oDhDv6%{ nkaGGqVXXA.U-ƾҗRXIJfT58ͯ"'/_2G {>ѴUjW6Zʱn%_X0TseX_Qdj/zͯxXul&.%Ӱն Zs]R6 t[O\scc= oET5މb3_lZ]*YZz45k*uV4TNѻR~EZnZ9E/8x[8sxzY Xjy3dd9H:䚬cQTTEM+0b ,3ɢ759csUj***/CYsaVV⊦\uvy{~BӔ3 'Pz5h7voVZZZ%kdBKV|::KvNo?T,=sW\_j/>XW[omz)t5eȦ([%up g#O#QM,OTk{rp?97kچ.W1CZ5ɍ5ڕS5NܬjQWPVzQs^)SsRsQNMF1NR|\YNY"!Rݍر${Uz6$kUX0WM4VjyQi[v*e{YV6ˮBv֮w7#ܫo 7ތiYer*oy>1m3Uٍ\9֒Εj&ž㡉ݸ9&\r.oXMamIkZG+ZTGz~X ͛pkںSSXxYӑգJ7*NOv\2Q=~-tR힟WOzjW 7ݛeWnK~rQqEfmsR+ETGݪzo=Hv̳{QZ5)̩NUDp{يٖPR' rZZi5)<>#oc's^gƻ#?`6iUwr۵J?֑[+nOVTkקTZzs^:iέiƝ8.-rQe)=bbI6Y׹5NZ-%+8K"2:ܭTTF5r*t=4㶼[OuԶJ5.;89&tR{)ΜSۉ$QUW'ڧ d_sGcrȰɋ})3SfGtuC#Vj"Rk^>]uMt[Tu݊Xs##rFEsDDNVw4cg;H^Ookjky·"UT:kE 8,h4Vq?Qr5UUU:"'"yMynI|3E $X]Ⱥ\eG#V'Q1ȎTjbG#SNFFcZ9ZUQRiqBm*i֤RNRk+)<8NjBPq\d$*_q1r i:ywZf)ׂٓ}$YvnuFڪYeZfGqqoiFwUPV 4a%ԩ(;Ӕa,J+-ZI(S9g\xSo 6&38㑛3?L;Cqr._q*ZZ-abG2vqB.-kѹS{B+R%R n2d(SBp98T5qqMf2I40bh4ifzi+WrʫUUUUN3'p3,n+Qdv l9l#ƪDZ?a_7:+a/of/l< cI ~`5AcxڱsIQY3:Fo=ʿ\K5>T۱Pۛf vъF_o6ރiv mJg<|jqv2"jw x/vظ-j[{|mm`H0QQS/اSh=Ns#{^s57^sUWWVFUV*%8SM,gZ3554JuMq>PȌl{H{X{;j*D$lׂyYV BaXމUctT^N)P!J1܍8EF1IcL%ro.Mmߜ&]wzYRd9w?_Up,N3 ݱ1+M:0GZ]9d1rsUULf{+dԭSgYӵx5z6rNI,y $D_1k\/x"EwET-ĸW꫻m3PqMk;,^jPtJrd񇌬hyE{Ŀ/+,VfUӫucΨONEojv:st-vt!R/!Z'QS(ҫmNPӱ+6M[ԭ'N 9,&YgZ=zm}:9~xJnc$Ek }@(qryt߯F׍9~Y}|j῁m\?OI=:7lFEdb\knjW|nmOzoڶnw3= >sZm)cNkY%*p=O*m잍PQ97SzڑMo{x)S\sRl"4/-SQ{ߛ}|su+ۖ?vnԲpˌfVDkMcefIfjr;,^g.KBwKbMb _;[U3N_!;=I0OOdzlJ( tV9֣^pNoVTܤR8':SqohNW[No.2uUK )RM֖=r^paxUkfk[dԱxeu@ն1czSٱɸ/ .zmXvs?zr-꺤5S'j[lusp&Fp Sd"gBgo]Үk-I9ҷs%$ӫ^U򌜼%(Ζ˶(7RpRSތR)-V|h]??SR3X\ly뒆;>9Z1Zlu\jYVZV!CL圴Z y29{'~#R)/lNfJXy.N1 ,n+I{umӍZTmAuNqj1IE#Mo*Z8~uM'M,Æ|6]廐\m'S]aңA-:%/|=o..pAnHN)ΓG \&M+񸍻Tpq׮ܞ21WXlɕsZa"rRvoq/-lM!v w^[y֗VӆE)%<m%F(U[&4;|O'9&~3=yzTqѪoN*~U+mo+Woffaߞ?zi>a7*\6\|iJ.ь^wi߆G#%o܉vkcWlESl]=e)e[^[X.>mJ3ݮklJԩ)WYO8z'-*xHVc >I>k\qt]Yױr֭?VFroF ;Csxk&b_W֤uܸ{\\">N٭zO aOv_NiJ;k˩aGg(/}lI7O%-qe.fV`l.ZՂWZy:9=Cɰkf3MR8fΫfJN;_aڧbkخ+e)˥Yl=svJPٵa Ί=Ʃ ɤNw*)9׋qbŤ%֌{.|R'gvKt~;&ry/gգ28\^u}ɜo6FYkd <Нs:;g^rqNUZmT*8Ӝ>3nS\ܤKjPHSJ0jQ\#]{-. <-5xy;6 p\SyFblVm5Jyy{0,r׫eXCe~:UY;򉵪݉kyʝmY۹Ÿ6Ѓ얩t_m:O>Ʒ{9J!: x ٱ׆\Qfڬ{KF!rG_+'ܤ1Og9QYmq'f#ol6?e`g5BL/3!"\lSWmuD:CړRw]SNꪡwi4.Sj*SܒefZҳ'R0mS:EƯMg/Z>x 2[rkەk؂Y"H}:?y)b椹8lǯ ?5xlw!}>NáGZuK6^0z:\]ܑ::S?N+m:+iW*W4KHюVzQkNξЩތ8gr;oQuw}W13IjvJ6(i߳~yZ 5Ŝ}Ma͂*餙͉W5z%y0]TG2</24bD-r,Odo#-~ki2VgR޼.jpjTsc)n 1]Y]j((b=ՄYoiqh{]O:ݯe43j*Usrk7䕐S"+tњeF6%V\%d=}W# ɪUݙJޯYI+^miF3gQV5T78[5Qϕ4E+;Τiќ&EkG)Y䋲fSv[UzkOeys {$X{qm㯄Uݼ_qo 06(&M[waRfY^JԮQfO Iw^wnhG=NZmVj{.]'JNEq Qn-)Tw\RQO>J1NޥMn9=M-, vό~Em>ݮ- q)RóԽJ.E*O&Nf6&6$sW/S~r,}\mnP'f6kӋ8\ÛUI3Tjlt{el͟_jY(*.6е딺T גbJS{5\W zΣڊ7ZGFuQkφ2r?*0y|%:/GDtu\fn)dbJ$NlGFr7&7Xm f*w-v$W'|.ӢsfelJ6VF/j;Bʡ}F7R;N:ƣR?JtNK~l\5[=~))[CX u:=SP_6I:ϯ*r~1+`Mis]9hQIܩU2y?:$McMs7M{9# ofRäfrb0 h08حg3Ydп۔+_EZ͆]g ۑ`o,=qvL~4GɌ^f6ĸlYYbY%+g|J"УmJzTKIO7iryP8UױSeVjy*QrE482\Ro Eڹv\NjDb1jm[!w=m-oKbO';EU)UZ8C[r Z_ekd`6Q=ym~m8U>ݮChV'J/.!=oeZJ` Tզ|*9o;ߨbE=mrusVNEr".^xg6s+hd1[fG#?W5bjktfTs&iK,W~^O!)%hN^ey?YlM/k=/9CuvzlqӀv&)R1xe$oe V>ټF:7 yV#ᯰzu5Z=Xq:nՆGj)Z귥/5Ď򧳪m}rT\i[*|򸥝^x:QuVG*Tfܗf Ox~"Ly0%s{R[jGEg+PV+lcs3f߿f;at\mV< OW$9uVUGm]eJ.;mS[[CM m{ k]v59po`_9`^J򞩈ֳ[UeL ddl+_푗"G~dr/_SBV=5hOdk/Ow~/5(t[:yc2&g 8z^մ~:Wvo:]jqkQkLm{\40&1j)-&$Qγ:D^l`28) msgIW"#ԱIonkno;ZR:R{)y3E (Gv#{Jq)nRQIJQgT/'>gQ;x? K&K;2M|DگU䥥γV7M]iWIlc'w9rY 5lETƶ<6FKflս:5Gaޝ{K;W.*SqUURޣ7ƞfuRU(ҕ{:t\"΢k7I-q1lsk`y咻9Α0DAk5?+kGYш\ue5{/%& .{qcuVG>+cZj*"*4QW˫^YEeRͣIZnʊШ%V)JuܗO6j䌅? G'd _ѣnw[w_G5KGHdW̯T|u;7qV5v[P[^krnͥm{7Rx`LkD;'%66jyoZj[bZBhB sF[raM9%I R4&4mAͬ<&Y7K}'`Ţ3!TBg+f9栛kbtI_wN{~u9^YYw-smXDeți]Wtu~Iyədzzz,7JjO:)<&z4!%Q^c)>-Ćǀc,t?[LT'Gz$J:9U6?>7ѨE)E͜jsTکJ9I>̷{;9+> _hb*՝7ׁ0Oq6d礱)UjUʉ~g%Cf#<~?7%-}]{OĬm{[?c^ȽSҫ\t_.JZJRoiNi=%:kӊJiϥ(_*N1EI&QzB0oI6uO8닠|SKkuje,EH.g>\zTk +P#^fc^='[+;+5ZZ[,p 0kgիSI^>\L`{Xwٟ 69#ycl@Ypz&ٯK\suޝ?ʩڈPr'X`u.ٲ2fr *6Zk8JG,1DH0=GFOz86Fmwhdee7ZSнX-_8oÏ%Q1xg7lk"RŒk%G3YDՂtv`쮖m lvohu-v)֩5*u{i݌*c~.)dB}Fܷ7gƒQe9g\5$=:o\ɶ!]0f6YՎ䝗Ⱥ^TRW'G1Y3mlxmM F\ޕE-Ĭ\&?rW6tNj%W79테dV+|z9^1j]'Df?%*ZY޸/+b9Ѭ.OgWQ.9|j_bֲ[ Emml6O{]ccŶziY.R[d6m->L(Wt¡Z2uZ,Zάe8%Rݭ8o8Cz5Q._(ve{G6le_f1xo3+?/g,lWEY=9GbFGyPƮWD̛A8tWdFw+ܩysRӔ=r4צ4̞{ϗHmsF1b+ʍkZUsQUU |QܗgɲG#r,0QTLd72sIWbnM km]vőۛ+fmUvwV+n#:wP]ʍӜj4 [: --f.Pʄ.9Xih5<$p>9x#ג2$;,::HYzĹ[],c+QLK, j]7wÞVǕ㤫r1:7e2Z[&Osbe[clTO!/gWͭRL^w2JJU"${:ta*q7 A$6;Tj5i%X7MеiLE^:b& ;ZL?ye1j_m^jYQ#2}Fק&HQےI(GhѸo-:?V2xӂ2,U4V"% 3!V?PV6[T՟ XlEd^W+|1\]]K[S)f*As?qvK"\]Z39^NltnJ-FԮEjKygM%6TSˊM*T8ޖ<-g~7M?eHp#V\ɶkkbӧB9U;Qtkl7Q߾]/yx}pNF`.'jC[#dZ֪I/k/f^nqaGwyY͖I[z/Fk:AܪF}'ɕ^;IgW#,3&ݪ4=]4kwh?>8͓A7rE{{||訊ڼw*wgsWZGM2l/$!ֵĉ{? =};Z{?s/NU{]1lIVy#]{5-[u#ʮWM}~+gYļ4|Zx={EG̲Ez:obfg?mN{{e}&"GEk)s\qq%=͐)C 8Pwkn8ݵm8dl9)L)i};yo߳>my.rFXڲM^\suޝ?ʩڈU;>'X0HLllY Tla1 ޏH cU[$rߔGz[h+;)Rt_vl^g5TtS΅Z#%?ȜXDg}sHgNw#Z4c"j''FI %rgF'bz/-anjq{< ejrZjSႬjaZܵa- >rY'mY:9i3IrUV%"/D^SɺCsq쫻Z0**u=겥:4oƤܪnJmI څqNrt yRQRRp)]{( 5ڹio'1nGNPsbGec#G!UBf0x 8ks YJ+!VJWhO tGVRY+tO-n轷G+[9Ɲw J.6ڣMN{r9%cyZ5tK(.: 8$^_9z ^ 䞦pkG#N=G2uV5-+L.LۖCl(뵰PL-xO%E}h{+ !^޽m~ VV+Fhr-h-e;:AwUd-EfŽTSIqGO6Z񎣄t\%M{Wת6/M;$4}nNm^nYݷ4֭M,ҽk.*b34CiIhǓkL-)>+sXFjת[طjhf?mi,*gѥk(G{1moFGy9o,K{oIMSo xxxI=..G'Ξ%,7PӪ_v~dgi)!^w;Cf'En=cݒ "|-fܞS^nٻNڗVkBۭxҫ^UidHӂQA1qZmF QNERsMGME;ɵ /1z|T{6Vpyֶߙ٨d&3;%<5~&;-ƵcpA9Ⴧi;]{+fϚk6271Nm^2{y\V􍯏C, q[i"YZM&ӣwc{+FTөZW1QomR QJ)vn)'ViYB5H9*˜yk1[w>xwgin:Ge30ՠ9۫ѳ!Ysl26VJ$ux{/ط{dcVڕGwFI]N)TUFy9IGuI&|;6ꕥíZ5%NQujR<c8O!ܮٜ2>c!X,SbⰷmzX#$VH+\W2[rX$'bL:#_cjKR&V*uWaƣZDD2}[UEs}s7 ;PF-*QmR%VozJ*086НH.irmZ$7ݜOxXX9]&? UN[a3Xb^obݩug)~"~+]ܢy]cu ky:o_O;Mk'_iil۫jqQcR7VSB)ʜ)KjxvlBڂ^IyTOu%'n$ޘ[y" 7ٺe2>OykbulǬa{ArOۓޚ qbۿ^G%[>)Jw^梊Mܽب-Ɯ )I9<]+ʴiFT ,e77|T{6Vpyֶߙ٨d&3;%<5~&;-Ƶc~쫽nvmKzu'nܮgR(ק^Iʕ*np0Z❭+Ռ),+IJ+Lgx!ۛö};~chldnb]Uqmj5_$ q[i"YZLt;ğ1s7#j5^rv-rM]nPBԕfX^k;cNbױM;֫q3 p9VHR{6m.ҡJ*N4c%):KHǃhti0*:L9&+[~BjuoXF R[rUrhGAV؟ Y6̼qge5mCoYjX,1zLЂ\a&֤mQ3ѰK'F/vGmVҝɚu^uZpum\ӡR}MQSMo4r8oZӻߍIU^K{KzyxRӵd_r/>pn_8+a{s^5onek{ɚf._ʹ-1WAW rNwBؿ?Xb;JJe j+ԭU]jGf$HX_hn7n•(:R[œ;ƚ㯭]=2]hRnJRJ=ZRn[25;4xmc>m3PMgvJxkau WRLv# 3r; :[j,voSkm7YU[m|n&dc݋I ,-:7}K7"i+ZeNޝ9֕e[[ԄBRJi֛M$mMK/fҲj*sT957&3KW>뜅m\WiZs}\zUhيybZUK*4W!>~pW]mgisq/.:w/J{(ܱQ/f֩՝b^ԉѻ흹uVtoqNjVhSsF:ԡNBJI8ZҜj)QuT[9Erm9I9gCA~n6|%ڵc2{֫R;82:dr'kOcDsƵ#™gNm;Qc:}u5ߌʞJvrI HȃmԜC]uݟ S#v|M5ux+VcRkyLgD#bg[^ͼFUĪՎ UI7Em[*5#Ђ`s5@ =:⭢e!ѳG[Aa[gh+5^"wj]t1Ji^RKJI?̧[iNi)zM}AwSǾ5֫NF \IUbWΊ}s S5nY\z7ockεdэZ9w43SQ'8 '=;`Vc^OEGNiP*%?O%@,@#Ir n{n]?&E_JoE+Ӊ?IZo6xl=^Ua7ucQɟ[.AQQl1`aD~UcQ\i{ıRkZ{Ωעv^mVu[{2#: 7|KA;iN;pY[Vx ǫl6,NmZ %x\uYW)_#3ch-]䤣NPZMB;jyVS׃i]K=}zIfNW78585QKQwn.ܶwY]f2ZSiyY^Q(MN<瑜5wnjoJNIM 4`{8eCNl)Zv28ulvwO]6WKNN/2ؘ*^rT:%V67Rztե޹J%Z]pZ&ѷk)nOTt^alHחU&LX^5CkR2,U;ƽbHFbKPcĉ/L6~朔Yڵt-_8ժ֋쨗#zٶ gJ bs]mLSO1݃@5 {$x ڼDg*WZ?;cmAr%Za~se6;ޓliʥOx9R~*+9c^ƶu7ߠΐ>43+_׮kO L&o1f1{aoU22crd.S4+Ikl sGr4DPbFC_w5d70Nݞ§nCYrE .eif\|콧-sSvj8SWx6͍e)PKYʌ)fPUR-T]8S]Ijѓ{bznxjի ,ٱ+!^,tO<9 1K,k#c\^z<xz=qώ97#Nivخ%F[9p/\3~;cԥJЌR~U84rN[Z6JMdUCE|O0MeR0P&9ÒN2aWelue\E"͡|SkAfxc~gǺh:u_0qtJ,rzI{'z[9+'vN_%;{VK:v^9Gv^imÜ^Mkoˡn ^"vڎ^52ѹ G:rtQkl^jNX9? kvՀX.x2n)(6%^5rcnGڟcҳYK+%b |&6;!34*1eW2Vh8؏-m>_2[L1c?[2~)ƅ6۱ѹnrQ*x|Mf\xE)7uSަM2}179c=Vj湪5QEEEDT^8pX|-P8e7ٔ2l؞=wr`x$f3I;p#k͜{Uzc₆lo\lmXVW[{hտ{^E zorZ˕Iu%9)֝ц %샒e,U$#!XeY\(b9I#1jTkQUQMm%Ͱl4)7}rJ%25I~ʋFČ#SOr.}Eѝ}eѢܮ~]>sfW#BS\aJ1}o5xrDf[Ҟ.Su>V؋Job_.bl v.thyb7zFfgN2~hIK%qӞn,@6l.[]12,:'1 g+V+PdydF/EE詫獿M~og<}ۓÿ]#lz.7%:|'c;ݗKjQk> ʕg6*T\NU3{窸 xkkVNTIOxk(Q;tً H|:C_Sx*jyȫy{IƜsmj_ЬY~ ʥl{zaTuR)pkլͮM't~u.'8PmjSӦY&91Yr[iugWW_֭8ٲuef^A\jgmun\I)b4EQtZV,oF](GƲ픞\ah9u $Ó-'%lz%M`+QVͭc&j>s3V۩JA3vG69ᵘT䝽n/RUr1Z&RiSIqOɎRk6 8Ҁ%E#,q6cVk$u^2hD%J <vȧJRjNQJyxy-eǭYEf<./4jio^ l1FbrKc'lȝҭ Rb`{z,Ѫ褙Xkcyo5/)ϛDbëF9l6 W*KvZWȎUKN*U:$V2Ɏ-}$/N qObZRAbh'f,r4R#)cs$ok9ZVˌ6S|n}Ktc9X;'keVt`>]W-rBzia-YoRXmQMnT*R,νvUԞ]5b3q] t]kKd9'7JjVQU7ʹFŞ$nB{^Dժק:5Tҩө(/TM3v8pd%ip so^ _W+T+"1.趢)'%  4irܱLU2uG$ρσҒofǻAX\  gM,iBߎŌSw|rC^tl]aq׼L nEwC(t>hmjqQ%ѼiܸRU!Ue%TS9mfxZʜC,5Eթgݙs;Kz¢NYJrǓR r6UWJq852\k需i#(,msGcQ\ʍkZ9QUq O^&CWYrlj8vDm`]ܝw"6 bT_Ӯ['KĚ391g&L,U;-Hg\{bQk\xIczm JvIƥ)4GIP|kUY§v))QW*uYI2[ѫPUmzT)EZ5\lPEhEU$o!NN1!TaE(1RQRJ1I$IammmmmbvJWJmeB;^ L*ȣ5 "W/VYi'N+οH ?I'Yk+UOӫ*/TYk'rwiXk={kG5r*9jUEEEEETT[G&>ylݳܶ2|k\w_leY+_I'#jt:GeGZTƭ)4NqZ7j7F˞ѮE2]M&<3$,&i9\Wx:>>HDƲ^ZW9pQb%cDٰF7!%.,VǺ:Щz3V*ѧW-o'xE-xic4Hx8Os^sNb*yk8L#ܟ6bUNاNM;Z3h„}rKkȵ_l9/SxԽ~5&[oOZnոY jE|Z}]Qgws"Hr:t,HǼavcNb|yj$a1guDw]dt?`YF_s 8IWJq*2_F9ӓZ˝wtgSvN܋%Y$z66S]3]VHZۋuyFxT.?:?~?wovI_IPX3&q֝,̎N_-$xb;䡷#7oeV\K&p0m+_`eW$,emt}w,}{xe^֪>7R?9|q+p<͒`5jNX<ڍ:ZIbsb4oY!sF~fsS'VvKdh-29[,m%k$oU푈kz9:'uqn}/}^gҤ w,VIKnE#<#{ڴ6w j"5?*UlrlOο2L tK~?>Fwu[1_V<}Ryn͎QڋUz1}+9~gk0X30~>zlV9Yݶ!nBVSK}hC4=#ErI_>\~lWvs>4O%TMU$u C׵{YO;zV莬UR3g a&MkO%ذbvQGbf~1ccc&5%_Y,KEsRiTV[,V2+Mp|uѦ|~CpZ}:S gHdjFU +f:v5sZ;cbdMU"ԎiYf^{Uȵ ,3Fa7#)F9Q{kUJ]MpզԞ8'ӂ\En1_bz@,s})EHrX%kQߩ7dp+Zc vgDCV&9e d?J]Ky/}~@ vy ՕȤl5Qg{> d[dةr2tNeKQ^tdGֺ>Do~$,@Iz]-tzE#$u$ev'I]VPdruV*ZڑXV$R;̎3בVQlj)Ԏ_/̏nj8TA78yyV p؞*a\ys"GvwkZ/NE^Rc *;u۬EұH VǶyeFzy=VY& ‹o;j"D WWWfVoTs}kb[ӺuJ?=ϻ{=<"\ ~==beoz^ tr7ν^K,Nn%l^otH广b>hO.;?\R^e,2;H'F{Ue|s[/ڊ)ʛGFaS_j)([ubѬ2|v UsPH-@:8b9be"$𫢑Zٕp_`<ւk3+ xW5͎&:GcG#Z{r,7_>WJU`ҔؘʪLOÑ>;o{ъWzxc)'bϺ.KEޙqZkqROw߂\ Bkc$ j.GJ5Q$r{oH$m!]mIR\5N_&cF-w8={ypR.Ľl_s$|V+cbtuewlʕff.L+ ">O87z{ ||o(;!?ͮ= g?v>K'.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0vKu޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'>15݂[V"ƿeke(j֗,đm;#n3͖zA W"a;V֐mmssqN4i(o5tku*Tө9Tia9I2YۗqH7+,Rk7Z=Ekr+\TTTQLj#=v.w=ofYE5_"Y:XkXgNINj5 A釖[o-}%ݜdy %oN]R*H#F%Ȓb#zX5Zz͵/ ~rmgG'^ˉW^5a V*"9sIeϖyΖy|O34>WJI$\]R8HO{c $mvV?1kZ+ڊ9us٪OV'+جA#ܮ>}>~>S hblH|ojG5*)Ji֩ڙ%y×'%:R!i(u,8x/Oߠ;X#VcH:Kײ;!$=V%bW!Z`tޏ וcIE.J+D%}  hv2 !+zqt[URĽ-kҤJG9sYJ\Gr~\8hhǥ_v kCnװl9<2Ab=yc &zkG3ي51sX6w8o6G$6b7"m7Gɗ-W}~HW-c(XVW"IeFHUZʱbř+֟/v&_ygmVy~gA]{dQ$%yl޳r|wC(bOp.@(KLc"jZNyov`W%UlSG[ɯ4򟡤O >=ݽޓx!vbZ;ZxgˑjF3˖ vHIT4%xix5pbKnTkޏIdHkW9{ 9WkVI.K|m6 SI#|^+Ά(YJ9aW9nuu Vi,笚'w% %ȗܾ,@7i{ϗ42{R3Ŗ hKuH.)VQ5 `mZ|tzzdJ־6{ܕW7˵Z-Nviׯ^eZ(xRRJ#KERYoNQe9k6_<K9|\߫0v>?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[>?ͮ= c߫0v?ͮ= c{;i=oW?p67ݏk~}i|C.[Jṃv[շki>']; հdLWεaӪ,,W%gxNVם XFuz=hWtjFvsg9e PCB*թQu)N5 ,bn-=.1nGΓݩ BM|'c|v0tC5mZ<}nsO/^b{ҵE<.t$Nzf*)\RЅJu% SR[Жc$E9BJqn2qm5Vt}yk^骻V=bZzG;YW˳ k-+p^=O :;cgv)kKu޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿI|{6?Ֆ>Ku޲~Rxo8?/'AMeRG}"|{KǿIxcYcԾw_H'8?/'ARxo$VX5/x]+zKǿIФQGq,9YZ:,ȉ[]YF,Ҿ8 ghHMc/KI.m';VzN-Σky qE}5-j /{y$eΙbjRZ1B:40)IKv1Icy+-qmqNr'9Re&ܚI% rR[_ЪUZEN^潋=$VK^vu2Įbӹ+udY"Ǝm{nGF#-|OHIOB?&Y=%,b-mդy^ng  ۾ ^zzT/͞y{$j5n'EYf;*:{隍ڳEj/rAZ.=֜nHYէKfZ|C4bOp.@)TizK ^flJG*5gsW|HIiI4?5>)O?ǧԵmz{c""GR$Wj6+"ݠkoQi>İ)|=ގxu$JG59ncR6;cUBdZ|S'<|W4])ESz:IN[Vݍrc"MxYxVI8$WVYӛym}=@$41XsE"t|RFr+\SQ=P5Ͷϋՙ $WBTDfMUjz~+#L"UIy/X{sI9IӵtD.@%ZyqG׳^Hb1Hײ\HPi$m|J-R$i:I$*'|#5Ty$һUU|9^L;9y&*ImX%G8.@>5Qؖz]bF`T Qп$H%rI4G 11K,lqE|HF1j+*5EUTD",#lQj+d/'k25Y>6[U#<+m{4MMr}ڧ-cו$9ZkýѮO+qp"&28dqƣYlj#X5cQ֢""""eIa,%K]>z=%r6/Cn>bGz }YRh{{"*r;˱^3džMŵSǙj5Z<<</yk1:$+#c{#zV{#eڭtY4,YR2VJ>_> aa~OcbGnU;{36GWY%.zs#&>Xcՙ`"Y5ݢxIwY)e4ѣ^HR/TƲ>ƻLl1ǭͳ&DbmZɮtVx[ SZ^iѮ#s\^ƓW'2zӵHֽע9zЭ8T9lc #{FkS9SYLUJi c㗖_5߆_58Jg/{}ɢ]"'""z""~~H.1wcHI` 7IJW^UYaY 72ct4k)8jkTM4I _<! 0qc Fګi=9]2XI[-7W B&%{16kQ'j&OZo c 6bU79DTTUk:k?MɝFWiCOM- -)'z8EW*|$nĒ|Ry/!/#gXLP??xqɟ?rr?c3gC^C^C&l(~~yh"6(F*+/ޭmo/  c7ϒ6=#6{7+b+օ+VVEy\S56?>q%H{Wv/~2nmtE+`E } B|t*#,5Giv]4Ez|SMb.I$B셨؜VVUzWs^աmqOcYKw#mIqƋ/^c,#:{C]빓6X_Ds{:*6m>Q:_ Iw-Xr}\EynNRf XH >Zhb'LlWֶ&u?/aU+v*ՇxqxskXY]ɭRd\ϨI#~'Hgr:\kYFzWV9_YMF͎BPF[ˆ$_gkF c>,@#dWV^j&YG1l$TcdetFVZm)b9c#7{UZ9j***le's&Y^?W[ƫܰXUVëשIG-J/ZgYWc➫r'^oS'R $赒4CNDZXJsV^[oҖ$Fm(&R7.w-N/tsJ*{.isRF/V׺؋"I$Kz+Z41W6(#dQ=6HDwW9Ub1yޞƜ rƉM'6j1P \;.] ˚׵{Z=ױȎkTs\EG5ȪЋ\c? ѵdncI%X%H AlGcIG{ =ٯ,gK+z/ z9]q:k]VS\&FDu-W*1$8Y6j5ыvENHC46"z<E4/lK_W1r*+\V/TUA4eg ҋ5ϗo ' .@39ߗx#O,yzmyjɺa87Oɴ{,M4Fr?3zeJFn9ÖXնlGfbXqqϒ:.~8mXzF-cUתJ7^TrU­8SSrpLzUS#Vw|F#9)(Iɤx޷7)<^{u%ɺYϻK UKVcdS=lUu1|5ƾm_u`9Γ߲yW g=G=gxpbqثdYeb4XUjkSn^Rc}ZԸDvpk^cwS z'^wYB*Gm)SգT(⭵ zU ۦBrZJGm5&4A.եaᗐ'y3mW R+3FK-_7-~̘|^'y_ }cV7]>7+ zH]J\e͛;GhְgҺB-n#qlSk֯:rN^I>{9P s[Ҧ' ɹ5Q%ɨO-xuyܞW<_.ܶ#{Um%ɷd]fCb6e<FtYXK9<1ljoF;;3]~|>5{fhƶInVR睷sRw.mKY?{$8פcًľc/n VfU'BoS^UNfB* } R7:q(iRr%nGiфԥ%'t/)%Xgn鞻7Qժqe-{6Ļ&_r2mȽ-R 2ETeBixb8·|?=nC{v#Kg 3s㟆vKiϾM 1{Y[Щ;+wmcE(WnPэwNu(֥kU\E֍ 3[Rjg,z)FYӻ^j>' lvmfp gbLSOCUF-$lwjI/tl>tZV)'!f;qY,Pe[=iZҖ]:^lTv*3[Y+VUVTmgRMRYօJ-UڍXa:Z4*uGh:ķ应/&8xk9i[|* zLKĴ4.[kmmC6y͕uWKa5yD>Mυ:>#2cxqַݣ+6)BTNVkNJKsɭ n~P{:?]]rR*9=wsR&ٷ&f.Um5z Ͻ%k΁xqm\]FZLn 5y[3aqA'v.NGKPs\ʔ.vYB=+ZU&:ӭy iŻ&TkFBN.0Q*;(//n\SKž2ɰ%D9 hh i[o+Jb.Idmvl?m<⻞-x`>Y&sZl/NO5j=\m2G|@rc6H!OiQٮڳvaJT+BU'9֌J%99JRS[r*UJ>u\e- ')K 7ǎSxc<;%7IyY9NMK6q۲Yl^,l㦹67~9 /l6dkt ɞulj NZ.mllk?c\w4xǁ޳L[Z)ey 9md{ʼn3(䰵u_pû2S$5"FiNcw*i^NSs޺YTjqz,N;+ZU4ҨrR=&'֏}g#&/MM^w`~̷?O̔^.ڿ{ܜ7Z\s7mGk0Sf3uo3SXiKi/W|4hV8t~n6MiNbߵuiol{i攧 :QtR:1S;$IT犊2! FNIݓRq7V2^cr3Novp{z"3ZSZwPqE AE_GBUG'c5z un-JN\mjx/ښ }JWGV68e)^*jU]TB5kԮjmGq(uU)FTRujЭ%Ov"OyOv݆ܞ%1>3x~10OW3RɭP!ȲYǓ,rLE|k/ۭjl夙HD/2|S3 ԶM@KPZ5m_G$vVn$"bcq)d 9mG]K ԾZhG4,momyW.Z6r{RuIMMի:35#aO:79cĵ_qhx[[1ܟC(7!tW&OCbY#[Zu 2 村nlx6ٹ;=OUdoTdh/"XgA_{~V_tq9*7;2uj\ҥZ·tiJ;;gYXҵsJS҄kPRWWtF0SZJXJ')c8Ikorձ{Ρi9x\.5lT kiՒ$6=LǤrvXhxUd8GX7! 5bt>ګi 77Yn+)If /b3]+g6{B*+g{KUͤү*T:yO*+)QR*R=Z=LZpߔfҖU)Gu凌$RnMf/jm5W{%䭫 řc|tmhc}~UYydɜY_ t< ¼ xN-8?dfoۺe<+{/:_]&+uL7Ukѩ#R5(m ZRV3NZԣZ%JShFqelT4\\gBr&S .wWV#I&kχK.Ǭr_/rWq41.bx+hf^Mf֕ !Y=wpfOs2ySby,~huKUd]SR~i,lբʨl*.}yB=R8+ENm ım'sʃ9J5h=Y;*u8Gj]^ꚒJw[{e1۹6?o)9Lqt|,[sTWqҲTrx"X qe#Rׄyn|߆{'n8]]_Chlڕ`#k CbL6)}̵#c_U:SthѵŊnh-\i­WN [J.9MN3J4ŸU)%9NyԢ4龪N57XæؼlmO6.f5:4չLn; e)0, dZ61dk9e'<)qmk[;d 2:W2c?teE}ҟG&ӭ~(UU4}+SWX [()EA[i^:2-Fqbo7B'-]<w w.'<>f7~`9_ݰ8ƭǭ}byLef5zm|xEczsPt <++2o7_z|шeݹ pXڬ>Um܎㸾K5f}[1B^-aw ZrR((l{{[6m;]sqBJRW(uc NJUne9f Ԅ!9T}Z3QU4wӨQYҨil$I:SۼV³EB&,MdsZ*p,[ Vs ۙ_NBD~V HIh"6iq0} 9Ki҂[s|9.oܻޝ?[[O'5Ѿ|Q9<JGf Fc쿢ɖT{[xޓk%%%o=pK9,8gdjlו(Y8?fV$T5En^G5ȓ$S*Ꞥh3Y&O QiJ2MI5Q 5h خ屚w%;ec;]qjn[!vVpnF%%,'*`ރ꼯D +{cLsO1xI c[5$>f2gRڶZ PreFO.Su)?-J<5' c9OykufO-R}{y*T]3ݭsF_eLJLUd~JȨJ}6t5b_r+ayi]_[;ѳ\th*ۘ{w5iSPMc(Tq_suptbkܖ9udjbeR|vl-[A蔖tg5ۙ|lVy|e޺̜`rA>K Xn.ܝh!@8k~_?#OU庙7؎wnnop3y/3s?|aj^\{TLcZmzb򫐋_V)d6:Ku,~%SUz}}oS=dЍv7Vg󥽽'w=togS{r䱎`ӈy|S~ԿG{"b(.V.)b[ykJN\lmjZJΰ{S.kk-Э];ʕ9Tk{Qpzpu*Bxs`9IG8Ĕ[?Sv[x~\lgq]Zx~~={4:D9 5UiSon9I{o۫8&e(41I/㌼vr*Hgİ褚:Nb=1טYyIZbG*W؊ߖeXSmВWHdVq?[1cDQm\Ȉ:*W6UyP̥NqQ 8Oױ>Ӈe][/EҵZ 1&e 0/QZDK ; G"5s\;Or۱܅y zd1esc^qحeWFI\T8 2Y^<\q])Ѕh%q-^+f״#ME-RWwTT\JqJRkW^2YKz1ӹM g%d/|k{_df go^mv-z&BsuVw5 ={&u8W\Q԰Zlc[enٝkQN\eDch5m+J[^4jt~(U ۇ s :Q'^p*1IIDB*8㦩ʔ?# nrzK:dx=ŷ=Q׶=d[&k[#֫J>v$g'![ x-/OO`\lT8)nBRǓBRqOv=TԼR+mW1u-7A./卢ɻ]גpF:>-ּ=j.\[fYY1x f;l:v^W{6xr8žkXn\8'r{&ciڳ>k`y\M ~c+1Zm`qTZ6wGlLmKk=SSog+h׳Sh-΍=jv%JgR4'(M'iU:N{~¥IF jҌn,ޔqM㥲\]3L %.nOX)sWd[֭Zէs}[?R=1> yjg9-dRLZƷ4k={lK]n$tv*Kk mEZ{Jusmif;IfΦU:ԍIC܎:SB)b߫u*uEկ~;i8py{GG1Y-Vƚ&-ia'C]瑙k2m d2RGm(Sw6Я^RjtkBStB*)Jr'#{Rr:-hF1QĝQrnQ&I%)炬RX4U<(I$sXTNr'UD6MK-KoGKrEJQ[9`K*u[1N_)?{*c wNSKE㤿abuWծWWXjj%7Y_$8qU94%S+\yq|H} GJ]fnV :HSԬrzV܁UZU++V9UNSuIHIK{Nxorj3Z5eqWeJYWZձ7)9O#ǫTUZr(,nSTi*o(sbOLg/8)OA i$HȢQ;#լjuTNTNHblײWk^PX=dFR7c{q') E9'ŨT[-8g^v^rE=du(*X8Q"\;wO^/vhq6UN3QK/_׫l3Tz冡 k{ӧ(Y86ro&̶K%46:Vx2kYCK$5z9\B u ĉ-#I&5Kzns"5eꨞSYNMi9ᨴN1IA8%h>_j藯~Ϗ+s9:qjA1S1D/sӫ;UWU(-w'R y$FgRxXbm,֢9ױs\EDrOUWף`DObZgNᘓ_^Soz<2%5CiyMze8!<"X"gt91 ޟsعf&ΈW}#M\7(*iQ5&5N#%.LnVEֳmOt_ ȮX~*?Y1k|u!TFyGV5wXOO9Sc5XNiɗ{)$<ݛg&9:vVW[?>?>Q/t'^},~D %9Jk. UĹR \Uʟëb\DsX՜c5YSn;+,OIҟynŜH}{t:==N:'[y d؋UfOIf]ܝTT{4QݕL0W&T~ՇGt-LRh}H]SUt8vK(n??Ѕ=? B4B?@@???o:??????@?????=DATA8Ѕ='????C?55?55?P=??????DATAP=%??DATA(=WO =yWOWorldYg=pb>>===??A <>??@pA A?L= ף;>@=DATA(@=TX=p3TXText====哠DATA(=AEERFDATAATXp3=TXText.001====VV@铠DATA(==VDATAX=http://e2-productions.com/repository/modules/PDdownloads/singlefile.php?cid=10&lid=268EOB0퓠q|0OBCdd_backylinder00`)\@<ĹOV?L=7>>>??82>1s>>8ձ@<ĹOV?????:L7:???$?03?o@ Ro R5o@$adp42*5o@jZ<% 4wf_A?DOBd8?<?>Q8>u=????@???\0]DATA`)\DATA0oBoneOB0|0q 0퓠OBcd_lidcd_lidD.0010" `` |v<?L=7>>>?w?82>rA$1>>8ձv<?????:L7:??`t0?䂧`%?`3?o@\H R5o@$54"5p@%v@.u3 ^A?DOBd8?<?>Q8>u=????@???6SDATA |DATA0`ophatch_tex_1roupDATA0o`phatch_tex_1_cornerroupOB0 0q0|0OBdisclytaD-Topylinde00%儣 = =P٫3< =g?L=7kf>kf>kf>ɿIɿub2kf>C3SCkf>kf>ubS33< =g?????:L7:???ڿÖa91?Ö$a9?W:T@h! 5h5W:T@V:4+r4ִW:T@~T"@?DOBd8?<?>Q8>u=????@???P 0ۺDATAP٫DATAX =NSubsurfOB00q0 0OBLamp =L?>(???????L?>(??????????.;3?i!"-;i!"4??-;@3f=?ƾlo ?DOBd8? #=?>=???????@???OB00q0OBscalermptyL=7??????L=7?????????.;3?i!"-;i!"4??l4HB3@LF??DOBd8? #=?>=???????@???MAp0*_MADisc-backaterial.002R m? m? m????????????L??@???2?? ף; ף;AA ????????@?=?==?00??@0????L?L?L?L==ff????DATA0$J?? tZ;?>>c? r?12=&>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????DATA0$ף={n?zT?)\O?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????DATA(@0 _DATA_BsAr@q?q?p>p=op?p?q@qArGvFuEuDtCtBsBrAr@q@q   ?q@q@qArBrBsCtDtEuFuKzJyJxIxHwGwFvFu   EuFuFvGwHwIxJxJyP}O}N|N{M{LzKz &+,-.-,+'#KyKzLzM{N{N|O}UTSSR"+/3#4&5(6)6)6)5'3$2!/,& Q~RSSTZYYX-5#9+"=2%?6'@9(@:(?:'>9&>8&=6%;3$90"7+ 4%0,%'%&WXYY__^]"5!=.&B8+F@/IF2JJ3KL4KM4KM4JK2HI1EG.BB+@>)>:';4$8-!4&0*" ()+]]^_edc$9%#C6,JB3NK7RS;TV:';3#7+1 +* /./945ccdjj;&%H9/PI7VS=ZY@]]B__D`aEabEabE`bE_aD]_BZ]@WZ=TV:OQ6JL2EF-A?)=6%8- 2"47/0>9;W//ijpo9&'L90UJ9\W@b]CfbFheHjgJkiKkjKkkKjkKijJfhIdfG`cD]_AX[>TV:NP5HI0BA+>8&8- :)#@--D;=U<>oou)$&L3.ZH8cX@j_DodGrhJtkLvnNvpOvqPvrQtrPrqPppOmnMikKegHacD\^@VYq`DwfH{kKnMpOsQuRwTxT~xT|wTyvSvtRrrPnoMikJdfG^aCX[>RT8JL2BA*D=-J=4S;<]CEvTF{Y5.iU>tfG{nLtOxRzT|U}V}V|V|V|W|W{WzV{xTvuRqqPlmLfhH`bDY[?RT9JK2HF1NE8WC?cCExQHdJ8shG~uO|TWY[\]]\[ZYY~Y}X~zVywTtsQnnMgiI`bDY[>QS8PR:SN=[KCiBC|PIJ4.o^B}xPW[^abcccca`^\ZZ~Y|W{xUutRnoNghI_aDWY=XZAZXD_QGnGFPIlU?4woKW^bfhijjjigfca_\ZY|W|xUusQnnMegH]_B_aG`bKdZLrLHTKn_I9~R]dilopqqpomkigda]ZY{W|wTtrPkkLceGehMgjRlbRuQKXMr`R=Xbinqtuvwwutqolifb^Z}XzVzuSqoNjjLlnRnpXriX~UM[Nx[fmrvyz|}}}{xuqnjgc^Z{VwTwqPqoPrsWtv]xo]YPdRȂ]jqwz}ŀȂ˄͆̆ɄĀ|wsokgb]XxT|sQxsTxx[zzbsa[SqY]muz~ɂͅӊ؏ےۓאъɄ~ytokfa[{UsQ~uV~{_~fud[RdWnw}ɂφ֌ޔߖԍʄ~ytojd^XuQxY~bhuecWumyƀ΅ՊޓߖҋȂ|xrmgaZ|V|\ejrdn]exȁчٍِ͆zvpjc\[`fjj`kuȁ҈ڎݒЈȁ|wrle]_dgxhe\~чڍݒ҈ɂ}xsnf_cghkbl˃֊ߑۏшʂ~ysmfafitdc\pυٌ׌Іɂ}xrkdehgVV΅؋ސސٍԉ΅ǀ{vohbfe҇׋ٌٌ׋ӈ΅Ɂ}xrkb`|_zɂ̄̄ɂ{vpi`wRcmmhblMMA_*@`p0MADisc-frontaterial.003SL?L?L??????????\>?L?????2?? ף; ף;AA ????????@?=?==???``????L?L?L?L==ff????DATA`!ߘ??????????L>DATA(` DATABsAr@q?q?p>p=op?p?q@qArGvFuEuDtCtBsBrAr@q@q  ?q@q@qArBrBsCtDtEuFuKzJyJxIxHwGwFvFu"""###$$$$$$###!!!EuFuFvGwHwIxJxJyP}O}N|N{M{LzKz%%%)))---...///000///...,,,***&&&###KyKzLzM{N{N|O}UTSSR&&&---222666888999::::::999888777444111---)))$$$ Q~RSSTZYYX!!!///888===AAADDDEEEEEEDDDCCCCCCBBB@@@>>>;;;777333...((("""///WXYY__^]'''888BBBHHHMMMPPPRRRSSSSSSRRRQQQOOOLLLHHHFFFCCC@@@<<<888222+++$$$(((111]]^_edc***>>>JJJRRRWWW[[[^^^______```___^^^[[[XXXUUUQQQKKKHHHDDD@@@;;;444---000999DDDccdjj"""AAAOOOYYY```dddhhhjjjkkkllllllkkkjjjgggdddaaa\\\WWWQQQKKKFFFAAA<<<555777@@@KKK\\\ijpo@@@SSS^^^gggmmmqqqtttvvvwwwxxxwwwvvvuuurrroookkkgggaaa\\\VVVNNNHHHCCC<<<>>>FFFQQQ```oou111SSSbbblllsssyyy}}}|||yyyuuuqqqlllfff___XXXQQQHHHBBBDDDLLLWWWeee}}}u{JJJdddpppyyyzzzuuuoooiiibbbZZZQQQHHHJJJQQQ]]]jjj{]]]qqq}}}~~~xxxrrrjjjcccZZZQQQOOOWWWbbboookkk}}}zzzssskkkbbbYYYXXX\\\gggtttQQQwww{{{sssjjj```aaadddkkkyyy]]]zzzqqqgggiiilllqqq}}}gggxxxoooqqquuuzzziii~~~vvvyyy}}}~~~MA@`*`_MAfrontsidelapka.001T??????????H??>??%V=gq??{7@y??A?? ף; ף;GG ????????@?=?==???p`????L?L?L?L==ff????DATA(p` ߘDATAߘBsAr@q?q?p>p=op?p?q@qArGvFuEuDtCtBsBrAr@q@q>NYFV`IYdK[fK[fJZeHXbEU_AQ[H?q@q@qArBrBsCtDtEuFuKzJyJxIxHwGwFvFuDS^M]gRbmUepWgrWgrVfqUepScmO_jL[fHWbBQ\LV7EO0>HKyKzLzM{N{N|O}UTSSRDR\Udn]lvbq{euhwixixhxgweucr|_oy[kuVfpQ`jKZdDS]@OY;JS5CM5BLQ~RSSTZYYXFS]Ygqbq{ixm|oqqqpn}l{ixfubq{]lvWfoQ_iLZdIW`DR\>LV>KU?LVWXYY__^][irgun}svyzzyxvsplzgvbqz]ktVdmSajP^gLZcGT]FS\FT]]]^_edc[iriwrx|~{xtn}hvaox[irYgpVdmR`iN[dMZcM[cN[dccdjjTaiivt{|wp}gu}aox^lt[iqXenTaiS`hTaiUbjVckijpofs{t}yo|iv~dqz`mv]jrYfnXemYfnZgo\iqoou[hoq~}wp}kxfs{bnv^jr]iq^jr`ltanveqyu{kw~{‹wq}lxgs{bnvamubnvdpxfrziu}{uŽ|vq}mxhszeqxfryht{jv}my}{vq}lxkv}ju|lw~nyq|oz{vq|pzozozr|t|vµõĵõzut~s~s}ux~|õŵƵǵƵĵµ~yxxww{~õƵȵɵɵɵǵĵ||{{{|ŵȵʵ̵̵˵ɵǵõ~~~ĵǵʵ͵ζϷϷͷɶŵµƵɵ̶ϷӸպֺӹθȶµõȵ˵ϷԹڼݾԻ˸öĵɵͶӸۼлƷõɵζոԽǸǵͶԸԽƸĵ˵ѷܼѼøƵ̵Ӹݼ׽˹ŵ˶ϷԺֻҺ̹ŷõƵȶȶƶö}MA`*`@`hMAKlapkaaterialU?????????#=??Z>gq????2?? ף; ף;CACA ????????@?=?==???`????L?L?L?L==ff????DATA(` ߘDATAߘBsAr@q?q?p>p=op?p?q@qArGvFuEuDtCtBsBrAr@q@q>NYFV`IYdK[fK[fJZeHXbEU_AQ[H?q@q@qArBrBsCtDtEuFuKzJyJxIxHwGwFvFuDS^M]gRbmUepWgrWgrVfqUepScmO_jL[fHWbBQ\LV7EO0>HKyKzLzM{N{N|O}UTSSRDR\Udn]lvbq{euhwixixhxgweucr|_oy[kuVfpQ`jKZdDS]@OY;JS5CM5BLQ~RSSTZYYXFS]Ygqbq{ixm|oqqqpn}l{ixfubq{]lvWfoQ_iLZdIW`DR\>LV>KU?LVWXYY__^][irgun}svyzzyxvsplzgvbqz]ktVdmSajP^gLZcGT]FS\FT]]]^_edc[iriwrx|~{xtn}hvaox[irYgpVdmR`iN[dMZcM[cN[dccdjjTaiivt{|wp}gu}aox^lt[iqXenTaiS`hTaiUbjVckijpofs{t}yo|iv~dqz`mv]jrYfnXemYfnZgo\iqoou[hoq~}wp}kxfs{bnv^jr]iq^jr`ltanveqyu{kw~{‹wq}lxgs{bnvamubnvdpxfrziu}{uŽ|vq}mxhszeqxfryht{jv}my}{vq}lxkv}ju|lw~nyq|oz{vq|pzozozr|t|vµõĵõzut~s~s}ux~|õŵƵǵƵĵµ~yxxww{~õƵȵɵɵɵǵĵ||{{{|ŵȵʵ̵̵˵ɵǵõ~~~ĵǵʵ͵ζϷϷͷɶŵµƵɵ̶ϷӸպֺӹθȶµõȵ˵ϷԹڼݾԻ˸öĵɵͶӸۼлƷõɵζոԽǸǵͶԸԽƸĵ˵ѷܼѼøƵ̵Ӹݼ׽˹ŵ˶ϷԺֻҺ̹ŷõƵȶȶƶö}MA`*`MAObudowaaterial.001V= >= >= >= >= >= >???V>?Pc?>???2?? ף; ף;AA ????????@?=?==??? `????L?L?L?L==ff????DATA( ` ބDATAބBsAr@q?q?p>p=op?p?q@qArGvFuEuDtCtBsBrAr@q@q ?q@q@qArBrBsCtDtEuFuKzJyJxIxHwGwFvFu  EuFuFvGwHwIxJxJyP}O}N|N{M{LzKz  KyKzLzM{N{N|O}UTSSR   Q~RSSTZYYX WXYY__^] !!!""""""###""""""!!! ]]^_edc"""$$$&&&'''(((((((((((('''&&&%%%###"""ccdjj!!!%%%(((***+++,,,------------,,,+++***(((&&&$$$"""&&&ijpo###'''+++---///000111222222222111111000...---+++)))&&&$$$!!!"""(((oou""")))---000333444555666777777666666555444333111///---***(((%%%""" $$$***444u{***///333555888999:::;;;;;;;;;;;;:::999888777555333111...,,,)))%%%""""""''',,,555{'''///444888:::<<<>>>???????????????>>>===<<<;;;999777555222///,,,)))&&&"""!!!$$$)))...666,,,444999<<>><<<:::888666333000---)))%%%%%%&&&+++000888"""222999>>>AAACCCEEEFFFGGGGGGHHHGGGGGGFFFEEECCCBBB@@@>>><<<999666333000,,,((((((***---333999JJJ'''666===BBBEEEGGGIIIJJJKKKKKKKKKKKKJJJIIIHHHGGGEEECCCAAA???<<<999666333///+++,,,---///444<<>>LLL,,,===DDDIIILLLOOOPPPRRRRRRSSSSSSRRRQQQPPPOOOMMMKKKIIIGGGEEEBBB???<<<888444111222444666999@@@QQQ@@@GGGLLLOOORRRTTTUUUVVVVVVVVVVVVUUUTTTRRRPPPNNNLLLJJJHHHEEEBBB>>>;;;777444666777999<<>>@@@BBBFFFNNNLLLTTTYYY\\\___dddjjjrrryyy{{{vvvnnneee^^^YYYVVVSSSPPPMMMJJJFFFBBB??????AAABBBDDDIIIHHHTTTZZZ]]]aaafffooozzzuuujjjaaa\\\XXXUUURRROOOKKKGGGCCCAAABBBCCCDDDGGGLLLRRRYYY^^^bbbgggqqq}}}xxxlllccc]]]YYYVVVSSSPPPLLLHHHCCCBBBCCCDDDFFFIIIXXX^^^bbbfffoooyyyuuukkkccc^^^ZZZWWWTTTPPPLLLHHHCCCDDDDDDEEEGGGNNN[[[```dddiiipppwwwzzzvvvooohhhbbb^^^ZZZWWWTTTPPPLLLGGGDDDDDDEEEFFFHHHPPP]]]aaaeeehhhlllnnnllliiiddd```]]]ZZZWWWSSSOOOKKKEEEDDDDDDEEEEEE\\\aaaccceeefffeeedddaaa___\\\YYYVVVRRRMMMHHHCCCCCCCCCXXX^^^```aaaaaa```___\\\ZZZWWWSSSOOOJJJDDDAAA@@@UUUZZZ[[[\\\ZZZXXXUUURRRNNNIIICCC;;;HHHMMMMMMIIIFFF999TE@ߘ&TEphatch_tex_1ront_texX>@?????=?@@????? @??<d `DATA( ` 0DATA0ME04`MECylinder q  j ` P$ @ pV+@S@z">DATA``DATAhP* ` DATA( :@˓?z"# E@6z"q؆> z")$ 6z"qrLz"kftz"I)$o z"uրENu@z"t9?Nu@z" @ͻ[@z"^ m@=?Ԓ<粒҃[p@ᇿ<5^E@56<8?Z?-xn|<IhvD-xt<R^/ݿӶ^l-|@Ē<ˬBa؆> z"Ή@k@'<44gd@k@'<[EY@k@A^Ή@k@A9L?k@'<]V>K?k@A ܆>k@'<xaR<؆>k@A: jUk@'<3]Vk@'p'<-sIfK?pA$1Ή@X AΉ@0A^#Ή@Ƽ'<dOΉ@ƼAJ΀Ή@0y?A#Ή@<@AbE@E2@QQZN@Z@Z?=t@Zۆ>-|@ZXuD=t@OZq.ݿZ@-Za#E2@?QZK?MZZe?VZ nZZZe<ᇿVOZKtjM-Za#46??Z/ݿӶ^-MZvD-xOVZ,؆>nZZ?-xVZM@^MZE@56Q?Z m@j-Zp@ᇿOZ*@Zp@?Z m@=?Z=l?>R'w M??RK K w?z*>R, w4?R-w?~iR,.wFl?}ҾR'+w M?RK ߒw}$?0RsؒwR>-CR Ӓw ن>JRUҒw+=&CR.Ӓwpオ0R+sؒwRߵߒw`tʾ}ҾRs+w.]iR.wRUw]*>R wtʾ>Rsw~?RK w ?R+'w-=;4?R.,wن>:?R-w>:4?R ,w$?u ?R'wf? ?'w>'>? ,wن>$?-wL0=<?.,w1ҾUwdoƾR.wCZoߵߒwن>*e4UҒw"?)Hsؒwj?R,.wj?>, w>F pw'pw@i>w߉ pw2=v6>q,pw@E>>efdЫyN>8ljd-ن>?u>M5=@Hnr2?WJ>M5= ?Hn@?,r?M5=|+Hn=?]ޞ=M5=9Hn@?#LN5=|+C0Hnr2?M5= vHnD;?!,4M5=6]#Hn-?ږM5== HnԠ?ǾN5=@`Hn2/>RpM5=܁Hn>N5=?yHn0><=s9h>lAM5=τHnP>R?N5=9}Hn>L?M5= }HnX)z>lAM5=C0Hnh=M5=vyHn =EpN5=]#Hn=ǾM5= `Hn;M5= 6HnF'<=q +9hM5=6Hn8~Žv(M5=` Hn@Q+4M5=]#Hnf.ܫM5=yvHn0g>"LN5=C0Hn[nM5=}!Hn[ߞ=M5=}9Hn*g m?M5=ԽHnnf.DXJ>N5=y?HnQX=M5=ɣHnJKA4><=E9hP;2>M5==HnXM5= Hnp<=?9[/9h(l=L>M5=v HnA*z>>M5=C0|+Hn>>M5=!ƃHnkv>)><=AIc 9h+Q>d>M5=9Hn/> >M5=6HnX@2?qo><{\aR!? J>׸ <˵aRT>P#<ŧqaRZ>׸ <5JaRj = ۾'Ddİ˾<=`aR`7 =Ldd'> 'fdt= j><ßFaRk>L> <'w<ن>"?.pw~>h><;X*aRX>><˵?aRK>g7> 'pwT?e><=`EaR?y><{\aRLJ>b}x>:t=@q>Q>:t=?>9>:t==k^>>:t=}ܓ>5>:t=u>N>:t=9 >5>:t=RQ=\>:t=4>->[>:t=xe==}x>:t=zq$a>:t=vw<[A>:t=uOoӽ:t=}f`2=q>t=u=->]:t=xe;P=Py:t=r>ܵ:t=RSd_C>o:t=}f>u:t=9}f>ݵ:t=uS~>e:t=;Jq>q:t=u J>𾛾:t=w l ?aN:t={q>X:t=?HZ?G:t==xeBI ?::t=?:+:t=R?åӽ:t=?K+=:t=9?}Y:t=u>I ?=:t=}CZ?G=:t==Ĉ>"A>:t=? l ?a>:t=6>4T>i=Er\'>t>i=?\>>i= (\j>z>k=;-\r4}>>k=Jπ\H>>k=-\O=@>k=\,=t>k=VX?\C=kT>k=r\x#<:=>i=VD\^=i=N (\-(=k=t諀\P=k=A;\kjpk=I0ᵀ\k?i=I0J\@P Bɽk=AĀ\-2~k=uT\`5i=N׀\ջ4Ri=VX\@ <:|k=V\C=ljk=V\+=k=VX\N=5/k=N\(>Wi=Tt\H>k=A\3}>i=JI0\b>k=I0\i>i=;A\YX>Wk=u\>k=\6>)lji=EV\)p?:|k=r\?ZRi=?VX\4 ?ي5k=׀\x?Z~k=T\?M>k=?\90pA90TA90u'<90IƼ'<90y?A90y?'<90%=@z">Z90y?z">Z90IƼz">Z90z">Z90pz">I"qIƼz">ZZ"qy?z">ZZΉ@k@ J]WK?k@ ZZoن>k@ ZZUk@ ZZvk@ 0d/>p 0T+>Up Z؆>p Z@p UYDΉ@p H]bΉ@X rƅΉ@% {RΉ@ Ƽ H;Ή@;y? *|PΉ@<@  s 8"qpAЁ90k@AI90ǼA@@/ @ ZZ@B@ A4A4h@? ZZ@(ʼ ZZ@[ђ ZZ@W ZZ@D A4˂h7!@D ۵2qc?D u>D aD D m$yD j$yB@ #2B@ 5;maB@ u>B@ +d?B@ N!@B@ ~D/4q$yDAF$yB@ADA@B@A@DAaDAB@A$aB@A u>B@Ac?B@A(!@B@Ar&@S@AA4A4~o@S@AZ{~?S@AZ8\>S@AZnS@AZ9S@AZeS@A'9SAnSA\>SA~?SA@SAr&@SAA4~r&@AZr&@3AZr&@əͼAZr&@NƏ?AZr&@U_ @AZeSAr&@S@ A4A4h@S@ ZZ~?S@ ZZ\>S@ ZZHnS@ ZZ9S@ ZZ9S ZnS Zr&@ ZZr&@3 ZZr&@͖ͼ ZZ$yDl>j$yD=fd@B@l>A4A4hN!@B@l>۽U]D"qk@l>/;$yB@l>'jB@l>0d/>Dl>0T+>pl>K$q`@Dl>A4˂h7!@Dl>UYD@W l>ZZ@[ђl>ZZ@(ʼl>ZZ@?l>ZZ@@/ @l>ZZΉ@<@l>ZΉ@;y?l>ZΉ@X l>Z??z"j?x?z"[@3@ <ZwX{@Q?z"q}~ @NG>z"Y|@&? z"N@z"Ȇ@i><a~ @2d z"xX{@2ƿz"uj?"z"~7Z@zz""?z"0?z",@0Lz"/7z"<z"x`um<"@Q\Nz"~P 0Lz"FNտ*G>z"x?z"Z&?<{QCe\N?z"q]93@?z"4Nվz@< _*G?V?z"?Th@z"s>??z"]+@WdG@z"3,@@H@~@z": jMP?k@AAFNk@'yz"E$1ZRp'yz"$1M@^<M[@_z"h?pA m@j|@,H?z@"?Z&}DEt@, !^4Nվz@" Z5ݿZ@,?'_ i@"w"̬Zf#qJ2@,Z3P @H@"6Z/K ?,nq]93@"sG-Zae?,{Z&?"4SZn,k&k>"JY?Zae#凿,{ !kP "JY ZZK:n,n?٢Z<ǿ"4Sw"Z=g#/:6,ZZ]9j#"sG6Z6ݿZ^,?n~P 0L"6sGZ~D4x, !{x`um"w"4SZ,؆>Zr,QĮ~" JYZ?5x,ޢ{H?ͮ~"?JYZkQ@|^,n?um"4SZdE@Y:6,Z,@0L"-sGZm@fn,'?[@#"6Z@s凿,^ !Y|@ǿ"̬w"Z@,Ȇ@ " Z@v?,^Ȇ@i>"?Zm@?,'Y|@&?"̬Z[@3@"-Z(??R\?R>R$pw@g?Rsu?>R*pw$@{?Rl?z=R-pw2)@Rl??NR-pw$@}%R|u?R*epw@GR\?R$pw1(?bۿR8?c !Rpw ?RO ?@:R}pw#a?R.@>LGRbpw؆>OR(>LGRbpwRμ@:Re}pw@CmRsHV !RpwػaۿRRpwd'濢GRݾᅣR}epwK2%RMRbpw|R=RbpwK?RݾQ>R}՛pw'g?RD'S>Rpwt ?RrHnM?R$pwLBm@Rμ*?Re*pwb.@R*(>t7?R-pwچ>_@R@>b7?R-pw$a?.@RO ?*?R*pwm?@R'8?6M?R$pw=?.'??_*JG_+?X>$pwBEE?f>?_o)??_RG_?&?*pwن>n/??_xUG_/=)??_RG_e4>!?-pwýz'??_DJG_y>?_o?_*G_,:>pw ۾L>?_rG_iT?_G_(P̾7g=bpwH۾p]?_rG_??_G_d4>t1bpw>?9?_rG_P=?t&?_*G_:?9%}pwLEE?¸ ?_o?_RG_<m?(6g=-pwsb?u>?_J*G_TK?>$pwi=?:>K K w߆0?V>s+W!sX?Ŝ>'wK?3!=M6&so?-wX?'E'+wj=?}K ߒwD$?龶W!ԯs&>I. Ӓw>>8&ɯsBE>;8ɯs-=B..Ӓwl H+sؒw w]Ŝ>swBZ;>K wWt>s+s.x?M6s >"x?&M6s[$?pt>W!s+sP>&>s 7i?B7OdD>!۾eؚDdŎ>6>+>d=>VC>[ن>OWK>P>VC>F>+>fG=>=׫=m+=6A<k =\m+==F=EF> j6P>+%ن>+/=>+ >j>E>D>@D>D>?<>G׫=&?_>M5=-#Ar6?>M5=M5ArN*?@4><=E9hV.?><=.~4?=<=I9h~(6?׷<=~4?<= 9hb1?.<=C9hV.?P<=~\ ?^Ǿ<= /~(z>uN5=Ar"w>_N5=Ar>7<=~|>é<=9h(vL>\M5=yArkv><=AI9hFQ>7<=~?",><= 9hD=iN5=ArT=<=~g=xi޾<=^9h4 \־M5=;ArߧM5=;AryЁ<= +q9h$&ɍ<=?99h @^M5=Ar@s<=^9hL,.<=C9hawN5=yArY8<= 9h!BN[<=AI9hap=M5=ƇAr!B\<=9hTY8 =<=I9h4 @^>N5=ArL,=<=s9htڤ><=.~x><= +<9h1 z>M5=-ArC'w><=q9h=m>N5=M5Ar wL>>M5=y29ArGQ>Ʒ><=~w>>M5=29ArP>><=~k>I><=.~>0><=E9h~|?0>N5=#-Ar_q?E><=[/9h-?-l>M5==Hns?N>ljd\?><=ԏ<9hgI?3=q, pwD;?:X=M5=6Hn!N?.pw=?4oM5=!Hnp;?4u'pwS*?@s<=^9h?(M5= HnW?+M5=6Hn+?'pw ?<=`aRU>u<aRJr= u'pw.l>M5=5Hn|Ž>N5=`@Hn =>>N5=]#6Hng=><=^9h<>><ŧ*aR![>><5J?aR>>M5=|+Hn>D6> q,pw>;L>M5=? Hn>b?><=s9h0X?ć>N5==HnT%?i> pw̠?x>N5=@Hnj;?Pu>'pw)?F> <2<?{>Ӌi/6&?2OW> <k=zB? 3>2s:?5&> <ϛO=ޯA?ô=<*;XaRzC?Ž<(bQN8?ɰd:?5eh<%Qؔ>很 <w[ >V#<;XqaR> <.<ن>6pwBJ><؝Q">򾶃Ldk*Q>* < 'b$> <'+L<0=@ pw>P <'<=澶Biu=後 <%w[K=hݾ <_1d<8Ru'pwnĽa眾  <'b 0׉ 5!=&sCdJu <.<>@< <'bnv3>gsL WK>De؉d~ս7J> <"k= mĽ*z> 'pwn@#> <͝=X <~==><w[QK=> <_ϛ<,w=x> <%ن>`>ɰdA>[>< (bQ>> < =>>|dV>i>> <ـw=@>z>  <2=>0e>:t=u>* >:t=ډaK> $>:t=ٝ>\ >:t=%S=0e>:t=D:t=Np =:t=w[xW`Rǔ:t='b <ވg:t=ND<R=d:t=DV:t=%w[rb>&:t= 'bK>):t='bԸ>^:t=w[>p:t=ËN̘?g:t=uD<Q?N?:t=%?ǔ:t=ٝ 7?7> < w=?=6<:t=؝Q?~=:t=ɘ?(>:t=uX>׌>k=諌\>>k=ᵷπ\}>)><=c 9h_C>i>:t=ƃ#,>E><= 9h~(>׌>i=T\ 2=Q>:t=?ջ>k=\@X=:t=r}8=:t=;`OvL+=:t=}f9pW:t=Suph+:t=SRx8:t=;xe`Љ::t=r$aN:t=wzqs<X:t=u=羛:t={qv<Ҿ<=?99h8T=<=C9h><=I9h(^>Xy:t=}r>i޾<=E9hb?恫<=q9h?bBɽk=-Ā\b??i=J\b?pk=ᵀ\?Ƅ=i=-;\t?=k=諀\0 ?=k= (\%p?:=>i=rE\^A>ג>k=)ca b>ؒ>k= ca\=@d>k=2ca<+(>i=AqcaQ =i=L8ca]5zCi=Lcaxb>Xi= XRcaA>Xi=)XRcaz>Ci=8Lca>ۑi=qAca`z?+gi=2caR.?& =k=E8ca\z?+(>i=qca90@'<"qp'Z90k@z">II90?z">Z90uz">Z90'z">Z90xz">Z"qk@z">III"qpz">II90@z">Z"qz">ZZ"q@z">ZZ"q'z">ZZ"q%=@z">ZZ"q?z">ZZ"quz">ZZ"qk@A[p'pA2dDAܳDA::B@Ak@AܳB@A@Uk@AtdB@AM?B@AS?B@AFX@B@AL@ʅ@A*\@S@AZ@ʅ@A+q?ʅ@A?S@AZh>ʅ@ABJ?S@AZ~hhʅ@AJ򷾼S@AZʅ@AS@AZ|ʅ@AR@S@AZ*hh%̅ASA|%̅Ah>%̅A񷾼SATq?%̅AJ?SA\@%̅A?SA@%̅A2\@SA@ Ar&@OAZ@BAr&@NڿAZ@˼Ar&@iAZ@,#?Ar&@ ?AZ@H @Ar&@|B?AZr&@fM@AZH@SA|%̅AFeS@ 'jeS j@ʅ@ =\@S@ ZZr@ʅ@ ?S@ ZZ|q?ʅ@ J?S@ ZZ,h>ʅ@ ghʅ@ hʅ@ N@S Z%̅ S ZRhh%̅ h>%̅ |J?S ZJq?%̅ Z@%̅ 1\@S Z@%̅ @ r&@Cڿ ZZ@6 @˼ r&@ ? ZZ@6#? r&@B? ZZ@L @ \>S Z~?S Z~@S Zr&@S A4˂hr&@YƏ? ZZr&@Y_ @ ZZ$yDfd"qp=fd"qpfdN!@B@7<±KeYX@B@l>ZZ@B@7p Q$yB@7<"*::B@l>ZZB@7<7!svk@l>K3a`D7<7Ԍ::Dl>Zp7<,s7@D7Z7!@D7<̱@pl><Q@p7<4N@W 7<@pJl>ZZ@[ђ7<@տl>ZZ@(ʼ7<@l>ZZ@?7<@qW ?l>ZZ@@/ @7<@Jo?l>ZZ@H@l>ZZΉ@<@7<Ή@\D@l>ZΉ@k@7<Ή@;y?7<Ή@?l>ZΉ@ Ƽ7<Ή@%7<Ή@l>ZΉ@X 7<Ή@p7<Z!V@pl>ZZzk4pl>ZZnk4k@l>Z"qpl>j;Ή@k@l>˿˂hΉ@pl>A4hΉ@%l>ZΉ@ Ƽl>Z?̅i@ 3P @H@,~KAkO ,~Z ǿ,@v0c9(,eM(U 6L,MeUf|m,0@vY_~,~H?h~,L~{?}m,@vH ,@6L,e[@@(,uM-`|@q ǿ,0̆@ ,̆@q>,L.`|@p,?,[@>8@,u@?Re@tS_?Rf&@|>Rh&@|wRe@oR@ԻR?ϗRO?ق RH?VR6SR@#҂ R.RͿԻRv_;oR1vR(M>R@_S_?RIͿ ?RM.?R>#֒ @RP6F@R*I?6@RrP? @RF??RmA2???_G4!D^ ?]S ??_ VO^`>},??_5 $U^v.>,??_$U^`S ??_$WO^ޟ-&??_!D^>?_߻G4^ʍɾ/w>?_ ^'⾄9~=?_ܪ5 ^ (?_ܪ^ɾ?_#^`i?_߻^-P?_߻^0?_#ߪ^).>``?_VO ^S?n>?_!DG4^ra?Rf>*pw@m?񽴃-pwra?Z*epw^K?ྴ$pw>t1bpw߾pwJ30}epw3&Sf>}՛pw>$pw;6&?e*pwv>!?-pw;? Kz><= ~|(6?F\<<=~kk><=.~ý{<=/+~SP<=~F==ַ<=~*==^<<=~ý`Kz><=/ ~=><=~n ?ާ><= ~$?n\><=[/9h\1?,=<=s9hL??=M5=29ArL??xN5=29yArpa7?v[<=c AI9h4?|d6? ^M5=M5Ar.?γQiƌ&?ߧM5=-Ar$?@ɍ<=[/?99h?U},ij|?n־N5=#;ArM?<=< +9h.>gͯsA@>hݾ 澶KBin>\ <ـ=2>򾶃Ld(=>@Gi'P> <.w<ąrƾ=<؝ QV >BKi&>W!s_>N5=;#Ar<ǒ\><=9h@zǽ{>q9Ӌi>3t0><ËNQU=?><=C9hCJ>\><(bQ>Z>2sz>$>M5=L5Arn>[>Ki~M?w><=<9h)?iWK>fe؉d.?³>KizC?b=<(b Q[4? ɒ= <ճf=K?ΙνM6s/6?7s i"zB?r2 s0?h/s+ޯst?ε8d8? <2cu<ʐ>< ؝Q>/ <'b\wȾ,q9i&M/ԩޯs8yε88dD{ǽ>}q9,iԝO`5e<QȾ,P <%Q/A= <ـ=z> <1dO<- v>,Ƌil="[> 2sX=[>i">>|dx$>7> <'ճ=>+Q>#> < ؝}>> <w ==>>7i^>><%w[QPK ?>ӏƋi:>Kx> <ډq>#> <ٝI4> < <ٝֈ.?Z> <f?z> E><=I9h<8ɒ= <+Lf<-}> <w.<gK> <=+ ~A^Ǿ<=+/~;?<= +~>޶d>i=qca>NÇ>i=8Ecab>$>:t= ؝=.>Ç>i=Eca W`A6<:t='bP&?:t=w[%V.?k=Eca?i= ca?44Z"q|D@z">ZZ"q1^?z">ZZ"qxz">ZZ!V@k@'ZΉ@Fl>ZΉ@r1ѿl>ZΉ@G]?l>ZDATAp[` 9DATAh*j DATAj 7   6""  6""       6"     6"6"  6"6"    6"6" "  ""  6""  6" 6"   " 6"  "          ""  """ "  "!"! ""#"# #"$"$"%"% %"&"&"("+"*",","-"-". /". /"0 1 /"1"0"3 2"3 ) ("5"4"5"4"6"5"6""7"6"7"8"7"8"9"8"9"":"9":";":";""<";"<"="<"="">"=">""?">"?""@"?"@""A"@"A" "B "A "B " "C "B "C " "D "C"D"E"D"E" "F"E"F"G"F"G" "H"G"H"I"H"I"J"I"J" "K"J"K"4"K"4 M L"M"K  L  L!"N!"J" N" N#"O#"I$ O$ O%"P%"H& P& P'"Q'"G( Q( Q)"R)"F* R* R+"S+"E, S, S-"T-"D. T. T/"U/"C0 U0 U1"V1"B2 V2 V3"W3"A4 W4 W5"X5"@6 X6 X7"Y7"?8 Y8 Y9"Z9">: Z: Z;"[;"=< [< [="\="<> \> \?"]?";@ ]@ ]A"^A":B ^B ^C"_C"9D _D _E"`E"8F `F `G"aG"7H aH aI"bI"6J bJ bK"cK"5L cL MM"cM"cN"dN"dO"MP"bQ"eQ"dR"eR"aS"fS"`T"gT"fU"gU"_V"^W"]X"\Z"[["h["h\"Z]"i]"h^"i^"Y_"X`"j`"Wa"jb"Vc"Ue"ke"kf"Tg"Sh"lh"li"Rj"lk"Ql"Pm"mm"On"No"no"np"Lq"o{ o|"p p"q q"r"u s u u u u u t u u u u u u u u u u u u u u u u u u v"w"w"y"|""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  ""  "     ""  " """  "!"$"' ,"4"5"6"7 7 8"9"; ; <"="@"A A B"D"E"E"F"F"G"G"H"H"I"J"J"L"N"O"O"P"P"Q"Q"R"S"S"T"T"U"U"V"V"W"X"X"Y"Y"Z"Z"["\"^"_"`"a"b"c"d"e"f"g"h"i"j"k" l" m" n"o"p"q"r"s"t"u"v"w"x"y"z"{"{"|"|"}"~"~"""""""""" " " " " """""""""""   "" " !"""""""#"( $"# %"+ . /"0 1 3 4 6"& (")")"*"* + 5 .". / / 0 0 1 1 2 2 3 3 4 & 4 7"8"9"8":":";";"<"<"="=">">"?"@ ? @ @ A A B B C C"D"E"F"F G G H H I J"I J 9"J"M K M N O O P P Q Q R R S S T T T U U U V V W W W X M X L Y Y Y Z Z Z [ [ \ \ ] N ] ] _ ^"_"N ^ \ ` _"`"[ a `"a"Z b a"b"Y c b"c"L"d"c"d"X f e"f"M e W g f"g"V h g"h"U i h"i"T j i"j"S k j"k"R l k"l"Q m l "m "P  n  m "n "O  o  n "o "^"o"e"p"K"p"d"p"9 q q"r"J r r"s"I s s"t"H t G u F v w"C w w"x"B x A  @" ?# >% =& y& y'"z'"<( z( ;) {) {*":+ 8- g. h/ i0 j1"n2 o3 K4"}4"}5 J7"7"~8"8"99"~9":"E;";"<"<"F="=">"C?"?"|@"@"+A"A">B"B"C"C"?D"D"E".F"=G G H"H"<I I J"J";K K L"L":M M N"N"8O O P"P"~Q"Q"4R R S"&T"3U U V"V"2W 1X 0Z Z /["]"^"|_"~` a b c                                                 d"d"d e"f"f"g h"i i j j k"k l"l"m n o"o p"q"r"s"t"u v"w"x"y"y"y"z z { {"{ {"| | |"} } }"~ ~"~ ~" " "  " " " " "  " " "  " " " " "  " "   "   "  " " "  "  "  " " " " " " "      " ! "  $ # $  & % &  ( ' (  * ) *  , + ,  . - .  0 / 0  2 1 2  4 3 4  6 5 6  8 7 8  : 9 :  < ; <  > = >  @ ? @  B A B  D C D  F E F  H G H  J I J  L K L   M N M P O Q K N R S I Q T G S U V E T W C V X A W Y Z ? X [ = Z \ ] ; [ ^ _ 9 ] ` 7 _ a 5 ` b c 3 a d e 1 c f g / e h - g i j + h k l ) j m ' l n % m o # n p q ! o P  q r u"w"x"x"y"{"| "" """" "                                      " " "" "" "" "" " """  "   "" """ "     """" """3  "   ""D"" "       " $"% & &". /"0 1 7 9 :""=#">$ C% F& G' I( N) T* W+"V+ X, Y- Z. e0"o2"u4"|5 m6"6 r7"7 E8 F9 [9"^:"{: `;"H; e<"f<"< h="i="= U> s?"V? t?"u@"X@ v@"A B"C"C D F H"H I K L"M"M M"N"N N"O"O O"P"P P"Q Q"R"R R"S S"T U"V W"X Y"Z Z ["[ \ ] ^ _"_ ` ` a b c c d d d e"e f"f g g h h i i"i j"j k l l l l m m m m n n n n o o o o p p p p q q q q r r r r s s s s t t t t u u u u v v v v w w w w x x x x y y y y z z z z { { { { | | | | } } } } ~ ~" "                                " ! "  # #  % $ %  & &  ( ' (  ) )  + * +  - , -     " ." 0" /" 1"   3"4"7  9 8 "7 :"; ;  = < = >"?  @ B  D C G  B H I  G J K  I L M  K N O  M P 9  O Q R  T S U  R V W  U X  W Y Z  X [  Z F  [ \  A ]  ^ T  6"`":"8 a"H b"J c"N x"w"v"t"r"p"m"l"h"e}"d|"""""" x" w" v"" t" r"r"p"p"  m"m"""l" " "h" """"e"""""""""""""", *"( &"$""  5_"5"  |"D"q",2" , ,3" * *2"z"{"' y"$0"$ $1"!."! !/"x" " v"u"v"t"u"          ~   D"E~"YZ 6Y"WX 7U"|}"m{ lz ky fx ew cv bu at `s ^q"_r -3 +2 %1 #0 "/ . EL DK"  "]_"QS S`"PV "LY Yc"Yb"""C\ \a"E\"@] <^ >^"_"       EF"DF ?A *""56"46  k k" j"+g"+f"-e"  .c   1b"2b" 3a a '_"(^"'^"  ,]"+]"-\",\"-[" "L] J^ za ud se"qf"og n` ih gi    [a"Xb Wc T`"""] \ [ +X -V .S /R 1Q 2P 3O N 'I (H )G E *F"+C",B -A .?"        "$G"%G" """"'B"'A")A kC jD 6"!$ % ) """  " #"F"F"H""EG F  "G  H  " " " E"!E"" $% %$ & !   ' 56"5   D 5"5` 5K"L"h " ""T W""DY CW BU " 7    " #"Z X T " "K"5 "  _ \ [  U  "  "  I L N R S X V V T     S" "0Q""*L" "!K"  J"J"I"I"EV xQ"wP vO tM hK eJ"7 02 ,- *, !* ) ( ' &"""  O Os"e"f"U g"Y"Y"\"^ i"j"b b"d"d~"f} f~"k"i{"kz ky"m"m"pv pw"n"rt ru"rs"           gr qu"nw"lx"jy"g{"c~"a"_"Z"X"W"V"Ps" o"" S *"" U +" + "4","" -"- "y"CE ["z ]"/"'"#' "{ _""9H "5"( ""~ "*L %M 6") " n""O  P   1"P " " "1""" 2"Q """"2" Q  "l i "o"  z""o"| o"   R o""""R Rp"   " z " " "~"3"S ~"~"""3"  "z"y  " "  * ""r"T }"}"""}"" ""  """ "x     ""> >">" "{"|"""{"|" "w v""" "" ""m "    "? "z"z"z"v  , " y""x"y" x""n v""  "  " ""x"Y w""" w""   ""u t". "t "y"Z " ""v"""t"s "A %"s%"% % 8"8""B""A """"$ ""d "R s"  & >?"$ $ ">""9 9"@""""""""= e >"f ; =""# # "/"\]"\z"Gz ; """/"! :<":"!:  "r":""" ""  r"  "r"r"";""7 """"q"t"4"4 " 4"  4" I| Ia"5"  """Y t"q"  q0"12" 3"t"3J 2" 0"1"b}"J} " ""1""   " . /2" /"".""K " K~ Kd"Kc"" " "+""- "." \+ 0"+ -< ,"  -0"""(""h +","i """* ' "()""""L Lg")")"' ' """"("&"   &"= i"" j ""  "$"$" "$"$ "M Mk"Mj"" ""  """  p"" N Nl"""  """d p"" ! ! "!" ~ }"p" O #"#" " " """ ""} }" |""k !"""1""  ""#" n"#"#"""p"m")"l"""%"%""" " ""h")*"*")",-"0""""c"""/"/ "23"0"6"5("6("6"6"t5"8"4"""; " _ """!""^ """ !"<]"=?":#"="" ""s@"sB"s"8 """D""v""" """"w"""4"@ v"" """ "W"t" "  " " W"  "" {""" ""7"7 " "   "" q""p"""""2"""""1"" "" "")"" " " " "2"b"} "5"89""8"@"@&"?"D"BC"""."." x""  ""*"" "3"q" ""s"1"k"j"g",f"d"5a"`"-","<'"?&""""2" "]"/"3"r"""  5  "6  " " " " " """""""""" " "8"<"?"B"CD"""0"" """" ""W""/""_""""m"n"o""q"x4"   (  : "("("""qt":"5  B"A    k j"c b"  "  " u  " s"q"n  ""g""f"  f f g g i i j j k k n n o o q q s s u u y y z z 2") '"                DATAh*VTex UVTexq DATAy 6zzzyyyuuusssqqqooonnnkkkjjjiiigggfff  II ddk keJeJff jj !gigih!KhK"ihih"#jDjD#$kCkCl$l%%&'BBm&m()AA'(5)n`n`5LL*o+gogp*p,qfqf+r, rs-eset MtM-N Nududv OvO.ccwP wP/.x QxQ0y1y/02bb1R R32 SSzaza3{{{5{4d|d||6|5e}e}}7}6~~~8~798hh:9;:<;ll=<>=mm?>@?A@  B  Ap p  C   Br r  D Ct t E D FEv vGFw wHGx xIHJI KJ 4K4K M LK J" L!"!NJ"I$"N#$#OI$H&$O%&%PH&G(&P'('QG(F*(Q)*)RF*E,*R+,+SE,D.,S-.-TD.C0.T/0/U C0B 20U121V B2A 42V343WA4@64W565X@6?86X787Y?8>:8Y9:9Z>:=<:Z;<;[=<<><[=>=\<>;@>\?@?];@:B@]ABA^:B9DB^CDC_9D8FD_EFE`8F7HF`GHGa7H6JHaIJIb6J5LJbKLKc5L4LcMMMMcNMMPNdOPOsKbQcKNQeRNRdIaSbIQSfQeG`TaGSTgUSUfE_V`ETVTgC^W_CVWVA]X^AWXYWY?\Z]?XZX=[[\=Z[h\Z\;Z][;[]i^[^h9Y_Z9]_]i7X`Y7_`j_5WaX5`ab`bj3VcW3ac~dad1UeV1cekfcf~/TgU/eg{ek-ShT-ghligi{+RjS+hjykhkl)QlR)jlxjy'PmQ'lmmlx%OnP%mnwmm#NoO#nonpnpw!LqN!oquonMPLqPsrqrursturtunpnvwpvwmm x x y kyzlkzil{io{o|k|fk}~f}d~dpbpjbj$$i^ih^\h+\+..YYqq44grUgrfUfeRedROdsOu%s%%u=su#:##=u:uutu/tu/uu(u(uuu!!!uuuu u uu    u uuvwyx4z|{}77r~3qonm6655_]/vvwwvvyxy,,  x4 z Wz | { |{}}rzz~   ~  3oqo2o1 n#m&$&$(&(&''),00q11021/1232/3t0tq056778 _";;<]/$>$>?@AABDtt..--   W+  +W            ** ||o2o2}}11p #"!!" #ppp))$%%$''()**)(++,0--,0..//4qt5q6((5t64r77484998rr r:"!! ":;;:<='##'<:=$$>=?>s@&&?=@sAAsBDC%%CBsDCDEBCE&@F?&F'G<'G!": !:^9H89H(6I5(Ia3J23JcKKd-0e<,-<f*gL)*Lh==i%jM%Mk)N)Nl"#O "OP1PQ2QRRpS S*T*T U  U+VW+V,X,X-Y-Y.Z.ZDB@?[/]<\"_ ^`865a2bcd0e,fg)hijkml # n   1 o2qp3 r sWt4uvwxy88[99]\z/z_{{;;`5|5|b}}~~6m 6n    oq37r7>>t??sv@4@uxwyE8E8F9F9[GzGz\:{^:{H`;H;I|aI|J}J}bKc~dK~<ef<LgL=hi=MjkMNlN O O P P QQRpRSSTTU>U>Vs?V?tXu@X@vYwYxZZy5)A)'AB'UBU77CWCWDYDY6ZZX XV!EVE !T"T"##"(&H(H%$&$%G%G$#$%"F#FFF% G% E$GE!$!HH""#II&'__(J^^J') (*! )"KK!*+5,*L]]L+-,\\*,[[,-.MM/NN.0OO/1PP020QQ13024RR3&SS45"6TTUU77VVXWWXZYYZ6@.?[-A[@\,B-\A]+C,]B)G*F(H)G^'I(^H_J'_IEL`M5`KaN3aO3O2Pb2P1bQ1Q/R/R.Sc.ScTdTdUU-Ve-VeWfW+fXg+XgMhLhYiYiZjZj[[\k\k]]N]lNll_l^\m]mm`m_[n\nnan`Zo[ooboaYpZppcpbLqYqqdqcXrMrrfreWsXssgsfVtWtthtgUuVuuiuhTvUvvjviSwTwwkwjRxSxxlxkQyRyym y lP zQzz n z mO {P{ { o  { nN|O| |^ |oM}K}}e}pLE~~dDKp9JqrJIrsIHstHGtuGFuvFE~v~DCwCBwxBA x .A @" .!"!/@"?#"/#0?#>%#0$%$1>%=&%1&y=&<(&y'('z<(;)(z){;):+){*+*2:+8-+2,-,38-9-3q_rq^`sr_ats`butacvubdvcewpfxweg.xfh/!!.gi0/hj1$$0iky1jlz''ykm{  zln2*  *{mo3,  ,2n^q3oKD44|}5K4664}5J7997898~J77:E;;E;F=;<=<*F==>C?D?@@|C+A??A>B?DBCDC.?DFFDE=G>BGHBH<I=GIJGJ;K<IKLIL:M;KMNKN8O:MOPMP998O9~QOQ4R&TRSTS`3U4RUVRV2W3UWcU1X2WXbYWYc0Z1XZXb/[0Z[aZ.F/[FE\[\a5+A_]A]*>^^&TT`:5665__5}|`~8:8^><^<]_|@]@\ECa\CaHHJbJYbLcYLcNNVPVPSQ`SQ~DATA $q A????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ME`4儣0MECylinder.001|0܄ ߄୔ׄ0$`Մ ڄ@$D" 2݃@@ZQ@[=DATA`@`DATAh0*୔DATA`୔:$ZZ@/=gIZSQ@=͵KI2JZUQ=͵1JZZ/=gJIZUQ|8=ZVQ@|8=ZZZx=ZZZ gJhZUQ͵ϵZVQ@͵LIϵZ Z@ ghZ Z@x=ƀA!Z ˟4 ƀAZ@ a V> Z@ >Z [ V>VQ@YxASQ@33xAXQ3 b>UQ xAXQ|8=ZxASQ@|8=ZZwA]Q=3 ixAOQ@=33 i b>UQ= [ b>UQ|8=W>SQ@=Y[W>VQ@x8=X>Z@/=~َ؄s>Z/=~r'sĀA'Z/=4ȀAZ@/=4|> Z@x=i:h@>Zx=isiƀA!Zx=IƀAZ@x=DATA@9$@[P;MнϡDATA@[8??DATAP;M8?DATAнϡ8?DATA8?DATAh`Մ*ׄDATA0ׄ7D! !# ##########!! #!!#### # # # # ! ! ! # "# # ## # !!!!!!#####!##!!!#!##!!!!! #!#!#!! !# ##"##!"#DATAhڄ*VTex0܄UVTex ߄DATA0܄6"   !  !     !" "# #  ! #"! DATA` ߄A"????400<????400<????400<????400<????400<?4???00<?4???00<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<????400<??;?;?400<????400<ME儣4`MECylinder.002@ Tp4P.Y@鄣t焣 @245??0'<DATAp4p0_DATAh焣*@鄣DATA @鄣:m?n?0'??/??0'J 2?6?0'8Sx"F?f>0'XX?>U,50'ZF?f0'XXn?60'8S/?0'Jm?e稿0'?O?(ƿ0' 26?ܿ0'x"Ȭf>F0'70'fF0'n6ܿ0'Ȭ"ƿ0'n稿^稿0'OO.ƿﴄ0'ܿ60'ȬF꿠f0'n 60'F:g>0'ܿ)6?0'Ȭx"ƿ?0' 2X稿|?0'O?贄;?0'J6?0'8S|fF?0'nXX(af6?0'Z_g>F?0'XX;6??0'x"8S??0' 2J?X?0'0'F0'<Z60'<ZfF0'0'<Zܿ{6?0'<Ȭx"ZVƿ?0'< 2Z稿.?0'F?0'<XXZ6?8?0'F:>$g9|D[>>$g9´|\:>.:>$g9;ZT[>x>$g9;̈́Z(2t>pL=$g9e_|82t>0L=$g9;e_݄ZV>CN=$g9>Y|\>BN=$g9;>YZl(>3$g9|l(>< $g9;ZV>BN$g9>|T>pCN$g9;>Z(2t>\Lʽ$g9e"| 2t>Lʽ$g9;e"ZD[>$g9G2|8[>$g9;´G2ZD:><:$g9?|<:>F:$g9;?Z><[$g9?K|><[$g9;>KZlL= 2t$g9_ݛS|xL= 2t$g9;_ݛSZCN=T$g9YX|4CN=R$g9;YXZf($g9Z|ʛ4f($g9;ZZCNR$g9X|BNT$g9;XZtLʽ2t$g9"S|,Lʽ,2t$g9;"SZ4[$g9G2?K|nL[$g9;G2?KZH:4:$g9??| :\:$g9;??Z@[$g9?KG2| [$g9;>KG2Z(2tHLʽ$g9S"| 2tLʽ$g9;S"ZTBN$g9X|NCN$g9;XZh(`4$g9Z|h(F$g9;ZZR\CN=$g9XY|ZAN=$g9;XYZ2tL=$g9S_|D2tK=$g9;S_݄Z0[>$g9?K|p[H>$g9;?K̈́Z0:V:>$g9?|::>$g9;?ZxP[>$g9G2´|[>$g9;G2´Z4Lʽ42t>$g9"e|4Mʽ2t>$g9;"eZBNZ>$g9>|DNL>$g9;>Zh4l(>$g9|Dwl(>$g9;ZCN=V>$g9Y>|AN=d>$g9;Y>ZL= 2t>$g9_e|pK=`2t>$g9;_eZ>0[>$g9´|>[>$g9;ZDATAh*tDATA t7" !""!""""#""#$""$%""%&""&'""'(" "()" ")*" "*+" "+," ",-" "-.""./""/0""01""12""23""34""45""56""67""78""89""9:"":;"";<""<=""=>"">?"" ?"!" """#"$"%"&"'"(" )" *" +" ," -"."/"0"1"2"3"4"5"6"7"8"9":";"<"=">"?"@"A" B"!C"D""E"F"#G"H"$I"J"%K"L"&M"N"'O"P"(Q" R")S" T"*U" V"+W" X",Y" Z"-["\".]"^"/_"`"0a"b"1c"d"2e"f"3g"h"4i"j"5k"l"6m"n"7o"p"8q"r"9s"t":u"v";w"x"<y"z"={"|">}"~"?"@A"BC"AD"CE"DF"EG"FH"GI"HJ"IK"JL"KM"LN"MO"NP"OQ"PR"QS"RT"SU"TV"UW"VX"WY"XZ"Y["Z\"[]"\^"]_"^`"_a"`b"ac"bd"ce"df"eg"fh"gi"hj"ik"jl"km"ln"mo"np"oq"pr"qs"rt"su"tv"uw"vx"wy"xz"y{"z|"{}"|~"}"@~"B"no"lm"pq"rs"tu"vw"xy"z{"|}"~"@B"AC"DE"FG"HI"JK"LM"NO"PQ"RS"TU"XY"VW"Z["\]"^_"`a"bc"de"fg"hi"jk"DATAh*VTexUVTexP.YDATA 6 !!""##$$%%&&''(() )* *+ +, ,- -..//00112233445566778899::;;<<==>>? ?@A BC!DA!CE"FD"EG#HF#GI$JH$IK%LJ%KM&NL&MO'PN'OQ( RP(QS) TR )SU* VT *UW+ XV +WY, ZX ,Y[-\Z -[].^\.]_/`^/_a0b`0ac1db1ce2fd2eg3hf3gi4jh4ik5lj5km6nl6mo7pn7oq8rp8qs9tr9su:vt:uw;xv;wy<zx<y{=|z={}>~|>}?@~?B lnomnpqoprsqrtustvwuvxywxz{yz|}{|~}@B~@ACBADECDFGEFHIGHJKIJLMKLNOMNPQOPRSQRTUSVXYWTVWUXZ[YZ\][\^_]^`a_`bcabdecdfgefhighjkijlmkDATAP.YA!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=6>4?w>Q?l>>O?V7>@=p>?>>C? >?@=uc?tB?u ??^ ??Rn?-?@=6>4?w>Q?l>>O?V7>@=Rn?-?^ ??@a?)Y?[v?w?@=!>p>?>>C? >?@=[v?w?@a?)Y??>xcx?m>@=6>4?w>Q?l>>O?V7>@=xcx?m>?>>a?>Vv?>@=!>p>?>>C? >?@=Vv?>>a?>^ ? ->En?=M>@=6>4?w>Q?l>>O?V7>@=En?=M>^ ? ->s ?; >ic??e>@=!>p>?>>C? >?@=ic??e>s ?; > ?p>@=6>4?w>Q?l>>O?V7>@= ?p>5?<>وA?<=@=!>p>?>>C? >?@=وA?<=5?<>>?>*2,?==@=6>4?w>Q?l>>O?V7>@=*2,?==>?>pm?!> ?Ꮪ<@=!>p>?>>C? >?@= ?Ꮪ>m@>(>W<@=6>4?w>Q?l>>O?V7>@=(>W<>m@>P>!>><@=!>p>?>>C? >?@=>

    h4:}YK"3#"(u(7AAA!1X-mL37:K}9@(,,76325'&'#5!!&'#.#"32632#".&Z<;>Q"P-G2$i!HGU Bn0 PiW0W<',AA'4 < @5*P7 3-"N0#"&54232654&#"#"543232>7!5! 69x$2/P(H@;mZ*LM?l"'  @Mq.?e(>% [ ?=>8B5/  AA 7>54'#5!##5#"!5275!0% `AXeb !Jh >,(,>AA=G!.R=4<Q!4632!5!5!#!32632#".5#"[+#Si(~ kMId6H>5RJAAoz0N*QdE7>54'#5!##5#"3270 g@Y_b >YEhB-+2AA=3.5fKQ<\%".54675!5!!5>54&&Ay!3%,.PR!(%3 wm]H1=A.B/[AAY+E& A=1H]#732>73##5#".54654&+532vOW75͍@Lb(X@)L%*-H AE((  '7!5!5!#!">3274#"26wEl1#B2 *)A$?Ta!W+ZQ>90MO%;tAA>&. '&G8;IB1)+*}#!#5#".'6?'&'#5!#!352675#Az&Q^!\'!WI?>0m 9_Vv3E3GGDyAA?S-.;oJz.8!".543232>54'#".54>3265!5!#3267&#"*pP6`A(; -hi); $K4^HK-p^y!)1I,=Ij+!1'=*a-'+,JPaAA]:!WqO!&(<74>54&+532!3##!#"+"[giʊ@&)5YD?o?WEAB)Av"4'#5!####"&'76732=35!f `?''D'@9g+5s RAAi$5 m*O|Lq#K_x".54;5!5!#'26=#"t;eH~K7$LZ]i=lAAeYM?0&(=bb&*%2654&##'"3"&5467'#5!##!BZS>]\?T%/! \}iINMGj|_Q|{;[AGY^B%; >}][p AA qZXD 157#"&546322654&##'"3"&5467'#5!##!R3BZT>\\?T%/! \~jHMNHj|_Q{|*!& [AFZ^B%; >~\Zq AA sYXD+!5!5!#!"3!#327#".'.54> ?$'+N +6%8 ;*)H/"+)=xAA.0@.= 1*?5 4% #)%74>4'#5!##!#"&!54632#"&3/.$sA  )z$!Z]wpAAEtv!74>4'#5!##!#"&!53/.$sA  )z$Z]wpAAEtvt 325!5!##".54>;#"v!6U.]I~01;^ 7$1(LDG3`AAc.D"LF #*@]d 2#"&54}&2%57##5!#@dBFAA.#"3###535463298G4@}}kc43 L:_A@A:g*P6"B23###534&#"#4>;am@\\2JC*@#Cg:A@Af>H#@<$@h #"'5327 $%.Y_cUX^ (A('h #"'5327#".'5327 $%.Y_cUX^iY$G%cUX^ (A('' A(' z2#".'.&547=}!h%H* J-J&x)!0@'|4632.#"&5432.#"+#4hL=]j&%T+cGB 68\7!5!#<^TA8,h32#"&547#".7"32>54 0W8eh  8M5w-I+ FW#4)29',3%e] r)E8/aRb?(0$?2. ,p+"463 #"&/&543232>54#"#"i(>;h2!^H*l{\%t4;7[5~H2=DJP1+2)[-3?YI.,t9 $ !*))+532654'5".54>4.5474&#"32SZ]`Uj"+GGJGG,!jUNPQN5ZX7Z@"%? ! 5%.C!!C.#3 "@%"@m<..<`3273#5#".54654&+532*$WOMe@@Lc7nCL%*=/<(8HFE&9'5.54632&54632#"&#"yH; ]#<`VJ9p1!AO mY%47CHK @ -(/("=$7@0 G/V" ^F#7" *1#BO D DB )$< G*2#"54?>7>54&#"#"546Qi *"9(E*&u8:Fb%kJ+U  ,z_!;4,*!$"4*|+Y C`% 3=YX"4632!!32632#".547#"V*M-IS%/k4dmQ4@2TG@"6`jK1 #=]c j84632!.54632#"&#"#!32632#".5#"V*  @KG @ !-.#`#K_%/kcR1@2TG0H (*7 ZxB #>^wH!2#"54654'&#"#"&546(; $ ()=1M'%+&C!1#<I 5Br@#"&532>753YHIY 8J7 UilR$1 4AA %767&'#5!##"32>2#"&35.wZgFEMBL$>! a0nD-{VZgnAA4 e# 'boќ *0<.#"#4>323##"&/47#532674&##326@^v7R/ @ &=kFTv8cbLEt'L4Ozy29Z,kaA6Fjn+=5%EO9&5ZW2AZn"Dk65 в$AAQb7[5 <Vbhs2#".#"#.'&#"!##"&/#53>32>#"&547#"&54632'2>54#"%3>74.##32>sI, %4\;@z  ! 3G! ) !:$fT// {yM" & +\FMOdhihW,4$@tu4.?,^>+ )=*:A)405EkI]ϳA]ELw=3353###"'#'32654+732+ (/ kyssyi8%I9C[G !? 5"xDPcW( BRUDFTV-#32>=3353###"'#'32654+732+pp[)/ jyssvi8%I9C[G !,X 5"xDPcW( BRUDFTV*726546;#"#"'47&546;#";#"(J8&d)_FCOX7 1UL/I#,  ?0W CU>1!Y8GS6'X.! /,46;#"#"'4?&546;#";;265a4!c*&z^;PX!>ULN5/-F1>5H2/ES5 'S7IS1?F< &/ ;5"3674&+'32654&+532#'.5467.44@F1Z[('d3B> p8Yl|7eF= Sd B0AM*'V( !SK7k1#GX k<KqRD;34632#4&#"32674+'325&+532##"&5qtpj'IH+P;8JHXYIHd3C>_olmEGe 3l!B-#@-'OSK=SK7C?eJUfP62#"'732654.'#5'74&'"'4>327537&54S.L6fEX29#(<)1sNR#*O?*Y08]+AsP9OAB@OT12. 0%:OܠMd"c @Bdq&": I'30'8'='1 '9'9 B)4>32&#"3%#"/732654&#'7"&G"9; M^ 6?f0 ՆSVL^b-6KXb. P/!'P8Y+.D;/%*G3UH "232=3353##+"&='&+7~!1>Ckkggi"I1Lg:+2=;g(3"V?TJ/#34.#"5632#"./4'7326Jhh 3#L->u9  !-Q22"WB'9;-)( X :$9*<- # ?M9'732673#5#"&547.54632&#";#"n3nYg-,,L~}K 9?l.[JC*9':60Ac^#//LN)<(,'(G2& "'7[<+!'75N'=<B+#32673#5#".'#53267.'#532j"93%l8p qrr52%! 8 *"9P]*;#";#"27#"'4672#".32654&#"X#G(! J<)I&(?TA44 S\PxRp'"%'}H/D3"4 S4#X.\}Of0dE pV]P ;/#&51046327+.5467'&'&#"3265#".WFAy."L $@(3:(1N-" .,/:(EOaY@. R aG>I<f 7]($'0X #JS;653##".'532654&#"#"'532>7'.#"763632uD, 76 ".4*,;;W*@-%6 6..B$9CH4MQ=He0ZYD7G(7_JMW')=/AFRX*a353###"&'7327'.#"'6gxjoojr_,o )P N-L"=kQ"Ij;[ /&0;[&4&#"7633267#".54>0+:1C-K%C?&0c9wX+NJ->YZ>f c9'.91(XF*]&>)P8*>!#*2&#"#".5467&5462654&'"$@-)E[>YY>-JM*@b8# X77p?*NGgIVYCGnO)$4/AR)@N+=,%1;&7C&73265'.'&=472&#"#"'&'X j2:N Kz(=<4.Bd^#//LN)iV;}G2& "'7[<+!'75N'8&% 54>54#"7633274632>XY>l2C/Kvc=XW=@-H/{:-@ "3 gQ92:*%-9K9_3Dd+#3%#"'53674&#""76"&53327dooG]$H1$%(M-# %%srO;T@h+bN99"Pa+5RՆe:CT%\ ".54763753##"327;F5$=:Rqq9D . 1T6R7:lSF;{X40#5#.5467>54&#"#&54>32326734p,z-oTZ.1/5-a3 :%1H$TL[BB:o.""bS .%&06 , "13HR 8F+'7";27#"&547"&54632&#";& $ LJB[gN;t[=Y=+,  !TTXgVJ/;+?MUDP46.#5'.547.547654';#"326734pKW=:0A*b-< Z)1):~LG9,o4v!" ?)A,H)L &&RM'G+N 72654#"'463!53###".>%!QK"$HDSqO*5G>7".=4+53237673#56O$%[<%"(? rrF7%6+T,/ 5 _C34>32&#"3%2#"'#'&'7;>7'&''7&\ 553b!>9>& 6g|fkKCWb" ._ Q,  J( 'YU.HO~5A"'58d#726=3353##+"&54>32&#".;osoosqY(ch!77,.9IA/T)Eal9S) Lu+".54>32353##+.56354&'2"-&RN3RT,8@,kooi4(8,U)$O6+-BNr: A*: $5A+]<#4&#"5632353#5##"&543s#%=jppj;.8+bQ, X rj$ &;&`+)#5#"'&=46;2654+532"&#"32673+qW\fQW `+EX7I|* 8,3uq/t99=a(;UT@#2:7265&+7!2;!"&/#5/>lIe (V-%MT\D%y \ TU$#5#535327#".54632&#"po"6*7E9't)0"53 51-SJW&9a32&'3654Mhs %! 2QV~ ?+  (2(XVHl#45V]_8l+QO1 R b4F_#5#".54672&#32673pVYB[,jY5-'64+Wp,>*GC&P`N/9k*'K2#3"27+.54>32#.'&+'32>74&Kpoh,&1(54&#";27) O+?.-Lz%=M`YC$ YB@K cIwNOYw0&SP'?=A Q %.A<)8R6[(+#53ggOe #46;#"#"&54323254/&=8*$6e6 :%Mn 0p6g50>$,S3- +$_*#a47W/<#3qq,^4>3'&#"#,JM)g9_HFUpKl8R.,)!^`N,2#4.'#"#&=6>@{Hp 7&8 XdC?O7B*#0 #'2#"&'73>54#"'6I][KGh<7P$'%H'%78YI;)7v2=.CaXx$, 6)\-Q*_H%: Q\#+*46;#"6;6?#'32?'.547.G:dWD/'(O 7 4#'%R-5T %Y9KH7=*2 =( D81#:r #".'3327=#D&>22`-x)"-[=t#3` O'7#%7uh]Q"G_ #".'3327#3"F&=12a,y) oo.Z=f)#3#3_oo  '7#%7#3 ]P\MLoo:& 2#'32g =g2#"&54+"/3;674&#"#"=32?672#"/7326%327'.+7327'&#"'63#".'* %? T=o-gv *#)5#Z0-O)H<9$p]W8*+R"4H`4a db;Tb c32?37&54S.Q  56* e)0n^,rOR#$U>.E#6^-AsS6(8F,j1J_OݠMd"~c +2&fn!: !I>#3oo,,T#3#3Tppqq,"&5476;54.#"3265_B@X`=?# (78+'4_\EB@B\_&7 P9:JJ:&463227#"='.7"37>=4&hSNg+3,t)"8>"*' $#ANgI<#"d g Z/) ]!7432654.#"'632327#"&5&XF7c =*=?Q0k6,7H2M^T[Q 'OiU,)Z[J +#"'7;26=4'"7367'&'#"'6Zod}]lk6OA1C@ +~TI cNA( lH`FL82)HV ;+P!#"&=47&/7'327'.#Ml}N`@Y*MEb #B0L5]E[\Gp+"Lu/Ga SB?!%;#"&=#"&=4+5323273 "i!44E[P "$* 4nE TqT:T -"#!.57467.54632&'327'##'26=4/. B&.C`v90!P)=%o$#)fq-H/\!:3HA#AD N  8Rb '  2N=NL& '*%".54632#"54732>"3674&j+JF)`CSf "6W9O @4+@ 0*#`, +)Q9HJiX=c]>%]%7 6)2&!,-3?h,'"&547%327_BI>0;AI+k5hVY4P1%1Qc)"%#53'"327#"'&547632&=o ^E"#0.nPOSVp"0'Q[M*9Y^POrmNMW "&5476;54.#"3265_B@X`=?# (78+'4_\EB@B\_&7 P9:JJ:RK E%2#"&5464&#"326%54&+'3254'"'7632'&576326e0<.-0=As"%'!#%*g5A.luk].@K(N`B&Y@R:qv *8*J@,(5?-0=m342'/BKPDEOCU$"8"JY x1 A#2?OR 2#"&464&#"326 %77%&44]  2'%54L3Y !,#!-#"&54767.54632'4&#"632654'i b!%-/%8)?32653#5#"&54>7>54&#"#54654#""&4632632U9PQ9d;Fu..o7Ru8,&%J -5,::),0(3.B'$9'/7>54&#"#54654#""&46326324+-9PQ9d;Fu..o7Ru8,&%J -5,::),0(3d.B'$9'/4&"26'4&#"326u+K8K%`Vh()*)++#1U'7C3}.,}y`:usE0*`|hM7# J68IO.9c4R. a#:"B>!"56(>%#"&547&54>32#'>54&#"7326=4&''7n(:/H^ 3);G8y+K8L }d9W+B1 D13DB"",,A YC,T2R/ {NFtwU)d~*>5"A2 *1E=/ C  %8D#'3254&'654.#"632#"&547&546322654&#")47F O(!+ .9)2L& &45MJ85N Pa4F9( ,- -+=3+>":v?%%O)A$+>6(#O59KO5&0Q_ .R4# 21!$3!#3#"&54>7??C3  #slz   &\65#"&547332654&#"'7632654&#"&54632/LiM|yP:@>I9., #$&09$# /C-0A1C$dFU{oH76/< %4/ 3 !,@N7C"7632632#5&#"#5#"&=7'&54632'654&2654&#"+F) ,,(:. &-" 01`k+z'1%04%9!5E7 %-'_l  Uxe1!+/ 0/:26753##"&5477632#"&547&5463224&#"264 4..860;!$7GH29NUb-# +#"/,J)q5-?B3.3.,J75SO9#[aL #,."&/.#/253#4&#">32#"&547&5464&#"326-{--qVGe37GH28J P)#!-,"#)-'Kt\hG%)J75SN:#]fzh$.2!%337%#"&54>7&5463253#5#".#"367326=332?6-H  UfU]/-"5z,O8Pm6+$a&"0&')1@*& m`pIB",*\H/.#%CP$'QP#%% '14632'654'&#">32#"&5.4&#"26ZqMO 0+2?kG1&?*5JJ54K 1N,! ..@-;^MKj5:+KG>NdH2N"+I56IH2 /F!-.@--=2'654&#"63'"3267&54632#5&#"#"&547.546q 1 ZMn+#0 $% '@-:%.$",;3D m0 (UzhJ<#.8'$20-69?U7-"_?5@4#"&=7"7632'#"&547&54632"264&#"26,00L4ON?I2K45IK9 -:@-.! , 4632#"&72654&#"bfDCfe/fkjTRg rnjUTn^\[/4&#">732753#5#"&547.54632'76r[Cm#"`.; --%<4B'/\m- VxiF#.D+AC%H5?,\iH)1%".54747.5463253#5"6;"&#"326754& 7R%-)`pT-/ASi$%#"4P73i w%5, ;5ZpYRLJ]B5 "./AG)"Ws +C%".547.5463253>32#"'#54&#"326"326754&#"63&7R% -*_pT.('99'00B"5P73lvKPm$%(!%5,;6ZpYR(DTA*LJ%'6&)+/AI'"WZE5 "&!;%".547#"&54?&5463253#5"6;"&#"326754&V7R%\)f:`kY.0ASi$%!4P73i w%5,8 -<VZpYRLJ]B5 "./AG)"W$/2#'654&#"632#"&=7&5462654&#"vDI8LNsdJn &46ML75N Q@,+! -zFWqvVEfwiI(#O58LO5&0Q_4#"01!#48%#'>54&#"7632672#5&#"#5&#"#5"&54632 %G7I'zd ) ($3  30Fu}$[os T(^'   Y;ky@2'654'&#">32672#54&#"#5.#"#5&5469M?- .?>\Uk2% 3 3   1Y !4\:A2P==s[7 !    ;dm/;!#&#"/"3632#"&5?&546;4632534&#"326-Rd+*A%+,)86LL68M dC;F;PH-.!"/0!"-sw'&!%:$".&O67LK7S8<:SCVa"44"$45#.%#"&547&5463253#4&#" 32?32?'[o?`W]pT..qP7.\I2a*-sSVL9 *!N]YRs\#:)- @%+03L"#253#%7.546"32>?&%;) //nBGb1K%L.  S 6"TeXB;[r/%6.+=:!N932'654&#"67;2753#5+%7&=&5.546j, lPB]$5-+,+#2 Gx1(,}[F4JeQA# )!,$"'p@4+&5_)1.QnA7#3@+-&A .#"'>32G %N;6E)!+Z>GY`!""%&$3#'7.]>"k5#$267#".'#"&5463253'.#"32 ,>-*;-::'!3+En0 :3&1 96+'9Ki/"1,=26532?#"'#"&546353'"c1IA -;&S'0D=.+*#(iU:<7:,&6<%L8"3254&#"?2#"&5467 H.O ".B31FC/\#('%)(7, V R&2#"&54632&#">4&#326k4U1! J6bvmd88' ?,C! *y@$-=,6*5Wrs0/K+@68M<?J"632#"&=7&54632##'32674'654&#"7654&2654&#"2L& &46ML75N Q`b # "54X#99r@,+! -+>6(#O58LO5&0Q_|`)*#,P#1Id?4#"01!#462#".%4.#"276y??|X+>2$+5&E342155rMNps %9hB4S. ?@^_CDDCe/.54632#"'4&#"26#Oq4]LC`YC<1'mPA.0AC\A+wuY#OaZAFc,Ko00@A/.CCi/'>7#"&546324&#"326i5$%HdeEL[/F24GI21G(S`ECXa@3GF42HI/,2#4&#"#&#"3274'7#"&546326u"4.;'!:-"=1?0%% F, 50TL@0./,L/,DC`:v%(5"3WDYu373%>7"&546?.'74'3262r;^IZ[].""Hd&4Ls-8@03@bpI@_3t6J[_H&Q/_?IM$871AD -(2<./#"&547.'7'&546324&#"64'326'u3Cu3&-21" %").54&#"#"&'7326 &.&X:Sj2BeŅU8&:6M/5R'#)2;)6DmTu61RW;](! +:> #05&0"7632#"&546325267>54&4&"3260G ?+8;(D`U^U!PWbJ, !'8.&=7*(9gEP|^l*.4,fRNh*85!#!.n 5/{8'3"'.54>753{=/0/AZ  -=P9Er!&4T#>,( S> 2654&#"72#"&546(43)*43+;[[;<[[F8(*88*,4];32#"&"&546324&#"322T42,)3=2+)11)+Y@;[`6+@$,# 7_a5BV7`Y>;[a14)*21+*B*87V57X46T7b5aY=CV%5."8!WT`NV@=[\{B#&$?QLI6FXh20TZm,Y:1-:Ly A*0>s Y32654#"!3264>3233632!".54;#3254&#"#5##".543!654&#"#"&) 6' ai!0:,d7!5B/UR0< /"71{%k~WNmgH$.@14=3%&>/?QLB%;!h20TRK7 *777"- Zm,Y:1-:Ly 9(3EH[ IR_h4&#"26467&54632#4&#"632654.##".54632#"'#"&&#">2654.'%327&'-#+*B*#A]C08N9'O43F5%8 wQn"jsNlht9M`0=w<[AuBJ dvL7-RvV?~i73%#'*5KDvkЩ{fV66?I3/>5C /(GUt??AIa>[N&LX?#x2B+T&)-"LA[L 2"&546!2"&546###!#(P(d=<uX< )34>32+"3!!"546;2654&#"2#"&7"32654 +EF$VxC=Ns66ls;,.]TE6)$*5+-:g/90F#nSK417T(.G,CN6R26[ / 0'PZc4>32>;####54&#"632#"&%4>32+"3!!"546;2654&#"2#"&2654#"3254#"-A55O?#7%Y7H7&Q/@B2.E+FF$UxNt66/s;,2YTE6)$*5+-:b.!3;2@]+0( 27)e3@A+=-1=]k0F#pQIg7T(.F-CN6R26 00/8%%#"&5463!###"6324&#"326m"3+[tj*(ŁPq;3:5M6#11#BB.4-#K4L d:;k5+%xuj]E82M%:%%(  ]72654&#"2654&#"4632#"&547;#"#"54632>7"&546323254&#"632#"#-* *({# 7ѠVF7F 1G3BB$%H3H,-<+"6*,8UB*%Tx 0(7@H1;###(+ \Pq;3:5M6#11#(84+8;B d:;k5+%xuj]E82M '0%4>32>;####4&#"632#"&73254#"%4632#"&547;#"#"&54632#&#"32767"&546323254&#"632#"7"2654&-A55O?#7%Y7H7&Q/@B2.E=!3;2ѠVF7F 1G3BB$%H3JU:/)=<\C!1,8UB*%Tx 0(7@H1 0*>*('@]+0( 27se 3@A+=-1=]/8Pq;3:5M6#11#BB.4-#K4L d:;k5+%xuj]E82M%:%%(y /35"32="&546;5!#32#"'532654+a2wwS|2$n5JZ; $#*8`Vb+,GsBgO)D6Y9:O=)$[[DM %4&#"###!#63233!53>5&,76",;\765(,"."\)R6Q8[*7 Fs "&546;5!#3#75#"32#3S|1%b,a2wgO+B67[DMB&,Gw  ^32654&"4&"326"&54632632#!"32?632#"&'47#"&5463!2654&"#54&#"632T# ,(<*.F*0$ *PAI`33oWrngA]S8%PPY:MK4/?L;Kv_REYUzN7`B*H :KS&#&#Q#,(D*(`SI_|bb`n~6d?3`4L82BE/"1aGMRkJEq]ADf& R;8G C%32654&#"'463!#632#"$54?232654&#"##"632#"&6(*9;'@hl(8MWN &CP}GD).&=Ot2ZDSU<[t'0/( A;0h=!oUamS^5},O1kKAOB?]3!!6AS7"<HR\74632>3263!###"#"&547&#"#"&547&#"632#"&7"3254&32654''32654ď]L](tAGD:d*0BVPFL^!>9+_:%5,'9`a`5+%<|+))6RROrnJRROroINTJXBDMp-,;`&;17Y_1yAOOKo8Xb.zg*.80#&546;2654&+#"&546;5!#32+"35##"3254>Iev><+bKS|1%+Oat6.[8w.D:\XBP[DMgO+B6oRsϋ&1Bs&!#632+"#'546;2654&#"###'!DMvca6@FQW91- 776wQg}X. ?7\R;T'R*4@74632>3!###"#"&547&#"632#"&32654254&#"ƒYKS';<`6*dSCAT^5>d*0BVPFL^`5+%9~*6RROroINTJXBDMp Ko8Xb.z`&;-,;'3!3!67S2#!33464&#"3263X7HE6O`J5))/8Xc.UnS.>AY'5T332653!3!5#"56,H457`I&UF(@S7"K 1 !#57## ǐ66XBR8/%+"#'546;2654#"#4&#"#4632>328t4,7AFbq#774'-6F9(A@#b_ř"- "- ?8u>$L(:B R>T), 41=%4&#"632#"&5463232654#52#".=7'"32654&mOD~3JCX]BMfkg40KWp]/E#.=8*,97DywE9WC@Qz[rS7>jQ6f 45 7:-(10)(? @&274632>3!###"#4&#"632#"&%4&#"326 r3]H57C(17f8Su5LDQY>W^;'$;:*(5q:'*76RJ/7ZrP8TE=Ny)>>#'2. <%4&#"3262+;#"#"&546;#"32>3&5!3346P`J5))/3X7HE*8@+Q01:E,sm N4+776OY'5TY8Xc.Un01$C$=707 =&-&NS.>A0".74632!3!5>54&#"632#"&7"32654&udOQN8?9FvQCu -'BTUAO[(14+)37zFJb;1cDQqV;]CAPm5),73),9 1>W%32654+%"32654&%"37674&463232+#7!5>54&#"632#"&5463237"&&bst(14+)37$6O.)3Q@9P #k9F=4a=a9FvQCu -'BTUAO[{dOQN@>]5&C<5),73),9K(!(^ %n:jA3PB76C1cDQqV;]CAPlU{FJb;K =I74632>3232654'52#"54654&#"#4&#"632#"&732654&#" kBu M,IPM;PVlf\ 62087hGD~3JCX]BMfT8*,97%.=r,$".ZG*H7cn%E6BB1/;DwE9WC@Qz(10)(?:MY%#!"#'5463!2654#"#4&#"!5>54&#"632#"&5463234632>32"32654&u107AF6cv"775'+w9FvQCu -'BTUAO[udOQNF9U$>#b`(14+)37Ś#*%- ?8u?#L(:@"1cDQqV;]CAPmTzFJb;>TH,L5),73),9  !#### 766RRL4&#"#&54632VSB`%C]mq7_rQ<4432#".54>32#4&"32654&/j0T@DIT>Uv3=`y7fu*7-)"9-Ôth;JVH=Nnhmq{ ]m!?-*1>"*= a /;"32654&4632#"&547"3&54632#"'&%"32654&$;8,+8C(ϨYXG>U9UPOVz8\A;cbnl)>:*.=C<#)11)$;ƨ`MENX>E/le^e8DAX^8Weuu3C*)58,&A/:D2'>54'&#"#"&547&#"632#"&546326"3254&32654'l`7*8CBW'$dSDAS`7?c (1AVPFL^Ə_GIf+56*a;4+(:b_y}H#o=V9;RPqoIRSKYADMoR},)6+*6`':18X`0sGQ  (4!####">32#".54>32#4&"32654&*76j0T@DIT>Uv3=`y7fu*7-)"9-6RRÔth;JVH=Nnhmq{ ]m!?-*1>"*=  /;E"32654&4632#"&547"3&54632#"'&%"32654&%!####$;8,+8C(ϨYXG>U9UPOVz8\A;cbnl)>:*.=CH76<#)11)$;ƨ`MENX>E/le^e8DAX^8Weuu3C*)58,&A6RR ` &2Q]%4632>3!###"#4&#"632#"&%4&#"326">32#".54>32#4&"32654&*r3]H57C(17f8Su5LDQY>W^;'$;:*(5j0T@DIT>Uv3=`y7fu*7-)"9-q:'*76RJ/7ZrP8TE=Ny)>>#'2.qÔth;JVH=Nnhmq{ ]m!?-*1>"*=v #"54632//1 @&274632>3!###"#4&#"632#"&%4&#"326 r3]H57C(17f8Su5LDQY>W^;'$;:*(5q:'*76RJ/7ZrP8TE=Ny)>>#'2. "%5#"32#3"&546;5!#!53!Va2wwS|1%32#"&/54>32327654&#"### C"QY{q!.) ):ƠydoC6C)756$`]V٩ E}K+ ,K DMsBnKR;&*74>;5!#!##5##5##"&732=#"%#3$%<,?=  G#*2-/E#)* :'$/DI60A)bf~2( /+O52="&54632>54#"#54&#".54632632#4'7&#"326SjvW%yT9CA&E3=#S7Y/:P@H41;U"x)HF(*c7-;64P'q 8)-1+922kN5 71d6!AH4&#"!2654#"72#654'##"&'#53467#5!2654'73&546265!X(2M E4;T_z~pVrJ@ ;H!%iV=D)PV Q wZa r"y;bV 1 V OQcsLmV9 (?-^y?a232654&54632#"&463"32654&#"#"54654'"#"&54632'654"3254&546*36( p:4mjWU=KK= *(&9cIDX_^|7D YU54T 4 m $<&Ax6; 2`hlcr:l?3 F\J^C= "cjO f40 @&vbW<+ /dnS BX#!7326533254&'7#"'#"5467"VE'@C5':c3$;7rL.G2)K<*.;Dr ??OD&/?@&1%2654&'#"&53327#"&'#"&547&#"32653,\%"&8@D/&,'Q\>;/S*^7654#"&54632`$2XC)-(##C@6i!1WAJ3"(3H4J.74>74#"&54674&47325332654'7#"'#"&.81304/%=N(K( -. 1%XC.(% #5?9i!(`=N"9"1; *9Z8 2C#A$(#8#%!'V(.8EAM@@OjpR2#"533254++53254+5#"&'#"&54?654#"&5463232533254'71QAA ?<89(I !+%3;46323254&'#53#"'#".54632654&#"&327&#"Q6GY*s(>)O61<$E#ffDSJ#E#Gf/:Cr2\2\f=[RY58q B2#"&54#73!5!#"&'#"'#"&5467"3265332654&573275 TE#Z[N/(@QAV$?I-; :F;+fG0D226rAK2#54#"326533254'7#"'#"&54?654&#"&5463262#"'4BWN%G -O(`.4K;(K!*G=g4AWIS-S-W7]:W/<"*! $OAO2/"="!Q2.#*?!"? G,?Q77UJ4"=$)$1 /)8JJ3S@".=4?654#"&5463232533254+535#533##"'(< (L&3M 2J.]VLC3i$."2(78!;)  '$240=9#!'VVHW:r9$: ''8V@@ ?@232653#"'325332654'7#"'#"&54?654#"&546"3A-1EGya;%A!XVE0&1#(A7n3V@J&F%*A>T %#8O37 8V(.F @&8IFFLB66#1  +%1C a%&#"3262#"&5472'654&#"#4&'#".54632654&#"#5&#"&54632>3246y%HbF#H?  22F*3+",!$D4E He4M#vWe4.&9CJU%3EQ9g!:9(ASn**!  w!?,]dB<>'>2Y[*:' 9$ ;6(-U/B +/((K.6.5%&DDrQ#"&##"&'#"&547&546;#&#"32'654&#"3265332654#532654&+532D8FA?'L5M@SPA1"P 12 .;:";-&)9@5#.b"3,$ 8K<\9hKX6pMD85#5+2)4yirr);9_=_;;;K A;%4&#"#4&#"3"3273#"&547.54632632#"&5467326f54UVS5qNWW\EqM3WD eOjQ4xdzkP54&+532654&#!5!#".5473C-=*!!+(J*6^ /Df[n&T"3> "$:!' (;;;5B;J)=-M!2*P o !3"&5467#5!#"'#"&462#73"325332654.3CF0v,]3EE3v0b" D#On"#WDW!&.\N@J%;;,M8V== ! PrN)5VV0&/hN  #"325332654&"&547#5!#"' Sk%!WDW(m3CvvJI2= o &*"325332654."&547#5!#"'3# :A-EWDW1(Q3CllT?0>E3v0!#D.]>]VV14@L4N@H;;-M8V==r %%4&'#5!#".'&#"&5463232]>%U7SF.;'"&(= ^:+<-M=;Yo+Qi>c2+%):G0P0L(7467#53#"&73254&#"5)]k1q[XuCT=K>=M.d;'"r,feI\BZY &&=G2#"'#"&54>323&544&#"3262654'!5.'327"3254#3 R@T))TAN:.S+$@R9O!$$ N8M&)$*?*FI(bqqj4YJy ye!4h6T.'??&/S7gwwO!4 S(%2654&'3#"&54>3'654#"/a~(M#'nSMP+&WK;]7% o0K) ."8G9Wj ?`AK4&'"3254&#"27#"&54632"&5467"&54632#"'5324&#"32#5vY"#<''C1)< fUH^HMcR698,' '!>=m)=77K!<:,6&?? c*$21%" `O6T+5#%3?@  "32654&"&47632//H$kAEgc ҆JF_fT"3+:TO?ANr<9o[VO2'654&#".546/2R/ CFFXDAZ&3!%7B3[XrHdfF.EL9^Nc@ %4.#"3&5432#!5!2" CxUXtj-E"39OsjhmFO #-"&5#"&5432654&#"'6323653%"3254&7.5432#54#"3>334CF8*CEtyH(UDbf/3883`!?4"/52$ S:k. 0DS@7?7"326'4&#"#463267'4632#654'#"&5476$">7F5 ,-:8/5A?0$*=(&))EKDRG%-&'D;&Za9W,.6qH H$2.( ( 1H(12:4T8!at1%5-### @$%".'3!!"&547'7274&#"326&(-?0K_gE OmD;KS/ $)FWEm@rx;9!&W+` 3!!"54?654#"#432.AB.3"%ۛ;l;4H|1Ff'?*%+9pE ;!%3d6@(%4.546;#"#"&54632'4&#"326+,4#U-L44CA[gwB42?=!"EV54.5473vucPPH-?!0::0P 19?2!x{b0310IZ%BG+4N.%#(C, %+!07Z<0%%#"&5467635#"&=3;4&#"3260ke=54X P KbPWHJk\KJchoqc:`N%nQGPJGJQM<F'3%#"&54>7654.#"#>24&#"326Fmi/(6!-%1,PdN'++P\KQreHPmj|~g#;*$ &/',T>blfM@,I0Ka^OH^X<-9#"'.#"#.#"53.546326324&#"326pXP8$$ ()&$$v(V47LfWY7=jWlP>:=E@<@>Ys/XNH+"#[\2"  P0LYNN~T=YZ>=UR<"%#"&547332654&#"#&54632o P QLJEG;DEPy^Zyo ))!Nf]LJ:?M@]e^W<&%#"&54733254ᒐ&#"#4632*+fPPH4D<7#"&546326324&#"264&"326dg{ -@B]oLGg 0CbX{r9)*=:Z5>PTSADPd~zg%UH)'YAJ[YF#Fl)2:*-6>AGRBAX`P-*%#654#"#"&=46326324&"26-1P1\43<322VQW$G01F$1&P$3:dABd9-TR11RT-[YVV>n]77]n<%%#"&54733254.#53254'5++gPQG0# \ADMP0!RNOpeI88CHW#32<qr< aFc,\<oA#654&#"#54#"#54#"#&'&'&!"53&54>32632632o/Q0/0,2AXW@BURPQsa^w>AYeLmrZ>TZA@V\P(%#"&54632327#"&#"6324&#"326cgPgT;@ -va?e\PXA?VSD@WasyfCeIP[>z]AZS?EZVP"%#654#"#54&#"#&54326321P1\34P43\1P1X3/d^yb5I55Iby^(LL<.%#"&547332654.#52654.5473{\ePSCAH//(`:8QQ8P(=F=(S+(Zdkb#BMMA(1<0*"'B, '3?/KT.%#"&547332765#"&547332654'5673sij P RK5--8b7;J(B_PV"6/+Qi|k0)!Lh#$b9)8A? M! 0 < H<9%#654&#"#4654'&#"#&5467>7673632632ASD480"%P.29+$ZE{z PNi` -A*J=VWlk_Uo;U"#L  ' F!K47t*ml64#X(,#K2/+$OnP%#"5332654.'3bPDUP`pVD$8+);<2>J#".547332654&'#"&5467.546322'4&#"3264&#"326&@X`51^W@'OPOpuIB4e=Bc9,)3]EBV!&.1'%15+75'%/+<%#"&547332654&#"#54#"#"&547332>32632')o P QLIC -"*P 34;P*%( +Z>LZNQo ))!Nf^K]15."> A47 $>N><7C#".547332654.+532654&#"#"&46326324&#"326A8opDvWT hSXi-$<9/>>0&> zU[~ZeC?3N`I<5#654&#"#4654'&#"#.#"5&546326325I.79/! P%$'9=LCBz|R PLni4sAqh\b6;dQh,c_aO54&53 iPTLJEA^Nd#P#I2')Pxh*01N`]L:_MD@AH1:I4 6 ="-%#"&5463254#"#4&#"56326324&#"26=zgibDX?!P1#A6IO&-]ROPbGJ^a`zldfn=pI^`G/"Z3<OXPo"-.#"#4&#"632#"&546326324&#"26oB#.P!?XDbig{OR]-(MI6~^JGb`aW!0G``Gp=nfdlz2Tb<<3HPOFGPN<w#.'#"&547332=#"&54632537'5&#"32wpn P PMOM;YU;E[PpppBD%5/!I/xm+*)!Pd9@9:E=\GHhO4!"P%#"&537324&#"32^h|P^^~PQ?BVT@?\thwv~XQA@Z<<I%#"/#"&'332654&#"57'&#"&546327654+53232654'7/eCW5a 8t$'~ #L'78DMQ9MTVH+7>-.? 5{G.!E$?>AM_a+Fl&(c*) 4<7#"&547332654춮춮.'&53$!?)EJ(YPU>9S4]a66ad0;JX4PVV+5#"&54>7>54&#"#&546324'326c]%;=?&'&)C \BF<)%FgBD[HaoiZ+J0$ #$48')*AK^k%.&'5m5(AL[0=%#"&547.#"#.#"53&54>326324&#"326lZMg1 -&BR_XVS C^[-YYk#T?ZkcM7,-":6C[00%'7-C!FO:dGEEtXAY`=QR"#"&54733254&#"#&54632dbQl,F,H74>-9FdFKeKcjaP>=5E7I/@A:-4!&.FTUJ2#"&547332>54򂂮&#"#&54632RoFF9*:> '.8.5@FiQFg5.>(0cQ@8==9G&&@0&<(2C)-6;5PUND1J ]V$0%#"&547#"&54632632$4&#"324&#"326Vg^QpJ,A>QeIG^:2QLP9/.13*/ 9@B?D>?9`ziQf(T>HZUF=.{^=D0*9D]lF?Q^'%#>54&#""&546326324&#"326SF&-:7@(nrv_Q=8SQcC=GCCDE>s])t89P429\wu\_t==nS=RXIFYg%#654&"#&54632;F;@xA;F;mVWkpSNv?[\>tPUnWvv+#"&547332>54&+53254Ȕ!*, $L:Us F D<, '((A&C*BC2CUF9NI%cT@55@32632632-.F.,(SF'+(-F"&a #&&&CRTqN:L!%V#>%TATMUKX+Dbhg4-5)le)<&@.& :Q8bIII) I`'%#"&5463254#"#&546324'&#"32\]Zrm\K5urFiSP]F(&-@>A@x_ruZ\y? R_]PX!!`CB[*%#"'&54632327#"&#"6324&#"326k^F:=&%-A@^u01}OIZCn:w[B^V@d##](%#654&#"#4654.#"#&54632632I2K2:&%.3) $>0[%+.#"&5473325#"&547332654'53273WgSr,F,E9CX4V=;QE($!&,aK<>jp_R@;5E9G) 4;>B9$)("/H@1%#654&#"#54&#"#&54>53632632IXW>Q)%W;SR9B.&53R=@%97)+7:Q<#".547332654#"#54&#"#"&547332>32632Qqm;mL@cEQWK$$<#:%1=&F&#*(!T89#n+[=:/)@CNiSJR4&--+4+;0-$,%$))#@J9.:#"&54733254#52654&#""&54632632%4&#"326xfhA VIz9A//[kjmPf53aDMm76>65C?=;5=5E8H0$5u:N=6%#654&#"#4&'&#"#.#"53.546326324F446.$ <'<6jT-UP@. VGj]2{[9AfZ(C:dI[=QDF8O"3aq9 eAf (I31C ;,H[{+$Ok$#"&5473326=#"&5473326753a`So,F,H7D>>BJ\3F39/%C=5E8HWG2ZJPHEO0F% $/%#"&5463254&#"#54&#"56326324&#"32dX\mjZQ4$", 1 1?),C='P>9F;@??@A?Z}v][v:"-5-<22:=F)??T@?]^BC]*%#654&#"#4632#6324&#">KFKA9-S |Gi6#E95/Z6%#"&5467332654&+532654&'.5473Z9.05lE9FAAx~Qk=;?B;<(*  F'77'-< P4jr£XJ[eSOC,y??@;9?B?u=7.2518,#:v[]v{\yAS??)B^]]\%/%'#"&54733265#"&5463237'&#"26wYmQl,F,D9H<3Z=TU@J?=5E9GSKKP=?NP|~TonoY6#&78%#"&537324&#"2mZRl@{7ZunRdw`F`I#"/"'5326549'.#"&546327>54+53232654'7H/@&c+8VHM0*5.$P )11J9M#T 5}$=,] 33<[.:OqB*@F#=.+)#+I$6779LI < 5!':$H;%#"&547332654&+53254+53264.5473pVdtFCM6L $SREDST 6LL6AYI:'$*/&(-RKfcNM.4;'<5=<. 1( &/(+ 1$&/ <X=E%#"'&'5767632327654'&'53254'&'532654/54#"6XUC_NC12+V-J3@3 P4E7E6/XmT/;8H)1X+"l[6lSy-W@; 6 :+ 6)7@E5D8#>?*z3^EKDl&'567&5462'4&"6lWPQV1?iXXi=3A6`6ff 56jHZZHj63993Z..x!#"&5467327654#"'7#5!632 (rN_$ 'D5NY$!* 4r/=YL'6)/4A1"W4:#"&54732654&+532654.54632'654#"hXL^*!A1>FT<--%X5LL5NF"#A1g+ W(3##"&5476;5#"5476323#3'54#"35#"32OUFN^2/S\\0/MHSOOOdr$FNNE$=5dxGUXMO,(HM(&MEn4H|kaf>u@5;#I$*#IDOo#H%6 }#HzEO\o#HL%6E #HEO~o#qN%6g #qE0*#v*#vY#H'}#H^GY\#H>'E#HWGY~#q@'g#qYGU1(2654#"'7#!2+632#"'32654&+j2.. 'w| &)B9/Nalppl %U1# +2"&2#5632#"'72654#"'7.54632"32654&JH0 &)B9/N2.. '`n{fl5DTTEBPP'E-,1# +2"( %V~}Qp[\on[^oV.#@B'#@ZGZeT#Cp(#CTZeT#vp(#vZ.e#@((#@rHZ\e#K((E#KtHZ1e#G("GrZC#H)#H,I,g#q*&"qWJS#H+;}#HKS\#H+F\#HoKS#j+-|#jK1#2654#"'7#3!3#!#632#"'2.. ']w]] &)B9/N %U;'L1# +2"1+4&#"#632#"'72654#"'7#3>32#C)@N &)B9/N2.. 'S%K8LYSk70aP1# +2"( %U0'MBtS=#G+F=#GpK\0#K,\ #KLA[#vw;#vO#v.:#vNO\#H.:\#HqNO~#q.:~#qsNP\#H/:\#HO\g#q!\[#q"P~#q/~#qOP.#@/.#@OK#v(0F#vQPK#H0F#H$PK\#H0F\#HPL#H1F"HpQL\#H1F\#HpQL~#q1F~#qrQL.#@1F.#@sQ&d#C:$#C&7#jl$p#jt&T#Cp$#CH&T#v p$#v[i#vx36& #vS[i#HJ36& #HS]#H^5EA"HU]\#H5;\A#HU]\g#q`E;\P"B"F]~#q5~A#qU0m#H6""HQV0Em#H6"E#HLV0mO#H"#H0mP#H""#HP#0Em#HM"E"HQNQ#H7@"HtW\Q#H7E#HW~Q#q7gC#qW.Q#@7I#@WUF#j8AF #jEXUE#K8AE #KFXU#@8A #@DXU9#vU*Al#v+U'#j\,A`#jo-#K9 "KVY\#H9 \ #HHY#C:#CZ#vb:#vZ#j8:#jZ#H4:#HZ\#H6:\ #HZ#H;"HP[#j;"jT[ #H<&"HR\G#@="@T]\G#H=\ #HM]~G#q=~ #qO]F~#qqK?"jtW#IZ&"IR\#H,A\#H$*E#HD#V$*#VD#vn*c#v6/#C "C)#V*1#VP#K*#Kr\#@*E"@p7#vS*|#v;#CW*#CeV#V@a*#VG#Kz*#Kr\#G*E"GnZ\e#H((E#HoHZe#V((#VHZe#K(("KvHZ#v~(h#v;/ e#C"CZ}#V(:#VZeP#K(#K|Z\e#@(E"@tS#Vo,N#Vj_\#H,9\#HL&E#H2$E#HjR&#VS2$#VR&#v$v#vI#C"C&#V2$/#V&P#K$#Kp&E#@$E"@l&#Cb$5#C c&#Db$5"DKc&#Vgb$5#Vc&#Kb$5"K~c&E#Hb$E5w#HjcUE#H8AE #HAXU#V88A#V XU#CqAo#CrU#DqAo"DmrU#V'qAo#V rU#KqAo#KrUEX#HqAEo#HAr #C<&"C0\ \#H< #H\ #V2<&#V\ #K<&"KW\0G"h0G"r0G">0G"F0G"K0G">0G"n0G"n""ȫ-"#")"-"##q-# q'"V'"`'",'"4'"8'",0"x1"ȸn ","")", ",J"r J"tJ"=J"OJ"|J"[J"f J"x #m<"ȁF""""#q#q0"8"""""""CD"GN""TE*"h<"TH "^%#qT- #$q^$"h$"r$":$"B$"G$":"2 "ȑ20"J:"T)0"J0"J("X("b("-("5(":("-("\("\"Ȋ"@"J#q6$#$#$#$#$#$#$#$#"<'"Ȯ<-"T-"T""#q#z0G#0G"P'#'"=J#J"b""Ǫ$#$"V(#(">$#$#0G"r0G"r0G"r0G"r0G"r0G"r0G"r0G"r####p#f#l##p#f##p""""""""## #### # # $ #4$ #5$ #6$ #7$ #8$ #9$ #:$ #;#0<'#= #X>#R?#@#A#B#C0G"Gn0G"qo0G"iD0G"i0G"Ei0G"Kr0G"i#Gg#q""dz#SXSxG`B lGK dGo#j"H""IJ"Km\h#KY""ǑV"`"ǴSz#(G#*Gh"E GEt#K "G"qz"h""Kt#K*#G g#B"")Gs#Ȱ,G"]ȳ GCt#K("G^("q^(z"`(k"L98"~98#("Ka(v#Kc #G g#q+"5#w"Ȣnd(#jdQz#.j PC $ #P$ #$ "Q$#K$ #""<""ǘ<"F"LjF4#RP#vyGaJ.8#58HH.81818!518HH8!58HH8A #54673]0-00e;D&N@ 356=#@]]00e{&M@h 7356505#A]^10he{&I @ #&=00]hM&{e0+ #54673#54673]0-00]0-00e;D&Nhe;D&N1. 356=#7356=#1]]00]]00e{&Mhe{&M/,h 7356=#7356=#/]]00]]00he{&Mhe{&M1. #&=3#&=00]00]hM&{ehM&{e&O ###5353XXRUR&O#3##5#53#5353XXRRR3R2, 2#"&4{hIJ34IJ52IIhF,0F|}Whsuh 7#5!#5!#5hhhhhhhhhh  $.9C2#"&46"2654&%3#2#"&46"2654&%2#"&46"2654&?WX=>XX=%56J55(BuB?WX=>XX=%55J65B?WX=>XX=%55J65X@=XY|X<5%&55%&5F +X@=XY|X<5J65%&5XX=%55J65B?WX=>XX=%55J65?WX=>XX=%56J55(BuB?WX=>XX=%55J65X@=XY|X<5J65%&5x&FE>EA'F; E <,!74&'5>=4&+532+53265m",,"%.49$.R94.%VE< E ;F'AE>EF&x>EA'M)#","M %)#'#5#54>54&#"#4632#5'ST%45%Z%54%F:I8UolatZRhh.J1-9 /7%B00=#3?RJswhhh| %)#'#5#54>54&#"#4632#5'ST%45%Z%54%F:I8UolatZRhh.J1-9 /7%B00=#3?RJswhhh0O ####532 mb@R@9^^LJJ@E4 #""3265*LIZ/-inU[g53#5>>-::0Q #533##=м.CC>; 5dF#632#".'332654&#"#7.&.BRXE%98I/56.1#4"4wO?CU, G4./7(?$4>32#&#"632#"7"32654&!.)5D8?14&C=OTA*45'(308W1 ;4@SN/L;>Q1()64(+1G #>7#5G$=QR,hm4I*#"&547.54632&"2654"32654NVCDUN#M<=LJH++H+$V44*,4"H:IJ:G"'1@?2&$%%.%&..&%F$#"&'33265#"&54632"32654&F!.)5E9?14)?>NTA'30(*558V1 ;4@SN/K<>Q.5(+23')7+E(8{8Ft*Bu8Q*F *? 8G *I *F [|$:EM%32654&/.5462#&#"#"'#327#"&5#5353+#!23264&++4E7C&+N]InbXf3<.3PNFuc:V'14GGSq[]-luOCKKCœ/7-%" C>IWTMT+$# E:LZpDF+(D ]qoDxD]$=F%32654&/.5462#&#"#"/#&574&+#!2'4&+326L5E7C&+N]InbXf3<.3PNFuc10q:>]Pks6+LCJE/7-%" C>IWTMT+$# E:LZIOLF0GAC?e^>RH6<<X %>73#32#.#!#V  W jDWCT@W*WL :@Qw E-W)"#73547#7367632.#"!!3#3267Y1S7O?3Fb^ 6I(@Q&$E=M;;_KeCP(_d;;$]/!Z$#5$4>753#.'>73'b;(6N0;lh_8CL=`oy;YP~hd"=H;;*64`sG9DanT> !r{326?6323>3232676;2#"&54?#"#"&54632#"'32767+"?6?#"&54654#"+"54632%"67654#!'\&jaG14tIc9#U( <^$:9L@<.yAP9K0#!$ ?4d+HJ VJ3.)%4$ i'!&j3bP0@73% Տ@6FI?fE3K8 FD60TkY[)& @">YiyW963 kUpD+-Oe27&#"7>32&'654&#"327#"&54>73254&#"#"'63232654&54>7>58A �*-0Me4(,6 # +#$! &#.4 Q`K N (2$ %D0R  +' W,!+-"p)EG,,6 0#"0(9( [n?A1M+ S+$!7)!8: J>74632"'326?&547>7632>54'4;2#"&>K(DO4Exs"32#4&#"#".  4'!?,<,70; d2,% 6+- .24-6-,# ')#+#N(-.,)5  %<+4+D.@'G AM,4, *4!J2,U;S*!0 ;)"+ F7L$F!&"  ENV4>32#"327>3232676;2#".'+"546;26?#"&"327&"67654%Y:!O`O7\gZ#,-ΰd=dnG1x" M|3'O/'fRIQEWP:V c}11^:H@&U/5sK H16Lrm:)$]U=B/KD2&1:Rz@$ -m%xC.3L##52#"&46"32654%##3u>YY@=YYfN87&(8iXe}HHXY>@XZ|Y98&'87(''OT (##32'3254&+& #"&54$ 32654FEHPŁK#(=<ᢚEG<:G?C# ߞ✞4j.7%#"'332>54&#"#"&547&536324'326*L2m2!'8 1B ?,0(,0/+(((2sJU9!.ZR3.<'BD%IX$-M/$7\30CG.iWDj&@z>X8YG!w 2>54'%32676;2#"&54?65##"&54632#"'326?46367&#"3267>=4>32#"&547>3272"#"&#"6dDnnp*"0>+ "K]/ " OQ4""J>U;P/#!# >3;=[<{j@7BF%?&  m1&:8=vJ2 $  m y@'U%E/(+0i(GD2#qHnX'$<" wU f,wZO4 615 K:D()*H)/?NV/ o#"&5332654.'&=4>32>7632327&/.#"#"&#"#"54654'3>732>54.#"">54. )!& +; 1.+E u 5 '  $+ 2 !77M 2)'$B0&/ & ,3/ U (6()* %@;R'+&#68$# /wJF!% 1:7  [W~@1 1  10"HL;Uk98( )$F; %.!?$##5!##33#Dw6FyC^[C~77UjKU4 ti"#"&54>32#"&'"654&#"3"&54>3232732>54.#"#4>7.'6732654.9D0  1Z9FQ7S[06%*3& !8 .'++' 6!!  +J.S="1)! ;QJg %@j!E-! 2!2D8(.\=Bl 4Q-*A%!* .!<&%/ S7 / 4D7'n6  2[G %-%O."mx74632"'3267>7&#"32>=472#"&547>327632#"&54632#"32>54'#"'#"&>54'632"327&"/"!$( B6;=IRL?yo96K:uA `5,7<" yVgm8'xQL5Any m5#7.54632677'#"&464'327632#".##"&">54&5467&)!!/2LTs^V*!es!  &L'D1>A  V %P?(85BQJH  CT!$N% 5  1aE 60!v/'* -$+-?#+A  Y Aqk^1'+.?Q0-Zc74>7&54>2#"&54632#"32654#"632#"'32>54#"#"5>32#"&4#"326-9WGazRe3&Y* !D-#S|+X<%3$?%3R.N=1Y6 a'N _1##>zJ216o+X P ]+J>TP JND3/.@:9^6 =n+/ "2OF< 8!!!!#"'7326Yu2[H %8!$ %*RR1+ T :ZC 3!5!5!5]L'RRj7;>7676332>7>?6332676;2#"&547>7#"=>7#"&5463632#"'B: *Y:s IV<kMH* v-/G-o  Gl'+-?IvF-47B@Ca"Z7!.'>7A82%6/^66^/6%28AA82%6/^66^/6%28DCF @6a00a6@ FCDDCF @6a00a6@ FC!%'>7.'>7.'7DCF @6a00a6@ FCDDCF @6a00a6@ FC]A82%6/^66^/6%28ABA82%6/^66^/6%28%0#654'327#0#(t1 X"qS@(Sq"X 1 ^&@ ^"+ ^&@003!&'7'67!#082y#dd#y281#ww#12#!&'67!254&# NTVI2y#dd#y2}i36G;DD1#ww#1Q#+-"3!&'7'67!"&54663i}2y#dd#y2IVT3+#Q1#ww#1DD;GZu3!'7!#7[nuTpoT !67r#y28v#1 %!&'!2y#1#v8b\ f\@#_G g8@  g- f8\  gHr@ D! f r@ X& jV g!!!.'>7QQHM)B\[[\B)M~5PP5b!QaVVaQ!b'7'>7'#'#H!QaVVaQ!b5PP5m)B\[[\B)MHQQ-'7!5!7'!5!'7)MHQQM)B\[[\!b5PP5b!QaVVa,<z.'7373!QaVVaQ!b5PP5)B\[[\B)MQQH!'7'7!.'>7!7'!8L(PXRRXP(LL(PXRRXP(xTToT}_"`^KK^`"__"`^KK^`"VVV'7!'>7'7.'77'7H!QaVVaQ!bb!QaVVaQ!bPPPP)B\[[\B)M(M)B\[[\B)M0QQQQ /5%#"#".'#".#"#52>32>3232>&'7'6`w:<=92), (#7A>9;<9D=5Ag2y#dd#ygNc bP>I>"854Oc bPcc//1#ww# 73#3#KhxcMx'N+%2#"&54632.#"#>"32654&#@G3!ez_i:QL.> X k]@JP=>RR3R^hc~O83WbSGCW[DBSZT !5!5!5!!5!cdLRR'R/ # 32654 &#"#"''7&54632JVtWqn$G\טfM%MYטh*FJuIq#Gg[N%NfY 33 ! &d)'h !#7! d3Y'q7h!".546;#!!;~Es\3m-IP4!FyRFF;Q)F7!33#3#;#"'#7&54677#?t7}B76Y^E7%u.p }AGFFF[tM b-74>;#"!!;#"'&-&5B1*6. l -9%qJ$7W1 6 B/62C 6j27g |Ig7&3#7#537#537&'#5323&>7t7%2ZqD7[q><2DP?4 >/H@'tNQxF"<32#".'&#"(%%*#`$$  0-H*. l$`#*1'C&&D'(>    00+K""J,00   >'u '7$^P.!It{+:>32&#"3267#".'#"&54>32.#"32>d+)H!+.#*"% i)" &6$M,#g7"9|'8I2>32#"&#.'#"&54>32>7.#"2654&#"1(' --='<N9 5* 3I)9N;3-1$&(2)11-1)3'&$ $#!0*5Y0!Y5*0 =  ! ^dH! !0Ee3VSZsS BLd "  d V" #  _  6%654&/7#"'732=.546754632&#";P+%U$- 'N8%<>! ^(: BEdH! !0>H W&<  >/&/ zJYpEe3V ,6+32&#"(GPY!|)(%FLYb0/P//K "#>32326=3#"/&/571u590'*bsNFKE!%:E?( t@-327#"''7&#"'632p2d% G(-G3$F%()| + b+PP/t Jm-&  E- %!#7#537&#"'63273327#"' 6K617F%()|$6JKY2G($0"FFv"PbR$-&  -&033#3!#7#537#537".#"'6323274K *$K$*e$YLF%()|!YPG(6 FfFVVFfF2//P/0b- +3327#"'3#!!#7#537#537.#"'632{K= G(+Kt+">$F%()|8" b6FfF88FfFP'PJ-&  n-/3327#"'327#".'#7&#"'6327.#"'632v5G%G(%& JG(5!:5EF%()|'@F%()|*Rb\)bP ^$P135$"#>7>2#.'.267>73"&'.'3C[Z# Z[Z "Z[" [ZZ # +5  5+  +5  5+ 2o !5!52#"&546&$$&aFFFFk%4$%(2%!#7#537#53733#6K6*3K3*FFfFwwFf(Y & & % (  %!#7#537#537#5!733#3# .K. (K( FmmFKFKF__FKFK- %!55% v8CC3EOO- %!55-5v8CCxEOO- %5% %5% vvEOOEOO-  ?367>73#.'.#"##7#>76?&'.'3323lKE+" %?&U5 "Z-FKC1# (D&Z8 #Z- +5\5+  +5Z5+ - 75%737'#?-&@K0hJ0K;/E|r,O;ZOhsApA-3#75?'57YK@]OjCCCCBj>-!!#7#5375?'5737TSK.KD>GKR$yElCCCC=OKfOtAT1.".#"'6323275% $YLF%()|!YPG(v.//P/0bEOO.".#"'6323275-5$YLF%()|!YPG(v.//P/0bEOO-752$7&$-|mTqgkxIfEs\OL@DJOZu- C( [' : ( \' : -752?367&'#7&?-MK651\;!3R3`vGKRo "EK#)OTP<4OU7)-33"#756?.'567&PK[qeCK+3.Z8#2Q2^u$ $*EMe!'OQS<3OS7]7X!".546;#;~Fr\3'IX9DwRFB\2F7X IX733#;#"'#7&546;7Xo-0BP? 0F99FbJ44FBFF߄6."3!!#7#537#53&+532654K@G^K0Oc=nyOK/F::F.F(F-tV( !&'67%3 &=33265/!RCffCR!pHHfdK&!fQaaQf!ƃba4,%!!!!,MGPH |B:' = B:' ; E7 =-@E7 |+ 33##5#53$264&"6  i66A66^M+ !5!$264&"6  ~/6^M+ 77''76  264&"''''╫'&&'+  '264&"6  H&`>&`JM+ 2#"&546$264&"6  &$$&%4$%(9MLq"!!#"F"F"D" !l!#!5!F}&\F%!5!3FFFF\L"!!#xF"F"L$$ !!!!#nnF$FpF8>>-5%>H}>>7->H+~>!>' \ >%>' ` !##3XXM = =%#".5332653M\^MRYaRL``LXS W. 2#"&546&$$&%4$%(@m 373'7@))j(ii(6||L}MM}> ?'%%5H%%ݚok Bk( #367&'!!#7#537ȏ7K53.\:$4S3axV5KYxbnc5 !u!'OSP=4OV7F77F(ELx( $33"!!#7#5375>?.'567&mK`h]UkvK#B=<75I)9V6f~#$EDF77F&.O06C>7OZ8YB:33#!!!!#7#537#!!K3:^']%K%,P'wsشfGHNFJJFNVcB:%!#7#537#53!5!733!3:~$K$+O.}y-K-4.FFHHF\GcHZZ\c' # 32654 &#"#"''7&54632JVtWq$[\טfa%aYטh*FJuIq#[g[b%bfYb!##bFFmHe##5eF'F_|333_FmFIf)533fFF4 4632&#"dH! !1ZsS BLd6;&#"'7325;%<>! ^&Ee3V#pI %"'>32.H:/*7W*.-/.7I...#pI :223AA:.'7.33(4;$#;U$  !"32654&'632#"'#57537BPPBDUS9ihx|hk;K??SBoooY^p~VZC2@2zN3@T!5TPP|!5|8   8@8D   8@T 0#5!0#5!0#5qq}}TPPPPPP| 0#5!0#5!0#5qq}}|8   8@8D   8@T 0#5#0#5!0#5!0#5TTTPPPPPPPP| 0#5#0#5!0#5!0#5TT|8   8@8D   8@8T!!4P48|!!4D\8T#!0!0DD\P8|!!D\D\8T  @8|  @8DT  @8D|  @   8@   8@   8@   8@  X  XD  XD  X8 3!!#P4P 4P48 3!!#P4P \\8 #3!!#(4P,4P48 3!!#P\,4P48 #3!!D\4P8 !##34P(|\D\8 33!!(P\D\\8 3!!#\ \\8  X8  X8D  X8D  X8  X8D  X8D  X8D  X8T  @8|  @8|  @8|  @8T  @8|  @8|  @8|  @   8@   8@   8@   8@   8@   8@   8@   8@8 5!3!!#P4PP4P48 %!5!3!!#4P4Pܠ4P48  3X8 =!3!!#P4Pܠ\\8  3 @8  3 8@8  5 8@8 3!!##!5!\(P4 4P(\8  9 @8  9 8@8  9X8 %!5!3!!#44Pܠ\\8  =X8  = 8@8  = @8 !#!5!3\\|\\!5!5PPPP|8l  B 8@8 !!!!#44PPPP|8T !!###|lPPPTP44|8 !!#!#!PPlPl8 E @8lT D @8l F @  E 8@|  D 8@|  F 8@  DXl  EXl  FX8 3!!!!#P44P PPP|8  3!!#3#P|PPP 4P4|8  3!!!##P|4PPPTPPP8  PX8l  QX8l  RX8 Q @8T P @8 R @  Q 8@  P 8@  R 8@8 !#!5!5!5!3!!4P44P4P|PPP|PP8 3!!###!5!33P|PPP|PP 4P44P48  !5!33!!!##!54|PPP|4PPPTP|4PPP4|P, !! 8!!K}825!!285!!8,!!, 8!!8&!!&8!!8 !! 8k !!k 8 !! 8q !!q 8 !!  8w !!w 8 3# 8} 3#}} 8  k28 #'+/37;?CGKOSW[_cgkosw{53#53#53#53#5353#53#53#53#5353#53#53#53#5353#53#53#53#5353#53#53#53#5353#53#53#53#5353#53#53#53#5353#53#53#53#5353#53#53#53#5353#53#53#53#532222222222R2222222222R2222222222R2222222222R22222222222222222222d2222222222d2222222222d2222222222d2222222222d2222222222d2222222222d2222222222d2222222222d2222222222d8 #'+/37;?CGKOSW[_cgkosw{ #'+/37;?CGKOSW[_cgkosw{53#53#53#53#53#53#53#53#53#5353#53#53#53#53#53#53#53#53#5353#53#53#53#53#53#53#53#53#5353#53#53#53#53#53#53#53#53#5353#53#53#53#53#53#53#53#53#5353#53#53#53#53#53#53#53#53#5353#53#53#53#53#53#53#53#53#5353#53#53#53#53#53#53#53#53#5353#53#53#53#53#53#53#53#53#5353#53#53#53#53#53#53#53#53#5322222222222222222222 22222222222222222222 22222222222222222222 22222222222222222222 2222222222222222222222222222222222222222d22222222222222222222d22222222222222222222d22222222222222222222d22222222222222222222d22222222222222222222d22222222222222222222d22222222222222222222d22222222222222222222d22222222222222222222  `kk8  nk8,!! , 8, u,  u8 !!,  8 0!!  8  x @8  xX,  u8  y 8@8  x 8@R!!DDR!%!!XvDX2DR !%!!!!XvDpX2D&pR !!!5%!5!%5!!5DPD6PPPPPFFpFFR Rj@,d!!,pp !!X#Z% !33#Z }$% gg?gg # > ttT88#"3264%2#"&546x|ّԕ컵Ք՗j "32654.'2#"54$㖛f`ck2!H >54$7654.''#"547&'#"&5475#"&547&'&/.54>75&/&'67.5467.'>7'>54&'_nlf  "V:%!&+Oh'0r2z1=C] " $T3 !58z2r/( !O;*'!'6=B@=2$)r~~o00!"(pgpoa6WY.(_0~s* jlA*S78v=?A9p .F%"$|'|  &"AD)p<>@<"D_Q5;R*2`OK<8)' j /ec  ".9!.  fg WVto"O,%!5>7#"&54>7#"I!  !4R5K,FJHGKF-K5R5&!  !&5PJ5-J=BkCBjB>J.5J#7.'.5463267632">54&#"#".'&\Qm<+U>U22F=W6E1='57I. DJF.84?/ 9KOY/?VK,6"8T;8pW/F4%KFI_N&/hX[c/398 /!*J"0 &'67>7.(8F!JE;;8-0>P<6jj1?0#5!5>7#"&54632&5462>32#" ".F--F/! O&@\S;""']]'+;S\@n%%9%./$:#,"(_CA\ 82?ZZ?28 \AC_#>32.'.54632\Y6=W5QTMQm<+U>w0JFT;6phiBKOY/?V"0 &'6(8F!J0>P<7"&46323#54'&BZBB-6 T&\%..J.-7mC88m+c~Vx*i267>7632327"#"&'&/.'&547#"&'>7&'>323&54767654'4?&54?&5472>54'#"&'"#"232?632#"'%>7.#"327'&547.'&'6324654.'.#"3263232654."#"'.'&'&'&%32?6545#"'>7>7&547267327"&#"#"27>32&#"454#"#"#64&'67>7459'X76z't ! 1F(7;]Z! ^ m* "G0Z%;7 1o?>!lj 00,  2  qtUpS//IM'{x5l0"!13@!!7(_}=%.** "! 3"## G6 "*$     !"Qp-9/*) (j=TG&:)Q   \  ' U*" !  ) %$  -# 5%:1a'3[?' Aj )V 5z3=Gva1!4A)>_` LX*&^6- # BF. (.In7/-R .K!9 $ 7X5j$ X 8w5$&< '" .6*$3  %N2S2u ('N>OrC2 ]:X1H(S?: U"+& B8 " %  -   QwdCScz'32632#"'#"&'#"&'.547.547&5463>32>"&54>7&"67.'&'&.'"#"3:32>32767#"'32>7&'"%32765<54.3254'&'2654'&'72654'&#*#"4&#"632>4&#">36">7454.4&#"326)MH(AP_TaZYM 120/B,)KG*?R(5 01[bJGE21*E&'2%#1?0 '-["t=f?65L[F _;_ H`iy+#I8.#<:P+*]MM5 /,E B-D6)M $Th',E/ '*a ,S[G ;3 HR_ M]d|*$G7.#<;Q,!KBD7443pa'"(('4(DF30RJO>N!AR308)3*\O 4"9+(F.P!5(#'  #&mq #&pv ='  =%#".5332653##5#5353M\^MRYaR88L``LXS "88( ''7'712212211.575HTHHTHfXX/".fk.?^/7tDrPe62"&46"2654T<V==V&/"!//!"?]+2#"547>"54>7>32qu S -~W4gM"*38 b#$%67#547>737#".' YVO~T[1H"  73noJ:[*Z~sj <**  sH"G+:d}k!"3>54.".54>326yjEeV]Y@xN !<,A%8Z]8y"|Y{'2KP-d2 '7'Cd]d-PqKDN670#"327&'46747#"H32?676327'>54'#"& 5?4! ,R6HBy[: )  + :A 1ly9E627&>O%8@7eOo]O6OA2CLEB>\OeEP=M'0>A X+?4)N#:jM3P+" ??Dz T KItAP67&#"327&'46747+7232767676327'>54&'"5#"&HJ ;*3bAXBd#GF . 98@Dx`A#KF";7/H^*?J>v^@GzQ ?XJ6JRZTn%"_{S_LY*-\A:t j5 ? P']#I{X9[1' ? LQAcS/ SQ$F %4&'7'6.54767#C3($A; .?,)9-!W^X'<@h<'g-==H!SNVnL/KpBI%4&'7'.54767&P3$#A'"5?35*9-.lmi('>Df< ( c']=aYbRIL'"'>32'>54327#".'3d_S{MJk7SB6vFi9" +&=(&4N,M0+="9="Ax,$&?829%x#A:"""'632'67>54327#"&'vTz?aIC}8M@cCSA+<J$EcK9>=&?F'L0,(>'&3p*G$A(1-5%"'#"'7327632327+"&54654.'s!+AO_W VOi{!AN))72t 1N=Qevh]WY1 A=>/&,3AEA ( 2)A+Pb@)1%'#"'7327632327#"&54654.'lkj+Z[lf AY Y.,!@3 8]Fbv}g:KM1@=5*1 $:#@KJ 0 .A3eV7.254&5'46747&'76767632#"&54732>54.#"#"&2C3@FQ>R(pyU3y h>A2t |:}YiePE ? 4!(?#%J1V2/2M93"))3CW >Z >z&5bAc=@]?)V,nVT~B,0*$- %,0M0C +V [.'7254&'5'467547&'73>767632#".54732>54.'&#"#".X-2E$#+]e[TAcE ?@F Lkzq)G9? ?';U'.%!2} 57";08*%: .8jL-h#%'G,8f@"5@f85~^_:-80,@44  9^2H%2w*F%.'7'7'4&#"'>7#"'732767632#".'732>B")/-LB7#"'732767632#".'732Y5. ; 'n73'E# 06;8>68.@$Wr!7X/-#"@*o9*%': ,/kKM8'?|??S:Fh~c#RE}I@ TRm["f 7'h@E74632&'#"'7327&'#"'7327&'7>767&#"327#"&ڕ6E*&_rZ}JVI-%(>|iH' >$#DWF&PA0^SCvE'JKbFAu0vH )- @ J,A9v;>* =33>/3S;�, <14?zcZ7.7."&=4>7632&'#"'7327&'#"'7327&'76767&#"327)7(< &o:' <;YEHKCN8'bh}\gL3--AtO*%?!CM+_W/n_JJ*zH7?iGN|9&(&:%(H)J17. @ T0A<}P2>. E96?/3b<)&50%M8?<.'&54>7675 >a/k3  < Fo8sJ>5e$2c.n$ <&= P SCAt^17.7..'&54>7>75. ; 'n9*%': ,(5k._6'="I 'oJJ!MGv)C"v'4%>=#"'73275367%&547AAH50P B8,A)_d8! "&'*)3#@" *'HWC^+@õ >! &Ut. Yu n1qWVZ97D7.67676=#"'73275&'67%.54787(< &b-@2;b H?0A<+kfD#7N. %A&79&(0)R=wr(@ # #! X "=#'73277327#"*r =Xw {J[.d,$D )7@@A %#-7.7.".547327327#"'87(< &o:' <=mwU7$<ʠ_bbM~1g9&(&:%(Q%B+%ZN -=A A !074632&'#"'7327&'767.#"327#".HF4+(2e `*@FDF(;'Z~* 2h.B6,-z'8Y!?#3ds}D7.7.4>32&'#"'7327&'767.#"327#".^02; 'n9%=K7ZDRUH(,5v K%-A[JCI-'`Br`8hFRQvD9+'':%*'UG/ ^n@Ey vI+?.8gQ45/1S3,:d$@%7ki'%4654&5332>7#".A):3,FE:+5!%,)3:.WU4%@@"4P. 7&'46324&5"#"'7327.'767#"'73:32>7#"&/F,"- a+gMF5 " r*A Z j\FX"I@DT@ 6,1!3ea<A;) WbdY7.7.32>7&'46324'#"'7327.'767#"'73:32>7#"&9&< &o6+ <`L3%2 l3+CmTM:.{-@S kRF9WTH 8)./Qm+9%'':)'56.+'E1%K]({@'%K"@"*("W'A!D/ ]_ ]<254'"0327#".'&547'76763&532&"'#"'7g  =/NR(cU/ AA6jf20&nN-g#6S|z1A28-Jt1AEAF|EdA4'ZM-< ?R7.7.2654'#"!263#".'&547'76763&54652&##"'7L7(< &o:' <8 W`/gX2dA@XWp8.:-ra9&(&:%(+B'@!?5@5;0I|< @MKv2G@F#R\1<*Rw).547>7'%"&+"'73276323icL/ - U DN.bO%;'.G,R 1?@?A+2W04O.1H7.7."#'#"&+"'73276!2.54>7#"&5. ; 'n A ?A#-:$*>E"@(-:"*H1* (f 7%#".'7327.#"'632%&'76767'>]J&>) ? !7/G>\'!a Z1-bB 1_f/ A 2rwI#qx#- .E7.7.#".'7327.#"'632%&'736767'>9&< &o6+ <ۿOAS1 ? $=4MCa(.d p&.nG gGX! A OfKEJP8n^9%'':)'r7?6 .+) I A J@]uhc>&̉#~e46%4&#"'>7&'76767#632#".'7326$jAm++P> {KAb)XOX*ThD{P/Ql<&7MIDPt1g:}('5DP@1eq%0?  |81JU&5R+=P`VF7.4&#"'>7&'7676?&'#632#".'73269&< &!rGt,#9/ L FAj6+ <Bm:81oJU11QY0( ;TOKV4s9%'A,*6=_u>@5om7,")'"PW?4P[)*H/=ZR!"#"'732632'>7>54&bXcB i1g&@+,pHB=Ib&7Li/A/W-N5 AU,7|b%"#"'732>32'>7>54.se;987]b2OC!+=#3ONJPs,@[1d5AZ~>)L2/ Ad4&`NjR67.7."#"'732>32'>7>54.37(< &o:' <n?<>=P~@V.}#/@(6YRMZ}0Fc7m9&(&:%(9Ah,Q72 A!n9+iTZ4675$%.@zX; c!*OSA[v`+`(A@'IQN8+@-$?*B_a+7.7.4>7#5$%.9&< &o6+ <L8WJ!ΜN k$%YjZaxk19%'':)'G|R0@@*PXU=:P7#?)Ei74>7&=767327#"E0!AE K==|<ջ.T82 }n.?/]\D17&=367327#".02; 'n9%=&5J5$AP hf!=A k}?9+'':%*U2Z<5 u1@"6B)295B&A0Y:U/4N%32>7.#"47&'72#"&'#"&54>32."'7367>7'>SO,% !P/+|Y*DtG !?o o%Pk!?(8!B6//  2 AA'/ A8?wA5 )/! | A -H C(E1- ZGBgn soJ,A-*-, @ !+,@ @ya U%327&#">7327&'47&'76?632&'#"&54>32654&#"'#".N?-@%W2,< U0%ALO"qA@ Uk$? #Hm?& %F)9<_>n#3)F]yk+*281$Sh$8389#[GU?e7mb\Snd6x o**?.&;RK*hX82+SK7!1 >AVhB*)&7B1M R%26767&#""#5'>7465#"H32?>767632&'#".54632654&A*:Gb-y=lA.d6SBBZZ@A)R ruW^t":$D g2 *1#G7?nN+'!6ls 6~$%v4> A : HL~^Q&6,/B 9&6N>CL]U %24&+#"'&54>32'>3276b .7N-H%(7HXp,P:Ik{^ 9G%32767&#"".5463&5465#"'73276767&'&54>7NR`yG'7>_/ZG>?XQXME9AU H: f#M BG AE! @%6/2<5|_ +  @}<8u? Bty A70 &/;xObgSw9_KU7.3267&#"67.'4632&547#"'7327677>3&'#".&54;5. ; 'UZO:N+<v: # GbJ\t8ID|qJ>E@E@`Z5 $O6Y3# b1A2&&3)))L)'F 5?;buA" @ CM?@ L!zT71m'0%֪we,r/".54>7'6732>54&57&'.YW6=eK(a3<=9,j54'77.'&'#".54#'27 B7(< &KmG+@ :' < Cg9\35f^0]\90|%)..-)#*FK9&(.5a}T* '%( !u?/]@7A= &)45>=CAE -A!UC"2642>54'754632#"'&'#".54#'27 {&&KmG+@,&)*%,h9\35f^0]\90|%)..-)#*FK&&d5a}T* t"()8*u!u?/]@7A= &)45>=CAE -A!@%,%.'7>7%4&'7#"&'73267.vI:I*M@LUH88?R^l{0c#4)&aX%MS ,0]{$STxpG@1DLv-Fc pN1M9,C0F .?56+Al+mK78F,!>F7.7..'7>7%4&'7#".'732>7.9&< &o6+ <GJM+=2C7O]M>9ETi$q0EC$, @,'bN%TY*0c$Jd+Y9%'':)'NqYB162ZX0Lm!wR8Q>,H#O9LE3@+ 566<...+tS70R2,#@H"264'2#"&46.'7>7%4&'7#".'732>7.&&-))))GJM+=2C7O]M>9ETi$q0EC$, @,'bN%TY*0c$Jd+Q&&2))):(qYB162ZX0Lm!wR8Q>,H#O9LE3@+ 566<...+tS70R2LPm'7>32&'.#"{/b $$-"?>,E'a?;*UK%2%%J,l :3X-_621dH&( +837.7.'>7632.'.#"5. ; 'n7632.'.#"&&K:)))07_15$FE2G*iD@*BCm,4L3' K-$&&3))),7!D,J3sI*9B\LPg'&PL%$$-UptBV V5r: @"l4&*:>_/V A"&)62=-0 A A@?# >$ M"P7B- %6/b;xObgSw9_ Xb7.326765&#"46324&=#"'732?2347#"'732767.'767&'#".&54E5. ; '#J12D }Q+ABeMVr8AF400Vy EH 0J./ $= K :".6Y3" c1A2~9*%& &'< 5@3(@FA#@ G :!,?% n]7Nz(0$֪we,_ \f"264&326765&#"46324&=#"'732?2347#"'732767&546;27&'#".&54\&#J12D }Q+ABeMVr8AF400Vy EH 0J8&)' K :".6Y3" c1A2m&&' &'< 5@3(@FA#@ G+)+?% n]7Nz(0$֪we,X#E Z732>5&#"7"&5465;263&547'67>7632&#"67&'#"&54632.'aE+.TS=Nbj@ P:KkAJ%r9T+] E\"X*/=#`pZQV)~G- >P1 3FE@JEA@O/ @' &p8`('9m7.9"m C32>"&54>767#"'732767&''>7&'t;F0 "5"%1 '=mF'BSf!!!]v3J&eA `992OB; *N=/ h -3N9#:# ,(0,$-=5*_A$5] 25s4 $=5QB*!811I/88C:'N2U.'7&#"6'267#"'73274'76732>54'7#".547#".54>m*7"=4&O ! (%$dA3&A:xF$2 @Lŧ?\.),%?-"7$9KzJ <%#%KAUl^^ &>* \,s]"4*C UAR/26)<0.F#a%F>7327&'".5467&'76?32'>7>54.#"'J< T0%ALL&pT,@ WD @Yi$? KwI0P;/S%/`v$ 1RU0 5'81$QLT@g8l\eS6Q@T.$ b3,q$9NK(U! A%c4=W-cB*)N'<"&547&'7>7.'7676727+32>54'7LwCko1-b SGA5c v4!E A{[,G) ]3%!$ %7_$  *<''):*Z^Y\@@ d+4);v(./V)7G9(eL1.#"&'&''7'7>7&'7632#"'7326 ^H ;VC3m=i !W;V<-7-F40MSq4?uk3GnT 3,&&u-GS7X!2/?(iL5^1,=(\)}4.#"&'&''7'767&'7632#".'7326</N.((;PjCw<{$!g;eP^J,R"=86xY[="Q*0z>S+/ #*/#!;;9Sc8h,+E0L.2`9;i:=/kx H%232654&'7#"''67.'7654''&54>7>7&'7] ZmTMޓy7!h-$+;0?+H91%  A?2BGYS3Ak|nmVQtH$eq:L7?(@</)2 T26!)08=EI(^,>XęGoG4 8:`I%2674.'%#"''67.'7654''&54>7>7.'7~m'M2JC#&S17!19J!: !L;cJ>+% B@9@ߤ@ y~h.F8+F7v恨?!7P-eI'"d&T $3@JSX[-MACbݜ%Di -%26=&#"'4632&547327#"'&'#"&Y-EID,FRfQ@C A--K_ a[*,R)CgFV|.; "Je5A_Zx^?o*3j'GSoW3E 1%2654&5&#"'4632.547327#"'&'#"&B8QYO8QbuXIUA =0[jy_54d(JuRc$;E''(Z|32#"'7327>54..'7U%VLP?;9>A **0.55:7L=+M;UgM1}D->.C:RI-OxDB(33/$ܭw  ,P3A);A/ m0';  (&A  +844.#"'&5467>7632'>7>7.,%&"C (>##>T*!032#".54>32.#"32674654.|E'=IBE7:n~ M17Y4# oF.H) "2(':>  !G:X%K}C]6 @;!)$3>1I}B(1% "3 '54 E),={?-6$M<"#'465#"H32?>76323267#"&54654&wA6BZZ@A)RۍJ^* @1 "7*><&f> A :3gU4&7CL .92":D--@7w(%4&#"'#"'7327632'>7>5oOPˑ(=IBE7:n~ ǂh=c9''f=?=;[!/<.bYT4 @;=#3>0o`-?'!WUA"&5'0465#"H32?67>32'>54.A7?7>BG9A )E@4[p ',034A>8* 8bL=M%5 1 A yJ#;s1=]3*$ = "%546#M@"#'>75#"H32?>7>32'>54.A%m6SBBXZ@A)RAWg~$,37;;A?:2%#;($%v4] A :%3[i!:/*  > %)616*8 N%3267&#"3>"&54>?'67632#"&54>32654.#"(/" .V7T .LbX+]--dCJh);1#N.(66lIB@7X0 p4=#I -2K)%J(\H3ODI" A 28wWJQ/!2 EH!@A( ih#k* %a.'7"67&'232654&#"6&547'67#"'7327632#"'632327#".#"'6w10$*%-:0; 4@ l-#0#/6 "A.b/#6 A.''lQ'%M'B6&5 A ?wK.,l U #+#[1$#+#J8pwFE"'67&'7673267#"'>3267'54'$&54>7& 6.+3d n:!@! BC c*)-7&F&\Q AFc-9[ok.+?J>~7#"&54'"'>70>! GG 1 $%/-4F5 SD}03lPG;M!+:;B9gM$E"* %%#yu<<~3(: !P7.7.L9&< &o6+ <9%'':)'P 2#67>=767 '2$3'(#4Aw>TT]v]*N99 @155-HW<- *CAA/A!InGJ**H&7>54&5767#52%',&! AOx26gH B73#!#&+5?M/ (  $ 2YAA3.7/HlY>E.(m 7>7#fds\F5s?AS05Zna'=}K>Rv>7#vPXh@VP65MA,tOG%+>6XfL&I?"C&!*53!'>7!#A4 +8PbAN]V-( A;fUI>6/,)=&86_lUzU.53!'>7!#Ad'ZXCYX65 A^\yEBH>",)=A`kJ(?N< #5!#!!5!0P>1AAAASf !5!!!!5!0ZggAA@AA41%2654.''>7"'267&'7263"##"'70 7hOR"'#PK\/10:: A(''&T= @8,#( -TbKD3CHUABrAU~/)>N?Mf4.%2654.''>7"5%'7263"#"'7#< '?MS(*\Vm:tA./..  ]F%H>G*0%8f+L[\u@3LShAAc8/EW?(5#"'732>7"&#'>74654&572"/$=3#* (( "0I)//3/L&$DEA3E'Jn>J&=HqS+OW-0.43aMp?A@T 3 D>>mIG7.7. #"'7327607&#'>7"'53654&572t7(< &o:' <) !,"?96X%,PC;.82T('JA79&(&:%(M+xJb=I+.=XJ0K^lJ=.97kS|D@=RDJDD 4'7'77%'%0v\:_S:K;k$>7>7'>7k9:?$&? 88,P/Ki1VJC<7444/G77R,2DKfM<@LxXFQ;'%(.8EWlC4PI/*M#57.7.67>7%'>7>7[9&< &o6+ <( ;3E%,? p,(6_4)aLRbr0Ac53M<;9%'':)'.+JMtUH@bv6*IE$%<+8^2C9WO3-i>7!#'>7>7!iZR#@&$#G?9&26C (ycg}hg {DAW~gCJ2*5$+E"6oHK5/7.7.>7!!'>7>7!T5. ; 'n7##KAA&LQI,GGF! AAA!Am~YA0@Lsg}-47.7.#5353!673#'>7!#39&< &o6+ <CA@.$F/.,*/?#(A9%'':)'AH{aAHxZW9L-*1&-C6NSmB"7676767 7.7.'7EpXCZ9":=.@+L1`?>ZWI)3\2<@&I9>+@$;sX >bU?;'+&|A ">2-+nRA/55@`m!)17.7.676767.'77.'79&< &o6+ <VCx[Pl9*+NN,7idYIMUa^O 5AG'Q@=9%'':)'F!767'6$7DO.|VL#KTv+cPAP&|Q1M{pI\c1c;262:_-hA@cAHF/1p,7.7..''>767"#56$77(< &o:' <wXy$UV.gQQW[W&-6U(R79&(&:%(Fhp78;g1kAAMY~1ibJ_,'767%'>7327#"'.5A44,20+(- !3VF>A*?/KBv4TzA<,47b?p . EGI  A L ? 97.7.'767%'>7327#"'.565. ; 'n4UM4d,8;jH{>OTR## AQ"2%> 7.'7-23L%8+%? 2B8e\S'+6A-)&2#$9#:.GGakEuU`F9`L=/*/W=nx$-7.7.>7.'7O02; 'n9%=AH[0@&1)?*2)A5^PD&23J,=P?9+'':%*-3K5URx\^}VX;N;/lHH/7lF(s=5,67'>7%'>7.'n44P2;MhI+QJ:$?,/LWFt_X!523..)';\4 ,"`Jy>2EYa @pS\=47! "#'(/). Vu97.7.67'>76%'>7.'O5. ; 'n#*>",3Q^J~g`"JVuY$@vK<9*%': ,'?eXtJ21/IQs[U<?zYdB:7-7UZ4.8qfH>7!!'>7!5!54'TەM \ l&Y W[FA7!!'>7!5!4654'B7(< &o:' <_5{[ { t'c ub(9&(&:%(/E677&%7&YDMT/8,?$=?]aU-=& A /U%;((3IDpc|w[D1xY}s-V][lY%>77&%7&CO[`8A3!?42=;[WF;=. A 0_,:/.77&.'7^8, ; 'n9%=Xci:F6%>&;J?og[D< A $%0e1]8($':%*4B]S}YaD7QKn&)),(,gvZx>54'!5!!5!$h@Hq|vm(AA*vAA9# $7.7.>54'!5!!5!`9&< &o6+ <sDo_tJ|9%'':)'2o0AA+ AAy#37.AAQzA=.eh5=59.cDr4>7.7.#37.z7(< &o:' <AA}v.ko9&(&:%( ^.Nt/kFvj##527654'70263"#'>76rsA:9::%7?0-0>A=T1fJ8A7aT7GD,28]+EcQ 75!05!0c(E2QAAAAl-67!5!&''>7".'7-?S%i@"O+/1}F1_|KU!Js`{UAAVP05+8;[W/38P]0>02[7&'>7!5!.'#uF?;2Mtըh+mf*BnJKA"9&4F*a\Nk;ZAAp"/TV28P(" 1'>7>h?6%A3_*7#=A_B 1 bd7"E.C$7(,HD%0cN`~Q7&>735\:is;-9@7DN+&>5]hV uZS.I #7.7..'7%>7'5. ; 'n7v&&K:)))CLgt6kQG2@"?-7&&2)8*)&Tbu PqKV3;327#".=3>7ײ'=9wickGA H8J<@!FR< 6Cn-7.7.327#".=3>79&< &o6+ <˯%IFzpblO @9%'':)'M<t1XK@"CT: ]2On-"264&2"&4327#".=3>7N&&K:)):(˯%IFzpblO @&&3))(:M<t1XK@"CT: ]2O85!'>7>75:'Ig;@PSn .7`AAWk1%><:'+O):yak%7.7.5!'>7>7;5. ; 'n7>7f&0:())A6?*)Y[?GcG2=+&&):((:AA_t54`.+;$:<"@j/"'>32.sN7<4|_0CfD;X(!dxmNHQ'Z=+n.D4P_R7L+7.7."'>32.02; 'n9%= +#D (4]g8"LlRIU'UGo_bN9+'':%*b!$U*6&}u#A5p8B3B7R@32.&&-)))) +#D (4]g8"LlRIU'UGo_bN&&2(:)):(!$U*6&}u#A5p8B3B7R@7!5!53!!#SH-L]2%1?3-6;,A1A0IlE/I{L.-$FMDITL.1AA(A'37.7..'>7!5!53!!#02; 'n9%=109H,Rf!C90>!838ZHALA9+'':%*?\KD.MS1<@h]K]R44AA(y,(4"264'2#"&46.'>7!5!53!!#&&-))))W09H,Rf!C90>!838ZHALA&&2(:)):(r?\KD.MS1<@h]K]R44AA^I%.'7>7!5!_rhw&dEICR'(17sQ5L^|]V5G<6767&'7''7A9@ ? 'V>0E0m5U3,im-vuc 7:L,'sG)A$&'767&''>@@A#Dn-b:r`Q) ?:6-((A5!5!4'#5!!!!327#"&=k` %O?5zz7X`;d|14-0/;L;0?-i5Cg95-:iDY_dU''7'7%'>7Bq;v2 &Q;/GYz:9?6{5 LJh;-E~TlI@ %!5!3!5ahKAtAAtrs| %!5!3!50w`A7AAd 5!5!!5!5!5Cq\AAA 5!5!!5!!50J-A@A Au5! '>7%5!(13'6%?(O12@DZ5C5<"AA8ZM;6$'#=-)>MeDAA)6767654'73#d{/f& A &!;,N4.iAA2Fo]_NfX>8$'^9Q9u '3>7>54'7uWAAdoI864, A3=9GlaA,Z)@DD/7'3+BBt4kAAe-f0:8T6,3|b3 %!0#!#50 AuApAB4>($#!'>7Aq&$D6j+?Yo]/# J26",= /=9^dPR#!'>7A ' )-34:9<Nka<4 L(9~oq+)! =*4,@>_aG]<#30#5!533#!!#!530JHA3A@PAAAAoCzx%3!!505!'670A{mh =AAAAvH8F@J67!5!'>7!5G3?) PoCE32X0C**4rAAZi2'C>! ;. 42B%A7>7.'7qKT=,<#8B9ROxxXFHRgNFD .6n}hSuhB9 F*>!3F_P)7.7.53!'>7!#L9&< &o6+ <A!)Z]awl:3 {A9%'':)'f`IKN=!1FIyk=6#"'732>7"&#'>7H654&572 A55+ !!#E@-"=9';;"A;< / @!>L>7!#'>767#n<? G(2'>M,#h!t g9ACRm($G %5-E*L32&54>32#53D!$MNHMP$MwR9?!H!57UB$,8& PP9 $ DYHH-3O@*, +?_;>/%2 JLbm#%7'7&54637#'75H?1c>LK&II@7:/mke6$;B; AB&eLm!$"3###53%7'7&5463753=I$1MGM31c>LK&I0mke -).;7HH7#;Cf>+" #+.%&f[)###5354632&#"!###5354632&#"WSFFA: :gWSFFA: : D8DY8?E5RD8DY8?E5R ###5354632&#"!#7#5WSFFA: :SSS D8DY8?E5R ii###5354632&#"%#WSFFA: :S D8DY8?E5R')-1###5354632&#"!###5354632&#"!#7#5WSFFA: :gWSFFA: :SSS D8DY8?E5RD8DY8?E5R ii)-###5354632&#"!###5354632&#"%#WSFFA: :lWSFFA: :S D8DY8?E5RD8DY8?E5R'&#327#"&5#5353##5354632&#"V'14GGSSFFA: : DF+(DDY8?E5":#327#"&5#535332654&/.5462#&#"#"'V'14GGS5E7C&+N]InbXf3<.3PNFuc DF+(D/7-%" C>IWTMT+$# E:LZ:X33#:WWGGX#BG2-273#"&'3G G;#@QG %R5OJ :YX 333#WWWW2X#:#BG%X%>53+533"4fW,?L9䥋ZNT<v3R0 L :@X##=47'3>7538}rAZWzFVW{p"zGx)qA&X#!5!W  LL?4X #.'!53:{lWAZ WXamtQ: Lw9X.'!5!#!5!>7Pkb7 "F\:<4 sS7LG(5&+7!,/L"3-%%#467>76=!53!W$9aW:IZ1VVT_1'R #;Hᕙ2O*87?5X 2!.'&'!Ak>* *!9GX%4A2X+"? @%X #.'!5{mWAZ>XamtQ: L#uX.'!+532>=#5!#AZ 1A:"=3<{mWtR8.J, L:.)Lam2!5353F FF<&*67530#0+;2673#.=33#bW57J` x>RCW|R}WGG,YB128\iQR[ZRG<&*67530#0+;2673#.=33#bW57J` x>RCW|R}WMGG,YB128\iQR[ZRG<&*.67530#0+;2673#.=33#3#bW57J` x>RCW|R}W'GGGG,YB128\iQR[ZR9GG<&*.67530#0+;2673#.=33#3#bW57J` x>RCW|R}W'GGGG,YB128\iQR[ZR9GG:}FX"&##=467'367>=33#>Q;f(WP=3#5#53>Q;f(WP=33#>Q;f(WP75.#"5632#".'33#<1    1*&.PMH/H81 W -GGL  (# R./'5%(+-V:z G X3'3#WWtGGX#wG&8X #.'#53#{lWAZGGXam7'3#Pk7 "F:<4 GGsS7LG(5&+7!,/L"3-pG%!3#%#54>7>=!53!GG?'.2W%,4 [WGk5V+, *b0?Rn(*@5 0:X4&+##532!533#uWA:X:N{ӻGGwAT L`L G3FX2!534.'3#G/H81  -GGX-V:L( G=9X&*!".'!2.'#>7'3#;5H:--PM_BY%# 1  GG -U6z/.'5%(+tP:-9  qG98 X".'#3'&'.=32#3#AZy !!"(P .|!W|GGtQ:  L 3!./'5%bG?X*.2+532>=4.+3'&'&=3#Aj=*;%aF7533# Y;&Fd" WxGGM]L 1(G>8&X#53>7!5!#3#&l|>7$5#ooWGGlbL)LrUG%X #.'#53#{mWAZȿGGXamtQ: LG<X&*67530#0+;2673#.=33#bW57J` x>RCW|R}W'GG,YB128\iQR[ZR9G#{X!.'#+532>=#5!#3#$AZi 1A:"=3<{mWGGtR8.J, L:.)LamUG>333#>WOGGXG:6.'#533!5!3#Pk!%Q= J[sS7L$(5&LLG9.'#53+53>73#Pk7 "F:<4 sS7LG(5&+7!,/L"3-G?*.2+532>=4.+3'&'&=73#Aj=*;%aF=3>Q;fhW  WD'D #"35467>54&#"34632#3 !!8 #H=5"/$,888hg')# 17A-4'A{hg&/1732>7#"&5467Y6 CL_bN\LD :hj3!eb+4&#".547323267#".546&<(*2,2-9B$ O_?/ C/G#^"5  !$ ".95/QBx  :8QFY5QM'%  5&&_."&'2'2654&+"#5.+'7>753VG E`\)/$  2'[A!),K?E)#RDP(#;GN70$'(33S{7253#5.#"37#".54>1G33 c$7B  &"1(H$C%c.5L0 5$,@ '(f#2#".'732654&#"&546{ #-Uc#k3='I] <r6#53533##5./>54#"32727#"&54>32=>?&&3>>3?[C"/>'" /-% !/ -;P3DD3,HB , :!(,*!.#'3##5./753632&54754G4.'A 491,$r^.3$+1vZKW >>E_/ f$*GD(#<%253#5&#".546V.H$33=_%&+><21_P *1(#CAB%m%'673#5.# 3JIg43Q+0 54'#"&54336?6B5oXO34P- (0" 0!'!C   LE;H_b@L3 4"668& # 90.#"#"&54732?63253#C  YM.9S  2833(W6-( -32*ia''63253#54&#".#"##"&54632 33**!".9E%0 (  $*(-7,*@."*2654&##5.#'>75#5!#2#"'7%25"h <"3$4M(/RLJB5'$1@ wB'*&/5('33T.*'; -q7sl)33##5./>4'#"&5473267>;C3<<3 w/4D 5#'+!-$4CU>3+]2-.6-  &- 6 .-253#5&#">32'7>54&#"#"&546(G.33Iq%E!-8)A&2 J&U-.'$8,$&%8K!9 1!'2[>.)275#'47#5!##5./7+"& 0  M 9P3[6 64(    33./@:&p.,547#5!2#"'3267#".573254'#"&72654#y6:1, +":#_5_>%34b6U)2*4'(+"ZMT3,#2940_yHjv1 :jI,=8%E.72654.'"&'#5!#6he0CGW5&)b+ @33! 58h.73265&'.5#5!#3}1rrF #c2!?$~<]'m33 9OP`.-;.+53>54/#"&=#5!!;272'".'32654'CB ,$Q3:JC$6>) 5    m0;   3+R3<%+733- B ./467#5!#3"'327#".'732654'#"&l'f 3 $7=G:'>) 3PE($"("3J 33G* _57T<-0+!,m!675#5!33##5.'#5.#7Ps(3>>3 3l4] ] D 3 /T?3u?"Sc, >%:=Q2#"&'#4.#&547;636;254&#"27#"546327>"3254+532654,!I"?3 4?54'#53&5472654'lF~c :'7G}v4'* 9*13.Q32*9*2=*S-8' 3?6+2 M7<=2Q#Q.$"&=#5!#267#"332654'$8!$^C*3 !:"-?6:!33}6K&4d82R<-G'!3.7"&5#5!#32654#"'632r2ER (I  & n5#33 |& (0 C %;2.#"37#".54>#> f$8C .- ;;-*Qk.5M/>.,6& mm-33##5./654&#"32727#"&54632:+33::3 #%D+ !=-,;*8R?34"7F 5!$05 W3)"753##5./7.54632&&u  Vm:32L8B*"  d,!6  053=252-"( ?  z.'5#5!#6?#&54C+G1*k`CV? 3 *339 (&+/).1.&#"&546325!5!#<6!(E5<^3 v)2+M3K.K9#>3253##5&''654&#"72767&#"KK;\PƓ2 (+8"?!J_T3:  ( 5 & /.,#"'73254&##5./67&'#5!!52732')3l*<&I8/. ,2%=0g21%11@ /!%033(* #<7.675#5!##5.+"75WmI/3 q(0!Q $KxD!33?c : ".)-4632&#"2>7#".'32654'#"&'5!u ' 0&%4O:-K0* 3h=(1%<)4 1"'(>?P#3SC1 jv:-@:33. /4'#32'4'#5!##".#";27"#"&5467\# '*: ea,)#G7 $*4,#)T!-3309)5))30#L. !##5./767&/.+35b-3h)!,))=.-".36/;)(*) 5QM'%  5&&.%25!5!##5&#".#"&54>326 O3&)+#$$$3 4"*-%Z33>?$7( "E$)/).0263253##5.'27#".'#"'72654&#''/ #!7j3# % 8- #/IK[334 0 +#,1!&30".!327'654.'"47#5!##".x/b1a4rk7 $%Y( MK$33-;X ,J.",#".'#"&'6?32654'4'#5!!3254'"':(4 "<6  $78$=",6(3  @*33$H8$[\.(,&/3;2654&#"&54632%5!) 5O#z  ?55%"H!'.W(&54#"'6324632#"&n -@Y%7+a_ 7 !33 == '$*@EM. $74632#"&&+5!##5&/675O /CA \532{ +/0:>(( B336Q )-m(2(5QM'%  5&&7. 7.'7'675#5!##5.+"75D++DWmI/3 q(/!R $L9 0 6"D!33?c ; "-'233##5./;2654'#"&4732>54'r=Y3ll33P]+ AS?? 9/( 0GC=W3&-!?5JJ3Z0H..)5!4&+##5&/7'7632#"'7326Bpk(y&)djF4Lf< 33#/nAW6P!4#>#=>G83, ;X.7.#'675#5!##5 /AT&yg4,~X:<*6g&+33: N6NFo.4&#"3"&54632#53## R!  *5'72BC3[? (&/733tY.'463&'7#53##54&#""&5& 3>wC3]+ ' )(3 .>3 333oZ((.47#5!#'>54&N2;ACZ+3xK833G@EE0 )! .AE2'65.#"#4&#".547;2727324#";27"&54>326%5!M*9!#)/3=TFRD )7="7-%y#+SaU7uG' &(09+'{9F0/#)( \23,/"2)/# L3D06`*.33.(L1#B%''7LJ Q4D.#"#"&547326325./>54'"&547326733##wCQLZ/EF<4686q4)$1( ,(] (R8,33 $-a0 +.19&#*#"#".547326325#&'#5!!2#2654.'o+(w "+.*" !^K"L6: (3(Lg9 ;(.' P1e33=.(+? 8 7<.U`.#"#".54732?6325&+532654./#"&=#5!!;2672&'#2654'#"'}C0E#._;Ac'L.##"&547326325#"&5#5!654'"&5473723!32654#"'62#m#<'2D.*"?I,'Z3G!*`4B0:d$D-3h'P9.' ('3 K@&O33 ?/). D836E$"1'-4TAM.##"&547326325#"&54>7>54'!53&5473##2654'r g 2C.)# 3=EV2 Q6& 00Ư2A 3r7F<"G/ P90% L3:ZD N= 3\H8J",O63Pt\!"x@TV>NAqY.E.#"#"&54732?6325#"&'332654'#"&=#5!!32?67#D LZ.9S56*3m3b[;RR%(F4 K3r'M@'. *32+[3'&?.33-2lF&.:.#"#".547326325#"&5#5!!>54#"'632#p#y "+.)# ?D 3 .q,.3' :&.' (&3 M/733q \&"!<5>.3!!4632#4&#""#"&547372&#"327"&5͘6 3.* !>L, V'&w  >%.39!-]B4]I/A*3$"m&$ -VU.IM.#"#".54732?6325#"./332654&#"&54>32#5!B 6/D#.DG 83%. 9*& 3XYBLF57 + 8&Kc33Mvu',.), '<)*l$*-+)! V\IFa!#'" '}>33N.#"#"&54732?6325'./>54&#"32727+"&546233##xCLZ.EG (46A1]A,$%#  7) ? (V~Q]$iJ4QQ4<(M@*+ .;)+BF11 8 "*$3- 2DJ=7Q(ZX3.23".547;26;2&547'#5!!67&'#"# '0!1-$ i#* d.e,-.(5 P@*/:!3:gV2"33!S|^P 5;F.#"#"&54732?6325./7&54632&#"753##yE  YM.EF 46FkMq_<+( $yR3yU-$&2)W6), .<)+EFL)[E/(8 DJ3325!5!##{B )YM.DG65"5- "!4>)b3|P3m'W6), *<)*/:'' , '&D2;(f33c.@7326325.#"&54>323>54'!5!##5'&#"#".5472*"9; ))&)H2 $k>j3/ k "*.'3-" !2% ,,>33-&54  ;'0%   s9G.#"#"&54732?6324/.''654&#"'>32533##2767&#&#"C LZ.EG 46  $%.# n6F3VV3 # 3#2$ ?2(M@!4 -<)+)."&!$ $1PE3 ,+2&(!.E.#"#"&54732?6325./67&'#5!!6;2#"'73254&##xC!LZ.EG (199b($fp3@&69tM Zr," K94F'M@$1 *;)*IA] %M#6@33)9&1,&bNbO2 1 #3=.,5726325.+'675!5!##5.##".547  8"z@4#:/ #*.) H''2" H,6`-+335 ;'+* (&3{$`!!.26"32?#.#"##".5473725#"&54632&%5! 9/:81- -!  9;$1C17aD0;3%: 388]#"J5214B "U>0!+$+_33hA.IM.##"&54732?6325#".'32654'#"&54632&#"3267#5!A 6LZ-EG 38 %9bC:"9%T,P"5R3O)4! K%3!%33MXc'M@*+ .;)+w1Jm_:Q?3Z7?#00):2G #!9 D833=.4;.#"#"&5473263254&#"#"&547.'5#5!##5|C YM.EF :56`#/*U)D AML93?59.(W6+* *;) +5+P,],%""33B73N./9.#"#"&54732?6325./67&/&+5!##zE  LZ.EG  46)9-9Y- n>4Ia/vB$2)M@!4 .<)+;CR 89C!33b:N/!F%jP.#"#"&547326324&#"327#"'#"'7;>54&#"56;263533##E  YM.EF 2 56P%!, <" 4#I5N$3QQ32)W6), .<) +Ms/6 +:')-1=8k_&W3.,07.##".54732?6325./67&'#5!##5&'o#g #*.)"0HBdE*g-~IF3LI;0{V2 ;'+* (&3 /]G:%R#A33b{(?+7q\.9B.#"#"&54732?632.#"#"'73267.'5#5!##6325C LZ.EF29 :(20A,  - B_853@5"'2n'M@*+ ';)* N4?4j#EK7"33a84E.<F726325.'#"&'6732654'4'#5!##5'.#"#".5473254'"'} 2 "<8 " $7W33  k "*.*8$='3!'@*33"<4   ;'0% &'3w$H8$P.@D.#"#"&54732?6325&/32>54&#"&54632'#5!zD  YM.EG (64_:&9 VB0d/7kY&4y{'W6'. .<)*Uy79!(# )7#$*9,JZ9o2Zq!!33..2:.#"#".54732?6325.+'675!5!##'~C /D#-DG 19:!~oA39V$ %&,-&- /;(*%-6b++33@>e X,q.-5>.##"&547326325.+"'675!5!##'.'7l$%(#2D.)#:!~A3X_:,n6X&'(Z% O:1$ (&3o-6b++33v&Q . I7Q'Y*.Yin.#"#"&54732?6325.#.'4754&#"".'54674'#5!##"'73254&+##25'.5#7#3F6LZ-EG  38Q*  RH6$'j'3 4"  ,4 38a? +">S3 2(M@%0 .<)+h5F 1 ,<&33Y 1&/ &,*4\D8U)0)U.J%'675765254&+"675!5!##"'"'#7254&'#5'&/&/7&',EX.4"kP*-D U(XlGq'%+!O3(')"M.(,"m ?  GZX5-33. Q>" 5$,3#3Y#   )0" [67723##"'7>54';2654#"'632#"&547./675#5!5467&#"#"54732?6c' 'Fy52\,0!K  Y8H%U #'Ks93@<(2 DoW F A/D( kAY)<3!7!H,  F^iH8#M.&%4[54';2654#"'632#67AC K55 .7632632#"'7654&#"%5!'4'911('   e&;$6 .*>,C"<6) 1&,)#.$&<+ :)1050*0!33.LT2#".'732654&#"&5475.#'>75#5!#2#"'73>5654&#6'25"7!0 "D-7a:#32M*.;!"+ 4Q( PT'; 6&$ 5$1@ u!0'*2"B_OGP85)9+/5*33.'*';)#oq7O.X\%.#'67.'32?3>54'#72654&#"&54>7632632#"'7654&#""#5!w!%JR, 1+M4/  '433b= >!)0% H]jX  &) 1&,)#.$&<+ :)1050*0!&;:#33.[c2#5.#'67.'732654&#"&5475./>75#5!#2#"'73>5654&#6'25"A K !0 3S+!"+.Q132M*.;!"+!/U( PT'; 6&$ 5$1@ u !0';2,0#! FVGGP85)9,05*33.'*';)#oq8F.im.#"#"&54732?6325#".'32654'#72654&#"&54>7632632#"'7654&#""#5!E)LZ.EG  46371('   '445ʅ)M@!4 .<)+ .*>,C"<6) 1&,)#.$&<+ :)1050*0!&;33.PX7&54675./>75#5!#2#"'73>5654&#632#5&#"#"&5473263254#"'25"&+$*W( PT'; 6&$ 5$33)1@)L--" 6 '-7z1@ uw ?25*33.'*';)#6&*#F2$6 / *"(<q8.fm.#"#"&547326325#".'732654&#"&5475.#'675#5!#2#"'73>54&#632#25"zCOLZ.EG<643;5^=%32M*-<%+ (B'< 6&$ 5$ &34=<v' M@$1 *;) *&>[SGP86(4+ 54633.'*';)#&>&iq7zT.8?&#".546325.+"'675!5!##"'72>54&+#0?^&+>,RH@zw9F0/")( \22)7! *3&#Cc-/6`*.33.(L1#B%'7L JX/M.8@65654&##2#"'74635.#'>75!5!##4&#""&'25"^*/5Y1[%'&$-/W(PEpV3B#''P1@ u3 "8@2T=8;$!"15&33@ )&q8T.LS726325.+"'675!5!##"'72>54&+#4&#.#"""""&546x4& (@zw9F0/")( \22,'(#-NS".'54674'#5!##"'73254&+##5.#.'4754&#"725'.5#7#3c$'j'3 4"  ,4 3Q*  RH638a? +">S3 n&33Y 1&/ &,|5F 1 ,<W\D8U)0)x.N^c&#"&546325.#.'4754&#"".'54674'#5!##"'73254&+##25'.5#7#3Gg6)KE#3O-Q*  RH6$'j'3 4"  ,4 38a? +">S3 ?7/G'6:9[5F 1 ,<&33Y 1&/ &, U\D8U)0). )-c25.'#2654&#2#72#"'"/'#3'.'#5!##5.#"327#"&547.'#"&5463.'#"&54 '/"/<3M >)OS)#C  eR<kI3m+  "4!&&+'!A)'*?  i=9)!* 5< 338'^ /)0 -)#!&.9?675!5!##5.#"#"&'732?&'2##"'732654'76!S3973 #5*!/ NS> BG #V%ja]9idR'33l0, )3@ ,R.A/<' <Z'L4&#"7632%4>32533##54&#"632'6?67&#""&546765654#"#"&Zx=U%SB,>*y>3RR3S>`D .H+% !!& $U:)E!?;|e L 5+1!rY3gPlh"%"T/$ #'&9G   .C25!!67&547'5&#">32'7>54&#"#"54>yPG.}e, 7d-Iq%E"*+&A&2  %8-.'3!wC.?Nmx72r8,&(5K!9 D+18{KT4632533#632&5474&#"#5&+'675.#">32'654&#"&25\GaJ1@023Ci2K"0!?)+ (9$f 7 9,gO" 6PnM3 G.CdE) Am@H< -03-1 (!-4"U'  :  %8{IPV.#'67&#'675.#">32'654&"&54632533#632&5474&#"#5'=2SU*!9M7X2K"0!?)+ (3!$fJ 9\GaJ1@23/Jx2,f-0:.5@H< -03-1 (!5."U' ) =6PnM3OWqFCdE)   -+9+{K2533##54#.#"#"&546326325&#"32632'7674#"#"&5469M.3CC2#- .%$-07#)"!E( 6)%1^+{=2533##5&#""&54632&#"32632'7674#"#"&5469M.3CC3=_%"/>,.H$V^!F O",E**8+ N  W15HM3< *2(#C2107#)"!E( 6)%1^+o{:@4&#"3"&547&#"32632'7674#"#"&54632533##'32#R!  *&V^!F O",E**8+ N  WC9M.3C3l72l[? (&"=7#)"!E( 6)%1^5HM3t7l. 627#'47#5!##5&#".546325./7##"&& !.K&3fO=3=_%&+>,.H$JN&H $ 5)a0 133qP *2'#C21$AZ (R8.9?M#"'#'654&##5./76?4#""&5467&'#5!#572>747474+' ;Wi$:/3+'(~#k%3'4 *nHU cK:d c 2'i ~x50%"*2.3FU&$!334F&Y.V\h.#"#"&54732?6325./76?4#"".546?&'#5!##"'#'654&##572565474+];2QH* ?A  )5+'(~$k&3" * -fU(:Xi$173hK;d c 22(W6%0 ,<)+!.3F U&  33%i ~x60$0{5H%.fo47#5!25!##"'73254&+##5.#&/4>354&#""&=47#"'3267#".573254'#"&72654#725'.5#7#36='3 3#  ,4 3Q* H7$ %7#_5_>%34b6U)2)5'(- 8`B+">R3ZMT33Y 1&/ &,|5F   -;  #2940_yHjv1 ;iI,=9% ^B8U)0).KT.#"#"&'#".573276754'#"&547#5!25!##"'73254&+##2654#"&=47#"'326732?6325.#&/4>354&#"725'.5#7#3A 6?W 5_>%35b5*2)45F'3 3#  ,4 3~())$y$ ":$_,C?38Q* H748`B+">R3"'81Hjv1 54'"'#"'3267#".573254'#"&72654#63f *(<44Ld3TT387p4(0 %7#_5_>%34b6U)2)5'(- ZMT3A4?JJ>`V3R-1C*5)!#2940_yHjv1 ;iI*=9%1PX7>54&#"327#"&5467&'#5!##"'#67.54>7#"&'732654')58"%(2 k#@64 ( =MHk-4  $O3="-$B">' 3!+22 %N!@%2kyHY2>)(%'!R=.';-+ .:CP47#5!25!##5./7##"'#"'3267#".573254'#"&72654#27#6B<4MNG%7#_5_>%34b6U)2)5'(- P!M82ZMT33A>] (R@#2940_yHjv1 ;iI,=9%/ $%4a.3<Il.#"#"&'#".57;67654'#"&547#5!25!##2654#27##"'3267326325./7##"D)EW5_>%34b6  .)2)56=<4'(- P!M82*%7#_HD? 2 46MNG2'?6Hjv1 ;i& !,=9+MT33)%/ $%4a#2940_U, +0>] (R."O2654#7567.'#"'326'47#5!##54&#"#"'#".573254'#"&('(+"?4<+/"O $. >":#684`#$%T3%#O5_>%34b6U)2)5%963M$3 !#0 9MT33 .!O,B%Hjv1 ;iI,=9nP.1:V47#5!##54&#""&54>3&'#".573254'#"&72654#7#"'3267y6hC3]+ '+(+5_>%34b6U)2)5'(+",*":#_ ZMT33s;Z(* / Hjv1 ;iI,=9%9 * #2940_7(  .!*07265&'&5#5!!2+&'52654/&/#2qoJAb!;'9(G"`&$,\4 i7k}=]$3&0m33=,'+J 3C8 $ 3H +.6AIO.+532654./#"'#&5#5!!;26722654'#"'3265&'5#_AmS."C`z;GVx _1u?AbD=#) NC1 1rrFe2]&S)$7='4[2@]Eg&0m33@ZK&z$~<]< /H +.DOW].#'67&+532654./#"'#&5#5!!;2672&'#2654'#"'3265&'5#G$.JP, AYlhGVx _1u?AbD=#) N_AmS."!/4C1 1rrFe > *0C0<4[2@]Eg&0m33@D2]&S)$$$K&z$~<]< /H7+.Q\dj.#"#".547326325&+532654./#"'#&5#5!!;2672&'#2654'#"'3265&'5#xC L55 .32>32#"&'#4&'#&'%4&#"32654&#"5326if0CGQN5+'W@5o "#!)=b*7%B3"- ,0g*^3=c}o H$5a/W2% $-b+ @33@?%  S x$ )!`QE]A' 4&7-gBO-yQ xE67"+3%.,5.#"&54632+&'#5!!#2>54.': +="6(K=+4K/+n+c=2-* 4#bDLg*9#7 /G =7<09N33=&(Yi $.k%2654'#".57"'327467#5!!327327.547#".'327#"'#".'&'73254'#"&( #~4 $7/%:)>! @l7J 22.! 7$:@C1cF 8!;& 3/L$&B!  1#4`M8>.K 33GQ =Gf%=#`O (!+(Z2Bm#-!@z)2K..M"67$.$x%'2654'#".57"'327467#5!!327327#5.#'67&547#".'327#"'#".'&'73254'#"&,J( #~4 $7/%:)>! @l7. 3Q,!K\2.! 7$:@C1cF 8!;& 3/L$&B# !  1#4`M8>.K 33GQ =,J73 *0K.`O (!+(Z2Bm#-!@z)2K..M"6G{.RX%47"';2?#5&##5654/67.5332654'#".5467#5!!3276 @.29 ,  201#<9S(1$;# ,#2S;?C.9Up+' 0, S) r!.L7  e38+CMg9%*) ,,*7*33!3# )T.1FO2#"&'#".'&'732654'#"5467!5!!63254#"';2654&#"&'32696)'P S,BQ0L-%)(7 =/e5}2M<^06@%1'B/D61K65k@$2N7> h @#/~&U33)P`CY5:232537632%32654'#"'732654&#"iF$cF.=",M("PG !"3)32#"'24&#"3254'#"'7;26&'32qzVZw8(#ve A1,?66c- @!<^H&4.1.&0"((.l2&?M5E/Q*  )|- *O!@r'B=+E4 *A!= ,B)2+5;HB=!7)-"?9LK6m( (6C)$ !0`x327#"./32>4'#"5?>5'.'#"&54632>32.=467+"'3254'#"'7332654#"> +!- & :]/2 h; !# ,I!  $8&P;+*8#>"#! H$  " X,#<-* .*)[yV/) N*0Pj9]s *B_>7  9 '.1X'(+%%. /^6?($!)++C.  - #8!1- $o%7'72654'#"&5432654&#"2#"'#74'#5&/67&#"#"&5473724&+"&54632>L7U.h*}1 )9d_80:)/4%!*449?[0 ! DT$,A?iP .m &;.))&E! K*+BM #< $ t\A-7/>+5 H/F\9,/oS&C8M; Bw. '6:>f$ 'G%#"'732654'#".=#5!>74#"&5473723!32654#"'632P#?*\.Lq!?6.)y[5G!* a3D/#;T *"))/&-( (*! 3 5 <1) $ / E3 37q9-$!B2H;'d.#"#"&54732?6325#"'732654'#".=#5!>74#"&5473723!32654#"'632#g>2RF* 7I $ .3(:\/KrD6.(\5G"* `4B0#;T (!")$3(V6)+ '30*#%* *" 3 5 <1+ $ / G1 37q9-$!B2L*.o 'I4&#"3".54632!32654#"'632#"&5#5!654'"&5473723##Q"    5'73;d&!"-:c4,'d[[3G!*a6AB3[@ (!/76D$"1'6vS?'O3 2 ?/) . F63t5n{FQ%"&=!5!632533##&#"2632'7674#"#"'#"&'332654'7&547#326!#C9M.4BB4T`"DL #,F)+8+ T 0E:qu30M0?32>54''#"=#5!#3267#"&'#".'732>54m !730)%&7 #R^1~ S-6aEH_1W/2MI</5 0 $ȇ975e;"2)%:(7#6333T]4BzH^0IJj !0)"o.=4&#"3"&54632!32?67#"&'332654'#"&=#5!##6Q"  *5&824 K(R6m3b[;RR%(C3[@ (&07-2l7?+[3'&?.33t ='L#".54>3253>74#"&5473723!32654&#"'632#"&=4&#"37 % :&#? [8E!*4/@b  "'KC/(h[B , 5#,6&.,c 5 ;1)  w 3I %"nO=(s_M h'm.#"#".54732?6325#"&=4&#"37#".54>3253>74#"&5473723!32654&#"'632#D6/E#.EF56;5/(h[B  % :&#? [8E!*4/@b  "'K(3c',.*+ *;)+>=(s_M- 5#,6&.,c 5 ;1)  w 3I %"n8F $U4A".546324.5473##"&54747654&#"3732654'y &E3lB99<8ͫwW6ca*#)Z[c2$ET"* 8%327 %N?i4#6K&/ %&)*.$!  "/(" ='(5h49K #`v\ &# XKA>$"/E% 1 )FDZ,!.=46325!!32?67#".'332>54'#"&=&#"&7*.5L4 K .U6RL33 >GV80I$S%#40!(%7;n3-2l->2$Gd_&aM/ *<2#*@3;[h2e.#"#"&54732?6325#"32654'#"&54632654'.+"327+"&54>327#vC L[.DG( 46%3i4#6K&/ %&)*.$!  "/(" ='(5 %3c'LA(- .;)+ #`v\ &# XKA>$"/E% 1 )FDZ*417.IZ%"&=&#"&546325!!32?67#5.#"#".547.'332>54'#"'32?632(4/!(8)02L4 K3C K55 1A3 :FT?/I$SM4FmQ 325!!>54#"'632i 32ZB  &"2(2F` 36% ,./7#6cL0 5",@ H$3q 6X2&"!<Y?r;327+"&54>32533##5.#"37#"&54>3254&#"r, )F>)3& 3__3f[B L!1)1GY$-H>3^+1:('c3w!icM/=B+@ H$+w4?o{=%2#53##54&#"3"&5474&#"327+"&54>32533#;3C3Q" *$Y$-H, )F>)3& 3,,4633t6@ (&"3+w4<>3^+1:('c3J.04#"./732654''254&"&54>32%5! cM 71=71832%5!*"Mm 33R,!(v^7186u) &.X*Y?31 ZD.++  5 %09&h;$ #1U.AE.#"&546325#"./332654&#"&54>32#5!p +="6(KE#3M. 9*& 3XYBLF57 + 8&Kc-(3ov*9#7 /I'69:$*-+)! V\IFa!#'" '}];c33E.E"&54632!5!##54&#"".5463&'#"732654& +0& )1"@B \H2}#(/  ].  ,!.,  !1 7%f*336!U )+ #<*D%8o.D4&#"3"&54632!5!##&54>32#"./332654&#"6Q"  *5&82C3 + 8&KceT 9*& 3XYBLF57[@ (&0733t'" '}]\|$*-+)! V\IFa!GU.PT!25#"./332654&#"&54>32#4&#.#"##"&5463265!["# 9*& 3XYBLF57 + 8&KcA2,'(#-9+ &*/6-$F133{?2533##&#"2?632'7674#"&547'#5!#6746:M-3BB3T`!F  # "-F)*8' G/d-n\\xZ17FM3`7#  )" F( 6'NkWG LcdY233{4[. 627#'47#>7&&547'#5!##5./7##"'& /L%3f2t2d-n <3KN $ 5(a0 1DEPLcdY233A>] (RMrWG-..?6?'&547'&547'#5!!>7)'!#2")3!#)2>32TZ,k(N!* oZ8`Pc,H#"E (37>7#5&'R,!EZ!2F?2TZ,k(  ))0")3.J+0G//1,H #0 (37>7'&#"#&'7 8!#2 '"2hn,k( ')-X")3#F"W!- *Q 02,H !6- (332632'."33 FG! 4F0If.A;s3@32632&=474754'#567#/JQ,!!2! 4F0If.A;."33s% >!)0+wD}*33'I6* '0 <54'#"&5463367&547'5#5!!>?6765qVN43O- (0" 0!&"%   3%#)J &"y?H8G`b?M2 4"75& 0#)#33"!.M%25#"&54632"2?&547'5#5!!>?67#5&#""5473265!'$2&'4##< 3%#)J &"y*38 2:;K -1&%# 8)#33"! 5;,<*7/.h.#"#".54732?6325#"&'332>54'#"&543367&547'5#5!!>?>?>767#B K55 .7!"&547.=47##5!##5&#"27d%* 2- *y%"V$3 ./MQ3U0  80(#z0 $sH5= MK0G33Ap  ' -Y507"753##5&#""&546325./7&54632&#yR3=`#.>-TFGkMp^),*' yU-J1& DJ3^P% )3'#CcLGK)[F=8Y4&+#3"&475./7&54632&#"75!###632R!  *GkMp^),*' #yC3yU-J1&v 72[? (&88GK)[F=8 DJ3t:L654'!53&/&5473##"&54>?654&#"7#"&5432654&'*!F 47! ΰT$4>./U9(-a <- .:8&.MC%!%30%16D<)%4*P23sv5S. G4- *%.$/^.$1kFsM20 /7T3;OA8   '+3k33H^HtBq}I 5Pb?,\F!a".: 0%"(Ee.Z.#"#".547326325#".'732654'#".'&";27#"&546325!5!!327#C /E#.EF :2965FsM20 /7T3;OA8   '+!:~QL3',.%0 &;) *+Bq}I 5Pb?,\F!a".: 0%"(3k33H^-,^.,%"&=&#"&46325!5!!>54#"'62Q,'<6!(9(5< 35%*>.@&vR3L33q 6Y1&"!=Y/.I4'!5!##".'732654&#"&5467.#"&546323>$u>t,+$N71[@43d/&$5I4$)/% )* )-0=!& >33-&3_"142JYG c}@1(7% "&!5  !253..W%.#'67.'732654&#"&5467.#"&54>323>54'!5!##!  JP*!"*6a?(4\=&$7G4$)/% () ))&)H2 $z>y*>3!  >"(0# MdZ! O#A0(7% "&"4  !2% ,,>33-&2 >5S,.L"&5467.#"&54>323>54'!5!##5&#"#"&5473>3254`C$=(+ ))&)H2 $k>j32: O 9J,8'#<(AH %"$P !2% ,,>33-&0'3*V02: >(11I).h#5.#"#"&54732?6325#".'732654&#"&5467.#"&54>323>54'!5!#"* >3C  LZ.EG  55)33-&2a).A%#&/532654#"'63.#"&54>323>54'!5!# %@(}"w66 `SaG1   ))&)H2 $k>j( +#A#m3<)H]   !2% ,,>33-&= 9y.$&547'5&#"&46325!5!!67d.<6!(9(5<e,.Lcb[23vR3L33!PUYy.06"#5&#"&46325!5!!632#7./6754&5'g3<6!(9(5<MN12 -cRTM>}*vR3L33o#+R#E :&.A3".547;26;2&547'5&#"&46325!5!!67&'#"# &/!24 i , d.<6!(9(5<e,./'5P@*81!3:b[23vR3L33!PUY .06#5&/67.#""&546325!5!#632&5455(3=e&=q9"4D$7?".W46#2D&2N;b!35:%&4)0")55*z33f;8lWq>;&!K.6<E.#'67&/67.#""&546325!5!#632&547#5'O+!?J3G&=q9"4D$7?".W46#2 5(3~D&22' J#'0?*635:%&4)0")55*z33f;8lWq>7&!    Y.HN&#"#"&547326325&/67.#""&546325!5!#632&547#=Y22#;]* ?A * '6=e&=q9"3C$"1?".We9 2 5(32LD&1<DL$3 8=* +b!35:%&4)5)55*z33f;8lSu>7eޱ6&p.1.#"&546325.#"&54>325!5!##W +>"5(LD$.J7"5- "!4#4,d1P3G*8#6/J'60C.9'& , '$E/F"e33uov.3:4&+#3"&475.#"&54>325!5!###632R!  *"4'"!4#4,b3C3v 72[? (&8.:& , '&D/F"f33t97.7D%4>3&'".#"&546323>54'!5!##54/&#""&#6'$;E )-07+' $C3)" '*ڏ.' ,, !25#>33o)((U0#,;  ..7"#"'727&#"+"&5463267.'5#5!##.'6325J $": <+,6"K (&0&T1IX`$J01O#,ESEU3:x "&'o)*&"33)<{0!B3'GR#"=74754&''65&#"'>3253>74#"&5473723!>54#"'6267&#"29d4T3 $% .# o5F[5E!*39 9f+<-/@)9 D $E9Z Y"&!? $1P 5 <0)  w 3 J&"!<4+E/" ,K~=I#"&/732654&#"&5475&''654&#"'>32533#2767&#"!0yAJ5$3 E:=)5I1,3e #K;\P0(+8"?=>;J^{XVF* A0!C &%NR  ( $!J_P3 & /y 5?727&#"63%&'4&#"'67654&#"'632533##5&''27&#"6)'kA+E!&/03W!) L&)PwZW5OQ1-&m9)4;Bt2H% *)E '4 ~K3.'`9G os*5:4&#"3"&5474&''654&#"'>32533##267&#"2#R!  *(2$%.# n6F3B42 # S34 ?R82j[? (&# W"&!$ $1PE3tI ,+R)!e7  s/=>32533##5&#".5463254/.''654&#"72767&#&#" n6F3VV3=_%%,>,OK  $%.% # 3#2$ ?1PE3O *0($Cd."&!$ 9 ,+2&(!  sES7463263254/.''654&#"'>32533##4'5&#.#"""""&2767&#&#"YC/5% (  $%.# n6F3VV2,'(#-< # 3#2$ ?!$F1."&!$ $1PE3 = &*/6 ,+2&(!.0:C>3267.'5#5!##.#"#"&'7267&/'654&#"72767&"76325Z.jZLUJ05 V%$( ,%#' ")V[ X(E{)+&"33 E '$*& 5!+`E!#W23!52732#"'73254&#32654#"'632#"&=./67&'#5!654'"5473;{"="w/. ,2%=0')*G *n71l*<&I8Anf-% =,3(* #(69vK Zr8 #1? 8- -407X>0A_ %M#6@33*8&1,'aNaP'% .E'675!5!!327&5467+".'27#"&'&'332654'#"/.', 26S _%+19/"#!9! -@%s$ 20:+.-7'%& .J-* 33., /hx+e s(4  31SZPEl."2("2.'5675#5!!67&54?67'&'Q\[p@f,. 4W59'}h<%2;33!4aQNI Qi "Z7I9&Z0.8>74732632&54?67'&/675#5!!67&#"#"&5S2)0x!0  4W59'}!@f,.)9q%>J\[ ,A,9B "Z7I9&Z082;33!4aQNI -[<%=.+2%&546?#5&/67./675!5!#636750_I-);"Y1Ky0%*"(T` $-E^w72+[uo);T&? *e#+33+W#T`l L d.+.+'675!5!##5&#".5462*H''%9!~A3=_%&+=ZH%$X,X.6b++33iP*1($B21.7=%#"&'332>54'#"&547.+"'675!5!##36?6'55oXN44O- (0" 0!&"9p(\g%,  S]D0,.6b++33<)  +60$X,hA.SW%6325#".'32654'#"&54632&#"3267#4&#.#"""&546325!' (9bC:"9%T,P"5R3O)4! K%3!%(#2,'(".;B05XE1Jm_:Q?3Z7?#00):2G #!9 &R:* &*/7,$F33. O4'#32'4'#5!##".'732654&#"&5467.#";27##"&5467# 6: &f %#hQ1[A43'=[06H-#1)N +%!4,("&T!-33543VD\1JXI V^A@1!>!&. 83+'8Q]33##5./>54&#"32727+"'#".#";27""&546754'#5!6324'#32\%jI4QQ4";,C&,(*("7) ? D#G7 *& e)7?Q# '*:8P)YX3I% 58 ""*$3J))3+'!-3JI4,#)./;&547'5#".#";27""&546754'#5!!674'#32nd.#G7 *& ee,.# '*:Lcb[2[))3+'!-33!Q~UY4,#).2>#5'.#"&546325"&#";7"&546754'#5!#4'#3224L"3 #QA"+c   && oM4#(&:B E1?7 /G%:B|X,#'4335*5* #, .-47254&#"#"&547.'5#5!##5&#""&5465.H$`#B2U)D>NB93=_%#.E-=79.!21C+P,],&!"33P *3(+;82Nbs W2767&#&#"4'#32'4'#5!>32533##4/.''654.#"#".#";27""&54670)3#2$ >`# '*: e N$F3VV3  $%!/,#G7 *& (82&(84,#)T!-33 'E3:."%" "9))3+'bs[ht.#"#"&54732?6324/.''654.#"#".#";27""&546754'#5!>32533##2767&#&#"4'#32C  LZ.EF 46  $%!/,#G7 *& e N$F3VV30)3#2$ >`# '*:2(M@%0 .<)+)."%" "9))3+'!-33 'E3(82&(84,#)`ses%263254/.''654.#"#".#";27""&546754'#5!>32533##4'5.#.#"""""&5462767&#&#"4'#32 2) ( $%!/,#G7 *& e L#F3UU2- .$#.;DM % 3#1% !?\# '*:1."' "9))3+'!-33&E3 % -3/7,%E--+2&(!54,#). J4'#32%467&'#5!!32732#"'73254&##5./7.#";"&5/ ;*d Z< ^r#%/"(M83'5!ll *" #33 O6GM^O7-&-=ZC;V -VK ,.Zf.#"#"&54732?6325./7.#";"&5467&'#5!!32732#"'73254&##4'#32F6LZ-EG  38'5!ln **d Z< ^r#%/"(M83V *';2(M@%0 .<)+2;V -VK , #33 O6GM^O7-&-=A'.KW#"&'332>54'#"&547.#";27""&546754'#5!##"'36?6'4'#325pWN43O-'9 0!4*O *& ea1$ # '*:NF9FbbAL2,$ 7$'/ 93+'!-3309-/ " \4,#).Q]%25#"&54632"32?#".#";27""&546754'#5!##5&#""5473264'#32!'#7")2# F#G7 *& ea/3: 2 0DR# '*:Y -2%&#  A))3+'!-330985;442B4,#)Z.dp&#"#"&547326325#"&'332>54'#"&547.#";27""&54674'#5!##"'3>7#4'#32\7<QLZ.FG 929/=N43O-'9 %4*O *& ea1$ !.5(3# '*:q: M@+* +9, +nbAL2,$ %$'/ 93+'(-3309-/ 5F9;-A4,#).1=H%463&'#".#";27""&54674'#5!##54&#""&74'#327#A5&,#G7 *& eC3Y/ '*# '*:2D(&#))3+'(-33o] ()4,#)09 .>8op.4;%#53##54&#"3"&546754&#"#"&547.'5#5!#!530*C3Q"  *`#B2U)D>NB =79.5533t6@ (&/{C+P,],&!"3382N.HT%25#".#";27""&546754'#5!##54&#".#"""&54632674'#32 #G7 *& ea 3 *-#+& .9A).3l# '*:))3+'!-3309*$(  @-7,$G7 4,#)\.;B%254&#"#"&547.'5#5!##4&#.#"##"&5463265;`#B2U)D>NB92- .#%.;K'2( =79.C+P,],&!"337- ,4",07-,=082N(.:FO4'#5!##5.#"#"'73267.'#".#";27""&546?#325476325n e?53 :.10A,  . 0;1$#G7 *& ˵ '*:D@5"'2!-33N+(Tj#F?9!-/))3+'U#)B4,74Eh(.Uaj.#"#"&54732?632.#"#"'73267.'#".#";27""&546754'#5!###325476325A 6K\-EG 38 :.10A,  . 0;1$#G7 *& e?53y '*:D@5"'2c'LA(- ,;)+N+(Tj#F?9!-/))3+'!-33m#)B4,74E[.;C3&54632635!5!#'654.'#5.+'67.#"&#"I!SK'; !u7J 4 :1-'X= !C" +@%"h8-i,L,=!  a33 (3"6!)& ) )K:0O;"_` ;.L46326325!5!##54&#"632'67&#""&5463254&#&#";"&=29- !"s3ZB!AH"+ '%A & 'bEAH"1@#!  %,a1G5&L33œ+\;+$'  %$1&!=QL  ^1,17,U3723!32654#"'632#"&=4/.#"&#"&546326325!5!>54#"&5473C =f*2N$, ,<!8QI(8#%"y{[5E!* z 3 H&"!8#Y:, . ^ ++N,=1&3h3 8 <0 (  U,s.#"#".54732?6325#"&=4/.#"&#"&546326325!5!>54#"&5473723!32654#"'632#@!L'F:.EG 8356$, ,<!8QI(8#%"y{[5E!*3C =f*233v& D4%0 ,<)*2:, . ^ ++N,=1&3h3 8 <0 (   z 3 H&"!8#LT6.B&54>326325!5!#>7#"&'332>54'#"5&#".#">$$3 4"(/& +"OzCRs9>-<)&:M8&)+#$G( " C #*/)$Y33 :<[rSk$&-#3,$*@i>?$7Y.b.#"#"&54732?6325#"&'332>54'#"5&#".#"&54>326325!5!#>7#@!6K\.9S29+,Rs9>-<)&:M8&)+#$$$3 4"(/& +"O33r&LA%0 *32+Sk$&-#3,$*@i>?$7( " C #*/)%Z33 :<[PF8.P32654&#"&5463254&#".#"3254'7#"&546326325!5!##".'NM8F40)H5 /+3''=. 1-=C0; .d?gQ326325!5!!67ge.&)+#$$$3 4"(/& e,.R]b[2|>?$7( " C #*/)%Z33!P`N.HM25!5!#632&=656=4'#5./75.#"'.#"&54>326: : ."332>7&#"3d/+3''=. 1-=C0; .d?3# Z#' # 3'C@"(D!/&9-%C 1 F33a ' $)E]  ,.Q&'.#"""""&54632632&/#5!!3273#"'73254&##5./67d--*"(:-(69vK ;P$ 5 K:/,: %kB-/6-,=0#%33*8&1,'aN %51 &$ 1 #2>ZFFX %.m.#"#"&54732?6325./6?&'.#"""""&54632632&/#5!!3273#"'73254&##E LZ.EF46,: %@--*"(:-(69xM ;P$ 5 L:32(M@%0 ,<)+5FX %3B-/6-,=0#%33*8&1,'aN %52&$ 1 #2>o.I%2#53##54&#"3".54754&#"4&#;27#"&46326325!5!#84B3Q#    '@'." 0&;GG;1.+&S )5733t6? (!Y&&3))90QR0+ 33.I%25&#".#"&54>326325!5!##5&5&#".#"##"&546326*&)+#$$$3 4"(/& O3 */",%/8C(.3>?$7( " C #*/)%Z33W) B.9+$F7!.?H%"'.'27#".'#"'72654&#'326325!!'2654/&'\ %# % 8- '/ #!7l/"C  Y{+51-S%G34 0 +#,1 &30/IK[3=#$ 0]3* G.]h4.'#"=47475&'327#"&'#"'7254&+'63632>325!!6632.+732>'2654'#"'` _0P)&%  - ):(   W&2 2'%..?b>g6Q"9mCP6D3*AYwG% +11 &' ,A* %N3M81^(/K$Aw2<J(!-Z32654&#"&5463254&#"327#"'#"#".'7&'7;>54&#"56;263533#Q&54&#"56;263533##5&#".546324&#"327#" 4#I5N$3QQ3=_%&+>,.H$P%!, <X')-1=8k_&W3P *3&$B21s/6 +oP%4&#"327#"'#"'7;>54&#"56;263533#2#53##54&#"3".546P%!, <" 4#I5N$3&&54B3Q#    )5r/6 +:')-1=8k_&W3:733t6? (!"Y726324&#"327#"'#"'7;>54&#"56;263533##4'5&#.#"""&5461) (P%!, <" 4#I5N$3QQ2- .$# .;C1s/6 +:')-1=8k_&W3 > ,4/7,$F.8@327'654.'"47#5!#'2654&+"#5.+'767&x1b1a4JPc])/$  2'[A!)7\$ E%Y( MK$33+## P:Q(#;GN70$0#)#g.JS\"&547#".547#5!!>32'654#"#5&#"#".473263254'32?'654.'"1G$ $4 '' !0#"1230< S'-()T 0,a1WI # ,K$33+9) 8-##B2* 218#9+01S1':K -A*3F31B 6 5 +o< .'Fm'<@67'&/&'#5!654'"&5473723!32654#"'632#"&'.'7#')=[3G"*`4B0;c %!".:c4.r=Ũ4tG5/  3 1 ?/). D836C$"1'6vS %6Vgh'$U]f.#"#"&547326325#"&547"&547#5!4#"#"&547326323#32654'7#4&#"6'327CPLZ.DG<46JN*3^B<:NWJ0 zSE5g~M[M8,u#=3!N! !0"c' M@*+ ,;) ++3&:K37@+3F31<  4=:35'N6H"#9+/M +o< .'jm'[_.#"#"&547326325#"&'./67'&/&'#5!654'"&5473723!32654#"'632##B   L[.EF 046*+.r=!)=[3G"*`4B0;c %!".(!32va'LA(- 1 <) + %6V.5/  3 1 ?/). D836C$"1'+b'iT-7C654'#4>7'&5467'#5!&5473##"&7&/62654'  D%,;\P6&+)>0cGEW;9)<&7F<&:3|1 )&N?3]G#x@TV6\8!q.!9@D%"&'#5./67&'#5!!>32'4&#"'>54&#"32%&'5(.g3AcG*g-~"*'0,<+.1'-( $ D20f".H;0{UT]O$@\H:%R#A33)">-5%13gh3.  FDKG(>+7qc#ws HM2767&#&#"327'654.'"47#5!632533##4/.''654&#"#".%67#c # 3#2$ ?1b1a4F3VV3  $%-V) $" ,+2&(!B%Y( MK$3 E3:."&!$ (5 ,y #sFS[di.#"#"&54732?6324/.''654.#"'#".547#5!632533##2767&#&#"327'654.'"767#F7LZ.EG  38 $%-X* $4F3UU30)3#1% ?1b1 '2(M@!4 .<)+)."'  )7 ,K$3E3(82&(E%Y(  .D27'74&#"26"&547#5!!632#"'732654##5&/67'x*\' )> :Ahq)diG4Ke$!  3>(a8^Nl>.=&7533#&(4#>">>E:%0 ;PnAW6=&.KS^.#"#"&547326325&/67'#"&547#5!!632#"'732654&#"#27'74&#"26wCNLZ.EG 8 46=(a8?:Ahq)dgH6Ke$!   2( M@!4 .<) +*V6=&=&7533#&(4#> @>E:%0 ;#/Nl>.:.4A327'654.'"47#5!##54&#""&5463&'#".7#x1b1a4lC3]+ '*5&3: $/%Y( MK$33oZ()!((- ,-<  3+#oR.)04%#53##54&#"3"&54675./67&'#5!#&'5y12C3Q"  *BdE*g-~"!3I;0|UL4433t6@ (&# ]G:%R#A33(?+7qc{}.I3254'"'3'2654&+"#5.+'767&'#"&'6?32654'4'#5!hVG?8&h8$=9)IY]&7  2'[A!)CO?"<8  $?E",l$H8$"5 N7P(&4GM80$:Q3  @*33.T^%&5467&'#"&'6732654'#5!#>32'654&#"#5&#"#".5473263254#"'3254'"'$1#."<8  ))!0#"231;V%7 (+2R 1,%C8$= # !H?3!3.33"5/ 8-#B2* #3*)A"8; /I$H8$v}.RXb.#"#".547326325.+'767&'#"&'6?32654'4'#5!#'2654&+"#3254'"'h:B/.) >>2,2'ZA!)CO?"<8  $)IY]&7  3VG?8&h8$=T' ;(*+ *;) +EN70$:Q3  @*33"5 N7P(&4IE",l$H8$S I254'#233##5./2654'#"&5473274'"&'#"'7327#5!2'!] *?>X3ll1:@g,Hd=A-*-  K10 <"1% $ ?2)>'  !,$C=W3&/?')I0&J 3/6::!)n3EdI'KS%2654#"'632#"&'5.#"#"'73267.'5#5!467474#"&5473723!25!6?a*/6a6 +4-!21@,%. B_2[8E!*a3DC '1`$RK&"!<9Z!-?4?4jOCK7%3 4 <1)  / C73n=EoIC$U4&+3223#32654'7#"&54>7.'#"&'6732654'#5!4#"#"&547326%V9#=CE5g~3HH38+v#7.'#"&'6732654'#5!4#"#"&547326323#32654'7#4&+32EM/E#-EG 8 38@<*3;L%';"<8  #:NVK0 zSE5g~3HH38+v#=33 $V9#>c' ,.(- ,;) +3& I7=*3!A) 3F31B  4=:3#B419#9+/&%M+$H9*.>G#".'732654&#"&5467&'#"&'67326=.5#5!!3254&#&#"dT7&'#"&'6732654'4'#5!##3254&# JO+!%6b?(3-5N*5I41* +"2"<8  #7W&$"43f9#=B  >!)0NdZ ;PA.@1(7!& #,F3!A)33"#2 UK+$H8 ).JT"&5467&'#"&'6?32654'4'#5!##5&#"#".5473>3254'3254'"'`C$;'6"<8  $7W$30< O $7 ,5*#<(8$=EH%"#OH3  @*33"1 53*!/) 2:;&31$H8$h(.bk.#"#".54732?6325#".'732654&#"&5467&'#"&'67326=.5#5!##3254&#uD6/E#-EG (38)1[?43\>&%5I3$)2(5"<8  $7W% #">3[9#=c',.(- ,;)+b 2HZG S"@1(7%! E3 @* 33"!4 UO.$H8 *q&.7A%#&/532>54#"'67&'#"&'6732654'#5!#'3254'"'#J1|"v54!$0>!`G1z/"<8 #7W.&?8$=+3#B#m3,"I] |?3!E# 33"%7#$H8$. >2654'#%3267#5!##5.#"&546325.'+"/P ' 4A !:&/.96325.'5#5!##5&#""&546325.#"#"'7326s@5"'2 B_853=_%#.>,-H% :(20A,  -84EK7"33O *1)#C21N4?4j#Es X2767&#&#"'3254'"'3#67632533##4/.''654.#"'#".'#"&'6?32654'4'#5!0)3#2$ >8$=`' B!F3VV3  $%-44 "<8  $7(82&(($H8$)E3:."'  )(3  @*3sXeot.#"#"&54732?6324/.''654.#"'#".'#"&'6?32654'4'#5!632533##2767&#&#"'3254'"'3#6E LZ.EF 46  $%-44 "<8  $7!F3VV30)3#2$ >8$=`' 2(M@%0 .<)+)."'  )(3  @*3E3(82&(($H8$saoy~%63254/&''654&#"#'#".'#"&'6?32654'4'#5!632533##4'5.#.#"""&546322767&#&#"'3254'"'3#6 ( %&-14 "<8  $7H3UU2-1$# -3&'#".'#"&'6?32654'4'#".  8$=YC4\+ ' )(% / 4 "<8  $".0< 3$H8$33oZ (+" /!(3  @*o.A6325#53##54&#"3".54675.#"#"'73267.'5#5!#s@5"'2313/B3Q#     :(20A,  - B_8!84E:433t6? (!, N4?4j#EK7"33.IS726325.'#"&'6?32654'4'#5!##54&#".#"##"&5463254'"'10!2 "<8  $7W33** $ .9B8$=6 '3  @*33"<(  %*(-7,$F$H8$.I6325.'5#5!##4&#.#"##"&546326325.#"#"'7326s@5"'2 B_852- 1#! -.#""&546325&/32>54&#"&54632&'#5!K '7!&"/>,-H%z_:&: M$B0d/6lY&&3|"8 *2)#C21Tc09!(# $<#$*9+KZ9o2[p!*33I..22'654&#"&/32654&#"&546326%5!0:.;&A|Z&[,CXK&1++ Q?0a 5'v;1$:*.#a!Yr!G9!@3$=4 %4EF*-V33./=B4'#5!#2?&547#5.#&'>354&#"/46725'.5#7#3f%X9 0D3O+$1J5-+B?YG+DR1!#33]*/On=|6E!+;( h9 ;M52*=.O;27#"&'&/32>54&#"&546326326325!5!##4&#"4&#|/'-@ %CY&_:&: M$B0d/'V":0/+&+VN3@'." %*801+"[p!H9!(# $<#$*9+K4''0+ 33Y&&3)J.FJ%25&/32>54&#"&54632&'#4&#.#"##"&5463265!"z_:&: M$B0d/6lY&&2-+"#! .;J(2( Oc09!(# $<#$*9+KZ9o2[p!*7-  B"07,+?033W~P[g2533##&#"32?632'#".'32654&'#"&=#5!#26754>4632#"654#"+1;K-2AB3S^*= # ,&D(#p[=b7'/Z4(-CP4 %  Y&7, "b,!/0HP3 `:  7(>'WjIe[&$[H4 7!5+33" b (< 2i^ 7hT.,39.#'67.+"'675!5!##"'72>54&+#/P+!AU(w2zw9F0/")( \23)L Kf!*0D,4U6`*.33.(L1#B%'7L2JX/W)  +{1.#'675&#"32632'7674#"#"&54632533##yQ,!LeV^!F O",E**8+ N  WC9M.3CC3 *0L2o7#)"!E( 6)%1^5HM3N.)/.#'67./7##"&547#5!##27#OQ,!ES"q=N&HO=3& !.K&3$.J *0E-0B (R8,33SE $ 5)a0  U. )%.#'7&'#5!!#'2>54.'1JP,! c=2-* 33#bDLgC >!)033=&(4GYi .CN&'#5.#'67&+532654./#"&=#5!!;26722654'#"'\CJ3%80?R/."3O+!B]}GVx _104*= "12 NC1  '  <(3/)$3#'0F/U4[2@].33 @ZK&7a.M.#'67&547#".'32?#"&'&5332654'#".547#5!!32?#Q,!DY #0C( $*%*`4H3m9"@(1'2KzK9# 3!)0F../]X ! B!-"$,!@Rx+F! c6'$&1/a1337'!>_;HTZ'=7523!32654#"'632#5./7.5#5!654'"&5473G$B>.I/;d&!"-33-%&&d[[3G!*a!#/%l32533##dQ,!MdY$-H, )F>)3& 3__3 *0L2c+w4<>3^+1:('c3.U.9=%.#'67./332654&#"&54>32#5!`JQ,!-32$ 3XYBLF57 + 8&Kc503v  >!)0."#+-.)# V\IFa!#'" '}]Ai33[7<33##5.#'67./>54&#"32727+"&54624\%jI4QQ4P,  (V~Q2JL8P)YX3`3 *0@*=@ 8 ""*$3- 2DJe&.!'"##5!!632#7./6754&5'g3HLP12 .cRUK>}* 33p#+R#E 9&-5 .5:5%"75!##5.'#5./7&54632&7675#0{&]#yg3C3GkMp^),*' yU-J1&3gw: O4  2 DJ3X/{ VGK)[F=8Y323>D'@s$k>j3-$&$z 94 ))&)H2 #/">33-&5$3*!L, !2% ,,.$*767.#"&54>325!5!##5.#7JfA&'"!4#4,b3P3Q,CKEN0?C , '&D/F"f333 *q'  s$2.#'6754/.''654&#"'>32533##2767&#&#"P*!Md  $%.# n6F3VV3 # 3#2$ ?"(0N0F."&!$ $1PE3 ,+2&(!. ).5.+'675!5!##5.'#675s.{%]U9!~f4D3H''%3on: M6  1.6b++33X/z $X,JL+YA.:>%4632&#"3267#5.#'67.'32654'#"&'5!$.J)4! K%3!%(#2M,!'*:_B*9%T,P"5R3OXG #00:2G #!9 &R3!)0) LukDQ?3Z733.97574'#32%#5!##5./67.#"327#"&54674G$Ex# '*:ea3-$&'l$c +& #/&4,#)3309;$3*#CG3*'(c .?DO.#".547326325./67.#";27"#"&54674'#5!##574'#32^;V%B6+@D7.4-%&:Y$c  ,+ "a33kH#H{#  V:g' D5'/ /:, +1#3*/7G3*#(-3309B.T"0)4, K 9h.',5.#'6754&#".547.'5#5!##'5x=79.S+!Jg`#B2U=4>NB93hO/82N +0L1C+P,L/&!"33m+}. J%55>754&#".547.'5#5!##5.#"#".54732?6325.#O/=79.0O2`#B2TB. ALG83B!6/E#-DH (47R,+}73N27 C+O,G1$$"335',.%0 .<)*+, .6.#'6754&#"4&#;27#"&46326325!5!##Q+!Md@'." 0&;GG;1.+&S.N35 *0O/QY&&3))90QR0+ 33876754&#"327#"'#"'732654&#"5263533##5.#IhP%!, <" 4#I5N$3QQ3Q,EM1s/6 +:')01=8i_&W33 *&.'/757#5./67&'#"&'673265#5!!3254'D'@33-$&(kK$"<8 " 78$=#/#"<$3*$B]3!'O/33$H8".$-7675.#"#"'73267.'5#5!##5.#6325Ih :(20A,  - B_853Q,@5"'2EM12N4?4j#EK7"333 *84E. 75%5!##5.#&/32>54&#"&54632675.{%]Hf4H"^Y&_:&: M$B0d/3gnq: M6 133X66 [p!H9!(# $<#$*9+KQ5L+'.26%.#'67&/32>54&#"&54632&'#5!KJR+!EZu_:&: M$B0d/6lY&&3  >!)0F/X,9!(# $<#$*9+KZ9o2[p!*33_#".'#5.#"#"&547326325./>54'"&547326733#3274#"3"54632K+( 4CQLZ.EG 7 4686q4)$1( ,(54'"&547326733#67O/_4CQLZ.EG 7 4686q4)$1( ,(?>54#"&546#0%s/O;5SKI/ &@b8M 6$,E-/()"9$ &[OYY6#80B:[o ;$YkGO *"%Q[%`;+1># 3 .F{`"&'#5.#"#"&54732?632&#"32632'7674#"#"&54632533#3274#"3"54632KT)3CYM.DG28V^!F O",E**8+ N  WC9M.3  6 *>0#$,96G##6'W6), *;)*<7#)"!E( 6)%1^5HM3G,X'$;(<{{W%&=47#5.#"#"&54732?632&#"32632'7674#"#"&54632533#67=/^3CYM.DG28V^!F O",E**8+ N  WC9M.3@7CB _! 6'W6), *;)*<7#)"!E( 6)%1^5HM3#`%+{j"&'#4'5.#.#"""&54632632&#"32632'7674#"#"&54632533#3274#"3"54632KT)2- .$# .;C/1) (V^!F O",E**8+ N  WC9M.3  6 *>0#$,96G##   ,4/7,$F17#)"!E( 6)%1^5HM3G,X'$;(<+{{a%&=47#4'5.#.#"""&54632632&#"32632'7674#"#"&54632533#67=/^2- .$# .;C/1) (V^!F O",E**8+ N  WC9M.3@7CB _!    ,4/7,$F17#)"!E( 6)%1^5HM3#`%.|.#"#"&=7332632'&547#".'32?#"&'&5332654'#".547#5!!32?3274#"3"54632#".'A t"?O2)/!y '$#0C( $*%*`4H3m9"@(1'2K(K9#  )7 *>0#$,A4   --4XA ,F4 2H']X ! B!-"$,!@Rx+F! c6'$&1/a1337'!#3X'$;(<-,Q ,M6A.q.#"#"&=7332632'&547#".'32?#"&'&5332654'#".547#5!!32?67&/&=47A t"?O2)/!y '$#0C( $*%*`4H3m9"@(1'2KLK9#  ,8/ ]--4XA ,F4 2H']X ! B!-"$,!@Rx+F! c6'$&1/a1337'! #`% 1T .KE/! K5A.LP#"/#4#"#"&547372&#"327#"&546323274#"3"546327!5!L*: .\ =K, V'&w !)7.    5* >0#$,#97F/r]I4<*3$#m'$#*8. )   X'$;(93.<@%&/&=47#4#"#"&547372&#"327#"&5463267!5!b/ ^.\ =K, V'&w !)7. @7?D>G .KE/! r]I4<*3$#m'$#*8. :L3m#"/#5.#"#"&54732?6325'./>54&#"32727+"&546233#3274#"3"54632K+9 4CLZ.EG (46A1]A,$%#  7) ? (V~Q]$iJ4 )6 *  >0#%,94I/5(M@*+ .;)+BF11 8 "*$3- 2DJ=7Q(ZX3 3X'$;(<{`%&=47#5.#"#"&54732?6325'./>54&#"32727+"&546233#67=/^4CLZ.EG (46A1]A,$%#  7) ? (V~Q]$iJ4@7CB _! g5(M@*+ .;)+BF11 8 "*$3- 2DJ=7Q(ZX3#`%.B%&#"3262&'#"&4632654#"#".5467#5!!32>F$ $%3@-   (0M9<("/24:3;-,9 !+0&0\LD4WE BA9908?JV!?-:#&K22O&7(/(.T#"./4&5&'#"+".547;26;2&547'#5!!673274#"3"54632A4)  .(5 P '0!1-$ i#* d.e,  6 *>0#%+9,Q1C^P @*/:!3:jS2"33!F+X'$;(<.E%&=47&'#"+".547;26;2&547'#5!!6767S/[ .(5 P '0!1-$ i#* d.%e, +8CB b! 1C^P @*/:!3:gV2"33! #`%5W%"&547326325./7&54632&#"75!#3274#"3"54632"&'#5.#"yyUDUF`.EF 3 :FkMq_<+( $y$  6 *>0#$,KT)3D = $#&$k>j ,-)=52$.6&6 o& )6')H2 >33,'2 (!4/&QE'+H,' " Q !2!+,,.=74632'.#"&54>323>54'!5!#&#"327'#"&;,  :1 ))&)H2 $k>j(#%" 'o"*E(39- !2% ,,>33-&> S'(.+4'!5!#'7".#"&54>323>$k>jd3b:D  ))&)H2 >33-&1,G (J8g,, !2% ,,.G7467&#"&54>323>54'!5!##"73254'#5>54&#"3&80?' ))&)H2 $k>j!D"4ZIj0(Wp2 89,O*51]$? . !2% ,,>33-&($0426BGC) 1(%'4 Q.c#"./&'&'#"+".547;26;2&547'5&#"&46325!5!!673274#"3"5462$K*)  /'5P &/!24 i , d.<6!(9(5<fe, -7 *>0F-96G5AUY @*81!3:b[23vR3L33! 3X'$;(: .T%&=47'&'#"+".547;26;2&547'5&#"&46325!5!!6767/\ /*2 P(. 24l$) d.<6!(9(5<!%e, +8K: d! 4@UY @*81!3:b[23vR3L33!  sVd#"&'#5.#"#"&54732?6324/.''654&#"'>32533#3274#"3"54632%2767&#&#"A4*)3C LZ.EG 46  $%.# n6F3 )7 * >0#$, # 3#2$ ?9,Q##5(M@!4 -<)+)."&!$ $1PE33X'$;);Q ,+2&(! }sKY%&=47#5.#"#"&54732?6324/.''654&#"'>32533#672767&#&#"?/W3C LZ.EG 46  $%.# n6F3C- # 3#2$ ?CB _! o5(M@!4 -<)+)."&!$ $1PE3#`%# ,+2&(! sbp#"&'#4'5&#.#"""""&5463263254/.''654&#"'>32533#3274#"3"54632%2767&#&#"A4*)2,'(#-0#$, # 3#2$ ?9,Q## = &*/6-$F1."&!$ $1PE33X'$;);Q ,+2&(! sWe%&=47#4'5&#.#"""""&5463263254/.''654&#"'>32533#672767&#&#"D/\2,'(#-0#$,A4))4#:/ #*.) H''2" H,6`-+333X'$;(;.,Q"!5 ;'+* (&3{$`!k.>G726325.+'675!5!#67&=47#5.##".547  8"zqA1/Y4#:/ #*.) H''2" H,6`-+33 #`% 1T d! p5 ;'+* (&3{$`!N.Q5#"&'#4&#.#"#"&46326325.#'675!5!#3274#"3"54632g~E0oA4*)2- 1%$ .;J(3' *9!~g  !6 *>0#$,:$e8,Q##<)  +607X>0,.6b++33G-X'$;(<+.DM%&=47#4&#.#"##"&46326325.+'675!5!#67/]2- 1%$ .;J(3' *9!~D"TH''%1T d! <)  +607X>0,.6b++33 #`%$X,.RV#"/#.#"##".547;725#"&54632&#"32?3274#"3"54632%5!A49- -!  9;$1C1*m7aD0;3% 9/:81 )6 *  >0#%+79,Q/#"J5214B "U>0!+$+ 38883X'$;(:33.EI%&=47#.#"##".547;725#"&54632&#"32?675!n/^- -!  9;$1C1*m7aD0;3% 9/:81A6zň1T d! #"J5214B "U>0!+$+ 388E-Y"f33=.PW#"&'#5.#"#"&5473263254&#"#"&547.'5#5!#3274#"3"54632%5L)(*3C YM.EF :56`#/*U)D AML  !6 *>0#$, ?59.97F##;5(W6+* *;) +5+P,],%""33G-X'$;(<73N={.FM%&=47#5.#"#"&5473263254&#"#"&547.'5#5!#675=/[3C YM.EF :56`#/*U)D AML?5T?59.CB _! 5(W6+* *;) +5+P,],%""33#`%f73Nsu"&'#5.#"#"&54732?6324/.''654&#"#".#";27""&546754'#5!>32533#3274#"3"54632%2767&#&#"4'#32KT)3E)LZ.EF46  $%!/,#G7 *& eM#F3  -7 *>0#$,3#2$ ?[# '*:96G##5(M@%0 ,<)+)."' $":))3+'!-33 %E3 3X'$;(9O)!2&( 64,#)shw%&=47#5.#"#"&547326324/.''654&#"#".#";27""&546754'#5!>32533#672767&#&#"4'#32/W3F6YM-DH :38  $%/,#G7 *& eK#F3E+3#1% !?Z# '*:1T d! o5)W6%0 ,<) +) *"' $":))3+'!-33 %E3#)!2&(!54,#)O..4@#"&'#5.+"'675!5!#3274#"3"5463254632#"&6A4*)3>$h )7 *>0#$,09twF&9,Q##Y/4^6&333X'$;(<- \'"'.#)5%&=47#5.+"'675!5!#67%54632#"&/X3>$@B/~9twF&CB _! Y/4^6&33#`% \'"y.{%#".'732654'#"'732>54&'.#"632'>54##"&54632754&#".#"3254'7#"&546326325!5!# P+@uL.3Sz7%  #;%!,4B  H"%!/+3''=. 1-=C0; .d?1d' ):X}r% Ef$ - @I'D/ '!C  "IDF(D!/&9-%C 1 F33DaJU#"'732654+563632>76?67#"&'732654'#"'673264'.'3>7#"&(  `   M%%- )E$M9m%2Q!?"  '1" 1 G,A#=! ~"Y/Tj&/ *,d%P ( + l#"&'#5.#"#"&547326324&#"327#"'#"'7;>54&#"56;263533#3274#"3"54632A4*)3E  YM.EF 2 56P%!, <" 4#I5N$3  !6 *>0#$,9,Q##5)W6), .<) +Ms/6 +:')-1=8k_&W3G-X'$;(<`%&=47#5.#"#"&547326324&#"327#"'#"'7;>54&#"56;263533#67J/V3E  YM.EF 2 56P%!, <" 4#I5N$3C,>G ^! o5)W6), .<) +Ms/6 +:')-1=8k_&W3u#"&'#4'5&#.#"""&546326324&#"327#"'#"'7;>54&#"56;263533#3274#"3"54632A4*)2- .$# .;C/1) (P%!, <" 4#I5N$3  !6 *>0#$,9,Q## > ,4/7,$F1s/6 +:')-1=8k_&W3G-X'$;(<k%&=47#4'5&#.#"""&546326324&#"327#"'#"'7;>54&#"56;263533#67R/]2- .$# .;C/1) (P%!, <" 4#I5N$3A5CB _!  > ,4/7,$F1s/6 +:')-1=8k_&W3#`%sdqy#".'#5.#"#"&54732?6324/.''654.#"'#".547#5!632533#3274#"3"54632%2767&#&#"327'654.'"767#K*) 3F7LZ.EG  38 $%-X* $4F3  6 *>0#$,0)3#1% ?1b1 '96G5(M@!4 .<)+)."'  )7 ,K$3E3 1'X'$;(0)3#1% ?1b1 'CB b! r5(M@!4 .<)+)."'  )7 ,K$3E3#`%#(82&(E%Y(  . FP73267&#"&'#"&54632765'&5&'#"&'6?32654'4'#5!!3254'"'(# 8-$A71%-7'9X)"<6  $78$=  ""1 7);(&HM'-"$-' "! j3  @*33$H8$1.9C74632'.'#"&'6732654'#5!#&#"327'#"&3254'"':. #7"<8 #Zz%##" 'o:3#8$=&42.'3!E# 33" 4 X6G$H8$6.%/?&'#"&'6?32654'4'#5!#3254'"'͑Y)"<8  $7W)!d8$=j k3  @*33D6,G~8$H8$.KU#".'73254'#5>54&#"3&5467&'#"&'6?32654'4'#5!!3254'"'#."4ZI.PDM0)Wp278-F 4+2]17/"<8  $78$="/ ,527B%AYD) 1%-'4NG >3  @*33$H8$\.V_#"&'#5.#"#"&54732?632.#"#"'73267.'5#5!#3274#"3"54632%6325A4*)3C LZ.EF29 :(20A,  - B_8 )7 *>0#$,@5"'29,Q##Z6'M@*+ ';)* N4?4j#EK7"333X'$;(<84E\.KT%&=47#5.#"#"&54732?632.#"#"'73267.'5#5!#676325U/[3C LZ.EF29 :(20A,  - B_8c@5"'21T _! 36'M@*+ ';)* N4?4j#EK7"33#`%f84E;ss"&'#5.#"#"&54732?6324/.''654.#"'#".'#"&'6?32654'4'#5!632533#3274#"3"54632%2767&#&#"'3254'"'3#6"KT)3E LZ.EF 46  $%-44 "<8  $7!F3  6 *>0#$,0)3#2$ >8$=`' 96G##5(M@%0 .<)+)."'  )(3  @*3E3G,X'$;(8$=`' >G ^! p5(M@%0 .<)+)."'  )(3  @*3E3 (82&(($H8$6s#"/#4'5.#.#"""&5463263254/&''654&#"#'#".'#"&'6?32654'4'#5!632533#32>74#"3"54632%2767&#&#"'3254'"'3#6K*; 2-1$# -0#$, # 3#2$ !?8$=Z! 96G/ % +5/6-$F1$#"), %(3  @*3 E3F,'#'$;(9O ,+2&(!+$H8$  sv%&/&=47#4'5.#.#"""&5463263254/&''654&#"#'#".'#"&'6?32654'4'#5!632533#672767&#&#"'3254'"'3#6/ W2-1$# -0#$,@5"'29,Q##:*  +6"06-+?0N4?4j#EK7"333X'$;(<84E.U^%&/&=47#4&#.#"##"&546326325.#"#"'73267.'5#5!#676325X/ ^2- 1#! -54''4&#"3&546327%5!w=3+!*W "h~G29S&+H$+#!&A[G6H&B225GDi&R $j|"F"!0&8%`'2-$02T5FKV!_33!.6:%47""./32>54&#"&54>32632'&5!  o\&D?[>&: L%/,#<(6k :+N@/L$Xs!U?!(# $=4!3 "*W6 39OW ,33N.,08#"&'#5.+'675!5!#3274#"3"54632%'5A4*)39!~g  !6 *>0#$,9V$ %9,Q##Y.6b++33G-X'$;(<7@>e X,&.!%-%&=47#5.+'675!5!#67''/X39!~?B/9V$ %>G _! Y.6b++33#`%@>e X,N.,4=#"&'#5.+'675!5!#3274#"3"54632.'75A4*)39!~g  !6 *>0#$,`:,n6H''%9,Q##Y.6b++33G-X'$;(<&Q . I7Q$X,)."*3%&=47#5.+'675!5!#67.'7/[39!~B?5`:,n6H''%CB _! Y.6b++33#`%o&Q . I7Q$X,.LP#"&'#5.#"#".54732?6325.+'675!5!#3274#"3"54632%A4*)3C /D#-DG 19:!~o 6 *>0#$,9V9,Q##4&,-&- /;(*%-6b++33X'$;(<7@.@DL%&=47#5.#"#".54732?6325.+'675!5!#67'A/]3C /D#-DG 19:!~o6@9V$ %1T d! 4&,-&- /;(*%-6b++33 #`%@>e X,,T.*1'7675!5!##"'72>54&+#5.+"7zw9F0/")( \23@){({`*.33.(L1#B%'7LfX/JX/,w/'733##5./>4'"&5473267ZW$Ld3TT3:3:*4(%1( &'={({R5FaV3R,1-45)*%/DJ+,t{.'72533##&#"32632'7674#"#"&546WQ9M.3CC3V^!F O",E**8+ N  W{({5HM3`7#)"!E( 6)%1^,Q.''727#'47#5!##5./7##"&3a& !.K&3fO=3JN&H{({? $ 5)a0 133AAZ (R8 ,2 <F'7>32#"'326?#".'732654'#"547&'7&#"325k I4M.',59(#)\H>g@&3"5R0<3% =!o#>(5<$U{({TE)+) W<P-JcM|B @ykAE.0,"4!W>&1 5,. "'7%2>54.'&'#5!!#̦#bDLgc=2-* W{/{({Yi 33=&(0^,.9D'7.+532654./#"&=#5!!;26722654'#"'| %80?R/."C`z;GVx _104*= "12 NC1 {({ <(3/)$7='4[2@].33 @ZK&,.I'7".547#5!!32?&547#".'32?#"&'&5332654'zQ'2KzK9# 0 #0C( $*%*`4H3m9"@({({1/a1337'!>_;HTjN]X ! B!-"$,!@Rx+F! c6'$&,"+'7675!5!33##5'&'#5.+"7qpz63VV364?#q#){({a,+3@X3=$W2;V1,:H^'7#"&'#4&#&+&547;636;24&#""327#".546327>32'4&#"2654&#"53260g*\3B^#H}/69 ":, %n  "#! *5'2*,=35a.W83%'/{({40gBL3E9 C<9*#S x $ $>Ba1>-44'xE67!,3%,'5'723!32654#"'632#"&5#5!654'"&5473|6A/;d&!"-:c4,'d[[3G!*a{({\F636D$"1'6vS?'O3 2 ?/) .,T(4'73##"&54>7>54'#53&5472654'|/2Ư2@fHFV2 ʬP6&(:4I<"G0{({,N73Pr^HZD N=%3]G54#"'62|,'x 35% *>.9d{({?'33q 6Y1&"!=8[?,]('7327+"&54>32533##4&#"@, )F>)3& 3__3Y$-H{({5>3^+1:('c3W+w4,U.-1'7&54>32#"./332654&#"%5! + 8&KceT 9*& 3XYBLF57v{({ '" '}]\|$*-+)! V\IFa!w33,]8'733##5./>54&#"32727+"&5462@\%jI4QQ4";,C&,(*("7)!> (V~Q{({S8P)YX3I% 58 ""*$3- 2DJ,-.'7'&547'#5!!67d.Oe,.{({Lcb[2"33!Q~UY-,:5")'7"753##5./7&54632&U#yR3GkMp^),*' yU-J1&{({ DJ3VGK)[F=8Y325!5!##5.#"04#4,b3P3"4'"{({0&D/F"f33.:& ,  ,{s!/'7>32533##4/.''654&#"72767&#&#"] n6F3VV3  $%.% # 3#2$ ?{({O1PE3:."&!$ 9 ,+2&(!,Y..'73254&##5./67&'#5!!6;2#"'q I<38b($fNr3>(69vK Zr8{({ #1?ZFA_ %M#6@33*8&1,'aNaP'% , .'7.+'675!5!##9!~A3H''%{({.6b++33$X,,A./3'74632&#"3267#".'32654'#"&'5!)4! K%3!%`K9bC:"9%T,P"5R3OX{({$#00):2G #!9 @s1Jm_:Q?3Z733].%'7.'5#5!##54&#"#"&5475@h>NB93`#B2U)D>=79.{({:&!"33C+P,],82N,J."'7670/.+5!##5.'-9Y KU?3)9?IY7;G&4{({9C 233LCR :F7""5j, .''7675!5!##5.+"754632#"&G3>09twF&{({^6&33Y/, \'",.3'7;27#"&46326325!5!##4&#"4&#c0&;GG;1.+&S.N3@'." {({)90QR0+ 33Y&&3),9'7#"'7;>54&#"56;263533##4&#"327#"q1 4#I5N$3QQ3P%!, <{({')-1=8k_&W3^s/6 +,D.'7&'#5!##5./6&'5&r-~"F3BdE*I;0|UL{({C#A33@]G:%3(?+7qc{,. *'76325.'5#5!##5.#"#"'7326q@5"'2 B_853 :(20A,  -{({84EK7"33N4?4j#E,.#''72&/32>54&#"&546'5!|6lY&_:&: M$B0d{({Z9o2[p!H9!(# $<#$*9+K33,J./:'7"&=#5!!>7#".'32>54'4632#"&-%. R(4wY=a9'3.EN#)=#<.F {({6(33X(p"YoIg]$TY2$6-2(B&4 ,.!/'7%"&5#5!!>54#"'6324632#".#4Z.M#"(Lj!- {({/733h]d# "mL_-!,9.*'7&+5!##5&/674632#"&xeU I3C,=,E$Q(/K+) %&{({K]23Lp/8B*5G# $#%fX '&,#. '7'.+'675!5!##9V$ %9!~A3{({I@>e X,X.6b++33, . %'7%.'77.+'675!5!##`:,n69!~A3H''%{({&Q . I7 .6b++33$X,W.=A'&54632>32'654&#"#5&#"#".5473263254#"753$i.$. +"0$"531;V$6 ()R 3)%Cͫ #3g;- 9+#B2* "2+)A(2  /H33g-2#".'73254'#5>54&#"3&54>5e"4YJ.PDM0(Wp2 88-F 3,2]$5)g9)327B%AYC) 1%.'4N!1 a,"2#".'732654&#"&546s0A\G+N8,3 2L*+>*+3,M9AM*?L?DN64*!.BaR*%&54632#5&#"#"&5473263254#"]*34'2  )M.,#1',7)^6&)# C4$6 3+"(= *%&54632#5&#"#"&5473763254#"f1<31; :I,8'/='$C 2f142*W.2: ;(10I <.#4'!5!##".#"&54>323>$k>j6:D  ))&)H2 >33-&"E,, !2% ,,R&#"&546323#YId6(KE#3M.33e7 /J'69:~'.#'673#bF(B,D<Md33 ) 2L/0/N0!'56753#5.'I"5v0{33-%&&, )L!#3n?.'25#"&54632"2?#5&#""547326!'# '4##>U$-- ]_sX'. 0',/#Fk".##"&54732?6323#R %,1D.*"$ B 33` O90% %(1  }*"463263253#4&#."##"K'3' (32-+F% .BX=0e7- C",/P#".'732654'""""'732654&'.#"632'>54##"&54632&25F43aF83 T$   #7$%%*+3 < G#&5Y2 !#@:WfXq# -(>IL. ".B  !J)`o23####5.#"#"&547326324&#"327#"'#"'7;>54&#"56;26354&#"&5463.#"B4]XGJJ33E  YM.EF 2 56P%!, <" 4#I5N$6?HHiϑf,[TMG )7eE3b5)W6), .<) +Ms/6 +:')-1=8k_&z"$%HSu$#!.'26=33265#5!##"'67%30" C3X 64YA &)+""*2 FHm33:Q'P w.5%25!32>3247#5!##"'6732>54#"#".M,/'04?;mwXbpYB2 &@28K %'3:P%7(/(D4=?S633]dP$CJV?@ ;.$/726=&#"&46325!5!##"'>73265(<6!(8)5<;X65YB %0"B3\(evR3L33:Q'P*2 GG:.>I%26=4&#"4&#;27#"&46326325!5!##"'7673265M%@'." 0&;GG;1.+&SW 64YB & {0"C2)+Y&&3))90QR0+ 33:Q'P  q*2 GGmBM%26=4&#"327#"'#"'7;>54&#"56;263533##"'673265P%P%!, <" 4#I5N$3X 64YB &0"C2)+s/6 +:')-1=8k_&W3:Q'P q*2 GGm. (,7%5./67'&'#5!##"'?3265&'533265 ,$<!!E7.(X 74YA '(90`G8p3/#C30.,8(33;Q'P ' 3$  \g|+2FHJ.1;H%26=#".'#"&'6?32654'4'#5!##"'>?3254'"'33265Z%4 "<8  $W 65YB G8$=90"C2\+ (3  @*33:Q'P$H8$*4DJ:.+4?%26=.#"#"'73267.'5#5!##"'?632533265U% :(20A,  - B_8X 64YA  @5"'230"C3*,N4?4j#EK7"33;Q'P 84Eq*2 GHl^.4#"'&/32>54&#"&54632326=!5!# 65.#Y&_:&: M$B0d/6l8 C3wWt;Q' [p!H9!(# $<#$*9+KZ9D-GH33K.(%>54#"#".547#5!!32>327028K %';m-/'04? KAhV?@ ;)T622S%7(/(D4&I1- I$923#32654'7#"&54>54#!5!4#"#"&547326E5g~2HH28,u#218#9+01S1'$T>CL3F31B 6 5c"274'7&'#"&5463267&#"5 2  "(0M9<("/"& " $-"BA99:Q. $#"./&'73274#"3"5462%5!K*) "  -6 *>0F-$96G 4 3X'$;(:33.7&=47'6753S/c F@m1T d! 3f33.'6325#.'5#5!##5.#"#"'7326!)*03U/+4/"*)6% &9i;(33bA,4,Z 9 a.$6325.'5#5!##5.#"#"'7326`# #$I'o3)!("+ 0/gn+33<699I *Q.#632.#"#"'73267.'5#5!#!)/"*)6% &3U/b*09RA,4,Z 9;(338e #53'46;5!5!##"327#"'&eSS$g68z)5,@7_3DV{jMNOMmpIIL(/I#V*tGGe'#5373264'7#"'&546;5!5!##"_SS);5EC96LxSkEI]Jl$ O)C$3n'1*iR^FI\Ie}II#F%"3267#"&5467'#5'%&'"'>325!5!'&54>32'"!!7'432+M(!'88OCF5(H+b"+SG?*.,8)D $Q|B-&#=8N50C )=ϛ9lM7 SDFH9H5$2 ; % JWH5J* -D\%"3267#"32>7#".547&5467'#5'%&'"'>325!5!'&54>32'"!!7'432+M  "88O#7(# &)B=<& +5(H+b"+RH?*.+8)D $Q|B-& =8% <*7#5$%>0C )=ϛ9lM7 SCGH9H5$2 ; % JWH5J* -iH#53&54632'""#"&546;5!5!##"32632.'"'46322674&aaXN4*D!$R*O -s ZG i"0d-'D",,1%)NZkM62 ;# F_v4`IIP; ,R?8"-[(8+|KZt#532653#"&53#'7DD%!'/D31E, $K=Ar$2??2 ;UG#532653"&53###53'73CC%-/FbE-4 MHM==Y@r$3?A1%H:L,043###53%7'7&54>212653"&537#533'=R7LMGM31c>L!&!-/FbE-3;CC'e%>BUHH7#*$3?A1%2@>5LJ'+'"#&'#%7'7&54>322653#"&537#53=D $R:- ?1c>O,7+,/D31E-*DCC$ %IY>J7#%1 $2??2&2@&Kk%#532653#"&53&54>32&'"7DD%!'/E21F- $wY 1#*4 #*(@r$2?@1 ZsI, : & #T*e6'3'#"'&547&546;5!5!#!"632'674&#"~ WY &fAK#K&:;8" ;,=0&`II ; 6&) .! > e *@#53'3.547#5!##"&54654&#"&5475!"327"2USS W*8#P @cs6Ua."MV#C"$!?Q|Z)O R_5<IIp5(DwM-iOMOaEptKO%tQ&37#"3267#".'47&543254&#".54oF: K?184H&#1! #3;=8( 0 &)D<9%:/\"8p'@43F>7^HH8v#  L2'<*7#+=h=.Ma;"R"0'>aW<D23275#53###"'3274'4632.'#".547&54632'4#"6*SFeFGKNF>&)b  *&2@,61/eAH5=DG:587x%zHHO /O"* )-.4!@*HC1C3;C/59'1&"W8<463!5#53##!"32?2'#"54632327654#""&%!5!+/MMI{@D!'5$a5{w&'; 0!7kEy]HHr63, $X,tB .# rHg%.547#5!5#!5!53###"=[PMBMI)6T8 M84HoHGa4($w.Xg!5!53##5'%&'"'>325#vvNG+b"+,MHG՜9lM7 Se2;463273267#5!##5#"&547'7''67.74#"6dA58GF\S*#: ^(FG"`/6A)P"U&-8.$10880D4J'?9;8,X5EHHm38B6&"UAx7'9 D* ++(xe(4>3275#53##5'7''67&74#"6w*27GE32&#"4#"6v AMFI%.9'M=7`-=*27GEd'-#*,1*9- 1Z"HHC  >*Z.+-9F;7&29/E3EF1"%2++ * e*#53'-32654.'5!5!5!####".5 >>-"C = &GG# :(:i<#D8Y!F- qHHc(6./XrX e-3275#"&'5#5!!632'>54&#"#5'%p;,78jKe)E@(C 8>E!S3!*!G,!;I"//U@HHA5E "pB.k.'&%7"e-13275#"&'5#5!!632'>54&#"#5'%#53p;,78jKe)E@(C vE!S1!*!G,!",III"//U@HHA5E U.k.(%%7HEe7275#"&'5#5!##5'%5;4;/Ke)GG-")7"/GU@HHだ7&e#+##'7&#"#"'.'732=!5!25!6FG2ZI% A2 4_%11VaK9 G<Cl75M $/Ju&51kj',(.H24eoe(!632'654&#"#"'.'732=!5!o#)<\8/7X1 ,+ ?- 411VbJ9 G<oqS84X/1K=&',+51kk',(.He6#"'.'732=!5!!3632'>74&#".547B; Cl11VaK9 G<z$:\B= .!)2I^ 51kj',(.HHmUbk'"E0'N$0>Z*e;7267!5!!632'>54&#"#5#"&54?.54672'&#""H8H6ZwC!Q/4FG% q@/.XEJ',06*HHNX<]|/g0 ,tM? A )M+Ab N 4$'<e$N"&54?&'&5732=#5!##5#"'32675#"&54>32&'"32675^pR\; .-MG O% 5W4%+7C;L"2*6K( Aq?*$!< ","-HHx   + 4='A#31D8&8 E4 "?e #7"&'47%.547#5!##5#".547"327!;p%<D?FG=K:0G 8,)Sx'#K)G>)OM? A5&HH # 0%: '#NI]e.2747#5!#32675!5!##5#"&'4?#"&75CaW%;(3f#0]FGpy3N5C;GGQW@HHzM  >*:A Ue.7267!5!#632&#"#5#"'&5467672'&#""HF7D")4FGI*?36-DJ')?*HHMX t#-1B$B1 N  #&9*qe<#"&54>32&'"3267#".'&57326=#5!!#3267q7C;L"2*6K2 A?7^@7#; .J65W4&+1D8&8 E3#"<#4QJ0; ","HH224='@$e##"'&54735#5!L!45'9456Hye'"32767#".547.547#5!#; 8+'6J8yM0G 6,*Dd'#K)B'%%TF 0%:- R!&HHIze!5!47#5!#32767#"'&}CaW%;&039$ ~>4'&HC;GGQ*.I{Q"!e-32654/5!5!5!##5#"&'47%5##"'&5c = **GG&p # 9(`Y!0>7 qHH]N?=*(6//@t&e!5!32654.'5!##"'&5, = & #C4`HY!F- H(6"=3?ze:72654#"#"&546;5!5!##"263227""'&'"'4632)M#K,p#\@(W%4&`+Mh!)'S6+3.^HHJ'Qz+N?-oX"Pe*!5!632327#".'#"'&'7232654&#"BG+FU!"# bG47'2/V(469/3H$IMLF[&9/=,/H (e'463!5!5!###"&'4?5#""'&).8 f(GG]& r!M?1L\>1HfHH,@ ?)_@^O4^s)eD%2>75#53##57#"&'4?#".'3254&#"37".54632)+8=eGG32ry3bA(*-7)B:-= U9HZ- 8(HH*OM  ?) :.CG x*5-/C&#0=`DAe/46;5!5!##"34'432#'#"&'4?".)B4G)B+ N_ rFl>& -=U^HH+ B001c9>6?) e(92'CgG"&'4?#".547.54632#4.#"6;"3275#53##57p+.,@ 5,3K)-EH  #(6"9.Cs`FG&&I G=)J.% 21T)1GI& ',$DRoHH##OMje ##"&=#5!26=#j#P:632&#"327#"&M"Fd?(   ##+?X:YOETI('(<\THH 'J)I%E&W'qg/#53#".547.54632#54'"#"6;"3267o--Jbo,@ 5,3K)-EH';(6"8/$TAHnb.% 21T)1GI&$#R DR2Ae!5!463!##"&>>H iH&GV s.e7#53!5!463!##"&eek>H i.cH&GV sJe27#"&=#5!#>5*FKf6;;X*U@HH"/1e 7"&=#5!#632&#"#5'3275#Kf)GD/43G.;,78U@HH>L &/""//uXe"!5!#"&54632&#">7'27'R6EgYCJ9!  8+&HD ZGEc N},4s)e$#534&'46323##"&546;54#"11 J2#$_ (+0H' 38 *Ga o !2. "qe46;5#5!#3##"'& (\|/0% HHGO7:e327#"&'22654'#5!#=6 <'RI>Q^~)57Cl'/W!)Ud7v`,"6$HH+e 7275#"&'5#5!##5#"&'4?;4;/Jf)GG%r7"/GU@HHN?@)[e43275#"&'5#5!!632'>54&"#5#"&'47%5p;,78jJf)E@(C vE T7.GG r .I"//U@HHA5E U.h1)$>vM6?) "e !5!".54632>7"'67&'"Zʏ4$JN9aJX@%<+)g A 1*+HH:=(Ad2E]F%Gj4!+.+Fbe*6!5!>32#"'#"&5463232>54&#".#"32>N'ER ?,\&'^ESXEVO:* #0% H3(SS( H"/aR;:$W\gSJi'L% <:#$)@js+be.:#53!5!>32#"'#"&5463232>54&#".#"32>#bbN'ER?,\&'^ESXEVO:* "1% H3(SS( CYH"/aR;:$W\gSKh'L% =9#$)@js+uXe!5!267#"&54632'&#"3'R (+0EgYCJ')?HW/UZGEc N  #&9e&#%72>7#".5467#5!&#"326V+wN0,.'N>27+)_nB&'=6DT24'B,) /* HHLL&0 $Je 7"&=#53#'327'Kf)u*;,<$ǥU@HH{*"/)e "'&/732=!5!#3#B#D"D1V[9 F<J*0S& 5U',(.HHGQe(3!!3.54>7.543!5!5!#!"w+zC0E<56<1!'Q32"&'46?&/"'"#".#&}}]\#9,06 p%?$ */$H 9@;l8/oI D!21 e-%'32##5#"&'4?#"&54632&#"?!5!7+"FG&rEcZB G9!  s*7U]E?>) Kf=Ec M} H2e64&'463235#53##5#"&'47%5##"&546;54#" J20"eFG p_ (,1 ' 390HHI  >( ~(a o 2.e $"&'47%46;5#5!####"&%5#r & (\FH_^3@)NN?X HHOnFe+##5#"&'4?#"&54632'&#"327!5!FG&rEcYC G'& :,C;]E??) Jf=Fb M  +6;Hbh 64#">"&'47%.''7&547>325#53##59.5 9q 4u.C$ 11"%:d\MFG&(#'  ?*Q H9c4B3 +7>.HHM@ e8ES2675!5!!632'>54&#"#5#"&547&54672&#"%654.#"6322675"'#G9G9W54vC"P-!5EG1MFg87XD 7+6&370"! 5E7C#G-N2$HHoGP58C):Xm+[,&hi0W9:>*A:[ F.$'/8' h}G$- ,"09yeZ#533254#"#"&546;5!5!##3262632#'2674'"#5#"&54632&#"3275.'7xOO`1o 7"4v%Iyz'<U8&W=%<3HP:.49CG40;J^&" 21200aP41MKV NISd+ ^HHK5?Q R%=*] T,# (  7K'SHH$%eP!/AYW$3X24F# ]&c6:'" 9 nxe48%#"'#"&54735&'73274&#"#"'&546;5!5!#!2632##53G@+'j&:f(0ig J*/41Gki6T :#HOOq 6lU.;6{.#-19+ZHHIsKmxe5H#53%46;5!5!#!2632#5#"'&'47.547&'73254'"#"&"3275#"';xOO=1Gki6 U ;"H|>E4$%/40ih!J-`o<O~e:%4'5%5#"'#"'732654#"'6323275!5!##5#"'732FP("^B_e/`036e-0U%3 O[JPQ5+7-u7"GH HHi+*4D81889e1H"34'432#'#"&547#"&546?&546;5!5!#32?3267'"'A(C#+J`%wDG< ,L6'5B4sG>E-BGS" "7\-B Ex*!B)0o%JhJ0!G1,T=U^HH< %*1 + dS0f&e0747&54;5!5!##"632&#"327432'#"M"FdK( # ##+?K A %;?F('(<\THH ' J)IJ31g#y)}eN"34'432#'#".547".54632'&#"3>73267'".546;5!5!#O(B+ ')Ta&' %P:A-< > l*!;.;^. Xz:A6u<x*!B/0"TY7 0!%H*.@#&;!+L@,eo &A>#327'".546;5!5!# (B+ 13Z&.:r";",A  /'8FXz;A6=KAx*!B00"TXQ_N +# a' ("3 1ua%&@>$f7* !>^HHi fe.7"&547&546;5!5!##57##"672'"327FZLMLVGGMe -EFd/)G\#F95O6(^HH=25# HD$;e'3"34'432#'#"&547&546;5!5!#'&#"326)B+ 11S H<;F/B4G"$'$&/%<x+ B00[\3T.A(,=U^HH{N#%.8,e0##"327#"327#".546;5&'&5476;5!5!,x(5]1A).+2]1AVu=uN`9,jIM315,#Y:3'!Z;3N(L/3Q:./D7(&^H9,e=4>;5#".546;5!5!##"327#"32674.'7#"&)'91 ;oFa8,x(5]1A MUUPJ;9 EV2Y%#5 A+L+5P^HH#Y:39*.  + +8Y9eI4>;5!5!##"32674.'7#"32674.'7#"&54>;5"".)(;/h!&P5 9$%DUJ;9 CY1Y'91DU:B%5 ^HHX  ,%%;!9X  + )8YI#5 M Fnke4%#"'#"&54735&'73254&#"#"'&546;5!5!#!2632#G@+'j&:f(0ih J*/41Gki6T :#Hq 6lU.;6{.#-19+ZHHIs9VeT3254#""&546;5!5!##3262#"'323762#"'732654#""&547&'7Y`1o=4v%IVW'<U8&iO7:IM8& 'C)1`1/@=4vaC1B NISd+ ^HHK5>]A5'1( NI4, f-8Y 9VeLU46;5!5!##32?62#"&54632#"&546;5#"&'732654#""&>54#".IVW M8&1Yb@G(1JfL\SB#\R1`1:5=5u*1-XHH   5:'A2? $*.<'/BqR6D'j\  NI#N)#!e7!3##"&'4?35#3.54>7&43!5!5!###!"w(  \#B>Y5+A"DQ7"'4?&#"I,6!5J#9,0;8U=XK  $dAJz(y)=B0S:J5#"U 6 2% > )(&- #?#56#5j5:J;)^H)4s8$:Y-@P??_.0ieFO#!"632'654&#"#"&'#"&54>7467.546;5!5!&'26I,6!cL  :-0:8U;XI  ^%A#7T  $FW+A? > L5- #> $6 6"$!#PH! ?!#;)^H /6!:9e.7##5'7&'"'67&#""#"'&/732=!5!!632FG5DZCJ[  A2 "D!1V[9 G<Dl鱉) J N$/0S& 5U',(.HeVT+e82>7#".5467.'".546;5!5!##"34'432#"% '*E*Q=D7Xz:B4G)B+GTD6 <*?+:E# <&A>#=U^HH+ B008U;6$  8e#5327#"'&'5156%1D!A<HHEye+!5!47#5!#3267#"&'#"&%#327>cCzW&:&6j |>+B ZK1O\%;&03()HC;GG R`@{R*E@Q*"Qe-5#%##5#"&54?#''&/732=!5!5FGB%t#D4_%1U\9 G<l @ ?) S%*Iu'5U',(.H4Z"#&54>323###53654'.#"\H' / )R=*MMHMOJ#!$f#A,0/FN!HH &/D5":\E!.#"#.54>323###5H8K 0 !H "E/AnIMMHMeDi"!, 32:MIHHI13###53654'.#"#.547632&54632&#"}MMHMPJ# 3J,$2j P7$0 6-A HH &.E.:&<#J&F 67 ;Pj+.#"#&54>32&54632'"3###5W8Ye+7E"I 55[>4[: D $QMHMg0A)>,.!$+? l=E558 ; $F\GG4R6#5357#"'&'76#&54676323###53654'.#"AA>(M P#323###5BBN(M :%#8K 0 !H"E/?nJMMHM"WdxE"3(&YDi"!, 32;MHHH9^ &#"3###53&54>32r!/ SMHMK &@),UCB4a((-HH//2%!5CD h#4'&#3###53&5467632O8FFSMHMKA7,06s^Y:f/O3(HH#(7^':J<f#'&#"3###53&5467632`tޝN=DSMHMK9>DSCfI "I'HH)1X)X5=2327#"'3274'4632.'#"&547&54632'4#"6*TIONF>bc  &2A- 9@UeBD9 '/;597(O >+O"',. /UEIC1C.@+7N&1"  e1!5!463!!"32?2'#"5463232>54#"".Ep&y>D!'a5{w&B 3/ .!0O$HG5 4+j!X+tC )#FL e!5!.547#5!#"B[P)6T8HM84HH4(#x.:e!5!'%&'"'>32vvR+bOJ+SLHt9m&'7 SCO#La(14632732?#"&547'7''6?&74#"6J-8FF\S*!:)D9"_/4D(OEU.7V<9,!1809/C4J'@96<-JCj38B4&%VAy6")9-:,,, +Ke"46327'7''6?.74#"6eA57HF<(ـHU.6U8. 10880D4j Q7^HH #v# L / h>-=''%|-Gm8Kk#53/"#'&54>32QQE #*(:+.)*+I< & #T*;I4* e37".547.543!5!5!#!"632'674''7&#"pw%1:<-@,:=9*@!>?&R9A<:-4;0(@c3;7M <^HH 9!B-WO+::(,"&Kk&54>32&'"Y 1#*4 #*(KsI, : & #T*!.#'#73^{aCҔ Q ###53'#532673#"&53MGN8YY1+5=]BC[<+(HV.*CTVA!, M '7###53[TZpMHM\T\H&547632&'"###53KX($9%0 $SVMHMfpI1 ; % JXIH'?'"#'&54>32###53C32&'"3###53654&#"#&eOJ= I/&4AMMHMOR=;3/N)0W,(( ; I>%HH >N1+;4 {/#534>32>32&'"3###53654&#"#& QQ%K2J= H.&0AOOGMPR=;3/M)J)(0 ,)' ; I B%HH@L1+;4|Kt#53#'7``FK=[;|K(t'"#'&54>32#'7(D $R9,-,7)tK=% % IY;H5$2 ;|K*t#53/"#'&547632#'7*QQC!%S9+*%$8%qK=K+ $G\:B=2 ;LL #53#%7'7``Z?1c>[ޚ7#LL='"#&'#%7'7&547632=DD3:+ !?1c>W %%8%$ Io5L7#"2 LL=#53#%7'7&54637"#/=bb?1c>MK&II2 ) :+[њ7#:B: Ca2 U&54>32'"###53'73Y 0$,C!%TMHM==YhsH + ;$H]KH:,!###53%7'7&547632&'"#&'MHMB1d>F '$:$5 $R9*(H7#1 ; % IY5.cLP"%#53'"3###53%7'7&54>7633'PRPI4 LMGM31c>L$%@'Lm CAVHH7#157eE##"327#'#7.547#'"'.'732=!5!#3>;5!5!x)4+?8^/BGb^{`4=.#DCl10^`E9 G<UN2,J'-E#S)bӓ&2P1%*^ 50ub',(.HH=5LmHD #53/"3###53'73'&54>32PPD $P%MHM3=+-,8(I, $ HZHH:9I4%1 (3!%!!(?(_g14>325#!5!53##5"&'46?&/"'"#".#&(]\#9,01M}NG p%?$ */$| 9:HGi8/oI D!21  e9'3#5346;5!5!##3>32#".'73254#""&WESS31>4K+#9=!?Y93=Wk'q H6y!BO# `II28I 4M'QgQ.OS@p"#8e '346;5!5!##"327#"'&p Vg68z)5,@7_3DV{jMN!MmpIIL(0I#V*tGGe*'33254'7#"'.5476;5!5!##"M VV(2&96LxSkE102Fl$ !%;#j7'1*iR^F]4B52}II#ce5'346;5!5!##32?2#".573254#""& W{1>cY+R5+#9=!3mQC$3?Wj&q H6y!"!`II;5I 4M'6MQ7.PS@p"e*3'34>;5!5!##"&'4632#"'&>74#" VA+m)2YM>4#5 #:<hSR>&2."7@,hII>.?i%/5A-% )B)93e37267!5!!632'>54&#"#5'7.547672'&#""H8H6ZwC!Q/4FG-5?+-DJ')?*HHNX<]|/h0!+t9TY6@01 N  #&9ze(D%5#"&54>32&'"32675!#'326#".5732=#5!##5'l4A;L"3(6K)<'! 6V4&+n,AoF7 ; .-GG,1,D8(9 E4 ɘ* 4=':H"5Q[T0","-HH'9e##5'%##"'&54735#5!GG,!45'9韓8'456H?e."327!;'.547#5!##5'%#".548,)SxJK),*D?FG-"6O#/<)B'#N%-I! R!&HHc8  8&:4{e<#53#'#7.'73254#""&546;5!5!##327>32{PPL/1 ^{_-]E91W@oK6t%I{|'J*6M0E&֓ :GG0.&zLm"8'^HH;2H]e!%747#5!#327675!5!##5'7#"&!75CaW%;&88-0]FG,603N $ C;GGQ4+8HH{7~A 7te%D"327.54>75!"327654&#"%.547#5!##'#7.54-(1"xW6 "C !,6)8"Mt| fK`^{a@Y* .o30H$* pO7a9A@]49HHm (|ZAԓ`LJe$%'-32654/5!5!5!####"'&5 -"C = **GG# :(`8Y!0>7 qHHd(6./?ze.@72674#"#"&546;5!5!##5'7/"'46327675##"3237632)L#K,p#FG-] `+.9N!)'`>E:'%S6+3.^HH鎦9 !z+N?.PX" 0ۥK e0%'-6323275!5!##5#"'#"'&'7232654&#",!hG+FU!$FH 2 bG56'2/V(469/3n9$IMHHIX&9/=,/H 7,e%##"327#'#7&'.5476;5!5!,x"-,@6^0AFb^{`N=4,/?,1/.G!S)aӓ 8]6A8>mH9e*#'#73"3254'7#"'.5476;5!5!#^{`Er%0':275ItQgF000EhǓK?",C!f6'0(hO]E^1A12yHH-Ve:#'#737#".'73254'"#"&546;5!5!##32672K^{`C'3.2hOA#1W@oB6t%IVW $](,Ӕر(?& 5JO6.&zLm8%^HH0D- e+4#'#734>;5!5!##".547632#"'&>74#" ]{aD?* k(2UM)$1ObPgPQ6(1-Ӕ5@-fHH=,=g 17E5CNJKM#:31Re%'%####"&=#5!26=#-"GG}P325#!5!3XNG+bOJ+,MvМ9m&'7 SH)e36%2>75#53##7'7#".'3254&#"37".5463275)+8=eGG,894cA(*-6*B:-= U9G[-+ 8(HH}8|.DF x*5-/C&#0=aCA e'46;5!5!##"34'432#''%".)B4G)B+2_ ,Xz:-=U^HH+ B00V<9&A>g9%5#"&54>7.54632#54'"#"6;"3275#53##5' d//GM -3K)-EH&9*5"B$Fo^FH- ?N3#U(2FI&#"P DRoHHs8,e%'-463!5!5!####"&,!Db,GGh8l&HHGV se%%'32##5'%#"&54632&#"?!5!7+"FG-V,EcZB G9!  s*7UX81f=Ga M} H <e+4&'463235#53##5'%5##"&546;54&#" J20"eFH+ ^ '0,380HHl8Ia o .,e5#46;5#5!##5'%5##"&lɕ (\FH- _S. HH醞9/O ne(32>75#22654'#5!##5'%5#"&=6 >)7 ')57FI-!:P^~/W++t,"6$HHc8 3ve#"'&''7&'732=!5!#\I6 %18<,9 G<L1A858M8',(.HHe(".54632675!5!##5'75'4?&'"p4$JN9`KX@CD GG-/^ A 1*+H:=(Ac3E]FAxHHc9{Rp)!.+eG4#"6&'&547''6?.54632632'>54&#"'67&'"8.$1mL.=HV-6UA58GF] 57#4 )% 6),Y84(+++(}3PS?+ $)9,*089/D4G )% ; " #+R ' ;&= $i%.327'"&'5#535!##"327#"'&'#>;5p<+>"jJf),w*165G^1ARzgL6' uG,>#-)U@GGA/I.1T)rF2B!|-;ng+2327'"&'5#5%!##"32654'7#"'&'6;5p;,<$jJf) h%0';2DA75JuQiD)' 1`="/)U@HG@",C!258$1)hP[D(@{Vz7$h6#>;5327'"&'5#535!##"327##'#7.'uG, ;,<$jJf),w(4,@4]2A!S) ^{`Pv(!-( b@^O4^s`1HGO-? Ee/574>7&43!5!5!#!"!###"&=.5#2)DQ7&43!5!5!#!"!#5#"&5432&#"32675#.)DQ3m=1/"-P01FT?.le#'".547&=#5'l  (:FM; .j VL  * 5:f,DON Ee1"&'4?!3.54>7&43!5!5!#!"!#5\rBr%53H DQ?5#3.54>7&43!5!5!#!"w(  \ $Bl+52H!DQ5 B^HHNe277'7#"&=#5!#>5. Kf6;;WOTbU@HH"/e9#53%#5346;5!5!##32>32#".'73254#""&SSSS31>+=,+":=!?Y93?Xj%q H6yOO# `II;5 I 4L(QgQ.PS@p"e7#537#".547&546;5!5!#!"632'674&#"mSSY 9ZQ:AK#K&: :9!;,=09XbO7K6 *I-98K>&`II ; 8&).! >e*#53'46;5!5!##"34'432#/".SSE4H!(F',: b!In?' O?W`II+!C&1e>B)93#8e$#53'346;5!5!##"327#"'&eSS Vg68z)5,@7_3DV{jMNO!MmpIIL(/I#V*tGGe.#53'33264'7#"'.5476;5!5!##"USS VV(2&FB96LxSkE102Fl$ O!%;#3n'1*iR^F]4B52}II#ce8#53'346;5!5!##32672#".'7254#""&SS W{2>cY+L<+"9="?Y93>Wj'q H6yO!"!`II;5I 4M'QgQ.NS@p"e.7#53'34>;5!5!##"&'4632#"'&>74#"SS VA+m)2YM>4$6 #9=hSR>&2.2O"7@,hII>.?i%/5A-% (= LLP);31%e.#53'346;5!5!##"34'432#&'".SSWE4H!(F',: b$In?' O 4?W`II+!C&1e>B)93e7#53'3'#"'&547&5476;5!5!#!"632'674&#"SS WY &fAKK&:;,=0;VlO 7K6#6m98K>`II ;).! ? e <#53'3#5346;5!5!##32672#".'73254#""&SS W`SS31>+H>+":=!?Y93@Xi%q H6yO!BO# `II;5I 3L(QgQ.PS@p"$i )2327''3%"&'5#535!##"327#"'&'#>;5p<+>"@ WJf),w*165G^1ARzgL6' uG,>#-)Y!ͺU@GGA/I.1T)rF2B!|-;ng /8327''3%"&'5#5%!##"32654'7#"'&'676;5p;,<$@ WJf) h%0';2DA75JuQiD)' .G="/)Z!͹U@HG@",C!258$1)hP[D(@{1zEe39'3%4>7&5463!5!5!#!"!###"&=3.5#2 WD'*7&5463!5!5!#!"!#5 WrBr%53H D'*7&43!5!5!#!"!#5#"&54;#"'"32675#3. WDQ3m=1/"Uw1FT?1e$7#537"&=#5!#632&#"#5'3275#eeKf)GD/43G.;,78.cCU@HH>L &/""//&e"7#53!5!32654.'5!##"&'&5ee, = & # :(Eq0cHY!F- H(6./ln?L)4>32&#"3!##"'73274&#'7&E!89!m5#73267#"&547.54632&#";#"u2:!8{7pS7#".'#732654+732k 69 j.wv21M* 8!*K9NO,?!eDh1&>!S'74.'3265#".54632632&#"51k$ ?Y"' 5 .8&UD1c>'3l(1 -PF59FXY'"%.!_ "I1M^>N;QPE74"/73>54&#"#"'532>7'&#"7637632  3*,937#"327.!/:*7B}$pp-H(UD9$UUk)7"&54637654&#"#&54632&#7>7i-C8^)3-_2W?ZPTI%"F2*3q SaQ  G$/3*1A\=EQ4>`B%'7267'.547&547654';#"-R:Df`g~Z!H4|{JGMGoC KAB(5OK  ! )QJ&Gm'463!##".%&#"7>^E; ]J >;$BXL&ARR.5C7'&''7&{>Jb&8\%U%;<|Y%OF L)*- NI_$7= : 7G(#3 gl:6$ %+-F4726=33#'&54>32&'".9lrqoY/STC^7P* It &74354.'.54>323#"&V(#-,%PK"4FA!@uih6L@_<" /9--+C>a;&TB:U++0 HI4&#"56323##"&543x '5"|ih;+5-`>*!V qeU#(:%_%%267#"&=46;265&+732"&#"4w UXq ]!(AW8Dx(  "(\2d8{Y';RT=~  %#574632&#"32>7#"'&Vj)0$31315(]GGQ)h O $G16K$ U JM$"&54>32&#>546;&#"a.0  e2PMY2KU!tFf3 K )<*X^kj$)}]74632&+3267#".nY+, 53(W UU4=,PaM.9i+`= -O/#.'&+'32>7'&'767+.54>32m`5f~638. '1#P 1%(:I;G)%HE*6Tb g5(U S 9'#A (? >2.:'K,%"&5754+73'3267'Nn-T|-%9O,^5R#"'-"23##;#"/#73265.+5%0"j6b - %D/, 5%+NH_ R0R.!!(R&632&#";#"&".546776770&:[/$IcW~@$i;nU+/3Cb Q@$GP*DF$%DK=H \q34323#32?672'#"54>7654&#"#&dWtIFB ,?GLE6Fn",>;\#xG.K&)!K%;( 3 ]0}2>%&!#$".547#'!#"327<$DD2 vʐK@L\( +G.i1SSL4 2KV27'75.''4>)C& GM 5=,G,>I3#ZKuCq +5&U/9-1265'.54323265'.5467%&'&#"\5+4 B"+53n88/@b::'Lo+#,1/ WqK>c?,$ D.3 y '1<+f8$%= CE\"4632'%''7"&7"3654@cOPn[N4BQ$> Iy5GL4&#"5632#"'7326 '%'9BG 18D_-~BS&F<7;0H V $><#n3N8wRc)7"767'63.547.54>32&#";I+MPr*  ! S<%>>!d-*,H|?9 DeU: &A)8%$5 S6?N +3267'7.'#732>54+732k 69 p)t+X 8% K9NV,?!`4 SS) D>S :SL'46327#"'767''74&#"327#"H9Aw4;(\ 6qPx-$ld5FYS F'-6Ls,>//P*? +77>7'7&'4637654&##&54632&#sE3*4o )-C8^)3-_2W?75 SJ%"4>TFM  G#03 )1A!?,EP/';#"3267'7&=47.547654'y8|{JG5,4s`+<~Z(0(s$QJ&HfE5)aA)H(J %'463!##"& '%'.#"76[H; ^JdX9%!X'&6@PM-5BX}Jo,"H#27'7'7654&+7h9gv5ɓ +,/O2U[Hgy R326=33##"'4632&#"'%il/8lnmm]\I+-+NX8(z5)ISQYTf JP'+74354&'.54>323##"&'%V4',.OC1PR+6?+ih7'&>+;%_;' .:->z ,?Lp9?*:U),/ewEp J23##"&54354&#"56'%fE6ih;-5,`41 988fU#'9&^9)! V -eF]17265&+532632'74.#"+;#".5'#5$1V2H 3",>>B;.I2dQ n (5( RR/-HO>]i<; ;J] R R 72#"&54626546;#"#"'47&546;#";#" !'H9$a( {^EBNW85*(.&`)%t^:IW);&#"3674&+'32654&+532%,#'9[2! .LK( ,D?D~'XZ&%b1B> %!)#+5&DEa/Z;L@L$+T' QJ5h0"GU @2#"&5464+532#"&54632#4'&#"3267'&+'32!!#G`0A9^֍nLS^&HF*9%7H 3XVG,&,$-g?QJ59FcFVdPCj`G:EM!?, #,& ,R?G&5432&"72#"&'73265&'#"&'73254''7&54>32.#"KR?&r&< ~W1n8W)$0b[fi=r Mc*^SE @0f B`3,@aM "Ge&&R 4+#M. E=R9;*=BW16I33#'P=,.+%2654&''7'7"&54>32&#"%2#"&'71>2RAbZ74.#"2?#"&UC6kD+ch i) *B`'"   FX>M^ (*%ZYY2)& _ d0A265#"&'>74.#"327"&54>3273#".53Og ! *.7?X8ZL A.&Z@,q*OVO{J/hzpXJ b "#F:0DUU@ I @F+-'SM1)?TQ*a'46327#"'767''74&#"327#"H9Aw4;(\ 6qPx-$ld5FYS F'-6Ls,>//P*? @%2>54''7&#"#"'532>7'.#"763>32653#"'5"-H*"K9;T*=."3 5-.<'$6;'&-t'F!B-%,%4="9"6]HKV'&;.@BRW H 8 Cy#CA( R F<"&5467654'#"&54>7654&#"763"267#"3267zkbfg &y'{m3PIB765.#"76;3272>54.##l+e#HYA=1?(Xk"A?[8M3H2:@%Uk  b5Nn5/3' 97! *D=2D@A1(5 8%i! Q8 'P:1 '3JO     "!G4BQ4>32&#"#"'#".5463&'67&5463&2654.'3254.'"I 74a>6Si2gJ$ l1PP*Fh4]&  uH! HK.)^"6Qd\C -%\&.'I)g**  c(; ,,,< 2F)9" 4%!,@  #FP".5467&'73767'.#&'7632&#"#"'+.'732654#"*L@ 211o2MU'3IIG*G'bA "7]<73>.=?$n?+51=4cJ3-#"H3 ' bUO  :"%  #BQ1J#,FJ4#"#"'7>72.#"32#"32?&5432#"&54325&'&'7326S 5 (M2s ^hnhZ& OQIHL=9KGidGf0n4[D0_  L* ?() #,,!(  RAyPC{  BH1L37&54>367'.#3327&54;'&'#',*=#6&f)TD 4J6%'+.5467"&54>32&+;#"7674&5472 NZ<'$ ^y((=*S:m08 , *B$ I#'A7y' gTK:*-* S; I=#"D S)HO73267".54?654;7632#'&/#"&5467#".467327"&+*i .4'Q%# k'rL:J N-%5B W' >Co1YV +5%<.;*O ,, =#1I(G) )*(' Q(9,N2"+>1d+HNGN7< 8LI <54-<>@\4%&'#"&547327.54?65&/33274632NB')Q1\aN?2L>w *HG*g6e(AQp &2U,4~T) фyYn5645=JS!C.q( (:D;27c50"3%2#"'#'&'732>7'&''7'7&54632&5l% /bzbiHCT[219 )]Sj NKX.`E 'XT2GL{3@* ,$s0W3b@*BJ3%4#";!"/#53265&+7!2632#"'532kp(!/gK - (U/;j7Y/4 97!K>#?++[ R0R,$LR:?!1`BNU O e=3632&'#327#".'#;!"&/#53265&+72;(@$tJr/PK@!  !)(2&N3iN (T/<k?)Nu/  E 8&([  RR,$LR2,%2#73267'.+532654&+5>;8GDPNSZV-"".1:g.u cp 6I4)CzG9[;(U%&V H?! 277>7'7.5467&+9E&9 ,3 iV04341 ZS= $C*Q]M.[(4%2>5#"&'7>7''7"&54>32#76732654#"(c>xiFT <X.W?M-WtlR70-(GP#/<9@{`=6#$> 9fZ;D'*5H<$C1K+O--:",b#+"327#"&547&54672.#"#5'7.?.2v4^n=WTD39Bh7 <Lz>*65N b\Q sA%#"&546354#"327#"&54>7"&56732&#";233#5#>61'0-%;= A"$C!B.8 17)@[%E' oo$!7")2$4L'Wv6++ ,`J*$! J&$ koO472&#"#32327653#'#"&546;254+27#".54>3.jd 68 '#$TV,83#@;.mm]1Mb3L_FRg`= "0X[C*+;3UJ G*& !2( (i$]I#,*YG^oH'=fA7]4*I" <2654&#"'&/#67#"&54?''7&54>32E% =!B= Hp]15L?ARpƨBd%M36P%c$%2.!' -6$1K#4P6I!,B U>_+M6YT.9@ $)!0&3 !74'37>'2%'7"&54>327#"&''%oP :1YZq$% .WAMfIKc{ "$*).BU"D9+ $I<#^BfZ;D'*5&-n <7PTG>2#"'54>7"'4>54'76323463236grK)@.<=WW=jP"P'0ZJ;UU;F,I.u=7654.#"#&eUmmtHFA!+?HLE XG$ޱJu+*!;U U'U7265'.543253#53265'.5467%&'&#"R5+4 A"+53q6oo:V-;9'Ll,!-1/ YqJ@a=,$ D.3  1;+f 9&%= CG\ !"365446323#5'%''7"&%> IdMQlZllN3AM+!6.H69CL4&#"5632#"'7326#5'%3'9BG 18D_-~BS&F<7n;2m0H V $><#n3N8OSRIq#-7"7673#5'63.547.54>32&#";J+KQmmr* !!S<&=?!c,*,J|?: C7lU: %A)8%$5 S6?N5%#5'7.'#732654+532+326735n)u"0%7")K9N!69qm(pS)7$S&8SM@+>`2 E'/77>73#5'7&'4637654&##&54632&#jE3*&z oo)-D8^)4-`1W@66 TJ##5;&FM G#03*1A!?,FO+/+;#"32673#5'7&=47.547654'o5|{JG5+np3q_+;} X(0(s*QJ&F%~E5)aA)F*I  %@ #%&#"7>%463!53#5'%5##"&FW&& [H:nn:!]LcYNH# APf[I!33CU273#5'7'56'4+7^8fxoo6ʏ,,.N1ZIfz R!326=3353#5'%5##"'4632&#"/32353#5'%5#"&T3&)3 0PC1PS+5?.imm;%h8L=d;' M>?z ,>Lo9?+:_xEpg),-!2353#5'%5##"&54354&#"56]E6ioo:i;-4,_4288f>eF]j#&8'^9* V 57265&+5326323#7'7.#"+;#"/#5%1U+ 3!"K;9ln;5,2cQ n/ (4'!RR ,ID ]iD  ;J] R0R77>73#5'7.467&+w:C'9 mm-SKiU13441 0~S>V_ M+ 932654#"#5#"&'7>7''7"&54>32#76732673GP#/<n;d,DU BX/W?M-WthR7 +,(< nC-:",P&'>5#(<9fZ;D'*5H^,M6YT.;?/F!( H$4 $%3/!'.6%'.'4%3275%'7"&5463253#5#"&''%74'37>IIJc|-XfTXs%%mmbDU!C@Q :6%-BfZ;E&3=J;#aq=6PT9+%m''%L-Gd9I7&5467>7'.#3327&54;#"&'73>545'&#"'67&'#'lHC3g)4B#'=yMUP #'[HBk86S4&'! (#52L)281wEU  $'(8,AWU3) G.;H9<7])5!(7+(G 0&9 " %$"5 & "*432&#"#.֍ $&3:((zx : "(e&4E5#53'"#.54>72QQY*R9;$-A&II+6gP:+!. :L@#'#73^{`D3?73267'3265'.'"&5754+7367&'>72&#"#"'&,8O$S@)LMA-Ri-)05nZA*(DX\ '1`A!7-.6A;+#^5R%(@K XC!")8 =;$873267'"&5754+73>54&#"76323267#"&'-%8PLRi- {F)92@*M#A?&54&#"763232767'72&32>5'.'%32767'eX;O\')77]{`89Pj-'24nZ?,'RA11FH-2 ;.D "(:'@( ēo^5R "(AKX6A2%(##.5432.#"#3Q9.*%O"onND.a ; 0=`,4>32&#"#. <-'(R:((z$' : -@]4E-4&#"76323267#'#7.54>)*92?-I$@?%;TT;h0d8[B^{`$?:!=WX=o a :'-70':G%Z7 ɓ*G.*= "[T3#.''#"&563232>7'.'&543253To$*@D5EW*\L] 0LT6  * Dk"=*$n S$$ 9Z3,2I4    @T4&'&#"#%38xn07 N#BS )~%,73265'.'&=472&#"#'#7&'&'X k1:N Kz(=<4.Bd^#/ 8>$]{`OD:H1' "'7[< +!)4,E)Ǔ ,& 3%2654&'"4672&#"#'#7.5467&5)OFhITlp^@-(FWFSS7":@%^{a2N, [47*:.#4;'6CFCL[C G5/H*Ɠ$0+AS%1#'#7.54>54#"7633274>32^{a3M- >XY>l4A/Kvc=XW=>/ 2${fE퓓&2..@ !2gS90:)$.9)+`-<   !2#"&4"#4>32'.s4$#1E n6jIGvJ+ if" "67 85.SO/$94(. ""#4>32632&#"#4.n !6^>+L10 w(*S&=`p!>H4##y O .&Y79* ,2#"44>32632&#".#"#.- !5^>XLC w( ) S3e>-C nT *T!?G4#/5y O 0$[0B3*>2% 2#".5464&'&#"#%3"-+7yn.; M+! BS )~$".#"#4>3 632&FNI|ro '?oIv$T"O1B3!?G4#y O )2"47".#"#4>3 632&\GMI|r8S*o '?oIv$T*T8T"O2A4 59!?G4#y O 44.#"#&=632632&#"#N 4": UW)g ?54'" XRBV8T<;JC4IV)96( i=x)' 'L; ' <2654+'767+&'71E= 9&%/,-BhM`A,0)8 ;0-8=9514>324.'#;65'.1CQ-=mF*L+_80/; B# [/+01>.E94JN/ > 4T267#".5432#"2>#q ,v6=Y-D*N ,-t(q# 4632#"&#3Y'"!#2^e#)%`"#324&5432&!05Qڑ[*a'0"D m j P^!"#324&5432&2"4!!05PْY*Za'0"D m j P8 *TV= 2#"&546'7#%7#')1qe[N0&&%#E["#%7'7>;)!<[Nrd/"Gm1pE#6&LX! 4632#"&7"#%7'7>;="..""*W#A&<01^-u&"-+*"-Y<K&'#".533275432&#"{4 524^\$#?$%*!-^D} 6b2*#K&'#".533275432&#"{4 524^\$#?$%*!-^D} 6b2*#%!5!^72#".5464&#"326.;& . @p %()2>+- & /;j2)<'"%!5!=©^5B 62#"&5464>32&#"3%#"/732654&#'7"&'"#'$,#9;#n 9Ckkggi"I0Lg:&*32'"+2>;g)1"V>UkJ 92#"&546#34&#"5632#".54'7326h&,($*hh9CL->u9  .Q22" WB'9<*'1+1N X 9$:)<.! " ?LJ9 42#"&546'32673#5#"&547.54632&#";#")1)"62;"<}pqz;qU=nYe/*/L~}K')%"3'! ;@-[JA*:':HV8@Q!F ?2#"&5462#"&5463265'.'&=472&#"#"&'( 5,"%-$j j2:N My'>:6/Bc=Pb/.LN*<)P( # "%).)!+G2& #'7\<')45N';<lB 82#"&54#"';2673#5#".'#73267'&/#732I>' &$L#:7k .upqx6$>)$8 *9P)" 10D fC9q1*3 U#  TN4Y <H2#"&546'47"&54>;#";#"27#"'4672#".32654&#"( '$5fX#G'! J<#I&)?TAM).S\PyQp!#!-(=*" 1(!G/D3"5 T5#X.Y~Og;=v pV]Q@31)0 872#"&54627+.5467'."3265#".546(')",$1gE-L #>*49*#y<(, -/:(WB*)1*7'.#"7636321 '$5XuCC 66".4*+ ;;W*@.&6 6.-A%6AB"'" 1'"G2O6jHf0YWE8F&7_JMW&(>-@FSX*Fa +2#"&546353###"&'7327'.#"'6&1($**gyjopi{M*r )P N-L"=+*&!2+'lQ#_S:[ /&0;[ 12#"&5464&#"7633267#".54>)205+:2B-Ko^.c9wX*NK->YZ>R+&!(&# dQ8-:2'XE*\&>)Q7+>"" -:2#"&5464672&#"#".5467&52>54&'"' %,,4o_@-(FV FSR7-KM)@b8# X7724HfJTW)2))AMZD F57O($4/AR'3:'7C  22#"&546'3265'.'&=472&#"#"'&''0'$*: j2:N Lz'=<4/Ad^#/.LN*jU9Q)$#2+G2&!"'7\=+!)45N'7$ 52#"&5467 54>54#"7633274>32(!$)"5x>XY>l2C/Kvc,BMB,>/'%{Hcb*31'!9.@ !3 gS8)7(.9(7 `#8d (82#"&54%#3%#"'53674&#""76"&533267c>& '$-poE_$H1#&(M,$ %%jsM=(Xt`*" 1n`P 99!Oc*7Rԅe54&#"#&54632'"v)"$'$-po; +{.q.E*) 35-a3YA]PVJ6%D *11 )uGb##aR! #,)5 +2C_?GR:# 22#"&546";27#"&547"&54632&#";11!+6M#,$ LJB[gN=&!QK"$*11 )ESqO+5G> *72#".546#3".=4+7323767W')  +rp+E&&[<%# (CI&)>' " (MO$,! T-0!  Y 4C ?2#"&5464>32&#"3%2#"'#'&'7;>7'&''7&d&')"* 553b!>9>& 6g|fkKCWb" ._ Q>*)1*,  J( 'ZU.HO~5A"'59e 172#"&546726=3353##'&54>32&#"|&()"*z/:osopr +M0311'$5(8@,joqh(dU'%8().%R M#6GC1"'%"2(! A*:   k\=" 48K/,A?c<' (72#"&5464&#"5632353#5##"&543O' )",B"&=kpqj;.8+b!)" 1*6, X rj$ &;&`+ 972#"&546#3267#".=46;2654+532"&#"N& )"*qp4wW\:PA. `+EX9G|& ",)" 1)A}3f9 ,P3';TU> W +2#"&546265&+7!2;!"./#5>)'/4.>lIeV;K'W*-'(!-%NT\D&H!] U TN 12#"&546%#3#572>7#".54632&#"[(,54popΣ6*7E9's*1"5342#)>(#$'!R W&9a32&'3654r)"$'$6rNgs %! 2QV~ ?+( )2(X*11'" VHm"45V]_8l+QO1 R ^6E`k (2#"&546#3267#".54672&#}& )"*po([ VYA\,kX4.*55)" 1)+b?+GD%Q_N,;lwK :72#"&546#3"27+.54>32#.'&+'32>74&R2165poh+'1(;L5/<fX z%0< V <*91%73267'2#"&5467"&5754+7353#54:QJ()'$5Un. pqV(".*<)2&" `6T$pM 332#"&54>2353###;#"/#7326=4&+5''!* %&1#mop S=. 'F1, *..   7&-5a T1U,!*U# @2#"&5467"&547&54;.'""&=7654&#";27s& "$65̋ O+@-.Oy#=WVWC$5YB?L cIxMON34"%&"w3$SP %@H6 Q  !%.B;)8R7\( )'%"5632#"'53254"&533267 >$!0NS#G0"&%NShpK<(YqWvQgH88#Md^,c3@T Y 5)1"&533267"5632#"'53254.#5'%3pqK;(Zf1"!0LU %>'!&%N #*p=Do(`3?V YQiG+0$Md "W#"&##"&5463267 +W t5#//  E<Y]=&%( f`w'27#".'./&54676;53#";(  ()  % ,5#   "! *( 4`' ,T326=3#"&5432#V-!;-6BkR$<$K4)5Di/EZ#"&'6532=35!5!## D"+7#.)gdAV&B %MAA1|".'#"54632353'32=!/  <1B (G2*)3x.@*H4@x#"&'>753"&#"32>72F.&4qN-(ZA;%\+?J)&9-8\T!1>u$#".54232>54&#"#"5432327 LL?.S(d$).H3+)0C@,-=,<$% 2!: $ k[5654&#"&54>353&8 i<=20=32=O >"$  5nY)!RR$6O #".'3s,VjH.2tIv#"&##"&54632675! /*) r5"0- 8 4/!) N9$ ( G;;Be #&'5327%326=3#"&5432#PcSVbfRZ\W,#;O2CjR&%$2)((B4)LAi/D  gd #".'5327'"&547332>2+iY$G%fQZ]3P 2$! ' 8)(Wf+)MP0/'&z #"&'35!q?#F<L-X/@6655!5!#"&##"&546326788v := q5"0- 11l0013 &:N9$ ( GR2!5!5!326=3#"&5432#VeeM6!;P1HeR&11p11nJ2+dhLBo$E  @"#"&54632#"54654'&/A! 54&#"cOT]cQP_>4   (_  3@JKAXZT]^ZM ! |^_| ! ,(zBMl**=! 9"")@ # L.@),KJ" 8##$8"NAAO#9%@45Jfq?455X 4632"&#+5;+,00!H k@``YYE$!&00FAA@ =G[#"'5327'4&##3263>7%4>32!!#"&/47#5!.#"%"&547332>53@kL[]cVX^8Z,kaA6FzajJ" &=kFTv8BLEt'L4OG^v7R/ BUI-$3 V((A('7[5!WYA%EO9&5ZW2AZn"Dk65 в$Ajn+=5KX=I<.' BW &GQe#"'53275#"'5327'4&##3263>7%4>32!!#"&/47#5!.#"%"&5473326534iYP\cUX^lLY]cUX^,Z,kaA6FzajJ" &=kFTv8BLEt'L4OG^v7R/ BU&%)MV''A('V((A('7[5!WYA%EO9&5ZW2AZn"Dk65 в$Ajn+=5KX=&8 ?F BW@K"&5473326534&#"#326!2"'"!!#"#53267{BUI-+KWBY-!fKv_6F@Cq\=Z5%WMFu'L5D ##$z0X=I<@E CV8[g5 41*H8*AXo#Dk64 !AA;8:Q&a'f&c&&+&i&&o&\&&l&[&&&&Z&}&zz&E&&tx&&t&Xh&v/# R62#"&5426?5;#####"&54>=&'#"&54>54'4&+532676& &6+;@@cAN/7 '$+$BJ;&  &8\ ">]p%1hF'AFi JE>&:*C$ &WI]7/$;" 2#"&'67&'###535463235#&98F5̈^(8U?CK$>! c/nwu@}}kc52 |-{ %L:cA8'!f# 'bpLT[gn@A:g*P5 B62#"&543567&'#5!4&#"#4>323####"32>2#"&8&}-{MwZ2JC*@"C.am@_|:K$>! X:p+%/|T[gnAf>H$?<$g:A@8V!f# *_p@'z&'z&']&h',&vM&~zh',&vSX V4632"&26?5;+#+##"&54>=&'#"&54>54'4&+532676O00!H D &6+;pWTTJ@ W/AN/7 '$+$BJ;&  &8\ ">]$!&001hF'AFi JE>&:*C$ &WI]7/$;" %1 %,5% ''Z''W  ", %(E#(K#"&##"&5463267'7 D< r53/!45 @./1P4& Vk_B32=3#"&5432'7N3?:O3>gJ'Dr45p?M|{D9X-= a60('7'3270#".'.546;53#";035?  *  1#,",5"LuW    +"J#)V9t$( a +> F$, r    H M 6k   V j H? X$5$ E$H$TCopyleft 2002, 2003, 2005, 2008 Free Software Foundation.Copyleft 2002, 2003, 2005, 2008 Free Software Foundation.FreeSansFreeSansMediumMediumFontForge 2.0 : Free Sans : 3-5-2008FontForge 2.0 : Free Sans : 3-5-2008Free SansFree SansVersion $Revision: 1.136 $ Version $Revision: 1.136 $ FreeSansFreeSansGNUGNUhttps://savannah.gnu.org/projects/freefont/https://savannah.gnu.org/projects/freefont/The use of this font is granted subject to GNU General Public License.The use of this font is granted subject to GNU General Public License.http://www.gnu.org/copyleft/gpl.htmlhttp://www.gnu.org/copyleft/gpl.htmlThe quick brown fox jumps over the lazy dog.The quick brown fox jumps over the lazy dog.navadnoDovoljena je uporaba v skladu z licenco GNU General Public License.http://www.gnu.org/copyleft/gpl.html`erif bo za vajo spet kuhal doma e ~gance.P2:  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=> softhyphenmicroAmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflexuni0162uni0163TcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentlongsuni0180uni0181uni0182uni0183uni0184uni0185uni0186uni0187uni0188uni0189uni018Auni018Buni018Cuni018Duni018Euni018Funi0190uni0191uni0193uni0194uni0195uni0196uni0197uni0198uni0199uni019Auni019Buni019Cuni019Duni019Euni019FOhornohornuni01A2uni01A3uni01A4uni01A5uni01A6uni01A7uni01A8uni01A9uni01AAuni01ABuni01ACuni01ADuni01AEUhornuhornuni01B1uni01B2uni01B3uni01B4uni01B5uni01B6uni01B7uni01B8uni01B9uni01BAuni01BBuni01BEuni01BFuni01C0uni01C1uni01C2uni01C3uni01C4uni01C5uni01C6uni01C7uni01C8uni01C9uni01CAuni01CBuni01CCuni01CDuni01CEuni01CFuni01D0uni01D1uni01D2uni01D3uni01D4uni01D5uni01D6uni01D7uni01D8uni01D9uni01DAuni01DBuni01DCuni01DDuni01DEuni01DFuni01E0uni01E1uni01E2uni01E3uni01E4uni01E5Gcarongcaronuni01E8uni01E9uni01EAuni01EBuni01ECuni01EDuni01EEuni01EFuni01F0uni01F1uni01F2uni01F3uni01F4uni01F5uni01F8uni01F9 Aringacute aringacuteAEacuteaeacute Oslashacute oslashacuteuni0200uni0201uni0202uni0203uni0204uni0205uni0206uni0207uni0208uni0209uni020Auni020Buni020Cuni020Duni020Euni020Funi0210uni0211uni0212uni0213uni0214uni0215uni0216uni0217 Scommaaccent scommaaccent Tcommaaccent tcommaaccentuni021Euni021Funi0224uni0225uni0226uni0227uni0228uni0229uni022Auni022Buni022Cuni022Duni022Euni022Funi0230uni0231uni0232uni0233dotlessjuni0250uni0251uni0252uni0253uni0254uni0255uni0256uni0257uni0258uni0259uni025Buni025Cuni025Euni025Funi0260uni0261uni0262uni0263uni0264uni0265uni0266uni0267uni0268uni0269uni026Auni026Duni026Euni026Funi0270uni0271uni0272uni0273uni0274uni0275uni0276uni0277uni0278uni0279uni027Auni027Buni027Cuni027Duni027Euni027Funi0280uni0281uni0282uni0283uni0284uni0285uni0286uni0287uni0288uni0289uni028Auni028Buni028Cuni028Duni028Euni028Funi0290uni0291uni0292uni0294uni0295uni0296uni0297uni0298uni0299uni029Auni029Buni029Cuni029Duni029Euni029Funi02A0uni02A1uni02A2uni02A3uni02A4uni02A5uni02BEuni02BFuni02C9uni02CAuni02CBuni02D2uni02D3 gravecomb acutecombuni0302 tildecombuni0304uni0305uni0306uni0307 diaeresiscomb hookabovecombuni030Auni030Buni030Cuni030Duni030Euni030Funi0310uni0311uni0312uni0313uni0314uni0315uni0316uni0317uni0318uni0319uni031Auni031Buni031Cuni031Duni031Euni031Funi0320uni0321uni0322 dotbelowcombuni0324uni0325uni0326uni0327 ogonekcmbuni0329uni032Auni032Buni032Cuni032Duni032Euni032Funi0330uni0331uni0332uni0333uni0334uni0335uni0336uni0337uni0338uni0339uni033Auni033Buni033Cuni033Duni033Euni033Funi0340uni0341uni0342uni0343diaeresistonosnospuni0345uni0346uni0347uni0348uni0349uni034Auni034Buni034Cuni034Duni034Euni0350uni0351uni0352uni0353uni0354uni0355uni0356uni0357uni0358uni0359uni035Auni035Buni035Cuni035Duni035Euni035Funi0360uni0361uni0362uni0363uni0364uni0365uni0366uni0367uni0368uni0369uni036Auni036Buni036Cuni036Duni036Euni036Funi0374uni0375uni037Auni037Etonos dieresistonos Alphatonos anoteleia EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos OmegatonosiotadieresistonosAlphaBetaGammauni0394EpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsiuni03A9 IotadieresisUpsilondieresis alphatonos epsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdauni03BCnuxiomicronrhosigma1sigmatauupsilonphichipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos omegatonostheta1Upsilon1phi1 pisymbolgreekuni03D7uni03F0rhosymbolgreekuni03F5uni0400 afii10023 afii10051 afii10052 afii10053 afii10054 afii10055 afii10056 afii10057 afii10058 afii10059 afii10060 afii10061uni040D afii10062 afii10145 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097uni0450 afii10071 afii10099 afii10100 afii10101 afii10102 afii10103 afii10104 afii10105 afii10106 afii10107 afii10108 afii10109uni045D afii10110 afii10193 afii10147 afii10195uni048Cuni048Duni048Euni048F afii10050 afii10098uni0492uni0493uni0494uni0495uni0496uni0497uni0498uni0499uni049Auni049Buni049Cuni049Duni049Euni049Funi04A0uni04A1uni04A2uni04A3uni04A4uni04A5uni04A6uni04A7uni04AAuni04ABuni04ACuni04ADuni04AEuni04AFuni04B0uni04B1uni04B2uni04B3uni04B4uni04B5uni04B6uni04B7uni04B8uni04B9uni04BAuni04BBuni04BCuni04BDuni04BEuni04BFuni04C0uni04C1uni04C2uni04C3uni04C4uni04C5uni04C6uni04C7uni04C8uni04C9uni04CAuni04CBuni04CCuni04CDuni04CEuni04D0uni04D1uni04D2uni04D3uni04D4uni04D5uni04D6uni04D7uni04D8 afii10846uni04DAuni04DBuni04DCuni04DDuni04DEuni04DFuni04E0uni04E1uni04E2uni04E3uni04E4uni04E5uni04E6uni04E7uni04E8uni04E9uni04EAuni04EBuni04ECuni04EDuni04EEuni04EFuni04F0uni04F1uni04F2uni04F3uni04F4uni04F5uni04F8uni04F9uni0531uni0532uni0533uni0534uni0535uni0536uni0537uni0538uni0539uni053Auni053Buni053Cuni053Duni053Euni053Funi0540uni0541uni0542uni0543uni0544uni0545uni0546uni0547uni0548uni0549uni054Auni054Buni054Cuni054Duni054Euni054Funi0550uni0551uni0552uni0553uni0554uni0555uni0556uni0559uni055Auni055Buni055Cuni055Duni055Euni055Funi0561uni0562uni0563uni0564uni0565uni0566uni0567uni0568uni0569uni056Auni056Buni056Cuni056Duni056Euni056Funi0570uni0571uni0572uni0573uni0574uni0575uni0576uni0577uni0578uni0579uni057Auni057Buni057Cuni057Duni057Euni057Funi0580uni0581uni0582uni0583uni0584uni0585uni0586uni0587uni0589uni058A afii57799 afii57801 afii57800 afii57802 afii57793 afii57794 afii57795 afii57798 afii57797 afii57806 afii57796 afii57807 afii57839 afii57645 afii57841 afii57842 afii57804 afii57803 afii57658uni05C4 afii57664 afii57665 afii57666 afii57667 afii57668 afii57669 afii57670 afii57671 afii57672 afii57673 afii57674 afii57675 afii57676 afii57677 afii57678 afii57679 afii57680 afii57681 afii57682 afii57683 afii57684 afii57685 afii57686 afii57687 afii57688 afii57689 afii57690uni0700uni0701uni0702uni0703uni0704uni0705uni0706uni0707uni0708uni0709uni070Auni070Buni070Cuni070Duni0710uni0711uni0712uni0713uni0714uni0715uni0716uni0717uni0718uni0719uni071Auni071Buni071Cuni071Duni071Euni071Funi0720uni0721uni0722uni0723uni0724uni0725uni0726uni0727uni0728uni0729uni072Auni072Buni072Cuni0730uni0731uni0732uni0733uni0734uni0735uni0736uni0737uni0738uni0739uni073Auni073Buni073Cuni073Duni073Euni073Funi0740uni0741uni0742uni0743uni0744uni0745uni0746uni0747uni0748uni0749uni074Auni0901uni0902uni0903uni0904uni0905uni0906uni0907uni0908uni0909uni090Auni090Buni090Cuni090Duni090Euni090Funi0910uni0911uni0912uni0913uni0914uni0915uni0916uni0917uni0918uni0919uni091Auni091Buni091Cuni091Duni091Euni091Funi0920uni0921uni0922uni0923uni0924uni0925uni0926uni0927uni0928uni0929uni092Auni092Buni092Cuni092Duni092Euni092Funi0930uni0931uni0932uni0933uni0934uni0935uni0936uni0937uni0938uni0939uni093Buni093Cuni093Duni093Euni093Funi0940uni0941uni0942uni0943uni0944uni0945uni0946uni0947uni0948uni0949uni094Auni094Buni094Cuni094Duni094Funi0950uni0951uni0952uni0953uni0954uni0955uni0958uni0959uni095Auni095Buni095Cuni095Duni095Euni095Funi0960uni0961uni0962uni0963uni0964uni0965uni0966uni0967uni0968uni0969uni096Auni096Buni096Cuni096Duni096Euni096Funi0970uni0971uni0972uni0973uni0974uni0975uni0976bn_candrabindu bn_anusvara bn_visargabn_abn_aabn_ibn_iibn_ubn_uubn_ribn_libn_ebn_aibn_obn_aubn_kabn_khabn_gabn_ghabn_ngabn_cabn_chabn_jabn_jhabn_nyabn_ttabn_tthabn_ddabn_ddhabn_nnabn_tabn_thabn_dabn_dhabn_nabn_pabn_phabn_babn_bhabn_mabn_yabn_rabn_labn_shabn_ssabn_sabn_habn_nukta bn_avagraha bn_aakaarbn_ikaar bn_iikaarbn_ukaar bn_uukaar bn_rikaar bn_rrikaarbn_ekaar bn_aikaarbn_okaar bn_aukaar bn_hasanta bn_half_ta bn_aumarkbn_rrabn_rhabn_yyabn_rribn_lli bn_likaar bn_llikaarbn_zerobn_onebn_twobn_threebn_fourbn_fivebn_sixbn_sevenbn_eightbn_nine bn_asamira bn_asamiba bn_rupeemark bn_rupeesign bn_currency1 bn_currency2 bn_currency3 bn_currency4bn_currencyless bn_currency16 bn_issharuni0A01uni0A02uni0A03uni0A05uni0A06uni0A07uni0A08uni0A09uni0A0Auni0A0Funi0A10uni0A13uni0A14uni0A15uni0A16uni0A17uni0A18uni0A19uni0A1Auni0A1Buni0A1Cuni0A1Duni0A1Euni0A1Funi0A20uni0A21uni0A22uni0A23uni0A24uni0A25uni0A26uni0A27uni0A28uni0A2Auni0A2Buni0A2Cuni0A2Duni0A2Euni0A2Funi0A30uni0A32uni0A33uni0A35uni0A36uni0A38uni0A39uni0A3Cuni0A3Euni0A3Funi0A40uni0A41uni0A42uni0A47uni0A48uni0A4Buni0A4Cuni0A4Duni0A59uni0A5Auni0A5Buni0A5Cuni0A5Euni0A66uni0A67uni0A68uni0A69uni0A6Auni0A6Buni0A6Cuni0A6Duni0A6Euni0A6Funi0A70uni0A71uni0A72uni0A73uni0A74uni0A81uni0A82uni0A83uni0A85uni0A86uni0A87uni0A88uni0A89uni0A8Auni0A8Buni0A8Duni0A8Funi0A90uni0A91uni0A93uni0A94uni0A95uni0A96uni0A97uni0A98uni0A99uni0A9Auni0A9Buni0A9Cuni0A9Duni0A9Euni0A9Funi0AA0uni0AA1uni0AA2uni0AA3uni0AA4uni0AA5uni0AA6uni0AA7uni0AA8uni0AAAuni0AABuni0AACuni0AADuni0AAEuni0AAFuni0AB0uni0AB2uni0AB3uni0AB5uni0AB6uni0AB7uni0AB8uni0AB9uni0ABAuni0ABCuni0ABDuni0ABEuni0ABFuni0AC0uni0AC1uni0AC2uni0AC3uni0AC4uni0AC5uni0AC7uni0AC8uni0AC9uni0ACBuni0ACCuni0ACDuni0AD0uni0AE0uni0AE4uni0AE5uni0AE6uni0AE7uni0AE8uni0AE9uni0AEAuni0AEBuni0AECuni0AEDuni0AEEuni0AEFuni0AF0uni0AF1uni0B02uni0B03uni0B05uni0B06uni0B07uni0B09uni0B0Buni0B0Funi0B13uni0B15uni0B16uni0B17uni0B18uni0B1Auni0B1Cuni0B1Duni0B1Funi0B20uni0B21uni0B2Auni0B2Buni0B2Funi0B30uni0B32uni0B33uni0B36uni0B37uni0B38uni0B39uni0B3Euni0B3Funi0B40uni0B41uni0B42uni0B43uni0B47uni0B60uni0B66uni0B67uni0B68uni0B69uni0B6Auni0B6Buni0B6Cuni0B6Duni0B6Euni0B6Funi0B82uni0B83uni0B85uni0B86uni0B87uni0B88uni0B89uni0B8Auni0B8Euni0B8Funi0B90uni0B92uni0B93uni0B94uni0B95uni0B99uni0B9Auni0B9Cuni0B9Euni0B9Funi0BA3uni0BA4uni0BA8uni0BA9uni0BAAuni0BAEuni0BAFuni0BB0uni0BB1uni0BB2uni0BB3uni0BB4uni0BB5uni0BB7uni0BB8uni0BB9uni0BBEuni0BBFuni0BC0uni0BC1uni0BC6uni0BC7uni0BC8uni0BCAuni0BCBuni0BCCuni0BCDuni0BD7uni0BDAuni0BDBuni0BDCuni0BDDuni0BE1uni0C83uni0C85uni0C86uni0C87uni0C88uni0C89uni0C8Auni0C8Euni0C8Funi0C90uni0C92uni0C93uni0C94uni0C95uni0C96uni0C97uni0C98uni0C99uni0C9Auni0C9Cuni0C9Euni0C9Funi0CA0uni0CA1uni0CA2uni0CA3uni0CA4uni0CA5uni0CA6uni0CA7uni0CA8uni0CB0uni0CB1uni0CB2uni0CB3uni0CE6uni0CE7uni0CE8uni0CE9uni0CEAuni0CEBuni0CECuni0CEDuni0CEEuni0CEFuni10A0uni10A1uni10A2uni10A3uni10A4uni10A5uni10A6uni10A7uni10A8uni10A9uni10AAuni10ABuni10ACuni10ADuni10AEuni10AFuni10B0uni10B1uni10B2uni10B3uni10B4uni10B5uni10B6uni10B7uni10B8uni10B9uni10BAuni10BBuni10BCuni10BDuni10BEuni10BFuni10C0uni10D0uni10D1uni10D2uni10D3uni10D4uni10D5uni10D6uni10D7uni10D8uni10D9uni10DAuni10DBuni10DCuni10DDuni10DEuni10DFuni10E0uni10E1uni10E2uni10E3uni10E4uni10E5uni10E6uni10E7uni10E8uni10E9uni10EAuni10EBuni10ECuni10EDuni10EEuni10EFuni10F0uni10F1uni10F2uni10F3uni10F4uni10F5uni1E00uni1E01uni1E02uni1E03uni1E04uni1E05uni1E06uni1E07uni1E08uni1E09uni1E0Auni1E0Buni1E0Cuni1E0Duni1E0Euni1E0Funi1E10uni1E11uni1E12uni1E13uni1E14uni1E15uni1E16uni1E17uni1E18uni1E19uni1E1Auni1E1Buni1E1Cuni1E1Duni1E1Euni1E1Funi1E20uni1E21uni1E22uni1E23uni1E24uni1E25uni1E26uni1E27uni1E28uni1E29uni1E2Auni1E2Buni1E2Cuni1E2Duni1E2Euni1E2Funi1E30uni1E31uni1E32uni1E33uni1E34uni1E35uni1E36uni1E37uni1E38uni1E39uni1E3Auni1E3Buni1E3Cuni1E3Duni1E3Euni1E3Funi1E40uni1E41uni1E42uni1E43uni1E44uni1E45uni1E46uni1E47uni1E48uni1E49uni1E4Auni1E4Buni1E4Cuni1E4Duni1E4Euni1E4Funi1E50uni1E51uni1E52uni1E53uni1E54uni1E55uni1E56uni1E57uni1E58uni1E59uni1E5Auni1E5Buni1E5Cuni1E5Duni1E5Euni1E5Funi1E60uni1E61uni1E62uni1E63uni1E64uni1E65uni1E66uni1E67uni1E68uni1E69uni1E6Auni1E6Buni1E6Cuni1E6Duni1E6Euni1E6Funi1E70uni1E71uni1E72uni1E73uni1E74uni1E75uni1E76uni1E77uni1E78uni1E79uni1E7Auni1E7Buni1E7Cuni1E7Duni1E7Euni1E7FWgravewgraveWacutewacute Wdieresis wdieresisuni1E86uni1E87uni1E88uni1E89uni1E8Auni1E8Buni1E8Cuni1E8Duni1E8Euni1E8Funi1E90uni1E91uni1E92uni1E93uni1E94uni1E95uni1E96uni1E97uni1E98uni1E99uni1E9Buni1EA0uni1EA1uni1EA2uni1EA3uni1EA4uni1EA5uni1EA6uni1EA7uni1EA8uni1EA9uni1EAAuni1EABuni1EACuni1EADuni1EAEuni1EAFuni1EB0uni1EB1uni1EB2uni1EB3uni1EB4uni1EB5uni1EB6uni1EB7uni1EB8uni1EB9uni1EBAuni1EBBuni1EBCuni1EBDuni1EBEuni1EBFuni1EC0uni1EC1uni1EC2uni1EC3uni1EC4uni1EC5uni1EC6uni1EC7uni1EC8uni1EC9uni1ECAuni1ECBuni1ECCuni1ECDuni1ECEuni1ECFuni1ED0uni1ED1uni1ED2uni1ED3uni1ED4uni1ED5uni1ED6uni1ED7uni1ED8uni1ED9uni1EDAuni1EDBuni1EDCuni1EDDuni1EDEuni1EDFuni1EE0uni1EE1uni1EE2uni1EE3uni1EE4uni1EE5uni1EE6uni1EE7uni1EE8uni1EE9uni1EEAuni1EEBuni1EECuni1EEDuni1EEEuni1EEFuni1EF0uni1EF1Ygraveygraveuni1EF4uni1EF5uni1EF6uni1EF7uni1EF8uni1EF9uni1F00uni1F01uni1F02uni1F03uni1F04uni1F05uni1F06uni1F07uni1F08uni1F09uni1F0Auni1F0Buni1F0Cuni1F0Duni1F0Euni1F0Funi1F10uni1F11uni1F12uni1F13uni1F14uni1F15uni1F18uni1F19uni1F1Auni1F1Buni1F1Cuni1F1Duni1F20uni1F21uni1F22uni1F23uni1F24uni1F25uni1F26uni1F27uni1F28uni1F29uni1F2Auni1F2Buni1F2Cuni1F2Duni1F2Euni1F2Funi1F30uni1F31uni1F32uni1F33uni1F34uni1F35uni1F36uni1F37uni1F38uni1F39uni1F3Auni1F3Buni1F3Cuni1F3Duni1F3Euni1F3Funi1F40uni1F41uni1F42uni1F43uni1F44uni1F45uni1F48uni1F49uni1F4Auni1F4Buni1F4Cuni1F4Duni1F50uni1F51uni1F52uni1F53uni1F54uni1F55uni1F56uni1F57uni1F59uni1F5Buni1F5Duni1F5Funi1F60uni1F61uni1F62uni1F63uni1F64uni1F65uni1F66uni1F67uni1F68uni1F69uni1F6Auni1F6Buni1F6Cuni1F6Duni1F6Euni1F6Funi1F70uni1F71uni1F72uni1F73uni1F74uni1F75uni1F76uni1F77uni1F78uni1F79uni1F7Auni1F7Buni1F7Cuni1F7Duni1F80uni1F81uni1F82uni1F83uni1F84uni1F85uni1F86uni1F87uni1F88uni1F89uni1F8Auni1F8Buni1F8Cuni1F8Duni1F8Euni1F8Funi1F90uni1F91uni1F92uni1F93uni1F94uni1F95uni1F96uni1F97uni1F98uni1F99uni1F9Auni1F9Buni1F9Cuni1F9Duni1F9Euni1F9Funi1FA0uni1FA1uni1FA2uni1FA3uni1FA4uni1FA5uni1FA6uni1FA7uni1FA8uni1FA9uni1FAAuni1FABuni1FACuni1FADuni1FAEuni1FAFuni1FB0uni1FB1uni1FB2uni1FB3uni1FB4uni1FB6uni1FB7uni1FB8uni1FB9uni1FBAuni1FBBuni1FBCuni1FBDuni1FBEuni1FBFuni1FC0uni1FC1uni1FC2uni1FC3uni1FC4uni1FC6uni1FC7uni1FC8uni1FC9uni1FCAuni1FCBuni1FCCuni1FCDuni1FCEuni1FCFuni1FD0uni1FD1uni1FD2uni1FD3uni1FD6uni1FD7uni1FD8uni1FD9uni1FDAuni1FDBuni1FDDuni1FDEuni1FDFuni1FE0uni1FE1uni1FE2uni1FE3uni1FE4uni1FE5uni1FE6uni1FE7uni1FE8uni1FE9uni1FEAuni1FEBuni1FECuni1FEDuni1FEEuni1FEFuni1FF2uni1FF3uni1FF4uni1FF6uni1FF7uni1FF8uni1FF9uni1FFAuni1FFBuni1FFCuni1FFDuni1FFEenquademquadenspaceemspacethreeperemspacefourperemspace sixperemspace thinspacezerowidthspacezerowidthnonjoinerzerojoinuni2010uni2011 figuredash afii00208 quotereverseduni201Funi2023onedotenleaderuni2031minuteseconduni2034uni2035uni2036uni2037uni203B exclamdbluni203Doverlineuni2045uni2046uni2047uni2048uni2049uni204B zerosuperioruni2071 foursuperior fivesuperior sixsuperior sevensuperior eightsuperior ninesuperior zeroinferior oneinferior twoinferior threeinferior fourinferior fiveinferior sixinferior seveninferior eightinferior nineinferiorpesetauni20A8 afii57636Eurouni20B5uni210Buni210Cuni2110Ifrakturuni2112 afii61352uni2117 weierstrassuni211BRfrakturuni2126uni2127uni2128uni212Aangstromuni212Cuni212Duni2130uni2131uni2132uni2133 alephmathonethird twothirdsuni2155uni2156uni2157uni2158uni2159uni215A oneeighth threeeighths fiveeighths seveneighthsuni215Funi2160uni2161uni2162uni2163uni2164uni2165uni2166uni2167uni2168uni2169uni216Auni216Buni216Cuni216Duni216Euni216Funi2170uni2171uni2172uni2173uni2174uni2175uni2176uni2177uni2178uni2179uni217Auni217Buni217Cuni217Duni217Euni217F arrowleftarrowup arrowright arrowdown arrowboth arrowupdn arrowupleft arrowuprightarrowdownright arrowdownleft arrowbarright arrowhookleftarrowhookrightcarriagereturnharpoonleftbarbuparrowleftbothalfharpoonupright harpoonupleftharpoonrightbarbuparrowrightbothalfharpoondownrightharpoondownleftharpoonrightleft arrowdblleft arrowdblup arrowdblright arrowdbldown arrowdblboth arrowdblbothvarrowsquiggleright universal existentialemptyset Delta.mathgradientelement notelementuni220Asuchthat notcontains ownersmalluni2210uni2213uni2214 slashmath backslashmath asteriskmathuni2219 proportionalangledividesnotbarparallel notparallel logicaland logicalor intersectionunionuni222Cuni222Duni222E thereforesimilar reversedtildeuni223E wreathproduct notsimilaruni2242 asymptequalnotasymptequal congruentapproxnotequalnotapproxequaluni2249equivasymptotic approaches equivalence notidenticalmuchless muchgreaternotequivasymptoticnotless notgreater notlessequalnotgreaterequaluni2272uni2273precedesfollows precedesequal followsequal notprecedes notsucceedssubsetsuperset notsubset notsuperset reflexsubsetreflexsuperset notsubseteqlnotsuperseteqluni228C squareimagesquareoriginal subsetsqequalsupersetsqequalintersectionsqunionsq circleplusuni2296circlemultiply circledivide circledot turnstilelefttacklefttackdown perpendicular assertion truestate triangleright trianglelefttriangleftequaltriangrightequalnarylogicaland narylogicalornaryintersection naryuniondotmathuni22C6bowtiepreceedsnotequalfollowsnotequalnotsubsetsqequalnotsupersetsqequaluni2300 ceilingleft ceilingright floorleft floorright integraltp integralbtfrown slurbelow angleleft anglerightuni23AEuni2422SF100000uni2501SF110000uni2503uni2504uni2505uni2506uni2507uni2508uni2509uni250Auni250BSF010000uni250Duni250Euni250FSF030000uni2511uni2512uni2513SF020000uni2515uni2516uni2517SF040000uni2519uni251Auni251BSF080000uni251Duni251Euni251Funi2520uni2521uni2522uni2523SF090000uni2525uni2526uni2527uni2528uni2529uni252Auni252BSF060000uni252Duni252Euni252Funi2530uni2531uni2532uni2533SF070000uni2535uni2536uni2537uni2538uni2539uni253Auni253BSF050000uni253Duni253Euni253Funi2540uni2541uni2542uni2543uni2544uni2545uni2546uni2547uni2548uni2549uni254Auni254BSF430000SF240000SF510000SF520000SF390000SF220000SF210000SF250000SF500000SF490000SF380000SF280000SF270000SF260000SF360000SF370000SF420000SF190000SF200000SF230000SF470000SF480000SF410000SF450000SF460000SF400000SF540000SF530000SF440000upblockuni2581uni2582uni2583dnblockuni2585uni2586uni2587blockuni2589uni258Auni258Blfblockuni258Duni258Euni258Frtblockltshadeshadedkshadeuni2594uni2595uni2596uni2597uni2598uni2599uni259Auni259Buni259Cuni259Duni259Euni259F filledboxH22073uni25A3uni25A4uni25A5H18543 filledrecttriangle triangleinv whitediamondcircle largecircleuni262Cspade heartopen diamondopenclubheartdiamond musicalnoteuni2740uni2741uni2A00uni2A01uni2A02uni2A03uni2A04uni2A09uni2E17uni3001uni3002uni3003uni3005uni3007uni3008uni3009uni300Auni300Buni300Cuni300Duni300Euni300Funi3010uni3011uni3014uni3015uni3041uni3042uni3043uni3044uni3045uni3046uni3047uni3048uni3049uni304Auni304Buni304Cuni304Duni304Euni304Funi3050uni3051uni3052uni3053uni3054uni3055uni3056uni3057uni3058uni3059uni305Auni305Buni305Cuni305Duni305Euni305Funi3060uni3061uni3062uni3063uni3064uni3065uni3066uni3067uni3068uni3069uni306Auni306Buni306Cuni306Duni306Euni306Funi3070uni3071uni3072uni3073uni3074uni3075uni3076uni3077uni3078uni3079uni307Auni307Buni307Cuni307Duni307Euni307Funi3080uni3081uni3082uni3083uni3084uni3085uni3086uni3087uni3088uni3089uni308Auni308Buni308Cuni308Duni308Euni308Funi3090uni3091uni3092uni3093uni3099uni309Buni30A1uni30A2uni30A3uni30A4uni30A5uni30A6uni30A7uni30A8uni30A9uni30AAuni30ABuni30ACuni30ADuni30AEuni30AFuni30B0uni30B1uni30B2uni30B3uni30B4uni30B5uni30B6uni30B7uni30B8uni30B9uni30BAuni30BBuni30BCuni30BDuni30BEuni30BFuni30C0uni30C1uni30C2uni30C3uni30C4uni30C5uni30C6uni30C7uni30C8uni30C9uni30CAuni30CBuni30CCuni30CDuni30CEuni30CFuni30D0uni30D1uni30D2uni30D3uni30D4uni30D5uni30D6uni30D7uni30D8uni30D9uni30DAuni30DBuni30DCuni30DDuni30DEuni30DFuni30E0uni30E1uni30E2uni30E3uni30E4uni30E5uni30E6uni30E7uni30E8uni30E9uni30EAuni30EBuni30ECuni30EDuni30EEuni30EFuni30F0uni30F1uni30F2uni30F3uni30F4uni30F5uni30F6uni30F7uni30F8uni30F9uni30FAuni30FBuni30FCuni30FDuni30FEuniE968uniE969uniE96AuniF639uniF63AuniF63BuniF63CuniF63DuniF63EuniF63FuniF640uniF641 onefittedffffiffluniFB05uniFB06uniFB1DuniFB1E afii57705uniFB20uniFB21uniFB22uniFB23uniFB24uniFB25uniFB26uniFB27uniFB28uniFB29 afii57694 afii57695uniFB2CuniFB2DuniFB2EuniFB2FuniFB30uniFB31uniFB32uniFB33uniFB34 afii57723uniFB36uniFB38uniFB39uniFB3AuniFB3BuniFB3CuniFB3EuniFB40uniFB41uniFB43uniFB44uniFB46uniFB47uniFB48uniFB49uniFB4A afii57700uniFB4CuniFB4DuniFB4EuniFB4FuniFFFD bn_initekaar bn_initaikaarbn_reph bn_kaphala bn_nnaphala bn_taphala bn_thaphala bn_thaphala1 bn_dhaphala bn_naphala bn_below_ba bn_bhaphala bn_raphala bn_laphala bn_half_ka bn_half_kha bn_half_ga bn_half_gha bn_half_nga bn_half_ca bn_half_ca1 bn_half_cha bn_half_ja bn_half_jha bn_half_nya bn_half_tta bn_half_ttha bn_half_dda bn_half_ddha bn_half_nna bn_half_tha bn_half_dha bn_half_da bn_half_na bn_half_pa bn_half_pha bn_half_ba bn_half_bha bn_half_ma bn_half_ya bn_half_ra bn_half_la bn_half_sha bn_half_ssa bn_half_sa bn_half_ha bn_half_rra bn_half_rha bn_half_yyabn_half_asamirabn_half_asamiba bn_khaphala bn_phaphala bn_baphala1 bn_maphala bn_maphala1 bn_yaphalabn_k_rabn_k_ra1bn_kh_rabn_g_rabn_gh_rabn_c_rabn_ch_rabn_j_rabn_tt_ra bn_tth_rabn_dd_ra bn_ddh_rabn_t_rabn_t_ra1bn_th_rabn_d_rabn_dh_rabn_n_rabn_n_ra1bn_p_rabn_ph_rabn_b_rabn_bh_ra bn_bh_ra1bn_m_rabn_y_rabn_sh_rabn_ss_rabn_s_rabn_s_ra1bn_h_ra bn_asamir_ra bn_asamib_ra bn_k_ss_rabn_k_kabn_k_tta bn_k_tt_rabn_k_tabn_k_ta1 bn_k_t_ba bn_k_t_ba1 bn_k_t_ra bn_k_t_ra1 bn_k_t_ra2bn_k_nabn_k_mabn_k_labn_k_ssa bn_k_ss_nna bn_k_ss_mabn_k_sabn_g_gabn_g_dabn_g_dha bn_g_dh_babn_g_labn_g_nabn_g_mabn_gh_nabn_ng_ka bn_ng_k_ra bn_ng_k_ssa bn_ng_k_ss_ra bn_ng_khabn_ng_ga bn_ng_gha bn_ng_gh_rabn_ng_ma bn_ng_ma1bn_c_cabn_c_cha bn_c_ch_ba bn_c_ch_rabn_c_nyabn_c_nabn_j_ja bn_j_j_babn_j_jhabn_j_nyabn_ny_ca bn_ny_chabn_ny_ja bn_ny_jha bn_tt_tta bn_tt_tt_rabn_tt_mabn_dd_ga bn_dd_ddabn_dd_ma bn_nn_tta bn_nn_tt_ra bn_nn_ttha bn_nn_dda bn_nn_dda1 bn_nn_dd_ra bn_nn_dd_ra1 bn_nn_ddha bn_nn_nnabn_nn_mabn_t_ta bn_t_t_babn_t_thabn_t_nabn_t_mabn_t_ma1bn_t_labn_d_gabn_d_ghabn_d_da bn_d_d_ba bn_d_d_rabn_d_dha bn_d_dh_babn_d_nabn_d_bha bn_d_bh_ra bn_d_bh_ra1bn_d_mabn_dh_nabn_dh_mabn_n_tta bn_n_tt_ra bn_n_tthabn_n_dda bn_n_dd_ra bn_n_ddhabn_n_ta bn_n_t_ba bn_n_t_ra bn_n_t_ra1bn_n_thabn_n_da bn_n_d_ba bn_n_d_rabn_n_dha bn_n_dh_ba bn_n_dh_rabn_n_nabn_n_mabn_n_ma1bn_n_sabn_p_ttabn_p_tabn_p_pabn_p_mabn_p_nabn_p_labn_p_sa bn_ph_ttabn_ph_labn_b_jabn_b_da bn_b_d_rabn_b_dhabn_b_nabn_b_bhabn_b_labn_bh_labn_m_tabn_m_thabn_m_dabn_m_nabn_m_na1bn_m_pa bn_m_p_ra bn_m_p_labn_m_pha bn_m_ph_rabn_m_bha bn_m_bh_ra bn_m_bh_ra1bn_m_mabn_m_ma1bn_m_labn_m_la1bn_m_sa bn_m_s_rabn_l_kabn_l_gabn_l_tta bn_l_tt_rabn_l_dda bn_l_dd_rabn_l_tabn_l_dabn_l_dhabn_l_pabn_l_pha bn_l_ph_rabn_l_mabn_l_labn_sh_ca bn_sh_chabn_sh_tabn_sh_nabn_sh_mabn_sh_labn_ss_ka bn_ss_k_ra bn_ss_k_ra1 bn_ss_tta bn_ss_tta1 bn_ss_tt_ra bn_ss_tt_ra1 bn_ss_ttha bn_ss_nnabn_ss_pa bn_ss_p_ra bn_ss_pha bn_ss_ph_rabn_ss_ma bn_ss_ma1bn_s_ka bn_s_k_ra bn_s_k_ra1bn_s_khabn_s_tta bn_s_tta1 bn_s_tt_ra bn_s_tt_ra1bn_s_ta bn_s_t_ba bn_s_t_ra bn_s_t_ra1bn_s_thabn_s_nabn_s_na1bn_s_pa bn_s_p_ra bn_s_p_labn_s_pha bn_s_ph_rabn_s_mabn_s_ma1bn_s_labn_s_la1bn_h_nnabn_h_nabn_h_mabn_h_labn_h_la1bn_rr_gabn_k_babn_g_babn_gh_babn_c_babn_ch_babn_j_babn_tt_babn_dd_babn_nn_babn_t_babn_th_babn_d_babn_dh_ba bn_dh_ba1bn_n_babn_n_ba1bn_p_babn_b_babn_bh_babn_m_ba bn_m_b_rabn_m_ba1 bn_m_b_ra1bn_l_babn_sh_babn_s_babn_s_ba1bn_h_babn_h_ba1 bn_kh_r_ukaarbn_kh_r_uukaar bn_g_ukaar bn_g_r_ukaar bn_g_r_uukaar bn_g_l_ukaar bn_g_l_uukaar bn_j_r_ukaar bn_j_r_uukaar bn_t_r_ukaar bn_t_r_uukaar bn_th_r_ukaarbn_th_r_uukaar bn_d_ukaar bn_d_r_ukaar bn_d_r_uukaar bn_dh_r_ukaarbn_dh_r_uukaar bn_n_ukaar bn_n_uukaar bn_n_rikaar bn_n_t_ukaarbn_n_d_r_ukaarbn_n_d_r_uukaar bn_p_r_ukaar bn_p_r_uukaar bn_p_l_ukaar bn_p_l_uukaar bn_b_r_ukaar bn_b_r_uukaar bn_b_l_ukaar bn_b_l_uukaar bn_bh_r_ukaarbn_bh_r_uukaar bn_m_r_ukaar bn_m_r_uukaarbn_m_p_r_ukaarbn_m_p_r_uukaar bn_r_ukaar bn_r_uukaar bn_l_g_ukaar bn_sh_ukaar bn_sh_r_ukaarbn_sh_r_uukaar bn_sh_l_ukaarbn_sh_l_uukaarbn_ss_p_r_ukaarbn_ss_p_r_uukaar bn_s_ukaar bn_s_uukaar bn_s_rikaar bn_s_t_ukaar bn_s_r_ukaar bn_s_r_uukaarbn_s_p_r_ukaarbn_s_p_r_uukaarbn_s_p_l_ukaarbn_s_p_l_uukaar bn_s_l_ukaar bn_s_l_uukaar bn_h_ukaar bn_h_rikaarbn_asamir_ukaarbn_asamir_uukaarbn_asamib_ukaarbn_asamib_uukaarbn_asamib_r_ukaarbn_asamib_r_uukaar bn_k_hasanta bn_kh_hasanta bn_g_hasanta bn_gh_hasanta bn_ng_hasanta bn_c_hasanta bn_ch_hasanta bn_j_hasanta bn_jh_hasanta bn_ny_hasanta bn_tt_hasantabn_tth_hasanta bn_dd_hasantabn_ddh_hasanta bn_nn_hasanta bn_t_hasanta bn_th_hasanta bn_d_hasanta bn_dh_hasanta bn_n_hasanta bn_p_hasanta bn_ph_hasanta bn_b_hasanta bn_bh_hasanta bn_m_hasanta bn_y_hasanta bn_r_hasanta bn_l_hasanta bn_sh_hasanta bn_ss_hasanta bn_s_hasanta bn_h_hasanta bn_rr_hasanta bn_rh_hasanta bn_yy_hasantabn_asamir_hasantabn_asamib_hasanta bn_post_k_raglyph569emdash.1glyph571glyph572glyph57487 bn_baphala bn_below_ba2glyph578glyph579glyph580glyph581glyph582A.001 bn_sh_ra.001bn_yaphala.002bn_d_yabn_n_ya bn_la.001bn_sh_yabn_ss_yabn_s_yaglyph593bn_h_yaglyph595 bn_ss_tta.002glyph597glyph598 bn_uukaar.1glyph600A.002A.003uni091F_uni093C.nuktuni0920_uni093C.nuktglyph240glyph241uni0908_uni0902.abvsuni0947_uni0901.abvsuni094B_uni0901.abvsglyph245glyph246glyph247uni0939_uni094D.halnglyph249uni091B_uni094D.halnuni0939_uni0944.blwsuni0915_uni094D_uni0937.akhnuni091C_uni094D_uni091E.akhnuni924_94D.half_924.presuni924_930_94D.blwf.vatuuni936_94D.half_91A.presuni936_930_94D.blwf.vatuuni936_94D.half_935.presuni95B_930_94D.blwf.vatuuni92B_930_94D.blwf.vatuuni95E_930_94D.blwf.vatuuni92A_930_94D.blwf.vatuuni938_930_94D.blwf.vatuuni0930_uni0941.blwsuni0930_uni0942.blwsuni915_94D.half_928.presuni0916_094D.half_0928.presuni0918_094D.half_0928.presglyph269uni0915_uni094D.halfuni0916_uni094D.halfuni0917_uni094D.halfuni0918_uni094D.halfuni091A_uni094D.halfglyph275uni091C_uni094D.halfuni091D_uni094D.halfuni091E_uni094D.halfuni0924_094D.half_0928.presuni0925_094D.half_0928.presuni0926_094D.half_0928.presuni0927_094D.half_0928.presuni0923_uni094D.halfuni0924_uni094D.halfuni0925_uni094D.halfuni926_94D.hlf2_926_94D.presuni0927_uni094D.halfuni0928_uni094D.halfglyph289uni092A_uni094D.halfuni092B_uni094D.halfuni092C_uni094D.halfuni092D_uni094D.halfuni092E_uni094D.halfuni092F_uni094D.halfuni092A_094D.half_0928.presglyph297uni0932_uni094D.halfuni0933_uni094D.halfuni0934_uni094D.halfuni0935_uni094D.halfuni0936_uni094D.halfuni0937_uni094D.halfuni0938_uni094D.halfuni0939_uni094D.halfglyph306uni092C_094D.half_0928.presglyph308uni092E_094D.half_0928.presuni0935_094D.half_0928.presuni0936_094D.half_0928.presuni0915_094D.half_0915.presuni0919_094D.half_0915.presuni0919_094D.half_0916.presuni0919_094D.half_0917.presuni0919_094D.half_0918.presuni091E_094D.half_091C.presuni0926_094D.half_0918.presuni0926_094D.half_0926.presuni0926_094D.half_0927.presuni0926_094D.half_092C.presuni0926_094D.half_092D.presuni0926_094D.half_092E.presuni0926_094D.half_092F.presuni0926_094D.half_0935.presuni091F_094D.half_091F.presuni091F_094D.half_0920.presuni0920_094D.half_0920.presglyph329glyph330glyph331uni0939_094D.half_092E.presuni0939_094D.half_092F.presuni0932_094D.half_0939.presglyph335u9_38_4D.hlf_24_4D_30prespresglyph337uni0930_uni094D_afii301.halfu91A_94D.hlf2_91A_94D.halfuni0938_0928_094D.half.presglyph341glyph342glyph343glyph344glyph345glyph346glyph347glyph348glyph349uni915_94D_937.akhn_94D.halfu91C_94D_91E.akhn_94D.halfglyph352u924_94D.half_930_94D.blwf.vatuglyph354glyph355glyph356glyph357glyph358glyph359uni939_930_94D.blwf.blwsuni0930_uni094D.rphfuni0930_uni094D.blwfuni093E_uni0901.abvsuni093E_uni0902.abvsglyph365glyph366glyph367glyph368glyph369uni0947_uni0902.abvsglyph371glyph372uni0948_uni0902.abvsglyph374glyph375glyph376glyph377glyph378u9_38_4Dhalf1F_30_4Dblwfvtu2glyph380glyph381uni0928_094D.half_0928.presuni0919_uni094D.halfuni091F_uni094D.halfuni0920_uni094D.halfuni0921_uni094D.halfuni0922_uni094D.halfuni0926_uni094D.halfuni915_930_94D.blwf.vatuuni916_930_94D.blwf.presuni917_930_94D.blwf.presuni918_930_94D.blwf.vatuuni919_930_94D.blwf.vatuuni91A_930_94D.blwf.vatuuni91B_930_94D.blwf.vatuuni91C_930_94D.blwf.vatuuni91D_930_94D.blwf.vatuuni91E_930_94D.blwf.vatuuni91F_930_94D.blwf.vatuuni920_930_94D.blwf.vatuuni921_930_94D.blwf.vatuglyph402uni923_930_94D.blwf.vatuuni0924_uni094D_uni0930.presuni925_930_94D.blwf.vatuuni926_930_94D.blwf.vatuuni927_930_94D.blwf.vatuuni928_930_94D.blwf.vatuuni92C_930_94D.blwf.vatuuni92D_930_94D.blwf.vatuuni92E_930_94D.blwf.vatuuni92F_930_94D.blwf.vatuuni930_930_94D.blwf.vatuuni932_930_94D.blwf.vatuuni936_94D.hlf2_932_94D.presuni937_94D.half_91F.presuni937_94D.half_920.presglyph418glyph419glyph420uni936_94D.hlf2_928_94D.presu938_4D.hlff24_4D.30_4Dbfvtuprsu926_94D.half_92E_94D.half.presuni924_94D.hlf2_928_94D.presuni939_94D.half_923.presuni939_94D.half_932.presuni939_94D.half_935.presu92A_94D.half_924_94D.half.presuni939_94D.half_928.presu939_94D.half_92E_94D.half.presu92A_94D.half_930_94D.blwf.vatuuni0919_uni093C.nuktuni0939_uni093C.nuktglyph434uni91F_93C.nukt_94D.halnuni920_93C.nukt_94D.halnuni095C_uni094D.halnuni095D_uni094D.halnglyph439uni939_93C.nukt_94D.halnuni919_93C.nukt_94D.halnu937_94D.half_91F.pres_94D.halnu937_94D.half_920.pres_94D.halnu939_94D.half_923.pres_94D.halnu939_94D.half_928.pres_94D.halnu939_94D.half_932.pres_94D.halnu939_94D.half_935.pres_94D.halnuni092B_uni093C_uni094D.nuktuni091C_uni093C_uni094D.nuktuni0A95_uni0ACD.halfuni0A96_uni0ACD.halfuni0A97_uni0ACD.halfuni0A98_uni0ACD.halfuni0A9A_uni0ACD.halfuni0A9C_uni0ACD.halfuni0A9D_uni0ACD.halfuni0A9E_uni0ACD.halfuni0AA3_uni0ACD.halfuni0AA4_uni0ACD.halfuni0AA5_uni0ACD.halfuni0AA7_uni0ACD.halfuni0AA8_uni0ACD.halfuni0AAA_uni0ACD.halfuni0AAB_uni0ACD.halfuni0AAC_uni0ACD.halfuni0AAD_uni0ACD.halfuni0AAE_uni0ACD.halfuni0AAF_uni0ACD.halfuni0AB2_uni0ACD.halfuni0AB3_uni0ACD.halfuni0AB5_uni0ACD.halfuni0AB6_uni0ACD.halfuni0AB7_uni0ACD.halfuni0AB8_uni0ACD.halfuni0AB9_uni0ACD.halfuniA95_ACD_AB7.akhn_ACD.halfuAA4_ACD.half_AA4_ACD.half.presuniAA4_ACD.half_AB0_ACD.vatuuAA8_ACD.half_AA8.pres_ACD.presuAB6_ACD.half_AB0_ACD.blwf.vatuuA96_ACD.half_AB0_ACD.blwf.vatuuA97_ACD.half_AB0_ACD.blwf.vatuuA98_ACD.half_AB0_ACD.blwf.vatuuA9A_ACD.half_AB0_ACD.blwf.vatuuA9C_ACD.half_AB0_ACD.blwf.vatuuAA5_ACD.half_AB0_ACD.blwf.vatuuAA7_ACD.half_AB0_ACD.blwf.vatuuAA8_ACD.half_AB0_ACD.blwf.vatuuAAA_ACD.half_AB0_ACD.blwf.vatuuAAC_ACD.half_AB0_ACD.blwf.vatuuAAD_ACD.half_AB0_ACD.blwf.vatuuAAE_ACD.half_AB0_ACD.blwf.vatuuAB8_ACD.half_AB0_ACD.blwf.vatuuni0A87_uni0A82.abvsuni0A88_uni0A82.abvsuni0A89_uni0A82.abvsuni0A8A_uni0A82.abvsuniA95_ACD.half_A95.presuniA95_AB0_ACD.blwf.vatuuni0A9C_uni0ABE.pstsuni0A9C_uni0AC0.pstsuniA9C_AB0_ACD.blwf.vatuuniA9D_AB0_ACD.blwf.vatuuni0A9F_uni0ACD_uni0A9F.presuni0A9F_uni0ACD_uni0AA0.presuni0AA0_uni0ACD_uni0AA0.presuni0AA1_uni0ACD_uni0AA1.presuni0AA1_uni0ACD_uni0AA2.presuniAA6_AB0_ACD.blwf.vatuuni0AA6_uni0ACD_uni0AAE.presuni0AA6_uni0ACD_uni0AA6.presuni0AA6_uni0ACD_uni0AA7.presuni0AA6_uni0ACD_uni0AB5.presuniAAB_AB0_ACD.blwf.vatuuni0AB0_uni0AC1.blwsuni0AB0_uni0AC2.blwsnounicode_3_1_cduAB5_ACD.half_AB0_ACD.blwf.vatuuniAB6_ACD.half_AB5_ACD.presuniAB9_AB0_ACD.blwf.vatuuniAB9_ACD.half_AAE.presuniAB9_ACD.half_AAF.presuAB6_ACD.half_AA8.pres_ACD.presuniAB6_ACD.half_A9A_ACD.presuni0AA2_uni0ACD_uni0AA2.presuni0A95_uni0ACD_uni0AB7.akhnuniAA4_ACD.half_AA4.presuniAA4_AB0_ACD.blwf.vatuuniAA8_ACD.half_AA8.presuniAB6_AB0_ACD.blwf.vatuuniA96_AB0_ACD.blwf.vatuuniA97_AB0_ACD.blwf.vatuuniA98_AB0_ACD.blwf.vatuuniA9A_AB0_ACD.blwf.vatuuniAA5_AB0_ACD.blwf.vatuuniAA7_AB0_ACD.blwf.vatuuniAA8_AB0_ACD.blwf.vatuuniAAA_AB0_ACD.blwf.vatuuniAAC_AB0_ACD.blwf.vatuuniAAD_AB0_ACD.blwf.vatuuniAAE_AB0_ACD.blwf.vatuuniAB8_AB0_ACD.blwf.vatuuniAB5_AB0_ACD.blwf.vatuuniAB6_ACD.half_AB5.presuniAB6_ACD.half_AA8.presuniAB6_ACD.half_A9A.presglyph407glyph408glyph409uni0AB0_uni0ACD.rphfglyph411uni0AB0_uni0ACD.blwfuniAB7_ACD.half_AA0.presuniAB7_ACD.half_A9F.presuA_B7_CD.half_9F_B0_CD.blwfvatuuA_B7_CD.half_A0_B0_CDblwfvatuglyph417glyph421uniA9F_AB0_ACD.blwf.vatuuni0A9C_uni0ACD_uni0A9E.akhnglyph424uniAA1_AB0_ACD.blwf.vatuuniAA0_AB0_ACD.blwf.vatuuniAA2_AB0_ACD.blwf.vatuglyph428glyph429glyph430glyph431glyph432glyph433glyph435glyph436glyph437glyph438glyph440glyph441uni0AC7_uni0A82.abvsglyph443glyph444glyph445glyph446glyph447glyph448glyph449glyph450glyph451glyph452glyph453uni0A95_uni0ABC.nuktuni0A96_uni0ABC.nuktuni0A97_uni0ABC.nuktuni0A98_uni0ABC.nuktuni0A99_uni0ABC.nuktuni0A9A_uni0ABC.nuktuni0A9B_uni0ABC.nuktuni0A9C_uni0ABC.nuktuni0A9D_uni0ABC.nuktuni0A9E_uni0ABC.nuktuni0A9F_uni0ABC.nuktuni0AA0_uni0ABC.nuktuni0AA1_uni0ABC.nuktuni0AA2_uni0ABC.nuktuni0AA3_uni0ABC.nuktuni0AA4_uni0ABC.nuktuni0AA5_uni0ABC.nuktuni0AA6_uni0ABC.nuktuni0AA7_uni0ABC.nuktuni0AA8_uni0ABC.nuktuni0AAA_uni0ABC.nuktuni0AAB_uni0ABC.nuktuni0AAC_uni0ABC.nuktuni0AAD_uni0ABC.nuktuni0AAE_uni0ABC.nuktuni0AAF_uni0ABC.nuktuni0AB0_uni0ABC.nuktuni0AB2_uni0ABC.nuktuni0AB3_uni0ABC.nuktuni0AB5_uni0ABC.nuktuni0AB6_uni0ABC.nuktuni0AB7_uni0ABC.nuktuni0AB8_uni0ABC.nuktuni0AB9_uni0ABC.nuktuniAA3_ACD.half_AB0_ACD.vatuuni0AA3_uni0AB0_uni0ACD.vatuuni0A30_uni0A4D.blwfuni0A35_uni0A4D.blwfuni0A39_uni0A4D.blwfuni0A2F_uni0A4D.pstfglyph152glyph153glyph154glyph155glyph156glyph157uniA30_A4D.blwf_A41.blwsuniA39_A4D.blwf_A41.blwsnounicode_3_1_3glyph161uni0A30_A4D.blwf_A42.blwsuniA39_A4D.blwf_A42.blwsnounicode_3_1_2fnounicode_3_1_30uni0A28_uni0A42_uni0A70.abvsuni0A3E_uni0A02.abvsuni0A09_uni0A71.pstsuni0A0A_uni0A71.pstsuni0A13_uni0A71.pstsuni0A15_uni0A3C.nuktuni0A18_uni0A3C.nuktuni0A19_uni0A3C.nuktuni0A1A_uni0A3C.nuktuni0A1B_uni0A3C.nuktuni0A1D_uni0A3C.nuktuni0A1E_uni0A3C.nuktuni0A1F_uni0A3C.nuktuni0A20_uni0A3C.nuktuni0A22_uni0A3C.nuktuni0A23_uni0A3C.nuktuni0A24_uni0A3C.nuktuni0A25_uni0A3C.nuktuni0A26_uni0A3C.nuktuni0A27_uni0A3C.nuktuni0A28_uni0A3C.nuktuni0A2A_uni0A3C.nuktuni0A2C_uni0A3C.nuktuni0A2D_uni0A3C.nuktuni0A2E_uni0A3C.nuktuni0A2F_uni0A3C.nuktuni0A30_uni0A3C.nuktuni0A35_uni0A3C.nuktglyph194uni0A39_uni0A3C.nuktuni0A05_uni0A3C.nuktuni0A06_uni0A3C.nuktuni0A07_uni0A3C.nuktuni0A08_uni0A3C.nuktuni0A09_uni0A3C.nuktuni0A0A_uni0A3C.nuktuni0A0F_uni0A3C.nuktuni0A10_uni0A3C.nuktuni0A13_uni0A3C.nuktuni0A14_uni0A3C.nuktuni0A06_uni0A02.abvsglyph207uniA35_A4D.blwf_A41.blwsuniA35_A4D.blwf_A42.blwsuniA30_A4D.blwf_A4D.blwsuniA39_A4D.blwf_A4D.blwsuniA35_A4D.blwf_A4D.blws (ijjk>??@LMfghimnop-../TUUVrstu - . 0 1 1 2 2 3 3 4 6 7 a b c d m n s t                                           ! ! " % & & ' 9 : : ; ; < < = D E E F M N N O P Q Q R ] ^ ^ _ c d d e g h h i v w w x ~                                                    T U [ \ \ ] e f g h h i k l l m m n u v w x y z                                       &')*+,.//0013445566778:;   &''(34459, $  v 2 r DFLTJarmnVbengbbng2dev2devagjr2gujrgur2"guru8hebrNlatnZ  !#'*  !#'*  &(+  &(+  $),   $), "% "%-aaltabvsabvsabvs"akhn(akhn.akhn4blwf:blwf@blwfFblwfLblwsRblwsXblws^blwsddligjdligpfracvhalf|halfhalfhalnhalninitligaliganuktnuktnuktpresprespresprespstfpstfpstspstspstsrephrphfrphfrphf vatuvatuvatu.'&%$#"!  ,+ *)(-   /`hpx (08@HPX`hpxxR,.Pr:JZ f  h x P|&D~.#l##%*%V%n%&((6 "( rIO qIL pO oL nIITPQ"JT^hr|&0:DNXblv",6@J^hr|8I v wH9   (V`jt~&0:DNXblv)*+,-./012  !"#$%&(v%&" "    TD'.)    T TAh QE*  -M sW,LA*    &0:DNXblv T T T T T T \T T T T T '5679:=>ABhJ<FPZdnx",6@JKLMNOPQRSTUVWXYZ[\]^_`abcd  +\fpz$.8BLVblv                                           # & )*%PZdnx",6@JT^hr| T T T T T T T T T T T T T T TUT T T T T T T T T T T T T T T T T T T T T T'FWY hi#*   T T T(<@&Pf . . " 4 4 / / 0 0 " 5 5 2 2 6 6*  mO)Xblv",6@JT^hr~{~ijklfnopqrsthu KNRWY["_b%$ !HR\fpz$.8BLV`jt~                        ! " # % &           7 *%+%! ()V>HR\fpz$.8BL                                                        '*,.146@ CFii  4@Vb "zeS "( g JSV`a $.@Z        &,5321       &,28>D/             Sc@:DNZdv  J\n         0        4      $- '    )( . "(.46 5321           $*06<BHNT/             :d,NhT"T^J|Xz $ FB D? C: B7 @6  &,28>D E B ? :  6  1 ' &, ? : B 9 8 ) :$*06< ? * ) (    '  ': % #- ", +0 */ (.  // .. -- ,, 2? 1 01 5? 43 3)$*06< ?? >5 =4 ; 93 82 7 61 T? S:$*06< R? P O> L9 K I8 H* G)"(.4:@FLRX^djpv| iE g? f: e c9 b `8 _7 ] [6 Z4 Y X3 W2 V U1"(.4 pE oB n: m? l; k6 j1 rB q1 &, yB x> v9 u t8 s. zB &,28>DJPV\bhnt  E B ?  >  <  o  ; ~: }8 |7 {6$*06<BHNTZ`fl B ?  < ; 9 8 6  3  1 ) ' &, B ? : 6 - , $*06<BHNT ?  <  ; 5 2  1  '"(.4:@FLRX^djpv| B ?  <  o  ; : 7  6  1 (  '  B ? : 5 ) T? T5U Z &@79658&  .     :z  *4FPbl(:L^p"4FXbt  \ L  \  \  \  \  \  \  \  \  \ L  \  \  \  \  \  \  \ M L  \ L  \  \ )N (L  \ +M *L -M ,L M L M L M L M L M L M L M L M L M L M L M L M L !M L /M .L  \ M L $ \ ) \ A \ J \ M \ L \ \ a \ M L M L M L M L L M L M L L  \ #M "L %M $L 'M &L:')*,-.135689:;=>?ABCEFhi   # ( @ I L [ ` b o y , "3t  twT$.8vwxy$ &Jdv z               { $    ~  b    |  }  c    *   z{~ }|Z*6BN f  g  i  j  k  m 8:CDEF&0:DNXblv  =>;< BCDFGEA@? v w ()123589:%PZdnx",6@JT^hr| 0T 1T 2T 3T 4T 5T 6T 7T 8T 9T :T ;T <T =T >T ?T @T AT BT CT DT ET FT GT HT IT JT KT LT MT NT OT PT QT RT ST TT'FWY hi#*   x  y   TPQ f DFLTJarmnVbeng`bng2jdev2tdevagjr2gujrgur2guruhebrlatn   abvm>abvmDblwmJblwmPkernVkern\lfbdbmarkhmkmknrtbdt &.6>FNV^P46(J**> 8 $*06<BHNTZ`flrx~ &,UUUUUUUUUU<UUDUD>U0UUUUUZ.Z.ZZZZ)Z)ZZTZ\Z_ZIZZ;Z/Z/Z/Z/Z/Z/ZYZWZZZ:@:/UUR^sZ jj??MUWf imps v$/567 ??MUWf impsv#.4567 &,28>DJPV\bhntz "UUUUUUUUUU-UUU:UUUUUUZZZZZZZZZZZZIZZZZZZZZZZZZZ@:UUXsZ6 y $X=baDoo6x$=D]456789HH;PR<VW?ZZA^^BbeCggGqrHttJvvKy|LPQcd ek((l*,m//p23q55s9=t??Mfimp Xe &,28>DJPV\bhntz "(.4:@FLRX^djpv|UUUUUUUUUU/UUU:UUUUUUZZZZZZZZZZZZIjjZZZZZZZZZZZ/?ZZ@:UUBB=X[UZ-F03>s=[ 4B "FLRX^djpv| [ $8+TKt  2"(.|`C]%f6 E "(.4:@FLRX^djpv| $|yfDmJUUkkM_wq)bg.&O L|Q6?.'303h00m_weR; idbE  %(),123569:@H"(.Xtpk<&J #HNTZ`flrx~T ! *O;$&#0+). - #9TMx *   +"(.zawffz $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv| $*06<BHNTxaejgdi9jjedce _eqehaXaed ciecgffegaggaeac d hcefa egeiga>>5|7@^^ag[i_didieeYgaeagWi#aeg4cge.e:cc^d^gddigcgg^g;e>>A;D>>kjd^^gdaedaagda aeWchgaj^9ddaddd ceecg ddg|7@jigeadaa*    #%&) v w* { {, ~ - 3 7 8 9 : ; < = ? @ T U X^ _fghlm%%n(,o//t13u56x8Hz"(.4:@FLkUgXdGLi L<Xd6d Jdnx      j j j |   6 < B < `  &&*24789:<DEFGHJRTWXYZ\m$29:< $+.2 $-79:;<$-2DHLMRUX $79:<$&*267DHRX\$&*26789:<X\"ks$&*DR $79:;<yy$-DHR&*2789:<DHRX\ $79:<W/{$&*-269 :<DFHJLMRUVXYZ\m"# $PQSU&$&*267DHJLRUX\m"$$&*267DHJLRUX\m &24DHRX\$$&*267DHJLRSXYmY\MYZ\YZ\KNWYZ[\DHILMORWD\7MDHJRVX\SYZ\7SYZ\7WYZ[\W\FX+DFGHIJLNORSTVWXYZ[\] W6DHKRDFHJRVDFHJRVDFHRTDFHJORV &*24789:<&*24789:<DEFGHJRTWXYZ\m&*24789:<DEFGJRTWXYZ\m&*24789:<DEFGHJRTWXYZ\m$79<$79:<$79:;<$$$PQSU$EPQSUYZ\YZ\YZ\YZ\WWYZ[\$+.2$79W$')*-/13 5= DFHLN\,238=?BDGH""J??KV2@ft F`$ m $79:< m $79:<{$7: <$GRUVWYZ\ $7 9:< $7 9:<$79:< $79:< g j m g j m g j m g j m g j m g j m  e f g h i j k m g j m g j m  d e f g h i j k l m}} d m   iY phatch-0.2.7/data/fonts/Purisa.ttf0000644000000000000000000041052011346363116016757 0ustar rootroot00000000000000FFTMI{*4GDEF# GPOS7'pGSUB)8OS/2X_VVcmapC>Lcvt F ,fpgm2Jf <glyf 5pxhead't6hhea"dT$hmtxap0Zloca{x <2maxpx name_@~Hpost0 prep6! (iY_<NRQNRQ UU q'q  =, 1/PcPfEd  8Ul!M<Kt~Lte|Yv!4Q`@I8J4>@<hZEox!JlR}xPDGyW:CBZ|UXKkE ^`G=R=/2|9C=@-_<n<)G){4FV+p,^U90Fi3pCF8bE2+aLk~8<*dD/^LNU/GAI)4;QlQter90JcGl2Dc9Z,IpIvINK3Y74pL <qLb 7,IP77l4xDDDDDDJyCBCBCBCBKkKkKkKkW:=R=====m=____GV9,],],],],^,^?@90\)l3i3i3DEW8k~8888828^L^L^L^LIID,^D\^9090hF%Fi3i3UFKkbFa+Maa$^\k~k~Bk~88=S8ddC=DC=DC=D@-/@-'/^L^LG)4)4))4EFFK3pw/9~fneqn=CvdhK=Z;E|?135FV?^^+> ;/%;FiQ7p3RR?g%K(mV5*\^7D3RM?@*2~N`I/8l]mZ 9/9RRK,5EI2\LBREAK*_NO8x9jKK2!BO;c;b]?\]xyII+JFFvK,6%S@82T)H"_^w.s,5E5F8Vy1ICCCDC'Cl@,~ 1:>BDHKMSU[eoqxz~7:[      " & : D t !!"$#  08=ADHJMQUY^oqxz|7?     " & 9 D t !!"$#|{uts-,+RDA@=:(VFj r o&V   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardei_xpkvjsgwl|cnm}`bWX\]YZceaby[^qz,K*PXJvY#?+X=YK*PX}Y ԰.-, /+\X G#Faj X db8!!Y!Y-,KRXE#Y!-,i @PX!@Y-,+X!#!zXYKRXXY#!+XFvYXYYY-, \Z-,"PX \\Y-,$PX@\\Y-, 9/-KPXYF+X!YKRX!Y+\XY p !y****@\"Nj J 2 z T  Nzj~zj&&F<4D4F b!,!!"j"# #$$$%%&>&'H'((z()*r*++~++,2,-.j/8/x0n01233345456677878h89:9:::;<=>v>?L?@\@ABnCCD<ʼ˞R&&&&~͸>Ύ"RϨNz(pz\6xH$,43232#"&#"7632?#"#".54?#"&5467>76?#"&546763267>32>54#"76R!(    A &>#&  9(.!* I0-   " (""#$S,  &7*ED8[C 2(  2#" } [7 ~mCNZ+?Ͱ02[/ְBͰ-ְLͰ(ְ2VͰ 2Oְ ͱ\+- 99L"+$9($*0N$9V1DEFGHI$9O@ 34789:;<=>?@SXY$9 99?I901"&#"#"&54?'.54327>54'.5467>767632322654'4&/"326I UB3&    $!. !4A"   T !!*  K5EC+U1o +LP 7QGV;'W 3"` -> nP ^N#,, .*1fLx4 -&$+./ ְͱ/+ $901%4632#"&4632#"&".547>7>32@ 8%)#6 TE3$qV%%lcN^)MU",$/'T TDE1dh13icte4@Oo/DͰ)/13.P/ְAͰ ְ5ͱ;+ͰG2Q+5A4DE$9;@ 78<=KM$9FJ$9).,ABFGH$901"&54?'&5467633232>32232#"/32764#"326764./@*,"&. Pd(!+ m*=#8L&9#z   8 *?""-59=U[7N,#1;\090  &82QAj WN*BAH//ְͰְ ͱ+  $9 99@  $901632#"&'.54 \   )  , ?*:(&tL(/ ְͰͱ +@ $901#".'&5467>7632 !l^)+$. (*V 462p J%jIX&0>D\2@=e50YE 0!/ְͰ.ݱ"+@ $901432#"&547>54.'.)~!00 #:!%) 0Jiq?GnT' p5C]RXB"UwV'W/2ְ8ͱX+82@  "&',0!56$9012#"&#"#"&#"#"&54654#"&547>54.546323254632327>32326X4/,$ n "8L9%60c==    A C01 # .Q(,[  -BS$' AG*/7 vYjE$%%/ְ Ͱ!2 ְ ͱ&+ 99012##"&546?5476327>J &'J#BDMGe   J+M ,  DA@] `[ ./ / ְͱ+  99  999017>32#"54++ @>#-VA&zt4+vN?$ְ Ͱְ /+  999016327>Xϫp    3#qְͰ./ְͰְ Ͱ.ݱ +$9$9  999@ $90174632546232#"&72654#"e#hA85# $i 2"7oN  ab2#"54>7>[/4V#Hbb55m dGC<&F'Qs']+Ͱ/(/ְͱ+ͱ)+9@ #$%&$9@'$%&$9014>32#"'&544#"3267654>H^#RV#I2G)qA5{/!$3%% KCiYACY-,g#T$41N}@w5/ְͰ.ݱ+ $9  $901"&4>?>32#"'&5&#"V  !$!     07r !, ?+@6hB#%CBI^:$+*;/ְ.ͱ<+.+9901%2#"&5467654&#"#"54765467>3232>]'#!xC/l2C$%-lmD6[6[ u bT    WQ!nB"#  +#2-RM4 JuF0/$Ͱ/8G/ ְͰ(ְ-ͰEְͰ.5ݱH+( $9-%*+>?@$9E@$0189;<=AB$9599999980@ ()+-.*56;<=?$9@AB99901"#"54#"54>7>3232#"'&54323267654&#"#"&54327654o}m fvv   !J +#:A)Z'%3  w  G#TD7E)")(1%!F>3>d1?$+>/,@/.ְͰ<Ͱ5ְ'2 Ͱ&ְ!ͱA+<.,95)8>999 &1%$9!@ $$9@ $9,$ "!&$9>'().$9012623267632#"'.##"47>>54/32K  : ,-  # OP$&Ic8*J H&F95  T.< /,:m :C3$s @Z>u:/.Ͱ$/?/ ְͱ!22+)ͱ@+  /999@ $%.:;$9)99:@> !)*345678$9$99014&#"#"'&547>7632+"7632#"&'&543232676cQ  8D ">: &k` ( ;4.30<,v  .2# ' _7pf 1#%+:3<~k 3j$/Ͱ/.4/ְ!ͱ)+ͱ5+)!@ $%$9 999.$@ 3"!)*$9 $9012632#"&546?632327>54&'&#<D T%.@4 L$G/ = (+!L ]A"WV5u;2) N hp'U+ (/ְ Ͱ Ͱ .ݱ)+ '999@ !"#$$9  99  9901".4=7632"&547>54&#" 4K %&&Qh'n 8t -=3 *Zd"6B&+Ͱ7/Ͱ2/>C/ ְ Ͱ/Ͱְ@Ͱְ"2Ͱ:ְͰ .#ݱD+/9@@ '23B7>$9:&8999 45$9>7@ :;@A$92$9&@  !6#$ /045$9"$9012>32#"&54654.5464&#"326762654'&" *@!1<1//C".y6$$IR $@~{!<(KN+% <35 :S+2Bt /@%7\h>>Tp K((C<#MEh)72+Ͳ+*/ 8/ְ6ͰְͰ/ְͱ9+6*+23$9/($9'9!#$%$9* 9992@ /06$901%4654#"#.'&547>7632#"&2>54&#"5 &"!$TK," 57% H,:P4(  "%>P$F-8 (D(H+ ,<>3 -!/ְͰ2"+@ $90174632#"&4632#""&'&#     K'' " #69  x3/ ְͰ.ݱ+  99@ $9017632#"&5467"&5467632 N  H, ~  !*!$2J- / ְͰͱ!+@$901%#"'&'.54?632 ?O`E Dl"*1  ,7(X? <e,0l T /Ͱ/!/ ְ2ͱ"+ @  $9  $9$9012#"&5467672"&'&54>76L1pSC*r";c,$ $P   }L 7!/ְ Ͱ .ݱ"+@ $9 9014632"&5467>7654&'&} 96;+Ic% /R%>+6 '1c0?b   6Ay8 5J ?+Ͳ6+ +#/=@/ ְ&Ͱ ͰְͰ2ְ)ͰְͰ&.8ݱA+ 992$9 0>$9)#/=$9598$699 @),-./0235$9'9=@?  !&89$901%462#"32654#"4632#"&54632#"&5467>54'.#"9 !M2# %*'Uv69[d# &$+ =#`$#')Z3 >[25fvDO.KE/<>:# `. 2OPNv%iI/ Ͱjְ_Ͱ+ְ\2SͰg/{Ͱ/;/ְCͱb+ͰXְ)Ͱxְ&Ͱ.ְͰPְͰ"2".3ݱ+C$9b`9X@ 7632'3265432654'.'&#"327>7654#"&'&54#"#"&547>322543254>763254&#"+#L0L7`  -!9<0@*> r  .  ."P/)  iS$ 6  2&dQ  =9 Xk@?Se9)#G84N%o 24- L% 8#',8&08;@1<#(B"  ;*%#mQ#  '9 %& D0;46547>7>7>7632#"'./#"&4&#"7>D* %"1n  A$3  16AFQ - W OI&=dLP  ))*  J!O7D6 ϱH G>)@[Vְ'Ͱݰ/CͰ 2/,\/ ְ4Ͱ?ְͰAְ$ͱ]+4   $9?@$) '(,-01:;CDFGHIJKLMSTUVW$9CV@ %[$AFGHJ$99:;999,@  01?$901%"#".'&/#"54763232#"&&#"32676544#"23267>H 0    '2>x.33Q ; u:$#   2a3?   "-OPx6cKZ ( .hH1'Lw   =R668^6<$)(&&;y *+6#/Ͱ/,/ ְͱ-+#@+  )*$901#"'&547>32#"&'&#"326?>2!?Mf1yK X.M  4'!"&H&^35!3 BVO6tF\;$  F+$HZ8,3I,: -DN /BE/"ְ1ͱ:+ͱF+1"@ D./4BC$9: $9 B$9014632767632#"54.54654./"&7327>54&'.'&#": Ri!*=Gp|;&  $*96Yq@- :BiL( uvi~S  N)Uih>3~Hi," B9&&/2:/ְͱ;+3678$901462>32327>323267632#"'.'&B2;l=[`N DfK#3-. h?  o+)  1#L%S .bV% #U  ^I| +1,/)ְͰ Ͱ%ְͱ-+ %!9 9990126327632#"'.54=76:";6+! ,%m+e@97632"'&=#"'.'&547>7>7632#"&"327>54&#"z >&'j  9C'"  %6&ZA5 ),9 .GGR!"/dA . X ~B  or5^i'14+1P\P8P % // &8e@::DbGV+dXUE3J4/ְͱ+*2/ͱ5+  $9@  !"#%&)$9/,-$901%#"&'&#"#"'.&547>3232>76767>32U  HT   iPE GcH Fp kW_ & NH1~s,k 1 +Ͱ$//2/ ְ+Ͱְ/ͱ3+ @  #$9/$%$9+@ 1&'$9 99/@1 $9$#!+,$901%07632#"'.54632?'&=#"54>7632 B\<#62 1.:Fm 6E "1u'# mk " kE~6M/.Ͱ 27/#ְ(ͱ3+ͱ8+(#%&$93@ 6 !./$9.9901"#"'&546?32#"&54'.54323276=4&Z l) 5Bc1  &2  &*; 3c,d94T$ +41)7#-%"5:'^?>F&//3+?/ְ Ͱ=ְ5ͱ@+ =<999512378$9&+).499901<>3276326263232#"&'."#".'^   bc 5,/Fj&Q A  mm88ii4&  \&> G2' -<$=[>`(9/)/ְͰ%ְͱ*+%@  !"#$$9 9014&63232>32#".4&4'&5&a   \   %!(++N *8J\9 G(3'/,4/ְ0ͱ5+03 $901".57632267>32#"&'&#"#"&/p  O"nG *  $9U *3GN34Em"߇-mCRc%;3$WuRB3/133C/ ְͱD+  999399901#.54763232>747>32#"&'.'.'&#"   {lAh    %Ah7*  :3L 3]AJ   ,rZG?a#: [hp6M=_4r-/ Ͱ/#5/ְ)ͱ+ͱ6+)@ #$-.23$9- $9#@ 4)*23$9$901#"#"&'.54676326326324&'&#"327>7>_)9=Q, 5PR?< 8K\79 ,F" 6]#e(Q|Q  *O[-*6jr0>G 1)/W,3I?/Ͱ/6J/&ְ:Ͱ"ְͱH+ ͱK+:&!# 12$93$9H@6?@DEF$9 $9?9996@  &()*,-:;EFGH$93012$9012632#"+#"'&=#"&547>32&"3267>7>54 ] ($9  x"):;     9 5(H5 l!A +,_n E4@-MJk <"K  9:   U82#H{/;Ͱ/,I/!ְ6ͱ'+ ͱJ+'6@H$% ,-01234;<=>?ABCDFG$9;$9,@ !"H%'($123467ABCDEFG$9901>732#"&'&/#"'.5462654.#"32674&'&54632t35+#6N 6=2&u@L9%E$G25T4"w >6:vE3 #ga >6)Btf)^ ,# =D/>G,#4 ;5=@3M& G' W9K9J`ְ4ͰAK/)ְ#ͰD2:+ͱL+#) 'A$9:@  EF$9999A49:;$90146323#"&/#"54'&54?'.#"#"&%4.'&+3267>9Z 'C!(!s,$(. ?@N &)!  !%DFHxBnf H"G/(K= Adu$z r[G 6Bx=;I/'54&'&#"&5467632".#"'&54632 =44'0E+lC"_**4T΢nZ   !( %5  % zG:B3lN< 8))"*-#(!/Ͱ 2)/*+ 99901"#"&54>7632#"#"&''&#"!H #L_uo!@4+CLM   yl  #TNG D"_t+F/,/ ְͱ +ͱ-+ 999 @ "#$&$9')*99901#"&'&547632327>7654&54632t%32#"&'&54&< " N#W]_#BC%%!'+i56A fHhd@KP5=u L<@B432#".#"'./#"&'&'&54.5432327632326R 4   L$93 6." h .r% !b!xGe--*/K^E4 &t60 2.*1mAz)24632327>32#"&/#"&5454.) OU,&u>00,yC! 6Ex F$_q_ASG>!Acc0 oK/G}3+5%CqqnG)*/ְͱ++9901432#"&54?'.5463232>76f|) ,Q o;rG Vt}8: ?2n= )~tR Mu{!+l+ )B@+ְ2$Ͱְ*2!Ͱ/8C/*ְ ͱ5+ͱD+ *%95@ #$-./02389$9"999!'(99 )$9@@ +-./023$98@ B56;<=$9014>323267>7632#"##"&546546765467>54&#"#"&)bG:< L@.9F3 # !D76U[@] ]5?%IGOZ1O!L;-%)!} M$## +  m5p  {|*h/)Ͱ/+/ְͱ,+@  !"#$%&)*$9)99@  "#&$99901 2#"'.'&5467632#"32B(Z+,  "N! $0       *lM'   f@L) 4O!/ְͱ +$901432#"'.'.'&"&4* S % , H/ r48( D D"G/ #/ְͰ.ݱ$+@ " !$9 $9 901"&5467632#"546?4654'&#" ',8 PJ$6> Da  ʈ o mFCn0//ְͱ+@ $9012#"&#"#"5467>r   b2 )(+6I ְͰ2/ְͱ+@  $9  99999901%2#"'&5472$76/( +m@-  46     p! 3+ /ְͱ + $9 999014632#"&psrst^%8M+ͰH/"Ͱ-/>Ͱ42N/(ְͰCͰ6ְͱO+C($96@ 8  "#-.0 2341M9:>?HIJKL$9999H"99>@ ()M9:CDKL$9-0126$97$9 901"#"54>7632#"&#"#"&'.5467632323254&4.#"326546j.gP @6%B%y)C -:?; % .+A  "e=&'   H#;Lg   !O 6*= %h .' 1 =USW!5>+$Ͳ+// 6/"ְͱ7+$/@ 5",-$99012"&'&'&54763276764#"327>76%*?8*BR   NN53SB b(" ',a$.#G/F8*L. Pf%J@T67MNoW2 j395 T7G0!2F0+ Ͱ/"3/)ְͱ4+)&'99 @2)*$901#"'&'.#"327632#"'.'&547>7632  ;0')HWg6 _"O>-671k'#Ls# +fR*9v<v9\X"'26d aF.A+1Ͱ;/B/ְ6Ͱ?ְ2,Ͱ$ְ 2Ͱ*ͱC+?6@  12;<$9$  !"$9,99*)9;. 9991@  !",- 67?@$901#".'&#"#"'&54>7632324365476;&#"327654&    p|%%+CD'{ ; M&DhRS +e0@uP6 D $"ex' ?M*dO!n3=%(8o+,Ͱ$/Ͱ3/9/ ְͱ7+ͱ:+7@ $%,-01234$9'9$('$93  $9,17$901%2#".547>3232>'.#"32765485ii(OD* : 0' /2H][]E48+aD>21L[2P]%DrF+= K !(JB25@5W & C7Cj.+ְͰְ#D/@ְ 28Ͱ(2+ͱE+8@>9@#$&+,-./0124;<=$99.(9#$901"#"546?67>7>32#"54&'&#"32632#"4'& M,!0Q 7*$" #2!+   LVV5 W]pS, "+" # 2O9  )KR$FwT?QM+"Ͱ./ͰC/R/ְ@ͱ2+:ͱI+%ͱS+2@9:5CD$9I@? #./6"87=>MN$9%'()*$9.+9@23456789:;<=>$9MC@ %&'()Q@A IJ$9012>'4/&#"#"&'.547>7>7632#".54632323267>54'&#"  p%+4 %<s,/:Jb#5n7JE<-=,#2.!W`VWf%\(J r K35X!$5EL $*(:`oS/y# 8<4C+5/ְ-ͱ&+ͱ6+&@ ')/12$9 !"$$901745476327>32#".'&/#"'&_'    <  :.M  VP\5 JD=v'-8 7->-DL626,p+XbO//ְͰְͰ2+@  $901632#"'&5474632#"&r    #: X {J>E k:)4~+/$5/ְ ͰͰ*ְ0Ͱ .(ݱ6+$9*990$%-.$9(9 9$$9@ )  ($901&546;2#"&54'&546323276544632#&%(  -#.)1@ E!W  rS6EK:  9(1@-  Ǩ32;-+32#"&#"54/#".'&'.3  r=2  )u(kJbF z5   ':r=+  >^ 2#F1 -S!* F>:1-a(+/ְͱ+ $9014632#".'&a =    oE v $*nsq@1I +37Ͳ+J/Gְ?ͱ2+,ͱ%+ͱK+?GDE$92@ 378;<=>$9,/01$9%'(+$9"#999 7901432326767>327>32#"&'#"#"&'.'&#"#"&54&  % ^(*   0*#0 # "'  :7 $++/=^7632"&54654&'.#"#"'.'&~ $I(    \!   " 4,*))B;4e#.Zl2- c"U OHMBf Ios8R9&T+Ͳ +'/ְ$ͱ+ͱ(+$ $99@ $%$901>32#"'.542654&'&#"NkR|^ECJg>+T %*/"#);2gI/J,@j*)G2E@y 8_8Sj< OE'<_++/Ͱְ 2$Ͱ4=//ְ ͱ>+99+9$! <()$94 &'/07$9$901463232632#"/#"&'&.#"54232>54&'&#"t 1)2h>)vC . $'  ((hI *]HC  $3 iPX_6+ aK g92@@c;(*c>3DY&/LͰ=/0Ͱ/7Z/ְ:ͱ4+ͱQ+ ͱ[+4:@ -10=>BC$9 HIJ$9Q@ GLMNOSTUVW$90L@! IJNOPQRSTUVW$9=FGH9997@3  -D458:;BC$9017463227>32++"./#".4&#3267>76&#"3267654'.6.*|#,$L  ) " @K-(3W o"{i-  .'*#/  *$)*$.% 2pa6>9G2 l?E& L!&FR $ d";+#/ְͰͱ$+999@ "  !$9012#".'&547632327>&>   #u Ye?  4 -7AaD9z+Ͱ"/0:/ְͱ3+ͱ;+'()+,$93@9 "#-.0178$9990@9 ()*+,-.3478$9017"&5467632#".#"#"&'.5463232654.'.bfH 7  #P,4=`D H#V  I +BXI&$ # &"/"/!:1.&H 5 (g'/0c)+$+1/+ְͰ.ݰְ 2ͱ2++&'().$9 !"#$$9 $9$9014&547>3232632#"&54.'.#"#"54>76 M2n2zI\ %r& , @3%MVV'L&&2^+++-/Ͱ.3/ְ ͱ4+ 99- !"#$9@2 %&')*+$901432327>767632#".#"#".'&L  /:k 3#   ,k%** ` /Q$')3lj-?  ff E\%`hBU, '++.!/ְͱ"+9014632#".'&54323267>|N% ;WD I(./Et$PH& >,o:/);0+3/,ְͱ'+GͱL+ͱT+>:AB999'9999G*+,7$9L@!-/01.3562JNP$9@   $99J@ (*+,-.'RGHNP$90237$95999 @F @ABDE$9013267>327632#"'.'&54>7>7>54&#"#"'.5>32325./W - *)*  ) *@ (  7 % NK^)2Jb! p  9-%  C11/>dqS0\U;F8 <+:4B+>Ͱ/(Ͱ6/1C/ְ#Ͱ*ְͰ;ְ2 ͱD+*BA$9(1234$9;@ -./06$9  99#!$9(*+991@  !"#$-./$9634$9>@B ;54&#X 0 4 %-,<35(=)!D)2/H ! 0  N  #5?. c !  %  $Y4Qt6M*/ 7/2ְͰ2ְ.2Ͱ2ְͱ8+259-9+9 *%&99014&54?#"4#"32632#"'&/&54>{      ,  #p! # \*D:>*d (yw  9"/ְͱ+ $90162#"'&'476 )JBt1D/#2/,ְ Ͱ/ְͰ%23+/,! $9 "#99$9#90143232"&543232?'&'&54654&t      &      A  L=@$  * .rtW ְͰ2ְ/ְͱ+@ $9$9 99 90146327>32#"&#"""rW#96  K z&%L% %XJ-S *<+/ְͱ,+@  * !#$&'()$901"#"3254&326?'.'&#" !  4F 6#0     2(: %A %'P$0?Q-+<ͰB2%+'+P/R/ ְIͰ%ְ-ͰְͰ2S+I 99%P99@AB$9-9<=>999P 9<@ !1234567@IJ$901%>32#"'4'#"'.'&54>7&546;232#"'&'.''32F&Q6 _"'"  -6710N7  Ls  1() ' LP6v1  Q\X"+S@%@oa.# %3zI3&*9J*]TְYͰQְ2[Ͱ[.LͰ>/CͰ /.^/ְ6Ͱְ2HͰ:2_+6L9H99[Y99LTU9CQ@ EFGH$9>A$9.@$%(*+)012679$901"54>5>76=7#"&54?67.547>32#"&'&#"32632#"#26363237#"'.  ! . A >VBc !%!& ! 3>p/ #,7W   ? N_ D4;%;%$ T%1  .z( c 55P/D3Ͱ/6Q/ ְ@ͱH+*ͱR+@  99H@5 4P6789;<:DEMNO$9*(,99496@  (*+,@AHILMO$9&:;<$901"&'#"&467&547.4632>732>32#"&'"&54"327654.#&4&ZD@8#6=%!% ?=67?0, ,!&*B$5  !L;>@:$$?8 %8>"7654322632#"&#"3262#"#"#"&547#"&4'>;x49?'B rG Vt}8|)Q $ ?S6(' ?Q^ TG@ 4]:tR Mu{!+l+ %: ?2-  4 %  )/ְ2Ͱ2+ $901754&"3276'4" 0 I)@ BJD0fB/PͰ /ZͰ/#g/]ְ0ͰͰeְ&Ͱ0. ݱh+]GHIKL$9eMN99&YZ[b$9 @  !#$*+,-.345679:;32#"'.#"32#"&'.5463232654.'.#"&5467/.546N@(2Bq& H#U  I +BXbr=)$  H#V  I +BXb\H D!u H 5 (g'I&|(1  H 5 (g'I&%y0 09}+ >//ְͱ+@  $9@  $901#"&54632#"&5462+ ! m !  )!#)!#Zt<&X"+Ͱ/ ͰI/TͰ,/=Y/ְͱ'+Cͱ+ͱZ+C' 9@$  !"#,-./0234579:;=>IJKLMNOPQRTU$9ITKLM$9=@&X(/01'34579:;2CDNOPQR$9,99" 99901>32#"'.542654'4'.#"&#"4>32#"".'.#"3232632#"'.NkR|^ECJg>+(9 ZZ>:O&I+-E    :\' ))I/J,@j*)G2E@yRxЉ =X:c 1:+:  % #>E=>K]A+PͰG2ְͰ ְͰX/7Ͱ#/^/ְͰ<ְSͰIְ2(ͱ_+<999S$9I@$ K#$24578ABCDEFG]LMPQXYZ[\$9(/0$9 *+,-$9999$97  ./0$9X-,99P@)+345<=2]LMST[\$9A(CDEI$9J$901"#"'>32;2#"&##"&"#"5467632#"/"#"&'&5467632323254&4.#"326546.4) 6|Qk %ml1 B>( 6 `!6 %.4-" *!@<P1 % = 9/m=R 33 ? 7!1kSI ' 1IH<}0/3Ͱ"2=/+ְͰ9Ͱ ְͱ>+ 9)9(9@ < "#%&01235;$90@ < %&()+,2359;$9014&#"3254./&54676#".'.54?632/[:]* )A"Z0m0Z9^) )A"[// !o2U&$= i! "n3U&$= i"I-(pְ%Ͱְ)/ְ#Ͱ ְͱ*+  $9$9#@  !%&'$9#'($9 !$901%/&"&547>74&54632232632#"&#FD    :)"% W e  * k vN?$ְ Ͱְ /+  999016327>Xϫp    3#Nfx3guG+lͰ/3 ͰW/5^33\Ͱ/'v/ְ"ͱ4+cͰ(2h+Lͱ/+ͱw+4"@789:<=>?@ABCDEG$9c'H`flmn$9h@ )*+OPQRSTU^pq$9LVWX$9/@ 32YZ[\]$9 9\312gef$9W4Z99l@""#79:<>?@ABCDELMOPQRSTU`uhiopq$901"3267>54.'&#".'.5467632632#"%4.54?'&#"#"5463232#"&/#"4&+3267>R&HD3^KgA t7-!C*6R]">EQ>E 'Y 2   , "aU Z 'L$ < !x.E*s]0+ D7.;%G'+<$G*H "$ 9Q 3 #,;! 2 ; A{" <3-`ְ Ͱ .Ͱְ/ְͱ+@ $9  $99$901#"&#"#"'>3232632 %"). ) 6|QS%C \/ Ͱ//ְ ͱ+ͱ+  9 $99  99 $99014632#"&732654&#"<&+=\".D ) .7C")>?2 YjE>?ְͰ.?/'ְ&ͱ@+&'7899 $9 901726326?#'>322#'#"&546?5476327>~5467>3237>32#"&467>54&#""7 &@% )S##f*'T/!K# /ZLL0  87%     =9M.4rb17{ /Ͱ5/8/ְ Ͱ2 ְ0Ͱְͱ9+ $9 @  "#234$95699 @7 $9599901#"54323267654&#"#"54327654#""54"54?232byAD  ?"4 SPP `<3YhH #1+$ _    l9p! 4+ /ְͱ + $9 $90132654#"psr9stL&T`ְ+Ͱֱ 22:U/Gְ>ͰQְͰ>.KݰI3ͱV+>KTE999<@AB$9;9+ $9012654#&'3267>323232632>7>54"#"54#"&54#""&'&54654.#"n&%k,   !   ,)  k:/.   T) \E jj ( (-R jl3)IiI/ g^C]@v <<n/ =/ְ6Ͱ6.ݱ.+%ͱ>+@ $96<9.09% "!)*,#$9 @ -./0134$901"545#"&#"#".'&547>763232632#"'&'"#;  6 3 " >4e   nRu  5#;-)\2T(L+(qqְͰ./ְͰְ Ͱ.ݱ +$9$9  999@ $9014632546232#"&72654#"qe#hA85# Y$i 2"7oN  bz"uְͰ#/ְ Ͱ ְͰ . ݱ$+ 999 $999 $999@"  !$90174654#"##/&'&#"327654&  +- " 5   $'7LV// ְͰ.ݰ2+  $9$9@ $901"&54#"#"&4>?632 D    L\k]   ((-h  T#<)ְ'Ͱ/ְ:Ͱ/Ͱ/=/ ְ!ͱ+Ͱ12>+! &'99@#<$%+,-./789:;$9056999:'456999)<%$3$9/+,-999@  !"$9012#"'.547>2654'&#""#"'>32;2#"&##"&RAAGf7M/ I;P?g#,&N.4) 6|Qk %mT;MO>5&5/ZF7#rm+G*>P %IH<//3Ͱ!2=/ְ*Ͱְ Ͱ*.8ݱ>+@ <!"$%/0124;$9 '98(9/@ <$%'(*+12489;$9014632#"54>?64&'&32>7>54/&#"O/[9^) )A"[/l/[:]* )A"Z0/ o3U&$= i  "n2U&$= i!7ab0>Xp=/q/\ְj2oͱ+;Ͱ4ְ2-Ͱְͱr+o\ZYkl$9GHIR$9;94@ 7=X?@DEFW$9-"#ABC$9@ 0 $%&*+$9= R$901%2632#"'.##"547>72632>54/322#"54>7>"&54#"#"&4>?6326 1"  ;<6o   j* 8Z/4V#H} D      ?".w# ,Q 5*)" 72&Wb55m dGC<&F'\k]   ((-b27ab7Qir /3j/Uְc2hͱ0+ͱk+hUSRde$90@)7 #$&'()*+-.3456Q89:;<=>?@ABKP$9"9 3iRS99901%4>5467>322>32#"&467>54&#""2#"54>7>"&54#"#"&4>?632 &@% )SEe,'T/!L" /ZLL0/4V#H} D      87%     >9M.b55m dGC<&F'\k]   ((-b24ab0>v=/ͰL/BͰt/T/DְIͰ[2_ְoͰQְ?ͱ+;Ͱ4ְ2-Ͱְͱ+IDFGXYZ$9_@BLMTUVW\abqrs$9Qtu99?999;94@ 7=wx|}~$9-"#yz{$9@ 0 $%&*+$9= $9B@0 "#()*+-.45;7$9L$&%999T@v@DE?GIJFQRVWXY~$9tZ[\}$901%2632#"'.##"547>72632>54/32#"54323267654&#"#"54327654#""54"54?2322#"54>7>6 1"  ;<6o   j* 8yAD  ?"4 SPP `</4V#H  ?".w# ,Q 5*)" 72&WYhH #1+$ _    l9b55m dGC<&F'J ?#+=Ͱ/@/ ְ&Ͱ Ͱ2ְ)ͰְͰ&.8ݱA+2 @ $9 0>$9)#/=$9598$6$9=@?  !&'89$901265.#"4632#"32654&#"32654/74654#"#"&9 !M2# %*'Uv69[d# &$+ =#`#')@Z3 >[25fvDO.KE/<>:# `. 2OD0;F46547>7>7>7632#"'./#"&4&#"7>4632#"&D* %"1n  A$3  16AFQ - W OI&ysr=dLP  ))*  J!O7D6 ϱH QstD ;F2654&#"46547>7>7>7632#"'./#"&4&#"7> ts* %"1n  A$3  16AFQ - W OI&st\=dLP  ))*  J!O7D6 ϱH DEP/Q/R+012#"&#"#"46?646547>7>7>7632#"'./#"&4&#"7>q 23* %"1n  A$3  16AFQ - W OI&2!)'MN=dLP  ))*  J!O7D6 ϱH DLW/ 3X/Y+90146327>32#"&#""#"46547>7>7>7632#"'./#"&4&#"7>W#97 J {%% * %"1n  A$3  16AFQ - W OI&zK% &XJ,=dLP  ))*  J!O7D6 ϱH D FQ#/R/S+   $901#"&54632#"&543246547>7>7>7632#"'./#"&4&#"7>Fn ! !* %"1n  A$3  16AFQ - W OI&$ #)!#.=dLP  ))*  J!O7D6 ϱH DNYl/Ͱ/Z/ְͱ+C2 ͱ[+9@ ./YOPRS$9 234A$9@  $901"&546763274&#"327632646547>7>7>7632#"'./#"&4&#"7>#/ '$9 1 #  7* %"1n  A$3  16AFQ - W OI&N78"5;t+$ @=dLP  ))*  J!O7D6 ϱH J Ye/ Ͱ;/@f/]ְGͰְTͱg+]9G  345$9  !#$Y$9;@1%&'()*+,-234569=>ABGHIJKLMNOQReZ[]^_`c$901%2>32#"./&/#"&546547>7>7>76323>3226322654#"*N/E  "/%)##  '} #7+@$7 y/H+m P 8&h"! D (LQ*%V4 =dX[A   /40 @!]&̝Cyy*F/Ͱ!/Ͱ5/+G/:ְ%Ͱ?ְͰBְ ͱH+?%"$9B !>$969  999 99@ =>ABCDE$9+!@%&-./012:;$953901.#"327654&54>327>54"#".5467>323254&#"3[!+- " P!53^&H&"!'4  M.X Ky] $' 7,I3,8ZH$+F  $;\Ft( B. EZ2/>F/ ְ;ͰͱG+ ?BCD$9;@)   !"#$%'()*,-./0126789>$901462#"&462>32327>323267632#"'.'& _ r2;l=[`N DfK#3-. h?  _ sf+)  1#L%S .|V% #U  ^IB D[1/=E/ ְ:ͰͱF+ >ABC$9:@*   !"#$&'()+,-./015678=$90132654#"462>32327>323267632#"'.'&sq2;l=[`N DfK#3-. h?  rt+)  1#L%S .|V% #U  ^IB8R?/KͰ/S/ְHͰ)ͱT+)LOPQ$9H@4  !"#$%+,-./01245679:;<=>?CDEFK$9?@6 R !"#$%)*,-./012345679:<=CDEFHIPQ$9012#"&#"#"5467>462>32327>323267632#"'.'&r   c2;l=[`N DfK#3-. h?  8~ ('7+)  1#L%S .|V% #U  ^IB Or32327>323267632#"'.'& ! l ! 2;l=[`N DfK#3-. h?  )!#)!#+)  1#L%S .|V% #U  ^Ik <+Ͱ//:=/+ְ6Ͱ&ְ:ͱ>+&+@  ).$9: #"/0$96@  < 12$999:@ < "&()*+$9/.,67$901462#"&7632#"'.54632?'&=#"54>7632 _ r B\<#62 1.:Fm 6E "1_ s'# mk " kk ;+Ͱ./97632srn B\<#62 1.:Fm 6E "1rt'# mk " kk3H#++Ͱ;/FͰ/I/7ְBͰ2ְFͱJ+27@  #$'()+,5:$9F@ /.;<$9B@ H=>$9+#()99F@ H.24567$9;:8BC$9@ <=>$9012#"&#"#"5467>7632#"'.54632?'&=#"54>7632'r   bl B\<#62 1.:Fm 6E "132 )(B'# mk " kk E +(Ͱ8/CͰ/F/4ְ?Ͱ ְ.2CͱG+ 4@ !$%&()27$9C,+89$9?@  E:;$9( %&99C@ E+/1234$9875?@$99:;$9@  $901#"&54632#"&54627632#"'.54632?'&=#"54>7632 ! m !  B\<#62 1.:Fm 6E "1)!#)!#'# mk " k: 9aְͰ\ְ=ͰB2_ְ@Ͱ/Ub/5ְDͱM+!ͱc+D5@ ,+.-BGUVWXYZ$9M@'()&a;=>?@A:\]^_`$9=99@";99\a:99_ 99U@ !MN XY$9$901#"&'>3&/"&54632767632#"54.54654.%#"&#327>54&'.'&#"32632L1 !4z $* Ri!*=Gp|;&  $ n6Yq@- :Bx=Su % H ( tvi~S  N8,^X @3~Hi," R]4/L3NͰ ְͰ2ְ^/%ְͱ_+%'*+9994N "!999@']%&)*+/0129:?@ABDEFHIJKQRSTVWXYZ[\$9$9 99 90146327>32#"&#"""#.54763232>747>32#"&'.'.'&#";W#95  K z&%   {lAh    %Ah7*  |M$ %XJ.3L 3]AJ   ,rZG?a#: [hp6M=_ *A|:/Ͱ(/0B/ְ6ͱ++ ͱC++6@  "#$%&'()01:;?@$9:$90@ * A+,67?@$9(!#$"&%$9014632#"&#"#"&'.54676326326324&'&#"327>7>i_ q)9=Q, 5PR?< 8K\79 ,F" 6]#e(_ sQ|Q  *O[-*6jr0>G 1)=_ (?|8/Ͱ&/.@/ְ4ͱ)+ ͱA+)4@   !"#$%&'./89=>$98$9.@ ( ?)*45=>$9&!" $#$90132654#"#"#"&'.54676326326324&'&#"327>7>Csr)9=Q, 5PR?< 8K\79 ,F" 6]#e(JstQ|Q  *O[-*6jr0>G 1)=_5LE/"Ͱ3/;Ͱ/M/(ְAͱ6+ͱN+6A@%   "#-./01234;#"#"&'.54676326326324&'&#"327>7>r   b)9=Q, 5PR?< 8K\79 ,F" 6]#e(2 )(Q|Q  *O[-*6jr0>G 1)=_8OH/%Ͱ6/>Ͱ ְͰ2ְP/+ְDͱ9+ͱQ+9D@# !"#%&01234567>?HIMN$9  $9H%!"# $9>@ 8,O9:+DEMN$96/12043$9$9 99 90146327>32#"&#"""#"#"&'.54676326326324&'&#"327>7>W#96  K z&%)9=Q, 5PR?< 8K\79 ,F" 6]#e(L% %XJ-]Q|Q  *O[-*6jr0>G 1)=_ 2I+ͰB/Ͱ0/8J/%ְ>ͱ3+ͱK+3>@!  *+,-./01 89BCGH$9B$98@ 2&I34%>?GH$90)+,*.-$9999@  $901#"&54632#"&5462#"#"&'.54676326326324&'&#"327>7> ! m !  )9=Q, 5PR?< 8K\79 ,F" 6]#e()!#)!#Q|Q  *O[-*6jr0>G 1)m6?+7/ְͱ8+@6   !$(*+,./245$901%#"&54654.54632267>32#"&/2  $U-6-  R B%"J@$,%  "' JB8?GD,8<a(80! ',24=c0:L=/Ͱ%/1M/ְ7ͱE+ͱN+7$9E@ "#$%&'()*,1:;=>BCGIJK$9./$9=  $91@78:;BCDEFGJK$9%!#"$901#"#"'#"547.5467632632632>32327>7>54'c$@)9=Q,'! :(5R?< 8-A" %0$#e(/4h N3KQ|Q *' o4?[-*6(`"0> k 9 1)(P0 d_t 7O%/8/ְ ͱ,+ ͱ9+ 999,@  !%&./02$9 35699901462#"&#"&'&547632327>7654&54632 _ rn%7654&546323srA%$9?AB9991@ %&()*,-89:;<=>?AB$9012#"&#"#"5467>#"&'&547632327>7654&54632;r   bF%?999.@"#%&')*56789:;<>?$9@  $901#"&54632#"&5462#"&'&547632327>7654&54632 ! m !  h%76r tr|) ,Q o;rG Vt}8vst: ?2n= )~tR Mu{!+l+ V \ a+ͰF/>Ͱ/,ͰV/ab/Mְ.Ͳ222..Jݱ +!ͱc+.JIVWa$9 @  &'()*+,-034567:XY\]^$9F>7:CD$9,/02346HI$9&'()*.$9@  !"$9aMOPQR$9VUS]^$9013267>54'.#"732632#"#"'37632#"'.546327'&=#"54>7632X #2 M &J %  * 7/6 #6 1.:Fm 6E "1  54&#"325>7>72#2+"&#"326327>7654'.'+.uX;( " :  : 0 )  #,*+Vf>s2A%-F+Q[X*% ( QB!.* #QB#   'K)03] I^"+ͰY/*38ͰC/OͰ 2_/>ְ,ͰTͰְ'ͱ`+T>$9@*  I  !"#345689CDFGH^JKOPYZ[\]$9,()/0$9Y8-,99O@)3456>?^JKTU\]$9CFGH$9$9"901"&54632254&#"#"54>7632#"'."#"&'.5467632324.#"326546\q` C&$HR >6& 3  w'D .:>> / )@   d>Lt _ i )   "3& j &J 6*? %3 ,) 0 =]<Q^+ͰL/3+Ͱ6/BͰ2_/1ְͰGͰְͱ`+G1  $9@*< &'()+,679:;Q=>BCLMNOP^RSUVYZ[\]$9"#$9L+ 99B@&'()12Q=>GHOP$969:;$9 $9901%254&#"#"54>7632#"'."#"&'.5467632324.#"3265463267654#"&$HR >6& 3  w'D .:>> / )@   d>_ qi )   "3& j &J 6*? %3 ,) 0 =_ s]Y<Qm+Ͳ\+RͰL/3+Ͱ6/BͰ2n/1ְͰGͰְͱo+G1  $9@1< &'()+,679:;Q=>BCLMNOPmRSZ[\]abcefghikl$9@ "#UVWXY$9L+ 99B@&'()12Q=>GHOP$969:;$9 $99\@VWXYZabcdefhikl$901%254&#"#"54>7632#"'."#"&'.5467632324.#"3265462#".#"#"&5467>&$HR >6& 3  w'D .:>> / )@   d>d OH=:   bi )   "3& j &J 6*? %3 ,) 0 =JX@@ )'],<Qm+ͰL/3+Ͱ6/BͰ2_ְdͰl2Uְ]2gn/1ְaͰGͰְͱo+G1@  mRSkl$9@+< &'()+,679:;Q=>BCLMNOPUVXZdefghij$9a@  "#]^_$9L+ 99B@&'()12Q=>GHOP$969:;$9 $99gdSXRZij$9Ub9_a901%254&#"#"54>7632#"'."#"&'.5467632324.#"32654646327>32#"&#""#"&$HR >6& 3  w'D .:>> / )@   d>W#87  K!y&% i )   "3& j &J 6*? %3 ,) 0 =K% &XJ,^L Mb#+Ͱ]/7ͰB/SͰI2/c/=ְ,ͰXͰKְ(ͱd+X=$9K@+M !"#$1234578BCEFGHI bNOST]^_`a$9(/0999,*9]7-,99S@)1+345=>2bNOXY`a$9B(EFGK$9L$9# 9999  $901#"&5462#"&5462"#"54>7632#"&#"#"&'.5467632323254&4.#"326546 !  j \.gP @6%B%y)C -:?; % .+A  "e=*)!#$ #&'   H#;Lg   !O 6*= %h .' 1 =^fWl -+Ͱg/AͰL/]ͰS2/Ͱ/m/Gְbͱ+*2ͱ+ Ͱ;2U+2ͱn+bG"$#&%$9ABg999+^h$9@  ,-LM]ijk$9 @ W<=>?OPQlXY$9U.RS99929:99gA7699]@3;5=>?GH7632#"&#"#"&'.5467632323254&4.#"326546@$. ($8+$ #  .gP @6%B%y)C -:?; % .+A  "e=78# %0!u+% &'   H#;Lg   !O 6*= %h .' 1 =@7P`t(+Ͳ0+TͰoְͰCְNͰ/>3eͰ2[u/ ְjͱ+>ͱ_+8ͱv+j  !"#$$9@()tabefopqrs$9>-$9_@ 10CDTUXYZ[\$9oNO9C9e@ FGHIJtabjkrs$9$9[<=99@  !"#$-89Y_$901%#"&'&5467632323254&#"#"5467632>3232>32#..#"3276544.#"326546y'H '274 (ZF HC/ #0$@' ""$2A@A1#(&W? %IJ)4#"6@u# .#%9 W5u : G*= %h'& '"*9? J !(IC2UUQ]+X & .' 1 =0j!R;+-Ͱ/Ͱ!/3S/@ְͰ(ͰJְͰNְ ͱT+(@BC99J"H$9N !999  -<$9@ .23456789;$9 99@ JKLMNOPQ$9!H999-@()345689@A$901.#"327654&547>76?>54#"#"&'.547>3232654&#"!+- " 6 "_ 6gWH)'0;  sL#N{=-l $' vͰ./Ͱ5/)C/ְ)ͱ9+#ͱD+9)@   ./B3456>?$9#19).2 1$95'(999>$B3#9:$901"&546322#"&546763232>%327654&'&#"1q_ 0Mq8Z#QP#'>35E`X]E2;+`D=La2N12Lgs _ q FJ61J,g,#% !(JB15?5{ & CV3=(8Ey+,Ͱ$/Ͱ3/F/ ְͱ7+ͱG+7@$%,-01234E9:;<=?@AB$9'9$('$93  $9,17$901%2#".547>3232>'.#"3276542#"5467685ii(OD* : 0' /2H][]E48+aD>21L[2aq!:P]%DrF+= K !(JB25@5W & Z s !=3=c(8P+,Ͱ$/Ͱ3/Ͱ9/@Q/ ְͱ7+ͱR+7@$%,-01234P9:>?@AEFGIJKLNO$9';<=$9$('$93  $9,17$9@@ <=>EFGHIJKLNO$901%2#".547>3232>'.#"3276542#"&#"#"5467>85ii(OD* : 0' /2H][]E48+aD>21L[2r   bP]%DrF+= K !(JB25@5W & 2 )(3=Z =M&+AͰ9/ͰH/4Ͱ/N/!ְ4ͱL+.ͱO+L4@ &' 9:ABEFGHI$9.<949=<$9H"2!3$9A/.FL$9&999@  $901#"&54632#"&54622#".547>3232>'.#"327654 ! m !  C5ii(OD* : 0' /2H][]E48+aD>21L[28)!#)!#}P]%DrF+= K !(JB25@5W & De 7/ְͰְͱ+9@   $99014632#"&632#"'&54Dsr.  Mst X {J>Ei 7/ְͰְͱ+9@  $99014&#"326632#"'&54srf  Qst X {J>7f(J/)/ְͰ'ְͱ*+' $9@ "#%$999012#"&#"#"5467>632#"'&54r   b  f2 )( X {J>O %W/&/ְͰ$ְͱ'+$99@   "$9 99@  $901#"&54632#"&5462632#"'&54 ! m !  .  -)!#)!# X {J>8ZS8+Ͳ.+Ͱ/T/3ְͱ+(ͱU+@ !./89:;<@BCDEGHJMNO$9(%&99@  %&'34$98@ !:;<@BCDEGH$9J$901%2654&'&#">32##"'.547>3464.'&'#"'>7.'.543:T %*/"#);2gTIG% eFCJg>+aKX "{ +R H  "j& 8_8Sj 6:,#h*)G2E@y]G23 * $+~PU/+FͲ+ ְͰ2ְV/ְͰ626.43@ݱW+@@&$&'(*+/0<=>BFGLMNORST$9 3$9/FU9999$9 99 90146327>32#"&#"""43267>7632"&54654&'.#"#"'.'&W#96  K z&% $I(    \!   L% %XJ-" 4,*OB;4e#.Zl2- c"U OHMBf Ios8R? 0_ +%Ͳ+1/ְ.ͱ +ͱ2+ .@  %&'()$99%@  !'()./$9012#"&546>32#"'.542654&'&#"KrqNkR|^ECJg>+T %*/"#);2g?s$s I/J,@j*)G2E@y 8_8Sj8R` 3_+(Ͳ+ 4/ְ1ͱ#+ͱ5+#1@  ()*+,$99( @ #$*+,12$9014&#"326>32#"'.542654&'&#"_ qNkR|^ECJg>+T %*/"#);2gH_ sI/J,@j*)G2E@y 8_8Sj8R*>+3Ͳ$++Ͱ/?/)ְ<ͱ.+2ͱ@+.<@  $%34567$993+@ )./567<=$9@  $9012#"&#"#"5467>>32#"'.542654&'&#"wr   bNkR|^ECJg>+T %*/"#);2g2 )()I/J,@j*)G2E@y 8_8Sj8Rg-A+6Ͳ'+.Ͱ ְͰ2ְB/,ְ?ͱ1+"ͱC+1?@'(6789:$9"  $96.@ #",1289:?@$9$9 99 90146327>32#"&#""">32#"'.542654&'&#"W#96  K z&%NkR|^ECJg>+T %*/"#);2gL% %XJ-I/J,@j*)G2E@y 8_8Sj8R ';+0Ͳ!+(Ͱ/32#"'.542654&'&#" ! m !  NkR|^ECJg>+T %*/"#);2g)!#)!#I/J,@j*)G2E@y 8_8Sj2S%8+ְͰ ְͰְ9/ְͰ&ְ 2-Ͳ222:+&$9-@ % !"#$)*01235$9$99  $9@ % !"#$$901#"'>232632632#"'4632#"&4632#""&'&x) $   l#     % '' " #69  8Rt 5CD}.++ /E/'ְ?ͱ+22ͱF+?@  ",-.0689:A$949  "$9.@ '(6789:?@A$901%2654&'#"'#"54>7&'.547>32?"67:T w4?^ECJ   !+aNkR  w/!#);2X *&4 d+&xj*)'  2E@y]I/% ]8_8r3=L& = ++"+8/Ͱ .>/ ְ*Ͱͱ?+  99*@#  "#$%&'(-.01245689$98)*+,-.$9 @= $%&'(012456$9014632#"&432327>767632#".#"#".'&sr  /:k 3#   ,k%** st /Q$')3lj-?  ff E\%`hBL& = ++"+8/Ͱ .>/ ְ*Ͱͱ?+  99*@#  "#$%&'(-.01245689$98)*+,-.$9 @= $%&'(012456$90132654#"432327>767632#".#"#".'&sq  /:k 3#   ,k%** }rt׻ /Q$')3lj-?  ff E\%`hBL&VG+)+,+B/#Ͱ./H/ְ4ͰͱI+994@)  #$(),-./01278:;<>?@BC$9#B345678$9@G(./012:;<>?@$9@  $9012#"&#"#"46?6432327>767632#".#"#".'&(q 23  /:k 3#   ,k%** V2!)'MN  /Q$')3lj-?  ff E\%`hBL& G+)+,+B/#Ͱ./H/ְͱI+99#B345678$9@G(./012:;<>?@$9999@  $901#"&54632#"&5462432327>767632#".#"#".'& ! m !    /:k 3#   ,k%** )!#)!#G /Q$')3lj-?  ff E\%`hBI Q]+@Ͱ+/UͰ/DͰ:2^/Iְ#Ͱ Ͱ2ְRͰְW2'ͱ_+ IELM9992 D$9R567B$9@ ,8:;<9>@A=UY[$9'@ &(+$9#!$9DU@ &3567892]RSY[$9#$;=>B$9@ !"999@Q  KLMOP$90132654#"3267>327632#"'.'&54>7>7>54&#"#"'.5>32325./srGW - *)*  ) *@ (  7 %stzNK^)2Jb! p  9-%  C11/>dqS0\U;F8 <+:`)Ix;/%Ͱ/J/ ְͱ?+ ͱK+  $9?@%&I*+,-/01456;<.DEFGH$9;@ !I*+,./0156?@DEGH$9017#"'&'476762>72#"'."&54#"327654.'&54&  )"/5 S$0HN& .>2 (7) R(0J   .()JB!1 0)EKbz"} &R7FF;~$7I [g+JͰ5/_Ͱ/NͰD2/h/Sְͱ<+\ͱa+1ͱi+SOVW999<N$9\ ?@AL$9a@ 6BCDEFGHJK_ce$91@  $&(%025$9N_@ 0=?@ABC327632#"'.'&54>7>7>54&#"#"'.5>32325./ ! m !  @W - *)*  ) *@ (  7 %)!#)!#NK^)2Jb! p  9-%  C11/>dqS0\U;F8 <+:D Q\/ ]/ְ ͱ^+01&327>54#"#"'./46547>7>7>7632#"'./#"&4&#"7>|  CB>  !  * %"1n  A$3  16AFQ - W OI& 5 a  # % =dLP  ))*  J!O7D6 ϱH ^0Ti*+Ͱd/>ͰI/ZͰP2/j/Dְ_ͱ+ͱR+/ͱk+_D! #"$9?d99'(>[e$9R@T)*+89:;4399Z@082:;54#"#"'./""#"54>7632#"&#"#"&'.5467632323254&4.#"326546 CC< !/ /.gP @6%B%y)C -:?; % .+A  "e=5 ` $. &&'   H#;Lg   !O 6*= %h .' 1 =DALJ/M/ ְ?Ͱְ<ͱN+ 89:$9? 9<A>$9 999012632#"'&54674'./#"&546547>7>7>76324&#"7>  ##16AFQ * %"1n  A$3 - W OI&2  S BaO7D6 =dLP  ))XϱH ^r%K`<+.Ͱ/Ͱ[/Ͱ"/QͰ)2a/ְͰVͰ ְIͰ+ְAͰG2ְEͱb+V12345$9 @"#%&'./9:;<`LMQR[\]^_$9+()=$9I 9AK999EC9999 999 $9[EFG$9Q@BD`LMVW^_$9"%&'+A$9.,12345$9<99012632#"'&54654&#"#"&'.5467632323254&#"#"54>76324.#"326546  %"y)C -:?; %$.gP @6%B% F .+A  "e=f   NX !O 6*= %h&'   H#;Lg 5*" .' 1 =0M =m;+Ͱ"/->/4ְ(Ͱͱ?+41299(@  = "#$%&-.;<$9"@= $%&'()45$90132654#"#"'&'.#"327632#"'.'&547>7632sq  ;0')HWg6 _"O>-671k'#Lsrt# +fR*9v<v9\X"'26d a0xGyE+ Ͱ,/7Ͱ/H/>ְ2Ͱ%ͱI+%>;<992@" G !,-./078EF$9 ,@G%&./0123>?$901264#"#".'.#"#"'&'.#"327632#"'.'&547>76324q 23  ;0')HWg6 _"O>-671k'#Ls2!)'MN# +fR*9v<v9\X"'26d aF&AT-+DͲ +N/"U/&ְIͰRְ12?Ͱ7ְ2Ͱ=ͰְͰְ ͱV+RI@ ! #".0-DENO$972345$9?99=<9  $9 9N"A999D@ &'012345?@IJRS$9 -7901432#"&'.#".'&#"#"'&54>7632324365476;&#"327654& 7  A    p|%%+CD'{ ; M&DhRSE  F4):(&E+e0@uP6 D $"ex' ?M*dO!nFXN+Ͱ /CͰְͰ%ְ,Y/GְͰְR21Ͱ=ֱ224Ͱ."Ͱ.2Z+@ @ABCDNOQ$9=>?STUV$91899994"!9 C34=999@12>?@AGHQRSTUV$9,()*.$9'9%"#$901&#"327654&#"'>7676;262#"&##".'&#"#"'&54>7632324365; M&DhRSm*+#  2  $    p|%%+CD'{ ' ?M*dO!n# %x+e0@uP6 D $3=%>N+BͰ/Ͱ./Ͱ2I/)O/ְ)Ͱ ְ=ͰMְ#ͱP+ )@ ./BCFGHIJ$9=M 1$9#:;999 999 =99.:;<999)@ 12345678$9I'($9B$#GM$9012632#"'&5467#".547>3232>32.#"327654  $!kZ(OD* : 0' /2H][]E48+aD> (]21L[2!  NU%DrF+= K !(JB25@5" g  W & 3=@P)+DͰ3232>'.#"327654/r   a5ii(OD* : 0' /2H][]E48+aD>21L[2 )()P]%DrF+= K !(JB25@5W & Uf!nd/=Ͱ42+/lͰP/YͰ/ o/Dְaͱ+Ͱ(29+1ͱp+a$%&=>d$9#e$99@n")*+, LNOPXYhijlm$91@5QRSTVW$9d=29l@ n#1"DEab9ij$9+&()%$9YTUVW$9PLNS99901'"#327>54#"#"'."&54>7632"'&=#"'.'&547>7>7632#"&"327>54&#"a  CE9  #  >&'j  9C'"  %6&ZA5 ),9 .GGR!"/dA . % 6 a     ~B  or5^i'14+1P\P8P % // &8e@::DbGV+dFwM!aso+DͰP/"Ͱe/3Ͱ/ t/:ְbͰTְ\Ͱְͱk+Gͱu+Tb493e99\Wf99!XYZ$9k@  a"#*+,-./DEPQ_`op$9G@  &'(IJKL$9"PM93@'TUVWXYZ[\]^_`$9oe@+-./:;GHIJKsbc,kl$901"327>54#""'./"&2>'4/&#"#"&'.547>7>7632#".54632323267>54'&#"E DE:  "   p%+4 %<s,/:Jb#5n7JE<-=,#2.!WM = b    %`VWf%\(J r K35X!$5EL $*(:`oS/y# k :+Ͱ-/8;/)ְ4Ͱ$ְ8ͱ<+$)@ ',$98! -.$94@ : /0$9998@ :  $&'()$9-,*45$901#"&54627632#"'.54632?'&=#"54>7632y !  8 B\<#62 1.:Fm 6E "1)!#'# mk " kbF"/ְͱ+ $901632#"'&54r  : X {J>F*=]+ +.>/ְͰ4ְ*ͱ?+469*@ (',-12$9@  !"#$%$9014327>32#"&#"54/#".'./5>Hr=2  )u(kJbF z5 $->!:r=+  >^ 2#F1 -S!* F>:2O*a 09/"1/ ְͰ-ְͱ2+-@  '()*+,$9"(9012654#"43232>32#".4&4'&5 tr   \  `stq%!(++N *8J\9  M ; /ְͰְͱ!+ $9@ $90132654#"4632#"#".'&Msr& +  stoE  'T@a9 +/+:/ְͰ6ְͰְͰְ ͱ;+6@ 012345$9 +,$9  $9 9+19 @ "#$&'234567$901432#"&'.%43232>32#".4&4'&5 7     \  E  F4):(&:%!(++N *8J\9  aZ'6+3(/ְͰְ ͱ)+  $9 9901432#"&'.4632#".'& 8   =    E  F4):(&aoE v $*nsq@^9h +/'Ͱ/:/ְͰ8ְ02Ͱ2;+8)-./$9@  "#023456$989 $901432>7>3232>32#*.'#"'67 M qH   \ # 77 %!<MMPT!!++N /&`PP  \$A+%/#ְͰְͱ&+#!"99@ $901.54632>32#".'#"'6   :4H "&  H ,ԍ@oE -!c ,&~F E^+6Ͳ +F/ ְ&Ͱ&.0ݱG+0 @!   ,-.267<=>?BCD$9&#96E90132654#"43267>7632"&54654&'.#"#"'.'&sr$I(    \!   st" 4,*OB;4e#.Zl2- c"U OHMBf Ios~pRw,+CͲ+/S/ְ3Ͱ3.=ݱT+=@* !#$%'(,-9:;?CDIJKLOPQ$9309,CR999901264#"#".'.#"43267>7632"&54654&'.#"#"'.'&:r   b$I(    \!   2 )({" 4,*OB;4e#.Zl2- c"U OHMBf IosBXk/OͰ/=Y/FְͱZ+FBCD$9O456$9=@   "#$/0178CDEFGHRSTUX$9-.9901%323267654&54&5.'&#"&'.#"327>7>32#"&'.".'=%G2;W !%:h3(#    -/  +     8Xt- K}!TA`)2JT_n7>32#"&';&&JH(I$   !\  !7%BS5lZ.#e4;BO*,4 "*soI fBMHO U"c#8R+?+4Ͳ%+,Ͱְ Ͱ .ͰְͰ2ְ@/*ְ=ͱ/+ ͱA+/=@  %&45678$9 $94,@ ! */0678=>$9  9999901#"&#"#"'>3232632>32#"'.542654&'&#"K %,. ) 6|%SfNkR|^ECJg>+T %*/"#);2g %I/J,@j*)G2E@y 8_8Sj8VI (<h+1Ͳ"+)=/'ְ:ͱ,+ͱ>+,:@  "# 12345$9 9991)@ ',-345:;$90132654#"32654#">32#"'.542654&'&#"srssqNkR|^ECJg>+T %*/"#);2gstrtI/J,@j*)G2E@y 8_8Sj=Fc]/ͰְOͰְd/ ְXͰMְ ͰGְ3Ͱaְ6ͱe+MX@ OP]^$9aGIJK$93 "#$999O]@) !"#$ &'()*+0134678:;<=>?ABcGHIJKLM%XYab$9999901#"&#"&'.546763267>;2327>3232>7>32'4654&54#"327654&,4 (  5P6;79 ;C[`K3  *SK#3 2  6,Ot L# 2,   *Oh) ,7S # |V  0#g ;!)>FSC 089Pc-+Ͳ#+ ͰEְͳ>#-+^d/(ְͱ+Ͱ>2b+8ͱe+ "#$$9@  $9b@P !-.03EFTUWXZ[\]^_$98H9  !999>E@ (HIJKLM$9^<=$9@)89WXZ\b$9-STU999014&#"7'&546?4&54>7>"&#"#"'.547>3232>32.#"327654)P:'fSC-  l0 Kg>+aNkR&$# 4! /2HW0] A+aD> *IzG3)  <2 M7O9SiW .EG2E@y]I/ K !<*!35@5BK7%(  " d -D$+./ ְͰ&ͱ/+& $999@  - )*+,$9012654&#"2#".'&547632327> ts&>   #u^st Ye?  4 -7AadD8T/+/9/+ְͰ1ͱ:+1+()/$9@ 8!"4567$9012654#"#".'.#"2#".'&547632327> q c&>   #ul!)( Ye?  4 -7Aa= FU&/2G/!ְ,Ͱ5Ͱ?2BְͰְ29ͱH+@  F &'237E$99./09990132654#"3267>54&'&#"&5467632".#"'&54632'srx =44'0E+lC"_**4T΢nZ ^rtR  !( %5  % zG:B3lN< 8))"*D D+Ͱ-/;E/ְͰ#Ͱ>ְ(ͱF+#23467$9>@  D %&-.89;?BC$90132654#""&5467632#".#"#"&'.5463232654.'.sr4bfH!6  #P,4=`D H#V  I +BXstMI&$ # &"/"/!:1.&H 5 (g'=n]/ Ͱ9/-^/>ְ3Ͱ*Ͱ\2YְQͰְͰFְ&ͱ_+*YW9Q@ LMSTUV$9 !:AB$9F(-.9$9&0199 99-@1  !&'()*+01234>?@ABFGKLMQRSTUVWYZ\]$90176#"5/&#"32?>54&547>7654'&54632254&'.#"32#"&'&54654#"7  +*!d^΋T4**_"Cl+E0'44=  Z2    # *  ?El3B:Gz %  5% (!  *"))8D/Y+*ͰD/NͰ/ Z/ְ/ͰVְ;ͰSְ>Ͱ2+4ͱ[+/ $9V@  EFGHIK$9S 1DN$9>;+9A$9 *2$94'(99NDA9@89;<=>?GHIKPQRSTUVW$9* @ $%&'(/1245$901&'.5463232654.'.#"&5467632#".#"##"&542254&54&54>E  I +BXbfH!6  #P,4=`D F#"(+ 5  5 (g'I&$ # &"/"/!:1.&H ( $   = Re2/>Ͱ/S/-ְ8ͰAͰK2NְͰ%ְEͱT+%@ R *+23>?CQ$9E:;<$9012654#"#"&'.#"3267>54&'&#"&5467632".#"'&54632@r  a =44'0E+lC"_**4T΢nZ H~,('t  !( %5  % zG:B3lN< 8))"*D)c2+=ͰL/ZͰ/3Ͱ2d/-ְ7ͰBͰ]ְGͱe+B-QRSUV$9]@-  ) "#$%'(c*+23=>DELMWXZ[ab$9G@ :;$9799=Z@c+-.789:;*BDEGHRSTUVWX]^ab$901264#"#"&'.#"3264#"#"&'.#""&5467632#".#"#"&'.5463232654.'. t [   O t [   OJbfH!6  #P,4=`D H#V  I +BXm{(f%! {{(f%! {~I&$ # &"/"/!:1.&H 5 (g'-H#It /Ͱ:/@Ͱ62J/ְͱK+@ I 8FGH$9  9@@$I "%&()*+,-./023CF$9:8=>99901#"&542254&54&=7.'&'&#"#"#"&54>7632#") &(+    y"!H #L_uo!@4+CLM  ( $   ,+D"  #TNG/[MG/<N/ְ Ͱ.ְ2Ͱ 24ְͰ7ְKͱO+.@ ()*+,@ABCDE$9402$977632#"#"&''&#"(-&c r!H #L_uo!@4+CLM   y88z{(f  #TNG D"/Cs<+7+D/ְ'Ͱ2ְ2*ͰְͰְ ͱE+24567$9*")0$9#$+,-./$9' %$9  9 901432#"&'.4&547>3232632#"&54.'.#"#"54>76 7   M2n2zI\ D  F4*;'&%r& , @3%MVV'L&RP +2+5+K/,Ͱ ./Ͱ/Q/ְ'ͱ+ͱ+ ͱR+' !99#$%),-KL$99@  I$9 GH99,K<=>?@A$9 @P$%&'(1789:;CDEGHI$9@  $901"&546763274&#"3276326432327>767632#".#"#".'&2#/ '$9 1 #    /:k 3#   ,k%** 78"5;t+$ d /Q$')3lj-?  ff E\%`hBL&" G+)+,+B/#Ͱ.H/ְ4ͰͱI+994@,   #$(),-./01278:;<>?@BC$9#B345678$9@G(./012:;<>?@$9012654#"32654#"432327>767632#".#"#".'&[ trssq  /:k 3#   ,k%** strt /Q$')3lj-?  ff E\%`hBG ?3/@/ְͱA+99  $901#"&5432#"&54632432#"&54?'.5463232>76 " !k5|) ,Q o;rG Vt}8)!#.$ #: ?2n= )~tR Mu{!+l+ 4 M+IͰ)/3ͰA/<N/ְ.Ͱ5ְ'ͰFְ2ͱO+5M L$9'3<=>?$9F@  ")*89:;A$9!+$9.,$9)35699<@ '+,-./89:$9A"!>?$9I@M  FGL$90132654#""&546763232632#"5467654#"546267>54&#sr 0 4 %-,<35(=)!D)2/H ! 0 rt N  #5?. c !  %  $Y44 M+IͰ)/3ͰA/<N/ְ.Ͱ5ְ'ͰFְ2ͱO+5M L$9'3<=>?$9F@")*89:;A$9!+99.,$9)35699<@ '+,-./89:$9A"!>?$9I@M  FGL$901#"&5462"&546763232632#"5467654#"546267>54&#^ 0 4 %-,<35(=)!D)2/H ! 0 $ # N  #5?. c !  %  $Y4)XV+4ְ&2:Ͱ)ְ@27Ͱ/NͰ /Y/@ְ#ͱK+ͱZ+#@ ;$9K@  !&'9:CDEFHINO$9(899947=>99)$#(2?$9V@! ,./01ACDEFHI$9N@ XKLQRS$9012654.#"#".#"4>323267>7632#"##"&546546765467>54&#"#"&g .1nbG:< L@.9F3 # !D76U[@] ]5?%IGOZ1O! @@ &;-%)!} M$## +  m5p  43X+TͰ4/>ͰL/GͰ /Y/ְ9Ͱ@ְ2ͰQְ&2#ͱZ+@XW$92@ >GHIJ$9Q@ -45CDEFL$9#,6$99()*7$94>@A99G@ 26789:CDE$9L*-,IJ$9T@X#$&'()QRW$9012654&#"#".#""&546763232632#"5467654#"546267>54&# ($& .1m 0 4 %-,<35(=)!D)2/H ! 0 [+5+@@& N  #5?. c !  %  $Y4E k4(n+/#)/ְ ͰͰ .'ݱ*+$9'@ #$$9  9#$9@ ( '$901&54632#"&54'&54632327654%(  -#.)1@ E!rU6EK:  9(1@-  ǨFCn0//ְͱ+@ $9012#"&#"#"5467>r   b2 )(FCn0//ְͱ+@ $901264#"#".'.#"r   bC2 )(3-`ְ Ͱ .Ͱְ/ְͱ+@ $9  $99$901#"&#"#"'>3232632 %"). ) 6|QS%p! 3+ /ְͱ + $9 999014632#"&psrst/q@ 1 +Ͱ!/ְͱ"+@  $901#"327>54#"#"'.'^  CD;    < a    9 . / /ְͱ +99 99901#"&5462 !  )!#~3KU/Ͱ//ְͱ+ ͱ+9@  $9@  $901"&546763274&#"327632#/ '$9 1 # 78#5;u,%nxI// ְͰͱ+ @ $9$9 999012632#"'&54654&54323 ! $! `  P 5*qpV+3 Ͱְ/ְͱ+@ $9$9 99 90146327>32#"&#"#"qW#96  K z0% L% %XJ%%n{t E// ְͱ+ @  $9@   $90132654#"32654#"srssqstrt=J8H+9/.ְ%ͱ+ ͱ:+%.!"# ()$9$9  $9014>32"54&"54654&#"#"&54654&#"#"&54\;Tk)JF   :,<    $ c9?0$-IQ+C v.mL R?1 0% C;.4A+8Ͳ+=/.3B/ְ;ͱ+ͱC+;9@4  $%)*+,./0123A5689=>$9$9=*+,3$98@ /012A56;$901"&54676323267674>32#"&'.546&'.#"74&#"32> *#H.$9(   G% 6 'CB =$R=CF> JB.A(bK+*&((m F  vC*BL+ 3FͰK/<M/ְIͱ+&ͱN+I@& +,/012346789:;<=LCDFGK$9&#$'999K<45786:9$9F@B023CD1I$9"#$9990146323>3232=4>3254&5<>32#"&'&#"#"&#"#"'.'&74&#"32v97 O    )   m .I6m$EG/  5?@$9=E@964!:999012#"&'.6764&#"547632#"'&5.#"324&#"326FH6  )(J%:=""!  '  'Z!7X # .' 8kI) #.h!  ,  KVLX+)ͰW/8Ͱ1/PY/FְSͱM+(23ͱ"+ͱ+ͱZ+SF@ -;<=>@ACD:$9M@ L)*01PQW$93&'99" $9 $9 99W8 4:F$9P@ "#3GMNST$91./-$9)&'$9 $90123267632'.54'4#"#"&'.'&#"32632+'#".'&547>764&#"32-?A  0   K   *n + .  &"R> " 9%-%ZW4 EYU~6. ;5^ u@ 3Mc2KI9*& Z/Zjt/+aͲ++n/8Ͱ#2e/Tu/ְcͱ;+kͱp+-ͱ+ ͱv+cTUVXY$9;@KLMNOPQRj[\]^_aefghi$9k89>FGHI$9p@35 76?@ACDEnrs$9- )*+ 2$9@ &($9 $%$9n8."5999T@%&'()*+,-;<>?@Atklpqrs$9e RQUVWXY$9a@ZCDEFGHIJKLMNOj[\]^_chi$990146276323254&54632"'.#"#".#"&5467654.'&#"#"&#""54&#"&74654&#"32654&324&#"ZP"-.'%*(<  (%"X "% -  8&  n   ' "F'(.,*#'#[o HA^~%Z;++.     <* *\'0;c##/+'Ͱ/3 Ͱ,/!0/ְ*Ͱ2+ͱ1+*"9@!%'($,-./$9 999 99!$9,#99'$%*/$9014632#".'.5432325654/#"&64&#"3264;p:I /4*p  3C/$; @{ $bT $ %K+$:T A!Ei)4?+2Ͱ=/Ͱ(/+Ͱ82@/ְ Ͱ;Ͱ;.%ݰ .-ݱA+% !"#$9;9-@4 ()*+23?5689=>$9 9=$9+@ !"#% ?56;$9(& -.$924$901"5467632#"&'&'&#"#"&546326546323254&'&#"4&#"326oa)((   #%LE#Bj{/23+& G`|ć(GY ' $*| Vt< 'B+M]f+>Ͱ3/ͰV/&Ͱ,/Qg/)ְTͱ6+ͱa+ ͱh+T)'96@-!"#&,-12348;<=>?ABCDEFGHIM]NOQRVWXYZ[\$9@f^de$9a_c999  93$9&@  6f^_abcde$9V " #1$9Q@ *])ONTXYZ[\$9,9>ABCDEFHI$9;<99012#"54'.74#"#"'.##"&5463232?'&'."'"#"#"&547>24&#"32632322654#"( 1! HP  2! $Z(% KL  t  S 6 '  7 +CT3$<'0 GH~#N!',QPik A 42 H 14'*7C+.Ͱ8/Ͱ3ְ Ͱ6ְD/$ְ2ͱ+Bͱ;+ͱE+2$!9@* 7+,.3456$9B$9;98?@$99 89;B9993$96%<999.,+>?@$999901232>32#"&#"#"'&54>7>4&"326322654'&#"4` 2*(F+  3%< %<%(%""X #  !-|8 @--* W" &$j (& jC3G\8DV,+?Ͳ+5++Pͳ$,+9W/'ְDͱ>+/ͱU+2ͱX+D'%9>,:;$32#"&/#"/#"&5467632763226324#".#"32?654]n OO 0"(0( * %" * -'( "   SS C> ! LHU+:h70=L&, 00??'[ )["8 ni3#]h+BͲ*+i/7ְfͰְ'Ͱ,ְ$ͱj+f79:;<$9@034>h^_`abcd$9',!(*999$"9B*@2] $%&'(,-0789:;<>GHJKPQRSTWXYh^_abcdfg$9 !"999017465&'.'&467632747>32#"54&/#"'&543254?'.#"37>7632#"#"&%2654#"w,+)R$%#"  "   1 6" && 178*  %F t   1VG h Tc!! c]R6pyGV GmS "$HvS7 0C  $,:4 F *jt+/ ͰAְMͰcְ,ͰDְpͰ]/4u/nְGͱ+b2 Ͱְ%Ͱ2hְ'ͱv+Gn5D4999@ ,-./0]^`a$9 cd$9 $9h 99% "#$$9 999M@ $9c,@ IJKPQRStkls$9pTHn999AG9D(94@#&'%0/89:;32#"&'.'&#"3262#"#"&54654'&547>32327>54&2654#"$ %! X "ANf&;S%YC  4*>C &*4$\g8=<  :+$~ % +!3W  B (M9?q3403&65(-"3"B. L  7(0y*B@ ? \is{+'+0' /|ͱ,' /mͳ8'+=Ͱw2g'+Vͳ`'+ /ְeͰְ32JͰ3.zͰ2+T2OͰBְ!Ͱoְ$ͱ+eWXYZ[$9Vg99z `ah$9J@ 18i]^x$9 0Lw|$9O9RS}$9B@*-.;,>=@?CDGsjkrtu$9omq99! '(9990'%9|*.$999,39mz9=@ 4jkotu$98;?@spqr$9gVBXYZ[$9`@ \RSTi]^e$9  999@EFGJKLOP$90174654>76327654'&#"54>7>32#".#"#"&547>323254?'.+#"54#"&74&#"3263254#"4&#"32>76?*  # 7B '  'A'%Q,&6 %% bO o#   ?  k?"!0 A?% %q'")"$$#%#.  w@5'#%@:3@ ($ , - %1*2  (Ew,/ͰJ2ְB2FͰְ4ͰְeͰbݰk/zͰ /S//ְͱh+|Ͱ2|.*3Ͱ2+_ͱs+ZͱL+ͱ+/-,99h99|f4~$9@'()5678bcdeklz$9_@ 9$>@?mnovxy$9s#9Z@!:;"=BCDUVWX<]$9L@ FGIJNOPST$9$9,*/999@ $&'()0L$9?@DM$9F>94678$9e<=99b9;:999z@^]`hix_|}~$9kmno999S@wVWXZ[stuv$901#"54676;2#"&'.'.#"#"&'&#"#"&54676323263232>323254'&'&#"#"#"&546323267654&#"4"326=&764654#"326"dDC =   /,2  l. l( @( 3! Z': &2R%  &,. 0 o$4 `#$3",ޖzq M 1  - ? ##::'"o#r$ *&r 4,5%4@ 2&   &    ]7Ai|+NͲH+[+1ְ+2:Ͱ(ְ.2 ͳ[|+fͳ[|+lͰBְJ/3ְ8ͱi+2ͰyְPͰn2ְ Ͱ^ְR2Wͱ+837199i@ .:;<=>?@$9 +,g$9y@ '()*abdflmtuvw$9P%9^_opq$9 @ $N[\]|}$9(1!$9 :@   4A8=>?@$9[@ 7$9fXW^_$9`bda$9ji$9lnop999Jstuvwy$9NLPQRz$90126323263232&'&547>32#".#"#"/#"5467632654#"2632#".#"#"&'.#"#"&54632374'&#""&546324&#"326n(I 32 ?    **%)     !/     #*.T/,  <q<(& @'0 "Q1.* $b .+(?J +2Ͳ+B/=ͰְHͰ#2 .K/ְ@ͱ!+ͱL+@<=>999!@"  #$()+,./23456789:;BCDEFHI$9$9B=892@ ?/9:;J@EF$9H901463276327>7632#"'.'#"#"'&'&#"#"&54#"#"&32654&#"+F" !24 H   !?! IF : $  01$%&9eDFz z.7'4p.?jr&-2? 0 F>%M[fs}4 +F/&3qͰ,2\/iͰW/bͰ2/Q~/Iְnͱ7+|ͰְͰְͱ+7n@*M@ABCFG[NOQRSTUVWXYZf\]^_`bcdesghiqr$9| 3452?$9@)+,/019:;tuvwxyz$9'99!"&$99qF123999i@ !)*+45678Cno}tuwxyz|$9\I99b@ 9:@ABJ_`e$9W;[TUYZ$9QNO$9@ >?$9012326763232/632#".'"#"&#"&'&54654'."#"&54>4&#"632322654&#"4#3262654#".3  $$%!   J g %$G**B% -. H#$F[/ 1 9:k "5vT$-- $$gK><=ce&9%z ^0 )#a:rM/6W j15YtcV''.;GR +1ͰB/HͰ<ְ2*ͰMS/Eְ7ͱK+?ͱT+7EC9K@549:;BRHIMNOPQ$9?=<99HB#%$999*PQ99M?@K999<"89:$91@G !'-47EF$9 $901"#"547>3226767632#"/#".'.#"32632#"&54&2654#"] 3,?L ?=%EF4/"A,i   P 'wW{|W@ u**@*RI?:8(&'(N3"=_R,) "  /#1>L+,Ͱ /JͰ7/DͰ/2Ͱ'2M/ְGͱ:+ͱ'+ͱN+:G@1 /23456780CDEJK$9L?@B$9',-$9$%999J #$%999D LGH$97?@AB$925:;<=$9,(0$9012632#"&'&547>7632#"&'.'&#""326546544&"#"326#%', "   2I1%- : 4  A 0)/8ͰK2/Ac/ְPͰ2ְSͰ`2J+*ͱ+ͱd+249SPa9J@0/C789:;ABODEFGH6LMNVW]^_$9*@"#$%&('>XYZ[\$9@     $9$9V/$9^@ 534QR2TS$9[bPY`a$9D+9GN998)*J999>@ !#$%&'(6:;"$9A@   C$90174632327>7632#"&'&#"#"&#"#"&54'&7327>;'&#"26;254"32654#"#"&#";P= G    K   >(4 F  , 1( $"EH H ,: d '$eO'Q#lY+  EEb :+g'" F6A+Ͱ&/=Ͱ"/7B/3ְͰ.,ݱ@+#ͱ +ͱC+,./$9@@ &'78:;<=>$9#69 $997= ;@$9" #$$9@ ,-/0134$9012#"54654&'.#"762#"'.54?#"&54>"32654^ /%   `-,,7!  ^B*g%0 H!8 L62S DE5.g [H- '>O+#ͰK/9Ͱ/BP/<ְIͱ1+-ͰְͰ ְͱQ+I<:91@>6789O?@BCDEFGKLMN$9-@ ./345$9@   #$%&'()*+$9 9999K9 5 76<$9B@ !'=O?@&EFGHIMN$9012326767>7632#".54654&#"#"54654#"#"&5464&#"#"32636*, J!#  JB   $#)N@! - SdS+*)%' 6GL Y4FK )#"U>A%XW" Q{=v+Ͱ2+>/9ְ Ͱ#ְ)Ͱ/ְ2ͱ?+#96799)!=&'$9/ ,-45$9999 @  $9901232>7632'&#"#"&5463232654'.#"#"54676#   >% ,    E% 1$* 5  ;&?)Q]:!(/&22'$77l3>JW+DͲ+T/*Ͱ?/X/ְIͱK+$ͱY+I99K@6>  *+-/01234789;<=?@ABCDEFG,MNOPQRSTU$9$"!99T*1$9@!"$%,-./09LMNOPQR$9?:;<=$9D BFGHI$9901"&5467632326?67632#"54&#"#"&'.4&#"'2654#"4#"3265v$$"%# L$,    " ) PU & : $  | T )y)1po Q ".2gZ*no9IE>(>  S  !3:-3A+7Ͳ+*/ Ͱ54'&4&#"3267>" ,# -A' ( $5 s.  ! ;  58 !Of7,FА&/5].Kd 'Yd !B % R6A#+:Ͱ//Ͱ?/B/ְ=ͱ++Ͱְ Ͱ4ְ ͱC+=9@ #$A78:;?@$9+)$9,/0$9 499/ +,$9?4999: A 87=$9#5901<>32#"&54654##"&5476323267654&4&#"326 1N;%5 ")6&  ]# 5  *HGN-P g AK/ͰJ/4Ͱ*/ 3EL/&ְͰ6ͰBְ,ͱM+6&#$99B@! *2341;<=>?EFGHIJ$9,A$9@  $9A#$94$%01267$9J-&99E',CBH$901%4632327632"&'.#"#".'&547632#"&#"32654>'4&#"32$ H   %0  " >+/W D  6%Q 8 L jQ  \M 1/J-fH $\#V Ak(( KrFV(+=/Ͱ:2W/!ְ4ͱG+,ͰDְ ͰְͱX+G4@2178:;LMNOPRS$9,(=>$9DFA$99 9 99=!"4;$9(@F 012DEVGHKLMOPQRS$9014?432#"&'&#"#"'.'&5467>?#"3267>327654&4.#"32>   .# &   ! 8 ,4;  *2 1!   q~} \͔ڛ-\HTk AN+@ 11 (.v[!81$4&g3j/  S:G+0ְ2Ͱ;ְ!Ͱ(/@H/$ְEͱ7+ ͱI+E$"97@$!()+,01345:G;<=>?@A$9  $90!89@;@  $%+>EF$9(:$99014632#".'.#"#"'&#"#"&5476327>323254&'2654#"  ?<7 "3#!=++*&$IcD. #  GPbn''3+_('&2#C$JH") (^@O+DͰ/2ͰM/Ͱ 2P/ְJͱA+>2 ͱQ+J9A@ @DEFGHMN$9  :;<=$92 $9M>9D@ OBAGHIJK$901"&54676323267632327632#"&'.#"#"&/74&#""326dY.4$  (&   9   ?@$901"&5467>32#"&'4'.'&"#"&54&547632327>54#"&#"32676254e#&  > $   h! ;30  ! "(" zV  &h1&ЇA+4 4'fZ#(#" S%@H 5Y&AMW+/3+ͰJͰ /EX/ְHͱ7+Vͱ+ ͱY+H97FJ999V 9:;?@MBCNOPQRST$9 %&'$9+!=>999J @$9E@ AMBCH$9 9901"#"&547>3232767632#".'&"#"'.5476547>54'4&#"27>2654#"0H!# E":>  D0   0&)    "#>$ +{..41CS]).V@-R9U ; $9 =4 =#2/ *J+"+>/ Ͱ//Ͱ.K/ְ+ͱ+;ͰְͰDְͱL++()/0$9;"99@ #$%&23456789>?$9DFH99999> ;<$9/D999@J%&()+,2345789EH$9014632#"'.54?#"&'&547>323267632"327>54.'& 4?/$ /  +X&!B (# "  DXE4gl@  F !# N   g658 #BAPT\?O +Ͱ2+-+Mͳ7- +GP/ְͰ"Ͱ2ְJͰ2;ְ'ͱQ+J2.$9;"@?  $-7>O@ADEFGHMN$9' % $9$9GMO2A@JK$973(99@?"#$%':;<>$9  99901"46325463232?632#"'.#"#"&'&5476374654.4.'"&#"326G7 E  /$7=*>)C   =)$ FG )-  AM?&DN 5  .#7!:E+&Ͳ6+>ͳ06+3CF/ְ;Ͱ+ͱA+3ͱG++*9;,-.999A/76>?CD$93'10999C>@ :4E3<;A$90,-.999&@  #*$90174654/#"54?>32#"&#"#"'&'&#"32632#"'.32654#"2#-"6( = `L *F/%I% -gA%+S(Jρ5& 4%&5=%2+DyCK+J/=Ͱ5/EͰ/,L/@ְHͰ02+ͱM+H@>$9@C#$%&'(,23456789=EJ$999J=!9E9@G$H$95%10328A$9,&('999999@  $90123254/#"&5467632'&54654&'&"32632#"&54>732-$3~-  $-&0%^)+0ZD;)Q$2  ?NgW 6;  -7  , 0$qa3$;F+ͰD/%Ͱ-/?G/(ְBͱ+52!ͱ+ ͱH+B@;%&-./01789:F<=?@DE$9!9@ $9 99?D)F(=32#"/.'.#"#"&547>323267654#"#"4&#"326Zu!! - X-P,%E'3 5R%!$-{RC!_&8 8p},":/60Bf5 /)!$(FA"4R-'0w+Ͱ/*1/ְ,Ͱ 2+ͱ2+, !"999@0()*./$99*$9@ ' !"#$%&$9014>32'&546323273>54#"#"#"&4#"326RUt#0 *1/+$0  ( `  %InblP@QnQ%%'!H pc&',(8MBWCM+9Ͳ$+L/ͰA/GN/ְͱD+ͱ5+*ͱO+ ;<=$9D@:>?@ABGHIJKL$99999*5@ )/02$9L$9GCEDJ$9A=$99)5$901#"'#"/4&547>323254632#"./.#"326324&#"32G*/0, ;#7 j 44  )j + Y<).?-#/`  . )h##s ;?@DEF$9$9   $9R24599L0T/JIOP$9) '7$9#!8999=?@ABC$9GHDE$999901"&546327>32#"&'.#"632#"&"&54>76323254&'&"4&#"326 r$0;E `  #m> 1%+ >6  $[6 9!ti@> (9`8^+\p$ &]*==GQ/(ͰO//Ͱ7/JR/1ְMͱH+ͰְFͰְͱ A22A.ͱS+M1/9H7OP999)*+,89:;$9"%&($9F9@ >?CD$9$9(&$9/ "%$9O9J@=12G,?FQHI>M$97@  9:;ABCD$90132676546763242#"&'4/#"&/#"5467>322654#"4'"326 m"&< &L'&B D / )34<.I?(]-&)0.().,!0&5\j%6! .  (/2XU_k+XͲ-+`/VְͰ ְ ͱ*+Eͱa+ V99 999*@U"#$%'(0123LMNPT$9E@ +,-.56AIJ$901".454'&#"#"&547632327>327654&'&546327632#".'&/4#"7>9  N%(3G.*1 5A=#AB U04   5j" &2 !$$%.0A6x:j_T"%JD?;; tJ?@$9999#)%&'($9014632#"&=4&54>7>32'."#"&4&#"32654.'&#"))';0g B&+ 7;#%P !@#7= >x\/_C1'q3 . E,%$- 1# f  r70+6FS(+4Ͳ++J/Ͱ/:T/ְͰ?Ͱ%2Nְ!2 ͱU+N?@"#()6,-/01245F78:;ABCDESGHJKPQ$9 +*$9 $9J9:@ F78?@ABCDESGHNOPQ$9  !$94@+ "#$%&6,-./012$9(9012632#"'&54>23254'&546323254&#"4&#"325476327654#"r c '201';2$ ${W>v0  D"7  -P{1 2*'MW &9ONS?*>*=!  &#   I WL`$5o+3(Ͱ3/6/ְ+ͱ+ͱ7++@$ !"#5%&()-./34$9$9(3@ "#5%&!+,-./$901"&54>327632#".'&#"74&#"32326-A 3'* "MC$ C=2; +3(*zn  $4K1)ZUA) +>#9D'ְͰ.Ͱ#ְͰBְ7Ͱ'.=E/$ְ2@Ͱ2.!ͰͱF+!$9@899@  #'(*-.7D:;=>BC$99#9997@ !$9=B@ 9%$01D:;*@$9',-.99901%"&#"&546763232632'4#"2'46327632#"&74&#"326 < (% % Q // (U^%&  $+1 #>  3#"<)  : 2  + !  B)d%/Ͱ/*/ְ"ͱ+ͱ"@  %&'($9$9%@)"#'($9 999013267632#".4676324&#"32632  ] cT  "2&   `" ..!-'2 I#: +/ְͰְ ͱ+ $9  99901"#"547>32#"&54.   +)    P \{v[ Zugy)6t+Ͱ4/&Ͱ/,7/ְ1ͱ*+!ͱ+ͱ8+*1&'45$9!9$9 999,4@ )!"6*12$9014>32#"&'.#"#"4>7632#"'&74#326ZOY6  |4 5M- 5 0 C&> u`b]u7/3*bR ;/6$X/Ͱ/%/ְ ͱ @ $ !"#$9$$9 $9014632"4#.%254&'&#"32632/zX%X (v]NG*31"  ym$m$ L L ,+ O."-~ְ Ͱ,ְͰ/Ͱ&2./ְ+Ͱͱ+$9@  "-#$&'(),$9 99999,9"#$()*$9990125476;#"/.'.54632>76324&#"#"32  U)w>/  %$*F#;@#bc90 YM9  + !"#3= +&+ͱ 224ְͰ2//39Ͱ>/ְͰ.7ݱ7@&  !"#3%&'*$,/0=45+9:;<$994$99&@ !#3$"+7;<$9/ ,999012#"&#"#"'.#'&6767>3232327>54'&#"2654#"01 *)Ld 2 "K'M6%1&`F,   B# "KS *7ְ2#Ͱ5ֱ 22)Ͱ&ݰְ.8/ְ1Ͱ+ְͰְͱ+ͱ+1()./56$9%&'$9#$$9 $95& 9.@ 7+,123$9 99$9014632#"'.4632767632#"&#"#"%4&#"326 " ]ZEB/ h)vE DHG(#IfQV)N'?@~>,,IS /Ͱ//ְͱ +ͱ9 $999 9$9014632'.="&72654."3 //" j4!bb9D   [!-K/+Ͱ 2%/Ͱ2./ְ(ͱ( 9+! $9%@ -"#()$901463227>32#"&54&#"#"&74&#"3262"  & ! "Y   g& >"!D   9< / / /ְͱ $9  $9014632#"&9'2+#>":8+3FSbpz/:3_Ͱc2 /H{/,ְ2Ͱ:ְ_Ͱ7ְyͰ$ְͰiְV2NͰ2Fְ ͰHְ Ͱoְͱ|+2,/0@ABCD$9:*);>?$975999$[9y_&"('$9@ Yqrstuvw$9iX999Fgh99N9 999Hcd$9o9_9H@ ;=>?@ABCDNOPVWXY[$9  F99014>327327632#"54654'.546323254&'.#"#"54?7#32676654#"7>"7>76542654#"B 0 Si#0%Eu=' G!QA / T6 I -  < (([  '$  FCSn%I5%%#N ^m83% %#V ? ~zHH ?"K,POGFV  RQ"! $B 4aN :%Hm(E]B)#q+/Ͱ /!$/ְ ͰͰ . ݱ%+99 @ #!"$9  9!# $9 9$901632632#"&'.5463264#"q `! <$> K ,2,=l-%,%cU4. ! ZS!=K+13*/@Ͱ2"/3GL/-ְ>Ͱ828.1ݰ2ͱE+$ͱ+ͱ+ ͱM+2>+34:$9E)*@AGH$9$="'($99@ ! $99@*('99G@ ! %-.K>E$9"$789:$9/$9012#"/76762654#"'2#"&5457337>3267654#" 4"  "( " )&`&N 4Y&   rz.:&%)1 n@$O.,biKa /& 9?IC/$Ͱ/GͰ9/4Ͱ 2J/EְͰְͱK+E =>$9999GCIA@E$994@? +./012=>$9967<$9014632#"'&#"7632632#"&'&/#"546327>32323254#"3 14'#,--   8 $ %(,)E+[$,Y #P*+.d.0'XRD 'D)%fq#O" *$/*4?=/Ͱְ8Ͱ8.Ͱ2/Ͱ /-@/ְͰ0Ͱ#ְ;Ͱ.5ݱA+#0@* ()4+,-.23$9;@ %&'$95@ 89=>$998=@ #$%&?65;$9'9()$92*999-4+0$9 901"#"&546763232632#"'.54654'&74#"3264&#"326> 1I$&   #\  c! 9  7..E%r#⻠E%\ (H)/e(]M F.9.8// Ͱ/4Ͱ/'9/ְͱ%+ͱ2+ͱ:+,-999% &'()*$9@ !$$92 8/04567$9994/27$9%99'@   )*+,-$9@ . $90146?232676327632#"'.'#"#"&2654#"9 3 J  " 6%  @>  #fD& !R -E\:vA sQ@R 0"= +#/ְͰ.ݱ$+" $9$901"#"5467632#"&54'. i     i b %#NB7Zh#K%qw\KB (6@?/Ͱ5/9Ͱ /,A/ְ<Ͱ/27+ͱ!+ͱB+<97@ ,-123 59:?$96)*999!"$($9 $99?"'7(<=$95/0231$9, )*$$9 99901#"'.54676327632#"&'/#'4&#"32>324#"328)& - 9//*  %J%   %N 5IQ 7 +75j+0Arb7+5!T*) ]0/6@FְͰ ְ7G/ְͰ:Ͱ$ְ12FͰ?ְͰCְ,ͱ:9$6458<=$9?&799F'0 999C()99,*999  $97@) !"#$%&'()*,-./02345:;<=?FABCDE$9  9$901"&5467>327>32#"&#"32632#"&4&#"7"3265424#"(; ( #  , 0  J#9 Q"G  O (L- E: < K&//ְͱ999013y '] ,'0n ְͰ#ְ2+1/ְ-ͱ(+ͱ-999($#+/0$999+@' ()-./0$9# 99901267632#"#"54?'.5476324&#"32XU Cb   +   ` FY .    ?DF/*E/0ְCͱ+ͱC0"9@ #$%&'()5678:;@A$901>'.76'&"'.32&'.54766327>4&(       %5 -$     /.    & 00   /45"RְͰְ!2Ͱ2#/ְͰ"ְͱ"99 999 $9"901&63"&#76?&'&676?m C!   .!    E8 *ְͰ.$Ͱ ְͰְ+/ְͰͰ&ְͱ9&@ *!"$()$99@    $9$9@*!"&'()$9 9 99901"&546323267632#"&"'3254#"&A%-&&,!(  8#D Qk   IV X/ Ͱ//ְ ͱ+ͱ  9 $99  99 $99014632#"&732654&#"2$3M%8  " '-8#35)  2B1l8A3/Ͱ /)9/ְ-Ͱ2)3@ !"#$'%-.$9 @  $901"&54>76327>7632#"&54&'&#"32#"& !+  3 %#  # $U/ b  : D      \ 9!8X$+9ͰJ/0Ͱ/Ͱ/Y/7ְEͱ+ͱ+VͰ 2O++ͱZ+9@ #$%&01X9:;<=>?@J$9VK9OT9J,F99@ +7EOP$99;TUVW$9$=>?@$901%"&546763274&#"327632%>732#"'.'&54%"&54#"327>54'.'&54&C#/ '$9 1 # ("04 T#0HM&!/<3<  0+5S(0#' !.78#5;u,%q!1 1)EKaz#F:B'. (H,r2c:'' B *P!/Ͱ/+/ְͱ&+ ͱ,+&@  *!")$9!@  *()$901".547632&#"327>74&#"Y@|[kr\^w'FHyJ*AJQ>E=\"0.gDkjri#J?/:Ͱ1ְFͰF..Ͱ2 /'K/ְHͱB+4Ͱ2"+ͱL+H999B@ +-./01:;J?@,F$94@ (2678$9"  '$9?:899F@>!"#4567 BCHI$9.991,901465467>32#"&547>543254&'&#"32632#"&'&2654'&"R"i4.)N*%:$.'N E%u5&5#V"( 6&, N,20 , d  kJ?F9H'& .'%!l  !(/ .55H $ 4E|AKְ:Ͱ ְ5ͰB/Ͱ2'/GL/>ְͱ"+Jͱ+ͱ +5ͱM+>9:;=$9J" 9'BGH$9(CDE$9 @ *-.$95195:89  9$9B >$9G"*DEJ$9'#$90146327654&#"#"#"54&#"&54676327632"#"'&'&254&#"E% / I + ' &3(*: b6 % G.$IR'n  .?( -$9K !'MKA (&C0  Ab?IH/Ͱ=/CͰְ3Ͱְ(J/ ְ5ͱ@+ͱ%+ͱK+5 9@@037:;<=CDEFH$9-./>$9%@  !"#()*+$9H9CA@EF$9=?$9;:$93@ %&*+,-./056$901%#"'.5467632767632#"&54654&#"#"'&'&#"326324&"32PAA!  $==!"%">4("D ?  <'.E%- q"L)@MU2(#`"75"836O%JI1U*.MM#1!79 $ KXgְͰ2ְ`ͰT/h/Mְ"ͱ.+bͰ*ְ9Ͱ\ְ5ͱ+2 ͱi+."'H99b(,G999*def$9\@ 23CTUgYZ`$9995@X;<=>?@AW$92`99TW990126542546?2#"'.#"32654'&54>32#"/#".547>76322654'&#"4] " D+?C'('! 'I4/#.gC>J*1S:.0) (3. ;:>A-T1,7 %I!! % KF@  !+<:- 0F7;6T*1"+-/&6V2L^ #C   , '_U`{Aa/>Ͱ,/f39Ͱ/%ͰH/pͰ/Y/Cְwͱh+(ͱ+\ͱP+Ͱ2+hw?{aqtu$9(@<>Hbcdefklmnp$9@"#$%&,-89:;I$9\./JS|}$9P@ 70LKRYZ_$9@ 6`VW$9a>57;<6$9949,de99%@ !#"()./0Cwx$9 Dhi$9p@klmn|}$9HJKL$9Y@U PQRS`VW\]^_$9 9901463232>7632#"&#"32632#"&#"#"'.54676323267654.'&4&#"322654.54>54&#"4.'&#"326d"3  1<8#S7 ( % =,'=D4 3,3V+1\< 8  <&  #% - 1j$O5 -4"C&$- ! ;*7 J</.   C 0 ,B'1 'G<"7& ";Dr +-Ͳ9+(/Ͱ/>E/<ְ!ͱ++ͱF+!<$).999+ -999>(@ !"$%&D<@ABC$9-@ +234567$90146327>32#"/7>3232654#"#"'.#"&4#"326# =CS0$&8 <-A7@ #F( (J`M $}* l 7-"%]*//5&<:wTF:9*A ?!/ {q m% UBjNoaqS+oְ=Ͱ\ְͰ4ֱ*Y22eͰOְ'ͰJְ-r/FְlͰ02l.@ݱb+7ͱ+Zͱ+ ͱs+l@>BCD$9b@ 4=Jefghjop$975K99@!"#$%&'(*+MNOPQRST$9ZVWX$9 99eo@8ABCqbc@ghjklm$9'79\D94$%1Z$9-@ #"+EFWX$9OG9JM$9SQ9014&547632#"&547>54&#"#"&'.#7632#"&54654&5476323276323>7>4&#"326t ' '+5?))1$ #% O"A'3 4?$6=G'.2Q :H .L _(  #-1 d,#@N` !w5+ & <4+O/< 4!eF/  %iJ4 7B/:!+?  2OmE^}V/4Ͱ/-3IͰ/_/Fְ21ͱ`+1F9V499I@$&()126%8A^FG7LMNOQRYZ[\]$9B9@  !$9E$901263232547632#"&'.#"3265467632#"&#"#"&'.547>4&#"32654&546X-]F0 "TX"2+1#3486$8.4B* :!  "#3, q:9# 1T; $%,+ 33\?F '82N;yx@@"4O-&9- +-   83NYO/;Ͱ3/TͰֱM22ͰFְ(ͰְZ/Cְ-ͱR+6ͱ#+ͱ[+R-@)(/013;76;2#"&#"#"&'4'.#"32>32#"&'.'&54632325462654#"Yb ^ !06!w(d?937 %/;/()34( OLBb1}J34 G+C # S@h\8(sD;S N*b9' ;MA.cD H  !96G+ 33:ͰE/H/ְ=ͱ0+%Ͱ ְͰ ְͱI+0=@6125G78:;?@AEF$9%!# )*-.$9  999E9:@ 1235G78=>?@A$9 901'.'&54632"54676327632#".'&'&74&#"32326    b!&  E <   <;# Jv;I5g; &(u@6 @=?UP=& )Kb+Ͱ+/KͰ /;33Ͱ5ְAc/1ְFͱ>+8ͱd+>F,+65ABK$98;?XYZ$9 $9599014&54323267>7632"#"#"&#"'.547632#"&54&#"32767>7454>32326546 .[!.E +& ("8$%- -))#>  #  %   E662W# R9!MC4+0"bYD>W!  j4///X  9*ii 23`ְ Ͱ .Ͱְ/ְͱ+@ $9  $99$901#"&#"#"'>3232632 %")/ ) 6|QS$%!{I# ְ2Ͱݰ/+ 901"#"'>3232632#"&##"&ID/ @ ] )(# %O 2/ /ְͱ +$9 $9014632.O &Kb.c 1/ /ְͱ + 999$901"54632zS U,"-~b 1/ /ְͱ + 999$901"54632yS U,"-~?. TְͰ. / ְͰͱ+  $999 @  $9901#"&'7'4632#"&. 'CZ T !P(0A-\U K //ְͰ ͱ+ @  $9 99 @  $901"&54672#"&546 r _P S((--~]V K //ְͰ ͱ+ @  $9 99 @  $901"&54672#"&546 r _P S((--~ 3/  /ְͱ + $9  $9014632#"&F+EcC/I^F70p>3*gyu I //ְ ͱ + @ $9 @ $9017#"&5462#"&54632#"&5462  R ! m !  X+$()!#)!#I$HF// ְͰͱ+@  $9@ $901%#".'.54?6320Z9^) )A"[/ "n3U&$= i"I$HJ//ְ Ͱ .ݱ+@  $9@ $901632>7>54/&#"O0Z9^) )A"[  "n3U&$= i ab2#"54>7>[/4V#Hbb55m dGC<&F'+|0>%ְͰ=ְ?/ְͰ;Ͱ4ְ2-Ͱְͱ@+;947=999-"#999@ 0 $%&*+$9 '()$9$9= $9%@0 "#()*+-.457;$9012632#"'.##"547>72632>54/325 1"  <;6o   j+ 8  ?".w# ,Q 3+(" ,2&WJ`e/ ͰְͰRְ]Ͱa2Uְ`Ͱ ְͰ=ְ"2JͰ@ְEͰ2.ְ3Ͱ,ְ6f/ְOͰְaͰR2g+O"99  $9999]99`[9R9UWXY999OP99EJLM999 C9@=;:99.6&('1$9,)*9901%2632##"&'&'"#"'67547"&'6767>726762#"&#"232632#"##"&#263232#"&#} 6P* d - ) -D A-WA.%)9"(J^+ G( @ > V$ % BA  Py%F;  s.(8 '%H5Fn <!/ְͰְͱ"+999 $9$9012#"&+#"'&'47#"5467>r  b2G)Q)(Fn ?!/ְͰְͱ"+999 $9 $901264#"+64'&#"'.#"r  bp2)\ P)(vN?$ְ Ͱְ /+  999016327>Xϫp    3#,a4zְ$Ͱְ5/ְͱ-+&2ͱ6+$9-@   !"#$%$9'(*+/0$9 $9$9!"&'($901%#"&#"#"&'&674&5463222632/4&5432 SQ|6   D,*   . ?=  #  #   6;e )7FXj5+Ͱ2++ /q3Ͱ;/CͰ/Ͱ//ְͰN2+ͱ822'+ͰְͰְ͹+O9@LMPQRSTUkl$9@XGHIJWpq$9'Ae )!"#$%;<=>?@ABCDEjYZ[\]^defhistuvxy~$9@7*+,-/01234$9C @( )7/0F89>?@ADEMS[\]^efghip$9;@1234NOQRjYZ$9Pabckl$9@ $9@$99$99017"&543272326?#"&547432#"&7>54&".'&5432%4632#"&"#"#"'&'&6""5467672#"&%43267>'./.'&7432#"&'432#"&'.".547>2632#"#"54674632#.>=4654.'.#"#"_ 2  %"!  "s M%$ )  , *0 U #  >= %>&  .!6E , +$@%  A6L*  !A(9 E=~/&4: / ' {D=U  J"1'7`$& %Tf #-D{ZQ8 h9` " .-)#638 '5 Z0Y ?/%4/  `  "   !0  0&t\#  dzc261W S%@H^/Ͱ\//Ͱb/Ͱ2/Ͱ/ͰְͰ2ְ/ְjͰͰ<2ֱ:Y22DͰKְ$ͰְͰ_ְͰ2{ֱ22Ͱְ2oͱ+5989;$9D@/0=>?VW\]$9K@ ABEFG^INOPQRST$9$@ +,-$9 999! "$9_9{9@ |}~$9x$9cbw$9o@ e$9jghm999/@  $9\-9@F@$'()+,589;<=>?ABDEF^IJKLMNOQRSTVWYZ_`emnopqrsvwx{|~$9b"h$9! 99j9999$9$999901%#"'.54626763246543276?2#"'./7>'&324"6"326'254&#"32674632764?#"'&476.74&#"322?4#"'"547>7632'32?"72#"'.5437632654#"2XK #+         )     { #   =   $  K! - +&    "X[ w/F  ! >  '3    /  \  #0/#9  > T   2$ L   F  8 !-S|y%+3+Ͳ4;f222@+WͲ.++]/HͰ/Ͱ /ͱv22W.1/ְͱ+2Ͱ2+ͱQ+Zͱe+Bͱ+@ $9999@ $9}9ZQS/NO.$9e@+215749:;<=>HIJKL|8UWXT]^`abcjlmnoprstuvwxz{$9B@f99]HJK99L9a`99@ ! NOP[bcmnopqrstu$9 @ QZdjlwx$9+@5789BCR|TUyz{$9W99%@919014632#"%632#"'#&64632#"%4?32#"&%4632546'5'4632#"&'.'&5464&#"3267>46?#"#"54654&+'#"'&54>76327>4654&/326?654#"307#"= H D+d K DD~ % .   @ %    &u &  :.  4  Z#>    S* ,~ 5 !   $ *MCA(&) 'K>$&  2% T &(1I!$ 1%G MQ;p! B\<.=u+B+ְ"2Ͱ".<ͰְͰ 2-ְ2Ͱ/JͰ[2eְͰy2>ְo2{/ְ@ͰͰְͰ/ְF2ͰD2@.ݱ+_`a$9@e$9\f$9/@? #%&'()*2345789:$9@BC99<$9@  %&'()*/0456789:$92.W$9J-NXY999FHG999@ CD`$9@ Aa@rstvwi~$9{9990174>3232632#"74&#"326%#"&'&#"547624&"32322#"&'&'&'.'&547>327>7632326"&'4##"&#"3232>545>54#" ; '0I!R , 0$ '  3'    )-1  & ,4P / O  MNCA  F > "#9  (/,  7):1  y*(E*  W2E9f\ +HL##"- 6y3 )%]a1V  KWTWI(2e}Bk+7Ͳ3+/GͰ1/Z3Ͱְg2,Ͱ{2&ְͰ;2ְ`2 Ͱ:2/fְN2;Ͱ2+/ͱ)+ͱ+;f43>~$9@" !"#$&5789ABCDEFGHIJKLhijkl$9/'$9)(,-1$99G@ ABDECIJKLMNO$9@ QRST~$91VWXY$9,@ "#)*!/>[\]^_xyz$9@  $<}u|$9 f9t9kabchiq$9012632#"&#"#"&54654#"#"546324&#"32>37#"&'.'.'.=6'&5463267>764654#"267>2254/.#"A ?/( + 2 .# V x--   "/ ?&< .%$"#3#O-7W ~ UX3 k&  $ HBP9 U6C 9.c!Hy!! -( 0  5M " -) B&C    + ZC;>     :G   0  )($=EKp7@OZp+Ͳ+d͸Yְͻ*+͹[22ֹ#-22o͸&ָSͰ'2:ֱ 22CͰiְ 2eͰ@ֺo?222DͰ#ֱan22 ͸?.͹N22.m33Ͱ2xֺ3222Ͱ`2.ݰ_2[ְV͸22ָ0ͰS2 /3q/ָIͰ2+ Ͱָ2Ͱ2ְ2Ͱ2i+2ͱ 22+Ͱְ2v͸ 2ָV͸/ָ8Ͱ2-ְ͹=+2Ͱ(ְO27Ͱl2O.jn33_Ͱl.53b͹r+I9A OABCGM$9 999$9p[\]^_$9o999iAdelmn$9 $9A  !"#$997$9v9Vxy999/A|{~}#$&'()*+0356PQSTYZ$9-98$9=:;?999GIH$9(@"=&%*+,-./:;?@ABDFJKpLMUVX[fghio$973\e999d9YA9:PVW\]^_i$9*A=&78%<; Qpjklm$9o99S($99& (OJLM$9CA*+)-./03 ,AFGHI$9e$9:g99i 9Dc9 89@A  !>b =$9#LMl$9999A $GFOP$9K999HIJ6$9x.5$90VX99[{|}~$9v$9u999012"'&547>4#"'4326264654#"546"54&'432#"&"&324654'."/7632#"5432654%232676;2632632+'#"&#"#&#"&546&#&#./#"'.#"#"5476;.45476767654&5467267>7"&54?#"7>7>327>7>?46323265&5'3264&#"4##"2764&#"32%3267654&&" <2  B.  4&%      F !   \ "5$ # )?  "&" {  *+bb & b7!  J|!  09lD) * = >[$$2IQ2 OV  *e   &  1'&   )   D .   $ %   C ,.A! 0 0 $ "  VQ- O < 8 &. 3;   )  E i 8*?#Z"   "+ 4 _ep+)3+++/DͰ"ְqͰkְTͰ=2Zְ2fͱu}22./Ͱ/3Ͱ/Ͱ/Ͱ2/WְhͰU2+ͱ+h@a  _DEFMNPQ STZ[\]^pfRklmnstuvwxy}$9@$ !"#%);<=eƮ$9q@   MN$9TQPRwxy$9klm$9f@ :32&54'4327>76327>32632"#*.'.'.54#.5463:6.6'&"26'&"&54#"&/327>765'""#"467632'&#"&#"#"&327>7632#"&#"%432#"&#"#"4632"'4632##"%4632#"V;A* +G"5[&    # 'A 5 9+    X#: %=2  O %).# 6W/ v% ) )S 4.%";EF-' !.[q j7 3 /W'/e I*,@[&   6+ ("    /*p@ K  NQ" ?  "cE ;  "A#J-8.  0%!6 .  6 #v   _I>f6U2+"Ͳ=+F+K+M+/ V//ְ%ͱ+K2ͱW+%/*+999@ '()U78MNOPQRST$99:GI$92@'6 %&'()*+/05?@ABCEOPQST$9"U78GI$9014632#"&'&54323267>%4632#"&'&54&#"&%2632#"&'&'.#"&546 ) . ( + !# 3 ^-  ((j +    >>  o3"(d/ :YhJ ) =44~0 M Z   0 X]=H:+ Ͳ++F:+$ͳA:+*ͰְI/'ְͰDͰ7ְͰ,2ְ2ͱJ+D'%97@ "$*+2345H>?ABFG$9-./$9 :;$9= $9$$9F "$9A(H'?>D$9*,-.999123457$9  8$9012632#".#"#"&'.#"#"&54632374'&#""&546324&#"326  !/     #*.T/,  <q<(& @'<Ul RDek86 $W>0 "Q1.* $b .6l0Ox.1"m2KtS3wD@,wi]DAKW.o^ZCK@+GͰ/2L/ְ5ͱ+ͱ5@,  !"#$%&,-./01236789:;<=@AKDEGHIJ$9G@!<= $92@C "#$%&).-0/5679:;KDEHIJ$9 $901463276327>?6;#"54654'.#"&#"32#".254#".6     9       1  (#  7/ : 2  6  0  u8CSssJWD.;z@/,iDAWgRFOJ/BͰ ְ2Ͱְ4P/ְ7ͱL+?ͱ+ͱL79COGHJN$9?@ 345:;=OGHLMN$94@ (),/0789:$9 999014632763227>?6;#"54654'."&#"32#"'.324&#"5             2 '$  '$/.   6   0 4DC_Ez^DBF*OY+&ְ2ͰHְͰ)ְUͰB/Z/Sְ,Ͱְ ͰMְ ͱ[+,S)999@ BCEFGHI$9 M $9H@ ./05678YPQX$9U9-S999&,9) 9@  !;<=>FMN$9BO999014>32#"&'.'&#"3262#"#"&54654'&547>32327>54&2654#"{&;S%YC  4*>C &*4$\g8=<  :+$~ % +9?q3403&65(-"3"B. L  7(0y*B@ 8@^ S/3Ͱ //ְͱ+ ͱ $9  99 $9 901"32654'2>32#"&546  -!) ;%#6"++2 1-$ 1;'<ND&//ְͱ9 9901;'4632#"&* p0#"+9 ( &,0 %34V 3+4/ְ!Ͱ ְ+21ͱ @ -/$913*,$9!#$%)$9@% 3!"#$%()*+,-./012$901673654#"&'&547632>32"&'632w?G[ 0 /# 96-!   04"; n  -6O>=0'7E +%:*K'@y_AM1_DMH/@Ͱ/2N/ְ5ͱJ+=ͱ+ͱJ537AMEFHL$9=@ 1289;:@$9@  !"#$%&'-.0$9H@!#=>"$92@D %&'*./05678:;?6;#"&464'."&#"32#"'.3254#"15!          1  m(#  7/.  6   0  5gCs8`DD I4*"[5o<66I X/ Ͱ//ְ ͱ+ͱ  9 $99  99 $99014632#"&732654&#"2$3M%8  " t'-8#35)  J U?"6fCְ<2ͰD2ְ:2#ͰK2/}ְ 2uͰ(2+ͱh+32`ͰP2F+Aͱ+u}{9@#$&+,-./noprxyz$99h12lm$9`f9F@;:KLSTUVWXYZ\cde$9AD9#ABFG$901"#"546?67>7>32#"54&'&#"3276?67>7>32#"54&'&#"32632#"4'&#"#"4'& M,!0Q 7*$" #2!+  "O:Q 7*$" #2!+   LVV5, 5 {]pS, "+" # 2R93|QS, "+" # 2K9  )KR$' {&KR$CaV\I/ W/3ְB2+Ͱ2+"2ͱX++319@ %'./0IJ$9@V PQRSTU$901".54&'&#"32632#"'&=#"4'&#"#"546?67>7>32=#2!+     j V5 M,!0Q 7*$)) # 2K94$dG K )KR$ 3|QS, ( " CC&IOpC]/3Ͱn2/GְV2?Ͱs2i+dͱ2+~2*Ͱ 2+!2ͱ+?GE9i@8:97>32#"54&'&#"3276?>7>32#2!+     j V5, 5 M,!0Q 7*$" #2!+  "O:Q 7*$D # 2K94$dG K )KR$' {&KR$ {]pS, "+" # 2R93RxF/ ( " C&Opav#8ct  ?$l*   S  h F}   8  U j y H" TPurisa, Thai handwriting outline font. Copyright (C) 2003, 2004 Poonlap Veerathanabutr <poonlap@linux.thai.net>Purisa, Thai handwriting outline font. Copyright (C) 2003, 2004 Poonlap Veerathanabutr PurisaPurisaMediumMediumFontForge 2.0 : Purisa : 23-11-2008FontForge 2.0 : Purisa : 23-11-2008PurisaPurisaVersion 002.010: 2008-05-16 Version 002.010: 2008-05-16 PurisaPurisaTLWGTLWGThis font is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This font 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 font; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.This font is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This font 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 font; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.http://www.gnu.org/licenses/gpl.htmlhttp://www.gnu.org/licenses/gpl.htmlA quick brown fox jumps over the lazy dog.A quick brown fox jumps over the lazy dog. 9#4)2 5#@2  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|6      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ softhyphenuni00B2uni00B3microuni00B9AbreveabreveAogonekaogonekdcaroneogonekecaron kgreenlandicLacutelacuteLcaronlcaronnacutencaronEngengomacron ohungarumlautracutercaronSacutesacuteTcedillatcedillaTcarontcaronuring uhungarumlautzacutezdotdotlessjuni02C9uni02CBuni0E01uni0E02uni0E03uni0E04uni0E05uni0E06uni0E07uni0E08uni0E09uni0E0Auni0E0Buni0E0Cuni0E0Duni0E0Euni0E0Funi0E10uni0E11uni0E12uni0E13uni0E14uni0E15uni0E16uni0E17uni0E18uni0E19uni0E1Auni0E1Buni0E1Cuni0E1Duni0E1Euni0E1Funi0E20uni0E21uni0E22uni0E23uni0E24uni0E25uni0E26uni0E27uni0E28uni0E29uni0E2Auni0E2Buni0E2Cuni0E2Duni0E2Euni0E2Funi0E30uni0E31uni0E32uni0E33uni0E34uni0E35uni0E36uni0E37uni0E38uni0E39uni0E3Auni0E3Funi0E40uni0E41uni0E42uni0E43uni0E44uni0E45uni0E46uni0E47uni0E48uni0E49uni0E4Auni0E4Buni0E4Cuni0E4Duni0E4Euni0E4Funi0E50uni0E51uni0E52uni0E53uni0E54uni0E55uni0E56uni0E57uni0E58uni0E59uni0E5Auni0E5Benspaceemspacezerowidthspaceuni2074euroarrowup arrowdownuni2423uniF000uniF001uniF002uniF003uniF004uniF005uniF006uniF007uni0E10.descless uni0E34.left uni0E35.left uni0E36.left uni0E37.leftuni0E48.low_leftuni0E49.low_leftuni0E4A.low_leftuni0E4B.low_leftuni0E4C.low_left uni0E48.low uni0E49.low uni0E4A.low uni0E4B.low uni0E4C.lowuni0E0D.descless uni0E31.left uni0E4D.left uni0E47.left uni0E48.left uni0E49.left uni0E4A.left uni0E4B.left uni0E4C.left uni0E38.low uni0E39.low uni0E3A.low uni0E4D.high uni0E47.highffffifflzerowidthnonjoinerzerowidthjoinerafii299afii300 |qrrs,--./067>?FG_``aijjk{| \DFLTlatn thai,KUY PAL THA  RQDccmpliga"<DNV^fnv~R ",6@JT^hr|d$R`j0 "(IOILOLI OL7I  456 2DVh@  A  B  C  DE 2DVh@ABCDE"4FXj|?@ABCDE((bj|//?E *--//03??@DEErr   456   r  E./."(E@EAEBECED@D/<@D ?E |44@ }44A ~44B 44C 44D E44E |55@ }55A ~55B 55C 55D E55E ?66? |66@ }66A ~66B 66C 66D E66E VrDFLTlatn"thai,KUY PAL THA markmkmk`@&0    456JJJ:.Z  00 0,0(r-0123?EF|}~:@FLRX^djpv|000000000000*0N>^  &,  l d  r0123E@D$*06<B      I >=.S phatch-0.2.7/data/geek.txt0000644000000000000000000000017211346363116015316 0ustar rootroot00000000000000convert file_in.tif -bordercolor snow -background black +polaroid file_out.png convert -blur 0x5 file_in.tif file_out.png phatch-0.2.7/data/highlights/0000755000000000000000000000000011346363116015774 5ustar rootroot00000000000000phatch-0.2.7/data/highlights/curved.png0000644000000000000000000005202211346363116017773 0ustar rootroot00000000000000PNG  IHDRx pHYs B(xSIDATxb ,xɔ\|2w4 s)1oq$b"qQ0 F(3TmQ0 F(C8mQ0 F(%mQ0 F(L)mQ0 F(0;fFmQ0 F(`0VԔi 2 mQ0 FrLǹPぐ<)/mQ0 (<`4 :mQ0 Fa0ZQ@i:"nmQ0rHFi Sx0Z%*mZт|0n :ÂX mP (H0+Q@*7WR8m 0ZِFn $S |RmPV6тr $Imjn٣ G( 2Bk0\:P\O) d Q0 #L`r H+` [zCFmQ00`j`0ڍmJ@gzǑc|ƊpEu ?JWS+b m 0 =jGZR`0`=M/m .0(`4 nzP:WOQZ5a`mF Q0 /hA[0 Fm#@ ~r >NpZا d, qFN{OipK u؝0C*hf. Q@9Ln$U^#ɯ.a`d6u=FhKrm 0 Q0pIc00X=l&: m > P` 46B 0{b'JC_mr0p0e[ ŃrhQdңAJ{^K] VH La8z``t9`0h:]\ 9 F åRāSEZSh;@mbp)PF{@qڸŀbemPc84hH= k NF ) Gmpލ烱U+RgE) c5XY c`V9@YCZ mRn`d]@]j(`n TC;pbN Z8 60 p@U-- )< 0J_Z4pN F+ S7` ߁l r``\W"_K3m@`,tNJP!` &(=` /LSGyG4km O0*Nrh ^0Xf {5L( F=F`mP[Í=uK 3\>{ya_C(MK I XQF7Q-FW @|WR@Q I J`+(C0zꃭe+e>[S!p5 000m Ɗz8U`a*` M]Wn [e; 35(GIe|XMn Jpll@+= PڨYcmP a`8@y@iBm <nzW2u0`L P^?Ce*XHQޣ̢Qi m(x0X iB`/á@vЪ ci J@g] Ņñq6z 4!@Qz偾͏x؏G XQ` i5({Mz0Lk)摪7ಋ  J`Ф:Lm0z`tz`Q b"`Oq@멀wC^Am 0Rzꔀ`@=@aPnzQ \V k5z/R@S-hz4z twP( J@5ڂ0' \PuF;-o#7N@b VŞ:<✁aU4{0,`l٣Tb)f"!0 J`эPlD ٴQ20Ѝz61mP Jf(y86b^}0 f@QjM F-G`z(Mtm  ^L0X TR0vSh г@0s!@ JPe_c/m <in@TfQ3nh mŞ` ^`a[()RFZqA Q08`m!ءل`#bR L!lM =Za <0X Pbʏ{ -*nU Q08`k\ 6l7.@`h jj/@$*~5 H uăKl tjZ`0{MP>bc4 z|8 Q08-*R0+aZ- #@vP_t]m ?0Glr`O݃m^`0,֣@45n X X! `i6XHv5 .|nkc F@-3Hl`a@QjGe4f-v@дQm ͅ -xN^7G˂ F-OC>kڀm O0X]#u`@Xo٧v#j7JV d@j) uq1\2iݛ Vw#X;I1XG 1g) Fg& Jz`a Y k d1m@:T0XCma0W=>GefPBHw0 m n0Q J|(Wң; m=)Q{:XIu%05WaI `6.4P^ Hk(5` RѪ@+7`S$4oI cb ʕ@QSn` h=Slm :T0Z#`h=W?` G`Mk)Ѫ@JeZ6A m ~0ii``cA 1`Mk)Ѫh9ngߠ,i u`ii@ʕ(5`^ 0FJ#aAi :C<?` ;zC RFC?m:N jC4{ +\j@LSԴ;ihh2@Fm )Q0s3:@lb?#eTwдa :N HuC Qj1@UG)z7hq5 ' Zpl<Q C#TTl00Я15bm`Z P7 h9JB Դg5Hq%v%G@5mFكy}(Tivk)ḥt Ah` uq܀4Så0GFc` ZZFP^}8/SP2 @Fyf掁h A9 4 m`B 0+LZѹ,S#0P+ ҴQmhY9 m@Ā\H-3轰p5Q@~ڠVl& 6oM ̋Om*XH1V:l`n 4000 B`N k t/R0Oph#t{hEL mc05qT0jέS F)vj.L@6t :<+RjXaQ5  (@/Li)vF=F5F BBCZX`/HQ7T S?*q5 rm =А֕`Ce*`nz dC A#m V"\`N v 0 mn` ;AmNPŀ1v 40%0P jtmCu~ ӇBz1p 5*SĂh%` *S mP4!0GCe8@6 iH ,R t#7 OŨ2Fm@P=p CeB*ubt>JFr]1Q m4!0GF{a5*NZOP F)fTw Ah \  mP 4@6Nsŀ{J*Vz F7UDc Hm P b%= (ndP 2c8 ,R >@ `5m|`ie^6H3UOh5j mP r T ~X^Ce=pibq 9Iuv lA0`e$m: 06: @S?Mg` ?-R!@^tom4!0d@F1`t*<0h3eFUmP p6z`, s=f^ m tD~0TvC QzlS#@;`{4zh m#LB`z604豾dt*tHB' F=F!@`.mP2rQ C#bM6k)f48 7`sm ʀ\0X{60ph#JʈF r*XZ A(mCy( 2TQwN @!ZJR$\r*+zPK? У1 mPPp|z`XH SĂFS20 m \  m <ʋG2 6=0 Ȇ-a$FmCa ^P7$k*`@]QLdiJ8-SchmM@ 5@yX0I)zk.3hԍmbN0У z4<=@j1r̥h@6͡UY0(mP Jae*s*Z FfՆнm @eC0: 0ܦFZ610P j Ы0Ims%; apH & Z,M 'M/V|Ԯ@d5m ^P1T5#VIsafk4z Z5cLTCmCO^`Pb6 !zzCj5 c`l mP Jp0 W9ٰPjj6uc`P7 m =0{郹& (lFmq4} [GzP6 mF d#c8-WcF-dI1@U5 Zwm u/{{Ca p0CŇGn֍\ҴqmPpndPQqg`5h=@=C;?X5a m t/{{YA r^f y06=GO R͆OnC@͆;l1@*hm C#^C d/)vdC10mP{/{ 豖aNP>bw#T;h%Z,-`H4mÎ ZNP¤=nFJ#b3{6hkPmP{/{o0TLf F-*djI-On, =yckеqmh  m=`lPsT nlk4\fgckP͏ ct_'P Fc ̺ y3F#|Ê)£t)}8#2h,?Q8ՌYnd` ~ @80Fh̞@6^9:@5mXo0]ĚE ;ʃ֍@6֍!(mP v!Q: J*=z50[XNzilm 0b3pm=jIm{avbq )n@v @, drZG,m (5`XGQj(`@:ZS;F!000m0eATy`07^d``h%SRgc(^GMmPb@zԧ9ĀHhЪ1@ jд@_0VZԶ~R%G=-w P?0@]a/ a@F{3=rRzASu4znZ5ƨm ?0R zzCĀH{IUK)``^J `mz` z9uĚ5Mzm]T2fJv !(m O@ |8- F1`@~ZO j4f>9/+S/Cam  XO0lPwD ;3X;^R,S0=ZO PK?m*Oz6m ]@ʕR71Z1hX0 ^R$U-=30Ю.q@u8`t[ qvczn飶YEb&jIu92JQs?dڀiA`gY#w9S20F`em ,ݲST0ZH)*a m ~@iJQb*gBZ`@R Mu W}2kz`H4 m Pj 00 c|m ?0XkW`g, =Eyõ0XGBCv2^\m >0FepZOO]HFr#`j j[`4]88= ɞf@ I1T>'/T/ Y4_xm ^0T ]jEȬFefv0^3@6e@O+@Rm ^0X*eo̩m!FIZzlyI t]0x`cLe`[@O{˚R$U-=>Y/yqzi}m n0a5!Ůljq v zrJ+7j6scݞ!0m }@(Qj=΀ i s7 m ~0:@0ԑb7撳=@р``|@VʸF q]84pZH9Cq좆}o8^3X/!wQ@/b:jn̋h6m 0TcP]mP\r֝0000Rm -0TL=sRԌ6hk7-}4a4P `````]0H@ LHeMv=T@|25)nm -0]^8 Bm M0XVrE-{#3K#CVԮQңAm ]0TR˜Z)۾ U`%0pA Pm ]0*3f%9 LRrT ƆSl]8t5k1P\GEz!Nj;v* 9`0; EzP@7ŗ>r@N 008^Z2^`(Mc`{{ ȅ|e`g /VϘk^`0O @|@b` *HK|H)RGLoc`ȍ~^=ݑ5k>TczLjm `qm O0ܦ5g@];k#)@lP AWCm _0Xvۜf V;G0G(f {S@7m _0*ԡZ) y E=Xc!P ^Z:Qo(6]8|5Q v=b e[HY4E1Rc =tQ{aN`t*2ivRs vc`LS CJt-zu)vH5#Nj@`8܇[i=@>jG)Ez[`8n $֬3`0ICiq fah00 j ըm0R}NbF&GBi @tm m0zjG82{1s0rD -sX@VXm,0}ĪF5 rsZR ԫ jcax4]8`j7 m~݃eq - ]$8PQk!sBz.,+m<@LL3w f;m`Y?%N jW^uQ0`$OPӾ`'LqmP94N!~HL#m\0}ĚEz8v-$lr'W@]3 C ml0}Ě5M 4o(ml04kVȣK0\= {```_E=TmvFevc`:g000 n }m@TmH Dph00 @K38 u/*Sz7"0 h 3X0z}'\z\CC>ꬴ֊vZj腁<*@qa(mRP@YĚ7  n=G 00Ga6!0mrh#6vb@oH1{kvR]Ѻ,+\mr`DGn <@]G-00T0(mrP@yC7>r=Fȱg죶 C1@O{(to$mJ`\H;J~EEEJz4dmJh#tuK8Tڦ7\G(Zz[(mjFꈵT3GGs9.J^jå10 mj3 do|@  h9=@O5mj CC@KwbPhPb'5즅90@mBLn!mjn@I5#y4;a7-AX>X+A.mj @pmzFeHTs˂j6SYt]mz_ H=pDGH .DqU6d @CqmjOd-[£wQ|||` X: mBV*u;h> F.^Ԇ/(NmXuQ0 6N;7 P*tPmP1m ރӣ(# K5x j 0m _DɏνQ0 |||P|Pa.$FLm QJ~Q0PCh@7jm .` 9m2`6 (ݽ0`5m GɏQ0 =;5 `@ l`P5m /UF{`Q @i@ F.@mP GG(aĦ5#m`=|hE? F(;iS #Qmz(` ~@Ai0m VϏӏQ0 F0ihy;Mi XVُn` .%  y(`Q0& . |(`  ў(`X(9h@ A:~Q0 F>>>\ 1l ѡQ0 F( >`@4 wז-[ ;F(` Fg>0~Q0 F(```@%f@\De'хz`Q0 F:J!g4 V`t8Q0 F(Ms! "bQ0 F(~zB^R"GW珂Q0 F( @ "Olat(`Q0C 5FW菂Q0 F(@#\b?(`Q0r/bܼy@cQ0 F(tbhQ0 F(mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#CIENDB`phatch-0.2.7/data/highlights/curved_down.png0000644000000000000000000005215111346363116021025 0ustar rootroot00000000000000PNG  IHDRx pHYs B(xTIDATxb vC)jhL5\6rgb"yQ0 F( 0000mQ0 F(#mQ0 F(# a```mQ0 F(#mQ0 F(' mQ0 F(CD3mQ0 F(SjmQ0 F(zԨXmQ0 F( ^8>@4_4mQ0 F(PM:_mQ0 F(` v@VCmQ0 F( PZAV mQ0 F*65mQ0 FJG+4ݪG=D7mQ0 FCգC1jmQ0 u= F.G jk/mQ0 VУ\0sT0h mQ0WU2(sCZ8mQ hhGHy6pmzQ@ =tJQsTm _@nE8ZQ0HڪG-@Fm:2(z`$o ^W n` '0ˤUF IzQ0 Fh zګO D`!n0k-zq6mQ0 F  P!lK'k'F0mQ0 B,+`K#;UmQ0 Fx0IeFmQ0 ``(W# F`I?q??9mQ0 K%IN[}bmQ@0ZA_0-I—\;H7mQ FCp[\~Gslգh!1mF+Q 1~,WqFa mLrhJvLPj5~ ml`t| ,=ȁý?Xi-o_m m0ZQFa0€n,8zGFmVУ`!v`(4PRj-0wP z W0* B 0(yaEY  ÊF.0x C 7u@ʹ i6 zir0h0TCe%? 50AF`= (á aTiF` "02(`lC 7P v 50nd4 S` `8ЇB.=0 0Gr#fm 0:N;0*9Z.@/7jj4?m 0{̍R9S QZZ6HJcm FG?ۆJWX 8a`R$U- P:n? mF+C; u$ÛĂ``M\aK1) JdPA 4o0}Te~0oCާOF@X* ! r^`(`xti`$h G= Ы!W`W `pH9Jv y~ze %ЫhХL"0`(TRC~PcLP 轒 H1Y=yC*S`t%`84~K,aL=F90A4m a#306T`§5f 7_Tm mP 9TP))C!} d< !2 @-{("Nz4`(lm h|0ֈ 10T 9gb`4KCN P  a78~,+Ƈ WC\8M/,ֆL `$P<(P#i`Cj#^S$lf`$,`$PPp#-CiX0Xn#P{C"0zPCqGh#i`44RՒJe]LSCC.vPjL#@4FmFbX0f(TCw>Ú^SC-T5i :a+ C v8j`L# ()f@6Fn P4a4)ýJ+=*T)f(+Zckl `8b [C5 0z̃i`7sC(v`8WNù ?8 id5l{4{"0+'j c(qO izNb&撣:m:lSC R0v 0'eBS#@z  C܈ 3ԇaPĂT@F4m \Q J 7{c  9> Ic `8`p`ߡn`GjHʣԘ >z\CI8Ң!@6?Bp*89 C~0`j0 @-{CCԜ * du"0zO 0 G1X"=z 90Ћaf{4> \kSP+f006*>M0Xz#u`(N00Ю0Fnr P f? xc<  4iQ@, z4(ч! P` 婖!|V=j2 @-{9 @LKOFt \ Gea vP Nr̆? 6`ʈг/=māXHs(5ȱ]/-)"0z@Āq02D?"z-@L F`lztS"h0TP`v`(s(Pal=sz/<1Ѝzӳc PQ C:@WZ 8 ` F--l= RCh 7 P#:=Pf`Q;0Ո|`4v " p855%`0 0e`$dԡH;za0-Ă:O ^ @70 wJBk7 ~+g C(0H1lvZ@ká20G85@ L@7&v R Caa.vP wF@jVa=)"IJ%4  P 7<=PiD H`Z 8GJ#T7 C=1u`(~ Q7^a`00Е35͠4pi8>@ UK|uG02`|`0pE,`X0H1XT̔Tn 2S$C]08@e(upl rMc D"`ppF`i i`PNZKjzZ5 B `t40~\`qb͂l *'G`8d*=xz4N:]R2{5@ݤKzr+7F`0TL!7a0q9: ;=u`O Fn ||Һ1e?n SC n ni Qj C@bPjj6L==FHX0,Sr)ވ ia000d$L E5*[Z4PtGL B:R*WB` H ,Na*3IU; =۟V. g`0T`ph0NpYG=_11Pi(n`` @R7~f`(zO;KL 02F .U @r@nJh5.wp5 j0LSCc04ĈCŝ #=F@jEoRh=NDCX j P 5= y `p:Sn |JѢ!03l PC'썈R9/iQ-p h к@)l aP5w`0x|0" FJ< FG ^Z6?0 t h^v`0ꃡs0z!mp  Db{HmlSĀP) i0?e`CuA@HOF R=AoЬ PcTDC1CiX@8 [#`(00>l`p0݇ S=Z` ý0pgCjpE`0,;R,=2 0! A=ák)cSzP|Ԉ2GOʌ^ T@0@ZZ7|F0h  zTZ:bH䫡(`0O Fp 91`R F=m`NP;·R#TQ@h`h00K(U`JJCfs8MP˞a`PPGNM;iePo00PnPkmр5S ҌG),f ǭzrl< R$U-= K-@ 7h( `1X*؁V Th#r= c4@  ``]C], ji )UyQ pOFǺ]j7hAW`  7znkAh#fJ *=0m>MJ#CG0<*gh ŀC% שZF&~j7ݡ(L 9 z`0 `l RHk h@@Dag` w(Cq`Ob&jc#р``<L#ĀRy44h G(5mPzN Pb'\cl inh ŀ#y`0.w$4CiEIC4a4w` wʈ),(5`G͡e> l#ĀT3Cm`(z68#a*3I5֍zN E 4 0X*gze(,$ yz 5㚞w0G[Cl j2 @/0XCuȜ^`0.$ H^8-@F@L Pj7>\0JZHO^֋zS%0G}QR$3N G#}ԨhQidck#ĀR9`XO0\G^}RSm&.} !lP,+ R` Z GG(SCM0T@,ʍrT/Z!` w20 v0G7T-PZHzz7r4 h #e|(5CM/@Q}6f.vB)^r5Wӣ  RypP Ys%fr19~* i#7Q`X ,1SJ0:04j.fS[#wN/0Fhm`GEzù@zr+Ձ ``9=la@7 2=zJ`ަGz}? 30)kpXKce0UރaK =lv T-h#6v!VC ( Ы1;P }IsI5 M PEClc ҳn`(u`;G5~$- Clt R3"=Rezʩ=ONF`$4CI#`5h] ScZ ]ĂMVދ I/sI5=T!@ `[7`* ԳWCct` p(9<5\= _KH?-+5 R, ԳLsz3: @;Դot=ji lr'W@P t0Pda@5, b`,d1`t; ݼF'Wj 6@@J KcZ yP ayRh#v{4{ie:0x$L ҳJT ѳbJ`0p ݴJs0TF` L b`Y9 P&fo$Mc7F<S#;@Zyj b`L=ozZ 6k(4Fj#`Ԯikl A@xPڪG `8 Fm'-`_@ݔ=ا7-0Fjl b`  Qj AQz C@3p>(K ŀg(yPNg)`(5%oĆjPԏ1 c)8X)+&Dθ;@vW"GRdz3}l^ayvdv}d{TK#ĀkC? թ p %njOр:"n`  2 @ L[eH\ 0 J ?g e1 bb@ Ep@7X  bp[ 8: @;0:¢S0!@d7  TQÌԐL0N0@8Z0 )~J D< b`T=Ā6 0֩jIJ3@݃}J` hG~ +dl ŀ3T"B#j{mL`m00 9U }0l{]ꏴ} ĸT豗to<5S,l`؝#Z 8: 0r{CGNM{z{ 1nl#g F`iy TR Cyz5XʬX7%6k̾a bp[7+F‚`z4U\(fU~b* p0%Q }P 9 k h* bVb`Zs0H CiglPТwc+)N b`,=szE5 V;iiPkk]P 9` `@J pt?4 Ql@F`\@=ڇl/5ñ1 p5 J buc`0a@u. b(Cm E%<vŗz00PgZSl>@lC'I jQ"˾ '5mo>k6L@M Pj?6@QTN %p P.Z5m8- v N jz[|0N ũb` ݴTɩ(Hb4 6* |n Qz68}*`@}3GWrT ͳjb8E8C^ e;vq-.|r00&u-j^FD *bܼy3ъ}||,P6z:xh`G,zLHYGJx5hr'G= 2Hh 5"@MmL03`6`52XE7ӻ}qh#撣~ Fj`m KҀ2l z7GZV#@PyRR mQ@&#g@4 x(;HU? 6:sU9FmQ@%4BA0ٍJ 3+, mQ@#m300Bi|#`(- ;H5 C0 Keȵ}006 ꤼ mQ0tˡdd@Cd0zzFNCmQ0B)y6g niJ@v mQ0tP h#0jz\3mQ0twQ MFq`!@]0\`H4 mQ0[;0AhPCHo00mQ0BcAEHu`n00 +ʁjmQ0Btr3 sJ;) !@Ks ( mQ0 `S\ o[= C!@k ( mQ0 0t"1 J r00 ս!0|00mQ0 %FS F`04VCLmQ0 ]r JPWa7\m`S mQ0 H`ShJy ``mkckmQ0 |||#|PD@6e 5(.mQ0 Wæ p7 )ц1pjmQ0 h GB130Ч@=ꣴ) GLmQ0 Ď )``~`7mQ0  5@hd`(?@#jmQ0 @G47F @=8mQ0  020ا(;X6~[s<mQ0 -64 r20 ``m tu/mQ0 =:$΀&"Øvu/5*``7CA@PmQ0 cLh0 00R ?*w5HmQ0 , (1_y`1mQ0 ^T&RhC:֕@^3lmQ0 ^a{[!2`ܨ7mQ0 5$fZ<8Pg``<RmQ0 F Qd Z/0O͊p( `k A8mQ0 F.```al/Dycpo\t0] mQ0 F4Ci"IN @PoPl!mQ0 F|T@PeCy4pi 00 ImQ0 F2E0 CcTf#QmQ0 F"Ёbr ``mQ0 F@A R Āa(mQ0 F!}-``Yd0mQ0 Fz16lv* @qmQ0 F.Hc@D탩!0tG.j6mQ0 Fdz@BZ`o00п bqmQ0 FҨ>K``$5r΍mQ0 FZbGcCax6mQ0 Fb1#!08*mQ0 F言>" u6xm0Uƃ-dmQ0 F ĝ68  mQ0 F ;T iʩY ШxmQ0 F >>>" F *``!8%mQ0 F $l% 9o6d mQ0 F9Ȩ<Ԯ[cax7mQ0 F+aq?0 VkmQ0 FHF o%E600mQ0 FDN ņ 0jmQ0 F0Dm P mQ0 F0#BY:t mQ0 F0 Ȩ(e] 6@װmQ0 FлL軍^fCA@, +\mQ0 FN#A@mQ0 FD``mQ0 Fu ;nx  FmQ0 F(```7$(WE=X00lmQ0 F(>>>R Gjc mQ0 F( MTYI2mQ0 F( |||x ;]@]A.@׆mQ0 F( @/ g,ķs T<mQ0 F( @ 3@  mQ0 F( Jy0mQ0 F(@  Ke ZkCmQ0 F(Rz%%åA@ mQ0 F(zİ-8Gb/mQ0 F(z%ZGtbhQ0 F(-[g``X3 Z`#`Q0l3 !K.*=F mQ0 F(vg,FcdmQ0 F(LJql mQ0 F(LJr = mQ0 F(1!U ԀmQ0 F(q힁 mQ0 F(S-mQ0 F(z%@^mQ0 F(PCn= pQ0 F(-[```Xp'_x`Q0 A}(&w`ЎmQ0 F(xAZ6mQ0 F(Dy эmQ0 F($-]8 F(`F_(8`Q0 ЅF C mQ0 F(CDAmQ0 F(T>>>r @mQ0 F(T>>> \\]8 F(`Plٲ*Rs NS`Q0 h|||xs~mQ0 F(tH`Q0 l򈁁a 1Ap~`Q0 200hmQ0 F(mQ0 F( |||4 #]0 F(` 0زe e We'`Q0 ```eAmQ0 F(0@E`Q0 !زeȴE!`Q0 9N X2PqZmQ0 F(CP0-`Q0 N d``JY`Q0 a``a``!G?mQ0 F(Ch30018-`Q0 0زeU I`Q0 @rZ`Q0 ^9r_|`Q0 !@Z$(MmQ0 F(@ 3-`Q0 1@Z$Y`Q0 F.4e```Q0 F.p`Q0 F `Q0 F mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#BIENDB`phatch-0.2.7/data/highlights/curved_up.png0000644000000000000000000005154611346363116020511 0ustar rootroot00000000000000PNG  IHDRx pHYs B(xSIDATxbo/?꧵cO@mO ;hcOn>5̠ȍbQ0 F((0Z>Q@"` (#(`Q0 !Vo("G1`Q0 FbARaS ƁaC9mQ02b `4F(`q5 F"w 57P˞Q0xhQF`0Ѽ= "0"~() 7 F("@leF<B38 Fpyoh"@,= \Hd B`h"@CK `Q0h?BH\S`Cah؍a uJG0H+0N, Q0 &8ba^?Z`C nM0`4 e@F&z匁 F``" jF+@`$h%`4Q?d^j5HC9~F(#"@j7 R9 e 41 F0 #hQ"u @'Vz%a yH 1 FH"@I!Fʟ` pG!|h s|0=c`pM, PZwbhbaM""VfFqxV 9Ȁ`EFá~-F>0>F^d@jJʟ`0N h38`;ipPFDI0@9N;FGP x~0I0@`B`(\0( M-0,"@iQӳ?XGz=?, `8 FC!""@i=h~qC0Zm0fAOlr-`HC= G`4 AF9Ȁ C p0a$H5Mch 6@t@N&v?z C n q9H. i`$q蒿E\fp J`(Pp#`8 s~+ILv ~p#]*%@UԶsrph` ?C9@iS׾z5 \A  ?C9Q FBR"@DE P`^#5B`0!F2 ? <>ȽbpȌ9CZ`4Fba_aBNʟv+CQbh' n̍bp( s*90@n`Ңk >a0d C ?] 0l6@t0*' ;R!C8 a`8~# 2$`(F\`(X09V %rppBC5X >0‰ nۉ*"@ OGj@:T >? r8eJ"@@GOzjWf`\K|tP 8n6s`Т0k0JL  `^N䂡#P5 90@iB,@{  ㉩ J;ƀ`(N%)g?zih|50cd hC% 7ٍmĂB%G` YR ļ?R0Z0TJetg0M, nNir `CJp UZʟ,Zp0AK0O-0aPv; 9?f`,UOK7,zR>T;C 0Pv; :?@LGI Ѳbp*_`P7m"@ LϊahT[( QB`g0a04p6 qH){8bK=@m# M*4`q{e0ϑp(Ndw9X+zC0lr054F?5pzLk0?@ Z7Gڞ,?̤?5Pj F!`b%CI'0gEV?9z=?v ły(]0D q0 \ϡ#ڍFHi2\+0 г?> C3?@T̕?5m0UĂ41a3Ѝ j1j`:00 7dL@T9f  ?1`tz`$Z` 7 !Ӎ PhWS^L,LPY14 t瞩o*:O,g0z|T0DC!C Le.0n=L^p¿寡6 m0T!0W=+~R`M1T™R0ڰ&ba5*~r+^j7C/%e 4m`0l_J?5$Psa0dDZz! 70 d"P v#  bCCĂ*^a`i 0Ccp-"p JGb? 60b,`42`H3r `8gV Rs'ƞ԰o^ 0CG )C"-e`_^?ft0 zm 20CŝQ :V:}(UC}X0zp.*>0`']"0Ё2p򧞽ԲsPih=:2҆" {A r*bA4aU:-I5?2:O:,~!he0TC P30 0t`X1X*kzj`t L j+~bB5 N! 0h-"UTz@3@-;ka2zg4f_Q;w{iYwR`\@h> pc!@u`, ?)` zԴs$V@CiX^ P7 C*f-+2O,1e5͠%.C!(J00P/h]cP"7L"bN` 41`Ye>Zn?P_`8Rl \І r{T5?X?1`(-  vp MR ZexzU5\+l`Ƞ1, }pXʎ5w$TdGj0(CrLF)27O@G^3+~Qbp[F Vt QZ=C)m f` Z TV9 pOjR j֣v "0X$|)wW* 0zb`ÐXA9b!GjG=z裥hUj5Xziv(e`1fJoɯ Nh'bP¿S %{zա P10PX|53Pw0M3)#)M, Z 9}$WpC1hS Fƈg```` tzW ÿC4k 4pLPW^ Ȣ}c@CĂR~0РW ,0\zNv`<2*~]ybwCbSf05"=Cb ? "0"eV=?`jh %{j JStba5:^k' j5z pP,J#b`30 IyX0*S 8w94TPu' XRsF+&f^`Gk`*imPq'NL x@{O  Cp P,, zA?Mgܴg`H'c'pR0)nW9+~rn̢tР=0"`/E`(2VIM@`[05lS<h#z"0w zB4X*ZX0S#c0vܲegbZZ&G?-*2O/0{W>:O<mdr-[~1000Lh(2>hpJmv t| $V3000`jN!rNjc0' ?`4BX10 d2b.gޙ Ic@W}U 0 #bN~ ŝlE` ^o(V8SRl.[HY7 P`i ^nٲ3.I"02! PM٢IpL=?La8Ћe`A-w>۲e7| -=*~5Apéb,~ .pEZeNc@W>?zC 0к͏({ Z&Bj?m=G>zZw(Ũg>XFh p. zPF+J&lCC`0PA0*2O_lٲ P:OIm蟞fP۾L7Z7"K< -ޕw` `*sT=CCCc(5*K>,aFpˀt/9U`[.g`|C ?¿#lvQк1vB]OP;O, =ב: ' * Z'lj%ơ'G`ia?=+b5 b0| Pr`d``xD|?6 zd8z/F+c,P"`0,,&,J@~, zG+~pG [|E J=jz3/9ߏ @ b%%ǀҺáo SΑP0ڈ?,U`0̙10 ~r ?{CGNOhJg2j"0X*w\` q`'U@VC}0U> ^P! E m˖-i!baV b+~r0IUOjIyva5J xe˖7T0$,ICel(FF?+dj5^`0U܃eX^ˌ? \C)J R30 L\}?yf&m`\h8\{C\. +l|( ``(U ?fm843ԭ 7 h, 8'I \8nx(Uѡ?`9졵ou@x[0{5*zoCԴsO>LbP22pRe`p@/?)`8T1OgCO L .SI' ."0/>@+ D:XIC4s*:?IW z0T3|?6ba@KP`C-+z/(0X [@SZJd2x9,Cg`a򧆙CԷs0Ur00zPk 7{Ht9ϟj zD`)ObOMGH_Z`8[No t<ϟ 6tG,ap30 /CB& w?1`( cƠG L HN|؅^~r ʟvCC %20 `Xd#}@@0kHeuu蟚vJF+h_ H_ru`0$x%ъ??yvƅ100z\0=006st0ZܑR֡X L~e[N00 JfQʟ|CCҦ[S:HCvLNHg`o}>oW0?hOݴ{vF{.z ~R`|Za+~J!r?)`WC?ʡx:G`e\30 \0ZSj7)jGҼ?)RNj7]F10*v|nLÚkh? FJoFba~?hO @ʟƬ?m"eRCg`i+^::O2k _[<}c``= z\ R3F+?VS jH ` ]-[<"Q߈J zv9TK+3}=zCĂ怚zqju0x G+1p\Go@y 'QPap3Zf?̢ xjJat{5g`sO .`Q#֬' =G] zfk *~ri놡Z`Z7\{l0&J *coa)ka!*mP[Go0 h >P2z ?9`Wu蟚`O}4 2lI0X*~'V`8dC?¿Z!ӳS2?cXW`T耖 l0tw\;s?n.@wORh0X+u|։揔X}C~Y(jL{}tba9)kU C %Gt?m̢Á5p˖-d(@ k p jO?yjBO,; ڶ?zJlٲ3 H 8G VJÐ?撫~0T0zi ^.Xj J,0p?vӲ @.IC\  NT 0ZSꎁv (5k-0}d -2*~J,j?)` ??zdw)W`0U`(T00ԆI7Nd`Pk9oA 0+v\nN?%ʟT?ibh7 ?ba8`$V00~RVqH\GϑjV^G_  kh٨?{ ?1 C7 sC . zB S=?݃R?5_ ? q _P30Vt@m3@5Xz/F, ^R30 ^?)Sg' å?5+cz/#׾^0, PN@ʟ ʟV` +?->e\;\g`0'ZoN??v?R`S.z5 b``e˖tv(=2`íOZ7JC?ʟ^CĂC)00ЯL ?S?钁_3d_蕽,kh9T6н2|`Gʟ|@ij= ~200cwXN 8sGʟ40*\7:O4># ^0+uB`U S30V?)`V#afGpba8)^-|[ph?Or@7@C}T;GLkh]VG'X@ !I~ n HܴAaxɱk'_- y=?o` lJ\Ra`C?n37  xiVbV7 cO_ѓFL R#Z/I?a0ܶQ́?300\w`0VȀ;"Ha/%zG+`l|_ D0AVw3FFOJlG FG9ba8)`_<+~J^?hOk}AP0z(Lkh}`X 'WhOU#vKQn :pU Cg`ܕ?G$b?X_|F <Ƙp(Wא?9F 6sS{Ý-[|`0* r_[ޣ?}lCj?~c``:zv(l R#^Sj1ZF+9O, Ͽ SZw`0V=2`FN\}?@o3KQ@sF`TZٔ3\*~'Ǟʟts?.{100\ܲe"bba8j԰k0U1{3Znp1@O`P lkhbm0nO?  ,[oa+~W亗 ?)` GG >Ȭ7GcX0{?J P30PO-sF+y-EaQ0l 9s0ZkȟF++j? A Pg`zh?2*菚 AF`T-1Z\g' <("ba>8V >~JV@W?1@V^; lkh *in?nB?rik@-~200=g E ZjУ73ZSG`30ж, ʟn !  zMaJa`+~JVāT2?Z! j zWל@l5`ɵC1+Za``e˖$gA  \HυJ?m0m;? gߐoA {e2>,J7؆Q?Z =ѕ`XI i`Cg`RhOԴ𓁁-[QQ0  T@0n?G+@KXÖuѣ{GkY c)?9Q/vS? gn# j P#T30 aɱgVi_ș[F V#z ׊R3{alz.{G/#`ుZ30V;3Z!>{GF`U=ʮR30 ^?hOٴi ^27 F ba~8ޫ}{@=7c`;ph(T0s03 FVkh jk-n?{)3{^ъ KkG+~MϓG+&^XQ0 N ppPFvOzH?0; FI P#zgV ~jɕh2 V#z3GzOʟrw>0G(`ు\30 7г'Ǿx@(TV`U3{2k n~WS:?ZQ@eη" {of ^?ȭia6%V`kh CCF+~ ѺQ2*7 G() *>5?zLCĚON?ZQ@'N aG+׊a׏ %葽` R#XS̡Z30V]nG(3 X.PU C\?b``=ZQ0p=x@[soahW ïO=U?bDG(T=75Ƀ@0j~rd`=]306G+~T0ɱ Q0 h kh R30슟\{5:1oV` ^ a֣,õԌ^?SbTl2:8 F n PPF+~J?=3@h(` Tz<?~0z ã0zN(C XɣJrO݃O=ToٲvQ0 P=5ie`)5g *~r'}HN` 6V`(Vz/d}íg`:~[d``Y?oaba79` R30슟qFWQ0kh Pݣ?u?]3oa) Ѓj>F{/`8 P=2Z o` 200`=o  T4+}j5P?%zJ?:? F(` P8 Ja⧖ޡ0?:? F(Pܱz{T C̽~o G(XV`VĀPiPw:0(baޕ7` Â1VO/KjaQ0 F^kh 3*}jI dQ0(hI shOat5(L VJahW sc˖-o4Q0  V=Viާ3?zh(* Zɣ^S\jP-rtQ@M=<@B0+~JEw`Zf`(W@\Ld?"ӼQ0 F( = DeZSj@G{`kg`z>ãѹQ0 F@i 32+}]Sb7J(`@ P#zF+~` d``t? F(, V= yZ5*~V ; F( ZɣP30 Ы=hoQ0PܱzCg`?)gTFO` f`(WĀZ30о}oLQ0 Fba79` nZ0* F() O-h9q肾Q0 Fi PFN?:? F( T30=n?vwuz|OGG()C#h(V60x]7 F( PPm.%=gQ0 H T=]?dѫvG(L X#J&o|sF(`* ^#z_D˰ t1h? F( TcqPH #XO=`Q@;=t0P':|?Z鏂Q0 F=?Z@\e@G( S te@@U}FWQ0 F PP_HaDQ0 F(T T=\QN1Q0 F . X#P30 zG/`* ^zz]=d=gQ0 $ Vc1Mk;vCgF(`hv`8T@iӻƀV|(` ba6%`+=z؏^2 zo`(` S tea1n` R30-J d#7C`Q0 Zѳ_27 F(. Z#z)t.h/Q0 F2J V۽ s`Q0  V `Q0v`T@d)dt(`ba96%`* 9 Q0 F(" S d%'~q7 ~}C{最Fr}`JDpB?Ϩë"f+ C𿴋FX|/#HFGj!k3å8_\7l)`Y-etpngv# ,NFKH%-8[c熳?vFb;Ci%8Y<"i)u8}d.j ,NFKH%-8[O ~k>uˢ,NFKH%-8[MMڶ x8T8yψ_V-On7$RXX<l$>{۔g;cُ8ɾs7w{p7\g? >-etpngnBQT!~2:vw8{aIU" )vӳ(E츃q#?nb0v⁳?8_pv>0}ZW^@ gv8y\nW .si)u8*lmw,},8!agv3:8,Jq/8!~q~KYq_tAx-eQLd8={F'?)2|z4"-?J?3 ߩq`=gtFP3:oj)sb EbAߧ~mǫi e _}`r:g{&aP&~c-eQ\tpǎ%8 ~c((͈ 3g{u9>v@3JBaOKį8hFCaDg?We8݃6 s52x q8? Q(mƎ%8 `c(I⅄ o| wOgSԠi U{@ g ~!~@3^-߄d__w$,V#g?ހ?_Ӯ\`HWvKP%퉀w$ gxu~ g\~8b]4g 8c!=,(͡p'g 88Л$8NgCJ3B8}~?>`HuYf+Oű]9LOL¶ =*~sg?ٗ?DP߀ ~YZ[ē;"YPaA g>qj7Kj=8m%Ew V~O1X"f5ZKR8}g_L@q9O<)py=gQpUjJ4 b8;+iOq!8ӂf'eKg@{΢˭:(M=YI ܵ8Dyxp`k-{@ g1@$uj0[1gJ3 cHC u qI`HFp"![OF(:8 "-g9=gQp^,? ~YkmqOQe*΀ O'~SpI #~=4"9|jJ[?K_O3qL:KDgvOl)l0U҂_[z$ g?4^>% [q=gQp)nXI ܵ8DrF&9f<6O'~SpIEUDs1 ~8i>/w IfH @NFgk+h%"O/a g"h0ē{g?9|/'ٯ!`˺]kxJ$eDDr_qZ s I]y5?e~3w I_3GYwKgo4ٯ-N1rFg?EpO^,n %@{΢A-|  ~YkmqOQLЯwWWIo~2 ""5Jpy-v(ͼcH^cxƿMB~>͐0f1X"8pg J% o4~)!&"kT)Q(?JZp&S8RO JZ0e]XE 0 [T,,s!MD>6fRր? ~YkmqO0fq_)R*<qZ s I]2AD z }^l_J3I2ADǵx~k8 p a8ͤcH <7|e20췑}ٟ4[g?׵OM?%[T,,?O"K hb8g}=Jd g?t I2Ab "{Ԃ&ߗ~SIDlQ;o%2~.O&V&o7߿ǒUI  ˞Eg?4{ 2A Ew'FpZ  \$yqNB?&~>[(iٯ1dH k^D.~>_8$#?riߥϗJZpkO<~'ЏU\gqigL g|?GQ^:~ٯ,,g?4{ 2A kV7߿"8~2G-g#dRWykomqCiCt"I&h{Mp~KlCcH~b{œ쟅Eo.p fQ?}p? , Ɍ%B""M,¢q%8Ǭ35v_.hP~3 6H ˁC[Gq{p/?g 릸OM?-q"9 5oOwJZpkzcA^dI?*jC|,@L ~Z"_D䃈(wK~~]Bc֙7Y ߿~u s I]D8׮EjY<,@,I9_D/" ߿8~L,f z[?k1Þxj _|m)QIoH6ggp ꦸOgkJ`8m%8Ǭ3{Ҿ^tL 1cH%B~,>_g! д>KDg?ri,,FڿpDr3%ED~_'?ٯYX\д?=:Ȓ (8gwn3b?~Z"Z0U_΅eˌ_g .!?fyr7;[<2G-g#d|rObof_6ٯ1d`H/_{Mh}f&@8L~ߟzYt}jz~@k1Þxu}$7g&jhL~S,g?DI$#;ϯ_DW`w|Y|˞g~]B:3Z쮪02S~\gBU+ Gqʾ_g g?=pT^{YR Xp3gJ&(,{4(Yov[J?: 1'I}4.>g~ %2~.@D-RҷXO1,,,g~]B:qD= 8̧SfplDLPLy8 ڔfKoQ2^d1=w}j20gJ&(6?UF`% ~`?4aOOKD'Y=ϻ_ ~}_g .!?fѾeIu^o~gM8~r6"I&(>,Ou_J"KB8zT=U)3~cH~b&~s/AUwĦ:8.,s~ hÞxޠe^Uwᙉ"8#A;yZ"V_d)FQUND~}_g .!?fu}w)VKzwe& oHz%adA2T3TTLg?g $ Ae]U{L)#^f"9 GC[zP՞2wY< \냀ǰ'f_d)d)wNY<,oB$τ:?b2XWՃŐ cu !1pT&;U=X L5ujIDAT%a?"w}&{Tu (Y<,@"97B&(?Ӿ Ճija 8D\ Y*z(3]jObų>(i {,%|kXU)3Q c?~Z",՝V.YXX8uB2Ac֙?PTu{ )ُBJIToʠFUmϤi8&cL$=*~g}>5Y_f"9 "~C{fVDU!3~gaST 1' Y?Cf⇿eFU!_$: 3W}pxυHz}# gד,5; : )S /2Gz%adR3!6hF%"I&q=A3X=jfs?'8V; '}" 8x5QgP6"c?c;= GV&U~O3,,\*#["z?5!KυHz}# g:},v 2iaqP02Aq1*wh f߷s! :KDL T>TER^ Y-DR?KfR!~+`aa?9g*4!bp~UeeD;*/["VpD!bS Y}~.DLLЬQFTiC G-&dbpr3T̰ W aB-Ct"I&(%ٚz~RRCciL$<M"(٧|i\p%TxҾʲ^g>[UfA9P3A>:UTufx:cyi^/?]D9VT*k/\⅄׏ A;bp{1͸cN$#?}YUPk/^f@f8~b{uOA+"Aa?cg?C&h(S3*Q'GfbREpG@['3 졸N ߥ~ˌ_g ? Q8[3?YUck$EiُB 8fF]O鿗pOFQU[7 df1P8?%QTæ/9ָȲTYYTu dk/VE~.c# ^+Pܧ {fe2%B_ )VPܧb=(^f:cyT_L>(*w@ jBLl?[sGb~8]X~; ŚOU4Y_{1**su 9YQU5}DizoݽźL>كZ~: # ڪrA8~,|&dzpI~?ȷ>3D jBLH?Unán~)w 3g?U?|vAu_8zaiUT8?2A[UsUMql~?kP~K;7y+VHqCك"8{'1(K*}>9H^# +>YY"3AQ6kDUa>t9g~I㿘꩙L|f ?e 3g~>Q}>0hfK/~.~@{&ɏwjPg_[q#g?bdٯ:QO>0}|γ߿ dOۣڢOUMqGكuύ;m"v8gT{ŚIUSYV@Sq=tSj`Ԑ~[G\>0}rd&l?d*0KJL/SGMr췑 JޭўO@d _gofb:c+kq~J"?vʽ97'ueRMAfjYnw{(gɣ-xЌswwAɣ|Pޟ!$>n ĭZpz O\GRnP:Sgw:6M~׿}>Y~{h;󿟂˦]*!ip8Ok""DED?oy>ʤ W.sͅサ}˽^ Uu޲j&S*EUixwBرrˋ|K-~xH\T5}̱'GfAU[~b>d \( Ū $>F  a>[UMq@(h̛}gw~'}|P)3JꟸRgxDVQ>f0)\ʇl}<Lf TUMq-klQ܇CP(TuVQUS'~i僪d|9)C!q僪FB} R~:bN8g`~m\y僪 <LOQ>j0 ɣbCb? lHy@(pMwG :owowx?EUǚLEqQ>jIU+}|.(T5[Q'3|P|(pCQ>H H}2{.0;ɣm1c< QdC<>,>7~!:oc mPܧwBl?Uu"Ɩ˟RgOp@|~ِH)\ĕ>~/|PaؚA(7{0@l?NgTuyQ'0yOTuy)c#{0=(pNgug}'}bNL(Tghq~ >|P Թ9 .t&¼ʼn-[^O\@l~ِH1(C=1EU[L>qs)e!y3{aʽC"1YUSǶڦO:kfAOJqQ>H恠P'Rg!3A'|܋K 8Ɇ0o>dR~ljkUMqw_|Pkva>>0)꬙$>'i!u޲<\l"1dC7wR)\ĕ>S G)[칈LP>joa>AJp:7H X܇|E4@Tuyˤ)_SGa<Ebr'}rjY D!(TuyĘ:ǁ?{|P[ra>8G 4ocO\)Cqs|ȆD73t< Uu޲$>> gxĠت>+ O"1j- Jq$ 僪Κ@P(p({Uu,~qυB@8Ɇd@s?PņJp: ab}Pݹ0_ QU5}+V3. |PY-;0~VUu޲<X)dUMf"ɣOOȳ UMfAOOJ*%u<\䘋APdC[آ7MߩM9y}AB~tjy䙋-8@Q<ُ>N DMP>꬙$>>>AIP>꬙,$>ȏx~(@![ GqKq}jA(C6yc}'q<C'@ᢪ[آw/Ca/AUgLO\)Cqs1 (T53[Q3KP>ja>AOvr3:A(@d'?^W?B(C6$eRZ{YܧZ@IqL>cOM5僪fbf?ۀ롸 G|P[rWL1SI!u2Ŗ˟R܇>3,僪 GqX5yib !yD ?)I0oU5}l(VgX&(\۪:˼eRZƓ*#ODϛ%O\ǁ?97}q{)僪 g1C3>b! dC8rˋ|(x.<Âq8?AEq8 wpK%@1EUGL>q+Pg3l1jqOa EAUSǶb|ȆXx }|}8M</:Umz (I*hvo{B -~qSɏugثʇlHypAB~t"3,(TuRYUS'b0t{{+'L<X=gpK%@-[va>>+}8gzSyi }P[cƓPG!BqXLx5\Ddf 3gEUS';n d&gIq3zN\܇̄9;bc'r ˠ%ALʱEq󊕹`ˣ^ʎŅ>(ֽߙIU+}(cd.xg!pa>I}b-P9[N0|( p9̇>dV>_:,.+a>>P܇gXJ)>p>uߏԞ $5gK%@Gآ}e?\[&@bP\^zU5vWP\ ;KM%@XIUSϰc< %bYT Gq .>&S+\m?CϪ>Ֆ~K~xnHq>ImQ܇|) >S;)]S-DA~]=NF$?X+a>9HPȏُg^ny*a>9H}t7 KB@jub (a>Ng8aԖs34PXaa>>}8̇xngK%@D(p(a>sBUߏwOqsAx`g3@P(Â; @q34>p|ŚIUS XXk&OxoIGIENDB`phatch-0.2.7/data/highlights/curved_up_smooth.png0000644000000000000000000005771111346363116022102 0ustar rootroot00000000000000PNG  IHDRx pHYs B(x_{IDATxbÀ!K=!}C~Q0 F 7Hn>[ G0gQ0 F<ba}I(( r`Q0"(`d@?% (pGGF`tdcQ0h0 G Q0X`k}Q0· ?`j7(FŎQ@"gʟR0ha7 FqVk9F"`X"eJ{ہBC!NEQ0^F($"@JBg[e6C`dR;:Z 2 'BU*13 =z(` r"6@\HR8` G@U۲e 2"w^ !ĝG;0P`t(`b L`r`#qeQ0 0"g?)f02:_O=0:1 F(V"@jaF͊e eELn`(Q0 F0.5`ꥏ( hQ@U.fO @@C&`t(#t ТJ={áQz`A1 F@nMIO-;,FGFmPQ@#"@˭wKb ^oL]0Zi40 F"@ʈ?-`Q0 ZJc8Q0 V>b@!R!\Z襧< (`A1 ba}aD0zq_o<Hm0Kяa.lD^@Ce(-NQzѫ.|`(Vap awQ@/0ڠ!)OʟX0ze(dơFGPwHV@ppiF{0# PAA@NM@ԡ0<=:A=0:; Fqk߲e <"@^+g-C S á~,`0 FV jV9S` F)`8mёQ0,mȀV?1fSca er)\`0`(7;}1 9,?`*Gbo$yr˼F fb*J!hlaJa0UL-C!O@nBj`n^R; F{0<O "0Pb-?{ý  n]x7"WR7P¿H9Sx v0V6(H.vz2h' )`!;RE2:`4FpXmFy`iݎ^`r .0K&(̽v+jC*?iS!=B.Z%mf```FC'dP:r0 7z( "@E^?e?5gP@ch0(8"u#%ѻa(p8TRZJn%hÁr@(3ba1*'NZfC>Hm0;FÞ.\?3 LZT %R `aOEg̕?!0нo 9H!F jL0>`t] uOn&-i ⿡6r E ? FK2$U܄;``0X$1Pϑ H"VRӪ'ljU#?iS6B.m8`AU f1000@Bʃ cp>@ he[)"0 ΁i}- P+h`(Q  mȀ?P`PiOLM;So}8W oC! 6@j%ZZ, QQ3[sOr8^`P!2e?vҫ' 9:0` LEm0K fE^?)ꈱYy zP:?xPp#`8dˀ5GNݴ&׺P k&!0`p`8W7zM3'n\`(5*F$ \ BUNJVRyb` UC!5L0܂ !0GpZU2^?=- ?lC}@d0*\86k],pZhe>=+>OK0>OqZP<[C]5Zn`U0C z(Th-]`cU@0D8w @5v-Ca!0`d zPC]3F?؆i:% b(^A+@Z,PVCPR wP .0*^tg#'[?ԇuK!{e=" FrVeNϊXh1 A iZC*^Y m05^VV`0e`zõ' DKk0Rޡ2b@`Ls0# "@/DO,PbH P. S6`& ba?C=+|-@?-L Pӡmaz ?5h::9` }0Lo t08:'g[ۈ30 ʟZ`t%|j聁֨lSH nLn (eځG9Zg`N=A_ 0?+CLnVu8UĘ=*bp1\iSC0@,2# "0T9IvP [H#LB`0Ӄid(̍LR;Q30Ph_z=kta$ FsR*TAu ifnˀK!0*z-Ca(Uv@=TSy0e0? /d```w<*~bͧw?Rbi(qP*f" nju vs?Vvl0 fޭSrt zfPJ==)cCaTl@wC'Ekw= `A^ZIϊu12XB,w948Z?`0D*#zf0r0 u%I]-{kR"V`i=O,ñO+0 mzz}&l z !ԮIQGKO-0@Q6>{܃uZ`0a$+ 8m0WԴ; h\z7*PTý5=E-hQ񓪖XwPg7*x=F{N0:?Z G`БJ^?;RCqKP3`kT )!v`(rKa`*z,#{HQCL Ѐ& Q B`3000"@ N h'U- ʟ0CĂAIC8e`X8a6X L3+~bͦgOϡZqK!)je`k $Ps hhY񓣞a *?r`=*fC} D@^?-jw He``#`WփaW^A00*ZVЃ ?pJ|o JPkPh=?\{W .0ZYS`zȃ?>@hX ;zꔀ` 3? hO^rpjT ^Y ,(XKO:b?5zy-.`>`t94  j@P#J ƻd0{pSJ;T(-L )>ZлVQ 3-{#?m/=*J#l10 |7лL?`O;{G0X?W`0 O^?)HqPrޟX0JޡRu3GĈE`R/ Т'U-?`%@)gÕZyޅ`멏-j"0Cۇ''1?Sj6%zh8%1w9 FbaP0V30 ^?Я?`n4O?У0`}PֳL!QjhOYia!`a1CQ =Ce86=MM[0+jp ւm09`t6`X3000gVd'lz Փj@ڰ9:?.?'E`ƊapWZ?RG{qTlvg"0PZK늟0@JxWa0ڰ0Pi9jH l1kv0Im&'[9ԨG{`?t=Huh=EF00*z- -Ij`c*>@5PzU ?9v 3( `ieH:RF3wޞg,?)H(Ve0g..0ڨZf-1U`pk5  t^7lfJzv:.@iRx0V= G{zĂc&U)' *o` Rs`k< ?$E䀁WO]?fca!v?״K 3JKu35 j&́'U-nL̃.b`(5{8)[9*4 j@ ^?1fRW7p`l=X|`8-  =$ R^ _?Sz``0I Q!m&=wօGET00+J͡W#R;C?P"U@=+~Q` F{10$z42,"0Z7g`p?ja 1ޕ?=n! uHQ1$̤?ba:!@̀?hO]H 7 2 j6H,?- ZyzOz?mp6L, ZhOjPV:@ NjMos?-@ 3000@hZW䨇ʟ0Xhw*jJ`Y;1$.z)k>-[??bbm "0i bUSb@SXzޟz"ZW? `Jz B 4Oí@/٣`( ,]SKXGJO/{?`-|`tmIj j:УO=?jڂ] a`Q Z$^04+~r1\+jڂ4ڰZPL Z&P=Ig']Ph PUlAQ= Pj@UM@XԬIVCaޟ`FBJPzP(4Xz uCO ءXb-cOeޟ Cl ?1`0;RzqZd"0Xt aUeP' ƅ hٰD|0`tӀT30UKM3(CO+0tJIp'zF*A'C=Ce kb$; g`ϩ?jڢ?B`0Jk ɷVw(Whc$c05@˅ƒ?o6 Z$LZD`Os?G?nSPP ?* ZDiA?.Ă!Z=81+y| Ze'Ş'VHg{R0݃`= /Y30зg`~bʟ=Ca0|`0ieiG^<:uNJF+zGPl\jMMqFU0P;.@Ƞ0?hSFBOM0Gh d/CebaH$g Hc`GPhƔ=xsL%5z8-WB ^?9fӻ' Sz:'Oٴñ? ġZ30VMm;SO, hi@-xԲJ` ȁM v-\˼`_7X.j' 5G`fBwOO\tZ"Ŝ>4Oyhֿ60@5ñO;h Z'NzrM~zWԴzޟX0҇[2X z>53PQ F+I}0=ѡ|`0q<W`5 Y00\*~r֐?T?iHhXЪ>N#VO\=0@^?O {[?g ?hʷPJ4`ɵg0ޡZ ƞX;d kHCǀ apuhOYr@-.CT0:râ z0?%v |?5?)`0S1P,-HE% z`Fv0ZkH Cl@ Jk *y:W` ^vӻD V=Z oO?sJaxWUFzޟX0\3zd44*~J^?z]ҳMҙ`(c}G kH97GpI1D?nE gO40ր  =F'|?1k39O jV`P6,[, Ci;>@}ȟ]E^G.th åg`?hO ;SO-#}蟖h0T0R'LRVgC5Ca1,haOFR?G lX ?,khcO-3`?G+IʟSaam1fzO?0X. Z[0<*~R%E@2Ε?i`0.`P6,s ZQ+⧆KX}?jGڼ?%`(/c  ze6j&P30 ΊTsI3CwUe0VЃ g```, hUJahT O;F+E{Fi F{# g`hé' Z7NTz54j15.hylX?02.@Cg`Z~r1X+X( ?C}ր#C5?baܕ8)IKcO٤W;:O Z?,kHX30 ߊjݏV˼?!0v 呅" zE=芟sFBX=ಇ`t7sL ^30 9O#'K#sFPlX(g`0:=0zESi:~*Z`#F?P?}OY<^x{EA5+jU Cy`0o)qn_h=GFRX=5}蟖S+:LkHa'׼g`#,i! iޤy?en?)`8UH,e2UH3000L  'Lr3ZSf`U)Ey^T}Ow`GVRkȟrO)S#^yV¿A Frõg`O~ZVk5졆9HAnh* GzOUAVr`0o#Lkhhixk08zĺc{ĨɗGPfG< Z8c@S}åCj0?ɵ"w! z,\ wpP30 !r0PPOP+catr0Z * z&Tz$HJI7*:OZZ3:O<v F{l jD T3؏sGr?G(w`$:zҧ1zĚ=ZS.bnF`T#?9擪o}ͮ2O Q0Hba~6P-XE 7 a`1wU4@/ޑ>?$lkHå'z w3`7 ʙ֍<VJ t`1k$5ڽ~ZKʟ5H(@Al g`?zG+9Q҈u}+~RzHw}ԬUict蟶`O ZG<=Iyi$5{_O yZꅁA]AG zE`)1?CU?Zop,Cò? J zG68?+~R%ǎ؏ZV3? O {jOE baZ8)`@WrЫO]#uȟʟ0Զ  uhOCk!!P ?^?9nIe=GGj P#XkpI7Zo=GVCO-0ԇ)6O g`z?c`i50+b` 2Oк3 w hP30iᎁ'~J?)zñƒTARPCV`U`أ?&PhO[KO(` У:+}USj`rȟX=C,` ѡQknWʗZvc`I5T=CaX3G+P'F J\i($bO!IsĚ7Ԩ)Z`t nE;doZXj.zF+ښ7VS˜"G+@W@$=08zthOkr}V`E@2¥ 'EPYG?!֜2?Dbaz7`0$P30V0}`CO-0:? k% tE=FFOmI1wkm g`[??=i' (hg`?q6S õJC 40R*}ъ\CF85.4cwh TO9:onk`-[F{ w híg`y^?n Zơz5jȠkh J0F"BOgP z5Xļ(<) z%Fj]V@iQ!bjT̔b0< z&.ZUJa`4 ~qhO;ڊR=G HHZDK\;;5ڕ?cM N0\El:xfVG|3lG{ zW0@=*}J?n'  @$z*~J"GHn}Ę3l`ܱJҧъ4Ci?RݡZ7{F+aV`V@'\Sb`~Xi맖#b9OF+#֬ao?4 <@uZcHn5?qfQÞf`8'Z.̕>1}?u)kt(`Iwh3a>ZS|r!bI3k0E-{Fk ^h*}jM9é'Ŏ'ܡ^YQEi zy0T*}Y30Vv5?=R+G+ 8h0hŏ CO;?-v?(*e*ڃV <ŐޙZ >fѳ'Uh?Z#O2*~ rT@$P30 \{KŒ?uʕ袿Q@u`@fj=ZVpkhO`ktf`VĀNõ'׼[~RghO=I20 |E S0Z FI3vVԵk)ZhXSb&jPkhOyC F+  8c0+~J"G?vM tX ʟ40` @iJr?z C5@yY[?PO`r?=O ?yjGo/Q>z0 4@K?JsbX^?)摢~}FI 7G JaD-n8S^blVd)=HKwVԵ G+%ּfQ@ z&rZ?CoQ@6 J#g`Z?h^d? NZ;\+}jM9éO9O+=,N썏V* @iikPI1T=50Zih? CO-{F+~~ȟX3G+Q0,=uXhOFj;F+ G+Qd.zhO_;S??n `[O}(  Sq@dJ?)V3s.(. ՚#'^zCnC?R*yQ0 *  4+}rͣwO'VhOy(0 T0Դ *LZ7+~' =@(qf`0WĂIF+}`8WEʟr;G+Q0$ba7`ejg6O=uȟ5s# S5]ҧ̡P30ᆁ ). i征$iihO=? G1* {@;7VԱG|?-G Xi\30 (Pj.zzhOY( v`$>Zs(T=ZSf`ZkG( w>؉1{ #'վVRh  S 3 JRzD=~꺃CĚ;ZQ zgZ0X+}WjhO;ZQ C§?u0*e/U˅PN zHޣw q_=a$W #0P淪(=r^30VMphOy(&&Dzh'|r t7jh? F Su@dXj9ZgPb&A(dN @e\30VMޑ>O̥{cJ P#ΔõҧD`1COG, VcmhOݣ~AكuȟVv`(T`tCg`m9zj?nh? ba6`e2ZgVzOUXu($,S9C Ja`z #'UPbh? F N qh\STAtp[O[Fj Aj@0?n ~Z?Z, iz}_$U7ZQ@! 2@JR3F+~`0U C(G+Q0wNC2"Jj?w0UH' 4,S 3c F+~l t7V`m hO0+~g`eh?  I tC&Bj3ZCG+Q0 n dEj8' z-@J~Zaj (T30VqǠe0Z, 9g`~X J ~r'G`za#=7 = Ja'G`U1؆F+=Z񏂡,SZg`e>zj?:? Fn \ɣ^30V1ZS(Tj T#Z ýg`Z?I?Zgh? L ZcCg`mDoR{)1cIQ;oAv`8UzdR30 lo\sm1?-0Za ba6^:G+~A'VMGPLS3sʮZSnJNc"(4m@@ddZIQZ30Cpi ̴Cg`F+~W!r0#  Ai펑RS 5+~TC(f &z.֤roa`ni~RG("L ΑV30VĂ^?0Z E`8ez[2K0Z F{qbQ0 *  ju0)1o *~Rl?iw(LSХT30Vs(P y^SbhOa Ag`|>hOZ`# L Ce@0>ЩF{v|(8@ FROUchG(Z5:*vHIQ;:? F LSZJùg`~? F ^#ZDCҧV30(4 TR30 Ja⧦Zg`G( l \c(lROr^~0)@Fh? F&E`U⤀X30 JaV;zQ@gba6%PahO0ZQ0 lS DBFpa?%Vh? F~m*0h9 3*}ۧĬ<0` .h=B/ tO-7Pj@a׏V` Tc=;ZC`g`~G(  鵠n>%V`l {b …ZvV=R+~G(  8@ﭒg`?9zF+Q0 FI  ԙCg`>%fVG(lS}@`g`<}Qjh? F0 @ZԶO=G+~"h? Fu TPH ҧ܁.' G{` l \c`>30 lO^( 80 \30 >o0WQ0  ւVJfG+~G(lSCBOzj'&C` B Vڽ@WQ0  ^` aV ?-eh? Fl Z_Cҧ#'Awh? F 6`§e:c(TQ0B r@ՎP30V>lh? FlS DE-#g`hm`,h}&6+~J4T*~Reh? F P( Zv >z^($ VEzZV=ZQ0  \xJs~adT$7ZQ04 Vx.ZSw oJQ0 (U`qq@`F+~B`? F( =;zOъ G(S.``  P`Cnъ20ZQ0  ^ aT h? F(  0ZS ūG+Q0 FI :` p_L4ZV`S T:P5{@a~F+Q0 F*mYX g`ɶ`` R0 J(` Vte#g`G( ^ ʞ6aEM3G+~*?ZQ0  X ʞva8+}JV`!=t0*zd0+}30V`!=7= aVG(CSCZCg`da`P  T#z>`` + ZcCg`>fV`a  Tc*ie=g { (`U`Wz䴴k(T1 V`zba ]x a+}ъQ0S TaMk{RO sF+Q0 Fm]8 aG(`m |%rHF+Q0 F(@) X l}ъQ0L PӍs0U (` ZhjhV` |0P~mg`G(, ? a3\*|jG0G(#S 2 Ja? F(T) XPʞ6a3+}ъQ0 PFj0ZQ0 F \ʞv9+}ъQ0<e`ZPF{`Q@ J0+}ъQ0rSCGFT0ZQ0 F) V#zTLa>`2. \zUJ#g`G( Theh? F(Ce`$TzW@oHT (`bai> G(SC dECkG+Q0 F(mb=4:? F(m `H厁G(`I Zi]C0Z鏂Q0 F. P9 l/a`Z \ъQ0 h 20~훣(` a 80hXU (` $S2F+Q0 F(I Z ʞa`. R ʞF6Z鏂Q0 F ^ F+Q0 F( @9= ,F+Q0 F(@< 4.G+Q0 F(>SCG4G+Q0 F(i X# Q0 FUN ^Tģ(`L VtG+Q0 F( e`$UV(`lbaiG(`SC h;ZᏂQ0 F( mG(`P mAUV`Q0 hi A[V`Q0 N !QV`Q0  !]YV`Q0 + ``Q0 H0ZɏQ0 F(NSt(`Q ~Q0 F(6 }Q0 F(  J}Q0 F( Y``Q0 /bܼy@aQ0 F(tbhQ0 F(mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#q}(-IENDB`phatch-0.2.7/data/highlights/diagonal_left_down.png0000644000000000000000000000647411346363116022334 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME;8A IDATxne !D" `C;\H=]4H[d/s#@ @  @ @ @ @@ @  @ @ @ @  @ @ @wׯ6m`/`$9g___?q 5m`/`/`/`៸ 60000OC ~t p'~ : 8 8 87P{`oO0Aj_? 5m`/` 600OC ~t`_??`/oO6`o 6`nEWIVI6I%0{ I~:u8ɯӰ$-{n $7ٯI~Jr ;k~C`ߞ\_OW/o['yf7þZ 3gQo5 '0|nrwgoNݙN]{+[}KU/:*VIw#h=C:_0_[4:2\ Z:зt::ɹ4u&#yN~UI~6b_oֳtu~={o/6f_:_m=;h9~:($Zכ'|p~|@;WC:̣u gӠY#Y7||@3NݬJrX:^ch( GI~f=|@Cίg%y3$8@/_~:go[O:Q/ Z/ghʾ/ch(u>:ɳ4$;@_%u>Aެu>yQ'yX@},u<|@3\e^_'ızyzpuohfίGA<)4:@/ίYzy[GtE_7Yu~p:зWuxfMY(*9@@_~:'ӕ}},*v.:u<|@@3'?Nrbu> ~u<|@@3'_#:̃o[e`ΧI|:@~|@;2 ^crrpuo ho$y|@+(*3 u<|@C_gQ:R4Tzeg~:u= $7tU__ǻu>[Z7||@3OzU [ ZxfW^&yX:з@4ݟEg Lu?ki#y?:Z@z0>ublqe5@X}|hӐ_e^[@8[\[@X}|hǙ_'uFpy_ηFp?OoԻu> _u> h'0{? @ @ @ @  @ @ @ @ @ @ @ @ @@ @ @ @ @@ @  @ @ @ @G @ ajΎTIENDB`phatch-0.2.7/data/highlights/diagonal_right_down.png0000644000000000000000000000643711346363116022516 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIMEl IDATxn'vόÝ#&D(AuX!n̼lv,9bn= @ @ @ @ @ @ @ @ @@ @ #@ @  @ @ S )@ @@4*4 8D4 M@@,@4D4 M"@@p@@4D4 !i4M"@@p@@4D4 !i4M@@,@4*4 8D4 M"@@p@@,@4*4 8D4 !i44  N@-"@ pi`#@ n0 'ݹsCY'Y%&9``dd0W0$;l|b6\&S l pq;ަftR`64NӁ-A@).;Ko mf j:@ d tJT~e`dO@fh= Dj~|:8g9&ܦ@ ޝS/a8^^L1M ٠$1@|XMAmk z,g$?l ׯfBp<|'Ak6fu@ n$MAmD +Bp{lPwO@쇳$.O a8~j6S"^d\ g8 ñ@SA\0ɹ EK e9) I7 ~U e9Ld @d~\x?f@;53h64m.^e0fj6 l hfl ho<@NBS 7I~Xxd64x)QhfqЫ83~ @#٠N   ~Kr?lJc f@Crzy9E@M @l<%0 )󇎶hcA D VS3_a\D6 `yJ`6@4K(󫇛$x,~zӘ lP_?4 %y8 XlPf@C/3TX  g M$O<@?5L^&뇛$?{,^AI`64t_?45lP5X%yzYu'@q.~l h4%E˫fj67 3mpzYuQ@LSr񇅟l hf+f@35201ک٠N Γ|USAI?:Il ϝ'2󫇇IOus᭚ I.N 6I~˛o'OsMk \sv,g:)x/(l6p$$ͅ\a6pl<l `e&S(hd9ϛ=h/ @ @ @ @ @ @ @@ @  @ @ @ @ @ @ @ @ @@ @  @ @ @ @ @ @p.vIENDB`phatch-0.2.7/data/highlights/diagonal_smooth_left_down.png0000644000000000000000000001157411346363116023722 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGDC pHYs B(xtIME '8QIDATxn@Qrf`s{1VHvUu+]b/ds @ @@ @  @ @ @ @@ @  @ @ @ @ @ w ?wf0DL"& g,L`0i4DL0Y `0i4 `0 @ `0i<#@d`IB& 8DL"& 3L0q4DL0Y `xF4&IB& 8DL0Y `xF4&3L0q`@LB`@"4i"F@0 `4iG@0 `4iG@3|uY@?4p_eY,?e/20 gY\?Wxgo'L΂~?XԷȯ30 l=X̣֢o\`,䭫(412WG#i9k`!^ѷgF  ?ӂ[0 ?%hh}mM.F-ќwVR,G }u !.y.|GfI#/g ?0(& 5W\w"LDí3P*#`p3Og2 l4@gx,nF}u/NhDaׯ! r[U񑸭{׺,pu\`WC恹R;6:% @歀=:z@ƺww;XbUvH5kgVyg<0)St_yg>@^ey1PfcRΜ\WyWr>$,Z_+.{?~yTqnK#b|jov!0 1Qe8NsܛD \bl}}TuhDvV_g/TGW;?OώωN\gΜ佯w|u g?x ZYU{fo[|O5b̑#^<<7ⴽ[{L8Ud=>r!2W=Wճ><Z pvG>{L?Q0ӀSenvS٨{R?{MUC#|eGy\-y3q FZgFz"DwۻW? @2[GVϛLzϷwwKBtbG;e>o@$&B #`]rE϶.Fv2GGiDFlt3o}_)|,XYTDg!pj |Q}+[VΥzoknN ےW75{=YNe=w+\ՃC:\DA{GEMe7h؃SCh#Ȟ]2GX{طï85nKz<ǺޗdGN=5{^='w3A |[3Dn9d?/ >yv+ʵ¯l#|p>{gF R b99.sVѾW*]GN>)|@pɅ~]#x?FOo_?{_7Y.%7*owGxW=o>{EٔF:žh>tyy*|~Fԅ~]گe>{ѮxߵE.ž~v|̏Gw1}vޭfG[yk3nc N]•9#>]5b +w#oX:1oz#|p~m,T:rTqEbVѩ}e嶮G7̓հL;bpbUw;zͭս[{x+ 7.Uq$nվٰ.ѽ##+ʖ[ ޣ[92R?z`.:Ə~b#|pB.* zezݽ\)Bv@#|p>x}%/:vlAuOVXm]4^'CtF W"OsWgh@g@-߃sj+gO"] <#0l!(\{F>߫ P-]g @_6d h`o~4k=[P=~s7 "W吽3=Y5}s8{M#W.m!??'e ޭhd Pypz/F=-_qfmU˸ ?#Wl>? WF4)@eZ&f#vvt )%~Z,浖Ǚ۠AA&܅~f[@#`ĹfGn!0-D]AVl٭#0+9X Zp iEeo=1CvKvSZ-hSF׶$P*F g!Xhahyd84 2C zgzD1FF./n!( 0d{[nwh9WP[@)ɧSDy)qRq-zkZ)e"z#^LNJ?Lc++z!Jq-C2[4gCףxV[Zg6F7\ώ=x/meܐ>%q=+'l݆hVQ~ž(-CgYhy)1Oę'w3(j#a5|>V?zWFle8K~=3W[GA'sV ҫ( 4g6eaQO&H#F*wD:F#M" GJ6hlIl A^ 2gElbĀ$Ȟ&G][ ?𻍸x63 3SeR~pъE Cxt҈s ~_#?;KeÈ3[ aK~f0ֽZӟѭGxɹ 0}B29`(zűkanf! K~"btİmѓ[[^nB@f)-} 2s"[29ju"066=OՄH9[Lk+ =2)7(O+Y)h=pޙ U_+l! K|OV>2g~9! OўWtEB@fӺ~ zzyW%V =LZBF>gAtr∭_~BA-g3#M)"l! M;)EhVF&dfʨim%|{af{="#"g[~~pp*{.`D l!Sye=g 3v :K,`Zx=S#b֏gW%3l!3FEW "gÆ?-`6# iYx}q\{eL͊) k[ g3 \V%gve AMk£Z2i|=2g6NYֹ"9jzG;v.tyz?[϶ƈa4Xj9rT&!+ك=+_dF=~Ӷϗx2O1Ǚ=!$}>8ė[ګnG\=vH)B{GEvmc3##BDO <]|<{^V{[9zj@k(8;\ #g Fl-:̞8z_`~-Q] ]Ǵ {I&RJپ{`9X1x @@@@@@@@@@@@@@@@@@@@@@@@@@[                         @@@ rHIENDB`phatch-0.2.7/data/highlights/heart.png0000644000000000000000000007055511346363116017621 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGDC pHYs B(xtIME^ IDATxi]z3EJ|k;!vpIupv`qPv ?঎k7ʷ;j$JDJ8H~$7ka<Jp^                                                             p- f[lo`\43P^\p[.O}gߣq7yP>WMSW\ :o1A@` 6;lK:O\_͟(:7!s]җ&6A0P `ߖZpi+Y\S;kTU >_ unp=շx ى]6,vw]:WMvş5=J͇;Nh`=: |@@IN`":}k7">pDI>ז>a'>pxK}?rAwT^}P0"}NRa =oB|> a=3,E׹r ݯoc);l-Rm<8n0Anoi)/*~q"\=(.0A}9·Wj!5o<R%&C6@0]m~8U_3QM2z{H%|7'8E/A&SJ !h|k]m>HZ Imο,:S{5ecawm]n mZ#QUWχanRIQ -ORs"k^i/̒X5pBkmSu ,d-RQMԏ#\>o߾ea8 Lі ?cp&]zqwƧ#\vfsER`vs DPdBG'bp\)0Yo)/e}gpa֍S !6 M.HRJ~MFzp=cfzz^<1c^Z 6<)󓼕su d$ީNLT,5T$J =5}[I^*X>xOkJ=N]mr^yV(qߒǵT#J ={@ׂU ' TXUJbm'M& cNDk}&'VmL{c}LAqMx{ i%Y?xE)0Um,ik0>L=kLKGabq6R`7Lkr Zrp/(>[ <5w8p`l34MG`R5R_x\bVa@RJ= zOZV)OX8S8hHзo)mUk]Ǎ߹ &ke~\-aS%{WJ}29 >|[JlkZ'n+n)np`|&^Z$Llbx^)],6/h2L@K?Pa~"Z+J}k]^פK7bPJ:LjdtF,//?ƻZ{a8]~y<+LQO9ݒbR.Hqk Я"& \5 .~j,`ufI`]G 0.俪SH'Z Z0k6Z/Q_{hh ɟhԿ 0Z^^` *rI{OkY0piԿ#4utB;ZpB/( ^@x EgtB85J)Oa: a{ &KKKo'RZXs!`?k~5"+J)֧k09]\z y2U0SO{Z/.eM0+_=-_Z?%bU)k0%mաV=­X_j tqR-ܨk4LR/LOe9| "3 N|G0!wZ;BD!"y+0)W |poj0AQԟiX> wH8 ߰jwEX"uόDZ,^Zs0؏(Rϣ 5ar;mTćO^ "$[<]JRjo-\ZӾ!_h_A{5sN?^G? pZ)b~i|{7, h?1Q8^PJiZ5I]|חƎHD!تj l\O$6f_F2YX75I( R;]ar7!$d',x;ȿ$7h&ߖO=u`5oZFExڽe$ZE,R 118p0S6u1(GRz'|.bO Rh]b`jQJߊ}7>DR9Z{&v nM,E+G{Ny8-R]п coZ3Տ3^TJΊ.^ I}s>a JzԒn?w|z m)`=n4"Z4$ OkDsIm0좗K<;a۰~tK7{֭zZ MVmG vު%iqz(ZRloWN'18Ex@)ݹ|& _ |bcŭq/:pu-?jZ#$إO\bxBk=7/j_Y}6s'o3ACkk (03p+Sbh4mh6xA"xau0AE- ״1t~ Kfe/aZu/6_,)(0 | Z?A5j k!j ǯT/Ad\kd;S8E!Ͷ_;cz 8ӵoZ x1cHL70 p\kIRM$I'ajtn*?d 8 l=x߿O5lsL]<3۽i> ;$OCRӸÔd7e4֚O@y/ĘA&CkRIl C1xaN="H Qx|jFصb!I ҽ3Q/Yk}F)@=x7K|QZ8-Ak`PJ!k fH7֯QP1/XoMxp-Z-|gaKTyμ^99Z6{-&ˍ?o~ Ɉ\OɟYx+T6\ZEJyN uv_+wly'J7.^e=HqO^P ҿg` ;hh?RJiaK6j:.ws (xC{ϵ?N;RwCDp9X@{u뚞Tw\cw T!q?o%am@U\rzoJx).hK״[U~/iCcvuσR-t6|)&CQ.)obJ|1+Ǚ^>U 0a+Em)VTbǑ8=QQ+JW:*QVCx֕2Z(|SoV8,  LS nr*㹤r,O@29Hu(s春W=ؿ\bp`;iy V<<9,]Ikx]bK!^Z--^ip~X4tc :>=D|H"Ta,a H%bKlqpASHK &dwAI3L9T1kA_gk,ڟnNeIRkUZڞعѝ?LQ˿OkU ZQ{ D'Y/5# žݗbb.JM޴bȲؾԱo _?KcB EZHE)D9d˞Doա<=ۮyoPxgHxS\]*ѹ.R-1t!x&RCvRPIsB>~]#2ؒprsrjy!zO+EDQ OOpUy )p,TqpW'I.$`W+׬"8nqD lj+d ƙA{b@^4l*~V{?c++NZ"nd8xN~+aK^71ZAOk=vLL6K>ݞDćE* b _11/G@XǡSW[k\g+mXoI;2JX~)=:/X?_2q>V ?r.W FU!cwyƁR-D8.CHyZezstՃ‚&='w% "e凎-}pX̾K z,?u1 o@iK&{) .n<\]夃FEb ,H2d_*pc%XKd]]H@ eq$Dd^])wA5*_d[ _ v C %XbH(U Z9ܘu9@0_ݝ^\d88m ER&vcǐ$qc8|I\ Y˽}%X. p=XBǬ ~H$Ρ$tҮV4)&1$!\*@V~ Kd$+FpYI qyĨd%8&:Ƅ8XCK .a]Q7[ #mLj]Ïc|W rŹ- Q.76?8w`Cu[ۤVتU IDATUEʝ/=fwuǬԲC.2Q.D_S]]#c@~6y |#ng([׿dyץR\bV L݊}Tn}1]I+J#c PJ|72m#6B/"MȚ2CRK X/j3wclS T } -& \%E.qB1cĈ`8_utd;Tq:@ <8v䳼l®VDtκJ'Ʊc+89=\%+fhvXx̱]Ό)erYxxnCͨRKEҥ3iK .@S4`L?Аz,о0R' MLۄ^j?Un[ |r *Ka{] F#MKYxo ۱؁$SslC0 ~oXAR+m[@)u&wb'w1sI 8Ɗm3{X>uSԯ56;N~QHX.CB-ժ$,:JmDsu^) <uv"2iCϭ͋!兰DH"NY4(V _wdsv]X:(Yt{{7) |% /I˥Ă[ʺ҂uߧr 6@x$BW3J'u^e7o[лeZl~MUU6 D{ 0F,s9W[&*k`7$҅CU𸹻Im'~ >5 d' l%uJZ+ VԺmۤ*,V(}}ط^%3\; 5cp^:#qZ1>A nGndj]RR\KJ+ $EUcf:m% R\%4wf׿2ks^՝oj]h^Tcg΂n6〱|H8qJ.)9%5#a,UJ1Q`@=[R[3[jIyc%BB\HVD7=U[ ;9 K$R/ g8U q2"NHx%Bʒo"dlԾ2 yU`X>Fvߧ92R\9Z&?Rh}خ, &XD(OT(Vz JTW%>~]r L_XOX^%c)0O X{ɗ!4T x!.!H!+3 A)U T/*N d=/dCaM_`-,z_K8u_$Z0/j'3B]HOmm9vWScMxƣ|N⟵5<8pXrCS<޶MDZ*{!*(cK Q c0~ڟLz nA>$uC9($Y (FqmcZIYJx ,&)OK@lxҌ}<%xOcąƒSB)v|c"?p<=.;4Q }b~(%_ gAح_cX1(?wZ9h+^Sf>T4?௦wN$4cDۭ/]>8g H]t(x*u%/eD\5OnCm"W| &0<V$8T ̱t -H _؀-{`dB!X"6p -c5qP(誕+`!'d/a9 HEޥZ~7,qoqs"}`= ."C KR#~$@%>}r[HWjq*cD-?K֟ÍT~~ |KMֿhX.A%,sz_ Z}&29G&Lw, 3 r _:h0@+0b@$K~jOXd4~cD[`XQ6ZVZH QW 5~nk9.J_R׼x KZKmk^K Aȃ}䳏|j\z@ )=RDkI (+?BiDbC`Oøp[Pgo8t9 "CtA*O@)!eޅށRb.O(@Hx@o8o@DQk?aK_"!ub *8&-hp {KwxҊ p-%B%X~ ŽlTJ ZO!J s   M>?÷!^vr)k+`E@`qKy?%4h){5ЅK[O&l}$nS'D)?a, ~MZ {m P@bJ[dٗK0, < XwazغK _Rp` }1ƒ sY9K D0k>V|td"P6UW2GޠRJ0 Pd_6a Ծ+\c?eW=@`It/ɂ'|b-hA0(?wB9FJ^Y-KIq}]CU}Me?no pI/XFSW[OIW{r>j9۷o]o_8<+b|,=g7Bl@9-M"O@wۘ glQ\ށ{YYT(ѕR:v!z|A Lh rP~dK{Z>_h"L] 욇`R9]twadol [7t0_t/t'R6cC4~f.s)`ᘶЃ@n\|K%A,26`]ɞ i#ھqI`S4 !"9޶+gՔmK[kƂs'(N7 م _ҩZ|ۤ|Os=)؃ھ{j=*l-uQ4$6TC+u0P|j_d/{>imO(x :y%\ s?g]X&L?APߢ}x9ۦ(#>)\ \R(L`G+ XN8Gl@ 1rqc~ZjKVe:FȱcK߿tpOo(pHI-tX(Dt@Ix$' g!cX)7.EҝT黈 )N! lL-LLv!#ZD8),ྡI~vRcFrNJ$pQy܃l\n` "qIUUl…/$.r ]>J!X]뿴Ci@ P o'HWR@lQXH?(Co'm#Yk>p qb$bPKZ RO%\< 8`nϚfK{.ɤriD {=gQpYK9a4:Mb[tBJ ) sq7BSZt|<ҽ)ێS [W2}g,T2l 0}R"W=7 01<)_8`cK 4zb. Hy(B|8b{R{RCsIFC(s%ͯrwg-0^I{1):].g|}\E-@gXC_ C"w_"/}`Tdg߂)y^|`%. wWaR/>IT؈4pSzJi>7G"/uqXdʼn8kE}nq/u% } DKcz*NgzM]$0S?~>\jg~mk[xc\go08grZַu1d\_ ]M?o?=C[aG7VRط雵:xRX1} &hOekG|@yɌqRuJ*$%0r?UqXym>30m{X!dK ?ѩW`R:hg,SV!Y)0faA@)>e5Xx1޹o4?5nHp ;;q\]x t7fxn(1i7Oo bsq 8 ؓǎغ]\B 7ԒFx},]Nܼ!6)y…y7iOtob; Ftl] *,#M,@ QǵTQwl /~9 C}\i.t)@xe^1S%c5*q @j?v.}byLϪ~m;Lu тg7`ܲ. nDp.=0dWϹhqKv {c6ۄMmx4M g@E•fI>ރ[ :pBiۑ/E/I.^@#aCR5Xkd^ ~J-oU?dn$,T- QL-M5v&4ZJv;K50WzU3P9  qþ>>Hum~b#Ɩ;;EjΜ8!M5oDsK6e_䖢]w&N`ՒإL(#6Kyp|Mן"/R kK;n^J:_JipƷKR] |ξ@.̓\Is l(| 1d)aaKmVcikǨ#e }Rֲ?פ NH>6Z𩏽V{V,̓bW)iNLQ4(u]~j>u3PE 8G@s%XFj̓WMX}I-&;\4*!(ֺLCLm釒i2M&k  p tm/ܴOπı]sm3dt".m1>偋0k1כ>D:tWs5 >Ad۴nE|\Cw $r xKw7֢=W_83RmZM ')`]>\m7}}%4A*?2*1;mK1kǎ@ZU/:m͢, 2rA:;Ղ@F@fZJIW@L}ϵ+pq R*xRe.Db#Kϵo}_9Ia 5o0tp)$ LV+ŒT7Z]nu6R"#rD8wqqCkS>)m)U; Pդ?q*\ hZg.40K9I8oCH\۵vmĮ$RDn}6.߿=q6]Tvcwm#@:x=ZxgZKO .!F𠍋_}zYs9SnZ[zmi dƔ 0kD$Jw]߾J饁2l$J]h1#_"~@,[=5؊Ww}&Slw2s=RR J'RE'M(x\˾fZMo {MVr2$|<H;ty1++J ƥ?}KY1߶QM8^ P5oTJp聛'ݢ  ]Z⾑1\i뻝X0 Z"u6hڤ>9M`ҏ{Rj2XUJ}E&le9pٮkw/\6}Q s=RRRjLap }[> 8,բ`C!`:[)K印}T}LOi_ ܻV_ |D"%v9F0XL"j7ZTSK[-@2Ɓ+Q4 J."7)W%P$)-68)#WD IDATK:L۷e(HK9 mDAO>:}@sE7{g SM vpLd*MK(+I19˖T])_/݋ aQVؿ֓% ؈p>ujK. pKvL@ݴU_{y_"|6\pݼ/jezW|veq_o3VS=ɞȍs0}| "aur~.HhtakłRK+ֹTs~e3WoAĻ.;dZJ0$ "0<+3hm/A%Zǭb~_=%\yݷG<{M {u3=-fBz1RXmmyr8i)gHDq ` OQDw"x7..ĶCQk^tn.H3W#wrKOB\1|7qZƫs{V /@~(W.q0Qb|Cr?Xp\ —b[+s΀)S-Q^ F7I.B Rf:Ar84L B(;"b{b c/ߥ޿.+l?%(ûΥphoq  zĒ*Q&6\bǪO@x VʳWBpV|Ss0=QDn,A}iP1{i?3? v=$$)Ҝq1^v}߂:[^/ `+f|ŌH!&%@_{.vYN]8GO~9_2/4JATqz^Xߘub[1n"d%1Mp$9a+IC[ڒD!c.s({B}%a$HM>>ZڋJJ/YU9벆KƹDAl/͂g׼OF)&H%H"I-rېQ>mǶ]o}<Dw;phxAxݥ*G=Iqz_K\ߗ&5t?w%z*=0o 2/ti,-nLb A>~bA f.&_ ٌ&PbT e r 8&@]+KYBJ= V s"c7Y[wRp]H$nijNNK<]pK_> 8]'U^GؐD^w {W$hD݀s]rcpV<\gS0)&P2Y-l9E#A)]RlRkRXoDѠXb.HKב!H>Z.iR)R_J%2,mF!d,=A'Z:HvHi:TkrPr<+41:` !\/h3Һ_`%Ǯ*%P & M=`>y..H.@ KN]FXXB{AV]p7e% f/!mB@ұ3V0Yl+Kt1Fgn`.'>f&=w',ɀ@S %H[ > pbz KeKeHd\%+/QLDJv۔`Ku<SB lz}ks!׿huǂQďyLT|)@y:Ff`K86 1ڈ[ޯbf-@.xCJB`VPXG(O6# e9Q{)PdH<JYooCesKhź-ee] xvMĸQ9r<1-ƥ pِ !nB@@K Gr5xR;)]ttt1/wK^uPߥ.Fz1hx%RX68|D-CZ){)/gzƋ0-3!Yt 9x۷oif̿R|6fھ[⻽7&"],w# ˼mCy^k|3: xr̘o?g߀x}l,]8Xĩl hHZ1g)߹7=4JE HM1Q^BIwXqZ;b,u1 ɿ!?D|JKrߗ< nqk tev\p=΢sug-}or. s;\6m4Hp/uQq\ bC=c_D` ZE]I|*b|}尽t&P"?%P&5kS4"Pntl+>4."w"w1 >@$WBDaJQiBٵS%mc)c6ݓ |D Qggn hI+w/mF|Ѕu@. P&@i^s#T8{\D7ʗ(KTIZ!*8* JZ%YdG΢x:'U'p/ _1P*b8[oC¹?qKg,% B?%tpݿ\ KYݯ"  kJ6c /6 ?(VJOFSR_ >E".B D @Hm_%~_%Rrjۜa_o0> + CH])" oCb>d'MCUtϐpsP`)}ۂOQ'@  @hd%B9<N};}"> 3=İSwVdANN=%)=4}=],//|^e_<!z0_|}[| {|o1$yc&Y4G"[JE5Vѓ! x]<?w^JtܦkH > ((J&j"./iJoNM\r `>xg!^TB'!\ pb S%v/&)5Nז2:\odlByn|ʵ"m[%Vo@d![XDx.A6tmRyr->j^ܜe/@J!1t !bܢ<䟊bp߉q(v,T|-&$\I<@,w] Rߕ,] ꖰSZg?twxԁ|'짫" 9<~ J.}=/.zO`=7?R@6[OD!(R{*D.mǒ&fErw\ N=p`IG%b ހ`! l Q  HOA!{,/BA][ćCL~g,".%\oY!{iq1UHN  <4UL&i 2F "vQ( VIIRkt? ҃bn b @H@EI}w)0 q lE )E7:^bM(h"{Kw%J!ۧ"Pb&Eۤ<~C)1PPl XB`R\1mǓ6ހBJ \  ߅c/Ii r'e0e~0`Pm>@[0NJ:u_ 5>s\si'ॡ?c 4ߥEp!bY$o;߸4KY}!W•&L5<`o qIJyrh~|>>mCQA3S3-+PJ _uk^Ā a\X-gm5[^VqlizRٜ_۸k=ݿjO7\TTal}d{6}7j^Y9r|HdDm׃_%lj, Z]뷽.B<!x lwqzt9eV/I" YT7@ _ȋ7lU^^^~ iI\s}C]ru'Mz6s|f?rG 6 y8#wQyzT_sjn{9jy~Q?j'& S4(3gLp28=(;~&>~z|p>V@N<! Gm95%QL^O '1&,EĪ4ZyG9/]5P"%Pj߇S՞S0 IӸ<(y9__]]]K>Ęc1}? /Eکy G. I)ܚc)`"`#r!:HX>c.]vm>$eQOYGPй…K"V_?nُ jՁpcY}Jy\@,16n'UHDX.$="؎Lw? *ƵؒAH I*\G$$C!Vl!l[k܇8wIMTz)bxBE oH!|DA`r5 XV/IS?OP$z@iR/vJ_ `C]>c^B6tC,vbRddž1zj^>6ybgl!)ҷ%~bm궱X7#$|*0^&9 g,f3F[Kȧ˼]nX}۾`W6G^nh&z2-z 뷵֥K. X)ztA>R|=Bוs1"$>'S@ˋ!`K@6k's(p̔FzmFo?f6'(Y< S,hy!q1.BV|HAK(H#L@Į8Az_k.ɟt,ހXB@J lֱw 4?s ?]XxPCS%|ŀ%F@,obJJ%v$ Aa4%y]瓷/-$ʼK~ m7u)o3^XGO*x nG k"u\ױm Z;4oH}% j?@Dn+XLVZqR@p]癐8^F}*6DNYLB,399May[lLooShQ[v6xa <.l_z =qG!hw)_"7ߥ濏_b !3{bǰ]žQ&m8I%J)*ƶ%P1ZGT>"5ǰFo8M@O\1SS4KX!$5I CH H)BĀ׵ŵi"Vȿ &Mp (ӕ R5mYj`I!E*(`=bY!$]"xe `.Ÿd_5;)#A9?DԹ2W\O@6O-Y'GT5c)R%!o;>ImW)Dh]5?EaBgL)Q[,#c%~Wm\EDw51nΝ 5%Pr.m -*JcX!3L?R X)*#//%\ǂXDRN2d`I◰"0IDATCH:'~W)E ,G܎*@ϰ<]/E{`S u܃Y/$_Z)MCG@)߆cY!$KRA C-d>!A{@]+#q]I?cu`s)pL D{~! /UW}/Ч;4g'AM!K?fҾ9mSr LNsS7q WM- J$ٻ/VG—}DŚp 䱡>R~Cr٧TqE ?+.$z"V : ?D1;VDԲ!|A~A:0Gc ҏA6,aX綂'CG =-//d|Mj]m&EbE5jՂh#Ec9uyg{>HjYv}olͦ YW5!@B.CROUᯤ~lv)1Pyl+]= -g8 SpL 6!WB["$Ā˱*$HKnds4YK@FBK{ b K+1H?wl&UND9C9@L1;v*q1Y#K%Pߗ/xDcpo$$ =FHp%a-MN+XX mv1PomFA' ]p/܂]EKu|ݣ1ƶ1BokkH9RZ; Ǎ)|-.5G| {zr[}*ǜN)a L\"t!KloHM12LY˜F)blGz6b#Dx (1=lH ? gJ54U[4!VϦ춡f ,SZoޱR96-u+?,ޡEP1J$z.YX%V[dX(#]m8MRv%uo|BFb )O_HaVW lWa>H@A[/OO2K{*8 $~?4p&*E b8X!p[X7gW. <H6r%iiAV?`N~VJ{a )Yl$;ϔڗ&~%@xWkRO@ ;<J'Y/Ř?Jj $i ~W*LP_cLmO?.<@$kK~i/a& p LۑTsŀ-(E9~' 9tB rw%Z-]׹)lpr?15L >1@J1 -|ɾt@m~`.q:#(WawY^@!R4'1P͙8cT`R}4e\b % 撮5Z4^ gkǴǙGPR%a!JԒ 0B+n+,@*( B`lCY~ce$;'h ds5"zNS G2C #g(~)IS "v Ā-JL]U1Jo +@3 "5&/ +yL!jwX1!Q.xw;A@6 @L1B}i$=l K_xG| hƺZ$5SOԧ3)c7% >p,CP)ܜ.XH) r TS7: }0Џ /l A9k8W]KPDz/L6įos!i=R339$] < d0i$Y &d #7{fu >g ;u H$݇@R!<ѥ@?,_G b]~W BI>dJ'LQ!A@yOLy$*ŬoB!$PEW«0Uo8׎ +]ᅨ}]o|kZO$y\6۾ r!dbςV?A@=~9h$%G"bH@k0`8U  •"y@j?1Tx  U4WxS3ީy>c}t9uI' b< +M d9AP"2)ܥH(1UԾ|  lIa+lgÚYЇ ([|NGk<*Tq+^p/APDr/L|9߳Phu`jAP e}B}k\b V%>A@p; @BM-$tkK X ;EbDu7t5#zU|  Rc L,t)XX1X ( ,c_S10 ( a2X~V餧"Am3 (Xln'Os  :~1̯> a~ b p;"57c4#l&Wxk m0YnIp APDp7'atmK 9 ״*' -F0jCHvn,C1 lYk~!A {`Z/xiA@yI[lߵ4 iQ0 (z4>  ;<`]Ni}A@鬵RJ݋i]E"APfu &up\y^qAbX{/]GADN=qwe,A@Dip& "{L[~A@DXq#N0{| Bx0Lt?A6>>\`˖- `b0 Fb6m(Q0mQ@'0*xJhamQ@e0Z6 F(mQ@~070^A6 F( mQ@$Ce?+vjVڣQ0 mQШI]FFGF6m`@p%6.G0e`e@DxhC`d@Op$C$#Nl撺2`t4`Fʟ[!Er*jlG -‚RHM'UJͣ]y`t4``y!Cjp]Hb@Cj P"рQ`{вO J=)j@aL8X{)ͫ#uoJ`$Lz@}IɈhƽ~|r񓺂)ՇcaA%J рam 1'3̇ PR`X@NN恬q- P+u?%bͦT y\;*/FC "^?9P?>‹֕P,Xi=$LP:S`*b{ {:,)Rg?Xz%q@[HQOO(1hm r@?$zϤrV  5Xhm 2@?.@n&K"BzWTZU~YRK@4ȵm "@S⧤aAE:di=OLYCr:jUjc0x]0C!$G2sHQGOsF"ּ`8Xu?2]0H`0C5j wX{MnM^=r 6VxF(]OH>:%0m dC1Tu^K/ 3zWp;aN^ROφ5&9zG m  'k-9Bfš^>*ZS hoJVb-FH.F]@g@~b Rͤ\b V j&pi (1ci6`t]#rOh׏PO:$KJ%Ni/  64,u)z9=@!31rpqt4~m Py4%~J=J͹Xt§w%KM@kSA@BJPcZZ'f@miܖ=5V+[VL <~$.h^ZG2m@{mYROY#>@LÂ?1JHI r,b %k.6mP93[Qj;S÷~155‘5ң!@h>sih#`mС9fҋ $P P25 +zVv;%aM;h1mFOGmЩ &OIυ3UKp1%P)3qAncZjՠ&G/-H1k@'mPH23V5)0p^?=+~R*J+}rHI Z7 nr|!E?.mPjڐ $GI *~Bޕ>*{@`ZJÐ^jFCfCNb@CmP P%N8-{@Ur+6ZTYNJ˜fSC@5x̤y:= B0Hi'hYJT@^H.̨y+9ԑĨ_B&(ar#,G& ʟ^?>9r{'Erͦ梵\30P7<ȉ#R%ljiZQ{ptqm !}샙KXȩ~5h ck tRQl"]`@m9@H 1fkj"I3jH|p#f \jELz'j6*HmmaO:>}VONoe>C"j5h=@ʗ,0h#4B U&#,BH SF (T-ĘKEKsF p=Z"3i!.dH%@n=zo ( 3r3*@CL9z-Iy:: @<m h\Z8H! U2„>+_rHIR lḅJ艹g@'mPe>=|Q;5R+ jUPo9zu+1bh`mPmTR[ބZĺwѲ׏PcȔsIlaAi?+zR‚8!1@3P$Eʛ FmTPeMӻueM+@zbZj6^  Wy2$mCefdhֽ!R* zTW%L,( SryĘC{hoqG)Fm`Cmg5̂Vڃr sR&ō!Ab.bkԮr(P65R5/ \/-KR܁Fr# a!1C#mNP0.=(YSP/1)zu'5%iш'E=n{(*Gj# *l,?V5+\V~z͢Uł T@-ӫ1@yt4}D)1Cinӫ d1%CYGo(h =lY M`z 1<>{OH9I5YXԇ `3~Bq1"q#R_띒!\zzN;( ;Z/5F~RQ;S Jc u#mQ ʟ()d(WM-#>ʝZ 7lm J!$Oh烩m 1 *HI(C'T 'PRJ\@ SZj5A^r`*(-[qF A jfZj*YZQchV 70=M 5>H rv} 5"FB#] 9DE4!F/%="b URb@G. .BSw-$d3擳@ja )fPE#4)?- <k1L Zir %9"@i>g.L#*/.( t2#~Bf[P2LNa1+zR5K~bXsMK GS"֌F C叫@ cZUPc63I-g54\m k.%jb4JjYAjCF%GL#]@BsfRr# 1Y@?sK-5(?b#t.4Z?aHjjKZ FzZ0%uSM"G/KN% ĚE+3hĎv :cYxCH50yb+~Bʆ (VjC͆vP{䌚y07kV A҄K?Bz'RBWKN@ϊL%4,m .J"f4=q7Ī\m000n zz5pӣ'E=>=(JX@I)Q:V)@v' %f33`vQs܌ꈵR;(԰V۩0KhZS1 `SK;HOLe Y#tjbVX؉yj&O v[Ve)Ď<b$e)S Q A6?T3PA PZScNJJB֕-K%j1-lRmQPn ,`0U`uP"LzUoƧw0Wjz51u8"\,Jӣ Z]&:bee*dɑӠ lbG֕>*{s`ZJ€RC.rͧf"5/Z6P@ CV^ j5B?fP',BrbfONE 7"7HCGKjEF-H]0" :WKw *r{)2%wH J)Jy[=9HYMz[)< ;'LfE^]O~J즅%r#tEO.3UaP'4I?=RJz~'hh9yy|N T jR : SЫ jV̡EO>ba[ȩkeO,6q1f+OF51YV uM`4AʟQT*ZPPk9|6 eb(g>=9@P`S2#CpCb?*j1Ԟ'zx`p9aGJ3 E=-GRT 2 ,EI d"t fZV'P?6u!{ C;=}FMZJ/zvKm;  "[SD ==+J'r JzVꨵmH"dJLJxS+)MS3s PK8RMP f0 # УeoX{HԪ-7P&hPb關h#``T3F7%Gj%nj'N( -z?%E* p@>|f3G|擳@Ł܇Jn#U-~lbM{ȱs#TfÁ˜ZUz<,-zV/{ 5AN8RkTȑoqɑw'F--:r,ϩ<  ,܀G^#VOh5)ʕ=l)j=Z5HqP,ɵsP :,#F@7ñ',y'J9tzbJaA5tCр ֮2 Q ZG 'H^J+dR-+\1Bq0QӲP]5Gr4y>*p|Īn  ,J-DjG*T3CY0șF F}j{J\@ j4 rGiXл@;9B PRNS+t >Oh`3>jWJ}A!įFC٤#԰ ,b͡F9A]%.m A8@cm*REH1 k9yJ<Û|ͤd[.;`n%zϏ֏ `O=%Po MT#OM@iK{WSLJ!QPMAQ8@Y T?FGT ,P:=m/?.0+J `jTƧw0Tj ?Īg#\Դ  4 z`$zFO95{$#LbbYf\ (#9b#rqZ;z!<$7XFkhٲ060+Br P$,J=3 H3I1 \23h9O9OZ7b+H#'WZUzF CIZ=~R{Ypt“#P3H%iQnֽa3  ,޽r@ sQZyӲ' \C^?5 "%5 T@m &B2g#bNX@ze+|tڙn?-{ԬɩreO, ׏'5 e>+NF60PjIK}(`G ZRQE뙖? w3(YKP4 k 舤EϜv ʟ5r}Ez|yؑ;g#o^Ԙ'R V?bA>rcJ\0PmĈOjۢ'wIlc^> L@MI bge6fr.{h9@~zMK(A9 5On&0%LJ3ZCNPEBfzVj5;mcJV=3䖁.QC *|t[hi@,Tv@V!$G͊P rBΨ1g9ré@rXu|F A3 …VPfi1r@Ar#V?9ꈵX@9Kt'ZO?>9Z & lsR†V1~]TS1X5HSOʟ^&)VJ{80=5&%|I#'M*PGǁSG9ĀA1 5-{EnQI3ICF-ʅ5#oZEUE00\"jg`jb+j%d/=ʞX@_ dz 5*I1JS1XƁȱy @~j'd%~bIiQc둓i&bHiQ{Zލz- u܆60Ät Hf \YG<|zUieb$WLԜ"ƌĨ !hZi`Or6)B#Ol4@HKlC\yrH1kjixh7PZ؋yjU3+|BS!@Iܒ3%0| ,ȅ}t"Nb`#G?5 AR͡3LM@M{H/5G%LzPsn@@RVJ4zJ8 jE @ ^ZW>:SiQ2b`_{P{Z9r{` ^'WGH!; J1fc7>{HGFeԴZ5 @zu@i S [qjuƣHFgN.;RFgC#XNZĀT hj̽`0بբfQb'.@"+B&fMK;HmP22O)jGb͠v<(ͷ꣖}}b=ԜSg [5{")%=*\?!@NEJ늞T@{9*@LC٤Fw?ԦQC>z*ZJ{EF` ()Pha>YX[3; =7 d9v F+􉵓Zh9 @9 jeK^9-Bj54?1.\'W-!v_?>0Pf2sy?>be/ j.j=^PЪ@?8ieW]S:4ʟ,fOB {RHM#J] 5^J`)jELI} 2a^r* BzQ~J*cJnGCť1|fk.= G 1` SojԻZZԊPZ>Zƈt` rHlxP2 ChI1#515b#ZiP=5V7rz-5 `)SRS JS{jQh5,sigPN@C-suLQP3$LH1P:Nʜ/j4H71 H6}@ s>zE5̥efPqJ SJͩc'Pb?)%!R F5ͧ}^K:j>`'G@HeQ Ě˾丑!{I5 h="HZwy=4*w3"}0Ps3!FeNSNB0h51f 橀< @R @VX՟[OJÆ==|fQ'P2yj qZSz4G ʜ0(QS@yЫUENFr%)f0/1r03Ԉ {ZIOzbÌThPy QZv|HUѬq5F iK@.DJZW*2j kcS;Æx|P e&))mP;F(9e19nt@z,"@+ UˎV?=5iUdȩ\VOXL) 6A['(9zH119=ft0XZS:5̥ea@BI}ȭYS,bC mRK?Ghe@-ר5:F݈` HZ9~& w! PE*(\ 6k'k7U#\}jSken!3  k`1Ìĺ='RjỴf?P>!@( rGG> [S6!"@e0C-Ě Pl?.@V)%!.R F5ݩOpՐHk&9UB Z42h^d[.sOiOP7i٫Kzdf\㓇ف|fzp`13O^r$R!6'2Fؒ$)Zr9EFcOLoEvoJ"o%g4#橁. 襇#䀁(,kK+5$O`'OԪU\ԮY-6Qszy*@Pkʁ`>"@t0X\1Oj85?SLR'Hq' R z4G-Cr{~3I]E V  FuOmH1 *b*~b-GhH?Nh.>!sq/ť8)s'|t@-؃C)z ZbO,tH?)ߤzBfDQ{=`UyB J.-̠8 khQX -.g(r>ԩr+|J BfOlкAi?r^A 0"0-s赦` 'W+\f3PFlx J }R`@K}R3/Bz'd&LRvAB(g>X`! &\iY @j4 pC^bk.99Rdw\|sb'uM6{q 1j'&F 9aC/=Pc=jiYS'όiȵaA(`CiZC =i13h嶁VO nFC>b@K}Zy=C3 A7"0HBrZ= !Z[ Pk| 5^b5c@0םĮf˃-%ZZ$^z Q t)Kz"vnjӇK6qͣⱃ\{5Z @ @ ! jc ;o@1D+wЫ6нzR+d! J<.=Ċ:RP+?iZh5,9:!3Z ѳ#V-sU >5'!O/)zH ᾰo0K3kuEȀ*Zb)HJ/?u#"Jr` "@=v ́Z: ?%zYT 0؆>7^F(- fD,z*^^ۄUCM}'TYZSZySLJ6NL#}`1OwSLSzD`M8jmҪP^.uԨlֆvԮm'1 |X)IK }U4:G?()@`ͣTUeaLj S!= RQ@ d*5`va&!;螟#eȆ@ *C[qPSsŤ q@ZZVLRIi& R PQJ =#l2zFS@"gP@ =hk”J\}Ԩ UU k! e&-ԒZMNG?U_@LjoF9FrO͡]Jg*j">PqINL 2T;ha@45ue&rr*ejG G'c.0 Vcc P F@ У""jZ s+!@^-j&>qr{QkZ D >jE @tvvѨ dǀ6d jok0 WR+p1)=Zd=L  rGH 7zLo0E@` ;R, if?J^>%㓧g#`( 4=/q"uP$M%qJ!RjqR+} 0.ڍb% R`q!0úPIXCexۄh["ƞRS'ȭĩa=jfOCeh4 kjoT@LOer@IS'(ݞKFpt0X:Cbw!r v! D8P gZU>9jIKh  dz,sQ u{#CcnkI)l_ -#`&mt>ZrZ@U5Q@Ej E -ejli.@EJ df`ɋ`uĠj t0 eM_Jcwjb%4@8Ú5䤭2 @2` ʶ Uwp0D(  WFVޕ?!3iK8k-h`TC%`AM59Tz iQSRS{ !VqJ-Fˆ`(t@SBo0$F`ZSQk >5Gx=ʞ(Ce:g`0Fq`8gZӲ'Z W#X{IU3Th;tL#C =CP#Uk.+z dz`NʛPnưL |@ 5 RO, gB&೓ Fh5?T`0V胱J HpֽjG7ʝ=h (`Goz͡D8J t0[!njZz=j^R*|BYBi#Zhg0]r`P(b}C |`XLUjkYj658T@ϑ|f 6XmQPR O6**!Lz5K(@5F+Q0~’ءjIIQ?PC! ]?C!ϓZp%`L# 8ÞR2OjUTAF!@q;P9@z îr1uØSI̤vEHN Դ`2mPPpPmлO)Hg>- ƴ 9ڀ052W`(&0JPPh"\iOjZ?1= JZ鑖 q(T@,#C 5MSIKt-F`u, Q04'`,`(b00Pw<4Ri`(Fmd(fḵ@SIb'f !?1Gm0 !mQАSqQ2Lox_eOHr87`* (#3vqI-Cw>TFn* Q00`mQ@[0Pg sJ >9z7;Nm F:v.q7-F/FJ#cm @jowWB@ X0)S0mn1ArM -퉭qHQQ0(* 5 k#؊W#Ԇ.=z=Q@+0:,* Q0 hIɩ'Nh)q+ BzZm #0RGfhW=2b pGmJ`̤Ce$%=sz?P Ca>4 , ZHVQ j^B+B[ZOohY5 nW`y`(q(iW\s9-n $()`Cqn&н,#C ʑ nEr’-vO9ĘO 1by6`86rmQçuDi|fRR#'h1B@0ZQV`58Pm"mТ7@NޣFCDгO0~#PزepFn;~qz% 0}@`Ca{(yR~R3C p/1/1 % aBÂ_b ! Jc`m .0R[hT@ԪP9X@ljZK*Fc0ؓ(``` 83ʆBu1z}{^ b*~J+rIσ!?B4J ! U%.3tQ.{'_r.J;9C) `ɛC pJ BpG;CN!Ll lwHg'%F IĀHq4! L %CB Ԉz ``?ZBvP?c`NʛPnưg`P( LN-@_9 @FL3iUSs9j -c.2L#Y17TV'3K!`jW^T6izUWZM2c v FP(f`( E7 2?9Q\R9sT:>Ly#SrFhq=0-`(t@T0T^o'?zbn *( @S59z i%HF Z ʟ:F&УQ Uj Ѓasr%G zme#ghX@(.%BzK^$C<A j |- *j!Tv|Iٳn|RSs蟖 DZ衅CQ@Ew=샡E9qJ, ybͦU#P c/~Ŏb@'Z V0`([m#A0XQjЪ@hNϤC E^i0$.jACeM`#şXu`D&0TZ0^=9vMF FH5vAj5 5e@ 3hȠHH4 "0MfB0X2`Q.Jzmw8)X@Mp7Cúwp`t5=@@B4i T ~|]S1Hcj&9`tH~WkCuxz-lgaGIлCj k!5JOi -z]> h)Dk 0P-: @[S]EFO Z:bQY](H@1_&R#f4W`riܐ2bBI hho|@G` "j Rh p%.v#vĸܑ J+b5 1yx02T;ha@t^i"@(PQ 0`MغG˴P)GFj k1?-+ZS+VZazthj ";h@bBҁ Zb`fۀvT3m*Gʟf R3T4 T !#fҫNZ.У0%g>%X@>9zU^0Hh<-zCs6-`6fԐf $9dK/ r(4LVzP #z`MJ8'PsȕFS4 NB~Ԩ)*R=䀑4?{V` :!j9PĀ8 @\UO=nk&%~f#F5j@2wvIu"e!@~j պ޽(JO<9^yIĸ!|zhQk@S>'gBB`B( f?LSA,3Qr#^r*+rG A]Lgl$>B`~=ZHh=?=0 @iZB[tc #gtp' ZR J =0@Utg` H@7*8 @ȩҋK--ALOnC8=@ȩi1OEeN<]bYLEiNt31s =UCQ.l^ڋO_8s/E. @1k7k"hUS9j@FÀ<30XFh2*"zN  1Xߩxɉ T)I5>bkat@ۈ=4Bjh5e@ 31L|EX?Xj{UC!}r F5 Ny ʟi5o(a&!;5-Zn}'njCςX}C@ylk-bTCa`*! ZTe,԰c(rƒVzz-59Xb)~ &b+qR͠h96dH>J{OM}R3/Bz'd&LRn SX@nJx܎DZReb3k04Hu1~$?T*jb죕]Cy@{@/=F  zK/G(z61f rlk!fqzVZc6bP*wia= ZA T7- rq2I(4 +w,?7z~F9y+Q+X6GyndY' -KxgwTx x\]FjjgRt+P "kF˜`Jd wHօ-Ii9,B`-WS^b`VO5Z1If:,k ,rZ YΡ gm)jlREik(UAn^`*S<$g`SK9ȱ\Vb7J͆̾jk75pgO f!7SO2TK@2 f`!*5CĨG Zj43%$5^+eJ4XSSĪ4 :SkX0HF݈"@| j$ | zj(WBNo1:j7B:5GHq71 OR礘?=!@F?=5!ȭjMKhGͅFz65+1f`S;X .RGlO!|iQShX@2Ve&9=fzA2u+i@N&gơw@Y6S#Lb4Q@Ī'6Hw Da(iU^R T]D=@퀴hQ QjT3Ch\b&P9z b(ɵsCG`i0E`DĉHq5 {rFIVL @Ii T92D^ :dE V C3FK h3>R{.Q@~|hYL !@|@퀃EF-s:3Q? SI#&Å4TQ ,J̠GO.L}Di ZzنB]앓pBfѫ!lzbJ%#ʓ3OnTVQC2zDUV-3BVLDL1MdHCs`P3000bih>.{0001n#F 1vu5\b,CQj1da.~|fX04jQp;@jp0T'ZMPCmHܡZr sX], g.)v`SK9n&V-%?ScX@b>j-YjP2>ID&ЪIniS{JR! r&G49SҩBEZVʽt}\5/jJwЫECuXwS;QڪG#b jAjOiOnܓ"Nb̠v<97н^Z*wj@&GI+a'%|*EHLrF(*mr05AVĘEe:tޟt{TPGGV,!{UCrDn< FfGNt;HEրwH"n|o8T,>b*'u!z`(=pF60BfQc4rQ@ b&TS;^ye 39vRK1`u@Q5)Z .jvMf%ЫWC0-MbQ3Т'?4@MԒFUhPRMlO^`qJ\0e2) ig```\/OZb܄ `ӇMX;K{pg\nes!d\ QdnJQj'rzq & %@ۉC z ̢T=l@h[^i`3!-mZg!}ȓ 7o n#E/0ʓNs?P9j7 (V ED͖`YHh1= kJFUl=rjJIJP#^]JN?[S#V@ ĚK B۶c6{3(%U1\4<*fN Wipֵ=Z6p0j[ }BwU;_I3Wts2P? 䝭Ozbͧ^\W6`B10C(ɗutizČ0b5Da-{e>Zb=SQS!9j,:CWGj )Fl$T ()CUExCĨ2@C@採 ԭOJxP; CCO Q;Z0Hk%@-[Q.u'v*{l6I1 zR}$j9OVչH =T "W5G(m21z*CH%]"EjOс)z1]C?R*Zr3J'G Y={ 50@0 =#k6@lFp~bѫ!lJK>ZW0;%U-+RBiy@)1 w؉ڙb .msg1fk.3)IӸ0='G?5*~$ T?@sѽ k`/'sԇ P2N RB?.35YsLĪA.PMK虞42 "n$eR5u"E|WjV~ )*PEH-}Zj5S0#w4 f4#E|zi (k.(QCɈ9q,wiHg```,k`=J# Ă"#G@41 g5(Y5r/)F0J^e@MqRK6@-MOwo y 2 >O0E>i PVһPH b$F 1^znѪbyF:Lg```Lk`/y{)s#,zbG|r`b9fr>zqX3HUn7!gA$ wZ( VØTn`00j@F)PSGo e!( d3Ց`$OBH>+NE`r}(` { @˖5|(r#\ OZRze9pF3nphY ? !> @Iҫ в+H- h5@к10hhQV%NuGNð3000; Cs; NJ f<3N ꫲ4U e6 `r,f1 / 8(K/܍M@Uӯx[o1Mxa*Z&j # 2 @` R" r!wJBI1,R3_@IG8'i|Wi܆ 0z 4 ܖ@$JZ V?>qjj̢EJtCQ@ SӣGIcT3߈QKʟ;K5T F9tCȢuNF`2>B<52M[:Ѕ D6(1(h(hQDKck`/ Εk'~"jV\À,<҇>d5鉉`$ vJc&=+~|rqj/å#I yT# z`0_jvQ2F13?zJ^`U& 20{ t DHAtm71 f%k b!B!\PǗia=Zk7 $bs u-2) ֍\P,d3qz51 6lj 59zImLkj)-[?Yu`3000 ? bQ 'GM`;-@|)mҲ@j P#\f;: ) z(C4T+Xvs ,vKn*N)ZN ZC܃"Ϥ7SM&ʟ4@JHg``` DD~j4j2}F69TT+A_JJrTPy4̉QKʟhT2 ZSi g1fR R+1j cDS#'٠FUz'}Qst`6# t~lV89Í*1vbZz e pIԜ:!E=,JF%?+\V 6Z$TZ3g^<h zjC#Zur+R1`+uv _8P{!#F/jHHة{ Z0%ҧVOM(Rs(Vd]@<@p1<>n@\3YI5S"tuNg*Q\=ojbz@ɴ j9A!Tk pz6"𩧖9̢vг!@ZdUЫrldzZjKn^Le+.0:1  U+u06Gрj w=oZjܰ%^zVaʟQ F̢v!CBfVz-4pc  p%aGG~RQ;V][M.@b<\Rsa fQbq!IX'E BCDCۈ1?!}lӻ(̍(q# $M<pީ٪'$GIEɴjA{Nj)oZ!&/KV H3000 A3ZfCFn##F?jHl(X()HUCa@mTL'gȟI5&QGb  eb&5KFFqjLR j5`We: z0$UCJ*PO!Ō  A 3S!@^j5 b+gJ0-5‡JU/R)ȩIuG+ ]e>lb T0\7ps!' bՐb'6555 ]r"C66)1܊@N+x? # x[y$\s5%3#@7҂[Ox^ fۧGf MjTQ\?m@jc1Q2lIIsHQaoZT޸*Ӂh(-IQx$ߐc.5ˌm *l2c@PXsѺ1n b+gJ0=O*R*~Zur :_Vm{ 9cSC;]7P=LnTGQZD1Zm`#@Ę%+M/@mjRZq r'7V#mC@9>F%NLIdj`s`l$}) OK{hoq7Z#mC@Yl2yj1yC^?e)T3Z mh9EHFQC˜^t(U%>=#G_ :/'" dK;$% .ۏp *5Ԇ 5#JFȭKA) xd0}25#$G1 CQt;()͡@ZsS3MRf .SE9ma#5&G&=E6mZT*RÍIjxY)IGy m @:!}샙KhݛC7ynzT؄*_z`z@n??-{V*HumP@Yh]л!@% k/~5Ã8"L?-!bܼy@aXl p-µ z|-`y#O#u+ hv8-E!M -!\b|jvF1ot?A8[ޔ뀙PsDf+bk@ NJ˜P{ X |B~jDVmPP@7BrUkȩ8(h |ii( CJ*Mk`mPi`y h1n'CP+|UV~R+k>Rq?um Łj4&Oj)m PR a{À~&7.],H-V Dӻ,i7ZSmЩ@@0!OJCڣS2LB W%9v;%aMnOʹFl'.rE'd&.V?Z@ccwv#g!9BĮ'e<9+멱8VcҸ,JzsTq$1H(|\bjMSk`8jqEĪy5TF+Am S#d.1X{͢ec=Ԟ jezֺJ Z V m hPL-G>Žڣ)th==v;aM[HU2Ѫ @.Z  t@HLm@ V Bj6Jm2Mj'f]8@!$Gpq_j-CPDnB>RvPC 51# A @u( d3+/\()6?J-MIa~j)v|m @% EzU${n4iU#M ua擣!> 0Zt}(1yBb)ꈵaHԪ1 Scsȭ ڐ?h?m "@ƺLb!?n j=.f TOݔTA?IzF+D`M r;H1uv:$M͡~aljN! v@+kSFRGi2Z!a m 2@`QZhgc7q4~Jͥ:zV fV m B@y d4R{I- DONڑ4Z>]0G<UC<=/b`޾ѹ€ZHԘ'F͠:/`䀂)Z bCWKɐ15Ӻ<Â8Uo]GLzm @2X3Hi2=@Nc`2*|Z4u5 %fP?b)cI~i10:YCʨ5 p?Nb)ڭMa3Թ]J{: @MV~rPs+)#c!ʋhm A@!@%ʍ h_r(UC35tci?Ji(H 9ImlRK5vP`ƣeDuڋ|r 3Z-sDa@0&W?-vг?F`GUCRR҃ %fѢOZjQ3Z`F`GO=vjT)5{n0ZfNHṂ]Q R#U-jzTXIK;IiRj;McRGh? `X b]6g$jUVC>jr/h? m b"E2o(jWNIZD5Z\m n ;S֕ъ *m on +쁰{ +j=Gm45`YQV>h? m 1@-y EE#]eh? m! W:8uE5Gm*7hD:{0GS~ZTD;Zjm"  \jE4?X` @C~@ @ Z@ @_` @?!  ;`  @@n * (/P@(K`  @r ,  -@ W0X@ K` @i@k`  @r ,  -@r , @ @=x,@Ux@ @^o`,# KaTCѐIENDB`phatch-0.2.7/data/highlights/rectangle_gradient.png0000644000000000000000000002633311346363116022332 0ustar rootroot00000000000000PNG  IHDRx pHYs B(x,IDATx?چlbhQ0 F(mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#bhQ0 F(&>ImQ0 ` "0ZPQ0 F(baG(`]8 F(`@mQ0 F(#mQ0 F(#0 F(@;`mF Q0 F( baF(`]0 F(`@mQ0 F(#mQ0 F(#]8 F(#; mB``a `Q0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(I`Q0 m(`a  hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#]8 F(#(mt0ZHQ0 F0 F(`@]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(@;`mтbQ0 FbaF(`]0 F(`@mQ0 F(#mQ0 F(#]8 F(> mтbQ0 F hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(`tq( BbQ0 F8 F(`@]0 F(`@mQ0 F(#mQ0 F(#G(`8?Q0tm\0ZPQ0 FbaF(`]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(`HQ0 H тbQ0 F hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#G(`8u\,m0ZHQ0 F(0 F(`@]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(@;` ) тbQ0 F(@baG(`]0 F(`@mQ0 F(#mQ0 F(#)G(`GUm o0ZPQ0 F(  hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(J`t(T BbQ0 F(8 F(`@]0 F(`@mQ0 F(#mQ0 F(#G(`8?Q0m ?0ZPQ0 F( ba0F(`]0 F(`@mQ0 F(#mQ0 F(#]8 F(`ѓjimF Q0 F(  `Q0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(> h m }0ZHQ0 F(  hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#]8 F(`0m F Q0 F(  hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(.tm M0ZPQ0 F(8 F(`@]0 F(`@mQ0 F(#mQ0 F(#]8 F(`vHmF Q0 F(ba-TG(`]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(Fbm 0ZPQ0 F( hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#]8 F(`t mF Q0 F(0 F(`@]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(`0000m n0ZPQ0 F( badF(`]0 F(`@mQ0 F(#mQ0 F(#]8 F(`AmF Q0 F(1 hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F( Gm .0ZPQ0 F( 8 F(`@]0 F(`@mQ0 F(#mQ0 F(#]8 F(V@;`mF Q0 F(3ba-|G(`]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(GAm <-(F(` hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#]8 F(Z`tMm(` 0 F(`@]0 F(`@mQ0 F(#mQ0 F(#]8 F(`P HmQ@_0 Q0 Fba-F(`]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(0zmzтbQ0   hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#]8 F(`1mQ@{0 Q0 F hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(T0z0mZтbQ0 ! hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#]8 F(`՚9mQ@0 Q0 F0 F(`@]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(3mjтbQ0 ba-G(`]0 F(`@mQ0 F(#mQ0 F(#]8 F(`|mQ@0l Q0 F hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(] >mjтbQ0 8 F(`@]0 F(`@mQ0 F(#mQ0 F(#]8 F(` vmQ@>1(`ba-F(`]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(FAmrhA1 F(C hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#]8 F(`mQ@(`0 F(`@]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(#hmbh!1 F(ba-G(`]0 F(`@mQ0 F(#mQ0 F(#]8 F(`$ >mQ@bQ0 hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#]8 F(`_mQ0 p£` cV``Q0 8 F(`@]8 F(`@mQ0 F(#mQ0 F(#0 F(`?mQ F Q0 Fba-F(`]0 F(`@mQ0 F(#mQ0 F(#]8 F(` o_mQ0 `"0ZHQ0 F(C hQ0 F(]8 F(`@mQ0 F(#mQ0 F(#0 F(`5nxmQ(`D0 F(`@]0 F(`@mQ0 F(#mQ0 F(#]8 F(` /EmQ0Q(`"0ZPQ0 F(baG(`]8 F(`@mQ0 F(#mQ0 F(#0 F(`8m F Q0 F hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#]8 F(` }@mQ0ߣ`"-(F(`a hQ0 F(]8 F(`@mQ0 F(#mQ0 F(#0 F(`#mF Q0 F( hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#]8 F(` M@>mQ02bQ0 F Bo`Q0 F8 F(`@]8 F(`@mQ0 F(#mQ0 F(#0 F(`?mF Q0 F(ba- G(`]0 F(`@mQ0 F(#mQ0 F(#]8 F(` @{mQ0<ߣ` `Q0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(`(TmF Q0 F( 8 F(`@]0 F(`@mQ0 F(#mQ0 F(#]8 F(` ^VmQ0| Q0 Fba-4F(`]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(`8Q0 i тbQ0 F(``` hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#iG(`6mQ0"Q0 FY0 F(`@]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(@;` тbQ0 F(@ba G(`]0 F(`@mQ0 F(#mQ0 F(# G(`~,?mQ0` hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(*`t(T BbQ0 F( 8 F(`@]0 F(`@mQ0 F(#mQ0 F(#G(` mQ0`ba-\F(`]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(`Q0 h. тbQ0 F(  hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#.G(`mQ08*(F( hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(L`hQ0  тbQ0 F(  hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#ʋG(`:;mQ08-$F(0 F(`@]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(hg0 FHJ BbQ0 F(baXG(`]0 F(`@mQ0 F(#mQ0 F(#JG(`mQ0p`` hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(7]x< F  тbQ0 F(8 F(`@]0 F(`@mQ0 F(#mQ0 F(#G(`8?Q0 `m N0ZHQ0 F()balF(`]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(=r|A тbQ0 F(1 hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#G(`5V`m 0ZPQ0 F(0 F(`@]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(3`, тbQ0 F(#ba|G(`]0 F(`@mQ0 F(#mQ0 F(#,G(`Gm ,-(F(`  hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(]P< FhA1 F(` 8 F(`@]0 F(`@mQ0 F(#mQ0 F(#0 F(?Q0 Hm`Q0 baF(`]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#0 F(%> Fg``Q0   hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#0 F($-[Cm`Q0 #bܼy@aQ0 F(t]0 F(`@mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#rl5IENDB`phatch-0.2.7/data/highlights/rectangle_gradient_cubic.png0000644000000000000000000012521211346363116023473 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs  tIME 5e- IDATx,;>t!&b nkSˏTzWwu<J9:U"g~8AIh?vX{thX{J <|Ӂ#vd}U]?1Yw & 9c^<8^yL; KcC63x$4M/8_vf6>C"&ص_l~ohˮ##$ ! j.!ESU7AV=|>S{sˆ /S~i _sf$ ' b3hOw`O;u2t_FzzWŠ_f7}tOqM6՝}>Mg gҊ?? ?='V7rwXҾYs7U'á~Z xeߑE|Z{l`ehYxډB~43"D@DkPnN`EUY^ExmњeR֧ԆR lmf4 ;D$؏mRږGzH-vMg4,7CJP d_!7$6w1É{sEC3H?(4ŧ!_ϳ{N̽Ez,bG~?2klT: R1x '0~V#lѹ~GaHal 6ګ{)b02%+g=*%Ix@#@_H<0g Kd|M(mHKѻ\E\9IR0 )Lɬ~d K}*UA'yWd&%>+}@/^d Y] I/gܮ+ٷ&~86?Egػǒ.Vq#쎘o3H4$[ۆAR9:Gvzn"1iXG[eUA̯&N0QiũS̤>fD &i`0j8u؀g+R*z;r{Mş fl7fϟi@@h娵_> 5^2%Ǝ6xJksŠ~/mS*E 1od$\߻fS,8.%/}oҤh}W MIWgZےW&+{FR8q YJ:?xˣsq|'D/ts*7 #|ӟyu8u;>]υ#605tک7 @eД-I3oTwr ?-)Ѥ+A$/7M*4x޲Z@#IcMCVєPF}OnG憷sZ ́56mgu8mEHMHsҞCYo_ϭ>wwXxfJ. hކ3# (G>| >3醽E;uzЃxMF둛h;a= 1cl/@<\WkGIw||y =y{[wWQ֖伢SpBX-^]*邬 oJ:.ɾ%Iߓ`+uCoU݅Ϫ S/QJPNgvl;"!ܮ;ӡ: uƎp]ԯUiH;VWh刞<͎6#XXoW/*bOomJܟWJn ֝r\);}W.vCT.Xje< zVM))U$NVw/ge?Xea,ձsֳ+yדzUH/ysbGO% E*Jz?6)Ɣ筜ALMҹAR_>J.Px>ui/(&I{W*$Ɂ~$ k$@R)cY"yu6 vz* ڭfV@;فoZzRd\V7~\ tL -ssG`LZPᶢ^K}Xo`?Hdv=cޑڟJtE|F`$V`#DDVt4*qڔqg`-+;5Ҡ(y|iJ{\(P lOEh[¥Q<I=$~#SI׽A9[Ylh+G1KVSW-ЪR:[_PON•~<2TUѪ*j>'`#U8 o` LV+$>q|P'tUNުU7򬄃cJW( g:x xtzH?~1P@>81tj5Ykt77Tפ;|X1?Z0*XG,7 /l]ƭt*}z[6aa8K2|[@EX=㭓mp56mA"5x'c|VñUNl=ێ-1:#ڶӜ;DƖ 9v2#]$eo{mQh߮j[}Mpf_UNuoW=^6E:=`_$-hN\Z_|vnW FJ*#W5P[r sriu{8QW":jIָQ_ӡ[j#F`Dپg/ Ju7kkkQ>Vq^E^9]q PAKy Wdzy X?s zį2[zDNE^iG;|.e :ӓ#ϙJ~*-f^ _ D4b;K]\ 6Fߞd'T:Sd<=X{ȗxޘ"}x2AF &I]x=% ̉+Tm?iV8|/HE2x:c6FrTѕ #Gl:Ԧ% ʋvTSV;tFr@[Wӱ>seM#w)i'#( ;Pc>jW'j~0h&)tbaz&b(mimñt?ZIƈdVxVt>_H͐!;K%ٮ{]O[!©;uВ!ӢoJ [iؑ?SLю;8"|%UIZ TG0w@Bcxu*#@xHV^򥣫KdRֶTH&y"-S!=h2c ^Җ"/i|ǿk{)U2GQ|DlUH*mvx ȀYj%ElQ:em>h&#mv6r 8f\cCPZW-71$O hMxBWyRS^TR#twb6sI[E$zVdq*'x)ob-M0j ;@=3; ȁ'.'WT k ij-E7.YwT˓ajIr՘A-ix6 éL*VMnϒ*\5@MU*dU$ZgSW/jZ q/bE̒^jIO;@w>X@NU{D;RH)ݻ4 s2R#I4IߵlJĻ"~NVV$_G`6Ⱦd,o5ɥo8!X`i.ci/ck7+e3~o>Ii 2:\O 1+2hN;TѨ- dj6=䪔Dzo)6v#<1igEET""-rR7RHdhV\ų8dVC6v7y*x|eW+AV6wWxmd8I'mɡ#ikۋh#ږѶ!'3F*鈆Oq ۇ mב‡=hGMC&dlIی{>@-T#+ҫ/l;vtm|Gؙtj7z@$I{&]GG|Gdؓu>C6:hFgMlDM`+1Ⱦ#Yhעf-9 ѓJFd%BǣW)_JSD9(Ave]Cz)$O!ૡ/Db%uAo'0W__ 锛֞V4gKn<:铄vo IUZiξ}T]OdIq x5^=钿qx<y,!< d}Ł9.`C ]AѕxXN2ZI+DYI~-38hyk8覉+>SkEmu5)AXd+4v~eSʺ`駕@(:xQؑ7] ȓ? Eb@DHH< -߫vPHJ:7vPӱ-zʫH%rSoo,+lkW&gkb?r`k=`TQ vҪyE;~BЃzFvWԝm'╹>W}? DlhwU:ZVT ]-=WFpLu( da}&*hL,4[G#Oqxmҹ G2RH٫;ȋpGU|0xؼ線@guk{"…"nP&U)꼁ߢ,Cp$)BgM;fӨcKl*>-^5Ὰyi7%A~J}V^+ϿOd!%O9%%)qIHcd"Ȥ:IU1|ϱn:byȃw%)LK~?㍞& q!]<427 O¢|H%ɖ!nbe%|LQR/ExHRPp"& ަQR"m$&Ied9q2"Lɘ+4'o^(@'̐:׮iϿ5@] r5ȚW^N)1lŸ>O^B,ƯqrP ʓ_SHs@ vdoeK\XS{2Vau,u ٶ<] _ WY>^+PZQ=<ҦUVV mjTؘx P7Z H?¢v/T (}xQ[ Pқɰ8 -R +XeEЏgUԋC%7h2Bo)?$n:AϸS+]XoĮqW^5[莅q`*UűYyڲ,2ȖVbg*\Y+6y]_L SqnNg:|AR(nŏjj3y'a7$xc 8zMȞj֋îqY}Rs/,P|S1xF rxz7X7VUyB7".l^Cms`;@N֤)v2#a|lޜ:R~Wf||5X9 %:;ʼ+o՝a߅`X&=S$HM>FCww%l v 4c gZޭ6SqV:̳pv߈Y0g}n">x&1FwzǶϝqW6 9b|_zb@u @Y@U 곊O4"l| ҡ2*ŀvbhzC@A"@"So[WNrԻoD'u `Eo$g2}[w•;y ;nx}8}67i3@\qd&,m1$S%e%2m)ڝgUވT)sȗɌҖ,e{J?('8IP5B^ ]L^Y81 5=D{oLA…tj}x2vbRmmk<<1NB%Vlћ&c'ݱ-. E^o4pGS4[Y l*НzO苦˒͍W蜄G֖/jaxl;|pp{~}ը_iA1Ͽ;)vGMn{MnZmpr=G\ D,:c=KX2iǮ,>r!CN9dԂƼOsII/g3ڄ]UL@">:[: feҰ:v)rmkET|, VQkܤ|Gu$/Ez,yWҟ(*9i67k~܇LR Z6Qpij(I=NX㷐E:3_LYr>Fsl+!&agN= ~ͩԯ<`vWlHYAIGH>R1hW#%Ж>0ɜ7vU%Ц䬪ҟg{N;:f,IM88$DIYD!?P^JЖ E缻|]yd9h1ψ xt*6gjW5_9v`uSK+yP^DG?ˋ/ >ݟ8Ĥ~I19/ KT,f^xR" l$iCXVِ x`cxoB^6K;167H>A#]l~I~l_n ?gK?{I`7OI% D@gS@CyI'oR0`..@'ZXYXZ]IۼmiWQ*ue3-L%η&ؖB)msU; AF|w%ʴH]x+FS|뿂jIO5>*@چV\ޭ\G!a||urۼ~W^:5zm3(ߚ?v3_#̐|2w}Kg}>z}7;'ǥE_1.=ȫSqwsWd|W8cd܁]X^޻qd g&H>H)bwD1~@GPߣ98V"nd`&EV ?_1x漣(f D#E5K2t0 yy-^)F& n  0EmoMݔnX7P7 )6R ؋1nPRl!H ?'ߤȡ*;Fڍ<4U<\LkaZŷɶFy϶v!ytnc U+O¿'}g[qlZaX~$p qAt*`Yix[<{R,PxN* ҘuMg46yRbl0}_eN+R&HI~kR@D( O_S^GW+\o$?p?sU<6,s p^C˪&[%hRIr`a*˯"A:2" Tx1asU::k RRp ډ`Dc 6]2O1 p $&C^a*|Oq] fp–)Aᵼ||0uEG|N>bcb>G:ꄳ:AQPe R O.Xc8[)֙P mxk4/N~.!8Ĕ4t gﵺl 56G'"olp.ڷBâ~Vu[ntSzeCgў}cgux`8d}gO~wEo9 h]cO| f kolkY_RՌa FWP ;0gp:]h r#gg͉MS-|Sd`}7EW򝥧)vkpxA#sG7pO'ߗlH x@ig`cgdG~y5Z[Ȃ%xt6rf\D̝a<*;ümTMɐ$%@ "76ho yD$@F/^ZR!+< XT_%| |ƭV&ъSx}G B[ +yGh)x>"*h͊<`cNo^vyls`@%9(A @Fa%PFx_nA=YC(+"I껐q\R`$k$2#3 DdOzA'ړQK1~ يz~%H_Exr7 h倹 = ɕ>Z1ˮ'ð{KcCq(a EY7=)))) к=H?5H$'@JI;Zj2EAq )UNxi0A3ã[N4zp!~HcCJ4;)2"&p" i ~Ln"#+Q{F3D\';fw;@>;u@vd]!9{r~M<jCr)~ejx+s](vj;Zvocĺ/bkW8S:z%^ޝ6ѵĿ+| 5|v9-f8y+"[g9㳢#ck؃!ZUw$ w)iXy?sttOgKִz>v@+  t `NA;v;}yt y|5Hdǎy~o>|7Dk7Nz/rwt|Js t"W.M[|n(rt >HK d3RZ5󱽪8:9E_s+"*8!S@[B N c.j0$'NE&7b>knu`lEw҃ _R3R($ S"B)Qx$gX[sUIv$'"=l#UQ!ғ"G3O%迆O/d'뉤k3~ 17\49xhT |=zi81~뱈>_ nhl*5'm mVrUskkv5mq[@]my2It*mh}Z`MOF=MƞgD@=j}K6kN؄Szn Krw|-`):n!D݁zg_`L=hZsU̓oUTZWCizhcs$cul9 cuVEX[h7&)o*؍h5&Y%O3);Z ]ī_# Ȯ$iCs'pB[ vus|WxM&FoVq1PMmL+}<,;VҘS 7IY5>zDrJr.VS MR)8F# sUy?]Ї lRj; 6F%M=RѮ7c2hC?id l[&rMirk^[tRGbM_͘&ߒOs̍~Oiz|_ϖWl"e RPTG{ARАF`kfmJrDBN͸A*hmpLAW3j+@OU#]@A4@2 'Pr,<۴hO ȓێ&xGUWg=J,ŸkЛJr] Έ4ĄivCy(4x u#*Aؘ%\ lIwDDalUJi M.<,l{ Aq9)VlEtx}oy#nh]0bdzbDZ0'Z/\^Bwy8Cʶ$0OTIն's'{.Z߮l3{kJ[{Ǣm'i->M5"[֞~{WY[ymn$9 =e@{x}@WNqH?1ο<f~[ɾSYJ < x\VSj Ϛ(}Wl?92{KհtٕWגus纁gI9qlt k5߶ƅl݈]{4幈ES(#$;iuqXM[[LjAzA .eev|EmU 0Pmo5w܆xI[VVA lM ё8n5cBQNK'+?JzsĶ26vCj k< QE1)*q@iN RWcsmmWEON8/@g6,m7'I lwKuxS]wȁ4sl>"$ z3# f%hŀfjŀ7*āBC1TN`dɱ.@rZmkRBz3 g`KHΥ1 iGV`vj(_'L%|=o ) ϫaLӆviR N[ڜbI<~XAǠBM^[xAfǻZ1Az~'{{={/`kU> &D8MvSZj#\ ݏ&F84./^ HzX w_EпB=b+*$(@GV+$'O W$B0dLSH/OAz)|#ۧG9t2|#R#ƍ-~R[iPJL¢ߍmX~o(.;eXWxǿDzk$LyZi%)& zG:6L >񧥼Y ҫJuʑ!y:-:T}8d"aMǩy5VBucG<{NHUs+u$t^vÆ^s؟7pw&aT ٣Ӗ>"ُ6jA[=2Ã|šũp^cV p9oh#_qLsE4FRk  $ ۋ^?}"";jjKw\x%H],^<(x:ܒW1qڨ_ǖ,Tԟ35l4):42P`^&}7~js9|a%Uxk& id'2૴dNJ_~'[M%%p а;9 ArJ;? 8VZO}m~DKz8:س]"bޥȈڒ/1 WO&aUR_m֡L~R7}-0M0qX5͗H5WR3hNAs'68;‚fc/RRQMg~ pT^;yɟ ϣ 7<.']9m[O[j#~l HmAv*xS:VD@_ ^Wp)RF ]V3|L𒰋\G}J%,e5.WcӮu}]Am8E׈ ~}f(3Q jzH>U@1RaDӋvǤj# YYL;Bv ; [ѷZU*B}Hv{^h~2z&":>CVٚ D_^cXb3cw;^_]|_m$ߩmA[\(pjן -g?p)xw$PJߣ@h$NXIσo{N焬Z흓7p`;pf1linZ$Xz#? `ݭˬl%҂'ATkA!)| $`GNç2T,~/6a@ф;6tn{y ǿ~W{x5H<;; F>)4 O[oP`K\$ˑ*]5t g.j:ل$kM1K1b$g)Aӯa؀v*rB,!G[Rt?$h*UC-МڕabfE`ՉJ8Q|P{8d'ќSLVw8WJӮ(Nc+PZC0*m̞Lo y5MG"z{{ /KԮ$'#` Y䪕w|^[u 0Ð_( ~< {^F3ެÛgU4޼H{iHaՈjH~_e [tݍ5@\$:W (V 5@Xo5@iu5@ k5@5@sH}%}~5@}jD^$v]k^j@mRwp"mWc Nn4ml"G㕶r*ؖs&-i(}#lJy8c9H<5|SKk)CIo΃>H֒ޓpSMV^I:JEa֧t<`rAc;Z~-+V-UPqWtCϗpֶ9_M솜<kgKx_?yD4Z7 X3(ˉmt+6M1|$dO"iG)_ ;d#f`"@w<#]:[[:rLȺut ՛LF]_W =0:g7|_7ysM{|t0b-0TCck5"2))ISL9}k8IϚϙv֍ΐG.y )xsL;Mdx0rt:.Ne&죩|ΗxhÐ+:ۍʎթa 'A缃 c"xŹx8_=gP)?VfvIY]~}2>~^mޯG;ʄ82"mIIIroQ6)c2cIX:tv'={{m8Jù=YΒ!NK x*8KSQJzKmw!}WkPl.|Vk7ca=z Ir˟q]@T1Ib~]dgsʑC JPJ)Ȭ)8Rv\YgEhB aV J`0aI-@1-0?[W ,Q?,,k@ X +[^X9E&8隣OOUx V)m' hA, =}32Bopqr譗 ;]N,ևVPg;ᷤv+h+jZg£gDk*x~|:ǟ/ mTgV Z?J*AآU 2RYByPRMC1:d҃ZX:CBRg$I+-,酴ۄ0pNdH۬R~^;BE۪ 3M1.oRЗ{cJ())))))$%%%%%}m*Z`[c<-7=yDT7}lGN m"ݲRB-7ڠ 2 Es\RzTK=vW>A?ߔΑqV"̣6vҖ߅y7knŔ \$%%%%%%}u s"jf''ʶgگH`z:p6\xg=$+wAփ-%N<]014c58_ Ih%f_;"?#ps|I TBڜ0w[H~"Vߨ^]8EXe:#ҳtfeCi/jHZ0Boߓ~o7qMo]Esd?0(d_LЕxN~gFaeN+۠zcD'QJc.'T}F4F5*HUۙ ֕3IH}jU/$h W'`~fBWjxoOyb+MOpW |f >[}-v(Jb SbKB `_=VlEg(ݡ;cN9%批4] huꋈW.Sҫc><1?M .$i![{0 p4>Wyb>UKb7hgម'_FARRRRRѝ;tW։yb 'O\ 30yb?y{$߈{bIz=o$iIbRb 'oy fGaQRyb'wADTO. 7'yRb?aЃϵ'>HybJ_Kb~'每9Dԝ IDAT"ݹ )yb'yOiᔩ~ ϼ+aL<1O? ~~QEB;NՋ*1O̿<>vb߅2nABvBBcL<1Oeޞxezea'IybLge'Iyb zH̿Ź%ybd.ޭjG B01=1O72_n{l\]w9$E. >]0 wW'%yRb ܿ*LJ<1y@RRRRR.@RRRRRR.]C=N?~lY 1O<1B;n ʜ|h$+&1O̿1Ho|`NBRb'%ypr?%yb'O_$%%%%%%e瑖" \$yRb_8%n.LJX|<12s񖔔]1A2_ub'% [gG{#}b~=yb'y( 56}r 61q4M/ż9 Y7qS_Ϣ<1 y;1w]ߩ351sU $pg;;'1Oe2r)R#)1O̓e(hH&c'yRb (+RB50i#1O_]%1O3GR0bGIŻK70=ߏ9j'1O1O̓i hY<)1O_ NAڨogc<1O;ԝ ] JO?so;yb{Rbe|gY~I<骉)q"˜H"1&yRb_BRhb'%y.@SM_=1O̓ʧ9KJJJJJ.#/ ŷ>ލ +gI<<1pk]<'yRboYyɳ7s21OϞ? ]\eJg%j+yb \1 [q0p5w.FJb~'߉{}HJJJJJ2?))))) YI'yRb' +&%%%%%+))))))鎷+rG{kKNI2Ŝ'ybp(= )M ߃{b'a}\'+yb'_]|$yb'WEmG ljBWTpO_so`|?-?/(yb'a} >G<1OJ%:Hy$1=1O̓> BDI*)))))(W{IIIIII_HY%_{b'{ϝ<)1Oo<HJJJJJB#{Ww?yb'%` [F'('yb'%"O_p&PY؉yb'9 OW\_MVwr4٧`NyRb2 (|*Ob'%yb~!A=6Js?iyb 60_yb=11 'Iybt;'HvdKb'1oN +]{~y3yb'Oügj++u1ה&1O>ϣf£0WZij0H;01w$%%%%%}55aћ<1OJ.`"("D +1OjW1cuWmq@x H"1opO<1]|hMHJ<1OO#LJJJJJ>j/_H<1OE3 *'1O<1Oo"os5T7z?4<1O17o 7PMlsJqO̯| 0[7(cIfb'`b^ 0w>wT_ Ns <1OwϗLϤ+2_݁Or̵ub';a7J&I̓<{1v鏓9 pGb'_ v~5u ٤(Byb',7vܽGcc8<)1VwxRf|b'yb/ vHg&<1OJ Ek#'1O̓<1Fq "$yRb'݈y$%%%%%}!](|J0qߎJ.y员~s-k St? - }S_"7L ?I.S3x >\'5|#Geܬgq4yva1sMq!Gh =G}(<^^LȁyqbߔI.si""N櫭L~UV(d=L#;d,wL{Y2W}G+x8x)y}'{8ka^.ʍʺb :<1ߎ~̣:G>IyXY)}e*7+zb|M̯SI/td=/tI̿f%1O;;_]wK7%yb{Ɛ'wd"|h+b#8s-υ3gJ0o|; ]tU?LIga~'cetBD%CNJ_<1O߄2=)1OspIIIIIII\%@+Kܑc<<1c̽|Mob,]_ o.v4ȕGy$7`~wc<1w|2=))1O<{bv24)1O#~b|I X2I]߃[&󤘞sHo yWU){ZwGgh_Q<-g{w{;ި?zڧ(7l4ևʘʄLۣ1}D7h Э-rg#{ڦڒӶ1d7o! #{xr:eHA)Kf.gϋ⌧C-{|Gxaտ|0g@/C9Ń]t,7MYe.wr wr wr wd$jM4$wDi M'3wL27t`uU8O'(Ș#㘛dg{'5˨?]DټA/sQ_snѸ}Y!իIv `#qn)=.桀7:mƘ{7KGܚ(7a#֑ȭx(B3yQxCEy.B f*-F*'uzn$Q31KF[E&]<1~I}H?dɝ'Iybf roB31O<1O̟9F{ t9'n!%柍 yb''5L1`n3yN@c>ܒ<71u'[r'Iyb ;0;{b,ORD^~\ן'cruN'1Oܻ(~Gω*hxs6ybM#@dp3h WybI*ƚ'[w'WIIEy<1O/\m0o&]r^`~tyb ,ږ`*sd'Deqos2 C551O<1?s Wg*}I_O=1OƼQ͠%1O<1ߏYܟy.+ l2oHe&ybOo'JZcEiX<1 $[-RAFSU~b+qONFH31΢-1_'}q,IAWN<c >i)=1Fk F<~b~sCcr6Yb~" cFW JJ_)&%%%]V-ᓰ YݲݎW޷XQ_xP?t/k-DzٶEq6-O>ڍ; smΑwDOC3~g| kh2+nۭ6&s{t6߃WRdi:xY9q>KkwAN8_J]8,Dd˒@|U:{w)?>ʪMEwOZWBƇ+H7q^7 Xl_ug]”'1gfTJӟDz? '{x -~nc@cʺ͂x ixU@lI\?yu߇3C83Gupk$֤fe&d:|+?];HTPq},G_Խa'ަ0=w<<<y1UU̲Wų>{YZL6VvpLpdf 3:TUO7t jLk+ƫceds9~YJ(>C͌f >+XD*@ Q8ÞJYgx\wqdY {Ku}*E)\ԟ=Wڞ+ W@o `_s^L @m'g?Oc?AO<xx<z yyy?|x`" >Zz֛_NTݬDV#xG6uTm G N:fx1a|t A=mtN- f8J zG=y rraQϬ)]ܱkQU xyyOQXJ'{f2=5 KDMWlFy&5+hk4v;E|Z RՇVBg"XF_Խa'ަ0 3*s֨.MM`8Q2|p׫f j9Cyy߯_ Z2ƁOywL>? xT+[z/q Ap2xv:=EX9td'Ɖ3\׊_u>o%=~˱~-z=}Nn?m> B}"t $ aSDIjSfGc.a#x+A 'U>=z)سgW<W4e|3g~oס@ổ >C龌xu.𺺑;G3yB~kbA#dPLQ|n:QXiN= 0crKX D̞Ȣכ4aOA8V=gHqe22/dOcp G:kzc/l7AVe4NFFW>,n @Ky%B:M~+ K r'wlF5Wx\+tޥ{voϝ}LzSflOaW;sc9*K-B\S)Vk IDAT:7l]ŠjEgS4y'Yي pz ɒ|֋0AH1(xaxKQN!yauutA4yѭC0Z| ߅|<wI?) pUޙΓ_~Lt2\voWti eE){糖6vTn0Rђ!m9q o6;q!|mnlq)kaRy` t'uyg>U`\(1@r~;3Aqx+WG2VxC .fjJWJgj˓4@uxZ n\w Aʅ*!+xe5^@gvfp+*`N>7WV0CXR8i衬]Ti.L/Pr=s$a}UQ)5Xa㥛 zS5٬wc)g`i}6&aF:DV^['чxIH%ȝ,TD`fG ,h0>1xlj^T38RN;UCt RQ+;T(p?}TCIwiHS޲ 'Q%SʦX H Ÿm؊d3X=z8fR(Bot  Q), b[sA3ʁcӋlYg6g'>Óg+'ePZhL!E/HKFz >v˻2̜zY]ʿ߽o4J=jFl*!tan5yWm+Fcu{_w|:_1!D~J1ܝ+Ɲ{ؕnеˤJaAGk)gavgW~WTZ2URbl M4P*Eon1k߁qbc3vq1}C7xIYsgד5:_g. FU0rm_ͬWF` W=l~o QꊚdeUElzWN ֪ČGο;l~:qͧDB f:ugy;D1-:N4ccŠq߬"W#ѕ( mGJYΎFDŽf9LFS{}ɉߦ01.oԎpIΎ1W]~FX<xx? `ֹkX[g:'zVq|\"h$PRXer{:*e P=11sl@:#Fj* _\x!o:]x!o3~F`P%!E^#w+vXG  `Tp\sV: |:*)! yyyy|X(e% pyV.Qun|p;\$ܯ)XuG+Q M|jgrg j^4axϸQePI|]QÛJ9{I{ŠjAKk7-AJyOhCGd)i?@_YIGD–Z 3eK&Vi^mixz&ϔu/d3\KyVU3 ߰}W ЙA?9}J!Umna$aʁh[&lPuW;`1[JbZa0(գBvDfoVHH8VNDz3/TE ]r ]y* +`?$H:Td}WJTű>ߌ^4Շs%^t IGߌkZO_խwv8} k8qzڕNny/hf=р]k6𝓧'N[>~P] _IC#zrf~δwfd `D.c9u ڝWWe,uD𾄰~`Ʋ1rwN>&(Mߟ_}un6 WpÊuٹ7Js}qR\!Ĩ@:hS7fuK xVl<3PLU"nyéM9q#73Op; &Jezs8!I٬l.00:tZqFޭh"TABs%.B@{!ȍ rO=q+\~7R]&Rl8Ql~ilpHv̰B+c&XXY Zl:1:Kd#:`4aa!҇]w3QlWr7Hx|G?q4e&|epG^295 a~Yqad9+4MRdnN"T;+`ޅʲ bAlȻb;QA8P k;0||11Ug_7(kМGU(nE$fgǙMSXǤ.,ٜ} [NPR*$[J Dy؈YVk`9'S ilnL%@BUBЕzU>g%|MX]% fF[o'9b sTE)JEUKɅ `DptwD=ywq©/35vq;xSxtJ93KݼV'`5*veL3.jFi|`vOA:Y _[o5)8d l~aRtE7 [фuqgK7}caylY*N#C5+ +YN❝n `VvTd(MvtNtc%\h⮫[.gwVSsf7@:\$_^V힦v4^MVnU\p_2ʭ%0\1<пfn~ by]*fY_ @g01h(%p!?591,6wM;y#Z#h?L~8k5SFѺ@6zW9OgiUn O紤Zc( {X^-V5gj ΁2g ךU]pY#qg}/\;:SG^{ό < J|4؋TVjN58--Oyyy?0Z f4:̊e <)~Е*=uأɫͪB4[ߡ{h詸Aq?ǂp?6εXpG3 F>̀;1diN>̀xD4۹oF"OPJ>]̀lf@~C3 ki R8-SXfZ)ĮB@h,‡cfb׾P_T0S8!QmPQ&14Vpf%#j5pG -|-c+b5Z;CXL3t0k1㪮Rh+8 e;[$S; [#XxTܯηj*|]hG!]2/B㮜XU[ vNw YWs`R1( khw-T0G-`UN$ltEFY8~~3}b3tT T-X"89)XSb3^+RPg"WWNp0Y{cDzCuJXTwII1*ڹ()88݊^[ g 08}/γbww|M"Q!6YAx&| u PEc g#Qf޻3Nl7@$X+*( n ~7" e*UxE7@OJ7B*tUzSPG\(A L9Gc͊&"}+2<gtBuJ҅uZ @3>S\^;*S&Kaf>籴tN` +ClOVܰ!Gi]++VwꪌL/9g ݳXaʂ3v3~#} ָNϺ4HkDq̀|Zf-FϦ1'*^FW9d3W*dPjt90-̕Bf@`mGe$X`BJ'J0ULoLǝkcIgŅ2ql%cvWU *˚MS5X J_\ڌﱠԇ_I)ޓh4[`cAe0wʸ@J,PV*97Z;`%JIw:lH0qʋ)HBC₢YiR[@J#ƽI)$dx1T:#B)_#NŎdX*~R9ūU n%l6ݒªRv `#k^!eK~?' ur_IcKe s*4xvts>+מxܰ}V`˜؛G)e(O'J^aZO ? mFS8pzAkuaXWr ^s(\2 ~FL{+xX~y / &.h]CSSH6 $RJ!~0=M9>diROy{ι׭h֕.oyѬ;n1y1 (ǾxbX)Nz;rdttxЛmՔ!%]{&G/d9(wKYIcUFٰOt++vKJnʃ7SuVw Q+Y8SpѰnUN58+6s xEYb b<& 4z3*~PtEuB WYsgQ䊾eEtQ+ЮT]чfq{%\kY>SQ2>l-?n~5f'k\s,8 )cd7j:rʞweBҙk[]t-j70AT cV:殍ƿoq1jO07sb 8G:62> /'I <O|=O1a{p qQҞqs\sTy6]x>.Wi4މF9ԳHM\\ S-fK897FVx;Kt'hnLeWVL #`ndrCgTzI0Bfw,If.Y_Euۙ)c3*΃p-TuZsql* Y8WgFm7 <*_;ƷE֎Sl&vU@J!o; gy^~`qvtA "T8Q-;7cHvmVW=#32PU.E[G-:nHqB).usg٘ހY.^Qid*\3 [u u2^ae<:鯻m\"xC%e͝}_Wb5ewQ_Hd.s"[ݯ|?Vcfc#zUSOn6nciͪ~̭n ^f4&FIQ/nlO£2QUB5YDc1Ƿ+U&e*c cu%BOg6~#s}]0?M?G ^KWc+ Cf,B0U35UW˫cAoT~cx-Q c@XX:8 P8"Xzk dX:x=jv-&) k qػ*?k )]bi +w]]21K1:o;wW\iH#o'l3:*?}K{S6f鎡\Mߝmg=x[JjHmܣt$ 0a@H^gx`w>U` 6Q:X uHap컣YUw@PUVf\2g,(>;O;x>NV0 ^@|W^5`rѕՙSduyuGg o*n#s ;zw6P, sGi$ا}Y IDAT/9BRp1-3^O/ce͐N(vխRJX^劬,֒f-Bƺbp^:(YZYMpeN0 TZdL&`, oŦN>1 ˾*38׊TadW ob? -;!ȩViG>klWSp翌ݮj?\^Jm[O>LVM9 mwXE@,廮ˆ`gNef`RQܳthvv_<9PWߩX7YÔVx]t߱V@nf@eiAriM+] !ʘfٓʝA @V:W _q~hMꗫ43 X\-qWJWv<Ezޔy:'Փ''ވ+<Y߹}I=M}Z9!gড়sWڼ|}AwEf>i;wDi:l;p~GpUq]ͫ][%껣7Sbe&?.2 erB@gI3 P19cSDAfث_^iZ4s\#ߓl N̉ m6wO:oqu +Hh: 63" F5o ) LFOĄ#r4 z//@x4?E*1gaDf;,Nu?J2fj rpqW'===L"do7o3rvWN+N Ca>[gM׳zgy'hxcaN=aDe3zITב8p6O:0,6Hx's阬6',ux:[c:gzڀpQ鋰0$l !Z~6E@s̞,0/lGa9P +1 rjd)ۨ #S OUm'ѐW>V/98aw|%hxں@dѐF9)[ \`Hj<4f-evsg;ఽ퀳{KcjswfcG8 %J6?pvѝ퀳h~f{G;ݴ > ^5ǕxM׼s2~M?/C;=BgǷh>T2uIENDB`phatch-0.2.7/data/highlights/rectangle_metallic.png0000644000000000000000000000667411346363116022335 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME sx -${'4Mo$` )ՆqU$_Jr$m_M$wnTգI۵>$קiz>F TIIro_N\e[UuO4MǹSz^<{ oi~ck#z@UVo,_ |xL\#lĕ$8[;__-U$~4M?6^'y4MK}}5^[&yp7^t[Uu3YUi>4{o<вO%}` +45{b Zv4\ikݽF"@Ӯ}3,icZvF8-h? ކmk-ͮK5 0.@F&@*7&f`=жu hvN`sͮN@V9]ж٭zC0 @fi:`a.pCв٭7j]7 0 @V; @V lؒ? ڶ N_hc0 ̮E@6v P5g6ͮ 3CaN@V` @  h`? Il@V{-h-`? @4mK?m@ض%Vl@n})}E@f]@V Xn\S5N@V9 lےpCв@o9:Ld V@nͭ^9Y#Dgw' @V  kv.0Zz, ڶMx0Y"0.3ПUzЬ? hvbmO)YZr][-04M* 4j k,а]);/T$#%3S@` 45mv^2$hx>&ɳZz 6ku׳6N  l!@菫4GIʣKGmkSBkSf6rA 7{ !#p xmS]6\:`ଡ଼`  Y @ۼ 4ilҫm@V[0`Xza @vڦ?Zsph`m`p-x'ln?o@I@@@@@@@@%9@@ol.%)4)@F4( !@ g4( {@@w @6=Fi >3Fi@c4Q 0J`4 0JC4:L2y :7]vS }SU zww@b 4( @c4t)%@;@8@c 4t=KN@@w @l4 ݱ`@ 1`@ }N@@wlp 4th>4( S;@ 1@hph `\` h!@4@lS4rh `@hSFi  4l{@@l.4( !@C4 @@w @6=Fi >@8@c4Q 4V4( S;@h %@@ 4l{@IENDB`phatch-0.2.7/data/highlights/rectangle_top.png0000644000000000000000000000402011346363116021324 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs  tIME6z߷tEXtCommentCreated with GIMPWkIDATxq0 EAbƕK)dl[/~eJ<ʚs:،_qc8@w ")@ @=_ < `, @W@k` @i@k`  @r ,  -@ 'o @ *` \ @H5@P[` O` O` O`  @@n * @@@ | @˷@ @ @W+"X@ @/1 h#< p߷S ` p]S ~`,@@@} @ @@ @  @ @ @ @@ @  @ @@ @  @ @ @ @ @ @ @p @ @ @ @ @ @ @5a@k-h@,@U@@c8@w@@+"lۿ0zIENDB`phatch-0.2.7/data/highlights/rectangle_top_rounded.png0000644000000000000000000003153111346363116023053 0ustar rootroot00000000000000PNG  IHDRx pHYs B(x3 IDATxbܼy3(`Q0 FbhQ0 F(mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#Ρ P KyA|a,,-( Vn^WLX:/f!k_8Sa-}c9jMb000X2002001000@*Q0 F(|e4100f``8e˖;$ ^7/(XQ0 F(d)6 lyCs! DFӐ80@)&?""lL1pv STH?Z鏂Q0 F(|c``X0{˖-1 6H_Y7 F(`P\a``r˖-1 . >> F+Q0 F(1004100h |av(`Q@"0e``86tS }`Q0 FPSNT#! (`vBA4 #Ho4n`Q0  L!0 {M Q0 F(F@a<5Ѐ0zq(`lٲx y (`&BO"C@? F(` 0օtؿs `Q0 {dž2BoG(`AXAFkGa!(`Q }||i).[ F(`Q >000lٲ=,xy (`Q 000̂֙4@]6F(`!*a&Y4dQ0 F(^ ~˖-hiC/-`Q0 !#GK YLJa6/`Q0 )d`@6~`Q0 F@!V薿= G(`JO6@h? F(`P ia0zǍ掂Q0 F(#8@VjzxA 5`Q0 FC=@`Q0 F:g``"@.c G(`Q@]𒁁v˖-a@h? F(` 300DS0J:/H F(`QPk-/e2 F(`iHK1b! RɬQ0 F(` (5xLjARsF(`Q@ЀֽU%Q0 F( N#F(`Q@n't 3Q0 F(~R}t gQ0 F((@n"wQ0 F(` ,u1YdZG(`Q@`g]LQ0 F(`Plo`Q0 F( ؒ"kGA\KG(`Q@ #EF"w F(`Q@`L&mQ0 F(CU'"w &?`Q0 F`h"yz"9Q0 F(@ Z7"g @pQ0 F(I"DQ0 F(`ȑ"g 8(`Q0 " 0z(`Q0"g `Q0 F(`p"@C`Q0 F( #U" JQ0 F(`9"g /"Q0 F(`0G"gF(`Q@SF"@£`Q0 F(> n"EQ0 F(`\7"7?z(`Q0":Q0 F(` amQ0 F(#mQ0 F(#mQ0 F(#"g!@`Q0 F`Q0 F mQ0 F(#mQ0 F(#]0 F(`@`Q0 F mQ0 F(#mQ0 F(# hQ0 F(`Q0 F mQ0 F(#mQ0 F(#mQ0 F(#=hQ0 F("LuWQ0 F(`Q0 F mQ0 F(#]0 F(`@`Q0 F mQ0 F(#mQ0 F(#]0 F(`@`Q0 F mQ0 F(#mQ0 F(#mQ0 F(#"gbQ0 F(t`Q0 F mQ0 F(#mQ0 F(#=hQ0 F(`Q0 F mQ0 F(#mQ0 F(#]0 F(`@`Q0 F mQ0 F(#mQ0 F(#mQ0 F(# hQ0 F(`Q0 F mQ0 F(#mQ0 F(#"g /bQ0 F(t`Q0 F mQ0 F(#8 F(`@`Q0 F mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#"g_bQ0 F(t`Q0 F mQ0 F(#=hQ0 F(`Q0 F mQ0 F(#mQ0 F(#8 F(`@`Q0 F mQ0 F(#mQ0 F(#mQ0 F(#]8 F(`@`Q0 F mQ0 F(#mQ0 F(# hQ0 F(`Q0 F mQ0 F(#mQ0 F(#mQ0 F(#=hQ0 F(`Q0 F mQ0 F(#mQ0 F(#]0 F(`@`Q0 F mQ0 F(#mQ0 F(# hQ0 F(`Q0 F mQ0 F(#mQ0 F(#mQ0 F(#=hQ0 F(`Q0 F mQ0 F(#mQ0 F(#]0 F(`@`Q0 F mQ0 F(#mQ0 F(# hQ0 F(`Q0 F mQ0 F(#"g =`Q0 F(D]0 F(`@=hQ0 F(]0 F(`@mQ0 F(#mQ0 F(#]0 F(`@`Q0 F mQ0 F(#mQ0 F(#=hQ0 F(`Q0 F mQ0 F(#mQ0 F(#mQ0 F(#=hQ0 F(`Q0 F mQ0 F(#mQ0 F(#]0 F(`@`Q0 F mQ0 F(#mQ0 F(# hQ0 F(`Q0 F "`Q0 F%`Q0 F mQ0 F(C|F"gg2Q0 F(6]0 F(` }@r " =`Q0 F( n" =`Q0 F( n"g.a@`Q0 F`I"gdKF(`Q@S@"@" =`Q0 F( n"e˖Q0 F(`" d`Q0 Fur4"@ d`Q0 FY "w,F(`Q@u@V "L}`Q0 F(. kq>"e˖o dl9`Q0 FU7r6`Q0 F0: 0 F(` , .tG(`Q@𗁂"e,`Q0 FE.& "x M`Q0 F( ܧD3d ̀`Q0 F GzxD`Q0 F( ܧdt!Q0 F(` (|e˖7 GQ0 F(ou/Et c``Y`Q0 F( nSd(`Q0 Fvm˖-TY{J:5`Q0 FNpZd1A`Q0 Fm7*-[C-3G(`Q7( Z 3@N䣲`Q0 FH|l-'F(`Qpja˖-/F`Q0 ^Pc?: \d``٣`Q0 FHia(Ö-[1NQ0 F(9;Ia˖->Q0 F(`7к&Y .28 F(` ~100\i:@Q0 F(`:f"@8زe rkQ0 F(-V f``xO'F(` >3@գ9bܼy3=ab``d````Q0 Fzl=Yd4 F(` 𗁁,* 300Q0 F(`pГt @=xQ0 F(нg```{a˖-FO `Q0 D2b``0Q0 F(noٲW4 F(`Y3000 ?Q0 F(d@;Ö-[>000cmQ0 F(ùG -[|f``80zb(`3@<E @cQ0 F(xe˖;t  v(`Q@p4S`FF(` =𞁁`#Grh(` 200<-~ m Q0 F( x9@;2  Pd```hQ0 F( Ar *(0`Q00'dP' hc``Q0 F('=At9#:" =n`Q0,WCG6 .g``hQ0 F(54Qv afa90 F(4𞁁 -[h dm 2@| G(` J=Z# ti200pA1ˀ:jQ0 Fֽo >  l(`g@4 f$6i`Q0XĆU?Gbe mQ0 F(#Q0 F(|mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#mQ0 F(#&)1IENDB`phatch-0.2.7/data/highlights/shades.png0000644000000000000000000002372711346363116017764 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME 2B^ IDATxr긶Pٛϟ.ebCcT @5?MRz.ϳ}zmjm~[mm}RJbh\n®'l? _+Gxg}Gn{6:]n/`y~D;tBHwg-<߯ 3S|{ 0o)G,)YzECAoG@=!`e)F #<{GSW [0q¿BQa  J#-#?/ݖ SJk@o7@!`4vj[J]RGY ;4oܧ#|ZjfG KR(su# k*U|}H'`6DVk?*aT_ }gD>r)@] >/L{ ZG)Ÿ =F@zJ \8>WoxM 0H}#}5n+wOo_3'o(S.#g~4Dz [We֌gG#4XsE?Wka z.:n 0 tFVWsHT + ؔ@ h 3;Lr! U~619o_$s* _лpt_G (َ@k `fJ Rs߷#XrgTacſR*# #".3m< (<[lsF{G}Oj7Dy =pJ@u׼5 GlPZ X/Uk?ogZ - + `|C]#1\s)  u~O :?sgu< ׋-9H_V*x 9d `eS{e뵕^W$dC#xv-TK\z:uoY^u^A (:m#f _s 4C(s0P 5 uP9@Hя\ S0˙[kXRyS (DBy޿7H20eXQ׾ 3@;6Yk]-ak+ڑ d!p:p]#ſ"{ev[_ρ{7Y8zD@JcWjzFϣvZHgpsq^Rhq?íuxס? Gʽ]Wע}׊LN? E?5ׂ]=\?u`{StZE?=n HžXjg@0Z"g޳Z=ܖUWT?V{N39.@jI)O(:cE8*4O.إZg;)K+Pڔ芳F 308G)<!F)PgF)u.|\TKA5o΀)QB,z# 9 Gy:w3]DD"'$Z}8`}`kei 5(EֻDž#G\q4|E?=liQ n+g4>,:qj2DtѿsQWn"ʳnߟ]gPZ6 pu-kkyty)F*Qc;iR"|O-tRG["udqûB@SWgQ" Ja=@J R_ ygp{@+4 Rc@>_s k[`_2nODTö6rU[G) Jߧ920AB<_R= PO(-pTL]Ytߺz ۞ެb_KC9Vz 3l=tRG8#ͭ3G_lmԸ9oϣqhTGF#["\])3\u@>;/GUQk9 hHKI+wT:[}">*]ȿߵ Df E" h[ѻRCxO75`+gN=n.TY})ґ@e9A`uv!r6z祐v)vdo?YHiC.@pr9GT'&ZЈ -:{4HoV]820NښR o1{ Ewt?2:Oi {Z^b<&>sڇZwvz;-W K: p$Qv\!v zB@$upoV#!=G֭HG`V"HۢQ+ԳW#M{F:= GkF V䐽s,^! Wwj}gFֱ6j7rC&޼3Dwn#!2li~ӃEE(n SFhwx{`+}1 {K`umϿY#`0s ߶ oOI}V[sx |3/hf)S`e]\5`=8c Q#+ȞWK#lks+ѓޔwklYmjad'bvOy9[kmۢGJk} 뗄8l'w=ufFH=|!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@x ծn^n}jϙ^~mb:;R~>ȭ>n R13_Hoy =l:;UC@WPSKE    Fe:|#5 oՏU;qyܞ{կ;[ o~>?rwy$R!8nMgF*|z *oZ@--Oy!A!]lлFp{FCк]s?` +߄Q[ojU52,+}~/U~Iw36{FfkRd4 w-zM3zB(^ {K)mhZ 7j]e Յ,zS7}+A> p oO==s5W˞'F[#M>fy _`k z=UEg q|<J.@H@psz'}+[('Gʕ'Mx}37{Von-pDS^*kH䬂:3cs@O`]6>nݶunCm|NvxoxN:V-[ T=ɥ?_ }y3D#'iZj )ܜd ڢ;U[=R{=V}Zi3vR5p.7gda+#"s55.Go 7n(ۭ@)FƑPЪMƛ޻f#TFpk7̎wZ%e@`^ڋ_`6=d@=/yc#:0XXzm@mynRz.(ҎPې.5 O? ,y~d#~V@s?3Ti3\W>+,=lʯ`?I#O;8zlOao.?~g9YܾNo=vr-!88u.@4Ծ w*`OS!2>Թwpgbd;-G6.M{X/Ъ:zKa :?T?t6F>3:V~OWuz"E~: y1PS迵<p{ma@ 0݀wux-WF/kA/ { $T@)By: ) )? pT@#;p՝Z$!`ygO 3XR~!`nt0j& 6_( J?*'NiݿiG[#^)Cs }̙Ųb@k!u쨿(9jEFSZZ)T]`j Rh~/TފAJG Ii]hK~yr!5P^+`m {L왯:jb kiNƵvqGXTSaԟRy?W j݀Ըlg'ϗ{`rȃKpvZ?/zBk GB΃#^;ۢttBVMk]b-"EuYлwz(Һ`;R  ri߳ wk:7202z@>>ɹQ}RG{f~H+@( 1WMFl;hسqpNS/ )=(pW37w 0Jm+qhA~kEs=}kT`Yv+@ိ)hѿpGZ{( *¹O#S]*{ Mſ7)O."k] {@)wyG2@KIDATs[<U=tFJx.JkԶn]6J~/輷~kg=oxqb @k;GC@Y_!`k(-jBvV.Zv]+  fx\~GF t_:)KE?E iOԊZ[c ho6D?ҚDi_Z*=Qu @+B/Z<|n4gtr>7_"ZEw-@)TYp. -tJs-Y 03OP>zBȂ ДEn @*R=S9ϝ:vZ]!(0flu"( 003}s#RXCt~ݵ+`+P+K=z~xROPO|M??:?Rp]8}τh' ̜jx\PYNNtU!o\qHȡ[/w8 ` ~v8G'@H=5@83?ώPO~6kߕ{; y47@ϩ~E?TSe \_P P*im_5??Z7w"|s W>gG083_"@@q:9P P+= [>z>{.Tܟ¿7 ,.@n @t+Wֆ um6r/PP*GO{&oDcf1[99P(s\?Z\5[-=E|=&xzAx̶W.Sֆŀ:7f:{|Fj8ע2?W_o;+\_=s]E^nt)S!਌sme6B#~X] v(=LJoJ$ mg\F;ّ'(Tg + Nr>U:b_+z[ߊC(`@wMh^B_+Q[|gjhEס,{v\ H ]> \sR82]Us(c-@#0-_ \#w 7{IF:u?Z-J1?Z@XQwkB?\`t+ \?@)D@boyp?!PrA`-D@xۻ*x~w/gg@OVd1a5 6_5H:`4Dѳ:#A >m|s=:`u b>ofIENDB`phatch-0.2.7/data/highlights/sphere_bottom.png0000644000000000000000000020527311346363116021365 0ustar rootroot00000000000000PNG  IHDRx pHYs B(xIDATx[ @DѣF^"Tt(;091>]N𼸱'{bN,&KqQֱ EkթC\@ NIҼ{N—TbAK*P GA/bf5mQ@{ż PQq )?300|u` mQ@=|~_j! q𞁁=:0 FmQ@`eTB Hl< !aD H d`Q@$mQ@01@z " P>9C*kr*:@'SR. NF(AmQ $ĠX'ki4+YL 9d`MF(웱 B1 EO7ӿt*tyovp[;8I:!7IOGSGTPu?COHFkqxA[Ji1^ PV ݐpv@;ipQЋW˦;򭠷q<!@ ohtFs"wي)"a{ ?N`RίGι8 A':I)F$ > wAo>(6욽 ` bica `eOBAR=f?=Z99rpvfP>/ PK|{!=1"U9/m X ,£BVAZQB{h`?#a``qjR^(@gL%=6_HGapq?1d l# xYC0C욱 0 Gafa!b j:=EDAuSؖ u~[{K*K AH202|mX ^>?300CqFm{>FF~I!F3@sel`m   C2sȀ>Oa``dp 2@ Q0mA[T +ѷ[; c >/F :;ȁE) R Cn3@ ^< mX =}J>?PzJ8_ @=g\_%KZ300a4FFm}| h]c[u   ~200T122cHn%O: iQQ@wm  ->9"d(8C(##5zgJR| j Ftm>;΀8>[ts¤m5b``ddd<9g"!\ W Q@Sms `!ڕ> 0xz\3<߁vp!хra к19L*d( mZYȍua~R{?e``]0 F)=C##Ir`D?n1@߈w(mjFȂ>=yhUra5jn(8R0{  ;V[M .y&(d%uJmt5?3d߾6V;RzԬa2a=/C7>}$qR 00@(׎QmJ+daRIi  G(z`##TKԊa/CQ0 Hmr+&Ǐ\SOg```;򣍁Q@ f*c'##cFg A ?Γц( mtE?r YJԩUg``x  |F`1@0@JcTyKs Q@$mb3a 'w4_桹mJ9o2@.B4m0Cş300a]#0 mb*:zUb_ab1`t ` (𗁁!mŐ) x]< Fm` J v;5{ |4.70! m 1`ob g3d+Gm'`9?1>L70@e*`- a n H F0@&`xm?ļ%F!~d//Pј`t{DfFFƍ WĎ  @٣`mB:C\?3?sj+` bcQJ0r< m5#C|pU 5\ȡ*# t=FF,4oT1rؠ5h Ӫ!K?Y$y 0m ! }VsV??÷```"G͊pkWc8iYS+&c@}`f8[G m ϊATߓA1+]pȐ "rz81 GlOPXɏrbedd```pBEC#-V-m R b[T'GUg``8 ԩ$H^SԶҊ=Ō&  b 0@pm B W%. ]qk(~*5\J݋)##?.454H]$ 9AAm 2=ORsKCiRQg`,ce``z*8 y8z62QS^bedd<YȄ&G?9z`'d``80zm "FFFeȩ~(RPJҊY-q8 E:G Fj={ ݔKFF 536𚁁a?$Q0m .`ŀyn@n?2A* ¥VI x(fx \pF Jol`@)Ⱥ:|m 0ndE^QOL%Nˊ P9OB`8zTÏ P{Q t';-@h]gas(m #`,ISpP@:Oixխ\ao>:lU122Z1@*f| Z0A=4읱 0 2(P < " ʤqi^@YkSGI}'LI:~]3uh{gSAL7feLړfm c``C^b``d #&ѾY.t122 0 F  u4A&2@tm@4?9eJYqc~-J;9O]122a``DwG!300&Q@m @+nWnd)O#ONTd1?TFja wP{RR"##[>4qjL ;29Tm@+>6j)o,N'2$⢴l`ttMVSA->w]ddd &N"Ar73@.N4m@Oc``f@$rB9=z ʟ HuP^0X  }0@5p1da 1Ĉ fJ!G< HmP ]ʀ8֗!jac?J*ZfS 5 Ƨ. FG.Fȝp8|mP@+nwH&?9}84yj-g%;P7 p*Zv@Z4L]300p ıQ2%0zVmPx [8pW'So1VԚge<&(sG",;}(Yp@hS <~6ǏmP3@;ߏmȟع~200-U (s0?Gj(tΉ MR5`N0`m B }*B s>Á+jZi}125|0P亁FH#Q2%gf\)|<BD谿d؟PZJ+loAÔ YuLHSO )lIq-K-3) ߼yn8?QMB%d`z200(2003`= @+Q'D#f!RjoԞ)5QAz=0Z(IQK=RQe##LszrN S𜁁}m-ʟV0Zr 1 l5+gZl=a΍Z}'lZgFFu _ t]l:x= m ;0^SʟE@0Wg@@ Pk>F- w#k#`@\?,bȸA*F1 _1@ m=Ȃ?jUV 8@ZvDjV#eo?@Dv; {xA*F)b00/]4A@+Ĝ?l ;b10`'p/ "v%=3jSNK0XZ 'Ɵ t}e@G?d9RǢ?h(@ <Z2@V1P؏~?$G\?#0Fȱ:j@YZ-"N vmEFFFvV$1J]Ȅ$9Xmv/;m*B 8(4sșwt?P>htca̹R|!@ld gRFFFsCn wpm`Hx000p2_؏!dwd]S3g6)fX{ez0 z]CQcJ >9ft/##jS=JM` n, (wơ8ԴgPjCĚ711@n#]?lzUȋ a[Pl | [4Xw `Fã`p/<7P>Ol1 G/ö Z$i> _~?6x!_|,#w>u1=O jyz c-|IS(?)k$*v(` őR;GX [F((0_`e=6pC6/T̜A{ ͛73000222Z0000qU,#vb*trBgs5օE4<6.}̷e#S#~tPSC~|#'u)]?X}jW H@^/-듢֋A.$ed/##i$1r(&Ȉv #gfddgnO̢tg``` / NL/\P2D9P` p!OIϜ9* _Y'EVkRGs2@wg# #О  iwj-vLQȀuC=]Ԩ|FFjV<ԘyȀ{qMsH9(㌌j xbzČy$% 2x#\ PπZi+iʧը!;駡t;2jʀ4B r5PDR7gp?1@8q#H8WM L ;H(9UG 7z=0n@ 5n#GV3W+Ñ`f 1v vPܜ 0 EJ'AKtz U0V:Ts/lOVJ)O\[?m3w`|uOa,նH2tks{]$[cSzC bKۿo= =pe~ҶX^s4\kp322000oPԤlãtm%;șç:ZKYC  lV#TpʟܭSCzRvedd|΀(끉!ac;*t5NTŰ]I ? L)-&F礦&S4Qt!,?3'׻f݈i.abĞ˖\\5~[iW&bǯoGE:X)[[r}npk~-RJ{uB۝PNV '#ggddfz4GFF Ӡ`Dcq*Q:`̀W叾,W-Cr6,o0=!}B`a3閐=L*)y; 詏ހ Y`H?^b <RÀ6d-#rV#gddTb``PEBcӳǥ?+!ɓ:OH9ćP 5g@=sbiG022^```Ѓq45FEh H3dvOX16 222r2`MN'#T?1'1`R^@ĘE~bc6jmCܬI< z.e] ?200C𞁁a!}˖-(÷P V?d. yޟ/=2zR̢1BnB'?_. %#y>FFF}q0WNE{5O355E `QC}̠j}RaKH!p>##]t.^=GQa !c0[AŅ̌ex7 Jtr̥<.@No֕>%ᒳʟ1!('4S z;Oi#v?d>F.aa Sadd;\yÆ`FfӲG ʟB-Zq R.f |İ23RÓgJwԈ{\SN3e.F}:#†vm0}b C`C#gf```dd4d``@µ0P"BWC &o}]a15@>5h1sjNb( r4g㓣ư?zR] H@j0@ t/F#sEOJ*|RZӸZԠJB=b.zOU7 K|:b A8yŀٓH #Ӕ##dddʀy~D!@^B|R*E#uΞ^.|z< GG eq:9z5#kj@/ -$w$~`S)g000bPjr=s0@-gdޛg`g10>}._}'d>3@2W *llQ; UmW{9 ZD,jQ zqln$'~Բ }_P&Yz|;c@ba``e #Uʌ< J {6Ȁv?b*t=?8="H˅2K.;Z'dAZGu|m 9KjX>0 r*#b/ĐAWjMŅ4V9d6r0^B-q,jM0B lfG,oRi [^f\_yCp5O Bq3 0(edd`@=@T-06PRc'KmM]F( ev@'E?=yB n"S p yo#v$@E&p& ]I }<3"iC4*3q@J׊Yؓak1 lgD$S wǫs0w5llTދbg6ym+]+^ИYyǹVhL ;KM @?!:AfvA'1)tth@Uف5r~R8RV5_zS-@PՉvO:=A޾e?嗯R{m5XX2-CDˁ.X7M}1]10'"bpJ ӡ7iB޵ RD4#+lxs-5~oye !yZbu=O=c@OF@襏&>08VZN-/׬M)@>p[#fcFi{+bwW\#Сh"IRa'P1bqszS{jF(^=o %@({f)y\vs'ZB~• yӶa*`ffZkGtSйsFFF6J۞\g0Rǵؐ9a;$9a7t,>R2PO*5CCPsK*yyR) >bF2@ |sc +@F"X #Ҍ s'0?,r 7:@Lkq qGQ0!ԣFI;Rn>}8 FPĞGl@Z MN:؎>ȀHm ?& lTy =NCn!-j49b!@VqAjHOb3$ro9yFd@NZ"u`-$w |R:4PG]6 =```f} ӳ' \Bduj~2003001 ]A0َ]0 Ee#PV.7l?UYU,DΩ֢"'Ӳ] `\s<?xK4Xt&"M-+PF s1%z\ !BUt4  Oo 8[E10q%l jJY 2 MJEyWC}9C"ˏ.# P)ZZH'T>fU @濫A aat1 E' ~Hi)c}/Z$'d~J[oA-_$5X|,+{{@`lj/P(ݍq3ec;l:'<]޷@=# |<+sL$S,#2dp/J#4􂬆1b!`Ts٤Z|Rp [KFQ Bg|SW`F5iZHba+c[ePO 0DO֩7((;1-D62F#zLmHr|mk4Qyߦ@jO?Ze$:::xע K>HwO[IV^*θ#rHޒm& J QWX = # 7 k/%F=|+g@Ruo!̀n1Zso! 1Y؇O=Q0 zUlvP,6O@\CavB=\p `s/[ o4Pˡ7 !*}|--@o,菁{Aw (M̂lP%sm0)Hq >.|/JWc&9H\#'@|=\~0@FU9C 3@Hy[$B. ]2'̅M vR'V!73 F( A$T) |C%6\z<;u1w/CN b'!H$0n!Z$MY $>|8:t+SK`sh? Fu|.+/+[ubG| \@ߢ?lvOEc&Z=0? iO31 E^Eq@J oRń~_LC VMk4<_~blu,QeJ]kCC{U ;Nj}8=9śA4(CxeX i{~@rꀻ9Q N =t\=yty\"|=|H·@Bgit@01|gQ@[@>Rp-4&QO:(t5SrzHЂoriF2`ߐi`1읻 Egh\p$F9A:-}@JǙOOԳߙ٢?ؕ\hi%dվՓ,ÍN&?E>h91ęhGE&:xmzv81 E7p E'' jbtM SX{6_g{6_:yb>ՐX;l4c  D4fOEA1VJ?MGN mŊTK琎bb,F` ĿE&(G {같O?*bB+qLdj>tqr Q0 `;܋skxA%:Ј(3͛2@ -'$|tAGٵG|A zM:ddu5!:8`Wۘ_w&`'H4#͉?朓*hK泪yR в[`~uҘIv5tKG"]x%r%OQrsb <<2 <X\1 <&׺vMXPLӦ7&'UTuȁ^EU fJ`]fZK{7ik6h##E#`E-:N4dU*j/[#׊~d/`'4n͛7NbAn5:<:7:ol&gh#` p π$m $vm hrpqfF a|j5Ҍm&2 pTR7f%Dhk&o?7"ߪl\f6#lRj(`pRa۽Df1w22wV#װ[z0c# g(]A `A ]=R/bmQ;?Y nUW{(.Tٴ뽇_"ؿ~L/qOls|xq%w`@;<@ p3:o1j'*#`F ǩ 5tWOG?{yZ=K*z|n't 33շC` O^ w$pMwǷ`TBZ ;=g0>: 6.m6 Q.,fP; D6v$@LiHv@~>/c\%0;A~{"_[a;0B[r<{[=Ia70?xrvK6hǕE6Ύp@%k_J \k"Tn} ]A Wk j|qϷΤoyֈaq]T?Kr TZ}~kz@JϺ1 E?sxl怕Z~ NbHH |) .яb%+Zͯ(%Pa,j=Zͱ t yBψ*Q _ȸ)( %Y?K5P=Fגt'-A 0 G!TI-sRkU0m_f߰ΤY4 '҆~|6 谌"pY'"g Qncƿ(q1 /+6+;,Qݔ$x2 Il+%l&#[p YS~FFԝFHڛU}.( ׇLi%q hSNzjr_WnK*;oNk200x122^a\l@̜?ql]@7200<`@M x݌g-oA`]@G(wE#f>9kq2 ١c[k kn(9̈j읱 d5OD!H대~jvc+G_P#.D=rh.ޓƶ"7d#>ZǶ;^"dwvzEȹT읱 0D?tС@755M @s}+X2 5eTA:P MBɀf:EVP=(K z`Y3vaxw3Ĩm]  2_$JJR!G1FE̵2slџ1ŒLX Ƈj 64Qn,Zf֕_(Gz YvrbKx̥cV-dxfŠ'B-{l耐dpf:4)j3Àp? F(50۰=ヱup(9l`uH xu9 l ep읱0DO?:`r&q:t!xOZasٌpV .U"dA^[yˁu+U7RIދiǽaeHp}`^ `7>л7FA'n.u,d~_}:YGN^?ŀh(1ZX`zl10_ 3MLlvugL`61>{?m Td``F D؋ XЗ1ɎigZk;ZJ٠oQys T'‡8j,G8E9T*͒s>8H@@O]/"+3 {{֟]1 RJv o-j9w*K>? 8[فH@SJO S`i$aH@ǜi(=e 6p.7.UG oQ1[-`q>@GՂd@Sk"u*  `[C(` 45\GMh10r9pCMkTw"]90 3O( U1NA*CTTji@D,he7|P +D: ?;<"A]Ȅ!sȄP(?ãʁw*b砺h$`d]; 0} ty(J;!jhtm懓>Z `AQ<\wt`~`\F<^TPxD̉G~}2BO^ٶéDQg|bޡF$CO{ lR`Sxt @r/ʜy}l)>[VSONBW`q t`Q0 miPRb)W@\#0bM/>s~0@D"{ rW<'w۶?tqauD7mǏ,e! =\`0 d}F(C owƧ@bN|%>l;&qr+Go`ےk41>n6u-8gd@_q耘ayt Ո@9$ -"DoL`Hp !=Q0TMu@F|Ӥ*\b|l*^l`voEV *F(] 0 C/ku ҩd 8M}Hԁ7Ž%0X0AhFկ/J7?@* 2Aڬ<ն@̯ZLFP#ꩼOb읱 DdC$xG6 DzSI{G*D~whBζH#`4wURHOU6Vyɂ7/8W8~4~]s;O ~%l1 0 Y2:b|{!(g6Xh/s]O@;2b@ %0)0P@ 0DT\iϩ}r=NS}}NᾙJ6"wY2`.c` O}C^GJ8#D@(@=gQ02 t(^͛# mblV #w+rr:ЄV/btbeȸ"ge``fdd7M~bVCl9Ѡ(fAG{m`H)0v=@# Uy5"6Row1<8" i$5to$|B[Da'ʄƇb220 (V@l ` pik h`rt@/p-÷_E _Bin͖a``AK"i://?1\ +e\~|4Їyخr(q$Zl_0 F( |w ;%u蝘f=..6e- 9h"rQ`p!z}#=!jy\䇦}v;ɁF(Zm,;']]FC:Bk @>"9 D5'ə,RDA3pyˀSK8 D'$)/ue,a_G$zۧ`M %+ tSW 'sY?Yd'C Gb1 E&x.XO$$R~R&`M)&hsΌrm=p\ajpك>%9  Coxpă,= 8A:XƌhD׻90i_υji h465Q鑧bAmG)}01HT~me'ur] <:tˎv!L|`R`yfv!ˆoAuCF;.jQlA7WEFgf?jyj) NJ((2/j,}5`焪Zp75MӼgbv$ d"a:$lb`;׾S"f @r4z<~#Azǧ؆c|HFC&4oQ0 M e4}q/ &\b[`g>IdHFQ0 Fa56gw_OM #a|l3y03(Yl.6?n&8 ""R```8YX@0>j=p.K?<~NGSoD[0z(`/JC*s\X/ qD#Ccs aCw `̮ u8;O!w*r9~dG Da(f-d`oQ0 H9`\F.!<@?zg[^l"4 Uܒ6Anװ\+4 à:|7ȋGQ0 Fz0rً>:O:\;WNb8 ӏ ~@iQ@;?G(b @gCW 'ԛ[3`Qt \F1@FD?  ##cL3|͑&聃n!w6w2` *Q0 F( ݸqK,cp5prgq; ; 7 Y|!p|HVu\6z$ڀAև6F(|@Qe8g|zAlP]/Ud(e``xπf8-!e,kdJtX ڇ?ZQ0 F倜F.m:FYWƸtsEU٣ ll P1·Mx!-ٸ2(EĨُ8O`Q0 `e<#&Z\pUN ɣ+Lkѯ#F7X`1 '$Pr"&v naW,@r!W7^SuUmw֢ 0`*!.FFF<ۓVí&!BfJ hBɀsL(`G T6z݇M=*! f y0R `5 aZ#WǎwπGlf30`>nQ0 FM% qu0\}]s:@w0qWgl! iµ@ytGUz pBe6q! GQ0 FpN!sC׃/y0`nf}-g5 ǀ 48.kNõπƶ~ln"F`Q@;@(Sqk0 ]>& i hA|˖-W 7l}>7On$`G(@_`\ Bfۏk5'":L/,6 +C5lxR=tls7={yl{=+Q0 F(3 @h W^7aUסը@pkF?PAҸNBH\ (Ű9[fEĎ "(` >k*whnyrF(` @ 2L 8. q5*3O] ) XF5pP!lt|EZHT́6$K3`Wئ+Z5ty\UFBi2p-5"0R;\ 2>.? F(`kl*hdqd3UJ`3 v3 JBg``ddd&NN/AԢ/7 CKFA(G(`|i\\GWcF̱_厯%`bBoAi16`4zc&FY;Q0 F(P':}d;p mר>zvhQ0 )nٲ^2C3abԣCæıLjC6= af6pp91lRFn'm4y 0U`Q0trٽyf+q M&)FFFփU/ZM  oH1 E;xK=rǁD6qsHW:k)etld'Zw#67_T*F R{G@DW"=E,G3ӞpBv/ǷY@^'48};{,h(`X 6 G!upA}C Y-8u Oa!nb윱 DS;+iĭK$8h|xZLB Jk?:i܍l~w/~^36$I7El&J2-6z媁^24Ƽ6Q\)g<읱 0D-?v`-V.![o!@3BJT:堫ZU?3|_;d1Fh|ǚm@pC=U BC*+PgW<BM0bz:xWCl DFF(`rG  SpPW=>5[F q- DGh'B@xB^Xp&bZ!l׃Gh&YEϪ~JX{0zt`Q0 a/-zP˶At3IY o2bAdʈ5PRe```Bx |s*qSoך 05kF(`l82~Uᣋ3 :j;qyCWp ]1 &msMpҭ 0D$O@ƈ؈*U-8}FJ6[} ktJ. Bp'ĻǼ%ŌЍ>R%]`t|7/###+ *Ј;1{-CGC` zl# =ll ̑բw/D_b~h2 f؞FpueU< !![o?kw mD*&>|?,"z\HaˍQ0 F( e.?q2RC}p>:l\l-Ǧfoy?5^p "|-{1@7G,6Z(k.`b*yֻG7}$F0FpU:63 av~b?#d CsL?F1iqǦp\`tA(` , WL|'1d````aóC3W]63ѧ1@Lbb db``x)$pU*nlC![3^xǷM=rq- D6pT(`RɣZ64>?X׋;UIԑ[{6bb 30222EzlwM2o8|>(RGF(Rbtl$qǚFl7-|s7Z@hߢ@d -v3}pKT(`^r]#Lh-:_Sl. 6bb@!{M 7]KPM?NQ0 F1]O/o]('bHH!5; ~C٬ 0C`xbir;Uz3j5,hޛ.6ꡂ*{\ 1NfʮCޝqB!h˩~g:)]I CcGH&c";RBөֺD@I(\W#W B!ԳE ~FnzZ^.XY^uGzL '\H(gXʹ&3~]1 1swo8zC ^nL6k(T) p^C| ]W`;H~_YxP|aֿv9g\X_c8|?+Ig9W\>|윱 BYuu1w-Eμ3qp#t|}FWSu!gOayJ2.G| !4'N?l٨>5ˠ &`.bb|"O B[z2pl9aINAH(` E5Dw ] VZF? -C!6 s^= lN@?(]?!9d@jaQ0 F;=,G4r/PGzfT2##B?|e```b:µ=6o t?=8[Ԝ @{Q0 FPb;*Kh4[=55\30`ֳ M$bl!Ƿ m@6ÀEME`QPz )CkˆG0oE7@< ŧ}+!b:E>! | ԃW Woƶ؏~JzF((=e\z&FhTIN Ķ{\#X\; &mֵW#-G`@E"*0g&̌sCH8/ð;#}c BOnI32~`!3漉{7UElU2{(\1 ꮡ?!EwXIFB%ʃ* G4'@qxѱϣF-1K0m) azSN>1'9 >ظWx; C Pb:&3:"b)_Q^Q+{eYW]vuM+d)<>,Fsbb@ \+zt˼?rWDEzilrɩG`('Gh?QalL\kш@1H,mF1000 C]Zx[sEE<Hc &銱2~:Шxmyr Tlm_p"lo,|=ITnB?P\+I:!{EТ?ZN[`%%w 1 b!u?.{b&vBkbb@]EH\G Ր[cQq㪠U:@n^bGF(`rAJÀ?Ʀۈ36;0XN |-ħf_Fbb``1<0o~W W_K?% P%OzQ0 F( YkG+}lla(i*>M00000ի'e1#)K( @G(-ૌqGG7(pfmb:(;5B6 ͣ3DkE x)]8` e@(Z e0΀B#f\s@T:~`?4q-d@SL e.k>[&7OT!ufth#`Q09 bR{; flDG0ΩRN bb |,:>`Vpg@#Q-!['e=jF(`j uFHA \#S0o].윱 D_/v0nJ8m@IHzWpy q)7qE'$}" PERޘbiҨd=<d;o&ws1 /N& qp#&c oNs]l|Ty|٤B޾{B#^m@e6 4gyTN[G.80̖b4 s 蚑W c`@,l@q  81sGk{#ge?1|G(`0r;`#G?N%>.u`3+N 5R🁁b2]$\"7 HY=̠$"OQ0 F(,ܵNrF |e/N,22W}m1 1bb̅" zl\ef@ B؄9+G`(]LjOj劯an&<Hk=&@} N@k1.ݢAT% MH(`  e3#u_}n' (>(1nD5f1P3,b/ ^Bb#EґQ0 F(#ClIH/>a[؇m 6"rA3L@f5Ч-.I}Ԡ_5F:r?B Na1U^cȁB6ChT(ZmQ0 #& 5B׹vXG_O=-â@ d@ zWKP+ ~b{&J31nmQ0  кg 7MY06q;n@})SXBsH/5׭D-s/ 9 Jdފ.\撚PF`Zr r'uYlHjvBDwdqԩN0200PDΈl?ЇOŐ=.k8˓rDPh#`Q0ЀԲN %/bncs+>1v?1v 4br}86&bb`` HC A.ȩ0Ip/C.^8g,hlBn2@ ";BF鱓"OMsɵk!0 F(``|1)jȑwO^JOll;H 00002@bbdd𕁁AI!(dOk$k8#fh~\f)1EmQ0=+J:O:2@g..3Y000 )t";<>lb zV" nP1` o@iAʟM4I憩5O)s|b```5>2@1.DĶ H".IIdrzĺF(`jN#R{m>s)mP됢j`bTe! !Ȁ45^1@F'L?6\MCP ?6 U%gH<%J3躀Q0 F6eR \ȝǧ^r6J@KT=+5C-(耔^4: 5UZmĶ& ȝ. &S+3RGJ&` @J92*d@)6@?2eYquJJY 3Qa& 5@ Ba~Rz"[=%F5F5[ĨfhC` UXq$.b̥<.9B܍"'V-kF3000Bi)w.S#[Ic3 |~rR.3B5` @J|#ʟ+\~B?>s9`(6ƀBn%`>@4@ZHnB-҈#u[s#:|a3st4` ȝ#W5Ps'n|+1#,8hl<|]Bf___> 09 BV2!@v@d>1d@lcY:Tm0; F(/_D7:zTT/:V93p65,pՁtv^I8eBo03@."`j K=1K/|4fR#LEJ0:0 FEV7*r;gb'fxM-6;H;O= O3!@Bn@ԁ@ Bnr rm{ $2ab[xĐr% B-7R*x|$=vt4`ɝ"ĦJ+"At0=}b$EoHi5Vc4BC3 Pr50;z0`*=>yBHb'֍BHi;€ Q0 h4#+R&OR~[ D#ụD->7cQ@ 5ϑK6=7\⤚:[oJZB&Hy OO30@m5~B?e``P"Op e`Ldu i =t܀P`䌺ᒧ*92w`ZBo< '1r4,LB3UROц()O!w= Q0ǨǦ3S<$ 9!db󗁴 1`iVg``4q8A>k10`C>G'%9ĚG] FF(*tO )~t>%#ę駆B9@VZB 7ly%zO5🁁AZ|=|`k`"WN2{453rI-m%F8)e ?!]Ī!Tc]S'v{ܢt33ze&D;9¨000e@ 'uX>r@''$?b# J j mR@6F`Ii:Bħ?67R`SO Cz}wr [mգE`|ߢlX9^,L=66) Mph1z-0qހ?5h2 28]3`e6M[&ޛuH5"p̀@_B6LEȎG2.OVb+eR21%%!V1G(%5EiON'O?`פ؇B6qى<Ž؀ău:+@\[ 0 x -Zd& FXpc-/"RKBJ-"b&wqt%剸X|p1*2f&Wt~[) l\!->~$ymSsHKc xu>yd̀9W !'>Bf13`_@H>yj%h|LDNÂsHM*QH`i]S;,lQ.r~b{6+bXM;-t`Nb``] 0#W!!1Z ko{coؤDa;|ِg@h1mC"Y^3SMD0^vۊb1pşފvйzU>SÝ>쉌]A k3;b T%;֠ +Ÿ;3,PPP<YTv g<ld8WtT݉; "Sf?k$V ;8@C +}\10 \G.K@ib#F~ I3ďO>}m |_Z IJC?i-G5pOʟBǧPقM/aw′?=UX";@@n v 'nb"_'?R2%%=RE7=nS?ȀJ%%#LCJء|tshU#P叭&qO?z=׏< MJAZB U`dd𒁁ZB a4H@L$ql|D[S2nB(Q\j ӃO/0!T x)I) c@,|栻#$ObF~Br'B@lY4ut\1@R ][ 0 5JInpkMM}4!иDh r_L7 mGD,[H]s{,5fd3]|o7\(©lW?P{#! վg{LO \ ٿ|x'|"/XЇp- [ 㛳%"tsE4BjEMFjʹ"<j7яlBW!2w < FJ?L/>56 ⲛ62o0U?:/iwX愚\A ov)Il˼uDLR}7lASH 6d>T^rzYw_FGַ*W@t2_F [3Z:o#!gsO\+b};п.\A0c<%-Tśh &)clv櫿P ,<$I")j+Tl'u2 7[9VaQ2Y|9_*,6MCSͿao00Վof[90 #EBsk)mFmU9 Hll@Z-fI:*8(ICO RY,83l&ܑTQ$O ?F]o ⟵n[:dՂ6W,8WLM p]A0xXH(& h;Jp[ @}W1Ac i,zlA$}U+O_sd:_0*5QV Aʚcwqt eɰ o%j 4@|??p]A 0 x?H%P#!`fސg Iq:ЊŘv+!Q3c]Ǫޫ|ϦWx;u%5Cq_2g A[G]I0 ?LY۔L)Alb`n]EֲEEȾ ֚gePmEY:/*(!dijč2-,{,G9Z$O8f 2; {Ngحƶeכ[hղ׺]]_.kѺ}Em"r>}][ 0 v]gcxB~$1Ēb MipppbaON-Ax:^/boc*. &]W}wxcbױiT:ԟa{5=Ӯ_ۉyݚ;tbwSqV՞$_'ФXw-V5c 7{ ]m@0 } pWH@4ڲMWVl=L(8X/Gx8`9FsyPYcLOBz/mYx {z눲0<ꡉ: Sakӗe-maZiex:6Gt?[bl,N3w~9)elZ8X?[̝Q! Dx/ ?ԶL1o t쪙4 )_||[W|A;a ?4y/}X |սw k{:zle`0[qߓ*hw5ɨಉY8;|U|{bW0U۸FRVkR8wN] 0gCƚ߳o7&BMm'=g b;omĝ]A |/,!: rR5KĪܭ3au2ȄHe4>KD_s+qKto=~o\ sUxxbsPm;sƪ"%RHGuOⷸ : *i&=?dF_Iap?:-] 0 L1!\Oz<4R*E󭵣pl퀾p’<Ev6RP|@0+vk v-EUler |x]~aj _AJ~V筑g "ǂ72[C] h{~N۵1;)w?O̚0 DOjCt:َP79ɂdhMl pdܞu 'ʇrU utUz QǺ6g@5t ߋ8ˀ֧ʺWC?W B #y~;U5mwZMcuzC i $ߍ\1 +>W'\4#8 dMm/b81-pB}'-jiO[*R+ J!M&˙KfLR^<Ϯ.U865U$\Cw7`GӒ{"9aE_[pV/a;ά\m }d WY<~LLҖW؄LJT-R4fp-I;im"*ߊJ{`.bZ*.˟7r?[$0> w_Ry~ _elռS1-oT߿jg[t=b6%fcg/[\[ k?4ȧc`n$ Z`CSڜ NK{,(|^; e& S*qoKijxvn׳7R`D}lgm([ ql{T2 h 2}rA$DGFq_)o~yONwV^4g[A ?u X%`Gm ,WZ;ǡ `!~ 7" yD.:Y}f= i2`5V&`Y>YߊDYj[4}W~vD60Vd_;[8֦YՐ.}{p]A kuăb)[Aq-k`y@ul!Σ *p%\)88 xs΍P&V/eoq\h ]q2c3|#~0ٟ^ gLԆYΓ=[~_rq@8..+.N+}u/ۯSk7ߝ\I ;)^|'dBh{1B@јepRxTH%UjolD yfD}njzJlˇmfvuDG 'F ~vX6~t]|FybxB$T=TzlyGǠeę \I 0 ~'P5s*61bC2MK Z[gav -B;|>o~M,8%H -OLdR!\o o~ƗՁ=0Xm;KopI YV‚ώd'\ 0 LqrqA8@e1L3z]H4uW*Z^*yǢbedة ? mbfDjټ"1QaƎl- 6nvzKu3[,_*=S{-{$@S\I0DOyӄ` [:S0VKpZk_akUuU=T[7y$<3Ypvb|F|3BaQ1M_f="[8?-+DfHd<#Z-f6L,xDqYLnV$T1 ]1i.|7LGp^~# ?];uӎ *u4c~xg"Elv_xO };<¿pLb|y)L9>h?cC JYtg<_ĝ3v.V8F櫌@5lgv&忊zO*ΧslvӪ6O3ܾĝ Dk?z`7 q\rRZk܁' z~kjum.F_K 1rV\Yh{"5ƌhaqȮMg'+1(G4;獹Z3 h-?vWټ_]I p I3iT4r^gdpo R^x3- ?q4[_r Ky?4Qb\ ~hcN)yF]^Ӻ/-V 2FE[c}ƧߋR/c BɵY _rR?5n)~\w2闚s8] 0O?Gr9m,Ĥ15Xk<Avu(oI'mBoۙ.c?D]uϱkfWݟVX)r߭?o59wb7y&]ybvvm+Yg̻+{g|O x&O?V7> ]1 GƓqi3¶잏W`Hy[f=Hoq=m32 @NFDfey?P8a&;>j]I ?Xӌ]{!i+F) K"ml\k bTiipH Gp+3xclE*zQ[Uap3=0vG%K> Y63XGVkV;t#_Vؼ׿~1sY^#ǟe*1,xqA󟭍ڥBSr] < z'Bm9G$Ts ,\*s<x"liѪHc@`-EA` `H[ m^iٺ>5O~J֟œqUٶ.e`dߨnl`O_}:hu`2;sW ?x3I3"H_ ">LD8/|5d~KOMygI] <n)-~j4wp…KM@m\1Ǒ?qqQ^a!- hb6~~U0#X۲Y=jskuůHD1k =jZwE7[>?] 8۹+ >zP TlCk@;Ƙ+ ,oz}p ȞZyHZd qg-W;[5n;mZ_bE-wJ/a$sZa0J@OO%|n`8o,r<\ 0&>::38D}RD*֔Oc^i$`9O) R 2ZCf RRb=%7WZke!xxϟ-uY>'ߔ473P1@__G2( U˴m`Ȥ?5?PFwh`;̝Q 0 Ы `O e H!IߦW S_~k/`탫},(0e'8 +HgEQ"`=20[EYR`P3~O"$1,r^_j(Pg|3~Ox!Xgm[JY9@F \ 0 vV>YtTUGlGTq~@7;[qo֮ۢۡ.{41CQg,6W0^#fNf +SLTfJw$Ί/D>WD,Ý헾M>,`%G+3n3xG 0Do Wsfq?, !-VBb jʖɅ$+J.1YugoՁuU0\ jEPWG(kG,`Wm}>+>e$ 镽,V?Bx >o y][ \v}QNE}2>E--(l8 ,Tqnl>ٕCX.79 (d \75ogOd=K#BDݨ}H3?|iHF|E-(F/8!~@>\WDŸ\W8ng*.9+RHJ)J)'7O2/clƟxPHpŦFWCaH_(Nkrk8,OOaξ#^gs:_*W<#tXb(=]0lH?+s4vqj-ooe DO_Թ5cDzɈY=hK2@)v`C 0Q^]k3`u62@{-Тg"mEeMeAgqU?ݎ0Ygr~YUP1˞aƯ`#|#`oU޽\!pmzP\K }Ng4-:z!lQ4Vn2{A+XL19k΀h-J ˗tN^e@m7H{/-2k2-r-8F4Y/N{b9ݞU Wr(:-߂%כVlΖ?h / GNl~c] }LON?gj0ƩSKfI! k|ёRy8G"A?@$@s708HP˄,C/q<<4Dᖄ&X^ _d_WK(GYpFWI HeQ(^a/7Co= m[A 0 >w_yA]ga5[` &T @`im=m/ Zc<VUKgQfXQ_o<,-# G̟#+Ogr2˘]Ce"l>`ƌ]S JMĺ]8ZWګ?ZJD\c0Bخ= c;ĈW>_ɽ=5S0Lƈv=?#3/ԗ{li\4uXh#ΑV~CxOeۨg 2{2egҿvO(][ +̦{(QCP_Kh*7Гk\2 Nd)*~WdȗF'Es&?AKq{mp4J3;Q~UNWطǝŋ8|դCۼ׌yg0W-xx_fpK t&^ԛ1L,\8ĦX#; jK#`);0x/- H:u8K$v<y+8ڔ%=Z}5[I^jk]y<1kǿⶎ"殘rܱ3%Yةkܲ喟;`sB>$xa?0`\[ 0 'R?4l2>w43I17[(̽ ߽fGBm;胼#ܱ(NCN~?ˏ hB{{ e3Wt}F՝Pݙ&1?FX>UAV7UtUzl_?j*+Sd?AE~Ytnm>mC`gڈyZ]Q Ctn'kG#BɟSV*sE @J)Z)ϊ;7b*T< vӍ8 7xsYι sS.FD^m9^R?P^;3@ T'~Y^{]CPqauY4_^DsQ-jHkğ>g1^Zb7} +?+Xب+a@v>(z_> \x+Rɖ C-%j}4Sf XLh<#cel4^opG+D'ˉ2"ꛥe+޼K:[&t &[A0f|۳OdhKw$Z ;H)}s+J:>;XY{6e}HgPX>Q(*hGG-戯'hw@Pqߞ8-Qy@(K8~^kЋvHEt_>;5I!_}x ǰOg-|E6\A oM~/.Y PCƊuP8l)iZl dnkg&{ yJ>Ň#Gki G8P+ԒScmjdwzPS3QD,A]ⴸ,X#Ro/ZK⮹9I/v+˘̜ DJF=kt~棢u,l@QHKHqF(xo5^gIRYg  Y-kL[ RQ '[G?c{"bae{aŲp3h@Î w0L}w6F5R,f0a{칫.9/l1wDGsZ!vd<|~/D{][0 sQv-Q'|E2VZmWm@֡03`uq <: * t@^*&1&Dxy.@pP_׈-#au_sƥ|wƟzpwPfMDT13,_WgM0#j SfصgXlCn%G2ո]A +o$_;|d`f"]bb!݀ߤv5|@#Wz+0o'a [`)*@d<k}*GsDma'UgSDh{0JZ\o$++c=G[KآmpJY添 ÂĿ-/] 0 })ݡ;eVPL 8pU!NCHF~&±|C4%R]9^MXۤ> `0x͆u[t9l˨S)Tl%XG{`ߍ镒lL):vVLNo_Zv#1r]'a6&rW Z7@th<̝ Dki]5b$ܧvZk7 )W=#y#Ѩ}X BTf|Q(R̷WY,FνhfQH}$2_s^Te.Y0 iHY \@5>Hʐ@FJi1/NS!s}YeM~O `uDּZ@kO}O~A\w+$I[5Wo,F&\vYE/=ūff;~wB\ 0 ŤA#IQK=ڥH9VuQ+)3.é`ExV1BywaesL2֣Vdň{>r2ϡgs|$nx6>W{i_űo}g<>N>ԝ1 EYtA!MS`" #S[Ji{(uejeЮڽU~| X2^WG%arGuLggym\ʜR+U\1 0 L>_ WJTЀm<y&*i.P\Ԋ^SGf)̈p5ى˹Iŭ#zgq5K[ģ{מrkPYD&#[{Skؖ◹mVT%,O`6]+ǿř'ԝo tى:Dd֞A7(K{ -8;XvT{?1ψe?lamQ?0 :g[/=UwUϯR~g*_oU\ ς[r?.cԜA 0 '_|/ B ٰi.्6f'!wZ{?h؆ XB" OJdm43 (O4?>+ ʺG%G8|]g|g*d** tOL }O=(Y>&#w/?n\ <6qww!Gp4Զnk]#.=缡Pm$Q? O XB߰'4~P>V(^U`[ZHl ("hY/Ω#}W@{6? =4RUԕcp|LXx;n?PVfa{֣ zTpa{TZF>=ԫ {=SA[쑬md="W&gUBƈJ>6#Kjb1~-gKŌLl]F@D &Xz“FOp2+oYV-K U3[hP. m4{XoMO/.ܛ Dċ5X٩]X< qc?ʼD 3 1f6`WJ_FTX^O<j~f+N5k_l51!.EWoM)I RؔKKlNqG6'w? pbS.Z; }8I<7&NDESLN~Sh013Y5?v8.G88_WGʓrKWi]iӔH,%MOݗ,h?Sc5>tV_2vܝ 0 Eù#x^ cRcK ؀r6Rv<!8✞0,5Id0Jʬ-ɥGVV+bx6Q736S/{Ko1Nj;XQMRV&>~/&`v~.v# b``d``ȸiT5<>̏y}|\!Fh__s_˾=\ 5GW8ܜ E^ ]țK4!N6JLG!l1ƕ#L:}IT% em^)_89RJ3lYo1 yĮb#qG\(go(Sw+-|Zh_ZKTPRrJФ?/Q 0008300,bdd|̀z>y Pca||g0`1zJ dg.Pj>)`5h1ARAn'OJyj jӃṴJ#o#_yȅr?a E_WqqC xjUbXJˉ@JiF`T0[=5jXZZ{RN/?Ez ֒/DAں}xGΑ"WWX5A 3|WJbSD.FC,-a70봷O)xRy&cR帞/g4 *N5rGx/HH빮?\ޜe_QP[[*kVuuw_ ? # gg``Hb```bdd͘Ƕڟ؝(( Ԉ)v32@)(!L!PcZrwPk6^Ӈ.k._C ~ eX1 E_:v =A/ vh c 6 8Gbo p; V@1U[f-{nJVޞZ zQeY !}@`zu#>g%eָ_?BDdw>nS V100?*̌vL00?{|Qq-|!e w^b1=@%i|#% !>Jq } RÎ#d>b 3E(osT}VnV3`ӌ N<~; Dߖ^Cy\ ="`SOH(~x8&`YCyy?dZƏ=*tP!UjW/uN)𩟡"QoQJΟl?cۊ{}ȓ=-_] 0 ݉u;t~0(?!✱+\.$"0Lr\DD}a !ufЩk7LW<)9Uޚ[O﷥lt[ԲCˆ4~&&Lrgdmp|ٹn̳j+~JQnN!+m@##000x'##5[lレ[M ``@=$ƀhr1`fFslX29C7JDL% *yZĚC aUл'$^!T "``@e@g``p```Xx0=? pM`m,bj԰\;RғHE;%@ X_@䬫 Fذ$%̩QSGa" @O###30!\ 0 bYb0@ERB@ XYRn"2L$gy[-ixA XO#V#iC^h>ÿͪ1[4o-VH )رm`gd`````0f``X@bĜ.F& 5nl9̋ -"AzT ]X:+~Zl6z%Gn00P1*r <"*tO4_ ˀq1/&v[Nv,`$g1{bՑfLBX) = QP23*}bd}?z\w00=@l򋁁Ah= 9o΀8>F {F"pj̿kTvQj6!=LH֝J 9Mj%J?L=?:6q 00`Bw˖-|}}100|" mF@dŕ?d_2Gm icdd],@>z*l"``dd9 dmP] 'n`dd m͏=!9tT8õ1@^5 Ce]>@ə|b#́abzbȕnb+? 2@mPߎa##e*rܕ:z@0 P`#j= j! م "O.ƨ+gZK>!~S)?#200100UTVc0000@kTm_rj[ DoD?b10`I>t@  1{(k179vPr-l?@n~ lm_FFFnȜn$m!]e˖Hwj">b@Ł-z惱1@]Բ`%ӣ'jVMlŏ\9U,Do4222r2@kndmrtaA 6M  |jIMGPРAZ,fro>r,R+  [FO!m~˖-w4p@bB\# H|\SȀVn jF@͑J#^c<ۜ=r/sd1:b(+m@ f``a``؋M>l?Q\^"h910``` @1 S/(m_!1vA==t9Y}b "Z450@ =@eA?khU30d@l3:6( G#ŸJm =|5``!3T@jE;P r {oԚjuOzj@Lŏ<&9 aojm ? @u 7P*||PoDoZ .`,u@#+plCIQm~*a^[K@'NN v0 s2 zpWUl!XBJZ#d7>l-_6Z-V@ZUĚMlŏm; c)@?6At2 100lfTP}:ې?3 |jCh,F-w5*zU {$0!|'3c=97'ѓm nȺ! OD~Hkb>*4F=*rb@o >)+Xa mCn gg\3z m "=/AM"qa|.܍\zl Bd>!@J4[]Pi %zˑ*o ;j}}fٲe___>?Hp(1m B-/ lߖ=ԅ~v WpVVH< 30`)ZA2?XFFm RQ(wt,bE׫Wѓ >ZC j>)G֏\j@10002Zm bVG= g0b5Ǐ!ll,)%K/Fv@$5 >>wֱ 30`?Y?荊w F5m Ȕh/F 0B```@RC, "{GZ SLZDJټoHlRz h|:}<nf rm .H#@.>4>A ½}bI A@ 1LM;[U@)7M'4 m !%pI?j k}!@mK= hr. t3ׂ>ZX˜N`dd|YHAm Aȭ  STl70GTdA K`8Z66Uᓣ+k\_stm QK@C4p-tMJk4Ҟ){ G'׏_׌B ~(bm qȥB@i•?7r\r@4~Pm( H8Wŏ~/Lߢ?\N=wm .h 8 {F p'!kL$1r%"*ԁnʞ}  o~P=ض20m #I(w/d+ ڣlB @GhÀ6` B(Y?&m 3& (p*ELC.,Im?Z6pZt:>!{Uи*~m|b;ϖ-[ 2@*$g m Sa>ڀ Wc]my~\kQaRB\pk$s[5Pj@a-CG_ᏫrW4 m c cx97'?i30` @WOLCKfQP1XtSs!5̢vSz^l?}M`3> Cm^7 Ȕm) ̞>1:t)Ӣ"hQPLZc=fk>^??Bm 5no \IY@|C$}1C紮Gz=KjO#g`'4^?at߈m02h7 [27Go? d>>R *8!R S-c``0omP~YS albf@ǥ49 {=-q?~{|?5ض2000|dddN?F0mpy[qnJmu(t`m a@J6Flz U^mnMk +v?&"Rmxõ0P>>RU3000@*dm #m8@Zpr/s*k|kḪb D |Z5 Vz$05*~Gb@ *?:? m nK P k[!vx1 ^,zԮ$B`r$01+t>*~'9R*WP>Q0 m| #n1@f`]q(1 邤ZG~$0%=*~be!-##_0h? pm e P+m3Ӌ]&O9^#@1eA10`p݋m6aȷQm w_C_eo].wP z0 rAG6Wo7 @L+#22 F m k$ah aIDAT a lwlj00*`@eL85`h 7@wZ9GVC̹0_?2@*( 4dK0@F HҤG'!mfaG%m `Z0*a$1d5=xBC0}addIO=Q@6mE kd0@v e?kHFՈ@W~1 xqzWá@ףּۼ>]Z3F*m¦ *  S0*~l[ķ]sájV |z\؆pM`{###? ms1000@N|i <=}b0FNFz/bWh80=!r\/GTFm33@& ! put0O:\b[&d=#0 Vp⣳aߠ73@zGm32001003002@  17ǥ]!D F`۞m69\@E@ת~¾ ( mB \ \|b4u10-CCY?Y05o{H(TmU=nHC2b].k]Qf9" ,~d5>:}j #7~300cw ma (2@F200ARBhq[Osd@lajv#R3π'FFF&,vQ@wmA [0@ Kb"Cn`;DlzibPj0z/60;a{lf0 .灭`PmA Wk0001@I100`@m `@w.u4z%!BJ]~0- RG豩GWZb+}t6̝>100^; JmAS 2@/Nv,r*0V)cS^c#7 d xinA m! i 2@zY 2c'f-6qtq7ŀ 3`*Wt5!YXqt9\;a``atx 1m! * 33 FUUR :fߢ5|b.Y Yt? PG(m! 3@d n_ "ri ˣq5 p5X{0%Fہ85i`~鏂ma300(1@xY@o-2Dd@J޻HeWH "Q0 ma i 200H2@zo S]*z\?)%"u:ʘXsUljM` km2  o aW30l| M!P62@Jc׹`S_ qz읫0E07ͮIHCpC. 9U(}_LT|;o=qG<^|\X V"zmQń B%~c~!2 M`U.HGlNAR%Ao? E_'##e;` mQA~@Āh `8.(@b-å_ʞ *Rf,#ƽ`X!`i 0003@L dXE)Qsu5iRdA 2VТJVR!JB#m 0O F?\+xJ5i200a4FfmxD  %hEB]@Irdd !m |1( R@Vp rĺ;k `mXġX G%0Е:=rĸ/dTA~l(Cm  O(=ZҪ'ɀ;-0@@2!8iP0B3KsgH/2 *Hv~`000dddda] ##RĤw / aGQ0mX$XTԮv{H J rPLbŁA=یo `$R"A@Lc=s(bm \)>zԪ هt-𓁁 Es +!TQS"A@L{2U0z(m D -dh dX|>300b``8x$ |2Z # S&` :옡@ 7XJhG+E?ۙmT艣?q+˿)m#0*cf`1B|تd9'^s|F~ 2sA0ﳠR0FDN=+OSm yq44 &d18u䖁60@184 mzF\4*}\```/FO6022g``PaAl2{ Fp=b BmzvH*ٿ T /0Z4pa%##sȖKlSh 3cHc`t;(9mZ>EH WzG2! 3G322J3@9= #R Q0 hmZqH/G +~t~200җ&ѼQ02#0wZnR2*𞁁dz`mjFHυC =*7d``gꀟ Z x0N`P mjf ?Y_!r(_322a``d\BJyJnC'dD6Q@!mJ+җg_Oi vV("FF -Z\a40L8 mr d? $=^w 𙁁at̀UĖ62@gmR+G/7̏nc``(e]7 7xȨP!XC>( mb3Wd 'p D1 F` 'f``e Q? F5m|2ǯȀZT/!im` %2* ip2"1k``ml2ԮE/wa? Fp;00036ipat(mt YăEҊ]g``(c | H.G`t^|```bddTfrԆg r(mem"GR) `U𔂑@0'bd@K ߈s(m65 ~ʟԊí2.x+vJc0PpDm\[@~R+? G F{# K P%?n1@J#mL 9yԪ0005i`000`m,Y'Ej20007 F5gFFFF=Źnu#Pc##DHC]61@FF 3m /Y5F100\dm ~ ̀ ^s200R6ZF(`0l`ddŀt47dvA m ^ѯҥr|o1໩o# gFF~5@ x97`w000m N`&NIe ہ z`4,iF+\ay d1 P:HQ0m > ǀY[a``8}S'A[D> m .΀z|'eG7a0*F  x0? 70AiCd(m /&NnkP `Āaddl```gh[ #Am 0@F#m0000'v߁W3 y{j'##c  8Xhm3@!. aA#"`Vj##k.&J0@FQmmH3000&troߏb rHGGi`5[ SmQA] rb*/gzPs/H]s0C1򗑑QS.222.m02@D'g?200RmåB.C ?322 0K]3 ;hm2@VӓS&F-0*ߑߡKL,lxq%w u#FTmPp2@Vɏ!+b8XHG?G l$`7FF ka)tu_N300FmP3@V!3G<? gSm#mP1@n#L7b@~s PG+Q@O0!p.On#/dM[*mDmP]HgUzC@)la?P)BR3##^y(300&QmP0W瓳#  Jl$5&#¥l62w\ddd\89300\d``xAE(mȩ?DS=B m`d0+h|`05Hr ##4d!J 50HmQe8,`q)`Ā, RݱQ2@$mTK =υ# d= hbpXaY= )PrQam d@j fhBe=8 F,=p|n$avOn#.mmH_BP V`ol0GTm1 Իc84:T? mja06.' ۫od``OM Gm VȀLP9 T= !3l.=@U샡A-122d tuQamX PN `Cŝ`hPiP?1##>Ě+rFv(y+룕?3p(`3zen@NWe`,000HPa tHߟ3#+c^hvޓl 222n`@HH8m`1Cg/?PoѓC<0`Uz222f 7000<m!O? <*pCcV`0T` L+ 0add\`Ї𗁁4J7\] UGX0*2?; &lk ߀eв8C5 )7k. zVgNY T!6 `*G`ɣ Ip!.FFƕ y#N000|# m00200X2'?@,hYi d8 h#`W޸@o@0G|`##F}>|/ ф FS? hOh?0`(ñw?P 0.}o qM' { 3BBFSF+zUvQAΡhWŊ@9$7222a@^#/322F ̛HAgGv!Lm7p\30P?6r#  Ym41b05òY hQ ф8 6(hCMH r\g` tdEd?d r<.}Cq `Pk `k\e@Kj#`Di v?Dh6d@ aDCQ4 Cxhe ##]q(F/4p۠I vv?$1R*e b6`] < 80W^Z ^022f``Im```8L) FHϟITi6d@͊`7 }` #t5ÛauFF #`{ )Gk3_s,DZQ@_00KZO0u8!\V;2XAt #2 $H h] i`0TrCs00Xĺw###M OIqP >?\@ f(# `䂁*`0 =2'3'*eP Vk]h?+Zk`Ӣ<m02b``ЀI]𝁁0] Sa$>)k1w*TFn0=z}60w 㶟|Ro g ; uѐ Uo/ Hw 9h̕`vPbJog qC$>)0 Z H``}e6 F+Q A`H9O0@c` pnntZ/{OMv-Zf 54z?bXWG1N# V F ?$pj& `(} N0Pq;5I 022ne``IpJnpN =)$>)i`k PjP? `0mH —^;"vU*xb122a@Fj# ҝ6.S WooE z$ 60œpDSYD E e i (?tNPxV¡<Ce10)=AZ))n4 'ǿBKIcs1KFF_ l :}$H 0@ I]Sf BH|b{;([ Rh<@N#s<)p#f㟽&P6SN %5$>)C@z?/l00F ڂ4#u= H_FFƃ P> Hs >0?R.y5*\ ``i W#( { f9s.??/3rP`OmP J q`nnr0FW &1@w[*N 9z- %Pbœ1f0R+&b3) [ɭ4-hHʝ J =>y˓ȋ uUp#{: r(~0L' Qd0Pߧa{*ٍbt=E:*j v NHb? \? Vh?(7  0i? C} aDm搳)#%`JL S (,hC%N,'' s@0@ 5Pw `X{It#L UsVdIj:P00=.8C//@sIcWJp'PꗑT_FF +I x0068 Cͭwtxe&)I?2PE iaW#Şgddˀ 7 ru# ;D?=YzN Uu`0,&]@,s`?zI E  E _y@ d0o5=l`(n^==F addY@TM$Os¶q*ءE| =h03V *>(@NY 2]= Y.H6# H|b_ @Q0 ^N-[(k 0.%l $>CĀzR 7в" =9B`лbzZR<@lĀXFTi$O3LS z]aGR@Fz- FFzو.͛7ģg]ŀ;L#J jH|b{@n O 2"j FCH^t0@ SˬXGt##C>i7,{.旘ޤ&h_r&:`j9n%G? = -d0`^C-s<<>kT1 ˂,#.0rDu*2A ,  0kT ҧgXZ8(N ^ȡ?0@a`3T*f`l ? {G#=v_FFo kNgDP 9| 0@n#h}09蔸vSZ級",t  yj8^?̽~rв!{8ѧ`R!mTQ-K -%L zn`,`(] {7?-0 p@m \?$ʟ25@DJ^[GfLp`Λ D=s0nXI[ YiJ _HBz4ѭe {T_FFƛ / 7 prc #=Ĭ ط] jWȣ ֩|l`6@z F@ڎ 0;4?b y|` ' C>6AZUQ0`? (q`Sdm0.%43$`G;:OXrD sD`Y`84R#VC8OT/d"L~!dԀHnG3Rc>5N$u".sH’9'8`?ZSn` k@b[dk[ <=]H++ I'@ZM`b5R~zͫ6Z󇁁bedd|@? H"waN\5HSr6I@!b{XPr5O@C{7VxBC|lw/2( M9, ! g``Auok{N}Cu_3@g: ~40f=}s=^Sb"'c`ԑtgPb H7@\=kٍVG 30tΟܑ O;hv 1X ۧ^d0PLj5`@)v rCV'1~lkȵow ZQX:ṖmytkWOB]z``?ejp`iOC 9L?5, 3 F .@ȱ=LI| wiB$3#+4X?v 亃 F #G*Kvz (^b ~b*~j{O(o(M>GZ=z VGϡrA`>Ap D)`(d*X vRoĞ_AR܇6\Q.Xr5݀'d71FF_ Ͽ5 #~b{/0x{q-@VeCT{\0Fj"5g (k=(Qo ;h6@i?V؃k-̕?=mJn='d?5 $CR3w@|`0T F~Tb!5j6զ 8Z F {A40@Læa@c7fnZV5Z@@58h Òk'-5z`B 㢩5  v ?? ?5 6dhPVn.`C%;=V Jc6)ĺ{۾~J?<y@2Jn=豿ڎGʂڧ]l b@@J|0#Lӓj/G#tO͝ x##? ď23(@O?k5PCl5@w"c` |6 0100RQ v%ȀHz kh<)XB=Wj,#OXN'\S#$j`-QrF`酚~Ou5Mͷ0;(}U)iG g``xh\O3pn0 E(^ @ʙ>éҧzGB -~a\k.000 MxvHqpAMV=vlf&wM:ḅt67%"6(9k'H1ZZI ? =1һOJo3001 9*6^Hk<I9)zTjRazIOZ\x(ۅn'M;rG 1v0zY u}u&r]*Mul4RISˮh `[D9u1( (rXsށGu #4a`dd@H|b)!"g'Zbu>5G|jphš`% _bÄZ -fn$Z[b$5~]ӋoꓔéH]`MjX o @(JPd=N4 ߎDICC1@ ;3i`XO@g0TO.nI Q O C2'Q`(ĂuO|?-'c.}~^55Pk3 '5^a4a%_ f'`=A=-F ҂s[^hn~/MNƣJͣ6?Radd```c mK! F@r G`05?SiQ{@n>.0PgPcvr5Q}G <ٌg; plt ?Gkj_C 0Zg/fӻ0 1s#,ct𐁁M `#F@tlI!RP?Z >RQs=呁ap^#LjI- )r2# JCt'P d(h] ݑGĘA65]fKm[f~?`'@I~7K~ѤC#[%hӳ%fW fމTFMv4.d q3 K91v3B;(=O}下zvOҞ;H3 K42.`@ "ƀ{kʟZ-oJZK^N<4F/m')`Z*/#?R Jo|j:.|~B7]?%7SK=:;)nbԙz@i"#e!lt)=M\j]XGI\JqC?)əG$r\z=O:JrpQ=b+Z,$QB*-GH\b=e4{#dgI7"g r?XEǡ0i5B, zk% \VFZzH18}lM ZgӘ@%q"gL ibWS>J dBBƶCBvj d>.=Poc6.@Àh&^@)C+7Ċ|v17 @n" @lRkx_Km:i}|053 uh~R!7o07h͐ZRS &ZVAݬG>r+}R' H`bC"p# (Rz(;&w梛M3(u+5F E|j)9䀁kd@L\Rb.W#jH|zZP00@!H8 "e # z()\ivZηQKԚ?$eViZCi5:XXuN'>yzA\)ngg>Z"" ď3"1 AZ"'g;@h%s4~JG)<Z ĎFR‚Ԝ ,Z'F--zL331XW]2\{r>uzoP"@'H+Hi9LR%r@KH? R b :;Chi54BYA~d{ZbPk!-ѡ8O, p;qdL1"e ԫ2V- 5J̤G!KK;h9GK`0Lk6}$W@ SkyS^tiQb "6000pX"ʦ׊~R{F d}00ȵBa@]DݔAH/V+a-s?5hʟ4MA7 }Np100p300|%"r"E^O{W@=OH|(j,.bf71ne!{ICqX7P;)>)VC؀ "pƵx =%RzĚ\zM\(Hj U-)n k|ʐst\]GN8FF/ x|3"f #,(Cy.r%sy@"fEMh&N7>yzI\Rz10؇5@:b%\Z7 D@tQ`^@7J℞fbcdde}rg&8>"4€ Z4C9{ZǢ ߴhbT; У,#}SA*խ,g```g "c7B^|bD73PI&Od} Sb3K(vH~bJ|(r5{kzSf210` ' 40"47🁁͛O" {H] Ey8BAb*=z 49SCHmвҧa?&Z5PHq+9n#;lق"k96p&."4<@zj  #z)k@V 33o n&G5X3)q7QjM{΁0oq:~"T(%[0h#N EևoXBC'mSk!xjfr"6>OCHٕ@4. 'Rzj$PQ'N:J4(=6LxP?z}|d``e X`~N;g(1?a͛7\@`j9xZ bڂZfҪ7@iVSϞ\ Fz Pb"Z6a6% ZO~Z4&ۼV?Jɱ.[ʨZ>7NpUh>:`d``0c Llc·@MG@ϲgN/~!k.[[ 0 7_'߲tA6." 1%6k+]ZkjYfpV/>mT,8U"lxV?OhwfεzoS݉_'9] \¥1@Qx7@OAzlLS ̥ J@H/5zFLc&9GC P[a&= '78?F:\\ 5rlo`D,6}a PG?~?5رK*;H}@6بTCu+8V@źb{"6Aa``Axp8bfRRcÍh;=ftj j#HXr؞X;f5K. zi k1Ut{f@@=GX䱩d{ -*'b+LnCKiMͧuOY )j k)؈1r7'j$ tsGv?|SL r J8bk|b``8nf #1 Rh``NDnT3w0SsGzb#zڍ zsvGH]Au.¶g300^ H@ʍT@C 1 <B[R ^ H1T=Ȕ=dJj$7|IRlRwQ׏ { t)Bf6YYckd``E->}x^@0=Z7.UC5{&a  ٧O=1@=Xs00A>FmX?b``,\ ׎ژ*XEja6 M "aӏ9&a3թxU'awuԗtjsUeeĀٍ+yNǕR᰻Ax ;G~# kjEȽjEyzyr#2)u/!ѹBoQp100 Zrd``@ 9Z&]BǦ;!R:>f0- h0XVf0c6?lzfyJG$5UC ~z100XPkA0B$`'p:t=g00m[Yc J^[ƁT9=Ɂ^HNk5׏ V?RCu63=N5b52ԏKf@6,zp52@c````Bw6i ȬHRbhی60k0U j 1RҪFa@oӥT`*`'>Bo5300HBلz >d,zҶAZ0)@^45W'z ߓ:@-U9)=|ZfO<=j Ghu>>Qd``ơ(ScBdŀXHMsXf&)P bΛ^0[ilZ#Ԯ)A) e?=Ζ',t@m~J7sA98pN?2 eug``Pa&6>200 By+@˦(*|Z'!sH5 c 8=i hfޤMs\fc@KF Uz$>*\ C|  {3000BVA"l}\0` pI}H H1Տ\@ 8>9n#У"u3###Bn1300". mԘ Zۣ il? R"Q"$=H-L=P2NRGus̢ﱹ^jliֶH8 a200ce)w \A +:va ZYf;AYH3<]o0p`D8Jf(`F{lciqH#q|'mp*qY-2ɉՆ=d A\\T#t2yOıW̋_5hPo;*we6n fB6X```EgUֽgZ.O- j uFܑR*< H<]8gSs!9;h1׏~rQcVk'H?{5Crn1000BV&fw#3OI+@y^c@͊t c@!fQ[h~@ 8đnd9h?Bn0  p- %NjCQj z}4Of H]0 #10 "6HUb6Б!3T{}A iWAG͡s9;+g `CQI2^ '`k<}u#bj}:=ėGxvǛp0?սRs\p߾WJȵ^`LE 1j OSRi2dTTpIʟ##lbͤǰ?^j204%5`[Hu0 )_ _G@r !N D^7'bx\3hu2! =%NlZOS='2 VAj H>deczIUG& r؅G> z gXqj |l0, u b>}0&5e@^2FUS,jB09%z2ȫQ#>bgĝ 0 C'c=y^F.[=gaIɃ7/e0XWltOuZ%0³S]eX1}SNcFL~E^߈.'u y @h1FCc@SX_[wO'()4e% wG T9-d`R[R:O;bIJ6 yCuG {;R4֋5,bk>uB ٍm[Ir0ՈJ aNJzĨ?v\h -\$:R5 Nfg````W3pu!QaQOE'k37K)ٰA-fZC]̣&&" ׋M@d8s(YT7Pq3#Li`.] Db``q<8ˀ?r=0Է r͠⤅}Ԙ2AV{1ZGMT>r̠g]Nx>u, n]A Tq!SͦAyIQe72UȞH お8]2ͷ/F =Ck1F=x7tU&9*=dpG*yKATkFba Z(0tu(z.jMb ˜ܳ6jZc߆_@z>!Coo!6tU($`tMOܫv<en. e@ mrW"*1*7q4+37 `04+ɑb+ul;j _4~|N1> CC&gmC 9Fo q O}J. dcg݄e Nz!ŠKȺ) j_\ꚑCM>"ͻ1QUk>bd``e``F$ #\,Hr;rch(]FUƥZ $})aE!e >z U[QUԨL]!O}a?)k+m@S0ON,$Dw<<b^ba 0~ Q= Z Aμ/)z5_OyRzX VwufV]A<1m7W+b@{p`n=#,c}R\f~x;sV5'OMdiJn3F3#XfIebPe3/۩Xw[7&]9 sOA"P.NMlsVKGrh Vk\_| 6Cx'ŢD9#k!=&WϓËݒ؋GuvF̈́Q'Obb <`J C{=TĮQr@`uQ7bd``0f`` 3p#q\|BR; lzo &k7=O Fj16hU.x19j\CS}ØaC948w(,#gׁ"^bd &XırWuk (W˺XnjTnl"laZLJNszӋ\ZWu,/5†vip>E:t6DHkbd``0g`` 8.>!#hѣEWK u7J(YH6{5M:JѫRFW;P-z1< D{NkFԮ3iŒE=R`nba "b.!S5N&*O`ٖG/{{)!n|ji>\EA|Z)0P+䩱 #tIQ;Çf`?)juqHLba p@਱/Zjw00P^Yb[@5"hY*xAh )HW~0VN\z4Zc {矖ꨱuG "~ ؗO# t0,r\ⳛ=#'u?=5BʾwZTySr( 'v1CWKb"`860X@Q0viEvQ6ԙ"'sj*`z ym4%rȼN ƞ2ⳛ 8ZtSK^rR2>!RԽwbEEo܋"uBU9[;@l#Q>]&4 p#PcNO|kE磻عR ಓh1"PmDd H;9zj'R i|aVjHC54އ }v |?bd``pa@{ԸɏA|p+'V>|poe:5HՇK%' )Q  kn#Wo }r4 nc`m{u(rLd4`$Zͩz~Q@}Mga``a)d0P'v&xg:"@\zŖC\.db)oݤ!?r-ˎ:\w+ `c``"|bd``pf```I /PGP9>Ԙn Gl#78@>\уĺ Clzq%,~ZOJK-Bj9|OZn%$u[%y\rZlĥԮ$IR=iiGz-!H_R000bb0( Wwr`,[VQm#24;$=0CѫWXp#wrj s?QZ_-.h]@h)#h`11(7@'>"ABR q([S$@|vQcZ8b92;P[)WJU':aF T6;q6@LO'\h ZO>Z ˓k>2I)X3000 3@ w&zSJaF0rVhZDOji9OQʘ501E~d@J@6B @ܩ]р^?{Th}% fYbb~AAG*3Z˛U֣r@ɢ3z:a1 d'w> 03d >S2g8%A68ov/Zdw"9 g &fEgmjY/.m[Ցbfk&ԥ}<ꗁ+G!|jnl6I(M)balb Sd``&GNE-PUȕ+>CC]Qa¦"At0 >DnE}ķ]6qJ'ln#NjG늗=R,A:6<Ւs0= uobb|Pf` JzԴܞ_ ݁O?-zAO0:6 9,]-L֍B7,Mh95"H[i;! |h)}vR&],g^bVc38Q  ~Z-F̡>F6G!yZ."ħRA bdε9m~200a``E2e>Jk>- i>so#d>8Η0@$ha'>s[ZNJNWJ$b'g$b\f8À[q 9s R3PGq]l֢cRe79A@ĨƀܩZ/#-Gy X@q?9vb! \n,rbb8 sG^` [hFj=B[Ss5*qR'Gd\}]9 3{!rWDlV E|\:ExOZ߉W¬DlH]|x.U$f#`ǗR5"JzZ~67[JfW!7Sʸ1Uj ba``AG qV1 DƩAGDj7DpnOFw@9 >j5# |S  g1f2gOP&Om"gȟܹvl5s!)ndd(\t  ({Ȁ%> 1.`$>@=2']s u)Ic/}rSgsg-!Ew$e 9 Aȑy~&Ay< <=P'baT2sd k#F*@U"Db!(٦G GrFC(T3zPN^`>~gy b```bA  @W cGI9 ^kHчu.BɵX}*X| z%?\I]Fu*ur%7\ '8 a{Z-5"hÀҙcn]A0kDWw&l9Cѭt=p? F@F ƿ ( H:0 D:+BF? C2!z}(ӏg2f|:<1e+b̨ǮXڿZgTl[!]yc&9r(@ F1xs)׃hWR&T %H#lJ+lv :z$3 HO_RG0`=" ]A Ǝ;q"6 Vkaw[XK꺝 \P,1=J{%݋bJe5X?SW\L 5df}L,]Yq|K_ e1"qQEaH*5x]A 0 T e֚[k&o%r5ti,_ 8%0Wx($zaF,G+6s\lk S7 *ZPHW(]Y|,[;؋9Wow B^03@ ~c?A^9W[BFp'\ZjI+['uȀ{&?u>si HLiK~bU @hX@H^~Bq0) v(d@l bB g``)9d@&Zj5>B %Z?5w ! !:O%;V0$l~J~2000] }~{vA6MqZYfQlXE??χU _ h~ FXu. >_%W`3~Xa3s8`@}R)X^7m,'۟ʗ`({fo&ʀ8'c@2p\/ t@5 \f20Pvp )z]HkA : w?5  >ʟ11pJ #$Qr05NƔ,8[%B.$3 YNC_,GBEXK?-C 轣 4/?+El Ba[Hn#X@aK YS#R*ɁXw Ȁ?).rz[A 0 >?g"[HFwhMv3;g̱_ :~ZpFPφrKm% Ƨ gHoFW(  ٹRvgcj$tlp38޷/Bh YC02 v0@F0 FXA8-g\a@K: at@̊ydy\zKO\f④%:r+J)]} @l s]R{?gJx?Cb+xg|#?2`S?D)Dje}.ƪÛWI4Sz6zA6g4߶v/o̜Q Dn9UNL$jK/.+/ Z|{3F@p—Wc 7^oei"CD{DZtZ i͕ |;gϨE?hV,?ȞR8̝A 0 W|_Dh٤ 8'E+&fkKێ'V/ ,x36)jm&B?eξk}k[֗Ϩ#_e`͆ R}Z5vT8 Il*뵮wV2V "0\w*s/}IOJŎK189Ğ@l#@JCGS2@ʟ>k@Inj y0}lY*҆dB/>Hy>mSd` ]e]6ж>\49}B@GjjVȀ,$U 1p!ڝT\^0GOWT8ePEp5PB/\2 m0 ҆2DÎoFfVm!Exc%2L yDlb/_j5= P:@ΙԞ*ec3ІUfJ6,La3=4?f`@3Bg  zI1!ѰK+ d 7W1@8d TI$HH)P ͤ. e/ჯIjLL>2 c@J#b s|Pŀ@vjr`w8P PFBi|g >T@6I4`g\#QǰB~?Q U#I3eBnF#e0;q (-)*FE=##?Թwx$>rZ9Тɣ`0l#]; ˱zp/t`ۡ yE3M|=9 -#4kHx?9oI Y^21&/x_{ ?c,n] ؇ڬdzhjf2@ )A\ EƷch()-B{=|0]kh{<@6o?^`HQpLcLyW@k[_mUu( 6HXYǎ'u g䚞AWy{$hqH –dtu =*>j4Oۈ56k hcH] 9n O$>g@ÆaZ=fBTV̢wGH!yzDH@p)B| VHjgs ljjV0y7om(*IK}ҡ}b @ O)qmA1@&H!Cv`B100|BVHHrCq{ E` ,ROZ)\ ĈZ\|لԐ:NlM+s5k.|<7ayjM'HtL F>@h) R(o?*+ltyjUXȓ;4.O7) E 58-lC> #;E(.HDy(j]b v_: s:0 FWCnOp;+t@ͼB(?RRk}0yĘI!~ZMc_(7U԰Z!J*yzC2vѪ¦51(D{Q(Is6HԪ17O:I籏DNe7=ZSh!Sb(%jPڏJ[S׏Ȼ*ȩOЪV (v`ddĺypX4<=짅_"qӪOj -a(6Ub35I:RFRpW+ITL5@I}M#гq0C#AX h]-+VҵˀL00P@jEFzR*wl8)T;B72Yx t@?|jɱ W hQ:."4B.iJ.FH.#d7S$6]SM҆9u s1x͠qOj\{p`?繿 hދ5[E"'H  FҩZ6_SKˆy9.jAOO-!yRZ5$9_d+<轸X|ds"wD8V zL(`b&l Fy(ݖG)RLN8Ŧ ʟ@7)rCZtw (>shQ T>"0ZJ@,t +))ɓ[CZ4H)i 6|#PGĨt<>RI ZZفs>v[|]A e/۷7w(MvMkUDI;SC,'J*QNF?N7-)k ~K*[ɾW{g,N*`YjzI!sC2jmd.${"d"f Pr`9jht1BHmthu$4 ^BJ)@6?zU!uʊH0IK {H)vK0Gxn?200Ǣ"fyCP=10Pwq #DH^1zVGƔk un`b1#D0+bH,ICt/ C}̡E݃ntF"1 Ht!o$E-FD(<5o $<\fʑOZjR!l$J?C t]ܡbQJCR{4Y$u|"󞁼?jb1 RfJz'ĸe0wr>􇚫a.)jI:\e#P5{I sB D\"6LDlj}қ$goĮ' |v0c!5։f7갪%c4B 4 ͡B:b jJ ى~ C3?'w4b"e<@9 J%K4r`tԐ=׏CVd00'RӜ!Pc%yt(Z9N9^CGp"c< 6H<=vztyJrT5ĚMNd00Sk[j`s.9?T ['d&={i1/OHST?Ne "€(FQR=.FQbQ@z*5@iT SO:j*O͡RO0r/Qܙ  D0_%_~޹S@B({V7[(S]7!r!}|0Xr_30V" iB= @ŀ(zL2\Iq!8P! Q@ARSONXu1f0񹍒F@ z"s""oLŀ(5CO;ǫ؆Yd@[0ZRǧZ {Hȯ"@S )Iq‘[q1z5\Iq1z#!6hHa?.}ùGWC[]5>sG'?d"  Sk?$nZ4p   g` X30Чǥ?:b;(mTHU?{2"ħ46i1 !i}*(1(SuB}d7V耈J?!} a|QRGybIm, ?>7tyjg c̚ 0 D =mCp뻋ƟKf8cxx v3`4_K4?cld%/vE%~u4v5?c*9hxw[^tx" ħ4!yZ7@(6T.;j#Bz0DV0@\CcZGH-. /"MڅMSĘAM;A>|zI1A@bg`]ŏKĨL?1 ?!{ [ eL:>$crĭK޿k 5 r\~+S-C)zg]A!P+W9;Gg? wė$cK200#{4(a\F#9% rh@lBLOgyxn"֯f3TCH͇m|5̣-RKֱ.& XI0*- HzeHIQi MNILD,B.&avLRVgv:]Tbu{f6a21Q?9x|k"8t C_ݩ[ޔ$t uR@4*+9h{t|;=7s3ܝ-=?Vk"EPLt_ssJ.'t(ws} `F@|6FU`՜¦_9g [uA/`l Ԙ 0C;vڮʐ"mR uI{8wM]WEL>$>hrxCYC"i: L A;CFƙww)^Ư8?+m&4⤸Ԙ9 WaDial6 U$Fwl{(`ql E(`ƚ5[t+꿚gv} _5 V9[5O2FHM丝@S%E5#=E㲇aS v0U ҙ"GH= u.V/ɝF˖= @ 7RĎ{%RqCJ>jaR'7E!F>7 0vH(\()%V-}@SAY /'cPRZ+ET 3p ܕoenYBx!&L*cDAܘ!'= /?;ˉllB/䰢+ZA 8H8tfUpȌqJljEP/A_j +ɇ0nc3Cn@U0J}!ܾQ%<٪)J_c0+g/ ^ O2X9 ;zXc'$( Pگ- 0}dflH@gS%94",p ?s ?$nKB:_猓]s;IwzX} Abv/*5FHh1G E b@VG';e7!ӻ!E~/2ov?j &G-Fٺ$ڲFObAF6 e) A0不XԨi2E@WOjGJtϔ4Z(Q Tv@D$vR* UPGg#SSo4 b+1R{05"Va RaӃ 쥤'= 'OI݅EQ- Wrл !l)r+s|69n dsCBu)Yc.!5Ĕ3=:0zpO W[ OQ "1M}֚bApYqC4Yo8#`X*~;chZ9+&VMv7LK{Lۯ?sb\7&U3[ISj"gzjL59fѢ@Io  Ԋ hc}r6}܃b0-6IUOJ㞜v2 Y;HJuUap"Oj"S4ElKJ8bSK=T&Pr+oJvI%ABn$'\!$GR*tj%WԒe%W$` U-qr2+T]FpMIn$On3T}9J6 UO2j0ԔF %uArq u _Ԋ3K#1fТwM-#61BlsI .?9e+>3Hm,P: ;{u)O2.H9b3w5B%d>%J9B6ZXRkD_FP2w *BtHiϞ\{IQ?{%{Tu?5+4 @(IMP+ڍR 1j |rl  ?ĄBIOizR5+jw Hc/!aIA' ur?2̣"p!NjѻM- 63 Wj5@7o07 u')>-+~#\zW bFf``xB@/G/v l2YQZ솙Gl!KJ~UҲq@ ;I/)f@$R509zͳ*/(m в%S@[ȵ)GZP кUJjF%)Z R2Lj `3HaE9z|n!F jt9J 7 !W9ƴlq R䉱y*DQCjr )5Ԑ3*@n^y@[idĨ!'}j'cO\jTT3]#O݃X0Sv>W|e39X6U_=Uj-"q)*0p}3 GT=TEb  fÇQ@@ Rӻ#FtEH֕?.@9y3#I- ӪI9w Բ*z6IiҰh.{ #2#F=jd{paZZKlP#()cS@^\jЫEH󉯃Lw2^czG^>!h1d5TfpbÀT6{Q!@JcyPEM. ߤONӇP#%֍6H{OrG/:XA oԺvi ֆͦ)Ay;U>xϘmt,G`$ V"_f 2t.tTUk*~aU"E Kӭ`"2B1c %IJzi1|Ej X5hP'P&ABj r4{À\3@H=*~Rr>Ī#7҃Ī!wD 6kHp9mlD૬Ő?6FP?!@I9DĚGJ```G., 0@aJͣt83 ֭d z5ECQbB7Džii7)'1AYT(#HQKl^%V/e 5*jԐ&b$ּ[ t, ȶOH|rzz#֌@%n#HՇXqRA(+jE2?)r?`L kxh݂#1X2%-`j7H ׁ GIAjPnJGO/1n"VZ~lI_T 沏bm ȹ 00P?b f䘋lb RU?:1O-=TXIF`f"Gl|%yR{YZ?Gꭷ ̘A Olg^9(T)12=\kvW<܉&_xZ=Ws{^)bdl+lT49 G l*PaBLNL!F`j1(}%&i`g Դp AAr)H@QFo?L?HMԮIu1v7X*b%C? u֠* ? L t:r2 1ִ!}'Btbg#nVxRnb!G?9e)?1갩%׎TSWe?J #)0@t= a;Mb)7M)f2}b5!b,BjH!G?%,!9rĨ ?:rPO%yt*#0p7aڴU3Gh5% r#b f8ؑrbrz ~bÓ5ĸ9NЪ׏ lv 5Lɩ#pbj# #$>1=VR{PK -G(K+6^b2THUK"INPjE s(]@-ĺc S:{5= mY$>Jpb t#6K!s1 ZQ'd+~BbzzW ]#%JÊ: ż:ÑX"Di|zO9k&Pm+pI9N #' ʅ /%"( &O :zߟ#ĚAYK +VoX%OY A2*R:n3 ~ZA =CN[6 KtJ( chD$-&.Mףb=\'.v:wӃXgPt/aX>d6.G>%u#0` ,UGb\z=@ĘA9IM EOŁCiOށ'3C6#0pVCFԲ#Az29~bGH&n={Flb" J/S:J0X*b+Rpq(W J > `jQGlbXO=.=3Wj>- jVO?.5cSOLH]Ԯ1B@N>5^a3. ]i$Hn`SKI#TS|b LJĖ[q 5RbqWCbN fȮ$Fa5̤C1fbR9H̥WO!;cc*?:d5N0 ~  H|rƍF.ur#G@j jXcI5c$V.100<áoX mY$>(G:ljiKJL HV@Z TG!\갩D/5+rS󈁁 ) Fs$ j41}%"&V`l %@K\;9ߏMp?000dy) 6Ȣ@$Fay4^JT@[Y]C׏Mp?tI 1 O d`~jh%^jPkPl!eRŏK=)?+aw!i !v00 F)jC#T;^JZm ;T=5@]wW {oX I}4 .j5(̩5o'rQD@r+~\zǥ~8W o  &F`j`SKF.=^OĚCI=8NJ'J+}R׮j|?)jiYRw} 3222200H! )ZEH`nk:6@J#jTS^d (`dFF>ZHV d͢9P!j Eϊyg5Ye| fq}!@,J%)hu8Pq?jYa7l/!mSȴ 6AeCs5ɱc8rZD]ǥgTN100|ġwm`r "F% E=c?-O ; FBjWĚIq5F(YH,;m` C@Z\Ibu`9 si!04@bV@z C~bҳp #m h04駕0-@;H1T5vE@s(Uc q&N?8hm hbé@zz)+> X7cW%׏O` <áwmr Zhbj`SC jc>=lk>fc&%I IjW3Е?%"Qm{#ɭxBC5v@Ͳg 2?.}U?M8(mTM@4,|(n pTiYS2M?(ms#~j4!wN~(51vP.\[c *~|zm9M-VO|zH{$l.`(m厁ǥ~Smd Z7 R"|Z;% z+PqQݣ mtsN.=!@7 V\C!| 0Տ,mP$sb .iJT=TVc;a ZmFD]ԨCIZsȟTN0zmP96ap.ĥz(m-u+ =vO[']mP3001E6Rh>}C!@:R' P 8+~\hYk>TmP200300 Qv  Bzq )u z@JY'?%Cj000fҗ*mP1@fCv#:jE3ĘGZ hQq {k]O3 q$mPp0@e4mQA] 0%@Z, b̡;%%ze?1^?b`` BmH3@YԒSk>}Rs;SRj1CJYq#"ZW0Gsm1@ bE#@zzB!ޗOChYm2 >ZVĨ9=3Fmp3@vps]>9jZ@550{j?>Ѣ'W@GW+3Fm1@vbJZjC>|z1ʓڍb$ -R"R'd&-w dTsQ-m `d``b\+ ˔>{kCX;HR )\>-*?>=3Fm ,tq JC~b̠)}4@ZO鉀YTm \F(ՋO?)[QӳA@ iK=CǧT(p m .&FF.=i5?G,N'20d?r@qɓc1(m > ǀz0 !s]OV q_m =Xz4zbӪR$lji +}R?6=_ GBm MY ~7 Bj)RJ'@ʞvcq =+~\yY7m m Y Ȇ&N|zVNQR̦]6k 5r̢@2wPC/BѽCm }ia {@C| .?} vkW%ѺrqCm  b !lb',J%Z=`? ;(9`T`\;om /^X`jR7TRb1`4Y4@z BZW C}n000%`("m O  `Gv#^z4H35v@H]1+d=Fm _@Ng>b&5젦 iO鮀Pg``pa4Km  "Gφ!}ĪLGO$ rW7ңg```m @)00 b %vQ 0TNd`>!up!3G0m,9@HO+z@Jɀi0l~lz3@?BmL Y$ȃEn07U;Rjp(V@jFHϊ$D; mlY0!@H/9jG0R'd+ 7b m6pic'SNrp0Պ} =#mf"G1@hapCe+ *}b"2G0mt @ U@7pk z-j`?1@*wD= FmlA25E҆5Lr&HJX͌ i(Am|AAa75 R^[ɱgZda4 mb3<i; 04``&@ꂁp*}R&2 iQ@emR "1@jCĘCM}.l[e *|Rѣ˜  "#mr   5*@Y; 2@~(;}DatK( mJ d4@j4CyVРy}8}Hdmj&AB \8PkXha=@í0)5>>~0@* /:mjqbA~lcfR"pH2j +}be}FmZHC@ h ܁6s(ZE4@bg;=z^(6mZ.Ԁ4d;!6@1flrp-i]ސc>*}be?ռ =Q0 hmzVȡB l k>vP ]ԶևQ7vQ@mzF:9!<=OA];iEZw E}/F(#m 4h ljE# 2@zt(m$ | m k>5ʧk!1@*g 7Gm8 g H3`hȏ{ha7`I=? |` m D # w00f?R+ Rk_ -E.Fm H3000.5:@}Ă@20Po+?7 C`mX$Xz9?Ѝx 5g?gTFm X  vznF{#joGCmX m00Vcõ0X&] xCm b n(DV9 ?Ѝ,Cȝ~ {Q0 m E |; P8R=ea``x0z@(m a>zi ?'Hh/ mX !(@: Z 5>2@B4p(CmQ  (&fA!:WOr @Z? ^HeakAmQ@p16x([6:̌P = q4G(mQ@:`d``ea^ý¢FQ?3 mQ@=q%aj4 phYe``şُQ@9mQ@CFFFF6HÀ &g}p `+Ƽ5ZяQ@;mQ02r9ء "?;j\aDQ0  mQ04fE,H43f Chf13`ǀ%7d/cTo$!Q0 F $!IENDB`phatch-0.2.7/data/highlights/sphere_top.png0000644000000000000000000010541411346363116020657 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME4Ǥ]! IDATxk&GzTs̐!޴BFűaĐ Q; #cG'I   Ě$B GR"JJAvE.\s9]}vzou^rΩyz/UTZ.^7x_h6 ?Fm6~׮_ks?k߮]SJL)R%~l:(dss.*UHSJ;|2@?Y/x|w *83?^0cY vk300G۫ JjR%׏ w $݂˗uUR @*I?`-||4}T*UaU,BYC @(R7txf;X'wu!TR-UPI)| O7X>pj%R*U6'߅w }z~jBJT١5O$><nzzLG mi<p{7ч}]67s9W4pZTP2A3K~{>ޟ1g營sM ?✻ "}oܯNJT)SfƀM;}OyeyW/}ü.)@nW@JTW1!!wGFc*T‘!a>=rXey׆pS@n^|N]P*U8œU IއιϬ LU*Rec>;\Xy{ȌWe.8ȍ20}AJ쬜vRzxR%T~u}L I@;XW@TRV*.\z/OOsvdT;w{{~?;xfe}nkB[xf6T*#Æ\m:ļw*ιSp\C-RT* ~'}u?\* }蜻>3|za*&RB\ =k_%G6R]3÷IOT*P%Op|ͳLޟoWV)@/s*ƣYVE&jQ*TH|c|?0*UJ}6z'?M"pGZ%U*R=øSԜ >9O*Kgsw&m @>D'P*5s7{;}TY@LJB&J12reUT_ιf?wVP%_9v G~{g:U,F/B' 5w@%U2gg;B~?PTYWNH$VJ#}{{SNc*9ax miJyo0(TJ9-g&R @#iПehzwiRegwk րG  {RUT-?w݀7> \|9!q{cp*Ulo8~UQb }X UPEO8D{i4VReDs+" 5aJ^!~뿻7:STts'XZQA* i?C彯T‘ws?_ր<*D9U<7{ߠ7UT}?=<(pЇ Vʄ<>4!{U-g]%Yvι'$ ʘ\|p_x/vo]c>YI]W ٣V譚/{]jq'oBLlVR 8@~$p@ `{?:UT$4 hɃ6w08g{;֏ jUTMs5C!p:ُ W!1V՗ Ϛa<…Z`'zg .^/~ۋiIMtSrE3QM܏  |Hf`r}r'STY:$Lif}૨*XB췢hGVЯR@3ι$`w-ûuU:{Y?\J*_p})_Hs`%%9^pn{G§:VeY8~}9_S`#.\seٶ<?Z5[5JIgsɏnw~9wtTP-Eëx2v[>_5*Uj)ιt9́#G{U۶y ae|+VBRnsg<9s$>wG T Kyj|c&H UTYy9w.<H@M\ @vrj7}@yUrN=ιP\Т?W\As'b%T+$@jJr TBp"MpJRs>6A}`7KJ@Tbs<ES΁ܪ˨rOWЭ|jAHEFr< 撀oY__%%=QQ%T9]/ɪ0\ˣky}> {*WPRΎr:H%W\˭{rnWBRZ tq-{ \@x& 6RD5[W=s<!0U?pu9U 0p!TT %T@.Wι㊖|Xp% B%s5W2렻;H Z]Fu39 VwWlT g}rn^B71U~W?ݸ}) 1;@5YM}K.r۫~dkfNS^`g5]>A!քEW|ٚ}wysw9 zpOV 2lX>3|j2X-@j-XT@=y-t ɋ8GqCsw+~|] \ټTRT4םs/|hDAF[Iu_#ST*m2-/@}\=\s-<r-%-,OTs &{r|Ps%$c)wgpЇi߭@qSbmZ?UcI.R=q@6 E]Qwpd5ch屉]4:ٵ1L7sँ%:Q<l,񛀟].U {YY^_- i~ s Mgl XcU*)M4Ws2)pA,K._ (9OLG΂yL)>79ν4sӁ<)T @!5} KSTA:A96?ιãs{mK"/13wXHJMM47J&vS{s~*n˽Ǯ9#+W'Y\mПim$3{n#@fskvw|xoa XRǕOe6RrҖ^|c(|&1Q,/1e>DK2Ǫh}<8kmHpW`O;'sΝ PXhKg'Q&<%X Vꪠ.EVp}ee?Ǐm#0Z2yD:gK'ܣRZў|ZZ濩p˔ۿ kST<>{lV]֗o~>^xC!YK!/mUjǚ-/R XRj%iKM~*ogcKř{95¸BH\%B_olAMy5X%Y-G}=M Cgi3wցι rQ@yOnyXذvF&-)oWb\n3[gi@1"㨀-/y.B[NJ͸psjTB&|ιߜ쩡&ps[:][gFiQ6j!J4pY)o զ|yM)'==jspG9.,>/^\O\Q㚛9pu!}5JcGc\q+oG2jϑc ֚#]3s1E*(e'PRL{}؞J,jK%9j;,<mF*8`sCͣ|ۇQ/|o / JqkE,9:gH2eph'Ws7Sۿ>"ZU{jWT7 J9\e$-`m%sKι Om p=ߖ<ܰBMm:f -? QkCD!F[3΃sgٜyme]pbD\cӁI*d8-IbϹڱ\V\((!] X-XN9C9tɦS*=I\cU_e enEs=rν3J Z :##`\d#gƔk#P,Jm7Ġ8 S~|C!0y\)E0wN꙲p q$thP6 kȘ+YSERϋ+LP akH@ 90m6^%!XT jz߼5\ ҳF U+~}Vks0A]b5x1ffȗ@0;ߞ`3,_!EEd5o8%RAS_u ia\n_ SPMs}KSl+v+^nfn`WMx}s<Xx X Ʈ=Ŀda)Yra3}-JZy60|j]qjJ\)}kv-@U/]|9)OLJ߽ 9c$D0eK <1T(*m"9teX7W  aF%p~T-e1ٸA9ihtښsik%Xr;l k\/xY@!Xj K׽U s҈KUP%^ReҝzR{]$-͞b5xN 'f / G|'dP+3X >F0.ǬK@h&a->&=?2ޟq΍E37ص/)Uu[Wt^#Ubɽ(0L ãf-_`bf,N~q.b$ IDATk| Zl쀱BcThԔڕcq7\Cnm>sY:cؼ|0Dbo$σWCZV7!ZNRUnD]8R~'ۉ/P'V+q^ pV*Tw~/dQcFjMHAU\h]ryW ̪%|tvy;NB|_b8쀦a:C~cэq+P..VyCkT~!WVj}'({iAZh-j ў4 `Sj{ Ͳ_7_)~}GY&дib K ^MO8!ue@[Z(O |ݮZR.uZ#u}e#SXF.Nv͓k *5pf-@NMHJ ms g:3#NS-c^::Sb`]M+@Q'TBMM=4:叄]MQ>X/7(h~Q [q.~cD"XYxkkmj> l,<.Bjj`ͬV郥`J%AVz%9rܘe}8;] mL+@9DGV,?+~ d*<_j@q~N.gM~\Sd!sIm'xf0bh{moANѓl0paO!keԬ `UP[]\Y04 lY)Q=,{l* 0jz`U=$9|9m=lNvg/iB!jXL肟EOjFM)I]w%hE|k׆/ aϒ1Ræ9aǷ %==03>>2xпm!nfB, YEPoasi-c+ P̾_{5 @0dAۓ#AG7/=j( Lu:i;rX+ lnC+s؀okK gq;_y$q}4b %8!Z)(( %~VU4 IK UTmeM.uF/[wqq10KAZ)\e5-1ީr,)R)A9kZ= 9:*M~LG]1>f- ^RXzC"g)ZFx {lڟB1))ם>Q6% ,MSR2Mi?Qu Q(4x Hs )n{M+ͪ_ |VZ\\fxkF.l"8Ԅ?Rm^:`yTE@|js V5st"-o}&l>g [}K6OyC54{< 8~KKq4*=0? 8s2q p5й/u"tJ"-dKL:kkT7rJB{ ͞B,NB>x ֑m`JKd(Hu/=.hVCBrs$Xg14àVܧ5 1<)Y道mJn dvJQZN`Ș)Z;[ ƻy}8}C\#\3`<S>h$A-=o'y8W % YpRR|ZD޿ÁP;N _QPH4y^o`UqqE,Lu.};jKTa 5giǩ/X% A]QE[MZalqq,bj")#?+g4m޵ :a~d4.";.`%Iz͘rZ1L\Pլ6\BY/O ׿5HS4o~`ek4S87` 6SIEYSA0Fc9V i!ia%B\hoHKb6Hk ) KAcnҝ@_kiXs#x)A @%OlZţNS.W֌RΥ\OI_+6PCC sVyѾU[ _][k9\w>`| .Ml͉=hguu߹1I}ސ{]1ZZ tUgm>uԆfА,f({upOKr_^sd iy[cbe%euW`g2@J秂/-*@;5bk9J4%ZZso}c|%e dy [9Z&}_coʸrApIP@@ʹ ؠo ڹ:Y4Wcԏ2¤CSЦokK%A1MڥI*zSS).r p:P q<~ >xndҸ$@(U,{ QЈceQ8H>@kXI4B iܳm?umuwߞVj`i̾ENl>oOlҤ:֠,0|)sF~nr{jܴҒ LCo |1]^ O~OYx#Q38Xp AoJ@V&jk..-9PiI9Jvk eG5fp-m37K_H‹xMFrpbBhQ v7v@ Z$J_lNcȽ;ru^(ܚՈ[ M)Q'0dH8`y)CC(mCC NQpYfA,V11޿e^#opTVV9v2=5ةfiNoc&Nio$} SS*sƎ Y.@sFդ5Eg{~nZVΛeol`n(rgf=Y최7[L!P5ZLjZJ*N <GL+BιvnI) \@d"JsiH"7-?濂MlL=U?@~gFk7pcY ܀w9 (xRQz3S)A]V*>hJr")P-RpȃX2o)dBfN#1L!+7I EuJl.hXc. |V!9Z.gqZNz}k 9܁~ y~a\|y m=69F۱SYBN-VkY$i7~^c) G/%!G+{7ǭMA}&gSdEwW#p?5@ vNJ[J5'!ygܱ,IM544O%@O ?]o j9*ϭ @iie6'`੄zjXG S@ =94\^+˝n Hw5jsfc+%'!<ƞRw`H%<ױ-@IM/WHبgsm`ʳnR;W`.`j R3.Z-)4c[?Ua*j |CBGyC=%rcԏճp 1Js5% E9 jeQ5T{jeC Je.!?ǥKn88}ʪ0F~ FB(DAW{xXC 6+ϠiB9~r,ۯEXE$G|J e)!U{g! o9KN-(= bhZ)~Ί\K@(XJ?VJAnVX 455c<4 G 6S>ێJ850fR&шB84>:2=*`61 LFMcgY@S3a8-]Z!' @W[(!S/Nz%( ҇F abBLD=o sWQ (7I4P˼nj f_ <['qUd 3G&:e Q8 x.'/]t-Sv*]:716rØab8"rD$ܡ48c (@D@0ɍtXS )ڰfF?~qE#GF8vj3ypyJ(S6kmYP6cs9]Hz89^H[ nqS;~*R V 9`٤CHi@Ai/1Z W1d`V8u")0p8+=U{6(Z{~0gxFpP@JB7͠~=z5_BY_sͽ'ΞĽ_G6粉 Mǽn] >>lJX9R{AP4i u4(I G";~$✻{#`i @S0 ~X  ;m]8h'E dInZҿR aɱmî'ҥKW'ȂY:K;["mnS}pHs:2I=c=D5pMR7}F,_Z[)ݫ(ϸnC?yXowU3WJƹ>4]7;K8g'Th77.oU@m?n6A.nF}%2q4)I|H ι;;Y{Oi-U2I8 fИu@ǥY! "%y (c.;GX&#;wZ=r?*<*cY[ܜU8[ e-wиR[n `NL/u4+jJ-^+>p VDĂX&p]看d0X,HD( O_ߢG?d&&'$=5JǖAJDN[q8.J.vWS:v(vC&s GC0Om rַ tCVk9cm=&fcM㬟gk<ΩgҜhKN =iK+\V@z.!@*'715 Qj+=vj7V0)D ВvfMM-%9M|fHF8e;n72'z˗/ #sv/l1vlc.Dq[)IچTImak9 8IZvһf!r}s(cQHAb* hG~3N0h*s'7 %&۞z.9߷ʿϵDn^1ԏ]U,GI܁x! !$_I, !Q 2X1H li4쬄+ Q 䅏,}ԸJ6K.]&I[y mn9d<2ZCS8Vr}86.Ժs-ι;3Q8RS8yZ=e6َ1ĎXF]X%.a{ηKuY?!&[jiNlzOQW8cϝ!ɡU,-{mԂ?l W[ߙ Conz :>v1>nfXwD"!yn)Ze @ce# )X9I /5J 0?`5d|ꁖ7}H9^sJR%[p4Vx=Ph{S4cz23XJbty~G7H .([emHUq|NE851&rI[VG,bb[kK?lKr^]f8xYG;P"P#fk uL(i 3j?dΩI8dejQ5\:q)tέq9C{p8vudʐ`XW\oO64qKkE5EΘBq4.5߼.4KxFmwN{t֏i'z0oc<*I-6Xc\%SHܣ);7^n9&I[Spe_T a~^%i--KBK5FSݷ ^tҮf5'G(SQP^?v;HP=׶]nhʵ-c]r\C!7-q3םwBUC ZҥK`fvG^9?]"jp_%+w-kIoدbOj> ?&$/hg\_]]>b]$TǕ*9ʊ*UbH z8 vVnf!s4rX{]J,Mac.[=?X_-/T'@[y0,m2ƽ4 ^gԘC$Ewy :|cpXW|F?Ta!a%]Xߖiڅzkk09D&L͍vd|M,q ^unrPr=R.,'wAX!RZ[42r-,9j\BJ΍t~ĕ,zSFSY4M5F̴̻hE)TPj$'ED4ViGsݯL|=OL _w UÒa9^mbcnk m瞏R ̣% %o,_ͱ>pB: l)^5 Ŵ(hњmނWEqP;MJ4=T_ Nsט[8B}0vcּ:nJOc;rMAB82@p'%\"v9ӊoKH&wP\$qWȘCs~\q9@M 8R?9zstFR@yΙۥ_lsڞ&^Y9G㔜s7񐚱o[߫\?\M,4eC,-4c/B*( GC\}QnWG :(T9 s41 (cF(hTS$@()^lODEVi^˹bʚᔔo(*v˞md0uq49256wcܻ >)\o`޲'<7nhxД+߹c _F2z!*T_*NE#Μ3Zff~C-1Jaݲ}vEN6KqPI7(~s!xse|[ihܶTH:iDHal˔r`@O>UjbCh953 :gSɒB51m" 5kSC(gܶ?y/!ZcPP%c>B/8F HS$ d z< M|9Ns\C?fD Ϳ:3 0Gl9h-_JB3YdLhϚ³9ǝ9N8שKZg@ Qssסdjmb+50lDI6nKҡ= 6mHs<'e&iR̅t^5yos1ߛV?-p)?>CU#{g]/_n1Ձe4e b&4\t3Ax9Ԧ` Oz~Jo8`}uDP]_GޑRR!=77)g8=BL{j.\]_?@(qwC 蔜pߺל5reʮeƷa}ŋ#M!cݟEjjcȤZ9x~b`MhW-rP{Ru  Nun eۂ_F(˺L(%zesgM#4r ߹󲦚fCBC%]O#Le=3bT.cGgG,$%D n'0}=|&c@r 8yRGc)Mȑ3KC@;մX7lBCcGb(?(m [l-̑*QH7ԏ[GlZ@@% ̒o̢ Zጩbct uX8CgX$B)DJD$  س5kK ! V2[4Kv\"Qz^n6[8αf*DBA:Cշ}u d;w@ѐdGX t3EEv+ <63zN&6 >J2vl m;w?sl#gZ6Bޚ5}&kbA6y:>!0wy',{{{VʓAd1R##\=cLyHhN s"1L4 ?g>qRRSQ kY[>9z%  /_3 bछǦ@mNb<ߜvIh\m:p-)bеغ|q(KrƑXhI@ͅ'ږۧF;>v/^|/~Zk9rȚfŏ/= Z-z3гy4_7hsiC @6F ))$E[o# >x{n/\ce1X8z7jBM pqsqF^j_-o"4 =ՒeXwڂ zmڦ|ZG9MuVy`-P?n*/PK5Ʉj,V`1 OSbC;68eJy0J# A`?X8M$1XةiyyW 0`  E$M.l-%g-£f:ƾ"c=7F_.V\s0Mxz~ҌbŒ-z;lfTjHWr0efqPZ)SCO环ytT<&r=… GxF1-9T-4cZhc*4fmM̱ w)#![?FB$3|9cu.f}mp7Dz?ָ1675/z6yǏ$B(`l !}@},oc Vw ӿ$c4\+VB! lqfPQŇ,GvT9n6(i;@A8Wh( 8hh}E-p$ 6s4کuǾ1 \tJ$!(mQ[7KǶ*X;Yp i}8XqkKO]r<@cHU?+ퟢkenZk{{{6yb;}h8shZ{A&(P'3kj>~3m`_-Ҁ :o{Z g[a}@fhy 2oSϔ1\[[؀z˟  'tim9׆Cmk3GB#*ݷ$?صQjk{;5`fnKu/1X3_Cޜ  8ReSYJ ].KBh ӿ40Ry){fmDz8ŽD/EYXlU3zgLs~4I_2 1bJNm0;!pJTSHK>VD+J# ;Vã$yEt ºLcD1,)icjn YZ/6FV昚]YK Y@-MscbO#yAߋ 1YXc`ٰP?84I{$!4}OkM?Mߩ0^$쌂c|W2w :~ @>TM+Cǰ4 8w\[Xx>uT_wgB e(=0XJxܓ cIH6 nRR/!56j XG(HAB/ɹ>[wJ%7!V鄩K4[y)hʁ9Ymd8EgR%G!Ps\Z Z<Ȗ>]:xr;p@B&淒?)?-E2g&s&dw".lPB4t.VK@kmlFB>M.S8(PmƮ;x7)?_1Xm-H1NY":jZ$8&c׎/$9@K(Z sYKM߯u(9)|ǹ.5xRE (8 ~hhϑHˡi>_F@@2w|Jwϳh: tsbb8 M," )<9/MDG֟;k^c/ybbn+؊% T@@b%ȱbM:hqq9N(7 )!,][Y+XW(Fb 5'.\p`)9h1VO II!mr/Sflu Jۢ쩅Y }/^o&3XZ[G Y;ة5pl!^C7hƹ?c ߲mlKAlo1[dk1^3DPQhhvm2hu HixNR3ZIVB9մ AggK^9@VEi[+q6$r$ % ϡ ~k+ .E/Rb 6hy&w *jڵ(Zd:Y.1$c? `@|ODǰha/eD9j0j;9Av> ҰM[WK^VQ;:ZƹՈ٪?WړSX ,˰r趁f^ S* Rm$W`a pIGR??x!{~[B_r[H{ Pfϵ` DZtSʅHî$a~!`IS<?W|(gNskaW &)PNmR J%c8QR0\}:ss?D_Os67Kf!6CHȂ&6+(@Z ]1# "J8q|:Io P{Io2h" Xǣƈ@Xޞ(Npc="-๿Ka3YB^!|TCCrI_.pϱ4[Y nH?J N œ`q3ji\ABDCJuT腮T//o9SQ hLDH[ 44$ 5 ׿emoY Zj%m/UwqpC"&I.ԣH-0D*0F@{IMM׿kڿܵ` nN>๑h"j;x '~qPǂ/>_Ymڬy5vVB=מgLԾ-z,8rc_2kQxJж|3' \R%m}`@zhYB,5Pm]I_]p?t״>\Mp6΀\P yz՘B@يh:yIe $d` xc  i{IZWΩrr$+@ylȽIB9Z% ܓk $1sDh?UqlѽD?w z9iE&З NŔrh,J'Rojj ܳduydGC55/"-m ET% H5ޟ DKJ<1 ~ ciNwP &iL{%b !pE  "?R-kiuʭ; ^9J{gC/t¸2gGVH\B}󡁳olk X!cQV|c6Jf4v̱BBnvLsuJm77|CX>4"!ZdŶP7ZN9 (1(c˜3{ဿ+sFڿ}hZIH$/t%= ţT$@Zˀ?*Zz;甔 HJ!1Ltkf} ::)zM>ҏLڭƔy\z$0!U@)5c)K<?=娀kP`ook [[ ":JŵpM 45(OK`-l_}o Ϣwe+v{j vE -R* D:5~SR_oپDnZwM- `ў{ Z5@&%?9ZZKI *Kŋfx<$cl`"))Heg@p@%1:9Nl֎1 6oaqƈ/6Kh$(iZ=)%8/qXG+Yբ/lf0 a8 $\HP7^5`n`Y5Iy^N!]jia-"89{[nyXh p>GI=Kh;I|j9}M*8!K, N`.NZ\)^3C[$/ ?@m"X 9$`kmH҈s%]kJhstj ?Q4X @%2־d3R(${Ցw,3vM4ZyP wY Z1_r!"IL \̎?Q@Kb> ~P5rp-k~jh<Z_T >؛ՂBY[Oq/k i5d9G*) !;DmlZ[H6M  D PR>4Жti(B?1nE>DG,##Ҵ_Qμ>ql=L/=^>th C!V%ՒdG{%[j&VK\*-%Z@gI({jY6QΞc`56UJsڳVeږsV V`Ζ.i sPX.rSyʘj{JKHQj( w`MBSB$e"ZVz s֟.?+J_ ,/_`09z[ NQbԤ_ Nu9TSK-p '2HXZS` Kԇ#m˱hX(DZK3_R&@Sжӟ ?x]%*zgsAYBr$1 eaL~ 5Mp )7pC` !gnRm \k@ "@] u(ZɈ20K5y jZ` Kj e жPY ,p3 jC/Si1yjhJ `MD96tJCi  2%%PVq,X؇Vڦj{ .#fX}L oT$h&'  ]SHgdoocjONKsC@) *an VwR 0@|\M&{ Gmۏ]V.)%+@_n PƴH,\m{偭rȞd'F8)Zlֆ[ ڴqyML/M|s`iD@&R[r~ُ ֠Q[I`Z.u6X PKtI9jK _5I5K FV1O,Եr'o#Ȁ6!I״ K;[Z byȸ}{bAR-( & ЬH$71^ 1\kK8JaTVoa-Xl,^MW ܬ1DlP& ]FYw.Z?*| @$vu%8EEpxuH` HA }f_Z5.̀_g_`Ljxh`oo{{{@.KP12`E r$?VoZZw8|[r}ZהJY2 jh+[]l/C"V CJ^: 75 & I jE~.0V🿦l@z%k'$ Z@ "* hR]"CNB+ #K"`E҈AVۈoW׻f(Ϯ8>4 .Z~jD@* $ <;1ou(}߃%iKi@M0ϕn &\ MXdkB/USiťEe@$Dn !D R3p$ -sϢdx_C_8hWIP 0&J%BE_Q9˗//+j8p? h%Q4yj P>EZk?/: :.P5`o+R1Msqn+Fy+Y9y$@Ki Bdw9 g ZZw7u7 @<6 о65 90"<Ihs2VZriK]!QS- ` D dLk1|~nKU^Q @r}N%"5R $})/o Ч $3.X^i (PȀLh(3A4O1 reI9്g/P<#HNIA*Q>!98}H': HAB6|Q*"\B`H  ?tj&"n*xK#!&~0%BP29kkkK箻.sν 5s2ER p7|-M;)l8|Bji`ׁGr'@ j[zl"`E؏,@$O҈ߢ_?J6婁4DD p . S _U`L4I)S_*θȁ94s~PO_Î%'Z $hJ?U@Vg}tM m9mgK ~;*g|=47+U|̈ĺVĶHȅ& M};4{j S8 zJ< #YJ!1H3gIBaJ'5 75 HI ȁ;O~0T@U6+D4n#\;|o GE4A 6H<_ @1y}풬@KA,{UDAPR~)k^[D' RKBjk@D@EKX )?U~oQXr@rw /hK~j_k_%E3YPl,_lsL_3w@,З?5S 5O%I4W0]@t9&K&c?}+@Nf ۻ춍,Xdˎs&8-k%vXgQ,9CQd?nU&D4[H.@]"CP Y0Rs @N-5tG\QKf fH_ (-E  ـ҄KCj(Q4y["bۊh>e:l-BЅr~iğ#%Z'Pta`'ڀP4$B 7 !|}NZ3ep oFj)$'xlLQG ՞BxQަg;"ش+QTsܧcyvuE`=}!mߨeL!ɟΡm۪!Bs_@lMO`ߜ}}3od %upUid!Pؿ/@j_ GICڹɟ~aPh`iـ b@Q'n+@ğ#wie~Lb(iLD%r "g@Rw)_ ,1`*#7GV6@[dhmg\ەB܅߷- \IDATpҟe~=9ո?>>~z{"mhg齳x#ɟfq`325Iܾ#`?EB .0`Cs?CE(A  p"R~ $l׈}S[.moHvLa$ (AĐ-]|jwݯk_JG~}zscd29c 9uHpiTR 5v SWMӜ V?~%f2ỲDǎAڎq}4f z DPNJĜ4K'qPO%8W)v }+(>/v0XU\J@LƔ@ׄ%R .\U mMQ p "<l@*+vK%~W–/ai3ôi0vIT $BzÀZ5p]qcs=CWáv%ڶ ɟB{0U. %.it ­\D!m%]v+9ՠY1]&8 X(27))ĀF4N'@Cҗs?@S xakB:d7TGnm ~II_qh +sׄFV 8X6чPj '>8(NbfZ`O5$R-֣ `>OMѾK(Q?{ usq iwPg09{m%[ G*ed2yOga $ jg\#s@Hv|J]pm|)fnDŽ)( >K~I Swͮ?.1} "ۋIQWpк㗒kV>{ObVc۶? u2Y6(9F #o` `pI0)V$˲*ݱV~*ҏ%>f.GP8Bg}@Bds Lr )?7 \)_%E6|Q۶}$K5m;GM@' |+_㱭DF@"+k E3wm_a&H6J"@CE?F'(AB uV ds *c'8TD.!PZV PKws`n9YgV aF൲(I F%*98ؗ "w?ziN Rd,=)K(G9OuSD |2VۊƔHh}rNo|*rAo|o~3D؇)<\r`\,* 0&Kgm^TU>CPњNZh-A0qP& hO6' T jS@ 眳%ruR>`{aR,#3%!rWu+>}rx O0@ 6#p].lK' ) /=A@ > Ԧ?tLC9 _lɟ X/cI2O*"`qJ0ZO$(ri4oHቾ2;/3nδ;R]/{?ؾ|J' ~fСߦHd JpTϫvV~SAbݞ  MAB,b]Hj Dbb@\[ҽ9鳪 G~.})-7%/0i~FoH(_?[;>Dm7¿37At0SV@ 3-\z_4!(w}~ߊ{Sȓ|H-ڿaOPp0fr:s-kt|#([1oQ$>2,/>#|H|DW0>p4ͷQiTzu-k3wm~&yj)ɟ  ff`q ľ~OMӠiݥM3)K췖ܵm;dOQ.ڶYaj4Üؗmg$z b-mٖ}ڽ,»S;:]  1L͛%APW }}_ė}oY̾?[4}4xQ0 Usz IENDB`phatch-0.2.7/data/highlights/sphere_top_contrast.png0000644000000000000000000011370411346363116022575 0ustar rootroot00000000000000PNG  IHDRe pHYs B(xvIDATxͻ 0 Cѫ?QB ?0HDįP`Vm;{lt_Y10E6*=sbA^@a@Qs 4$uI{碷ȻC!ʻNϿ\z\B(\̀`@+9XoE`ܲe?Q0 h]`PU h c@4322OEQ0 D ۳:̀fb`S , H i͛7G(z-F(113e``6`*k 3000NQ۱ @o !jnȃƢATPGE*&6#& CCBG^zPp {[Ȋ|3{3%T~ J(͛73=l[` J rPZARK p /1@{P`k6F(TH{ʙ t4&g@w<| P 0  ``M`½0?Z_1"a`F AM`gf|cDȰ>:ed``0V7z(Mu鴽pC`100,bр-[GHw0{ }b.#bX00G GM Zu-` F"ȭGFMY:R7 }v(zJ) so-G [/0bP0@vLeBHo0.`Pz yfR2003002V~ mFUz a01c``f"d$`Q0G`U 6Q0bmNzF( GIewc4C;é;`ta( GAoW3000H0001@G` `?ȅB`(Jף`2 |b``gG &0@v0100etz %m gd {sFOCd<aQM@{g`o`ijO } we, ]0  (:020001002n\a`u£;FG8h97m2 F-n {t*`d z! 2003@z`a- ;NL C apT KS2V`df% `?Q0 Lq s!` 0(?zHG =}fˁv( f a*~|e {G(200f\4k 0 _1d}Hov2 F qL0a !ga0000x1000@`~200```0p ~aC d@ܼ7 F( \d< ~ ,( Šߌ2? F(b~𗑑? ,( @+}fs " Q0 00[ '0d00@GQ@{pa ! ,( @OL=k0 |`|c@7 Q+϶Q0 FX0a 6L( پ}ֽv(#\gL<@7cdd툣D1 0 D$RY@!9!sOTI_怳E>9 }Q0D-L(@pQC8Cs(60@naу1), E Q0 FQ,Cd:` i| M Q0 FÍ\0: 0L̈t_An2 F( g``hd $0 A}i} 300300CF( 5 g 3FA?.gp!@;dQ@5a@;atlΈd7 F(~`3T ;: 00 ⏃Q0 F:0: 0@ p d0@z`N1 h m:A:>`\a m0z9]lа7of @;dQ0 >~0lѰЊ0bTQ0 Fg v@ti >.<Q0 FZ`tviF+Q0 FFF +·;+~vPh? F(@ @;PG T*30@*ذU:Q0 F/ k C`t+ ԐЊapV, (0```h` FTmJQ @+:P0Q@xPiTamIQ k_0ZQ0 H =!P4:)Є8a`@7z(\ Y+5VQ@֐`<R WQ0 FC# r+ѳ =\3V`%|3/GHC837 F(>0b\W~2@4,-!@o`jg !P]@ů=Ў` {`9Ў@LgD 90 PmQ0 h R wh@-@?X⌂Q0 ?`f,h z +`ghQ0 Fb8cS <`3000d000 #F(#200D #F(JAiě UYϯ8`* } o?oFFz1=3B[wg` V`"8Z !U jQ0 .Xp|߲eo__߁vrn@;dQ0 h000Le``x:322hGH 0ZQ0 ?`a``g1kO5*>; F(" M;!X ~Cat65`: _!@ò?ޡ2Q0 FH/   btT: (`qvvev?t({JF(?e``hGCwVC_ Q0 F(9k8] nfSk0V`Q "36hsX*tPٛ0x[`Q06\Y=K^(`4.200<hLJfui(-gfG(`\w'uń@{( 1002n`R^rr=h?Te`Z]`Q0D=TnE= s`Q@`f``p```6`?R)tuPjp100#F(`U{ R?hš,FQ0 F5@;02Bdp(`P h==Pʐp+hQ0 F0f wHC◆ѭ}`Q@=@;`a*0H^(`3 T,ԕAaQ0 F(`cl`P]=jv ʡX [FQ0 Fr`=p 4<@r(`f`gaqQ0 Pel`ЮCg`A3Q0 Fށv0(t=31 } 'F(`3 փn?T=!xU/ h0@=Q0 t #AU3000l=lfAH hQ0  1 ͛74-6 0@F(` pxA8(օL-XPD(`P fiB0`XCtd_`?frQ0 F*ӯbk2.`  mFA"1 5 `Q0\@;H0ooc`:CL`Q0R"Ps1.`T.#,80U a\:`Q(1 au"u~7dKhQ0 'Pd``=Ў T?Z+ F(`C!80tF(` /D{%Ŋњ? F((2 ʟP5000H#F(``볆?8g`GQ0 FOƶ?tUw.c`Q0 FP C&wt 0z?i<ćt Q0 F(C|c``85Ў eddYP]ٝ 0:? F(3@"ju<̇(``4CY\30@Q0 F(>@ah9D}e !.ѽ`Q0OuyI&:`? F( E4EU(GQ0 F\PmB$`?####Uoz%=/a`1+Q0 F( $IE%=+Ρ(F(`Z9ڇ٨m& @;bQ0 Fu3 jo(ށv(`:ve=:? F(`(cj>Hb? F(3 U 6U(\Q0 F(t|tG>|{Q0 F(Ia TJ,caQ0 FHP<UVWtQ0 Fe``9Ў l޼/Exta(g```fz+?G(`P~100hG~Sz/F}oc`` ?+ ho .` ?dk=-{F{`Q0P(utP >`  Ңo302W "o,P< F(`dp dG(`X};{ P`Q@0V3000m"yf20#{Q0 F3М&."kzP $d 2Ў`Q0hgOFFߤj">`Q0P\H΁?"Z2*ɣ`Q0 h6k"ǣám? F(3 H""pة0 F(`($=v-~`Q0 0;÷v ""`(F(`"210`Q@ 7"Ճá0oQ0 Fn0TO%_"2(C? F(`8t"?*~Q0 F(? ?"e8 30 H`Q@?0$ b"sá'i+(` f}Aԁ?"B'e `Q0 3 ^Q0 F(`@Qu"vH}F(` [&FF"<\G(`bP"cåoQ0 FH, )"ft(`Q0tN;";o0Pܲ1 F(` ]"fy` Q0 F(#2FWQ0 F(# "T~`Q0 FHzX"TG(` p)1Q0 F(g׳G(` p)8ZQ0 F(C=oQ0 F(ZCecQ0 F(C`*e˖_t(`Q0 hճ ߡ#`Q0 F(Z?###%?53@G`Q0 `ցUs3@*`Q0 &5𓁁;t蟁(`Q0?|v?;gl222?+͝9 F(`V1@b 2ˁ`Q0 F(0]iV3 *Xeo022wS(`Q0 FFFFx V 2@V*|vH#`tQ0 F(V2a6Q0 F(`(FZ>B  )XutQ0 F(2Bya?`Q0 F[lA 0 qAmE|y%T㦌ni1{?VU\g` :(`Q0D] B #+Q0 F(`P {z~0@nB?۟ J31 F`Q0 FJ30000BwEdd@HxQ0 F(`p?^O BY6^; F(` <`dd̀0|tBP+{7``Q0 e@a4'L۱ PD12F0L`n\ 3՘vpfoN"""~wg}1?a B^gb@Gc`F(`ض>Ȑ?;tT菁B9ȕ=61l X#ÿ`Q0 F>!/Ba-.46;5ptQ0 F(nCّ0LBd;(_%< F(`"sa 0qV30>Y lПH|`Q0 F ~>^?lTg3Bg`\̇~>-VdQ0 F(4tr[akplu惼ψC_ԃ``Q0 Fqi;!>4~l' I2")5O?d(`Q0r?>m~0 B/C?폘v$Q0 F(]۶>Ǐ='3`F`Q0 3زe/-}slu:`5l  ` Q0 F(E[o[ŏ g```BOe9 D0Q gQ0 F(/t/?>lNh2@bd``c``Pd_~ja`Il Q0 F( 022g@=y?~BЇ|Y6L Q0 F(C@AO#Gđ+fB{١(F`Q0 6@]Ujbu/Lb{1[qg=pQ0 FHȣ0@~|  1bW30W:7} !FG(`*~\Ƿp~XG BK+'fh? 3Ч Q0 F(C`p7`-}|l?2`bA$4/OP>C5큝@cdd=`Q0X?~0@ѽbAWi'[] $`c(`0 F(`0 凉sB_k(O@lfcȀE lec"Q0 F( аg" ''~N0`Q0ռlqmw=/LR'fe?.5bASkh@jmQ0 F(HVc;?b*~d!@bPO(69|fѢkF(` Sg@]/ 3π$F@j6.C Q0 F(hs ?rZlj"lb= mQ0 F( GrGGlO~lba``@>) O>q\;A@`Q0 h geoπG }"lbb؉Y(@rEF/`Q@Ec;}hUY_ba``E){I@4{(|FF_Q0 F(@>~jW\zBO>l[a`d`mQ0 F(@]Knπ'g >=b"R!a|b[as8:tsqf$1FFF-[b`Q0 H3GIŏoXbb@,f Alljqh6F(`22221>؊0>9+b¡ 'gOp~ɳ322f`Q0 -[SsbT*zt>)?6{oΞIˏm^ۺlna`< fB;XF(`,`˖-|}}a[pvrTw4B>R![NJF#/`Q0 F [K3jbA`b l![U#qBQ0 F(i?z%@]!>1UvP{ˤTи1PGi6@6ܕ>2??VQ0 F(=*vԩs*~|wt>19/ Zv`s4.u'e 1XɠGVQ0 F(= 2P[[G?5`Jv %܁M/ٸԲ0`߆pct+(`\@CSӻg@S9Ez\9V f1[G(`V>lEl`u ?c[5?l8!uCv(b``Mqt'(` ov#lD\?\fB^\IZ㪜m(ĨJpT BQ0 F(ˊ~l=~{Xȭ&/B^SoZ'G/.{ͅ5]uJ`t!(` +iab>t6l*~rrbB`|K\dFF(`z+~}x8T kBG7O<h=Mq O0GQ0 FHsԣw,abQBI+g` V`k GQ0 F80kD9?.J+~ Bǧې4(` @Ƈ\a|l+ OĈңBG6}p|* u HяK=lP?36 gt7(`ّAf7·[O?=F'R->;p Qn~`ho?[os2P^cwe.ur?aBѳ200HCLh|\ɡ#Bb$E? 0@`Q@}fEGg` 'fXTĨC#K·~ЇQd@֪z_##QQ0 F(-#ۖm|?z? hjhYB~>K9 R; @@(MFQ0 Fl~| ߧda1R;jV ~Bπr #ǢE zb20 ~.b@f$uLGQ0 FyǢ> թŧE{1 Bptp9@KZ\r}ڀs}K RiQQ0 F(  -VSZꉭҺFsBFR>#e`>BM?1#0; mdfHr[G(@#zZ)MWSZ3`QsӃB#DIm]brY }1|r=zBnd`$8Ez(jFGF(`‡[M}tԪqU1000Fg#'gFb  =|X׏F`ۇmChYZV {Bc@:'u܈KT-7|z`P >2> 0`Q0b}mX`e,==r|slbf?P?vH[m{@ci9z01Go޼֔Q0 F(/####b%? >61d@}t1jMqSaB?юAISK <\jKZ\b5S ?逿hiQ0 3@:G-6@ʜTa' ]A zPctX<,;P PNae==8aw?9!8Z5 T{W|$i>uH:`~RUE}w<:,M pW gc``fy06l|R{ vdQl=}^?0 pQ0,tA+k a~d>63b3WǓ;+$9V32003`Grs?reGgNQ0 $#W dk~{+~jV3$y6q?!fHb}Zln$V=.3ȝ@w6yHۊ!.s;FF(C ZɏmxE}e7:?)u!Ԭ1000g`,` )bSKzb%}eπ60+`Q0_=la[܇ &NLOi瓐ZjW  Us300l < \z5 N\306% m`h *{ F3.O}| U1@zǓz^уMQ a40 F(+wV lsȀ>.qzTĨ%4LI46z'F)]>?ChY;ND y [8 F(7@G֌^NǏL{F΀Q0 Fgbᣳqqg`&O>6qj/f6iqJ*~~YQ \zh5 n7QTzN1a0 F( @ef ǵԑrzZW '}eg```cDiI'e*zF("@dOh~!~t5qgŏkE?6Ԩ2 v"Ts200p!i DR=,<|zf@C/F|a0 F(`@ RZG?Zsa65Ԯ3g```] k`0;7vBv>I〒VɜlM5_^}ϖkWV]dgmNC 6cI~ RcsH]/o۸>+|Y}ս=l?"g```¢|%F?9CԚ d@_Hh1?GQ0"B>\=}fzE룫!E|{ĪG̱%AHW "g`@b)bZĥY?l.:iȷ r0004 F0y`=}l'!3@ tNW~aSC89}dujiY#jW"XB LrVE}ǧsgr"@$> =zw(Clٲ嗯/rokNYl S"N>B ?"gf``a@]GLn C8|oĶ/<!08p.aFYP+w\>>t@?!qb3:KFY"fB'e Lb֐>)zsWf!r§ч/B"@@*]8 FE|_k#y SL&M8.Tŏm Z?#\A dc!Uc7"8h}_H*V' NbNFxtf?3nD੖@Y?05h"8~F!;h[}l/"gc`` ?4qtqBf30`V丆N G`@_蕺*}==JXqd9l#ĘIJ#_%NX䱩%e) "gb㚯 R ; @;g.!3 50*~D`t4`:h/V#W*zl>1Ga~\rc)_ _"?####7j0t%$OJ>bĉUCF?z(рQ0 Oaʝ>\S耚>1zHm0GwOJ_ŏMW"ȃL b%7OH.5sqȽ~ԵL ;F( @W*v\|?~|20жG#wYZ}rq w#V\A0QsAnx@]b/2UJWq*v6nt.u-bn?TB])-Ys|x1o(=á>|"F}g1/}ǥ\ 0Cw8R P$5Iam?]vxJPGwuBS_l"ga4`^5EТ@B>\ndA !un00>10#*|b*yRˡ\(6>YJĸ_eK9zȩi|j 6"g```f_yb!yjMGڟG `$ц(VmHGqY*V$s>.9R+}d9j1̏O?S  D"`@"IPh &JT}%$7\*rBsFǢի`P,s {zz`ѳ,>?%k` )Q"(Ii`ӏ́Z%E^bc`_!M :0>8  {.Cg30PV @f\rG ]G@k"x2] uh7",u!x1St^FQ6˪mn(Uhŗ`={y{7V`@a={>.63q\+c'b&Z E>1ы; [1!<'PzNFha+iP_S'eبn'PV,' pl/`|3{0pp[kG"UQA,;! vmY0"gd Of+O(1z~JS6z/[c?435Fg'G]30ʕ>1nFo9TޔVHXZA0,zpK*!Ci)֦%Ng‹VXUcգj՟{U/"k""@;#Ggxb_ \t3c#:H$DΖ'*Hϓj޴#gk EN5r+1Ě]ťn|6+{tGo Gæ?bWOL^7pQGGB'U?*}dL[POH~0U $]K@/$^ `#:KX!o?x^#R}H @Ee=׏3|I=o9yUSn_ &G`RE+zgNQ1 ޼XN !D?:{X/u{:UϒCVPkgȮ* wόWJY?Upd  xNx}WYU\E 8 Uon?:i_ͩ<{K 0rz.IoچB]jw/!wSo|jxuWjX=Xe^xu_Qx%WTa)qF}Lp&Bb;@U?b K@C;Gռ7I~HoVzw?̚0CiOQA3xp4 zw_dԻuN_k,}`rC!NIL?5VMܛy8Z6 }[\G)Mp\[ 0 U#M/5iLZmO ʝ| `FNGi@2fLO! fX =q}eUd8s@2HO#<+>çj(t]ގ[ z'F>{^لƤp3@S8Oo̘ۀ2QMw _y`DG" s P}vYWTՕwV]ygwkqkhZ[ 0<8c_ES5s_\!^Ux v:,9ݿfj(uzaN*٠_$ P_zx_W]Eg `@F>o9e.bA|;I?qgq+m~8uY y&=@1ft*=e.b௿3$qXF"&*>rVUE"@g#3k;{3aOWx7D?^Y3%w"`я0jJG|_=,ez=*2 N|k#3q \KFvw@JGCC>b*GCJzd>1Fo9Cg```\0?Z5q.-Lhgš-խbWxX8(V_ɸ&>QX,' }XlsPk~bwԳ)Fq;<*\bgp{F8ZJf;87e̚ 0ouX0}w  zj* [0+&`|vY/Nl'}#=ëS H;*6T]U5(rxJ6ެN%NJl3!Wp̛Q C_eZOW(1d 7@_ŦoS5Wc5TI^u˜4tUxKv Uwּ̏yOyu`^73t0r=ĩ9 @>t9j ^tyjL `3 rs 5C75{1Ԟ u=GKV$g^}2*5] 78:(+MKpBwF cg|h~Rx3֜׻! P=` d~1sr-_&.`KXUDڶ:Z 03Sd@r!00Ƥ}{01|xN ž,z^S7,W>hU(dcP;&߹{"(33l%}P -"-~xZA ?I"2V[ֶ֓~ozN6@4iϘy+XG̋jȘ͓R)5T7Rǧw +|t'E->2\'@0?Ίwǀr ? @ZL`3<У!|fS3?!3m`pm;OL!Sᣫ#1+}d9RFt=a0"ɀ6z(6}TLF1 ">j䧤1@|Zk%rHr+jR2ZVĸF =*}duĘK)rFH29 2@[zT>|n \lfL3J r`Z@ijMPj1d8ZjVHROJ85{Q2ς$^ `ܛ1 ]iHJ#ߧNy=@]Pnfz8|d .g֏x]X蝔i?ʳӾ禙{{,YA +?? 8 -@i)M ay8+ԑ&o2^Y3`{⍆"XI",oؿհ?{h E{lǴ[~"RpTʟ&Oŀ(>sy2Z|v3!;(>J'u!+|tuVzG#u 30200|ʟ籿 ԛ@'N(>q!-IH5{[GOm@EI ǥ>1栋 >>qrc\? \0%$%XgVDrjd tކng pLaQL|W ˒/Sו8 Jl}.Nh{?@>  1@zzDO00tXq\r*ir{lR3 \HuJ6N!OrSa^Bnw.N^><*}d6>)}G?s_?:r -#w1 %\rɓ lj V- @HM9KJ"'F/!3(s=r\>1Sc.c { ZA +%7vqQMS9N7-=_ ,?X `x{"d;LWF#cxfʪ(k5[Q^AY*#"#mt0#fiˑ:O⤺i0XSK^j6H5X3G=rʞXc]@Tr&NnoYwz ?Gl/r @E#j^ \nEck'fj`ڪG̦feK-.=K?%||Uc6n&e%?q}ty-[ehL?+ԈS{Y 81zɕ\>VLn!4ʀȵjTSGWG^>!hY#ˑ:ďM/)}>022dT a4abO(uOf^좖~\z#BUвWOh12HJYGlM ]1~$O_ÂJY!~d edd|0HT?E  30Yn4Hq=GpG[O!O6ئhʛF tBzp#wM>>1nUo]@nC?3,$b8 @O<)}jO ҃N\2O>%B鱿I:R+lZL[ѓ>Zb*|tu.><9g` oQWFFƏ  >(Db@d5&G~|%u>1̥WCX35~b1Scz3( 8=63Hq+5{l>130'$hYl V00 T>yJԐ3-M% \1X1Xs=?(, k~R+{\QO=VHGggdd09 75 @R'OZt9rBh.q1tt4ojͧy.'Oj>:|tyzU>L`Z ?\jTG2@ijb᳟,Qj6)v@zO?1n>>b:SYg`?j@gS< 0$'g܆2ڍrA hp{YOH =6Ԩqmb] 6yd5?3 R ?q('fY-F#ulsfSOZ5 50s( e.9zVH]0HjN<%( #~000`dd ?#d;T[NQ9"GGN#TyrVSc4RGԓkCi ÞԚ j @ٔ룫#§,30 Ho$?\?lj!JQ\jS#yb*JZ=h Ca~)=&j'V-k]k>5{ӻg`~o>222c2 zČ #{*&h F=65!MC>JPs2 P2IVa``zR!U] +m`SCΜ;Bj~;"Ţ=rQ~R"N:J J!~\j222`2?Y")RSH1yBj9@Zj C-xۧeFCۖ8J7PǦo +|t>9IY@bAZ#ۇR?|_^>.yt6UFe#5 V- |vRnR͡ LZG UeM EJYZ}=Lr TÀ4ph1vJ*dj4q΀F-3OʞT; Ụ>!H:ďK :\ ~t t "R(=5r F=QRSgOO]ҋ">rɝ:uK :rzOB>:&fA@(>u20Po?-!e~z ƌZ?;,JTSZZĨ!e>yԬ?ď d5? ?ф]S Tk#Oɔj!wk*!7I%t1 !sHGJOcOqAVG_;Ȑ _5?R듺 Y--#ul3a}jsX@ϼM^5@ʞR U >fQGfZRM ##G! ҕ? F̊ F1Pԡl #z;\j.=>;i[icSKTDFVKhFFƧ Cԛ1!W_.\kF\r]*b}MU6+fw͞S6=FVW_Q? Jh߫Wǝf.?#*w 3@nFnX7a.#7(;u?6@zMTՒ0 f"*}{GV1r+kJ^MVoC#g*]-r3MbՒSAS_Г5H%&F士V,G) d+FFX56?y a"4 ]810060p# Z\7@q2r@b?bVeK+|tu`hVjIGcddmCV?|-x,rP >jO f S1OvS,jJJ+gjE"@|(! wC T#G#e&:##o,nv t_Md6-e``.56(UO=%=tJGu%PlZnB?R̥ ]],C'uD]-C05n222~bv?_- g*:|jHn00 h6TOIҡ~r̤|JVaK?5iY24B&GVh(Kl4I^}d>S,lĪ!l\j 'U5zhk6 u1@89n ] .>:Y-jcdd|0 ? [)٫?d T E>ROzԜ' 뼉9J@b@B3-@r O|>􉵓+ÍWL]-)jh4@:z7p!CZ@ Wަd@)ZKUҡ}VrV|lva``a?\\=1SpMRG݄g`` @6ՃK!ZjK+s؏+|tu$U ö҇1)? !jdS r@H-zjL 00Ч!M?!3]O/1QyS;һ@aQj'Zh)n^{ W䤨d^, +z1 s?y #ʙةd1|;tyR*v d00 ކ.=#X3rPʷN }1ZCA^>>9,p^YJP%f?5ç(^@>9O~R͡fS1R@~ ^>ЩF`r.~1 EߦHWPDb#ieJTuf7,cGindاUv4N&^{UF_anV*]gǵ'pU?9.,]Pf` m*Ph`UCljQO~5s)7ê؏qE^>Y#ˡpk1΅ ^mA4ab[#z00Ь!@z\6A9ĚIma>@}BvjԵ 0P|lUY30@*##Gɕ? 1#@H-6>) A r#b`q/6@)jU"V=%>^;JzzhY#ˡۆ=L [١BT*S|;a#]Bz0 $5H M=1zJC԰{0Z!w^2+|WͮoDѕ?LЄO(='VMQj'LJi@jK ]Sz҇_122^-/9~@'E-.( n#Cu!`{)RG}h\IJY ;i8|`A[p䝻0C w!V/!>'R3;.RDx\كBXL﫨J;nO|x?֏p.N8s# Ɔ꧖]K @={NԞ ż>؇>:j4Q@@F9##O,8UЄ[#R]00S@J.ܩjWb ѽ{T#T֨!rH#i Qz u t#] G%gT.-jԼ}ן PO--zjGC6/iFFƯXԏX3200h100HCh d6jHUK/  d7賿%l?z ԭՑ'jTA7?)FF/X200BO||fCh.{駤!W= g?p͟)>̤Ze0*|b|>.wZc3?dq߈; U5OFzX(0@;˵Ot챩fhU33@ʖs1 ,Ѡgf,@0;=qh)zIP0M@fΡhЏ\;)Ofe@ ~Z d o3  USpiC>Rħ3P֣CnV(m,Ai#Ecb\ 7@4H5>j7AjC;n 00 ``NX(mSs h(lC ]@ b1gIge``0g\¦>Z#V6Ӥ1@C ut-yX=6}f5zb q|F-tH HF6yR o# TM |f uԶ` %N|<=*{\bU#w4>$?' ǠEf "HƒK eր47(j@]4-Tȯq?.sP@# ZT, <~%3Gm& hR6&FLOZQR@B5 0@#-ORm!!Jj=u+{BQ%F>tqRz$eA 6s3@yi Hѣ@y` RAY$0@1^b*w+xg{lzHqbOˡ}ty\j200O>o@ZN| !l c!sI58h$ 8 BGdV +QTĘKJ}TMvi x (*yBfѫf&+|tqb Bfg``8:zV?$DF.5SGφ.='%Q@Dj7h Xb%'d.%S2>R{1 o 7,f @Y!KawZ/#%a@#` 'Z,#d..=M|{p'6Gi/9r}4dsĘAiMjOnN^G|Zc'RRǦIFFFJ(@i/9IZEC~B1@=ĚE͊y$rTk5(i@J/X=ji gE( Qs300100pI{J`mcf^7vj4&YY 7h؏(SOBZIU̾xFi `̀8вK 6qr؁K?fc>ʓc'fSo(ZmCZGXݏO*|\fQ'U=#d1=J3002@I)SҀ Xy|`0-ٴZOٴXG;u*>HmPG'lJF`##[v*gh1@`` t}  \]?̣j P:@b?t@JI5) Znd?LC `ĀzY Cm}T)YG!QG NhnZzbezZt*Y{H{G_J6 b x @Kzd1g/9>1rqFF8F?d @ *Dn#]%9Q1@~jE-;h V%O-% CK 3dFF8)""Qs+ԓ:OO)ʕ<) ȱzzVI wF7u`1??- e.lb#Ts3jLkQ6@~꡴qAʞ;ȭՋ300\9 lKpUCX3FڷQK`չF#^{vÂX $d7T'aSG邿ڽtji9OF-%jRzY 7N322F?+&E|fb3TX5B.SGٴHbāő|g``8[F   dʀ nc٤AԴkjɧĮן Grw00S^Bg`l;! ` Bvk&1k9 d0X >ArK-*|' c A1?7\E$aR*RZ6G9~R+_R*WZ iZ*j?9=Z2>bmnCG dA ;% ljѲ1@|JN$Nj3 ZLj +{lf&FFxCG?5d:E|:֍BvP J' =J(9IYGqY7zJG8d@ILdޝĚ5\j@-#RG"H5W?IgG ?:&M.uSrzn Pb>.@EaxT@t@]CUrcnG g" s|/5Fp%V~丁Z `W#Z]CɵV>?~׍a Qel E!@JQ>z`\C ǧb!a``p7GG d`````ƢYeOe=jPNrp^t5Xj\Dlbw GGGV]`C577k?9GP{60PR$?|f;j9XWel+㌌w{pGI< 9yZȫ|Z`0Ы@CxՃnjCJ p( GYd-ѻ1O?{~8/#j1=@9nzph? HGEi$@9~ӫA@jca8^K}(YWh? GUta1ĚK97Cjl{fwTQ@1GU9 10P1@HVG-Օ4ڷa6d!薽Q@5GM )0֓F b̤5=1܇E30G% # b^G:>000cHF( G '1@"Z5A<ӫAk}6Zs\4mFFD; FG 8z!HQCݤ6 @}Ԟ~?.300cdd|OF(G200000h000PNNap]3R*Pr!d F@GЋ4 (0P+Ņ>ĘKzl`(6550/!vWȕ_Q0 hGd֞RC }H]𗁁>{@Q0G3 j W {v쉱ob=GC`G(#2P,i0ՄPk1=@_ <⧣g菂Q G( @J2@Nb``c``a 0+yR- |g``x322~=` +G( @ F3 !) S100⧣(G(2?!e``f@0FJCz_  +H%5##pnG(300A c``ड4.h2񉁁#( ܷhh( G($zB @1/d/s1@%0f 3d+b, G(xG(z!'bfH fe@R`g ܫG7d;doH趹Q0 M1 "IENDB`phatch-0.2.7/data/masks/0000755000000000000000000000000011346363116014760 5ustar rootroot00000000000000phatch-0.2.7/data/masks/10_pointed_polygon.png0000644000000000000000000004175511346363116021213 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME :] IDATxytսOfB摓0$ $ IR-,إԅX.j۵Bk+\mV"D $!(3$!H aõ 2d8~$'|vd *++)`@0򗿔$-_\UUU pf1c-Z$I:{֬Yzx&M 6EdZ5}tmݺUMMM p&5j>SۿY,;V{U[[Ő!C~ب#F(//bFίO{󗤞={O>Q)@bbb}vk´}vP8QEFFWllMOll}EFFR@I eO^?Q{V޽{n544PL׿̙sۯq]wGڿ\BQ{yks=ԑ#GLq'2@xyyiʔ)Zn]̙3e6 썇;tb߯,Pl.~]\]JIIQNNV ѱ pqqq貛FAh֭7OGi֭lRDD6nxKtTll6nܨ naaaz뭷twwϾ[ouˬ> o[͚5f'___۷\K,$%%R_}!p0,HϞ=k͚5vu]?яF:RRRcǎN解,ƍL6 :6(6 :~ujĈ:q9v.::Z;wwܩh ]ڲe暣e6 nd[oxx[2L4$`Caaa??=) @gy @p#7o}Y/ѣG(3숽nQl\GũޛjĉsNF?ڻw<===677kԨQ:t8p@N>tQ`XX߾}sNKR@@vܩ}0޽{kOGEEEiݻ7 իWkС{Cի-!l ,,Lo5sL֠g C@@y-XHLLTkk<&:@SϞ=#=T9sFǏWKK  nt)*))Iwvڍ~:YGVvv(@]wݥ{bGiԨQ/)PkO۷o}v׏bq[6m2F?M6Q@S^fCnQC՚5kԫW/t] $$D&NH1nSttg - @-)F PnnjjjTSSz e\]]u=h׮]lE5f}ld ֘1ch񪭭PL&޽[qqq&6`J6+,,bt 1BgϞ6yu:?**J&M҃>Aԣ 2DhiڸqN8jUWWҥKۧ~ztSNiرD?F-tۯBK@llN:iРlmڴIWeeUYYI;Q^aP uщBCCP1BӦMSRR|||:g;C_}U~[[=۷+##CEEExeXhۼ꫚9s&Űu驧"&777OQQQJOO5x`vFwy;Fؘ;%=oo.}}WWW :TCճ>+I*..Ν;C'OTmmH@HH.\̜9SZ|( S!!! ԀC)--MN5}.^}i:t***T__jH:Ű#ך5kX.-WXX5uT9R~~~6#G*++b6???+==]ڪ\mݺU|JKKuEUTT~ktZ;kL۶m3FAnnn """hҤI} 0`fu ww%&&*11Qկ$IgϞ?O}Wmm*++uo~6l.vE6lرcw^ClԣG*00P}?_cQtկ_?O?$Z{͛u᫻9]u]ھ}v5b(( zÆ ԩS5j(3ਢ򺃃C顇$(;;[}>Sw-ׯ>ٓjzO>7 j]_;v&N$yxx0 C#Gȑ#'NhΝUPPp58ʮ111`? uhyɓ'+--Mt6._Lel*$$DJLL4kcTUU]x522RׯWrr2eeeiƌv[;zF Rzz:K7 f2~_|YԦMr]xQ6}lЫW/\R3f̠:'FA... ÕiӦi]_PP#Fp  neooo*55U׻~WжmTRRruAKKK\Spp/^ =-<<<~:l6k„ JOOםw٥90[ ]LL)(..֮]i&8qBuuuRCCC,___g?K/DȢE?KQHH4p@M6Mcƌ7ЧO]"..N'OAӖ-[~UUU4e[";3gj˖-(($$D ш#4e9S1t!h 8;dXt}Gڹsuҥ[:]OYdرRkkM}Oa9TZZ&NCO:hȐ!:z( w߭CQNVXXxӧO_=Zˎ\\\L;F(''2zXNllrX_Pqji޽ڴi>*թF Pff&k B))):y򤂂 6LӦMӨQ@ѣg aC| L&E8q&N(] ܹsHXX6nܨ5khʔ)bw=>%Mнޫ{wb]wݥ_|B0RmwcFb[LL GkGᄆwzRXXzA! xzzRAꪐ pBBB8`\$` A0 0@@]PPEѰ@ l6S M>}(@ݝ 3JO0={ gϞ`,`,  +88Gqqq " A0=zpc߀\]գG A0`@ ⓯XH0 BՋ"`,d,$Mtt4EXXH0޽{S#RDD`x 8`f`nnnf(O!?Ã"c"hx:;0&@gDRxx8EDјfH0>}P`L$ϻC!έG=zPsd5I!͍  )7  trc#8 G`4&"c#N`l$8h#qssSLL oa/ٳ)|KppzI!ˋs  44BŅGp rqqnWH0=zP`$;EHIpzAAA# FI0H`$f30@p>={TXX @ ѣ e) 455 WjnnMo(CPttRRR0`Eѣƌ .Y jkk0]E2t0EFFjܹ3g|}}) ܂K.wobUTTP}ٳL&dy:W_}K*++Keeejll(3͊ғO>3fˋ@hjjrJL&ƍ_򗊎(Ѝ |rرCeeex"E!t WWWf_ .ԤI" 6mݺU+VЙ3gTRR #((HzOTyyV\ 6… ([ᡈ |8=`8ҥKb577;gի"##5oqƱ|.`ZcשST\\,ҽ 88XzGO(88TWW^ڵkUZZ 2͊ג%Kt=K*77W%%%7W^2LWRm̥K.',++rkooof9RK,ѠA,Ztۧ]|}^ttz)M>{8mذA m9d2i„ ZpNP+VжmTZZ*`Ç` pw˵Z>(}QUUUUzj[z$}C:x¨NBÇWaa$}= Iϟc=FpB=Ο?ժl_*D֯_;Q;WV@@iذa:wܿoaAAΝKpsUAAww@[[vޭ ݻa@ɑ444(!!AO濻^ ~+??~ڪm۶)++*@m6^kݠA+OOO* knnV||?_z:{.\HEp .ٳgou7 ڰa9BUcGц |ï#vVNNܨ0vb(!!AGw>s~Pao~9s榿g$l6k׮]؉ӧOk̘1*)) IΖ ƬVtС[>[A'NЊ+8v`Ŋ:q--HRTTE"%''薿vY<64k֬ۺvZ.RWWaÆܹs~-θ͙3 ͙3GZڴgm߾ l߾]{Q[[[^<hRt%$$ӝy?>-@'?;5;5*##CYYY ++KjmmG#Gӓ6577kСuO;w.\H .%a9r69rD6lPsss~<h7d>|Xnnn$7bhذa:&3N>_״$׿u.I2ڵkbcciQn1cƨı$%&&*;;[...,aZCur7t X{XKl@(Zo)**Rrrv5k- 5̚5n$)//Oo 7]Z@hegg+<<^yyTXXح?׵5{lZIgv{Zֺuhu[NٲZ@>}(''G)!!A6zㅅ3g=`Hsvڴgm߾^0۷kϞ=jkk5@+77W>>>khhP||Μ9cpu! 4|zϟ_@kk222w^zݻWjmm@*77W^^^ijjR|||c3Ν;gypJ<Ν;g7c7Y6lБ#G%rmذAvsMv#777z Y,%$$ѣvu]V3gW=~_|ɟCHlg}8za:uJwJJJ7+11QrqqjURR:dj;~%* IDAT^~ez!:~^HRTTEO8"%''n #ГG뛿I:z?ӛ-~.::Z gVyyTXXh={1z=c:C\Cժo `Zq]>}tavVÆ S~~\#Ps̡ʜ9s⹿6effj6]ؾ}233PP_lAvy؏S+((y? 2*##C>Mdff*##Cy+///z"455)>>^'Np p9-\V .Թs=8thnnw"77Wá@znjذagiٲev'00P˖-SPP3z..JKKL/ح|P;wj-ί\III*,,kGZd 7 ג%K @G5J*HII޽{ +**JYYY7FQQUTTdh|||SOq8(=Svi$&&*;;[...$ñZJJJҡCYfY>7rqq/LO8z?/ q3luuuJHHP~~qf|rn d⢤$͜9̙3d@ttf$T^^$: @@@{9nKxx{n,ޭ3)))ڳg *33@TTE+-EEEJNNVQQQny p{P^`|}}g 11Q6#j*))Ir٬krFhڵ2͎5gҪ܄X͙3G]6ԅ Ç͍&Y, 6Lyyy7`2rwߕdrӧkС"aС>}<==uȑ.hYCՉ' <<\7:SNlߩ]JNNJOO{n>UNN|||h1:ICCti ʕ+|||rJWpuuUjjƏO+ƏTvo߾:|pe iذa:wgl2nt-[L ...>|fΜI fΜÇw=VvvvOV^^$v @@@yntp=z~3)))ڳg*33@TTE"%''薿j(-X@]?tjURR:u3fYk׮pqqڵke6&x{{kܹؑX͝;W7tQibQBB=y3&I7씛{=L >}JucCyï#A)77^ Vssu۟o驷~[_7k„ JNN8dM0A>UNN|||$A :}jժUpP>>>ZjBCCo.jJOOz8t=Z{;Çwa`4l0;w3AAAZ|97D@@/_k%%%iƌT '2c %%%a~WDGG R8 >\7^x?N*,,L/.)))ڳgɥ*33S.!!!/BT'WXXaÆɵIiiiZ`n ,PZZZZZC...Pttz)M>]T Ң 6W_UaaJKKe~5lȑ#d 4* ?Kj߾}*))˗5= ]^d24os-]T*))QssM}Mo VDDy= &z״vZ_@;777EFF*..N>ƍo aZcשST\\,rۯסMի&MgyFfJJJ/k֭p:u;-\}-'O?S[Ң͛7W^QAA-ugodѣxb 0V:Njg}e˖رc*--Ukkͯ.7/':u,XrBC*))Gm޼S9mhꪈW/4uTѣvbhsΩTmmmvyvGxbߟ^gΜѲegK*|dl裏`/_{ァ_]%%%*++swЮG2LJJJs=xz#_Tvvt|)44T={͛z(7_WtAi3f jj׮]Zl?bXG@L&M:UO?*//+͛7LN>6suulV߾}pBM<cXjŊ:wJJJv6)<<\ƍӢEԯ_?z=ٳgK/iǎ*//ŋ )""BQQQz'4k,yyyԤ_TZZj:6ѣfC P^^{%%%|d24g=(.^իWwQYY***( <<<kɒ%5jEw^-]TGUiiZZZ( W^>}|I*//ʕ+a]pA555q ﯅ jҤIruu0`CmmmںuVX3gbd24n8Ttt4EnTXX˗kǎ*++3=0͊ғO>3fHSS֯_+WH%%%`{={dRrr,Y;3@'ꫯtReeeL`sjΜ9(p .]wyGoYGp,siĈGff/_G{g*00b5֪o߾N{a[7Tyy9(//sUVVRJOpB|GEE'8֬())CTPP@1`4# F*`$GSc$XjmmI # N5H0ժj R]]-N*++D!X U^^N 8F5TWWsyY,k(((bUXXH`4eee trc#]x"c#h  :W`l$#X,|2|2{(KUU9\ܮ\ |kʕ+o444PϧH0b)))H0>b+`L$1:;0&8 ڪz J!`XTQQA!^EE@_g kB3PZZJ!^ii)3c9H;wTqq.]rY,z www%''O?Eu~2vXeeeMUdd4qD :~AC ѣG)tI q o>mٲEWUU;LuQd'4sLmٲχ_!!!1bL#GLJ"߂ԩS`\111ϧߣXvҦMt թKg?^z% D-Z?OtRBBBjڴi3f"##)ӧˠmژbQcc#ϞM_}222m6ViK.Vdd~_ N~.K_HѼ<} U``f&Ltyrueg1npZ&IWLL!˗uAmڴIYYY*//ŋUYYiMBz꥕+WjƌtR~z=䓺pYOJNNִi4|py{{] 4bV-$$DJLL4О={]ǎSUUjjjtEH_^tT3fOAAA wܡJMM5RC)==P ͛7tw ܹS~ T__ 9,&&F;wTll,Ձ>}ZiiiSaaaWLL&O4 8)?ԩS,݇˗UZZ便E裏駟 Q.((PzzFABfXǎSFF@cjĉJJJ÷Qii)77qDڻw6oެÇF555s9{x߿kڹF=:{CժrڷoVZ iذa:uF`<=>ލ>_t/5~x6 cEǏwڳTWW|>|Xk֬ڠO>zu_~y 8Vj֭OTZZ/wkڸq\\\v矫ʕ+***RQQ=m۶),,L~~~>^5gD|$''k߾}6/j߾}ڼy: ׫G?믿N1fSo”Sjȑu9RYYY43֤a9'OzXNcc# =~zO- vॗ^_Cuul/zрvݻb3v;W_}e֦GjPQQ.^xKKfΜI1lhݺuzꩧlя#k?OQQQJOO5x.ݵ;Աchbcc;PeggkӦMڿ*++U__J!`Æ JII6ӧsdWhhFiӦ)))S;ӧ)6Z\VVݻwkƍ:qi'22R~(F7:uƎ˧ɻ?F-tۯR@o"yyy ZV?~\nݪ"թavs6cnTQQ#F8ZGP(**J&M҃>Aꘚ 2F@w_MMM:xl٢LҥK32d٣хꔚӽG}~;>iiiQQQꔖ??vZ]xUIDATʕ+:qSlo_f S&Io&L׿m6͝;Weee4&@p+"""m6;uj„ ܮhݻa6 ***ҨQTXXH1p@߿_v}1be8y~5665666gXV=zT'ObX,"UUUkZh֭[F?@Wr劎;&%%%Z^u˪a*AmQжmD4@Н"""֟_hlJLLvܩnyOVZZ (>@`K PffºTTT(%%` N:.(Q:uAFA&L蒍,&LF?i(h֬YڳfbɰD, USSi-ZHk׮˗)0@`u1{kZJ_z ػ+W/PLLz??UYYIA'2@EFFjJNNҌ3T\\LGt@$ﯬnTQQd9s`Ȑ!ڿzyollԈ#G` K?Y,?^_~%I[[>s͜9vZ9s>sQ(455iΝz''xB;wTSS ĝR__׫_~^F?!@BCCeXTSSC1%A IENDB`phatch-0.2.7/data/masks/12_pointed_polygon-flat.png0000644000000000000000000003411711346363116022133 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME < IDATxy|T,Y Y j`k{-B[ jJ Z+ZQ낽B-A 7A % Kdf6̙8If9_8|m ;III*,,ao/:uW_O>D9999rbcc) 8s^͛7}16q S+VW\qίqz'+G,k׮ŋ+ __\\qi׮]*//1ap={4lb_WgϞF@@_믿^BCC[s4k,***3L6ѽ{wc͚5Fkr\ưaÌa"ppXለ0nfh+o񆑞n8jA#55x饗PQQaL0:uꤾ}jժUJNNn޳gƏ/˥ NcD=#ںuk_%_~ڹs~ߪ[nl0 K+W_nT^^_u N@К5zh4ۺu&M\pKp8^{M6{uZp^~esM7ݤ_~M0A*++Di{Zx~n:M>]yyyӥK LOdaaa۷V^DK_4g=zTS:UUU>}>0?իW/[ٳ_`߾}?~ Z !ie_||ƏիW+66o_򗊊uYKfq:믿|ӧ5i$mܸzzBActaUWWS&ݮݻ+++Kz+i׫E^0@|Odd曊 {}vZ m'--M=qo]oV\޽{+00ԹsgOVRBBi%/更$%%C=7M}[~~ƍݻwR +88X{իNAի5{l婡}%$$hرZhiG555z{R # @z74` ҁ8q/ٳg)p<PllƎ.&лwoرC>w.fp^ TMMl6 Ðn}zIjR__/ͦZεGtM ":s~_kÆ :~8ѿ Q@@n;ƾ dm߾{{<)ԺVM2 Cni@PVV&ǣKU]]-0~VPPdTYY))ǣz9N4Ilx<_ )6Muuu_ )CkH 6L 2;w{աC,RpSN V@@N(!!A)))޽t:uJT^^3rH>޽^Μ9RUUto )_4_)r_ )555M!ZgOSg}VYYY7'ހ\k׮JLLTnݔt!Sddd^w̙zv(m޼Y~Ts>kSN T@@@< @aaaMSSSuU111ԩSԤZSnn.q7?;?5uT>|X/?w:MܣtAOLLT\\\ӧ ٳuwC1nϟW_}+?_0x<۷>sV7tP}~ͅ${hgxPDEEiwz [n1bYYYXQDD{1  S??ҧO}glQ rss5bQ f`9s&畞#F3={?gߪ*_? ѝw)I1KOOy @"XԘ1chPM6M!!!ݻkϞ= Oݮ\\4á'|R]tפiΝZ)3%Ç"dm߾]%馛~z |Aff&^|ABB~Q"==]]w- 0>}7VxbP*66VO?4Ъhl=,!Ch˖-@E8$ͣ e˖[n@ $mڴIn0ꪫC!Z[k,"""B=Цx EDDP f`}g}c:- jƌ\%K"t={jr8@a :B``&M@[l- ())):u*5bn?ޜNƌ@C"~B0&]Oݮ :?4 chRSSb R * @^W7oE03hk^{)Sهd\R9>M튏wQf233D!ʨQA!h zg(SʢE0m+e]F!կ_?  jݺṳL+77WÇWqq1`!##?ӣE03hEQQQzuuQ wI 8P\4.|FllFM`fp)k;|Fuu\ Z"%%E#G|JhhLA@K=,MFADrrƍG!$á'|R ĉYD5JdXhbڷo(m6JKK)36NScƌSfp!ݺu޽{F1X҈#h {Rvvm\XJFFSM|ҔRh Ηl6 6?KըQx|YbbZ=s ,Z}Ç)3-&&F_6mڤ+Wr`i:u*-_˴xb :n[}Ձ(3#$$D{/l.O]Y&k.͘1Cױc(`e?Ci̙ڹs )yXPTTGyD7oVaa^/E!|SLL#+B4w\}4"ka$EUVVjѢE4иF:-]T˖-?ө <x =*,,ٳg Y8ƦB?=SNشifϞWM,Xh]vi֬Y,TRqe%K4x`F2E\.f̘l̊PTTٳgk*((TS!_^?uTvF+ՕkܹZv -T'+RO=VXn*s 11Q#F?~@ҥK /HUUUL-]Shl*3ϨPgΜ!.](##CYYY4h `:a󕗗r@K5_pFM67\.N8Ah.VO?̙3o>FԨQz'Y˥3gjΝ*(( |]||~%k 0z``"##!KJLLTXXiޏiQYY#`Y -fԏK @$,}g<=XRuu5|!Kh gϞ Kii)#`Ia0p>%ՙhk%B:p :{7Uz:u`I555sihh`?%Q@544p~+rrsx͌kL5~x2r>[G7oi@LL.]*ɨJl6 2D]w#` f|t 55U/2@S*66  =ntUv;#`)s ]_ (XGZZ^xF5g3Bdƶz{w KHLL믿Xڌ3I$өo]{fd,mر6ltI2:322{n22wYeff*77gt颅 rp4M ѣ rM7nS@@@v-[(55;?3AAA;v, o}I.2Zʔh/*))Ѯ]:lv+Vow]ڵC^n\}\7ázKIIIj[Zv8[TT<m| $$D'OV׮]9|͌3Կv6_зo_ڵDZc4x`k-8\R)))]#,,LQQQڴijkk5nu]3 7NC fkk[ݻwWNNtYN>ˆAm2йsg͚5?K.RLLo^ziҤII.ҭު[o7 j[ Z~Yjjj mK_]m`={)00%HJJRqq>60ft SN5ZO?^znзo_}ݜ-Z_60Un$''Wdd$g V:m۶M  w߭ݻsh3!!!8q"Ydd/^|h+ݻp88tcjժU-x ..N B _|Ѣ│[6M^{-:Xhh^{5uڵEQvMk׮UHH%''+??_wi0=Cij>ۢ~<^VynPqqqYzjSeL&&&F555ڱcG7 -á[oUԜ9sԷofoCwVXX 5tfm3]t裏*""f -[PQ|7߬0IIIڴiө$>\ԑ#G5QFqEEE/ngϞڳg">'?V^}.sw\qӟ;T שS'+0+SRRvZS5, 55UGў={r+i 88X&LPRRB{9+ִO>ڽ{N'bۧoi yZ|wN8UTT(;;[ l6oך5kf;vȖl|,XCAA Puu5f^TTѣG^1}iT ۼyn*0c_]qTq߿/K5f544P%,'Ç+{j֬Y:r99gu]ي\1BEEEoG'? Unj7 0cKT?|-Fڲe*&VYYE4םwɆA߯ ~?p޽Z`٣u\ku Qbb6lؠ޽{SeL0 8M.i@׆Aw}n7D.]zΆ?4b^*--} k:qD~/RWWzK۶mĉ Əj@ںu>裋~R}G G'NKn[~֮],\ <=z(;;[ III }R#G4vXh„ -J0 C۶mӫWvv%K(55U|93:__|%{k!6 ͙3GGsѝMyyvZȑ#1cN:u?n4JJJ҆ ԫW/h裏Zg[nVyh޽Z@3gԩS[8c\*y*))iio7Z[[+Vhǥ()IDAT5.uVzpholOm6(77W'NaE_<444hݺuZnglٲKns>mz QzzեK&pieffJӟvhtag?lL&MR^^^v ah֭Z|9g رc6n(f.i۶mpGW]uU6Fyyylxꩧruڤ9u4tP2_rqM4IeeemZz QRR6nܨ 6@|A#~"u]l_][-FO֙3gt7s~A~57Ν;9裏Yß5_v+''GСCUXXخk_riɌ_7n\_M?dի{y(==]999 gD,Zo?ht6 zHG7Mzo2*vrLs UW]F ԮML=(00?O:p@ٳZ`Ξ=K:XɓgbXΝ;C^p.x^s=:~iޓd,g?>`%'OTVV &((O{_ƍuVafƈ<ۭ)SԔhÇML:uĨzk%4O|]``ߣ@HH#~=mO1uܙQyf_f`E4Gll,b}V@h.0` b *u&Fh׫pF řvӭ0sZvj'Lv;m^` 47vs8 $4 2Xp3Xk0 v-Hd,!22o̼n`)))` JuFh֛BM(h>"@H׮]M E Y?ܲ6 @s`5f0O ,,p!,XM||<B^/#`)f&--p!!!!.3S``G%hhSp*1Ro>7Phh(k.Ĭ\@Xf\% 2"wK6,XQRR1~ ;wf, 4tt2Jg XRLL | 0c\X}5M0NIHZvgz(Xٞt3Mfc,l&v`tq `e111sx<,XVBB|3XUjj*\hnݺXU\\$fXS= ::Zu*..f,ԩS'|]II;C.͘1CMlLw=!!AW\q~i};a|UVVyv24SFF~jĈ&OXffϞ|UWW=:4RZZΝo=}vM:U.KO6{(""Bɚ1c~j5%\.M2Evɓ'}=ThԩS'%%%iɚ2e}vWZZiӦiӦM>$OFAAAJIIј1c4k,SXXWMM̙wyG>Χ@#өd?:n+%%EÇ… hw}WoLo%%%izgȶmtСC:se~/F+SO骫b$r׿vڥR~bcc Tp^yfKQ7Qddu{L?яh*dfWrrfΜIS!cGK.~E Urr&M)S((( 'AAAJNN֘1cT,O>Ѵi,p NRRRtmi(`.Kկ駟Zre?v%''ko V駟e]FAG~@W>}3TLv/^|YOhcM,X}{Lwќ9sre?DEE)55UsΥt[j~:wT=/~AS!hG.K'Oݻ~e?468qNJS!hC'Η ͚5K;w(JXO0ƦBT.n~OrSE)11Ex裏*//O555cŶt]wiʕa˖-ztA={|Wbb6mڤ r4i$ٳa _SZZS꣏>beSw^mݺBUWWԀ[oqg233sN 8$ͣ v322ԧO/ZJwu~mc6!\ 4m4 rΝ A͛7rQ QYY>6ŚN+VQZZ)SP>/++{\\rzU__O1h3gG|˹hdBUUU 5\C104n8:1ҥKU]]M15kp\ UWW"OO< Zvkմ36nşPPPӧS>7)0 mڴIΜT\\I&Q6k,nYC`u!۷B$6i Pvv6`:?яSf\.-NQQrrr(3hK_~+A1s-=zTK,LL} (++Laܹ%:TeeR ڃ֪Ux@Zh[h #kŊrD`)++{c>n)vxԧO-\ &))I6mRzz: a+?3"Z8_EEE+E0yu Aѣ*..U[[)wIJ `)55USNՃ>(%2pBSNS@@dԩS'H ө(9+::Z.!ͦ.]HթS'IE $EDDX;fEpddd7N7?X.?I `ٳgLN:*?p4].AAA2 +g!!!rMv(!ۭ05444ЦYƐp8ҹsg9ίƟhX ~ym6t6}BV׵kWp  bB~~_ȑ#z~70R1|y1TWWرc "sJKKӜ9stRɓɓ m#<<\zջwo ҁvܩr\\K JHHЏ~#=M ><~a曬Z@ PZZ.\ѣGSvѣGmH(@tkJMM m0 ws=Nu0d;VOѣ,Yo\˗S^^EGGkРAzWԵkW rΜ9cO>i>!ieZGMM:zK:tl6iuiȑVMM |Shhz街_~Y &Nu֩tuiٲeM=/;v/~ \.n kil)uƎm۶Ӝ`|ŋ[ocڵ>}9"Y5p@JHH]]]O~!M}0`B555ժUTYYCn=o۶MG0R(==]˖-Ӑ!CLn?SW@4l0K2{D_|8I1888|lFn݌%K^(^x'D { {:w ۷ovaaNݻ{3q&L0***K/dR{k×aoF]ʌoو3ưa ժ5kݻw7l6u` JJJҨQSO)((?ZǏ?QX5f?={_[˖-FϞ= A=98ktUWiJLL744hzwtq X))){裏tkۧ1c4S!~p}16o>sΥXYll _|Q555=zGSo)99Y^WEEECLI2VIENDB`phatch-0.2.7/data/masks/12_pointed_polygon.png0000644000000000000000000004352711346363116021214 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME :ϛ IDATx{tUWN !!!!A(S,`k;a+^p\c[HG\zYciŎ@vb D%K.zr;G+?o-s~>!yd 6Ljnn&`=!!!뮻pBg„ *))$'(3,%%E RPP B` fSRR\111`6۴hѢEnSpp0,5Eh߾}/}I `\.mڴ钃$vmڴI.(i%akzꩧ4{lLL"##UTT$C` ?0P*((`mٲE}}}o233w^9Ϋw4i***"`RL*11Qz$ө?JLL$I0aÆGU~~58l6ٳG]]]0n&c4gկj۶mzƌ})""_~_kk/رc0ӗBG||֯_o$EDDh'__&M=i$ZXZA̙3[o) `@a5kv)à( 4(::z@NssrssU]]M?-ύ1B|hwӈ#<@`8N}[̙3oΜ9Sַi![o}K1 CӧO׻E( #GjϞ=C6iM:U'Nb~[#F??( P-X@_WXկj ~[4i٣@8>M:U{)))ڼy ͛7+%% Po111կ~%sr_J111\(@׿ 1.X@_e۹`` ƍ{nM.PJÇ駟֗e:樨(ڵK0jkww|GgVpp0Q|TVV+٩I& 0_3lذA ./))I7n_6nܨ$.} Pdd$8XO~effP__AlŊ\nv;9RwuhΝ 50onax<^0rrr(3Df~a6~aٸCԢ^0<a}vpk7`g=z3;3f i[FFjrKHH0f̘aر3ѣF\\qY\.vMMdcȑFPP1z߾}Y۷rZPP1rHcɒ%FMM%G{{r͊v_իWFDDi^0իW\hFFFz+ErĎf6nܸB#771b1`̚5˰Yf\~j#F0rssB类Ÿq!͊mԩ܉7RRRXu---8e iii\\,b̟?(//k1uTI@bϿܹs#hmi<7www)))4+!kjjŋ[nɓ'kLf6a[ZZzHOO7TӯIOO7z)'>aD V>cFnn)7of͛7\kl޼whu<6MSqqz-+%%E6hHH5o<2͛|l6(??_o5o #a1^~ec~`rrqqǍdۭo/ܯ 6>Ь҆ fٳ/={g]u1_u~[ٳ35l0F Zbb+Ɨ-[泻 -bN-2}ve˖ Fbb"} u <Kk֬QCC.\Ǖ{b1PҤITZZ3l0%%%iٲe~PѣuI54cǚ֭[3f .IIIFEE_IEE4͘1غu)c\?ƎKciȑ{TTT;wjΜ9 `,ͱXj1( l6>@qPVGDDƪU|f,Y-]RG__QPP0 ;hoog :Un}>[@[t)}#`)U+l;T\\;v(??_211Q6l`*u7lؠ~͍dkǎ*..wa lk RVVe?''.˗/ḮzHǏ'C)22~/֗cٸfee zB,Ԣ3wڵkyAf̝;@s^zv[vM n>}ptOywb UTTQq޽{5l08.\I&?DeffjժU ড়={V7tp b/oURR=zv%>>>^*6l^}U_gvF*))/!66VfF.#11Qk֬QYY~+++KQQQp}Wnn."O(eee?ʴf͚~]8H3^ɓy  F@@1sL!z3gFBBgɓ#y fvjΜ9ڵkvޭ{G  0C, @7ݻwk׮]ݭbFMCZZ^y u)--`7b=7v;;~\cǎ§^@?6l0%''#0 ,BBBn犌̊>Gw#@?;Gn7A@ aө1c4f9NA3`_(99Yfb)\`/ LhhBCC  PX  PXP||{|>2tUTT2_zTee%3עQ:+mW34eٳlSا֏?r uq?N/Μ9G}G}TgΜWss3Yiڿ__ zg,O{g|r?vUQQ 2 sz{{*fScc֯_O|}?qd?^-URRB|JIIOo@ssx 2 Sx {Z6/--W+ԩS*--AV">aժU~_ah֭$CS[na~w~݆Kd`HK~_?.''G&Co~; ;v}!c{3t-hd!`婨oRuu5YT~) &=d"`P=jjjJwV[[mmm@}}}Y20(}Y^^tUTTfzJf|Acc L*,,Tcc)34uTd'`|ڳg)4s555*//';\5559gΜѣ>Jģ>3gPٳd)_={V79hhh/~ 2Я~_[,Qx^mٲEd+_j˖-z^ׯ'cbLǍ7N$km:t˔[w!kw1Hܹsokvmi֭<7n_^^SNkr)So0g^V"dժU7u`nݪNpU:;;uVas4sf2pU֬Yc>ʹ?r7 7n>ls"iǎd3رCuuu?OH-ܢݻwSQQfYUU*xaI+V _hŊjjj0b֦b˜e Z=d8s=쳪ZbGUQQ!F.zTee%3fب2 jll9[j@rss-upySLQIIrs'O4۝W\'Oy[8}}Q2 IzGui +ؿΞ=Kŝ={V[hhhի|իWz?Yd?XToo?RXm`|֯_ooq| ƏCY-%^}}y>`1-KHҭު7|OXWر1:uSNYj KתUDEZ ֭[ɧLS[na o~C ~Xѿ"dee@eggB8f>+BvءF gr-ڽ{7SQQ`೪TUUE JN>G}@ɬ\RO&- ĉi&0s;F@x=C_&z衇O@>`4zh[NSL!xbRXMddL7*22OXHKK.\bX2VZX/BBB$ńhɒ% VYYZ[[0u(ۭ?7n:;SUUU0Ç+//ON'Cw}vޭ[-@RR~imٲNS[lO?$f]ppӵi&˪wܡJ0opBݻpӵw^-\P$99Y=֯_PpUBCC~z=sJNN69@HH233UXXT2pNC-\P%%%jmm ,!!A˗//ojҥr1p%l6n^{5M8LVUU^/DEEiڰakkkӢEo?[IIIzn1S70:@L IDATtg @PPƌeff)ӪЂ t1Z֬Y+` GK,[o!;!rgGey\.veddh˖-5jǏ+??_GUwwygbcch"۷`yFҾ}h"ƚs %%Eկ`8RPPG5GlmٲEIII\a.A*++п5n{*..f2T\\{w|;`3#Gԋ/n+ Uz7:qNSǏWaa⸂\3gh޼y:x:::w-#FPQQ?)..NEEEz4bߛШQvZ͘1+@?۵k2럼 <<\'Oƍ`477k…zv]zHot:2 áK⺊klrZn&O`{ZxzӵaEFFr"---Zh~m\տ[z+$$0BBBt=pjmm@kÆ 7n:tH-Ree>|/W^a>CK,_?  7r\/~|TAA~_r] @ppƎ7*==g*++pB9rD===ѝwީ{?{OwybbbHIIs=uֱ?uSJJ'_$#$$DYYY*,,W[[y橼\]]]EGGkҥ*))aRRRTRRKjV[ե_yyyZ~=QD֯_<,>@LLn6wIXWW7йs>ꍀ$G֭ުD?Vz>%g>e@JZy2 CgϞ*00PSN%_׺uq]>W4q>}6lؠHiiiѢEoUdvn:M<+ {xbUUU^[fΝ;?Ox p '=s jp}}}z?Q|-$)44Tڲe\BCCUVV&3kWy<۷OӦMSAAWQPPiӦi߾}> k_~*88 }{ٳw$ݮ mٲEF,ѣG={Ç5c \}%˚1c><|\ttf͚W^yEd<,YzKCvCZHRPPƌeffӪЂ t1 ~ٳϓSz5{lUTT 3ӧkÆ '[~M-o?g˧ Ilrz4qD2߯[UUUz>ulVsOGO?ɓ'e|\DDrssqFEEEMj…*))Qkk͗ڪzK'OVQQYiEEEqz7m HSL:ھ}L"ntwgQ`` Y4}}}Z|^{59s/o I ոqyf%&&بСCx<~{6G%%%6mlBVԖ-[4m43| &KG-[ٳ8'L*55\'Oj޼yPWWifե(//O*Y .tS h͝;W/BCCbx<{uV577M[HRppӵi&˪wܡJnk&I.w߭ݻw8g(ۭ?7nСCtwJ}}}9@I+raܹs_iӦ`a/ĉ{۬f>.22RSLƍɧ,E .TqqZZZ,d4zh[NSLP\\ŋF^ײqY9 ^4o*33SMPP.]`hiҥz<23G-72mmm?~jjj0)S0.)<<\SLaL{nn2pIUUUSSS3fvV*rJpEV\(ӟox:t bƍÇWv]{/ *{v;3jԨQ*++ WS:~83~Whܹ p84w\0oU\\2pN:)Sf ~{) hX\+V(::_\.M6\iӦrQө˗~|r9NӝRt ^egg=M ~|l47 @rr߯X2oΞ='@S3'NdXM8_/~f0t/YgΜa=0`4zhӜ) pۿ PopS)nt+4*33K2~дٴtRS+((Hwyl6\d8pXY7t'NdhM8/">\_ufǨQ~#++KF <<\?8+?}}@zz***fE%zJfVPP.];6MK.}v`ȑ:|Oyt7ĉ\3g2VxxfΜ HHHО={BVmmNSN1p%~/%%Eiii>yl>WDEEiʕd V\(;.R2`999*++cRBCC)Sy =Zd 4f>ShΜ9 ӱ3g||fHkǎr\JII k~SW||"""_c"""P99N+--Mrr\JJJb0$РzUUULjjjRGG:;;xեVuvvˀ.%""Baaa PXXN4vXeee)55U)))}zԤZNЇjz{{L \f NpMI (ZZZ(\s+y)zzzTVVF \2GvVsIV=< 6@ ~ aw===:}4pN>0 {uuuPߵU9yZ[[ Y__JKK +VZZ>AWYYIgjX>;g3g <z{{ !0n544РnA3hooW}}=pYY@j a*//'.QL}(, հ}(, x<6@? P]]QlZ[[)\hmm%0;v@cǎ@Pl }(, ՜={ |/PX;|uww@YuuuUWW.A3pK.\ 0n9r@#Gp fF@`A555:TWWk:wΝӒ%KT]]M0@K)km6͘1CyyyZ~,X 03 C ,Ы<͘1C۶m#0 +x_Zٺ뮻{n:uJah߾}z'{'o>SNiݺ뮻_׼۞_ @_c,dȑ:~8z'o e!PRR|555}r\W'xB 5J'N 0$8p@S}]XBjll)~ۭ{jذap]pA&M(11QZjnf)gϞM7ݤa!N˺馛o|Co~MM.9+^fon&!WWW{(`v---ٳzG_^W~_\䗿}]yޫΝu+++K<oT[["@2hjW6F~~ll~ibbqFbbb]7f$''Ç-իW7Z1`AV jӦM2enVmٲEuuu Rh"VR-ZHuuuڲenVM2E6mܠOtg?o[%%%:s̀J}$UYY9`̙3*))ѷmeeeg?Z[[`jLXM8ә=c9 >o~\}?o~c >|PePP1rH{1M߉'7Zcǚۺu1c #!!aH㛔dTTT0j #))iHiBB1c c֭رc-RSSUSS#y<֬YyiNNݫ:tuuiҤI*--6ll2?Phhj:y$ -[bbXe˖G6BBB|.ƢE~-Zd 1Fm,[hll7444n| 6سg_vV{1fϞm\.# m[Q[Έ)Ԁrg԰a)hVh6ذatP===/l?ވX'''Ǐg4JǏ7ZǏ7^~eobaÆ~>{~eee>Νӏceff^n}CNg٫ӣݖe033S?"_,X`v]w7R#??HII17._w]\q-3m)))F~~QZZ뮻@R>}OuB}}}͛\#..t񎍍56o~7o6bccMw\cF__O|4+ &Db>~оyx<7(>..ضmm۶͔>EEE?ox0FEN|.w߀ٵk(h֮]; fIDATJqq1gحoz^/+Я`9sr ֮]KVԟW^ф }M۶mS}} wM]ʁcY{18pD0T__m۶k_&LW^yE>Of͖ Ν;g<#6N'qEEE_TTĽkhNp#q͊mԩq7n}CҌ[f?Ƶ]ϟo_:u*Y7w+,,4rss#F~;k,fbmH?#FFaaU28n8bH@bsWIW6222X1<@-22XzիW\z'##XzzEv; 2ۿ%KXnj ƾ}L;۷ϲ@ fh%K|^"f4+8ѣva̘1zZFF{'FFFx3f;v59z(0U0o~q^xa!^uY,:Ļ /]oni_Qkz't̙wuu!6l0xS /.\b!!!r\3gO HaIJJەQQQٳgK@"##)((_{pwvvjҤI*//b>u1}cǎq! WG۷oڵk׮]۷ (n>.99Y;wԨQx?3gPƍ{'ݭɓ'СC\4q G~?:r _߬?g@?~[.˧^ӧOWmm- 0&M={(00'OSN޽{8gJKK//>s͜9s@~kƍ"؀ p 0xOҤIݻW7D h̘1ڷo"""K_;FpvVWq( '& !Hjpu5\ 7P%C@0 %`0(Maܘɜ3c->ҵR 9Tx<4 t< 0;<}_y @+JI( ÿ PI* @jR{ID˅&p]WNZS~_i`F%,S=@Y@$eY*cEQYEXeY` Fez8(4U4Ll$IPP|#>A3D~' B"OeIENDB`phatch-0.2.7/data/masks/12_pointed_round.png0000644000000000000000000003656411346363116020657 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME (B IDATxyX{M7DP55S4wqϥ-%ˬN2ڳ}i jfif* .8Ղ2|?\0;>7ϼI!3[uE Q``TZ5)33Ss㊋S\\ۧ}b&P]cd2u߿z͛˫D۷k۶mZzEk׮P~levء?X˗/WFF 1(M*Tȑ#5~x5nܸ~FF͛3f()) 2 4Fhh1{l#==ݰoa2? xyy[nQƍUF \JOObQJJ\'O_U||9iV^cǎݿ4 3g0 bqի6mڨnݺrww/m]zUڽ{٣={رc\L~~~z'5i$ݳgF0yp l0nTTɘ4igbt8>>ޘ;wq=>>>_1tP5^|El63 gpѮ];O?5233dq2֮]k 2bN:믿6Vʜ2( FY͛ׯŋƜ9sv1Ga6 & ~pi}/`Y|k 6py 1mf8,cРA<ȑ#4Z,)S.3Oz2 gg7%`rTXXdC/))) /`:<X/sA`0l1Znm;͂lL4vy 6on"J`Xyu]FFFS.O6FiL&8!3!!pe'O9ˠ0= GLLѲeK}:Y%1~x Q1ydZ8,UTqy?~|c<8cر.\p>|ϑ1sLV\r ̠0EC7J0].\J FPPi(ѣqUV?m94-[w}ǥ7$$ծ][7ovO+-ʕSռys}7*e˖iLN!ԨQCZ~=aaq(UڹsZnMqiw}.㣕+WwLFkڵ`&3g͛7W^{/֭c/oS&>#hZlA;sgyzzj͚5ӧ-[ԳgO@+W֜9sõw^oަ?M1t]cƌ!PIz7TjU(mݺU<~ƻᆱÇQAvMG.]|+fiyW ֬Ya׃s`S^^^:p5jDV*%%ķ5qD[j#Zt)A.ljĉ,V֥KڵK+1B3g$Pz뭷kҥ& +RoVO.w]˖-+ *bh֭v:&MJ*j˖-4hP~Zd<== < % /aؐD߿__jUmݺ3KrJ;p~'OAFws￯z_㣵kת~Vʆ6msT/^,(%&IzlR`IXlzAXe4? y5s=9sd2~m׏P޽աCSqX8驌-X@cƌa;v,a6mR^v`Uѣ jJAAArss'|">{P^=m޼Yv\nݪ]g37oVϞ= 8͛+66 hٲe޶ jFI@!L8IJHHPpp0a7ڵkٳv:wƍG 6"3f  (*UO>|P \38{bԩnd2;$]8ڿm(.̅ ;p}%T @c.x-/uP ˗ у 0 PֱcGBdZp????URE᡼S۶m \ҥKevԩnMrj֬ZjVZY|{يɓ'uIڵk>|&GT\9ӓ0+yg~IM4߮-Z\Y#--M111ھ}/_cǎ18pm߾ +Z| b[nڵ:wU㎍Ւ%KtR8q{6ydM6 +P*UtV``޽{݂=A=ZzOyZ~}aÆ0`lv7zرCqF IRRCF8sjܸq6mhРA߿S~К5kԩSP$$$(44_ӬY3 :TWgz7AB@Y0`VZE4jHGӟ5hڢߴiSe׮]Pbb"p! YXX!6ԳgO=zT5kTddVZ|.:tо}4tPmݺ(s=:d2_X,=c3gaPPLɓ5c (&> ERZ5vaz8٬ (88X5kTPPV*OHӕkJHHЙ3g,^`O^}Ueggk̙A+VT۶mլY35mTM6UƍU|y씔:uJǎӱctQ/:zh>le˖L, 矋}%W9VTJu]:uR.]t뭷啸{m߿_'NaPX|^&]IKKSvt ` 8P R.]OhΝڽ{\򷯋Sݺuxvѣjٲev`4hƎpڹs6mڤh_;;C'4zh3FիWwǞ#GYfV~~t额;w*U)Sh„ &cǎmݦl¸7I/Cʗ/~ZK,Q=<\ӵk.`v?^zt\ /|}}5{lmٲTŊ5yd`p6mիW~.33SuQRRap}w}bbbXIhM,///(^ ~gr-8'Nh߾}ڿ? _ה)Sx$I*S||<ٴnݚn(99Y111ڵkvڥ{*++?zq %77WΝ;sNmݺUiiiGꫯK^^vڥ 6諯ҁ(Yf9VqimذAQQQ믕CWRӦM9jVu%-_\-Ҏ;*n^r \uƑ *ooojJ?4j(̙3JNNfԯ__ǎH[j֬YZv, ,ݻWZ'OӇ~2?.$W^R^zi„ .PfM:uJ&#P&[oi̙|2رC:u .hڴi5kVjA7iD=*VQ(sUTь3pv[=zP~tw*$$ ` Ї~ɓ'DA,u=W^8$7N+VL@@ aÆ[nrss8no)S(77G޺5|pW^^^1w)22Rf͚i1b'ŋ͛7^UDD~ak׎R^#FX/5kԣ>ѣG+ #,Ǝy @VO(""B:Ɂ'Oo\k׮׿Gpp/pХKKڵ+3 Mo߾ڲecp,QZZuA)5p@fb:uZh"}_^{5O,PZ{$TZwrĈZv˥zf͚رcEz)T^]̙}2K@JJ6mgml?`C+V pfR͛e0p@߿R_wʕ+3gjرeUVڷo_hǎ,¬VhݺV^`R]rE5jԸŁJ0|pm߾;Q|yw}7'xBʕ+Gؑ}_x+0vbrJKK믿sssS^E.SNՔ)SH;wwX;V< ڵkwݿ+9#F… e2H+//x;裏Xp jРAwŋӓ$p0M6-zpssE~pP!!!E/? ߿h ,,L/" _ܴ`R}Q~*\ 28)SB $("@+AAAzGH 'qOۛp/_qӘ1cH 'rHN_q9r$)"$hР~>'r^`,8~g]Nf޽/ԩ)dbbb_nvhтp2qqq׽$֭KJ8u 4 %\sPtt @JH 'a]zw\.\xӯ1HNNVHHrssoEZ8/򦋿$I '駟gϞ%-w}}$''N୷*ײ_r3gΐN^^^ @ll,.^?HcH6m4edd{L˗U\9;wNSfffv? ^+/IfIڸq# ``b}Y֬YC8g}w=&IdRBBBBBHcuEa0 vpE=Xk@,YB8 1I2$d2СCjҤ `ԤI]xDsm0 ͞=dcǏ/IӧOؙUViРAV-OFF>3\tIƍ3fPvv6I`G|I;wv !!As!iĊ+'X6tT8:eԩS SJJUoMKLyzz[n$@X,ׯ=j6_/z-={(#/vi.%EDDp@֭[uwb~Ic&(% jժm3nZjԨÇB 6pݻצ?|/8}}YfR0~x/$٬ow`CرcKgHRյ~UVʶl٢}*''T~_xYgjРAK׹8qBܹ3$''k׮JJJ*՟[577m޼Y]ta(Lu]w.m.7X,EFFdX4lذ2YU$; PDahԨQ*`.72|M4afBzW;(һ w^cǎ*70{lM<.K Ԯ][-Z`v(ܹsj׼onpsӢE,sѣ>*0>uCEwV^L|mڴɮIUdd֯_ό}c9 Xjڵku2J٬}* nvv_hҥ뮻y~j*1BYYYY$C|Όݻw_~@d{lm*&&F5*`s0 }WrssMŊ5|p(>> nݪT[&\qqq:tsy=zTw}ݙyswwנAZ \@:h_<L&GnnnںukL]7ҨQ#}W\+?xc)??9 $***Jm۶e͢EC6|III֭VZlÇkժUq IYYY`Cݺu#jذV;FZfʕ+G wwwfmذ6;_}KؙTլYS*9;Ç[wZj:|*UDةniXs͚5Sxxu @v4rHR 2.K&IwV֭Iڵk090I| GSN%Ì_Əz%ĉ\2)`W'xMm @N FUdzZhQǓ.$$`С ,|8q" WڷoAURp -l˕+3gΨbŊ$HKK@Yp"7/#G$)Hnn_Յ EZ8}xgϞ,8Ǐ߸u]9q dҝwIJRhРI '?\iӆp2)))Jo߮mےNf˖-Tuܔ)OOOIN:/x $$'m6KRvڤOo .Zr%W{ʕ+7.$Лo?fϞ .ܼN 55U3g۟X<<x6lf͚1[PVVOH Zj1saZxyǗ}('*22R EakNÇ/ſX@vޭaÆb0ƍաCW{)S҄ QnwI{VLL/|ܹs^{M&Y@իWxb͜9S?]"X~XsJv͟?_g϶E|H_ӓ#2 Ў;`\RYYYqV$GZd*WpjIIIZp>9rU $jɒ%j׮Gdee)**J_~6lؠW:cz$M6M'N@Cƍxb^ZNlR~7`͛7OժU8˗/kÆ W_}K.9ci+jڴiz衇 حx[Nk֬Ѷmz{. :uI&ep͟?_7oѣG]걗Z$OOO=zgUJ<@ڹs]j] OhҤI|ծ][ .$T?4''GZ`$),, J`Ivu~=C7nԩ (5{U֭)el6_~zGս{w5( 4]1Kc9>L˖-SFFBCC9O`Sھ};;vuM&uIÆ SDD3~Iz+^yxxW^0`5jpn)YfӧΝ;ݝ#P,^x WnԩS'o^ZG4PT~} RVԩS'uQ۷WժU9զM}g0lCBB8iӦg?0խ[k :r7nLpUڹs6mJb5j hfbaÆ._~.8)ڵ<<<\P)gϞ.} ;(777u]W-Z>}P\MvF:wLp5:t pqAAAN= _tԉڵ+Ufmۖ WR^=g~[n@o R\G͝qT.^HksMF'UVUHH5lؐ/P܀ ojժEpf(Hhh( >P7Ĝ-\ʗ/O\PP p] Phv P(  pYYY P'!+--ͥj233)sQ! t%''SQ^^! tI|\'w(vŴ~ JOO'@bbb(ҥK(p})̙3ݻw0 JQ$>}|r 3KLL$ݻWqqqgvy %K8HÇ pm]XlO$XBNPdƌN)9x !m6}N8M [ ŋe6ӉC[laU$pa+Vpş;v pQ8q<^ l߾E.ueXJ*rww' p!;vPݕ+tSΝ;HZ)Xb!X,ٳg]SbժU'praGu(q9^0i$͛7e?|@+2e~m΀w]NRpp0aX,4if͚YIzCݻ8 8P-" v/((Hqqq! ppGQuQ \ǹs"3ge˖,^Ŋ+8oFRLL aP4)))>}:Ax~iP|:p4h@`Ǯ\wyG3fPjj*PJSN̆ &MӥwBB͛>@IIIzd*UuE={TǎղeKyxx8X,ڼyϟ5kbpPl|ڷo6lHN\\ׯ?V֭۫]v\C>Ɯm޼Y+Wիu&P:7nl2EDDkCCCղeKEjѢBCC1iڱc4&J܉~g >\QQQrss#v#66_x^ڟaÆjР6lxmԬYSժUOKKO?C]={`?|InG_MnSիWW5ի_~~~SŊ_Leff*55UYYYtuY%$$ٳJNNf)gkFBj8Eڊiԩ>^T޽ЏbhΝzհaC5iD`%W^U@@ IrڷoVZvڪ]ԩ#oo"ޅ }ǩSt)/:pqVZUgϞ僔+ٵk˾WZ5UVM$IRjjs)33nƍuw0̘1Kظ;S]epѢEJvI`OϟWr(\URE鄁b:(UZ~=AV8EPB_}!Dx \rJLLTJ(nM$Ǒ PL,1}рu!._ ڵk  .hƍ ҥKJ@,[L ו+WZx THHN8!OOOnԩSS \bb/^L@!|,`#,,L# PӦM?sؿlBv&??ȦMXACvbhРA?>a؉9s`7l٢nݺ7nΝ+ɤyiфR?F+v^z%BoΝ+;3G٘7o?sۼywNe$**J b߽zeddf͚\4 ⋼ͩ޽[Æ +p^O=S}]؄"!!AM4QӦM ?~\={TZZ .&&F e6)""Bلv&O?x(99Y}Urrr>RDDf̘ԩS9s&AEFFE+WGJJJ"DIJJҬY_]Ν#2 CF֭[111j߾9B6z\| @k|&MD6O/(m8qB:tжmԊ:ٳg(pM_~֭[G6+wޱmwz #(770`saf͚Fzzyl6_?M%0w\R\vGջKV_{۶m+V($$ٳjҤ Gfm޼Y]v%Ґ!CcUZ5-]T;w&n5kJV"}ݧ/F1mڴIÆ +_Ο?=z_go&? ү_?^Z&0`ݺucno.?GyyyF~xN3( FQn\rӧO7L&aÌ$|cԨQ<8#""gMNNC9VRŘ7oaX\jꩧx3( FIƄ X HII1zf|.Qx aϺ iӦYR1bӞߑnqHoΜ9.O=Ǝ+__R3g eff2!(@i*<<\&f?ԩSZf.]oP{PV- 0@=zPxxJt{YYY:p6nܨ5kh߾} 3777hB-[TݺuU^=իWOlߓd畔$%$$ڷo>cQAYPIENDB`phatch-0.2.7/data/masks/12_pointed_round_inverted.png0000644000000000000000000003462311346363116022551 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME Q IDATxytUCB"!!!)!LaI cA%Wo[uʲò*hi+X -*Ȑ0CSHAP9$@9[-*C>Zr-ds=9$`[r\Zx(7jż=hc hrC]wE1EBBoM׼y|^ef͚W^yb|CHHգGEEE),,Lm۶UXXZl={VǎSqqGvS<4n8M4I#FPXX#GP۷oo>y<̙3/3_%ǣYfoO~i8pթS+:zUVŋ4 ٳRUUU˗/7~]v>UL6 ƽSc<Ɗ+F'zȠ8i7ˁv۶m3{1sζ>Ƚۺgtb< ,u-//7233 1OׯA}׮]OS#&&6uu\Gf&2gtG1պ[ViiiMěm̘1 l]~Y-[ l3f0())1RSS9Fv#G4jkkM{p3 2uѣ~ffw^[n???[n1sΙ9Vv-s4^z%#--(xS*5>S_cfKFUUez9#==c&aѵkWԩS=:tկ~eǛƊ+lFDD~~_lMˍ8G``怿{n㩧2ROG5jjj}Mx衇 DBB1{lc޽Nj/hAA_HKK3\.W1 O?פ9bw}F˖-n4׿QXXhzΙ3coOTm߾]N\]] 6͛U\\,øׯLLmۖJz7o߾kzC5j(+44utJMM՞={h*"Ν;?}iϞ=ڳg>3TڴiΝ;o߾8p;H駟*;;[۷oW~~>SN]+::ZСu>Y\HXɨQzj q eeeUMMP=ӧOF.^PjJQQQFuQb˖-4hpǒoBؐϐ!C4k+xG)FcQ̈́ĉE}}bbbTUUE1XYM4@םwI!0SR[8`#:uÇ)Fg:v쨣GR V`67|3E45B`F#G̈#(B8` .KUUU DMM"""v)+0T&M*44T32dEx,0&C* @lklɓTiiڵkG!Xtؑ@Vll, RSS)fiL|M>}(fӷo_@V]'OR***JlzM@5>@ |?.0???ϏbhV.\Ppp(+hnݺuc-[T׮])oyx WC>p@8qEEDDN8UVVRV\RSS)KNNKפPX@Up wáJQ ^UQQH C=BDDwN!h$|M7DpL5q\T6m(SQDDn7`M%99n4n"0'Rvá#GC9rD]ta0F7`&ԩS'PJ@S4iE`Zwy'ENXD``=pձcG;wb2m4&iӦQVh)O1ځԫW/.daL,G;v,`׼ܹkXΝ;*+SNe`)ܵ Ehh>P RRR^z?J=L,)66V(+R'O֛oI!XڤIE!UPP`igϞUXXH1LS&UV1`ZJoӡCmذ_`޽{k۶ml'>>^۶mSϞ=)_2emۦS վ}{BCC+hѢE  l/88XK,т ԦM B-C'O|L ̘1C|&O,AA6/ө رCo&ڷo7|S۷oرct2%5Q&{G?(\BQQy:<!X I&iԩ (p˵h"[㭂s\t;WF~|rٳGn̡gϞ>|oZ:uJ7nTNNuBhJIIQrrRRR0 ^PUUƮ]TQQAaWOݺuSbb޽{+11ɕPڿ UTT/REGGw_w.l^Paa |ر ~O>ӧTZZƎ;tQյhB2dҔdP\m޼YyyyVcǎ5jFtv)eggkZz>3Y뮻Ҕ)SFaڱc-Z%K C #<ѣGϏ4/ /͛7ѣSOit l٢7Zf )_ 7@L'77W=ve5K/iL0`rss5gp-l2ՋXFAAnvСCb I˩ք L{)ȑ#;8^;wNǏWvv6*''GAAAtꔞ;wMLLvڥ:`%%%JNNViii4w8Lۉ믿.AL >.҈#4}tl)NO>Qdd$ruYHO~&EFFd@t1EEE;q:t蠆^7n?ghܸq^on;S.K >RQQQx<н{w& WBBW_~t'w@||<IqqqڷoO|@U!!!RSV|7A|O? s @*++>ɓ8@|G}՗nZNv@Ox,sOHRvTRR"Igl(&&O5Ō{I[ۺuioo653u8 I;w'|BwlSNyiV>={[3MuݛoIllsiNHRLL;[q݊Uii)+r  SM cƹT$u*++S@@s)::ZOfໜ>}Z+WcrJM h":` o)t$_ǏWxx8 o^/^dr+++X[oeߴ@2 k…6S$ábu҅XniW b@e}%۴+b`)a(..Nfj:tH{{nSO|r: `)K.56$uUEEEt2'p->cMKطo'KIZb~iQKXz%HREEBCC,iUUU)22RvMgLm-$iڵt֭[gmLظq#`j$@@NR֭0Ԩm۶2 KLY0 C{w^L _3ڽ{Q fw9rTNn)OCvRPP:%%%| -^`yfL\./^޽{5[۷/^,E6sUFF ͝;TK3lȓO>'|.Rrr.\[b{Lq`ff,X Alhƌz׼-^?0k,&Op:zW4c oWO_C:~{ԋ/0~xUVVj׮]y=LcƌԦM/lѢ׿*33=Y`~nVZiɒ%7n{oxw4yd'hʕJJJb-٣ 8qɿW<&.cܹsk0amڴI۷gpbccuVM0ײeԪU+&WUVZl&~ hAт P aaaZb lڴI'NTuu@||{=dzhd;v55C Qnn.?M$>>^ʞ9 6LZf /[lŋ7 [tMvŷ ^QCÆ Dvv222TWWUVZzu]}ϦM4f̘u@PPVZI 2D'|9xT6lV\yY!;ŋy/1|p-\P;wV3gΤXHղeKegg֋gΜSE,{믿~ 55U7o?5x`} Ծ}@_~:_.|gnݺ7w 2D6l+ux< :T[lrTPP=zP)lP}OOM%&&jڴi__p:***R\\8^z0/VƎC#G̔$9 PlNr<A}4hTһwo9'gTTDEEq;mTr9ʨ>LCQ |ȡC,,,97mD%!7oe@eee "\mm"""<{{=*xwtܹ/pB*xW%IITaazAeW^2 ǣ2س>+0@Nx<x<я~_{p9k/ڲe̙C^xA۷oڟ}u KڻwwN?P7pΟ???^ӧOW}}=U땙/%$rXa1cvuɿwIb РA"^/·\t8|rM0J`o&O=W$)((H+Wé(&vZz:ww _w}WÆ Ժut뭷{e/Cիu7RaL&''GǏ_.NcƌQvv6UD֮]{EIرcl2 ,Y'+tu]ӟDsjԩWo}w1 CVa:t{fb~i͞=;o.}ෙ6mϟ-[GhbϟWff,YrM_$ 4Hնm[ MR&L֭[k5Jx{gȊ5zh}'a І K4l6ߨ@u7k-5zh4׽;CZ >\NrRU(IDATz5{lykqIKLVYJJ^M} >>^10Çp5MF,p~3 СC,\eT\\]p xwM,̧Ly _'NP۶meUTT}x"+cԨQLˋ0M`SN5v@HHJKK@,󊊊ӧY.~;?6Lh`)S-[ s@bb")fz`HHN:E'|a љ3g|sO_p8ԫW/nW@=OE|Rtt0:=  41A|!-***OJJJO:qb:=z5۷{z{e@.K)j׮W/ O'|ʺu~'EXt))YYY^-Zرc^)ĉС|{AsΥ#>'SHRVtaEFF*//WΝ@SH_<'3Ob7 ŋ֮]nڵk5j()]Iݻվ}{:`%%%JJJRyyiinS]]ZvmM$iΝйsi3ݶ9Xl5Jtt7kÆ >Y yf 0@tR߯4mݺմ4s9sx|=JMM5+Muw4w\ 0z5XgwVZZF-[iSشiFoo2d~ӟj̘1ͦ^V?o _ ӤI4uT 8P4:0uV-ZHK.jC9rnf 6Laaat,UWW+;;[k׮՚5kt1l r)%%Eր?;w*77W7oݻvm6\~())I}U޽ Ó}~~W#77W%%%>TW}QbbճgO6P__?P*,, KiѢԻwFbbz&vѯM􅅅***RCC!\p%''+%%E)))JNNVDD/(//׮]( yt]>|PMZ7nTvvUTTDQrԿ~;ձcGȑ#˵w^^OSa%'';w߭HTo񆲲k. Bs=O~=zPo .PVƌ~3}|םwީ (88b3gh̙Zt) @z5kpJm;vLFҁ(CZn)[)..ֈ#gQ .%66V;vPll,` %%%JKK7Ye̘1:{,`ygΜј1c  Ќ3TXXH1\o,X@!X/e˖Q сC1XJIIz}j|z)!?Zwá;v(55b\ 8ka}Y 2~_1Zx0;pzE` 0g ̙ S``=pN<;br9-\B0E1z-(p J;ÇձcGT>.]PV a0KRҊ+(Y|9ENXReeڴiC1BMMx(+h*n[7nLcÆ L4lc,rrr(q EUVVm۶WUTT(22B撗Gp,ڵ" kvIpո"""T^^N!xUxx(+h.:~85Ge' (),,x)@ϧp p̙3jٲ%Ь.\`544P V.^>Bhv}?o.$|w!/!>|⢢TZZJ!4Ǒ/*++#hV'N`' x9 @۷"ٹs'Elrss) pMLǏj⿔뮻N]tQ#FSN49rD֭۵~:tHgϞ2ƪCJJJjj8ܶm D#`5͕i3=UUUZ~֭[M6СCu)S(33S4W^ђ%KFqqq:tn&1BaaaVJJKS٘îk|؀9}'FffѲe&i$''iݻ׶1"yyyy?nt+3~555̸&Q]]m?4ZhᕞҥOyyyEMAA`4È3-{0***2~{mҿ7-[eYYYFxxiK.sȲ5-//78vvƹs,s*++3Νkf2jkkٳg3g7 `̝;RỶs *ÍgϚSWWg,Y7ngvfF׮]-~~~Ƹq㌷z˨3m]Ϝ9c 6c%aבj`[4BBB,[@cͰ`> 1233 kII16֮]NnnĈM]N1gf&79ڵkg<Ν;Z5kQQQ _4ʚ͛~رkӟp؍;={cǎ#TKVMSew}FVVQQQ5=~O}x cPǎ;C#GÇ+??_;vPvv x|3fyUrݚ5k^}UT޽5|p 8P}QΝ***vZ-]Tn7 Ktԯ_?+&&F aVuuTVV[f͚+x4k,opu)11QݻwWttmJΟ?8qBUTTa+~_0 ϟO1&K4]v) ]ٳg#(22R;̛7OO=J.VX q +Wĉ@  6(%%b;w*==]uuu ;v(66bH*))QRR)Ќh o|ڕt3 !??_'On[ӦMSaa! xw^RTTztM>g?5-X@3f/xv>@|V^tysrr4zh׳ڶm\[nUTT?Igf&]Yӹ˥EiҤIE YX3f &E+##C7o6(## =zrrrLׯM@c~znڵku-0222l2m۲e˘6@Bl2k^03G?A zcƅ  o91m4am^Snݚ8p@{vN,k S /4x>VN6x#++ػw淹̤V w#!!3MGGfcʔ)FllAtxxxƔ)S5k:uuuFBBc w111ÇsQ[[k71Ӎ0 #,,HOO7~46bbb#`È6veE~~q 7F`` uh$&&7pߧܵkM]ÕGDD~zVzzzӦM3bcc ///leӦM3֯_olׯ_oDDDPgpb\ҰFcرcpjnn;X|h[rBÕ/%%%Ɲwi909l9Ҹ;~>>***b mܸQjllt VhhfϞ%K(..Ρ^_WWM?P[$\I#%%Ů7JNNqUW#F0 1h cĈUW]e8466))),1$!!A۷oWLLӼv]VVRee`"EEE)66V-RVVWUUiڴi:z(?Tp.)&..N6lPFF~Zr|MɓN P]{Zxv.5w\UTTC+2#**عsJ>##++HHH0FBBe|G.5;w4ccСի We]֘aÆgܹs)-۷x pnfY~ӟR ,j꣏>Rgg''((H7p-[F1s0uT;vL&nx vٳg7g<yiƍ$+))IׯgVf͚JKMMM$f뫀)!!Acƌѣ8P0ƺTQQG@yyy:zڪNbjR0p>[?->00PJMMUff!CP,>}ZGUii߯F---_R,܍f A)00PfY;vRSSZ ZѣGuA8p@GbQKK:::!D8 [ PLLӕD%$$( b$ѣ*++UXX*EjiiQSS"`l6CBB /PFR||<jXSII>tvvb}I#F(##CJHHP|||}})٩r=zT'|Kmmmjllaܜ,__o6l4vX9R XZ}}ua8p@EEE:y7'vvv S_zdl6푹Xy{{S0n[_{b|Fm$8,=CJHH{8OEGOl_}*! >"w뮻B]wuYfQYfqqfQ8 8D܉͛G!̛7O^^^0tS'_~9^pp"##)HSJNN{/x{{+++B@?ʒ7 jȐ!6l~6l0 2BFJJ Eރ G .0@.\( A_>}:2}tS@2 А!C8222(^Lp'~~~Z``Q@6l.R K/ql@2d( " /"w,X@`_CԩS)8SjС`_Æ S@@袋(Lp'?>3|R} :T&M`&M}vG 7ax& eeeQpPYYYJ!Chĉĉ`{aaa|||F!{5͘f͛7B7of3 FHHL袋B!&/// ˋ3}tgɐ!CtuQp]w.$$Dcǎ$Ǝ} ''P AYfQཛN B5l0 A8?fYGdF͆@)JNyx(22BΝdٳ)8ٳgd2Q6lΝK!I͝;l6+55BJMM>uNd2)&&Boܹ2G8{3g'7gv$`9B9r)Q=VЕW^I!E\yl L )___EGGk޽% .F]vJKKIA|YXX~򓟨\HDD8' t<<_|Q^z)W_vKpo>88X'NԚ5kO&-X@jllt_SO=,F[O=[v???]pz75|p~;vL^{:v:*""B/֞={X>|٣ŋ+""Tbb^z%M8+5[TVV&Jpv!!!K  Qkk~jǎjhhpե{N֭c|[N=o!7TTTW4UWWkUaaZ[[8H{ڽ{7?EEEiݺ{IQyyy)))IWرcr6s-\P!8C/hРA\O~;:u` >\+V5\ uiɒ%:v` #HMMG}nItlM&1B+WԬYŋ'0l6+$$+ 4|}GX,:Oo͛7FHH6oެp QF7Pbb"Wii޼y*..VGG3 mݦ{^bbݫnq׿U\r W رC?U^^^@pp&O &p 8|˕pyAAA~???"nB]w}Yn+..N~nEDDnSzW4~xfسgn&jN ѥ^_~Y4_ڪoY'8?O @??_Dn@``o*22,8qB^{ <(-]TvbEFFj׮]Zt$^Zcƌa裼<-\Pv0l0]~z5h f mݦwyG'Ot`24|p=3ꪫ%dcǎ0{7xC vV__yijnnf~v?OOL&fݧShllbaG )uuu1􃮮.H~7,lذlذ1$VkM@mmm$0 :Nhjjvqɓ'23ѻkm ƍhƍ6^TUU3rYX,:q8q¦,k۶mvm6;^ֺu!`ݺuv I%%%v`5֦Q---6bN:]v1SЮ]t) mmm[Nmmm$i޽<:uJ===6c]bѾ}1l`߾}6nڰa3 lذAOv p5.Tf>|Y>f uuuzw9wU]]02 y$UTT0s8Zj`XT[[k3_9n:uww;_bf\CN>Vfsj-:uJwf&8w Z[[sn:w=MٳN'O,ɓnjpA7ndF8 7nTCCIڼy33 jjjQhԤRfoQZZ/P__{[{v=@ooz-fo[ou$UTT08Zob[[gS__/zɓھ};3 7ؾ}{8u֩$18ٯjkkc6>}u@CCrssi 77_Ң3|೔vmpIYVfIV_`Xό )??_7p)mڴ@ҦMt)8^$8q` MMM:z(pkGUSS:mٲ-[}@oo~mf~mO:t.]ҥK5tP #GԤIy[4iF 44T< gyFRRR4~xfIǏWJJk0=s6_s),,u@jj233i 33S2|g}VF foѣG3I2E"""m65 }O5553f ?aԨQ3fkt"##c%%%1|R]r%v?%qƱp4n8DEE)''G(g\SLQuusv&L9ׄ ]v)..UTThҤI:~su&Oyɓ\EGG3Ǐkĉrd%\@EGGK.dr@ll٣f>UYYɤӧ`#>}ͻ6i޽~1N]t***ᡙ3g`caaa9s<\ bf&edd Чϟ@? 5p#F@EG'|///x,@x}w >>^g&gmmmJOOWyyyu|||t뭷0@u뭷ǧ: *,,3iooWzz=jnvnvڿb:;;2u E |}}h" 4~$w}Qddd(//ƌ'b'xBԾ}. /2dz)* yꩧ4dȐ3]veT re)!!@HH/_NpA˗/WHH@rrMFpAӦMSrrСC~kСRRR4i$* 4iRRR> ZbU XB2*.b?! ?bjuee4sL*fSүTRR!ChܸqTEO?%},H2e Eh:qkj˖-_,8#G*++߿$)))IvRhh(IkҤI*--(++Ӝ9sEpB]]]3gʾc0 CUW]%0"N0 ]uUڿq3}pwwvءŋSIŋcuwwxJrhTWSSӷo M?,~;YI֦MAp0+tg$}~6 ݻwߟ0t+??>\PaafϞ-J@VUgVaa99^ٳGwq`qڳgz{{c13@04uTf~O_Tssy}yIP^^㕖LO֮]_jhh8q7~Utt6nܨ1c0#Y^^fϞ}֏-HR||vءf;%\>.I {nffX,u!|>[͝;1ժs窤ff.\L`C .<伟8SBPss.2f >z衇C66 եEEEqp}ꫯ'Pcc?nH2e 39u |~I֭[LpJKK5}tUVVk5HҨQŢ'خ_HIIf̘.foե3fq ahkd kFң?{e{rrr/_Igg9뢋.b?Ozgߙ& +3g2ꦛnR]]]~~ҧnٲE<m9rDCIJNN|P۩ɓuȑ$)##Cw?Wm/V~~,Cx<V>{СC:4tww+''GwqW-qQww~{ B@YYL&\ړO>^xA---Z<HPPPp\Ά ԩSz&QvvƌÕpyyy3g59TÇ+''G111\1WUU)Sرc.Hѣ֦'^#HW\qV+W)YV]q***rWNoTnnz{{9SgJNǏWGG.R$W_}U6HRGG奨(%\ 8g;vвeTTTj  2Daaau]w)44+pFzkNOvեg<<<=9s<<Q-[Gnq[/2 Ӝ9st})**Puu~ieggNŭ &4b-YDW_}<==fZK+V'|j[.( @x@ 9z|ImٲE555jmmu"22R111i(:;;fTUUN8AQ_4i~_jԨQ@qq~i׮]U[[E!pEDD;-"M/^xԨl糭333#0 ?X=[g[|ͺ;zbџg.5/|pzz|AM:ܹS˖-SaaKnKpbm=pBu]6lE>8yy^%϶NLLԃ>3f0^{Zlfk^1 ל9stR3˕ZۚઅZd*V֯_+Vܭ%϶1c~_(>>p+zꩧ{5/=EFF*::Z?ϔ\Vgg֮]g}VǏgk^OФI#0Q\\{LvRMM [p&ኌwܡ[oU~~~Sioow։'ؚsYYYzꩧ(_gk^*66V{Uxx8jkkuEb88vqUUU{(w=B` a(''Geee*++SNN`KZx1/^j A8p@xBq8qvM!8/Xڲe 0l٢ÇS:1cj0Ǝ< AV^^իWSn*//t_FB0`VU\\L1TTThժUYj***(DjРA@Pzz:@?N!` 1Byyy ESSƌO>b@vz! tਊuV fn~t 8.-q/8r]B賵k8 WKNJJJRaa|}})s٩tR :p.e(sl2~g6|ps\0Ԥ ;vb`䡇jUvv(TWWl%TVV{=ܣJ A+`g~ pAպ뮻(3뮻8Wo>o> Fx p\0oqt⊋}v s۷og:p| /)2  ~( .@ W:tŠwQQQ^xBn^:pG***` uvv*--?J=pCO>$[㕗S M477k̘1lN7CܝjՆ 8.puuuڰaOXd %K?aھ};\\yyoq ?~w]w|پ}TPP@!TPP ėL2E;wtュM:~JKKUXX2:uJ+WԸq@ŋkСJLLTzz8e]NQ/J/:t萶o߮iӦ٩*UUUTEEE*--Ummޮ.uvvEmmm_9shzŏ#}ݧ5k֨K_p%%%)--MIIIQLL펹}v|7g;.[ժTYYT%&&*66VQQQvp/8+fY_ukZѱct1/ BB@@T >\ÇWDD<==Fo~bp6j(u3 C555TEE>>_ REEuaImmmjkkSWW:::ԤS``Fk*:: ǎ?,KAAA4h|||/)11Q#GԨQ|stuu)--M\8 jԩJNN֑#GdX֦VuwwSMMMX;v /QPP|}}l6+99Yڻw:;;)f7NWSN .̍l q 3`CE۶mӄ f Gk֬ф m6BBB4yd+2M7ݤ>@ 8mܸQΦ g);;[ڸq#?@pnCMG?nݪSNQOOO/.R nv;~w Ӝ9skРAn]u]V]]@\/뢋.rݻW7|Ev ۱ȑ#zjZTT P 0Xgg 4c =#uﱷW)p|n|IM6Mg8VZZ^u:kUTTf&l577+77W'O֪UuZJ'OVnn.?@@_81 `cE[nꫯ:{W5~xmݺ 'W_Ր!C>}Z7xrssui&p2pa2xc@Y~oL&p:6lMos#"" @٣թSHKKcVg111ןƸq;ESiVd2˗/g6N?ѱcGPcڴiFvvSѣF޽y_4-ڔ)SkŋF׮]zwޱ }RQQa<󆇇OFV0`QQQ nFm}yfqƼOiҭiӦ癹-(//&+۷7-Zd-++˸y43c[ANNm/tWF,^{5fj+:uE?ެY3cn5cѼwiҟ9rQ_կ_ߘ3ggÇ]ߧ.]5h@W ( (!!Ayyyz\@@&OI&) BLƍ)L L&,XoCZd.jڴiL?˗k׮Z=c0`}꣏>dݟ駟I&7hʕƱ[vӧj4jO8/vm]S<S+WTӦM)[JII%IY'NŋեK+VP \'-=szy#(--UϞ=UUUԩE?z(ӎ;TV- .\ ͜d QFFW׼ysnZ[V6mԲeKկ__ RPP<==|?L9rJ;uC죗Eåm۶MzRee%lVllݻ[pEEE:p{Ԧ=uT oz)n&uwnSXX]\{շ~oV[lQ~~^m۶JJJnD111:|0i„ zլY3Ί ݻW6lЪUsNUUUY,lڴIzb@]V &MhҤI?~j׮ty^Z+Wڵkk:pV4֭ުe˖Q\]@@NI&]V]ii֬Y>L+VPqq5?^z:|pK銎97pl\Ō=Z+VА!C2H=Z>TVVcǎ]0onݺ18֭m۶bW|_Ұajϝ;y飏>RZZ/Z\Q.77W͛7Wnn.+">>^ׯWΝnգG/Q߾}U^^ UTTC˖-G㣲2m޼bW)Ə.\_EEEz(𣼼<5o\/^ 8_|QSNٌ34m4 SvɤٳgkҤI@\tI7VAApsy 'w}u }G! yg/S-##Cm۶ؕ6 lz饗(iժn +Πk׮ڸq(ۼyC!pdkVrrC󉌌NnCN`֬YL,OE`j믹-RӦM98ڵkg`߿? L>>/RT~[nC۷N`\OTڵ:\EEerssK.]iyyy:s233ui:uJ'OT~~>Bp=:tJӦM/Z~Tpp$)$$wE߿_IIIWZjjnvdTRR-[hݺu믕BQ%==]ZPYYYZf>mٲEFp`˓̇1R>y?ӧ)o`汣h&mW_Uff>SEFFRcb`=뮻t}jӦ E!8>6fs=:pz-ծ]m۶lS'Nԁ4tPC~8lI&Zj.\@ˋbjĈ`v֮];ڵK'68!88Xk֬}GmVCƌC-|ᇺ; p> 4VB… լY3,I&THH/^,___N:v9sq! ; ŋ)880Էo_m޼\z(8o&ۛ[.E'ɓ'Ps 6Dy *|}}OP3硇Rhh(ׯN:L@@&MD<2r'Aڵ)8ziw}T)8ܞtxyyyjӦ7n0EDD(,,L7VF6l͛Gp7>>>СbbbԶm[EFFuj֬<=));}f@WKHԩEFF2Q TUUEpv^z)!!Aݺu?DΝg.4d 6Lc\U޽ ΨYf{4rHd21,&&Ʃ߭@HHnv}޽;>m[GyDF7Pc Tqq1+[wy򗿨SNTe'POOoip+zyyiĉ:z1y`\jժOSLQDD`u<߸D2d̙VZ16ԇ"""d}WLkҤ m6'TjjnVF .6lկ_?FY+99d2s髯RzqqC^^^z4fF9;xbۗQp̉I++u7|.]0i!˙`)^^^Zxz]oA3WVVFOǏgDBQQbbb[o1N… _|ԟ4enݚ KhӦ1N[oۛQp:999ѷo_ߟpJSO1zNرcر 8ǏkɌӪɓ'vr;@;wN+33SM6e:FpjtK9v@uԩSN/%%P7t9;xF UUUСC֭#UXXHV&IqqqS۱cM@XXBBB9g@unΝhҤ Ԋ~@u4nܘpj{QEE:4h8%æÃpjׯ'N]@հeN:ڸqM@qq1@ppF)egg+11p=Ο?8Lխ[ tUzM`.|||4~x%''kݺu2dL&SIa_Ξ=k̙/TYYI-ΝSz1r͜9S ,pkB@)))iٲ{=9rD_M Eƍ5gTZhҤΝCO 99Qp-Z󕜜!C8v$Zj~Pڵyf=ڷo{cR޽g}NJp I6l`ܖl=ܣCi6$uAIII4iV\d2ٳ\W_SFF_. ڵkiСC)S$-[g|||4c رCQQQV{?^>>>6T/f͚ X(((0[/mۦ͛F8 ҥ٣AFXrS;{ ѪUd29wƍU^z%-YƗ7{g>Szj+$$亟n,00PgϞT 0@ηp%Z^e5kaW˖-w)<xѓ\%$$(//yVJKKh"z%Ky$}G5зo_}GtI;F>}Z԰aCzt7ܹsڽ{sH҇~HPCڵk?'^SNחեK$]v G֭sI׎;9j\:|/gvݹsKPCjҬY~{fG9skX-ܢo_wC㣓'O*44թS'_())ѻK`qqqٳI;w5,`ĉ?2rȟ1k0 z Ԙ1c#jժU0bĈ+wO}w5dui^hժLB`&IC 䠇fx %''kҿImX6m4osP}$ 6֭E]/mꫯR˖-6غw۷3@ʬn6_^!!!TRPP`>U;w`={f3=zԲ'zꩧ,رcdw=cTb9sG83gŋ5?cIرCj&Lj$vYpw7ߤ8a{ 6ˋJ$4iDK,alذAEEEyO˗/Wz"NfW~d2i޼y8*ZࡇNpBvҙ3g"##S=Ԃ ~~ K۷oW\\ ),,Lyyy׾3d @TT'OOOJHH֭[\0LzwpbIII7}JHHr83g/CkVZZ6lHpRTQQqm+'Ndɽ: @@@;P*:uZl_/V~a&s ?S9TJJbccUYY?#G2&O/qNl믯sWjJiii2LT'TVVX^g;'_dEGGS=PFFURRrM?o0&؄ y DpR$ 0N8G}ڏ3KR\\TVVj̘1˫~W-"Nz}2T'S^QQQT'r%q*++ШQ#* 0 CƍSZZZD5p?_y8[ꩧspYYY;T^^n plEEEӧO[9ͅTe?*11Ѣk.((8g}V˗//]Dup@׫j6;w `VX[͇8^wu***RSS4"%%ETQQU_d2|Su(++KݺuSVV_lOSNO>6%,I֭ѣ> Y*W^$йsB`'6lUYYiaر>vҢE ծ]&+|s=T;֭ӕb1I2$l6ȑ#j֬ թS'Yb}|@3$͛7Ϫ&**Jo՞9ФIQy,66VǎpY&M&*)..'OjܹTO>D^^^}ޟl߾}0a_ T_XXjժ 6X7J8nݺoՉ',|82OOOڵKTp (77eoTTTh|,ѴiSEW\-у:t={(==F.Ѯ]MpYYYR^^u?j?PRRQFE儇k5zPzz>ApcIDAT ` IK.kFp&I{mڴIݻwW-<v,OOO_BW9 ԩ 6p @yy:v?z/+##`gj;#d Iϟui*%$$hرzLhmٲEuԡu 7~ e)))ׯEI _z4e۬\u)88NJKKǏ[wD|׼,[3f̰ e111ZnBCC젪J:uҾ}pYRRlz;0͚9smW.k޼֭[-[AnݴsN۬\v1Cv0i$ۯ\UV馛n' lR[ŋ߿VZEO`CzGp̙'#Hnn4i_ͪ퀯aZz ԯ_j߰TRSSm!g߮bz뮻~69sZd5jD`EeeejԨ.\`vܩ.]hϞ= V[o_7kO?n_|.~nzA/`aEEE VYYWkaÆq7AOqqq?Q6믿Vǎ1$effgϞz7),(!!'vs~ܹscX@NNիA:t萂1,$((Hyyye3f`ZhqڵkcKXXV7p=zhĈV߇&L&͚5Jxz+ p`24}tz+2͎;3* 8F?w9  RΝ,''qii >>^7t= >}1I l0 %%%]#Gp_l ==]mڴ #<۷'K l￷5jOnHkժUƍ'(--;e˖ٳ',]_ye2 l/l1@٬L5nܘ6oެ>}w{L?_ܖ1j(zʕ+L&zTUUlt@||vAo`ر*++0rHz4ioN6  7˗kƍ369P~}9s`e/^Tt9|Lĉ:,׏>S-Z~&9-Z3XIFF:w\:<=[n:x5?B#Goйsgz+_zՏ ykM`̙xbyzzSXȳ>W^yfs570<< ԤIotkn(2 u]wiʕy>-[cЙ3g4l0%&&Z9z`z5j`ΝҥE'@z`x nS]V=PNzj}ݧe˖Y5X_^VX\tI> Ǐ[z*֬Y|PYYY6{MҫL9RC oPYYI3Ś6m"##tRlUJ}yeffu[pz вeWq7|iӦi],J˖-ӬYsNFRZZkJKKsm5I2~~~˓'N>?PΜ9l IIIIСR І jŊ*//w;w$\Fvv>S͝;WNfk]-VTT jjҤ|Imw1rNL6lŋ~$%''+::p:u/xbF4mԥ&`ɒ%$S#TJJMC7xp.69 Ptq5jԈQpxw 8 @YY~mF)ԪUKZr3|MF2ڵ#X¥KO3Nn Xʂ 0 /Qee%# @p I:u*# ڶmfM&^Z bVXXY0tɓ.j޼Kٞ/#F(//pH͚5#Xþ}4tP1Km۶[oUYY# @p Ik׮ȑ#UPPh8 W_}>}paaa[HJJR׮]Ĩ]Æ -X`l@cƌѣ؍+0;.^X7x֬Y؅+0;FfggkȐ!9r222jԨ.]'Tnn.#`{+++ٳպuk͙3GLUENN{1EDDhʔ):s # .\_~Y͛7ןg0RBpT%%%zt7*66VoK޿ 7$%%W&M4tP}'rpԩrddCժUKz5|p5mڔ &[nUBBtArﯛnIpO>0`HF;nիW/u] j߾L&{޽t颸8R ܉lV6mԩS'uIqqqvɳDΝ;խ[7~]DDڷo( 4H}(֮]>qeff*33Sk֬Q^^\+ހLZG@@EqEE?`;~8׆su:tkATVV*==;9~JKK 6\@jjKJ(;wp***(͛7p )w&UUUQpr[nusVr%Nnݺu.o+qF;g}F@\p"۸qN:E+N,Xgd͖Wn]PpBjذK+IpNo+:u(8"5o\Νsd233)8sO Kaaf͚J ~s);;Dp%XѣG)8 =$RRR(8Ѿ}j5k2)//Okצࠖ.]QF0k:d Ё(8T;& 1;wN#Fp۷l̙3gԧOeddm <ֵ}v$;;[}աCܺh\S 6LvZp***S5k֨K.LٶmE;1 C/ /Rq lٲ"=zT=֭[G1~sl[999 `3gO" +8`Z~=X~O2﫯`E[nU޽տ%&&R)++K&bTVVjz79Op\~zI!N:?P|N\_5p]}]3*))ш#xt_B4a\'GTnn.~ܹseӛ7oz行 D=쳺Ԯ];[ 7s?O8___=쳚 +ӧyڼy6mڤ͛7+33Z[=@kjwѩS'M?h5o\-ZPfԬY3+ @jպ$)??_.]R~~~effѣ:z;'O®秴45nܘN:yZnRرc5o< ?Yl6kر#ŀ9z"##U^^N1poR*=n^`+poK,ѭJ!6:(UVVR ྚ6mp`aÆ髯68qB/[Xd ?X.TbbnFagad2Q+((( 7ܠ,VIЄ TUUE1<7NƍꍝP}ӧOgGߧ4+wyǀ}TUUƍ7xLa,dϞ='sZVZQ w}||+G@ s:|0@p.PcƌQ6y_LTRRI&iРAΦX顇b޳4+W^y5cɲP/hqV^^^ڽ{7 r3F-F~[ 6Wnݺb"p ڵkj׮M1,T~VXq]ٳ5vX YYY֭gâ8nСCz(jذa=KŋukȠR!C0<$=O8Pu҅bX@NN -[X=>@ڵܾEEE0`ˀUp2ms6Y ;vhӦ)""Xh[׸8p [5EW 7N<,~g4l&}ջwocϞ=nW㜜k׮_i-::g6d=8x[Fdd$SFV>|QQQ~>ni78qx˖-Fƍy4ۄ ٯ0}m<Ç]"J/h4[ӧ3|[nq~3ȑ#Γ'O{H#hh3f`'N:tpKHH0.\h8M}3fi͞m?ڴiQ^=úu?ß0dYfhd2f͚ٳ]Xt||1{lرcQגc޼yFll,7FsOUUUny;t>ܹꫯIIIFeeM뚞nL6ͨ_>/ww߭>m.GQF)%%544T{V>}ԳgOEFFb_QQ]viŊZrRSSyC!п} v4i$e?{{{]vVTTZj (,,L 6ϯ>WڡCo>۷O*)) ̚7o/R;vt};|A-[UQQAq@\z-7ei͚5u:pSfJ?^{.^1chСL8FְaCcNwyy1{lN:#Fc4ѣGOvÆ Fv7F,~ڸxCN_ѳgOFh4k`c̙F~~CܹoҥF\\}CѸ` {]v6}L͟?_ב#G WEw޺;5tP[5Ξ=իW_l" 8dRLL uA׿ ǎڴi6lؠP`Y4lP111jѢBBBuWEEE*--U^^t)770BہnIENDB`phatch-0.2.7/data/masks/13_pointed_round_inverted.png0000644000000000000000000003645111346363116022553 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME &g8r IDATxwx쐝 aC!*(jVe]O*.PԢ "(D YBX!{Aus~]sy }>8IP /ԅ^!Cϯ]Ԥ;v05;WݺuSll5sLM2Ez:ݻWiiiڴiti4\W03F?5l0YV6… ~Qm2˗fc\s5Fttˍj5;j,]HNNfE([llٜ:uʘ6mӫW/c޼yFUUǦXaSСC'O(##Ø8qock9wf{/Kptw6Əo8Ø:uq){5"""ca4^{5lݺ;vѽ{wcƁj\> Qغz6>#Ùٳǘ4iÜ,cL:8rӎW_}eݛA6 hon\;0Mw,HNN6.#??%#;;HIIwa7W^yESLqܬwyG-RVV UWWSQQQܹsuå"77WǏ׉'áᄅG/KϢ^֭+,UTTDMMMbQxxnI\sucW_+ԩSooovmF?P6mҚ5kjԨA?c+00P>>>񑿿5uTM4I?6oެٳg0@aܸqڼy, aQSSӧOӪRii秀*22R~~~Vbbb=#Z`*++ tLiZnZZZg%8p=ajoKiӦi„ SҥKE0=7IlZf ܹSZTT> 200 \t€iq9s}XrJ%$$LC0!ChŊZp<g}+@[7?/~  >>>[Bpx˖-SRRAt8>|x )ڸqjkk ?W^Zz5;8+RW]u}["(@'Pdd$a\ 𿼼t5ꫯ& 8%www^Z={$ Pknj0bbbK/S$@th! 8DY,ܹS \S^n:<.Ӊ'&Ae_~cj}Ǫ#t:@Ӛ5ku?}Y,zw4i$yyyXKHHoÇ\^KKN͛7V༟x4viݺu5k7IJMMUZZ@?PO8p@555 _XXj^Z~~~q)!!A_|*++ -Q||.\iӦFYYY1c>̽@c j*у@sܬ7Zr C'twԩS86ٳgk͚5JMM%zo]aĉV`QQQ˗@{vNnnPlC60aa lܸQ7| `N111ZlƍG`CiiiGs;C#G~믿@08JMM% t͚5`\A=z+:矯ŋsu p@Ӝ9s:IRR{nH;q4{l꫄]`֬YZv-7 tTر466jĈꫯ8l2vЅ<==[o)**0(oQ)))]o߾={ q_?Dss +~?~i+1p@N6JMM՞={ <@`R_Y`RRRt!Y,2dG΅^Ln<-VlGںu LLC Qvv6a`/88Xz" m <A̚5KV+7 @h+TDDAP:{7nAr@ @[n$>>(J`Xt }t8A) (޽{8nݺח (뫄O8ݻ} >?5x`ŕ>JW^8KhdBJ.Y, 0 AEDDӓ (ߟvML(hs#FMsLFa IMM%ppSPPAPWSL!ppݻwAP&$$D#F p=z  @rHpcǎ% @$%%8.u~3'1bC&M"pٕpv!p"gϖ;AP~'f̘hxN&$$DqqqAaC aԼyKfd?P#G$ pB۷;FG\\;pb  ˹?8\wye ٓ?A<3\O? ЧO]veF֘1c\>> **JiiiJNN7\H~~FV\fΜ\m~qd}W7\PKK*?0777+ѣx{{k̙|/ jհaôuVyzz2Qmm.ٳV _8GZ~X+ ڶmz(N3f]`0=3蠘=S 5wХ^ӧ3j̙35qDyxxqmz %%E{#kС0 @pp|Ivؘ}Y/gɓ'*Zx1-mR;<}Ә1clX> 0<<\~RRRرc;v vgϞ$ݻwC @?@'=FСCX,0 _ժYfY,]s5vDFFjǎa$d9995j :w <>9Fe[_O&`\>Tۥ444E\=ۭXV 6`/ٳK0 C---8^/W*8@ߒJS<==A F v`Z)t<<<xxxj2rؠ8L׋`Э[7F W+68`̘16 ((HÆ cчj{yS1l` 6 ?#  99F,]<==u2Zؐ=έiפI)lhΜ96=+3fBCCY,.rF Rxx9 @ddNF ;5kW`zM6)~`'ի @||nF;;k`Z5e02kr`G?/[fJmٲE]0zh1*t7x'$$h…GW^ye/ lwpssUW]e#tv+WÃyxx0 mٲEMMM@뮻oW#_' I{?Рoe˖N_W~~nd|/ڵk)dRSSgϞHR^^7wZ8mܸbΜ9zwU__ovƛִiTUU#?>ο $edd誫a0cݺuZd*++;v)**Ryy&MHoYYY5k;9;>Hf.QÇ;yF t 7FuȑN^kW٣Gj:޽[VRccc?wFTT>3Ջp96l8%o7;pI=233]٣;w2 .L˖-뒥SyK?rrr5X:cǎiKƍL?03~_+77_ addd(;;YpjgΜѮ]LZLQ裏23N駟.ٳ:$ooof鴶*%%EGegҪUTPP`cPWWE1CN駟Vuu5?~\ S0ͱS"_p*+V0 @mm^z%f jjj,f iTWW^7+CqFQΦD~)3֮]kMWff )ݻהju1f 577V۷oii, :s 33SZ?~phf=oP^^#G0ssa+gM[$qQUEE3ZZZ(&P줹phfޗ3spjۛ84 bj &&84OOO cgtMCkbZ=(ӓCקO 򒯯/3 $777 @[u֍Ypx  !!4S8P  ))Yp f=mзo_f )QW S 78޽{SwN\ bQpp03My% , 3L@,8S` zdח---S1m+1]hmmeTNЖ-P^^.0(m)SSee%l*++Ì8L566RڲsNf )MhJ1s-33SUUU*..֊+9瘝VZl3VXa{H_Gu)襗^b /`- D>|X$hnnV~tQV#//O/23 P^}U_fIӧ:$o._kk﯌ SNUssso0aٲe54 $%''k߾}ffLA Rff_C|ء^CHRtto߾8@;x&M0K[$o߾/t 6LGqw9znfK]s5OqVKGf:#vNBCCuy饗^RLL pVկ~?X%%%N>|#&&FǏדO>f7{裏jVKKS_(߈?Acƌat=Zbۥ 7/XsNbZ[[e=:|rrrRdoaaa޽ٳgK.pBڴi-ZÇ)O~kL8߯+WO>QQQJJJTSSC8ݻ+88Xɚ1c&Nݻa:t{=}G*,,TYYN>M8Pxx4rHg?ѣeZ @aaVX5k(//ON}$Ts=9r$9rD .TzzJJJTXXr'QL$88Xku=( PF /hڵWqq1PMqqq5j}QՋPvڥ_Pnn ]DGG .s=ljp}VVVJKK [,cחP'>}:| ԫW/KKKAAn6}***" ޽&O_~xb=#& [˗/װaK*..ٳk.UTTHg$=H 0 >}Z֭SPPRSS Ky5c ݻW  ̙3K/qGA./̵jذa裏ԭ[74k,@($ժCjӦME)..֤It!555[ 4PPP.HG! ~t@, 0@7oVHHphyyy⋕I_[nU`` pHN%\Ǐ qڹ C骫RKK p8%%%8q"; Ukku 7R[[ &ѣabZZZ˱c3 C3fJ ˵pB}͛4.s k.SZ~nFbZuWw% SVV#FpҟaSꫵsNpDX Pmm-a0_]2 YTVVRSL! ]^sQ~~>a{jnnֻᆱl?ĉA@gNT~~y577e޽e @?>t͟? tB}A@Wؽ{NSUNU^^4+ tg}OtlKSwyo577_'bÆ ! //O۶m#v`UVVfp=***t1L߯:`7K,Qnn.AP`&999Zt)A˗ (0F+.?<3 X` 3*,,_`Sڲe AP`f[l9Ԇ 8ʕ+ <䓪" ̬N?sNsrprZhh 6hƍjmm% '!1dm߾]UWW+55UG% V,<ӧhԩw!"Z[[U\\2M8@|ǭު׫0(p6 ȐFI $I=,Yj Yiǎjnnرc pq=}YήV{Qqq&OL 7o-Z3g *)S^7.Q7|>CUVVCZz pr'Nu566 2@ԤK./L {W5~x߿?XkРA?xDvvΝ/@̙3cLJ@UWW?OzK ݕ|PgϖjE:z:G*//O*..=CBBKJNN"ZZZTTTQeee$(**J!!! UDD7ԟgeee Νt=[oGjڵK~uiԨVeeejiiicyzz_ݺuS``bbb4a?^C ;vL۶m UUUAMMMUUUwwwK^^^V@@5bM>>-ܢ_箩і-[[o髯ҙ3gt޵,$$DAAAٳnFM:U!!!Lp)\RVRIIjjjTZZzNŰ-u릐(..NӦMɓ﹢B ,Лo|3@myzz*""B{wܡ+KJOOʕ+gᡈ馛nܹs;٣^۶mSYY ;VXM2ESLQJJ,͟No/^l竹 :gU ""Bqqq8q.R rjkk5w\}'*..&$=H m577Hk֬FE(mtAMZjt0 qZb+..N/ yO 1c6oR:*D***i&UTT/vSPP'j֭\l4f;syf͝;WǏg@*a >\[lqڪ?3g;.L/|||LZ;ٳgc3̽}1,YbfSSSc71bbb/66Q6cƺuLojj2}YW^;c@H͞=[wu;`[NgPCճgO͚5KW^ybbb\999zb >> |||.Y,o(ajiiQ}}UWWJ"?Yx=sIENDB`phatch-0.2.7/data/masks/14_pointed_blades.png0000644000000000000000000005154411346363116020757 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME +VP IDATxwXW{aD@Dv+j, `Ckk55cb;*D@ȧebvfsvϳϙ9888࣏>ܐ,?? HTܸqMP>sUoT+Wfܸq pPk.UiRWRRחM|^Gll,,,,ZyyyuVH"zaj7oƤIX"bΈ̜9gX "裏42yX b wޅR+W2DtM?( ѣN @+GHHt"!%%Z{вeKܿ @ Bv:#oCCC6"֭҅[doDLH|||t?Æ c# 1CCCDg34k 111l"VH7n*T[z"-S2mSHNNiQÆ ,XSLa1 =z@pp0|||`jjڟ{Ξ=gȑ#p@ _`eҤI8x :Ć!>F7'''UDDD+j*J__TvAܽ{WeiiɶM;Ms[͚5Uj߿Z`N:w彩f͚5lnܘpfllr"W) ƺJFܸ1&-88XELLjĈ*Ƽ[fܻwOennvMo$O4:u`ոqƌ[J;Z*fϞF" &ՃWzuOy&Ǯ-&L1 i۶N5kʕ+֭-j׮-S*Xl  Eݺuu `?Ѹqc6ۨ$|||0|p6 ;;;AG۶mqY,[ 666l) ԪUKǺpBX[[шiU*7n_`^1 -͛7O$ 8pt"c;y$FXٶOǎEnQQpY ݺu7nBXXvލ<~Hnj~WfΜR*lqƩ… \-*$$D&$$ xqB@4mڴIJddI&k%K>jΜ9og2ō 7l ,͠Z`D6saQ&jwmΪ2r\JMۈ#D7ƪ|}}e>III*:u*cEn>dz֭[rp),,T}w*###ɶJTֲ~`-~f1M}[ʕE=\tIU^=&gh"پڶmzZell-> H= 1j(ɵMÆ E~!d޽{պC:u0yd~hҘӧOMMMrJر+VL4h@`ll9sP?XXXC z @``Nݷo_~p1 R={HիgϢW^=FINH Qgoݺ5H= JyZXX`Ν;wVmKaÆ044l{ wwwQB5kt:}b@T~ǹsdq f5hKYIrgΜ)sF.]t~Lݻeu]t3gPn]&Zԯ_?Aż4jժ81JL ` <<ڵ4nXhzzcƍP`=?+X"<Ç|`C QѲeKA? PXn͛E\\\49!R*:uhqƂ\Ph 1 &5c l߾&&&Z߷\16n(Ȼ37o-&DqY<<g̘::nbXpd*W0hѢԿjȑZW6m0{lI?b@VGJb J *7X+++Ԯ]{ɀ`iia֭g@LѣG|2QB8x Zn]o֬/SSS 2Dzzظq#$3N0 ҈C1`nnm۶ٲLѣ5ӧOC֖ >|A( * 44;v|gCcQ֭1gIK* b@sI> LMMgt?@i `ccIr%b@s;v(޽ݺu׿UZb077W) lܸUVdx"4@aΝի+333SŀSNdUbEv&DL۶mC߾}瑩5ZjsJ:Vbz!1 z*r&!!!`6mZ_TnݪG8 `@* Ga IT"$$\ZU(X~=$'u^/AL^W ؽ{VV?ݻwE8Hc,z*{{{o߾ԿײeK|ײ&DCDEE1uX"~gY%Z(dՃ3lmmaoo;;;&&&000@~~~T*ӧӧO )) =Brr2d5 @V ~* [βQ QH |||___ZcCBBn߾szzO>z֭[~)z)ENСѻwoA]񚖖۷o눊Bdd$CI~<~6ukWT|Y۶mq-[˗/ǸqQX.]`Μ9mhڴ+Q/(DGG2 !69998y;rCn:u=zwpp?,*a -*TҥK1|pQ:v`ׯ… 8u"""#>ATXtJ+WfHRd9`iicǎC皖DDDԩS8w={&K$;{kwaҤI֭[bV(p2+|2'Oݻj$~"U_~ؾ}@d@e;:6mc֭HLLDll,-[޽{JǧRI:Xza͚5 1ӧv7nv܉T9s_5ڵk###ѣG(o~WO&)J*!%% -_B8q9#G7odI'ׯ/ `0)i]u_Jܹ3:w HII}~:tH#޽{pttdօa"YMp/?[[[O߿cƌZi@jdllnݺ᧟~½{p9|hԨQ_;,,&"bSSSdffv5/msߏ={ѣ^z}6I$իWZ?ÇzjtرWBBH""&/յ#FCp},[ {{uDDLf(((`Hʕ1n8;v o 4OH&w}ݻ-/UVɓqic\@ 02L?g@`WiӦ!22m阐 FLJ%::ׯg Tڵ1g$&&Ύ!1N0/iii333HǞ? 0$?=&ҲuVDDo)iR=g@S_>j׮ WWW"==iii8s ^B&b޽{011;2аaCt;v7_\RIYo3l0@Dmڴ%yn0`>lٲԿ^zѣG;w=vlذ=ADR\K,bŊ2 ?L?ƶm"Hi Aظq#n޼>H-wÆ h"łS`hhϏ "䄻wÇʢs+b9s "_KΝ8idRI& 8~8֭`ls~[OÇܹsQJ֭[puue@RRRбcG$$$0D$[?1mϟǚ5k6 W@ ݻ;")) "~ WWWܹ'7nc~h@\\:w,90"CӬh"\v {8;;3(t 1 ܸq1 u~LL$̙3իED")mmms\FFFLѣ߿? "]X~}8p@RBCC)PDDbJT5k ** ]tlP9%wm۶ Xl BDk0}tL[la H*V(X]~]g&23gr "tT*7oᅦbuq3 ST\(DIIIo}}}ڵkXf d/1& *vuͳĉ'`ݿoYfN:RjժLX tڕk(o7nH Ltڵ+={`%$$2:hYTT+..ӦM)DXXLMM ""KLLD5PTT ߙ3g0tPTɈlƍ(8111E ""RT1b=HRg ""ԵYLDbXlAD#?iQI NNNVARAP0HDDZ.?022*_UիVVV ^Z25U)QjժuVZ]6jժjժ1@DD"RPP$&&@qpp@ڵ:uvڨY&  "" عs&%dhh hԨammI? ?5֭oDD2&MHd]P7oVZ 7{</^,sUf͚' DDoIII^:XCCC4k ^^^٣D.]*_r cǎر#|}}affLDDիKalۣcǎС:v*UQ}*CNСCZeffzx䉤SSSSW^޽;%""ZlV,,,н{wDDqYYYQRSS%X[[gϞӧ:t###D""Ҫ˗by]tA`` zAt&''5j@rr,W':u`̘12d눈HVX!_R=z`ܸqB`o#""AE͚5ٜ+;v,ƏU]VVF+8q"F .""lԮ]ߗy`oo3f 88YDD$h?V0}t?(;rWƆDc]hڴ)VZƍܽ{keyze*(/qiDD$J_~l2UW_~͚5c!""Q; eRUڵksq'""Q1cRUvZ(J""SNGq(huA__=Dm BI*;wFhh(""={W^ Ļ'''\pAy&w\dDD$ ?T=|uAff& 1c""ӧs/i ))Z IDAT ӧ J`+H:3Tmܸi*zzzHII5#DDD:uÇ FI+EEE8}4CDD5g@nݰ~FD'&&g0JS~U""'r/kR FDcǎ8t|Pnݰk.0ZDD$h_>F==VVVTlll`ccJ*Y[[,_o߾(DEEѣ8v[}}}cȑڵ+&"R{ 6labb333J[w `jj ###CTbŊP*077GŊaii ZXX\qJOOǾ}h"\rE 0l0nݺDDT"Nɓ'_&&&066JVVVԩT*ڵ Ǐ%iY2///5 {7=| Dž`nn!C 88l-"""5̄e˖FabbV#""Rh 7xbŊ6lƌkԠw0[s>}?#= cccԮ]""""*W^r=z4Ǝ*U%J!..N L~0~xlْ-JDDTN^֢E L0rDDDҤ`oo`3le""^! &ylm""@O'͛7EBHH[@DD$gϞnuTqaԨQ\2{ɎJB5`ddbhڴ){FDD;6ذa5kVZa(((` ""[z5ȳ:Θ4iF!Cܻw...˓guܹɓ'ZjOq]$oE^^+oc``?FF""۷o~x9&ؼy37n#44*s%""iӦR1e >O#$"" C_;VJUVODD3=_*T ҥ BDD1k,ܺu_)w޽;,Yի3DD$*GkacXx1`>zzz^:A ֭[uT0{lݻ?#&&5kք3._\HRSSѡC @XbEl޼]ve Ұ7nVZP(*A&$$F ރݻw͛7u[ׁ[.Ν;HK ^JŠiɞ={мys:OڷopGEz*T*T*bcciPaa!f͚޽{#33SǤ)ÇcŊ044d ҁx( 44h>,zP(_cƌDD$i.\@>}pVo466Ɔ п ""k?y|ZK{nxyyWdb„ XrS+ @zʹF""wo߾:h.___:u?Iھ}ФIQ OqTX=$0azTƦH_Aˢ;vT}vDD$YWFfD9k$7n6l}}}""tFBvvhC iӰlٲ⇌IɩSШQ#رC碶`ܹX`{INaa!m۶\կ,rw}I&ܾ}Ç%u^,\?IJ!ٳgcԩ%DD$)wQ?ATN/$͚5pwwqy?I1rH>ƍ`k/8q"|}}""<,\ 6_[..^FDa߾}2e T V^D=!Q`РAhժBDD#Fի8p:t@)bbbPZ5FDҥKom63 o??IBFi&cڴibP^W011A||<""Ob͚5Xx1ܹÀ 6?I9&M8l۶ >>>P?M6e!""ٸx",Y/puuUݼy=d)%%+VO?z'""ٲg}۷o#$$^^^H<==DD${8p q9HHHHP9;;剈!99xz ))IZ @zzҒLDDyyyرc~9sF @^^KDDTgϞ;v //O @||FlQ""Rx!/_+WÇ;~+WJ_}?]vP(9~cKe GÆ 1l0 8qrrr} Rr իV$""R/XbÅP5h077g˗b lٲJuؾ}; DDDYYYرcVZ%@qUT%K BR!==BNN?,磨?"gϊoͅ/ڶmMDD%cݺuxރN dff"33HOOG^^={V~7YƦ2'/(JimڴPfRWT*?~ʖZ~1}V4k;v쀡!@sX'"___Z`C˖-ْDDc ~'"ygϞ "@RDTR-ID$`Ù3g VʯsD탋  $" [[[ڵ v =9[HD<ԩ""ڵkP( &׷o_H 2c tHSHII<;DGGի߿?ADħP*>>>18nnnuBDd{ ڵ+[ Am۶jb`Hi&1Lޭsl\~~g[ "4KKKopttd0Ht899Ν;l91113gNy!*W`EEEu`0X7???11ŷ~\TV=DIP`ڵHJJBXX" @ƍ%999oPfM̞=W2 "1344Ν;FiӦl|Xj'|T.H^PF C @F$"lڴ uEpp0߿g@DRC֖c`nn*UH"* v킻;}kd? "puuž}x9&...Ç鉀\vMc"@D$5ؽ{7 [ ڜ:u m۶ENp9X(HOOK h >>>8vkooMD4d,]KPbEQ6)) cǎ٣ODR6vXL>(,dmm-7|E!++""Ґy!##˗/g0PPP5k૯BRR&"" S(Xd ?~۷3 RMlϞ=9s&sL_@__6m³gʀh1EFF]vիT{7ɂ!oߎm2RLJ$5jy!>>R)* 0m۶ϗ/_ƬYOOO|7\LzӔ1CIDAT&$~\Hx Ξ=O>?2`:q@&DDҮ]J©S0qD8::+V@jj*e}9~%@-[` 8;;#11H}}}ѣG{Y&aDvv6+DDT~~~~e0i$ 3gę3gPTTĠjRDeuL4]%qU̟?-[F{۪6j&$ ě.,d^={-zիW"B5[u IަM0tPtIcsطoFcʔ)ߐr9+$eQQQFvv6bccQN]v_HR!** QQQ`hhOOOt:t@-T#M.^tV ##}-'ݶmB:iÉ'_UVTz%Kpiט7oΙJoP߾}s⿫SbbbAH>|Tupp@V ///4il={wނj&aԩgϢy$ur`͚5wqR`kk+v@dyG'Hr?3f19b@ЩS'A'9998qN8Qwk׆ѬY3ԯ__R-_SLe'Y`@R\miΝ;HNN߇gϞDڴi###zJDjzjv~=zRhժALUw5k"""4o\ #GЭ[7<{*%^@LH#8\1 ŢE4UVӔ!GK.x)%%%I<޽aÆuu6o(****'OD.]d:4n666 1 @AAǏk|_OO>A|cO<,W\a ͛7g Ͻ{DyEEE DJJNn:a}NBRRڴi'N ݺuc ͛7Ey܋-BXX˾ũ嶾tt{囒 1 mHKK7 .?q,[ EEE?.]RkO>Lޠqppp` [X<{ C qqqطoNy_AAA_I v@R1ML4 9ŋ3P3JO?ޝDqf,m"A2_{Ua&)#hifT-b i4m`j9P)Pih;_z]xWsϙ{sϽsNRRU^2<:Qݻېŋ\\ViΝ4>>􇠠 (@^@[[ٳGm,@{{;Hh4 ?ڵk@ܨt~䏏-~p-7z1ї/_pQDD(?6gΜ2d2QVV7\O{JKƍIP`Pct::~s#]-준***h" (;B2LcAO)??3<HJOO8SQQ!6;vLTkğ>}Z6o[m9rbbbDQaӦMpRP)//gϊ*tm[Fu P>;.@ӧׯh EGGl]SSSe}j^ڵkpN'MFFFAp횘cǎQDD,VT(jV;޽{]> $U\c#1Lt%^(::Z>tdVfN8A"/. x"]]]NFQtt I/?Z--_ %` @ΝsCBBȈ1'Iw說!Q/~~~Wx"5k#g)lVEW}l2V]]-qrr¸KߟMLLL{p`Y__/2;;;Vle߬Yc/w^~MǏg$7z{{)##C^ctt_{ɒ%K0` BtW[<ٳgVQaWZZ~.x)cǕcM.\Gz$aJIIexWsssW  @ 999ĔJ%c]]]GB1HNNux&&&(''.]JYYYf'zzzСChOaâgT;Kog}}=:k:)$$jjjG j*y2MMM(--+VPLL }*mB[@t޿Onccc#:&&&Hѐҗ/_,?xLެ ~z4bbbX}}=sǸFhh` 4f%%%l-r@@9rsswommEppFFgAtttŋ#Qpi KRdAAAS~SVV-Z|"P R`^JV_x~DXQQ/`0b”J%^RsyJHHD[bbbHѠS,hΜ9B4sLn31, QEE\mYjUWWSP%SUU͝;jm0(?X(>>ުmXZ^^egg[Z!!!***rW^dX UTTŎi0ɉL&:3` z6l@FbǼ>.޽{G[n%lݻwI<X!B1Օp\r81]? iJ2LR8qھ}; $0 4~׆h4҂Y$ }fO>qIɓԩS Fn$DÆ d/^l4hЀ;} `m5RJJn+{ZZ| ԫWOk׮U޽s7nԠATTTD yzzj޼yם%O>7o<==I@{៏{G7aј:uQ]'O&I\MLL֯_/ooj~ii맭[L( Ν;\Tu9 X 驹sx򗤐͙3+44kҤIv{vf/ XH\\eahĈZ|9I(7p@ 4HGQrrΟ?ﶹ Uzz5jUTT?9n֬F0\R6l Kr%{1˿lHHH0vv26md8ZZZv曍D\GX$xA83ڴic^q0.\hM>^uY^}Ukhh`TVV^1.\0Zn1IPbѢEם^zt.G+//7o/QTTt|̟?c gDTTU]ɾ}^zY2M65NqqqUY*++Ç>52ϟS?{m:5zhX *!К5k@Ӵ^0\s=gUk:[ah׮]{gggC GGG25g)))1w^y:t]+Crl5u}ʲr@@RRR[oN:&Mh]_pK|=>>>zl28m6>\@5={m۶ڵs~y僣%&&6ͩ9С]ɽ8v 7k1K.ƍsZ۟{9WrZ&L`噦;v&(K/nR㏍z9}q}kлwoAƿoӵ_&(cSNl7z{dffVqqiӦU^۶m&(:Ѷm[SOleee/lׇ l6cŊ,_ܮxyy3f0Ln ({7o6ڷoo6꫆U+vQǎ%>E%D.>si&#&&'O4͉'{DLL_˺u8 F" (//̾y🵳_~FNN᮲}^O 9aAD: ⡇?Ok->s͚5KO߮iӦ9fWRRwyG֭Spp&L_.s->>n L'%%E$tRőPWӨQ#={V>>>$QRR WT qɫ@8 L 8[0z);;['$?4tP&XV 8?$18 [0???={V$UTT@)xkݺƏ&MHN<:~%˫WFYfY=mڴQxx:v`IRnn̙'O&6m={EWӧOkƍڴiVZ}d;W\᰼˗k.#""4h z۷sYYYPnn.Nzgo;vL+Vвe_ml޼N:%//`}eeejٲΝ;+Ԉ#4dW_:x(/CHcԩFXXi8ep'=iǰ0cԩƊ+j?o8Buyyyn믕$8p4LKKS>}pT4'<<\Fѣe׼|4h :ܤ(LSN߽{h"޽xM7jk3tEcƌQ||tر:D0p[߿_o*xGh7/M>7**Jo߯oVo6%N{ϩEiѢEھ} qã^z:y7jݺZhCGѣ6NC&޽{VFFnݪ_N%)00f2ᕜ Tbb"??~~~JJJR\\Ξ=~-(**J}ՀԼysj cÆ ׯKR999:*++ձcGRI@u9p5<d8ٗS P @(P`Oa # P HTVV# \I @ҨQ#ey{{ [.Ifb͚Mhpe%%%%vFL-@VРA@' \^&MH8he-Z./00$P*BCCIݴmۖ$o(MϞ=Ia *77hpyjҤJJJH+q1ujر$„<% ?a`TVV߯ bl8YFԤI5iDAAA Uhhz쩘&~uemٲE۶mӱcǔg*77WtI>///)""B PմiSl65nXԸqcl6~? K 6d ~Tv 0 ]xQ+I:'Oj޽Pyy94kL/u]w)&&{(--զMd}' (88X۷oy8szSNt;\*4AAA?~˷ p+<PEϻ|{0sI vAF"OPH0[p >}pL9s 6mĈ0[ʈ8EZZY^ puYy8̑#GԾ}{VdLs 5Wc-u[.#`wj֬JJJX0b}PC_2 IZj#Vj$ȑ#R]6mĉQFFvHնm,5[$F*-&KmHRǎuF+n:tÇ`fݻHOOo@R vXukْET^΁ԱcGF.ۧVXNP(nHÇծ];F0:dd+wV!lPhh(#p222,l0T;t"?`6Zz @6@ff:vd`ܰ$OnQHҥKl2h$N:QFpZhrVLVbdiʕn1M I}#pMe[ﯳgˋ2ҥKXɅ \QZZLnUH+rb*V\\իݪns߻feeyt U/?n NKKc~np`Νt]Ijذ.^(F<@Saa!+VF<@tYݲ{S $)77-@ee%# I*--uv9:~(44TYYYXUpp.]ժU+ S~iݻW=z`~W^ڻw|IթS-l-zֳ>F8ຎ??׿" WG}T'N?Pe.\Ч~>H03FǏW>}IKKܹssQԶFiȑ7nnvyyy1JS^^kj޼yJNNV^^ԫWOÆ Ӹq+___F$._͝;W)))*..7??? >\񊍍Uzy(,,TJJl2X0mЬY39R^II֮]ŋ>39*uwkȑ0`<==IUQQ+))I/ӧ)QF)>>^zfc,R[lQbbt1+:wŨ;v|_ 8p@vt}iرܹ3=޽[ .ܹsu/5vXM0A111,p ah͚={,X .NPn] >\&LPll4iB`'ѣ(4c >\RYY%KhƌڵkW!!!z5j(p"0h"=:q ѣG7nL/PKrss#(11n: TTTRSS{U޴2d?&W\>|l`"ՙЬY3>}0R*77ױ+Νg}F0ŋWy $uU\@-7߬={Tw5JHH Ԣ Tk ۷OգptM̬W{ ?33So=@-x׫=h@|||N:8ɾ}jF+))߯ z'(//_ɿ$}W9s&=ںuk_Ə$ooom߾]]vgp]v)::Z5~-\_ZZ'ϵfΞ=+I%_c.[ƍMO`'_}cדZHRxxo߮ cP~~wCu~3''xCV3w\7̙ &8V)==]m۶#G(**Jy}=7//OƍSYY@jܸq%;^x%NRiiz4}t%$$8=Z"f &Zn#֭[g$͞=pIfL]=zpIǎ#F0.)66ԟϴ'_k֬7rJKKumiƍ7CڸqA[oՔ'n ছn./ @ׯWΝ)%::ZׯWPP` -[Ԇ ԣG +;vK5mڔf͚iÆ {L<%ͨ CEua,N:=zl6֯__럧VOl̙֬A12nc4iΟ?~@LL,XFdff{Ֆ-[j~fӴiӴa& ц 4mڴZySW7nO>D#Gd=x h͟?_m۶G{۝~Ћ/4&m۶ڴiyyx8~ޡ+Zҧ~n]V&Mӧ]o஻Ү];CvR\\]f͚)99Y|}}vҥ͛.]sݻ5n8޽\+6M?muE۶mӔ)S̳дiS}Ǻ뮻!,99Y?po#\`={ZjE$'NĉkPjmxyy^Ӻup֭[kݺuzWP͝;W{e7n㕙8}LD>}aÆٿod5nܘl`"M4ҥK^7;мytaLn͚5S &&F &Ls=ꫯ3W:u֯_ ׿jd詧REE  h:t("-[cǪ@FrJĐ),fӦM, ( IDATU^^秔&,[oUJJ6lfi֬Y[֧O}駲lM:x n'FPPMdffʣLf|X>JKKgߴ$3#?e~.[HRJJ #VXag]v K pI&L03UԩS'ݻ\a סCXW_}l6~߳P111ڴiWzm۶p=_*;#-M\):v쨝;w~e*22RfKgfX^5{lyzzg46?+3*n!88XZ~}~Zիň2ӧVoTk@ sNuЁp;PnTTTT+_kLw}׽V>͞=k޼y/:t;vaÆ:[n:rSש[ޚ7o?秹s۩gΜQF@V5k8=0l0-]pahذaZbu ڵK0W[nEYYY/ٳg3p͛7׬YS~ /~^X7nt8t &&F6lP:uQnPYY[^ШQ#+44222<63PMaaawHCiر50~xM4!m-N:i_>=@ {:xyW4k,&A5k[L>]=zh v}MmDEE髯?Tڵky m۶M]vpoF={Tiii_.w|O@-Z>_ݻRSSI`ӧ+|}}k.uؑI߯HT5jt?uI=\mV{Qݺu H;wVffsW?0PKի3g:woVzzl6=@-Tdd[+L2Yh֬Μ9c{+++S``.\#G2`uQ\\\W aaadi߾ +Vl`Zj Ts=%Ԣ .h̘1JMMu| IIII[pBUVV8Qeeϟ[nE/kTF@'Nнޫ(-ZmB ԸqtjVPM2E=6mJ/`'ϟ?oV|GÆ ĉ+z**))QJJf͚=)kњ0a09s(!!';PM0Acƌ7L/?|.\ٳgNyO?x5JݻwnMJLLTbb>P+OW+bbbXNeelo-~e˖K+//xb-^XO6g3UCM6U\\uwח0˗/kJNN֒%KtyS~N?԰aC :T񊍍UÆ aWJJrJ3DCոq4|pխ[pb-YD׊+~>uVFc;T:u)++ի5|%''e5mTcƌѸqԿF).~xsDmC:u#Q ers !C0J1l0k5@ݺuuyխ[Q B5mT%%%mpkie -k2[ǏWHH0GQY0&õkN:u0;Q `q_~HS9OVPPpjӦ +uL ļ@DDT;wm:t`$ W|ЪU+F")p76]xpϻ~# 088X[nJS>}Z:u+ɓЯ~+}yL#>>cKKKoҤ\]YY W[ź|JJJTTTr竲RΝSNNΞ='Oj:z***,kfװaC5nXM4Q``ڶmm۪gϞݻ݊0bm޼Y۶mѣGuQeee)77W?AV|||4vX;jܸ1 ` /^ԓO>i)p->&L9s \rssK2b5i҄o&čLڲe 6oOغu+I2Pcǎ- E  . pp7?/̅a5\|H+wK..$P,$P:JKKIX^aa!I@u.$PZA(N HP  IP @(P@}UTT TGAAI0PP=(//' <e"UYYi6={V.\PEEC?QRRSjѢ<<\;Zii)KwY8s挾KmذAڽ{[h%K(::g֭ٳgo 47߬HWTPPK51$4Srr.SrmذAK.ժUo߾NVw^p{.]RDDN>}ݟРA4b_^^ѣGɬ̺v\RK,ѪUt*Szwd^z&IڻwݫwyG7֐!C!CI&k[II  ?ԣ>jr1%%%iҥJKKٽ^^^:rBBBhcǎCv9#FVhh)'ML,++V?##C3gTtt/˥=z뭷dzn_|gyFaaa̙3QΦY@uL:USJHHPbbv[N8Mp;ΝSHHO޽F1cƨ}Nmɓ٬N8ٷo^{5EFFC>}'gϚ5[㔳wءӧCkvC'éShVPڿC^믿VRRJ:w{p+as:p@{FҨQh߾9BSTPP`۷+11Q-2A}p6lЀLyڷo}1УGl˗ՠAninblXyy6o\/**Ғ%K4eiF`|ܹt6ʜ9sLy>?VhhLKگyf&VPӦMӟ*+Vвe˴a]|ml֬Μ9cPVV-[ܹs߿F!CT$§~{}P&g^333qFm޼YW=ŚXb B/_ÇgԩN[}}jL8 j<3.G~ƍFv3fXokoؼyKyڴiAT5ڶmk? OOOf+V|rf-O^^^/lzţM6AT'on?{Սf͚Ǐ1!ѣ~S{۶mWV:>RϞ={u;wNcǎUii_ii^]p!}vuM׿Lvk Dxxi]xF'Yky駝c.]2Mۯt'` w?[l1ڶmvl6c.;'$$uF",,غuk}׮][@M-X C3gT~tQ<Çv}322ԧOg ,\l=YYYƠAj=z0JJJ\IIUy2dʱqF_zh7qg5M5k8ׯ%(^1e];}{uڵkM?Zʔo~c:%>(,A@ /:tٳisdv?{VM~Ƒ#G˗/M4%(žg9Y ???`Ĉ|^@ee1l0Ϙ;w򐔔ıJPcvgt<+}]I|X%(k~WYKݺuo4] ___cǎ-[-999*A@z.M>r\$`fڱcZn]9~wϓTb<==%K(>>@zzj?9(**RllNeYRIDATҮ3e(XI~~ŋN w:f3x ĉFff1ydBn:\d.6IENDB`phatch-0.2.7/data/masks/20_pointed_round.png0000644000000000000000000003434611346363116020652 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME *6) IDATxy\e7(j,h)AK9f n i[̣c[=ߩV3r4LuBS\2HP$YL@ԯiZrs^}]u$,4j(%&&j SXX$R:r8?PSSS^̏N{wܡ3g*&&Y=s֬Yo***"LK4{Z nh^߿?hF֩S'^0l6h6xP(h4YZjjQVVf8[ii1m42(h4;[pptR#88>*J-C뭷ҤILy|;w*++,# 4Hk׮UϞ=M}EEEJMMUAAPqW*66VݺuSTT+׫R'OTQQGv:sL-[L۷㭩т vZ:<<\={T iF:}ui~5:#j,[(..;vn,ZȈ2ixg&455O?dꌣ_WƊ+>έXljH>4Zhh%%%ku]FΝMu 0:dxqvcϞ=ƽk9g^.]d F߾}e^qc4~x~i< h+33S;|{ڵk߯k5d?^sQ||<,)77WVҎ;'g_#Fh̘1JMMՀLw^ѣg+nGUjj*AtICj߾},'566j% Pw꣏>ҠA>+//OÇf# [pGyD7pAEEEV;&N,|nפI}v7>^ƍS p#G(;;[yyyr]vСծ];gDž tYUVV8̠cǎ}:A[&|Ӈ0xB SN3f APɓ'3eBm&M"p9p={ X+TK 7qk܋-7 җ_~vtEuؑ[:hȑA[X> )|_O|ބ M TRR" oҥ 7sL&dZNS6k,Bp\,::ZgΜan+&&Feee ; # 9rFAk%wu!H|||0XO>$?ժ% 1sLnw !99Y3f ` ɢuauؑ02TTTh*--% Vphp 7oOػwVXwyQ8NTTn͚5Kcǎ}0]w}by5j(M8Q&LСCj֭ںu٣wqqqJNNVJJoߞ^F;wTffTTTD@PPZ%''kʔ)ݻ7?C=LmڴI;w*ƌyi֬Y '+##Cߵg oﯛoYotW3?zgo{1cx rQ֮]KIl2M4Q hL-^+Ru@JJ/_N:1rVQQ (++˫˫pB{LІ 4| 3ߟ p(曺ۼ朼b `„ ʒjenkҤIھ};C adZ *..-_|2!!!9s咓uM7y9xbѱcH\QQ飦&V\n`M\\M%K}뮻<=r <<\|V6MQQQ:<+0uT&(%%## ѣG30j( WgLꫯkjkk̨ŋuWlaaaLС:t@l]taL%::+Ixx83MVk׎0S8[]]# `*555fiSvEF_+<x7O\… 4xiW|W4R8''M0 .ˆfS`` +7I>Xp! ,NzpwNFW555ڳgyɖI͛˗455iZr%1c֬Y#x,ͦٳgkڵ;6]_RL -Ztfk,~a=SLaX4}tY,ܹ40@TTV\3R^k۶m?JKK_&NO>&L\S2m@``x effsΌ ORff{18ܲ0l04h#:ŋ޽жm[=ak޽zզM\=z^{5Ӈ{;E)'';Vڴi'|R;wdGGvO< 6LoOp t-裏>=aﯜpUViܸq ctM0o_]tpMfM.$i޽$ 45.mFHKf] I:{,`MMMVyysWtɿE$\0zEk3JJJOfS.]t9׬k֭$eeehoq I+V yܨ5[-`C.V]](}W]SFF=-[UHoA[GO>.RPP=,=Vpe˖=ZӧOb#8nW׮]UZZ۷v!$]֭[i$K~)ƪ+}9BD|C&$۰aaݻhΝ{/\ I:w!I᪮6 uIz'8~&vaw'NpQ *++[hjj2oP__O-BCC! ""¼@tt4=DEEpnݺ9v'@UWW+88^Fs 2' ֐!C~+:z'7n o9:}z>+wu= 8jm @tt?m+8٥KtUW;^pmw @߾}u!#f駟~O=?.gyF~~~/NM0^ RRRt-8p?nTWWD8M6Zr%?n+W*((O<:&{ٯk̙3Ѫc3gwu|0h ]v$ \xQFR~~ 0߿_qqq$ I)11QUUU?wժUV1`rqqqZjV]~/liڵ6m/:v쨂uܙׯ߿߶?2e +466*>>^G|/лwob^ Я_?}d&|`[ozbOVLL N>ݻ2rH&|ĕW^#G2zh5JÇ>d׏$!%<<$!;vߥK6mڐ>ҥK Kee%)C*++e/I_rQȲ~߿_?$!{a@NR׮]I/w)C&YD2 C~8;vL [566w*..F@EEE?A2x5k֨X^(//O$l2d % ȑ#FBxvI UaaH /__~p·߮ҭJRx 0_&($iÆ zH /tReff-ok݊'9Lٿ{YORZZ.^HPuu.k@V .@L0 r-*((EWXX+BIII I#mۖp: :TGmk-- t=<ntwho $iͺ\,33S'On[\HR߾}u!H}} >ai=zT== =쳭[ IQQQ:quuuꪫtܹVRZZe˖#!++8Y^TTT8`=+82;իW38QFFa;>p{9IWuu!N!!!jll4 @ccrss! 77aC I*))p?ܡٳN9֡@UU=TTT pۛΐwZIDATa8vvEDDC8Aǎ[C8A[у =:N:w%I᪮6 #pŢÇ;Fcƌwpk|@jj*=M6akzcǎ38YϞ=u s#\3f̠G[]vթS~BvvR,XZ?{Wt1ՋE տ=ׯF`…n9[*--U\… ҥK\\q>}z_W 7o^_ۢ-H9sFl6Ĩ5+7t?nٳg-*ZgΜ9-z]t3gϏp&EGGܹ+'Of$,RRRk%mLdܸq/Z{AXIII~M I1 Caaav |۬4޽;)`B͝Utؑ0(;4&1|h]k4.Μ9C0'N8uIRdII IHnk][075z$ԩSҥ fgΜQ=F$ ,]ٓV$)$$D}"""H7)--U>}t…fE<@<Тɿ+dZyf]wu.yfMOo>M>] Nt%k~/#hǎJNNn婬ɓc_kƍڵ+=:uJSNU~~\6t+>><-ZHyyy.-8\%&&GiC TMMMzGm+uuiŊ1kp?|FT>QH|qq@^^# `*v!FT> g;y$# `*NcoH_^8׫M68a*//gL#mqShjjSWWGl.;h u BBB(\C8)o#n$} ???Fl6Yp`&i(((͛ɓ> jȑ5qD :TV`v8p@[nնm۔#F0/22R5k0񤟝5kwQEEP8FTT5w\5@vޭ+WwUYYP8Wbbnx㍲X,.ԤիW/>#p \ ++Ks7z0tK prvmZnaPKdd|MM406oެ xmy݁k*++ԩSꫯ8ҥK5e&JzI6ljյ^K ӟtw0X?^|Ew#'gVWV}!ʹi&M>]v0(2kɸJKKum\[oɟyfM8 'lڴISL! 1x`r`v]' `6rCAXj?+iȑ!Æ  w^۷ >)wBY|9![..튉xRڵ _)|CFF!Y܀-7`f `r+H:p?oٺu+!y۶m# ߲eB/C26\&/վ}{jjj.Fegg0S&M6F={TQQAIqqq:~8A{?GsQ& ߶qFBg(| ;p ٳ ' >\111jll$ V|WCCS222) I+V >c`lݫ$`xg_J>}TPP!C Q?AZw?+16mRJJ A*RSS ?&**JRDDa eee2dD0R-\Gd 7o?.ǦMh"3Ћ/u֩P( JNNѣuWkj߾}fFUUU?uYAAAxz]:4>|Xڽ{233UYYI0:(&&FڵSHH, PUU$};WUUV:uҕW^xH:tHS^^N>s]kԮ];~[Hv.\Z9sF555NHݻwWZZnvbѣGK/i:y$nD~~JNNh8ݻ#h( 0W!p7멧Rtt4_w~m&~PBCCl2J֭… U]]Mp(Rzz^n~;3xs7~@3444h…ZjakƌZfV+a1kƍb NvZ-^s <.'0  G+//O?^[l6-Z>3(k<~ |I܆-U6m}|FaaT__O`髯ŋe >nkLrrr |Iݻ vltA 00>D~+7u-fRCC,X <{ ?q?L-jՖ-[4~x€زe&OŮ~JDD>cuڕ0N>Cܹs 4HvRHH鏵IǏWqqN|ƎӧkȐ!;JSLю;dA]wuŋ wkll4F=rnz2{95Ƴ>k!Yw}sNwcܸq f6bٳn /,,4#22i׹sg㩧2~⯯7|I#""iyFEEwQXXsԷn*_6\zz26o쵓M8fdFUUKqN-nh4 O6bzFEE?{ϸmۺ%Kxն@mmqmum֘={a_/6, ?4 Y-44x衇3gδCnv2NSN:?>>Q\\bccpFN:4޽[{Ѯ]w^L [9jٲԭ[7mV͚5媶}*--UJJV^5khӦM`7"66V={-ܢ=zvڦߢ"mݺU˗/ŋACr!CaÆ}.ahZx);; [ Sxx"""ԠAf͚S͚5-yyyHt9XΝSvvNӶm۴m6g7]wݥ+**ʭ8y^uVnn.Oǎ5l0%&&}zuy?^W֊+b =zZſ[SNխ*I(?pꫯ@pC 6Zli< 9x+}5<<<8ޕլYӘ2e~WW_wut:?l|[ڵ_Ʈ]E7;;x7Dr1*`kР1k,#//Y>sG%6 [o[6͛g ǍW_}ҥ [ƍ7xøx" *++3Νk3(l9Ncذaڵky={<xc,Z(..fTL[oeQ*fیݻwz ~ѣp8??ؚ4ib,Y(--eTwyǨ]6㎍V[nƍy5-4c„ [zs5U(++޽;elkߚ7on|GVo~c8 0^xܹs jR\\lL>(6 ە7OOO㷿_WYΞ=k̞=80&OldggsMP6 5n:urU/Q~}ۍƑI9rhݺ5wlo5jg6JJJxbٳuZ~EDDK,᠚\^^ѻwo^(5mHIIU?x饗,yնָpB+PwulK3 ~O,vnݺJJJsN~of-_\#G'"\.mܸ@M.5kQVVƯB&_Æ 3se ;8[PPn:^,bڵF\\А!C,p vիWSNaTNmٲEն/uт ߟc#:uR``V\Iv:`-[ڵkմiS°áN:i„ 믵gϞ*߇AiG?%;曕uլYSÇW.]uVV|W?I~~~ҥf z+Vdk#M4}'Iںu*8\RFwﮓ'O*990܀Cw% sZræ>sM0BO xzzׯ~+\.BvCߟӺuk[NAAAas/^s=?*))w}WԽ{w޽0(hmذA!!!Fo߮I&i߾}zСC5|&$IYYY_M6$SPΝsNM6MYf>`Ǐ.6E6+V(&&0ܔx}:QFZb* pQÆ8` ,ĉ 'Nh„ }_w;[?0 4H˖-#  dǏԭ[W˗/̙3p'_&\o.\0`fү_?-[lᲒ5f8qB .N(n6mRBB%> QZZBCC Wt8qB͛7' ?^z (p? @(,,T6mtA°x@Q͛ǻFlZPtt}ޟ 5lP'NlSVkl.nݪ;jq9(330,S2V5k/Lԯ__}T;0Խ{wm޼0X@e5k?sph\H@e߿FELcǎ?~ XԩS 8`*}ѪUe(""B999 o`u>>>4iAk,yyyK۷obbb\3-[*.. ({/!/50/NDnݴi&`ǏWXXJKK ДPݛ (˥aÆ;v,!Pp9 [.AnM. (Ç[ V r\ W@O$$$N:J EEEEA׏ސ!C4jH͛7'H|-tMA?Ν;,p+ @@||ի!PЭ[7Bv[:t  r8ڵ+Ap;;v$ jٲ w? (n***Jj" {"fjԨ5NPRVAVLL !PO6m[kٲ%!PO۶m [k޼\.APXw(֭[i [ U@@Ap{-Z  hڴ)!hBf͚H$ +@ ӓ (;q\ ' {hܸ1!4-ח DDD( ڵkׯO@`Xx Xݺu `,u+7TV-BE{ &t*00 (p7~~~@w˥޿; \(_\͚5 `_5j `H!Pחz.]ӓ0T>N=ZGV~~o߮7jÆ ںu `m+UϞ=ճgOIRaa6nܨ$ZJiii2 *h`]5ԧOTjj;Eiܸq|:87&44TǏoǏkڵzԸqc¡P\.%$$h֬Y:|RSSsϩ]vC0N@iӦz)ܹSzgԼysEfOJNNִiF0h߾fΜJIII9r pT޽*33S3gTtt++Itt{G&a6nܨ7xCK.UQQ>}߿"## LرczWoԩS\ 6LT=/XT~~-Zٳg+==kܸÇCr86a> ڶmEEEiѺ;G V\{N[l5J&LP.]MիjƍT߾}5a <~TO ]=ܣP\RYYywSFFOPbb&Or1פ@fҟ'Qf͚5e5k֌Q (=? :S[:uhԩmS)))s=_|Q%%%yCG֌3ږ-[4rH}򊋋ӬYXƉ'4zh[ZiꫯjǎL˩[4mڴj9K :TsUzA{t=K _3]vi:vF9sN:-eddhڷo_oF^nn 6T3E:uRjj*?miժU1bá_Wڴi5jhooo-^X'N9W&90`#JKK5i$[.[EFFrpwkѢE!Cyf&~ri?~ ?>2%`…@.놿K3QQQZ~5k4jH^^^Zz }J?͛7+,,@0 Cz/_n7I&-*PNNڵkr=ҮUVZ@%]/^,r=Rծ];$""BeeeZ~u?OxzzjŊիGJvEkNU)/LTooo͛7ONMZ&O|@ҥLr]SZreܜ\+&&FUдiSLT???KUm۶m۶@52 C;vΝ;+`ƌLЌ3*`+AD߾}T9 44T[.I`")))j߾ S|N8-X5*ƍSIzG˼@pp8ڵkYx饗*u|ڰaW`EEE7|SLX&Mt0i$lْ4c^ 5hЀ$8^ C=VÇv$eff*22Reee׾0m4&,,<<\]t]&9,n^n׫W^t:&MWZZZj)//+ b&\.n/ڧkILLrhݺH  I iٲ<==/]NFMJ،Zhqн{w6ԦMK}j؟/// >tpЫW/6ukG2Xp8~\C2ؘԩ V\zWwN"]H7Pfo @۶mI7t:)lrQp7~~~(8k׮5jnX n$??9{RPP gIw+$͕f͚$ot:$ʒח$p#rzzzn"??_O,I4p_~HKK;w4p c׮]< \xQ:uDpWqq໫ر?;9B"u}g$ٳC رc߮HѣGIKOO~&~}= Ν;I*))QRR @rr2`SׯO㔾h'N6U짬L~ a۶mo._~zqK^ Ir\VPPi` u~߯jդM,[;VZEZļy.oߟ}W$eee)22RW_PJJ `q , I/&5,, =,jҥȸ͛7?__$=,hժUt=ߏ𝐐eeeˋ$޽{_}}.ߤ||S?W^!I,g毽)68nݪ]^;s%Q,' LԊ+4`zK3ǒ{ iĈԿrHRڵ_Ϗ0~[wyu?+|ͤ ;wNÆ ӹskYf)??0g}V_u{Ipjժ.]6&gM4IeeezUNhh>,___R^ziݺukǏk̙@5[x M׵ I~~~JOOWIj$\az'L>0ˎ[r:7o\.# `%%%pB쳇vf…r87oN'# `z.\ȑ#'Xj=̶C ,8FSJ]IDATum>ܾWg\eeeiРA)9rDJKKv}\0>Lݺu-L}}…9r$ _W?~ϡZ> zW|n&Fڥm۶eWj*WgΜa]֭5`K?˼n˖-ٳN8T7K(-_\M6eU׮]uVVÇյkWmٲVӧOghѢE;jQRR(eddXnMy#k }ҥ P||<PNJKK @ux5k,>DPrrrk;?gvmc$Tڵ5~xVSGYfH@IKKS6mX.銏ʕ+*Ӻuk%$$PSnn g2"U 2DF@UV- @uz衇*qYfmu$*--rwV֭Y'OfN:Q%ߋ {P.1f̘1Tá|V5kԠA(Uk׮jٲ%#PƎK*&L`L_~ T650oooq6tP0E``6rBCC)Aݻ7# `*.KÇTqr13x`? `Νj׮ `: Q^^+)**`Z0`)V!Cr,} 99Y۷gtL+//O!!!*..f"DEE1L/ @ /VѧO @E6l# @('K^Ǐt2WVVu*''mRLp:իɊAz뭌&Xɓ'hXÇդIVʫcǎLˉRÆ )e[*p5:uWϞ=AKG5L՞TΝ;ۛvˋpzXV5Զm[ ntBڵ+#`imڴ\o`PG\\``ϳLh߾=`y7t)hЮ];F bcc)aPp*AըQ-ZPYn@E 5%(UYfm4h@iڴ)` \qN5i҄ Tu/QZ(WRK$T 4hЀQ` 2J NknݺRN:ܩ8pp8(Ruq.7t#w+} 0 p Ξ=K\pp9ս<T%??9wwCUVVrrss![:vrN>n@+T$N)33@j_6}IPv]`PI@_~%#@@}8|0#`/^ԁ(U\\L,S@EX~)T{alaݺukˆXŋuV 5۱c (*99Q+Wf_ 㣳gÃ-Z-Y(((о}9ڻwi&|X1# `βBϝ;0+VhŊOK'={Lwoe*,,Tll: @e1 C `/%&KH~B`ffujuAnZ/^Z2_fݔ)S,3[~@j֬/Rjbܹs5eKK3VHԧOF ޽[#GTII+#GnݺD@W~._d$#> a?~,Ybd I7VJJ 7#%&&2M%''kر/;IkZv-1 Cs7춓ۮp%`ٲeJHHp߯5kָ}Nw~[駟_XII^|Enݚɟo'2"fvء{Wiii ֓O>͂&t=(>>ɟ>|z-XЙ3g4c ͙3GBv;wŋըQ#(((ܹs?AO& @_ѣ Lz+B&MҜ9stM7ȑ#G?YuT͛kѢEر#a@5*++Ӛ5k4o<-]TB\NS>^xTÇ(##@(U/44T3gԸq*ѱc6n۴)搘ٳg+660ݻWG;v`ҧѣOYfຝ:uJR۶m햿oذA6lЪUta:<<cկ_p`iyyyjܸ1X V߾}կ_?%$$Tع:MGQJJRSSm۶+ =zڷoN:SN*==]{ծ]]vٳW}߯( ,ɓjҤ($թSG:uRLLբE EGG!={V:r}:?,Sl]pA' TO?T>(AR8{pCIII\J?S50twsU6* K&)S*ܲe `I\g]v q1_K ___mݺU[& ܐRGk׮% X65b={0pCf̘V9r}]@l޼YrJKK 5p;{UHH:uD.999߿?*+Uyyyi͚5֭ajJJJ" -iذa:z(a}~$;;[}ɓ' 6oެucǎI^'2p@ڵ0`K\SjҥI&ḯ `w7n֬YCn';C5.~" @+WTΝ k}Fonfeeep*Az4| 005e[Pj<3gח@*YjjFp 8T0k)..Е9sP8xu_O& 6!!A<.^H 02oSw ܠP۶maʁkjеkWU\\a\dw}JMM% Zl٢:hر/dff{QΝVĉSOq;Kӟ'͚5KP{߯_jذQXXygJ?˥aÆGUn>}Zɓ :ӈ#i皑ٳgk޼y:<UFcǪ[nr8x^O`}'*..`cj̘1jժ%Ν;pB-Y@y@էO%&&* yE_^+V'|t@P<<<DuQ۷WhhhKIIݫ-[hʕZz5 R~}o^۷Wll5jHU8uꔾ+)99Y;wTjj 9ԬYSTz5jGSiiΜ9R={VW_}J.\ P?wr8QIENDB`phatch-0.2.7/data/masks/7_pointed_round_star.png0000644000000000000000000004015711346363116021625 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME 9q IDATxwxUMn;dA {LA" 8"bQQ;TAkm+VBDED$H d2 hV~=y|zwX8FlM[ b=sLLYz-k9&l¬oV[tQ/F,M6ֵkDFFm۶VڶX޽{`ǎnݺY=<<8vl[z)kuu>ޚdckpp0Ǚ$84ggg w}~GqFuU... |IݺuӦMԯ_?Cc=4tP9;;si8X3pD:x $effjԨQJIIQmm-ÁgԩSjVڶmÇ3馛8Wddl٢{W 7os:_L&^~e0wC:kػkf`8۶msޮ];Oo߾#~i}' àڴi>Lzr,yY,8xL& =zЖ-[ԯ_?~9dR=čC)22 (pE?A\F@@6lؠx@~~~bf  6( @͍G4Kxx̙;]wCvr҈#P쐫F˗Օ@~ 66V|***7w^)SO?U֭ xyyiĉZt);*(( (0B]vՖ-[ԻwoN$v_կret҅(0A5 ԦM4~xfQl\hh^|E͞=0>77\'ggg͟?_MQ͛7כoqw.<==y}())Ir:tͭ74ӧk'F⢡Cj|sHQEEEB4h6nܨ]r_@Ҙ1cj*VG@*22R۶m{@ppN PYn#tqqq?I111RO5w\͘103W`;9m g?ڵkձcG~^nA~>h=Aӓ 5zhU2Lҥ6mڤΝ;Hjٲ%o ӬY3%&&_Vtt4\EnC ͛Nb!&>SΝyeӚ5kXâ5`tMڱc&O?!..NӜ9sxoh޼y裏t7r/٬N:FM MRJ]viرƎ۷E &KC-Ғ%K ''ьӛo? Q4lɓ6ӧ6mڤ3l(}]mذAz2+N_~%:m?0MuڶmΝnA...7///[IIIzgx{{S(0 B3>8g}V-Zt 7l;l#QUUA!Ţٳgkݚ> (eFկkVhJHH  # lQll,4ɤ&$$D ,;ahSNUxx8AP`+4~xuޝ04͛m۶a,l͜9SA0'''),,L&MҤIF0 )??_&LPrrΟ?O ;dRHH5rH=# ' K.o[eddpof)((HÇ׃>8+TUU_~Y .Tzz:KSl[cƌQpp0u(**ҳ>Ӫ% @ruuUppշo_;Vݺul&gzW駟riиfx?^C /@#҂ ;(33SB_EULLFA)::6 55Umۦ\ 5k~֭5j(r- a$ ͛5w\:tHyyy*..& վ}{=Z}eJXmmo߮+99Y)G.>>>zQFgϞHAeffjʕZb222T\\|Yf%O>{ԵkW^ ,55Uׯg} HcCW^twgϞJ.\={hڵڼyUVVB~Ц 7KK.u7 ]u9{ݫ/R*((Piiu9|`sU!!! ѝwީq)66 hP:rvڥ$X:***([<Çӓhr:psN}o^>hPtMz'5`99916ZGW_}M6:UXX 2IӓO>ÇŅ{VU'Oݻ_h߾}:JKKmF)j޼ iӦ)<<pGKOTWW*::ZSN8,mڴI˗/_s5J RԺuk0`GD-_\VUU}///lR5h *WLK.{ァӧOٳ vCa٬X͚5Kcǎpo룏>RVVΝ;g[ 44T_W|W9s8-ΊעEԱcG ,--MSNUrruk*~~~8p>?~\&MÇUTTtMU??Zt)'@||nݪ>@UDEE)11Q=z }l@ii&N/nвeK]V-Z mlŋ5m4eee_hժl٢`F߿_#GԩSh˖-$Yl\VV G^wɻ"""rJN؉p}jժյ ͛7Oڵ#MHPP֭[+͚5ӨQtw"v(&&F~BCCߛ%?l׮VX{c*..֞={T]]?7+))I$ZѣϿl6kذa0ɤ *,, @TT̙CZH||nfL-EO<񄼼H y7X ""B?8 `@С dFB'ODFF*99nҺuk;v?3p$9999#=#///"""vbPYYnANp͚5S@@:vH8X9vm$iӦuF8N:dZD8x_/ SWW ɡhT]]M8l9=z$p ۶mӮ]HsN9}'$)((U[[K8\]pANھ};>SʩX-ZBR˕)I)YYYzIKLLT^^$$*Iqqq:p<<]{5w\f('詧lHbQ׮]'(44# O7of͚sgm6G׿8Yf^h|WPPn͝;^;e%&&A&+Ν;kɒ%VEEF 6z_j)33SVڷo8 2D7oVmmmM:]~~~6lՕp)))7n;֨py-YD={F'/jUNNV^-u֍0_|QfRVVV6s u-?'#`5558qV^&6[$d2)!!AWΝ5vyu]ھ}jjj%5k֨\}eґ#G4l0޽[uuuM%ۖg]{Vbb|}}Il2M:U6|#!!A~:vȈؼ3fwQ^^M}.C.]06Zƍӂ ty|v7 ___u]λ6@wyvh+9L$gggu]˖-Spp0#߯qȑ#699䚚m۶M}՗_~ɨ4ŋkLIIDATĈ6SXXuY=z`s=ζkח~_<^uF"Q\xQcǎպuT^^n7P@z~>#n4<1BwٛH9O>Zj4#Ghv['#%%%_~aƍ5|p~}QjUJJC1Z}|||SO1`h54qD9;;fF)''M2EAo= M#F `p3f`7oΣ4tPf(ѩS'b<@BCCꫯrAn}/aduׯ8@Ο?Ν;ԩS3~~~z9,tEv*((P׮] #~_*00PÆ GhӦ88RuYǏgX,=#yyyi̘1rqqavUV:x, ŋաC}z'4rHNI{15k֌#޽{ͨHjkkձcG\k֬}pgyFo#XVںu:\BRyy/gyxxCETV4tP|͊d"t6>SrrHRhh֯_6m02ǵuVYF'NPII***tܹ[l6+00Pj׮{1_...6%77WݻwWFFVkN)))2͌+TWWkŊZ~ ԧO͜9Sqqq,Mjo֎; ?)zQz{!\Rk׮UvvJJJTPP`9,,Lz饗4`"&裏jѢEv_CI _?_999Z|>c9sF%%%vҊ@%$$ZlɁ]3g(55U)))JKKSff uE֪{5qrrlvTHHX***J^^^܈~護RqqaPok׮Uvri׮]zcǎoзGU+44Tӻ+~+f={VIIIZ|RSSURR*_+eX퍴 PvԳgOtMy*͙3G/Ο?o2\}jݺC sisn~ooΝ;[o)99Y.\P~~~l6ORdd}]?Oӟd3Y$)**JVR g߾}Zh *77._Gy=5`7ʼn'4k,m߾.ʶ`SV׮]:=Z|aPHRddϟj͚5Zp;ꓳZlUV)>>Zh0_|f̘'O*''ǮSQ֭uwh@ȑ#cǎz|Ch#|zH{7ٳgUYYx 7ݻkܸq۷ݯϭǕM6*((Pii %KPpE/__$kdX OOOW^4hlڵK/ۧʡ wyxx|;ﯶm۪SN |}}eZ^YYeffɓ:uΜ9 .\*,,d: kFW_}UsQ^^a3777Mj޼zݻM6 hпH֭Ӈ~T;w{(Wh5k&WWoeee!$_5kaXV=CZrϲE^^^Vf%hBmڴQ-@VYY233tܹS{u8?/ @gc=FرZz5m<<<*gggL&LoI4LZKXUU***t.RDӇ0 ժ &hŊy@~B\\lbi=#ZdJKK ˉ(N<Çإ{WtRNɡCovI_j%$8:egg+22Rڵ#rQ{& @[*""0@eew_\CJOOѣUWWG`ҤI:|0A@ڿ^|E0?PY.EEEiƍjѢaP~~z術'O N> &rA= ߯?a0-W_}EO EڱcJJJԥK?~0fG} ◿N8A[j˖-a;s_p\}ڳgf3aة/$}z N^Z#+%%EaGV:w{ p4m430\(mݺU͛7' ;ߡC^0\ӧO뗿%A؉@Grr2';P[[9s樼0 p'%%E"USSzKPz ly@B6hܹ$Կ|fl_|ӧO@ÇuV!/  P>,A؈ǏرcPw1%'' xgChYӧD+((?h\Gё#G ͞=[gΜ!4\M: HMM֮]+w8p@N"&ȣhYYYzg @Trr *## tΜ9ú_Tnn.AimٲE***sN(@~;h?yjjݺupa4B"؆SNi֬Yрvͷؖ:\R@f͚ŽY9sD(**ҡCZ .TMM aԳ7| `N3ƏXb `L/~A?=H `\۶mӑ#G;F@`! |ںu+AW>}`0#Iױc`p ZҞ={9 8P7nd@ĉzG:m۶i 8:_^6lp MB@KAA~_}Ŋ:z(hb4UvrرcpBjuQfNk׮0=Cݿ{Oh%$iӲX,ٳ-//O'NTNN!ؐP-^X7XVۗ%h„ Y%oڴiڳgL1ϵh"\\lT\\֯_8ÕɁ(Vtt-[N:gT߾}u) `øذ yZn]|޼< 2?`x q%%%ڰaVze3++K E?`'u7kɒ%vq :Tiii(Np u֩sڼy|%Khf4 S?$J=V\B @(?&"##5i$M6M^^^wYFO>N>*@؜Cj֬Y nkݚ6m@ԜM8QcƌuZb^}U={V P"* @mڴСCճgO^---UjjtR(??_ PgggE͚5b\\\_[[rBEEE#<O~ŁIENDB`phatch-0.2.7/data/masks/7_pointed_star.png0000644000000000000000000003534311346363116020417 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME 9 < IDATxytUOyHN9` a9^0^磌]tUbԂUѻZzȌL!(H! !9{_k=k5g9=$ntH544byRtCgZjƍDy{{Sx{{+11QƍӪUqFEFFRt`0ty׿mS#Fxxm׿6Ο?s8FFF5btfP͍qײqFcFBBI[FBB1zhcƍ׼ƍGF???7K]]ӟ4BCCq#444~ӟuuuyc7/7Xfq]wv]:v㮻2֬Ycttt}vE#)):26:Ƙ;wnPOC2BBBtcܹFMMMSO=Ø7oqb cF||A}Ç+VK5o<%=O>FUUѕ;fG?2Ҍ 0 2ҌGƱcǺ^2CF׏\1d#..z3L5!CmQnn.f]?P^^nL2HII1=-bL2(//{3aaa֭[b[FAAu`ň5 zhii{f֭FXXׁA`tHOO/*u֡CzHIIygKHII1z)СCv8#==k 0n=pMMMƒ%K|#&&kcK,1\=z4׆A`t_7ӟ W~cFrraٸV6HNN6Əo߿?O1nqTg %))I uɟҥKz7xb:uJO梡EEE)66VӦMSQQ]笯W~~=Ew" 1_O۽{III׏qKHJJ2|Acnsq#<<<;p@oӅ xbٳgaQQQMx}2 6xi:rζlb3HLL45m$&&cƌ1lsȑ#<:;5:p)~gW^џ'\`(,,L111W͚5Krsc„ ttt֭3Fi$$$b OOO#!!9rnݺz0aך:'$$D+Wԝwi߱V .ԲeT[[ .pM>cbb4~x͙3G111]7oެ￟9k"RSSUVV&///5o}(!!A{L>>> 8P{OJoB7B\~j׮]ڼy "CBm޼YvCk7n<<<(U~zPҢ?o8qBN( 66Vя~'|R:tH#F` |:u_R۶mөSLQnbcc}O?ϕKQ:!77W[HnwQSSz-:q(IQQQ׌34i$X&jxqy~SRRb<ü_%%%L.駟3RSSuaP dTmmΜ9CQ$EFF*&&F'OԩSDQX[[i +pK6llǎկ~RԨR┟g:t(}ڸq#)|||4qD +W^-oZ;wԿwxxbbb4qD͜9FS=hĉF1dUZZjM6׿89S^^^^S߾}D?ؽٳWuu5W߿JJJ(D/;s~wQ]]Ο?GXXP<"##lڷo$:ƎK\@dd~_ZlF!n׈#l2>|X/X\ULL֯_}R t)͟?_|tBBB~XsUll,8p@#FPmm-_Ç)ЪUFa-ᡸ8?ƍVB#|-??" x@[nՎ;4k,AAAJKKӬYcmݺU<?: ֲe4f/_رcN\\5w\=#n?uEA X]JJ:LBڵku)566ҿ/ @5j^xRd7ҢUVVR oZd{饗^RuuM866Vv]>qZC ;V'xBz)޽[6m҄ "??ko &hӦMڽ{z)z'8GVg۵gP kiioW^yE'O(XLLYfiĉY@mmHW@ fA_|~K~_n(ӿR ;7zh`Av/_N!,~XXTT&MD! 4i(V< XP^^(Vg@QŠH!,, ,(>>8___S[?8\<N%c)66B`lq`dd$ n$""0i$EDDP,22Re`v999.PNN U\\L!|Kqq)hIII:t79oijjRNN=J1dz*&S>(pM><=Y# sNvપ5d8qb cp]v]aaa3;)>+@H=wzi DYkwC@0QVTTĻp76liÆ -0&--nmTZZ ]Bet4)4$*44b%ϧ+ ;p,Dhh(] pz(.W'|B2O>bbb(,""B@IOOWDD <"+ ɓ).7ydP1@IMMUYY(.p8 \MZZ?nEW@\fӄ (n3al6 aDbbO ݦ^yyy:v`"**@ UTT UxxxOW@\Ell,'|w*ÕC!tS\AAAEgVb +88B9ts:||||(֦lޔG())BЛ7ĉ)7qDps1ݮR ǝ={VEGG1cP|`%1114ik&M A@O Snn.krssF!I,JU}JMMK1􄤤$.ח///=x'E! GnnkϞ=-\PAAA%444hΜ9USSCA\-]TYYY%}W*,,uy 8A6MZd>3>LK,Qzzl6Ea|vx W?ohjj~3 |JJJ pGO?R>}܏+hԨQnڵk5k,UUUt/I2taPbb}YVFFEӧSGw;-::Zwq^{5@9}L[\GPPҴd :@7رcNr544P@n?3gÃ@72 C-ҋ/j9BYqqq=z^~eQAϟٳ'M3BCCK_~zї_~B: ooov._~ڵk~+--MGyDo.I˗ĉyPp ={nK/ >C=:z(NLCJHH̙3*''Դip8T^^N7Av.::ZC k8 &RSS)ShΝt$|- @Zxf֭[5m4UTT`_S={fϞ-OO+/_~YǎSGG*bcc5bt:f̘ԩS3 Qff^uߟо}T\\2]p2% ?g\ֿ}ZpRRR,M;z/*((=Zb 6DDD(''Go222vM4I2m7Aͦ$͟?_=i4w\=zTL 0!!ASN_e999>}UUUe/ b 22R~x 3c]ĉ***3gzS@@h"1 vׯ̙3UUU2xzznk̙z,5kZhݲX}EEE1 Ӛ>}lv&+--M Ĭݻwح^;k޽,3h ݻWWjj}}ݧ_~.~Рٳg?ɓ' 7#,,L999ZtMsaСC:|.u`ٔŋk۶m,m۶iJOOfcjvq9hjjOS{&H_wҥK,ѣGUXX^&kOzW4j(f2֮]YfJͽ3ˀ<<<9swUIKK#GJk):::M2E}%Khذa\m5uTUTTvyۿ<==\CGG~_Tuu>}h~0*7zg't[7.ҥKկ_?"_Peeew{{{+--M-Ү]XEӮ]h"۵v_ݠI?>8qw@DDo(55@7PQQJKKuٞ ~~~JLLK/qq5aVҳ>cǎuMuPBBfΜw}W\zAVVM&á&x;Ѻ+.."jjjT\\? ~gPjj/^;*ࢶnݪiӦB JHHٳ5g:::pB:~:::n<hĈ@?5}t_^!!!G 0JJJ4yd… ]RRRpBڵ0`vڥ *%%r7ApcZ`&Р{N<}||4ydL.((H'Of;999ڷol6Z[[տ:tkΜ9T3g%/jڵkvڥ˗U?=Qͭ+kT ={V}`v|py骭srrTRR"___*jiiрO Σ;wR=Ν;tKRvvQnEÇx^_PQQQnfΜ9?s< ؾ}; l߾[N=p(w#[7TQQgyžyڪࢶo߮߹tCGNznfv***4k,* 5k ow*jŊ"o߮+VֿM8q@v5sL*@/9s5{wKhkkw%۷owuߩ#lϏ+@innր:K;N<@5kV$p@Ϻխ[:pҾ}8 577ꫯn? ~iӭyuV`֭]%GNrKw***h@9sfmwKhkkʕ+e]`˖-Zrem;uGܺ ͘1+-1cFowkhkkӇ~Qe}]-GNYYY*))?WԤt8qέ mmm裏8 mٲE}Qm;uG|'n=ߣz)##C MMMב#Gzٓ`UUG3fG=G7nj iƍ=ԣGN;[Q߫ 6paÆn]z8UUUiڴiL6׶]"i,cÆ Zzum;SFFۧfտ^wJ7m4UVV.WIDAT]1Gڰa>cGN*))Q`` 3`.]Ҁ\bߥv*++5}tf TO2[.8 m;G3pŭp(`y駟2{nO?uɭ'<p(\yߥw8 #WwޮիWkڵ&[XvV^[N.}Qֿ[8UVVjԩ,K:uoUhooך5k8 kj͚5.GN\;mSEE&OLɓ'­~f Ck׮(2pۭURR f444h?v?;RSLazՔ)S[zn;G[nQ7ֿ)Ч~5k0=b͚5Ovɭ8 3lb@O0ֿիW3;zzww2G`S8UVV RŦ7ep8ZnG.zj[4[N:p(̸o =\-y5ڰaGN[z6lؠS~<pJOO޽{Lܰ/[pPQQ3pSLoQf}GNiii*))(p]/^ԀT^^n w***2]KQUZj%,qQjo'WcKQʕ+Iʕ+-d#'5-TYYBf>X\aa-:::qFV\7ZnɒGN5Yy;N8q"wXĉ-OG7o(,dʕڼye,}={(44;L^?;S` V?*8 cJ|CjjQL}} TQQA1* UUUE!W< XbXb[WU婴B kOtߟ"+֐!C(Đ!CM!l &p A>???eeeQ0,QfQ0 ͦ@ A`|&11"4hE> VS0ߟB.,,'F!Wg8'JLL /ӓ;OO \?'XLNNE> V3tP|$44TvJ!W @0, @6???EGGS0h H6 |,(**"ˣg=Jx XE!_ S߾})\߾}y)@,^ L@!@2'Xng>j @|l62tPl6 ll^___pGEח`ۛ;,ۛ'RHHwOt೟`5'XLPP b Deddp'dddX{6`Av̀, 5`5@\` X/ :t<<<V}rEWaaa -`aٖ~'eBCCBCCOwX{-laYy-l߿?3,k%74tPy{{"""B999|vd-eddח` &X2$''3^,nvf<k@@@ȌHhX.*++$eeeY0 6Mx$)11ђOY.ӓz!Tpp0x0 ;;`0df:k@hhn6f: v,9|Kvv fﯨ(f: QQQ'FX>DDD0V pkiȐ!"MXX \U~F0edd0Wa',,g넥@PPZa`ۙ A1V ~~~}Z:~[.]RkkZZZzy᠘tf[ T>}D}kӓb&kjjt18qB'Oԙ3g./pUjjj#vG: QLL.!ҹfk +~_|Qmm.\-v0.UԤVI3Y PTTbcceە˻ ?W]]O:cǎZNӧx_| 4???f]H_t .[ϖ;+w.sAw~񭵵UMMMjnn z ??+z6HO#۷O{/?;KHH땑A19#Feeei˖-t u+`᡼ҳ>Z1@X^\\V\R سg~@D[n&w9Rǎ effj֭t 4:q*++[``` 0K.]k/ȑ#h"9rKо}h.@E֭[ L:U֭pM?tE˿ qC?OtR544P NCF@7k_ٳg)p <|-]T{/p} [=¶mۦG}.:Zv-]ԑ#G4j(UUUQ t }gt t1uuu>|9B1cM9rHS Q__#G{8p@cǎ[ hmmرcuѡ{[`/2 C?K?􌖖mذAEEEiÆ t:F@@'B5jA/.轝Ç+$$D~;/ւ "@tt|M7btUV駟V]]kӧ/_Nnm6=#:y$kINN'|Lх4zhuit "uuu6l)@\[vvvءPq 5tP>|b]>@7(++[-rv+++pڳgz!vaz衇gݴi&L@1n҄ i&vPnD# رct /y]xb}577 )u꫚?Ν;G1sNedd(77\|{NO@1@/ ɶmcĉ 攔k-)++ӨQtQsKKKӦMd-]j?@_~ںue;З_~dz}^rA3ƒϺj̘1:x  ѡݻwp8jt5k͖8am޼YLemmm:~Ο?on? x[૯_|Qϟ ;vPjjgmٲe;wΞ=˅\.nkٲem6?^\\Bݾ[`YYFܨm޼Y n?~\wy*++pnt\}vA=ڭjt:C{}>ݻ.hoo׶mܢ[ m6n>pv "][}>n>|8@7F}hٲee?^'O;G}ߕ{/@Ҵqxqu]*//x;ۿ[`}} CQ4XÇ5rH566^illȑ#ua aڿv t8~f֦;v''Ԏ;F`PUU:;Vޣ`1ޔۊ$jhh0`QQQQr8:w,}* x2IENDB`phatch-0.2.7/data/masks/8_pointed_polygon.png0000644000000000000000000003126411346363116021134 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME :# G IDATx{xTdfɍPQrQ j˄LDVТu[ѮVwkiWmkjk-,J˽!$ $(Kbdd2G K "\f_8|Μ9cÉbQMM ad&xVoH `WIRKKqUWW` Is0ޓ7zhhr݄P.HO=xkUxx6nH (Bi~o$ŢM6Q `׻wo=#zǿǏWkk6oެ&(Q||~'?YLrrn(@ի>=iii:v옶nݪf(e3g~_}dddZ jz/tAUTT.@um^2e٣]v2"L[nE./QCCa 22RSNe21~f͚K p8t7OS-nM+WbA@OPVV׿vj 'qveddhҥX,>OSNڵkt@НZZV\%oTaa!%jVUSXXX>Veee>PKK "f"k0aVZ㋿$iժU0aV+XzfszJOO׆ 8p@;v֬Yp$l6YFcǎX8SkV.K#TIIx.GVqq"##9766*%%E}%B@sIFRAAA,/K\PPQFuʼnpꫯVqqbcc5)%%Eeee3G|+R.+hIҕW^(v񏏏O odذa*..VbbbHj p[%)11Q:t(8aȐ!%\K.Q~~ ( kת_~!Z맵kjРAlx5_yyy8p ;@gZz!2DWր `_~V\i+W/g(1e˖x˖- O/֨QFŋ$Ht_hƌC_3f-ZPr饗jJJJ"o K/% K.DSrr2a|d͛7//P,oN'a%ө~t1t}7Д)S 2DÆ RCC xW_}USN%4tP }襗^Ҍ31BӇ~F(@`JLL?;0:ȑ#էO[P\}Yu]Fx}'?}G]d̘1r8ڸqn7g]tE=ŮzYVR sz{L>(atqI>S555@W||z!=䓄&LfmٲP~3!jhhPYY ]W^{_0zXzz>۷S ubccuw_$/Rx<Po] al۷O;wg$O EGGkƌz뭷#s=zT__O0QQQ6m?Fg-^/(s8… e2$~͜9S˗/bA8ZhӧkՔpM4IK,l& ֦oYk֬#vv]Z|, 1ϧ\yOIIѪUXCdggc?XV?^+V`!E+VeZ ~fl6 A^W&Mh_/%N !tjÆ |C-lֵ^kײnڵkup#0?fpnjӦMjkk#p0L54j(PAAFE@_s5r\&5\C 1gx [*}ի@ǎSrrm&q!iĈr\,8W^r\1ba#@(>|@蠦F)))*//' pCb7JHHСC  \qW߾} gԷo_+ <@HM06Bf4v `FSB'3`FSM0 _f4 ",.2h X,566FY,tl%`FSعh p `FS٬(]CLl g3@0)F &1,Y)]f3`ZZZ`FS LM0uqsq k~Bf3H<!3`4|@0ɤ:SWWI@D̈́h p 0)gML0 f '`@df ;L0Bf3PB'`@\lD`6S Llj&l |>Bf3h᳦l%`6S 䵶0)FgML0 N4f3ZZZ@yhf YS`6S L03(F`Z ᳦lWf382Lf X,Bf3h8f q)`6S 0)FÉ&lPcc#!@B@.5`-Y ր$q0h ^ZW\qa@ڵk&O={s Gn5aYVmڴIn]5w\=q 7(22R%%%jllt3c뮻NqqqZ~}Е*}?9s˜1cԷo_}GAUW/6@@5ju֩Й{͘1 FA8(J@/XSwڈ#4|p| 0IꓻKo+++ 4tw/K/T͓dO˥ٳgկ_?RRR؃AXwq8@6]v-Z믿=6lؠӧk3-/رcc!TӦM 0Zl@ٲen&۷p€rJ]y!}vxڻw/`Zj ƞyVUUq G RYYY4^}8E>}TTT#Gd2ucv[&IW_}\.|Z9Nw軴f]s5*,,Tll,[oQWW4mٲEmmm]8]lwpbccUTT|;2.g٬cǪP111lMALL 5v.+~aaaJJJRaa؊(*))Iaaa]Vƍ|9p(??_ƍj `Z5a+""@'P~~&LЩ%S nWrrdZt"ͦ<%''nFJKKcJ@ZZZ *ʕ+´rJedd\]233tRY, bhҥ̼ϫDFF*''G/fJŋ)QQQջm_X3Lzw{^93fh,@ X`f̘s; i0&&Fo@%`ԩݻx:jzHjΝgU/L)SFjnn>O=t1m۶% @޽@O?4iD222vuV555}ݻy=S@r:jmm͛O[:.HO<q %''bhӦMr\SO&5Bv%dHLLO?x!IIIՆ  11Qկt=!hرJHHFYK={6FK/TEEE2b6eijj*!!AG&BG?RMMhllX;1o|IUWWK:SZ~ÕDRw;wjjjN]nmܸQEǏ'1 /gyFnvUZZV%''Agկk9r;w455ijll$AOS=D زe;  H<zWU[[ IڶmEG}To=z۝(۷oׁ4e @?رczo-xTQQ*0,XǏMg{њ>}z-L&~s=ZhΩHRTTrrr`J=~ZbgϹHRddnFzh+W $9M4I_dXtϧ[nEk֬>8 IJOOҥK)t?uT $viŊ cEZ[[By< .'J j*l6*;;[֭ſ $YVM0Ayyy:yҺu)iD HJJ￯IZ~}-^$),,L]w֮]+}hԨQi1o<=ꫯ9MF[Nqqq3f {ǽzAUN+22R]w{ǼzꩧnplܸQaaa7~i In[%%% &'s=_:|pо-ԤO?TJMMetzuȑ~A]N-[^.zWT[[% uV9rD&Mbt{L='$ $577k:t&O̞ 4?c(IDAT~m;v,d^S%\{UNN{,?Bu$Cmchƌz7s{{ァǏk  IѺ馛4oD---{,'Ju]5kpv5i$mܸѐ $Y,;V.ZNJKK ?TRRԐ+55U%%%^ d 25j(\.!NNS7oV[[dW_BG*--MeeeY$p*߯2ȑ#!ȑ#JMMelݺU)))&rJII֭[YrԷo_ t!9NG^yytA sASOEE?\iii ۽{UUUEપݻwUVV*##Cv" PvRFF*++ y٣Lر0 رCڳga%>pF22l0ܹ 8uV+!@$ @Blb!`6S L00Bf3h|>!`4hf q 2Lf p! `6S Llj&l106f l6Bf3h8f 5f30)Nl '(FgML0 N4f3"""X,f <>k f Add$!`Df YS`6S ML#"`6S 'N`6S ML#!`6SM`8$`FS~bcc Lll~?AP`FSn0)FgML0զ p k M0Bj%`FS 3f3XM`F &'3`@aaah l6EEE(NtN0f48h ;M0 2f3`|>"## Ldd|>APg3`@h ;M0DX|$0)E&M`0)FK1,_f4v `FS L3`@`h ed"`FShf4 䵶0)V+!3`4`h q 0) & px `FS 3`@---h </3(K38@0F @ '`FS M0h3 8BftH#shKArUcccWkkk|:~xۺny<Р?___vy^vv;.Ijnn>y/ɤy<577ZzN V^^oY6M&IjjjC'@?pn{o:,,Lg###!nDGGwX""">:<~څ1&&cxnn$sc'\v'Sbi7"""ڪf|>Ibjmw[ժ6yޓ5L'orN2} =yau|/bW\k.eee*lXdSKgf;9QOC6l2.kOԹv|Bu*&á0-_\YUU&NT?@ar\gmr:$ ,0AHĉuY9p&N`С***R߾} СCJMMΝ;  T >\JHH tPSS `JKKÇ >|Xiii,;ɤJ|zE бcǔm۶8 ~m۶Miii#SZZ?(QJ-[t:U__O U__/ө-[l޼YAuCtۭtm޼hڴi&JAM6u4.@ TJJJq/?Bhx#/>xT\\\J@,*..|{ p\6m'6M6M.gY1cB~_3fP~~ gvk՚9s&% 3gj\_V\;30ĝwީ+W444hɒ%{#s=ZdIs83׫J}!ӟ<sy<ڵK_~ $R~4rH}Q~ Xn#FXx|A}WPР" >\C%b :ta]$/:%\~[YYYqtw/ o ?N'a˥Yf ]zZp >͜9S$ ~iѢEJJJ"X~O@B,]}ͦM4uT/\˖-bAyftM _VZ+9l߾],0(//ϰ عsw^vkȐ!zݻwVff `L RAAo׻o>kϞ=l|ې!Crԯ_~ݻ@3vޭ' M86lRZ)))`#ur: TSS#pꪫT\\~JIIѶmبG|۷t.h_C]]No(ΆWYYYЖYY~2@nfFbEFFsnllTJJ>38Wmmmϔ.v+==PRR')`gSS&NJ@ii&M$pjҤI*--e(:SKK6lؠ*^WYYYڰaZZZP@Wu);;[=|Z[[uֱQrrrzy|>񨰰PSN4uTA ,>}z^lk*((`(zBSS}vmR~n6D noӬY~͚5K߂D(@kllԲe4gΜ.{9shٲejll$p X$% y^ٳGUUU{O  Pb 5eʔNZp?N@x<ڹsuA#cP~%1 `8*//W]]222>x :vTo߮&Ν;W=J@ijj֭[ڪg}V/jkk eY,?}ȑ#P;ۭM6)""BIII~;=3:|0TJJJk{5w\`'11;Oxwd$&&_WWW `0806U 滻4IENDB`phatch-0.2.7/data/masks/9_pointed_polygon.png0000644000000000000000000004065311346363116021137 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME : B IDATxytuWg,d!J!FVQ#A@QFţgG=ܹsQf(#Ò"%@X kN~J tu?|@՟E!X,ptddfz(\Qttrss+(!!A~~~秄+:r䈢) \`ڸ馛ꌗ_~و5%kF]]]KtMԇ᪃"0\k0x #&&:1\jO#_~F@@ue\0g|GḦ\nB]?G${n7? ej ƟgnIO:ԗA`09smx饗XCѪw_zV̙C2 ƷG^TTT?8b1~򷕒W^ԛA`0.I&y-M43 $#44شiLyyyĉcĉF^^S{oӦMFhh(ǀA`0 `t,o482Œo갾0`ǂϼ@ޚ1cFeffO>QRRtAqS]tQRR>eff*%%öeƌ栠Ñ6bccr|{  6{;&Olk'___#>>MoK'O81 ]v5Uo`9hAEEOI']4p@Y|||#b[CCC5|eee鮻RTTDEE鮻RVVϟPSl#<" :4LqqqڿBBBLyyyz駕fА!C;_~~ժCԩSL836_ 6(==]7xvu]oTzz6l`ʋ$hPt0:ÍL]dddIIIF.]8>^~Xs֬Yù- (..NTPP[g}}?hٲe:{|P[SS$sQ8/Iz״~g?SLL  g?߯^{/Çst a8etطo ѣ=G]wezd۷֭pf驧ҁXCw5|meȐ!:pMOg:O_}Uaaa[w+Kٳ N wU@@/B?N:j.](..No&OL|K]] 'OR 02&O۷[?ﯾ}VNNPJJ 0]GDDq?ns5 9>>>F||1w\nsā ]ڻw/B}'^C3f{|meذaڷo@{ʀҹsgwSrr2ŸB4i}QDUUUڇs=ZrM*w=1{{/TSS@a*>>^|zgsN?ޥ5**J#G[o={rR}} 'NP D=z4kԳgO\R_&LƈM0A_V\k"##i& 0bL=:~***:t[ԧO[1b 9rDr(>ro{#FPVV.]Auw+iРAZt0̧szg)D;JKKӁZܹSw84D;zgr\ᙸvÇ455]gϞm}||gyF/CѝQTAA30qqw"=s:t萞{9y{yy)66;7Ӹq(9C[nUbb" o~ٳWw(55Us/-h;v.\@1@kk. .!cǎ+CF]~ݻwS)nMWp^C`?@DDƏϻ.W_fua~uQ;wԳ>5”zK#GH.nkϧ`i„ \]ȑ#k.}߿﯏?Xv|}}5a f}vݛbmɓ=z޽{+..B_hG;dg'nM$&&ȑ#,& 0 \$EZ,JKK3bP 0;wW^hggΜȑ#u9fбzp^z-xAAAz)D/"q פO>:zh|+p8Կ?~bt@zX4}t.O^^>}:t={j׮]?^)))*,,`Ε QQQJHH K/QK *U۷99 0@ǎ`Nh//u]\-xegg{`JNNٳg)@߿?Et] }b^|EP Ofѣy{{'9E)@ի٣nݺQ Ŕj:s 3h[ nݺi0͙3B.lΜ9 "8p:D!wuy{{ << f6bcc~R UVVjС:}436 Dhh D!@ڵ+&3guڕBѣGSDFH f͚E!5k|||({)''G0* 2DN`3tP.IkСNxx8&7gSp墢B!KIIQTTWO=c=&??? K .*((b&WSS$3q\7d f"""a 2bn"''G&MRII 3(.2d'|Bn'a@|Тw:t)fuuɓFpS1b3ݻkƍ|8rss5aS 0ps Rtt4szg(yuܙB[u!N hhhu]'NP C u릠 kĈ5zhP XVm߾]׿2ԨTe T׮]եKiԩ?~///]CG_t:uJ*//Wmm-"yyy[n Tn4j(M:U7x#\,AVVӵcVr8g RXXt预M:U7|/B 0tQm޼Y*((Puu***TSSChK-#""4zhM:U)))ҥ Сk.k*))i%hnn@\`+$$D}߮qƩ_~)i˖-׿cǎjJUUUo RDDn&M2E))) @BmmvڥoTRRt_SL-ܢhӦMGj`O-on?kЦMZf JJJ% CBB4`'(\SNqpȑYJq׷HM0A'Oְat8Kw^}ڸqZ8BCCP]wu6mƎXںu֮]CRUUU8ktߣGM8Q>|:uDl6ٳGׯW_} .466R ӵkז4}t3F={; j۶mZf<زrayy9SvSN-_'[o˿v]{ї_~JΝk#Fp-Sjرѣ-.\[*==]o%(++#Ν;|ٳnVz:t|||nkjj_/Taaa,ACC?wEJNNԩS5fEDDй6WRRm۶)==]٪Tuuig L:wrQjjRSS5h >:l 77Wׯuٖ@`Y 50hԩ5juF\ViivءtڵK-!k}W^JKKӄ 4h y{{MjnnVnn6nܨ 9ses@.]|r9R]vSn\;w}ݧZ }Q^^, a_~:~xmWGLYYYtdeeu***4o<:Q͛ c:Q\\Gȑ#.EDpB:.\b$[xWD(++Saa!]pk..Ο?>>Hϟ'\d>s:>sN/W)JQQQ @{PQQl .0 pO.\ 'ݮ%K!dv9sÿV__3gθ6T(**RFFp+.u@}},X@ʂ \nՊfrrT[lcna˖-*--%*{t -{"\}14 eeeڻw/]0{̗&6,X@h͛79Sskr=SWyy9h":`J-rL Pzz:0tA%%%."6zz/_N'Le.֥@SS`DΝSuu50j;w@QQV^MGLaզx~f|@GL>f#'OftISl)@qq6l@g\چ T\\Lh+7opiSmm-->|X$áÇf{MJKKsN: vܩR@[6e͛7OIFyZ(//Wnn.]p)*//'t.X@YYN>M\ӧUVVFho.\В%K8KXd.\@hoahժUt%ZJatO[Oyy)׭g}F:g}Fp&ݮKytRv39sFuuutC̙3~"ӁnS-\t ;&TMMM:v옩T7oNyf:Juu͛G'j޼y&t}r&9}~?LʔMG";;۔_v\ϧ#N1|X֭[HO ˣ+*//m-@QQ>C:Ю>CSv@222LO :< hϟ7?nΟ?e˖ѡvl26pO?CO? "YVЦV<… Zr% hS+Wԅ Q/Smjjll$SNfѭ6at)/ /X@/T\\LpuuuuzX@xUWWG0Çիp8ta7 |C mݺխVs`Z5o<:pM͛xAΦs\K<-it/߿_eee)--mU{[Iڴi iT'OrIŋ<*5kVYf YqqJJJf)))q˵=.\pA~) "~.\@0&-[\e˖ USSCW~PMM =b_="kڵt6]#{Lhhh|@g~|;ϗneە11D7nqFzmc@MM͛G.k޼y'N3 C}PVV,:YYY*++# {t:;{=UTTΝ;t_<.ȑ#t;@t]qq.\H$I .<:HҺuxG_<2XV: QQQZr%$\RQQQޒ~);^zIw}7$EGGb(33S6c"#VZZ_ iӦ)##Cw2`egg+ .\NG<+Wr|\Rn @XX^}Uvmt7EDD($$D[nUCC[[O~}t5?)N0$eggϏn\F%''nn @LL֬Yj~~~Zfbbbf?OW%>>^ӟN0N:;}G}ݧ;S:ur}sgLйkԤ#FhϞ=X]?hڵ%ݻwwyGݻw'͘1C~;] h~f̘6ʚŢQFi˖-CYƍӎ;d~ >>^3D#FЉ'L>?i"""(224{lr-t#n͞=[AAAS7߬JN8a8q6o,ApDegg+$$tժdnMw **J˗/p!!!Z|Lޒ~o ֋/{wh9effffMs KiiiJOO.gԩ0 Wvv2˩Urr=j53Zr% ʕ+M4. @XX^yM<k֭jhhpmu[;b `{V^-NIIIڽ{:uD7Lfn]v]^?t:uիW+&&z7@L)!!Ao WO3f=S1cO. õsN9ӳ9rRl IDAT ՚5k܆֬YXDDDzIJϞ=]o @;>}~&1B۶m7Gvܬ1c(33@޽ݻsdhg1bNs. }犊gBCC??۩..{?|}}5m4}TvZ  Ү]웇@WJJrssgZ?&UV)&&u <<\C0>}^SxxN:iʔ)9s&fΜ)SSNK땙)???*566jĈڷoj͚5\p~~~Zfbcc/u릿oիKԭ[w};n;}vE;vۛ চ5j(ڵK#77W={2B 8P^6M'O֞={ nlϞ=}Z+VnѣY@p8o'ew _~uuq̙3v}N EEE믿.???6566귿/_;:5H`3#X۶mO<|566:w;=\Խ{wwUPP]555zꩧ~zw6tX$ooo[ӟtwzj=s:y򤚛;l;:4\ԵkW1B/VDDp;%%%zGߞv{ 5땟>LJNNSncOl׻6 +))IK.U޽iN8}>\ &h JgƍURRbm7]$///7=C^x:uJtopQXXn}GH?vޭ K,tTPP>L~~~JIIb;m0 ;zGw^544zL=m]t'(!!N͘1CVuu[cw|||ZUkjj-\PΝs}s IJLLŋ5|p:j{#<|Yp"##uwf/K^ZEEEnn$Gzw4i$:6lؠ~Z'NPSS[uqi… -*++ci˖-*--}+--ժU4l0-[nH-[aÆiժUso հa+::t9͜9S{UeeZ :yVX!04rHaM3W)((H ҥKկ_?eC=#Gƣkh=CzWY@LSS^~e-]!Ν;+!!A~nF n ++KfRAANPddo+ ?222zA@Q\\z-Q0 =:u/Ch'=z-Z]RpazG}vQE ~XYY5|p-ZZht. 2D˖-SLL pY=ɑj W#Z6MO֊+d5zhp8o'e( 3/00P뮻:tH3gT^^jkk)_vبZ|Ο?OAOZ`ƌCAl۶MO|X{UYYjl6j^$m۶)&&BBgϞ՘1ctK?!($$DԩtP%%%i8pԽ{w uI A0X:uBЙ3gtqF 3f;/I*..gdd[-*,,Luu)11Q=zps&nIr?>''G{UAAUSSFjnl62227ߤa=? l6=g]7o,I Q``.](!!AÆ Ӑ!CZ;1齾 gРǏ+??_:xN>:֪QUUUn55574;w>CԘvV%a{ǎZt,???* @JJJRrrէOuG5;C@yW*//WAA9{*--~'+++ܹs{wuC+Vܹs/]]ҳS+88;5x`%'',ܚ6*++垎/--U~~9={(77WeeeQCCdZy?~\vmbÿnMǏ#Zv|}}Ν;s Rxx ÇkJLLdEN3QdFp믿^_?~R$]奔mٲE~~~D5n8ڵ]\c(44}i߾}tM4IeX( )ShÆ |Cr(e͞=bٳe.{|?ݮYVM4^zIK,-=zTJNN .h;w)pxhݻkѢEJKK.$##C>e`hQQQСC) ؿty׫O>?~\:qsO[nUDD%%%;v(px JǎSjj[~ESjj;F1\a(''G'OKY'OVNNhc8eeeiƌ\f̘,@DzlZn~iΞ~i[N6b׈6 'Nbј1c(H;x75V6Юw^*))˗kΜ9*++@5@EFFƎK1֭[u=bjڵ2dŸ9996mN>M1` ڼybbb(U8{nfP cPVZ5j>L1vk@;:r&MFq5i$9rb о}twZhnn֝wީ}@̭I7o?L1~?͛7bu':{V&MDA.㥗^U]]M1>t!+%%|˻ᆱ7|Sp,""B/VZZŐGyD%%% -&&F}Fuرc>={gӆ ԧOǏkҤI:uҧOm߾]%%%=z?N3 Zljkk9P@[kllÇئw}Wse?=544h݊ӠA:t[VX_|Qdx 0={jŊ5jT;v{Uaa! pmܸQ}u=v&Lgr;w*"")D#GTAAL+((Э*j[ohjlllبɓ' pC{O~vY0 '?޽{p8(8@*l66mڤٳg={lmڴI6Bnu7bەf7MW^yE ,PMM \y& Urr5] ,Ыr !`߈2֭[g\uQQQԒp:RFFUGIDATڪ?~pSj۶m?{ƌӧOS<N>Tϖ(55? n֭[pٟرco߾vYK30 Luuu >,Zxz!IZx) axPݺuSss***(?Na HIENDB`phatch-0.2.7/data/masks/brush.jpg0000644000000000000000000006127011346363116016613 0ustar rootroot00000000000000JFIFHHC  !"$"$  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?ʊ)@4 M|jr5*W$ڤGAN3QKm;742!ۜt\id*\).tE@9B4G'iiCo{S}hNx CMŗM6N#Wȭdv8-0r)SMeeLh>bq@)qI)phi1Nt"r @iLN:v S8n}~t}hP}#1h'QEQK4IOb+Ids}+FO|axliSB1&h[̃n88=*vqp7+ɴ@Y.PCOdQY=10V iIFS_it{\3u'Vӑ$qҚxe Oj@&28M!F- G@GUKo FG;rx6-+G"$Dw89^j CF܅xo\F$@N}ɰ`PkA ;[2=3D$]EO+jM6 Q:*c=);c;{C kU_cYm ,| а\9BJ*{D2/rkrtFæ+t|q @1-t66bq_Zk+*Jӽ6p|S1y-$7QOF2.g: +J8;u`iUzx|d%Uj4lw PZϽ*{H;B#^OROZK+W*]$=]]c@q>{i<߳!V8ӮmZ7:1>E$Q:Z4Ӕl<؈Tm؆ W?I2O5T zZH"_Jk3!-ܞ,ar[[{ Ju匕8i.[@*K>)%YV9=WZur+zjՖȒ rF]ѴFԛd 65{I$ JЛkֲ;6Լ~ha{QxON \9򎂥BCn@(±&E9NFfJ:5,( eSU/t֒h;|U}kOT79<0J-2)ϗ0y拉ڸum85>D`rjQŅ)==jΖ#S"6Gj+kq1ThIT"҃{}T3p09mkI05X"bKdAx8\:^Š~e`9/Vұ#'R=ET%(q׵UfE_ѱ܅=mD eOrƶբ4X`'8|KA#ݞ<KpT_+sմ2erwu*ޝG*3מQRa120YͣIq rOeg%Ļ EOz,!+-` P|)]!V6IMJ婮< SC_Dʱ&1v0tCwһ3pjKD10=* l9"ѡh˖ "4}d0SF3S۲AqW,;%Gjoάoqt5m-y=k^@<k4&2^<6VޙK(#*n:wO i7޴WFm\pZdž̬,?^Zl#Tb8R2Iv1.' 0c"𝼷2(PUGKRy:v&]["e(Wb^xjmRZH<}Żn^٭ϵc\ٜ :uxm`rȊf_{(i@;S,ļUKHv<{o+O`#.sU--Ig<0覣EА!瞂HGX8iPJ UA<zDq-WP1$Ue'mE lNSO'jI n kiUqL4 f$swd-\VpDy#6( њWG1{V-B[8&Q!!}O5rGXğuHGI/yDe fYlpjwT#o ec*XUdӢb<`%1s*=A$ݫ% zCX@ h#hiz$%VE^9}SKݔ3nӓѕ,;U-Hľ^GZµ,1A֩f#@0`m,i*V4aU^ӄ=h[ٲKa_aV3|tY6pH g .ބe=iDGBj1NX,GچPaN*\`K 4[i= sz%!Ce5+Y! $W&K8u-.%WHq7\FR:U֘Žԏڪielਪ& _Oz{[BJNe^ۆAT3$m튎YB1ނ[nF'Zr=*6>¨MM)q)1H;E9bsk>R c=V\X{8sYZqkM [|)c^i\ VFpV9=+N[ҳ. KùTqUܠt$gJwi4QV7BI86v[i F{E֟+S b\JDأYWG.3U":z3vXb2rk#TgxrNp:Y1Ys2ѿ֡EgDe]>/Dvz+xb)Xs!<( >Pszٴ7h/&FDdp֮ qM%Nֺ}Bu;indMsW~ʒߵH&蒖9 stPƍwzmCr)^])4]jMSOx۶2 tgۍ2*2q*ANJzK7̌L8[>d-ҦY2gƎ7J>8O"0n.W*mp";Op7*Zes6Om?#0S5*ʱ%M` ޝ dt4V V0*Qm )fW9jXA8S,kz(^(nNA*Bn9T.mß060*I zT7)#S)h㩬{dCq?SӍ=+-VdJžƚVwg۽.K$1.6ZNa\֓Ӽ[tw5kć%#bw)W 7Yvn桎ѭP\427sz 1#\k ,D{W7zNqT\h_kW]L F'oi k -(+bY/5b@dqwCқQfƻq߭i6zbx.y^>caRPO}v1iicvS@KyW"*d''Bۇ5qKcѣ*D {㧵_D[)[\峃ڭG33zNW`F1jO(:lBI9*G\4j8:+`8J&%1ېTR@r[ݲܹ2Ҳ5)ʷrU-WHl81Jn+ԚēDI,9޹!n W' I%`7#{22pEW!10'%r:vYdJ4@QB"|rH5])'5sIEkh`e,AvͶ28:KBdtID'zWaqCZ6[wK N4T'v+A'jжHjeN4=v))v60=)h((((4SYsڍVaPnIT;S -{uo~UzaQ Q|y?3ep2(MEZ*A^4P=*z(((((((()zUxMPIOEgVⱮԤ XmfZ.bG9ڼcX‘kmʓ4H]Ȟ馗jםxPE.BsѪDq*u&}zߴkC^{(O&["i)GQ[Z*HW5Ko./=*@\*۪J\22?ʧ9"Y~ފjG%^?2KG(l=kA'%1޷l]%g$qZ)XYRp٩W#zFjZ(sEQEQEQEQEQEQEQEQQJ9]adzeڰʇ*G#sziV0Y%7q^yku+ nA-7p77  zW/ig7m}ku0v8ZAIJxWEnW,"N>ll)Z:E'kv-0syof}3[Yxe"rܱLfbr3ߵoD܊ӷe֬3{TN@]9$S)07nREQEQEQEQEQEQEQE qYBB?{!Hakj @=qI$hE;FzoN[I#}{W,cdF-X>&;ƈqzןx Ѕ ָːrIZ_+ȉsq^,-bFC+6VUdUϡ= w`TWAКtגK31]֊= !nտz;R@Rbbm֬[үse99)QEQEQEQEQEQEQEQEQE8y$6yGWVf Jl0rҸ*qd?Ȯ'ı9yR*e](c;VB$wa^yDSsF$*: i)W <7A"[8NҮgMK#Fqg5ZuocOoX/raxws.W,#ihFYT &aHnآ ZrzT*rǭ[#5 YaiQE'4QEQEQEQEQEQEQEQE#t*njb}f$T 3J[UxV,1fb'\o4"YI'T]2F8MaQa22a^}V4@35DNֺ )28V&נnٮ%B,@zVK5p34E0PCcⴭJjX1vf%p9G O j[UI^OZAݑ{T.yvÞ5zsVQE ((((((((5Z#+a$>юjʪ:jqxDnp5k7QI}{ k[dtwUV[;An+#)\mTBFE:?+НP5Z$qiB9$B +4#e2Fe#cZ+,#(tu6ݰ߶c+ZIrdE ޺GP^DJqjXݐy0Ȑի`WmT8MhAY(sQEQEQEQEQEP@(* #ҹR2Ѹ|#'q1HyƱ)u'޸dıuDσ*ƪ0r" 3@~=q!&Nf; gQNt Ύ ^E%ͱxЎ:uTqGhۅy4/,sGXӊ׫<7A`jR3+G,Jӝ%Dԍ$U*h"O*NjF#ִRG9QER7bXiAAh(((((;EQExNs\ֲ4L5Ƒs1V/JghǷc\6nppxV&bEs=~cVbYmz7{| H=i)]ң9Te?c8#ںH–NGleӮj[""YᅵdC$蜝Jm;s5[F('iz榉1?lطl8']`15iʓV(*=ăRQEQEQEQEQEQEw((5JO\W+\9@ќyp~,wǑk|KpOO*v.2#ڸE/ps+z+'YwÕk"0t!W/];e< r+'~D'7aw}cҵ!:G [-ĎY 8l[_g9CZ2|B˲x8þ=1]n%hʪ1޶E,s4^+]$/(>CTñj@l:M^ښ(.3N:REQEQEQEQEQEQEQE(\¥]!Ovce(G^kC[rn"GPrL3Da@^[0'@۞-8#z-.7IT"9 FPsZ R\Ո{?2D5f(((((((((+;PN5,szϗ.I;]GJO[4FּUd;m Op\KjEO'攒sRRw)+GG&Ďk<7}di`}klM.*6F+B1rs$Wkk kҷKs!fUSkBdKJU CZ`XTx`WRrLgEQEQEQEQEQEQEQEQEQE_6ͼ W-@g9,,"8)Kg=+uFFdB 0>kPO!WTמk A$&uuZQQE4H0Icףxp QD0M>>5@9pMjصiʪp685xf4 #̎&kUkPI#fRcPJmJr@&ex E[3 5v9<2EQEQEQEQEQEQEQEQEQAw$n#z_Zd&. 8^iZ'}+#SVtW[cpA\"DWF k1|TnI&Em!u!%A'Wi[FY4Xʨ5Q^9V3!zwۧWWfKE n՘u'Za";H(7q}+uYnpZ&29W#۴F,T|JYdXIx5])'sIE >$ ] )Qz}E VI@ j$+]?&?!0 g]{ue`.%,漯jnPPvr:`|1tV< FF?)S\=/}+mVuG|W,l{Üf2F8]TN&V+,ù&>dQ$F[ Z>dCZxe <03[Ed tloNIH$3rjsZЈF]X6sZzl%:V`\tV95tt-(((((((3Un[#nV%;z^bb1ۉchsܚS3T5 ̙f }5ɥ+=ĒΧ{WyNA[ H$WHDxXٺc-$\̮+֭#ldE$һ[vwE𧜳 8'w"iCiezU}EbmS8˨bG;;g[QLL[0]) ]n|ܪVSLLd}[1H&1 pkVa'MiE:`jÁW-)<  ZfuZkg(MTSPl+YZ̷*h嘊x5D#*qϥpף6F zRf+o@m]_/*$F~H${F#uooq Kmr@U@Sާib]ΰmV'CzJ4U$y2? k\9iVd-u:áoftgRdp Ebڭmrɻ_Z .hR8\V|.[3a=Z{zNw8ju>]b܊cҹXDVF y⼧&59EvCZ<"3LӍ# _1%npJ:}1lėn\cК>4䁖pq`R}@ԞzKOS@NK9 tRB;i cQ Cbnqbzkf#qҠyTir*K%Ңsd _ lF]fO1r}k[CMv95J)b͞T% $rT$k+-$ jKY󥭣҆8%a E|0I4̬)ing`THn%6Jq5 \rѪng$Cڟc,o|ICYOJcoRGoƍ3"{zV^ B$Ti9RpJеDxWO[T[!7Ku$`.F`畦\PǷlv0H5"1h'{u'k[;Ln<7uW[[\)`y} ƭ %\uTTqmx 0Fw1=n2yr+&.Iɩ㼁XA4}fI*I`mBGnV}ԐZ`4EwjyAqilߒJYo-<| GU֣:H=sP !,qjkP:ŭ\xsTg#K0''#fǩAp3#;h/yHsPO[Y@ngy·b)mv;jʇw!8cV[HV9TQc,P&diˌ=*&KxdRy@qn[U*0z?%bH}zVU\p`2XdXH硬]Ny9ub\ʳl2VSpM%VvȮBóyVM&k85qPwwB(q_c6$U؏gD9Wt)$tp:U2h䠩f#5 -X9]ȫf''CSEpH rz{lVrȽ:=+ OsM7D6SH`\O:͹HM "85WבHdK`8=dV . Ҵy6&E|ͻ Y#yVz7늻2@kN-"o.BvZe+6!kpX9RjQlSI7;U]voϘTF@fHcҩ5#MyY@THr9ra$yd ybqhHXOW]{0rOqZjfk qW#G'ϳd;*g`W0@=8[A%Y$=EM\̗HhV?hΗƟƷW6~; `ǣ {7}QYF_ w5Vy FbϽe r3҆gG9&<U/j#E/ OZ7H~q~bv瞔3>v\\ni$pzV(T[_.wqVD\Co48$ 3GcOԮ-'~R)˨ۉC7$w#gpN1.tfghW/qMi,6F[ g֠Ԥ$VvG+U!wq,&͘@MWsUVhX"-Ec̪W*ZY֩i a#&^jo dqQ8.™$4GpGaVl3])إP+DG/@3յ`.R8HMMx1+,q>ޝoku<2M){;K_e@)ea]`jƥLSDH湩iv.dC{fq*Z˚yɑ'`XrHIYLn#'85r QMS*n[kwD'< }jlJ}8JaZ 2sq';ҩ\ۈdq֝`*60%{f.bf-K:UȚX]PgڡCe#D6@# Wj35UI2UqCq#*= v* Fm\ T&tLJ1PZ\LHp GcQ^FPI#CsqAIGJWsXbg|j}I֮%մI*q12"_mA<*%0R[e73p: ne,d *Q2`!rry*2 nt]c5AM0)-3Pg0baPM,`R6/'.`_:5c#Wč*ZcQ=sOFnTۆ}ҐT7 t5b//s;Od\ 8EK6ylX3әm6drњhfP@Me4lǦ Fi9{p.fisҨj7o)3|sXK˄;h@4'P0=XrSNk*~r8Pzu 5 QV`p3kXH9[]HQڞZ-(sҒg 6ob ȸJo.dmZjBtH;0ѴLjωnyOnR:}85FXnZ/3Au+۾N9@Iz َG&0y^1#2QjjI!*A;^Ka,90!2tQۈk RD5p :.j[ bXqqJ} x1yS!ÌEp=A4E6r),c|Ҷzg1o2N:^cD#kdQw]CJ)eH@F^)U9@O;yM3OT2s[6 mA'rCi4^RGLaVc||zUkvx=ʽJ{,* 8H2nƟ5vh,wqY##Y73FUcGZcJ L=:U#;TVld⫵L!ۨ?ʳ5GYrх\5rʣk&yE$N(fVݴZq]qQڬ\fA)c b0)騅O8|ڛ>_8bxTqU-QG:HJ&{>gTqݶݲI'Fr}Pxf'!84$h(('֔6( AiK9$HqBÍ XO7p *TUe g2M!'8\((((((ѓFM>dѓ挚2}hѓ2hɣ4QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEWphatch-0.2.7/data/masks/circle.jpg0000644000000000000000000002440311346363116016726 0ustar rootroot00000000000000JFIFYYC  !"$"$C" 8!1"AQa #2Bq3CR ?@崷iiBiƝ*T:ҌRm$1tW*w+OgR.35.m)UO&;`ǁz-r V򋎢*8=|=:0髗EUqom:ߟH jqu;8<\RA\SRУ:oN2JԓZ{k+q_FTFҶbV_ϧZUяvN.ޗOzHD~:s,}-7S~5i}|}:xZrwjtdbe+nqꔨW6oSRqxKuRGeE/.حuac['RhS:sq2ܬGG`w0qlR1Z[~z1CCgVֿN)IIв;g J?f f}$Ztm0ۯ_]_'=iP(G{OfK锗}IjڄYz,Rs2K᩿q&bb8,]v#JvzR^[o=0tp0}ht׷\.]J9-ׄbLx>.W1 dn]>ˈ.-Fu8_g3-ꧢԩW -vZIJOrEh;RUyyɬw.^k ӫOw J;oMu:.bjKTޖggoVHӣFRrzcI/t&G1Nېu>u! qfuSޫ1}WG ]*Wi~TU;wRo-J>uj1rkd¸xJx^-ͤtSܤzlX:^OXOuK[(ٞuSL'b=fIoiKIԵU+[+whMӭF'NiQ~SOLܑu\vUla{]{hvՃk-*KzMW@z_ҜK\ݝKT8YeS~zOpokO[Kn:[;kۺ6vvn.kԍ:4iAu''1^[m/_K8ݗ3 {ֳŤFƧʔJ}1{kU8w?*o`_#KMwm:TӔ]wqU,V gjҌiSoQImغؼ6%aY%VjS$QOS>e+*)Squ!۫MyM+M-_|P^9OвϺ9 7gyoVISF'NiQ~SOLX<%YV+ڪ%NOImMlq_X+ UJފܧ/I-ޒIM МOI0?rWn4b;򠞶9ӎʗ UsQ𢜓@=;b:o< bye8&^$[7MO@ _[^\ޟ-orl_g09 GJ޲ԡ/ikim4[;kۺ6vvn.kԍ*4iAu''1^[m8蟠\R:ejKʜjxIi-MD2H= 9W7)ҩF2 /F3rm6Rj@G8Ӎ>Yo(RMٓ~n/OڞmgyoVIRFgNqzdM4z5^YiS\:K#eBᆬInUbk˔RKRt4f:ϭpT+F*ea64׹$)4Ǣ󌜹.>?amR5}[{84IFQwqF?1,UbmNڟse8EF+o~VAm6 X5Ї+ɭJ-|SoZ'E+ty&=e(+ y\msו4 Kr)8K7VofhoԒ]R^4Gqvtl\שTh҃NOQbI%l'Jm:UӋluZWRJ\iRZoZNLzA Z]PXcʎ"jSbޢ1_. wԯJlӻTamK9iʪ_ʫqn>{fkQ[W*[ԕ*ԪEtFIM4F7fiu;ec%G1PT?%5ܗ˘,eo>qkܪNRlt/p9dijKo 6~%Ttkz ,ñ\[ ISƅ?)MꜴr)=yrlxbV#o*Vq8Qzf=zr\WNpjRDzLKCq/Gw8,[_˟$m~"Q2>+wpG.ˌi:K*4`.ݦloaǸ?Xc[rm߅e9?s{MaQI1knc*<"Ī&{A,^!mRmwBqqi5+n/y¹k_ʶ2vczR/o%,#?FԛqROrFTji/)eks{yF޵zF(9Τ+m_' 3/_pJ3\BrߴҧߖΓi4`J:Peg:R;}uԔZ8u}A*B[:J0Joω׃0i{[TjPFnZU"(I=8DKS{˻jTYfaCèکﻫzJKZP~!W Ve'_i?n*trjQ?rR^8/ ,]jC19IzR9Ex5' l(^]w)QT4ϻ~{/~- c:c.R*dﮮɽUtS_=*G(R$}Z}ߍ::ּ?ж o%wZLmNjkiR"ģU^Iyo9K_ ~4)t:[GR+Jn(û_mg=KY[_кSu܄~_$3&%g"F #}RlWq*(4Jֵ_(Q_z3_|֏})[@)K%)G_ܱ.(>kKvųn2KFoܴs g!9]ҊJ2禛kzjqPZ8sQ𺉖Xȳ1bne/n=ai^0Pި׫)TE%5?C.U֎[uhV[)Z$ Ѧm5m<Ϥ|c{ԫVLEW쪵% Msrǒo׫VupתaBmE?!U^_-8 /|pΐF)PiQm{]MPZⲌ~ѡ1zZ߶xi[aW5iҲXvӧ߻qZJOzPesseyF⭵ F)ΜE)M a4yK+:r{grv¼~]|N2_&`O1z[9]IӍ[+9;eQIwiE9E@=h|ïyUV N]6M}YTQZ˅Kn*\UZYԩRNRm-8ەg#]9)%֧BI%.r ϰܻۘt{J{i(MyH7Xr?*9 jw6k^NSydԣF_x4K3Jʅ>ڥF"'~o-|3˲1쯓UO~5ӧ)F;o[~[/G{!\m;q_o92ԒixG )9+a{F3IƤZq(G+{Zz`m/ؾe1 YUƵ?7 0%isOC'3U+uTsi}0e'm +'?Lum\dorZ_o .WTiGLܷ)ιWfe{J0QaF*1ُlgnlrupۍ+Tcܒ\iz6#VjRq92^SM&6鏪vS饦FϬm8U[J_MDw%0=3_Xc)h% )5wI|8KTzYK̅+={o}ӪM$i==(rFonnoo+^Wqs^֭VnS9=Rom`p/eSϭvn*bN4P{W47m.{[ԞZ=뫋 x\UIs^᣼PoDs2k򻪫/a^M2O^SeZ  X`pWuBw75te8EOK~A}muΏ4Y`kQI|ӃOzŰ@K-n}uq Uʖ&oJچ})-''F:_/Ey-)ZMk]ԣnMʬWrmnWW6Wo,*ЩkR/qZi4 #zx,H W$}=ͦ=) z_R59nFu qۏ-oi6-0kOxu Ɣ)ŧՒ1i2MP[%VjrIR~[m8@xs/Ƴy l~JʢoqEP4iiF}1uռ=+zh^po[^\qzߪ,%?T^hq;ڴ/3Ze=4:ԞҢ77/.*ש*UNOnRom$^;J yR:wr)x=%:m#pWF8g)n7Uh]*޾wGj- 6]]XQmsBj*f:rOjQtZz uV1F;~*$u-GmypUygf,5[z][X&CsNYfkfm1V4ez9~g&bdE}oez9 d3u"}fkj|rzR~ W\03,erSMXTi4nZ*kˊ75VVns6)?-}ްrgj*[UJ=[QzoskooZ^v5YۼUZ$Ui '=7\z=wR\XBU-OpmQG@? `y;ɺwVz[_)L\Ӗp b+9FS5gUqo|?iwKē^YiUJ0NW.)%F*rѓK㹹FK~]0a>w9F?!VPvʧe#۹R+јmS~>aޭNǹGq^_}L r 3Kn8\s/kփgpi|5}ѩ'YC>sN%FjܺaU:ZI%| gifpYWKyPYo9(E506 oqj8>RΪkf}n~ ߢwbjIѻԔJq?#w\zCgJQx)MW :SR#%sN|{R޶d=uc'7UhT? o{3NRp/RO?9^ 2-Lr]q>έ~Ӥy: {`Hs^/ai:֙lZ^LmH_>S$ǩQKʭs vv{k_phatch-0.2.7/data/masks/circle_blur.jpg0000644000000000000000000000565611346363116017763 0ustar rootroot00000000000000JFIF``C      RI.IrI%I*I$|sJKwN>6l>uU$ݿ~]q_^(X}pB]l"Tɣfk(;N.p z84az0u=^e eeixq3AČMm'j0Jʊ `f256674u2LSkKkkksAm%xXRQRRU^[[[[Z $YQQRRSYD[[Z\L+J**JJJ(#kskkkA.,)), -ͭ%}J>ejlmmj5ת]EIIYd*T+CScQZ(JjksWؙYϓQVV;H,G j(kÌĿ]4p=^e 0F񪾽&TRZ88PC^ڶo CvN3a?,Iw~tӣ<3e͛Ϛ$}ww\JI%r䒥IRI  0@x888888:Σ:S YUIx'9dQeBc򊕡UQDW1ų]YeMIzJX HFc'1|3 1]eZ= T](RE VqYf#1ag/R ]E,JFqf)njNb~qBOEUB3Vbx/naA-AUC:3 ̃>qH(t9(4$бRC23(̡ 888-RJ*4ҳEd@<fj"kjhiIf4h{H4 0iL`q$ 3Lc1I4M&Iy$ 3ILf4L#&4ɦM2iĐ(&kfk[{ZGXsM64cD$b,gffh[rM{ -4K aPU\;3Ւ(mz)'NFic4 ܴEܣ 8h+'NK..&"XU^F4I:IYYܛ|b.CӸ;Ӱc?1!Aa Qq0?!_1 ?2$H!x@Vh#$8x s?'Ѝ +~F?Cp8qZb vs?'̷hVR H!Q^,`9N%)KBHyC+'3s8< x/RIx0F 4p#s1N 0Y bX*I *(**V P"%]lDɛʊ*c %% 2^^^^^\C2\h545555+>SEMIrࠨ̗,EeEEEFKL&9.././俉dDTVTU0AB2\\^X9d )*&ɂ΄_b}_ܖd{2:I J!dZFL6u;e/Ǒ#X8H%HJ!d'SΦ.ǒ̏y ' H(RȕNsu;25{͏0}#'q[;Nu:lnnjK$Fl^su;' P;{:ݍ0~2 ]/ɟ&|/?xez~ \2! Y;P?95S7狗 E^ W xd;n?';KAo$!A1Q 0qa?D'.XL=sǡ;šCȖ%d(f4 AilG@CD8k,N3B(lI?  H\3B '(E!@OiGm бE%x`RE0APpxԩpBи#.QhHy$$jTR@O~%CB?P|p,QjB5(@T4#A(43@QHHtNJ4D!xB! -!$P64%LBWB~DI$!! D1(CI'Qp4 rg$H'ZEBBj+StH8$CY 1$ ME„|18($*`9"&Xn#qBò+q{BF9 bbwCR,J+!؀Xv!X#q[ܟ&XLЄ v'X`D-, HBL" @"0$ ,l<BCB(0k$,f #B<9[53&@e- /!,,d0* PšO".Yb\6 )YBʂ N=ܸ X$x'T  dl7LG3ac,c=cP/D6#|]4`HuL un/QpͨҕĢ Θg rcSr@x  ,$Hp&rFuREo`'zI#36|9j3GRK 3`cف&:?DICWv=xt# _rTjqV=@# cI`+v6jKEU|ږw$9T 6cUTg➖UA7.o˪X-ZOflԏj2O{>׵"9L/~1őjAԊ\.1ym%-X?[: I(!;8z@z!1p{1!ꎙX2^ޣ#h Qcѓ, Z0ߞq`רv6 sH`"Ek37cnf;pL%sa6oG4 d6_w0Q,hd6z,^m Xl%h^`'Wl1lag)(T]c^%F0BA__&9K]K7$ Lj}#US=,``h0^cb7J7^;UJ`hؑTnX?ԽA :OTkۙH5ڧ0-~u_U'[W> Kjf@sqXE('V+tB汅qHQ+e"f26e}b0%(f/7%q+]gnjlp5ZL'8ۢFP~,H\ۘ g3 ĹքIQ-Z17b7!D(1'V61aYs?'U Z U&?W /X= 6_NZPrlԄ!Êt^`vN[-|yj`Ѳ6% _.f >ubP?]twoN⪳#˄5c=,2nnZN, >^ w:ͻySV@\# ϵPSX7dt OTX? ~_T.Z/?H ֨ |R<;5Pb In qMU\]Fi2[m^wAc*1 uq) O3(O|.3jG c>K19Zpk 37cn-v6)L!coIf+J-u1)7Q0eWs}Ҋc.ZX؆uS,>^ܝ[l^=^H[i-k6qrTnR?vûoD4hERݨU:) {b~R JRa*hFgHr BBNj:$ ߳w]% #E2mOF`\y'6QBH :pj6Ѐ-$;U Z]3R"ԇpu.UU1VVv Mj*`rTWz-cCêq/yk,耽`ՙ/׭bނPb.~WXUnp85 f X:ό9#tJc408X]/MsNH`Th{;9&P1ϕ&X$a-d6ԛhWC z4) 5wc \UO, :̯ëtj'k2uv:(VX,/([U np(FQB^I1M4)CCvrIAEP 6 &(9Gg~ ڝS069=,P>fBx{{Ɉl]v-~(FZlK A .)ڇ}5  C!7(<ڷ!ʳ@?$Ӻ)ʻ[d+A ;?f7k2 u75+*̿+, S*LB ̭_l2 JhȪ2֫H*yY|1GH7x9~:I(jD\ȆLj`W 8%tMyumcsխ[e)bYVy_]^X?V`P,uq)`UyV)Ty{vȽ @7 2w}!'Gq95&.c?̄ gGAyf`BG: X3ݠeF7NJeP9/HtLflm @Qk9k›T7{GoKfR09n#t9MY X 4A^taVmce[^?갿QxuVvCP+"X]Ps3 q?FU^ 1.e-Q#@ͱ{/﨑DI8=&UPU8=x{z}O"aq1UΡ)u0oWw 1NnYd)l[w|w$CHhVf,q(4JE] g9=__}>]W!)&+6$e,S pJᬺ*(бf;ڀ7¬tl`V8ڃ#Y}7d Fц-G5嘌-'%Gaf 5^Q!Xu&K<U4,m A K<:,>],ګ(m ?KB>@(iUNƇײZYUV;f,y)3Cj?$r ~[ S'117`ۿ="D$%$uwqM5aٟ[S+9s"uJrroYH^QҬ)ýߋNyVvxڀEhB)k ߾ؕ[t< ]R+ZdSgTŢM3TŽn.k1i9lB36Y6 ;BѼ)İݽ!VC,}Jn˅,ʨHWWvĴjRɴ!a--jڈQ D>PסxV,1!f9)3@,mI"C#psQĥHzouq2D$H"Lf 877&@ .,l۳#k)ppHQXEW~^cQ"V%sV ,AL *h9CGcawJ̭iCD߲ zyF2F΅(RHexnԐhɖeY _n03* ̠|6< bUQD@Ɠh ZP~t!Գګe!d3 )F†,BE! fO>^dy W2(쓩`1:D 0.Q"Ek2/mO`}` $1-O&3aqNzM#bqezEkcKk{|ڃ:r.k ?mMh@1e;@@\ݡ?o﫾}[Eh߇%s=:+g e0n`Fś_c2L7\CQ60H `Rjd5_,|68}K)J>RO Q`5n٠" 7$B:|ےBS=&$I #b}D|1O(&)Ǖ)v8bO2 1пRno,n8 _Y|E.<"-+h%:0f~qjUmgʴAFIZFhoja24v=:3FlKc/?`41ِݱԳZ?X -&)dٰ$uQv0-)l&>IH>ݿ;`,pN z(4vE3XD$H&X=$`hrޚ iCJg_)YQ4 0ߗO9zq+& G#ns` Y5GԱXke֝42',nԯ_Ƿ''~͉X˜US@ɳ} ,rlm׊YVM@`dK\ptvL"@7lRT+aKgq*+/tDg`1>D$H4,O]im jF>4b U7́@N3mrVlG&ܧ1+*fpzζwV4ei1$@&Q1Zdxg;Rj@_,D7%Ռwzlp>`)t یP;~CjH" ?Tno?fDE2"D$H"Ontĉ1 618Ҳ{3ҶezTNEn k*FYCxAؕZC+Zosbh\\! @cJTJƃbXT 5hq)gL&whCAK&5A'w+{Pࡄ NoTV$-; vULJdD $H"D$9x=}9R4-/ d->ŨV:^ֆ[.\)wݎzXZK]pojW-e* CoF%[, vh3uؖ5U+Aolr䳊X <5EK&5'k[pC c6>D̂җk:}%;*2"Mxމ$H"D$/>'S)< n?B_9 \)ە,ڕZٸqjW%e, @6H4,wCKp6L-o̻Գ6w eue+$o 8އM K[q{ı#?x$#3-;j~>2$AcH"D$I߁L(TgF =b_=+,a=:Wkˁۗc+Z\ D[sLoxe]N`S敏ܖUS+,b0éٵ,֫g@XCKR@ u!AG$V7r$ XҖ Z8USi}`3Q"D$H[$Z6N)OҌ8 MUk=[( Vt*)Z;xeX ܙ"O"&@8 5=O"p 1 mx1MX8T=-3f1؃%8]`ǟp>)P#>ֱYK}nk/Dkf4Ҡmˈmٜҹ+"e{>;9,˘~A\ËЫ2$B;-C֫~AX[tp fGM@?K|Ѫœ1h< coKJr(@ mѢVBd r9v;CJp+/cꖀ?8nw12"DYb}h""D fYodZ`'Y*1,h0S)d ȷ>ݶsXȿK`[~JꭊjYKJl +-;Ҳ+JRŭy =g]Gb t|f{^1 7pHFbr Lg>HA AeY;luKEYi]lbKr$4}!IH >P[TȻJuχ=ϧ%!e,]ko}{kn%!ؕZ iHx69sV=0 Ky{,TVn~69Iw113Es\JbAR\Ы13}=P4UV(1wt8қc'1_,$d`CYT82N(!W,j,!nE Mt+s&(&*«a{~^碜aǶ{I'33=;e@ ż>M/q6 o? 67pSXm,6Og1Lbo/eot[*^N$pXθ(Μ炐 pscǏ4$*>PpTȊȴEkţ*j~R~6VR;`J̭ O~^Ҷ6J4g4VvEQ9I'k-HnurbbQ hĂQˌޓ]D:Y*%0fSu곬Vi>i[t;*2[GghUgK'm^0P)ʣNng~cvEUcGeF\E<_LCԖDCGo)6G Ȣp:j!mqdAS/m/diP_=Zǖk _85 ڜ dRF\HH@0cbbE3,">AS+*5Qc_w5fi@1߷ҸN2Qk} \UXBevo@*!Zea/M"[s u1k~86ԏ岱0}۵s1Ŗ8dȒ6CaVbg]E(2%XeXJn*Q8j5oYVi>,g(%Ui6݁{ W )[Mz Z%9T٬Lct\b6kGDQtC4kYމ.MTY[5b?4`o}0\Z;'Y\Qf}?۹OnBD3[SYdP~{N\~![frHBvtF,KU)oӊD8!`tJʷNko۱sY!W䆶_cV/d[aY&0/bWdI~խ="Xh=,Z<Os1lqbam{y| xEGC8CP@ADI#LȐItŸ́RvԠʅVbTH1]nXCZk,Ud|vwD;*ľ~O_o:hmKe.auچ} hUJ)_Aݶ0h9AQ!pxG/Izi8Ov|$Y`ߕڎi=2 iC^钗C8R0t/篦$(sCm˩Q: >8G["iRo7[R!Agcu؂5䆶)+۟m( f_-7枙hb>8n i4cn O؜VX}\c66s`^P/+,Xֽk A6xhaRyFH!(`D 8Asl} o4ʅXG&hu;2U [~wA,OcmC2VdzaTR.v1 z[^fܝ~&l_s 4*()^=% _01|H(E*r4 o]ޏX.~+ =Ao;; 3':)@p uێ"\Ze(Q>#H2VM0A1k%7> ڷZ %"k⁵:s2R:⁕9,bܭl3bTʞh u0zXe|V 8-maFӄ'{~k%"/-o`)bƼlMQO@Z cBuNcV )q%4O&V%κ8&*?IάIXB SszQd?9D+=?\]Wem`MPն:/5ׄ#*?[aIgđ$kmb8V0<9oH' RGszڜ uk6~Hv̰^' oܐ )y~306} W5cx"~L+<]=7 UNNVilc4`ҌY.xۈ$5RC,7AHu |˾-V=x0a  Øc^6wئH"O"M!.n-NX%n9hG IiNL #f:Pb 4G X0##J 0TN\0e+iĕ0to dl`sG3swzYYFcPI vFX>;H{#[FxnHn~6^c陏,|a\_ OƲޛHw|qc#ug?dfaǏ^xEGcZw"")$phatch-0.2.7/data/masks/circle_dotted.jpg0000644000000000000000000005540311346363116020275 0ustar rootroot00000000000000JFIFHH!!      # !"!%'$ '!!    }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ʀ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ;d|Zq+`a$[~zEyt?NM ${B_.6p0Yܨ$*I OCᖹw ]@X22:Ac4Q7/G] e~nddI~|:% v:k_+H#b2W4"8#@G<=g|lnvqm,G##~4H|1ga 'Z!#b,16~>L s ӛs({o0eA`pzcZ>xFo:sjZUWV*+dz$@]usZI4ǚԞ[h$.( ( ( ( ( ( ( ( (9·{MNabYvm';{@o;~'%+kU2QEQp3@ uWKJ ΍X ic~Vx{ jikI{3ڈb˒W `P؟M[XK ^xKo۵3q@^9hOy&XRbѸ@ho @'!7%P'>K@f_|]ݴ *ϘI+SvϾz4xtBn]tVYrB]ˎ9s6x?þ/!i䷻'(!> W^:[Isyu*1.=rhafXèK<3E7+nh[ot bIw&988/|n&Ҽ)c1%;w,A@$aI|W5zGMms o n*HpG`@8RP5TW[:mZ}7eۻ98 DcJ( ( ( ( ( ( (~T3`::/ĿE 3Z_ˏ Bb9 u"5%|6_2C7:,7KLӮ[{ U"?H>~zfۿj:3Ɂm$Z@[_|WZP˕Aʰ꬧ h'» úox[Xühtq`Oeu ךxKo6|%xOT}ܳڱDC7* p df?OPOy1Z1ܛM~;EwD#Шyc~KImn}F$}ی0g5i^KkH廌+ı1|+i:ho8{Չ.z2=~mP:q@r^61#@M:g-k mPCVzJ <5kkb<OP8'g^(%ڀ?M%kC:p|=}3@饿 Umyͨ(?~~>~m@E|9M/R =VPPd5\!$c@XxFӼ;I^,-,bHUU$@xswRu(8<@ 1~̷<[_P}?􄷝-b#}H 21@8~ڿ4k $7W:}ĖH*Lʼn*=^ΓͧiZI" +qБG^8u? 7:=2M΅AlqgiV_EtJn]XSp[AeĜu_6־m֮Y&n$Ԭ.N1g'ٌЧ0O&𮓫W{?M + iE;2 By@9(O^==ƁmflȌOe\2G(csAcgo5ċ 0…Wb$@|ekxE+g-I-Ӣ䜎(bPP@P@P@P@P@P@P8 vx:-wIgF~w],|{U#΀H(72~)oh:^]ZChBǮO# }O:[fOZ^H]FsZh7msEH=}]_a5n]b=I?RS3j+m#W݅浥nKsUR\>^{PԿ BIoCi'8@`{I-zM:a9aٍ;(o^um#Y-8feHdw$ >Y@P@P@P@P@Pv?AP7r1s@uE?4"O^k-y2Ia@xW~7MQ5du!@Nb>n<_?hWĢC9],e69acPjFim,_hls>k|g^UR%eQ6t[P@P@PlP@ 0FO4Զ9DEVc-^B8zv>)K0;iL3 } 76ݹ&:x_eѼ/YiImM.o@v$ @{Yx ~23^%=>{2z  n@ѴkmwWKJA*dBq@uG~io.дfkS8apHμ PP@P@P@P@P};ri+EB RlZ%[HP,n rr<໖(\I9Up0gߨ4M<=xw ( ( ( (3€ (qg_ o:֘fpOoב(UkPҵ_\;$29G=e25HnBN0' ?L{'6KNLDJ >:Ti;I_:P%kq3b/L:e@=Oy٭f%i!g bb2TLf ( ( ( ( h:^ce|"ϗufx889 m,hlb8b"p?*ÿ I?YYjփv:|evF2wRz/Fzw^$cQͭ$m1Fеobr?"GKa`t!|{M;ZQq2X+W | 7[~ ㌬ ܻQ^DX9>$J6Լ=a?6RP9a}Fp@$@P@P@P@PLZldKGAhYxUOOƧ^ErUT3I@Zxg}Ɲ,sDK`ss6eKl[mGP$xGXW$r2NJ8}0i,4bC!-Lo!r(n./ Z4Y&p™gvc9d$p=z}P@P@P@P@P}{WQ>ԼHO:.3F' ټO};XiYdM[Xv =h]ot? YB5=sH td9 ⦁jXA3\7F7q:\eH>eeU—f?O(V{B{˫YB+z@@H=%P@P@P@P*Aд/Sφt7ǚVgˍmqlP-/:jZ;Gd3 < {y|U!nۉ@ K}(־ A4i 3ƶ1).dޠmmoϏ`w|5c Zk(Tڹ*s;8@S!$sP@P@P@P@P@yhfxš/Lfx.b<;&+jOz<*W3襻v4k߳¿JCmfH)\@8'\P_R[φZ/k fX1oˑP\y`XGm<񷍛*K=߄9;N$yC$ǿiSQm@[o$~4rYv *@%P@P@P@Iyq%F18~4x௏>x7:TRIYTc::pg?sLٮn.nٖ(vrI?@h] 4[?oF|ɭ 6x Ϡ@Z[DMڅˆMK^9˫x @>D׼5xNM4-NAO>+LƑ4D\zdqҀ7P@P@P@P@P@P@s_!? |x[[Knw,@8( @0iRWbMOX>dڨD('?0 g ?}5d'^ds$PF?t,zw @.X~ aIue#is<6?0Mijr~f$P-6 DRc 0y v7~%?+.[B+,IT_( ( ( (=nx#^!s5 j隌,YNC)ʰ#@EiQZC4\I8ic]PMK 'P?godo VOP=G /&ƙܑ +lyƏ_ş 4 蚴$ӭ#y!0OkabB#03@: %P@P@P@g)v'mNh.8Tzh_QnM c0B/>$'_'W⎆τ}J̷2(pTq@5P@P@P@P@P@P@dc8n?~]ߋ~M_7o].q擓'vI9h|w?xAխT12a9u!8*FGƿN 6S7|e=e]ӿa;j-A3!?t +@WOX(-2dQ&sá@<'/B|8Nta'?7~# I_E{- R[J dt z( ( ( ~:{ hZs+;vo]Ɣ"UF]7%ǼeaO#ޏhPEmF@F{@8f_A_/WȻ-mY.d=0k&>)#tiISY4 i[C]Ld 0$I ( ( ( ( ( ("UGuD@K3g'?mo^^@ã@&fX|,x},q?$mOH A*9d0|€.Yp?c>7^0vY ԟn͏€8|*τ]~"Xț댎z%H$hu8ea`3@1ڀ ( ( (q€ s@?u #ºhĨӥ2GPT(|%SۭFfG qC8Wi P^;'ݧ-]p>cc#*yT 8 ( ( ( ( ( ( (3E'HeSqwL6ϴ>y0c}Y'r>Mฮq ħZF@ ǵ.;r?T1P@P@P@P@P@P@P@k 2_1a~h_kI4i|<ɹ&䁎0dOmjO_-#96Qor@#fBPgv= /+۸0{PP@P@P@($r("64?xixYƊHQz'|g⫉Ksmmz>|gFx/X~`[q{8\3s @A/P@P@P@P@P@P@P@@T4(VsruO h7OӢ̤ gϊt_iLѡV# 1b>*ѼZ)uMKN]G1E!:W3g P@P@P" KJ ϱZI YFS 0[z-7'XfE6p€>)8~Η6yvӼq4q:[ԻhVAB,g8܁<@ۥ:xwImUG M.ObVņ %B = -P@P@P@P@P@P@P@EO-exŽۆ($_!PM#ã]^j ( ( ( ( ( ( (zhI's@~x@c i\Ml>ЈU|7pu>99'6?q=]Y_Tiź˹1I8'V6Z^ci[u4ۣT@+;_dlšM(@~\:&ϼI&<4~oWKQ(~|Qx{(pڈoc%q@+@P@P@P_5_Ui&hԒdY#@}EK k?Ny}@(p=h9ԯ4kA(,x/Rfg~(=9$*G%H9$ R/ͩ?#~ -lA$ҹc] W6bŰԼyͫ1I刃mNkyGď3$kx?4`޲2?GN(<|N⽴⅖#59eNv*ÞOĿx ~$NDfǒ5ܨNpHt8r ( ( (4?M[šz^zJͤ)d@BqZk_Z5dƣxM 1x">oLcn%n:Ȓ.B507?ր/kR? [Z;TUUes0j{4x4_9a"Hr npSp8z( ( ( ( ( ( iv͍Ɵkowesx':J`)20}hQ&6n֚mk9*Fg=Pܖ.w}q1@?zoxΙe \]X[bD$Y:18 <W:tcak0E GIg+mCvas9;9ߌxdgyP@P@P@]4[jzFk%tQ&={7`x@3f{5OxЦ\ɼ舖F2Ǎ4Ï'׀|?mo7E|< l] ';p9>k,%αK$a4H_qPw7eWGmCWG6wuXI䁒x8P@P@P@P@P@P@~3΃ó&-6IU g⦧6/РvhNyET6qdP-toM&;j%%=mIs?8%S#ؐ=@)'R< ,24$`lZJ+-ڦa1 nvdݎh~7~= w: lߥd$yG?3ӅSoƾ$e̷^My$X]E8mdg%OxWּf_I:[$.p:c *( ( ( jWz6mXNV,JQX{_@.*kl1}<ÿ|UPS1I# [;* Ѓ@[|?i`0W1"e^9Ǖ+\ K)h{rdb~ƤGv??nG?$`@x SM H$5/4/:;;=; jlo$6SM 7`$2!#%Ҁ>{?şu}'6Fef{y0V 0 ( ( ( (@ s>e |Dص[ܢj̲'2?7'#__<+ si&[ I+&܎Bz@7Zz[OmeYH32:|񭷉e~09-q3p@-ےhW8 ( ( ( (@ ǵ-p>x [5"<{8"iApQg3@7n/3kJ÷S0ESd Yr=5 ~ןO-u˟/|v+ncShA&KFt2uHpĎ AJk-è"bf#*:`dh翎E k%mGжbC g`( ( ( (/kޏmO]IHZ7*8QR(뿃?Pkm6u]WO)ȠHh-r !FuAվ|Qa<lU~[@oM']+|4Q`cs‘* =Bd-S◂O'oWäț7$l 8$;;C=iojjwm0Ld(-naXTeu# 8 s@I+Dzۥ9?AҀ@P@P@P@dq@ιBGrڶ%-ˈJ_( # t`b>ne_]՗+{֬,MW-.ViFɹ|Õ 7 /\=ǏbŜoN}fHHŸ 7.p ӞW#8@ ÏhRԗMXeS^p$* ( ( (ϥ cF('8[]Oj^9m8f& E&@*TprF9h+I IdHʰar(?՞C]#Kqgy|rǎ; oܭk O$"v~P 8Ue9-;PEW;u O}$do! hGE$ps秊G{!Լwr].#l'}~Zbv{ڋM>M ""͈)TIVL8 %?F3yu?W{bds&2h ( ( ( (P~SԴ{_.7C x 2az`ho\V]lrqlnl`R@:^k.rt@rr[=~=nOʁ_: ¹u?(<< E xdå+yW<9R@&F3U+[x:r3{ø @ |R*-SM2+;ފ u$ 8 |/_Լ!Yֱy,C{B.pq (@P@P@P7Q4’,THܙ? ]CZn6qyo?$叶@$ !@$@4>%x7!gf-ʥt@ }l2pA {͟ u |3kO^Bm9`#=Yg_Co>kjMQnq&sX?yNy ¾ּouƥ^?oo > ,p? -m_{.,D_.B@$g÷4d=($ ( ( ( ( ($m#E,9'Ҁ:-k<9ڷu-.fcagsOJ ѵ/Xik$e|R99e^2A'8@<_ N浤k^Ȅ-]8v?NxO*it4rvNBy89f> F8P͐|a'S3\yP/>`$`@KP@P@td@ >_Ve#iFz׊ Wzݦj6 -D=@3Em4QwvmT O`=hC<'x#K.[;Rp l00FY90xr={@,LbSlc>=?xkv_<5ti#TtXF,G 'pi'КW_ϬLաH..@nvTp 1 :`rXjoj>6!oZo À߻Qa#m|h'#%P@P@P@P@P@0m~ h#4Xm>L2՗A@>.ۿ WM/ukWc c2.rn|"G<}3 \&q_! Eų(ۖ@OH%[~ݟ-gໟkkrF(Hzde=d/hZÕ#%e5X恜2ǘnP[|5|9}BUY<\<8xzҀ+jņϩjWp[Feg h,X3D״i{bK{\2H4xr(ǡ3PX)x@p QvizEޣ wfb/J)"m8 Ƞ\@"Jmwg܍. 1dC-gp' ]>$QVratde6c&Tb>mx?!ểΗ+&qfb\FFDg <{@~H惪j~ iz+VÏdfK{,2WVS >b ( ( ( ( ( (o4 a[8BN'8@cGJp"=O律?RHpۑ~~sxtfЮZJ8:$ (O!~Ͻ~i#+@߳Ժ??U",FBd hغxzyZuƭ .16u+! n${[{$"Xّ;gb@[u>&o[[䙁hxT/Ѱzhy̿j/ k2éC RJ7G,wҀ1c iԷZ+iSK y&I$NheqO&~*۾8@iN[c'Ac=hG| 񾛣|(𳭤~Gnxa,荸gWp2^:V;XlBhʃH@?5}eh ! >"n@, OjQwD0Ch^ <3h1YjE2mʳ |cEþ?OVE´,->k^]~w $g4碀%)V`PC<ހ! ( ( ( ( ( (>~,ΉK?:6wu Kt<؂# __~ƯxV ?ر c@|,Ƨ %UpP#rH()쿲+e _W_ݠ]ܖ$߰gŨ_fc$|&1bvz}(6rR~EĉS$Mj􅘋)MűpdO-U c#ƣkW[`>y:FEF2H={}WjehS[̟z7X@}~~> ߀\X lי *G+*uݣ>+w^B5YcFW_`RGQT{zߵ5?Hb4YChW)c@#ox{ysgS,7!Td(| D[-=B)t-Y CXlv4 x5Ok[kMZ[Wy۾4Rq2":ڿεaLSi3Zm-e_.5qe3ڀ?,lQk~9x~I.-ŭG'm"9kRWeqer%P\> [Rk(LPPFZݏu3\-͌01twSsy8 s@ @P@P@P@P@P@P@P@Pt~*Ƈؼ9j6Lܷ/}F2pp;};p>uú,.u K+3ȱt>>^kCi֧<*P h Q'~"{QA0#aS@o߾.I1.CKb?;@O>:N$ GM:Ϛ"!<ƀ@$|Z~$k,0ѻi"WQ!0^7UhAׯ3YkM3Ŵ1ȧ*pxb=Sc/>е8-4 ]CbΫy/gpHNp0q@^K8\ǃvFq鹽Mbހps@ @P@P@P@P@P@P@P@P@.}%.ߚ j9P_xMֵBK1J\[ȹ01(q@)?>2r$%αi6''ڀ" ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( phatch-0.2.7/data/masks/cloud.png0000644000000000000000000003331711346363116016603 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME  ΄ IDATxyXuEAr_hqCSp\*SeL5K94]ԷiI-%rIQPI%Eq@Q8?7Ky뺸.3SyxxhС.y2_uٸqkÆ Ur%P(pI9rMロ@P%:7|S*P㣉'瞳ԉj0L[zUTTD % @SNO?!={V5sL#@yyyiڴi@!?~\/.\R4rHk 'd=/ g'M^ 0åkN[nٳD `(ڵk7Ըq./77W/># ;n# JRR&LG CVʕ+d&RΝgM2E6@ 0|pU@@a֮]'ܹsV`=ޚ1c,YK߿RRR4h @s214o\֭SLL a4rHy{{k<[ՆC2F҇~($}=zUCioϟL߾}k.iӆ0 [gȑ# 7N˗/' T@ Ѻuԯ_?~ ڵ@@jҤl&PFv] Ж-[-Zh # z_+P8N 6($$0[dʕ+ cǎZ~j׮M,]TFRII a NqwkƍL >\x6mm۶)880J0k,=#$@ܒ (11QT(kڵ _``6nܨMPN]|Y_~%a)8 U||nرc5|-$@T|Tol6f͚h+z %effjԨQڼy3aT7I/CՊѺuԱcG`YեKD |MM40gVX… A0[S&Moѐ!CtA¨\PMD& M6UbbzEٳgwޑMԪUK_|FI+Ixx֯_|A]tI۶m# 눎ֆ X l{s XTǏ_8… 5vXqOҬYF͍0 okԩ`Ĉ1cư$EZ` BPɖ.]ѣGիA>ZvwNPE>S9[U뫵kתGUe˖ ֚5kPݪy睺|K¨ VZ09;V' @ԪUԷo_(..V~O}ڔl6͚5 ي+Iꫯj̘1SfM-[LAp)S'0ƍk޼ylQF\pњ7ok֬JKKe(N ZҶmXVQRR}AڵK͛7' p!TFFa>\Pڵ5k,c=ѣG'~]vJJJ7a o0Xm~~~Zx1?9sp pϼ0`AI4h@ڶmaWnݴe,EJOO'aYf1 7  M>]M6%0aÆ'!:hǎ$&wEFF0dm6/^ 2䂂sB +?, -]QF)??xyyiժUU]zU ²'>䓊SO)((+iٲe%ͦ8VgQ͚5yE=[.+V@͟?yxxHW,0m40yS_O=@5`'OOO~il6KnenduI3?۷֯_ Y׏+O>%2`ɌrG3 S~_qssӘ1c(f_ ;rlvPvo>V̢sLVV ƨ->`ٔ 07նm[:w(Xf[M]5̶ѣGլY3F4LJKK,V\U vj {rѣ{lb@uis222T~}F2BBB ;ֵkWo) wTԩSDp5۷g*Ç5n8l6 `AAA㏵i&S^VnvUF F/).]/z7pc4 @֭N_]6lPhh(hFxF*R{ڿ D0 -YD .T:uJsV\{O^^^..@5k,vmJ@ھ}|AeffPUCWfT.]h׮]С+U!$$D-R޽}jWTTGyD ,p_%J!w]qqqj۶-#`:tv6oLp'jҥ d fgϞ ֺu z+3gÃQ0\s5|es4sL3QpWC=" @yծ][˗/WϞ=Ii& 4H V\\"##A^ xU\\lesBBBpy1113g wmݦjՊQ0֭[^zZz5zBCC-Z0ZҾ}{yyyiӦMS6no֭N>{Vk1IwZqqm۶j}~.\OOOXB. ĈXFppV^-___k^SLa$,M6W9իe;v͛gШQ#޽[jb,… ҉'V߾Z|9?j֬ T>f5h@Uz*=0yd͘1= /讻Ҟ={U4id={讻RIII*9իWQF]n 44Tڱc9V^|E`pjѢ222\DEE髯'{2Xr C{Q֭ٛC>}aÆJz'| xd\o~:|jԨ^ƌ  /&nJ;R @޽5zhqƚ4iR|opww޽{9deeq*((0 pM0+^^^oIԴiS]z՘+=?NְaC :Ԙ+~~~:~n6Ngux+O<?}իVu)ծ]=@%Yfbbb0a&*Y߾}U~}cݮ'|@%sss~;cI& [.O?4{*ҴiSu޽z @TTSH77q-@6lh[=`Ĉa/P |K__m۶M]taP Ο?`]rV5k@5 P޽+*ƍ#yِ!C*>`u)5hЀFgΜQXXJKK+;dիVZUk]HDEoW0h  *z"`hذN|d0:>>*,,֭[0~x͞=t0}_~ҍ.W<-[&zpz;`֭p&\SzM:9v]999U `BǏW&M]d7nk _ǎ-={$LtЁT0֭[_VI$Hjm۶$~?vڑѨQ#`5͚54nܘ4z^NQvm6lHXH:udI a]$ԩSG K5k/{@@I`1(s`p 0/R`'??_ϓrH IOO`5O=??$3s" ,${ZZi``5`5)))$$Gaa|||H Uff`Tff$PN:E*܏*?}k ޽{Iۺu 99T0b}Wcǎt0]vPRRyXbb5m`۶m i/ $ \ @FF;FJg}?X\JKKv')Ldʺ -LbժUk @vvvMZ@ii,Yr IK.%1L`ӦMJOO/[OI ol~uСΟ?k+l2-Z膓 pmf7/$=\W_};wH|@_sݓ%[SI"RSSuwb+.]Ҝ9sH禓oHRu!l6rrrgt@9M6(.୷*I`pΝSƍߗ7xm߾d0W^y̓V$iZz5`@'OTU\\\毱֮]d^zrMe.C `0ɚ?~L$fiԩi`֭~{9> MZт 4j(ReggyB6YCIDAT?|o2*dz>[ɿB ==]o&PM6mڤy(!IѾ}ԴiSU(??_ڵөSn+EEEE8qb6ɿ@K͘1=@Y`,XUC?^>}ZshҤIJtU:m$7I/78qℼխ[7gђ%K=oݕ@ >?)@ׯdpݻwGr>ѷ~cr>N!CTwoKMMz շo_>|~S $m޼YM4Q۶mكSqqFJ9N;<==.]'(#ácjM5x`7(ɿ SNN{28yd,{e~TWϟgp(__~*((`jԨa IIIIQaa!{3W-[Tʭ 0 ___I:r{4g7V)XP< Rl6p=+W\p ~Q`YYY,ƾ;sWҥKa#77ל@OL{@N>:rrr[222… ߲̽'NTϣ`G5wjpI2p1s2pȑ*y6ISN)<< bTձ`o_wʭpA6kΝU3pg׮](wfoP+rfӹs^XZVVBCCUZZjám۶q*H֭[[n]j+ujÆ *ɺx"{`YU`CWjӦM}eUIZj{`Y~ij G!!!:sK9tZje,%%%1 `jq8Zp HXW_}'NX=zZ @u7o^ Kל9s(h"]tQ0O>DIʕ+S+--ջkb7J(T )==03fwatLiϞ=[R5@F TbbbfVŋ裏%Sٹs&íHRxx?.wwwF 5ٍRzzzgپ}&CHR6m,h%$$urMIIѢE5rJCN]ƍ`\NaaZlSNv\pYa'CHRhhRSSH'Oe˖~Нϲ;{,wgyO5 $լYSGQhh(# `x+VСC : ݅ s1ɓ'ku ,X`(ɓ~Լys۷O0̟?_.z$ /4''G~~~֭ `(gΜ KH8F 6vjܸq*))a W^q_rC?JOOvʨTkҤIr8.]<==sNEFF2 i㒯%[\\X]|yt_rC?RQQ~F"JM2EWvmpC?xMV*k^pp Iڵk6mʨT>LC Qii)ZjJN@رcUXXha#< &eKMMM3K.|/:tHT{a2!ڌ-[x eΝS޽uam M֭[hF.²Իwo:tȔg pe@bbڴi0_݌uy_iiib@dgg+::ԓi $eddӹs2IKKS=tAo^z̙3joJNNV.]tKlxSnumܸQ=zٳg-v+ldjjz쩓'O2ט;w /ZjVд4K| /ѸqT\\l7e%((H+VPn`Q}F 6X668''G{͛;,hj߾'D(\R%%%իl6?PÇWnn峰!_9rfΜ)___`RYYY2e/_NӺuk-YD-Z`DɬXB'OVVVacǎ L?~ jƌ' pQ˖-O?  ]f4sL.sa=S#u;vL={ԩSu+((Oڵcg94h3f(&&0`5{lM>RTzH իW5|M>P*z)T`` @+--ŋ5}t=z@(U+((HӧOפIN P.^O>Do6uT;C?ƌ#';y}]͜9Sϟ' g#<-]rEk׮լYf ؂Oj "(;wjܹZ`&/// 2D&MiP+VСC `͚5ӣ>w !N:iǎA0777KÆ Ӑ!Ctm HڼyzMkݻ`i} `:r<== %%''}r8F'Oٳ eeg7ˋ0XJbbzAXӧGKq8@X[pp;XƲe4l0Fn^&UXX"׏0ޕ+W4tPW8`8@Lﭷ~!ݻ iu (!!AK.%5uT&Vp=ӁTV-`*K,ш# 8 `.^L <0F~~0'|? ?gp֭vڄ͙3Gƍ#VPz'KKMMմi€8RRRt+**0b_iii kڴiڷoAp9/vM9.YfڹsK?Ǝˣ~Y8v~aH\Ž;4i$28pV@@:wL +##C}w}G!WjknnZ| D Pڱca57C4f}2J ph„ Zr%aPPկ_?eggjOhܹA@UHMMULLΟ?O͋/{ (J;wT~( \W@׮]n:ըQ0T:á{No&aPPݺuuߟ0T=裚={6aP`ݻwg}@t/_ѣ|r hZnu֩Ai5l0mڴ0(00]V[& }0LC/$ r fXHAA͛'ooouY6Pѣ߿.]ʒpu9s(""0*..ֿ/***" FI&`1 :u9BXՀW\VV{9͛7~$@h͚5jٲ}`Bz뭷Լys͝;ZQQQzթS'LTs_WXݻW]t#<\g}mjL`eWV-K&MD.\_| j͚5r c튎~; 2DTsj*\R|2YxhN~CQQvء-[(..NIIIܕ0(&&F&XZ~~vޭ[j˖-ڱcs=ܣk #TLQFURDtq8p@SJJRRR+(@xxvΝ;뮻RbÆ Uvv$^zPFڵkN:?}H|||~U.\ŋui:uJOVFF,|||Ԯ];jJ͚5SռysEDDT]Μ9Ç:t<'O/&O,qQzW4}tOOO5lP!!! VhhlrssS͚5%Innn*))ѥKTTT|]|Y/^Թs甑gKbbb4sL#\Lvvbcca(@խ[WfR~E|gzǔIupmP߿bccu91<;V<? }Z/ŋ{n@Mݻwא!C4x`ӯ ={V˖-ӢE}v93P)m6EEE)::Z={Tn\.]Rbb}17[TϞ=գGEFF*""Я_Z7oVbbؙ T6mԶm[EFFT u\|Y'Oǵ&4v@PU|||԰aC)<<\aaa[jժ5k* @5kT͚5wS\\<)77?ĉ:qℾ[F0RIENDB`phatch-0.2.7/data/masks/daisy.png0000644000000000000000000005400411346363116016602 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME L IDATxwT>gwmQDQ ؉54Ql5Q$|j5J bdžX(*MP`~51H>9؝yޙ#  1`tM6 rrrpyl޼7n˗/s…˫o߾dyi=z$裏.ڽ0.\@/͛&&&̏ -\D<@Dؼy3uV=}4>ddd0H"-H$ ֮]~U5._@dgg3P"-!fDVooo022bDRm۶XlQlmmk.Kx HlllpTVM;`[i8 ~A?㏨Q&b@D&(( PkaD H"122®]`ccUݻN"_}j׮3g,,,8GHԩ_~zzzJ/SSS H."C6mT~/_DݺuqOax H BBBT=Upڴi #DJ_,FBBU2 uō7D "U0`Z:g L:@"R%###$&&EmPRRܾ} B"R#G: %ܹ+++KAAɆ!z Dpp0<<<```<$%%… ?pI3,%;vFt`llÇc֬Yl" !EرcϞ=OZZ|Μ9r777L!$)))rXE3EH$GEEsdM6ԩ7N:w…]\FUB&WX!Vb`` F[neq-kזxB!ųgFq0*,,dqDž, j044TkYZZ"** ǎCZnb|~4hrѕz"|k˓>\.{޽{5͛7ٖ\ptŇ~֭̚[8qƯ;Zn"Rh!# E޽ߣG8{,|||;4j5Ҋu cg$044D^^Fŋ V^jźjժxЮ];h055˗/}afP/<¥ҋ#gϞͻ^lllrmҽ{w]ȑ#/^|o99937. nv#711|L0Am֭[Ox?|yϞ=raEܹsڑ?~\^J^+ܹu@vvА2.7oV*O?Yr]8j}f͚ȑ#d:uB͚5n-,,СC~k֬^ך7oWPwnǏMpkՋ 'O *fff3g% \ܺuKc=z$LNNNrL&VYYY< M̋䎎̙*QcB˖- kGY*]vaȐ!pzzz:t(&VA\*X[[k7|AѩiӦJǎZףN:< 8333YWEVgnkks3#((H?+s5b< kZՃj=zP9ceر~N{nL8QK !r ߠ [[[̼w:/jPvm>}Z#Gm\D vܩuommVZs祛4iǏVZ~< 000Кu֭uMti[nƮ.IB,Hd2VvrJ6l JN-S)޽{:Ӡ:b@<(kh֬|B;jlڴ nnnΝ;ܱXhàA*y_&,ܩX))-** :u(BgҤI4.]NH1x mfffX~= w͛7gxJ*BCC1{lgY\\Wrb@<o~~~,r XBpKbb"^|ɝbEDDsuVxJ`WWWܹ ŋ y?D"Z vvv];;;A_^SSSԬYgbb] Q5Zjy{@$aJIP@b@ wu:wC;7fP ,L޽{38 R˗/3R̛7aleoun ޹uQ^RR€Jqmvz\^/;v쀏JƍáC_~zg}W_}FA$@:ggg]lj')3lɓv -[ ##wg}U8===YՃ%) ```M6Ɔɓ'&{(@'''i*VUdؿ?V^;v9~ի[.(c@ ,رcL4lΝc$UV8|Fcvv66mڄիWɓZG4" z–-[JC*aPyʐJ6lOܺu | jԨ={.R ###vXb)g? жojŒ3XSf4c@͛7‚a m%[ݻ2e Uoɒ%hР`@,JWTTٳg#99֭C&MX`刏g$@QohhP8qΝÐ!C4rݴ4ܿ0" p%dff2^p .???XǬY4n^iC1fp%Y[[㫯Brr2.]ZUi8@,??S#F͛7qF?[̙3L&ѣG Q% sh۶Z())᧌HΝ;ǕWf*N:v`wcΜ9 T.]zkV"RHL|ݻwS,*lmmk׮aƌزeR 5jݻ H =VZ-Z@˖-ѼysX[[|=ЩS'LPSgdd`߾}<* 7nŋѻwoW㣁DwssèQ{ndeeɓ;w.vqԂ޽{c<2˗/oELLF6n܈}2\" ıcǴvвeKt!!!pss|)QPP@ѣGR t&M{Vx={ *GV={K.hݺ5LLLbbK= ˗|xԯ_{CP:~8%RX1rH:t>ď?Ν;kM@+〣tNUhݺ5N8-[ݽBqE2L"ڽ{F#ƌG"55/F֭!H2o %%۶mD"zk׮aҥ/d2>HJJJrNѬ0rH;v )))Xp!zڲQ^?k`̙L#66瑞뢯nݺax!/^͛C$Tv 'Oɓ) '''psEBB:v{. DD2L);Ghh(N>ӧO#,,utȘ֯_7o2%޽{w^xyy HI?O*0i$ܽ{֭CF;ٳGt/^H~w.]|^:ϟ?Ǯ]r +W\' "ZтΝ;|~zr@d2L6AV:|:D~… |ο֭[V~Ö-[p)ADZ'&&\ohhO?X~=|||b9%%%a,t\.Ǹq i> 9ܹh] ˗/Wɜ kaÆ 裏i7oã߱ѣ1zhX[[3J*((32339K&M/^0"oժUܹsq=L>Zɘ7o "-lll0g$%%az|7s)`nn7oΎaJMMk0~x3fff H V^kvp?oaDbbb !J1}t$%%aʔ)f҉m@iՑX'Nq 4R׮]Q~}?UTa J|r >cDq={Ǝ_E Ɨ\6i.\(AD,\Pg:_GGGAD$@<'tf8Pyyy;v, "qTrڱct СC ҹbP...z*LMMW\ѹm)rHNN@,]T';TD"A||<6m0tǏၜ>L&Ð!CPPP0t_|? JLL_ t޽{vZF D#Gy H<{ :5GH&a<@Dc>sYTҭ[0eAD#vڅիW b[y X#GE H={ Ç+Dnn. "bcǎL@A Ν;u)_3""- ooo<~U0\.G.]{nm;O(PNNBCCQ\\0t \$"%gϞ L&)eTU вeKADrrr;w6PLٳg H >\Н? %JII!sHOذas5Jt ADDիQTT$,x !.. HѸqc\za}EZZ "RÇgZ=B~{ -\PpSP{ H=a2lvBΝ  zYYYܹsQ "RB x =}=z@~~> "Rpv,4KBB I$::+V`EjrUp~"";q;ރH}v0 ""HMME&M@IR?3UV ""R-ZP v킷7~w mܸǏՏiX`,,,*DDDJt}4hϞ=uʾUVl"""%),,Dhh_ܽ{[Ƹq㐗V"""Rc˶ZOS5dtܙEDDgφ+""z3S@D$ضm~G=zTYY&"""0d@D$ɈƊ+@R4o9w[.]={@&1!zzzѣ&Lƍ"33V²eː@RXXX ,, cǎ [Hd2ߏիWcǎx%CJqaذa` ;wf\RgPN5j_|!CА-JDoaժU\Χ pwwɓѿ%t?~}/֭)So߾HN>A C$kÊcXp!ׯzFqq1_""}3gDΝZDDOXx1/ fB>}D>""z˫'-XgΜa Pcڴi VHDD;~8ϟ0m+,--1i$3l""*7o֭[B1ƌI&Ғ-BDDy!::ϟ?g VD" 8}DDPOCllv"?3 $""*\_~ǏǓ'OD駟V$""t7ׯ׎`ɒ%g)޽{{i:"pvDDD ԩS'\|NotwD"ak)A||<>.lmmq%>͏HrrrUVm^CDGG'""R \۶mF5~E"""]0޽[ٳgV ""Rh7)7n,?u'""R+W?͛7^3q""" P^=9s{V~ФI&NDD!,,,yfDEEA___i#͕1q""" sI)))dLH5iϟG_<} i(kkk޽ÇWJ<==7lؐ i(X>R~MQÆ NҘ۹s'>cU8{,֬YD@.]GGʍ ..LH <|:t+W*6p!&JDDp!ULo(..fDDD.%¢Et4\nn.BBB_VZa޽;$ &""P֭bcc+_whРS&""@/^@HHSvݻ7""" @\|Y<<<ЫW/t000`DDDj +xZlmۢm۶WD"[H oߎݻ+';;;Ehܸ1ׯۆ UV'###qhܸ15jwww)ǏQfMx*U~S兺uΎFDDcǎŢE4(0[.WWW8;;Ffk@i WWWԨQ...^:`kkz!"""@.iii]B J*xkT*}FFF[HرcoLO7>Çqr$ `jj J044I^(,,Dqq1rss5QCII ^xLm۶!$${))T*˿$ 6lΟ&%%_?SB$aʕ4h ""˃ѨOTT;""RUV_| Hi>} ooo<|_#j7߰'""2d;;j3f0""Rb|'ؾ}OСCҤaРAطo_ׯ-[Οf֭_{;*ҵkW/H$ ɓhݺ5z2 O(Y@@={ QiJJJ{n,Xqqq{Dعs';""Rk׮aÆ X~=*:PGGG8q *L&عs'Sgp@ER)Οʭ 8v9xp)@7a޽000`DDo@fpm@ԩS'NT*eDDp54k CYdkk;v'"*mQR111psscDD˗3 #01H$š5k08~8Д \+̚5AL&C.]w^@bڵ3FƍqM@; ..%"7n w/,'''ܹ?xxx_D"ajċ; "Rڵkd,4O?Ν;3""k޼9qUFBTT "R|h.\`,4C-pA^EDdӧO "wpttĖ-[ oV^سg<== CEx ~' :AL&C0X֧~hAD&iiiÇ É'xޟHbD98Ur "R3 Cx3i &[n B `РAXj"" 3 %%aP,OOO={4Б#G L0La߾}prr^@DjԨ"=zap@1,YpDD8y$`P9=zmDDZݻANNP+V剈+.] HPD"lٲciΝ;tPD ?V'"R999ERR`P6θr DDZѣhӦ JJJF%H$͛'"r...xN:08P> ˖-ckϟnb,R|2ṯcЪU+ > oӓ-MDc'N0 O?Ett4[HGA<X[[ƍf+'N 00 *' p̙iӦ;v,ンgB" //uEJJ H$¢E  ~!00-KD$0]vEDY0CN!11իWg 兼Ai n݂![UŔ)SPfM̝;:ub(D0h Q 8a|GlM%`U5HMM=""c@]pssC^ؒ 3g3fx@&MƳ×_~ t0aؒ ٳgSNEVVֿ~gϞ AO#)) FFFlJJOOǂ dɒ˝;wPfMFDZ_E.󯤔='"q BW === 6-XA7n!Cŋ#??Li6HۈD"̟?"aB'''`9;w}􁗗VZr=6j֬>Cfa-`֭ʨ;v pȑ nݺ@H+]zGII ssstܙXhj׮=zT=z0T"%9s խ[}a\t֍"99'N3Ǝ;w(u9B<ΝC o>DӦMD"aZӧ0ww_QUVUDJDt :uµkxzz_~ Zx H$£GPZ5_n/_/*}իW3p"%rvvuȑ#1}tXZZ2y&֭blIDATh:uÇJ " ~b,\Xt;+E]6>cu`WF&M˗!)x%33#GD ǐdԩ@ ///5ҹsիc8uJ߿iӦH +׮]Cpp0z۷o3JU>E C̝;GÆ pB<{L-"հԭ[cƌAff&CBg+BBB쌉'j_/D),,DTT\]]1sL>ツZn ___@@&:t(ѿٳ2L#"11Gammݻ㧟~ʫu5kΟH 7oٷo|}}ѫW/XS@+ 0gY\l߾#F+ԩ?'{b$"R-Z(r9n W\a'n9{vEKOODZcx$$$hv 4i҄G"5prrR5Ob{_z1APs+heR111hӦC&͛8s q1$&& bǰ'O#7nT*N*VeXx1 m /NNNz,\t /^ĥK+Wŋ `׮]<"ɒ%K0j(G틩SSЙ9sFP=D;M6hڴ)jԨkkkXVV?~d 99r=PYΝ3"5IHHP,ub~!K 6w///\~355E~~>'Ũ zL"udVa/о}{>ydDFF b[źqϟ?g_VVVoH$ 5j>x :t___lܸQPS kN0*nj"S5lP~/F~~g޼ys a*D$$=...1cN*ghhXᩘYkݺ5C v1^ff&M''' 4O=<>SLygnb0eԷo_̵(יmy%n݊ݻzۻ(>_4hL6eHbtzGtSj%$B" *,.{?Ղa/8둑NI﫯Rʇ,.N]CCaXVer@ף WV5m4žQFA~pBCNBbbj^W,.Nb ""87gΜpgՄ&԰2]GGcbܹHLLDeeS_PPF#$ &m=o޼yLPC=$>(,,TӘ1c+"v%˅l[nDBB|8f͚~SNԩS1ex{{F# T4442,{FEEy Hnn0 :t(f/\r}|gLN/PSSD0zh3&Lȑ#`0::_xXjqn 00:={fk[ccc#//?mo1Q=2e @,ȾO$ܣ֭{@=B?w֭[ٽQ8z˗/GGGVhdQ]]^QQQݭ9r$A,#сK~~5{ ;eee/`ҺO0 cذaZĝ5k x0^^o{w`????&X}>>|a b 6mڄ}98ZJ@f׉,ؾ};Kl6T7o:d5"lڴIy?~$N>+1bSm?q"VUU ܾ}W^U\!F,H]#999XhdftvvJ^:h4m1b@9@HH>20;;kӧ]' >b&'wƊ+`4ekOmÇoO$>>QQQe1hDFF۸k.l߾o("f6%Fł7x~w{X,W);;[/&..Nѷ^I˖-CRR"yRk׮A X" ⋒l93F>|X65L &@bΜ9Huuu|-ۀK.jXHqLҥK˷ي|-:tHXh6۷oCXP_rO3,='Ʉtٶ_bIi: {8XVE<77WqfffbIf[,Sw\ (!*++]چK.aΜ98p*r~ (9޽[̙3*䶐 )))qٱ=@*JuY/F{{KB\\ܬ+vd2)d7!ͰHC1eL/^ιhhhJ0k,… ۷%S31#?UUU*k߾}9s&OUj*2sP\\~Ahhd+uM r.*ǿuVZH\\͵eϞ=溺,KnѬo.Eár0evvcUCfYf̘!_.kZ@W[[kz=VZ`E7Pr:זLU ACMM$s5.Xbcca0>$v ݻAΝ;U_:>,]^'{PClذaÒg.C mmmppssSm=#"??ߥ}駟=%o۶mpdLL M\&:;;eΝ;!Pm ((gm9<@^"# ¼3VX! F{=aZ3gd0n.ooﻓ1h ɑĵP:t(1l0YÆ q@rr2L&xyy)nFHMM3g=&j9999s 99YGii);={S3 |Eɟ/_T77qFa0FQ7fpH V+$J/Τ7|ӧ#??g\~&0J -lVb?cd'&&Fإ۹6$04I~_|Y 4}=zHNNfy@|2X0JŋKx뭷?vɓ'aXC C!\"/F.d۶m_׋ 60o .Dt[l֭[%Ӟ͛7#!! DPPz)aذaVEnn.~G2Y0,$bԨQŐ!C\ޖ&L8nb)o$&l˟#D,&MBuu5]WFB"rN [l?GQQQQ̞=VA"r#%%%ǎ?GU&M xzz:GEPPO4Iˍ70b̙3)3Xt)|"%"^wʱmVˤq\h4 ˖-sq ¤I #G`…y|!͛Ǐ3D*KD&ƍa0{?GH"##Lp}}=@YYƍٳg, 4 Ν;/Ļヒ<<֭[ˤ/Ɉ7N<~?޽{zj>GHZ[[`/"b@$77o<B 11/2'60 yFxxt:|1sd+Wʕ+1c xyy_D} fJjIENDB`phatch-0.2.7/data/masks/gradient_center.jpg0000644000000000000000000001701711346363116020625 0ustar rootroot00000000000000JFIFHHC  !"$"$  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?Wu;4yF(~zօh[֍j'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ&'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ+ڏ'ڏ'ڏ'ڏ'ڏ&'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ښU;θϟ6ZB޴mVj'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ&'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ&&'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ'ڏ&'ښJ+:gwaաoڴ-Vh[֍^ wGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGMxŠq޳+>g\w=6oڴ-Vjз~աoW@ç4'ڏ'ڏ&'ڏ'ڏ&'ڏ'ړ}}}}}}}}}}}}}}}}}}}}}}}}}QT+>g\V}zθY=6oڴ-F޴-Fߵh[֍]zGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGMxŠqY>ⳮ+>g\V}zϞZз zѷZoڴ-Vh[ѠaO}}g\V}g\wθY>~zօh[֍jзZ6B޴mB޴mU0>y>y>y>y>y>y>y>y>y>y>y>y>y>y>y>y>y>y>y>y>y>y>y4y>y>y4y>׌(wq޳+:gVugwϸ zз~աoڴmVjѷZoڴ-hSj<g\V}g\wq޳+>zl=kBߵh[֍h[zзzзZ6B޴mU0>y>y>y>y>y>y>y>y>y>y>y4y>y4y>y>y4y>y>y>y4y>y>y>׌(wqYq޳+:gVuzϸYqYִ-Vjѷ zѷ ~գoZoZoZz4 )O/GGIQR>y>y>y>y>y>y>y>ԞO/GGGGGGMxŠq޳+:gwq޳+>g\V}zθY>~zօjзZ6B޴mB޴mVjѷ zѷ zѷaO}}}}}}}}}}}}}}}h}}}}QT;ugVugwq޳+>g\V}g\V}zϟ6oZFߵh[~աoZ6Bߵhօh[zѷZz4 =OOO'KQy>ԾM'KQQRy>ԾMOO'K^0\wθq޳+:+:+:gVuzϸaZoZ6oZ6oڴmVjуh[~աoZF޴mU04y>y>y>y>y4y>y>y>y>y>y>y>y4y4y>׌(wq޳+:gVugwϸqY>ⳮ;}g֛ZзZF޴-Fߵh[~աoZ6oڴmVh[zѷ z'ڏ'ړ}}}}g\wθθY?Zl=kB޴-F޴-Fߵh[~աoڴmB޴mB޴mVjзZ6Fߵ^ wGGGGGGGGGGGMxŠqY>ⳮ;}zθYq޳+:gwϸqYqYִ-Bߵh ~գoڴ-Vjзzз~աoڴmVjѷ zѷ z&iⳮ;}g\wq޳+:gwϸY>ⳮ+>g\V}g֛Zз zѷZFߵh[֍jзZ6oZ6oڴmBߵh ~գoZoڮƁ?aESY:gV}g\V}g\wθYq޳;uzϸq޳+>Mh[ ~գoZoZoZoZF޴-Vh[zзzзZoگFJwKQRy>ԾO'HtW>g\V}g\wqYq޳+:;uzϟg\wθqY?ZHzօh[zзZ6oڴmBߵhօh[~գoڴ-B޴mVh[ zѷZh{jⳮ+>g\V}g\V}g\V}g\V}g\V}zΟ$?z-Bߵhօh ~գoZFߵh[~աoZ6B޴mBߵh zзZ6Bߵhօ^ W(SqY>g\wqY:;ugwqY>g\V}g\wqY>zl=kBߵh[֍h[~աoZ6oZ6B޴mVjѷ zѷZoڴ-F޴-B޴mV_Y07>;ugVuzϸYq޳;}zθYqY:gwϸY>g\V}gMh[ zѷ ~գoڴ-Vh[֍h[~աoZ6oڴmVhօjзZ6F޴-U(ⳮ;}zθY:gVuzϸYqY>ִ-B޴mVjѷ zѷZoڴ-Vh[ zѷZ6oڴ-F޴mB޴-U(I{{{{$pީ\Vugwq޳;}g\wθqYq޳;uzϸY>g\V}zϟ6oڴ-VjзZ6Bߵh ~գoڴ-VjзZ6oZ6oZ6Bߵhօj'IRyyy07>g\V}g\VuzϸYugVugVugwqYq޳+>gO֒oڴ-F޴-F޴-F޴-Fߵh[zзZ6oڴmVjѷZBߵ_ΣHᇽRY>ⳮ+:gV}g\wq޳;ugVugwϸϸYִ-BߵhօjѷZFߵh[~աoZF޴mVjзzѷ z'GGGGGGGGGLzq޳+:gwq޳;}zθYqYqY:gV}g\V|i zзzз~աoڴmVhօh ~գoڴ-Vjз~z& =O;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ:;ޏ:;ޏ;ޏ:#Jg\wθqY:gVugwϸY>g\w?Zl=kBߵh[zзzзZ6B޴mBߵhօh ~գoZ~& *O;ޏ;ޏ;ޏ;ޓ8aTn;uzϸY:;ugVugVuzϸqYqYVjзZ6oڴmVh zѷZoڴ-Fߵh[~z& *O;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޙ#Jⳮ+>ⳮ+>⳧Y:gwϸqYqYBߵh[zз~աoڴmBߵh ~գoZFߵh[(gwϸq޳;}g֛Zз ~գoZF޴-F޴-Vjз~աoڴmLTwwwuwwwwwwwwwwwwwwww2G *zθY:gwϞ;}g\w:+>zl=kB޴-FաoڴmVh[֍hօjзzԞwwwwwuuwwwwwwwwuwwuwww2G *zϸY>g\wqY:;uzϸYִ-B޴mVh zѷ ~գoڴ-V^ΣΣHRYq޳;}g\V}g\wqY>zl?z-B޴mVh zѷZFߵh[0QI{{{{{{{{{{{{{{{{{{{{Q{{{{{$p¨wqY:;uzϸqYִ-B޴mVh zѷ ~գoW`ޤ8aT+:+:+:;uzϸYaZoZ6oZ6B޴mBߵ_HQYq޳;ugVuzϸYִ-B޴mVh ~գoگDEIQ{{QQ{{{{Q{{{{Q{{{{Q{Q{{{{{{{Q{Sdp¨VugwqY>Mh[ zѷ ~գoZLTuwwwwwwwuwwwwwwuuwwwwuwwwwwwwwuwww2G *gwϸϸYִ-Vh zѷW`{{{{{{{{{{{Q{{{{{{{{{{{{{{{{{{{{Q{{{dpިwqY>Mh[ zѷZ~& *O;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ:;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ;ޏ:;ޏ:;ޏ;ޏ;ޏ;ޙ#FgwqYaZB޴mLSz]2a`lla 6l96& bl0l bl `͂UЮ7B`_} \+°WЯB`_}W eaH؛a `d?Nbl0s`lM6d 6 6 6WЯBV +ЫX+~¾} +WЭ_} _Bp~ç˦ aþ 6l <6 a  6`l9a`l0؛ 6 B~z°W_} _Bp_B=+V W +m;pe l `llM,6 `l0؛ 6 bl0{`l96l03} ¸WЯB= +W_BWЮW [BWЬ¸w;pç˦D 6lM6Þ6&Dxl  6 6l |6XlM`lMf\+} +W_BUW\+W ߾m ®p¸WUЮ>]2aa`l áC <6a؛`d;bl  6& 6 _p:pp_BW+WЮ¸V WB}\+}K.$lM`l0a@6l `lMe!þbl0bl 7Я\+V;} ¸U ;7_B] _Bp;} +tYt 6& |6XlM 6؛ 6 l Ma 6lp¾W+WЮU _BW+W +~;`¸tYtsa,6`l0a6a6l `d e 6& 6 WЬþ`W W\;V \+V ¸w \+}K.xl06,6 6C 6& 6&  lMxl0a6 BWW_CW +V X+WЯ\;ЯX+] WBW_BBWK.#a`lM `l9bl |6]6&Ha6 6 B~z+WЮW \+p¿= BU +^~¾PЯBtYta6& e bdM <6 l a 6l  6p+wЯ\+WЯX+V \+wЯ_BUWЮ¸V_B} e`d0؛`l0؛`l0ؙ,6`lta$tpa6Þ 6l6 _}Bw BW _Bw _BW\+pøV \+OM"l|6l0a!aþ,6& 6]6l0 6& 6 WЬ;WWBp+hWЮ;`\*+UV BWЮç˦aaþ. 6lMbll9a |6XlM,2Xl0؛ 6aapBV _`W\+W ߾m ¸WЬz¾}_B} >]2 #`la6!sal 2l  6a} \*v W ¿} _BW\*} °UV +} \:},d dl `l . 6l 6þbdM 6l0؛bl03`¾} \;Ю+W +pB} } WBuV WaC l  6a6Xl9bl bl aaaf\+} p_BW W BWЮ°WЯBVt+Ю>]2 6Xl0؛ 62l9bl aC 6 a6 +W Bv t+W\+hWЮW \+ЫX*+} \+Ю>]2a6a6Þ!xl0؛`lؙ 68l  6 6WЮ+W_p+} ¸uЯX+W\+pC`V lM ,6a% 6l0w`lM :d e `͂p_CWЯt+} _Bp;} \+] } W\+OL6l |6]6l bdM6a6 a aa6lpB`B= t+~°WW °UV t+w +}K.`l0a6]6l <6d  6& `l؛ 28l  6aaWЮx+}°WЮ+m _CV ¾`VЭB~ç˦Ca 6l a 6&wa@ l ,6؛ 6 +pX+w _BUW\+WЯBu \+] W\+`_BWK. 2a <2C 6a6l;bdMl0؛.a o\+} \;`+pX+~zW _B= p;p:},d9dlp؛ 6l0 6dMxl0؛a  2l 6&abl 6 _pö`X+W_BWЮ;V ¸WЮW t+W\:},d 6aaaawa 6Xl0a ЭX+V w\+} +V \;ЯX+~z°UW_CWЫЯBOM6&wa a@aa aþ 6&!þbl0 6&3} _} WX;^} W [Bw X+W WB~øV \*OM6l 6 6l 6&؛,6l0l0؛ 6& `͂~z¾} w +ЯX+W߾p\+p®pX+W\:},d cþ 6l bd0xl0؛ 6 2þbl bl 6 ®} +ЯWBpW_C} WBV w+uЮç˦Ca,6&saCa 6!@a bl0bX+~z+W_] \+Я_BW߾} +Ю`_BW _C˦@aþa 2a6 `la6aeÞ 6l 7Юt+] ;} t+} \+BWЯ\+`Ы_C} Wbl bl 2a  6 aa`lapBV ÿ= _BV X+~zþ`_} _B} _CW \:},l dlM 6\6 aa6þ 6&a˦ ؛`+`_B~W ¿} W+} ¾`ЯB} °WK. 2F ˦ 6dM6l0axd;aa6pB] +pW_} \+Ю¨W +V \;Ы¿} e l #`l0a`l0aa 6þ 6&s! a c} _CVЮWЬ+p+pUЮpWЮ:},l0#aaae <6lM6l0ț :8d0aa `l} +} B} _B} ¸w X+W X*+p_BWK. 2l0a6a`lpa`l0aa !Cea <6 f\+Ы¸w W_B} \;PWЬ+ЯׁX+W\:},l0`l;6& 6 ؛bl bd;bl0؛6l %+p_CpB} \+`¸wЯ\+] ¸W +W\:},d 6l `l ! a |6l0a`l؛ 6&  6 BpwЮ¾p+pBp\+Ю*+} B] >]2adl;bl0sc `l `l0a2a`l96lp3} \+WЯB= UЯX+W *pB} _}_BUЮ>]2 e؛ 6& 6lMat؛ 6@`l9a 6 \+` ¾} \+p\+Ю¾} \+W [Bv \+OM6l blsa `l `ll0 6& a `lW \+W ;Я_BV Bp°WЯBV \+hW\+Яe! 6l;bl <6  6a`da a 6 \+`¸W \+Я_BW\;V WЬ¸VЬ+W >]2 `l 6a:Kaaþaa%aabl03`¸U;Ю+W X+W+WЯ_} _BWWB`>]6C `l `lpa6l9bl bl0,6a6l¸WЬW X+`X+p+W *V +}¿} >]6@؛6aa2l0sa ˦aCaa6&3} ®`_BW ¸WЯ\+pl*~z°WЯC ;`e! 6l;a bdMa 6lLC 6l 6&3} W BW pT+W߾p¸W ¿} ¾^~C˦ 6þ 6l  l0pbl0a <2a`l `͂`U _B} +m W_Bp+p+} +OM6l0w`lM6FK 6؛ 6  28l;6&ˆÞblp3`®} w\+} _BpCWЯ\+^} v WOphatch-0.2.7/data/masks/gradient_horizontal_right.jpg0000644000000000000000000001146311346363116022732 0ustar rootroot00000000000000JFIFHHExifMM*C  !"$"$ " A1?Ɛi4MIh>f&y4 &ɠi<MGAx4h6gIi<Ox4 lIh<MAA|&ɠy4Mfx4i4 'Ii<OIx4Oh< 'AiF4&Ay48i4MIl&y4 'Ii<Ox4 h< 'Ai<J6Ay4&ɠy<MIh<MAx4x4 &i<3Ih<OAh4 A h< Ax6fɠi4MIh<Ox4 &i4 'Ii<OIx4 lIh4MAh<Ax4 &i4 'IٚOh< 'Ai<8x4O4dMh<Ax4&i4 &ɠi<MIh<Ox4 h4 'AiF4&Ay4 &ɠi4MI4 'Ii<3Ax4  'Ix4Oҍi4ɠh<MAh<8x4 &y4 'Ii<OIh<OAx4 Ah< (Ah<&y4 'Ii<MIh<Ox4px4plIٞ Ah< 'AiF4&Ay4 &ɠy6gAh<xy>fIٞ h4 'Ai<Ix4Q &ɠy4MIh<MAٚ&y4 'G Ix4Ox4 Ah4 'AiF4&Ay4&ɠi4MIh<OAx4i< 'Ii<OIx4 h4dMAh<Ax4&i43Ih<O4 &i4 'Ii<OIx4OlIh<Mٞ &ɠi<MIh<MAx4h4 'Ai< 'Ix4Oҍi4Mɠh<MAh<x4 &i4 'Ii<OIx4Oh4  h< Ax4&y4 'Ii<Mx4 i4 'Ii<Mx6gAh< (Ah<&y43Ih<OAx6f<MI4 h< 'Ai<Ix4Q=4&y4 &ɠi4Mh<MA㆓x4 'Ai43Iٞ Ah< 'AiF4&Ay4&ɳ<MA4 &i4 'Ii<MIx4 Ah<3Ix4Q &Ai4MIh<3Aㆃi4 &ɠi<MIx4Ofx4 'Ai< 'Ix4Q &ɠy4MIlAx4&i<MIx4Ox4 h< 'Ai<J6Ay6fɠh<MAh<Ax4 &i>fx4 'Ai< 'Ii< ҍi4Mɠh4MAh<Ax4 &i< 'Ii<OIx4Oh4 A h43fy4MIh<MAx4i4 'Ii<OIx4Oh4 Ah< (Ax4&y4 &ɠi4Mh<x4 'Ai4 'Ii<OIx4 lIh4MAh< y4 'fh<OAx4h4 'Ai<Ix4Opi4Mɠh4MAh<4 &ɠi<MIx4Ox4 h< 'AiF4& &ɠi4Mɠh<OAh<x4 &i< 'Ii<Ox4 lM&ɣɠh4MAh>fy4 'I<3|'Ii<MIx4Oh4 A#Ih>fAx4&i<Mɠh<OAx4h4 'Ai< 'Ix4Oҍi4MIh4MAh<Ax4&i< 'Ii<Mfx6gAi<Ix4Q &ɠy4MIh4MAh<x4 &i4 'Ii<OIٞ Ah< (Ah<&y4 &ɠi4MIh<Ofx4 'i<MIx4Ox4 A h< Ay4 &ɠi4M<OAx6fi4 'Ii<OIx4 h4dzi4MIh48h<Ax4 & 'Ii4MIh<Oh< 'Ai<J6Ay4&h4MAh< x4 &lIx4Ox4 h< i<Q &ɠi4Mh<Ax4 &ٞMIl4 'fxx4 h< 'x4Q &ɠy4MIh<MAh<fy4 'Ii<OIh<Ox4 h< (MAh<Axy4 &ɠi4MIh<Ox4 < 'Iㆃx4 lIh4MAh<Ax4&i4 'Ii6gx4 h4 'Ai<J6GAh<&Ay4 &ɠi<MGAx4x4 'Ai< 'Ix4Oҍi4Mɠh<MAh<Ax4&i< 'fh<Oh4 'Ai<Ix4Q &h4MA<&y48i4MIh4 'Ai< 'Ix4Ox4 lIhh4 Ah<&i4 &h<OAٞ 'Ai<3Ix4O h4 (Ah<&y4 &ɠi4MIh<OAx4 h4 'AIx4OIҍi43Ah<8h<&y4 'IIlh4 &i< 'Ix4Ox4 lIh4Mfx4&|Ilx4&i4 'fh<Ox4 A5y4&ɠi4MIh<OA<MIx4OAx4 h4 'Ai<J6GAx4 y4 h<MAh<x4 &<OIx4Oh4 A h<Ax4&Ay4 &ɠi<MIAx4 h4 'Ai< x4 lIh4MAh< Ax4&y4 'Ii<8x4Oh4 'Ai<J6Ay4&ɠi4MIh<OAx4x4 'Ai< 'Ii<Oh4 lIh4MAh< Axy4 'Ii4MIx4Ox4 h< 'AiF4&y4&ɠy4Mٞ &y4 'Ii<MIh<Ox4 Ah< (Ah<&AIi4MIh<MAx4h4 'Ai< 'Ix4Oҍi4MIh<MAh<Ax4 &i< <MIh<Oh4 h< (Ah<&Ay4 'Ii4MIh<OAx4 h4 'Ai<Ix4Q &ɠy4Mɠh<MAh<Ax4 &i< 'Ii<8x4Oh4 A h< Ah<&Ay4 'Ii<MIh<OAx4 x4 'Ai<J6Ay4&ɠi4MIh<MAh<x4 &i4 'Ix4Oh4 G (Ah<&y4 'Ii<MIh<Ox4 &hi<Ox4 h4dMAh<Ax4&y4 &ɠi<Mx4h4 'Ai<I|lM&ɠy4MIh<MAh<x4 'Alfx4h< 'Ai<Kphatch-0.2.7/data/masks/gradient_vertical_bottom.jpg0000644000000000000000000000653611346363116022546 0ustar rootroot00000000000000JFIFHHExifMM*C  !"$"$ "a!?I$I$I$I$I$I$I$I='I$I'I$I$I$I$I$O[I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$JJJ$I$I$JJ$I$I$I$I$II$I$I$I$I$I$I$I$I$H$I$pI$I$I$II$I$I$I$I%I$I$JI$I )$J)$I$I$JI$I$Ky$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$[I$I$I$I$I$I$I$I$I+8I$I$I$I$I$I$I$I$I$I$I I$I$I$I$I'$I$I)+$JJ$I$I$I-I$I$I$ $I$I$I$I$I$I$I$pI$I$I$I$𒳉+)+$I$I$I)+$JI$I)+)I$JI+)$I$' $I$I$I$I$I$I$I$I' $I$I$I$I$I$I$[I$I$I$I$I$I$I$I$I$I$I$I$I$J$I$I-I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$Im$I$I$I$I$A$I$I$I$I$I$I$I$I$I$I$Ky I$I%%dI$ $VI%!e%dRVI$I' $RVI$RIYI%dIIY$[I$I$I$I$I$A$I$I$I$I$I$I$II$I$I$I$I$VR $I$I$I$IYI$I$I$I$I$I$I%e$VRIo$I$I$I$I$I8I$I$A$I$I$I$I$I$I$I$I$H$I$$I$I$I$I$I$I$I$I$I$I$I$I$I$[J$I$I$I$I$I$I)+$I)+$I$I$I$I$I$II$I$ $I$I$I$I$I$I$I$I$I$I$I$I$[I$J)+$J$I$I+)+$I$J$JI+)+)+)$I$I$I$I$I$I$I$I I$I$I$I$I$I$I$I$I$I$I$I$I$I$A$I$I$I8I$I$I$I$I$I$I$I$I$I$ $I$I$ $I$I' $I$I$I$I$I$I$[II$I$I$I$I$A$I$I$I$I8I$I'<I$I$I$I-䔕IIYIY%%e$IIYIY$RVRIY%%dI% VII$I%%e%dVRIYIYIYm$I8I$I$I$A$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$ $I$I$I$H$I$I$I$I%I$I$NI$I$$A$I$I$I$I$I$I$I$I$I$I- $I$I$I$H$I$I$H$I$I$I$I$I$I$I$I$I$I$JJ$I$I$I$I$I$I$I$I)+$I)+$I$A$I$I$I' $I$I$$I$I$H$I$I$I$II$I$I$[I$JI+$JI+)$JJI$I$I$I+$I$I+)$I$,I$ $I$ $I$I$I$ $I$I$I$I$I$I$I$I%I$I$I$I$I$I$I$I$I$I$I$I$I$I$$I$I$I$I$I$H$I$I$I$I$I$I$I$I$I$I$Im$I$A$I$I$I$I$I$I$A$II$I$$I$I$CiY%$VRVI%%e$RVII%dII%dVRVI%$II$VI$RI$[$I8I$I$I$I$I$I$I$I$I$I$I$I$I$I$I-I$I$$I$I$I$I$I$I$I$I$I$H$I$I$I$I$I$I$I$I$I$I$I$I$I$II$I$I$I$I$I$I$ $I$I' $I$I$I$I I$I$ $I$I$I' %I)+$I$I$JJI$I8I$I$I$I)+$I I$I$I$H$I$I$I$I$I$I$I$I$I$I$I%I$I$I+)$I$I$I$I$I$I$I$I8I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$A$I$II$I$I$I$I$I$I$I$I$I8I$Ky$I!%dI$RVI$I$I$I$I$I$I$I$I$I$IIY$[I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$IYI%e$VRVRI$I%%e$I$I%e$I$VRIŔI$I$IY%%eI$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I-I$I$I$I$I$I$I$I I$I$I$I$I$I$I$Io$I$I$I$I$I$I$I$I$I$$I8I$I$I$I$I$I$pI$I$H$I$I$I$I$I$I$I$I$I$I$I$[$I$I$JJ$I$I)+)+$I$J$JJ$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$JI$I$I$II$I$I$JI$I$I$I$I$I$I$I$I$I$I$I$ $I$I I$I$I$I%I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I-%dI$I%%e%e%dI$I$I$I$IIY$I$VI$I$I$I$ m$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I8I$I$I$I$I$I$I$VRI$I$I$I$I$I$I$I$I%phatch-0.2.7/data/masks/gradient_vertical_middle.jpg0000644000000000000000000002446611346363116022502 0ustar rootroot00000000000000JFIFHHC  !"$"$  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUWUUUWUUWUUWUUUUWUUWWUWUUUUUWUWUU_UWUUWUW]UUWWUUUWUUUWUUWWUWW]UU]GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGW|<<<<cҜ[w-=`tQ{ϯ*rLn֌Bғ^5:5%j_0!|e;ܥmICoI^ЎM%d>f.yV_iNr#.v1j kS`1_zΩҺq}^ܤ OTQkI=|_➛3w:.!VT9ԝ=nk1^{x6~5VN=Z96tC/?I$I{${ 7VV5Reܟה`ވt5kqoy=qZڦ^a#w-o;FnzN~u9*kiM&49iL=:k+iRTvc6nkungo v|{N愣 :dLו-( XYdl-kBTѯMNN./M62?KGN9E:\j5NNSRKi7' w? ϧ~t[LrؚiY cuӊSmԎ`ڶmuѮr_n1IwWڷI?(/&bXLVO7c7TmJI6ޒml{JuR+8a-j5;jMߘоpaUo3U)v^emjpc[r~MO a11xl}>Ƅ{i[R:p_+;:; ,:ygsNTЭ8T'ᦛZ;Q?\]R[xENNR_4I~}[ URYҫ S 82Zqk5eGLRhVbl9u*:-,bSQ$J^q o1.qyK:wֵ*+AtL2Θt#?7UUē XzYQ^$OIa鷢9=al/9?K~%QFV/^ ƺyq-?WJIz鷄֕ \BN_nijw*Tqn^Rz[8T$ZMxfWϪ;Z}+Iԣٿ9~sN?B7{/[\/?kI-m- .#1_Umi*?EzOȺm 'sl[m#o޴}ֿZ=5tO3M*\jʢQ[5"߼T鿢ήJd2=~ J_)ecqǨ8*7KʧOm_YNO̤v8qN;g+ m?F5/oɽߖl@Оz i,~n]eM9iE_A/U'=迴c{oVޤVV.38J2Oi.HzM^'XRZ5;x~gRO(q@,Wy+rmZ~gm { 1N*)959i-Orof#Xp+|=(}ν~)=-SڊׅM4i_y!ɰqGьl/3Oi$qwY { zW5cFqܪNM(/m[oSxv/pL)~!GR4ԡ5c%}yF_Fq~wһ]Vb5*$R;.?tH 鷤'-ӵJZSΠA>'ZNL=\t:Ts:T])~1e?wBrpm6+[{%Jq9Q~SM4.H$xP4) eJW4cZ^gm+ȓ4M@ݎ}QVN7ptkRӧEo?1vjdfzR?TwY*[)85-3gkmkmJ4ѧSVI$q8FKM5=dy۝<njfJKv۝ 4Wi/C 7<#uImK5/ξilgr|Gf¿޲Q~'䛌i@6^FU,oi[SM8iCis@M_C8 49̿%켩x[$=i#Ni*1J)}9Cmk,E8 8.J4j4cޜ>d֔,Qԗhre3**s4P7ׅK^ *u*Յ*PJc&_V[wI8gM8(Fx}*5j^OK)IP~Ѯ ,6V2xG)ւr&o~)xZўCQ߇w6 J1)K{olj?+ܪ6-Y1gRzW#q*O_4\*q~m7Ј?60n9_,iUVtlO'NSy7DkMmC+^SƜm;hMFjVVМW-xwFǩxIMG+ GMԡ?2oՂ >01JhMei;#:׺D5<='iBnj9^JN:}*=:3PQZJ'7I4?%U yjFz/oȩv5 ',v*Rn2tF-ݭm0_G`u[W?S{zKi|%/ǻ^JuqsA{ʌfڒQI/XЩqV*TN-=?c^iI/eg69m9 m8:q[Ҏjw NT z['Eٿ͠yZ糗0]TSz=WzyWu*=F)W@k*d5^ԅ*qҜ(Ռj'$~kIbnHQq<5UNʭ mB 6RkM;LD31ѯF2ei­95:4*?:ST׶bJ+rESt%Oug(Oq^[q˨S-4+Jn4НPSnjeSjSHIJ2Iůe4qGtVxTC]NMQIAʛ&nTiSco芗?+7$?TRV0aCW֗n'jJU*JPqjsOǘ@o{w®7eh9P.hSM-)C7yFCsV9mo{cqNާj}!%(?M/ 1Ҿca}FBNtªZjQ[2pQV?pl*ηkb/{NR:atkqsI[ԓn44$wZ=|k75ꓓ[t@˩_yMrumrw-c_鿬S )}Xquݽ.meHIJ/Oൎޝyf:*ӺrޗOKqqz[3!_ |n._m F3rz&(> Js|wN{'BʋthǬSO]io^T\19ZWsm_DHEZٛƳTڝ]i~!'iŷs>󷎧%ӌe:{^Q˔|FOϞH`OX!~,6 ʍS}jw=E#osq5qӧQүyjI #d=9ܯZ4jwEIn ֧NKE{Zi2:_p=E\J(ԡQ~sޤii*8~qҾiLĸN} 1NjB;^',k*u[WjӒ*BKjItϰ'(.rb~-^yڲc52&Ҍ"QGjTU*񵠛)nZfֿʡKaM[Ԍm_5vԤ ^+Ùd%Owq=:2VO_7E)S:m= :G^[6pjεg!B+['┼ 2C\u+R^QF{Mymi(oWv}0C\'AΕIEJ6T[q?jJ)m-JTZV:*Isܤߖ~^r v#VjRq9I5G\e~:ߏ]RnA=*K$)rg?gְYUUm)=JMm4m4ee'{\SeM;RߗחًF_Au>5MyPOZ׷מޒq)eW9(cqK`֖׻q:ܪ䣵 qZpMB+I-o-:<9zC%{Uո)$Ii$I$x!^Ee0lrVUJ)S^5iPν6u ?Xrk:iRT1oO)g_Y +: _ki!\?V?8UeM;-F|/G~\kk 8A wמޒq'I\nzuQmwO^6no-)CR_0Ӕ5SsnE[w=뺾zV:iS;z_նmu#r.۾O]bЦJm=3{[Rz%fi4i,sWTi'B-n4o"Rm%޷MWW6Wo,+[\ЩkR/jQkix`CeaùXrF4m.J4r7:k锷ݨ(@ ;WN%K#/)YcB>Wƫ1i{ɦ|T0Sr6^Y(:snTlbӫ^TOM7u|l_g3 WVܧ/$KI$I$^S\rLlF[JW1^ъExG{KN e>6y)Pi(7h/~S&rմwi^Žh)ҫNjPZi 5)޾=EYR<*f8JRrk=PmO{p~^;[m἟8dqPRVOGcpL>=ծ.jt鯻II/-Tz_t!JQp}з:t_eo\?xu1fruu(\okJ_sIoI$f{us{y^IUZRr{'msFz:U?{ʍUwa_rӺ)I{-5SiاBĺ&t{55yZ*=.3{YTUm(J_iMmpSyllx?KȦ*W(Z?{mxiEIIhQKsF9~Z)S]y&_r|)Ԟ'>9S32PIZAqw%/m-K{m/%u:k"[IL]ۦާQ5zI%-|r^y*UTa4B>Єbc%oHN>3qc+MӢ┮T$vZiG0pUǹw孲vjQ[I{K~c$*g=L=1O+IJnQ͵H.c&8?ZM?'uN4qrY9w{*K}Ԫi)K^4s4q$sWUI'U47/[{[WJ1fnKZmV]ݩS-)566Bc^ꍭ7RjP8%)II/"G?Wv3,Ta:kAJ~])[I%)mGnϜR<>-fF1N?udb/ Gz5pS%Y :5eRFKrm$GL9MzkْWy78^vy.=ݷN]<-%)4E5/6@mŹ'%(n24q$-4hȊᜯ<hO]}㴾Y&W,Jx~жҧI${q[n>[:774nTZR/ʔd4r"9(+mg(^/r7mI/i$F럪p[JiʢS,^:n_Ԍܯ/VJRt-m +oz[mEN5]-\}W1qOoqKo+^\ֺ7RjsI7)Im> Ѿsޖ\2_jUwԷ鿙oz9+GGV~F/5RzkoW7FTuN >YO;گTm m]}&mjq)^juú.[${zl ?U::i`2?u[MyI]~Ϭ9+WE|EE*nh5(ږԓ>hL i1o+ֱܲvsԶOķ'gySl}kMYI5~mOSE>ݭ~JjέYʥIRۓ~? ݅T&J%(yM}v27 ˺^GRI}'θphatch-0.2.7/data/masks/rounded_fade.jpg0000644000000000000000000000467211346363116020112 0ustar rootroot00000000000000JFIFHHExifMM*C     C   " 4 !"#123QRSABCaqc ?Te "^zF]!!*p;t6r "d2J/P?wH IGӀ~8(dp~8Ӏ IGӁIL,5TY*R%[9b@V69.K uѡ|jRnyh9G71!˲Y[ ZtKI5A拵#Em{bgAN܂l=,U[$iaL=гrL%z C njVy.aEtD`vhR(Xeۘ_okὬ t'za ~Ὤ {p:=0΄pr۸Xet'Ѧ,˷0Vxֱux#6ucroAHUdȴzH<ʽ?я ]vaImQ1ú#]-4?hjKUo >MmY{3_k8,ݘ/-eY 7"JDXl@6j *7VTx0]@n ln`8҆۶ y6Co$&HwOZycP킲oCO,ED14W q tDSϋ[Onh%Jtӊ|xƦ(R+x["C)IFrw|L0c of*pWK5܄XS$ l؂mq&l@6hMb߭D!-"I j#|&-lTGߋ~S?pz-[! uV@# 9f;о &qY1ޅ]E8L+B,\`q&~ l؀l ba6[8'B[D r6F*M-lTG߉T 3^1i>~+-7y@] x["Chaf3|L]d2ٓt/-՚/ʋa[*#!|&T6gH-AMEO l3C.Әx|s@˧07hNf5n"Iuq R$2q&-EH%Lg^ @?f]c-7y@] -,ՋsFUs JOtFBͩhBȫҽ+g' HNӳɭd,+Hl)ԋ46al:5n,j54Wlx(sd MoP~mHC>oq>׍'7ԁ! ^7`L]mA14ŞةO$zڹjDS:VXq4jybu8~ G6OG$\ʫhTsgNđR&%q+$fG&G]} Sr2;<.A=M_r779)ʳEYqPiy5L㪪@Zbvȣ4$Ѽ nsk"i9sۘ G5M*D;Ar'jZ#m=N!wq*gb;w{!#lSzqq*bam qqSm33A5H59ȺDj|舺@}MSv]LYje~#:*p8+ZO Gu].?TO{P<;h\x:FVeĄqr_9luO)+L/Ofi׈zx4ji׈zx4jiՉԣ7;w5k;>iyVYZ+'GgU<9$Kq(̀?phatch-0.2.7/data/masks/shield.png0000644000000000000000000003225711346363116016747 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME N) IDATxytTU' d@ a@@((vm[Z6Kk ( ed@ᇌs՚zOSd([uVW^a`8rTXј.^hFҥy0L;:ud_ްcFٲe/G͍ŋ}ha 0hƘ1cRJ`fDFF7n4 p?&&P~P8vX?ѣG޼A. { +K.oAYf^osکS#G^^^a.wضmQ\.]d? bNN76mjDGGv=*Uc/_HNNvٳg^{̗|0Lp93c:egc̟?gEڵr";޻wN(Qre#==&833Ә9sʛQ,#$$Ę4ijkݺu %KC 1v]c ___@Q)SˇYnnh"]vE2Znm̟?1\ٞ={#G~~~+n\roa$$${bTV͸rJر:t(2>J.m1_ III1Lbԯ_f#6eNq\gee 4 8zL6ͩ>ВO>3 =7nl|g@YZݻQD qntňvʎ]yd5,@۷c <ؼyaU'O4ƍgԬYcq˨ZoǏwcyG%>~ۨVo`mTnٲ1yd#))?f͚5Ƴ>k%J0ze,^إpႫù`ڵ.Zt1`LJ7Gڵq*%%Ř1cѮ]; ШY;8e2k,7|cGyİl-2QFY_X2Əo4jԈcʄx駍˗;=EjѢku%gTn]f N:^}6l 0 R=;ÃɁ4o<}wڵkqQҥ.]ToÆ jӦ|;u;wc7‰'k޼yڲersstpA5jP^ԳgOj4aՙ۷Oӂ sN J*Ν;W^֭LzPj޽{-񁚐hŊJKKSY0nnjԨz衞={aÆ|XGѹs\5,YR5jPZWjժ (((Ivkڵ{>|NS.^#G:wQl_w*UJ*SŊUJd|Gq|>Gĉ:wΝ;3gܹs:{te<TLjժ V*UgTʕ+sbzjuЁp76M'3gtRRR$(%%E钮nA233_榀﯒%K* (S S?˗/+55UIIIVJJ-a׻WrssTTNVu bqUHH"""BCCLp/ f]7_SO= pfӈ#z쩲e2СCi@+WSd[ɓrwwgv7UVݛŨK.Eڴi#OOO*@1*L7@CTbz]x衇:N_J.f͚Qq@ǎ&iFT'о}{;>yI& ?秦MRiڶm[}8mڴQɒ%h||||ԢE VZQeP~<== t!p~IshԨ0N(,,L6[y7[lIupR 8jժQYX6m| p y] H^<==լY3* : 64kL5խ[Z7n\?Lu_a`PNN4jHnnnzRnpMZ нU2ePA`J* ?v_BBB&Tr+W `B*U}&Ub[, V 7 0?v=]B T:sX JoXG5%K^ Tşxzz^ T-IVpF@\u\O qww'`Uk' k`qN(Q9X %BB`pwU"Ju\|Uٮ\BK.] T0 jXǵ/,? !`5;)))T\E\е{ L`o``p'`F5Z>XGrr֐IXeP, !!?DVs9`zgϞ%`@nn.UJ@`DUO'Ʒ?3gPLmҟ رc:Xpi*:l`[X0ݼ&ɐK.tTIKKSRnHl`V7nn:tpt\9B0}{9n_p P)Lͽs҉'&r?I:z(Dnw-T  pqy:qi%%%;ٳj`?$~عsg$T pEv"`%iii:p+o06\pAgϞr6rssz;{Gy:tH;vz7߹c ++ 6lPpQA\ЦM $pE/xضmUlٲwgؾ};UL* w W\pa p%ŋ nJ5pym3䵍\+I2l6%&&*00jժSQ3H/BUpr+W׿n: [bE I?CupR+W֩S͛,Nj޽Z$pfm9p" +'Jy8@|}}Ã*DrssU|<8_< (:;w IT'S9`ٲeT'xwy:@ΝSٲe6Nŋ RNN:lD-ZT?_@bg -ITN<)777@1R啜ӧG(fk׮- IK.B\PA/&_HR%@@1ػw|dee ~(߰?Zp!c$yyy)11QEȑ#Y ()P ##CK,a(bs-_ Ig(bͳ)$*11Q^^^E`S]V;8EhΜ9v[\ @ѱW_*$(!!A%KdVp85h9:III_ I_5s_*$yxxɓPlݺUaaaַ~ 3f̰,t@6l;w2CYzz*VdHҮ]k.f ;-H̙3%/pߵ$ԩS`vvuΝ;ŋ3[ɗ_~߮@>Sf ;v]@llϬPHK.ӧ]#I&1kNn'^'NחΜ9_YYY@ЬY= hʔ)]u*>>^nnn"Uٳ}#5k0Ӝ9s;,H'|,O'N,qtg߯ի3իաC"y,u{1G}Td$,YRVJUY] IW\ф UO>)I*U=r1FjjT"{L]`ƌEI@z{#G( Y щ'qmE III2e MfΜYu$\r:r?eggN::|p?zmo)ſH;뫃B :rssUn]۷XV7|YXܹsm/t7UNf`IaA/`+֫,k…źKu֩u}o֬vQV\+0 _I?8_|QK>}S,.zdeee)""`j/_?4_|m&N]vqdLWBB}Z#GS:k͛޽{s\Nbbj׮$}N{?T7L ƌԋSw$[nHM6UVN[~UZU78%:N_|Qǎ8iӦ97r-kZn5kݝ `X#IDATΝ;:u85Np͉'d:tpJC ]D@ݵb oߞ TbbbԽ{wz.$J*ڹs'w 8dկ__'Otms'{ 2 4/97ڻwլY3:@ZvFݥ֭[U^=>@P t|6W|ӧ._(׿\vw5 ٳ9 EjǎjѢ]597S ԼysF@P.]\l>Gv/\kx.pMjմc)S#0VRǎf 9z~iEJNN֠ALK.~////iӆ`w=֮]kc-i]˖-#<‘ '0k2Uri˖-^:G,T~}]pTf:zꥴ4Z@!Cn7e]viРA('jɒ%|m9 fw7' d۶m߿rrrLLwҍ-ZΝ;s$ҥKjҤ:dh3o߾:x G3 Ϟ{9S/7S{6m̙ci-EDDhɒ%rwwݻf+L{:Duڕ#p4uIOLY|yqSlle^e'wwEGGK.IÇ[5[.H~rm޼YڵSff& ~mݺU˗JLLT&MtI˽vU'رc֭޽{[rt}g<W^њ5k,-u۷b͛ot@///~8, >>^ݺuSVV`ٓo)f͚P 0ϫe˖F <==O?`2ʕ+),~(Q 0^xşpgҥe/ 35uT q $$D6lFA-[]r7 6m+Vߟb ڳgZldqb튊Rzz:syuޝşP0+WT߾}i ԓO>~‰e3 C{Nyk.SNرc駟RlܸQj׮'駟W_[jղeKN$::Z>,۵ljUPP7oN1 l޼YݻwWff&#P¹/РA(UVJLLٳgo߾AbbZj~ejXrr:wO(Я_?-Yb@IKKSϞ=cA(>z'K1ԯ_?^b_zzze˖Q p04h EGGS !bȑo(dddgϞZt);z74e a'\ %K… I1>#=B`ӦMӈ#/xzzjڵ+|/5tPTTT~0sL >ş!wC1 hȐ!ɡזzJӧOpSO=`p2 C-RٲeFA&WY O?Kmڴ_?,A0+V(''G?0`y ,P߾}I1vZ(""Bnnn%͙3G>N`РAN1X_O=zhΜ9,?׈#K1C`j'O֨QO1>NdСΞ=K1Ovءvѣ?^/2` Iw}Uݺu)g^~e}{ TttZnM1 6L3f̠N-'vE=Z`222㏳;!n䲳5|\JJJu릥KR  0 OJOOWǎk mذb8)p1_|!OOO)?~\:u޽{)#h0ӉW.]t 8 XBm۶ɓ')j*mۖşG;wR nΜ9TRR N:m*&&b(6տ]rbPTRSSիW/}@ /W^y[ .40l2]pA:uFXׯfΜI1\WLddΝҥKS qyуk p6ZhVJ1ݻս{w>|b8z&09U֭Y pfgϞ?b(I&k׮JNN8+WhРAz嗕CA[NNFQF);;XDΝ5gS y>}(66bxEGGVZ]:tH=zݻ)I`!{U-|r/_0?Pdd&L>Pdd.^H1L- {'5}tR 5l0}7+ Ղ B1:qz;vP a Լys-Yb/Yf,ďA3gl6ڵk'777XI4`P b ҽ{w͚5K~~~0T1~VV-͛7O5ݻW{V||<Ű8-8֭[;|w cwAiРAȠ K/>}ߏ=5jH€ :uꔞ|I_bgΝj֬.\H1ƍtqKʢ رcD b ּys͝;WիW9~Ϸ~mݺy?&Mǹt钞|I=sJKK @1rF(]p O@կ__sQz(P8k۶mtPӧS ͘1CM6e>}>S2e( .\õ`G*U4sLuЁbv|r=:}4@;q:v1c(33v_|Q:ub8&Mhz)P@8:p ;vPf4uTSNN{=\Wn矫B gƍ)Ĩ~(pըQ# 8P1 78r 5kP 9͞=[Zt)ŀiӦaÆ,nn6l&LҥKSXѣGs)66b^f̘S XBnn&M^{MXEݻ5tPmڴb\SZ5M:Uw}Wo6wS7`РAz@Al٢CrC8 S2 C_~ׯ ѣGUV,W5qD/_be|=zN:E1@ lٲ0ayQ8#GhԨQZx1:>Sڵ)JVV>7Niii޼4vX3FnݺuzO1@nݺ:uڴiC1P,Μ91ch2 >N: .Wv4l0?dffW:u4k,Kٲe5~x :T6ѣGkϞ=Y4o\SLQf(رczpB$֭[բE 1B.\ (TzYApʕ;C-|W_}_]gΜ qƚ2e)dz饗믿R _` ZjwtAEEEC,^z%*U$?~&OOYժUo߾]|Y'NԄ DA@"<<\dggk7n'XY^o&f{k:paÆ*VHALfz״uV_/qqW?O[b*Vcj Z~W+Vȿ_o~iyxxP'uVZt)@ծ][׿ԧOn-6mڤzKK,y`z뭷ԭ[7!֬YzK?35mToAOz뭷aװaC늊bkrss?hھ};@WƎ'|RĎ222_k„  ΩN:?s`!]xQ&Mɓu9 WJ >|(H>>|X'Nԗ_~˗/S1B/*UDAbժU 驧zJ/֭KA+==]g'|8 QF)22ҲW?~\SLu XG͚55rH 4H999駟4m4-Y6?@WO?Fxt/4}t?~ tsS۶m5|pEEEۥ/[LӧOWLL`^5` 6L.7h֬Y:}4 Txx>}8/^Է~[{LTddJ(Ql%55U1113g-[+W0Ao߾8pË \%KhܹQZZjժ)**J?zo4-[L .Ttt)8@l*U^z)**J۷//?^111t rʩSNTDDʗ/0 ܹSK.ղe˴n:nfSӦMչsgEFF*$$D+WҥKtR%$$P$" uIENDB`phatch-0.2.7/data/masks/square_twisted.png0000644000000000000000000002141111346363116020530 0ustar rootroot00000000000000PNG  IHDR]sBIT|d pHYs^tEXtSoftwarewww.inkscape.org< IDATxOnz.ۍ`DF0g"d+g)ìQ$#v9rWK9Ʈno?wF1ƿ1=CCo|O?4~駛_~vj|?jw}ׯ_kkXj5j}_stt4n>cmcq}}}㾯?WWW͛7ry_}?~1X1ƃ j5^~=^|,zS~zo{}zxw0\>ѻd}c?l|]0b\\\wyy@)׆;>>~o~ om"@OOnc9bq~~NMc}}ݛ7oKY]^ܿ}y~0|'k''7x{x^z?^ך"mn=@wm8cTXۓ/9p n G} xfj|~xTC>{ @;!sxTC@ sxTCd!An@ '=l!=j:{FC`d\sC\sC࣏>:`!p;?vP |T8 ڹ! yh@i@FC@  >`D7qv/`n@@n>C I@@@@<*OC$   `~@@ggg}!2H A@@ͧc 1n xf[@4 H A&!A@ggg~?h@@6Pa2AAICggg~?x  @@$ @r @@L HCd2A$   @  d4 HC4 H A&!A2 @i@@L HCd2A$   @  d4 HC4 H A&!A2 @i@@bca2hoOC&\@&uyy\L H A;!A)  ˶a 𾹾.CP& ?o! tTP sF  H An@  H An@  H An@  H An@  H An@  hɀ@SC   rCL H An@d2ArC @ @@v!`2s   6I 9pC!A@!A[/ i@!A@!A@!A@!A@!A@!A@!A@!A2 @@ @@ @@ @@ @@ }LvΣ7`$ !A$ !A$_#ɸ!A&$ !A$ !A$                      @i@i@@L HCbw_C&\]]:Lс,i@$G0 G dln@@Kѓ"d2A&d2A  h&l y  @ @!A놀,9*A;A&d2A&!An@ @i@d2A&d2A @ @^ X6 @䱃!An@ @5e  @  h@dml @ @^ X6 @䱃!An@ @5e  @y i@^7l&s}}0\!u.0LC A&!A{\{O4`L d4 c HCd2A䱃d@CdL HC 2'\$  '\&d2A䱃!A2 A{2!e2A&d2A  h&\ y  @ @!A&d2A&!An@0z0 X. @i[i$4 H A @  dL{7Ǔw`d2AV0 @!A!l%I @i@  dJC&!An@@L HCJC&!ArT4 HC40 2  LBC @i[i$4 H A @  dJC&!An@@L HCJC&!A`+ίI<)e  [i$4 @i@i@@d&!A @  d4 HC4 H le2 G HCd2A!A$2Ih@!A2 @i[i$4 H A @i@  dJC&!An@@L HC4 HCd2l! 7 H A&!At||_{ Lj `''';d&!A@@CI X'5e@Г&GGGCCd2A@@CI`L dL dL d4 HC 2 2  7 dL d4e  @  d4 I,ӓ&2 @Ȯ ȮLd@dd4 HC 2 2  7 dL d hri@Ћ/vz@&˝^g2;K Aggg;d&!A @  QA y}CX. rC X. @ @7 7 H A/^ةo2٥%!@^,كh@$ rT4 @^7L`4 H A2A{MC uCdMC) `4 @^7L`4 H A2A{?|50j5^z50Ϸ~d&@X>  =:8>=:899y7 `B$   H AA zjVxtFKw^,F 4`Rj` 2 @i@@...~j2$ O @i@j|cƭ@ۻԑ( )Uwg/<23t_UN'$n a*~$L @!db]R!@S.Hy@®f@vu, x?(ZSHNH h4p#"@X FQ`:H 6hA#X m#}zIDAT2BcQAȐE C    ye1S iE,E:B Y[4F2Yhw* ST@L 22e24FDDDB2PED[@2\Xp E:EKu@꺎W۶]5}:ӳnw^cs]!=|VUN}9П?{5(`H5qnEQD׋(VCEqCب9e@ њ1uޱ|;(ЮC?v,) TϔSQ ۺ7C_.8(2ێ`pSf1Nc:Gf6p)*~Ag>5ڨ*n-:~Ngkx+(27wo:>NWu$&._v"+sH۟GD1r5;+e=IENDB`phatch-0.2.7/data/masks/square_twisted_round.png0000644000000000000000000002044711346363116021747 0ustar rootroot00000000000000PNG  IHDR+sBIT|d pHYs^tEXtSoftwarewww.inkscape.org< IDATxnSW.%tDG;+P)'wBqٿ"ҍJZۛi0S8> `7ӛ7ooNÇ>/6ӂK})[bLf:;;O~cgLEOg_]]M>y^c]]] 믿_$<uxݻw~\^^>ٴnozK;ƟY9Q{G~az0q ~|x(l6=z7oy?MӴnW^M^:?y}յX~{sdOũ盒cwOO?~\ן?|K羏??kI8vn: |Kx|O}v"{]޾}{ o)o_~ ^~\H 4 `3MoOlHvoמ  1y ~<pD@ \\\<9# @iw}rn|l|ғȝ?E3xsG@   @Ltn7|p [)ѭ˗8pD/^ VOq4 @@  ) @@  )li:|մlNtn4=`L@ ~?9# @@ ~?9# @@p#v:pDlS8"@h@ 4 @4 @&0  6ʹlNyHu @ h@h@L @`  @h@ 4 @&0 gggg>`0G jٜ3~` @ 4 @&0 @ h@h@L @`  Fw#1 4 @&0 @ h@h@L @`0ϳFg& @ 4 @&0  @ h@< @L @` @ 4`pWWWp.//iL`d h@y.0 @ h@L @` @h@<4iL 4 @&0 @ h@L @`8[ @?MahX 4 @@K @ y?\&  %@; @ 4 @@K @ y?\&  %@\ 4 @@K @  '@ҽC@K @ 4 @@K @ w@ @@eY5' D @D@$ - H@ [ @p  H@@R6mSeNƫ뺃{s _LseY|g @̓{x޴mmM?s}Rzx׿9}Wl;u;s]fTEf;ؾ<Ϗ)abTN[ۂtܶm~ p677S@UǹK,k&5M34n5 <ݥbǿ/}$~u]H;ۯocY(|g}IDATu= L (y\@kK%.FS.moN}2@ mۦjVS9PE 'PVUշcSU(_d&]U՟γ}^_b@`|wSۊ DIENDB`phatch-0.2.7/data/masks/star.png0000644000000000000000000003507311346363116016447 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME [f~ IDATxytU$d aaN BHa&"(-bzzkZ) *kADDf00$$! I/\T콿Zpγw>}d9%%%iʔ)ѣ\}ZbV^l`cc6vX#;;۸'07nLnllͪ[xxGՕgL: (lllfۆn5pBϏ<(lllf~UUU+ܹp:fIN͙3ǥJOOסC `gٳk]ܹs8q# 魷R``)^o@@7o]7qjTyJJJbn%EFFj۶muWپ}zJv$ xꩧL9KRTTfΜNP_G?{"""tYv(f8 pC 4ʕ+l@Y 74k,u??ԵkWv*fXL``8-ZX=^Z#Gdg%iĈ\0z6mC)((rmJHHa+`w<%)>>^Gf'ZVtA5lвq߾};9 z!KԥKM< 0./;xt颊 v< `o/l1KRN4m4v: `o-ZÇg|EDD`xV$o^{/;`f͚ȑ# {?r9`ٳgr< 0~x^ujʶܹSQQQ`փ$EFFjȐ! 3M~޽JZ~9(f8p JJJRBBA~_U~_PXXttmFW1 CwyK35g?#q8t&難PNC3?g hܹ0XK@@;ƍu}:s a0}t}G3E߯0¸uԉ旞ڶm#F@̏iO~B@-c eNSGU wݻw `N3f` ?!ԠA:tHmڴ!j***R6mO3ddd0ߦ{P俚5k<<5Pi߾L5 (y̜9O.%@$@x{{+''G!!!QCa(""Bل0#G2Sá9s >Cu*..& =EDD(%% \(((HYYYPu=pqOX\SGU֭ tU_}Ae nnBESN7A}iȑQ7oL(0a|}} ͘1$@E6nܨeUUUj߾;F3@ܹ3]=CWO΃ PH.CڵSzz:AM6Q8jԩPF`(@kԨFMۛԏqϏ W^p;E;ڵSbb"AԳ)S@NVVAԳ'ӓ PwTZZAEDD(:: &L 72j(@j% @#G$Ԟ(EDDa4`lْ z<==Y(@툏WvM PZ]@\SYYYxB @\df&M "`fm۶URRA漽5j(0ɓ'@jnjڴ)AĨQEq+55 pI&I&a2F7A3LI&JOO'51 p[B&5rH@k-((H ":AdCqqqڲe A܅ ԢE  psG&  TFFA`7!k֭vMQ\\-Z0f?2@n?~|8!ȑ#  p(77WN0lر#AmC"P1b! 7 FV8t:+A6hĈ 66싻X+//TUUBCCuI3 0ο=<WX??~\-[$ +++SppvhРA `&H233 . Br,xx5k8$Ev0h >;X}Ç' ~C'OT-Ѯ];(::č@,,##pMÆ #P8p !@VӴiSӇ pM>>>JOO'PIOO'A8Xǭ# @phr:Jt: 7#_q8BXǭf O% `"2@,  ((uQ:t Tې!CO(YnKttZhA;=<(mYP3QӦM ALOpEW%(p jYf<L6l}\2 PHLL/AƸ(\"..IA(OOO' `" 04.݂K 8P @ܽԪU+f@6p9 (ԩڷoOp9N,?lo߾jذ!AB@URRA vr x{{/^TiiiWáQk @V@@7n@+ @AAAjԨ ȍ7ᐟ|||37jHUÆ ᡠ yφa(??/,,TeeTRRRQRR2UVVPtUTT\WT/^TAAJKKU\\BmV-Z`C<XCA K VfԼys5o\͚5 27nX&@䪪3gΘu_p=>>>_.Ws?0PAUVjӦڴi#)=88X-ZPF 1iҥ7ZOOO5jHUPP6l(___5i]PP|}}Y_+LAYAzQQQ .\g/]tIEEEWf/b_+((PUUΟ?"+??_Ͽ2fnjNBCCզMuj۶NڴimٲE۷oWƍ$???QFנjKyyRpu18w{^^N:ӧOĉWavکsΊPDD:wΝ;M6e$X'OӧoF'Nӧuԩ+[EE]4kL;wV.]  G6%.]:tHCP<<<(EGG+**Jr:zw̙Ci߾}ڳgw|D˖-իW/Gٳ8={h׮]ڻwKٳG.]tQ)))JIIQBB:tRܹS_|nݪ[jݪv֠ATmۖ`kڸq6mڤO>D[nŋ_wﮡCjذa (2mܸQk׮ڵkk.]jĉ?~ٛܦSNwՊ+n:Wh޼Mɓ'G1\P-[{%e @>}Hƍ|ȹs/륗^ݻ8 6L< ԣO?TO?/_^+ ndffj!qHvvK]Ss l\NNΝ˗kלhݺ,Y$_Rӟd @߾}|rlْ0~[SNCSk ,d۶m4hΜ9>@AAA$޽[۷+,,{OCa4駟֠AH WQQ6m$Ghhqa5hЀd"iF3gd&X;v$MݻWrˋ4*9kX@`paRF ÐǗ_~IѣG~zF6m$G6mGp60yoyfݛDK.)$$۫^{5>?;vL7&,,##C޷3EEEzI ;p}IWgQYY`Q<󌪪$IKRAA6m>}sqM6Mߝ\x1Ȩu3zEڵKÇWII {+..VFFrss]<\>M8{B0av[oi2 =@ {GKmFvܩ3gp j߷V ˕6~ I6l؋T/￿־I&7w߭*ID*7ojҤI~E]3,pWք tҥZH޻Sc/pw}WcǎݶHG}$0@￯QF_/@>cUTTa[NFRiiiR$i*++Szz:{`K2339:VopE 0`+6lPFFF=D^ $mܸQ.\РA8i& 2DEEEHҧ~3ghr8K*,,68q-Z$ooo[N#GTqqq*4h HXoqƩ-^+--MgϞhX’%K4fݲHg}d;v`j/: $ݻWIIIڷoGz)͚5c IGURR>s"ռyd[>; Zj*qDܚa;w?0CEEEop[5kVC]r7o82[t钦N_~4@vZe͚5PJJ w b7N+V0k692a-ZH>>>yzL}gzݦ-UVYf:wA 2D٦{.5k(<<#Pg>seffӦ|fӧ6lRSSM;[Hٳg%KpTjK/#FTWHeeVX!OOO%''s\GܹsUUUebseڴiz pɇYf_{d4-[LM4ܶb?^k֬lnݺV8ՖaÆi˖-{oVq{Q||6mQ l%$$Xr|oFz饗8?V||8`hnRo󕞞.n5-\PǏ7e~7cs%==]K.UӦM9WTUUڮHRN[ok׮뮻ʕ+mmY$)00P/Vff&G>Xnn233}v[o[p-Zt(O_|4S>͏0a^z%5lؐ˗kڴi*..txI?\x'e ъ+@`Aeee9s^yg UN>T' 3g(==pv8c ͞=[eeek.kÆ X^zijӦ aI-_\ӧOp-[(66V׿LJ<򈲲U%%%Zx|||Էo_&PPP,⋄q,TèQh"5jԈ0M߿_#F :Zb7fM-[X}V.]9sh***":sh"y{{+!!APXZNN+VF=$@7W^yEZ" j*M>3̺uԣG;Rh ;М9sOח@Ç[GZd`Jof̘~7۱cz^x0˝ǎ jb̘1&M'/ fPSox8l2ٓWQJJϟ 6JKK5k,pj,Xbb/^mz,m߾0@m۰aÕ,^X111 ԥ|M4I'O,[uX3fД)S `!mڴѢEJjնm4i$ c4`͛7Oeee Ђ Qk)220ӧ5m4]0ڵkzꥧzJUUUF֮]=z033IIIѢE\@W~iӸqc=쳚4ia%ӤI_`,̘1Co&a0| T`` 4l0BPX0J]t!u*//OZRee%a0֩S'yӧAPP222@ $ ɠAsLGϟWÆ @С9B׏@@Աz2`B{Q׮] @*++SppԶm2p >>>  dddpKm8NՋ (M "ne j@;$ jCHH q8PRP[̙tQBw7LRtt5kF37`  \)%%ݻs9 źf@޽{ߟ P"0 C 5FLy把" jO{&25(@N%$$p25 G' nGƍKLe nSrr<== )qC n0;Cm۶% `3!!!֭A`' ƕTS߾} HZ; (*11QC P.xj_|޽{kǎZnz jUrr2!Pp+.l2%''ĉW[vvf(oLÕ У>ǫ~y :T< aVlRAuŋ0aϟ/0u5{l]t,uS}!Xnno_(//R# n$**Jٲez/?VllmFPPWGM-YD~u1%&&j p:@0 =Ú kҤIztYVqeW.]\ڻwz6$}׊իAؤIಞ={kժU_vPFң>Ka=wPp3a跿F .?2339/7N(&Gwdfe0xBpX5jÃ.o߿_FW_}e߰aC/w;wN,1X\;wަo#0m4͞=^.U{kڴ)7@bbb2 C=FKJNNVNN;ѻwoB ..lHcǎ#>^K.U۶m bΝ;f͚3㣎;E JLLd%, XWӦM)v{'A\IIMײ***BX 'ݻիW/˄QG ГO>=z>8.\޽{kϞ=Q6lpG@ nHSL=cL%ybr,{wA&}vM0A' 7_]aBjԨ.^HX?>}0m۶)66V Ä4hD =kN 4 (,,TVVf͚RqcŚ1cO &ӹsgBX_Nnݪ-[0Ldٲeѣ֯_O& :t@n0 =3JLL Ąrrr73P(|=Z?g\ee~߫_~:r0 ׶yfEEEiժUa!6mRTT # q}RdoQ8qO"qC!!! $ 8zRRR_GE[j׮!P[͛7'7m(;;[   ԝVZpD=*,,]wݥ'@lҥK$eggKs:P6nܨ=z^# \9瞓apGtf(XNEEy. ? \PP;8@Zx1ak֬!ԡ *::Z7o& 5eeee̙3RBBB@@͜;wNƍ=ܣ .eٲe޽֬YC \#88jه~=zh儁v) 6L3gΤD֑Fח (ԴiSB%я~p2\o` ս{w/r.Çտ͝;W%%%BPJJJt+55U&Ԛ*-X@=zпo%M4! 5:6lPTTyUUUā;IւF6lH5tE͛7O6a^Pno D@ eB |gSO=ŧ~ԻǏk={La͚5; /pI*(@u]Vwy|IUTTL@wRSS9QV>}Z&MҐ!Ct!Vdd~ŋr `=ńp/ҥ,YB RwBϏ(TٳGɺO jذa9rrrr:x]xQ?bbba-^Zwqx u֭[=z lD="##`Ayyy:u Ѱ+==]&LЉ'D,P,Жﻼ\O=:wW_}ҥKեKBP,ˎw[vwyqpOs˼;vs)fg?:w ԣիm۶|'zZHn;w6ܙ3g_F@@ 7a5رc):~z۳g)~(dgc3I]Ƙ1c/TcQ=nxic޼y ll&h|G(3 =f͚.\p}3g4|}}Oll㍕+Wn9o۶D׶`OÇ66n:u2,X`U뮻?{mM65N8Qo?t.\011166mƏcc߾}>駆'`mРAFUUU޽O~bl~@rrpBR Jz 8~`#..~3g46lP' TTT&M"{ ی32;vx獴4ny 5~ӟׯ2PVVfL:)l0cŊCU\\l|'Ư~+#::LjlҘ:uꫯ'O˸;M!IENDB`phatch-0.2.7/data/masks/star_pointed.png0000644000000000000000000003452511346363116020172 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME 0ξ IDATxy|T+H`d! ,(- @@cTZYjXTZm{E[עQ&a3IBH( $$!dn(IrΜ}!\>gxHr %l6edd;5\#IO?5kdwX7n vn۶y!388q̓ oO>N8)Sh޽D6i$mݺ;Iꪫ{)--7pc\syu]mmRSSIvիe2%%%)??0 3ѣ#ުD9sP79zonrJyxx,f<%=D {u]wEEEw{ ncĈڶm:uҟp84zhٳ #վ}4p6yyyS}}=ans7裏/Iz `(Fm۶fkNܬѣGk׮]PtΝ;km4tP544>`bLnٲeK ` 8POz 4Hl ?@{馛4qSLQzz:0)&ԥK:tHz?;H 0~ӟv/I!!!{ mO>:r q>0V~_fnݺq@ ,yzz~577+..N`#Lo~-{ 0jcƌѶm }G;w&\W+PL4IG6;v&LLC_ڳgMq3335|p6@kfkF]w`ͦ})&&T{߾}WKK `R͜9t nf6 ҡCdMy>5551&.n_"""4g6$ё#GdQTT96*wY`I ռyؠ[nQMȹfΜ9n̞= 0p!3ÊdnK" ## 0ۧۻwt8oԩnKСCuײ&(33SW_}[?Ɲ;wjԨQll I7n/4rH%'' IZl@FRꫯ|| 0+66V999v:2d<ȓ`Xo_?xL VAA,eU\\̓`Xŋ-KRNt]wDѽ{w99sFI0wa_4|y{{H}% I%%%r80׌3X ((H3f  /8%o &ͦÇn%WDDZZZ`ϴiX/n״i0*m %CLc۷Mp8RƷpB… `H.P^^`0ٳgP``fϞM/(;ܹs `El:r+""B---0:δiXۑn״iokw}7!!bbbthgNS111% ;Q˼s`0:F``KNTQQA̟?ſj޼y0ڏ LX PSSaLo 㮻"Lep┝Mm ЦJۛ0 N*//' z?Y Wwy'ALVQQKt @ ZӧOg7JPZh!ŋ H.õk.0aÆ?$ z|AL[EEE۷/aX@qq &f̘o! 0`k-f1bA `U,4|p3 @jɒ%`Q?O !XEDD(??0.c`5\TWW`Vp]wC; L􋋋HPiiBCCp8Lw6{l׷o_vm&[?=}00ロOwuA `&=zѣG@lOVXXΜ9C`ҥKYj={`E޽UXX.]ZZv]'O$ 0l,pGL ÇCpz00auY? L#ԁEp&EGGȑ#&dG/KH┕WM(>>^# 0'`G0m6= `7|RRR"--MLK.:t萂 ѣV}}=a xkҥ&@GCy{{]CCGK?'TPP&ݮp 4Haaa"$ UXX\>|X*,,Taa?fBխ[ Wo!!!|;v|'(p>$$D!!! UppBCC0`qeee*,,Աct1HǎSQQ +/-GU***Ηs.++#$ \s Rpp/,88XCرc*))QqqJJJTTT@Pӻw/-𡡡 :g}!$nO?=_Xg}FHyr~A?;wLP ^ sb(44__y啄.g/_<܍+'R\GϘ?9 EEE:z(u ր4`v 0@aaa U@@ p#:v TXXL*..Œܶ_nsyCEEE*((P~~ѣGS /}Qtt"##5h EFFj f l---*))ё#Gta*//OO)mf)44TQQQ_(:DEE:t|GSqqZZZ(GW||(EFFr)՝Ɯ(++Kszꥄ)>>^ ߿?),,Tvvr@ >xXVqq2ݻwԩS. ШQ4rH5J`kpNSyyyھ}vܩ;vW^JMMĉ5a׏- @+hӦMڼyl٢/qqqJOOה)ShC---҆ zj߿ ÕoQaaal :HAA^{5^Z/={mݦyiРA$8p@=^|E>}u ""B˖--"/GÇ/DEE?n`BzWcRԩ-[e˖e9áGyDo`[C%-LNNnf $ɔj:u7wۅg}o]N0ө9s\p$OI]?k׮9r$i`>}o;<p!xzjJII!Q nӦMkܺ IzRvv6W ;Dߵ],++M7$AP}}nƋZ/HRff~0pBeee]֓*;;[ݻwIxE驵kr 7PFFw Iھ}Lthȑ{Y@´{nՋ-@;+++Sbb/.jڴie+ЎΜ9S^ߪ }ɀnN222gϞV[kȦM4w\36t:5w\;Y1 9p4~xm{3<㒟 I;v쐟Bo~WrϻO|Ћ/Yfp^zIsqvIֆ 6lؠtp IݺuӦMt5װLJMMmܷI> _v-%WRRꎗiĉ:~8[KPRRǷߦ@jƍg}"8qB:vX[[??X&Lh;(++SZZw9_wyGlaR)))ڻwo>[{=lM4I555le̙34iR-Z$i| _P[[iӦ)33]֭[7,^_o?ON XM7ݤ~C~ڵk5g577,XJssf͚w}ud׿4o<~F_ovz?l?-Xp{---Z`^|/;Ǐkڴipw ,?onsճ>K [aI@II [-wC/Cs%wZ0 ?w\ ,w^hԩl<ZovCo@ C} B~g',nM/) $vmz(+I+WR[̙UV>HҌ3/ˋg9͚5ï@222j*y{{t-_7}7eSW_@@׍7ިz˔ߴ@&N^{M]th7JOO͛ML]$)55U֭EMMNm۶qHѣ~z3ghʔ)ڹs[I1b6lؠĉq I ڴiz32NRZZ1UCjӦMիX@ pLɓx6lӧOkڱcr{0a***,mVUUU8q~mIҦM4ydUWW[q۬kkk5m4[g=Xڵkuuשrf ^__nI׿xE˺`ow8[ /*y5{l566Z6OIY;N]V{Vbb"zJwyZZZ, 9o+?ŋ6m$OOO;0 =CZ|9APwU}}ƏO&N>׿& ܹSNɓA `?|I |={O>є)SdLYsճ>KfΜ^xA^^^&ب9sW^! IOO+"ooohhhou&MիWK.V[[tm޼0(uϏ04uTm߾0(5b[޽;aTTThҤIڳgaPF\\6mڤ@8y&N{mV޽ :PiiƍC%C;v>R\\d&/,,L[lQhh(a@;:zƆ!IDATRSSUTTDL_aaƎ|vra3şб5vXFP>#%''Ax'NPrrOFrrrO?0(qI(++02335n8xN>qi׮].c0(ui۶meM8QUUUA0]{z .ƍ5m4}:'Qn:qF],|U.]~z%''e]wu|ҵkWmڴIIII-l߾]&Mbh6la0LM8QgΜ! .F=*660RvvRSSY TEE&L>0΁xѯ_?ܹS5rH`_oax eddpn- @wVdd$ahW}TUUEtpٳG]TVVjذa|}ǚ5kNzܬ3fNtGQ.]4rHЦ{1=38&c>dffjjll$ n+''G~~~jjjBpFb r/Y:u@.G)..?Ycc~2> ?lW @(<<\---FҢ^z ?O ?$fo>Bj999@V;u!)Ntc"A;w&&0gV__O@)x{{qs:ٴ.ᐏA0ZޜHLٓZ= % +@ݛ(0`BjAAA@L@%@ %q)`7ԵkWܹ )b)XO8+ߟ(0HB2@DEEcnSN:{:uD\pk׮jjj" &0*F:m!""(E j ^"'oSnJ`# b&u릫 (0"FtP`P  <'Nll,!>&<==U]]-___&Ξ=nݺ0(v;?6յkW2d!`_ plP,`_K@@@*++ @s: Puu5a0@Gc$5zx(&& (0NP,crСC 890#N49OOO9sF]v% Zr:Y> 8@n' :R\\!`  (Vٸ(hr+@:yzMLYt+RW]uAPHD P^8 P,&\| UVVF:TϞ=UQQAL^` /:`_ p08 ЄUYY)c577+ @gϞ% &hkqqq, SA@{`H8 @@;N}(m0L%͉MK.'a0&0 2xyyiA@[b8 @/29ٶ78 DU]]-ooo`( Wcc#a0İ0$mPX0N4 ///UUUח0Rmmuf`Wb`h]tQdd$APJ( > @*'l:sUWW{jii! &hp/N#5@'( > `h ӧO{***ԳgO` c`*=zPXXAP(` h(; :J޽{ӧ/ h؇Pxob@0\>.lPFG`N---֭Ξ=KLp  ͦ!Ccgؗ`A; mɋxNۧ-[*))$kРA?~ "‚Aq[jjjChk. ZfN<w޺_#F @Z]]L|!Ch߾}VVVoZr .g 0@ӂ Hl Rnn.A \{jܹ փ>xً$hٲe )lHE.￯I&)..N?]siС秆`sYHyy-ZX˰qFjѢE:u ///_Enz1BO="##ҍDFF(֭['wsӔaÆ#  xQ͜9S))):x {*99Yz+/Pp׿/H;p:ZjA ZOlV.]$6lؠ[сOjҤIa555'& u]k>cM>oyqŜþBmtO2455_| x]NNFO ߪT5fݻ@5>ؑfS]] *++|r?.N=#޽;X}}|}} 5]uU,.t:rJ3?.[SS?)""B?<\sӧAP+aVvv4o<\ɓ;wC .a O~ӧpB 6Lw&ݻw+11Q .TEE'Giii7EDD駟VKK ͟sO?cHOx76b?Tyy9]k1bSVcKWZZzx={jϞ=;᪒ á'xB C9ɓh=r8>@:{tBaƍZxw8q"a|kڵ+wWzz&OդI~~~\ `=}%oyW|rhڵSZf˗@.Q,W^NSVRTTVXBiŊ/L )`U999JIIѭުǏJqqfΜ߿@Ph(--ռy󔘘m۶֭[Eq ٳo[kʕ\Q ԤzJcz`-}k֬ѠAtRd%UVV{ՠAfw_gdd(??'?K~ `9ݺucq[ouV%&&ZVR`{#P.NKKV\pX0PȹGFFj.ѹaYooo68`ǎJJJҭުbZFҮ]1rUzzF.sN%%%)##C"P-'|+66ml͚52dK( [4Բe4p@=sjjjbI<˗̙3~<>>>lT 466~;w裏 tgjŊz'M )lfzЖ%Kps u=(**JV4[?)S]]m~z%&&jΜ9:v0BzJHHƍy3 Qat[okԩS-yRrrr4yd%%%p TVV~2eLh׮]}Z*..VVVP4l0%$$(!!AAAAٳz衆=zT۶mӟg}fuIܾIENDB`phatch-0.2.7/data/masks/star_round.png0000644000000000000000000003444611346363116017661 0ustar rootroot00000000000000PNG  IHDRxsRGBbKGD pHYs B(xtIME F IDATxy\VuD@6Q'PqeQ7@Qpscri~NMMM5S{ァUV)++ q0[llfΜQFQFdeei…ZpN:E8 p>ܹ{ng]+))q>-Z, sB`04}8}QgFX. `hԨguVVV:oq&%% $r `|QQQzԾ}{cGt:j*--e&@ nԩ?6lhu۶mJOOWNN 08"-Zd$hر# =z!}߭Zҿ/EDD`@_tg8} @ ˹׿?Ç` IKKp8,3۷O*..f5AtQ ._w q 1OjѢ%]@} 0NtR;?cee($5JVzASeee,xq G~~~ڰa|||lJ7of`tMԳgO3\1777-_\ΡiӦ:vvJNulԩ.'A?_b C?;v `]iiijӦ Aĝw)777(uq m۶UZZA޽{v#ݻ7ӦM > .n#XԩSRRSSոqc(58M6 .C'N$X @FF!DDDK.Psw @f"j3fm_ P=z4!TS˖-y&@GC !@L)99Yq9 Pbu֊&J`ԨQPskB0].]Ժuk(yp?0k׎ (` @驾}@CQ #OOOAPcKHH ֳgO5nܘ ѪPcUTTA(aWnnnQ (aӇjIΝ@08B%Pqww- 0=zp-cPtt ᡈ(3 ԓPv?Pu@( Աv#AuEGGBСwބP-@Pdd$A^PzӡCQ_OzELC=@8 E V۶m  9uڕ QLL !nSQ|l(""BnnnPꟗ uЌ 1 Pguu0Pv:6L @(6ƛ @7.1PZ.ooo0fd PxK P{n6uЁ P{nfԱcGNGP[aٸ:w,///(Gvy734q  ׯ!Օ @___у Ps @&пB(@رPv*08P 4nX]v%\;.fڷo͛vӷo_9(c|6mΝ;@,7u]VZ 1sPD&{ @EEE@AJHH :t(!zM& @yPTT4iBrɄ` EWu ' HII!\#G(Y www(5,O$\Z@@OTB( >\nnna!#F :\^z@.LJ,jфP{zz?n,y P_ Vbb"AXؤI?7n8oqiii ɓ |}}5rH(:u꤈NӧM$''uP`w^^^2e Ae⢛o n„ '~ nƌ`3<΢I?ɭJ65`u҅ @m۶0aAؔG?rss#;vڵkGv 9777͞= @o絿$M6M!!![r 1.kaÆtw% 0X=#___yfR˖- $A6mt!^ _y饗4m43=#qA'OV=V;vp.hӦMJLL$0XO<3U?^/&\_|nݺ0`yK ҺuE&MS7n$ 0ҥK5vXT>}c0T\ PmTDDJKK )XR@@6l ooo@p# 0fv8rJ50p*++>0`I˹{㚹jٲe<&f0x`mذAm6 0@eeek\q ,M6zw8ժU+5mTׯ' PiԨz-j\TT;={,k`zZf"""f޼y=z4A2+W wԉ2jÆ fW_}?p' P 3f aNyyyiՊ% P7xCSN% ooomܸQÆ # PдiSmܸQz x7u7(@m֭vܩ8€!j;w4h@ 5-##C[nU۶m 3c m޼Ymڴ! P7xC/էO۷OǏ' Pk1f8p4xbXB͛7'P ڵkl2L'--MYYYN 0$hݺxM2EnnnKoW_Uee%(00P{fΜ ,)++KVZ%.(ݻkƌ4i5jD O>Dӫg(OOO?^ӧOW^UXX^{M޽{ .͛7o~mVm۶U-Ըq㟍aÆ-ܹs*))$HWaat>>L ypиq;y /ۊ _ի/Ac///M0A3gTDDkXΜ9s|҅VPPJܹsl5j$??p>`Py<~rrr_T\\竨HeeeyHs5_u?yT_qq/^9shϞ=.M4ٳ5}^4gzᇵn:cwww]w%___`֭;cǎ/ԼyԡC J=.}#<;n9rD'Oֿ+-ZЪUTVVꮻ/={ڵky5h"tMЯ_?YF~~~ ^Zƍc쯨Ks֬Y+ poҥ~mv؈#hѢ+8U҃7֦M8 tU%%%/{/z phÆ 2d`2d233/.z =;LU-c/8}7L^ӤI7?&v 7hW>ד&+""Bp8zH ֭ƏQFiժU$E:tH;wVUUgnB”_?_"""ԻwobfΜy0c аaC; gH?KBXԸq~]I UϞ=S\\\4tP~( v* $ [נA5 I.Mt@G(Mv$I$졼\& S؍;@VE؉锋 3Ivv$N`+`7ѣMٳ}v&vCxI8svCظq#`|Wڿ?`qV:.믓 VTTիW*++#,jٲe***yŋI r:z'~kMYv.\~zRb~y/IIr8lٲEկ][nkFZX@EEn _ Μ9Cjܳ>}]JzPXXB%''&t^ $͛7Ov"=L;PAAE @ee&Nx?饗^ҥK/{~v/;_GVVT\\|k~ RTT`p4h/{/9 I 6֭[ճgON_~~~Cii_,_f~[*000sj֬Y3W\$W^zE5kj9۷k*++#qه~ &T{_ JK=YԾ>@C ~5V$iݺu9rUJNNVaaUj]KԚ5klذA:w5}kSNDe˖-Sjj5HҶm/%@-ykBk:SM6ժURTTTh̙zkX$-ZHƍcp5vXmܸƿ%_t5-eŊ*//W*:tHk O%%%^S&MXTʕ+Z;jwQddÒ TVV{ѣku_3?г>,Y.ĉ8q233ke)K7ސNҀh"iӆ`+/ZRF͛7k׮zXaÆoםTJJ{9v,7ЬYtIC|?xTյkW-]5`)N҄ 4vX S$ɓ?~F5`z:u%K{3׬YΝ;kΜ9bѣG5l0p 3hk.&..N ,PǎYWUUg}VӟtYC.԰aC{(www.!Yj֭uA}.ffOsZnk^[oU߾}M7 /ZjK.wܡS.fW\N:***X+/5~xM?S]vܹsէOR@)--?\Νe p7ި{LkYf/f@=͙3S;vYf&o[nQvv6a ܲeŋɓ'5qDgFsr u-(//0:o:wW^y04f3?35gذa7oZhA`0/mݦ'O35kݺu …  "77W8q";fjߐ!C`jՊ0+ui`n s=GPrrr4|pM2?3gȑzմiSZzjxL3`k׮$ %Ś1cFοJzMaa^}Urss#!{ѐ!CoF @ ѣ.]\ө{TZZJ ?1c\|M6Mo&a;vn6Tþ}Οsݻ.]֭[\s=nMΝ# 5iDK,Qbb"aj֬Yz p :uJC3m2 ʕ+(`)O֠Ae N6lؠ` `4hvE\ղeKٓ0~?x`v\u֩M6޽;a0 :T۷o' .63WW-\P'O& R\\$& ;"4*++.#IDAT5kq?Hڿ?a0[o?5!??_=S;w.AL"22R|YFiii$ jZjjVX!A ?V>}T\\L&m&r!5nX{& PXX+770@mrwwׇ~”)S+u]vڳg|}} @Yh2224n8-Y ԋO?TQQQ***" :x𠮿zu҅0ԩJ :TG% 9&vw̙3N͝;W{!fP_ uY:43Oӎ;@;UPP@EУGܹSlܸQIIIa\iF=z J# f`$ڵӡCFj5fJ:AqNS_ UŵjԛoT`Ft@5~ uE| A\ Lb @?>!P` , ,;;[k֬! bŊ*..&dɒ%  ̢H֭#dҥ@\vraܹ (0w}W઼r:I9{,wjׯ' *33T[yy6oLՖ-[@ݻWEEEAYڵ[xT۶m3+..VVVA(0?n>3B@w 9s (0/p 3pq" *--%W$''(B>>>+??(BB(P`y\wwwB*|}} $ n!WQF@UM`` !`{ 4h@AAAhт(f͚q +BXA a: af@PBp|||ԬY3:vHSN@ P`*>>>jݺ5AΝ;xv) (vѣ!f͚q 1fCJ^3P Uݻ7!P`F={;ALdd?knݺfӧOBpM3ܹ3f@$$$kֿ5hЀ (.(,Կ(v-___@N@TF7l0BPcܔLY֭ճgOPFI!`7III[#1b!q~~~0`AP`D P&%%'vp8=z4!5Z⩀Jjոq#5j6lHjرcnZ9[ Q~#hҤ (vѣFԷI&:ӴiS^:F@} U߾} @~Gԧ Υ(00 ()S:'aРAjٲ%A@@}6m!7ݺuSϞ= QFz(K&LAm!q hȑA@]ҥ"""!p=|#ɓ'puu$ԶaÆ-3m4JJ@m>}:!0+>> ( 4hA03gu9rBBB M7tAPPFMC馛Fέ0-[jذaA@M޽bbb,Ɍ3i$&&*44 (yv*..<k5ydy{{S6m,Z06m1cWo߾ '`'\I ݻѬY3S5k!PP7x M0AApss7LL[SL! DJJZnM,a̙ɔ+U)!! (P < X RpGLÇUVAxzz*## X7Sp &LPƍ %wf .sd,$$DAOEGG+"" p p;ׯ/9G7nA.L8Q&M6I>}:!ƍS յkW`+M7Dl'..NaaaQP|||-ooo@Ձ*;;['NЉ'TTTW5R``puI;vTÆ 5'ٳ `?ӧO׼y׬B[nջᆱ-[:uT|mWWWkNy]5jɓ'բEQPlaΝ$\Çkzw{並0 4HIIIJLLdWm„ Zd APGڳgAZ |r-\P[lY݀M8QӦMiM6)11 (1g+{饗^ʕ+H:v쨩Sjڴij֬ t:վ}{}WAF);;[ڷowM:UgVhh( {! M6M .$\Pqq^|E=SM(--MwuX\jJQןQ"Rii|IiFzwTUU˗+::Z ݻY`%%%ڴi~~|աC͞=['Oϙ(M8Qfg&OLk4iA@EFFnѣG-:N-^Xaaa.;#Fp]8zFݻv?YY|Io^SUU+yzzjAh}msz'չsg]y9sF3gT\\>V4XҎ;ٳg^m6EDDVqq1T~ԪU+X,dlX_}rΝ;kӦMb1c`-}UHHAgϞ?y+t 4H~JJJfƎKk~G=bccgH59N"##yvDGGI vqQzz:Ag}X=<eee)&&F?0Yڄ`LĢE;vF )//߯x;v@l H-زez衍7EGGs7 F駟W^ZhaԲ'NhС{9%`a&Ԯ];E)22R :RUU{SBVbOyy~+##ԓ-[(**J~!aXP||<== @q)!!A>,aԳka10`APOqqqa!vRddlBQVV3fh*--% 2d!P)>>^ 4 xWԷo_}a@ ,P||rrr @߿?!XԽޫ)Sܹsb`[nUttOСC5oޜ (ӯ_?B0siĉz$;w! =u֍ LɓJLLԒ%KdΞ=aÆqq '5/B111bfb1c.9N1)NRh3[lQ޽_Ǝ˫Mcǎ $ yDFF 4hN>M|r+//0Lp("" (y5i$%>H{֡C)(M6  (++SFF~[ÇէOm޼0LG@0ݻI(997$+ (vkӦMa3eee:u|I0۫QFA0N:}嗊վ}æNfϞٳgs\]]աC_֭ ݫ8}ׄ=o 06mZjEk:~8aE)55UńWA !Z|[N<@iѢ6sjKڶmcǎxh֬Y$ \ց S Ϗ Rrx@|7 |}} `l`eee?~̙C*NRBB6nHаaCB7!ԳB%''k儁kRTTÇkɒ%Q<<<`lPGm<5L7pI'R SoU\\vIQUUU[CF=qss# B=8trԭު*`Jϝ9sΝ;շo_=z0PyMڶma]&+==]# ҏ^z5a0@&0` 5k?qܹ,){nn "էO.)=裚6m @0*Vk[oi:~8a^~eUQyBҥK *1b 8z߿rss *|ڻw/APcÆ z!x㍪ X޽{˪’%K`.zWyM:U> 9Xmڴ0PEEyO?kC@^^/,:t(ϳB+W-U҃P;N:)<<0.bJLL'|B*_^,.tjԩ!ZĜk- ӁJn:M8+a[C ђ%KGj*D-~֢Cif#hȑakozO?0~TsA6Q{qμ<'|ȑ#Y/ ooo@~!7n?YYY믿p8λYQQak Cl27q`RgY(>>>O>Vb3X F5FHH333vm뮳M߿3<<`\pqqq{r[l/̙rXyYKΝy<FLLÖ^^c;,A>vs,c^pVUUYntwwg9S5Ϸy…ƍlZIIIo2یk2SHpC:d0bs~6ॗ^bڟhժsݦe'p:sٳtۍ wt8,G C /C[o9;vȲc0N3f8O8aF^^ѣN2O?u2e`h;x giiaׯw(K͛;-[foVVsҤIc0 1c...,$EΧz^o5.++sΙ3٤I q&O|X|ݫl`܂+IENDB`phatch-0.2.7/data/masks/strokes.jpg0000644000000000000000000002543711346363116017167 0ustar rootroot00000000000000JFIFHHC  !"$"$  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?ʊ(((((((((((((((((((((((((((((((((((((((((((&"cN5)L,)((((((((((((((A5b oc4?VEmi,Tn4_Y{UGREQEQEQEQEQEQEQE4`ѴуIEQERѴTуIEQE9 ;2q]WWq5XxQ?L ҹO@dkԴL'͑ eQEQEQEQEQEQEQNU&HREMkb;TO B)QE=P!'LśtluDvHE>4.pki&FWgM#.P½þ,z._uQҵ=Si\NᝡwWB1+8[}x4(((((()cWmKcҶ i[D[M)[G }ʩ>˟,Jb;U)c#CJ=*x`f=+NNwkfEv Է}ҭ?՚O>DeY7zk.~Zɹ*OBD*i}6ŝxkBiIJx_vǟ½g~PJt(t6:(%\]-1iiHGݬGFFSW J+|Y!V|ծn+L1Ɗ((((((5efX-3Jg#宣LY?J8H'ZQxh_I/JɿP~J=~JuwoT[VvL8IўB>CWiin#+Ҽ$X WGi~|Ju,/ҹWA\vW k*Ob%ZZuvWsu3^ | xt*WB"+[5UU?#T+,Z_i@~6kMkb}B<9IEQEQEQEQEQERtB8DK}x|h~OҺ jGҢ?J|;~OҸwC^ҶkӎHE ##^-_zO$_~^Poxi cXw~BccY߻+I~/6?JfO>gݮIw_5^ Y>OҽELz,h-tqWKB)*x6q^#07^@wV\9y:h((((('[q]#.7m%z<<0HQ~?JBJH\}mv/![.C&CTo+Z'nu~^ ]z/]m@8KEzU;5x>@W6ƼX汤((((((vpau]S[gWxS@!Whz0U_ 8*a*ن:Tڂ:V6f +ZsG 텮rM4V· FU]敤j>QVUĈҤ(=)5J0Lײ;BCXWN存`t+l@Eg^ÐxkV +t~_ҩ|]&*;+t(VU@)h"sXA^{{0;4򟖤<>J hꊧeweDVH(QESXT/kL߻xع~kƼKfdv5h~STC>>f̹mũRxR!SQEQEQEQEVd]ы xC@E_**mtjSKQҩ\{YR؆V-4Ѹekn V1V(QAߥf_A?\߻7{ֶa]b#QnP8bRECY:5x +|Inһ f bvf*,J_ ?r\ƫLrzPZ'ʕ (((U8m2л+Β]^'^="Wh~Z-a u QCQVg5JXj89\v8*`1J-QAZق`URERcb5pKuZG2)l1WU0WS'~U\m?+2o$6n?JoM1k-f:4(((].Ê9ekּ)~^ve?J NWgn@hFIM4Ǩ\f1Ա=*t@;Tb Z(CQUsکҥ8DtqKZ() A7Jɿ5ueTqi@i*1򊴚biGݬ!YO\~ʼŚÝx4Z=ncrQcU(("8B̎-z4B̟'^ *WxsLiQj˜QNi 0JQxQECLaQERO((R*n> SGlNڤFzUiXSyϋ4UZo׋xk)5J(()!fnEq >Oҽ;+ؼ/Dk(-()Դ4Q8REQA(()*6J@ P)ؤ"ϾZ(v~^ª|Z5E-tv-4(-((((((M( Z(r2 r!ڼkDZq_?xgּ\;VzEQEQVmb,Ê?cXf+ۼWOuPQiF (ޗ Z(QEQEQEQEQEQEQERq1m^5dvQEfޖ(/4QEQEQEQEQEQEQHj)[Ky:v ~7ŷPtEQEZtXwHWx.J6 ,-{7ƼWUlQVGJuQEG4Q)hQK(((((( 1]I5k{Q"񶥅:5x.s\͹GEQETxvȜW"5 4xkzJ:ELQ-QHhREQEQEQEQEQE+#RjkU~kwIWP6'./n2֭;qWk((cWm-{/4|;kv?D宒 UQKEQEQE-(((((j9V<=*hJ#킑\@\b/k9׌xkqˆ5J((Ĺj4KmwSft6|{/-vv0QZ1>REQEQEQEQEQEQEQERk aZP)@"bOߊ[q^^uqIEQEr=+v^,*'ˊ""+n(((((((((JLR@iW*kR-¾!(%|/4ԾVqIEQE9Zth ȼWL.v^XZ ؈x * QKEQEQEQEQEQEQEQEQEQ1EQE4W5x@"x/I˿=kε˚zEQEMlWc3$׹>Ҳc;}+/i>_J*"+f%((( &h-QEQE EQEQEQE5Ʉ5>3 ھ{z3 ϭx7.wJ\55^(QZd;W&|Wпt?ҽa"N+jEQEQEQERRfZ((J((((5X:H&ǺXOYi>j]orCQEQNA]^+e'VxHZB0L)h(4QEQERQKEQEJ((((JMq>* ڼ'& _=xR#溌&QEQEMn2º ^>+_izF+f.((4RKEQAHi)E--QEQHh(QKEQE+YהX -kqokEzekƢ(j>a]^pc+cA^kb>KEN) OZ(i4REQER(()h(488D< PGد &ּ WWSsg1ɤ(VO+bDl}\bs^ /5 qSRA4i IP=jHz5 (JCK@QEQEQHh4QEQJ((2Sr#jkUzZwo#o s\ﹺTQEQ@6xWU6׮x*k'5 S^k2jԅE$wWj.oO?EZV5 ȩ֔REP-QEQEQE%bE Z(Bjz#F:EǚKQ]n+jQEQE4'[D\WNiNk<ׯkWRWsJ>jنHS}}j9/TY?0CX8z}W{ե\s]NVV-KސuEQEQERPiEQEr8y:7x|AvdwZ}^kF,((zвk 43ңuz@_BѼDW/IkQʴuZw ~q=Fy\ֿ<֬wm4|<֤ӵQf1 ^l"Wag KEPhQERfњ3KEQERQEQIk*T\ѾjkUּCzr}y/u26k29(((VR0knUd#nY묠|:HU:}Mzֽ*Whpmx8(QL2(Ȥ(FiiE-QEPMQEfV]9j4o|?^'=xqĺwRؒi((()Af+;ըHSAԧQ|}XoYîd}+Z>+nizVV R ( 43QTfaM7֓֔NzzɚMH)E-QERu4QENWPajjkAjk7׍xX.Z7X9f6(((( iB)i>nɉq]߄W2{c+|FZxh->(Q8Qֳ/sU T_⪭&~:=T1~~9;w݊J)QEQIKERBj\Y:E< mX"^?=wZ_kEz oP.W94tQEQEQEQEQEWx@1k_^-9AZ(x(QHUjz\Lj T|lz]pd,9T(J(4&+:*k(񎵴>Iwc yQEQEQEQEQE dp⻟ ^+>k|t iz^8d^kb6ȩA&@+:QO5kzƭWxa7|yƻ3~:ld#jM3_yf?^֔&{wzzqOQEHZ58\| wpku5yu?^/Ms%zjj5#sY瓚J(((((*ūauzu5{5A>j}P WSipG5u$bZYŽ}~\,j?^g?Z_'^kx٘k}^G]G.IS-.ƒi]hJp(4nTLz ,VQKZczstkTB6[kȼc?^7`?^sXŎiQEQEQEQEQEQOշϵ5~Զ2|>Z kw^5 |c돽PͨxV]\Eo6Gy7L\?Z={\i yg?y~yuak9QZ+ҔRE!5Q 5w*UWwީ[Q_TP\}>}ueP~oָ]UV|U?^Ih453<ؚ((((((Y͵t5F^k|5* קsěB2jT~?ΩB~j+Pp~"g ּĞ&2n^ykFB1R݈P,YM_ε>׹x/Oz&0(9hRњ ' :mꢟmcYX\n5 yO$gVF(|@?S|cN#O?:C,Zok|z\\J(((((()Tr*R9KԊW_kߟLAP?yAkV?Fi\`q'\|CTՙ~'I'&֮Y6Wgọװx'P Sp~6^_EjJ ;  j*~jycV^io*Ŀyޭ⯜[z#k[x֬|?ZyooU! k^,kյBjoKP'&(((((()Tr*^k[ma1B-yV]b>ۭ]?9&C%⪳]*,Żv94QEQEQEQEQEQEQEQER撊(("|Ҳ(G5Z'1U?yտ?Z^vk2ĩğs:\Z5I'b39<4SS֏4O04撊(((((((((((5zZVډR>cZ.>sWS]`>JNZs˽QƲo w5BI eQEQEQEQEQEQEQEQEQEQEQEQEQESR;ԫ9ioZ iB{dIEQEQEQEQEQEQEphatch-0.2.7/data/masks/torn_edges.png0000644000000000000000000006214211346363116017624 0ustar rootroot00000000000000PNG  IHDRxfsRGBbKGD̿ pHYs  tIME -gh IDATxw]U=<\}OMrI!PB&\REDŀ?W,"傀 %@h )k#.g9<~O8k^cks_EdP1 eCA ҰL(9 4UU[Сں6p]Wcڠ ^SaE߀ Z+РWA t@4#u TYdar *bɱ434#m ("3{A|КM,L5ڱiڑU\s/utPpJ 3gioGneyf0 h;,g,kA-0@JGeqȵ"k+:XmQb L7 &4 ӆ9S•H?QQy3C@r-h``2e Q7͘jTVD8BV6g75aCk)Dce(`eTΐϢ|DVct:Oa*h a=hJv-oF^2)SXlz&ds,֍u܄z9@ֆ;ANK-(Oe+ۤ# 3Є)zs|84ui;z!]e=ˁ ȽeU)g(:wm?Qyٕb{&ZCϧhd\\!yZɧc5?<|uiHAM_p*ihF^ؓ'kv=ۯ9> WwPn{}V>:i%V}[ PP̓/ >4CB! @5AՕ,_%V/p ɞ^Iq~r~J9X0L@LeXc65s?xV[ \sFB<pUӹhQSCByi"1S`'?1͉'}`p= ]wL}bQŲ"{~ѯ 3l@ 䠱LFnxRC1ei_D^,~yE9?vcI+liJ0*K)jhӛ3<=vWkȴa+0?Qgb'}V|sqdr ^,vթ\?/{E~7NeyU^Pﴀ/կ1E&|{Vj\"A01 <3* w|eD0hodʹ? d.gLME&Q @iW/0.ۈ?)v\IG]DT!NT ȫ=vOkQR8u%]"}LG5E&cZ$u6Wo0 19 :ͺ!\CC \/8{sq@#JrÕf6OԶ<1oLRynHgsf,,?4h[ v XU =U5 (j"w/$IPL2ϼ3v_Eu*?nk-fd?yCJDNnޡ2Q]PMT~u>?llgMKT^  +ڞr#"<ť)\y_ՠZؽY;K9gi a)ǜ{ׯ/rSUNPk{_;TSW/A҃)5{FE-WD>~Ԑ!5(P 9!J~EW2mpҟOã|ks%yw7O#rHG5y(D/ύ,Q Ϸ 43` |D=Bb~s^C7RU"L~̓f `l${0EX]z܉۶wYQco$U y~N݂(#J} qBQ)"黛JH[X :X*iEՇ-* 9r/]ox\D"vq BZQ-|H:[a ?G)4ȅTPqDB }ՄATL8ڡg05Pd~}7_rUT"/PE^Y_9SΤH9*>OwYi9vq59P5>Q9.j҆wۯ(vYZ5p+Hnyk^Dq$Qȿ1(0ϵ. 2 CM`U;J۪wRD1uy+`SEt{YeJ|(X^Pf2j,SC51[OQ(]$Qm%DPACN>E?9b> #cGazM"tFDq²E=D7D^5x(5vk돡URcy2& ՈOܾЖ D9, y+$ *,Q9DSX'C81^XTI~qoWLqOaZRs!(&$yzG$"LqSCSYx}?'uX(*TCk}S5M1UDq"Aq ՂђCJ )j^2ϴs=xr#> zR$? /x.}Cʇ  wxh|BDA(S G)x'iV%ꧾЯm }\K2 M8Cu5z6xLPOG[w8~HaL$I"ODΛLl@CNq_3{5,>5o-ȭI"y0yps1Ѧ E4U'nTo.ϜM?#!}ڱEKKs ~Y Cr~=b;ŋWQy>1D~=/hMzuM,95r/DQ=˦u*E]X4# q,bF%} #4g-@N;}2˲7?/|yU/IH:x+|p~|!$ "_4H=(SL2#: =:+2Z$ɏޠ H*I^nw ǣrG!*>I% c "ɥzx~8e9L !*y$(I֨&C5$uwA(Q/I(q%Eq |A2V y }V[B1j$x{L,^8/x%(%U^쬥~hݣ`oQA9.܈RR%; oӨ%fxY?FE}7hۮ{q}np?KIpflԵDRDKQ<qʅ0fHqL;VCWzHR@!K6N@I"Dڧw{[u2)tۥxʭQOVD2w모^!)˗yټ̶[5͊gscVA=9m~؁0nŌ>GN4IH$ȡzJuNgo?O|D'Tu#I${SDU/$0P`*?R{Xp?TE::y񐈧QߐmUL٩5+s#?O]zb׫~OzÔ-S3oQ($I~6bIT [@(C?8r>?~6SH_XS[6 #Z%;Eu2bDߥMRK*QRZnw5 HF%"A_D{_BJ7K!\=A"6 KQEҺ A{(,E$n$._ t͚3D. AqUyao3k0Hb֫Q䕫}(LEKAzO F(oK.x0MsltGk8}R!%f$(Jq{YS=(VÖϲ_$ol*?--v1g>z*$pɉ0\`1i|D_ks[ǻ~ݿ@ g3R(b >@9q"G, eekSP*!~pduCc9io5=wʾGޥ~+⑑ԡr,^7W!0[ddUZ4P~e\-b r0>RCӴ c'o'49wb.ʶF<=F[M}WcE\9Jü ۞IK##5Cth.bUQ+|x| bK06NJCM¢z*8puM}cH}og_V3 %RÎ-4{1ׇ>R }i{Ws=[;x=pWPj^KPO(b}}`\1Y-}{:޴փ*R~8zz>lizcMi؎Z;ƮL$"whO||v bqgR4Djv+TY08ޙxٗ{z^Ӯ=kkyƶKi]$E"f|֭TG<}/QjRY` ڵbRΠmf̓?V%^8O|HG*9*4yzn4Db vq']w.NOKprؐLh]v_&;Ԏ!/ Հ(]-rLnhp^-:InDzF hҎ]ʾ¤Ϲ`HţYb_P. kMӦf8J!8Rf%qlZ{~y-g"f5j3U$Ҳ\@2=* $5oK.?m $P;Oj&٬EJ)Kב"<6a ի~|TU21Y#E2 3DhG[ qӤqyL`KyIwݢI.f}KR03ULѕ23J`AI);FϺc SM=)<سߍvv2f+.0tU1! uFHToi@ՃW8ȼr>ubtupP!dBHyM1=߳|xs [ꨤNeU!";9bJT+([& ӷCFR+zJհm#sr 6w9f3/.{5/͍Z":h<"yi.7wnuh ¬ݼ(Q Ԛ,DI*&tp̯2^1 Bׁ-^NMVԥ8#qJ2%yNؒ4bHx%׮y$ BIAm?)5* UF >DVP+_OfgnjVizWzaĆi IDATRce?jէ=>c'}𣌚 _kD|3f&?07ז ׯ5!;k=?TG߯mF3oZ<}^O2R|{NIف3 $}GX~[ 3jצjNS)߈~5x/M@%X[-%4:+ 4m8^"ktm@SV(k<^#}5z'"vX \3+ ]J=!POĮ&*!CJhDG%QDM@\QV[F𓍘Fwx|9X%!sgҌv6귿SR Ri>rDjFShj{$7x@k$3yR ɖ D,?d9S z7eXgVjj6)Kc;uR6%?4z)Ɖ.M+AJJ4SYșŏ.a6if"p E4,}mW>UKt5>)1LZhG| Wͪ̋0)8 [:v\jea)eH@lTSѾ7 ΄X5Sb{%Fw44&@݃D= oa^"3wވ~ ϮO @H?=_O/uv'ܳ$B]dz)~NB?^y&ރ9JN4)Oyc;)Ɯ8&׃0OͼC/:'K˹g˱ӌ.LÉ^&$1[\S2, j)R0Y\{ oS~ڎvGT_PD(WLS1&)c0,w.ɿ['f6U([S.gb]7|KE'/P-fj)3c})b]RT#@T0wO㠣  d=<\XlX i8U(B5SVػ+ݦSXw'14%R3<.B9 tOyMj.ja` Mwi_{~* TY* 8sOfneɩſ)C:nEBʍ!s1?WVd8 WCi['i}8MwNgO8n0wl3bsgvO\~WG7{HC&(L*bp.g@`Eό LXr֕mWd05RY߻ 5U61EbD[W9=}7'kDp}bؙ坺j`[j"I>ֽncmO 0ip(s }ZjM7|dLD*s-^$pHKtJUTkmw{pHө^ Y+YI˗3ƴZ/@"<=C&icd>e6Sו?{KTڱ"@㝉  ƙaߩaeBm>cb;dNfAL/l iApgj)~{bOm+?gf6m`1]s:nIm{3\4QcQ"#DHzՆaɏOǃvR ^lST-+ddEm(>bX 4/.'TyjOj#\΅#RNkӯX_n!Յ3:̴ވu=MV!o2pRm٦Xi׆,R ]؏ i-Jń&P.5?ڿ3>_ |7Lj \<+l=bC+\35<;]YE{aJEc &9)/̾F:ndp efhhͧw-R#7kaѭG1PX.*ÆA"Q>1p7-&΅xICjd &PQ$Uq>RnS*kA[w=M6j)&;?Tc~l#W}?ԣ4wI9+xk6:!0u arPCoo=?8 ɿн;݈%gH&tEA=K^LTDZ|<^!$ne $@_`5=c}8&-nY $P *YY/Pk4dJQʓޙʸ\kjk+?ǔ=oYl*1LR7f9T!U愋ke=̿sQdTB{6;JMhj)\誋fh,ơ9\SavNn27 bR^~xorqMe4^۞."J`x!B~o\U01L(m^ƴuWi3ꉎH%'*BB9uOCxc探3am~N]L\5Nj*1,HᆐԓM=GFeRGxWt(hƶYOD+'EqLUJf ;a>ނgܪ s JizWG\bo]Oz' Xt{VŪ`T-6vuCԷmm x5W4M`$gr0A:Hk&xC)S}̣'l"-ltYm\m9,O캷BzeYkj)xkr#hnqHh\+CU5-{ino R)zOamhlsMɑEk-fd0d0~dl|k^:K梾Gl'6oHkQxϒc:`fgiC2R A5q^c>o*3/,w!>9`(P0?4 K hȈ)r9b_/|t'mfsql5BXEtG3[+;x ~̜Lp>bX!Ɠ%#Tn<1[B+_,)QT/D$ܨŒ!BlR zBQ"$aBnPxOK5c*֜ @$d'yYTmOX~/";B:qہcy^ ""+mX섹F2"$R;r<9hԈwu}1޽`ޒ?`ѶU (X̡~Y6 O@u&ℲwugV9caYWq`NMǮz+̲LI(ImlԪdNc?^~ǃB5;'fžm($o-ii׊OMjRj?[+>sNrE$B`sLlۯTp`N}:!6o*d3ъx?{"pZl5p uN^:@6Ue{OzH,~p9a2398a{dӆTV↘.yLRiD1jCK+NeuYOM+2l9)I59[(Hc_{>ƥƯ,dgnNgnڌj&HJ#ϼ|TUtVc*A45Q9sMlB8hYbͯw~'p S k_9/Ekd¬o]*|$ S^pʪ $"#abF>+PeEbuDnB/>yeH&P-5Ju)ȗ| ̱C Tl|S酖/_Rg,k-'h2#gc7=֊ZN;fr -IQt] g95#-9{Į&THڴ (|ê Db:mC3˭N!V-Մ:6wzM{ԍ.uJ%[37B÷r]pe72/LLJ,,ܯQh(}0y)@Y5#:R QgkcTDv{E3pS3BS;Kf![6qˊ`@jxJ Ү(I Xj˖j~ [HW9>Vv7}wŧ=ybеh9- /[0`JNK%4ߩhqh(JQB`wR#sZx(g$6r(rֿ{<k>.y=Mgqt>koP6J6sY[TXCkJ c|n/v xjYBࡒ$#.lEgf+ dtpƘE\*֫|LZC&SP#M|cbFvQ =ۆw BlzިGY347΍i""ђ#BF cx/fP10EQZj'fp#D-UY˫^HrDG6U_k @k?Rӻ.o2t`nR@Tg͢x֝>BT_r_O-'9cCMKFDw_>P72?ݶusŴqD(xX*Ro[ثߞ"R'Z?<};'CfC;Y^] AX[b-qub3Ʊc+2ױg=ڹz%8}2o~iXaZSӦRHyKuOMgl}2;#6tA<} %umoN}gL0ʄ$/rOBH' $?28H m R{LMZA~| yhO{fey}?孻tTlcLL n5('11jb0~3c"}ޛ]zZϽ>9K4bveXQCv;V#78g\DhT !-2+ܻeKִ&9d:\5/>r|)W5Hi;N-Ԕ7G1el bzN2׎ lM*j3Fqs0TS)Y:aX].vcLNM vD`)^͎]*tAw=C+TƀM9Ι*"t}_u͉iOÔ\IZ<^NCCT]q?P}Z%(иW7ĵ蓃MqȒ|I _SY)ɻ94Fv:Zw&hjapѩpj9iѨ-4590Sh/6K8RFӵN06]{mKaTDKWfd{opٌ|!nljc4dVgNelGF#2 XG@qqM> $bFD4nj~xm|F-JG K:tcsL @Xv(՚< ^Z/O0uZ=qޫ|M 6o6՗g 1^$EnZa\n g|ˍ"=!HX7Чڔ:BS1[譝֎jƳFXAd2&vl\͝ӕS/}3esn^ˌ4%O1(%Ƈ?F\h B]d]}l(pC#|9Vf<>뢉G#։x"Bk$,=mI`&nvqX9Lp)MeUIq%/ő}˗vS9ߠ^$1мlw jl =cQi*|+Ƹkֳu6gޭ nsG':AA1Fkw-i$9'. 0mG=4zy@*"cĴC)UU tj0V?U| p%D2\|M'?5m:W9CC[-|35ۏPdU`M^[ :(,P'vfwe47t̷A:x"6bU2Ю+/*5ZH(E2߲bK;PD;ZD톇YoN7!mQ>7U7LJ,6>B9aG `D cܛ IDAT04N0W*b` = au)(5ZQu*%gq:lFg)/*XujB?={&HTm ;ZYȂ#m?J|W_}zu6^NPP< '>LP'F;QH$ovbK{J{bU!I 2 p_Rڟ3PS4b0|!W^ɇq8S}6}s,7Muo$G\k ^plGJwx uBb6yhox֒JwXd# BO|h^4o~=ґJL SZ)9 ncY9տnZ=,AjHe >l{ZP9ߘ۲:;K<)+%iB\whP7*ءQ+?sY^׍ dc@ -OtPCӶ^J^ 52/1W .=u;86mR|=H 6_z'֤qrp|@KG λFk.CDt؛NӰ |%YM{r"F=e_I䎽{-~82xK7bxFC󷾍=Wޔ{ #eQPwQR3n^nrJ+iIbpm1eP'بyǙ0gGeҬH$?wX!c^즒]lA7fJEZiD %{YV ]P@lrӏ^yU6Դ M\olQ#P:i"m8`MA lyw.Jqa.jFuH yҼg'_WADocQtcʠʰrC'dž SG{/hȥ=aQX̰ެfzBcr܅_0)iSzW jUERx#}?,-~Ӱa ^t5+-(L G, u}=M[dCoW:]EM}H}\ Ơa%)ʁK'<74;i -UWwO|NՎ-;~zj<=ԧV q:f9'yo`;1r̄mWCζhԑ7Of1=wBo?V]xnif+ҺtFtUgu-p5W/[S[ΐE9&vq#ڷ$ATa&= >N[%"1WnNԖq1y"ۼnsV5j֓ReG5+4n3>wCWcZ,/U*4 ӳ(rֵٞ1W|saoV8Ok7 "=h%LjT}i&^$&:f+)'/֟ӓ6Co׏SaZF\PIE$jI [;R瘑ݫ Ĝa֧ŰaH0-Q#J 7aTXRIOGs1{Z\yu࢕yjɣW\ V2dKC%V~u ]%CRf40Tk R2(yEf"VJ% 3>c*QRPX׋,qp#Q+e$ -ذï,8DbHEߛOT#iPDaE"))( 0N*"zmuIEQqDI$No/IA& xyIDQ*~Ukɥ31CAOLU)Y}{+\}ؓC6j*{ľsXnQxոE*T"\pΥ }5").hKe.O#dReR!FTPғNqΆ}nm0¶m!4۪b5'7˃^׻o,ʝ86uMHK1.8)s]/؎e( +qɢZ5d[ X.̡7}Rno1Lq(,gθvt%@ 99_.(d0$T۔l l E:As(vk;MI=9NHt;ϻpgGIxײG/wmk8J9ا3(&C>TDDDPHD5Zf^\zL;uG{-gE=< ڥ7nҡNգTLaT,ݘӆCa8~ {}/|G/y1~|۩$M{"ݢ>JL>jBb[/SXzKD=T0ÄPG;T&*dJzY5|vQh9R $*}E'qD}O9e}ȏ=DQ-v( rEABJ\/ZTO$vKCox˽w|oK$Q>UhXDBΓw:|?*я&uv&RoIDAö=L4A"'E{<ZiA_4G~\ Dds Q7M:2 QR#w 4}o^ROovBNkT@Ťz(*#1-bQ0! {%De€huq\܅Y-ALTk5ߜ82}ċ#'_Oܳ(|~rTB΅bzJ]%yn9cm(2-X4mYS;JA.:G;{pEV~D{igK|VVe.{fH~+#r眃=" dej)` D^C**`CYM ~N _m:`yq{g}QF3zʹda^OLaҢ-016fW.J*Q'[zG:~W*#'J.mGHj̧Rqjҋ:JK\Z6O8D AsKWā㛲yCC:!#ϯP@Q/ѕ/AƣI?Q;te0phFimNҞ"4#%a#eFs C T/iX[JV,[tkOyݷ`1- Ðy[.x&yϫ{4 6H&~i wY(q9D A+EJQBR4jk/?OQjat5˵Q}%Gz7Y:rR2VD.T]z Pm/ 7#hœSH-:8a8@I%Q %rRWvv:?SN>t 1e?N_{n%R-Qqiv]DQqBDE>բZQEr#LA(\Jj#D/*O].}x "!ZؚV|wSI;_&I\Y4( R#JHNi@U9վ~/u_{,s0)jk1nrWJ!lOt8P̡];Nchwn8sؒA(,)H`򾗊Ox{yT (VRPbHʼnRy&(Uȥ,Tk{;]yyn_Bm hlzq+v7\*fbD92+M9njm#Uep bh0lԗ λx٧kv/X^+qզŒ:⩒kt Y't$.ٶqA)! Ǜ;-1""0OwV4 s@JEw~oo5;O2 p[i );6 # #$4逮q#,H#oY̚O!yD*T% _9WOڈ\Re_KT&M>1;O8-~k}ԡDU bMoskw^x][r&$ɢ(`ttYd2 ,O<^c` a߹]X̴9-4Mp;`ĶgoR4 :1&ǠI16v+HmLP͢MՎe0V8N.k4l)`=.5>EͩR4@Coj_}4N}wO8`ɦ%2kKskEӚcȴnFg`w9ʚaI ɲ:vO=`n|~63C3SqhrKaA0¸4K-X)J_{ ϯ~*M5x~uQ[Y{.{^O"RAHTbO $|my7]S1n⓴FvnٛV-0XZyst’ \  Y`:Dʀβ)ddG.&K a1C 6EȑPG`6&47/+fB Qz:h~'Y: M" dȧr"7Zqujt9Y|]k[Lc?Cy3FDC̱[W_kS7i '„$~_RQf 3䎛˯6`9Cby#a޶Oj6U'w塥49Ls>K MnemtDԹ!DԵ) 8W^YM1-BG;Gde,=$m3qt<@l%$/xН&]ԓ >+BvA:4){_f`(1q^^~q긬,߂Ve rʵi>ϒ )d@T^I4"'T4O2xS8( d=G;~/[I^~2y>~"V]Izlv{j7VgY "O&4)Nm 04eЌ]&Ӝ|lħ I {C.N !;.j7z|KQ e !%E@HYlctܐR0! ~_@>OٛSÏmAv 7?`e8g z`6F=Ig=)hЬ=iψd0k51aMdXna ۞rziiiKɡFj޳6t(9TsfpX[c"30a@RLnL9sj4037._& R:i943f5s EH]Y@0HLr0x9 f =4 @3ˌ19t\: Lg` M~ٌq.ڮ-Ƨz1? 0Ʒ_&W*j!05-[kKlc' ׍6} ~pSn)#pYp3v,ot-)W:fW +c RR,`xc0OtWyަW|]AfkMfMiB ݔ''f8R{$Ú~>xg&``r3ضy6Ϣ8q4%5﹡m-*l; Yhe)|6l6tnqIENDB`phatch-0.2.7/data/perspective/0000755000000000000000000000000011346363116016173 5ustar rootroot00000000000000phatch-0.2.7/data/perspective/bottom.png0000644000000000000000000000165311346363116020212 0ustar rootroot00000000000000PNG  IHDR@@iqsRGBbKGD pHYs B(xtIME0+IDATxOHqǟβ ;; [L D;vb D:t  ua;0D-eO^}7=>Lpg@ @ ~,[^2ư#z( c #EQĚ RE@DH&1Vw lˈBU"V@eEQnD,KFDͯiFoWp }m&neYK-RlVϟyV O>^)4 zzz~omm]Qt\+L؇]BVQH@473`v2d6=凭|q  \.wp$[!X,vK/] Ri^766wuumV~GޟxcbggͫZbkkk[GP1?r끰ҙ\6矘ImPr{{{QTbONN2K)mpb% (fXyFno犭p"=;@ǚ_YYnͫm'J]S+HNV |:avviG\N$Iʘޯ $etQ|v~q |D{'_N h./|Zv6  @ 1IENDB`phatch-0.2.7/data/perspective/bottom_stretched.png0000644000000000000000000000420611346363116022254 0ustar rootroot00000000000000PNG  IHDR@@iq pHYs B(x8IDATxA0|z8ʍ z"bZOـ{Wbb a߾}NcbaaFb|}":3000<}Th`Zre8":1000ڵˍ"q522"gdddG XZgoܸR"*`|UG111,)9߿ti"wQa`@2000,": 0000|`` f17oވ u0/_g` 5nXPm6/d;@n3P "X<{L7xŋ7*?&ff>?s !C@n]vM &K=멯_r{0 ™6n0t @tkk›޽{'DmGĉׯ_ddd+ 1m޼ٗad _~RX]~} "UXlݻb|YcH:š qM_~62 Ϳ5 222;} rBIgdffw[n!P7nЀº Ν; )ŰW H >F,7BB X D  CݻwO ۴>B X_z(6ӿ3:uB |.6CR1gsa Cu)3̳?Pm5DcB/U  G,,k#gHCeXk[BC1 B,5BBBV,bBϟ?>\# uxb@ 10 . z rB)a?\0[oVbb`@4o0m0+0VԼ'uXqqXw5 bI :5~k)3bbaa{AN\x311b?óg$00 ΅0qrr~{bb```زeϟ?:`jHK` "bb`@GrSb```Bi1[>lb?#"ݻwb8r50/1̟|||o޼b ?2>}ubZ|y$0X"b`޾}+ bd \yi{IENDB`phatch-0.2.7/data/perspective/corner_bottom_left.png0000644000000000000000000000422111346363116022566 0ustar rootroot00000000000000PNG  IHDR@@iqsRGBbKGD pHYs B(xtIME 9IDATx[OS[Z-O4܊FR0g0gP9'2f3&5N,R9 ҃aڢʔKZaG6  ~z{k}[7"B`X,??}~ymt" 2B`Pb"=e9F;h[e9x< .cr$IRUU !BSRPJ,|>/yիW+pxy˗ۇ^ R~ BP(4͛_SJ9)b\ HᡶK.p,ԤlA|əoM?yp) IbW?}P(4R__?8?UUtPlsN'߿.lōp,F"H?8M444099Y[1g@ qwvvFϝ;tf-K(h~RJxsGGRh;%B#/hWz{{XWW׋'Kx:2Ƙz޽+H.cL5~ 2vg@ʕ+\.\ww'(s,ljdVևK0f2w&q?Mwuu|?9q[պ2+t AdYg,kbMSSӻ/>q_~:!(„1alN)U%I*0B׾  ۪Q= }{9UERoY$)O<9_,T2JPEQl6fN$iE M@xezznB,y(adѣmho P6uSZ=L*B@2j3a5J M>p Xk099Y?77)D Ƙ@]8oxQT*USTDUE$I)eO4Ktڃ1TG>H$>|8(e< Jrl6۪Yr!ŏp+ o[ݴGK&J^7Dψmp ݾ&BX[[.,,TX0.sS˗gpsK~UgϞfN###l6YUˎR'A0x]ӧO"`2AeɤovvֈQVR (0<<&!2$Cv~; $I*: 2"DMMMۮ5iD: RP955O(!D+B=!d2f[^ ޮa^y3@j},}h3N{$IR0 YH.+rexAb86x@<o) VAAڃc0k8ţhvO̵!ZZZ*f#T*U[+(IBă.n;wAO͜_~}juuF_@vc*5ÖnÀRqbD !B0!S֬TN'J|-a&@G$T$# Ʒoߞ _S"remR6uYY#+r^UU1c,keq!=#6J`xAEPJaǦ(s*ĭb)QI Z̎ckV1WTT,^||^~)_2Cz-K'5BCSS;ѣ"]WA^9rFcVē(Vb9 B#`p WWWyUvgrP(XBПHgM5wi C`p -WYYpԩ{6%+Wm=(z?ku1!8岲^\DžJSTUegΜyYWW77oE;xUUZR_OymPnJIENDB`phatch-0.2.7/data/perspective/corner_bottom_right.png0000644000000000000000000000404511346363116022755 0ustar rootroot00000000000000PNG  IHDR@@iqsRGBbKGD pHYs B(xtIME *J@ IDATx[o3W7A!)چmKiXݨhˮh6lا>H<djDFN,G1Cxز'؎=3:eOtH_=sQa!8Rj`_Qbiii$\hI4Ye s9nj11RRjϤR/߿(=?m\v3cccn1JcNa?px-m!pE ̂gE!It3DP(߹sOKKK#>l($',BcSNN#2SY_x+F"kkk _|S,t]+|cEg̒NTheUU;777?r:\tcBʺ"1Qx'4MVUsvv빹S3 by0~ٯ'2!V(Nc B{&9\׊cBhHw#Ƙ Z ad2hyFT500 $IB_t&i&3UD"'EChO!>gC/5B vfr]*I1<66/1^촠;ZL&ݕcH+377X(Up><cY5;9>lv+++'_c!t:i& (%`핕DȊ U<`jj{5 T\.ׅBcwww[?{͛7@!B)5bvN5y@477 -J-vШȲay'^EQzBc_("˟E"v$I:YZZ)'PJ eYVUv UU;)[[[t]W!â2{kBJB)eH.\7>>D۷o9uhwwukk뗯)Vu}a}enP|/^ONs})(1暦ɍUU'RjA/_|eY${ݬ\.;Q$=&G@ p Yzy r?kNaլ`5و,..~f'awVѣGKRj%+_uittƣVl͜0|>Q($(Cƍ N2<0x_涻@kxW&9 >ڵk|,RJ.UIENDB`phatch-0.2.7/data/perspective/corner_top_left.png0000644000000000000000000000521211346363116022065 0ustar rootroot00000000000000PNG  IHDR@@iq pHYs B(x >OC5qyy #X?Գz(rMiaaa1B```` ]0ac,,,ʰ_~y/<H?0,`{=~SHH蝗׶ ºk @ +Ԑ#[[jkk_eggn!z/@YX!bbb455l}O\\%z vc?7?~=Ce`$e|*""򆓓󻯯f]]˶EDDވD7Vcb3޾s ?rGayyuttXZZ? ycL/&5*nNb`C]d뛔Գ3)jd pb ~jxB(, },Lwa@)ESS󺹹I}}~~~" z.1B ?p%=66_ F!''wss7BCCW~6˻ b™%fccwI\\v rrrDEE_yx0.1~bm 0B{!;wν3RN1#Goll1Zb6-t:3njV R?~q 1f_] # $)܀geel.kB'F d[5re1kmm}nP  vchn\.׊f펗mP=zaL $wnPg`c$rwwwn7\#!>C۴ l6[{ߴIJv'3!p8oB$bV[|>a,%A5#p8<<ˇQj… ,I93k%u|ƍX,=d333Z^ /Zbh~թ DF-..eYօ: qTQ}ǔR*_%yBb6---P\T$Iapp+NWݿoxܛJ@3zSğ$|^X2VWWFbP(XTZX GGGO<o 2mn3ILl144|ٗ/_~ǽD­gj6~~H(a~nnGe%lۣHzE$\m;Y^F0??AjU[ LCzϳ}řB`UYJ7D­.JVVV\|&''ڶk>ӧO m1vJ)e$eӻٳg]7og՚G1A@o;c hR?Glh}Tm%\a}k!tұǏ_L&Է(i,~ FQ=>99듽= ϟΝ;?HdR \^#IENDB`phatch-0.2.7/data/perspective/jpg.source0000644000000000000000000000123311346363116020174 0ustar rootroot00000000000000JFIFYYCC" ?phatch-0.2.7/data/perspective/left.png0000644000000000000000000000264111346363116017636 0ustar rootroot00000000000000PNG  IHDR@@iq pHYs B(xSIDATxb?жmY033X|gڴi0}|y`+ j[r@/r6rwk g && 455~ eg@-..Y$f&Vmn:| r@2Vm222͝ki[m4ڔ0q<=6t|>qF?Zd ŋzL-`ײNjbz"H!Dffef```?#5b!efddZfR)P+b!CR3C LLLiR)ϿG5w􏑑?Xdee/_L& uuuO544ŞX(@>peٽ/{{{N7tp>|c}*60 0 0 0 0 0 0 nCoSvJ-0Kb$v7F%H eEycI֣j&!I2{mNX,,/ɲޘ>Hf^0́(,/MNNa栵G=h)DBUWQEl<_ey4OJikQ7EY755rVuq]:|n4]mll|LdZY#Ņ(!4BЎ(drallSϷDNy: B2̌$I,/y<kuѰhCOunV]]\說pxnPiF2}yk'\OO4MYA6IJ55f@>]8y~+J͉|UU -v5z0 sNgy߲Th*eֱh>ao𶪪`MH?>aS͛] O[ oIENDB`phatch-0.2.7/data/perspective/perspective.phatch0000644000000000000000000000461311346363116021721 0ustar rootroot00000000000000{'actions': [{'fields': {'Background Color': u'#ffffff', 'Background Opacity': u'0', 'Bottom Shear Factor': u'120', 'Horizontal Offset': u'5%', 'Left Shear Angle': u'0', 'Resample Image': u'bilinear', 'Right Shear Factor': u'0', 'Scale': u'100', 'Top Shear Angle': u'30', 'Vertical Offset': u'0%', '__enabled__': 'yes'}, 'label': 'Perspective'}, {'fields': {'All': '1px', 'Bottom': '0px', 'Left': '0px', 'Mode': u'Auto', 'Right': '0px', 'Top': '0px', '__enabled__': 'yes'}, 'label': 'Crop'}, {'fields': {'Canvas Height': u'64 px', 'Canvas Width': u'64 px', 'Constrain Proportions': 'yes', 'Resample Image': u'antialias', 'Resolution': u'', 'Scale Down Only': 'no', '__enabled__': 'yes'}, 'label': 'Scale'}, {'fields': {'Align Horizontal': u'50', 'Align Vertical': u'50', 'Background Color': '#FFFFFF', 'Canvas Height': u'64 px', 'Canvas Width': u'64 px', 'Opacity': u'0', 'Resolution': u'', '__enabled__': 'yes'}, 'label': 'Canvas'}, {'fields': {'As': u'', 'File Name': u'left', 'In': u'', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'Metadata': 'yes', 'PNG Optimize': 'no', 'Resolution': u'', 'Show Type Options': 'no', 'TIFF Compression': u'', '__enabled__': 'yes'}, 'label': 'Save'}], 'description': u'Generate perspective previews.'}phatch-0.2.7/data/perspective/right.png0000644000000000000000000000170011346363116020014 0ustar rootroot00000000000000PNG  IHDR@@iqsRGBbKGD pHYs B(xtIME  }@IDATxAHTAǿy)D[`PAyR 4 b) A": m :, v ʔKâOy;]};?@DGJI ^]sΙK/} @AU;;;g")—>77wuq Uh4Z"ջpΙ "lmm|F)1ŏqN ޫNsUL]`X`X`X`X`X`qR*J)8*Ă`sB5xظ800<)x#dՇW"%sFGG744TV.===oBFgggw*뺁D"HVL&E8(sL&kjj[$հz]9j0~bD199hSajQdZ[[?Ӌd29\__"Q6\|08Yjfjj>:KU1dwgϞI]tIŋϟ7|ӧOņ/?X bYbZ`Ycׯ_l{u#ʕ+oݺv l322ML ";Kd\Ç~ʽqFw m޼ӧO|ϟ?DW􏙙/GYl"ȥ322}u1/_o۶ٳgRgΜ1+7<dz?.s#Gܾ}[>%H-1%b/,fa~>| pu+W;wW|PϢ 9H?~z;wT}*k. >zHb?C%fbdbb^bVH! Lbd``OLqbddd7cXbd``1IbJº@m$,bܻwׯ_W\~57nh|YlU(ӿh BY'_7oވ\tIҥKzk֬ 3իWi-ȥb|m=e'O4#իC/]wM?x(BI ɹtޕ+WtVZgbyq%l#`"j< \… >|Xn] o޼kQ kI<>"yz*A^Uׯ/^Կv,8qJڎ6Tru>_>ٳ7oTz ɞ!lg-ۥKnܸrϟ?:tgPs61X_f\[ݻtk׮i:uƍ? :j}Jm˗uoݺjժO>߿9ds 'V8\ɓ'2gΜ1ycǬn߾z=%l;E 8t 's&&詄R޾}[uժUa?~߻w3z˅ ׯ_9s޽{J{[з (nRuڊ+"޾}+c:IIENDB`phatch-0.2.7/data/perspective/top.png0000644000000000000000000000260311346363116017504 0ustar rootroot00000000000000PNG  IHDR@@iq pHYs B(x5IDATxb?Hbh 4b=🉉/100bضm'H0]6b?CFFt,,,q0?fddL?b?Ǐe_ 󛸸Ǐb7+{*`ff1g3b~nddtax0ϻ?߿bVZx`Xtu b?J n g3,DN8awlffvϟlg3r"PưܹsrJaB Xȼ}VHYYrE ƹy b@iӦeTyii'/^GO0 dCr(aϟ^!c' l󼻻\1* NV%}7nPGa0MW\l`u>)ojB*eUSSS<+ ;߾}ӻl`0a"B0C,Y0xkX˛H"<4V6>Wc"*`yaFF0EȊ+I3"Jr; 9 4yg3*"Z!,I~ZD^^( *"Z!r*8qb`H0[[[G "I1rJ>a?-1"Yٸq@,y[[`)ݽ6Ro8@ !S477@r`||+|>rUU%X, s vh[ee x]<)N#8~L&!,˧1JrsBwŏ}UU%}}!]?m'M9J?>c^ P(t(~l 0:: 0gff>kx|Kt2? ":v u:T(眃so8 )BILc+%hxvy@Q,˧ڕDt Be.Pڞ܈nEQ$9͊yc PSSӶ8@D~r]*فІǔR4_(tuumDBh8 yO?@ 5d2.1F !*:Cl&&&>bی1NOOC;Ibl D"VOgeem*UVVUP4XxEQ,hK0tpauu-(v~~cB&VhG<r\X5S@t:}'[U⚱@Er]`hE/,,/Ē yPJ\ΪSDS*kh3{DbsN9j5XYtx<Y15;HUUl"ab弒Z?Y16uZΣXtvvC+B46o9@KQ]]S+!gh˂//_zXd{7ao$TUUjllܱJ RkzɑP pL&}%tWl[|zK0V =z0BC3+BQuuum,-̰Bɲ|r||/62\0ZA9\ G%^=C#?HxxQ^dĦN0׈r|E"kF"DٹQ$(_F!%ONN~jFE<7_t]KKf `(B ɉа&a&988+ts"9',^x(a8}YYbH$ըNR* @ E"===}R̦륯~ԡ"$$IENDB`phatch-0.2.7/data/perspective/user.png0000644000000000000000000000235111346363116017660 0ustar rootroot00000000000000PNG  IHDR@@`UsRGBbKGD̿ pHYs B(xtIME ɊmIDATh]L[eo_XiaT12Yd@&,Y,^-011Q/g.%K4&n$sIBL)&  hiKk=9FhhxꚐAD:vÀ*<;ea$uӑ{3~J# |3U7Lu=s4rE[6ȹR T%q/k>JL -dPSGgU6'Pix; l9{Qih)ƅ\$\|瑈?=-wYKE^6 񈭚-ؒ2g# R~WWNj2:F&nPf# soh2:o+da#SJ)VJpŷU| @7H"/#0K/}좇.^MoD g<~Jh5hay7#h =`9/)A'N\ebuχ6ij:c"/Ok·3M,śE [(=1dў%L9Ar\#=;؟ obt )ۻ+O]Ϣ?G .d`$d|~XXYl!u_zk$-OWj֗OE; %lM %>Pm#C+6_P>Uޙ)X·5W 7x§O8Ox''` (^%q|Fq/ `4VC`&%8mHD"MGFB$|/~ˉMK'PveYɇ+7n4ExL,CJ`br%/ {@+yy#xucԧJ~q?!cߵc@9ޙΘv.FHG&5`j_"^GT=Ĭ  0fƘR;=胨x\;?RC I8|AP48I(,gkYfwrF`y34[cTt'WbhL+/ LItC*IENDB`phatch-0.2.7/data/user.png0000644000000000000000000001116211346363116015327 0ustar rootroot00000000000000PNG  IHDR>asRGBbKGD pHYsJ޸tIME 0T{HIDATx{PSg/  $QQxJ+hVvtޮmw8u;ә:vt38۪b[mF[ժ@pOB.,(X$!yf<'3'?"ko%%%r"zQ0q׈軌 _?q/$D8Q7"/\l=5߹uŊY|8"* Xr!u5rY|B"zuX|ߎ_}Y i QΚ5keBo0>ߦѹ>J^ׯ_s&"z"//+'믿ְC'g%bvooԎsD^F7RJ<""m߾]?ԋ1TOۿٳg Zw }dPT緝wVaWTN>-{rAˁq\8} mG^uL&[ZZڂ;v DWl6cҥDX,Nx0J .{YYYرcB! ۋ( T*DEEAxDGD{v!F9ᅨ:;;/ooYYY BXXJ%z=l6bccADGTTB!t:'/UFa7d2١7|sCuu5֮]y桻:nrv>h4DGG?0'p$zVF_^^^ BɵnB@LL3z*/i4x D۷GI0_t(++CNNrrrڊz 0P(H$nGcc#l6"""AG[[. #TC 93`ݺudfC}}=J%BCC!P]] ^.DEE9C  AD<">g~pmB  ::2 ]]]8wڠh,%%% Ls7f!ȑ#!F:"""?ŋڵkصk`2 Zvj'OFxx8J%`QSSłiӦ X,Dhmmu>8kg;v,͛A---s ǦM ݎN#,, SLAKK ZZZ`ZQQQFS"$$ׯ_nGUUf3 rb---df">Bjd0 l@kk+ ՊRDEE!::jW\nGEEf3fϞ턑Jhmmu5~9Yuo/%%DHBwf͈FLL  V+"66aaax"v;`2<`bW/ݺu_+**WUUtuu=BP(tR! ١"* 555Zhii`@||<ЀtuuHHH1yd?vDjj3Rd}t~mmmj   t}DXX0ܾ}VF>}:띗%%%gΜnǵkى 8d2$ > C޽{Eww7l6R% QVV ^YfaΜ9C]], Ν;Yfa٘:u*N< ݎ+W$ F_Q[[k _T>zzz JXDHܸq]]]hhh;w磶X,8u̙dDGGl|2ڐ1 RMMMþD|H 6mPA}WW (R111z*, 鐚{ 555u'N`HIIAll,Z-V+\ٌL L&4#9i;^&!!!.]bݻwQUU `ѢEr#%%iiiVq/ 1>p.AAA1cΟ?ł;wXx1*++QYY ٌÇ#-- 9s&)5>ooows $%%̙30dffbҥ(//Gyy3xǑG!C0| =Bpcܹ8y$f3jjjpM,[ +V@YY*++p8p#==B Q__?b| =pT*0Ja2PUUׯ駟FVV*++Q]]a ((z~D>wfl6L4Ad27n@vv6GB` "Oi(G߿FDFF:wCCCh"OZEii)rrrFP- ܴin3?`(|X@QQQNk/8!++kku6l؀v%KPXX@͛7ع7 99Ǐo\mM< ?$$ۣ 33{4ӥ,m>:~`4x嗝`ժUZ8{lXO`4@ l$(// m֪V3>䓲;7mҤIޒJK"##coǯJ|hnnÇ9srvZ |x|JBnn#֭[2w5hBIW6oXz.}v]<n_jUTTTT;""''7@ L&[.| @QQѤDǏ_aÆbwB$1GwWw>gy\WCBBmذS,`߼ys'ڟ>܍ ߇}8 ߇=}ccυ.Ͽ4<Ns8T*0Zp ÿp8D F#'v20|0|ZOM"| 2|,0|7 ߇}8 ߇ ?AЇp3|  ď _V3|/lNMSSSǬnJ8{Ϗ{{8!789|1|oQhn]'HFz7kQܷ{sh9qp5R|{U@ H&C `QH9esF"z'?0|  Fs7d `. - PO50|˲, (((X{ys+**}< ') fϞ \pcUF@ڧ_ŋ.#| M+QQQt> ...]BJJ +{<iHdb{}={G}??7Qq񌌌NF* o>|g09"qO >܇JD.\ʺ}`˖- CڵkVq '򵜈J88 ׬Y\P|N"MMM5'~mW_}ݻw?I~~~s&_͛˺ e˖)aaa/@LFIIIQQQ'4ͧ~} >/PXX8dLLLinh41c[v.`h4| "00IIIƘSf׎;β.hjjR߹s /p(""u,MK]IENDB`phatch-0.2.7/docs/0000755000000000000000000000000011346363116013661 5ustar rootroot00000000000000phatch-0.2.7/docs/Makefile0000644000000000000000000000564011346363116015326 0ustar rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source .PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf build/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html @echo @echo "Build finished. The HTML pages are in build/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) build/dirhtml @echo @echo "Build finished. The HTML pages are in build/dirhtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) build/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in build/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) build/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in build/qthelp, like this:" @echo "# qcollectiongenerator build/qthelp/Phatch.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile build/qthelp/Phatch.qhc" latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex @echo @echo "Build finished; the LaTeX files are in build/latex." @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ "run these through (pdf)latex." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes @echo @echo "The overview file is in build/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in build/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) build/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in build/doctest/output.txt." phatch-0.2.7/docs/build/0000755000000000000000000000000011346363116014760 5ustar rootroot00000000000000phatch-0.2.7/docs/build/html/0000755000000000000000000000000011346363116015724 5ustar rootroot00000000000000phatch-0.2.7/docs/build/html/.buildinfo0000644000000000000000000000034611346363116017703 0ustar rootroot00000000000000# Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. config: 5cbbb20b6ad2b13417c6cb2af8d0f751 tags: fbb0d17656682115ca4d033fb2f83ba1 phatch-0.2.7/docs/build/html/_sources/0000755000000000000000000000000011346363116017546 5ustar rootroot00000000000000phatch-0.2.7/docs/build/html/_sources/actions.autocontrast.txt0000644000000000000000000000016611346363116024477 0ustar rootroot00000000000000autocontrast ************ .. automodule:: actions.autocontrast :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.background.txt0000644000000000000000000000016011346363116024062 0ustar rootroot00000000000000background ********** .. automodule:: actions.background :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.blender.txt0000644000000000000000000000014711346363116023363 0ustar rootroot00000000000000blender ******* .. automodule:: actions.blender :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.border.txt0000644000000000000000000000014411346363116023222 0ustar rootroot00000000000000border ****** .. automodule:: actions.border :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.brightness.txt0000644000000000000000000000016011346363116024113 0ustar rootroot00000000000000brightness ********** .. automodule:: actions.brightness :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.canvas.txt0000644000000000000000000000014411346363116023220 0ustar rootroot00000000000000canvas ****** .. automodule:: actions.canvas :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.color_to_alpha.txt0000644000000000000000000000017411346363116024735 0ustar rootroot00000000000000color_to_alpha ************** .. automodule:: actions.color_to_alpha :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.colorize.txt0000644000000000000000000000015211346363116023572 0ustar rootroot00000000000000colorize ******** .. automodule:: actions.colorize :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.common.txt0000644000000000000000000000014411346363116023235 0ustar rootroot00000000000000common ****** .. automodule:: actions.common :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.contour.txt0000644000000000000000000000014711346363116023441 0ustar rootroot00000000000000contour ******* .. automodule:: actions.contour :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.contrast.txt0000644000000000000000000000015211346363116023601 0ustar rootroot00000000000000contrast ******** .. automodule:: actions.contrast :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.convert_mode.txt0000644000000000000000000000016611346363116024435 0ustar rootroot00000000000000convert_mode ************ .. automodule:: actions.convert_mode :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.copy.txt0000644000000000000000000000013611346363116022720 0ustar rootroot00000000000000copy **** .. automodule:: actions.copy :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.crop.txt0000644000000000000000000000013611346363116022711 0ustar rootroot00000000000000crop **** .. automodule:: actions.crop :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.delete_tags.txt0000644000000000000000000000016311346363116024226 0ustar rootroot00000000000000delete_tags *********** .. automodule:: actions.delete_tags :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.desaturate.txt0000644000000000000000000000016011346363116024104 0ustar rootroot00000000000000desaturate ********** .. automodule:: actions.desaturate :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.effect.txt0000644000000000000000000000014411346363116023201 0ustar rootroot00000000000000effect ****** .. automodule:: actions.effect :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.equalize.txt0000644000000000000000000000015211346363116023563 0ustar rootroot00000000000000equalize ******** .. automodule:: actions.equalize :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.fit.txt0000644000000000000000000000013311346363116022525 0ustar rootroot00000000000000fit *** .. automodule:: actions.fit :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.geek.txt0000644000000000000000000000013611346363116022661 0ustar rootroot00000000000000geek **** .. automodule:: actions.geek :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.geotag.txt0000644000000000000000000000014411346363116023213 0ustar rootroot00000000000000geotag ****** .. automodule:: actions.geotag :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.grid.txt0000644000000000000000000000013611346363116022673 0ustar rootroot00000000000000grid **** .. automodule:: actions.grid :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.highlight.txt0000644000000000000000000000015511346363116023716 0ustar rootroot00000000000000highlight ********* .. automodule:: actions.highlight :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.imagemagick.txt0000644000000000000000000000016311346363116024204 0ustar rootroot00000000000000imagemagick *********** .. automodule:: actions.imagemagick :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.invert.txt0000644000000000000000000000014411346363116023254 0ustar rootroot00000000000000invert ****** .. automodule:: actions.invert :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.lossless_jpeg.txt0000644000000000000000000000017111346363116024621 0ustar rootroot00000000000000lossless_jpeg ************* .. automodule:: actions.lossless_jpeg :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.mask.txt0000644000000000000000000000013611346363116022701 0ustar rootroot00000000000000mask **** .. automodule:: actions.mask :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.maximum.txt0000644000000000000000000000014711346363116023425 0ustar rootroot00000000000000maximum ******* .. automodule:: actions.maximum :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.median.txt0000644000000000000000000000014411346363116023202 0ustar rootroot00000000000000median ****** .. automodule:: actions.median :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.minimum.txt0000644000000000000000000000014711346363116023423 0ustar rootroot00000000000000minimum ******* .. automodule:: actions.minimum :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.mirror.txt0000644000000000000000000000014411346363116023257 0ustar rootroot00000000000000mirror ****** .. automodule:: actions.mirror :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.offset.txt0000644000000000000000000000014411346363116023233 0ustar rootroot00000000000000offset ****** .. automodule:: actions.offset :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.perspective.txt0000644000000000000000000000016311346363116024277 0ustar rootroot00000000000000perspective *********** .. automodule:: actions.perspective :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.posterize.txt0000644000000000000000000000015511346363116023773 0ustar rootroot00000000000000posterize ********* .. automodule:: actions.posterize :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.rank.txt0000644000000000000000000000013611346363116022701 0ustar rootroot00000000000000rank **** .. automodule:: actions.rank :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.reflection.txt0000644000000000000000000000016011346363116024075 0ustar rootroot00000000000000reflection ********** .. automodule:: actions.reflection :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.rename.txt0000644000000000000000000000014411346363116023214 0ustar rootroot00000000000000rename ****** .. automodule:: actions.rename :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.rename_tag.txt0000644000000000000000000000016011346363116024045 0ustar rootroot00000000000000rename_tag ********** .. automodule:: actions.rename_tag :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.rotate.txt0000644000000000000000000000014411346363116023243 0ustar rootroot00000000000000rotate ****** .. automodule:: actions.rotate :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.round.txt0000644000000000000000000000014111346363116023071 0ustar rootroot00000000000000round ***** .. automodule:: actions.round :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.saturation.txt0000644000000000000000000000016011346363116024134 0ustar rootroot00000000000000saturation ********** .. automodule:: actions.saturation :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.save.txt0000644000000000000000000000013611346363116022704 0ustar rootroot00000000000000save **** .. automodule:: actions.save :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.save_metadata.txt0000644000000000000000000000017111346363116024543 0ustar rootroot00000000000000save_metadata ************* .. automodule:: actions.save_metadata :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.scale.txt0000644000000000000000000000014111346363116023031 0ustar rootroot00000000000000scale ***** .. automodule:: actions.scale :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.shadow.txt0000644000000000000000000000014411346363116023232 0ustar rootroot00000000000000shadow ****** .. automodule:: actions.shadow :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.sketch.txt0000644000000000000000000000014411346363116023226 0ustar rootroot00000000000000sketch ****** .. automodule:: actions.sketch :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.solarize.txt0000644000000000000000000000015211346363116023574 0ustar rootroot00000000000000solarize ******** .. automodule:: actions.solarize :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.tamogen.txt0000644000000000000000000000014711346363116023402 0ustar rootroot00000000000000tamogen ******* .. automodule:: actions.tamogen :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.text.txt0000644000000000000000000000013611346363116022732 0ustar rootroot00000000000000text **** .. automodule:: actions.text :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.time_shift.txt0000644000000000000000000000016011346363116024076 0ustar rootroot00000000000000time_shift ********** .. automodule:: actions.time_shift :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.transpose.txt0000644000000000000000000000015511346363116023765 0ustar rootroot00000000000000transpose ********* .. automodule:: actions.transpose :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.txt0000644000000000000000000000224011346363116021745 0ustar rootroot00000000000000actions ******* .. automodule:: actions :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 actions.autocontrast actions.background actions.blender actions.border actions.brightness actions.canvas actions.color_to_alpha actions.colorize actions.common actions.contour actions.contrast actions.convert_mode actions.copy actions.crop actions.delete_tags actions.desaturate actions.effect actions.equalize actions.fit actions.geek actions.geotag actions.grid actions.highlight actions.imagemagick actions.invert actions.lossless_jpeg actions.mask actions.maximum actions.median actions.minimum actions.mirror actions.offset actions.perspective actions.posterize actions.rank actions.reflection actions.rename actions.rename_tag actions.rotate actions.round actions.saturation actions.save actions.save_metadata actions.scale actions.shadow actions.sketch actions.solarize actions.tamogen actions.text actions.time_shift actions.transpose actions.warm_up actions.watermark actions.write_tag phatch-0.2.7/docs/build/html/_sources/actions.warm_up.txt0000644000000000000000000000014711346363116023422 0ustar rootroot00000000000000warm_up ******* .. automodule:: actions.warm_up :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.watermark.txt0000644000000000000000000000015511346363116023744 0ustar rootroot00000000000000watermark ********* .. automodule:: actions.watermark :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/actions.write_tag.txt0000644000000000000000000000015511346363116023734 0ustar rootroot00000000000000write_tag ********* .. automodule:: actions.write_tag :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/bazaar.txt0000644000000000000000000000745011346363116021555 0ustar rootroot00000000000000Bazaar and Launchpad ******************** For Phatch we use `bazaar `_ (distributed version control) and `launchpad `_. We will describe the steps here to get you up and running for Phatch development. Launchpad ========= 1. To `create a new Launchpad account `_, visit the account `sign-up page `_. All you need is an email address that Launchpad can use to contact you. 2. Create a ssh key and `upload `_ it to your launchpad profile. 3. Apply for membership of the `phatch-dev `_ team. 4. This last step is optional. If you want to stay up to date with all bug reports, blueprints (new features), ... apply for membership of the `phatch-launchpad `_ team. Warning: this might flood your inbox with a lot of email! .. note:: It is very important that you not only log any activity you do for Phatch on launchpad as bugs or blueprints, but also report progress and de-assign yourself if you quit working on something. Bazaar ====== Getting Started with Bazaar --------------------------- 1. Download and install bazaar. * Windows: Download the `standalone installer `_. * Mac OS X: Download the `application bundle `_. * Linux: Get bazaar from the repositories, for example for Ubuntu/Debian ... If you want only the command line version:: sudo apt-get install bzr If you want to use bzr with a GUI and nautilus integration, you could install (some only available from Ubuntu Lucid):: sudo apt-get install bzr bzr-gtk bzr-explorer nautilus-bzr 2. Tell bazaar who you are:: bzr whoami "Your name " 3. Login to launchpad:: bzr launchpad-login 4. Install the Phatch precommit hook. This will check your code before committing to your branch. It tests your code it follows `PEP8 `_, does not break any doctests and has the right copyright and license. The precommit hook is the file ``tests/test_suite/bzr_precommit_test.py`` and should be placed in your bazaar plugin folder. In order to get your code accepted, you **must** use the precommit hook. * Linux and Mac OS X: 1. Install ``nosetests`` and ``licensecheck``:: sudo apt-get install python-nose devscripts 2. Symlink ``bzr_precommit_test.py`` to ``~/.bazaar/plugins/`` * Windows: 1. Install ``nosetests`` (see `nose `_ website for more info):: easy_install nose 2. Copy ``bzr_precommit_test.py`` to ``C:\Program Files\Bazaar\plugins`` and update it every time it changes. Using Bazaar ------------ 1. For every new feature or bugfix you need to start a separate branch:: bzr branch lp:phatch Or if you want to give it a specific name:: bzr branch lp:phatch name_of_branch So it is not unusual that one user works on more than one branch. We prefer to merge branches as soon as they are stable to prevent large differences. 2. To let other developers follow your progress, push your branch to launchpad:: bzr push lp:~user_name/phatch/name_of_branch 3. Merge regularly with the main branch so it does not divert. At least merge every time before you start coding. The command is:: bzr merge lp:phatch Do not use the command ``bzr update`` or ``bzr pull``. 4. When your branch is ready file a merge request. To do so, visit your branch's overview page, click *Propose for merging into another branch*, then follow the on-screen instructions. phatch-0.2.7/docs/build/html/_sources/console.console.txt0000644000000000000000000000014711346363116023414 0ustar rootroot00000000000000console ******* .. automodule:: console.console :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/console.txt0000644000000000000000000000022211346363116021745 0ustar rootroot00000000000000console ******* .. automodule:: console :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 console.console phatch-0.2.7/docs/build/html/_sources/core.api.txt0000644000000000000000000000013011346363116022001 0ustar rootroot00000000000000api *** .. automodule:: core.api :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.config.txt0000644000000000000000000000014111346363116022477 0ustar rootroot00000000000000config ****** .. automodule:: core.config :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.ct.txt0000644000000000000000000000012511346363116021642 0ustar rootroot00000000000000ct ** .. automodule:: core.ct :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.imageTable.txt0000644000000000000000000000015511346363116023271 0ustar rootroot00000000000000imageTable ********** .. automodule:: core.imageTable :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.information.txt0000644000000000000000000000016011346363116023560 0ustar rootroot00000000000000information *********** .. automodule:: core.information :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.message.txt0000644000000000000000000000014411346363116022661 0ustar rootroot00000000000000message ******* .. automodule:: core.message :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.models.txt0000644000000000000000000000014111346363116022515 0ustar rootroot00000000000000models ****** .. automodule:: core.models :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.pil.txt0000644000000000000000000000013011346363116022014 0ustar rootroot00000000000000pil *** .. automodule:: core.pil :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.preview.txt0000644000000000000000000000014411346363116022716 0ustar rootroot00000000000000preview ******* .. automodule:: core.preview :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.regex.txt0000644000000000000000000000013611346363116022350 0ustar rootroot00000000000000regex ***** .. automodule:: core.regex :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.safeGlobals.txt0000644000000000000000000000016011346363116023455 0ustar rootroot00000000000000safeGlobals *********** .. automodule:: core.safeGlobals :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.settings.txt0000644000000000000000000000014711346363116023100 0ustar rootroot00000000000000settings ******** .. automodule:: core.settings :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.translation.txt0000644000000000000000000000016011346363116023571 0ustar rootroot00000000000000translation *********** .. automodule:: core.translation :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/core.txt0000644000000000000000000000042011346363116021233 0ustar rootroot00000000000000core **** .. automodule:: core :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 core.api core.config core.ct core.message core.models core.pil core.preview core.safeGlobals core.settings core.translation phatch-0.2.7/docs/build/html/_sources/data.info.txt0000644000000000000000000000013311346363116022147 0ustar rootroot00000000000000info **** .. automodule:: data.info :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/data.license.txt0000644000000000000000000000014411346363116022640 0ustar rootroot00000000000000license ******* .. automodule:: data.license :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/data.txt0000644000000000000000000000024311346363116021217 0ustar rootroot00000000000000data **** .. automodule:: data :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 data.info data.license data.version phatch-0.2.7/docs/build/html/_sources/data.version.txt0000644000000000000000000000014411346363116022703 0ustar rootroot00000000000000version ******* .. automodule:: data.version :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/index.txt0000644000000000000000000000115711346363116021422 0ustar rootroot00000000000000.. Phatch documentation master file, created by sphinx-quickstart on Thu Aug 27 17:12:37 2009. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Become a Phatch developer! ========================== .. toctree:: :maxdepth: 1 bazaar pep8 lico testing release Source Code documentation ========================= .. toctree:: :maxdepth: 1 actions console core data lib linux other pyWx templates windows Indices and Tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` phatch-0.2.7/docs/build/html/_sources/index2.txt0000644000000000000000000000033311346363116021477 0ustar rootroot00000000000000index2 ****** .. automodule:: index2 :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 actions console core data lib linux other pyWx templates windows phatch-0.2.7/docs/build/html/_sources/lib._pyexiv2.txt0000644000000000000000000000014611346363116022622 0ustar rootroot00000000000000_pyexiv2 ******** .. automodule:: lib._pyexiv2 :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.colors.txt0000644000000000000000000000014011346363116022350 0ustar rootroot00000000000000colors ****** .. automodule:: lib.colors :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.desktop.txt0000644000000000000000000000014311346363116022523 0ustar rootroot00000000000000desktop ******* .. automodule:: lib.desktop :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.events.txt0000644000000000000000000000014011346363116022353 0ustar rootroot00000000000000events ****** .. automodule:: lib.events :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.fonts.txt0000644000000000000000000000013511346363116022204 0ustar rootroot00000000000000fonts ***** .. automodule:: lib.fonts :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.formField.txt0000644000000000000000000000015111346363116022760 0ustar rootroot00000000000000formField ********* .. automodule:: lib.formField :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.gettextFix.txt0000644000000000000000000000015411346363116023207 0ustar rootroot00000000000000gettextFix ********** .. automodule:: lib.gettextFix :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.gps.txt0000644000000000000000000000012711346363116021645 0ustar rootroot00000000000000gps *** .. automodule:: lib.gps :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.imageTable.txt0000644000000000000000000000015411346363116023106 0ustar rootroot00000000000000imageTable ********** .. automodule:: lib.imageTable :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.imtools.txt0000644000000000000000000000014311346363116022540 0ustar rootroot00000000000000imtools ******* .. automodule:: lib.imtools :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.linux.desktop.txt0000644000000000000000000000015111346363116023660 0ustar rootroot00000000000000desktop ******* .. automodule:: lib.linux.desktop :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.linux.nautilusExtension.txt0000644000000000000000000000020711346363116025752 0ustar rootroot00000000000000nautilusExtension ***************** .. automodule:: lib.linux.nautilusExtension :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.linux.txt0000644000000000000000000000026111346363116022212 0ustar rootroot00000000000000linux ***** .. automodule:: lib.linux :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 lib.linux.desktop lib.linux.nautilusExtension phatch-0.2.7/docs/build/html/_sources/lib.listData.txt0000644000000000000000000000014611346363116022622 0ustar rootroot00000000000000listData ******** .. automodule:: lib.listData :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.metadata.txt0000644000000000000000000000014611346363116022635 0ustar rootroot00000000000000metadata ******** .. automodule:: lib.metadata :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.metadataTest.txt0000644000000000000000000000016211346363116023473 0ustar rootroot00000000000000metadataTest ************ .. automodule:: lib.metadataTest :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.notify.txt0000644000000000000000000000014011346363116022357 0ustar rootroot00000000000000notify ****** .. automodule:: lib.notify :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.odict.txt0000644000000000000000000000013511346363116022155 0ustar rootroot00000000000000odict ***** .. automodule:: lib.odict :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.openImage.txt0000644000000000000000000000015111346363116022755 0ustar rootroot00000000000000openImage ********* .. automodule:: lib.openImage :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.about.txt0000644000000000000000000000014211346363116023131 0ustar rootroot00000000000000about ***** .. automodule:: lib.pyWx.about :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.autoCompleteCtrls.txt0000644000000000000000000000020611346363116025471 0ustar rootroot00000000000000autoCompleteCtrls ***************** .. automodule:: lib.pyWx.autoCompleteCtrls :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.clipboard.txt0000644000000000000000000000015611346363116023763 0ustar rootroot00000000000000clipboard ********* .. automodule:: lib.pyWx.clipboard :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.compatible.txt0000644000000000000000000000016111346363116024137 0ustar rootroot00000000000000compatible ********** .. automodule:: lib.pyWx.compatible :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.dialogsInspector.txt0000644000000000000000000000020311346363116025326 0ustar rootroot00000000000000dialogsInspector **************** .. automodule:: lib.pyWx.dialogsInspector :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.droplet.txt0000644000000000000000000000015011346363116023467 0ustar rootroot00000000000000droplet ******* .. automodule:: lib.pyWx.droplet :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.folderFileBrowser.txt0000644000000000000000000000020611346363116025437 0ustar rootroot00000000000000folderFileBrowser ***************** .. automodule:: lib.pyWx.folderFileBrowser :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.graphics.txt0000644000000000000000000000015311346363116023621 0ustar rootroot00000000000000graphics ******** .. automodule:: lib.pyWx.graphics :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.imageFileBrowser.txt0000644000000000000000000000020311346363116025243 0ustar rootroot00000000000000imageFileBrowser **************** .. automodule:: lib.pyWx.imageFileBrowser :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.imageInspector.txt0000644000000000000000000000017511346363116024776 0ustar rootroot00000000000000imageInspector ************** .. automodule:: lib.pyWx.imageInspector :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.inspector.txt0000644000000000000000000000015611346363116024032 0ustar rootroot00000000000000inspector ********* .. automodule:: lib.pyWx.inspector :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.inspectorTag.txt0000644000000000000000000000016711346363116024470 0ustar rootroot00000000000000inspectorTag ************ .. automodule:: lib.pyWx.inspectorTag :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.paint.txt0000644000000000000000000000014211346363116023132 0ustar rootroot00000000000000paint ***** .. automodule:: lib.pyWx.paint :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.popup.txt0000644000000000000000000000014211346363116023162 0ustar rootroot00000000000000popup ***** .. automodule:: lib.pyWx.popup :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.screenshot.txt0000644000000000000000000000016111346363116024175 0ustar rootroot00000000000000screenshot ********** .. automodule:: lib.pyWx.screenshot :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.shell.txt0000644000000000000000000000014211346363116023126 0ustar rootroot00000000000000shell ***** .. automodule:: lib.pyWx.shell :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.tag.txt0000644000000000000000000000013411346363116022573 0ustar rootroot00000000000000tag *** .. automodule:: lib.pyWx.tag :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.treeDragDrop.txt0000644000000000000000000000016711346363116024410 0ustar rootroot00000000000000treeDragDrop ************ .. automodule:: lib.pyWx.treeDragDrop :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.treeEdit.txt0000644000000000000000000000015311346363116023566 0ustar rootroot00000000000000treeEdit ******** .. automodule:: lib.pyWx.treeEdit :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.txt0000644000000000000000000000121711346363116022024 0ustar rootroot00000000000000pyWx **** .. automodule:: lib.pyWx :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 lib.pyWx.about lib.pyWx.autoCompleteCtrls lib.pyWx.clipboard lib.pyWx.compatible lib.pyWx.dialogsInspector lib.pyWx.droplet lib.pyWx.folderFileBrowser lib.pyWx.graphics lib.pyWx.imageFileBrowser lib.pyWx.imageInspector lib.pyWx.inspector lib.pyWx.inspectorTag lib.pyWx.paint lib.pyWx.popup lib.pyWx.screenshot lib.pyWx.shell lib.pyWx.tag lib.pyWx.treeDragDrop lib.pyWx.treeEdit lib.pyWx.vlist lib.pyWx.vlistTag lib.pyWx.wildcard lib.pyWx.wxPil lib.pyWx.wxcheck phatch-0.2.7/docs/build/html/_sources/lib.pyWx.viewer.txt0000644000000000000000000000014511346363116023323 0ustar rootroot00000000000000viewer ****** .. automodule:: lib.pyWx.viewer :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.vlist.txt0000644000000000000000000000014211346363116023160 0ustar rootroot00000000000000vlist ***** .. automodule:: lib.pyWx.vlist :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.vlistTag.txt0000644000000000000000000000015311346363116023616 0ustar rootroot00000000000000vlistTag ******** .. automodule:: lib.pyWx.vlistTag :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.wildcard.txt0000644000000000000000000000015311346363116023612 0ustar rootroot00000000000000wildcard ******** .. automodule:: lib.pyWx.wildcard :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.wxPil.txt0000644000000000000000000000014211346363116023122 0ustar rootroot00000000000000wxPil ***** .. automodule:: lib.pyWx.wxPil :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.pyWx.wxcheck.txt0000644000000000000000000000015011346363116023452 0ustar rootroot00000000000000wxcheck ******* .. automodule:: lib.pyWx.wxcheck :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.reverse_translation.txt0000644000000000000000000000020711346363116025144 0ustar rootroot00000000000000reverse_translation ******************* .. automodule:: lib.reverse_translation :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.safe.txt0000644000000000000000000000013211346363116021766 0ustar rootroot00000000000000safe **** .. automodule:: lib.safe :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.system.txt0000644000000000000000000000014011346363116022373 0ustar rootroot00000000000000system ****** .. automodule:: lib.system :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.thumbnail.txt0000644000000000000000000000015111346363116023034 0ustar rootroot00000000000000thumbnail ********* .. automodule:: lib.thumbnail :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.txt0000644000000000000000000000075111346363116021060 0ustar rootroot00000000000000lib *** .. automodule:: lib :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 lib._pyexiv2 lib.colors lib.desktop lib.events lib.fonts lib.formField lib.gettextFix lib.gps lib.imageTable lib.imtools lib.linux lib.listData lib.metadata lib.metadataTest lib.notify lib.odict lib.openImage lib.pyWx lib.reverse_translation lib.safe lib.system lib.thumbnail lib.unicoding lib.windows phatch-0.2.7/docs/build/html/_sources/lib.unicoding.txt0000644000000000000000000000015111346363116023030 0ustar rootroot00000000000000unicoding ********* .. automodule:: lib.unicoding :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.windows.locate.txt0000644000000000000000000000015011346363116024010 0ustar rootroot00000000000000locate ****** .. automodule:: lib.windows.locate :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.windows.register.txt0000644000000000000000000000015611346363116024373 0ustar rootroot00000000000000register ******** .. automodule:: lib.windows.register :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.windows.shortcut.txt0000644000000000000000000000015611346363116024422 0ustar rootroot00000000000000shortcut ******** .. automodule:: lib.windows.shortcut :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/lib.windows.txt0000644000000000000000000000031111346363116022541 0ustar rootroot00000000000000windows ******* .. automodule:: lib.windows :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 lib.windows.locate lib.windows.register lib.windows.shortcut phatch-0.2.7/docs/build/html/_sources/license.txt0000644000000000000000000000301011346363116021723 0ustar rootroot00000000000000License and Copyright ********************* License ======= At the moment of this writing Phatch uses the `GPL 3 `_. All code submitted to Phatch needs to use the same license or should be compatible. Copyright ========= All code submitted to Phatch should share its copyright with ``www.stani.be``. You keep the full copyright of your own code, but share it with the Phatch project. This keeps the management of the copyrights simple for packagers and allows us to change the license if needed for example: * From GPL 3 to GPL 4. * If certain modules would become part of eg. wxPython we can donate them under the wxPython license. Phatch and your code will always be available as free software. You can test the licenses from the ``tests`` folder:: python license_test.py .. note:: If you forget the copyright or use the wrong copyright, the bazaar precommit hook will complain. Documentation ============= * The developers documentation ships with the Phatch application under the GPL. The developers documentation is generated with `Sphinx `_ and can be updated any time from the ``docs`` folder with the command:: python update.py * The html version of the user documentation will be accessible for everyone on the web and might be shown with ads. The pdf version of the manual might later be available as a reward to people who donate. If you disagree with one of the above principles, please don't contribute code or documentation to Phatch. phatch-0.2.7/docs/build/html/_sources/lico.txt0000644000000000000000000000301011346363116021227 0ustar rootroot00000000000000License and Copyright ********************* License ======= At the moment of this writing Phatch uses the `GPL 3 `_. All code submitted to Phatch needs to use the same license or should be compatible. Copyright ========= All code submitted to Phatch should share its copyright with ``www.stani.be``. You keep the full copyright of your own code, but share it with the Phatch project. This keeps the management of the copyrights simple for packagers and allows us to change the license if needed for example: * From GPL 3 to GPL 4. * If certain modules would become part of eg. wxPython we can donate them under the wxPython license. Phatch and your code will always be available as free software. You can test the licenses from the ``tests`` folder:: python license_test.py .. note:: If you forget the copyright or use the wrong copyright, the bazaar precommit hook will complain. Documentation ============= * The developers documentation ships with the Phatch application under the GPL. The developers documentation is generated with `Sphinx `_ and can be updated any time from the ``docs`` folder with the command:: python update.py * The html version of the user documentation will be accessible for everyone on the web and might be shown with ads. The pdf version of the manual might later be available as a reward to people who donate. If you disagree with one of the above principles, please don't contribute code or documentation to Phatch. phatch-0.2.7/docs/build/html/_sources/linux.droplet.txt0000644000000000000000000000014511346363116023116 0ustar rootroot00000000000000droplet ******* .. automodule:: linux.droplet :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/linux.thunar.txt0000644000000000000000000000014211346363116022743 0ustar rootroot00000000000000thunar ****** .. automodule:: linux.thunar :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/linux.txt0000644000000000000000000000023211346363116021443 0ustar rootroot00000000000000linux ***** .. automodule:: linux :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 linux.droplet linux.thunar phatch-0.2.7/docs/build/html/_sources/other.EXIF.txt0000644000000000000000000000013411346363116022160 0ustar rootroot00000000000000EXIF **** .. automodule:: other.EXIF :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.findsystem.txt0000644000000000000000000000015611346363116023616 0ustar rootroot00000000000000findsystem ********** .. automodule:: other.findsystem :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.pep8.txt0000644000000000000000000000013411346363116022301 0ustar rootroot00000000000000pep8 **** .. automodule:: other.pep8 :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.pil_1_1_6.JpegImagePlugin.txt0000644000000000000000000000020711346363116026105 0ustar rootroot00000000000000JpegImagePlugin *************** .. automodule:: other.pil_1_1_6.JpegImagePlugin :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.pil_1_1_6.TiffImagePlugin.txt0000644000000000000000000000020711346363116026110 0ustar rootroot00000000000000TiffImagePlugin *************** .. automodule:: other.pil_1_1_6.TiffImagePlugin :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.pil_1_1_6.txt0000644000000000000000000000032111346363116023074 0ustar rootroot00000000000000pil_1_1_6 ********* .. automodule:: other.pil_1_1_6 :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 other.pil_1_1_6.JpegImagePlugin other.pil_1_1_6.TiffImagePlugin phatch-0.2.7/docs/build/html/_sources/other.pubsub.txt0000644000000000000000000000014211346363116022724 0ustar rootroot00000000000000pubsub ****** .. automodule:: other.pubsub :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.pyWx.TextCtrlAutoComplete.txt0000644000000000000000000000022111346363116026463 0ustar rootroot00000000000000TextCtrlAutoComplete ******************** .. automodule:: other.pyWx.TextCtrlAutoComplete :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.pyWx.img2img.txt0000644000000000000000000000015211346363116023726 0ustar rootroot00000000000000img2img ******* .. automodule:: other.pyWx.img2img :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.pyWx.img2py.txt0000644000000000000000000000014711346363116023606 0ustar rootroot00000000000000img2py ****** .. automodule:: other.pyWx.img2py :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.pyWx.toasterbox.txt0000644000000000000000000000016311346363116024567 0ustar rootroot00000000000000toasterbox ********** .. automodule:: other.pyWx.toasterbox :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.pyWx.txt0000644000000000000000000000034311346363116022376 0ustar rootroot00000000000000pyWx **** .. automodule:: other.pyWx :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 other.pyWx.TextCtrlAutoComplete other.pyWx.img2img other.pyWx.img2py other.pyWx.toasterbox phatch-0.2.7/docs/build/html/_sources/other.relativedelta.txt0000644000000000000000000000016711346363116024260 0ustar rootroot00000000000000relativedelta ************* .. automodule:: other.relativedelta :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.surd.txt0000644000000000000000000000013411346363116022402 0ustar rootroot00000000000000surd **** .. automodule:: other.surd :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.tamogen.txt0000644000000000000000000000014511346363116023061 0ustar rootroot00000000000000tamogen ******* .. automodule:: other.tamogen :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/other.txt0000644000000000000000000000042011346363116021424 0ustar rootroot00000000000000other ***** .. automodule:: other :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 other.EXIF other.findsystem other.pep8 other.pil_1_1_6 other.pubsub other.pyWx other.relativedelta other.surd other.tamogen phatch-0.2.7/docs/build/html/_sources/pep8.txt0000644000000000000000000000116611346363116021167 0ustar rootroot00000000000000Code Style: PEP8 **************** http://www.python.org/dev/peps/pep-0008/ Any code submitted to Phatch **must** follow the PEP8 code style, which is used in the standard library of the main Python distribution. You can test if your code follows PEP8 by running the following script in the ``tests`` folder:: python pep8_test.py As you should have installed the bazaar precommit hook for Phatch, this test will also be enforced before you are able to commit to your branch. .. warning:: If you use Windows make sure that you save your code with ``\n`` line endings. Code with ``\r\n`` line endings will be refused. phatch-0.2.7/docs/build/html/_sources/pyWx.dialogs.txt0000644000000000000000000000014411346363116022676 0ustar rootroot00000000000000dialogs ******* .. automodule:: pyWx.dialogs :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/pyWx.gui.txt0000644000000000000000000000013011346363116022033 0ustar rootroot00000000000000gui *** .. automodule:: pyWx.gui :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/pyWx.imageInspector.txt0000644000000000000000000000017111346363116024225 0ustar rootroot00000000000000imageInspector ************** .. automodule:: pyWx.imageInspector :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/pyWx.images.txt0000644000000000000000000000014111346363116022516 0ustar rootroot00000000000000images ****** .. automodule:: pyWx.images :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/pyWx.nuovext.txt0000644000000000000000000000014411346363116022764 0ustar rootroot00000000000000nuovext ******* .. automodule:: pyWx.nuovext :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/pyWx.plugin.txt0000644000000000000000000000014111346363116022547 0ustar rootroot00000000000000plugin ****** .. automodule:: pyWx.plugin :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/pyWx.txt0000644000000000000000000000032011346363116021251 0ustar rootroot00000000000000pyWx **** .. automodule:: pyWx :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 pyWx.dialogs pyWx.gui pyWx.images pyWx.nuovext pyWx.plugin pyWx.wxGlade phatch-0.2.7/docs/build/html/_sources/pyWx.wxGlade.dialogs.txt0000644000000000000000000000015411346363116024271 0ustar rootroot00000000000000dialogs ******* .. automodule:: pyWx.wxGlade.dialogs :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/pyWx.wxGlade.dialogsInspector.txt0000644000000000000000000000020711346363116026157 0ustar rootroot00000000000000dialogsInspector **************** .. automodule:: pyWx.wxGlade.dialogsInspector :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/pyWx.wxGlade.frame.txt0000644000000000000000000000014611346363116023742 0ustar rootroot00000000000000frame ***** .. automodule:: pyWx.wxGlade.frame :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/pyWx.wxGlade.txt0000644000000000000000000000026211346363116022650 0ustar rootroot00000000000000wxGlade ******* .. automodule:: pyWx.wxGlade :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 pyWx.wxGlade.dialogs pyWx.wxGlade.frame phatch-0.2.7/docs/build/html/_sources/release.txt0000644000000000000000000000777211346363116021744 0ustar rootroot00000000000000Release Manager *************** For every release we chose a release manager. If you want to volunteer please let us know. These are the steps a release manager has to do: #. Check the code with these tools:: pyflakes ../phatch/ | grep -v "undefined name '_'" | grep -v 'but unused'| grep -v redefinition > pyflakes.txt pylint --errors-only ../phatch/ | grep -v "Undefined variable '_'" | grep -v "already defined" > pylint.txt Do not fix any code in ``phatch/other``. Be carefull to fix errors to prevent breaking. For example if you remove an unused imported function ``bar`` in the module ``foo``, be sure to check it is nowhere used as ``foo.bar``. So ignore unused items unless you are 100% sure what you are doing. #. License and Copyrights Check license and copyrights of any new files:: python license_test.py The above command will only check source code on Debian/Ubuntu, so please check other files manually (such as artwork, ...). Update the copyright file both in trunk as in the PAPT svn. Check if in the ``Help>About`` dialog box everyone with substantial contributions is listed. Otherwise add it to ``phatch/data/info.py``. #. Developer Documentation Update developer documentation, by running this command in the ``docs`` folder:: python update.py #. Translations Download the latest ``po`` translations. Test them with `potest `_ and fix any errors immediately in launchpad. When all errors are fixed download the latest ``po`` and ``mo`` translations to trunk. #. `PPA `_ (Personal Package Archive) Build and upload to the Phatch PPA to check if no errors are thrown by the build systems and if Phatch can be correctly installed. Invite users to test the PPA and look for any user interface errors. Do not release a version in the PPA with the new version number yet. #. Version number Bump up the version number after PPA testing. In the file ``phatch/data/version.py`` the variables ``BASE`` and ``VERSION`` should be identical:: BASE = "0.2.8" VERSION = "0.2.8" DATE = "Tue, 09 Mar 2010 21:01:25" Check in the ``Help>About`` dialog box if the version number is displayed correctly. #. Commit last changes if necessary. Tag the release, for example:: bzr tag 0.2.8 #. Export as zip:: bzr export ../phatch-0.2.8.zip #. `PAPT `_ (Debian Python Application Package Team) Be sure you have an `alioth account `_. Update the Phatch files from the `PAPT svn `_ as far as you can: * copyright * check differences and sync both from the same file in trunk * changelog * create a new entry with the command:: dch -v 0.2.8-1 * change the entry in:: phatch (0.2.8-1) UNRELEASED; urgency=low * mention all bug fixes * list new or removed dependencies * send a mail to POX with the subject "RFS: phatch 0.2.8-1" and mention the download url in the message #. If the package has been accepted by Debian, release with the new version number in the Phatch PPA. #. Ensure the Phatch website gets updated. #. Spread the word and announce the Phatch release on (ask help of others if needed): * http://freshmeat.net/ * http://groups.google.com/group/comp.lang.python * http://groups.google.com/group/comp.lang.python.announce * http://pypi.python.org * http://groups.google.com/group/wxpython-users * http://ubuntuforums.org/forumdisplay.php?f=16 * http://mail.python.org/mailman/listinfo/image-sig (PIL) * http://blenderartists.org/forum/forumdisplay.php?f=11 If you have a blog, announce it there too. Specific annoucements by people: * Stani: * python-nl mailing list #. Give your feedback on this release documentation, so it can be improved. phatch-0.2.7/docs/build/html/_sources/templates.action.txt0000644000000000000000000000014611346363116023562 0ustar rootroot00000000000000action ****** .. automodule:: templates.action :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/templates.txt0000644000000000000000000000023111346363116022301 0ustar rootroot00000000000000templates ********* .. automodule:: templates :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 templates.action phatch-0.2.7/docs/build/html/_sources/testing.txt0000644000000000000000000000231611346363116021766 0ustar rootroot00000000000000Testing ******* Phatch uses two strategies for testing: * acceptance testing for all possible image processing pipelines * unit tests by doctests Acceptance testing ================== The acceptance testing uses the images inside the ``tests/input`` folder. To get all options for image acceptance testing, run this command from the ``tests`` folder:: python acceptance_test.py --help Here are some examples, choose one of the two listed commands ... * To run all tests use:: python acceptance_test.py --all python acceptance_test.py -a * To run only the library tests use:: python acceptance_test.py --tag=library python acceptance_test.py -t library * To run only tests with a certain tag use:: python acceptance_test.py --tag=tag_name python acceptance_test.py -t tag_name * To test only one action:: python acceptance_test.py --select=action_name python acceptance_test.py -s action_name Doctests ======== We chose for doctests as it saves time by being both unit tests and documentation. Please add doctests to the code you contribute. Run the doctests inside the ``tests`` folder:: python doc_test.py This will automatically also be run by the bzr precommit hook. phatch-0.2.7/docs/build/html/_sources/windows.droplet.txt0000644000000000000000000000014711346363116023453 0ustar rootroot00000000000000droplet ******* .. automodule:: windows.droplet :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/build/html/_sources/windows.txt0000644000000000000000000000022211346363116021775 0ustar rootroot00000000000000windows ******* .. automodule:: windows :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 windows.droplet phatch-0.2.7/docs/build/html/_static/0000755000000000000000000000000011346363116017352 5ustar rootroot00000000000000phatch-0.2.7/docs/build/html/_static/basic.css0000644000000000000000000001435711346363116021157 0ustar rootroot00000000000000/** * Sphinx stylesheet -- basic theme * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* -- main layout ----------------------------------------------------------- */ div.clearer { clear: both; } /* -- relbar ---------------------------------------------------------------- */ div.related { width: 100%; font-size: 90%; } div.related h3 { display: none; } div.related ul { margin: 0; padding: 0 0 0 10px; list-style: none; } div.related li { display: inline; } div.related li.right { float: right; margin-right: 5px; } /* -- sidebar --------------------------------------------------------------- */ div.sphinxsidebarwrapper { padding: 10px 5px 0 10px; } div.sphinxsidebar { float: left; width: 230px; margin-left: -100%; font-size: 90%; } div.sphinxsidebar ul { list-style: none; } div.sphinxsidebar ul ul, div.sphinxsidebar ul.want-points { margin-left: 20px; list-style: square; } div.sphinxsidebar ul ul { margin-top: 0; margin-bottom: 0; } div.sphinxsidebar form { margin-top: 10px; } div.sphinxsidebar input { border: 1px solid #98dbcc; font-family: sans-serif; font-size: 1em; } img { border: 0; } /* -- search page ----------------------------------------------------------- */ ul.search { margin: 10px 0 0 20px; padding: 0; } ul.search li { padding: 5px 0 5px 20px; background-image: url(file.png); background-repeat: no-repeat; background-position: 0 7px; } ul.search li a { font-weight: bold; } ul.search li div.context { color: #888; margin: 2px 0 0 30px; text-align: left; } ul.keywordmatches li.goodmatch a { font-weight: bold; } /* -- index page ------------------------------------------------------------ */ table.contentstable { width: 90%; } table.contentstable p.biglink { line-height: 150%; } a.biglink { font-size: 1.3em; } span.linkdescr { font-style: italic; padding-top: 5px; font-size: 90%; } /* -- general index --------------------------------------------------------- */ table.indextable td { text-align: left; vertical-align: top; } table.indextable dl, table.indextable dd { margin-top: 0; margin-bottom: 0; } table.indextable tr.pcap { height: 10px; } table.indextable tr.cap { margin-top: 10px; background-color: #f2f2f2; } img.toggler { margin-right: 3px; margin-top: 3px; cursor: pointer; } /* -- general body styles --------------------------------------------------- */ a.headerlink { visibility: hidden; } h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, h4:hover > a.headerlink, h5:hover > a.headerlink, h6:hover > a.headerlink, dt:hover > a.headerlink { visibility: visible; } div.body p.caption { text-align: inherit; } div.body td { text-align: left; } .field-list ul { padding-left: 1em; } .first { margin-top: 0 !important; } p.rubric { margin-top: 30px; font-weight: bold; } /* -- sidebars -------------------------------------------------------------- */ div.sidebar { margin: 0 0 0.5em 1em; border: 1px solid #ddb; padding: 7px 7px 0 7px; background-color: #ffe; width: 40%; float: right; } p.sidebar-title { font-weight: bold; } /* -- topics ---------------------------------------------------------------- */ div.topic { border: 1px solid #ccc; padding: 7px 7px 0 7px; margin: 10px 0 10px 0; } p.topic-title { font-size: 1.1em; font-weight: bold; margin-top: 10px; } /* -- admonitions ----------------------------------------------------------- */ div.admonition { margin-top: 10px; margin-bottom: 10px; padding: 7px; } div.admonition dt { font-weight: bold; } div.admonition dl { margin-bottom: 0; } p.admonition-title { margin: 0px 10px 5px 0px; font-weight: bold; } div.body p.centered { text-align: center; margin-top: 25px; } /* -- tables ---------------------------------------------------------------- */ table.docutils { border: 0; border-collapse: collapse; } table.docutils td, table.docutils th { padding: 1px 8px 1px 0; border-top: 0; border-left: 0; border-right: 0; border-bottom: 1px solid #aaa; } table.field-list td, table.field-list th { border: 0 !important; } table.footnote td, table.footnote th { border: 0 !important; } th { text-align: left; padding-right: 5px; } /* -- other body styles ----------------------------------------------------- */ dl { margin-bottom: 15px; } dd p { margin-top: 0px; } dd ul, dd table { margin-bottom: 10px; } dd { margin-top: 3px; margin-bottom: 10px; margin-left: 30px; } dt:target, .highlight { background-color: #fbe54e; } dl.glossary dt { font-weight: bold; font-size: 1.1em; } .field-list ul { margin: 0; padding-left: 1em; } .field-list p { margin: 0; } .refcount { color: #060; } .optional { font-size: 1.3em; } .versionmodified { font-style: italic; } .system-message { background-color: #fda; padding: 5px; border: 3px solid red; } .footnote:target { background-color: #ffa } /* -- code displays --------------------------------------------------------- */ pre { overflow: auto; } td.linenos pre { padding: 5px 0px; border: 0; background-color: transparent; color: #aaa; } table.highlighttable { margin-left: 0.5em; } table.highlighttable td { padding: 0 0.5em 0 0.5em; } tt.descname { background-color: transparent; font-weight: bold; font-size: 1.2em; } tt.descclassname { background-color: transparent; } tt.xref, a tt { background-color: transparent; font-weight: bold; } h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { background-color: transparent; } /* -- math display ---------------------------------------------------------- */ img.math { vertical-align: middle; } div.math p { text-align: center; } span.eqno { float: right; } /* -- printout stylesheet --------------------------------------------------- */ @media print { div.document, div.documentwrapper, div.bodywrapper { margin: 0; width: 100%; } div.sphinxsidebar, div.related, div.footer, #top-link { display: none; } } phatch-0.2.7/docs/build/html/_static/default.css0000644000000000000000000000676111346363116021522 0ustar rootroot00000000000000/** * Sphinx stylesheet -- default theme * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ @import url("basic.css"); /* -- page layout ----------------------------------------------------------- */ body { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 100%; background-color: #000000; color: #000; margin: 0; padding: 0; } div.document { background-color: #252527; } div.documentwrapper { float: left; width: 100%; } div.bodywrapper { margin: 0 0 0 230px; } div.body { background-color: #1F1F21; color: #FFFFFF; padding: 0 20px 30px 20px; } div.bodywrapper { margin: 0 230px 0 0; } div.footer { color: #FFFFFF; width: 100%; padding: 9px 0 9px 0; text-align: center; font-size: 75%; } div.footer a { color: #FFFFFF; text-decoration: underline; } div.related { background-color: #252527; line-height: 30px; color: ; } div.related a { color: #C0F237; } div.sphinxsidebar { float: right; } div.sphinxsidebar h3 { font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; font-size: 1.4em; font-weight: normal; margin: 0; padding: 0; } div.sphinxsidebar h3 a { color: #FFFFFF; } div.sphinxsidebar h4 { font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; font-size: 1.3em; font-weight: normal; margin: 5px 0 0 0; padding: 0; } div.sphinxsidebar p { color: #FFFFFF; } div.sphinxsidebar p.topless { margin: 5px 10px 10px 10px; } div.sphinxsidebar ul { margin: 10px; padding: 0; color: #FFFFFF; } div.sphinxsidebar a { color: #C0F237; } div.sphinxsidebar input { border: 1px solid #C0F237; font-family: sans-serif; font-size: 1em; } /* -- body styles ----------------------------------------------------------- */ a { color: #C0F237; text-decoration: none; } a:hover { text-decoration: underline; } div.body p, div.body dd, div.body li { text-align: justify; line-height: 130%; } div.body h1, div.body h2, div.body h3, div.body h4, div.body h5, div.body h6 { font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #C0F237; font-weight: normal; color: #000000; border-bottom: 1px solid #ccc; margin: 20px -20px 10px -20px; padding: 3px 0 3px 10px; } div.body h1 { margin-top: 0; font-size: 200%; } div.body h2 { font-size: 160%; } div.body h3 { font-size: 140%; } div.body h4 { font-size: 120%; } div.body h5 { font-size: 110%; } div.body h6 { font-size: 100%; } a.headerlink { color: #555; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; } a.headerlink:hover { background-color: #555; color: white; } div.body p, div.body dd, div.body li { text-align: justify; line-height: 130%; } div.admonition p.admonition-title + p { display: inline; } div.note { background-color: #252527; color: #ffa; border: 1px solid #ccc; } div.seealso { background-color: #ffc; border: 1px solid #ff6; } div.topic { background-color: #252527; color: #ffa; } div.warning { background-color: #252527; color: #ffe4e4; border: 1px solid #f66; } p.admonition-title { display: inline; } p.admonition-title:after { content: ":"; } pre { padding: 5px; background-color: #000000; color: #FFFFFF; line-height: 120%; border: 1px solid #ac9; border-left: none; border-right: none; } tt { background-color: #1f1f21; padding: 0 1px 0 1px; font-size: 0.95em; }phatch-0.2.7/docs/build/html/_static/doctools.js0000644000000000000000000001473211346363116021545 0ustar rootroot00000000000000/// XXX: make it cross browser /** * make the code below compatible with browsers without * an installed firebug like debugger */ if (!window.console || !console.firebug) { var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; window.console = {}; for (var i = 0; i < names.length; ++i) window.console[names[i]] = function() {} } /** * small helper function to urldecode strings */ jQuery.urldecode = function(x) { return decodeURIComponent(x).replace(/\+/g, ' '); } /** * small helper function to urlencode strings */ jQuery.urlencode = encodeURIComponent; /** * This function returns the parsed url parameters of the * current request. Multiple values per key are supported, * it will always return arrays of strings for the value parts. */ jQuery.getQueryParameters = function(s) { if (typeof s == 'undefined') s = document.location.search; var parts = s.substr(s.indexOf('?') + 1).split('&'); var result = {}; for (var i = 0; i < parts.length; i++) { var tmp = parts[i].split('=', 2); var key = jQuery.urldecode(tmp[0]); var value = jQuery.urldecode(tmp[1]); if (key in result) result[key].push(value); else result[key] = [value]; } return result; } /** * small function to check if an array contains * a given item. */ jQuery.contains = function(arr, item) { for (var i = 0; i < arr.length; i++) { if (arr[i] == item) return true; } return false; } /** * highlight a given string on a jquery object by wrapping it in * span elements with the given class name. */ jQuery.fn.highlightText = function(text, className) { function highlight(node) { if (node.nodeType == 3) { var val = node.nodeValue; var pos = val.toLowerCase().indexOf(text); if (pos >= 0 && !jQuery.className.has(node.parentNode, className)) { var span = document.createElement("span"); span.className = className; span.appendChild(document.createTextNode(val.substr(pos, text.length))); node.parentNode.insertBefore(span, node.parentNode.insertBefore( document.createTextNode(val.substr(pos + text.length)), node.nextSibling)); node.nodeValue = val.substr(0, pos); } } else if (!jQuery(node).is("button, select, textarea")) { jQuery.each(node.childNodes, function() { highlight(this) }); } } return this.each(function() { highlight(this); }); } /** * Small JavaScript module for the documentation. */ var Documentation = { init : function() { this.fixFirefoxAnchorBug(); this.highlightSearchWords(); this.initModIndex(); }, /** * i18n support */ TRANSLATIONS : {}, PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, LOCALE : 'unknown', // gettext and ngettext don't access this so that the functions // can savely bound to a different name (_ = Documentation.gettext) gettext : function(string) { var translated = Documentation.TRANSLATIONS[string]; if (typeof translated == 'undefined') return string; return (typeof translated == 'string') ? translated : translated[0]; }, ngettext : function(singular, plural, n) { var translated = Documentation.TRANSLATIONS[singular]; if (typeof translated == 'undefined') return (n == 1) ? singular : plural; return translated[Documentation.PLURALEXPR(n)]; }, addTranslations : function(catalog) { for (var key in catalog.messages) this.TRANSLATIONS[key] = catalog.messages[key]; this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); this.LOCALE = catalog.locale; }, /** * add context elements like header anchor links */ addContextElements : function() { $('div[id] > :header:first').each(function() { $('\u00B6'). attr('href', '#' + this.id). attr('title', _('Permalink to this headline')). appendTo(this); }); $('dt[id]').each(function() { $('\u00B6'). attr('href', '#' + this.id). attr('title', _('Permalink to this definition')). appendTo(this); }); }, /** * workaround a firefox stupidity */ fixFirefoxAnchorBug : function() { if (document.location.hash && $.browser.mozilla) window.setTimeout(function() { document.location.href += ''; }, 10); }, /** * highlight the search words provided in the url in the text */ highlightSearchWords : function() { var params = $.getQueryParameters(); var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; if (terms.length) { var body = $('div.body'); window.setTimeout(function() { $.each(terms, function() { body.highlightText(this.toLowerCase(), 'highlight'); }); }, 10); $('

    !>U>>u>P==@=6>4?w>Q?l>>O?V7>@=u>P==U>>1><>2a>=@=!>p>?>>C? >?@=2a>=1><>>o>>To>@=6>4?w>Q?l>>O?V7>@=>To>>o>Fe>6 >Ե=?e>@=!>p>?>>C? >?@=Ե=?e>Fe>6 >>->.="M>@=6>4?w>Q?l>>O?V7>@=.="M>>->>>!2z<՛>@=!>p>?>>C? >?@=!2z<՛>>>h>>B;M>@=6>4?w>Q?l>>O?V7>@=B;M>h>>>'Y?/zp>?>>C? >?@=/z'Y? >?.=-?@=6>4?w>Q?l>>O?V7>@=.=-? >?=e>?=rtB?@=!>p>?>>C? >?@==rtB?=e>?>p ? >(U?@=6>4?w>Q?l>>O?V7>@= >(U?>p ?1>+ ?Va> d?@=!>p>?>>C? >?@=Va> d?1>+ ?U>EJ?zu>o?@=6>4?w>Q?l>>O?V7>@=zu>o?U>EJ?9>L?(>v?@=!>p>?>>C? >?@=(>v?9>L?>U?>0Oy?@=6>4?w>Q?l>>O?V7>@=>0Oy?>U?gm?L? ?v?@=!>p>?>>C? >?@= ?v?gm?L?7?MJ?1,?o?@=6>4?w>Q?l>>O?V7>@=1,?o?7?MJ?+?3 ?A?Ld?@=!>p>?>>C? >?@=A?Ld?+?3 ? ?p ?4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=6>4?w>Q?l>>O?V7>@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=6>4?w>Q?l>>O?V7>@=!>p>?>>C? >?@=LIHLIlib //scene.blendnc/python/phatch/trunk/data/blender/scene.blend/home/stani/sync/python/phatch/trunk/data/blender/scene.blende.blendIDH @OBBounding BoxubeIDH@ OBcameraameraamera.001IDH`=8@OBcamera_targetmptyIDH`=8A8OBfloorlaneIDHA8@F8`=8OBLampIDH@F8A8OBLamp.001DNA1@8SDNANAMEq *next*prev*data*first*lastxyzwxminxmaxyminymax*pointergroupvalval2name[32]typesubtypeflagsaveddatalentotallen*newid*libname[24]usicon_id*propertiesid*idblock*filedataname[240]filename[240]totpad*parentw[2]h[2]changed[2]pad0pad1*rect[2]*obblocktypeadrcodename[128]*bp*beztmaxrcttotrctvartypetotvertipoextraprtbitmaskslide_minslide_maxcurval*drivercurvecurshowkeymuteipoposrelativetotelempad2*weightsvgroup[32]sliderminslidermax*refkeyelemstr[32]elemsizeblock*ipo*fromtotkeyslurph**scripts*flagactscripttotscript*line*formatblenlinenostartendflagscolor[4]pad[4]*namenlineslines*curl*sellcurcselcmarkers*undo_bufundo_posundo_len*compiledmtimesizeseekpassepartalphaangleclipstaclipendlensortho_scaledrawsizeshiftxshiftyYF_dofdistYF_apertureYF_bkhtypeYF_bkhbiasYF_bkhrotscriptlink*dof_obframenrframesoffsetsfrafie_imacyclokmulti_indexlayerpassmenunribufs*gputexture*anim*rrsourcelastframetpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfile*previewlastupdatelastusedanimspeedgen_xgen_ygen_typeaspxaspy*vnodetexcomaptomaptonegblendtype*object*texuvname[32]projxprojyprojzmappingofs[3]size[3]texflagcolormodelpmaptopmaptonegnormapspacewhich_outputpad[2]rgbkdef_varcolfacnorfacvarfacdispfacwarpfacname[160]*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*instance_init)()(*callback)()versionaipotype*ima*cube[6]imat[4][4]obimat[3][3]stypeviewscalenotlaycuberesdepthrecalclastsizenoisesizeturbulbrightcontrastrfacgfacbfacfiltersizemg_Hmg_lacunaritymg_octavesmg_offsetmg_gaindist_amountns_outscalevn_w1vn_w2vn_w3vn_w4vn_mexpvn_distmvn_coltypenoisedepthnoisetypenoisebasisnoisebasis2imaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendcheckerdistnablaiuser*nodetree*plugin*coba*envuse_nodespad[7]loc[3]rot[3]mat[4][4]min[3]max[3]pad3modetotexshdwrshdwgshdwbshdwpadenergydistspotsizespotblendhaintatt1att2*curfallofffalloff_typeshadspotsizebiassoftbufsizesampbuffersfiltertypebufflagbuftyperay_sampray_sampyray_sampzray_samp_typearea_shapearea_sizearea_sizeyarea_sizezadapt_threshray_samp_methodtexactshadhalostepsun_effect_typeskyblendtypehorizon_brightnessspreadsun_brightnesssun_sizebackscattered_lightsun_intensityatm_turbidityatm_inscattering_factoratm_extinction_factoratm_distance_factorskyblendfacsky_exposuresky_colorspacepad4YF_numphotonsYF_numsearchYF_phdepthYF_useqmcYF_bufsizeYF_padYF_causticblurYF_ltradiusYF_glowintYF_glowofsYF_glowtypeYF_pad2*mtex[18]specrspecgspecbmirrmirgmirbambrambbambgambemitangspectraray_mirroralpharefspeczoffsaddtranslucencyfresnel_mirfresnel_mir_ifresnel_trafresnel_tra_ifiltertx_limittx_falloffray_depthray_depth_traharseed1seed2gloss_mirgloss_trasamp_gloss_mirsamp_gloss_traadapt_thresh_miradapt_thresh_traaniso_gloss_mirdist_mirfadeto_mirshade_flagmode_lflarecstarclinecringchasizeflaresizesubsizeflarebooststrand_stastrand_endstrand_easestrand_surfnorstrand_minstrand_widthfadestrand_uvname[32]sbiaslbiasshad_alphaseptexrgbselpr_typepr_backpr_lampml_flagdiff_shaderspec_shaderroughnessrefracparam[4]rmsdarkness*ramp_col*ramp_specrampin_colrampin_specrampblend_colrampblend_specramp_showrampfac_colrampfac_spec*groupfrictionfhreflectfhdistxyfrictdynamodesss_radius[3]sss_col[3]sss_errorsss_scalesss_iorsss_colfacsss_texfacsss_frontsss_backsss_flagsss_presetYF_arYF_agYF_abYF_dscaleYF_dpwrYF_dsmpYF_presetYF_djitgpumaterialname[256]scale*bbi1j1k1i2j2k2selcol1selcol2quat[4]expxexpyexpzradrad2s*mat*imatelemsdisp**mattotcolwiresizerendersizethreshvec[3][3]alfaweightradiush1h2f1f2f3hidevec[4]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsvtilt_interpradius_interpcharidxkernhnurb*bevobj*taperobj*textoncurve*path*keybevpathlenbevresolwidthext1ext2resolu_renresolv_renspacemodespacinglinedistshearfsizewordspaceulposulheightxofyoflinewidth*strfamily[24]*vfont*vfontb*vfonti*vfontbisepchartotboxactbox*tbselstartselend*strinfocurinfoeffect*mface*mtface*tface*mvert*medge*dvert*mcol*msticky*texcomesh*mselectvdataedatafdatatotedgetotfacetotselectact_facecubemapsizesmoothreshsubdivsubdivrsubsurftype*mr*pv*tpageuv[4][2]col[4]transptileunwrapv1v2v3v4edcodecreasebweightdef_nr*dwtotweightco[3]no[3]pad[3]uv[2]co[2]indexfis[256]v[4]midv[2]*faces*colfaces*edges*edge_boundary_states*vert_edge_map*vert_face_map*map_mem*vertslevelslevel_countcurrentnewlvledgelvlpinlvlrenderlvluse_col*edge_flags*edge_creases*vert_map*edge_map*old_faces*old_edges*errormodifiersubdivTyperenderLevels*emCache*mCachedefaxispad[6]lengthrandomizeseed*ob_arm*start_cap*end_cap*curve_ob*offset_oboffset[3]scale[3]merge_distfit_typeoffset_typecountaxistolerance*mirror_obsplit_anglevalueresval_flagslim_flagse_flagsbevel_angledefgrp_name[32]*texturestrengthdirectionmidleveltexmapping*map_objectuvlayer_name[32]uvlayer_tmp*projectors[10]*imagenum_projectorsaspectxaspectypercentfaceCountfacrepeat*objectcenterstartxstartyheightnarrowspeeddampfallofftimeoffslifetimedeformflagmulti*prevCosparentinv[4][4]cent[3]*indexartotindexforce*clothObject*sim_parms*coll_parms*point_cache*x*xnew*xold*current_xnew*current_x*current_v*mfacesnumvertsnumfacesabsorptiontime*bvhtree*dmoperationvertextotinfluencegridsizeneedbind*bindweights*bindcostotcagevert*dyngrid*dyninfluences*dynverts*pad2dyngridsizedyncellmin[3]dyncellwidthbindmat[4][4]*psystotdmverttotdmedgetotdmfacepsysrt[2]*facepavgroupprotect*fss*target*auxTargetvgroup_name[32]keepDistshrinkTypeshrinkOptsprojAxissubsurfLevels*originfactorlimit[2]originOptspntswopntsuopntsvopntswtypeutypevtypewfufvfwdudvdw*defvec[8][3]partypepar1par2par3parsubstr[32]*track*proxy*proxy_group*proxy_from*action*poselib*poseconstraintChannelsdefbasemodifiersdloc[3]orig[3]dsize[3]drot[3]obmat[4][4]constinv[4][4]laycolbitstransflagipoflagtrackflagupflagnlaflagprotectflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactorrdampingsizefacmarginmax_velmin_velm_contactProcessingThresholddtdtxactcolempty_drawtypepad1[3]empty_drawsizedupfacescapropsensorscontrollersactuatorsbbsize[3]actdefgameflaggameflag2*bsoftsoftflaganisotropicFriction[3]constraintsnlastripshooksparticlesystem*pd*soft*dup_groupfluidsimFlagrestrictflagshapenrshapeflagrecalcobody_type*fluidsimSettings*derivedDeform*derivedFinallastDataMaskstateinit_stategpulampcurindexactivedeflectforcefieldpdef_damppdef_rdamppdef_permpdef_frictpdef_rfrictf_strengthf_powerf_distf_dampmaxdistmindistmaxradminradf_power_rpdef_sbdamppdef_sbiftpdef_sboftclump_facclump_powkink_freqkink_shapekink_ampfree_endtex_nablatex_modekinkkink_axisrt2*rngf_noisesimframestartframeendframeeditframelinStiffangStiffvolumeviterationspiterationsditerationsciterationskSRHR_CLkSKHR_CLkSSHR_CLkSR_SPLT_CLkSK_SPLT_CLkSS_SPLT_CLkVCFkDPkDGkLFkPRkVCkDFkMTkCHRkKHRkSHRkAHRcollisionflagsnumclusteriterationswelding*particlestotpointtotspring*bpoint*bspringnodemassgravmediafrictrklimitphysics_speedgoalspringgoalfrictmingoalmaxgoaldefgoalvertgroupfuzzynessinspringinfrictefraintervallocalsolverflags**keystotpointkeysecondspringcolballballdampballstiffsbc_modeaeroedgeminloopsmaxloopschokesolver_IDplasticspringpreload*scratchshearstiffinpush*pointcacheshow_advancedoptionsresolutionxyzpreviewresxyzrealsizeguiDisplayModerenderDisplayModeviscosityValueviscosityModeviscosityExponentgravxgravygravzanimStartanimEndgstarmaxRefineiniVelxiniVelyiniVelz*orgMesh*meshSurface*meshBBsurfdataPath[240]bbStart[3]bbSize[3]typeFlagsdomainNovecgenvolumeInitTypepartSlipValuegenerateTracersgenerateParticlessurfaceSmoothingsurfaceSubdivsparticleInfSizeparticleInfAlphafarFieldSize*meshSurfNormalscpsTimeStartcpsTimeEndcpsQualityattractforceStrengthattractforceRadiusvelocityforceStrengthvelocityforceRadiuslastgoodframemistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposureexprangelinfaclogfacgravityactivityBoxRadiusskytypeocclusionResphysicsEngineticratemaxlogicstepphysubstepmaxphystepmisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxaodistaodistfacaoenergyaobiasaomodeaosampaomixaocolorao_adapt_threshao_adapt_speed_facao_approx_errorao_approx_correctionao_samp_methodao_gather_methodao_approx_passes*aosphere*aotableshemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammaselcolsxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizeqtcodecname[128]codecaudio_codecvideo_bitrateaudio_bitrategop_sizerc_min_raterc_max_raterc_buffer_sizemux_packet_sizemux_ratemixratemain*mat_override*light_overridelay_zmasklayflagpassflagpass_xor*avicodecdata*qtcodecdataffcodecdatacfrapsfrapefraimagesframaptothreadsframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1stereomodedimensionspresetmaximsizexschyschxpartsypartswinposplanesimtypesubimtypequalityrpadrpad1rpad2scemoderendererocresalphamodeosafrs_secedgeintsafetyborderdisprectlayersactlayxaspyaspfrs_sec_basegausspostmulpostgammaposthuepostsatdither_intensitybake_osabake_filterbake_modebake_flagbake_normal_spacebake_quad_splitbake_maxdistbake_biasdistbake_padGIqualityGIcacheGImethodGIphotonsGIdirectYF_AAYFexportxmlYF_nobumpYF_clamprgbyfpad1GIdepthGIcausdepthGIpixelspersampleGIphotoncountGImixphotonsGIphotonradiusYF_raydepthYF_AApassesYF_AAsamplesyfpad2GIshadowqualityGIrefinementGIpowerGIindirpowerYF_gammaYF_exposureYF_raybiasYF_AApixelsizeYF_AAthresholdbackbuf[160]pic[160]stampstamp_font_idstamp_udata[160]fg_stamp[4]bg_stamp[4]simplify_subsurfsimplify_shadowsamplessimplify_particlessimplify_aossscineonwhitecineonblackcineongammajp2_presetjp2_depthrpad3domeresdomemodedomeangledometiltdomeresbuf*dometextparticle_percsubsurf_maxshadbufsample_maxao_errorcol[3]framename[64]*brushtoolseam_bleednormal_anglestepinverttotrekeytotaddkeybrushtypebrush[7]emitterdistdraw_timedname[36]mat[3][3]cornertypeeditbutflagjointrilimitdegrturnextr_offsdoublimitsegmentsringsverticesunwrapperuvcalc_radiusuvcalc_cubesizeuvcalc_marginuvcalc_mapdiruvcalc_mapalignuvcalc_flagautoik_chainlenimapaintparticleselect_threshclean_threshretopo_moderetopo_paint_toolline_divellipse_divretopo_hotspotmultires_subdiv_typeskgen_resolutionskgen_threshold_internalskgen_threshold_externalskgen_length_ratioskgen_length_limitskgen_angle_limitskgen_correlation_limitskgen_symmetry_limitskgen_retarget_angle_weightskgen_retarget_length_weightskgen_retarget_distance_weightskgen_optionsskgen_postproskgen_postpro_passesskgen_subdivisions[3]skgen_multi_level*skgen_templatebone_sketchingbone_sketching_convertskgen_subdivision_numberskgen_retarget_optionsskgen_retarget_rollskgen_side_string[8]skgen_num_string[8]edge_modepad3[2]dirview*session*cumapdrawbrushsmoothbrushpinchbrushinflatebrushgrabbrushlayerbrushflattenbrushpivot[3]brush_typetexnrtexrepttexfadetexsepaveragingtablet_sizetablet_strengthsymmrakeaxislock*camera*world*setbase*basactcursor[3]twcent[3]twmin[3]twmax[3]editbutsizeselectmodeproportionalprop_modeautomergepad5pad6autokey_mode*ed*radioframing*toolsettingsaudiotransform_spacesjumpframesnap_modesnap_flagsnap_target*theDagdagisvaliddagflagssculptdataframe_stepzoomblendximyimspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]zfaclay_usedpersp*ob_centre*bgpic*localvd*ri*retopo_view_data*depthsob_centre_bone[32]localviewlayactscenelockaroundcamzoompivot_lastgridgridviewpixsizenearfarcamdxcamdygridlinesviewbutgridflagmodeselecttwtypetwmodetwflagtwdrawflagtwmat[4][4]clip[4][4]*clipbbafterdrawzbufxrayflag2gridsubdivkeyflagsndofmodendoffilter*properties_storage*gpdlviewquat[4]lpersplviewverthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinycursor[2]rowbutv2d*editipoipokeyactname[32]constname[32]bonename[32]totipopinbutofschannellockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexfromshowgroupmodeltypescriptblockre_alignoldkeypresstab[7]render_sizechanshownzebra*filelisttotfiletitle[24]dir[240]file[80]ofssortmaxnamelencollumsf_fpfp_str[8]*libfiledataretvalmenuact(*returnfunc)()(*returnfunc_event)()(*returnfunc_args)()*arg1*arg2*menup*pupmenuoopsvisiflagtree*treestoresearch_string[32]search_tsesearch_flagsdo_outlinevisstoreflagdeps_flagsimanrcurtileimtypenrdt_uvstickydt_uvstretchpad[5]centxcentyautosnap*texttopviewlinesfont_idlheightleftshowlinenrstabnumbercurrtab_setshowsyntaxoverwritepix_per_linetxtscrolltxtbarwordwrapdoplugins*py_draw*py_event*py_button*py_browsercallback*py_globaldictlastspacescriptname[256]scriptarg[256]*script*but_refsredraws*idaspect*curfont*edittreetreetype*filesactive_filenumtilesxnumtilesyselstateviewrectbookmarkrectscrollposscrollheightscrollareaactive_bookmarkprv_wprv_h*imgoutline[4]neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]textfield_hi[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeiconfile[80]back[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]lamp[4]active[4]group[4]group_active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]edge_seam[4]edge_sharp[4]edge_facesel[4]face[4]face_select[4]face_dot[4]normal[4]bone_solid[4]bone_pose[4]strip[4]strip_select[4]cframe[4]vertex_sizefacedot_sizebpad[2]syntaxl[4]syntaxn[4]syntaxb[4]syntaxv[4]syntaxc[4]movie[4]image[4]scene[4]audio[4]effect[4]plugin[4]transition[4]meta[4]editmesh_active[4]handle_vertex[4]handle_vertex_select[4]handle_vertex_sizehpad[7]solid[4]tuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsttimetnodetarm[20]bpad[4]bpad1[4]spec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]yfexportdir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefviewzoomconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[256]themesundostepsundomemorygp_manhattendistgp_euclideandistgp_erasergp_settingstb_leftmousetb_rightmouselight[3]tw_hotspottw_flagtw_handlesizetw_sizetextimeouttexcollectratememcachelimitprefetchframesframeserverportpad_rot_angleobcenter_diarvisizervibrightrecent_filessmooth_viewtxglreslimitndof_panndof_rotatecurssizepad[8]versemaster[160]verseuser[160]glalphaclipautokey_flagcoba_weightvertbaseedgebaseareabase*sceneendxendysizexsizeyscenenrscreennrfullmainwinwinakthandler[8]*newvvec*v1*v2panelname[64]tabname[64]drawname[64]ofsxofsycontrolsnapold_ofsxold_ofsysortcounter*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanelssubvstr[4]subversionpadsminversionminsubversiondisplaymode*curscreen*curscenefileflagsglobalfname[80]*ibuf*ibuf_comp*se1*se2*se3nrbottomrightxofsyofslift[3]gamma[3]gain[3]saturation*guidir[160]donestartstillendstill*stripdataorxory*crop*transform*color_balance*tstripdata*tstripdata_startstill*tstripdata_endstill*ibuf_startstill*ibuf_endstill*instance_private_data**current_private_data*tmpstartofsendofsmachinestartdispenddispmulhandsizeanim_preseek*stripfacf0facf1*seq1*seq2*seq3seqbase*sound*hdaudiolevelpanstrobe*effectdataanim_startofsanim_endofsblend_modeblend_opacity*oldbasep*parseq*seqbasepmetastackedgeWidthforwardwipetypefMinifClampfBoostdDistdQualitybNoCompScalexIniScaleyIniScalexFinScaleyFinxInixFinyIniyFinrotInirotFininterpolation*frameMapglobalSpeedlastValidFramebuttypeuserjitstatotpartnormfacobfacrandfactexfacrandlifeforce[3]vectsizemaxlendefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstepomattimetexspeedtexflag2negvertgroup_vvgroupname[32]vgroupname_v[32]*keysminfacusedusedelemdxdylinkotypeold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]delaydurationmaterialName[32]damptimerpropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linkstapjoyindexaxis_singleaxisfbuttonhathatfprecisionstr[128]module[64]*mynewinputstotslinks**slinksvalostate_mask*actframeProp[32]blendinpriorityend_resetstrideaxisstridelengthsndnrpad1[2]makecopycopymadepad2[1]track*melinVelocity[3]angVelocity[3]localflagdyn_operationforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]*referencebutstabutendminmaxvisifacrotdampminloc[3]maxloc[3]minrot[3]maxrot[3]matprop[32]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]int_argfloat_arggoaccellerationmaxspeedmaxrotspeedmaxtiltspeedtiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*lamprengobjectdupli_ofs[3]childbaserollhead[3]tail[3]bone_mat[3][3]arm_head[3]arm_tail[3]arm_mat[4][4]xwidthzwidthease1ease2rad_headrad_tailbonebasechainbasepathflaglayer_protectedghostepghostsizeghosttypepathsizeghostsfghostefpathsfpathefpathbcpathacconstflagikflagselectflagagrp_index*bone*childiktree*b_bone_mats*dual_quat*b_bone_dual_quatschan_mat[4][4]pose_mat[4][4]pose_head[3]pose_tail[3]limitmin[3]limitmax[3]stiffness[3]ikstretch*customchanbaseproxy_layerstride_offset[3]cyclic_offset[3]agroupsactive_groupcustomColcs*grpreserved1groupsactive_markeractnractwidthtimeslidename[30]ownspacetarspaceenforceheadtail*tarsubtarget[32]matrix[4][4]space*proptarnumtargetsiterationsrootbonemax_rootbone*poletarpolesubtarget[32]poleangleorientweightgrabtarget[3]reserved2minmaxflagstuckcache[3]lockflagfollowflagvolmodeplaneorglengthbulgepivXpivYpivZaxXaxYaxZminLimit[6]maxLimit[6]extraFzinvmat[4][4]fromtomap[3]expofrom_min[3]from_max[3]to_min[3]to_max[3]zminzmaxpad[9]channel[32]no_rot_axisstride_axiscurmodactstartactendactoffsstridelenblendoutstridechannel[32]offs_bone[32]hasinputhasoutputdatatypesockettype*new_socknslimitstack_indexinternstack_index_extlocxlocyown_indexto_index*tosock*link*new_nodeusername[32]lastyoutputs*storageminiwidthcustom1custom2custom3custom4need_execexectotrbutrprvr*typeinfo*fromnode*tonode*fromsocknodeslinks*stack*threadstackinitstacksizecur_indexalltypes*owntype*selin*selout(*timecursor)()(*stats_draw)()(*test_break)()cyclicmoviesamplesminspeedpercentxpercentybokehcurvedimage_in_widthimage_in_heightcenter_xcenter_yspiniterwrapsigma_colorsigma_spacehuesatt1t2t3fstrengthfalphakey[4]x1x2y1y2colname[32]bktyperotationpreviewgamcono_zbuffstopmaxblurbthresh*dict*nodeangle_ofscolmodmixthresholdfademcjitprojfitshortymintablemaxtableext_in[2]ext_out[2]*curve*table*premultablecurrcliprcm[4]black[3]white[3]bwmul[3]sample[3]offset[2]innerradiusratergb[3]cloneactive_rndactive_cloneactive_mask*layerstotlayermaxlayertotsize*pooleditflagvel[3]rot[4]ave[3]numparentpa[4]w[4]fuv[4]foffsetrand[3]*stick_obprev_state*hairi_rot[4]r_rot[4]r_ave[3]r_ve[3]dietimebanksizemulnum_dmcachebpialiveloopdistrphystyperotmodeavemodereacteventdrawdraw_asdraw_sizechildtypedraw_stepren_stephair_stepkeys_stepadapt_angleadapt_pixrotfromintegratornbetweenboidneighboursbb_alignbb_uv_splitbb_animbb_split_offsetbb_tiltbb_rand_tiltbb_offset[2]simplify_flagsimplify_refsizesimplify_ratesimplify_transitionsimplify_viewporttimetweakjitfackeyed_timeeff_hairgrid_respartfactanfactanphasereactfacavefacphasefacrandrotfacrandphasefacrandsizereactshapeacc[3]dragfacbrownfacdampfacabslengthrandlengthchild_nbrren_child_nbrparentschildsizechildrandsizechildradchildflatchildspreadclumpfacclumppowrough1rough1_sizerough2rough2_sizerough2_thresrough_endrough_end_shapebranch_thresdraw_line[2]max_lat_accmax_tan_accaverage_velbankingmax_bankgroundzboidfac[8]boidrule[8]*eff_group*dup_ob*bb_ob*pd2*part*edit**pathcache**childcachepathcachebufschildcachebufs*target_ob*keyed_ob*latticeeffectorsreacteventstotchildtotcachedtotchildcachetarget_psyskeyed_psystotkeyedbakespacebb_uvname[3][32]vgroup[12]vg_negrt3*renderdata*cacheCdisCvi[3]structuralbendingmax_bendmax_structmax_shearavg_spring_lentimescaleeff_force_scaleeff_wind_scalesim_time_oldstepsPerFrameprerollmaxspringlensolver_typevgroup_bendvgroup_massvgroup_structpresets*collision_listepsilonself_frictionselfepsilonself_loop_countloop_countpressure*pointstotpointsthicknessstrokesframenum*actframegstepinfo[128]sbuffer_sizesbuffer_sflag*sbufferTYPEdcharucharshortushortintlongulongfloatdoublevoidLinkLinkDataListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDPropertyDataIDPropertyIDLibraryFileDataPreviewImageIpoDriverObjectIpoCurveBPointBezTripleIpoKeyBlockKeyScriptLinkTextLineTextMarkerTextPackedFileCameraImageUserImageGPUTextureanimRenderResultMTexTexPluginTexCBDataColorBandEnvMapImBufbNodeTreeTexMappingLampCurveMappingWaveMaterialGroupVFontVFontDataMetaElemBoundBoxMetaBallNurbCharInfoTextBoxCurvePathMeshMFaceMTFaceTFaceMVertMEdgeMDeformVertMColMStickyMSelectCustomDataMultiresPartialVisibilityMDeformWeightMTexPolyMLoopUVMLoopColMFloatPropertyMIntPropertyMStringPropertyOrigSpaceFaceMultiresColMultiresColFaceMultiresFaceMultiresEdgeMultiresLevelMultiresMapNodeModifierDataSubsurfModifierDataLatticeModifierDataCurveModifierDataBuildModifierDataMaskModifierDataArrayModifierDataMirrorModifierDataEdgeSplitModifierDataBevelModifierDataBMeshModifierDataDisplaceModifierDataUVProjectModifierDataDecimateModifierDataSmoothModifierDataCastModifierDataWaveModifierDataArmatureModifierDataHookModifierDataSoftbodyModifierDataClothModifierDataClothClothSimSettingsClothCollSettingsPointCacheCollisionModifierDataBVHTreeSurfaceModifierDataDerivedMeshBVHTreeFromMeshBooleanModifierDataMDefInfluenceMDefCellMeshDeformModifierDataParticleSystemModifierDataParticleSystemParticleInstanceModifierDataExplodeModifierDataFluidsimModifierDataFluidsimSettingsShrinkwrapModifierDataSimpleDeformModifierDataLatticebDeformGroupbActionbPoseBulletSoftBodyPartDeflectSoftBodyObHookRNGSBVertexBodyPointBodySpringSBScratchWorldRadioBaseAviCodecDataQuicktimeCodecDataFFMpegCodecDataAudioDataSceneRenderLayerRenderDataRenderProfileGameFramingTimeMarkerImagePaintSettingsBrushParticleBrushDataParticleEditSettingsTransformOrientationToolSettingsBrushDataSculptDataSculptSessionSceneDagForestBGpicView3DSpaceLinkScrAreaRenderInfoRetopoViewDataViewDepthsbGPdataView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsTreeStoreTreeStoreElemSpaceImageSpaceNlaSpaceTextScriptSpaceScriptSpaceTimeSpaceNodeSpaceImaSelFileListThemeUIThemeSpaceThemeWireColorbThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemTStripElemStripCropStripTransformStripColorBalanceStripColorBalanceGUIHelperStripProxyStripPluginSeqSequencebSoundhdaudioMetaStackEditingWipeVarsGlowVarsTransformVarsSolidColorVarsSpeedControlVarsEffectBuildEffPartEffParticleWaveEffOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbActuatorSensorbDelaySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbJoystickSensorbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorbTwoDFilterActuatorbParentActuatorbStateActuatorFreeCamerabSamplebSoundListenerSpaceSoundGroupObjectBonebArmaturebPoseChannelbActionGroupbActionChannelSpaceActionbConstraintChannelbConstraintbConstraintTargetbPythonConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbMinMaxConstraintbSizeLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbStretchToConstraintbRigidBodyJointConstraintbClampToConstraintbChildOfConstraintbTransformConstraintbLocLimitConstraintbRotLimitConstraintbSizeLimitConstraintbDistLimitConstraintbShrinkwrapConstraintbActionModifierbActionStripbNodeStackbNodeSocketbNodeLinkbNodebNodePreviewbNodeTypeNodeImageAnimNodeBlurDataNodeDBlurDataNodeBilateralBlurDataNodeHueSatNodeImageFileNodeChromaNodeTwoXYsNodeTwoFloatsNodeGeometryNodeVertexColNodeDefocusNodeScriptDictNodeGlareNodeTonemapNodeLensDistTexNodeOutputCurveMapPointCurveMapBrushCloneCustomDataLayerHairKeyParticleKeyChildParticleParticleDataParticleSettingsParticleEditParticleCacheKeyLinkNodebGPDspointbGPDstrokebGPDframebGPDlayerTLEN   `HH(0p$8p(0 @x8Ph`hP0@  p0 @ `@XhpPpPHxHHhxx@` PP`PPPx0Hx((8X@XHX@@X0 0x0 x8@8( ((P0@ H 0 0 H@@P00Hh(H,(lH`h<PP` XPpT `@8p(X(XX8PPp800H0H08hp`8H(0( (@   8H8H (STRC9                     !"#$%&'()*+, -./0!!!"1#234./56789  :;<=>$ ?@.AB%%%%C=/DEF GHIJ& %KLM= N$OPQR'STUV%(((WXY) ))Z[\+]^_*`]a b(c(def ghij kl+mn]% ,opqrstuvwxyz{|$O'} ~- . " /01%++ 2 394   %5C@6$@57 .8qr38-9$O.467:    -;P  <Fqr !"#$%&'()*+,-.+/0123456789:;<=>?@ABCDEFGHIJKL2M$O'}=$O>NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw xyz{|}~/@66 2M9$O?F'} @%A+BBBCDC  $O># "%EEE"1#2F%FGH9C     $OI&> FbC    @ @@@%GFFJ'C $O&>KLMNOPQ R!J"S#T$T%T&6'()*+%,-./U0V1 M 2345 67K89:;%<O89=>W?PW@ANBC>DQX.25 67YEZ%RFSGL3.25 67[H\I]J^3_`_4aKLbMLcccaN`ObPQ R SdT6('%NUU VNUWXYZ[\]T$T&^_V`aKbOc('6%eee dfeefVg] h igee hee jkiee[lmnjee oH k ee p q r stulvwx]yleez{ |mee}]n ee~%]oee%p ee3 %q ee .]%reeseetee muee 3 %+veeF w ee xeeyeez{|}~eeNNNNNNK%eeee %ee %6ee9ee -eeee} ee  k ee  z%F%"$O&PC% o &    $OIC      >      !"#$%'} & ' ( )*G+4,-./0 1 2 3 456?789:;,<=>?@ABCF D & EF$GHIJKLMNOPQRSTUVWXYZ[\]^_`abcd3efn}ghijklmnopqrstuvwxyz{|}~,%Q}0JJJ$ONG/TVU      +$O2M'} !"#$%&'( ) *+,-./0123%4 5 67F8 9:;<=]>?@ABCDD >E?FGH%IJKLMNOPQRSTUVWXYZ[\]^d_`"mabcdefghi#jklmn opqrstuvw xy%z{|}~ F* +F+F m8%   m   2M</] !+ "#$. %&'()*+,-./0129 34567'} g 89:;<=>?@@A% .- mBCDEKFGHIJKLMNOPQRS  " TUVWXYZ[\]^_`+sabcdefg'hijklmnopqCr st5uvwxyz {|}~01$@^kFGHIFGHIFGHIF  $OPA.$FGHWI  %/FGHI B|!FGHI+F     FGHI 9  FGHI.-< ,B | FGHIFGHI*]      ] FGH]+ FGHFGHIP  99%|*FGHI f%+     8     D6 !"#$%&'()*+,-./012345_6789:;<=>?@ABCDEFGHIJK "%LMNOPQRSTUVWXYZ[\]^%4_B`abcdefghijklmnopqrstuvwxyz{ |}~%26   % v%F4F'}    f  88  %0mj%988      +  [$O0          %9p !"# $%&'()*+,-.%/0]l12929-234\5Qn6789:;<=%>?@ABCDEFGHvIJKLM?2NOEP QR S TU% V WXY%+F>Z%[\]^_%`a%bc%de Fpznbfg +h ijkTlmn+F o -p% qzrstuvwx*y z{nT|F  o}~% - 4\ 4\  4\m   -J % " ` -  T  4\+@ -z  % 4\D@?nf j+Fk4\_* - zT  - % ++ $Om]FGH   F - %? & l   "   1  &        %!!! """!$O    g%#FGHI $$$$O % %%      %$O& && %'*  (  ) ]%* + , +F - . [\%/ !0 "1 #$%&2  '()*+,-./%+F3 v4 %05 123456786    9:v7    9:v8    9:v9  %: ;; ;;<= -<<< >?$O [\@ABCDEF = GHIJ>>>>K=LMNOP+QRST>U?V@ @@@WXYN { Z [QR\]^_`abcdeABf???@g@h>i>U9 j k=l mnop qBr>s>t u vwCxy%Dz{D|}"~%%E pB%F%GHhij9IJKLMN zO  P jpmQ[%HR%STU TTT< @UV.\% Cm\/%2MVW F_ TW% XB%YBZ[ YBYXYMm%Qd\p1F.bc4\:  953 678        m      l            ^\]    ! " # $ % & ' ( ) * + , - ?7?. / 0 $O51 %\2 [Z]3 ^4 ^5 6 7 6 8 9 : ; < Nn5= > ? 9@ A B /C D E F G H }{"_I J K L M N O P Q R S T U V W ]X Y Z [ \ ] ^ %F|__ ` a b ]c d `e aaa`f g h bbb i j c cc bk h l ^m  xn o p ENDBphatch-0.2.7/data/blender/lcd.blend0000644000000000000000000350534011346363116017037 0ustar rootroot00000000000000BLENDER_v249REND SceneGLOB  2'p, SRx''SR1-AnimationP@p@@p, DATAPDATAP DATA( DATA(pDATAp(DATApDATAHDATAHDATAؙHDATAؙ DATA hؙDATAh DATAhDATADATA@DATAЛ@P(DATAЛDATA`ЛDATA`DATA`pHDATA8DATA8HDATAȝ8pDATAȝPؙDATAXȝp DATAX( DATAXؙ DATA0HhDATA0xDATAx0DATAxhDATAPؙDATAP DATAPphDATA(hDATA(pؙDATAp(DATA@@Pؙ (O DATA Link and MaterialsEditing>DATA MeshEditingF>DATAءAnim settingsObject>DATAءDrawObjectF>DATAءConstraintsObject>DATAEffectsObjectDATAxHooksObjectF>ءDATAx`Particle InteractionObject>DATA`HxSoftbodyObject>DATAH0`OutputRender>DATA0HRenderRenderF>DATA0AnimRender>DATAFormatRender>DATA333?X5@DhCDhCC(BDC?z?DATA333?X5/9DATA@@@ !  DATA@@@hHG==o?ЕDATAЕTransform PropertiesView3d>DATAЕ3D Viewport propertiesView3d>"DATA333?Xq????????G==o? A*A?G==o??????*AH/ B??=C ݢM@ݢM@ݢM@? DATA333?Xq/9DATA@@@Hp??PףH^DATATransform PropertiesIpo!>DATAX^333?XrzC̽̌?zC@ #< #<`jFzD OBzC̽̌?DATA+^333?XrCC|||??l|DATA+`+ 333?XrzCCHBC|||?CFC= ADATA`+++ 333?Xr' =rttDATA++`+ 333?Xr?zDzDBCl||ll|zDzD=HB DATA+P + 333?XrBzB@l|llFzD #<HB DATAP +333?Xr??? ???? A???PA A!O?j?}GCHB? AH/ B? #<C DATAP 333?Xr/9DATA@@@hp  +pDATApLink and MaterialsEditing>DATApMeshEditingF>DATA++333?X2zCB{ µCB ?BFB= ADATA+X+ 333?X2zCCHBC$?CFC= ADATAX+333?X2#DhC`DpJgChCC(BDC?z?DATAX333?X2/9DATA@@ؙ} ?=o?.@0DATA@0Transform PropertiesView3d>DATA0@3D Viewport propertiesView3d>"DATA333?d pDATA`xHLampLampF>DATAx`SpotLamp>DATAxTexture and InputLamp>DATAMap ToLamp>DATA8!PreviewMaterial> DATA8!7!MaterialMaterial> DATA7!6!8!PreviewWorld>DATA6!/+7!WorldWorldF>DATA/+0+6!Mist Stars PhysicsWorld>DATA0+1+/+Texture and InputWorld>DATA1+3+0+Map ToWorld>0+DATA3+4+1+OutputRender>DATA4+05+3+RenderRenderF>DATA05+H6+4+AnimRender>DATAH6+`7+05+FormatRender>DATA`7+x8+H6+Link and MaterialsEditing>DATAx8+9+`7+MeshEditingF>DATA9+:+x8+Mesh ToolsEditing>DATA:+;+9+Mesh Tools 1Editing>DATA;+<+:+CameraEditingF>DATA<+=+;+ShadersMaterial> DATA=+?+<+TextureMaterial> D+DATA?+ @+=+Anim settingsObject>DATA @+8A+?+DrawObjectF>DATA8A+PB+ @+ConstraintsObject>DATAPB+hC+8A+ScriptlinksScript>DATAhC+D+PB+EffectsObject8A+DATAD+E+hC+Map InputMaterial> DATAE+F+D+Map ToMaterial> D+DATAF+G+E+AnimAnim>DATAG+H+F+SoundSound>DATAH+I+G+ListenerSoundF>DATAI+K+H+SequencerSound>DATAK+(L+I+ArmatureEditingF>DATA(L+@M+K+RampsMaterial> 8!DATA@M+XN+(L+Mirror TranspMaterial> <+DATAXN+O+@M+Mist / Stars / PhysicsWorld>DATAO+P+XN+Amb OccWorld>XN+DATAP+Q+O+Shadow and SpotLamp>DATAQ+S+P+ModifiersEditing>DATAS+T+Q+ShapesEditing>Q+DATAT+0U+S+MultiresEditing>DATA0U+HV+T+Links and PipelineMaterialF> DATAHV+`W+0U+Render LayersRender>3+DATA`W+xX+HV+BakeRender>05+DATAxX+Y+`W+StampRender>H6+DATAY+Z+xX+SSSMaterial> <+DATAZ+[+Y+Mesh Tools MoreEditing^>DATA[+Z+UV CalculationEditing>T+DATA\+ 333?@DhC(D`hCC(BDC?z?W@^0mDATA H\+333?@??? ???? A??@PA Aj?c3>}GCHB? AH/ B? #<C DATAH 333?@HE}CHE}C HE}C??DATAH333?@Load LibraryC:\Users\jutuveps\My Projects\phatch\data\blender\scene.blend\Object\ODATA@@@ +HH +VVVWn#n#DATA@@@ !+h!+H +++?df?AHM}V}V}V #P#]+f+DATA]+_+Transform PropertiesView3d,>DATA_+ `+]+View PropertiesView3dT>"DATA `+8a+_+OutputRender>DATA8a+Pb+ `+Render LayersRender> `+DATAPb+hc+8a+RenderRender@>DATAhc+d+Pb+AnimRender>DATAd+e+hc+BakeRender>hc+DATAe+f+d+FormatRender>DATAf+e+StampRender>e+DATAg+333?@JC+JCHEVD?? lDATA lKADATAAKp,p,p,p,`!/!(,h!@,0x!x,80!,!,!2pK080 ! !!2@^0$Ъt x$!180 ! ! "0pK0%0  "  "/w,/Xv,pK0(/p0 (/ (//,080pK0pK0080pK0//H/X//h/!!!0{ 8/h{ 6{ (x HDATAg+ps+333?@DdC8CnDqü DC(BDC?z?JDATAps+`g+333?@/;3@??i!"4+;i!"?0;3 \O֓?.;3?i!".;i!"4??-;@3֓@S??]e38-A+?F4c<3+;3"bdf?h<0;Dfb@֓@3 6?'DPд349?ןA=;3Jܟ@ )@+?df?AHM/;3@??i!"4+;i!"?0;3 \O֓??&@?H/ B??9;=C7?X<???? ?DATAX`X+ps+333?@zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATAX+` 333?@?zDzB@22FzD #<HB DATAX+333?@Load Library PICTURESC:\Users\jutuveps\My Projects\phatch\data\blender\box.blend\Group\Monitord*DATA@@@آ!+!+ +?/? JL v+p#p#h+i+DATAh+i+Transform PropertiesView3d,>DATAi+h+View PropertiesView3dT>"DATAv+a333?@"`HF*Y?FY?*Լ6?H 5+?H=&?Au?`GY?H*3Լ?PY?6? H=P@>?H??%t+YYUm?|1DD65Iq?HHq<6?}fC@u@eF?ʵ4%yeOA ?04BjnpBО4AL@b?@6@?/? JL"`HF*Y?FY?*Լ6?H 5+?H=&?Au?K>C^QWh"݃@u@H/ B??}!;=C_?b5?Ͼ7?X<s>>>? DATAXav+333?@zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATAH+a333?@HEVDHEVD2 XHEVD??2DATAH+k+ 333?@?zDzB@22FzD #<HB DATAk+H+333?@DdC8CnD fCC(BDC?z?DATAk+333?@Load Library PICTURESC:\Users\jutuveps\My Projects\phatch\data\blender\box.blend\Group\Monitord*DATA@@@ + +h!+ !+7?$g?AHM{{{ 0@+##(l+@m+DATA(l+@m+Transform PropertiesView3d,>DATA@m+(l+View PropertiesView3dT>"DATA0@z+333?@CC??d?DATA@z+(c0333?@/;3@??i!"4,;i!"?/;30L?.;3?i!"-;i!"4??-;@3@??3[-A7?34d<3,;3xs$g?gDATAX+@+View PropertiesView3dT>"DATA(+}+ 333?@0' >DATA}+d(+333?@"`HF*Y?FY?*Լ6?H 5+?H=&?Au?`GY?H*3Լ?PY?6? H=P@>?H??$r+YYSm?_D65˻AHHp<6?WC@u@ӋiF?4]ZIY=1BjnwpB4AkL@a?@ @?UA JL"`HF*Y?FY?*Լ6?H 5+?H=&?Au?K>C^QWh"݃@u@H/ B??_!;=C_?b5?Ͼ7?X<???? DATAXd(}+333?@zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATA(+d333?@HEVDHEVD2 XHEVD??2DATA,CS@ffp,DATA+p+( 333?@?zDzB@22FzD #<HB DATAp+8++333?@DdC8CnD fCC(BDC?z?DATA8+p+333?@Load Library PICTURESC:\Users\jutuveps\My Projects\phatch\data\blender\box.blend\Group\Monitord*SRx'8''SR3-Materialodel Singp(+,+`,++@@p, DATAp(+(+DATA(+)+p(+ DATA)+H)+(+ DATAH)+)+)+DATA)+)+H)+<DATA)+ *+)+<DATA *+h*+)+DATAh*+*+ *+DATA*+*+h*+,<DATA*+@++*+,DATA@++++*+DATA++++@++,DATA++,+++DATA,+++DATA`,+,+(+)+DATA,+,+`,+p(+H)+DATA,+8-+,+p(+)+DATA8-+-+,+H)+)+DATA-+-+8-+)+)+DATA-+.+-+(+ *+DATA.+X.+-+)+h*+DATAX.+.+.+ *+h*+DATA.+.+X.+)+h*+DATA.+0/+.+)+*+DATA0/++.+)+*+DATA+(+0/+h*+*+DATA(+p++*+*+DATAp++(+)+@++DATA++p+ *+@++DATA+H++*+++DATAH+++*+++DATA++H+@++++DATA+ ++@++++DATA +h++++++DATAh++ + *+,+DATA++h+*+,+DATA++++,+DATA@@p(+)+)+H)+?@Pף;;!,0+++DATA++OutputRender>DATA+++RenderRenderF>DATA+++AnimRender>DATA++FormatRender>DATA,,333?Xs~CA~CA!?AFA= ADATA,+, 333?XszCCHBC ?CFC= ADATA++,333?XsDhC?DhCC(BDC?z?mDATA+`+333?Xs??? ???? A??@PA Aj?c3>}GCHB? AH/ B? #<C DATA`0++333?Xs@̌AR|B1@lA A@CC #<@DATA0+`333?Xs/9DATA@@@ *+(+)+h*+ !  DATA@@@*+*+h*+)+G@? JL-=-=W-X~ +(+++DATA++OutputRender>DATA+0++RenderRender>DATA0+H++AnimRender0>DATAH+`+0+FormatRenderH>DATA`+x+H+PreviewMaterial>DATAx++`+MaterialMaterial>DATA++x+ShadersMaterial0>DATA+++TextureMaterialD>DATA+++Map InputMaterial\>DATA+++Map ToMaterial`>DATA+++RampsMaterial>x+DATA++Mirror TranspMaterialH>DATA +x+333?XsChCCvgCC(BDC?z?DATAx+8f +333?XsJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?J>#xu?ܗ=Hi6>(? ?Pb^L?\FAA?4[?[!?@jG>gb>Pb>4Im>k&?]M^L<0@AzA=>Kc<2֍7&> ?:x¸A1vB,jB~@G@? JLJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?@?$$OAH/ B?=Ch?j(4?t'>d DATAX8f(+x+333?XszC AzC A #< #<`jFzD OBDATA(+8f333?Xs;SAVE FILE/usr/home/intrr/blender/blend/untitled.blendDATA@@@)+@++++*+U.=w=o?+=+=W+X,X+ +DATA+8+333?\???h?j(4?t'>????hj(4t'?U.=w=o??OAH/ B??=Ch?j(4?t'>dEh@Eh@Eh@? DATA8+g+333?\DdC>9C,DeCC(BDC?z?DATAXg +8+333?\zC AzC A #< #<`jFzD OBDATA +g333?\ SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATA@@@++,+*+++e?B$?AHM+++USH++DATAH+P+333?\1ݕ/?U~'?3F:?>T8165e?2>Z& 4?ߕ/?7F:?81W~>85e?'?T2>ne@>M@?4z?'''䷄?K??T?v|@?l211A 4Atp>?@@FC>G ?4xB֟&BĭeA(@e?B$?AHMݕ/?U~'?3F:?>T8165e?2>Z& 4?H?N,Z#OAH/ B??=Ch?j(4?t'>dA@A@A@? DATAP+HiH+333?\1DdC>9C,DeCC(BDC?z?DATAXHi+P+333?\1zC AzC A #< #<`jFzD OBDATA+Hi333?\1 SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATA@@@++ *+,+++&=+=o?US++DATA+h+333?\E0?3?3:-vk(4??3?3;@k(40v@?&=PU1n;+=ꉖø;ZO{:?JXA54U0AC;@j(40v@?&=+=o??3?3:-vk(4?5?5IXAH/ B??=C:j(4?.vdٚ@ٚ@ٚ@? DATAh+j+333?\E0DdC>9C,DeCC(BDC?z?DATAXj+h+333?\E0zC AzC A #< #<`jFzD OBDATA+j333?\E0 SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendSRx8'''SR4-Sequence@++0+,@@p, DATA@++DATA++@+ DATA+++ DATA+`++DATA`+++DATA++`+DATA+8++DATA8+++DATA++8+DATA+++DATA+X++TDATAX+++TDATA++X+DATA++DATA0+x+++DATAx++0+@++DATA+,x+@+`+DATA,P,+++DATAP,,,`++DATA,,P,++DATA,(,,+8+DATA(,p,,+8+DATAp,,(,++DATA,,p,8++DATA,H,,++DATAH,,,++DATA,,H,++DATA, ,,+X+DATA ,h,,8+X+DATAh,, ,+X+DATA,,h,`++DATA,@,,++DATA@,,,++DATA,,@,++DATA,,++DATA@@@+`+++++++DATA++OutputRender>DATA+++RenderRenderF>DATA+++AnimRender>DATA++FormatRender>DATA++333?\yDhCvDhCC(BDC?z?DATA++333?\y/9DATA@@@+++8+ !  DATA@@@`++++8=i>o?  ,+DATA ,X ,333?\~CB~CB ?BFB= ADATAX ,+ ,333?\zCAzCA  A@FB= A ?DATA++X ,333?\????????8=i>o?fffAD&@??fffAH/ B? #<C DATA++333?\AVE TARGA/t1.blend9DATA@@@+X+8++8=H>o?UUU P ,+DATAP ,+333?\0zCAzCA1||1 A@FB= A ?DATA++P ,333?\0????????8=H>o?fffA*@??fffAH/ B? #<C DATA++333?\0AVE TARGA/t1.blend9DATA@@@++X++8=>o?SSSTXl+DATAXXl+333?\pB̽̌?B̽̌? #< #<`jFzD SQB̽̌?DATA++Xl333?\p????????8=>o?fffA@??fffAH/ B? #<C DATA++333?\pOAD FILE/9DATA@@++++8=i>o? H ,+DATAH ,P+333?\ŰzCAzCA A@FB= A ?DATAP++H ,333?\Ű????????8=i>o?fffAD&@??fffAH/ B? #<C DATA+P+333?\ŰAVE TARGA/t1.blend9SRx'8'SR5-Scripting,X , ,,@@p, DATA,`,DATA`,,, DATA,,`, DATA,8,,DATA8,,,DATA,,8,DATA,,,DATA,X,,DATAX,X ,,DATAX ,X,DATA , ,`,,DATA ,0, ,`,,DATA0,x, ,,,DATAx,,0,,,DATA,,x,8,,DATA,P,,,X,DATAP,,,,X,DATA,,P,,X,DATA,(,,8,,DATA(,p,,,8,DATAp,,(,,X ,DATA,,p,,X ,DATA,H,,,X ,DATAH,,,X,X ,DATA,H,,,DATA@@,`,,, !  DATA@@@8,,X,,z==o?++X-,p.,DATAX-,p.,Transform PropertiesView3d>DATAp.,X-,3D Viewport propertiesView3d>"DATA++333?d????????z==o?&A*A?z==o??????*AH/ B??=C ?@?@?@? DATA++333?d/9DATA@@@X ,X,,,??Pף L@M,+/,/,DATA/,Transform PropertiesIpo!>DATA@M, 333?d'> =DATAN,@M,333?dCCx??|?DATAXN,333?dzC̽̌?zC@;; #< #<`jFzD OBzC̽̌?DATAm,N,333?dCC|||??l|DATAm,n, 333?dzCCHBC|||?CFC= ADATAn,o,m, 333?d?zDzDBCl||ll|zDzD=HB DATAo, +n, 333?dBzB@l|llFzD #<HB DATA ++o,333?d??? ???? A???PA A!O?j?}GCHB? AH/ B? #<C DATA+ +333?d/9DATA@@,8,,X ,O?,+0,>,DATA0,1,Link and MaterialsEditing>DATA1,2,0,MeshEditingF>DATA2,3,1,Anim settingsObject>DATA3,5,2,DrawObjectF>DATA5,6,3,ConstraintsObject>DATA6,07,5,EffectsObjectDATA07,H8,6,HooksObjectF>3,DATAH8,`9,07,Particle InteractionObject>5,DATA`9,x:,H8,SoftbodyObject>5,DATAx:,;,`9,OutputRender>DATA;,<,x:,RenderRenderF>DATA<,=,;,AnimRender>DATA=,>,<,FormatRender>DATA>,=,ScriptlinksScript>DATA?,+333?dChC#DhCC(BDC?z?DATA+?,333?d/9SC|p,SCScenetageainH/`!/Ћ b>wL:%? >k> 9>&Y>p?=A,dd??< d X d! ??BB?????//backbuf/tmp\L?L?L??>??_??D ADATAЋ{ 8/DATA {pЋ!DATAp{ h!DATA{px!DATA{`!DATA`{!DATA{`!DATA{P!DATAP{ !DATA{P  "DATA{@ /DATA@{ -/DATA{@ (/DATA{0/DATA0{/DATA{А0/DATAА{ H/DATA {pАX/DATAp{ /DATA{p\h/DATA(z,d'=A@DATAA,L?B ?o: ??P22 2d 22 22 22 22 22 > #<===ff??AHz?=???CDATA'????C?N #,=P +=h??????DATAHh%?=Vy?>`fff?Ou<?DATAH1 RenderLayerCU8Xv,3w,CUCurve.005^$;#;#!0wXЧ XЧ 絿:п)r>}>?e?d?????L=DATA0wpK0DATA80  B,DATA B,.I`1?Z5=Ѥ|EFd鿅1M%U?(ΣsϚؿKoο:EͿ#?BF轿ްb.Bjqqs?CU8w,3(,Xv,CUCurve.006'HH;#;#!@y,HH12p>˅?3?d?????L=DATA@y,pK0DATA8H0 8C,DATA8C,.!QWFf?3z=Ф|V<6=ۭ>?]kӒ|klŽ{rJS]I+?CU8(,3,w,CUCurveCircle.006P:#9#00???d?????L=DATA80  PD,DATAPD,.X X ??X ??X ????X ???X ?X ?X ?CU8,3x,(,CUCurveCircle.008xx ;#:#xy,> > @=пr="?4=??d?????L=DATAxy,0DATA8x0  ,DATAP,.If>&G=7.۽ ?|Ѿ4ԓ@+Q?hQ =~@9>Kл ??:,?I=1L?kR>-??D^>?54?\>.??^)?[#?VX>mھ?CU8x,3,,CUText.104`v .#.#/#X/# z, l -T>*>y>*>?d?????L=y,XТТТ,y,DATA z,80DATAy,ADATAy,1DATA,2CU8,3,x,CUText.105(0#(0#0#0#z,`V `V ޓ>+>Y~>k>?d?????L=Xz,XТТТx,z,DATAz,80DATAXz,GDATAz,1DATAx,2CU8,3@,,CUText.1060v `1#84#9#x7#8{,, 0#[p?G>1|?ˎP>?d?????L={,XТТТ,XBDATA8{,0DATA{,neovoDATA(X1DATA,2CU8@,3,CUText.108$h p   {,pU ]_~?wI> o?wI>?d?????L=p{,XТТТ,DATA{,0DATAp{,F-417DATA(1DATA,2IM IMMonitor Sticker.jpg?//..\..\..\..\Blends\textures\Monitor Sticker.jpg../../../../Blends/textures/Monitor Sticker.jpg,d??DATA,SU,DATATU,JFIFdd.ExifMM*bj(1r2iddAdobe Photoshop 7.02007:01:09 16:20:27ޠ(&HHPhotoshop 3.08BIM%8BIMdd8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMSMonitor StickernullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:44d73bc3-9fe2-11db-a455-f13ee1d21f48 Adobed@CC }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e ( ( ( ( ( ( ( ( ( ( (iַOX%k;o>Pb5IV[&d6:ZFwulbo-83Cm{bH"+l&T'blt4[[>^( ( ( ( ( ( ( ( ( ( (( ( ( ( ( ( ( ( ( ( ( ү(6;6/~dx x ~$>é İ8U * ( ( (1UfHE,]@@  (͝ޣyk70Y-̩ \\M"")gfMZMg@#T5;3nvawZݺZKȡ:!T-|Od漞S#}P] ibiJ. x ތA@PZx{\4]VYh u]Z[nm3"F]_&{xw],^FCMՠ;idL+Y"T$ TP@P@nj.i燵_n{7ugZ\IFIBλ&R@0$G 1"EQI$8Ag݀I8 {^#V'e^ү{i+mB y{YPHxs bPNMl GQ,m廽-l`I'EHEgw`q@5}XqkVjuj7Znl.m⻷7WCs%M7 @uO xDukޑC4 =jEm9n FA{ vJ8e%O/:3{n ( ( ( pVOҾ ~sO5M+׆ ,t >mWW5:bRrHPNJ Z5:_'cK~(߂iυ_ |OOwJ/K.ŨiO, '--jDi#$)?L3[K+m?猼=}v ^kZ {MbUb}F+\Ȑ&`-+OXêxo1ze6Zgq[zHM"E;>?q~?_ J|cFK.ɮWSt-v #\u-RE3˺Pv$}Ѡku~Ӡ%~ag_ä&&cik&KXn6W90\ʪ[kyP -)/k2i#,ZJxEg__Ix?ֺm6+mtoox`XW/!g>.x gZMMkoF]/}g`兿ÿ7zlu f |cwkxViW|[ֽ+|P!ysj4rŦĞ %Sk k,H_٫II?jO_<%}_|KUxG'4Nj< ME5OF9!60:Gi>;/goO_s)~$p ]Նa=O:iִ w x-"iclC# $X> x'+eo᯴\mPlunoo6Z&'9hDoE?<~UO!|SҾ|!No\!¾|Ow  7Z`F/˟~şo$M&ϊK;-Ķޕr\-Eem/n%Y<1~|Bwg_9'ψ+7tOO{ZҚ<'x.@=isk:i.MM;M  _- g*㏉ qZ׃5iZ/xxfC_ Gf\H#@#ujd|"յD|KM{KtM;ƋonuF]$rO+,@"_+~-~V!&?k=r7a=jÚ4Kƕp4}SĺIFۀOo/xoGbC/SKxuOexZzW u{[|YgIٌ\ZG Ὲ>4xM|S|< !?kiuό 1mx~R5~<,re 1~_P5SG~en G{nFd|Ab.|@P@P@P@n_?f6ˏJ'(M\e]k/?5RY4 |Iqn'dJۋ?gOTx_2k6GZO gAQҼ '^*?]Z4vo=gF2o*Sd?m?yY_Hix⏌|-/S߿l'+M6I@<ja~% Bgh>_[:w VMg$xNB?K]>5 Nm-#) V'/kHu?>"V?i/RWWAbއxSAҼ7j5{5 Bt,\&Afs~3]?O?/C>A _֬'oZTמ}Tjl79k|E\&ŝK}n?z<-O3ζ_m-E]G7 OĚzItУJcşK_+/Wx.6'X xG~5K|ym7CyCqI71f4^O7wzƳ.0xUa]gP<>.? }oE&w+ǩO\Ikuhh%~;s'={⏃? <1 x[#g|||kxBMԞ ^9VG? 7.ҿt?;"z/¨7|7G/cS|%j|oiKA4k3}\ܬ -@=/EiFk~s245 ɧC|FK ji'Fln.-#Y%dį%Gٛ!|p-~o6y JӼNWɮ&REȃ}ê Z'oDk3_ړxC /xOŞ d&@$ѡ纋SKuXƿAπ'?⦵Oۏߌ8;B}?|&W; ,>$-jW:'4PL$+ xRw~,>|?8җvDҵox7<e:/5 L^qY@:&o)X7>"|u W~'IöG, ['1o-[MJQl:G$wyq~W4?bK('yr j֚y+85 SGW5-ThwNkZY% <ʑ4Nm8M\ ?_ş 4cQ'|[i?|mO iVj}}('܀O&_ǿ?WKF|J|㕯> x_úZM&xs×/ ƳgHӬ]58`k_B9F?c?xK? |"|gGw֟m5M[rTէV?C5/#|;k߄u ̭O*$aqfkoա3xY$Ouٯ1w7zY0Q~ϟ|/3ſϋ~!ߏ*WG<9OĚ5|OoGHךtq4B7FJ?~2h*Y|!;_4{_gOǮ~'~Y#NݬUyAp*5'o!F¿ ~˿|-ZMg??|MUҴoľ5i"K- ixY[f(௟T?ao?T\Dd_|omg>(xn!q7ӧxK@$ɪ?X)- ?/:3{n ( ( ( 3N)ƿC|-li]BIRPKtMF 4kVTvq-IY7?(`|Iw8~9 ?|.ލij E6 Oa"È?Qi?NJ5_wlO;MxY ]JV{m jBI<ɣQP ¯ y-|qgj]7Ɵ$Q|@-cxRx)6Hn~!~z#_hOڿt_]ύ s}>Kjײ4K( vB/|idF~G>!yoW>0ZZ=mQZ}ypM9j@?W kfοggK>1k>:G~8񗎴|=.m|585k3~%M g ֮%= O 'Ŀ?a< x>i-Ɖ{ I-ZP;?f(|Cm3uo]j:Ŝ 崰iaY|dFBŨTSl*Z?-?5+v~(xF)xBRm/e牼%kKoim--Yķ>P/ Vi3?>4?iQo]%5m3gۍc -3gM2J҆T0 E[kkKg !𖅮?x^MbxMW~&yq^#[KmE(oٟYu8c 2f?`ݼūj(vQ\|+OO?? |F?;7G=b>_a{/մGSItkyY@>d|_;%>17)|{<iLs'¯x{~"tw-߆}gM?L"hnPVP<_)7/ Ot>' iSN׮5%]A֛5k:#W2"r\S gj]3Oi3/<)#ƾ-|x;skzn..uΡc}3~bE&Qks ǖ[<}37m{DW]ǿGq3pFtoH>?[^M?g. ſL|/GhE9e->.mDVBH@Oj^t o|K} xn%,/n<;o յܚUzT0$a\S$(wMo'G]͇[߳~ [}#Q7:|IMq}i4.&Mȏ|1~m-  7g?ᖿcAW'OYm NJ|1&{4]?Te:r_%w;+']o(?a~>Ogߌuþ|Jmx<x sSz q.%ME1ӿ_ OgFϢ|s/'ن χ7 ;T5 9d.. |]a&i5?&-j/|@G!M"?Dh]֏x(#4?x^Ö>/|]o xKTc(x@:}ǃ5돈3AĹu mw`c ϊ߰ď ϶_'o^|O>7Dv~֪û-N1둤ndEo0ᅩY| K|g/P]Ÿ WOj>xQMіn) ?;A.~0Kq{|_c `os't5x<2Pj`j_Lmwz>~gs{'㷆x{o:xב5k}gFuu/:s5O*]e-7i_ߊ6:O:mYxúv9 hS%ŤpBuW?#^/&? fڷCo|VΙT;?OEt][Kzu#?UQHo>x 6Ԟ*fOկD|8<)ff8=T-AiǙ@:C ~߶_\1|=-Fb5k&aCs/VY!FEeη,,W xy٫+~I2x/ LWWc]Ox+ZkhKGk[i Ndq՞/<% x7ߴ_ 7$uk ~]h |9osdHf[[X~?bw'?-E>kZx{rZ_ k^ ^5žSž$F'lW 6s/o߉K/~*KǾuY; 5 Alki5dq [`x+~a#:ht_(-?m(<|4?j JxU'ijo?$>OGՕmE֧3~4߷_j_['!:O6_ؓ ˆL>o7ĵgo>|J.>.Lg<~ePqZ]%|J,.?eH.J 6q]mimTJ>"n x;ui{nַ/A0g{Ozi( ( ( (? W43^~ǟ j֞~/x~2|>-?oOM:{".\n;ZPH/D_XcHu 0jZ]7n,.u弒݈e$) @7>)?g_ h>'~yχ I_|.5}fW.2u!H_??b+z)ow^"ރÚz τIR%gH >~͟1 gGš <={@-4/^x}ׁÞW:]k|ckQ19WwōO uYFEOdZ5j2̗m*a ?%mCox'%ׁ?/mYյu+/F(N@gh߂_~7z-#\U+ڗo]C닻"$!,Ș-E~T]|wRǿ|]x#xO kzN\,lHdFSRPC j[}c]5h,We}m ;KumP@bJЩ tݘf,q'hiZα}Dյ=}J22C9ar#;Nhs473Kqqq+<4ҹyeW-$K1$rhGH:h%Ƒ^iIlGNzEP{˻[y多i,I4I# 3sĎzYd$,KKK4kh:]oJ/[~#u M_CFGmVdWON,#WhdIcu  bK9O|]%żoxsӕ$֖_<;rBbo)Cap V&PE%7ōCRSxo?j<|/nZ;uO_>-xCg4bQ!EOM~|wpiៃ~;/Z/x%ѻ.nhn-Bk[ˇigI~ZNൟM KiΑ@,<%%Kc|W \}9UTckɲm7_yj/Wo|Yþi,D,eiq_1-㯛u=`( ( ( ( O@P@P@ (P@P@P@_O?mm~fm ͛(Π ( ( ( ( ( ON? ( ( ( ( ?^cv>>+.->+I{|6$Py0A>zěIKcgмa~xWm4/<6>k_/l C%~c9xpT5=oS5kP5^TյmRS5-BKCQk۩ZII$bK@h ( ( ( ( ( ( =} B75'~^ yg*[k=NEAWqZb8Jg>Uk |~&̟ 2_o|c%a | '2/|0-w+SđiNW,)GxGP/e/y #IrVom\Z|]4]}6/U52[jnHҲF?N >$4~Ϻ'}bZO{ئn/:]Ouw~܅y_GWq!˞?]gc㟇3~{?~>s>2i[|PI5?"K#6 8VgrM.h{ߍ_fOA|N<⯏>+澲Lmi^3&V.,.nL2E$Rc}_MeQcQ/NOn1Mۨu ?Ch^$/-RJk;YI獿߳[ |1-OǀW|DGھX Zov:"g8MW4Z'ٳM=t_^?1MZ]ecxH4 k~"+{Mv xGDS/&~߲W 5 4x(=>,O/N_}Sk>}mC֝u _x[A[x#{MpU).? `~W>'ZG<[}¯x[z%姌5㏇3^s=uh?MN?/.%*F~(|Ki{Ꮞ~(?-J./<n|B$:htjZ%5;4-c߆~`$|?+{_fk*~0szLTf\Ai6!r~_04_O?mm~fm͛(Π ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (ff{߱[kO ~GRqc-|u'|Ah,GX.ˆoβ Le[OhۋF1x.¾ k%i_<3ex¿>W熴k)$]GF{VEΜIr@>o׿৿?أψ3_?g>j_ |wxo¹Ş5?iZufJdK˸c '|{FgzK<$ h2?o G[P.@>faK~] a#ľ .5Y,p0ut7)ܗUՔ֭g,?m[`[q?k&;bg?j~5q+|8mmK¿Qz|i9naԀ{o1ϟyv/Zyo>x_>%!R||M#3x+{[l\@ߴ?j#IgD|U~$ω1O6'v/.[hȇ. ^T-q?|?|#+KžC#ZFGږ߇MqiB+BOG (/)Px^bOs^-^h>_1>MVt+K6m٣-$,mi/7Ư]FkO|U bIfN@οaO$t?\GeWxƏV{gMWuIG^iu x٭Swq# o&oT߳go;'p>֟'|q~%hMnl~:kkir۴QM~|e>mook?)^; N84"\bA,v0Ot:NH`ܷ~ ~Ϳ_·O~(Ӽ}lφ xnW |1o5kS{,5ij]G+n|L|t_|{~ۺص/N| C6m&/]Zmψyf#K]JΊ@? _SJg)_>\CqqgOO ^x~TՑnʐ |<#'q7į?m <O~+uj/ LlӮGpĉq!S@g<}|C_jpC߀SZEoB[[ >ZR+ @?@nO'VzwS -'k7[:`aqj? %M$r,H.t[YM|KO|> ||Lw!ߏ4xs6-.%~M`f̪Jz~Қ?mb==/C='(.t-ExCu/Lվbfo=|g:zfo? |)w<6x/?{pmYtK: ؀<3vS@2>)>7kZ9Ok  #xZ?'75E׶nx]A # Y?4>/~ʟCw9ko~4w>%A<% mWzo zTZ "hs$ ? (\|AGodzV? e ςӛ,mz9Q@/_m4C֝]R>u{ aj";B;xGȊYh7v K|h |C7EfIƑiwD*m$O/?Q:?ǟ~$i>,.\i>5F:φm/'..Y>RGo|mƟG[!7oxT4u }5Wm]Y2yh O %U-|=- W\om!{6:vǖ\=J(|M~^ ta/~^Xֱߟ~!=kmF9IVA7ofhuh~| ןïx  a\wJ- |;d bxW|H9σ<5rvi_o5d}A+ɵR X͏uwc/]f—si"'σ<׷ wDӠ ȳ7e4g* M_WΟ=^>_ 꺯Ç~8fgow'LoGkSQO˿/Ư!u-XYW&{+7Km7ZjV;$<2 ( ( cAl/XS4<g& CK'"i8O(aw"gDcV _?|a?~9q/x>OHTıA a| -5~ٷ_9?'>Y~˟]Q??O xq49~ s; 4L%Z3)L@}?ڇ?fX|#{/6Uςkt_å> luM7lc"2|FhςG>h9xگĿ~2-畒Ht{uVСi0̡NHmޟcqq!x3ATt<-a-ű,d\"~ |4i׼uyK^i>|-񿌼7kCk^5 > @P;_O_|z>./mcަ eu¯XAs;DW:_AI]@?|#|@&[~6nO<)S/uGl}F5;6a1;Rqh~(~ ?¯xc xsCY"<{I.ce#-~ N|BWz|b4?c o??| <]~yh9{x>'YxĞ׍-)-'{-O.dVKyCGs0=j)|M~;_x[?lYi+eSiQAx"Qx]KPx\:DCO/ B4yauq9[R{֥)|4zx{`uuI~ 6)kM>^x 5i a7Sz3~кGƿٳYg1@|4ߍjǦ~1h-z zDw k$.е?i;S·e=p0+I'ƩO<^"'Ý>-o[x~dLKtu cx'~?|Ko<7A>xg^% h756ZH϶p?|v_|O{c⟎~|>u^=|S?>F;/ľ#4'Ft&qq,e!uvH'!uL| */IJPO']>+3Z^C_gRxw6xP <|OHI! -/4?V CgO-m.`<~׿~*|;h40^\|O[iKui÷z]嶛$..dWK-»N1K|)F>; h Lr/Sh:Umkyer"$GW?kB{|C5/?7]>-> >ռO{\o坍׉/#3Z][YjP^,sY@:ӏ77?J F@4P@CJ/\kN]_GSDx4ii Ƒ.^j2h}N5į&6Q?l +ƛX|Cҗ]n{_Z;\_| h?cm?j~߲=m&(>l5._iڴz_m,8>-f3X''?'g|P]c/ug=c)x~׶ֿIVqOBG#=֋a7gT` ?|s_Eϋ_h|yyjᧁ>=|kz'Ktk nv ;~?qeW+oG|.ľ~ ԵּLt[in/b) ]oP Xo_QW"?Tkoڃ/Q3|/ַa sÚV߇|/bjU>/m>[WE#0zP-i~ӺG,tZ/>irM/>6:>ao4Ii\"( c_ oۓ4 / m|!|equ_3W|K 𶿬Kxhl2UQhщ?j6֖ꚾ[ico{{=iUv[G A?߂5CE))GB}? >4fng}gLԾ|1Ѿi=źζ2y10dz"LWM_?c-sdĿ~xR>u_揫_!tkźu fQ{k` *`TF*oOCK|~/*m{ ׯ,;iGh9gh?{fSj_0q]m)i+W~|1?F4Ox./&|-i=>SMw2ʑʋ,>]~Ժo_B/ Fূߍi7÷uTvks"6l[ÖGDtkNx>~į ]"O/VƟii/_xw_ѼM zl[_t;gxoRc>'*~'[0~~>|z֬<S _t +4VotVՃ C)f0ǴV2~?/J=ω_Q|}c@qj o5,a%:Eޛ9FZ/{9g!A7ݽ梺x,creo.'ǝc# xwU> @x>!/|a|\$|2_[=ՙh,+ SijyqmIOtOIJ)l>,tp w7_m[-ٺ];6ۀ ܓ[+x/ዝ3FWAK|#KhRc`V9햀>m PK᭿- |Cxc~]&{ĺkoIxX y!??>:in8>(h> `M8E]7B>!KѠ7GsHPOhGOeepem~$xk? |Rtf? ~_ 4|9>i[Zω#iQnL9Y٥-w-P@P@P5|&%\~k={Ú֟qu im夰(,VR.mϟ> dLW?"xC P??/,uH5fNon{[RMioX->?!e LO&@$B߱/uo'Kmw7['/q"Ook0Ki$xZQՏ-)#4#h|p-׿jO{ ou_L 7n?4o5/W+wn1?~+凌RXl1A@?5ֻ~o'Oi፧,xG^ԵMs&񏅼acw|?\ie7݀F$P3W!~>)k gK{wExoᾛ'֟{6dPxGKg74` Z\Hr0X,/?jGo[?3_%\G<]{e>>žK=1>e|,I/; _O]f(OuHE ]txN}-ZtSL)=]jV2KMC P|94~c\<;>{!O|b ˥ە,Mkt!Vϊ:ş({>-X k|'zX[K/C--H5LD_Q_~?KߴOǿ|=}KG{/__ -O?|{:E.7~iwKmi&pZ􆹡~ܿU|oL~|d>'~v^_I1tCwٛwkn+-$j[Fڡ$ǎ"_|? ?d/n+U/쵤x3.,&վ=oh#桪km=h+5F=X~?~(XD-?sͨZ4{),V|qo"H6R2o .l~,x{_~%~3s?F& 7k|@,[֛xSҭ]]bغWw!g>¿cO1躯|-)xC#z쫪zWEi^j-:^xvb81 ;&uSD hw?_ߵ2:~WxOI]-Zn+"wv~|<kok|8?c=+=_WY]/w{_jAB'}#ľ-[_hޝ)m`L?-#[|)@Ӽ1esx5׌WdatoZu˻K9岖D;@>xŏL?'~~ c?W6&>߈' ޣcsi^w\O,R;?A|gl/uOφ WX~*|VIGh/ ŋ<N+]2x49& P|MO*!Ï~_OW^EZ?tO~$ls[[)\"G_-g/? 'qYx3¯x|IwKaxZOYscNZPo$X e;U@4V)7շgqv\a 6^k#Z[xg(_Uxy[?/c՞=50+Y )@4P@w?&>2%W'/᷌AfR]>چqw +$³\[6x][ZK[Wծ|>֑Ox6MԾj]OFS>?j?9_|UNUy9x/Ap]%OI|9WԾ<}Gm[ⶠ Oÿ>"hčRDMK׺gn|c?hK|wIO8wnJЌD; | ʀ>h|*T?>?o<ko%;[ JAki.NXC4hk|HQo޾_x>Nڍ^#Z4]RQo[%Y%1$hIxOƿSM_UbhnZ ޹ˢ.mm|4/ƿޑo_>)|Y'c4|K&ڄZ~Wo($aDfvp7HZۿe _N<7y?ω70vAxJT_ j]˧d{fȊo?ul־*F>2\k|W.~#km "vV r(cTBU@Xki?|@xr[9kKۭYY  /i'.[ҶZt x[UO/<5K7dm;?6lk )*x_oK_ύ^㴹'H4)&76jExѶeT;Gi|D_~ѿ?_Ǒ Lо-E-խ-O3_Ẍ́#5F#i:&$TW~:|kE-s>$`Z .0(i>Qm#ӛ>0xWl#muךeqD9σ?!:6><_6;U_|ioli~-~!ib=+{G~8hPՆ_7>"^hv7%喏ucXLd8GP *~?xx'i[ ^xoB:.}5m6#BīHB@_?Z?P{}hyn|\OqxϚI|h[ʂ2j.rp( x!c);ìwh@`@<ׯҀ#ڀ'onn/.di.'p#M#l@<@PW7^Og%,y1C3yPD\A8h!kyc dx]ehdxT;HB`AM/{7e/w \"rӣfw4R'MK$EEV|#,vFN,wSom5ĶAiI$Vf( +2FM ywQ\gp%ŪO*NsnE#ܩ`H@>'[\}xOߋ_>!j~3|e_c4?[nۍ_:-!mY!u?/fn's1f1A!p>P: !M@fKy2^mlK̆Q)ʰ(~p0ȶXEż~ NXd+P{Haɧ" ,v94V#@Y!9'Y"&hHd9GVPA,K-=6`A@?G<1?7 7z%n/WlH @>#ϽbF&[BF6ƞd@Qh9V|>8Rς_'@P@P@P@P@τGWooRkz|o>i]E }üDfM޹?_P@P@v^s ↴iO|Dv3rh>Ʒj=6H!K,u 屷$S"AaYѵjCjZjW6k67Z^k]ԶZA{jZu L,2#`Evz^v? "k^/ x_Otox]VT#|O&e5y B&Q -.;k--{F FΪb$I+@]Lmm໺mn5op$O63F?m'+J@P@a. xd[y3h$-ni}"/n,G#(fg TP@P@P@P@P@P@P@P@P@<1ŞfxEƑLzmX}pmvkm\Oߵh|;_||>{i5Եofi:xZ}K?6ei$ȱIK%XS?kK]#@=࿊|AuV?cn񅡖 l[M76#)@i:&-]/A{K}^ԭ64 u8BG]6P (=q٪j-'濫)x&n?Ex[UVMy=RY^E )Z' F7fY??J> ~P@P@P@P@okUտ_c^_Ï Siaj爵[E<][>:4[B[-;JAs}3Gf?'>k OKM?_|}iVwl;tMI.tVsFko-n?~ް94hu]/%w+]k nv5؛yxHH|_;@o'߳W_gk_K;4جti3ɦj4 IkWƧᙵV;V ˺09 + Wn7>6=^ A3G_>sƶ-<-eO+Dy^41>9O_G>xAZx /٧#h?l>hcpuKifwvG1I$l@?*_?P߀V?~ |Qx`Hmu&Dr0nj$|k ]M+ž }aeBռ[}k¿n iZ=ι[jCMd3["Hk %Ꮗabx=kþ.OgjZn'iOMGEm}(#{ ѣ|mBl/>?12DbPqRT h]Zk.R'5 Kk)C乏aqf}Vg7#ï3Sc>H񧉡sw@>]#Gү`{Ht$;b%C_q]{σ>O? tOkOW৊?e_tMs?w~.}x/zt ׃"EֲڼדCQmGwy~/|+1F~ʿ~nkb~ muoRfg1(8^-?a}/S? wi㿇0#׌uO|O.E16pYxB->+Y]"xDF_xᦑM#ǩ -|%(^}[L Hs_+ 8:~ >xR4{i}_W{xaW_A?[~|k?g;_f-pLּ5E4CV.u;[K$X̊0bht{~2'/D6]~!Njfz?5*V{}A?//$_W/8#ExTEn; ~>6OuOgo'O|#~Zz\XRu$,uoȖ4/6@++ 9X=@5oxƿVkdgtx_)7ƫhܞ6BApq??j+/)<k?%aѯ|1#RmB+-x4*$EӌVc|DEǗ#Ycׂb$N0؆|(RX( o}W|>"1u~_xy?fOo|=GAˆhoM7Z}|CsC]<+<T!ԯ&!"oOి/ÏzÿsHį ~8|<[D~O~|I߉TlɨHr\ W2 xF;Dt6 ToH{v?b~#~e(ÿ~7Qi//| -BLxړ: uKjeҾpG!?|'~ [>$5\|+Ex |=ix[(F$* Ox[ŏ$T|R k  //)]Wdl./%W2~??cýC'yb¿oMtxTx;L𞟪Ŧ[u+&I!r> ~ v?U M|{{ ֵMÿtƃIO xRM֛L֖ZlpX{kg >~_w<|'V>:~>sş|MY}ƛyeK;IluaĖߵ/m&co|yC2OP*P/> ].> F"k>;H A0V~ O('g?o?'I~\Mǚ?X!^tV:OrbZ?` |9~~%Wᯂ<#r]Q[R+f46/EԿh(')_ ws=[xf>++Ǿ*Ǐ~;g,>$6Ѭⵊal\"{`'?~~ |?g/&[|.=?_\i_|azởhix.!S17 |?[мI^.> x:Lğ  <;_XK 3]ΛeXi⿆n4D`>f&u;R-.S-o V- (D]Y(g5 !imTJ-| [ |7 Oo7 r2?"?h ( ( (?o_]%sGǿWCj?ފu߂^(KEgQ|M}+y<;j4"E[U$6̿[ 7} n0|b] 9mƻ/E :6K x1xwOMN{>hE$w$*~_\__u(wj |`cĖ ~h t? CgtJo/MhX^;Ҁ:o]_;7EŞ 7ÿ yxL _x_Ӿ*j6$>5#,m-W,~̿?ek/ ~?Rx*o¿ ɨw 40דyq$K) eUWi$x7?{|;S/K1.,F^8ӧ͐w3QC@ag / 6 yo+O_7`OwM&@Ծǯx!Oh~%Ҽ!uƩn#Gx50~^ M??FSl/?*5gRBd8j"D_&/kOq-:ڶvDo|Mf֧xSMRP4:hQnco{ yE4u˞6u/woڣ?i"^de,U~!Pmg r~_S_?Kg1kzU¿|V_<;chQ ^-uwnٮbuC_/Q׾6M'ßo/==!|Hg:힧 xVRX"Q++6C$|dh?੿wU|Vҿcق?}~"_Oo@u} ag񆹬/gE+ә?(G_N|-Ѽc|NĚ Lm"?-Muk:4>vk-7x9ho}huv|z_⮕~~+?hxbƖ?eaq.>6%vww3,om؞8{3>|lzis?7l~ 躍#_2uج5MC:L[I="yrwl|,_><:OcᖯvZ?mzok_<1+_U>/> M"RY@?, sex]lX;]ST!xtp+ G4P@P@P@P@P@P@P@P@}*@k_طOK xkFPͦh4dIR9];;[_>(io^g?,[@{_\;o q"@Yx C0׃.x?xw㕗ohm< AԬ$ݏ/OÞ/)6 ;fG%Fp*ট: m_ث¾ Ot>H>xc^lPIGgt K3>~O;<+ z>2|LCUhk>/Ey?x/[oZy_|+GJ>eb|Ǽis~ieٍ/9ԭ zjt6+ jV?m-_eH<*~IqxB?_UxWN|)g& wjQ^wO$\گ>YQ?d_( 0h>i>5<%O p<9z>EXP]K i86BBрMo-~ ٭'k?h=~"xZuY<4ׇn5XsD)#hJW?؋^e(t9=΃C֥&gxGŏu;LoDww,IE>) Tz|cGwo A? =P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@jg/R?3p_ ^? ( ( ( ( ( (hm.L 0q0'o4V K1¨h4fucxtq_ iN-7g4N r;*"TEUFK3ZuB|t]>xI狴_xbj6mkf5 #X-t֘᥆)~,Q/)h.>>6׮|=</k :?u w/|!J)t9&bT9yk4/KVi \Zݴ6XCjRgi fĐ^\Eq5٢w,0K,V!db QI< o4:E 1#I,H8@]݀I8HGdx9" I^9dt`A> z/}OOxSn W:54'Ş*{v_VCS2#; L3B6~|mo>|o/sN/km-|7 i+Р4σZƝiǥ 9r#Y?=㗌~$|0c~";YwgoKoȗ/"cQ Y@?! ( (kO ([ƞ<_[R.ֿl 4Zd>=s7>ZW_Gpxc|35:fc? >|?i=_7Ư \R V+Vdk_ ~\F=V(nm^典xO'{/wL)>~$E+-þ2u扩i մF&i ~~gZCNu-gO-o.-kK:}k:OM2GRݤvKi$?^G?G1xσ>$|dI7_G<sx76=]ּA|@~+K`T6_џmw>9MFy,kswVkjpu5sw2E+m ~?Dx Q?ҿh6™>xzxwM[MBZix^|um-Y<6i[)6?W?jZ~$Akrt/mu/~$4 %.imܨxC q 2|J?h, =_r- o ;.?aۏ-SHg-Ҁ=×Wga|8!Ҿ&oiٷ|a?U4NJ~x'7|)gg-:gfDa4k@7 ~> jRgJ7?Zw7 w ONuω\]E|m졊eY.mM_?| ڗZuoAGWU.4ˍ0y576֒@O# ~߰w_/S]7z|Ko<9ĺ/CX-ךtu_4W^|2FM/g?#O׼d-cǺį5.vŞ^#]KOA؆%@< gx~>,?c^$#JφQc-skr)iurmb)Vl|nyO\[%Qx7sAh>y WihڱOEsFOo(_>*k[y/zo C/֢OI`7/گ45,v?? m;Ծ࿈k_cŶ5Ҽ[E6>F?_Gڝ5</5\|@o-uEZ,ۧKHݳ#,@?d6 t/5ehhؿvh_MOo /W_ĚRƋi7oii-ܑ8dD_mýS⦑ǥw~$𗎾+x;i񖗤YNڦ{X=Ȃ 偞=;mO~67Os7x?>xƞ4🉵*gѬEzևjq$`~0 f/s]L$I/VV>6u~ ?b.#ޙ3ٮx57ؾ~v|\{%ϊ_FiSkCGx?hHI`$s r?^ Q_?NLx'K߳此cM5/|>WLҵOkM-3iwnII4@P|SiH|k> | s./ xEsWnD&_֖oMq#$ad@'>Bo[4Z?.|폍o?jZtGMM[Ne+x\E4a>w)_?ڇ> A&ѭCN/ K1:, }|Q:g|sOnx:G4m3š^^jVӚK6Zbˈm1jwhjVc7ךs#߇Zz΅mX|\/un)"$kbPV6OOb|ED*Vo #DRǑu?8 ]Mi?]=Zд ^HWKkMOQ|%s}d=m@>[PKOo/TǏf__oF<6?D +{ i'XR6-6:qƣ>C?cJĚ'S_ky^#~Vz<]j:2;A{=4L9~߳O+^ w㯇 ( BxW"4Hb;h4xx1s>(|WAڃso|],w7񵖏3xoϩ^-5f*)iGp (ï|JݟxÚ_3MOxEԭ DV1#E7j.m\#>#m`g}[Nӿ~-|2 <]l7s|GT`e}VMhFH1VOk 2ikUX<𿀼U{KM7x}bg[%PmB| ~?/|% ߵ}gIo<-x?~4xo &xv1_i(&r# :S <)`x[|?sg,wO#m^גڏ7xTѬ! ĶmnYfV:OVdڮoxK/? |9>0q$hxPG\^nL} ]O-^ŶQh_|Z|Kqo]Nu{_LS3{R+[K.dhLn |u~VI_ߵgd߶g^K!5]sZγ}/ZnPel8inP,C,w>v>l|=⇉] Ml/` 4O|!r|:'7a}3Ǟ$~!x=|#3T[V'ĝ1o^kV>4Z0cuwqa>@>G޿/ZbT0OdžSo<#}hzuukxOϩamlD?oC|?~)m7|mO1sEčRPN.$y bm׾;3u U#wsǶb_BO4}SLA-dOVcy_XO|q?~!ǚ_ǯoо;xRoRUh>! k%6˝[H% Xe61͕` /}|# ~3| xgV :ψ;>*,m+hi7HK3G(hU?j?&7bo/?_*魫iW4{/׺Jɵ(7xo7E]Nܼoq0Ŀ_m O'!7y|H6j -ofɯgWwxR2VJtK;.{k˙Vw JൿĻ*N| ?m |? |=w~ -}M++(Μ5ˆ#b&c_?i?%[;(W-:__\'uV?A'l5nK6q\`g`oRZk_*K dx3ƶu珯! |:1?~)Vk:o_xG-V8mZXXp <W tEah$|F|{SD5!V_|#QY|ӵK{c? xt?!SM"t_~ xI׆S|W{VZi\}K}2`g>c ?ſ A'> xh9'u_M,mf?kN2̳[V3_?M/_M~ix aq?xxLOD-惧EěO5k=.&]ݶ_j??;x~N?>)j7Ӽ%cR<:o kEtNK;PBN걇 7}?jM6?%#^9_K0tmuw/GuGچmoq-cp$pd$ـTO +Vs@h=̿ 9U'@| ;KK NOavXb{ǿ) |JuI}x^/z)JjpxčY([g+߉?O׊ GD_CejSjcEeF4s(g߰<^l<_ /MJ+M;^xoO*W|'O |[D5j>&: xkŞ+C+p $~?п |ls??g@ɯ?RcTj ( ( ( ( ( (>ir~Կg_߲wßO&~>ڏ?xoXk~ԼeF!,d0<ew>~Ͽo~2}|Oi)x< 㟆x'[>2ɭkjW^nnaO@T;oi5g־4=Io~ɢFG4;Qqoko}<_hkiH?n~ 3/o__/֚ZӼixAArw l(~ Kn//?>kIk2xgS˟돫x\]R[?KX4;mO:۾ [-UgOۇ4?oRkoE; 56$[?xÚ߈-}ko. eKC_PO->;NsGÍN=v_n>)|xO7:=jPy^V33( ۋeMo#~#a^;Vi>>_'H,.V Ah[o)φ:'/[>G>xZgh:nx3^,!{ᴅ8V4P?OAxs:__> ׎uWӼQ7-KGMv{ _An-+kWѭ6 E?p_,>?!k_wokGº\m4|%c?&x_w ZOR;X<%3~?x vxr]g?i|Oi:}.MłBڵZRvBxWk~2kԵMOGd oq/.#:ĤJifqELZB_h~_7_o*j k~?5 >=ĺ}z+X}k"x> x \<tZI3FӴ}8ZΣ4EhTqP@P@P@P@P@P@P@t|.oxh߄SÚ˩hVwp7m 1 FW/mVS5K˝GRԵ u Bgynn.%i%FgسI4N ( ( ( (?п |ls??g@ɯ?RcTj ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (ޟ:Vewjzݽ^_Iqwwuq*q<@$_;|Z |7,5jV+{mo~&?W׌<-e/d0iP#G 7o/_ _ _I-/*oNj4k:%km6CDbue$~8?moC_ jZvTƗX[jxg\4xBb=2PK?wd+{֮;xzG߇4[aoi7ݤ5]d-zGğ| @W?x'-{M3I/|[it gX~ޟË_>j1ww??-uM;xŞc9db)FENi?4|%g%OEcs//>׵'-ey]j?᷺#c`>&< ?g=s_¯>$_MU<]YzmKw>&Ѽ'PմջmSH>]? ~G4ڃfuJrQi<o.~([j4u +4&HVq7`.m,1_?중 ղxw-唱8KƻYI Z<:͇Xg[IA@TP@P@P@P@,0Mq,p[,"Ydsc;&{i[yb4oѸF]z{:k"j6"/mgiNg2R,pM+qE4#ƀ$YY-! b4oF]zUY* $@[\ZLpMkqH."xfPHJ##h,KKֵ[9%0%نAlX“PIPs@ (<m/_>/±,(K-oqv_Zh5҆x'nyu~ '>#ypsQ\Bn/';;Bhm RV4b4? ׅI]=W&^Su8-o. 3( ( ( ( ( ( ( ( ( (=^?i/d~0|:w)_ O/iZ嶩~di7Ks=$e4Ng_?)_ww/'|n 9~?l<Ꮗj[}?̲Ӟw6S|Ѿ|?~޾.'ƿ> V cQ~9|7ԵxßQ/.5:j"Hp.I]. 6~">G~|yo IkK|M|d4O^-cMngqt0I>d#/ Yǟ'YeTQ◌~|¿l=TeŞ:<4[_s 3 ?~7#ԼoSoeSk ÿ KX75Eǀ0j FH`%Oۗljߵ?>ok/MP7gI<9sKO]37i|B `[b1^I+4fj-x??u~| B~ xYմ}CWP%BXNyWc.Gψw4/٣ƺoǛxK .0|.5}s/R.4 +`o$NY_~^`[/_Y+G_|zJG|YgC,>$K}H/iq3B+k@=~ֿ.mYok? BZ/ڏ^*ǀuÿtM37›^|c׭>_j}uƺt[;2K0~w쿯x/?hρg9ߊOن@6 MKv|L_m'¿Y/O? ')B?jh6 ( ( ( (?7ľ=<0|,п৳^$Q|H~ RZ&;3J}ШPԕT \x3N~-EHO|_.cxjvleO-\L1[@__o`o6=m# x9Ekf_^8 [ {k1Y,@?tP? w c/> gxV{ϲY_ xF+ Ogwehy1DًBy sJ|JL>0֮|9/ìC)v|;9[ QЉ .X401|#υ=u9?g~i|S-;[|/mm!==v7SMt覎9w*,\ u?o य़O(sh| :~ڿ{xVFK^#5ÓAr12m=C _]OR+~i< x_/ ?@]׉<)8xxn]fEK=i\Z\Fݭ%eYUc/'l{s1!kލV~0qsiOl|zR뉢s0QO }:<;n5,>!x'1ݚZ^kPXXR@Y?Ls^dž? /];iVv#e%WVY][B~'c -MG~ ?w"x4uռGF{ڲwX ȷ*P&e?b|&1|;!"c@r|~$@h?0O,8Kt?c_?~'~?4|9e}jV0xfhMC-Z[IH@>3?_?|M?Ɵ KZYx>1A_yWB ~k6)E )~ޟࣖiz9/ \^wJGjëm>Qj卆cjZj9 E-X+ 8:~ >xR4{i}_W{xaWt~ȟMnuf>5w:_f=lZ5񎛭xoĉirH⵻cO2(?I8~̞?࢟NG4kχ?",[@{ݙ7$ƍL{,s,|GѾ3LsIč2+X W< z\l];MA,szg~@P@P@P@P@P@P@P@P@P@ v9?9 ( F/6Q{_,~ڟY?4h@P@P@P@P@Ms G93J_a O/: guoZs_ ˦~п -rWRyi%DyeRQ@>hcO[0|!7f.W_}{o>.kzβn% -tc@q;h|A_؞^{|Mwz" ƿ4񿈠AkbFv @;?eov> gz_Z^.Kͬx6(Ԗ+tEfO7`/+'?l~ǟ|'P;+_| Iռ+OkOMm`kku[ŒI|࡟_do|{/ko^ 6=t_d]+J=>{{mI1?¿'gAc6ᯎ<g=/úo쏰\-{? ~X4;iuuIo&ǐ?৆~%xS _KI |Ax⇊n'5H{3*U@@]J~~Ŀ7W⟄~*ğW u?h4M |?r]x_x/Y\U=Qzw%* ӟĿm6🄠m?M>{Ώh[szu {'_ ~"V پ.[7F>|1`SU׬u떚_ j:[$mca&\'m/g9;%ڏ?s+_HΫiz}y# v9k |ি~;xc~<@펥h~Dϊ){^I[fKK =X|4S?<35~? "0}V>% eω{-Gvgo<Z}K.^? f)<O_?k_?.Ҿhep^:uFmILաkQ#|b''Ÿt/~ l<T[? kڝo~ 7~ |ajj :A *~6@P@P@TvWeGeCHʤjα9G @hA=ԩom v 'jGgs ٻ/iώ_>x&J#}/PuKk =GQIrq)˓n+"K|C]=k~7-v-Yjj7z{ompyO$,0CP_wj/~ѿf7KN> {_Z杭sIO jLZ-ݼX&Hlf錀^}sga/I?㆙Ҽqcº'47EZ[6֗MjѼ$23#GF*VSV @=Q4MW!W;HavP~px[\5]5JȉͺLYbik+(RrE\ygi^&'ɷdVp 3ɠ 6I<0HYdsR4 $ E,o;G,R+$ȌUGFFAP4V)$X#hќC͔"8Uw R(#q<ʈ݈UUU@Oo=ou@ xfEWRTh٫1YxC/]Y?g?X=bByjڠ6jVe֣wH亷y[wZ+Nxg,:~վ1ïi+)o ψ{]?Qem(罈jwAQ?cGp*UaV*cl-z"\viϋ:Ź> ~vɤ2O%ڌM+^Gm3N"E} |S/oكNH5|D;.>AOt}B)b2+R"I?ѫ \*i/|aD*Vl^x HXoPh^Omi$ݯZ<-ͅc{aKkym$n:~j@P@P@P@P@P@f ( ( ( ( ( ( (ؿ"_/u~|Տu__ ~,_Śo}-ti:A⳪Y\Kh/o?^O?i_ǀ4i_h?3M|)=Yiv }NKsHg 6^3i`om⯇Y;ş<ן>~zBUy~,|DF{i xW3|<Ծ2࿀~׵ Xjc="sJyE6>(TdWq$Qŀ>Akۿ+Gt xRLfS@<Z>ot3.2A$31ɠ/Ooo~_!PMmfX+ A7i';_R/ ~>g?.|{yk=/_ l)x:$eo,|/[evoc*\77 ~ 9mz|ko?/'| l-( @p"5腇]Q"xWy|MOT3r~ϗXxGLqjZwy|OK&{EsyV[-coH񶡣kK۪_uR/-K\lڥͩ]t8+Vw㋘t{k;;B)r '$r෺ǯ?]NLݧğxX|5|`lTY[b}c*ѦO$WVvZmM żN|`>~_POIc~1]|w:Co#Fc[_EO{ j1h։x;ݼ+@~_׏+xoTYnPxz=Zo GY}ơyw zV1㮭aÿ>8xKx7?d< 7 kχ|?{K{ɭ#ai,V@Z  )݇`ٻ7}=ŷ 7|8|V,%[I[^:%K@3ÿOqas/[z+{4W?&|RԼɨVγv2m Z~Wfoٿ|/G )M0X[zG|(ҵ_vǥxZԦx"Ե+O5*@>M׃>5xO ~<|韱/gsgN/G/Y.yim v}DSi0~~+|/`>xk^ jx7^+[kixK Fx wRK۫u.V&xx?᷇ट߂^|aOo[Z֮.;dosQ`ʍ#T=k㿃/'+Em?xs&<%9| |MszߌZi{[}cp%߇^M>K)$V^ZX/ x&K%-Ap)72zoi#dnԆU K Igx+Dմ]|9~VqsXs̺[$R4-l.pqZ_8~ S1|3ѼM?g., )&~-YPP@P@P@P@P@P|r~( 񗀾h? u_c_ҵ.U{O׌|K~ x&~1||#[qccuh"4V ;;{>mleU ~H?ki9~᮫|3/RV _[Zҵ +KxMq"8/ ?b |?ˮx:xJÚ|KUMn}/Q#S1+)0"I_Cr_Jhz4iWxRcd/<a/"'3:u(7o:K9u]3ׇ|I}i_c<9om,BQ(2.d #<>PEZ[>^xwVN1~1V!i B8Ηl,~<3x+gCq Rr+MbD4)xYxN -yoh'6>d~ܿ7cos|W 3Y~CqN|n+xS&/g_JKo Wf_"k(~&wzgGчM7Ov<^LV`ULGixwxtG]Ю<7F$>|/kbkE2vWWbh: ( ( ߉ EM:g':t$Hf:numORKi^($;@>]Dto;/ ?3QOi<+IkFZKŔo4Wc}Xm- ~>/ٻ[g7ZA's/<7K_ |1JkQ$@a~]k}S ᯋuSwĻ|9]nx+Kq&)O:W--rDYRſ3_,|c_YOxM~'|B_Wvw_g][RwE>{EǼ[| ş|⿄xƟ <9:/\vv:n>;TеYu];L3@(ޑ7?-߇i Iw5׃|o~OnйDе:P~$q(+W?hO |% ^-Sj:v>33\ӴZFygsKuqky<2;G4\~un>?i|rs'ƕo^7.ujW[Vhjt)] WAgx֟ǻ_|(σ(5E5hDޏKcIom% ⺶ڮkkZΡ{kƭysꚶIwjZy,wڅ,J$1f%4~?jW?ᦟk\|!iM=k׺\Gh~dm@Cq@ o?K f#_&͡607?lߴOsUw |ijŎK{MC&%!Md1|wyw]\_\^^Mw{yw47wwW47W4\O3wbYى$/Wk|1O?@kMD ?>3vȱhRb^HCE+7 P``7N?j#Uf8{#YjEսσ[x; VKM:xSEƏ:GW'S}3=K4Kkɨ|0 _|Z{cD$4_WIo+Du3#h#O x7k E?>O@_[u |S] N׭W}ifgs^0jOV%>-kch扩MմJg9!'du*Hh%E6e ?UI7g3kRB> ( ( ( ( (?D ~ |k~ h;m3PS[z6/x\!]c>|k{iZyف@?cſ) ? o&Ͽ /| OP|<'^6mBu@_%zTpٙpɿٯI3'wj7Ļny>8ž t x;kYt#[])e[E#ʪψ?igw׿bO(x* w9Aoec6k֗WֺTfx-n<-5ⷾ7Mǟ׎4jwd:ׄ~#> 0 oݿ?K)dV47ߏF?gŹd?f,>!?ïx;JS>W5֏}|FK'?a(U^+~_k?Vq? |g%PX3ׇ L=OYE⟋_fmgh?1oq ?^1m ҵkA zt$pndžX~qCOxG7 vMV|[+$5|QiwkLΩ'1@jt7Bxz_>#Ȗ>[f*߶l<; bJ2|hpU^|^l?ĹVI} ^PRa[xB}kI4՛S_uO^~_LW~"io?|=/">Dlk[bm9dv?:(炼a]xOmዯm ISԴ"ᲆoS,mD1aP1@{oEx⿃?4{Ju2xzRk1hh,P$zY hD;vz}Յŕ֗wpouiwm#Cqmso2\A2t`X@"+@P@w7~|VWwmcX:&V$So.i7r$;b-_})3῱6iڵZsh, xHf#@c@?Z|}{^'+_xcJ z5]3N-#EDo.G?*s?gNjᇋ-xLߊ5-mbÖ:^ZD'-uv)gkN$xPN '{<mgC&Ě]<3{&KG1ڌJY򿉿 > |߈~So/]ZjpV}'hv eg'OC[a3GKqUҥ"U&@bLW:x3U e 5@{g~C&kĽVC}GO6񆭥kV|^?C$ A*6xG>:xGᯊ|C}b.<7-oVA[H2:OĞ=_< >.t_ WlbmG\'+]C"%|OT#shg¯^Ï>!g$sD 4z4>{GOm:i[12|@;Z\'<7]I"[dkF$o,刑u?*uյx"Oڇ% Ec{HuWBJ" ( ( ( ( ( Y嵹+{y^Đ)C+) 2E}-[a_QCߓO#~j (9D |K/DO KI_Wun5j}m(Β@d?KV?|ph>1^3zm֏u$?{"kG+v7[Lݳ)/xl?I_P|6j? W~џ>Zַo&N/|PѮ4˭/<F?t9t޷6~-e@4Ŀ(ſ9[{;;|EnZiiĺ\[XZ +ާixwյ :a2Xj.Okiz+<,n+3@~*|O)"KψnNk!om-]ilZs$j(xo{2?i|>ӛGԼu;EVI=y8Akr`^|&/O!+_>࿇~'x3zKzΫ>xM,P/f n&y.Hq~ھ Լ1G ծuڿgS%^ڟ/u {V{a-ͫ4W@cՀ:?񜿶$ƣmyi#ᗈc4|=oI.|RτG㛛R:ރj~&SGvyy .H.~ů5cKmV>x?}SE{k5Kz{{3y]2ďrWڏO>j*S{O'/ZI&O٦qLLذ;niB[ώz9o쟌7(Ś/>'e|/a,ְ֡Eafg'#_]+?7Ǎ3i߆>!w3Fu|@^o__?A]EقXL/|cſL_~!Bt?x7CO3U+qetL%v=_M[֩Bao|##\Z~"ǤE{y-=nJ|-51Ťi@?kf%OgĖ߳/⟋5ߵ7n o~|Q:'obt;~k <73.e߶o~<5?[k%MGAxox\/-oq+ `M ϟwZod_ßRzO Z^x׆5OV|$T62y e k?/c4g_ߴi'mԼ3|D4/٢xwMKVËmay$ ds>CA |4_?f߶lg1|#$Zv[W5 |Oct6Ly ;OK/&!'|G:G¯g]c_mT<x{W~0osz'D+&KIoSŲo:W1o -_٭(z'cw/>;࿍u =Ф>^.wySNW;9oa*/&/+g/كm㏉|/?ZwƏ |SmyA]FUdžo[kwˢ겥gIlOi;|h^/¯O~C,~lxg{-Z7}4>!xǖ2FKWm&i[}/4a+Y|?WGkb| |}#–.}sײ\i.7ګ }E96cS |_+VK>n1xB]׾|Lu=sH-czme&@?kᧂ3~/KB|"'4H OI}[*։r-冯=y" xnGVs _W?WƯ'Gť|m~#xZ4osDwcOx^a嗇_-ơyRh\ "~asw#@e*Ļ?U.v~\kz~"6u KI[&kw&٭> x?G5/x_V߆4C[eTG>wSu k<3mRӴk]BMcus}{ɿ{1Ǿb=E[ƿuBԯ>xx?L,:!_#~ϣCX-4p[ Pڷ F_v_5ؼpޒ+,@fPCo |`%_|:]x+KOך'u_JW{>ٞ1xf&~޿cهg+е}[ƿ)Ӽt9 ޛ@$OZ%~=$ht$|Zgeߎ[-nCy[Kg-Z5lM?nPE⟍7.վx6K]-$Ѵ{+y.fo ?P/i߇7|LMxᗆ+ŶOmODkE!|;E^R-$6?$Ai/?.`m*Rt_O osouᯆPuށBQ&j;h#{]'?g ,MGwo>x'߆_%k:GNo?;Y-ւ)vV7}~ >5~W_xK$7Iy?-^^"U}uNf4Ri=dGdo\4[g-?>_]u*_5Yռ'xOzzI8?Om ϟ| +ُ_/9oA/~<]igGƻ  He(g&#X;߳gĝԴ?g¿" }k5ŵVW>M?OOۇW|w|,Σ;<ψ~:Kk]|u e4[GL -sv%{|ef&/|Jaksj7!x;0?ox28n,DhcM&,k2iLu__g~o<|D֡wSO׻DeI '"?*~_.~.3K῍I/_υ|k[wKFMk۳5;9gLvߊ{O׵-fVxC'K Hq/ NW{4|hYuxK;m3Q9sis, keO-g>OqU7P?>'A|YOx{\υυk{NMjIv nR-w_~6 ~:~ϟ t Zes >%O >K=V1[,&kڇ ℺S⿊Y$lӴ;+.]+Dm>A K&g>kx?YG?[ĿRׅt]{NFԮiN ot/y39w 3M~Ϳ  ڇWQ|?~$ோz>x·֞%Ŗw\j%2 Idȏ #`\߷Fec]k 7GN_hhZ_Ѽ7뤀gK+\w?X/rؖךg%XSE>'}{_<-Y|_UsN|.."c浽'q~_T ~ ?gٷ/$7kq?~$|G?|o%%*v5mCҴ mK~-ƞ-Zso.~KCZ/tyu;:ҵ 7r]]Ih%lHBLmh_g~.n>|xד.Nf]ss/T vk~?i /Ğ:a.$LwI|+u7c5k+Axjz$*n]~˸Pοׇ~ֿ/E}?{KQi M7hztRA4)Z(PXUIno?g2TxoK=+T>|Io&ӭnOo5-{Hgx}XMO 1zlXk?O~#⶙4k |:4T}$[>  zs~~>x}T~wߡx[ρcOGZ|4Լߍ!$xWt%U/n~L2[3|^/O~)+ZH>7I?ψ^AhlO>?ા;_N_|+a?HaGB-MGJ|6 е^C=沺u˿&8DMss,5x?k??6 ᎋxM~eRU3LS֛ ֈ /#ΫJ?_ři/_>,Mx'ZÍ&Zό/|i=Vz BX4:h5-}T|'|5'߇z|#e_ Ѿx{UPéxxhڢYY]u!m:[-~?W'Wï_nM='x7]awsx&Nֺ742s*G"v_'_>SWP# _| 3◃4M&OwQźxr8l2mhܥ|ۧaψ<_5^h"EaT:>,G;=ͣ9&ry`?c7ƿo ;t? )cRG <sAh,Ԟ5^P񆃧Y_O.; W$l~џZ/C%IS5~ |=wA|<j^Ŀ~|Gk|EW^{qYuq]\E,$@u-Q|g~:^x+:xc⍕Zn(6:co?M<{94|=&%5 jWQg՜3A -j =~?QN~?W/|P~,i:<]x>&? AG:2&yeQ4IR2`1̟~xMc~ 3w__/9IxsSJGg-s\0M$p@xޟ3/bׇkܾ7>+u~|Mkkh֊>&u 0*5@jL7Q #{֜@oRx~q@@P@P@lw_տj=K)|- ZSǺ;N t Er0E:@ѱ(?" OÏS~ҟ'߆|߈~`K~".iw71ADc>~ʿ?_υeo_7/ ~6 DnO=Gϱ:[:D2^TC+I?e_ [*gk|G~i'wo3ĺv>E./VTkNPR ]~S<3|Vm'?%sľ1ӼW}q'tE:|6|ÝC_fct/\xgVh$uh3٭>VK% 'V~_Kѿb ?\υ +}"?- nk:g{Pr|B~~ GEtڿ!o Eği<߉<}菤èI-+-K_Zx@#V>| ӿG|k8w-xIl>,xN*mᴎ+HKO(7i ?,c(<].NK_ > kG1i>)imڶ>g{F< _g/'o7 +m~sb%׍gu2ǥ,i,wҼ݀??a~ ~,xg}q!9sct:/V/u?xn4I]\xh߶/~$x< ԼeE亦宮e(> |;׀eeΣVW}qyZŞý@΃:K;!ڑfx,_?l^dԿl#xxg/Ɨ~ NJ|ewkZ_<2z\ ͕q4pI&@?mW s~:5>$|N"(~i I{xkQDMgMEGPW%'4~ƿc~ڗƭG¿,k蚶xn/x+{l"2\Blh?d&߄ຟ' ߆6 i 麟~>ƕ6&hq)֭xh# -Y/†~Oq> xkR~8~_&}z_:bЌ5Is4Wvqx?[hgmZAֱx\xCh$Ejv6C_ $ٽȂ3~՞kM_si-f<172\xͭY;é@ȳ|y"3i|o4"{{oo.4;6<GZwu~goYVٗm|\|\{| ~|DkeN|f7F?h w5|sI~cyqsapOPe2h ( ( ( ( ( ( ( ( ( ( (?C E~Ȱ-o# ;[__ ՝r B sYO՝M]\Hn->5xh'E%^)pGtP@P@P@пu?T!~ xƹ'IÚoe7%:jo Lie#WL߲ïz~7>$<-~|qMxþ ńqhZuͪZo`uss%8iEoߏ ?hۃ'G@ ~5X6--OG~z1u{OlMM!y"PPG?ࠟgěOUS#@ŭEm}W&3PqlK6jB`>h_%'kO<wڅO@a%[?=n9?Zk8V#|EqixKᶓ6?~xw4X /T쥳X3z78l?fOSP__~(l4to |A 2O w>148xEڄ/wgvo E~߰O۳ğg fG|Y?ٿ %xo#V=S KGԭ,<>-:2{WiEoߏ ?hۃ'G@ ~5X6--OG~z1u{OlMM!y"P4Nxg/C_[C~ mk?]Kt? ~#j?-Z=PQkzuƠA ,? |c6xfp|[:Vwᧅ$|GK");$ t~~6 ~?_~&>J|:?ς Yǥi0x5)a9>~Х@Y? v~=࿉ xo^4]wxw·)7#~T5;mk3jwmmYY>~IڗHMHo/<Mq_ZQ׾{'U%Et>d(6DࣟK?w%oϊ_ uOkeZxkY|O}'T^Ak 8[MbMCwh".Gii?िnzF&/ J#bAoa=:~[ &{K7sy"$ }?bP5?:?4_x|-d,t<n4G4[7}c~?p쭠G*0Ӟ/m&O1m-ko *|g;)l=ox$-kDh~mgڧAM엠~Z ~&x/#߅~ 6ZsOF,2[\/{5x 7?O?fb?ko |Hm7ρL l? i櫩%Ү^٥t ]l|/q|N}]$ΟsN햧╰h[xbn>dN D1~koxf?Xo~"jZ6M4͠j.//Y_AfEc$ƾ7g`o?`ߏtOk¯CkO 6kƣR;;OYp} '0?|U#:|'Ɵ? 68/>+^Mv7_COMoT|rx' M|p|CxńGlo|+'<~o6c$Zƺ| V\Ÿ<'i1oZ/-Kk&׀?;/}cCu\v2kr\*Yl7 j?ڏ¯~Һp.7>%xv6uK_k~HTԯ.oQH [ u˿'O'_go>|4|TOqxwW~UW>4χa~`nbAp$MmP@P@P@?46.O~G>$)|q}g7? :?}j{E2_X &=R{Ko|#j/dž~;;> Ou|{YM64 YkHg{9LQI 4^i?ُoOo3NS𕇑~so|M|U7מ!Z^BUI@>?09a?|Ï~Sᯀ?t|Po#Zƭeo ္Mn5ŝJY?Dώ_\78~~8ѯk~'%xRӴKǺ4V #±_ޮ\j6VR,&~~xMk;?ٛEWx"EXOzWjJoHtמg\SU<^%_7go~񗎵xI|quWH~zA>j3g)UWǿ~,xz Fi]Gž-ЧYlK[I'Y.,X9Uo-s?go6Go 3U^%*fi+ssw.ͨZƲ ka=џm^z< 㿉__Zߊ?XxGķ)| w+?].OcN;⮟c/q GJO{gaimaw6o&Cv_vV1\~|z_|Oo:"gS-v6^(5_kM[{=/K |!>=|NBx|45}4} -ZFׯ/T\v(%$I=G]B^|="xƟ炵_x?⯋VZ'/-<'k.k^v6 %wZ_'s2~ʟ ~V~(x~-j?7#~.~oK iިbniZcCD]\>Uɀ5&+qNU7wT<7іS S^ H]d <K߲toߌ6om"\f/W>,o^ZW4l|Us4V ՜}$iGy\x|-cA&xv1z.x_OGr<;gD<a{"6;)/€qfO~ /:Ŀ~o|##h>%ּ/Z4 ?dՠn4*+wn= ~lǏ~*3鿴mjk u_7E3Z,-iֺI'Xh6M%ٟ?_;|U/h9o]5 *'k閚kgxN͵r+czh%x3|]0Te#h:g¯xBKxE?i~\]u ݼ6GpW+%GG71xƿO7w>"Y>#<{^PDWW+) | O Wα B!IsAz %3|b-x#|z}o~ */hz΋vI V+m#P&aX؀}1 +Ė_g??Kn gïfջ#? l$zYI?̓|7~?M_L1O?d_Gc߉׆]o^-ᏇZ_/dޕ╚TJom$b[x9 (~g CY(w  w=o2_|Lk_bj>->6MB^|;>mwd&sc%ǘ~QLi؂ ~_uӾxOx>׼7$e-Ǐ/M孼 w28,Ytه~2c <#e54 k,ӧ_|QzO7?N #~N/9_P~ھ %E;hZ^_t 2nm-"^ )s2((i=~'?g]ggV?_/{ x[2uxggnv- CB[?Q$+ƿ>;Q*IK߱tS~/~Ӽc:;YkȚ=?d'?:|IUs3pMkgx G߉xzJef/x3m-JnlgPL?h<ֿi Y_)&|o XZŶ1\^YH{J{>x[cݣHZa~3k_? 0 ( _K|kOſ-f֯,|]_&+ -/nO"[G%_?2mqSԴ=cI y|;O?_>".Mxž [}PdX@:Ic}sNZ fobhzqcC][A\2wF^(c ?>x^‘E}+$+;N{=fI+'Kr'xh'EʼSDᔎ4uP@P@P++FO.&[G#<һY=m^A{c*~7wQ$v~'\[\C O)u9 (U3>YXު )F (& 'wX"Vi(,@4]m^A{c*~7wQ$v~'\[\C O)u9 (U3>YXު )F (/|YxOc+ƺ0#? ,¢GѴ+;Bh @rh?ow-̞ ;o|RKjhGl4 $7+020&ટ t[_*-+/|:+ b<#O^3f?d]A<5?뺧_o¾&9M*Ct{jFş9G^1( aa}_Yeޣj7v~ao5oigginOuwu<ƊI> jGo7[^<hC@]Gg74ۭ֭k>4f<Ң`?_RG=ŗ/綶2 d $P`kGfo_ |9!U$/^Yb^IvU7\0(*( ( /_?3Ư|;V[_xCI+kZN6{xRu;[8,㕮$S,+}7k-5o>:F|(1_Dtgoz֭xW?,%w I@)}mq+Fʱ4$?,⟉:7]ty,CN{I);2< 6 |M ୷o>0I| s^(d/[3~zVd{3 (׃3yMoK5@~οE[e/A>KↃO[Au8<sO3+^<3ReKAmhG72~&4?hM9R=h6׾ [\ӼM-݆u}ͤW(ɚS -8_o}#ݕk[SM/i7>ë =@ 1 #8~?_ k>G9rozߌ>|*ό<3Kc} ޹Pbd _;3'/:Q?s`5OWtoi%**A=xd'O::Z|)'}I׭.#D" cb_ r _B>6|-?`UO Jw<ͥ]*|A~j8O%xwc:VR,)&LȬ_O#W{~ҞsOM<>a[@_ZzLR-ƽk#ocfm'd?ڿ፟/߳/iӴ=_ڟB+ӽuj:l r[.'B]@d:r~CLkSSx_>t^:mt}jbg@ F27Pk;:Lp4Ǟ/r5vtMk:!5 ́A|E-#GI{kYg5y4 SR]7{XOsqMHQI⯀< }M7-;Q-ស⟆2EѼ kh֓\j;ģ&Dq?cxW_>">#PwKéxRKoiƣ.@<~;Mi:'}>?1{Oz֝:tc˘UkIKyTѰ_'j_ 4kuF>";[)Է<-[_oh M,aŹJ\+@1uz?>(x➯.G|s ç WUuWz, ~HxKi-&͟~~Dxz4VίZixR]Kڞx- ů+Oc^4O՗ #_Zp=aߦdgI1F ːտI rxן|a+7/| <*^4 +NwXI}}vV0d[icD߾;|>3˿ߎ>,Ţχ?g+/.x[#Þ o<'moj.VZ\?ٗ<'_|]'g GǏ.5<ї@:t }[cKXRǻ ß|a}g⽟xW7_oφ^5MJ-[GM3)Mbt:~-عuBN⦵_uo,?O<; { ^5e։_\kvI SJp2 A| ok𯉾ïk? {h>!:hO]a73FxL-|!%ߍ5JF<'k DEk:6q]A h$JfW¿ƿ`MqOGCmp> } -2][āfBNr~7/Z'7бkjNzErƁZXe[\G IF1`H|)i⏂ϋ[x? >&ywc5+=AleY&0v@~~ߴ/ǝs^/>.x‘*Ѿ;o E$?|=ˡvBEdd\">?6|oN9G3bg'?[ƿumW7W0כWzϊjI1@9_N949i(`Öo<'†jŮᣮ61S@~"b:M~~*?Ի(w(h8_Y(oP@P@P@L?&?A&?W-6O}gR>=?5[2NJ[۠ȑAra (~S+~Zb[k?_ #@k%:GgI'VM&DB p/Yԯ5)kؽܻǤ|;7i ø8@3r@= Uji{k|>)x|u|`o)dbxL?<7gYk zN 91*k~NO S?x"wO{M.=gTP@M&?nƾ*L_dVm}7>OxPO{-o>!?eχ25?㇆ǎ=|Im:Wh@ZgS"MM>BX.n.VJȖ7cl#aÛ{;X"= Ujq{k|>)wuao)d<&oxž,[GG'r@5i'WK~') <qvh;'=k/O;Nsu'iWHm+ې_UM|f 7=fys{߉>/֍Ǘao{k8m(bE ?omw'vG%Y zׄ "+47w(%IЗ]hw+UliGdx"J>.0E,VkX[X!m#Z&OM'P6fϿt5%g1 6Pt_X[j)q&s{jVڥv6wrY=HP ?-+7izn~߱e֙XYm4͆oݜ\%X,.p[ 3Js=0ho&|C񥎓%j]-wWl>b?>%0˶}-G|Uyx7w'fnY ~:ún kHo%6pI  /YnK{5[JK 53@3mr1ZuFm_{|&O í~W_K~ ˝R/ >~֮+smZů-0gX,{u]Oď J? |:]Ӵ^)~j>okVsoyf.햷h(>8~S'~0|2Y/Q|E'O$?-4}/ͦG ƓfXc7<7O-^NG o>|A~|GZX5Nfu=6jٰjikKnB@??࿺řf W?Z|.k~?h/&x2{۟!lW紏Ku ]>md~>Ck~~Ŀj;OY< M[ 4x>)_.ɦΟ> :]VL5kGnd QN|N19)$Vn>-i\|9<3?xE?hPkZПL֡@4\}?>kVzWMT#&Z,x{Q~*t/Ao~ {X'J>3Eqk[C2|gaO6.4R$>QxC d(eoI״m> 5O~ Yj`QR[4cmw2M0v 5Lmw W߈wW+O|H>2j_uKe^:so%֙woW }_/&|[&yX'WQυ<}HuEdԵSs}qX6|aih|\_>9ZZ ׄ4Ox'_7Mj8ZAm:Ob3##S?)} e9[|X/'^~?/gU ~樖[gkl\nm|U7}_~=i<%J韷o߄i;ߴ <ƞ"xs1xS4?Z=-ZKx(O`猬gϢ_x7 ׫x'ؖ¾ cK*E,&Ş?k,m֯7b/ ?mؿw<7uix#$?vyZ +%h?߈~+o5xP𭆓w%m״nm瑑 ڟG?*ſs?Z{/]ҵ%:j +xt-<7۾nuͧYJp(? ojѿ?-z7 x^Y/tmkL.Og5s+n?E~*x^1Y OQ|k}]|cO]ti|T/kڷ~io*{\Ո5/q>$Y|#4ZxNX'G ]I65ʻ\(O{{.~B|U7k_wo )\|fqn??k6ɴȈ>% 0x1|'^us۽ON 1%vK_^giWjuKE[k݆+}v]b L~~_^4߲Kك:|M/I+xV{xOjϸ:}v" ϿCW߅0 ?nχ_4[m.'ߴ=WȆZ\ RKdh.ua$2{]|u/ثŶ^ x M~'Gx{]Y3ޝmiV1%n5wkSu zů$/kY,| cl6SdkwhX?vhluKRUQZs[' ѡ9?NM ձ㿀o?}NJnMuM'CsZNJY[iĉ~Ѭ_ı\Dx_ƿV߳ÿ;MӾ&-wG<>9]?W Zm̩Hz?O^gGp|H4msa,xW]{SZ6FEӢ(#V/%?j_4K|tx'*}z_ӿ ]Z֝G5mN䭿mkI*.6/b#:g37No4P@P@{K5oSm&RukM3K#i㵲in.eDE0?+'<>gJZ7O5TBd{]FT4{}6' U[৿ &G /o&}T=:W|B}042}Oj|U6?jb2S{?|OKF𿁼+Ŀ&-Bg [ex,=i6DW04FY|g_. oY*GJ[Ojj|C.,!Ÿ|`??_>)j: Qyc࿏^ c5~jwd& x.Y~IнW) kc _+ſh>Z4 xTPwo>Fa4ϲro ^4?<)u?x^3i_ZoiV0[P%?-/M# ;jO׀;/ٮ~*|JOiYNzrxbc-; |cݫ/g{Iӎ f.`:SJկ,yu^|y*WW h?_?5yeMwR:]mno M&K ņR&Y*㯊3ǫǿ%x?ºSw^|C;H}CS,eTr저}/YJQfO{zm|USHo^ o=.Qa4/m-HZ¿o 45o7OVit+9 <=Ϥh>-ѵlr63$NmgqUo%R0.k۴WOe-l:$IV?_xw[t gM|GkK{$^޵}iYUc0H ~_߂/վS>=mkQKxnAkT,RH"` o ~?k_OO+>xZҮNokhW0,we{{Zj:u͆[_Y\Kkycyi*OkwguG=ʹ ha떿QO$_ lnh*~ɮ \bSd]^Ca0xQ<?Z(ǁ?E> ү5GLWX6:iaou~1)dHm~ +[[[o?mX` ,qCHU@ q@TxD/Y;_?FTZ|w -SRJ=g qqL$' =??o&V~!ml o–^os[nmX}CJFaX^ 񵾕s%h&& TGM^hڗ_k}C>6+ x_ZnMx?l5%  P Soh|?xN/<k3$xI5muC* ~t@P@Px=h'=@KqyNXdtw=A<{ԣl&G@A"+Ԝyϭ';ߟo iغ-Pk~ּW_VKᫍ@9Y6?VS$l*|MsG,W{yn'̓O<,ygYݻs@|BxcYWOCOڮMR5OۥeOpIMJ%~}cߥK [KŴ OSE"$e]H@ I%IewY]I$GbYݘI9$(??zs#~? hRا~x~W.!BYqg+?6?ڗLJ_i;TmǯڳumbXTG? PG8Ӵ]d:~daupDZۊ\>w_ U{J)ĖkΝgW%F%йGK5)/ 3ݴdu-5 t_ڏB>ӦGԬd;J/m#iʱ\0*H k#6K[;xg…VC"Eo֌*w'DWgWm?k g(gKV_|nKI|fƚ&/ڽ:^Mʫ .^|N|A#D'/__hq;O5Ҭ`OH,F,9'ӽBZG?WO~$x]t=_R/u]?H6/n̒<^IxeY\# E@Z;ˋ[-$/ᘿH|K~YGWk՚n3YA$$Z,Rؒ=y`{Bx [#Ũ>`\s@ѯ7Ad9ͩ6_ C7N>ؚ$w 7?>gӧO@@?ysHe+~_jxe'D17O˝}l[i/, 2P@hƭ_KOP5Q4]gIӵ]#V.bӵ=3PBu)YH wg_o}:Tў8w-^6|I'D+մ=cķfn#'P譌@}#>/%[_iÿkngdЯ^So?-zw4Q៍?[0_RxY.tkR$ G>\ ( ( ( ( ( ( ( (?ހ>c__DŽxiz)§|Sc|9c]GL|[mmmZCA;̬2no1|\|R?'cЮiQ_w_z}t0f4 xO-5OU[Auݤ3꺜+Zh{pFk+ye|"?gᯈ/&|.By Z:-B%wߥ:?Ŀ5/~?|#n|[s> 8vyO(R-LʌU ?8g l|_/=j9xb,L XHUW0"(E~ 6?|TŸ]xtOu}bXƞ ag<c,StS'<~q#–ZƝo_0S֝,u ?xG-tCVӭ];W.cX$(@?e[i5"&ѳ/X7Yhf΋t//Ow$Z^=6EBo(#7O e㿊1|}h.{U%{MBookeo,B@5dυx>O!+_CE_$G;涿PZ  >| AC*|m7~ ?ĜkgŶ:jgz .H[_ _>.{.?O]|KjɄwF_>f쮩u 84|;f<9 _Skd$~c'ϊ|Ch+GD—paknQP |_6~_|tek >i_}Cwh NW_ rRJ \ R\\K[K4J8$ I# b@Y߲X+~п_lc+sl5?i2XG||&i_ 753E=; x>'Tu?g&Vu;ͬ[xe$noǯ٧e'G 7w?_ol_O}{ZxMkROug,Q|OxoC}q%|*о.>xh)}7¾8>"k~$;|;]|yj$Ƥzgc߈` -#k?Kk ~!i?5{{^zWn5]ZIm5{[+ӧۀ?P n0iI0|!q=x3Z'n5^w|!ֱkYOeeq~&j#_A1x B}v˶(S׏[;_<;p$n)|u:5?,ol: nWζ?M٩<-V~?k?Gn7߈MsD+ha0Jkx}B| -o|qOUUJG# >;}'FL6b;mt hc;6A/"_) GS?WWqgᇊ¿'|u/T yk7ڴ%GfZ a>?x Q7 O>.%kg x5h|Wiu-Jɚ: kY>=ɟO|7|[K? l>dz)5?h%8K:Gm[_@t=WP}M"ΙNaU d)u_FM3q/KG 4 :Ǐh"[[vNdt=|-1~_RooO l~=xOG>'kƝ3ַi6W>%Ե;+&l 4_Z_[p['Kf~>(*-c7o%X:%d֚~@?V%GgfK@J?sG/ ( (?'w8|`u%/fJOG_=WQ.J𭯈Y&Ckc웝@_Gwy|RRfm7¯z'5-+ye7vN>y2^۱ʉ>V33+߆0exk-|!\ Y2\^J^Y`9ޏ߄5W+|<Դ [xGmҼCu][:B6׷ȸDzIK59?|c⯈7֯|I?x[w)xY}^ny_W&kCkih rAimD@XN~w7F?⦷?U5-/mtb]sėVηͼ.5^Rŵ N@sƾ2G_x#],xzαGu+%}P3@a~?_/ofՖ?'|?՚%F,a51Y?l43f/)׃j#ο5_?.G'Ig:tM59$^}?(-~gό5{m⯇>+ңh]ѧү46YH$# _kg]\}?Ο}6C׼k[ݹdjo@ ?c!φ-;Z?i(Rk__ 5-q'%cjۼRc[jp-D~?jo?O_ۍo[Xl,b*ie$ӝ/Þ!OMAbP@P@P@P@P@P@P@P@P@P@'^?B|;R)⯂6~; /? n M4{ è|;Ռ_,vޢ#t`X|?hMWW¯>;5_~,ox巄a'z6ArSji{s Mv"|g[/įg^ÿ9憾 c>csogohzvi; LVFkpo|m9F8Mm?3¯Z}G{ O1MY4$Z}YQO(G }&~ǩ4?*Ѩa~|"ѼGߊu_L/5^:]V[-ۀQ;hmUxw@+3>𮛬i> x1_NL2\9{2 zwҼu>J$6>j? >xb~; &??P-࿽@7).@>&_5Ğ4=|_(k;/ s_nu]Zzui$(cݵT>~7S~W㦹~z-fKÞS<7mWKAy-[ÞMuAwk˽n.w/L?k#Zvv ވY.9e(|S@np-/|HB o ՝r .q;)⺳_.`q$7O x)h ( ( K?߶?UZ/9$_S|tHc}+Aľ$}ueY^%~wz&.t-6nn,x>ŧC4aM p7mWu#m<,^?E$d(]6w0]>M Pfiaw+ƿ؝|MYh+@]GJFHc Ҕ糓 RecvM[D؆^c>&+$v]iY#$I vfbMc|Ehoj co}edo|CMzT~^ɬ jZK`5#NxO`DMqe?4[z>|m6Җ;o:PWv*mTz%qbKYZޥwۿ<WE|A|?lTŦEs"L$/_+ `kσݷ_~^ѼkF|I|P6*i?(l| %rП?a/٣ 5Zx3[{/7ysy:[>',C3Bo:X[^60@ )|3žՂxY]߆>E5j~!L2-Ikո뿍k$4~՟#i(ek$;hP#$A?ڲuB )Stn"><B ai]oS[t':fc@NܧਟO7PK>otC:s*ni~$o C/t fo_#i|GytcGӼvvVmuڄmq=垙iS\ym a{0P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@?Ҁ?O 'Eoko?Co~f&\Yx;*mnbWQooo ww2$qF1P *ZrxJR1X|յ+H۾Hon~,Ƹ?3[DH䨠?* {߃>6|iׇ7UZ4Y*O}Zk2+Ss .S$ m,l оh_V2Da㋽RĚ6ָJv{ueoƖeJ3~8P;N5 #KR/-:3-mikc&ED^@' S AQ~ϺZ7?~7mINzv> ? ivR.x2ڥ xgKuwV.L,bCSAcם3 ~OG4Yo{/J7>:O^J4͒PPw__gύQ }S¾-&u(ͳߺP/ືym^cvo wP}ݿd&UoD<-k~I< x'k 'UCh\K-Z"~]K4.okiGIn$Uڽ$\f80?7h ( ( ( ( ( ( ( ( ( ( ( ( Om> nVϋ|amnvд;(1%tD w/o_"%VӤo#Km7}!_CF☲/`%}9?ܟIw9i;ٙ/#5@P@P@b;-ō]Y~؟-ݴ$Wa Q9V }5/*q#hᘸ.);Eg0L<3~2K[f]ߎ~xf`xUR jZY'%?< |[OT?j3O?h&jw>,$gš^in8TBf$}gcTԧ´-Sc"NE-}V>6IZ]:݋;;=4+_&ۋ.+=ݣo =58nc9ck5I&e@e{|Eٺֻ,\h_XDmibyq,17ÑQFݲYv5?mc>_|E$Rx+DI/-WUҵɡãdOrP&ѬsK,Q #]Q~џ%/ |=޵%̰xuK]⾖Gb[D i#_|WxkUgom*_}ɯ4f+U}WbEC_[ro߳N?~ ~úfbiYoˈ履Ld|O]fq]-P@P@P@P@P@P@P@P@P@P@P@P@>8H7Y]c(՞I$v Ɗ ;$_#Hh('- 7IJkROi3YhEaW>(3ZaOLL[AE3r%cib,~9%-hO۞\dMs_-t4bQSu_W@#9߀q]A1$ڦ,rrs@T?cCoF.|?H[}Z]uxLߕ:b>?S'_lSH8|eG~711+qj?5 a|LeRFX-e1Bo%oܾڽߍ ϡj_|\[Z^9)jы;M6+]w@gE|9jZOAtkۍ7Wu /Vҵ9Z KM YJ"0!"3(?Srz|3_GCk ( (;O9վEĽDx[Z*3j,59fX枛 G|YVQä|J𯄴*_Z~Nh╒yoQ6fC@2s4>7x^3G5vn,[drk%~>>*x ]x|Sx+: vw^Exc_ﻒ@P@P@P@P@P@P@P@P@P@P@P@|,]__&WmWƿXk^am[PdQ̐Z[k;kKhi#7uUB>^ [V_M_-~7%U6vJfމntsP%#_12E> Pϧ(hg|DO8ׇEgGú.AuQ-|vcJH/cho+_ |<5C4~^LïCLZ~s.,Ax OWn$i? B.L.WO.owTTHxN;KU-#$<&?Ҁ?SGHY!g^OZjrxǖ xRhu\2r>5o~>|Y^ߊ>0|mY#}[^{m:Yk"Jv-b%PP@P@P@P@P@P@P@P@P@P@P@P@/ajv}}b3?Mf;?8k9&uD6>[ijVEW{ukX&x:kk֭w>ƫu-jzܒ_jM#4嘒I dk&h ϊeXj!,ohϏS{x#HeA"L• ~a`34ihy(vCp'~r~+x ~? !֯|҇=yZV!D(w $uHi`Pg2~ߵ}{g4|K}2,5_vZ74}BHhg)мj2 muhJ@]?0A44<g;W!N8 Xڀ?9?h[Kh~W{iC^~+RssMYۻm:$sn(bگ/4oٯ_~,IOZlV^nE>9׮tz&WI*dU! F__.yxsD?엮[x{ %,)Цú5sŶ-{_H2 ہ#v3@9Pq@f _wߋk^kL?eEeK~Au WrV Q,:P@x]P@P@P@߱ mW=J/<sgm㿅kMo <5qHwmVRAO/j&k4]X~\~MF=lh9P mVc'|=+1 enxĺ·qJ.Wb{{{^]:u=^]J]=$I$@bԫ++ee V\ PhgㆃN eMB?h+EWK\Eh=/V`0F"P7ԙ W RRcs}kտbҭ%O↍m9"5-Gӧ^L'7ً|~(jOuRDDԼEjz=JG{v|g8 /ϋ?/=w_Oʒk*MG 쵲@#4Kk;Xᵶ4PyuP@P@P@P@P@P@P@P@P@P@P@P@ Ƞ"ˮ߲=χq#@͇gWBèx~VUC֭yx8rz@O%~~(4:&]/5dG];ޕ[DIMj+stѾ\| 7^lkO)x~8]hXvk&_ O5X#p#@+1=V$GWW>>S>@oZ/w|UKgxP~妫Cwr5K[|D˝V5i#*.=e?:if|taF.67<telp47"33O G4 PO.|DuxNo5B (7q$u'o٫͓|#?j7L2>2dťInk/@d7|-es,aNne-u_'Yڭ3wKu HռAo& @\SiEX+0 z8? bXaL7`Z@x@_oN /!ǿ=}&ĺZ㋓ixOb +q&Pǡ:/ xK=G>+5?χW\׵V+=7Jt(庾R8VffPu'G OrX>-@o;z~55ͩya3( & *P9HJc;o;;o_'KӞMtP@~~Eb~ w)u_z_>%x/kZ5wt#^u :oض[SyЬFB&Cş_?x 7!|wfávt/Rot)\ʥaS`T>dьN%xxOßjZf"KYg $IbwՈP@P@P@P@P@P@P@PjZ 続+ie9 )&E42VHEXUA~?ࢿ|'9T5=K|ZGC<NJ (~:<2y;2iIylU ?\v|@F#5I%|!<(YlCWw^ Sohgܖ7Q?4h ( (O [7 >'+w/ipڷ|miճb5IH~ ][ÿ_=b@-:A7w3~-toC~(kG0ɭ1tHP=G<ٙP#P5@oG9?f( ( ( ( ( ( ( ( ( 0O.{coj ( ( ( ( ( ( ( Lׯo-}s}CzhK{%O|)[_xR?)cQ76~In%?m|{'׿e__~CTDmOIV*%!b)m;do?h@1m[^]~ C[DS>xrΉ1u1@?k*dX;ǟ~o?{6ocIeIto i&6:|#u4.#U (e?hGǏ3?u&(?# C~^>4PP@P@P@P@P@P@P@P@P@ 9/U7 ( ( ( ( ( ( ( LzqMh?-lh>~7o ⷕ*8&i"<5i,(ŔYYhW?)x,?m$X[dψUo!P>3H=gX)έjm.mD]③ SD[4kڳ⵸N~ПT"_|hphA/j1I_8ǩ:-P@!'z`{~ԟ!z~_,.k}yN!0#KieP@!dӟ(b (X5wG;M#Zմ]g kkbNo,m['/z6EG;PUc?sέC{U5=CGͨw:}^ȼy6r1S"?xErΏ={I/}z_nnY$<h Zu_xRxvk:櫧 ~Z̗veu#\1&?oۓGK_&Ǿ4>~jWpx\Qgm-w-ܖ,H) ?>"jXo'xƚyIPNyeub $(Fw?owZum5lmuFSdY5IRN챩@4m&එ:֭6c^_et#[[KdUG8g ǖ"魇]d4-쓦ibĚͰtۏV.4 ;Og=2A(tlT /ʀ?S |^#յcT 쭫N{zjk>**ɨMkmo1F5RHP{HwWZ>exCQG]k yq${bFB^~Qk7lZF<A>7vfS3BL"2#JO/?VO6O[MֿkŎj:Xc[wDLEֵm!5?)I4F5)i_6Ot<7SZL[kg #v XH ߍ9dޟA?/놱ѼCfO|]Y'6WpBfcPͷq < ~%GFjC6M$ض VֲO_MY'G`v'4r1G:?ɢ+pl $k(R.7ҁ/YK5_KS}s鑨A:= > S~A?KuYhw__;L?@lI cg $~xր?O?K? |4HO/ g@Ps+7~ M?& ( ( ( ( ( ( ( ( ( ( ( YO(3?Hx?ɮ (}?߲?׿iύ1@?_ne~l~ ɿ-ր<*j?#~ݟ!w^ ?K eH@& cOh_S=/!%S i@(~~Xe@gK_OoFpMe!?Q?4y5m;qe~;֭T]=ֿ3jg2Mo^MPo=|+ԏtEWg%@I)oN>0P(]o_j?d#P_uz@|֦?Kg*Cov@ɂT@'+I_i~ iz,:(>Tie^KAgSo΀?(Wlo~MP@P@P@P@P@P@P@P@P@P@P@P@Oiisumceo-6#I=̉ C,UQ$ XO)%ݵxW_񕍔 W1ă;::P@oG9?f(?/8O W?@_ۛ[}97UQ@:V_-Go]r?/۳Q9n>=P=bר@lI cgd?p(?# ?VU_ڀ?O7Kh?lio\ hn_)'B'&< )t5[??*CJ¿H@[_4_NmT! ٟ~@_P>%)|& s*~ܿOn25(?U'_GDOjo')c6|b 6+o>h/i?L~BB__Q/<iBgXà=7OP<@w6 0O.wPWC^= ?! o߄W7oOkhsC|'59U! ?*Imo{o$涀7 D7{~[@C^= ?! o߄W7oOkhsC|'59U! ?*Imo{o$涀7 D7{~[@C^= ?! o߄W7oOkhsC|'59U! ?*Imo{o$涀7 D7{~[@C^= ?! o߄W7oOkhsC|'59U! ?*Imo{o$涀7 D7{~[@C^= ?! o߄W7oOkhsC|'59U! ?*Imo{o$涀7 D7{~[@C^= ?! o߄W7oOkhsC|'53 0GX^%е+WWyZ;KR8X!HbbA'?/*gf@=@PdoƊ P?7O\}G ?nool??V Ee@ Yw_`nFw@S%^ '/ٞ |TԏǔYcod?UWjph??_,?Pp/'ƿ{h Ě:EuYZEic wS4Z7N+A$ *CJ¯H@[_4_NmT! ٟ~@_P>%)|& s*~ܿOn25(?U'_GDOjo')c6|b 6+o>h/i?L~BB__Q/<iBgXà=7OP<@w6 0O.wPe ~2Ÿ[?bA_S@,_?= }oOu~ /)N/e>Cߌ:X{'P ~2Ÿ[?bA_S@,_?= }oOu~ /)N/e>Cߌ:X{'P ~2Ÿ[?bA_S@,__= }oOu~ /)N/e>Cߌ:X{'P ~2Ÿ[?bA_S@,_?= }oOu~ /)N/e>Cߌ:X{'P ~2Ÿ[?bA_S@,_?= }oOu~ /)N/e>Cߌ:X{'P ~2Ÿ[?bA_S@,_?= }oOuv_! >0txaY[VVVV ƀ? (پ-'POP@oG9?f(?/8O W?@_ۛ[}97UQ@:V_-Go]r?/۳Q9n>=P=bר@lI cgd?p(?# ?VU_ڀ?O7Kh?lio\ hn_)'B'&, F=o=|+ԏtEWg%@I)oN>0P(]o_j?d#P_uz@|֦?Kg*Cov@ɂT@'+I_i~ iz,:(>Tie^KAgSo΀?(Wlo~MP@P@P@P@P@ bT1 2I$$@:߇t[_~ž m~?~W?s'|/öm)|@񶏢[i߾ujv('t; [x'6|c᫯XDv-=Ӽ%oxGóN'_-3 ?]޹pcys2$kc8>%N~ݾgψ> GXOட^-Moÿ[^g?<) 4Ye*$PXnso`WXn.cVwrh L7Q #{֜@P@S'O YAGv>*(~h/79@(d_1k_`?13U?_?+?^?M @ %[}w`xO /V[?@OS@~P7TP>G:?ɢ+pl $k(R.7ҁ/YK5_KS}s鑨A:= > S~A?KuYhw__;L?@lI cg $~xր?O?K? |4HO/ g@Ps+7~ M?& ( ( ( ( nu6ė]fVssnCqewѼR@? :G'QãO@[#:KYt.!߇ƸӦc| J|7'/i 3u/{ڳAQxw^~|c}Q<? ~ǂ|Zi ČBZk8? [j?(i4b%OЉ++5^~>"@k+k ,рjj?p_y㋓h|Oq⿏̟<(jx|/o YQb k@/߶vƷ  k%JW5:XW,Yi~ҴHV[Ih@8(?% ~!uO 5jR4?|qxjUՇװ~+cHw-7?hO?+aX?g{yᯇ^_¶~(o_\ٲ __/OaG]WF[|\ŧOs,t x%9wCUM5\C90~?;u]KP'mJk}:My.$N ->'PBHP( pc| %xºw{{EQHUK _Y!gEek?g[M>x&$C,Zht9#ѭRH~JGg;HWi%htxC$Y$y mF/ Yʺk_N_#YP&bUsiqk:4??"3@Έ>%lj|u xIj.kze}CIoHս (ٿg/8_YoddON=P@!dӟ(b (BI?s4((ٿgA[%[X;y/UeF(?C #@L-z?4 Lп?fz_6CJ ҁSR?Pg iU]yC[ϠB'/hM)pd0G'$QIH$ ;;9JҁR?M_[g_y'_g8@:w_ \ʟ/۟L@ISZǠ Xe/͟C Oey& cOh_S=P%sƴ@yK_Ѓ7@M%SG}{.mƟMc:h? )]s_o5@P@P@P@ր?/|kwT헢x ~xw~)iw%|7/@ 6O#OO^9~*~֟tϊ/|&_j/ ;qF-+Jn,֣,4u(u8vUsxx9:xS_|MgC!=/^r?5 >0x S_>O?'OjK:]*YӍ|/<~3״lGQO%%;~1'm/ÿ[x ,nu iZW{xC{`G'¯o>1xi| x㮙VUW <%uK^ _JյJ[[YHY:W_?~|@~ˠ|G~ O7x ~:|=lIc{PW7O‘_CcwK[/Zxzm-CÐ6kO٩C@*jFN_*__ނ~0I<]|6ŷo$|6WgCGi'Ÿ<+xC(~z?__"G3;<+>|)q-&Χ~_ä!~2O>%lj4 f*]j> UΣo=>$R2Μ>IϥWs7QJ7R4闺q1C (Џ CA|Y5|%oeH_MҼU|F4Gړ"5Ԗ_M+]; F`o * {'m{XnEP2Z,r{+z|D[E._OxmggRh"ot඙gaԵNA%h,~t |w֮> ||>xǚy~(p?y;kVc BʹGo, !ہ@tmय़s >ƟWxk~jZү?fӅ\@։kW==#S5L4=jJFVO蠽JI#@|5c 4|-OJ>(^O<%d#uXg#Q`o4*2wS~ܿa?}~~^~ ˜ ~u~D(GgS=W@g%ƻƺ|yvhޑ&Fң%֑ K$()~?Om ?5]sFYx_NmORKxoz\=7f0Yxs !E[=?Q~1e!w3`]Ϳ /'Y4nG ~2,YDk9e10mwg?ڛ6u? k Wû]|3~hOwn4,thؓk+]JH A[f~f_@^ڟFu?;Z4P@G(N|hي( )p',twfhMn?_P?ao`@U Qyu g~ۿT2_Oo/G?/0_B*\/JOHy@F?/CWv? -en>;[W{0%)|& s*~ܿOn25(?U'_GDOjo')c6|b 6+o>h/i?L~BB__Q/<iBgXà=7OP<@w6 0O.wP@P@P@PMm[_xSֵ B(4Kkﮉ ("y&bEr@9G;?/`*t 7 )R=b@Ni~(}/ glmXOqiqjhѿfw? :#j3J%/ ?IG^ 0?cړIn^.M[M._ xF~'!𭴺g5A-!\%K߲_7 6=4<{x~4z}-ucNmE3a`d:??iWzM$X=ԡE62m0↙_|. AO|`<M)/I&ǖzl-^x9!U72 .IB%EEPx55“ ,\ͧt 6k8kE<412h:oSU猼%m Msƞ&|)E)eMWZ#0G@p A@~_?~M;ּ?mxP(5Mv!y(kx$q~.?~2g/][ IeOᾹ m|f,o$*s k!b3@9 Me4VZ/?h ]^4ZMylzg`H[yf0!x-@υG^ 5iWڦ]h:7I2F {r[FEP$i8x' (= >~;zO.@EF#sYQ5ZjĮ|KQU"H@n.oi n/>7|)Inn|yƀ+P9$? 9wmef;x 66Px2^\wrhh L7Q #{֜@P@ko{(k<;?ƓC|!uCI׾ ~?b)u|S{wW|%gxK¶o۴=K^I&D%mjWW7_>)+ᮧ|DkmsJIqCuOP_^L=>89W Ix~şڣo_?_C5_ݜv!;:W[WJ[j6n@?YMK? _ŏ[Ǐ~!C_i xš]x/ n.if/s"$` 6>ڧ|WcߵǏ~bxCYZ$?w_ >|XBX7S. :Km;Ig_M?k>+m}Sy4w<]|TC]xƗ~(I>/jA&X-lJJf_M'~ߞ3_ō3uDe kiNZOگuwks:ZY`Cjw]Hh¯5;FOtk Ahn/QſiS%Q'mԢKxfyRe?&?nKQiOi 3'׍x{-xWU&Kao&E iXg4 ?Ŧ~ oocƏM^ij'p:x^-PK -ݼ-X/c }S ⾉_~0X|a6&B',c97Xj8Ϗ Ix~z/ۡx/ퟥZ~˟exOcĿn?g]v-CM>ɭaUIIf?do5+ пiOl{_ +|}~;L<_j>|-Oh)& )> ~9F+?|=|ak k2}WWp^jv W4FDrȪN1MK? _ŏ[Ǐ~!C_i xš]x/ n.if/s"$`??_' ⯇W*__?o:B~~MD^9NJ,kkcI5}s[|6>x_ oL:|6!ƽM\&^? %Ы@AShcf'Z;4n+̖iW_rpL48GF*Nh{m| ho⿋?`'sI />%Y|2?"/ugGVG_*MrW/B@`\JcS|?ɪ( ( ( (;?-㻟,W/ۏ kO:h%z厳/W+rnFs"?8[Zޡ_F|A׬OWÆmgſoM+|<<1|"|ECQܚtVf5]VRtN J?׆t"4>/O_6*JkA>/|%}mq^±\, H I7VH(,bx08/@g|x=D:8|!gR7 <5̞/m_&]hg>jZ+f)}{jzdO+^*^=ݬ( Şo[7~7ƟXmM/U㏉q|7 ,uֺ4Mb fe/u  b5~ _ ho?~*OׄGf~sxUx7Ot> ֍2sֵjesP ? /#Yj}oឳ|/~<=mYD|7 x7ڔm  ZgQZZAbӼ hHiZM^XvR-ΠGa_j aVIyu-GyWQ 6 .&w Gg%mx?|[oGz'snuSlEYdi]˞W"?-mᯇY^_:xz7G]S_#;Ci֐, @1B~ ߲#=?|Z(Ok{+3ɦ"ɧA+LDu/u{8K=X ^| c[?Q?gwZi'F<=>'~'x[GVU]aڸic*_E=w/[e|V7 arx ᦹTĞ4;S~?XMk'CvZ鮣h-û55}e."g#~xI/I O<u}N6v;˛ FJǘv:*>6? HfE%_M②.Ԛi5}Ip?[?|$~|C]2DLТR1P.)@}4'/Rv][B֑&Tm7LX$RX' ~߱&\f8Q^ix{ľ'u{HoIai!U& >)b? Q:|U|?_ >|6Ծ<~񿇵i|e;K^x-pxvawukK[?ڟQ3 q|9)qkoMޙ__ΚůXt Xo/,^;}BkIt1bk0_ٿ.~0h!X!k_Q4!eܴ;tvAb+^⧝  ި[Dne|FE~|'_)DQ:<0Z/KLJoiۇ:o\1$?(~w?I'{A|;#Ƶ/եXd>yh'J|L*y5i\ I9/?eO le)%ƣ-ټAڍp* օkS?5n|+kUg`s RX~~͟J&r,txo~vt>3O¨?Pki/.*IP ĿS |4^_^+tKFhZ2Kt?6& 2s$Fb>#=~I׿M$ Gnlnui~ƨX~l܄nP3FA =>2C,wōt/Ŀzmb~8m4:8E$U< ( ( ( ( ( ( ( (>" -#o[x%9՟qC Nt4h6?P`ͥtgii\qA%>3A.B>Xy *(ܟOEkk("?$>貟[ۛ/|wyKAQeOWx%o :OmoE bLdia#,d !߽`-5&L:Nb%bqZ_F~\d|󱺶U46ga7%D%@?/6|Wrn+ȵ/&zo7iFK3ҵI ,Ch"R /r}eooo lt_C[OԈ#-6Nk'կuZuJgusQյ[:wSHĖwvb{UP_֣j~}2\@..,xJ!yep?? yka缝-'k]j_0wG?: ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (>rB`<WwߵOiςfP@P@P@P@P@P@P@P@P@P@P@DATA VFDТ+XVF VFDX+ТVFarial.ttf//fonts/arial.ttfrial.ttfr  ,DATA ,ho DATAho pDSIG$=|GDEF^#]ruGSUBu JSTFm*ilLTSHe<xOS/2 2kVPCLT{>Ct6VDMXPj#cmap@j:jcvt *v0fpgmyY0ngasp tglyfbhdmx×4(headΘ&|6hhea3$hmtx4X@P(kern7a96``locaai2,maxp G  namee; post~2AprepR _<'*մg >NC&?v/V 33f zMono@ Q3>@999^ssIwVXZ||@r9A99sUss<sVssUsMsasSsU99prpsZoVVfV9m97Vs9cV9XV\0V V V)999'6sYsJsPsFsK9sBsssDssH?9$s!(9/WVVhV9csJsJsJsJsJsJPsKsKsKsK99#99 ssDsDsDsDsDsssssI3skssQmL=dN9SdNdMdMs8zd1/-%DrdTs.d3ssVV9cRsSGldN/!VV9s\\sI9lG%VVVVV99999c9c9c9.k:(sV\?)(sIV!Vsrk!kk!s9msB9V\?fPfPsFkVsJVsJGVsKVsKsBsUsss9csD<V\?09$0#ss)()(h9`bUHtHbD).0HkR3OOOjrq"~~~~~~f0 0 *+kUo@:@7?@%UapVsJfPfPVsKVsKVsK9msB9msB9msBss9999999f7Vsss9csD9csDkV\?09 ssssV!VsJD9S9V!sZk""JkWF2xVVXV)9VX 3m9cV0VV a9VHbsk`Hss\\sDV`3z?W`sH`?WW2UdV\997u 1 V@VUkVcN@9cVf0 RV UWUU@UsJ[@sKZ2xxksDUsP&!K+Ek(+0UsKsK?9 @s!kJA-11~~!}3 9iV21-_(P<P<Z<n_s f(d$(ZVZ((WWH-ddddiiiV21-KJK(P<P<Zn_s f(d$(V2P_s<%QCMyFFFFHFFQF5|5.555,5555555B6555F::656==JJv'v'2$0FF@FQ sJ]MyVu2u2-2$::B::::656==656==656==____JJJJ>>??>>??>>>>Z*65'Z*65'O'O'$FF$--'' G G##''5E5EB6'u2u22$2$Z@IZ&9ZSJZSJFFQFFHFFFFF@0FFc?D[/Ts) grksSrj}_vlX,VsJVsJVsJVsJVsJVsJVsJVsJVsJVsJVsJVsJVsKVsKVsKVsKVsKVsKVsKVsK9c9|9csD9csD9csD9csD9csD9csD9csDc?Dc?Dc?Dc?Dc?Dss[[[[[V!V!V!VsJ99csDsssssU cZkssV UW+EUscsU9`sD:$Fk'VVu2u2u2u22$::::::::::::::656==656==656==656==656==656==22____22______88IIJJJJJJJJJJJJJJJJ>>??>>??>>??>>>>Z*65'O'O'O'$O'O'$O'O'$O'O'$O'O'$FFFFv'v'--''--''--''v'v'v'v'v' G G G G G G G G5E5E5E5E5E5E5E5E5E5E656==B6u2u2u2u2u2u2u2u2u2u2u2u2u2u2u2u22$u2u22$2$EEEE()0~22d~2XXd>>??>>Z*65'My#B6/;mvZZSJZSJZSJZSJZSJZSJ5q5Z% >u&5#'eS79]9q7$5S+7Ƥc  ) R M_c  S>+. . -%&%&.. ' '9%.7.7$..+.7.7cc0 -&&22222+11%&. . ' ' 'SS.7.7>>>>9]9.7$$.+.7.7.7.79%& ) %% .>u..M'> &)))$1$$$)(*)$)* % >>17 1%$%  u..11M+%11.&1$&'( 77 77$75 11,1$*1%'7&1+9$$7 71    ,    , , ,, # #+ ,,,,,,,,,))))++++22222222##22,,,,#### +9%&%&%&%&%&%&%&%&%&%&%&%& ' ' ' ' ' ' ' '>>9$$$$$$$77ĖĖ%&>9$77777%&.7,2,,,,,,(,,,,,,,,,,,,,,))))))))))))))))))++++++22#2222 # # # # # # #,,,,,,,, 2++#,(,,,,, ########    !" # $!%"&"'#($)&*&+',(-(.*/+0-1-2.3/405061738494:5;5<6=7>8?9@:A;B<C<D=E>F?G@HAIBJBKCLDMFNFOGPHQIRISJTKUMVMWNXOYPZP[Q\S]T^T_U`VaWbWcYdZe[f\g\h]i^j`k`lambncocpdqergsgthuivjwjxkymzn{n|o}p~qqstuvvwxyz{|}}~   !" # $!%"&"'#($)&*&+',(-(.*/+0-1-2.3/405061738494:5;5<6=7>8?9@:A;B<C<D=E>F?G@HAIBJBKCLDMFNFOGPHQIRISJTKUMVMWNXOYPZP[Q\S]T^T_U`VaWbWcYdZe[f\g\h]i^j`k`lambncocpdqergsgthuivjwjxkymzn{n|o}p~qrstuvvwxyz{|}}~   !" # $!%"&"'#($)&*&+',(-(.*/+0-1-2.3/405061738494:5;5<6=7>8?9@:A;B<C<D=E>F?G@HAIBJBKCLDMFNFOGPHQIRISJTKUMVMWNXOYPZP[Q\S]T^T_U`VaWbWcYdZe[f\g\h]i^j`k`lambncocpdqergsgthuivjwjxkymzn{n|o}p~qrstuvvwxyz{|}}~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "                                                                                                                                                                 "                                                             &                                                                                                                                                                  &                                                         *                                                                                                                                                                    *                                                                   0                                                                                                                                               0                                                                                   6                                                                                           6                         :                                                                                          :                         !       @                                        #    !"                  "      "                    ####          @        ####                 $# ##   !B    " "          ! !  !!!                 $!!! !!!!!"#       "! """      #!!   !#              !   $$$$         !B        $$$$                 %$ $$    %J !   & &         % % ! %%#%    %           (%%%$%%%%%&'" !       &%! &&&      '% ""#!% "%(                ##%      ))))       %J               "           ))))     #######     *()) # *T %   +! #!!*    $  ! **!#  %*!*(*  + !!!    ###!   ! !".***)*****+,'  %!!!   !! * *%! *** ####!#!#  #!#   ! !$ ,*$'#! ''!%*#"#  &"*-      %              "'"' *       ####..$$..$$!!         *T$$##  !!!!!!!$$$$$$$$$$ !' !          ######..$$..$$!!! !! !! !! !! "'"'"'"'"'"'"'         """" /.##..$$ "' .\# )    /!!$! %!$$!!.   & ! !!$! ""..$!!&#).$.+.  . $$$!!!    !&&&$ !!!!  !!$!! !!$%2...-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"...../0*###" )!!$$$!!   !!$$! !!!!.! .)$ .!.!.! &&&&$'$&# ! %!$!&"   !$ $(! 1.'!*!!%!$!!#"*+$)!.! &%&!# *%.1        %       ## ###### ###########!! ####%+%+################ ##.#############################   !! !! !! &&&&33''33''$$     ## ### ## ### # ##############################################################################.\''&&  $$$$$$$'''''!!''''' $!!!!!*!#$!   !! !! !! !! !! !! !! &&&&&&33''33''$$$ $$ $$ $$ $$ %+%+%+%+%+%+%+         %%%% 42 &&33''  %+ 2d&,! 3!!$$!'$!)$'!'$!$!2!!  (# !!$!$'$%%22'$$)&,2!!'2/2 ! 2!!!!!'''$$$ ! $!!***'!$$!!$$!! $$'$$! $$'( 62221$##############################################$2111135.&&!&% ,!$$!!!'''$$  ! $$''$!$$$$2#! !2,' 2#2#2#! ****!'*'*& !!!!$!!)$!'$!!!*%!  $' '!+$!53+ $!!!"!.$$!)$'$!$ &!%!./(,!$3$!")()$&  -)26#    #  * #####  &&&&&&&& &&&&&&&& &&&$$ &&&&)/)/ &&&&&&&&&&&&&&&& &&2&&&&&&&&&&&&&&&&&&&&&&&&&&&&&   $$ $$ $$ ))))77**77**''       && &&& && &&& & &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&2d+!+!** !!!!!!!!!!!!!!!!!!!!  '''''''+!+!+!+!+!$$+!+!+!+!+!!!!! '$$$$$.!$!!!&'$    $$ $$ $$ $$ $$ $$ $$ ))))))77**77**''' '' '' '' '' )/)/)/)/)/)/)/           )))) 86 ))77**  )/ 6l)0$   7$$''$!*'$-'*$*'$!'$6##!  -' $$'$'*'!((66*'',)0!! "6$$*636 #  5$$$$$***''' $!'#$ ---*$''$$'!'$$ ''*''$!!''!!*+!#;6665' ! !!&"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'!65555!!!791))# )(! 0!!$''$$$***''  $ ''**'$!''''6'# $60*!6'6'6'#  ----$*-*,) $$$$!'$$-'#*'$!!##-(#  '* *$/'$97-"'$#$%$2!''#-'*'$'!")#($13+0#'7' $%,+,"')  1,6:% !   &# * &&&&!  &#  )))))))) ))))))))")))'' )))),2,2" )))))))))))))))) ))6)))))))))))))))))))))))))))))!  " '' '' '' ,,,,;;..;;..++   " "     )) ))) )) ))) ) ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))6l.#.$-- $$$$$$$$$$$$$$$$$$$$  *******.#.#.#.#.#''.$.$.$.$.$###$ *'''''2$'$$$)*'    " '' '' '' '' '' '' '' ,,,,,,;;..;;..+++++++++++,2,2   ,2,2,2,2,2      " " " " ,,,, =;  ,,;;..  ,2         :t, 4' " """ ;''**'#-*' /*-'-*'$*':%&#     1  )"''*'*-*    #++: :-) !)0 -4##" $ :''-:7 : &   9'''''---*** '#* &' ""000 - '** ' ' *$*' '  * * - **'$$* * ## -." $& ?:::9*"#"##)$)))))))))))))))))))))))))))))))))))))))))))))*#:9999###;=5,,&",+# 3##' **' ' ' - - - * *   ' * * - - *'#* * * * :)& ' :4-#:):):)&  #0000'-1-0, ''''#*''/*&-*'$$&%0+&" ! ! ! )- -'2*'=;2"%*'&'''6#**"&/*-*'*$%,%+'56.3&*;* !" ' "(  0!/0$*,   5/  :>(!##"##!!  (%.((((!!!#"#!!  (% !  ,,,,,,,, ,,,,,,,,%,,,)),,,,!/6/6%",,,,,,,,,,,,,,,, ,, :,,,,,,,,,,,,,,,,,,,,,,,,,,,,,$  %" ))))))!!!0000@@11@@11""""""""  ..""## %"%" # # # #,, ,,, ,, ,,, , ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:t2&2'00 ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '   - - - - - - - 2&2&2&2&2&* * 2'2'2'2'2'&&&'  - * * * * * 6'""*  ''' , - )"  %"))))))))))))))!!!!!!000000@@11@@11"" ...........""""/6/6######/6/6/6/6/6    !%"%"%"%"//// A? #00@@11 /6 # # # # # # # #C2%%<- '%%%%%%%%%%'''%D--00-)40"-%704-40-)0-B+-)%%%"%%%%"9%%%%"%!/ !!'--0-040%%%%%%"%%%%%%%%%%%%%%%%%%$)11C%C40%%%%'!07%3<))'%%%)%%C--4C?%C%!!- %""%C-----444000%-")!0%-!-%''888%4%-"0"0"%%-%-%0)0-%-%%%%0%0%4%00-"))0%0%)!)!%45'%)+%"IC"C"C""B0'('((/*/////////////////////////////////////////////1(CBBBB(((DG=22$,(""21( ;((-%0"0"-%-%-%4%4%4%0%0%"-""%0%0%4%4%0-")0%0%0%0%B/-!-%C<4)B/B/B/-!%(8888-58482----)0--70,40-))-+82-'%%'"%%""'!%& %#04%%%4-:$0-"GD9'+0-,-$-->(00',7040-0)+3+2-=?5;,0D0%&$'%-%%'.%%$%"!7 C*0#"2$%%""=6%!%!CH.&$"((("((&#&% %"/+"""7""$////&&&$"(("(&&% %"/+$%'    ############222###2222222222222+222002222&#$$!!6>"6>"+'222222222222222222%C22222222222222222222222222222)+'000000&#$$&#$$&#$$!!!!77$$77$$JJ99JJ99''''''''$#$#55''((""##+'+'$($($($(22 222 222222 222222222222222222222222222222222222222222222222222222222222222222222222222222C9,9-"88-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%4%4%4%4%4%4%4%9,9,9,9,9,0%0%9-9-9-9-9--!-!-!-%4%0%0%0%0%0%$>-''0%%"%"-"-#-%2%4%0'+'00000000000000&#$$&#$$&#$$&#$$&#$$&#$$!!!!!!!!!!!!!!!!77$$77$$77$$JJ99JJ99''$#55555555555''''6>"6>"((((((6>"6>"6>"6>"6>"""""""""##########&#$$+'+'+'+'6666KI (77$$JJ99$#6>"$($($($($($($(##$(K8**C2,**********,,,*L22662.:6&2*=6:2:62-62K11."***&****&?****&*%5$%%,22626:6******&******************(.77K)K:5)))*+%5>):C..,)*).**K22:KG*K)%%1 *&&*L22222:::666*2&.%6*1%2*,,???*:*2&6&6&*)2*2*6.62*2****6*6*:*662&--6*6*.%.%):<+*!.1)&RK&K&K&&I6,-,--5/5555555555555555555555555555555555555555555557-KJJJJ---MOE88(1-&&87!-B--2*6&6&2*2*2*:*:*:*6*6*&2&&*6*6*:*:*62&.6*6*6*6*K51%2*KC:.K5K5K51%*-????2;?:>82222.622=61:62.-11?81+!*)+&!**&&+%"*+$)'5;)*);2A)62&OL@,06212)32E-66,1=6:626-09172EF;B16L6*+(,*2"**!,4)*)*&"%>$+'<>/6'&8)**&&D=*!%)%KP4*)&--,&##--+(*)#$)&40%%%<&&##(4444***)&-,&##-+*)$)&40)#)+ ''''''''''''888'''88888888888880888668888*'((%%=F'=F'0,888888888888888888*K88888888888888888888888888888. 0,666666*'((*'((*'((%%%%>>((>>((RR??RR??,,,,,,,,)"')"';;,,--&&''" 0,0,)-)-)-)-88888 888888888888888888888888888888888888888888888888888888888888888888888888888888888888 K@1@2&??2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*:*:*:*:*:*:*:*@1@1@1@1@16*6*@2@2@2@2@21%1%1%2*:*6*6*6*6*6*)E2,!,!6)*&*&2&2'2*8*:*6, 0,66666666666666*'((*'((*'((*'((*'((*'((%%%%%%%%%%%%%%%%>>((>>((>>((RR??RR??,,)"';;;;;;;;;;;,,,,=F'=F'------=F'=F'=F'=F'=F'&&&&&&&&''''''''''*'(( 0,0, 0,0,====TQ->>((RR??)"'=F%)-)-)-)-)-)-)-'')-S>..J7 0..........000.T77<<73A<*7.E>,61**>=%2I227.<*<*7.7.7.A.A.A.<.<.*7+*.<.<.A.A.<7*3<.<.<.<.S;6'7.SJA3S;S;S;6'.2EEEE7AF @D>77773<77E<6A<73468E>60%.-0*%..**0)%./(-,;A-.-A7H-<7*XTG05<767-87M2<<06E-..**KC.$'.)"SY9 /-!*2 21*&&220,/-&(.*:5)))#C**&&,::::///-!*2"1*&&20/-(.*:5-&-0",,,,,,,,,,,,>>>,,,>>>>>>>>>>>>>5>>>;;>>>>/,,,))CM!+CM!+51>>>>>>>>>>>>>>>>>>.S>>>>>>>>>>>>>>>>>>>>>>>>>>>>>3"$$51;;;;;;/,,,/,,,/,,,))))DD,,DD,,[[FF[[FF00000000-%,!-%,!AA0022!!**!!,,%!$$5151-2-2-2-2>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> SG6G8+EE7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.A.A.A.A.A.A.A.G6G6G6G6G6<.<.G8G8G8G8G86'6'6'7.A.<.<.<.<.<.-M80$0$<..*.*7*7+7.>.A.;0$$$$51;;;;;;;;;;;;;;/,,,/,,,/,,,/,,,/,,,/,,,))))))))))))))))DD,,DD,,DD,,[[FF[[FF00-%,!AAAAAAAAAAA0000CM!+CM!+22!!22!!22!!CM!+CM!+CM!+CM!+CM!+********,,,,,,,,,,/,,, $$$$$$$$$$$$$$$$5151$$5151CCCC]Z2DD,,[[FF-%,!"CM)-2-2-2-2-2-2-2,,-2\E!33R=$633333333336663]==BB=8HB.=3KBH=HB=9B=[>=8)333.3343/M3334.3-A---6==B=BHB333333.333333333333333%333 18DD\3\HB33335-BL3""GR886233933\==H\W3\3--=3..3]=====HHHBBB3=.8-B3=-=366MMM3H4=.B.B.33=3=3B9B=3=3333B3B3H3BB=.99#B3B38-8-3HI53)9$<3."d\.\.\..ZB68688A:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8\[[[[888^aTEE1<7/.ED)8!Q8!!8!=3B.B.=3=3=3H4H4H3B3B3.=/.3B3C3H3H3B=.8B3B3B3B3[A=-=3\RH8[A[A[A=-37MMMM=HM#GME====8B==KBME=5)325.)33..5-)34,20BH232H=P2B=.a]O6:B=<=2>=U8BB6D=TVIQ*33(6?3323.*-L-50JL:B0/E233"/.SK3(-3-&\c?#42%/7#76/*+77 5142*,3/@;...&L//++1@@@@4442%/7&6/*+7 542,3/@;2*25!&000000000000EEE000EEEEEEEEEEEEE;EEEBBEEEE4011--KV$/KV$/;6EEEEEEEEEEEEEEEEEE3\EEEEEEEEEEEEEEEEEEEEEEEEEEEEE9&((;6BB#BBBB401140114011----LL11LL11eeNNeeNN666666662)0$2)0$II6677$$//$$00#)$((;6;627272727EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE \O/MM=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3H3H3H3H3H3H3H3OO>O>O>O>=-=-=-=3H3B3B3B3B3B32"U>6(6(B33.3.=.=0=3E3H3B6((((;6BBBBBBBBBBBBBB401140114011401140114011----------------LL11LL11LL11eeNNeeNN662)0$IIIIIIIIIII6666KV$/KV$/77$$77$$77$$KV$/KV$/KV$/KV$/KV$/////////00000000004011#$$$((((((((((((((((;6;6((;6;6KKKKgd"7LL11eeNN2)0$&KV.272727272727270027dK$88YC!!':!8888888888:::8fCCHHC=NH2C8SHNCNHC>HCcBB=+8!88288782T8887!281G111!!:CCHCHNH8888882888888888888888(888#6=JJd!!7dNG7778:1GR7%%MY==:787=88dCCNd^8d!!711B8!!228!dCCCCCNNNHHH!!!!!!!!!8C2=1H8B1C8::!!!SSS8N7C2H2H287!C8C8H=HC8C8888!H8H8N8H!H!C2>>&H8H8=1=17NP:8->(A72$md2d2d22bH:<:<>BBTKB:-87:2,8822:1-89074GN787NCV6HC2jeU:@HCBC6DC\@LBJC\^OYBHeH895$:8C.88,:E78682.1R194PR?H43K688$32[Q8,171)dkE!!!!!!!!!!!!!&!!!86(3<&<;3..<<#9597.073E@111*O33..6EEEE8886(3<);3..<#997073E@6.7: $)55555555555 5KKK555KKKKKKKKKKKKK@KKKGGKKKK855511Q]'3Q]'3@;KKKKKKKKKKKKKKKKKK8dKKKKKKKKKKKKKKKKKKKKKKKKKKKK K>)++@;GG&GGGG855585558555""""1111RR55RR55nnUUnnUU::::::::6-5'6-5'OO::<<''33""''55&-'++@;@;6<6<6<6 D o  !!!!"!&!.!T!^!!"""""""")"+"H"a"e###!%%% %%%%%$%,%4%<%l%%%%%%%%%%%%%%%&<&@&B&`&c&f&k:1 6<>ADb? Y #~Q^ !@`   & * 0 2 9 < > D j  !!!!"!&!.!S![!!"""""""")"+"H"`"d### %%% %%%%%$%,%4%<%P%%%%%%%%%%%%%%%&:&@&B&`&c&e&j:*8>@CF^>/wkri+*)(|zvlhL>][w}ujy,ߨߖޖޢދަq_0@3$FE<9630)"ۿ۾۷ۥۯEBA$"!>cH@\tvrX^bcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,  -   ./0 !"12#3$%&'()*+89:(,;<>@9BDFHJNRVZ^bfjnrv'z~+-1  !"$&(*,.05248:>@BDEFGHIJKLMNOPQRSTUVWXYZN[   \`dhi4NORPQUVWXST~?Avw|qrsYZ[\]uwvyx}tuw<=RSTU !"bcdeNOPQ^_`aJKLMrstunopq'()*z{|}~+,-./01234LMjkl@ABC()&'*+F01$%,-:;<=56  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ $~Y #~ O\_ :U    " & . 0 3 : < > D o  !!!!"!&!.!T!^!!"""""""")"+"H"a"e###!%%% %%%%%$%,%4%<%l%%%%%%%%%%%%%%%&<&@&B&`&c&f&k:1 6<>ADb? Y #~Q^ !@`   & * 0 2 9 < > D j  !!!!"!&!.!S![!!"""""""")"+"H"`"d### %%% %%%%%$%,%4%<%P%%%%%%%%%%%%%%%&:&@&B&`&c&e&j:*8>@CF^>/wkri+*)(|zvlhL>][w}ujy,ߨߖޖޢދަq_0@3$FE<9630)"ۿ۾۷ۥۯEBA$"!>cH@\tvrX^bcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,  -   ./0 !"12#3$%&'()*+89:(,;<>@9BDFHJNRVZ^bfjnrv'z~+-1  !"$&(*,.05248:>@BDEFGHIJKLMNOPQRSTUVWXYZN[   \`dhi4NORPQUVWXST~?Avw|qrsYZ[\]uwvyx}tuw<=RSTU !"bcdeNOPQ^_`aJKLMrstunopq'()*z{|}~+,-./01234LMjkl@ABC()&'*+F01$%,-:;<=56@CUTA@?>=<;:987543210/.-,+*)('&%$#"!  ,E#F` &`&#HH-,E#F#a &a&#HH-,E#F` a F`&#HH-,E#F#a ` &a a&#HH-,E#F`@a f`&#HH-,E#F#a@` &a@a&#HH-, <<-, E# D# ZQX# D#Y QX# MD#Y QX# D#Y!!-, EhD ` EFvhE`D-, C#Ce -, C#C -,#p>#pE: -,E#DE#D-, E%EadPQXED!!Y-,Cc#b#B+-, EC`D-,CCe -, i@a ,b`+ d#da\XaY-,E+#Dz-,E+#D-,CXE+#DzEi #D QX+#Dz!zYY-,-,%F`F@aH-,KS \XYXY-, %E#DE#DEe#E %`j #B#hj`a Ry!@E TX#!?#YaDRy@ E TX#!?#YaD-,C#C -,C#C -, C#C -, C#Ce -,C#Ce -,C#Ce -,KRXED!!Y-, %#I@` c RX#%8#%e8c8!!!!!Y-,KdQXEi C`:!!!Y-,%# `#-,%# a#-,%-, ` <<-, a <<-,++**-,CC -,>**-,5-,v##p #E PXaY:/-,!! d#d@b-,!QX d#d b@/+Y`-,!QX d#dUb/+Y`-, d#d@b`#!-,&&&&Eh:-,&&&&Ehe:-,KS#KQZX E`D!!Y-,KTX E`D!!Y-,KS#KQZX8!!Y-,KTX8!!Y-,CXY-,CXY-,KTC\ZX8!!Y-,C\X %% d#dadQX%% F`H F`HY !!!!Y-,C\X %% d#dadQX%% F`H F`HY !!!!Y-,KS#KQZX:+!!Y-,KS#KQZX;+!!Y-,KS#KQZC\ZX8!!Y-, KT&KTZ C\ZX8!!Y-,KRX%%I%%Ia TX! CUX%%88Y@TX CTX%8Y CTX%%88%8YYYY!!!!-,F#F`F# F`ab# #ŠpE` PXaFY`h:-,B#Q@SZX TXC`BY$QX @TXC`B$TX C`BKKRXC`BY@TXC`BY@cTXC`BY@cTXC`BY@cTX@C`BYYYYY-,CTXKS#KQZX8!!Y!!!!Y-TA"/O__o@3@3@jl2@a3@\]2@WY2@MQ2@DI2@:3@142@.B2@',2@%2 2Ap@$&2d 2A d2AJ?/?_?Ӳ792Ӳ+/2Ӳ%2Ӳ2Ӳ2Ҳ) +A0 P`p`p   0@Pв +ϲ&BAƲA /$A/?O_"dA @j@&CI2@ CI2@&:=2@ :=2 &@&2@ 2@&2@ 2@&2@ 2@&z2@ z2@&lv2@ lv2@&dj2@ dj2@&Z_2@ Z_2@&OT2@ OT2$'7Ok Aw0w@wPwwww**@+)*Re~<^+@8@@89@s&%$ 7@!I3@!E3@!AB2@!=>2A!?!!!!!@! "2@!2@"*?2@!.:2oAH/`?_"""/"?"_"""!!o!!!/!?!O!""!!@+HO7 A &A9&%8s542V&, /& 8ʸ&~&}Gke&^s@R&ZHDb@s?^<&50+*V)#U7h@,XO62,!  @+JKKSBKcKb S# QZ#BKKTB8+KR7+KP[XY8+TXCX(YYv??>9FD>9FD>9FD>9FD>9F`D>9F`D+++++++++++++++++++++++KSXY2KSXYKS \XEDEDYX>ERX>DYYKVS \X ED&EDYX ERX DYYKS \X%ED$EDYX %ERX% DYYKS \Xs$ED$$EDYX sERXs DYYKS \X%ED%%EDYXERXDYYK>S \XEDEDYXERXDYYKVS \XED/EDYXERXDYYKS \XEDEDYX ERX DYY+++++++++++++++++++++++++++++++++++++++++eB++;Yc\Ee#E`#Ee`#E`vhb cYEe#E &`bch &aeY#eDc#D ;\Ee#E &`bch &ae\#eD;#D\ETX\@eD;@;E#aDYGP47Ee#E`#Ee`#E`vhb 4PEe#E &`bch &aeP#eD4#D G7Ee#E &`bch &ae7#eDG#D7ETX7@eDG@GE#aDYKSBKPXBYC\XBY CX`!YBp>CX;!~ +Y #B #BCX-A-A +Y#B#BCX~;! +Y#B#B+tusuEiDEiDEiDsssstustu++++tu+++++sssssssssssssssssssssssss+++E@aDstK*SK?QZXE@`DYK:SK?QZX E`DYK.SK:QZXE@`DYK.SKLQ_jqx !".5BOO^eq *G]ety "&+G_u\ m6>PQ]`E3-_dM?}$x;;N&;MKSj1<ex ~ 90+ P >X!q}E +NT2N7kwdg3|)n*i9$]u MRhm}qyXgV%|2!r\/AMrLjUxiWnTgeRZgn-|{pLFF-S%>S?("bJmH3NFpyQ hlOa+****~ N 8 ~ d VR "Vp b !#%'(V)*b+,-./z12:5d78B9H;<=@RAB$CEHJKL2LMMMN8Q RTVPXYb[R\]_abdfhNjklpVqzsu6y{~NP<pT:V`(VTX(lLp"N>R$Nr>,|2RNv Xp Jv$j<Őp<ɴ 2hТ"ф XҊLӊP@&b׸@ج8٤ڐۂ۶^Pj^tTJD2.t$x :jR.^.pjHZ.l L>z46jF~: v  L.2Zz:x4LdBh 4`Lv,`8lV@  6 R n!$''8'R'n'''((X()*,++, ,z--n-..t/,/00r02"33@3\334 4L44455T5556$6T6667$7T7999;6<==J=z==>?4@b@BB:BjCD*DXDDF GGHHXHHHII2J"KKKL4LdLLNvPVPPQQFR0RSSST$TTTTTU$UTUUUV2VVXY[8]h_aJab8bHbdfglh\ikn&oo(o8pPp`pppppqqqrRrbs2sBtTtdtttuwxx8xnxxy"yJz|}p~\Rn~$v"X~Jz"bDhZ2BRb<L\ldJ0N"X@FV>DTd$4*`nтzָ^؂*۶$ޘ޼Z 4`8|D0z2v6R6.l>:pH.4~*NXJz z   * b   (  :d6pJr>j&>L b !."8"#$$X$%&'()r*D+.,,-H///0023$4484b4446`6667727\7778888b99;;;@;j;;=h?@@B>BNCE`FfGIKMNP*QXQQQRR*RTR~RRRS&SPSzSSSV4WXZ\$\N\x\\](]x]^*^~^_2_h__`:`j``b ePezeeef"fLfvfffggHgrggghhDhnhhhii@ijiiijjjmmnoq0rrtt(ujvxz~{{|(|}}~f~vrp,<: 0ZN^,<$,<jzhxhx >N6FVf8"2B ($BRrf ^ɤ*ΎӄT 4^n~ר Fp؀ؐغ.>N^n٘٨ٸ 6`ڊڴ2\ۆ۰.X܂ܬ*T~ݨ&Pzޤ"LvߠHrDn@j4xBl>h:d 6`Fz D\&xd0 z"t,BR  ,>Pbj  <   ^  $ x  N    2Z Z$Rx ^"^ R>nn*R62n4^R<j<j > n  !!:!h!!!"("\""#F#z#$$b%%&'(F(*,.</1b33526*7<8Z9:mmnnFnno0ovoppHppqJqqr8rrsDst,ttuuZuuvvXvvw4wwxxly|yzzTzz{8{||R||}8}}~~P~~LVLHf2,n420NDTNHFDbb2p$\D&XPPZ`:J"^8&T.zjN4l Zj,XRƊǬɎʚ˪̺Nπ"JЬpN҈:tӮ ^n,bf Rݐ `ވFߎP><T^82b!!%!! @  }CTX@ < :<:/??@&<  :8<8:<  !++N]>  %@9Ou!  %9  h+]+]+<<<<<<?<<r 88)^  1^ j7q+]]]]]]??.+}<<<10]]]]]]]]]]]]]]]]]]]]]]]]]]%#"'&5467&&5463267&6654&#"326YzkcBϝ-0ReymuE_GIa##MfQcc|SrBøєXt(|[FEh?K_^D"K*5WIYeZ'&@ jq+]?991053.0|Q`=@ '33@^ +]?|G_<DZCTX@  U U @ U @UUU U@    9/9//++++?+++210CTX@  U @ U @ UU  U@ U  9/9/++/++?++210@6;;I Y Tk dzz  @  O @ s@!#4 8@ ?_o$+]+<?<c`Ҋ~K|]Ya p@    @0 s@!#4O_os O__?_o+N]q54'#"5432#"&4&#"326p|aS}P66mƏ{z˥tx|}SznLp Vk4Ĝ&8@  << 54&#"'6632531$8wsZX6i$jM:;+b:i`tNJ`loQGW@W! !!%5 3EID!F$FIGVTz)%)& *&)569C%VY[!V)VIYVee%f)vzr$!&PS@ '0 P  HCKC: : +p++M'/H$@P>$$0p?8*$+ #@ 55XW+N]M]]/]???]99910]]%#"&&5463273327654$#"3 $73#"$$'&547!2#"&'&32>54&#"AQYirW9")5Vr}bX3CTdz@ra̶EU T8|qHa@qj@K[h؁?[]a'=P "g~ir啽 ɭ*'LCfAYgUU U@Y U U U/0gh ` YVPh         @ U   @ U   p@  @  @ eRP@ P    @+]q]q]q?<?<<.++}ć.++}9999ć10K SKQZX8888Yrq]++++++#3#!!&'3XݫF"3FDZw*@G UF#V#f#s iup s  ' '* **))& U@3U U U U U UT%& U U @ U ,   UU U U U@ U]+;\+++++++]<54&&#!&sfgW=8JKFm^&CZ:TYe^3'g`1RfMIo) 8kFRy1fvӵcj U@_ U 2 cpt  *(* G VWVhk{޲(9@-(9  &J& &  Uc\+N+]MN]M??910++]]q]++r#"$54$32&&#"326=כC,;3“\m憣1nU-銼Z@/ C& @ U U U  U @ U    UU U U U@ U];\+++++++]<<+++++]?<?rs^sg0pMQOa7" ع @4    U@ U U@ U U]    @ 4 UU U@ U U U@ U]  P ` p ;Y+]q++++++++]<<]+++++<<?CTX@  /33???910@$/*(% / 0 `  P  CTX  ??99@$     ee@ (9P@ @(9_@ P0` `+]q]q+]q+?<?<.+}ć.+}K SKQZX 888888YK(SK6QZX8YY10]q]]Y!3673A}."-׀pxx)Fv@&)&)&9696IGIGXWXWCTX@3+44 DD KTT [dd ktt { ?????9]99@  < <  <@Z         A Q QQ@Q +N]MNEeD?<<(7-@, * *) **9 67:*I*] ]*j i*`0 ) ( U'@ U((((D@ U U U5@U U+,*499,IH,VY+fi+v +74/$42!_)o))/? UU@U UU@ UE' 2 )aa U%!$U$@ U$ U$ U$ U$@ U$U$ U$[@'@&& &0&&9U&ֶU&19@ #409999@AU%"/$?U U U U U U U18+++++++]q+]q+++]++++++++<+??+?9/+++++]qq999910]++++q]++q%#"&546676767654'&#"'>32#&326765ZCTX@4 @Pp  U U U U/++++??]2]210@G CCSS``    jiju p  "_o@y0@P`p    $ U"$ +@ U@UH U UI$? U U U14++++]q++++]rKS#KQZX8Yr+r??9/9/]]10]q]qY#"4632&&#"326<r鉭Zj kl‚FU@  % 4 D 55WT RSgde c`+<<Kp.$ .:5 KE FIW V g     3%%@`@ U@ UU@UU U@ UU U@B Ut$?O U U U U U U4P+N++++++]qM++++++++++]q<<??S@U]] U eko e  U@R U U'1:1AMAQ\Ramaxx P`p U@U @ ܴ U U U @ '*4  %&4@A#403$@$*4?O U U U U U U47+N++++++]+MNq++q++++M?]++?9/]*o@` , %L E , &,#9 6J FVX h .#,'>#>'L',,6!6)?,F F!E)T!T)ic!c)`,,'!#'(@ 0`p}@2 E" 3%3 %@`,@ U,@ UU@UU U@ UU U@J Ut%"$?O U U" U U U U+,t!4P++N++++++]qM++++++++++]q<<??]??<10]q]q32676'#"5463253#"&32654&#"f 2Ct}vnэze۠Ꙧ}|zxXQ%2dZ7<ݘjx*a4@ U%5E @:4  % @364  @ U@U (U U @ U  U  U @ U U @ U U U N@464p%@364 U@U U U U@U U UNGP+++++++++]q+<<]q+++++++++++++]q+?#ǹ U U @M 4%    #  # # %%%%%UU@ U U@ U U UU U U]@ %U@ U U@ U U U@ U U U]@3#%?O@U U U U UU@U U U$%x!GP++N+++++++++]qrpXdL:&N_bX'l_:xxP>}@@< 4y   $@U@ U (U U @ U  U " U @ U U @ U U @ U @364   N@464p3%UU@U U U U@U U U@364 N]q++++++++++<<<]q+]q+++++++++++++<<? k U U@s U U  GHVYgi4::5EKKE\\ R]]Rmm dmmdw  [TT [ lee l  $@ U@ U@U U U U UU U@$%40 1@I#40$ U U U U U U U U@$%4?147+]+++++++++q+]]]++++++++++??10q]qC\X@ SS bb ]Y++++7632#"32654&#"D{'v i!>b@ -=K?  ) #22Bp ::JJY[ \\jk imk  #++5:FJZ   $  @ `  @ U @ U @ U  U U U U @# U t33%?O@U U U U UU@U U UG7+N+++++++++]qr6@ +*;Ky ??K44?DDSScc` )" +95 IF Zi    3%@`@ U@ UU@UU U@ UU U@? Ut$?O$ U U" U U Ut!4P++N+++++]qM++++++++++]q<<????9910]]qq#"466325332654&#",*Uo~q!xsvui;N.C>@;/#4CSft      (" "%@364 U@U U UU@U U UNG+++++++++]q+<]r???999999ɇ}10]r]336632&#">i?[^>BB;^&qH:'G?`r?>0@{"": J D$V"e"| $, 0K,U2 \\ \ \ \ \ jj j j j j &''&$'$)6$Z Y d&d(t#t$$ (,0 '(&&( U" U# U$ U( U" U# U$ U@9Z'%  & .@", U?O_oU@ U@4@4.\l UU@U. $@42@/UU U U U U U U[$*9** U*U* U* U*2@!'*4`22?222$ U U U U @U $ U U U@ U U U"?O147+N]qM+++++++++++rN]q+++++q+M+++++++++r?+++?q9/++]qr+]qr+99910Cy@@'-#,&"  (- !#"# ) (' +++<<+<<+++++*++++++++++]q]rq]732654'&'.54676632&&#"#"&?{|x5%ƙOA8*S}Z si|j/Vi}=kreD=#%2INGy(+H{gR\R7# $3A|\ZW$*ع #&4 @A#&4  +  "" % E E`p UUU U UU@ U U Uj6f++++++++++]q<<<??<<993310]++%#"&&5#5373#32LeclM,&O@ 4 4@34+$    3%@364@U(UU@ U U@ UU@ U U@ UN@464p % @364   U @U  U U @U  U  U NGP++++++++]q+]q+]q+++++++++++<???<99910Cy@    ++**]+++!5#"&&'&53326653?|^O nQQ;HmO5s1GQS9& CTX@   $U/+33???9105"9 @ 9 4444 @ !4(!4 @ "%4"%4 @~(.4 (.4 )( & 95 HG VVYX ffii xwwyx w   ,   (& 7 O@ @4@ 4CTX@  @ U U @ U U 9/++++/??910@7 %  %  /  "@@@  @@ @" +]]]9999?<<!4@J!4)( /99 IFFI O\TTZ Plccj {t{  &)+ 94,9 @#9:  % a+ a @ U + [@ U" @`@$ Ut ~Oo Ut!|++N+]q!4++++qY]C\X޲9 ޲9 9 = 9 @ 999++++++++Y35#!5!63!(sXOdoyjw^{ 9Q|*{@MG(44 4% 4')** %  %   %:%&:*':&**_i+ph+]<<<<<??9/9910++++q>7>7633#"33#"'.&&'9Ma  1H8&V8hD W]ncA_8b,@T aMdON5Tf= KEkt-.%D6ghPQY2~@v +N]2!)d+CTXA+@ @4 dH+++Y55Y&$?@ h+)++q55f[v&&"@0 0O0/0000H+)++]q5,&(Tj(@/H+!)++]]q5&1QKU@ UoO_zH+!)d++]]qqq++5c&2,#!)+CTX A+  dH++]Y55"&8@  A!)++55J&D@/;?;;H+;")++q5J&DC@999 H+9")++]5J&D6@&: :0:p::::::::@.24:=A>")+++]qr5J&D'@<@ Up<<<<bH+?")++]+55J&D8@I@ UI@ UI@4I@ 4IIIдH+G")++]++++5J&D@AAAh+A")++q55Po>&F7@U/0 H+)++]]qr+5K&H@!!! H+!")++]5K&HC&@ 4p H+")++]q+5K&H'@ @;5 @-24  # A$")++r++5K&H#@"@ U"" dH+%")++]+55.&2@ U4@"%4/ZH+")++]+++5#&C(@@4@"%4 H+")++]++5h&@  A ")++5 :&@ UH+ ")+++55&Q5&")+CTX# A+("$4O((H++]+Y5D'&R@H+")++]5D'&RC&@ 4pH+")++]q+5D'&R @@.24A ")++r+5D'&R*@ @U@ UnH+!")++++55D'&R0@/+?+++O++/+?++H+)")++]]]q5&X!@@4O p+]<<<<<<<<?<<<:+N]M<]]{?{@{AsIsJ->?@AHIJ)) )$)"1HC EB?9% ":/'<HCB?:9/'% 6'@-' <>+^2><)O++L"^><8E)OKq+N]MN]M??999910]]732654'&%.5467&&54632&&#"#"&6654'&'&'zifs$>uJxiG:ȥiY\q$87GCI*pPOdm3JI45CQE..FihF3+K[gL`DsAz`c<4,D`-54&#"YЂ$\d-@͠~/2d7Ll ['(g m[kpr3l?  AY6MiƇjH]HhF8(>r99<'PX">_!6@@6,-&')-)0+1 +++ e01/d/t//г&-4/b@.,..,-,+*).012601(3-,+*/))5b77 !@?b@!""".//6O  o   b b;b&T/b.@756!6b J bBb Az+NMNM<<<<??]q<<<]<<9/9/999.++q}910Cy@J<>%$%=&%&%&& %&%>#;,!! !!<%?, !! !!++++++++++++++++++++]q]2#"$54$"32$54$!2#'&'&##32654&&##jjӪ,,Li+1GcHU4$EMrS(G`hk}Ѥէ+/,-p?Y0q&D8$9:3@  036p !$/0..`+8b@O$$o$$$$2b@ ++++b b/b. b!5b'd b<b ;z+NMNM??]]q]10Cy@T37%*)&%&%&& %&%3*57%5!! !!4(26&8 !! !!+++++++++++++++++++++]2#"$54$"32$54$#"&546632&&#"326jjӪ,,T{Ëdw wuOspZhk}Ѥէ+/$}ʄcmJOh@] 95JF  i b@  b;;b b@ 0`ٹ.+]<<<<?<<<<<<999910]]!5!!!33##e|{yyJ/uTJOeȳ44@&4oooOP`S٧+NM?]<10]]]]+++3ޅ=nH@#<<<_o$p+N]M<<<<?<991053353=N@         ?  %  0   %   U >q+<<<<<<9/9/?TX8'l@Owvx % &D dsy%{&%& Uk:%E/)6#  =) &i(h+??9910]]]]]'6632#"&5476%.#"3276F^L{/-ڎ(`A>v}fDKUur@"#l vy+<<?<IlUk{`0H8 F0#A<"Yw=>w=2(,&):N9- C/| |@)ip) ih+]]??10]2#"&546"32654&uQceOPdeȰįȅr~uuzt*Y@%99EJJF%YVif|zt%&;. H@) +;::+';'''':*:)((::'(@ U( U/Ox@ & J(U U U@ Uj, (@((x)$&J)U)U) U)@ U`)) ))++]q++++]]++++<]++<<?<<<<]q]q?10Cy@ # "%& %&!$ #  ++++++++q]%&'&54$3 %!567>54&#"!5l9W^/PlW5`lP,Hd3cɏiC?`I]:?(&=gxHD>5<J{@5=9=HL)O9Z)^9z(@0"4%LCB%DH[VVS%iged#wt&$ U=U=@. U====F6....2: :'' F 2}@ 6%3=%.7@. U.@ U. U. U..?...ĵ+5$3+U+ U+޴ U+@ U+0+@+++@; %"C$  U " U  U  U  U  U  ? O  K47+N]q++++++M]++++M]q++++?<]?<9/]9/]+++10]]#"&'#"&5466767654&#"'>326632!3267!&&#"326762Mh{c–fiWx9iăf;(@sbCXgHz~Om,;jesE`ff`VN~e*MUuN2@FI}*Wvk"'"/LGarU4dg!+@", %FTdU(!"FI LLEK&Zfdf""+,+/"; =8&T-X \^&" !"!!|y!y"#j!i#z zlfm&u;"EJ&-,"9M CIF'z"v#"d mmh"""#@7 !}!#"(-(,  % [[% ($U U U U U@UU-4-@5 4---- ----$U U U U U@U,3+N]q++++++MN]q++]+++++++M??999999999.+}<<<<<<<<10C\X޲ 9!޶9""9#@ 9"%9@9++++++Y]]]]qq]]]]]]]]]]]]qqC\X@)"#"#$ ""-]q]qY]q+q]7#"''7&'&532&#"32654'&c`k?zi^l;(&R[d4?Nb FVFdԍqPGDDm- *Fʖe?L9*SO&"@7|k|`k]]KRLK:D ')"@!<^l $$<"^"^ v#+]<]?<71$7wrYY6&"nM:;+b:jatOJ`ll& vCTX@ <:<:/?/10@#< :8 8:<<  !++]<?/10KSX <F&7igq3x2*-@c$ #+$""%+-// "%!"%&!!5656EFEFVVeevv )-  )-$ #' p    : + p  '>$ >$##> > i/+>>>>i.+<<<<<<?]]10]]]]56323267#"&&#"56323267#"&&#"3j<{EE#A6@R .5@m&W DD#K&K*D-K2D4WWS#_&_*S-gh`$l&l*c-\2T4R[23#;&:*3->224 (% 53/+ 3 %}@& /@(@@3 U U U?IJ0@UUִ Uд Uִ UUU U˴ U U 4@@!$U U U U U U( U U?O647+N]q++++++++M+q++++++++++]q+++?<]?<9/]99999910]]]]]%#"46326632!3267#"&32654&#"!&&#"Lzu3@|c +볆G\WM-K vxcd sX]nӦooiĺa~bo[@5 z+N]/M105!sʑ[@ 5 z+<]</105!ʑSZ @\~~llZZ      < < P@/o8< <@4u8<<q+N] @4 u<8' jq+]<<+<<?<?<9910qqqqqqqqqqrq]53'667353'667W+[,65+[,65ѥ;Q)G_Sѥ;Q)G_SQ ~@6{ Zl  <8oP@8'<  y+N]º(z-Q0X[RM`Eb:xLl*1FXQe\H,L9@ 9@uu< 0jKZ+]/10]++#3# ;9\H!4@uup+]<<<<<<<<<<<<<<<</<<<<<<<MHDFJBM7!+5#2-)+/'2 T;QN?QGEILAI9 63$6,*.1&.  +++++++++++++++++++++++++++++++++]34632#"&7327654'&#"4632#"&7327654'&#"4632#"&7327654'&#"@YaOA; +,"<>!-BOA; +-";>!-OA; +,"<>!-6 ǵǺŘj-/.>ǵƹŗk-=>/.>Y,&$@j@oA!)d++r5,&(kj*@ @ 4 / _  H+!)++]q+5Y,&$?j!@ 4 H+!)d+++5&(lG@ U@4@ 4@4H+!)++]q++++55,&(Cj(@ o  @  H+ !)++]qq5,&,j+4@"%4/ZH+!)++]++5Y,&,j2 !)+CTX A+@@344@4aH++++Y55&,@ H+ !)++556,&,Cj9!)+CTX-A+@@4@"%4 H++]++Y5c,&2j$@4pH+!)++q+5c,&2j@ !A"!)++5c,&2Cj$@ 4PH+!)++]+5",&8j+@@ 4O/H+!)++]qq+5",&8j'!)+CTX A+5H'+Y",&8Cj#@@4H+!)++]q+5z&j @U% U U U U@ U U+++++++]<<+??<1033ƴ&I@d<=@ 4dd<h+NM+?<]<<<10#3#XqT@@ :??@  v Mv!z++NEeD?M910Cy@, %&22  222 2+++++<<+++]&763232673#"'&#":9Y>k;# "mT?gC"h>>6#4rr8$/_#@45h+N/M+105!p˔.} KU @ @@ A+]NM?<,+?:IjkLMjkO/@@--@?k[A : OZ@ : vM>Wy+? @^&>k U4Ks u:A@!<r<rp+NM]?<<M[4z-cxYKDT.w"xeV(H@d<=@ 4dd<z+NM+/<]<<<1073#3gn+ @     @$    T  e] U U U U U U  ;\+]++++++<<<<]?9/9/?<<10573!!Lf5{|ҭ @H p       E  @N 6 U U @U  U U  U U U @ U  N GP+]+++++++++]<<<<?9/9/?<10]5737#>nnss)\&&6(d@ 11H+4!)++]5?&V@ p11H+5")++q5)&&=d@ A!)++5(&])")d+CTXA+A+Y5QYOe~@# v  !++N]</l*Q {j=@ u  a '? a@:) )'h+NM<?]999CTX99Y10q]q676$7654&#"'6632!)? %FDBA;-S#99V)+0>/CoivUTK8s=$y!+v@##M'0a)@ '_o?a@) ')&)'),h+NM?]r]9/99910732654&#"#7654&#"'6632#"&! +;GVHW QK<;8?)}xGCYT<N72<n<+%4,:jTkP7VeD]ok *@/,3!?&D!T!(((@!(),+   @ :/?Ma(a)a@ **' 'c@)":**)i, )D+Wh+<<<<?<<]?<<<999999.+}ıCTX&*)99Y10]]q356673676$7654&#"'6632!M6fz>/l=*> %EEBA;-T#9 *Q {j=89W)+0=/BpivUTK8t=#yk @   )+::Vf fv@   @  :d@-' 5_5M  5 h+N]M<<<]<]<?<<<<<<<</lzhh9 *Q {j={l!-8;3/=@'=<% 23:% 1:20M @  0 @/?_o_oa a+@35449677/;9d0/.32@ 88.. 0@;1108:5363.)8N=)"" )0(((@ )")<|f+NM]<<?<<<<<<<<&V:2 )+CTX23..A+@ 3333343.&D@ 8'H'8 )++Z&&'d-@@U@U@ UH+!!)+++++5G (4@06'SS'bb'56-!: I CEI(Z j - # & C@4@@&H H @1#3   %U@UU U UU@ U U@> U@`t$ U U U U" U U?O)4+N]++++++M]+++++++++<<<<<&H='@`PH+ )++]]]5&&(3d*@ @ 4 / _  H+!)++]q+5K&H@  H'!")++*,&/Rj@  pH' !)++B&Od[<!)+CTXA+4@ "%4/ZH++]++Y5*  Q@3ee Q Ue    $U U @ U U @ U  ;\+N]+++++eclM,5F{"E*t0&&7d5 !)+CTX A+@ @%'4@ 4H++++Y5# "@*ol```ppr   !-@$@3 @@$+!  "0%EUU UUU U@ U#6f+N]+++++++M<<<??<<NM?<99993310]]53'667#"&&5#5373#32EHN-31LeclM,"+&8>;@:<4}?r+55CTX A+55h'+Y&X@ A"")++55",&8j3!)+CTX A+@ `UH++]]Y55&X1 ")+CTX A+4dH+++Y54),&=j(@@ 4YH+!)+++]]5(&]OiH+")d++]5)&=0j  H+ !)++]5(&].@@ U/H+")d++]q+58@  $UU U UUU U U;+N++++++++ @P "7GVVv u IFFI[TT[h h gy  %*5:o`  UU Uk@ U U@G UB7"@ U  U U  U % U  U? O  4!]++++++<q]++++++33????9]10qr]q]3#&'!"326%"32654&F;F;+S}D|&~d^,!eg#ĿH,@;X Z Uh h xEJJUZ '(78E3993[  ko c `coo`~ __ P PP_ZP+k j @3{0@[k@@!@ U!@ U@U U UU U@J$%40 1!@ U U U U U U U U?1 ]++++++++]]++++++++3/3/]99]r9]??3?3910q]]]r]]]q!!#"57&'32654&#"!dվ]Rzf@ Aʪܼ˼bc>$@7&_&}}&&!96"uy!!  @ 4? @ p  #@+  @ @"4  `&@@U U UO4%]+++]2/q3/+339/9??9/q3/]33/+3910]q]&#"327&#"327#"&547&54632={kXQxt# opM{h]^6F]nEGam~LSwD>$@=6699EEIISXTRT^ejdddm   $U UUUմ U U@! UP`p0@P`p @2 ?$ @$%4 U  U U  U U @U U  U U ?  1]++++++++++q]]q+++++++???9310]!#"32"32654&߅#K_&|}±.&@ P ` p O  p%U U U U@ UU U@- U p@p J/^]^rq]++++++++]]?L<;Ol#67!5!&&'VcM^g;L<;l%-0lea^vSh;5367#&&w^`elɐ/.%L;g^McVOn#67!#&&'56673!&'3^PE}}EP^^PE}}EP-++-,Ug3&'67#&&'5566-,,-+^PE~~DO^^OD~~EPg3&'67#&&'5566!!-,,-+3^PE~~DO^^OD~~EPbjk3!!jded#!F@  #!! "y+NM<32#4'.#"% D|wנE  5o\\s.mE}b]4t?rvLPh6r: j@< %?   %0%   WZ+N<<<<<<<<<</ON?2abu u??e!00!"//"!00!"//$$_dd #/! ! 4&#"326%4&#"3263267'#"'vu/"!00!"//"!00!"/2ba2?NOu u"//"!00!"//"!00_dd_$!FU/;3!!#&&''&&'!5!66776674#"32LfX"4I&P|9bkLpP3BD P BE0$e\$,-U?G5_J`]E2H9 Q>=3TjEjT9F=,-I '!!#!5!"&&546632"3254&&5;4gv~~n;I;yzzyoT&#"&&5432'"3254&&$93NXh v~~TfEK25yzzy:"#"&'!726'#"&54766766!lJ\N1K-TZ!-0IClE`a]c %%__[I;R6S73!!7676654'#"&54632&&5463267632#"&'&'J6Qg=[t^"#"3o|rvt3FG)rmYb(tx=3%X=)?&&'&'&&5463267632bsy.)mnQ=&!R>M[wh[|#N>CU.w=vgP~FfW@U6 UOp ~ E  E %U@U U U UU U@" U N]qr++++++++<<<M[uhet"N>CU.w&Q! A/+5]@^;4 ?A il{uru $$/q  /& $U Դ U U U @ U  V  UU U UU U U]+++++++<]+++++/]/?<@J$4Dr    %U@ U U U@ UU U@ U@364pE%@U U UU@U U U@364 N 9]q++++++++<<<]q+]q++++++++<<9?&U%/\&&6Ld@ 36A2!)++5?&V@ 36A2")++50@&  0  99   /@ UU U U U U@ U s+]+++++++<]<]<<<<??<<9/<<10]!5!!5!!!!#JHu #&4@[#&4/ + + 4 U 4 U   3  "" %EU@U U UUU@ U U@ UNG +]q+++++++++<<<<3/q3333++99??<<9/<<10]++#53#5373#3#327#"&&5%@ /I=jslU>Hu"&8d@ !A!)++5&X @@ST4%A")+++q5"&8d%!)+CTX A+H++Y5_&X@  A)++5"&8d@  A!)++5&X(")+CTX  A+ رH++Y5V""3XX"$@*4:;4!6"JJF!F"XV!f"v" " 4]  @  ]@ &U@ U U U@ U  P`p]$& UU U U U U UU 4]#;++]++++++++]]q+++++9/]q3//]?M[vebyIt۴NG*GT.w=xeFqPO^NW&%r "4'@ 4 4@@4 &5Dw*+ E #%   @pE %"!#0@%$@364'@U$(U$U$@ U$ U$ U$@ U$U$@ U$ U$@ U$$$N'@464''p'''''%U@U U U@U U U@364 N&GP+]q++++++++]q+]q++++++++++++<99/2//]<??L\uhbw|~;nS[0N>CU.wASPSS/SpSSS AAAA/qr55/]q5+55+5@,PDH+QRPSKO4S@``4S@884S`SSSSSS8?4S@ ,.4S)/4S'(4S#$4S"4S@4S@4S4S@+++++++++qr+++10+5Y,&j@ A!)++5D&X@ N%H'N")++S,&j@ 42H+4!)++5d&6@ ,H'/")++Y&$@<<+NM/<<1053Yv,&:Cj A!)++5&ZChA")++5v,&:j@ H+!)++5&Zh@ H+")++5v&:l+!)+CTX A+H++Y55&Z@ H+")++55F,&<CMj@ H'!)++!Q&\C@ UH+")+++5[ GP@ < i ? +N]J)yzk !-8@/:{wB\4@';4?%6a@ %/%?%%%+a@    }0a@  ")'.) @()'3)::9  )F9Wh+<<<99NM?<<<<99/]9/9/.+++}10]356673&54632#"&54732654&#"32654&#"M6fz7.l}F33IH67@GPVDFL9 *Q {m=/sPokVs-)j~d244-.7:E5:DE""6BMQ@/Oi&f*{&w*&*B\4@';4?!--:##Ka@ :/:?:::2@a(2a@ ! 0da!@/?_o_oa}Ea@2  7)%'C)5@/=)+'H)/OON)" )0(@' d)")N|h+NMr]9NM9?<l ` ٹ+9<</<<1053'67J^6]un&T(kk[K@ M   1@:M/8)j W+NM<]]10632#"'73254#"#|?M ,+2nHMt uLCO Z@8 @ P `  u@,/4_P/r]+q3/]3/?]q<<103#%3#%3#[u<֭[UUU U@e U U U/0gh ` YVPh         @ U   @ U   p@ RR@4@ 4T  @ eRP@ P    @ +]q]q]qr++?@'O_  b V b V ??9/]q10!!!!!!#^gyY&&c2" @4 U@ U U]   UU U U@ U U 4] @ U  P ` p ;Y+]q++]++++++]+++???10+3!#!~F 3 @< 66   &- 7:? I ij xx   U@ U  @6U U       1  ]<<<9??<<9.+++}ć.+++}10]qrq]!!!55y <!/07F< I;0 @J@O I@@`p  0@ 4 4## 44 ]  @ U   U U @ U 0 @ @ ` p  ]@ 4@ U UU U U ]]++++++]q]q+++9/+<<????9/<<10]++q]33663#$uO sb ;5 aw@[XYXW [TXXzu \P od v % KKFE   * ; --  ::@ U U/Ox@ & JU@ U U@ UU U@ Uj_ @x&JUU U UUU U@ U` ]q++++++++]]]+++++++<]++<<?<<<<<qui>)@Wrp %5F   %@ U U @ U  U  U @ U U @ U U @ Up  N%@U U U@U U U@364 N 9]q+++++++<<<]++++++++++<<9?9V=&L@ N% U U@ U U EG +]++++<<??<1033&& Z U U @> UD? ZYii   (8XYJ@  @R U%U U%  e     Pp % U @U  U  U U U U @364   N ]q++++++++</]9q?<RiE>  @dk jj`_bjl blP__ P_9579IFFIVWX Y h x    $@ $%4UU@ U0` 1@ #40 %@ U U@ U U@364 N]q+++++q+]]]++++3/???910]]]]]q32#"'"32654&s#i."}@VQ>"@K')69 FJ   & 7 G v  ! $ U U U U U @$%40    1$$@:#40$$$U U U UU U@$%4?1#]+++++++q+]]]++++++3/39/3??/10]]]&#"#"'732654&'&&54!2*pp‹|FަCU,:+`nO~Y${#t3%AsK S;69/d&@9DDTSP[cjs{ p  % @U U U @ U U U U @ U p  N%U@ U U@ U U@364 N]q++++++<<]++++++++<<?53#.5z05Mδȋ.&gYb ʗDW&$U@I&( &9H@&S\]Sdknavzuz$$&&& HH   00@#  P  0@ U #@ U@ U UU U@)$%4 0 0 @`1&&@ #40&&@#@ U#U#@U# U# U#@$%4#?##1%]++++++q+]]]rq++++++9/+qr99/9/????9/]910r]3326653326543#"'#"5c@p%%q@b۪ab&d~7{cհI"&( ")+CTX A+H++Y55&#@p A")++]54D'&R@H+")++]5&# ")+W&&@ %' A%")++5&(^  !)+2@*fv" ]J  J& д U U U U @ U 7 UUִ U U U U Uִ UUT+++++++++<+++++9/???<9/9910Cy@  66 66++++]!!632#"'732654&#"#!2hLR8c˲!%^X U,&=j@ H+!)++5dv@+;]o )) ) 5;5 ;GKE KVT V Tj wyx   `p T   &&b/ -& @U U  c\+]++]]q9/??9/9/9/]10]q]!3 ! 4$32!"Y ^Y 836S Kt1GJ23\6,5&,( !)+CTX A+H++Y557a- )&=@b&&  H@  U$U U U@ U U@UU!& U@$%40 1( @ U U:@J UU-'++++]]++9/]++++++++<???9/10Cy@,$&&%%#&, !6$!6, 6"%6+++++++++++!2#!!#"'73265!26654&&#!^bɾ+j@Z!0"BBjzW]ohM wc)w`[{&D@/+     U U U U@ U U@"UU& U U U U U U@$%40 1!  UU U U U UUU] ++++++++<]]+++++++9/++++++++<<?32"'&#"#&&##"#67&&'&'&#5632kS=OW_  ]-.;@^Y.by`b .OdE?--YN e`P?Ti~iwQ--s&(Rer' k((OwdN&@SN9Fe!uKZt( @P`p ?O_%0@P% H %HH@% & U U@UK&" U"@ U ""\(&b&1']++]+++9/??9/9/]9/]9]910Cy@#$6$66#6++++q]]q732654&##526654&#"'!2# N]mo32"'&#"#&&##…lT=OXp  ]-.;JfG.el~gĐwQ--a'{R  b H@  U@U& U U U@ U UU] U@U U U@ U U:@ J  U U U b+++++++++]++++++++???10Cy@ & ,,+++!#!#"'73265 +j@Z!0"BBF wc0"+c2! @ 4 U@ U U U@ U9    UU U@ U U U @4]  P ` p ]q+]++++++]+++++??<10+!#!#F 3fv&07 @fh@ U@ U ] J H@   \\9/]9999??<<<9.++}ć.++}ć10r]r]33#"'53267 g{KmNWGg>~ք#-[R@I !!O!p!!!%++%{ {0 o   ?p &U U@ U?oó &U@ U U0`p@   @   @ U U @ U  O  /]r+++D[D(@E9 5%9'I F%H'YYU[Q%\' = & #3  & $*@ U*@ U@U U U@ U U UU@$%40 1*@C#40***#$ U U U U U UU@$%4?1)]++++++++]q+]]++++++++++???9910q]#"6632#"&!264&#"326 IsߢGDrp(2kTVeeO$ P໹&#2@6%/%F#+##++ $ UUU$ U U U @ U U @$%40    1%%@#40%%% U U U@ U UUE$++++++<q+]]]++++++]+++??9/9910Cy@3!%% & !   " <+++<++++++++]!2#!326654&##32674&&##k??Kc Ļ!sVDwrBju&3_Lq&^gI3TBGW3W&d@ + %U@U U UU@ U U UE]++++++++<??10!!#cQ&ol& ;@ +  + @ U U U U@ U@    %@ UU+@UUU@ U U@ U U Uڴ UU@$U?ON+ U @U    <]qr++rq]+++++++++++9/]q++9/]]+++++?<H`&8@9' %%:/:?:`:p:: ::0:O:::::4;!!!533U3@JU3+)'))'U+% !!%"#""#53') %# "7 @?.3 0 H"!! %'5)3/#! " @  (@ %8 UU U U U@ U(@O//"""P"""p""""39]qrq]q++++++<<]qq9999?<<<=eI%W7 QD2b>& @] (U ;P`p    @HH H ! $!$U@$%40 1(@ U@[']q+]]++9/9??9/]q9/]9/q]910Cy@*$#&!$! "%<+++++++]]q5>54&#"'!2# 732654&&#"rrSJaM=P2~PPл:[[yLVq P\& R@Vg{@ U U@9 U U+ % @U @ U$UU@ U U UUU U@ U@364N @464 p  % U @ U  U @ U  U @364   N ]q++++++]q+]q++++++++++++CTX9999Y?@K>??DD /,//L^z KK ?{{@ U%   @* H    I %U@U U U U UUU@364 N]q+++++++++<]]99?<33'"#&&##VEC5BV_$2G+)DGtp;X=&5B~PmhP!Ic?#&F@+3  %@ U@ U(U@ U U@ U U U U@ UUU@364N@464@`p%U@UU U U U U U@UO_op | +9/]+++++++++]q+q+++++++++++++??10Cy@ &% ++++!#!#"'532665D#lf?RO80&vX2&  U@v U   FJEJ VZ      xx     @ U + U@' U+      %@ UU U U@! UU UN? %@ U U U@ U N ]++++<]]+++++++<9?<<R& @+ % @ U@U UU@ U U& U U@ UUU@364N @464  p  %UU@U U U UUU@364 N]q+++++++++]q+]q++++++++++++?SP>F&&@/ 0 @ _ + WW%@ U U U U U U@& UUPP`/]qr++++++++??<10]!!#!&_&o!Q&\KiJ)5D@bX  77[\ USY Y"Y&U,V.U4jj edj n"n&h(f,e.f4yvy vv #0'33!3-  U% U@ U$$ U U UU@$$%40 17@7P7`7777 707@777@4#4077*$ U# U UUU@$%4?16]++++++q+]]]]+++++9/++<+<???l&&aTYEl& @+  + $ U U U@ UU@7$%40 1?_ %@ U U U UUU@364 N]q+++++++<qr]]]++++++??9/10Cy@  ++++332#!732654&##>l&aTYEl+>S}@9@ UU U@UU7N+++++5>}@^ 4GZ_ PSS_[no eccon"+  $U U@ U U@ U0$ U U U U U @$%40    1!%UU@U U U U UUU@364 N ]q++++++++++<]]++++++9/]q+++++<????9/10]q336632#"'##"32654&yڴZ|{&D*˷̽& @& 4 D [T y $   U U@*U%    ++   %@ UU@ U U U U U@ UU"UN ($ U+++++++++++<9?<@:EUUk l ls s { tu_o "0@` @H 4+  $$7$U U U U U U@UU@$%4?14 +N]+++++++++MV<L :&@ UH+ ")+++55Q:M&" @$+"" ++ +  % @ U U U U ٴ U U @U@ `   $ U U@ UU@$%40 1$$@#40$$ %U U@" U U U UO_#]++++++q+]]]+++++9/]q+++++++<??<?9/10]32#!!#"'5326532654&##D> 'ohoG(?([k&a﯐G NnSZFk9&@(+ +  %U U@ U U@UU/ $ U UU@$%40 1@ #40 % @U  U  U U U U @364   N]q+++++++<q+]]]++++9/]++++++<99<?fkl)&FgOTBe@  %5Fz@2+4    %@ U@U (U U @ U  U  U @ U U U @364   N@464p%U@U U U UU@364 N]q+++++++<<<]q+]q+++++++++++/]/?@ + + U U U@U_o% @ U @ U U @ U U & U U U @ U U U @364   N @464 p  %UU@U U U UU@364 N ]q++++++++]q+]q++++++++++++9/]++++?<??<10!#!3!3.&nP@.U U U UU  UU U UU U U9+++++++9/+++++??/103!# @#+ %U U U UU@U  %U@U U U UUUE+++++++9/]++++++???103!#w0&o&A[@ /105!Aʑ@ !%:@'(/'  U@% U7fu8* f@(*M#"5$%u UU U@ U $%^ b@^ U>' UU U U&++++<<+9/++++<99?<<1_u=3oZ\%)gvۍG2)1v@,Tc   U U@ UU̴ 4 2/+3/++++2/?3//?<10]%3!5!4&&#"'63  BAjX1@V#/8 4K Y j {  #      @ @ U U/]++2}/]323/833/99?3??<<<|9/]399.+}ć.+}10]#"#76634&&#"'632bI{R;TKIVG=0Ca4o[VY6 f-%Q@   U U@U U̴ 0]]++++?1@ )6ZZij @K   U    U?_ @ U U U +++3/]+3/9?<<?B @*/7GSYY S S\\S  &@ U U@ U U@ U U U U UU@ & U@ U U U U UU+++++++++++++++++??10]432#"732654&#"Zؔpј6u1%@5 yyu u ;i@6U  U 3/]3/9/+3339/?<;+\%qHHn{mNL7YI(1h+ ; I @  / @ U UݴUU++++3/]3/?3??1088]63 #4&&#"(B>k \d*%!@F+/#15==1HHY\Zhjju r tvy! !@UU!U ! Ƶ# !"229/+++?<2 lg&&&&=3oZ\%)mpۜ>%%%%2)1& @ `A)++]51&F(@@$$ $P$$$$$A)++]q5-%&N @  A)++]5@1& @@pA)++]5%W ӷ  @U U@CD4@=5O@ /@4/+qqr++++??/10#2#"&5466š%&5&%%q&&+)%;%"@ $$Pb@ ' U  @+ UUU@4O@4̳$ /]+/]q++++3/+9/??/]10]"#54'&547!5!2#"&&546; %&%0TfjJ1q&&&#1@;&@ (!A)++5%f @  @"U U( U@CD4@=5O@ /  @4 /+qqr+++++?3/]9/10#2#"&5466š51#5&%%+)#1,(&(h1&@ A)++5PV7&("@ U"`"p"" A)++]+5<F&97!U! U!!@ 4!A)+++]++5P>1&?@ %A)++5<<1&b1 U 4A)++]++5Z>B (@!/*\\S 7GSYY S S"@ / @&O&_&&&&&&@ U U@ U U@ U U U U UU@ *& U@ U U U U UU)+++++++++++++++++9/]q??9/]qr10]]432#"732654&#"2#"&&546Zؔpј#%&%06u1Y&&&#1nh1(@ "4 4IK[)8=@!!l )  (4UӶ%U%@ U%@#&4%@4%%  U@ UU#U/@*  U U U )+++]++++9/+++++?3/?9/3/1088]]++327#"63 #4&&#"2#"&&5466&\-6D?~b %%&'z 5uN%%&%s7 -@MKz//==!@((l   #4>%+@ U+U+@!#4+@4++&UU U / @U U  U .+++]+++9/+++++3/3/?3/?3/9/3/10]]632!"'732654&#"327#"&52#"&546z8q.b¢TR{ 'Bb %0$#105G?Ĭ{I%$00$#1 f%&e+ U@ U AG )+q+++5h%&:@#U#@>C4#@374#@4#p##A)++]q++++5(1& @ UA)+++5d*%!.@Z/0 yjju r tvHHY\Zh+15==1"@((! !%Ӷo,,,@UU!U 0! Ƶ0 !/229/]+++9/]?<2 lg=3oZ5k%)mpۜ>$  ///10#$H %@ MM  4@   @ 4ض@??4@44 @4@[\4@&)4@4" 4 @+-4  @ @+-4   @+34 +-4+-4ַ"+34/3/+]+]+2/+]+]+/+3/++++<<3/+++<+</10]r#'7'77'$H1111m1111 _@6 rrr  "()4@ 4/++<<</<<9//10'7!#!'71GQ11b1Q# z@. @ 4r  r  r   ޳()4@ 4 @ 4  +++<<</<9//10+#!'7!#G11Q11C 4 4  4/3/+9/9/3?3/++310#"&54767P?MfX+V!;75Tkp7=76(G660] 4 @ 4 @  4/3/+9/9/33/?2/]3/++310#"&54767#"&54632P?MfX+V!;7C00GF11B5Tkp7=76(G660"/EE/0DBC'3̳4@ 4@4@ 4 %@ 41+(. @@4""(.$/3/3/]3/+9/9/?2/+?9/++10++#"&54654&#"'4774'&'&54632#"&54632$)@2Bn@4AS*@* =J~ KxI41HI43F>/5B,DD"*I51Lt"izBR 48BpYol3IJ24IJy3$ 4!@4@4# 4# #   @ ##&@ 44 /9/+3+3/3/9/9/9/?3/92/9/+9/+910++'6767'&54767632&'&#"60bq] t3(0>PQK1 (4%='0h0%P+(#FZ/:@ 9 %# -3 4339%%## @9 0%5)#0 4005@ )@ 4)) 44/++2/93/+2/+9/99999?2/9/9/2/+9/9910'#67654&#"6763267&'&5476324&#"6V.:GW(  ."&E?'+5&G %A"  /)C6$B % #F7B*/ //4&U&F[E  4 $/<3/<?3/3/+2/10%4764764Z,S4Z,S[/,#Q,(";/-#R+*#Fb1#$/3/?3/104764Z,S1.-#Q,(#H(' !@ 4!!' ' @  '$$ $4$4$4$/+++2/3/2/99?3/9/3/+9910'##6767&'&54632'4&#"6S2J2I5G@!M-*  K& ,}$27H83'Be8()7 ]."F#$/3/?3/10%4764Z,S0,#P+("F(@%&!&@ 4&&! &%%4 4/++3/23/299?9/3/]3/+9/999910#"&'#"&546773276773276573 #** +  &K06 $ 922 $ #8K1 2(+/FQ -  /3/?2/10#"&546324&#"326Q\C66P;6Jb<6MwZWD-# | @  4 /3/99+/3/10&'&'667U0 U#"89&Wle0"D[v_1,.%; @ 4 @ 4 /3/+9/9+??9/10#474'&'&'7":-O(J`O0D#*ZwsԸ~@Z_Qs%! @ @4@4 4@4@ 4/3/+9/9+3/++???9/9/+9CTX@4+Y10#"'#'&&'7327677!49h 8&L0BC4_jp+ nBHP/OԲCU_.TK)k#]%) 4$$ @ &A   !!'&@ 4&&  @ 4 4/+3/+9/9]33/+9/????9/9/]9/910+#"&'##4'&'73276733273_c9T"hI% (8D4I4!\UUeJ9mL]o%XKFGLD??DY ")=9<3B#W !-.LdMbDG)+$ !HBAM)0 !@@@4 4@ 44/3//2/10+++#"'&547676324'&'&#"326guyFP,2FV\vJPCe]/B,$E?|zq*0[Qbx9B7-)ZIHR&#I@G(o( 4' 4 4 @ #@4##/3/3/+993/??9/+9/9910++&'&'&54767#"'&5465732767G&A!8$0J/0&$.jOcU .$+%=[o:=  N!"7%g3WAnWH%@ 4&44 4@4@ 4   4 @    G/333/3/333?+??9/++9/CTX@ 4 4 @ 4+++Y10+++#'376)@ǣ$eb? 'YV^3=1@T4&44 4 4 4  4@   G/333/3/333?+??9/++9/CTX84j4 4+++Y10+++&'#6763$1+ *[tG[WFV]) [/@Z'*. 8 P@ 4    /9/3/9//3//3/10]+#"&54632%##"&54632L76ML77L>mDL87JK66N7NO65JHGz6LL66ON0"9 4 4 @  /3/9/9/3?33/+3/+10'6765&'&54632&;"J*E)1%)K69VUI;9!777-( $<6MP:dgs 4#@2 4 #0qe6kY 4B 4YBGN,9ak*qFU;`kGq 4qqTGkkkN@ 4\ 4 \_QahKn? 4&@ 4?&,P333FGTUn`ah;*n,ah@ 4hh9,n@/3/+999992/q99++99993/q99++?3/]3/+9992/99++999999++10#"''#"'#"&5467'#"&54767&'#"&5463267&'&546327&'&5463267632676324&#"326d,!5JJ vV%4j  ! !$"!.0$VqC!;+!+*",k3=z;E(* 3#'"D6`*<  it8K`A2k۴qF,{@# 4 4! * @4 *@ !* 4.',/3/9/39/+399?9/?+9910++7#"&'#"'&54732654'&'326Bi\AJk0,Y/_=APM(0AWP)0@'1D=+Gжxiw%47_q 3'J|+CYRgJ@J-{#y 4 4  @@4@ 4###"/3/3/39/39++??9/9/9/9910++47"&54676632&&#"3267XGQNK;v-5sK IM1}l_V{-b^hDM-.?>/YJRV_ C26<"8"Xa!!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ FW:ι@ @ 4 @ @ 4 $*783./#*//$88$$*3* @ 4 /.'$#877/#$$/.4. 4.$/++3/23/299/+<3/<?9/3/2/9/99993/+3/3/+3/10476476#"&'#"&5476773276773276573[,S\,S3! #)++   &W.+%P+(#>0%P+(#L06 " 91$$ #8K1 2)-1!!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ %/?10!5!a%!!%!! @ !!%!! @ !!%!! @ : $($44(4@ 44 4!#"$$%'&((@ o     A "$!##% &('%%A @*  4 */2/+2/9/9/993/993/99???93/]q993/993/9910+++++!"'&547673!54&'7'7'7''7Fr*9|oO6AM, DEJLJM"KN%CT]a#b..G8vA:p27pTVZU: 44 @ 44 4  @ o      */2/9/9/993/993/99??3/]q993/993/9910++++%'7'7''7%!5!4'&'7JLJM"KNKNH8TVZUv>+Q[3M!!!%!! @ !!%!! @ !!%!! @ !!%!! @ 6N u,04844.48@4) 4* 4y* 413244.57688-/.0@ 400  241335.0-//687@5@ 455 :'*/3/3/33/999]9/+993/993/99?9/99?999/+993/993/9910+]+++++"&#"676323263!3#"'&'&547676'7'7''7L@P4Z(#KB_Ep%Ӕ{F:؏XdOBFJ6F4@4J@4 4 * 4y 4GIHJJA?B@@CEF@DDD84=)%03"4-%%34=DFCEEAHJIGG@BA@?@4_????83@99""3433L))*/3/3/33/999]9/999/]+992/993/99??9/99?99999/]CTXDD]Y992/992/9910+]+++++#"&54767!3#"'&'&5476767&&#"67632326733'7'7''75yf WXoF:؏XdUB%(Y$e?n"%SaM3a5()4!:2KJLJM"KN%Zh':$4%DVll^ (0jyǫdSZ b&T%  8RۑTVZU=k"44"4! ""   "!@ T 4$/9/+9/9/993/993/99?<2/93/993/993/9910+++!5!&'&'&#"676323'7'7''7=}/fFWHQS34/DhfEy+TN}Mb@()qzJUel/ *""sVj[Z4bZHnF)"+0s~9=XpTNT&m,!%vE*ֳ4!4/4,40 4.@ 4;k= 4 44(4(ܳ 4(@ 4A(#A "  78@ (_((( ##8@AA 8G   4 */2/+9/9/9/]99?<TNѫF;@()XG=5!I/-=-{RZ,Q1 3ow%9=XpTNT&m,!)1YC.&Z4bZHnF:#0CA8<%Z9&3T)i? 1dk%'@4 4;k 44ܳ 4@ 4   @@o/_  */3/9/]]]99?TN}Mb@()qzJ%j[Z4bZHnF)"+0s~%6ܹ/ֳ 4& 4441 45 43@ 4T+T2D+D2; k $ 4 4-4-ܳ 4-@ 4-"-(A ' "@ ---((8*/9/9/9/]99?<TN}Mb@()XG=5!e9&3T)i? 1dk)1YC.&Z4bZHnF)"+0CA8<%%,7@04/ 46 4@4 4;k 4*43 2 -... 4ܳ 4@ 4, A   %$ ,@ . 22@( A 9% $ 4$$( */2/+3/9/993/<?TN}Mb@()qzJUel/ *""sVJظ] j[Z4bZHnF)"+0s~9=XpTNT&m,!OYN?j$~FO%vEP3@I4H 4O 4*ֳ4!4/4,40 4.@ 4;k= 4 44L#K"FGGG"(4(ܳ 4(@ 4A(#A "  78@ G#KK@ (_((( ##8@AA 8R   4 */2/+9/9/9/]993/<?<TNѫF;@()XG=5!I/-=-{RZ,Q1 3owظ] %9=XpTNT&m,!)1YC.&Z4bZHnF:#0CA8<%Z9&3T)i? 1dk˩OYN?j$~FO%'(@! 4' 4@4 4;k 4$#4ܳ 4@ 4  @ ##  @@o/_  **/3/9/]]]993/<?TN}Mb@()qzJaظ] %j[Z4bZHnF)"+0s~/OYN?j$~FO%6A:A@4? 49 4@ 4/ֳ 4& 4441 45 43@# 4T+T2D+D2; k $ 4 4=(<'788'-4-ܳ 4-@ 4-"-(A ' @ 8(<<""@ ---((C*/9/9/9/]993/<?<TN}Mb@()XG=5!:ظ] e9&3T)i? 1dk)1YC.&Z4bZHnF)"+0CA8<%COYN?j$~FO2;&@4)44*4 4!' A 9' 4 03 @ ,$,@=! 4 $ 9/2/+3/3/99/??+??9910+++&&#"332!"'&54767673276654&##"&54767632 #a2W`X+5PHE`^f".<*?Cx+B71Cs}TeP$6 @ 455@ 4,," 45& / @8  4 9/2/+9/9/??+9/9/+3/910+#"32!"'&54767327654&#&&#"&54767633])0Q0{@b(&%9zՏm#s?6I?3:??4HH44:C%%:,@ TKQKKQ @ QQ(?>743!HGG?/344?>4> 4>$/++3/23/2993/2/3/2/999?9/3/2/9/99993/+3/9/3/+99910"'&'#"&'6767&'&54632#"&'#"&547677327677327657'4&#"66#'#9<8L0: G-/   3! #**+   &Q#1  1& "!+U)# K06 " 82$$ #8K2 2)-1( F)1@&'"''"@ @4 @ 4 0*,,0.@**.@%(4.'&&4 4$/++3/23/299/+3/?3/3/++9/3/2/9/999910#"&'#"&5476773276773276574763 #**+  &3Z,S}K/5 " 82# $ !7J1 2),1/-$P+(#!!%!! @ !!%!! @ ///10#!$HbGQ$///105!#QHG !@   /<//<10###!!!HrG !@   ///10!!5!###rHGS@ ////<]10###!H @@  @4   /9=/<<//<+9=/<<<10#'77'$Hb ׶yyx #@    ///103#5!3###HGG)@     ///103#5!#3###HGGG !@   ///<10!!!##HFHS///<10#!$H,l@ /9=///<10##$HSW$'@ /<<//9/9/10##$HHH'88W' @   ///1053#5!#3WGBGGGW'///10#Hnw W$'@ ///10]#'$H'0W'///103!$'wGJ!'@/) !)i.@%) .0@>")> > i@)!?O>>>8H(y+?N]M]<]<M]<]<9999999910]'76327'#"''7&5432654&#"ՋsjitGGtijsGkklkwHHwn}~nwIIwn~}}llk #.48DHLRY`h@wz&S%c%#%3%C%Y=i=)=9=I=YAiA)A9AIAV;f;&;6;F;VCfC&C6CFCfhbdV`f`Y[i[**c*****u***3*C*S*cBB(-Wo]?]O]_]]]'VP(/(?(O((/ OGG23/3g<^P''O'_'' '0'@''R F"OM7K R6JMap999@9P9`999'W0^^'''_'o'@f''''$U-e-%-5-E--S++_oZP$$o!6 5## ! #j0eeo??????O??IJN/MMN1EQ2FN/]/]qr]q]]]q3]]]qr]]]/<<<<]]q]/<<<<]]q9/qq910]]q]]qq]]]]]]]]]]]]]]q]]#5#5!!5!#3#"'73253!5!!5353!#32##!!5!#"&54632#3!5!!334##324##32%#"32dCC?ddV4I(_tC~dYwdC~CddCdYeo|~ddd~C-Od?d ĺ[6.C?d{C~ddCcm !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ S0HH 44 4 /3/</3?310+++&'&'&4767670,h3g9JJ:f5d.l8<"8-}N౞Sy*K]SHW|@!!%!! @ % /|O@#%-.)$%!%%...@ 4!)!@c~9W=@C~~IIPPwccWCk55W==C%$ .--%$@%%c9Zg_@ccwPgg0TFI~}@TLPPT4T@ 4TTF5n0s ww00F/3/3/999/++3/99/9/9/993/2/23/293/2/?<<9/2/<9/9/9/9993/9/3/+2/]9/99993/3/9910&'&'632#"&'#"&5467732677327677"'&'#"&'#"&5467&&547673267&'&547673267&'&54767'3263 6 %%5)%  !** / & " wL=.(80?A{(p5p   C9.3'; $ 'B#:$X.4#72<Q=5-*$9 *jHk 6-- 0#U(()&%2&#;DL<;M!TL4"*"&RR{j70< '#*"%3wrI&.-'* )"+%"To #8 !y3 +@@?4  ?4 @ @ 4'$' @  $''/9/39/2/33//3/??93/+3/9/+99/+910#"'&#"'67632327'6654'&'667)02-c   & d2!54F2!31v ! $  PK(W L hu{,f-rt%-@+-@?4--'+#"?4""'+@ 4   @--""## @ 4 /2/9/2/+3/33//3/??3/+3/9/+99/+910#"'&&'.'&'733#"'&#"'67632327֌D)$%  '{' "!b)02-c   & d2!54%70q{'0$xh|2* ! $  V n 44 4%$-0@ *4004$@  -00(%$$ (;/9/39/9/2/3/9/99??2/3+/9993}/+910++47&'&547632&#"326'6654'&'667n*d5;- $+]!2!31f @.#8> 4PK(W L hu{,f-rt% 6 4,-@ *4--46!@  @ -,@ 4,,--&11 8;2/9/2/+9/2/3/9/99??2/3+/9993}/+10+47&'&547632&#"326#"'&&'.'&'733(*d5;- $+]!̌D)$%  '{' "!f @.#8> 470q{'0$xh|2*2cuq *J͹-@ 4@ 4@ 4@ 4@+B2H0:@BBH@4HH0@ 400  %%!  @ @2==E++E006EE(( !L 4 ;/+39/2/2/3/9/99?2/?2/93/+3/+3/99910++++#"'&'&'73276767"'&547632&'&#"47&'&547632&#"326uzBF3RAA8{1zmUU+OCL08VW&?')XM*d5;- $+]!a # >1]/j+1pgXfeO`% %13 @.#8> 42cuq-@R4@ 4@ @44  4%$-0 /$$@  (-00(%$$ (;/9/39/3/3/2/9/99?]?93/+]+3/+3/99910+47&'&547632&#"326'6654'&'667E*d5;- $+]!+2!317 @.#8> 4gPK(W L hu{,f-rt@6@ 4,.4&@ ..4@444 4   @ ,))11"@1@ 41@ 411 @ 4 8;2/9/2/+2/++2/3/9/99??3/+]3/+3/99910+#"'&&'.'&'73347&'&547632&#"326֌D)$%  '{' "!*d5;- $+]!%70q{'0$xh|2* @.#8> 42q;[> 4&@4)44*4 4Q1Cs}TePk @.#8> 4$6V9 4 @ 4L7N>TIIQ77Q< 4%Y ,@ 44 4" $*@ $$*@4**@ "' '''.;/2/9/9/2/3/9/99??3/3/+3/99910++!5!4'&'747&'&547632&#"326KNHl*d5;- $+]!%v>+Q[3M @.#8> 4%Y R3   /9/39/??910'6654'&'667R2!31$PK(W L hu{,f-rt%<   @ @ 4 2/9/2/+??10#"'&&'.'&'733֌D)$%  '{' "!%70q{'0$xh|2*: @ 44 4   A  A @"  4 */2/+2/9/9/99???93/9910++!"'&547673!54&'7'7Fr*9|oO6AM, DNJ%CT]a#b..G8vA:p27pT: ]4 4  */2/9/9/99??3/9910+!5!4'&'7'7KNHfNJ%v>+Q[3MT , '@ 4%% @ "")"(/3/9/9993/993/99?2/99+3/]993/9910'7'7#"'&54767'74'&'326NKALJ.GI07# !=#xWn/6- 908ːVTGn!=F\NO_T&?1 '#39?%%&/ @@ 4'+( . ((.ﵐ& @ @+#('  +1+/9/]999/993/99?2/]2/2/9993/+993/9910]'7'7#"'&'#"&5467&&5476733'32NKALJH7)\3s  !Wd"81<АVT[{\8>VND"*"$>t>DhmC7 :%$@ 44 4@ @ 4 A    A @&  4 */2/+2/9/9/993/99???93/+993/9910++'7'7!"'&547673!54&'7NKALJ`Fr*9|oO6AM, DVTzCT]a#b..G8vA:p27p:%%V{4 4     */2/9/9/993/99??3/]993/9910+'7'7!5!4'&'7NKALJKNHVT*v>+Q[3M%V:% (@ 444@ 4"4 4  @ @ 4 $A #$  $$##A @ *  4*/2/+2/9/9/993/993/99???93/+993/993/9910+++++'7'7'7!"'&547673!54&'7MJhNKALJ`Fr*9|oO6AM, DcVVTzCT]a#b..G8vA:p27p:%%  @ 44@ 44 4         */2/9/9/993/993/99??3/]993/993/9910++++'7'7'7!5!4'&'7*MJhNKALJKNHVVT*v>+Q[3M% 6N u0@- 4* 4y. 4@ 4 #"$@"$##2 +*/3/3/33/999]9/99?9/99?999/+9910+]++'7"&#"676323263!3#"'&'&547676UM}L@P4Z(#KB_Ep%Ӕ{F:؏XdOB@ 4 * 4y 4A?@B@ 4BB84=)%03"4-%%34=@BA??83@99""3433D))*/3/3/33/999]9/999/99??9/99?99999/+9910+]++#"&54767!3#"'&'&5476767&&#"67632326733'75yf WXoF:؏XdUB%(Y$e?n"%SaM3a5()4!:2KMM%Zh':$4%DVll^ (0jyǫdSZ b&T%  8RU=k\  @ T 4/9/+9/9/99?<2/93/9910!5!&'&'&#"676323'7=}/fFWHQS34/DhfEy+<KN%O,7J-Ad2m yT=k6N u,u@) 4* 4y* 4  @ .'*/3/3/33/999]?9/99?9910+]++"&#"676323263!3#"'&'&547676L@P4Z(#KB_Ep%Ӕ{F:؏XdO@ 4 * 4y@ 484=)%03"4-%%34=83@99""3433@))*/3/3/33/999]9/99??9/99?999910+]++#"&54767!3#"'&'&5476767&&#"676323267335yf WXoF:؏XdUB%(Y$e?n"%SaM3a5()4!:2K%Zh':$4%DVll^ (0jyǫdSZ b&T%  8R%=k<  @ T 4/9/+9/?<2/910!5!&'&'&#"676323=}/fFWHQS34/DhfEy+<%O,7J-Ad2m %=k6N 0@- 4* 4y. 4 #"$@"$##2 +*/3/3/33/999]9/99?9/99?993/9910+]++'7"&#"676323263!3#"'&'&547676MKL@P4Z(#KB_Ep%Ӕ{F:؏XdOH:%B-&>%)m-U_%j_%oft @     */39/9/9/99?2/9/3/9910]'7!"&546733!4'&'7NI@9[  *2>H:VB-&>%)m-U_%JFpr@ * 4* 4 4 4@ 44 4  :  /32/9/??910++++++#"'&'&'73276654'&'7^RztKEP=UHGB:~.%C9R',%nvhKH ( RK\OWFJLLVjJFpJF"@ * 4* 4 4 4@ 44 4 : $/32/9/3/99??93/9910++++++'7#"'&'&'73276654'&'7SMK9^RztKEP=UHGB:~.%C9R',ȑTnvhKH ( RK\OWFJLLVjJF>lWF@ 4@4! 4&4 4AAB:45,BB(55'( :, A145@ 455A ((''''#, @ 4 ABB?AAA=A @H  4*/]2/+2/]9/9/+<2/]9/9/+99??<?9?9/9/99/10++++#"&'###"'&546767327654'&'7327654&'732654'&'7O<[/*!/Z{,9ujt*$6(F-%5S2{_(#(%)K&C/ %!$& \WqBSFMVY6pE|CSdZGAR?Y4;#lW%?5;@5 4 )*"6**7667 /" 2* &)* 4**6@ 46776@ 4662=/2/+9/9/+99/+999?<<?9/9/9/999910+#"&'##"'&'##5327654&'73327654&'732654'&'7?M@\&/#3YA44"20PZQ#:) &.@CK$(*'":!)*A)%# %  $E:$<\*I%-9:"<^o+&!8> 7m>-Dq%?5>l Ro@ 44@ 4L 4*@4- 424 4  @ 4MMNF@A8NN4AA34 %+$F 8+ IM=@A@ 4AAM443333/8@ 4M(NN?MMMIA @ T% $ 4$$(*/]2/+2/]9/9/+<2/]9/9/+999/993/993/99??<?9?9/9/99/3/993/993/9910+++++++'7'7'7#"&'###"'&546767327654'&'7327654&'732654'&'7~MJhNKALJO<[/*!/Z{,9ujt*$6(F-%5S2{_(#(%)K&C/ cVVTz!$& \WqBSFMVY6pE|CSdZGAR?Y4;#l%? G@ 44@ 4A 4  @ C56.&''B66CBBC ; . @ 5>6'256 466B#&'@ 4''BCCB@ 4BB> I/2/+9/9/+99/+9999/993/993/99?<<?9/9/9/99993/993/993/9910++++'7'7'7#"&'##"'&'##5327654&'73327654&'732654'&'7!MJhNKALJM@\&/#3YA44"20PZQ#:) &.@CK$(*'":!)*A)cVVTz# %  $E:$<\*I%-9:"<^o+&!8> 7m>-Dq%?>lW1>@44 44 45-- <";2""2A @@  4 */2/+9/3/2/9/9??<?9?9/10+++!!"'&546767327654'&'73276767676324&#"!26\rjt*$6(F-%5S2wfXaRAJYD?{RHY?aIH`r%hFMVY6pE|CSdZGAR?Y&!Gg4OI17 2&&'>lW%>%0[ !))-  -& &2 /9/999?<2/9/9910!"'&'##5327654&'73276767676324&#"!26N61%2*T\Q#:)#=AXTqzX QBJXE@zQdqpmd%$E;#>l5B̹@44 4 4 4"911!" @& @ ?6""!!&&6A @D  4 */2/+9/3/2/9/99/99??<?9?9/3/9910+++'7!!"'&546767327654'&'73276767676324&#"!26/LJ>\rjt*$6(F-%5S2wfXaRAJYD?{RHY?aIH`rdTlhFMVY6pE|CSdZGAR?Y&!Gg4OI17 2&&'>l%)4z@ %  %--1 1 * *6 /9/9999/99?<2/9/993/9910'7!"'&'##5327654&'73276767676324&#"!26ILJ N61%2*T\Q#:)#=AXTqzX QBJXE@zQdqpmddTl$E;#9/I  #- 1jC=ibI_NXAE%5,e/k^B_9/I  #- 1jC=ibI_NXAEȑT5,e/k^B_E&#8gM\\3I;P-8xYsωu]^-d" #i(`*/K1"C8\j/2DAQK]G %n4/  @4 4  /3/3/33/9+99?9/]?]9/910+##53&&54632&&#"66Es$ś{P"QEn;cN]7K/w8v<b=21y//%'X(j@ $(4(  @$$$P  * /3/2/]9/9/9?<2/+9/9/99910#"'&'##532767'&#"#54763233'ACP$CViZZTHRO* (:5qG]%H[%%BE&#8gM\\3I;P-8xȑTѠYsωu]^-d" #i(`*/K1"C8\j/2DAQK]G %!4@ /   @ 4 4 # /3/3/33/9+999/99?9/]?]9/93/]9910+'7##53&&54632&&#"66KLFEs$ś{P"QEn;cNȑT@7K/w8v<b=21y//%',@ ( ,  4 ,@$ (((P$$$$./3/2/]9/9/99/99?<2/+9/9/9993/9910'7#"'&'##532767'&#"#54763233LKACP$CViZZTHRO* (:5qG]%H[ȑT%BFUc,%h/"!)XHNYwQ(W[%~ *0G]jwubW/8)%1'%Os%$%t@  # # @  4  !! '/9/99+9/99?2/2/993/9910'7!5!4'#"'&547632&'&#"326MJ)4.#I.528ZzB7*&#X4yVVYN %*Oht$%2-P%!j@  4    #/9/99/99?2/93/2/9910+]'7!5!267&'&547632'&'&#"XSW>W33s7>Yf5*Z):(OK`~ 2xi]igP'K,L Fgw5BѳT  4@ 4!@ 41::)@@ @ 6 4&6#-==#A @D  4*/]2/+9/99+9/993/99??99/3/2/993/9910+++]'7'7!"'&54767327654&'#"'&547632'&'&#"3262NKALJz&#A* nfՠ &M'X7C:AYuD: *0-:%-"VTh]PWvxxF6J5C?>9FQ3-(0aqgt>).#$Fgw%$)@@ 4" '""'  @  4   %%  + /9/99+9/993/99?2/2/993/+993/9910'7'7!5!4'#"'&547632&'&#"326NKALJ4.#I.528ZzB7*&#X4VTYN %*Oht$%2-P%%@  4  " ""  ' /9/99/993/99?2/93/2/993/9910+]'7'7!5!267&'&547632'&'&#"U}ViO{SW>W33s7>Yf5*Z):(ORQ 2xi]igP'K,L -%3(I%84 @ /H# /&&&H@ @ 4 2:=>353%'IB@&>2SSQ!@ ('K-J.&D!O#N%'I#v@  4 4! 4   #    4 % /9/+99/9?<9/2/10+++#"'&'##5327676767'&'&''hCTaJ:yt[G7-=YPCE)7s &0!$:%#=G7.$AXA:iTrG:8/2 !2'>%'IEl5v$ 4@4 4 4 A ! @ 4!! A @&  4 */2/+2/9/9/+99??9?3/9910++++'7!"'&546767327654'&'7KHjt*$6(F-0S5($ViqFMVY6pE|CSfXN:QEl5v%[ 4 4   */2/9/9/99??3/9910+'7!5!4'&'7LJKNH‘Tv>+Q[3M%6 q%'n@ # & &@  #)# /9/]99?2/2/2/99910]#"'&'#"&5467&&5476733'32H7)\3s  !Wd"81<%{\8>VND"*"$>t>DhmC7 p(5C@: 4:-=2-#4##--2 A @=:2)# 40##)00 )@ :@ 4:: 6E /3/9/+9/9/9+99999??9/2/3/+9/999+10#"'&'##53267&'&54677667&54767%4'&#"6764'&'326$'')pgGt5C[ZZ)LA c!E,@a{G^..Pz+8#3)%<=2 :GM40.B #/S7=ts+=+)C#J/51U'o)4&"."" 22@ *. &. &. * **6/9/9/9/3/999?<3/3/9910!#"'&57#536767632!%4#"6764'&'326'@-9@xdx#*5:C;/.(+<5[>H(t_\5@#%7EQN/;SdH]Pe@Jl=X7!C_^-i&,OI<nGV2cu *u@ 4@ 4@ 4  %%!  (( !, 4 /+39/?2/?2/910+++#"'&'&'73276767"'&547632&'&#"uzBF3RAA8{1zmUU+OCL08VW&?')Xa # >1]/j+1pgXfeO`% %132cu25$62V;?Cչ&@4)44*4 4<>?==@BCA!' A 9' 4 0=?<>>ACB@@$3 @ ,$,@E! 4 $ 9/2/+3/3/99/9/993/99??+??99?993/9910+++&&#"332!"'&54767673276654&##"&54767632'7'7 #a2W`X+5PHE`^f".<*?Cx+B71Cs}TePߐVT$N6:>33 @ 4:44 4,./4,,"@ >79::88;=>>< 4<58:799<>=0;;;/& / @@  4 9/2/+9/9/9/]993/99?2/9?+]993/]993/]9/+9/+10]+++q#"32!"'&54767327654&#&&#"&54767633'7'7])0Q0{@b(&%9zՏm#s?6I+Q[3MDVTr@DNe0@TVJOce@?4ee_c[WZ?4ZZS_WWc@'SS.<;K.7 4H7#K##@ 4##.KK?.@K@eeOZOZ[[#*7HK@@ ??<<;;  @ 4*E@ @ 4 @ 4 g@**/]3/++9/9/+2/3/93/3/9999993/33//3/???9/9/+]99+99993/3/9/+99/+910]'#656767&'&'&'&#"#"'&'&&5476326765'4674&'276#"'&#"'676323270;"%P&jruF #T!  /)-$ )NEUKIf-/C9,Kw:v2U)02-c   & d2!54F[~F(?A%4# LA[7<+#,'9.=+>#5NFreuJ^x!Bk,+$+/6'f$  ! $  I>UD44ֳ4)ֳ 4(@ 4[+"@% 4+* 4*J 4)T 4(@ 4?SU@?4UUOSKGJ?4JJCOGGS@CC @ 4  0@ 4>03'&&>@ UU?J??JKK  4@ 4 7- 0033-77W&&/3/2/3/]99/++3992/33//3/?3/??9/+9/9/+92/3/9/+99/+910+++++]+++++&'&#"#"'&'&5432#"'&54&5!5$767654&'76733#"'&#"'6763232708nzF:I,;)Ht=T3=`KY n!$=)02-c   & d2!540}4#,:NX?[eW[n6ct& Q;^{bYT1"sc~6$ ! $  & DNn@Q@, 4TVJ<;K.7 4H7#K##@ 4##.K?K. 4..T?OdfVlTT4Tllf^@ 4^K@ dVaaiOOiTTZ@@ii#*7HK@@ ??<<;;  @ 4*E@ @ 4 @ 4 p@**;/]3/++9/9/+2/3/93/3/9999993/2/3/9/99??+2/3+/999?3/+9/9/+]99+999910]+'#656767&'&'&'&#"#"'&'&&5476326765'4674&'27647&'&547632&#"3260;"%P&jruF #T!  /)-$ )NEUKIf-/C9,Kw:v2U4*d5;- $+]!F[~F(?A%4# LA[7<+#,'9.=+>#5NFreuJ^x!Bk,+$+/6'f$  @.#8> 49 >^NA 4)ֳ 4(@ 4[+"@/ 4+* 4*J 4)T 4(@ 4  @ 4 @ 4> >03'&&>4@ 4DT?VF\DD4D\\VN@ 4N@ TFQQY??YDDJYY  4@ 4 7- 0033-77`&&;/3/2/3/]99/++3992/2/3/9/99?+2/3+/9993/++?3/?9/9/+9/+]910+++++]]+++&'&#"#"'&'&5432#"'&54&5!5$767654&'7673347&'&547632&#"32608nzF:I,;)Ht=T3=`KY n!$=*d5;- $+]!0}4#,:NX?[eW[n6ct& Q;^{bYT1"sc~6$ @.#8> 4SDNn@Q@ 4TVJdOfVlT^@ffl@4ll@TTT@* 4TT<;K.7 4H7#K##@ 4##.KK?.K@ dVaaiOOiTTZ@@ii#*7HK@@ ??<<;;  @ 4*E@ @ 4 @ 4 p@**;/]3/++9/9/+2/3/93/3/9999993/2/3/9/99???9/9/+]99+99993/+]3/+3/99910]+'#656767&'&'&'&#"#"'&'&&5476326765'4674&'27647&'&547632&#"3260;"%P&jruF #T!  /)-$ )NEUKIf-/C9,Kw:v2U*d5;- $+]!F[~F(?A%4# LA[7<+#,'9.=+>#5NFreuJ^x!Bk,+$+/6'f$ P @.#8> 4J>^[A 444ֳ4)ֳ 4(@ 4[+"@ 4+* 4*J 4)T 4(@ 4T?VF\DN@ VV\@4\\D4D@ 4DD& @ 4  0@ 4>03'&&>@ TFQQY??YDDJYY-&  4@ 4 7- 0033-77`&&;/3/2/3/]99/++3999/2/3/9/99?3/??9/+9/9/+93/++3/+3/99910+++++]++++++&'&#"#"'&'&5432#"'&54&5!5$767654&'7673347&'&547632&#"32608nzF:I,;)Ht=T3=`KY n!$= *d5;- $+]!0}4#,:NX?[eW[n6ct& Q;^{bYT1"sc~6$ @.#8> 4SDN@)TVJ<;K.7 4H7#K##@ 4##.KK?.@K@ #*7HK@@ ??<<;;  @ 4*E@ @ 4 @ 4 P@**/]3/++9/9/+2/3/93/3/999999???9/9/+]99+999910]'#656767&'&'&'&#"#"'&'&&5476326765'4674&'2760;"%P&jruF #T!  /)-$ )NEUKIf-/C9,Kw:v2UF[~F(?A%4# LA[7<+#,'9.=+>#5NFreuJ^x!Bk,+$+/6'f$ J>44ֳ4)ֳ 4(@ 4[+"@- 4+* 4*J 4)T 4(@ 4 @ 4  0@ 4>03'&&>  4@ 4 7- 0033-77@&&/3/2/3/]99/++399?3/??9/+9/9/+910+++++]+++++&'&#"#"'&'&5432#"'&54&5!5$767654&'7673308nzF:I,;)Ht=T3=`KY n!$=0}4#,:NX?[eW[n6ct& Q;^{bYT1"sc~6$!!%!! @ !!%!! @ Fb1F=!!%!! @ !!%!! @ !!%!! @ FQ F!!%!! @ !!%!! @ HFZ!!%!! @ !!%!! @ !!%!! @ FIFWFKF=H@.J0wG!!%!! @ FF[!!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ >@ 4 /3/9/?2/+?10#4'&'&54632#"&54632+9 %F79IH42HH42HCv~:~-=]\72HH23JJ"  /?10#"&54632O76LM58N6ON76ONW *  /3/?2/10#"&54632#"&54632N85LJ78NO75LK68N8NN87NN6ON76ON!!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ !!%!! @ %/?10!5!F%%/?10!5!F%%/?10!5!F%c, 4'@4' 4 4 4 4@F 4(  % (,,&U# U U U U8U&U U޴ U U U UҴU@ 4&! U !!c-]+/]++++++++3/++++++9/99???9/910+++++++3276'&#"%53#"$576!2676'+u߃&4Ŀ;_I[%rIѥ|B[Lly[h18-VD@,@Y' 4 4 4@4 4)  % (,,& U0U U$@U U UUӴUִ U@0 U $@$%4! U! U! U! U!U!@U! U! U! U!?!!1-]++++++++++/]+++++++3/+++9/99???9/910++++]327654'&#"%53#"'&763266'YTSYZTSYB&1v䅉ۋiD;lffmʿkfelѥ|BVHA'vm*ZU%%4 4 @ 4&!@6 %% U& UD U U UDUDU& U@ U U@ U U UӴU@U& UU U U U UUU4]&+++++++++/++++++++<3/+++++++9/????9/910]++53# &53327636765$c24gs8$"}V[œFѥ> ~PRO]YcafNl*v&$ 4@S4 4    $$& U U- U U U 3%,UU@ U U@ U U U޷U%U@U U U U UU@364 N%]q++++++++/++++++++<3/+++++9//????9/9910+++53#5#"&&'&533266536765\$\|]P #S:?Uѥ>GnO6r/T9a*vE+, 4S@`/]}?10+#'3/+, 4S@`/]}?10+#'3 #S 4@ 4//@ 4S@`p/]]/+]qr+10+#3 T+A44 4SO`/]+}?10++3#+@+84 4SO`/]+}?10+3#^+s #T4@ 4//@ 4SO`/]/+]qr+10+]3##),@ 4 @4 4%4@ 794@SZ4 @   W@ 4p/]+3/93/}?}++++]qr+9910+7676'&#"'6#55*[? 'i{NVp^ ^'*Ce2p m,@* 4 @@|4@RU4@KL4@<>4@&64 @4  /3/93/+}?q+++++9/99CTX@ 4+Y10+7676'&#"'6#51'T< $b]  AZ?7,@ 4 @4 4%4@ 794@SZ4 @   W@ 4p/]+3/93/}?}++++]qr+9910+7676'&#"'6#55*[? 'i{NVp^ ^'*K]2pgm,@* 4 @@|4@RU4@KL4@<>4@&64 @4  /3/93/+}?q+++++9/99CTX@ 4+Y10+7676'&#"'6#51'T< $b]  AZ?7I;0_ 4 @7 4 4  EE   @ 4?  v v@o/]3//]+qr3/]9/]2/10+++&6323273#"'&#"q[>k;#= ?gCNIf~6W8$_|+ٳK @ 4 4@@ @^5 @OS4 @CE4 @+-4o    @a  / O _  _ o   @5 @jl4 @a5 @\]4 @WY4 @MQ4 @DI4 @:5 @144 @.B4 @',4 @%4 4  /3/}/+++++++++++++]qr3/]q++++3/10++]&6323273#"'&#"q[>k;D= a?gCCN|R[,F,Lr s 4 @ 4 4  E@4!&4E / ? /  @ 4 @6>4?  v v@o/]3//]++qr3/]9/+]2/10+++&6323273#"'&#"sq[>k;#= ?gCN f~6W8$_f= 44 @#(4 /3/?q+10++&'3327673#"'&N;@AC@;OIMp#v#%H$&9O9@4 4/++9?r910#73#ЯC{{(@k;#= ?gCNIf~6W8$_I0k 4 @A 4 4  EE O  @ 4? O  v v@P/]]q3//]+qr3/]9/]2/10+++&6323273#"'&#"q[>k;#= ?gCNIf~6W8$_IM0k 4 @A 4 4  EE O  @ 4? O  v v@P/]]q3//]+qr3/]9/]2/10+++&6323273#"'&#"q[>k;#= ?gCNIf~6W8$_ri@2 4 4 4EE    @ 4 v v4 4o/]++3//+]r3/]9/]2/10+++&763232673#"'&#"s:9Y>k;# "mT?gC"h>>6#4rr8$/Hi@2 4 4 4EE    @ 4 v v4 4o/]++3//+]r3/]9/]2/10+++&763232673#"'&#":9Y>k;# "mT?gC"h>>6#4rr8$/ji@2 4 4 4EE    @ 4 v v4 4o/]++3//+]r3/]9/]2/10+++&763232673#"'&#"k:9Y>k;# "mT?gC"h>>6#4rr8$/}}J}{}}e} b#S 4@ 4//@ 4S@`p/]]/+]qr+10+#3  #T4@ 4//@ 4SO`/]/+]qr+10+]3##`i@2 4 4 4EE    @ 4 v v4 4o/]++3//+]r3/]9/]2/10+++&763232673#"'&#":9Y>k;# "mT?gC"h>>6#4rr8$/}_,}]vC}t}}l9}jX%}V]}},}*|+nK @ 4 4@@ @^5 @OS4 @CE4 @+-4o       /3/}?3/]q++++3/10++]46323273#"'&#"p[>k;D= a?gC@Q|R[,F,LI0k 4 @A 4 4  EE O  @ 4? O  v v@P/]]q3//]+qr3/]9/]2/10+++&6323273#"'&#"q[>k;#= ?gCNIf~6W8$_|4+nK @ 4 4@@ @^5 @OS4 @CE4 @+-4o       /3/}?3/]q++++3/10++]&6323273#"'&#"q[>k;D= a?gCCN|R[,F,LI40k 4 @A 4 4  EE O  @ 4? O  v v@P/]]q3//]+qr3/]9/]2/10+++&6323273#"'&#"q[>k;#= ?gCNIf~6W8$_<&@@Op  % U U U@ U U U@ U /]+++++++??10]rq33&Y&$}4 5<44A+++5J>&D}@ 99:/7A+]5Y,&$t@ ##"A+]5J &D4:LUL@ULpLLPL`LLLLLLʱH++]qr++5Y+&$'|q0@*4H+A@(4/+5+5++]q5J#&D'KZ_BB@=4B;H+: :0:p::::::::@.24:=A>/>>_>>@ 4>/+]qr5++]qr5++]5Y+&$'|n'@H+A@(4/+5+5+]q5J#&D'-Y@E?@&34?@4?<H+: :0:p::::::::@.24:=A>/>>_>>@ 4>/+]qr5++]qr5+++5Y,&$'|u1)@4)))(AA@(4/+5+5+]q+5J,&D'tHb@ SOSSS@>4SR;/>>_>>@ 4>/+]qr5++]qr5++]q5Y+&$'|<0@"@ 4@4 AA@(4/+5+5+]++5J&D'ztT@A?O??I:=A: :0:p::::::::@.24:=A>/>>_>>@ 4>/+]qr5++]qr5+]5Yh&$'|}455<44@AA@ (4/+5+5+++5J&D'}C@0@@A/7A: :0:p::::::::@.24:=A>")+++]qr5+]5Y+&$'{q4#AB4#@95##H+A @-4 /+5+5+q++5J#&D'H7@ `HpHH[HH@4HCH+<<h+<")++]5++]q5Y+&$'{n\ @-4 /+5CTX@T##AA+5+5@#@894#@)14#@ 4@#o####@ H+A+5+q+++5YJ#&D'\*IPIIC@H+<<h+<")++]5+]5Y,&$'{u;@ 6666*246@!(465AA @-4 /+5+5+++r5J,&D't\B@0PZ`ZZZZZ0ZpZZZZZZZYA<<h+<")++]5+]qr5Y+&$'{P,@###/##-AA @-4 /+5+5+]q5J&D'z+F@ 4FP?9A<<h+<")++]5++5Yf&$'{}45$5<4$4@$%AA @ -4 /+5+5+++5J&D'}&@GGH/7A<<h+<")++]5+]5&(}\@    A+]5K>&H}P`ش A+]5,&(t A+5K &H*@2222221 A+]q5&(|j@  A !)++5K&H@ * A)++5+&('|q0@*4H+A@(4/+5+5++]q5K#&H'LK_((@/4(!H+ @;5 @-24  # A /  _  @ 4 /+]qr5+r++5++]5+&('|n4@%@:5H+A@(4/+5+5+]qr+5K#&H'.Q@=%@U%@&34%@4%"H+ @;5 @-24  # A /  _  @ 4 /+]qr5+r++5++++5,&('|u1&@ 4&&&%AA@(4/+5+5+]q+5K,&H'tHQ@ O9999@0498!"A @;5 @-24  # A /  _  @ 4 /+]qr5+r++5++]5+&('|P$@AA@(4/+5+5+q5K&H'ztE@3%O%%/ #A @;5 @-24  # A /  _  @ 4 /+]qr5+r++5+]5h&('|}\$@  AA@ (4/+5+5+]5K&H'}9P&`&@&'A @;5 @-24  # A$")++r++5+]5c,&,t:@ UA++5 &CTXA+O"H++qY5&,} A+5|I&L}z@ @mo4O  A+q+5c&2}  A+5D'>&R}  A+5c,&2t8@p00000/A+]q5D' &R*@....-A+]q5c+&2'|qn0&&&@*4&H+!A@(4/+5+5++]q5D'#&R'MD_$$@)4$H+@.24A/_@ 4/+]qr5+r+5++]5c+&2'|n@4@%#@:5###### H+!A@(4/+5+5+]qr+5D'#&R'/C@1!@&34!@4!H+@.24A/_@ 4/+]qr5+r+5+++5c,&2'|u`16@ 46665!A!A@(4/+5+5+]q+5D',&R'tHL@ O55555@*454A@.24A/_@ 4/+]qr5+r+5++]5c+&2'| @#-!A!A@(4/+5+5+5D'&R'zt>@-!O!!+A@.24A/_@ 4/+]qr5+r+5+]5ch&2'|} @$% A!A@ (4/+5+5+5D'&R'})@"# A@.24A ")++r+5+5c,&jj@0o000%H+-!)++]q5D&k!@0O0_000%1H+-")++]q5c,&jCj @ ...%H+-!)++]q5D&kC!@_.o. .0..%H+-")++]q5cE&jt8@PAAAAAA@%%A+]q5D &k*@AAAAA@%%A+]q5c&jQ@ -9%%A-!)++5D&k@ -9%%A-")++5c&j}@ ../A+q5D@&k} ./A+5"&8}p@ OA+q5&&X}@P`p A+]5",&8t@ % A+]5 &X2@P------P-`-p-----@ 4-, A++]q5,&lj)'@95p'/'_'''H+&!)++]r+5&m@O(((E4@.34@$)4/@4@4@ 4/+]+]+q+++++]<++</<<10!5!#53#53u4 4@% 4@ 4?@ 4 @#%4@4 @9 4@4@Os4@>E4@.:4@$%4/@4@4@ 4/+]+]+q+r+++++<++</+]+++9910#7#53#53炇燇44  0444@#%4@ 4 @144 d4 @#%4@ 4@4@ 4? @ 4 @#%4@4@+,4 @: 4@4@Os4@>E4@.:4@$%4/@4@4@ 4/+]+]+q+r++++<+9+<++</+]++++++++99++910#53'#'37#53QȮؓɱbb4 @ @ 4 @ 4@ 4? @#%4@4 @9 4@4@Os4@>E4@.:4@$%4/@4@4@ 4/+]+]+q+r+++++<++</]+++9910#53'#'3#53`ؓU Z@  UU U@ U]  ??9/++++9/10!!!##53!Uo¤ e & b@ % U@U U UN +@ U+  ??9/+++++9/10!3###53!Q||ci[F@_817$G$E )9$&& ) )   EDEEDBDE1// ?=??=?=+6 E+ U U U @3U &/1$,76*?= *DF,B) *EF ??9/99999999/++++99+}99+}99+}99+}10]]]]]##&'&##"7#67&'&'&&56323276767632"&#"3[E].Z|`IBj .d:$6?\WN e])>M$DǖF%L>']_ 3 g9 36#:dki.ZR2-n')T3R<(M~O*;G&3S+'P&B1@;#h$&& U& U&%) U%)  0//@U/%;9;;9;9,5%BA@ U%A?A??>,A, % U @ U  U @; U U 9;5+0$&/,4*+*?A,>)+ * BA+ ??9/999999/+++++99++}99++}99++}99+++}10]]##&'&##"#67&'&'&&#"532332767633'&3P"0"5IJ4 1ovZ-808 (j)9.)91cd0q%:vB1L '%&NuomI-IQ 10SI)L3 K bB5A'=)c_$2$i'@%@/ U U &$&&$g$&$#'  7   '@ U')  U U U U U U @#U ](   $&#  & ??9/9999999++++++++99]+}9]+++}10]]]]##&'&##3276767632"&#"3E\,ZwF%J>']p 4 g9 37"9eki.\R~R+;G'1S)'v&&@ U%%#%%#F#"#%&@U% %&@ U &&( % U @U  U  U U U U @. U U  N'+  #%" + %+ ??9/9999999]+++++++++]+99++}9]++}10##&'&##327676767633'&3v/#5Id0:(,:+_$2K '%&Muom>-IQ 1&5A` I( d^%2$+$&&$&@8 U& IYi$$* U **) U@U U - U U U U U U @1U  ],&$ ! *)       ??99//99/999999]+++++++]9/+++29++}99]]++}]10!#&'#&##3273676767632"&#":/x3EG1x&/76NHYp 4 g9 37"9e_<R~An*X,(G'1S)'&(4i#!#@J U#%!!!!!'U%''& U * % U @U  U  U U U @; U U 0  N)#! + '&  +     ??99//99/999999]++++++++rr9/+29++}99]]r++}ıCTX@ -"=2]Y10]!#&'#&##3273676767633'&c#+-!c(,:+_$2K ')")6jpI7&5 D+9` I( dh(0i@   U UU@ U U@ U U   UU U U U@U]  ??9/+++++++++++++10##!#3!33†iMZW&@, %%@ U U U U U UU@ UU@ U U" UߴU U@ U %UU@U U U@ U U N + +??9/]++++++++++++++++++++++10##!#3!33W t-)&Fnm U @: U U    U U o UU@ U U U@U  &6??9/]9/++++++]+++}ć+}+++10#367m$ "09rHUE9ji& ֹ @ U U U @=U U  U %  U U%%UU@U U U U@U  $4Dt /?]?9/+++++++݇+++}ć++}+++++10#367nm.1&i&wmgmѹ U@HU U U    U  U    UU@ U UU@ U   ??9/9/++++++39Ƈ+++}9+++}9++10!!#!5!367mkUdaUj"099_UE9ji&@& F v &Fv@ U U U@GU U U U%  U U %  % U U @U U U @ U   + /??9/++++++Ƈ+++}ć++}++++++10]]!!#!5!367nBCm.1&ڄ&wmg iI@ UiDtI   U U@ U  UCTX  @ 4 4    ?Vw=I^M&@&F&FX&F @ U( U @( U  U U    @ U %%@ U U U0@ U%_o  U @ U   + /??9/]++333]]++}]]+++++}+++++10]]]]###367733I* #.$g-](@74A bW8@dEU6@ U U@ UUU@ U U@ U U U@ U UU U@- U U  UU U U U@U U U@! U]    ??99//3332229/]+++++++++++++++++++9/++++++10]]]!###"'&'&53733673¢xt,(±y xO< >FyocG>E&@te U U U U@ UU%@U U U U U@ UUU %@UU U@: U U UUUO_+ ??99//333229/]++++++++]]++++++++9/++++++10]]!##5#"'&'&533673ndcY^d$! ?,;cW{" 7;bYkt+T/! )@g[J U U Uд U U UU@U U U U U U U @U ]   ??9/32+++++++++++++++10]]]!#4'&#"#3$328Gċs,'\s[7a>EzmKc!@5 m \  J bUDw9Ivj   &U U U U@& U\#&& c"/   ??99//]3]+++++10]]]]]]]]]]]]]]]! '&5!&'&# '67632!32u u|S8ȟRGL T^~2pkbcU(> @-8HUey\lJ ( 8 l[cU $U U UU@G U"$$ U  U  U ? O  4!+    ??99//]3]]++++++++210]]]]]]]]]]]#"'&547!&'&#"'!2!3276({w LVN]v 8VSO `mWChXT`#@8Y""VuTFVy\IYx Y&@ UU U U U@/ U\%&  U  c$@U@ U   ??9/++]+++++++10]]]]]]]]]]]]]]]]!"'&'&576! &'&#"!3276ڹϧOJMEuאvwۆ~gjTۃxϋD'>!@D\ l ScdU7G[kH9iXf fUZj$#@ U#@ U@U U U U UU@/ U7#$U U U U U U@,UU U?O4"+  ??9/]]++++++++++++++++++10]]]]]]]]]]]]]]#"'&57632&'&#"!3276'u{놀BYYBjITSH"A'vJeeJano`:%|@!yXhrdU( @ @   A *??3?/2/]9/10]]]]]]]]!"'&547673!54&'7Fr*9|oO6AM, D%CT]a#b..G8vA:p27p% B@}Zj*??/r9/10]]]!5!4'&'7KNH%v>+Q[3M%$[!L  @k{ # ?2/92//9/99]]10!5!4'#"'&547632&'&#"326$4.#I.528ZzB7*&#X4%YN %*Oht$%2-P%Dx   @  ?2/9]3//99/10]!5!267&'&547632'&'&#"W>W33s7>Yf5*Z):(O% 2xi]igP'K,L Fg-:@3L:)veVWgwW Tdt%@.|.K.[.k..55@<  @   .8)22!88 *??39/93/9/2/]]9/99]]]10]]]]]]]]]]]]]]%!"'&54767327654&'#"'&547632'&'&#"326z&#A* nfՠ &M'X7C:AYuD: *0-:%-h]PWvxxF6J5C?>9FQ3-(0aqgt>).#$/99/9910%'7NJ2TLP@gw/9999/3/999910qq%'7'7JLBKN8TU @   @@   @ /993/]993/99/3/99]]3/99]]99]]10%'7'7'7*MJhNKALJ6VVT @   @@   /992/993/99/3/99]]3/99]]99]]10%'7'7''7JLJM"KN8TVZUk>@  /993/99/]999910%'7'7YJLJM8TVQ @ :   )  @5   &  @5&@:/     @ @ 4 /+M992/993/993/99/3/99_^]_]3/3/99]]99]]99]]10%'7'7'77'7MJNKALJ(F6VVTZZ&'%.@&%0%@%p%% %0@44@ ,( 4,O_0 #(@4(,?_*/]+99^]99//99/]9/]322++9/9_^]10!5327654'&'&''67&''676324#"32'I?G     &QH0~L`?`'p&S,.-1@18/A* @V + !/ "22!|@R'/     Dp~ O _ o  _o4/]q]]]/qr^]/^]2q9/^]10]q##"&54336324#"3204H0LvtRZ 7URZ5,0- 14Bc&bn&@|4%5E! ! ~(   34%9IY(hx%  @O_%%@!4%%_%@?%O%%%%%% %0%%J/]rq^]+_^]9/29^]]/99+/^]3]]q9/q9/9910]]q+#"&#"'632327&547632&#"32n^L5 9  (0D5;-1$A51!z(!# F #$8>1&W@:5$: +@/]/]]q99]]]q99]10#'378WMM挌W@:5$: +@/]/]]q99]]]q99]10#'#73WMMW8׌@e   iZ)9Izk:JZ  pa0@P/]rrr99/3210]]]qqqqqqqrrrqrr#"&#"'632327@R 4V_nR@ 4 4*/2/3+/999/2/3/9/9910+47&'&547632&#"326n*d5;- $+]! @.#8> 4&2y -@4  ?_/]32/2210+'654672/ /46K%|F&1 !64A"@ 4" A 4@ 4 /55]++++55%!64/@ $ A @ 4  /55]++55 n65X@0!! A 4 4 4 4 444:/5+++++++]+q5%65d#@ 4# A 4 4 4 4 4 4 @ 4  </5]q+++++++++5T65(\/04@ 4DA::_::/]5+++]5T65\@#@ 4#A<<_<</]5++5 ^69+p  @ 4u A 142/5/+5++q5%669)" 4"@ 4""e""A4/5+]++52c697@)00A_000@000/00040@40@ 40/+++]qr5+52c697@)00A_000@000/00040@40@ 40/+++]qr5+52c679c`@bb(A00AN@24`NNNNNN_000@000/00040@40@ 40/+++]qr5/]q+55+5+552c679c`@bb(A00AN@24`NNNNNN_000@000/00040@40@ 40/+++]qr5/]q+55+5+552Vz659p'@<<<}<<A_YYYY@ 4Y/+]5+]5$669 |%@<7& AT/TTT@4T@ 4T/++]5+5:%6(3@ A/55+]55:%6(3@ A/55+]55%'6)3@  A/55+55%'6)3@  A/55+55:%6(1x@#!A ""/]55+55:%6(1x@#!A ""/]55+55%6)1x(@ 4A ?/]55++55%6)1x(@ 4A ?/]55++55:6(10!@A @ 4   /]+55+55:6(10!@A @ 4   /]+55+556)1!@A@ 4/]+55+556)1!@A@ 4/]+55+55:@6Xi@ +%A4?55+55:@6Xi@ +%A4?55+55@V6(i@  A$?55+55@V6(i@  A$?55+55:%6(0x@#!A "?""/]555+555:%6(0x@#!A "?""/]555+555%6)0x'@ Ao ?/]q555+555%6)0x'@ Ao ?/]q555+555:%6(2x'@''!A&&&/]5555+]5555:%6(2x'@''!A&&&/]5555+]5555%6)2x3@!A@ 4/o?/]q+5555+]5555%6)2x3@!A@ 4/o?/]q+5555+]5555:Q6(2'@'!A @4/  /]+5555+5555:Q6(2'@'!A @4/  /]+5555+5555Q6)2'@A@4//]+5555+5555Q6)2'@A@4//]+5555+55556N z69p@2-AJ/J_JpJJJJ/]5+56N5z69p@D?)3A\/\_\p\\\\/]5+5%=z69,p2@A04@44/4_4o444@4444/++]q5+5%=z69,p2@A04@44/4_4o444@4444/++]q5+56N 61,x$@31A2 22 42/+]55+556N561,x%@ EC)3AD@ 4D DD/]+55+55%=61x,@A @4 4/++]55+55%=61x,@A @4 4/++]55+556N u6.|!@31A222@ 42/+]55+556N5i6.;@EEEEE?A@DD@  4D@ 4D/++]55+]q55]L=k6.!@A@ 4/+]55+55L=k6.!@A@ 4/+]55+556N u61|%@33333@ 431A2/55++]556N5i61&@A?A?DDDD 4D/+]55+55=k61!@A@ 4/+]55+55=k61!@A@ 4/+]55+556N 6/Tx&@71A66 46/+]555+5556N56/Tx&@IC)3AHH 4H/+]555+555%=6/x*@!A  4 /+]555+555%=6/x*@!A  4 /+]555+5556N u62T9@&o:::1A/6@6p6666/]q5555]+]q55556N5i62"t@SL@894L@)-4L@4LLL_LoLLLCA_HoHHH/HHHHHH0HHHH@4C4H@ 4H 4H/+++]qr5555+qr+++5555Q=k62'@$A/  @4 /+]5555+5555Q=k62'@$A/  @4 /+]5555+55552%!63dN@A""$$@4@40/]qr++55]+552%!63dN@A""$$@4@40/]qr++55]+55_@j6i@ A&?55+55_@j6i@ A&?55+55_j6-@A@ 4/+]5+5_j6-@A@ 4/+]5+52!673d-t@ HFA@1A""$$GGG@ 4G""$$@4@40/]qr++55]/+]5]+55+52!673d-t@ HFA@1A""$$GGG@ 4G""$$@4@40/]qr++55]/+]5]+55+5_%6.Px/@!0@A?@4@ 4/++]55+]55_%6.Px/@!0@A?@4@ 4/++]55+]55_Lj6.!@A@ 4/+]55+55_Lj6.!@A@ 4/+]55+55_%6/d@; 4@ A @ 4  @ 4 /+]+555++555_%6/d@; 4@ A @ 4  @ 4 /+]+555++5558%60(@/@A@ 4@ 4/++]555+5558%60(@/@A@ 4@ 4/++]555+555I%62P@>@A ` p  @4 @ 4 @ 4 /+++]5555+5555I%62P@>@A ` p  @4 @ 4 @ 4 /+++]5555+5555JF63%@ A @ 4 O  /]+55+55JF63%@ A @ 4 O  /]+55+55JF66V@ 8A!4!!/]+5+5JF66V@ 8A!4!!/]+5+5Jp6$/@A"""4" 4"/++]q55+55Jp6$/@A"""4" 4"/++]q55+55Jp6-8$@4`%A  /]5+]+5Jp6-8$@4`%A  /]5+]+5Jop66'@ %A!@40!@!@!!!/]q+5+5Jop66'@ %A!@40!@!@!!!/]q+5+5Jp67-8-,2@ ## A@4`%A$  /]5/5+]+5+5Jp67-8-,2@ ## A@4`%A$  /]5/5+]+5+5JF6.+@A$@4$@ 4$O$$$$/]++55+55JF6.+@A$@4$@ 4$O$$$$/]++55+55JF62|,@##A(((4(/+]5555+5555JF62|,@##A(((4(/+]5555+5555>l67-8-4@MK AIG#AL@ 4L@ 4LH@ 4H/+5/++5+5+5>l67-8-4@MK AIG#AL@ 4L@ 4LH@ 4H/+5/++5+5+5?67-8-X4@@@66A><AA@ 4A@ 4A=@ 4=/+5/++5+5+5?67-8-X4@@@66A><AA@ 4A@ 4A=@ 4=/+5/++5+5+5>W601G@ 4GGAL@ 4L 4L/++555++555>W601G@ 4GGAL@ 4L 4L/++555++555?560X1<@ 4<<AA@ 4A 4A/++555++555?560X1<@ 4<<AA@ 4A 4A/++555++555>670/<Q@ ]W#AG@ 4GGA\/\`\\\L@ 4L 4L/++555/]555++555+555>670/<Q@ ]W#AG@ 4GGA\/\`\\\L@ 4L 4L/++555/]555++555+555?670X/<Q@ RLA<@ 4<<AQ/Q`QQQA@ 4A 4A/++555/]555++555+555?670X/<Q@ RLA<@ 4<<AQ/Q`QQQA@ 4A 4A/++555/]555++555+555>LW6.x$@E?AD@ 4D 4D/++55+55>LW6.x$@E?AD@ 4D 4D/++55+55L>6.$@71A6@ 46 46/++55+55L>6.$@71A6@ 46 46/++55+55>l6/x<#@ICAH/H`HHH/]555+555>l6/x<#@ICAH/H`HHH/]555+555%6/<)@ ;5A:@ 4:/::/]+555+555%6/<)@ ;5A:@ 4:/::/]+555+555%Y6/X<1@DDD!!AC@ 4C/CCCC/]+555+]555%Y6/X<1@DDD!!AC@ 4C/CCCC/]+555+]555*N 6/d@FB@,C4BBB<AA@#[4A@4_AoAAA/A?ApAA/]q++555+]+5556N6/<2@?9A>>/>>>>> 4>/+]r555+555%,6/x#@(" A/'?'`'''/]555+555%'6/d<4@ 3- A242@ 42/222/]++555+555'%O*@bPD6y ' @, @ !    @ p  $A  *??3?9/]/2/]]9/10]]]]]_]!"'&'&54767!!&'&547632'4'&#"OkӁOV3%(+ :u7?>FUc,%h/"!)%HNYwQ(W[%~ *0G]jwubW/8)%1'O6-5+4+ 4@ ++A,@ 4, 4,/++5+++5'O6-5+4+ 4@ ++A,@ 4, 4,/++5+++5$[6*- @$" A#@ 4# 4#/++5+56+- @ A@ 4 4/++5+5'O#67-X-L3@1/A-+A0@ 40,@ 4, 4,/++5/+5+5+5'O#67-X-L3@1/A-+A0@ 40,@ 4, 4,/++5/+5+5+5$6*6--S@7(@ 4(( A$" A''''/''''@4'@ 4'#@ 4# 4#/++5/++]qr5+5++56+6--C@)$@ 4$$ A  A##@4#@ 4#@ 4 4/++5/++]5+5++5'%O,6/L(5@55A?4`444/]555+]555'%O,6/L(5@55A?4`444/]555+]555%$6*/<,@ 4,&A+/+P+`++@ 4+@ 4+/++]555++555%6+/3@("A'/'@''4'4'/++]555+555'6015@45+A0@ 40 40/++555++555'6015@45+A0@ 40 40/++555++555$[6*0((@,"A'@ 4' 4'/++555+5556+0((@(A#@ 4# 4#/++555+555'%Oh62L-@55/A4@4`4p444/]5555+]5555'%Oh62L-@55/A4@4`4p444/]5555+]5555%$6*2,R,@& 4,&A+/+_++++/+P++@4+@ 4+@ 4+/+++]qr5555++5555%6+2,?(@ 4("A'/'@'`'''''4'/+]5555++5555Fg6,-D~@0;;;))A   /  ﴟ &?2?/]9/]]]]999]9]]]]/9/10]]#"'#!5!254'&'&&54767733zuqZfTQ3ZmvфFtT0kX9%`7+1)Y/XgpQXF,3";!%)jW%6-<<@%----@ 4-- A/0?000 000 40/+]q55++]55%v6.<<@% FFFFF@ 4FF##A/I?II`III 4I/+]q55++]55%'6/|<8@!@ 4A/!?!!`!!! 4!/+]q55++]55%60|<:@#7777@ 477''A/:?::`::: 4:/+]q55++]55-%36-hIJJ 4@*JJAKKKKKK@!/4K@ 4K@ 4K/+++]5]++q5-%36-hIJJ 4@*JJAKKKKKK@!/4K@ 4K@ 4K/+++]5]++q5%'6/-P8;#4@ 42A?O@6>4/+]5+++]q5%'6/-P8;#4@ 42A?O@6>4/+]5+++]q5-%6/h|\@ ToTT@ 4TN3=ASS@'4S@=>4S@ 4S-4/+5/+++q555]++]q555-%6/h|\@ ToTT@ 4TN3=ASS@'4S@=>4S@ 4S-4/+5/+++q555]++]q555%'6/n('@((( A?'O''''/]555+]555%'6/n('@((( A?'O''''/]555+]555-360(@TN.)AO@ 4O 4O/++555+555-360(@TN.)AO@ 4O 4O/++555+555'6/0(@(A#@ 4# 4#/++555+555'6/0(@(A#@ 4# 4#/++555+555%61<<@%8888@ 488 A/;?;;; ;;; 4;/+]q55++]55%v62<<@% QQQQQ@ 4QQ##A/T?TT`TTT 4T/+]q55++]55%'63|<8@!)))@ 4))A/,?,,`,,, 4,/+]q55++]55%64|<:@#BBBB@ 4BB((A/E?EE`EEE 4E/+]q55++]55%!61mpn@ >>>1\4>4>@ 4>>A166=@<4===_=o==P=`==.<4./+5/]qr+55]++++qr55%v!62mpgW@$1\4WWOW W@WWWWQAJOOV@<4VVV_VoVVPV`VVG<4G/+5/]qr+55]+]qr+55%'!63m/@<4///P/`////4/@%'4// A&'&'?.O..@<4..._.o..P.`..*4t/]+5/]qr+5]5]+++]qr+55%!64mH<4H@4HHHPHHHH@%'4HH""A{7z8?@?@?GOGG@<4GGG_GoGGPG`GG8*4t88/]+5/]qr+5]5]++]qr++55L61.$@>8 A=@ 4= 4=/++55+55Lv62.$@WQAAV@ 4V 4V/++55+55L'63.$@/)A.@ 4. 4./++55+55L64.$@HBAG@ 4G 4G/++55+55611$@>8 A=@ 4= 4=/++55+55v621$@WQAAV@ 4V 4V/++55+55'631$@/)A.@ 4. 4./++55+55641$@HBAG@ 4G 4G/++55+55%!61nHIɳB74B264B&+4B!$4B4B@ 4BBBBA6@41w4A_AoAAA@ 4A@4A4A<=4A@ F4A@I5A.d4.1c4.04v../5]+++5/++++++qr555]++]q++++++555%v!62nHIҳ[74[=5[264[&-4[!$4[@4[`[[@[P[[[AO@4IJdMtMOZ_ZoZZZ@ 4Z@4Z4Z<=4Z@ F4Z@I5ZGd4G1c4G04G/5+++5/++++++qr555]q++]q++++++555%'!63nI3:43=>43'943!$43@43P3`333 A(г74'г74&г74''4'@&4'$'""s#s$s%&&2_2o222@ 42@4242<=42@ F42@I52d4*c4)4ش4/5++++5/++++++qr555]qr++++++]+++++555%!64nI@PLL@LPLLLLL;4L=>4L':4L@ !$4LL""AAг74@г74?г74@'4@@+4@$@;dt@?? K_KoKKK@ 4K@4K4K<=4K@ F4K@I5K8d48*c48)48ش48/5++++5/++++++qr555]r++++++++++]q555G  66c@ 99999@ 499''A(%4'%4&%4* 4) 4(г $4' $4&@ $4:@Sc4:@' "4:0::::/:_:o::: :`:p::::4/+5/]qr++5++++++++++]5G  66c@ 99999@ 499''A(%4'%4&%4* 4) 4(г $4' $4&@ $4:@Sc4:@' "4:0::::/:_:o::: :`:p::::4/+5/]qr++5++++++++++]5% 66c@( 4A@(B4@(B4@(B4C4C4C4 4 4 4 4 4 44 4 4 4CE4=>4;5@ 40p`p/]qr++++5++++++++++++++++++q5% 66c@( 4A@(B4@(B4@(B4C4C4C4 4 4 4 4 4 44 4 4 4CE4=>4;5@ 40p`p/]qr++++5++++++++++++++++++q5G !6-N:::@::$$A9@Ad48@Ad4(%4'%4&%4* 4) 4(г $4' $4&@% $4&&9p99999`9p9o99999X59R59JK49DG49A59<59@ [49@ 494/+5/++++++++]qr5]+++++++++++]5G !6-N:::@::$$A9@Ad48@Ad4(%4'%4&%4* 4) 4(г $4' $4&@% $4&&9p99999`9p9o99999X59R59JK49DG49A59<59@ [49@ 494/+5/++++++++]qr5]+++++++++++]5%!6-P,.44@ ARc4@'Q4@'c4 4 4 4 4 4 44 4 4@' 4 p`poX5R5JK4DG4A5<5@ [4@ 4/++++++++]qr5]++++++++++++++++qr5%!6-P,.44@ ARc4@'Q4@'c4 4 4 4 4 4 44 4 4@' 4 p`poX5R5JK4DG4A5<5@ [4@ 4/++++++++]qr5]++++++++++++++++qr5G !6n0I >F5>.04>',4>4> 4>>''A)4(4'4&4(%4'%4&%4* 4) 4(г $4' $4&@ $4&AAPA`ApAAAe4AXY4AFH4A<=4A@ 4A@4A4/+5/++++++]q5]55]++++++++++++++++++555G !6n0I >F5>.04>',4>4> 4>>''A)4(4'4&4(%4'%4&%4* 4) 4(г $4' $4&@ $4&AAPA`ApAAAe4AXY4AFH4A<=4A@ 4A@4A4/+5/++++++]q5]55]++++++++++++++++++555%!6nI@  6;44 4A 4 4 4 4 4 44 4 4@ 4 _oP`pe4XY4FH4<=4@ 4@4/++++++]q555]++++++++++++++qr555%!6nI@  6;44 4A 4 4 4 4 4 44 4 4@ 4 _oP`pe4XY4FH4<=4@ 4@4/++++++]q555]++++++++++++++qr555G] 36o,tx>>@&>> A=@G5=@>@&>> A=@G5=@@ ++%A- 4/ 4.@ 44@ 44?+55++++]55E5v6T>@ ++%A- 4/ 4.@ 44@ 44?+55++++]55@6(i@ A ?55+55@6(i@ A ?55+55El56/,<(+@+%A**/**/]555+]555El56/,<(+@+%A**/**/]555+]5556N 6'-@;9A:/:`:::::/]5+56N56(-@MK)3AL/L`LLLLL/]5+5=6)-*@%%A$/$$$$$$$@4$/+]5+5=6)-*@%%A$/$$$$$$$@4$/+]5+56 69< ] %%%%/4@9%%A% 4%4%4%@ 4% 4_%%%@%%%%/%%%%%/]qr+++++5++]5%69<_ (((@@((A--/-?-_-o----@C5-@574-@./4-@*+4- 4-@#4-@4-@ 4-/++++++++]q5+]5G@ Y8Hyh  ?2/10]]]]]]]#"&'&'&#"'3233HB]@8 !CfG=.9T\C<%5G>d}akN69D*@ A?_o 4@4/++]5+5t6.d&@ A?Oo/]55+552cu66g@ 777@77A-- 45@ 4 4....@.p....4. 4./++]qr55+++]+]rq552cu66g@ 777@77A-- 45@ 4 4....@.p....4. 4./++]qr55+++]+]rq552cu.4@$ 4' 404Yi`  $& 4 (33 /&6 ,11/@&$/"?""" &  *?2/?99/qr229/]322//39/9/+39910_^]]]+++#"'&'&'7327677#"'&#"'63232767 547632&#"uzBF:K+WvB,{lRN .\y  0;x[08V?&QEa #>/U ! K!%#gXfAd2cu$2c|664+@ 4++A-@4@---?-`---/]q+5++52c|664+@ 4++A-@4@---?-`---/]q+5++52cuQ6!@*/BG2-656p@???<$ A>_>>/]5+]5$e666@777877//A9?99/]5+]5r6681@$Ao/?_@4@&*4/++]qr5+5r6681@$Ao/?_@4@&*4/++]qr5+52cu6-T*8@-+((A0,@,,/,?,,,,,@ 4,@4,/++]q5+52cu6-T*8@-+((A0,@,,/,?,,,,,@ 4,@4,/++]q5+5265p,8>>@>@AAAAA4A 4A/++q55+]55$N66p@;@99; A:JL4:@G4:-64::?]+++55+]556)1$@#A@ 4 4/++55+556)1$@#A@ 4 4/++55+55265qT8;F 4@ F<AAA4A 4A/++q555++555$N66q@9A@ 4A7 A:@I5::: 4:?+r+555++555E(@@   @4%(*%@%4%)#!!*!!?!O!!! #!'@@ %4 4 4   @ 4  ''/9/99]+_^]+++M99_^]_q]qq/+29/+310_^]_^]%!"'&'&6767676767632&#"3!ot5"YYQdF!* ==6A2$ex^r @(I00/oN60GM.|LM74M:EWI@G W g  @ v  ?9?99]9/210]]!"'&'&76767!3# 3!ot1pW*u^W 7 ;!3#V011&7A@C(44 4/@@ 4 @@#$4/& 4@ 4@@4@@e4 @ / 8 $48!>&&&&7/4@ 7 ;!% B.2A[KRh204 }.0&*s@ 9B4$4@/4  @@4 @@4?_/]9+9/9/+99910+++#"'##532767'&'1QI1[JIL0>PN7 $ )B&<%L#E(E,E(EE(E~&3 4!4@="4; K [ ///..&, @4@ @4 @ 4 #%&@'&&@#4&& ,@@ 4' @ &@1 4./*!/&%&!&! ? _   W/]9]]2]999+/_^]9^]/+9/+3229/+++9/9/9/10_^]q+++#"'###"54767327654'73254'73254'7&3+$A;hGh& 7\HY9( ;Q)#,  !!o;(I^4 qCx 'GUFb&*J2#/+/*14$923?DPnz@gY:)@.ui {omU40?......QZE%D h|d^K0 !    bU=0W^N\ZD7)+H%##'DB'dfrmki{x {~ /9/322222/9/322323/]]]23222223]]]2322222310#"'! '#"&547&'&54767&546326! 6324&#"326'&#"4&#"3264'&'#"'!#"'632!6324&#"326'!32%4&#"326hdN7(!!(7NdhhdN7(!!(7NdhN. /.! .9/ .. !.\X#8'('8#X\S#8''8#S. !./ .x.! .. /֚7MM7՚7MM7g!./ ..3mm /.! ..ƾ))?))(d .. /.m .. !./ 2{!$,/;G"@E , ,' %$+# -/@,, ,,@64,0 #4@@4@ 4  @@ 4@@ 4`p ? _   */]]+2+9/3/9/_^]9/++9+10_^]_]+++#"&''&54767&'&#"'6329! "h*T%C39Dl$+Hr< o # ]I!~oKk @CD4 ?+5&a\b@  @@%[4  @@%4@%+4?_/]++9+9/910#"&#"'632327a&?  ?I# &@ 4!4ֳ4@ 4  @@4@ 4 @@ 4@@ 4 ?_W/]++/3++10_^]_qq++++#"'&''732767"547632&#":@U !$>8fY')J&!NNV  a4a1*0O0&@l4  4 @/ 4/ 4 @4 @ @4 @ 4P  ?_W/]q+++99+_^]99+_^]/29/^]_]+310_^]+!"&'&7676632&#"3!7,'^+)1H9-&U3XjT!;$)% &{@l4  4 @/ 4/ 4 @4 @ @4 @ 4P  ?_W/]q+++99+_^]99+_^]/29/^]_]+310_^]+!"&'&7676632&#"3!7,'^+)1H9-&U3XjT!;$)% &@O"4 444.@ @4   @@ 4 @ 4?_W/]+99/3+99/_^]^]+9/_^]999/10++++'7!"54767327654'7@$M#% 6UF[2(,eE(EkҒL[4 oEx'I_l67-/<?@$UO#AIG AT/T`TTTH@ 4H 4H/++5/]555+5+555>l67-/<?@$UO#AIG AT/T`TTTH@ 4H 4H/++5/]555+5+555?67-X/<?@$JDA<<66AI/I`III=@ 4= 4=/++5/]555+5+555?67-X/<?@$JDA<<66AI/I`III=@ 4= 4=/++5/]555+5+555>l6-a$@EECAD@ 4D 4D/++5+]5>l6-a$@EECAD@ 4D 4D/++5+]56- @75A6@ 46 46/++5+56- @75A6@ 46 46/++5+5*N 6-d@ >>2+A=/5+56N6-@(1; 4;@4;;928A`::@ 4:/+q5+]++56-, @$$ A#@ 4# 4#/++5+5'6- @/- A.@ 4. 4./++5+5y3$(,@%  !!*,'@%%/%%% ##@ 4. @@ @4##@ 4#@ ,'* %0%@%% ?9]9/+M9/+9/M9/3_^]+9/9/9/9/_^]10]]'6767'&54767632&'&#"6#33#0bq] t3(0>PQK1 (4%='0h>353__%'IB@&>2SSQ!@ ('K-J.&D!Ogg6 q `@}Zj ,?3?/r9/9/210]]]]!5!4'&'7#"'&547KNH6&8!^%u?,P[3M0&27/E4@ 4/993/q++993/++99/3/++_^]+99_^]+993/++_^]+9910'7'7'7 96496T96L`$`U`$`|`$`x V@<  @ 4 ~ O _ o  @yj9IY*@@ 4@P1 @@4eu6FV%@C 4P`puFVf5&   @ @174 @"%4 @ 4/+_^]992/++_^]99]]]]]3/]99/3/]]]+99_^]_]]]]3/+_^]]]+99_^]_]]]]]]]+9910%'7'7''7JLJL JL8}@}}@}7}@}|KF|@1@$74@@$74/!@@b4@MW4HH4@#4/q993/++++_^]99/+992/+9910%'7'71"^$v"^$.FFFFmp7 @  @4 @&-4 @4@ &-4@4@&-4@@.C4@+4@4&C4@4@#4@.34@##44  @#4 @ @4 #4/+993/++993/_^]+++99/++3/+++++993/++99++9910%'7'7''7"f"D"f""f"FFFFFF%6-np#@77A?6O6666/]555+555%v6.np#@PPA?OOOOOO/]555+555^%6#@ A4 4/++5+5( ! //103#"&'3326{{SFQS}~DCAd//105!hhW%6v@ 4 @4PP    A 4  /]+5+5]q++65K@-./-./0س 4/س 4.س 4-س 4,س 4[[vvA+5+++++q650@ 0 P `  @ 4 /KKffA+5.]5.+]5S$65,HddAh4h5h:5h@AB4@hPhh0h@hhh.]qr++++5+5J$65d,F@ KK&&AX4X5X:5X@AB4@XPXX0X@XXX.]qr++++5+5SB69T8W22T!$4T@4T T@TT`T T0T@TpTTT@TO2?@^@ 4^.+5]+]qr++5]JB698a0 4D%(4D "4D4D@ 4pDDD@ D?0A @ 4 N@ H4N.+5.+5]+q++++5+S 660cbO@ 4PO`OOOAQCE4Q=>4Q;5Q@ 4Q0QQQQpQQQQ`QpQQQ/]qr++++5+]+5J 660cgB 4@B?03A123ACE4A=>4A;5A@ 4A0AAAApAAAA`ApAAA/]qr++++5]++5S!6-Nq@&QQ<Zsk@ 44@ 4@ 4 @ @ <4   /9+_^]//M2+10_^]+++&#"'676763632$0CzAH3K03RZ.b!!r)ΙmZ5vߋ !64S\\**A+55/55!64CLLA+55/55\ N$7<  h$$7h$9h$:$D:A:E-:H:I:K:L`:M:N:Q`:W:Z:l:m:n:w-;:;A;H;K;L;M;N;O;Q;T;W;Y;e;m<:<><@<A<E<H<K<Lw<M<N<O<Q<T<Y<^<f<l<m<o<q<y===w=w==:w=>w=A=E=F=H=K=Y=Z=\=^w=_w=b=e=f=g=hw=j=mw=u=v=x=yw>M>N>Q>aD>h>m-?A?k@A@H@K@L@M-@T-@Z@_@h@mAEAHAKALAMANAQAYDADHDKDMDNENE[EmFNFQFZF_FhFkFmFqFwH:H>H@HEHMHOHQHYH^HeHoJ}J}JJJJ:wJ>wJ@JAJEJFJHJKJLJMJNJOJYJZJ^`J_JhJwJyK:K>KAKEKFKHKLKMKOKQKTKWKZK`-KqLLLLLL:L>L@LALELHLNLYLZL\L_LbLdLeLfLh`LiLjLkLmLoLsLuLvLxLyMMMMMMMM:wM>MAMEMHMNMWMYM[M\M]M^`M_wM`MaMbMcMdMewMfMgMhwMiMjMkwMoMpMrMsMxMywN:N>NENLNMNQNYNeOAOHOKONOWOhOmPHPZ-SZSm-TwTYV`V:V>V@VAVEVFVHVKVL3VOVQ`VWVYW>W@WAWEWOWYW^W`WeWfWyX:X>X@XEXHXKXLXOXQX^XeXfZaZlZmZq[Z[^[_[`[a[e[f[k[m[n[o[q[t[w[y\Z\[\^\_\`\a\e\f\h\k\l\m\n\q\t\y]]]Z]^]_]a]e]h]k]y^t^w_[_^_`_a_e_l_m_o_q`[`m`q`t-a[a^a_aaaeahakamanaqatdZ-d[-d_dadedhdkdldmdweheqf[fafmh^h`hahehlhmhohqj^jajejljmjojqjyk`khkqkwlllZl^l_l`Dlelhlklmm3m3mmZm[m^m_m`memfmhmjmkmnmwmyn[n^nenlnmnqnyoZo[o_oaohokolonoqp_paphpks_shsmvl`vqww^w_wawewhwlwowyx^x`xexfxlxoxq33``.13 "&+FN >^ >,&|   b. f \RA/2 Iabh E$ a 1i 3 Z.   '7   >  ^  >   , &|   b. f  \   G   Wgu  W  $*-       Typeface The Monotype Corporation plc. Data The Monotype Corporation plc/Type Solutions Inc. 1990-1992. All Rights ReservedContemporary sans serif design, Arial contains more humanist characteristics than many of its predecessors and as such is more in tune with the mood of the last decades of the twentieth century. The overall treatment of curves is softer and fuller than in most industrial style sans serif faces. Terminal strokes are cut on the diagonal which helps to give the face a less mechanical appearance. Arial is an extremely versatile family of typefaces which can be used with equal success for text setting in reports, presentations, magazines etc, and for display use in newspapers, advertising and promotions.Monotype:Arial Regular:Version 3.00 (Microsoft)ArialMTArial Trademark of The Monotype Corporation plc registered in the US Pat & TM Off. and elsewhere.NOTIFICATION OF LICENSE AGREEMENT This typeface is the property of Monotype Typography and its use by you is covered under the terms of a license agreement. You have obtained this typeface software either directly from Monotype or together with software distributed by one of Monotype's licensees. This software is a valuable asset of Monotype. Unless you have entered into a specific license agreement granting you additional rights, your use of this software is limited to your workstation for your own publishing use. You may not copy or distribute this software. If you have any question concerning your rights you should review the license agreement you received with the software or contact Monotype for a copy of the license agreement. Monotype can be contacted at: USA - (847) 718-0400 UK - 01144 01737 765959 http://www.monotype.comMonotype Type Drawing Office - Robin Nicholas, Patricia Saunders 1982http://www.monotype.com/html/mtname/ms_arial.htmlhttp://www.monotype.com/html/mtname/ms_welcome.htmlhttp://www.monotype.com/html/type/license.htmlTypeface The Monotype Corporation plc. Data The Monotype Corporation plc/Type Solutions Inc. 1990-1992. All Rights ReservedContemporary sans serif design, Arial contains more humanist characteristics than many of its predecessors and as such is more in tune with the mood of the last decades of the twentieth century. The overall treatment of curves is softer and fuller than in most industrial style sans serif faces. Terminal strokes are cut on the diagonal which helps to give the face a less mechanical appearance. Arial is an extremely versatile family of typefaces which can be used with equal success for text setting in reports, presentations, magazines etc, and for display use in newspapers, advertising and promotions.Monotype:Arial Regular:Version 3.00 (Microsoft)ArialMTArial Trademark of The Monotype Corporation plc registered in the US Pat & TM Off. and elsewhere.NOTIFICATION OF LICENSE AGREEMENT This typeface is the property of Monotype Typography and its use by you is covered under the terms of a license agreement. You have obtained this typeface software either directly from Monotype or together with software distributed by one of Monotype's licensees. This software is a valuable asset of Monotype. Unless you have entered into a specific license agreement granting you additional rights, your use of this software is limited to your workstation for your own publishing use. You may not copy or distribute this software. If you have any question concerning your rights you should review the license agreement you received with the software or contact Monotype for a copy of the license agreement. Monotype can be contacted at: USA - (847) 718-0400 UK - 01144 01737 765959 http://www.monotype.comMonotype Type Drawing Office - Robin Nicholas, Patricia Saunders 1982http://www.monotype.com/html/mtname/ms_arial.htmlhttp://www.monotype.com/html/mtname/ms_welcome.htmlhttp://www.monotype.com/html/type/license.htmlNormalnyoby ejnnormalStandardNormaaliNormlneNormaleStandaard1KG=K9NavadnothngArrunta'  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~.nullnonmarkingreturnmu1pi1OhmEurodmacron overscoremiddotAbreveabreveAogonekaogonekDcarondcaronDslashEogonekeogonekEcaronecaronLacutelacuteLcaronlcaronLdotldotNacutenacuteNcaronncaron Odblacute odblacuteRacuteracuteRcaronrcaronSacutesacuteTcedillatcedillaTcarontcaronUringuring Udblacute udblacuteZacutezacuteZdotzdotGammaThetaPhialphadeltaepsilonsigmatauphi underscoredbl exclamdbl nsuperiorpeseta arrowleftarrowup arrowright arrowdown arrowboth arrowupdn arrowupdnbse orthogonal intersection equivalencehouse revlogicalnot integraltp integralbtSF100000SF110000SF010000SF030000SF020000SF040000SF080000SF090000SF060000SF070000SF050000SF430000SF240000SF510000SF520000SF390000SF220000SF210000SF250000SF500000SF490000SF380000SF280000SF270000SF260000SF360000SF370000SF420000SF190000SF200000SF230000SF470000SF480000SF410000SF450000SF460000SF400000SF540000SF530000SF440000upblockdnblockblocklfblockrtblockltshadeshadedkshade filledbox filledrecttriaguptriagrttriagdntriaglfcircle invbullet invcircle smileface invsmilefacesunfemalemalespadeclubheartdiamond musicalnotemusicalnotedblIJij napostropheminutesecond afii61248 afii61289H22073H18543H18551H18533 openbulletAmacronamacron Ccircumflex ccircumflexCdotcdotEmacronemacronEbreveebreveEdotedot Gcircumflex gcircumflexGdotgdotGcedillagcedilla Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonek Jcircumflex jcircumflexKcedillakcedilla kgreenlandicLcedillalcedillaNcedillancedillaEngengOmacronomacronObreveobreveRcedillarcedilla Scircumflex scircumflexTbartbarUtildeutildeUmacronumacronUbreveubreveUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexlongs Aringacute aringacuteAEacuteaeacute Oslashacute oslashacute anoteleiaWgravewgraveWacutewacute Wdieresis wdieresisYgraveygrave quotereversed radicalex afii08941 estimated oneeighth threeeighths fiveeighths seveneighths commaaccentundercommaaccenttonos dieresistonos Alphatonos EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos OmegatonosiotadieresistonosAlphaBetaDeltaEpsilonZetaEtaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonChiPsi IotadieresisUpsilondieresis alphatonos epsilontonosetatonos iotatonosupsilondieresistonosbetagammazetaetathetaiotakappalambdanuxiomicronrhosigma1upsilonchipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos omegatonos afii10023 afii10051 afii10052 afii10053 afii10054 afii10055 afii10056 afii10057 afii10058 afii10059 afii10060 afii10061 afii10062 afii10145 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097 afii10071 afii10099 afii10100 afii10101 afii10102 afii10103 afii10104 afii10105 afii10106 afii10107 afii10108 afii10109 afii10110 afii10193 afii10050 afii10098 afii00208 afii61352sheva hatafsegol hatafpatah hatafqamatshiriqtseresegolpatahqamatsholamqubutsdageshmetegmaqafrafepaseqshindotsindotsofpasuqalefbetgimeldalethevavzayinhettetyodfinalkafkaflamedfinalmemmemfinalnunnunsamekhayinfinalpepe finaltsaditsadiqofreshshintav doublevavvavyod doubleyodgeresh gershayim newsheqelsign vavshindot finalkafshevafinalkafqamats lamedholamlamedholamdageshaltayin shinshindot shinsindotshindageshshindotshindageshsindot alefpatah alefqamats alefmapiq betdagesh gimeldagesh daletdageshhedagesh vavdagesh zayindagesh tetdagesh yoddageshfinalkafdagesh kafdagesh lameddagesh memdagesh nundagesh samekhdagesh finalpedageshpedagesh tsadidagesh qofdagesh reshdagesh shindageshtavdagesvavholambetrafekafrafeperafe aleflamedzerowidthnonjoinerzerowidthjoinerlefttorightmarkrighttoleftmark afii57388 afii57403 afii57407 afii57409 afii57440 afii57451 afii57452 afii57453 afii57454 afii57455 afii57456 afii57457 afii57458 afii57392 afii57393 afii57394 afii57395 afii57396 afii57397 afii57398 afii57399 afii57400 afii57401 afii57381 afii57461 afii63167 afii57459 afii57543 afii57534 afii57494 afii62843 afii62844 afii62845 afii64240 afii64241 afii63954 afii57382 afii64242 afii62881 afii57504 afii57369 afii57370 afii57371 afii57372 afii57373 afii57374 afii57375 afii57391 afii57471 afii57460 afii52258 afii57506 afii62958 afii62956 afii52957 afii57505 afii62889 afii62887 afii62888 afii57507 afii62961 afii62959 afii62960 afii57508 afii62962 afii57567 afii62964 afii52305 afii52306 afii57509 afii62967 afii62965 afii62966 afii57555 afii52364 afii63753 afii63754 afii63759 afii63763 afii63795 afii62891 afii63808 afii62938 afii63810 afii62942 afii62947 afii63813 afii63823 afii63824 afii63833 afii63844 afii62882 afii62883 afii62884 afii62885 afii62886 afii63846 afii63849uni202Auni202Buni202Duni202Euni202Cuni206Euni206F;uni206Auni206Buni206C;uni206DuniF00AuniF00BuniF00CuniF00DuniF00EuniFFFC afii63904 afii63905 afii63906 afii63908 afii63910 afii63912 afii62927 afii63941 afii62939 afii63943 afii62943 afii62946 afii63946 afii62951 afii63948 afii62953 afii63950 afii63951 afii63952 afii63953 afii63956 afii63958 afii63959 afii63960 afii63961 afii64046 afii64058 afii64059 afii64060 afii64061 afii62945 afii64184 afii52399 afii52400 afii62753 afii57411 afii62754 afii57412 afii62755 afii57413 afii62756 afii57414 afii62759 afii62757 afii62758 afii57415 afii62760 afii57416 afii62763 afii62761 afii62762 afii57417 afii62764 afii57418 afii62767 afii62765 afii62766 afii57419 afii62770 afii62768 afii62769 afii57420 afii62773 afii62771 afii62772 afii57421 afii62776 afii62774 afii62775 afii57422 afii62779 afii62777 afii62778 afii57423 afii62780 afii57424 afii62781 afii57425 afii62782 afii57426 afii62783 afii57427 afii62786 afii62784 afii62785 afii57428 afii62789 afii62787 afii62788 afii57429 afii62792 afii62790 afii62791 afii57430 afii62795 afii62793 afii62794 afii57431 afii62798 afii62796 afii62797 afii57432 afii62801 afii62799 afii62800 afii57433 afii62804 afii62802 afii62803 afii57434 afii62807 afii62805 afii62806 afii57441 afii62810 afii62808 afii62809 afii57442 afii62813 afii62811 afii62812 afii57443 afii62816 afii57410 afii62815 afii57444 afii62819 afii62817 afii62818 afii57445 afii62822 afii62820 afii62821 afii57446 afii62825 afii62823 afii62824 afii57447 afii62828 afii57470 afii62827 afii57448 afii62829 afii57449 afii62830 afii57450 afii62833 afii62831 afii62832 afii62834 afii62835 afii62836 afii62837 afii62838 afii62839 afii62840 afii62841 glyph1021 afii57543-2 afii57454-2 afii57451-2 glyph1025 glyph1026 afii57471-2 afii57458-2 afii57457-2 afii57494-2 afii57459-2 afii57455-2 afii57452-2 glyph1034 glyph1035 glyph1036 afii62884-2 afii62881-2 afii62886-2 afii62883-2 afii62885-2 afii62882-2 afii57504-2 afii57456-2 afii57453-2 glyph1046 glyph1047 afii57543-3 afii57454-3 afii57451-3 glyph1051 glyph1052 afii57471-3 afii57458-3 afii57457-3 afii57494-3 afii57459-3 afii57455-3 afii57452-3 glyph1060 glyph1061 glyph1062 afii62884-3 afii62881-3 afii62886-3 afii62883-3 afii62885-3 afii62882-3 afii57504-3 afii57456-3 afii57453-3 glyph1072 glyph1073 afii57543-4 afii57454-4 afii57451-4 glyph1077 glyph1078 afii57471-4 afii57458-4 afii57457-4 afii57494-4 afii57459-4 afii57455-4 afii57452-4 glyph1086 glyph1087 glyph1088 afii62884-4 afii62881-4 afii62886-4 afii62883-4 afii62885-4 afii62882-4 afii57504-4 afii57456-4 afii57453-4 glyph1098 glyph1099 glyph1100 glyph1101 glyph1102 glyph1103 glyph1104 glyph1105 glyph1106 glyph1107 glyph1108 glyph1109 glyph1110 glyph1111 glyph1112 glyph1113 glyph1114 glyph1115 glyph1116 glyph1117 glyph1118 glyph1119 glyph1120 glyph1121 glyph1122 glyph1123 glyph1124 glyph1125 glyph1126 afii57440-2 afii57440-3 afii57440-4OhornohornUhornuhorn glyph1134 glyph1135 glyph1136uniF006uniF007uniF009combininghookaboveuniF010uniF013uniF011uniF01CuniF015combiningtildeaccent glyph1147 glyph1148uniF02Cdongsignonethird twothirdsuniF008 glyph1154 glyph1155uniF00FuniF012uniF014uniF016uniF017uniF018uniF019uniF01AuniF01BuniF01EuniF01FuniF020uniF021uniF022combininggraveaccentcombiningacuteaccentuniF01DcombiningdotbelowuniF023uniF029uniF02AuniF02BuniF024uniF025uniF026uniF027uniF028uniF02DuniF02EuniF02FuniF030uniF031 Adotbelow adotbelow Ahookabove ahookaboveAcircumflexacuteacircumflexacuteAcircumflexgraveacircumflexgraveAcircumflexhookaboveacircumflexhookaboveAcircumflextildeacircumflextildeAcircumflexdotbelowacircumflexdotbelow Abreveacute abreveacute Abrevegrave abrevegraveAbrevehookaboveabrevehookabove Abrevetilde abrevetildeAbrevedotbelowabrevedotbelow Edotbelow edotbelow Ehookabove ehookaboveEtildeetildeEcircumflexacuteecircumflexacuteEcircumflexgraveecircumflexgraveEcircumflexhookaboveecircumflexhookaboveEcircumflextildeecircumflextildeEcircumflexdotbelowecircumflexdotbelow Ihookabove ihookabove Idotbelow idotbelow Odotbelow odotbelow Ohookabove ohookaboveOcircumflexacuteocircumflexacuteOcircumflexgraveocircumflexgraveOcircumflexhookaboveocircumflexhookaboveOcircumflextildeocircumflextildeOcircumflexdotbelowocircumflexdotbelow Ohornacute ohornacute Ohorngrave ohorngraveOhornhookaboveohornhookabove Ohorntilde ohorntilde Ohorndotbelow ohorndotbelow Udotbelow udotbelow Uhookabove uhookabove Uhornacute uhornacute Uhorngrave uhorngraveUhornhookaboveuhornhookabove Uhorntilde uhorntilde Uhorndotbelow uhorndotbelow Ydotbelow ydotbelow Yhookabove yhookaboveYtildeytildeuni01CDuni01CEuni01CFuni01D0uni01D1uni01D2uni01D3uni01D4uni01D5uni01D6uni01D7uni01D8uni01D9uni01DAuni01DBuni01DC glyph1292 glyph1293 glyph1294 glyph1295uni0492uni0493uni0496uni0497uni049Auni049Buni049Cuni049Duni04A2uni04A3uni04AEuni04AFuni04B0uni04B1uni04B2uni04B3uni04B8uni04B9uni04BAuni04BBuni018Funi0259uni04E8uni04E9 glyph1320 glyph1321 glyph1322 glyph1323 glyph1324 glyph1325 glyph1326 glyph1327 glyph1328 glyph1329 glyph1330 glyph1331 glyph1332 glyph1333 glyph1334 glyph1335uni0653uni0654uni0655uni0670uni0671uniFB51uni0672 glyph1343uni0673 glyph1345uni0675glyph47uni0676 glyph1349uni0677 glyph1351uni0678glyphuni0679uniFB67uniFB68uniFB69uni067AuniFB5FuniFB60uniFB61uni067BuniFB53uniFB54uniFB55uni067C glyph1367 glyph1368 glyph1369uni067D glyph1371 glyph1372 glyph1373uni067FuniFB63uniFB64uniFB65uni0680uniFB5BuniFB5CuniFB5Duni0681 glyph1383 glyph1384 glyph1385uni0682 glyph1387 glyph1388 glyph1389uni0683uniFB77uniFB78uniFB79uni0684uniFB73uniFB74uniFB75uni0685 glyph1399 glyph1400 glyph1401uni0687uniFB7funiFB80uniFB81uni0688uniFB89uni0689 glyph1409uni068A glyph1411uni068B glyph1413uni068CuniFB85uni068DuniFB83uni068EuniFB87uni068F glyph1421uni0690 glyph1423uni0691uniFB8Duni0692 glyph1426uni0693 glyph1429uni0694 glyph1431uni0695 glyph1433uni0696 glyph1435uni0697 glyph1437uni0699 glyph1439uni069A glyph1441 glyph1442 glyph1443uni069B glyph1445 glyph1446 glyph1447uni069C glyph1449 glyph1450 glyph1451uni069D glyph1453 glyph1454 glyph1455uni069E glyph1457 glyph1458 glyph1459uni069F glyph1461uni06A0 glyph1463 glyph1464 glyph1465uni06A1uni06A2 glyph1468 glyph1469 glyph1470uni06A3 glyph1472 glyph1473 glyph1474uni06A4uniFB6BuniFB6CuniFB6Duni06A5 glyph1480 glyph1481 glyph1482uni06A6uniFB6FuniFB70uniFB71uni06A7 glyph1488uni06A8 glyph1490uni06AA glyph1492 glyph1493 glyph1494uni06AB glyph1496 glyph1497 glyph1498uni06AC glyph1500 glyph1501 glyph1502uni06ADuniFBD4uniFBD5uniFBD6uni06AE glyph1508 glyph1509 glyph1510uni06B0 glyph1512 glyph1513 glyph1514uni06B1uniFB9BuniFB9CuniFB9Duni06B2 glyph1520 glyph1521 glyph1522uni06B3uniFB97uniFB98uniFB99uni06B4 glyph1528 glyph1529 glyph1530uni06B5 glyph1532 glyph1533 glyph1534uni06B6 glyph1536 glyph1537 glyph1538uni06B7 glyph1540 glyph1541 glyph1542uni06B8 glyph1544 glyph1545 glyph1546uni06B9 glyph1548 glyph1549 glyph1550uni06BAuniFB9Funi06BBuniFBA1uni06BC glyph1556 glyph1557 glyph1558uni06BD glyph1560uni06BF glyph1562 glyph1563 glyph1564uni06C0uniFBA5uni06C1uni06C2uni06C3uni06C4 glyph1571uni06C5uniFBE1uni06C6uniFBDAuni06C7uniFBD8uni06C8uniFBDCuni06C9uniFBE3uni06CA glyph1583uni06CBuniFBDFuni06CD glyph1587uni06CE glyph1589 glyph1590 glyph1591uni06CF glyph1593uni06D0uniFBE5uniFBE6uniFBE7uni06D1 glyph1599uni06D2uniFBAFuni06D3uniFBB1uni06D4uni06D6uni06D7uni06D8uni06D9uni06DAuni06DBuni06DCuni06DDuni06DEuni06DFuni06E0uni06E1uni06E2uni06E3uni06E4uni06E5uni06E6uni06E7uni06E8uni06E9uni06EAuni06EBuni06EDuni06FA glyph1629 glyph1630 glyph1631uni06FB glyph1633 glyph1634 glyph1635uni06FC glyph1637 glyph1638 glyph1639uni06FDuni06FEuniFBA6uniFBA8uniFBA9 glyph1645 glyph1646 glyph1647 glyph1648 glyph1649 glyph1650 glyph1651uniFB1DuniFB1E glyph1654uniFB1F glyph1656 glyph1657 glyph1658 glyph1659 glyph1660 glyph1661 glyph1662 glyph1663 glyph1664 glyph1665 glyph1666 glyph1667 glyph1668 glyph1669 glyph1670 glyph1671 glyph1672 glyph1673M"9&@M Arial ?ARLR00@   "'6GK|}  LNgi*lr >arab MAR isol2isol8init>mediDfinaJfinaPligaVrlig^(F Tr j !T!)/3)*LPTX\`dhlptx|*  L!k6<^bfT'-15(,JNRVZ^bfjnrvz 4:\`dT"*04)+MQUY]aeimquy}+ L"l7=_cgT'-15(,JNRVZ^bfjnrvz 4:\`d" (,.26(,=?ACEGIKOSW[_cgkosw{s  !#%')+-/1359;?AC]ae'+-15(,<>@BDFHJNRVZ^bfjnrvz~  !"$&(*,.0248:>@B\`d" (,.26(,=?ACEGIKOSW[_cgkosw{  !#%')+-/1359;?AC]ae'+-15(,<>@BDFHJNRVZ^bfjnrvz~  !"$&(*,.0248:>@B\`d  p &,28>DJPx?zA|C=$*06<y?{A}C=~   : &,GHIJKarab ghig_0[ *H L0H10 *H 0` +7R0P0, +7<<<Obsolete>>>0 0 *H EͼFT`#00%J8Y]s_]ܣ0  *H 010U VeriSign Trust Network10U VeriSign, Inc.1,0*U #VeriSign Time Stamping Service Root1402U +NO LIABILITY ACCEPTED, (c)97 VeriSign, Inc.0 970512000000Z 040107235959Z010U VeriSign Trust Network10U VeriSign, Inc.1,0*U #VeriSign Time Stamping Service Root1402U +NO LIABILITY ACCEPTED, (c)97 VeriSign, Inc.00  *H 0. h|,-.  WSu3* [4 Z%}XsjxqX)X^-bXq"X/6MJ;"V~!lJGj6 -Ӵ90  *H aU>{ǒ~"Գ+[D x~rȲ㉔LNaﳤF=P4 pV*cyis.(]  γ(y)gBHaSs?OUcc00kzm\obOC0  *H 010U VeriSign Trust Network10U VeriSign, Inc.1,0*U #VeriSign Time Stamping Service Root1402U +NO LIABILITY ACCEPTED, (c)97 VeriSign, Inc.0 010228000000Z 040106235959Z010U VeriSign, Inc.10U VeriSign Trust Network1;09U 2Terms of use at https://www.verisign.com/rpa (c)011'0%UVeriSign Time Stamping Service0"0  *H 0 za벧c+aހ='9)fHOO^/Ǒ{!NXc-)pP햻@۾%BU狙1L$*MhaXr0HO/oc ىʂ{K(Łh@F:?6LTBZze{GT=3*^:.uk=`BO[?"1s+FLmP.K*xt=,G100@+40200+0$http://ocsp.verisign.com/ocsp/status0 U00DU =0;09 `HE0*0(+https://www.verisign.com/rpa0U% 0 +0 U0  *H -Oc`,$R 볼g#F M|z 02h2;'{>! Ř@W%误j;#)]@US6:9ess2үc@0  *H 0p1+0)U "Copyright (c) 1997 Microsoft Corp.10U Microsoft Corporation1!0UMicrosoft Root Authority0 970110070000Z 201231070000Z0p1+0)U "Copyright (c) 1997 Microsoft Corp.10U Microsoft Corporation1!0UMicrosoft Root Authority0"0  *H 0 p;N(x^0ꢩ%_L >|Q`2kBdyvT뜆fkzb#<Ŀ-fh&:, X&F >8,(9IBlUa|`-wL陴d;P1$+=c`Xe7RӿUE:TNzmtN̖ (!W`i7Kc@0  *H  5$w\`2 >:!W,Gb;;Z6Ti$m?̪|1=pjOiCZ Ob{+7%-e%cT!RnC2gl QRǽ0 1 )M[WeIRT(~ū7,zwvj?6A5jj5EZ38nM b T?FUp:uҠ00j Oު@0  *H 0p1+0)U "Copyright (c) 1997 Microsoft Corp.10U Microsoft Corporation1!0UMicrosoft Root Authority0 001210080000Z 051112080000Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1+0)U "Copyright (c) 2000 Microsoft Corp.1#0!UMicrosoft Code Signing PCA0 0  *H  0S 04:/{m7#MҌ4$T~tG2XQ)8~:G9NnT1 :mPJ&?ˏIm>U7/`̀aBITJKٓ0ZGudӻݶ Os;:MON3 :doD4J#N`)*򄚙 p{4Af\3T?=tC9泬Hzk*ba9vn>KFGO%(0$0U% 0 +0U0[pir#Q~Mˡr0p1+0)U "Copyright (c) 1997 Microsoft Corp.10U Microsoft Corporation1!0UMicrosoft Root Authority<<>c@0 +70U)\3Y}. 4(0 +7  SubCA0 UF0U00  *H EXAHwwW_Ej9Y'-M88d"B߹/*Ϸ*|Q="mD_ddĩ,ې7Javv%$VT:>Ky_I^2i:TuMd0 U_ʖ0X'2ЅT+ 9 s .8_S۟JGc PД"x tM"@u]:4[\$4J^tNvBqM4՘DPcrKWOl`!/yWOWorld5g=pb>>===??A <>??@pA A?L= ף;>`DATA `TXx'0'TXTexth,h,h,h,@DATAh,vEERFDATAvTXx0''TXText.001,,,,VV#/DATA,!VDATAX!http://e2-productions.com/repository/modules/PDdownloads/singlefile.php?cid=19&lid=327EGRL/GRMonitorroup,X,DATA,@,!DATA@,,,h!DATA,,@,x!DATA,,,!DATA,`,,!DATA`,,,!DATA,,`,!DATA,8,,!DATA8,,, "DATA,,8,/DATA,,,/DATA,X,,(/DATAX,,/OBP!qh!OBCord Profile18/(,$;$;$;? H@Nɻ9i8Y$;9i8N;/??????@(2`ѵ0?vF3H1]2?whݹ.g>3?ښ@ո"Ch9"C7";6n@QxnA>u@?DOBd8?<?>Q8>u=????@???OBPh!q!!OBF-417ont.1018/@,|,e>!><<<??nݶ<ǰn <!>??????]3P3?ud(Q?{1d2gC?OB0Α<Uu7~OBK5Ñj OBzA:A:B?DOBd8?<?>Q8>u=????@???DATA|,OBP!qx!h!OBLcdCD Screen8/ 2`h> }:$?ۂ>M>`>??#ڂ>e.!M>_>f82> }:$???????ׇ#T'T?&1w,?1r-3?S @8e:4ñ4%4@NL3E zqY@I6v@?DOBd8?<?>Q8>u=????@???Ȱ<DATAhDATA(o`phatch_tex_1roupDATA(`ophatch_tex_1_cornerroupOBPx!q!!OBLogo Aont.0988/x,P|,|><{><<<??ζ<[˹x<<6[˹0|><{>??????0 3+?O-.'a!?A07DZ k?d_B}М<|7d_BA!圼(d_BmY@ASB?DOBd8?<?>Q8>u=????@???DATAP|,OBP!q!x!OBLogo Gont.0998/,|,|>ea!><<<??ζ<[˹x<<6[˹0|>ea!>??????FJ 3Q 4|>:.?..'c!?lűu?d_B~7r<9T7d_B^ض+圼ыd_BlB@ ASB?DOBd8?<?>Q8>u=????@???DATA|,OBP!q!!OBLogo HexagonurveCirc8/,|,{>_p><<<??϶<Bzd<<6Cz0{>_p>??????481 4O-?+6.P'l?wG!?~c]B1u5m5<U 7~c]Bc<|ֵc]B9?@AyB?DOBd8?<?>Q8>u=????@???DATA|,OBP!q!!OBmonitor backCD Sc8/@22XX{,> }:$?ۂ>M>`>??#ڂ>e.!M>_>f82> }:$???????ׇ#T'T?&1w,?1r-3?S @8e:4ñ4%4@NL3E zqY@I6v@?DOBd8?<?>Q8>u=????@???9݄=0$`$DATA{,DATADXNSubsurf OBP!q "!OBMonitor Baselane.0168/71ЁЁ0},ek:{~h>?>>?oD~h>?>ek:{??????Ύ+??.X03.G0?@cbS25>#4@źʪ4~&W-?P@?DOBd8?<?>Q8>u=????@???p=$@$DATA0},DATADЁNSubsurf OBP "q/!OBMonitor Buttonsylinde8/@0HH|,>ԓV>R>j~f;l~f;j~f;??ܡi~f;aͩl~f;i~f;ܡ5/>ԓV>R>??????L%~R?fbpM!?B1.1Lj2?*C7(=D>8*CV8Vǽ*C oFBfD?DOBd8?<?>Q8>u=????@???>$$DATA|,DATADHNSubsurfOBP/q/ "OBMonitor Cable 1urve.08/w,},K^==W'>A]>B]>A]>??ݥ@]>_&ŬB]>@]>ݥ8_2K^==W'>??????n&- Q-?<2,?`H#?֓@J;:fG;5֓@~4Ϻ+֓@䷏Ik>A?DOBd8?<?>Q8>u=????@???/=DATA},OBP/q(//OBMonitor Cable 2urve.8/Xv,},p]=>I>A]>B]>A]>??ݥ@]>_&ŬB]>@]>ݥ8_2p]=>I>??????QmW;?K>T'M"?Md` Vṱ?֓@ u:eG;5֓@4Ϻ0֓@uo=O?A?DOBd8?<?>Q8>u=????@???T\=DATA},OBP(/q//OBMonitor Plugube.0338/{ p0~,~=}i>0>x\0>??????5r7"?OZ|w~Vr3?i22{3?4B_<wE64B-h6=钵~}Bf^=@Z[B?DOBd8?<?>Q8>u=????@???>$ $DATA~,DATADNSubsurfOBP/q8/(/OBNeovoont.1008/,H~,z>!>!>??????H1s3-?~+Z&?a&Eؽ_$/1?K BV'ŵйB<a6K Bf(7(BBzhK B?eGAuB?DOBd8?<?>Q8>u=????@???DATAH~,OBP8/q/OBscalermpty???????????????.;3?i!"-;i!"4??-;@3@??DOBd8? #=?>=???????@???MAl0*Ъt MALogo Greyreyial8L?L?L???????????L????B?2?? ף; ף;?AA ?????????@?=?==???????L?L?L?L==ff????DATA  t DATAt CsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@r  @q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFv FvFvGvHwHxIxJyKyQ~P}O|N|M{M{Lz!!!$$$%%%&&&'''&&&%%%$$$"""KzLzM{M{N|O|P}VUTSR$$$(((+++---......///...---,,,***(((%%%!!! RRSTU[ZYX&&&---222555666777888777666666555333222000---)))%%%!!!&&&XXYZ`_^^ ---555:::>>>AAABBBBBBCCCBBBAAA???===:::888666444111---)))### (((]^^_eed"""222;;;BBBFFFIIIKKKLLLMMMMMMMMMKKKIIIGGGDDDAAA===:::777333///***$$$'''...777cdekj444@@@HHHMMMQQQSSSUUUVVVWWWWWWVVVUUUSSSPPPNNNJJJFFFBBB===999555000+++,,,444===JJJjjpp333CCCLLLRRRWWW[[[]]]___`````````___^^^\\\YYYVVVRRRNNNJJJEEE???:::666000222999AAAMMMopv(((CCCOOOWWW]]]aaadddggghhhiiiiiiiiihhhfffdddaaa^^^ZZZVVVRRRMMMGGGAAA:::555777===FFFQQQdddu|<<>>??????????L????B?2?? ף; ף;?AA ?????????@?=?==???pt 0????L?L?L?L==ff????DATApt !x$ #< #@@???????L>DATA 0 0DATA0CsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@r@q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFv FvFvGvHwHxIxJyKyQ~P}O|N|M{M{Lz KzLzM{M{N|O|P}VUTSR  RRSTU[ZYX   XXYZ`_^^  ]^^_eed  cdekj jjpp opv  !!!"""""""""###"""""""""!!! !!!u| """###$$$%%%%%%%%%%%%%%%%%%$$$######!!! """{!!!###%%%&&&'''(((((((((((((((''''''&&&%%%$$$###!!! """!!!$$$&&&((()))******+++++++++******)))((('''&&&%%%$$$""" ###$$$''')))***,,,,,,---------------,,,+++******((('''&&&$$$"""  $$$..."""'''))),,,---.../////////000//////......---,,,+++)))(((&&&$$$""" !!!&&&///%%%))),,,...///000111222222222222111000000///...,,,+++***(((&&&$$$"""  """'''000'''+++...000222333333444444444444444333222111000...---+++***(((&&&$$$!!! !!!"""$$$(((333(((---000222444555666777888888888777666444333222000///---+++)))'''%%%###!!!"""###$$$&&&***888)))...222444666777999:::===??????===;;;888555444222000///---+++)))&&&$$$###$$$%%%&&&(((+++***000333666777999<<<@@@FFFKKKLLLIIICCC===999666444222000...,,,***(((%%%%%%&&&'''(((***...(((000444777999<<>>FFFUUUhhhxxx|||sssbbbOOOBBB;;;777555333111...,,,)))'''((()))***+++......555999;;;@@@JJJ^^^xxxpppXXXFFF===888666444222///---***))))))***+++---000333888<<<@@@JJJ___{{{tttZZZHHH>>>999666444222000---*********+++,,,...777;;;???FFFXXXppplllUUUFFF===999777555222000---***++++++,,,---111999===AAAJJJZZZjjjqqqkkk\\\MMMBBB<<<999777555222000---++++++,,,,,,...222:::===BBBHHHPPPUUURRRLLLDDD???;;;999777444222///,,,+++++++++,,,:::===???BBBCCCCCCAAA>>><<<:::888666444111...++++++***888;;;===>>>======<<<:::999777444222///+++)))(((666999::::::999777666444111...***%%%...111000...,,,$$$MAl%0*80Ъt MAMonitor Led Green:=߬q?wB=?????????????'???B??? ף; ף;?AA ???????v+=??@?=?==???0????L?L?L?L==ff????DATA 0 p(0DATAp(0CsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@rB+B,C,B,B,B+B+A+A*@*?)?)@q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFvC,C,C,D,D,C,C,C,C,B+B+A+@*?*>)=(FvFvGvHwHxIxJyKyQ~P}O|N|M{M{LzD,D-D-D-D-D-D-D-D,C,C,B,B+A+@*?*>)=(KzLzM{M{N|O|P}VUTSRC,D-D-E-E-E-E-E-E-D-D-D,C,C,B,B+A+@*?*>)=(?)RRSTU[ZYXC,D-E.F.F.F.F.F.F.E.E-E-D-D-C,C,B,B+A+@*?)>(>)A*XXYZ`_^^E-F.G/G/G/G/G/G/G/G.F.F.E-D-D-C,C,B+A+A*@*>)?)@*]^^_eedF.G/H/H/I0I0I0H0H/H/H/G/G.F.E.E-D-C,C,B+A+@*?)?)@*B+cdekjE-H/I0I0I0J0J0J0J0I0I0I0H/H/G/F.F.E-D-C,B+A+@*?*@*A*B+D-jjppH/I0J0J1K1K1K1K1K1J1J1J0I0I0H/G/G.F.E-D-C,B+A+@*@*A+B+D-opvG.I0J1K1K2L2L2L2L2L2K1K1J1J1I0I0H/G/G.F.E-D,B,A+@*@*A+B,D-G.u|I0K1L2L2L2M2M2M2M2L2L2L2K1K1J1J0I0H/G/F.E.D-C,B+@*A*A+C,D-G.{K1L2M2M3M3N3N3N3N3M3M3M2L2L2K1J1J0I0H/G/F.E-D-C,A+A+B+C,E-G.L2M3N3N3N3O4O4O4N3N3N3M3M3L2L2K1K1J0I0H/G/F.E-C,B+B+B+C,E-G.J0M2N3O4O4O4O4O4O4O4O4O4N3N3M3M2L2K1J1J0I0H/G.E-D-B,B,C,C,E-G/K1K1N3O4P4P4P5P5P5P5P5P4O4O4N3N3M3M2L2K1J1I0H/G/F.E-C,C,C,D-E-G/K1L2N4P4P5Q5Q5Q5Q5Q5Q5P5P5P4O4O4N3M3M2L2K1J1I0H/F.E-D,D-D-E-E.G/K1L2O4P5Q5Q5R6R6R6R6R6Q5Q5P5P4O4O4N3M3L2K2J1I0H/G/F.D-E-E-E.F.H/L2P4Q5R6R6R6R6R6R6R6R6Q5Q5P5P4O4N4N3M2L2K1J0I0G/F.E-E-F.F.G.H/N3P5Q5R6S6S6S7S7S6S6S6R6R6Q5P5P4O4N3M3L2K1J1I0H/F.F.F.F.G.G/I0P5R6S6S7T7T7T7T7S7S7S6R6R6Q5P5P4O4N3M2L2K1I0H/G.F.G.G/G/H/I0P4R6S7T7T7T7T7T7T7T7S7S6R6R6Q5P5O4N3M3L2K1J0H/G.G/G/G/H/I0K1R6S7T7T7U8U8T7U8Z=cFYnQ]@T7S6R6Q5P5O4N3M2K1J0H/H/H0I0I0R6T7U8U8U8U8U8U8T7T7S6R6Q5P5O4N3M2K1I0H/H0I0I0I0R6T7U8U8U8U8U8T7T7S6R6Q5P5O4N3L2K1I0H0H0I0I0T7U8U8U8T7T7S7S6R6Q5P4O4M3L2J0H/H/H/S6T7T7T7S7S6R6Q5P5O4N3L2K1I0H/G/R6R6R6R6Q5P5O4N3M2K1I0F.N3N3N3L2K1H/MAl80*pK0%0MAMonitor Main 1;>>>??????????L?>??B??? ף; ף;?AA ?????????@?=?==???X0????L?L?L?L==ff????DATA X0 @;0DATA@;0CsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@r@q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFv FvFvGvHwHxIxJyKyQ~P}O|N|M{M{Lz KzLzM{M{N|O|P}VUTSR  RRSTU[ZYX   XXYZ`_^^  ]^^_eed  cdekj jjpp opv  !!!"""""""""###"""""""""!!! !!!u| """###$$$%%%%%%%%%%%%%%%%%%$$$######!!! """{!!!###%%%&&&'''(((((((((((((((''''''&&&%%%$$$###!!! """!!!$$$&&&((()))******+++++++++******)))((('''&&&%%%$$$""" ###$$$''')))***,,,,,,---------------,,,+++******((('''&&&$$$"""  $$$..."""'''))),,,---.../////////000//////......---,,,+++)))(((&&&$$$""" !!!&&&///%%%))),,,...///000111222222222222111000000///...,,,+++***(((&&&$$$"""  """'''000'''+++...000222333333444444444444444333222111000...---+++***(((&&&$$$!!! !!!"""$$$(((333(((---000222444555666777888888888777666444333222000///---+++)))'''%%%###!!!"""###$$$&&&***888)))...222444666777999:::===??????===;;;888555444222000///---+++)))&&&$$$###$$$%%%&&&(((+++***000333666777999<<<@@@FFFKKKLLLIIICCC===999666444222000...,,,***(((%%%%%%&&&'''(((***...(((000444777999<<>>FFFUUUhhhxxx|||sssbbbOOOBBB;;;777555333111...,,,)))'''((()))***+++......555999;;;@@@JJJ^^^xxxpppXXXFFF===888666444222///---***))))))***+++---000333888<<<@@@JJJ___{{{tttZZZHHH>>>999666444222000---*********+++,,,...777;;;???FFFXXXppplllUUUFFF===999777555222000---***++++++,,,---111999===AAAJJJZZZjjjqqqkkk\\\MMMBBB<<<999777555222000---++++++,,,,,,...222:::===BBBHHHPPPUUURRRLLLDDD???;;;999777444222///,,,+++++++++,,,:::===???BBBCCCCCCAAA>>><<<:::888666444111...++++++***888;;;===>>>======<<<:::999777444222///+++)))(((666999::::::999777666444111...***%%%...111000...,,,$$$MAlpK0*@^080MAMonitor Main 2ater<q=;;?????????$=?Y>VO>~???B??? ף; ף;?EE ?????????@?=?=V*=???0????L?L?L?L==ff????DATA 0 N0DATAN0CsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@r@q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFvFvFvGvHwHxIxJyKyQ~P}O|N|M{M{LzKzLzM{M{N|O|P}VUTSRRRSTU[ZYXXXYZ`_^^]^^_eedcdekjjjppopvu|{                                                                                                                                                                         '1%%4((/##$                  &9--I==NBBE994(("                 .""H;;]QQdWWXLLA55*              /""K>>cWWk__^RRD88+              '?22UII^QQRFF??d>?J^?g>R>??B?b?? ף; ף;?EE ?????????@?=?==???(t 0????L?L?L?L==ff????DATA(t !$??????????L>DATA 0 `0DATA`0CsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@rAAAFFFJJJKKKMMMMMMLLLKKKIIIGGGDDD@@@@q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFvDDDKKKOOORRRTTTUUUVVVVVVUUUTTTRRRPPPNNNJJJEEE@@@FvFvGvHwHxIxJyKyQ~P}O|N|M{M{LzLLLRRRVVVYYY[[[\\\\\\]]]\\\[[[[[[YYYWWWUUURRROOOKKKEEEKzLzM{M{N|O|P}VUTSRCCCQQQWWW[[[^^^```aaabbbbbbbbbbbbaaa```___]]][[[YYYUUURRRNNNHHHPPPRRSTU[ZYXEEETTT\\\aaadddggghhhiiiiiihhhhhhhhhgggfffeeecccaaa^^^\\\XXXTTTOOOSSS\\\XXYZ`_^^XXXaaagggkkknnnooopppqqqqqqqqqpppooommmkkkiiihhhfffdddaaa^^^ZZZUUUXXX]]]]^^_eedYYYeeelllpppsssvvvwwwxxxxxxxxxxxxwwwvvvtttrrrpppmmmjjjhhhfffccc___[[[\\\bbbiiicdekjUUUfffooouuuxxx{{{}}}~~~~~~}}}{{{yyyvvvssspppmmmjjjgggccc```aaafffmmmvvvjjppfffqqqxxx||||||yyyvvvsssnnnkkkhhhdddeeejjjpppyyyopv]]]qqqzzz|||xxxtttpppkkkggghhhmmmsss{{{u|lll{{{~~~zzzuuupppjjjlllpppwww{wwwzzzuuupppooossszzzzzzuuutttvvv}}}ppp~~~yyyyyy{{{www}}}~~~}}}~~~TEx$&$TEBack Labelex.0016>@???????@@????? @??<H0DATA H0 q0DATAq0TE$&x$TEphatch_tex_1ront_tex7>@?????=?@@????? @??<d0DATA 0 @0DATA@0MEp040MECube.039~,00X0O,Q, R,03윿F=?]v@s?DATA~,pK0DATATO,*0DATAp0:??Tξ?U]2Uξx8R]2Uξ28?Tξ????`]2?YLZQ]2?HLZ??b`:?Tgi`:R]2Tgƈ慐g`:?U]2Tg9慐g`:??Tg ?@ξ @ξ\B?\B??&\BZξ\B?Zξp?̠A4hp̠˂hp?1?;4wh[4p1?[h4S{=忺ZM{=?忺ZI{=?򿺠W{=򿺠p1?Yp?1?@[Yp̠~p?̠@4~:^?wоI^wо1^?[?M^[?.Xо.?XоO^mW [?p=9{r/^?rW [?=9{rJ^mW wо9^?nW wоFp?nW BA4hVpmW B˂h;p?rW ^?IJJZpmW ^?|JJZpw^?٥Z;p?w^?)ZZVpwBFp?wBI/^?w[?>9{rO^w[?p=9{r6_Ӿ?TξM_ӾX]2?3_Ӿ??7_Ӿ?Tg>_ӾT]2TgB_Ӿ@ξN_Ӿ?N_Ӿ1?ZZB_Ӿ忺ZJ_Ӿ򿺠V_Ӿ1?d[YX_Ӿ[?}J_ӾXоJ_ӾvоL_ӾnW xо\_ӾpW [?L_ӾnW BZL_ӾwB\_Ӿw[?ZZ\_Ӿw^?"ի>?Tξի>X]2?ի>??ի>?Tgի>T]2Tgի>@ξի>?Mի>1?fZZի>忺Zի>򿺠ի>1?>[Yի>[?ի>Xо6ի>vоի>nW xоի>pW [?ի>nW BZի>wBի>w[?ZZի>w^??`]2kvR?@=??kvR?Q]2kvR?=?kvR?\BhvR?\B?hvR?p?vR?ZZpvR?ZpvR?p?vR?Z1^? wR?M^ wR?O^mW wR?/^?rW wR?;p?rW &R?ZZZpmW &R?ZZpw&R?;p?w&R?Z3_Ӿ?kvR?\_Ӿw'R?ի>?kvR?ի>w'R??_]2V$@=??V$P]2V$=?V$\B\$\B?\$p?忓#ZZp忓#Zp#p?#Z1^?"M^"O^mW "/^?rW ";p?rW ڢZZZpmW ڢZZpwڢ;p?wڢZ3_Ӿ?V$\_Ӿwڢի>?V$ի>wڢի> &&ڢ\_Ӿ &&ڢ|ի> &&&R?\_Ӿ &&&R?|冾\S?>>\S?~冾\.>>\.~7")T!?0W>)T!?~7")T0W>)T~9^?nW wоZJ^mW wоO^mW [?Z/^?rW [?ZZL_ӾnW xо\_ӾpW [?ի>nW xоի>pW [?O^mW wR?/^?rW wR?O^mW "/^?rW ":^?wоZI^wоM^[?Z1^?[?ZZJ_ӾvоX_Ӿ[?ի>vоի>[?M^ wR?1^? wR?M^"1^?" ?@ξ/z @ξz\B?Zξr݅\BZξN݅\B?Z\B??iXZB_Ӿ@ξʆN_Ӿ?ի>@ξʆի>?\BhvR?\B?hvR? }\B\$\B?\$ }ի>wڢ\_Ӿwڢի>w'R?\_Ӿw'R???Tξ|?Tξ???ZZ??Zb`:?Tgg`:??TgsA3_Ӿ??7_Ӿ?Tgի>??ի>?Tg??kvR??kvR???V$?V$6_Ӿ?TξM_ӾX]2?3_Ӿ??7_Ӿ?Tg>_ӾT]2TgB_Ӿ@ξN_Ӿ?N_Ӿ1?ZZB_Ӿ忺ZJ_Ӿ򿺠V_Ӿ1?[lYX_Ӿ[?J_ӾXоI墅J_ӾvоL_ӾnW xо\_ӾpW [?L_ӾnW BZL_ӾwB\_Ӿw[?ZZ\_Ӿw^?\23_Ӿ?kvR?\_Ӿw'R?3_Ӿ?V$\_Ӿwڢ\_Ӿ &&ڢi\_Ӿ &&&R?i~冾\S?N冾\.7")T!?߱{7")TOL_ӾnW xо\_ӾpW [?J_ӾvоX_Ӿ[?B_Ӿ@ξʆN_Ӿ?\_Ӿwڢ\_Ӿw'R?3_Ӿ??7_Ӿ?Tgի>?Tξի>X]2?ի>??ի>?Tgի>T]2Tgի>@ξի>?ի>1?ZZի>忺Zի>򿺠ի>1?[lYի>[?ի>Xоoի>vоի>nW xоի>pW [?ի>nW BZի>wBի>w[?ZZի>w^?@2ի>?kvR?ի>w'R?ի>?V$ի>wڢի> &&ڢiի> &&&R?i~>>\S?N>>\.0W>)T!?߱{0W>)TOի>nW xоի>pW [?ի>vоի>[?ի>@ξʆի>?ի>wڢի>w'R?ի>??ի>?TgDATATQ,*X0DATA@X070" " " " " "     ""    """"""!    " " # # $+"%*"'( &) (/")."+,"*-"%0 -0",1"$1 2 3 4"5" 6" 7"8"9":";"<"!=""> ?"&@"$A")B".C"1D",E 25"89"7:":;"9<"<=";>">?"@B"BC"AD"DE"F G H" I" J" K"L"M"N"O"P" Q"#R S"'T"%U"(V"/W"0X"-Y FI"LM"KN"NO"MP"PQ"OR"RS"TV"VW"UX"XY"Z"["\"]"^"_"`"a"b"c" d"!e"$f"%g"*h"+i",j"-k"4l"Em"Hn"Yo"_` ^a ab `c cd be gh fi ij hk ]l jm [n ko Zp"p"[q"q"\r"r"]s"s"^t"t"_u"u"`v"v"aw"w"bx"x"cy"y"dz"z"e{"{"f|"&|"g}"'}"h~"(~"i")"j"."k"/"l"2"C"m"F"n"W"o"uv tw wx vy yz x{ }~ |  ~ s q """""""""""" '"&"$"%"@"A"T"U"f"g"|"}"""""""""""""""!""" ""?""=""S""Q" e" d"{" z" """""""""" " " " """""""""6"7"3"8"J"K"G"L"\ ^"Z _"r t"p u"""""""""""""""""o""m""""""""""""" " " "3"4"5"6"G"H"I"J"Z ["\ ]"p q"r s"""""""""""""2"3"4"5"6"7"8"9":";"<"=">"?"@"A"B"C"D"E"l"m"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""F" G" "H"I""J""K""L"""M"N""O"""P""Q"R" "S""T"U""V"""W"X"" Y"n" o"" " " " " " " " " " " "" " """"""""""""""""""""################ #  # # # # ########### # ## #####DATATR,*0DATA06  "#*%0-$+,12589 7::;9<<!=;>"?">&@B))BC.A$1DD1,EF ILMK NNOMPPQ O#RSR#T'(VV(/W%UX00XY-_`^aab`cc dbe!g%*h$fi++ij,h*-k]4l,jmEnH[Yok-uvu_`v^twatwawxbwxvyv`cyyzycdzbx{ex{'}~(}gh~f|i|&)ij).(~/~hks2s]ljm.CqFn[qokW/@&$A'TU%f$%g|f&|}'g}?!=SQ e! d{e{zdz    6 7 38 J KGL\^Z_r\t^rtpuZp_uom   43 65HGJ I [Z\]qp[qZprs\r]s25897::;9<<=;>?>@BBCADDE4lmE2lC@A?=6738m4365FILMKNNOMPPQORSRTVVWUXXYHnoYFn W             TUSQJKGL    o  HGJIME041p0MECylinder.001h},P-1S1 011(T,U, 8W,P`!BPhµB?p?DATAh},pK0%0DATAT(T,* 0DATAP% 0:5?5?.?.?ZWq?W>VTZc~?MXZX??3KwZC3?X/YZM=c~ 7ZNWq~⪫Z55ZVqY~Zc~M=7 ZXE3?Y/Z;3X?wЧKZQMc~?XZo>Sq?VTZ5?5??.?.?[]q?1>?VT[c~?ZN?X[X?X3?KwЦ[)3?X?/Y[L=c~? 7[Lq?~⪫[55?[dq ?~[c~N=?7 [Xh3??Y/[3X??wЧK[Kc~??X[>Cq??VT[$@13$@1?\q?7>5?xF*5?5?5?ZZc~?>N彏5?0X?U35?`l-3?X5?DL=c~5?TЀNq5?0 555?bq5?0c~N=5?ЀTXc3?5?D3X?5?`l-Lc~?5?0>Eq?5?F*xJA5?.?.?ZdNA\>VTZ}OAM彤XZm2MA=3KwZr)HAX/YZpAAc~ 7Zl]:AUq~⪫ZU4A5Z0AU~Z/AM=7 Z2AG3?Y/Z #7AX?wЧKZ=Ac~?XZDAUq?VTZJA5??.?.?[dNA6>?VT[|OAHN彼?X[l2MAV3?KwЦ[p)HAX?/Y[pAAc~? 7[i]:AJq?~⪫[U4A5?[0A?~[/A O=?7 [2Aj3??Y/[ #7AX??wЧK[=Ac~??X[DAEq??VT[>?A Y<4>?A3?dNA<>J5?xF*JA5?J5?ZZ|OA,NJ5?0l2MAS3J5?`lq)HAXI5?DpAAc~I5?TЀi]:ALqI5?0U4A5J5?0AJ5?0/AN=J5?ЀT2Ae3?J5?D #7AX?J5?`l=Ac~?J5?0DAGq?J5?F*x+A5?>.?.?ZA\>>VTZ"AM>XZA=3>KwZeAX>/YZQ Ac~> 7ZAUq>~⪫Z{A5>ZAT>~Z0AM=>7 Z]AG3?>Y/ZiAX?=wЧKZ>Ac~?=XZmAUq?=VTZ+A5??.?.?[A6>?VT["AHN彉?X[AV3?KwЦ[eAX?/Y[P Ac~? 7[AJq?~⪫[{A5?[A?~[0A O=?7 []Aj3??Y/[jAX??wЧK[>Ac~??X[nAEq??VT[$AA>4>$A^3?A<>5?xF*+A5?5?ZZ"A,N5?0AS35?`leAX5?DP Ac~5?TЀALq5?0{A55?A5?00AN=5?ЀT]Ae3?5?DjAX?5?`l>Ac~?5?0nAGq?5?F*xJB5?.?.?Z< B\>VTZp BMXZ}B=3KwZ>BX/YZBc~ 7Z<$BUq~⪫Z]B5ZBT~Z|BM=7 ZeBG3?Y/ZUBX?wЧKZBc~?XZBUq?VTZJB5??.?.?[< B6>?VT[p BGN?X[|BV3?KwЦ[>BX?/Y[Bc~? 7[<$BJq?~⪫[]B5?[B?~[|B O=?7 [fBj3??Y/[UBX??wЧK[Bc~??X[BEq??VT[qvB@4qvB&3?< B<>a5?xF*JB5?a5?ZZp B+Na5?0|BS3a5?`l>BX`5?DBc~`5?TЀ<$BLq`5?0]B5a5?Ba5?0|BN=`5?ЀTfBe3?a5?DUBX?a5?`lBc~?a5?0BGq?a5?F*xTB5?.?.?ZgUB\>VTZnUBMXZ7UB=3KwZSBX/YZGRBc~ 7ZPBUq~⪫ZOB5ZUNBT~ZNMBM=7 ZqNBG3?Y/ZOBX?wЧKZ7bQBc~?XZ'SBUq?VTZTB5? ?.?.?[gUB6> ?VT[nUBGN ?X[7UBV3 ?KwЦ[SBX ?/Y[GRBc~ ? 7[PBJq ?~⪫[OB5 ?[TNB ?~[NMB O= ?7 [qNBj3? ?Y/[OBX? ?wЧK[8bQBc~? ?X['SBEq? ?VT[QB-C4QB6[3 ?gUB<>5?xF*TB5?5?ZZnUB+N彙5?07UBS35?`lSBX5?DGRBc~5?TЀPBLq5?0OB55?TNB5?0NMBN=5?ЀTqNBe3?5?DOBX?5?`l8bQBc~?5?0'SBGq?5?F*x+B5?.?.?ZfzB\>VTZ铜BM彌XZHB=3KwZBX/YZtКBc~ 7ZBUq~⪫Z-B5ZܳBT~ZYBM=7 ZBG3?Y/ZBX?wЧKZ]Bc~?XZ;@BUq?VTZ+B5??.?.?[fzB6>?VT[铜BFN?X[HBV3?KwЦ[BX?/Y[tКBc~? 7[BJq?~⪫[-B5?[ܳB?~[YB O=?7 [Bj3??Y/[BX??wЧK[]Bc~??X[<@BEq??VT[!BG4!B3?fzB<>z5?xF*+B5?z5?ZZ铜B*Nz5?0HBS3z5?`lBXy5?DtКBc~y5?TЀBLqy5?0-B5z5?ܳBz5?0YBN=z5?ЀTBe3?z5?DBX?z5?`l]Bc~?z5?0<@BGq?z5?F*x)?B[i !{t2ՀB4R>({YB7'?ttZzyÁBsO?W?*PBȂh?:ބBN?v_7.B$?;hUNCCBD>_qBID>RμkJVB$.|nqB^"k"$CB{$7Ž_Ah.B!E9UN[SB m/_7o$PB߂\QӾ|ÂB<ņ hBw6עe|CB\n+&ڽbpBF =:-\:B6a>h7BܡĺBȫ~>=$$ÁB[j>?3ĺBm-:>3>=B>c~>h7HB "?h=:-+CBL?-nhBhg?85ÂBg?jTyÂB`ML?m&<ÂB)"?rjX>ÂB>>qÂBz6> <>N ÂB{4>ÂBZX>$ZÂB8D>CÂBG/> ]ÂBn"p/ÂB2V|aBw6עue|CB\n.&ڽbpxBF =Ҷ\:NB2a>ȵBܡ຃Bȫ}>0#$ÃBZj>3຃Bm-:>2>0NB>c~>ȧHxB "?i=Ҫ+CBL?-nඒBhg?8u5c6BȂh?;XބNBN?vB$?9hCCBD>oBID>)RμI~B$u|'oB^""$CB{-7ŽAhB!E9[SNB m/Ȼo$c6B߂\QӾX|#HB[i ޘ{tÃBCk n-BݚBZ~B o0@Bҟ`&!ÄB[B1R>(`~Bu>I06-B7'?szyÃBrO?W*#HBoi?hÂBb'r?hmmc6Bu\j?X NBQ?=EBѾ)?eCY7*CBŦ>om5oB_>} <~B!䁿'7?oB똾l>CB 8v{>,9B@_cCY/NBziJm#c6B򁿈+X"{B@WDuz CB+hxJms:xB#:>˒VXPNBgALY=a຃Bܓݭ0(kÃB7jn຃Bj>40jNB/>;K$^xB~+?JKCBR?tlA4B k?M6u1ÂBLIk?,?{ÂBsS?]}a<ÂBE,?ܙWÂB>lÂBMm>+fۦzÂBmѼmÂB>k|ÂBm󀲿˒:-VXPBgAKh7Y=aĺBܓݭ=(kÁB8j?nĺBj>4=jB/>;h7K$^B~+?:-JKCBR?tlA4hB k?M61PBu\j? BQ? =_7E.BѾ)?eCYUN7*CBŦ>o_m5qB_>}k <VB!䁿n7?qB똾kl>CB 8v_{>,9.B@_cUNCY/BziJ_7m#PB򁿉+"{ÁBCk ?nYBݚBtZZVB on@2ՀBҟ{&!ÀB[VBu>In6)?Boi?!hDATATU,*1DATA(17` "  " " " " " " " " " " " " " " "  "  " "  " "  " "  " "  " """""" " "!"!"""""#"#"$"$"%"%"&"&" '"'" ("(" )")" *"*" +"+"! ! !!!"!"#!#$!$%!%&!&'!'(!()!)*!*+!+!,H ,-"-H :I :;";I -.".H ;<"<I ./"/H <="=I /0"0H =>">I 01"1H >?"?I 12"2H ?@"@I 23"3H @A"AI 34"4H AB"BI 45"5H BC"CI 56"6H CD"DI 67"7H DE"EI 78"8H EF"FI 89"9H FG"GI ,9":G"-J";J",K":K".L"<L"/M"=M"0N">N"1O"?O"2P"@P"3Q"AQ"4R"BR"5S"CS"6T"DT"7U"EU"8V"FV"9W"GW"JK!JL!LM!MN!NO!OP!PQ!QR!RS!ST!TU!UV!VW!KW!Xt XY"Yt fu fg"gu YZ"Zt gh"hu Z["[t hi"iu [\"\t ij"ju \]"]t jk"ku ]^"^t kl"lu ^_"_t lm"mu _`"`t mn"nu `a"at no"ou ab"bt op"pu bc"ct pq"qu cd"dt qr"ru de"et rs"su Xe"fs"Yv"gv"Xw"fw"Zx"hx"[y"iy"\z"jz"]{"k{"^|"l|"_}"m}"`~"n~"a"o"b"p"c"q"d"r"e"s"vw!vx!xy!yz!z{!{|!|}!}~!~!!!!!w! " " " " " " " " " " " " " " " " " " " " " " " " " " """"""""""""""""""""""""""""""!!!!!!!!!!!!!! " " " " " " " " " " " " " " " " " " " " " " " " " " """"""""""""""""""""""""""""""!!!!!!!!!!!!!! " " " " " " " " " " " " " " " " " " " " " " " " " " """"""""""""""""""""""""""""""!!!!!!!!!!!!!!  #  #  # # ## ######################### # # !# !#!"# "#"##!$##$# %#$%#&#%&#'#&'#(#'(#)#()#*#)*#+#*+#,#+,#-#,-#-.#./#,/#/0#+0#01#*1#12#)2#23#(3#34#'4#45#&5#56#%6#67#$7#78##8#89#7:#9:#6;#:;#5<#;<#4=#<=#3>#=>#2?#>?#1@#?@#0A#@A#/B#AB#.C#BC#CD#DE#BE#EF#AF#FG#@G#GH#?H#HI#>I#IJ#=J#JK#<K#KL#;L#LM#:M#MN#9N#NP#OP#MQ#PQ#LR#QR#KS#RS#JT#ST#IU#TU#HV#UV#GW#VW#FX#WX#EY#XY#DZ#YZ#Z[#[\#Y\#\]#X]#]^#W^#^_#V_#_`#U`#`a#Ta#ab#Sb#bc#Rc#cd#Qd#de#Pe#ef#dg#fg#ch#gh#bi#hi#aj#ij#`k#jk#_l#kl#^m#lm#]n#mn#\o#no#[p#op#pq#qr#or#rs#ns#st#mt#tu#lu#uv#kv#vw#jw#wx#ix#xy#hy#yz#gz#z{#f{#{|#z}#|}#y~#}~#x#~#w##v##u##t##s##r##q############|#O# # }# ~# # # # #####O|#O{#q#p#Of#Oe#[#Z#NO#D#C#9O#8O#.#-##O#"O######## O# #DATAT8W,*VTexP-1UVTexS1@Col1DATA%P-16         ! !!"!""#"##$#$$%$%%&%&&' &' '( '( () () )* )* *+ *++ +H,-I;:H-.I<;H./I=<H/0I>=H01I?>H12I@?H23IA@H34IBAH45ICBH56IDCH67IEDH78IFEH89IGF9,HI:G,KJ-K:;J-JL.J;<L.LM/L<=M/MN0M=>N0NO1N>?O1OP2O?@P2PQ3P@AQ3QR4QABR4RS5RBCS5ST6SCDT6TU7TDEU7UV8UEFV8VW9VFGW:KWGK,9WtXYugftYZuhgtZ[uiht[\ujit\]ukjt]^ulkt^_umlt_`unmt`auontabupotbcuqptcdurqtdeusreXtufsXwvYwfgvYvxZvghxZxy[xhiy[yz\yijz\z{]zjk{]{|^{kl|^|}_|lm}_}~`}mn~`~a~noabopbcpqcdqrdersfwswXeO            !  "! O" O#""#$!!$%  %&&''(())**++,,---.,/.-+0/,*10+)21*(32)'43(&54'%65&$76%#87$O8#O9889:77:;66;<55<=44=>33>?22?@11@A00AB//BC..CCDBEDCAFEB@GFA?HG@>IH?=JI><KJ=;LK<:ML;9NM:ON9OPNNPQMMQRLLRSKKSTJJTUIIUVHHVWGGWXFFXYEEYZDDZZ[Y\[ZX]\YW^]XV_^WU`_VTa`USbaTRcbSQdcRPedQOePOfeefgddghcchibbijaajk``kl__lm^^mn]]no\\op[[ppqorqpnsromtsnlutmkvuljwvkixwjhyxigzyhf{zgO{fO|{{|}zz}~yy~xxwwvvuuttssrrqq  ~ }  ~| }O|DATARS1A????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????DATA1;ME1420MEPlane.019~,p1(101X,HZ, [,)A5??M??DATA~,80DATATX,*(1DATA(1:)T?eO=T??eO=:ӒeO=Ӓ?eO=:?eO=Z??eO=eO=ZZ?eO=ZT?ҩ`T??ҩ`TӒҩӒ?ҩT?ҩb֮??ҩb*Qҩخ?ҩ(Q &?I>:P>oC5"r&+I>:P>!4"&+?W~:P>l!!&+?I>~:P>o4"&+W~:P>E!!&+I>~:P>!4" &?I>:P>庂 &?W:P>"T?eO="T??eO=庂T??ҩT?ҩr&+I>:P>廂w&+W:P>#$ӒeO=#$Ӓ?eO=廂Ӓ?ҩӒҩ&+I>~:P>\&+W~:P>`%&+?W~:P>%&+?I>~:P>??eO=?eO=%eO=`%?eO=\?ҩҩ?ҩ??ҩ&+bB? &?8P>< &?I>cB? z &?$p?}b &?N>?7&+I>>&+>&+?I>>&+?>x5_ &?I>> &?>lt &?FvO>Bg&+?FvO>;&+FvO>&+/3>,&+I>8P>!4"&+8P>>%&+?8P>< &?I>8P>oC5"&+?I>8P>o4"&+?/3>< &?/3><︒FvO>Bg<>I>8P> L-VS8︒>lt踒I>8P>ٱTu7︒8P><︒/3><&+I>bB?︒$p?-]9>>lt9>$p??J-]<>I>>︒cB?I&+?bB?nOZ<>I>cB?I &?cB?&+?I>bB?t&+$p?&+N>?踒I>>踒I>cB?9>cB?II9>/3><9>FvO>Bg9>8P><&+?N>?x&+?$p?<'XN<>N>?K*踒N>?򴌡* &?>lt &?$p?}b &?I>> &?N>?7 &?cB? &?I>cB? z &?8P>< &?I>8P>oC5" &?/3>< &?FvO>Bg&+bB?&+$p?}b&+N>?7&+I>bB? z&+8P><&+I>>&+>lt&+FvO>Bg&+I>8P>!4"&+/3><9>>lt9>$p?}b<>I>><>N>?79>cB?<>I>cB? z9>8P><<>I>8P> L-VS89>/3><9>FvO>Bg︒cB?︒$p?}b踒N>?7踒I>cB? z︒8P><踒I>>︒>lt︒FvO>Bg踒I>8P>ٱTu7︒/3><cB?ZI>cB?8P><I>>>ltFvO>Bg/3><I>8P>ϳVD8/օ>cB?Z2օ>I>cB?/օ>8P><2օ>I>>/օ>>lt/օ>FvO>Bg/օ>/3><2օ>I>8P>IWG9i$p?A8riN>?e4T>$p?A8rT>N>?e4:>==cB?Z>=cB?gr<? gU:>cr<?Z gU>=cB?0օ>==cB?igr<?xT>cr<?x&+?I>8P>&+?/3>k6 &?/3>L︒/3>L&+/3> &?I>8P>&+I>8P>&+?8P>&+8P>9>/3>L<>I>8P>踒I>8P> &?I>8P> &?/3>L&+I>8P>&+/3>L<>I>8P>9>/3>L踒I>8P>︒/3>LI>8P>/3>L2օ>I>8P>/օ>/3>L&+?tY&@s(&+?ô=@/V︒ô=@iw.踒pY&@9>ô=@iw.<>rY&@&+nY&@ &?tY&@ &?ô=@iw.&+ô=@ &?tY&@ &?ô=@iw.&+nY&@&+ô=@iw.<>rY&@9>ô=@iw.踒pY&@︒ô=@iw.ipY&@iô=@iw.T>rY&@T>ô=@iw.K&>h@E,kN&>:4@aԫh@E,k94@aԫ9h@E,k994@aԫ,O>h@E,k/O>:4@aԫ q'h@E,kq'94@aԫ"?h@E,k"?:4@aԫ q'h@"?h@E,k"?:4@aԫq'94@/O>:4@aԫ,O>h@E,k994@aԫ9h@E,k'?h@(/?C'?:4@Zq'T4%3@y q''%E@e x'?U4%3@'?'%E@"?U4%3@"?'%E@/O>U4%3@,O>'%E@9'%E@9T4%3@"?U4%3@"?'%E@q'T4%3@ q''%E@/O>U4%3@,O>'%E@9T4%3@9'%E@'%E@T4%3@K&>'%E@N&>U4%3@'?U4%3@ '?'%E@Z9'%E@9T4%3@,O>'%E@/O>U4%3@q'T4%3@"?U4%3@"?'%E@ q''%E@"?U4%3@"?'%E@q'T4%3@ q''%E@/O>U4%3@,O>'%E@9T4%3@9'%E@T4%3@'%E@N&>U4%3@K&>'%E@T?ҩT??ҩ:ӒҩӒ?ҩ:?ҩZ??ҩҩZZ?ҩZ(*:MdO=@*:M?dO=(*:M@*:M?#I>:P>kF#I>:P>=m#W:P>nĂ(*:MdO=nĂ@*:M?dO==m@*:M?(*:M(*:M@*:M?DATATHZ,*01DATA 017A""""""""""'"&"(")" " " " " """ " !" " ," -"+"*"""""""$"%"#"""   %"$"'"&"-","  ! ""#"(")" *"!+""#"")"%&"$%"$'"#("&'"()"*+",-"02"34 56 57 68"89"6:"9:"4;"=>"BC"HI".J DF"<>"?B"@A"?A"/C"/?"6P"8R"5S"PS PR"TU VW"Y["\] 1]"2\"LX"NQ"LZ"FO"0S".4"07"3J"W_"KO"Q^"MX"P]"S\".T"JU"1R"8`"1a"7b"2c"Rd"0e"/f"@g"Ch"9i"ad"ce"`i"fh"be"`d".j"Tk"Ul"Jm">n"3o"4p";q"=r"<s"jk"lm"pq"ns"mo"jp"Lt"`t"Mu"au"Nv"bv ^w"cw"Xx"dx"Qy"ey"[z"fz"E{"g{"Y|"h|"Z}"i}"ux"wy"t}"z|"vy"tx"O~"j~"K"k"_"l"W"m"H"n"V"o F"p"D"q"G"r"I"s"~"""""~"O"W"H"V F"D"I"G" "X"Q"""[" N "L""Z""Y""E" K"_""M""^"Q"X"O"W"K"_"M"^" 5"A":"B"9"C"D"I";"<"7"@"3"="6 ?"4 >"Y"Z"E"N"G"V"b"g"h"i"o"r"q"s"v"{"|"}""""" " " " """""""""""""""""""""""""\"]"K"_"M"^"U"2"1"T"c"a"l"k"w"u""" """""""""""""""""""""" #" # # "#"##""#"##"#"#"#""#"#"##"#""##""############### # # # # # # # ## # #  ## ## ###### #!##!#!##!#########################!##!########## # # # ## ##########""" "" "" "" "" """""""""""""""" " " " " "!"!"""""#"#"$"$"%" %"&"!&"'"'"("("#"$"&"%" !"!$ "# %& '"'"("("DATAT[,*p1DATAp16'&()'&)( ,- + ! * -, *+%"$%"#&%'$-,)"(# *+!()"#&'$%SP]\.JUTPR1]0S\286:9?/CB.43J6PS55S078RP6Rda1e02c`89i/fhC0eb7dR8`j.TkJmlU4pq;n><smJ3o.jp4dxuaxXMuQyw^yecwLt}Zt`i}fz|hz[Y|eyvbyQNvXxtLxd`tO~K~jkmlW_pqFDHInsWVmoj~p~OFFDHIVWFOLZ[YNQLXKO_WXMQ^WOQXK_M^=>34?A65A@576:?B><4;CB9:b7g@9iCh3o=rq;s<vb{gNvE{}Z|Yi}h|VGorqsDIVGDINEZYUT]\\21]2ca1lUTkw^cwuaMul_Kk_K^M                           ##$$ &!& % % ! !$!$!#"#"%&% !&''' '( ( ((ME2421MEPlane.020`k - X  >2x,h`,$X], ^,@@hT+1?W?Vj>DATA`kpK0@^080Ъt DATATh`,*X >2DATA*X :©>"$d©>Z=H©>_ͿOF©>K©>4C[©> Nc©>jI~©>)Ȼ[©> j'©>Wk ©>)m©>mǶ©>nj©>mľ_߾©>žTq̾©>Oaƾȕƾ©>ɾW©>!˾&©>=f;W ©>;Aо'$©>ྐ©>©>d^ʉ©>P©>} Pq©>p^ k©>lg©>%dx\ZBZEpwHx\K©><*Ox\达_U©>达_Ux\Ak©>Bk©> t©>@Hx\j©>jx\Vk ©>kX©>l;x\mǶ©>8n#x\nhx\o^ƾ©>o^ƾx\{on=ʾ©>|op=ʾ©>o@;x\ pJϾ©> pJϾx\ľ۾©>ľ۾x\ľE!׾©>ľF!׾x\žѾ©>žѾx\Naƾƕƾ©>؋Ǿx\ ˾&x\MӾ©>NӾ©>׾H©>۾ux\ྎx\x\N©>xꇀx\dx©>hxx\} Mqx\$d©>pwHQ©>达_U_©>BkM©>j©>o^ƾ©>|op=ʾ©> pJϾ©>ľ۾©>ľF!׾©>žѾ^i©>NӾ©>hx/©>%dj;©>lg #©>p^ k©>} Pq0©>xꇀ©>P@©>d^ʉ!©>©>ྐ\©>۾uH©>׾H3©>;Aо'$\8©>=f;W ©>!˾&=©>ɾWĄl©>؋Ǿ|©>Oaƾȕƾ©>žTq̾©>mľ_߾g©>o@;©>nj©>8n#©>mǶ©>)m©>l;©>kX©>Wk ©> j'©>@H%©>)Ȼ[0©>jI~;©> tD©> NcT©>4C[Z©><*Oa©>K_©>_ͿOFT_©>Z=HdgZ©>ZE"$dJx\nwHQx\达_U_x\AkMx\jx\o^ƾx\{on=ʾx\ pJϾx\ľ۾x\ľE!׾x\žѾ^ix\MӾx\dx/x\$dj;x\lg #x\o^kÂx\} Mq0x\x釀x\N@x\c\ʉ!x\x\ྎ\x\۾tHx\׾H3x\:Aо&$\8x\;f;V x\ ˾&=x\ɾWĄlx\׋Ǿ|x\Naƾƕƾx\žSq̾x\kľ^߾gx\o@;x\nhx\7n!x\mǶx\'m줰x\l;x\kVx\Vk x\j'x\?H%x\(ȻY0x\jF~;x\ tDx\ NcTx\2@[Zx\<'Oax\K_x\^ͿLFT_x\Z=HdgZx\ZBowHQ<>达_U_<>BkM;>j;>o^ƾ;>|op=ʾ;> pJϾ;>ľ۾;>ľF!׾;>žѾ^i;>NӾ;>gx/;>%dj;;>lg #;>p^ kÂ;>} Oq0;>xꇀ;>O@;>d^ʉ!;>;>ྐ\;>۾uH;>׾H3;>;Aо'$\8;>!˾&=;>ɾWĄl;>؋Ǿ|;>Oaƾȕƾ;>žTq̾;>mľ_߾g;>o@;;>ni;>8n#;>mǶ;>)m;>l;;>kX;>Wk <> j'<>@H%<>)Ȼ[0<>jI~;<> tD<> NcT<>3C[Z<><*Oa<>K_<>_ͿOFT_;>Z=HdgZ;>ZE"$dJ:Tq,۾II<>;Tr,۾Iw6>o,۾I<>w6>p,۾<>w6>]߾ii:<>t6>JϾw6>\߾&i:򄾩t6>JϾw\w6>\߾w\t6>JϾ©>w6>]߾©>t6>JϾ©>w6>]߾w\w6>\߾w\t6>JϾ©>t6>JϾ<>;T^߾iٗ&:<>/QJϾ:T]߾&&:.QJϾx\:T]߾x\.QJϾ©>;T_߾©>/QJϾ©>;T_߾x\:T]߾x\.QJϾ©>/QJϾ<>:>]߾<>;>JϾ;>mľ_߾;> pJϾ:>\߾򄾂;>JϾlľ^߾ pJϾw\:>\߾w\;>JϾx\kľ^߾x\ pJϾ©>:>]߾©>;>JϾ©>mľ_߾©> pJϾw\:>\߾©>:>]߾©>;>JϾw\;>JϾ©> pJϾx\ pJϾx\kľ^߾©>mľ_߾??toI?uoIIuoIII?toII?FS/HSS/?HS/??F/T?S?nO<%wT?TBO<!%wVRBO<!!%wPW?nO<!%w,1>KO<%ͤo*1?AKO伐Z$1f?ܼZ? JBjJ KsM/D? @tM'D?? v@cJj0?? ,o<j0? A<7[p/? ,o<w/  <<[T¾ s6?]¾ e6j0?[¾ "GFOu/T¾ ⸜FOe0?`pZCZc/ZpjCZi/{rWe0?}rc[W~o?r5htoZp[D6lno m?2Φj @?m??m2p@m??m)m? ,o<)m 6v1ed~r<TbK]d m??mcdZpDlOk?? ,o<Ok? 6v1c?rWaMc?m??mc?ap_oa? s6?a? e6o?Q?3looQ?[D6l/Q?Ƿie0?Q?Ƿi^dQ?<yc?Q?y5Q? tE?KϾ"9iUtE?KϾZ4ʚge0? tE?KϾǷi/tE?KϾǷi5Q?`pKϾ_o5Q?rKϾ?:`UZpKϾDlU}rKϾ:4A]e0?}rKϾIII/{rKϾII/ZpKϾiٗ&se0?`pKϾ&&sxr?hO29`,(,~,nDATA`,8?DATA(,8?DATA~,8?DATAn8??DATATX],* DATAP+ 7 ""                 "  "  """""""""""""7 , - . / 0 1 2 3 4 5 6 7 , !" , !, "#"", #$"#, $%"$, %&"%' %( %) %* %+ %, '("()"./"01"23"67"8g":<"=?"AB"DF"GH"KL"LN"MO"OP"PR"SU"TV"UW"VX"]^"^_"`a"ce"df"7g"6f"e"5d"c"5b"4b"4a"_"3`"2\"]"1\"0["/["Z"Z".Y"-Y"X"-W" T",S"+Q"+N" M" J"*K" J"*I")I" H" G"'F" E"E"&D"C"C"B""@"A"!@"?" >">"="<";";":"9"9"8",Q"%Q %N %L %K %I %F %D ,@ ,> ,< ,: f d b a ` \ [ Y W U S g 8 R" C CR CP CO CM C CJ C C CH CG C CE B A ? = ; e c _ ^ ] Z X V T ;h"?i"Aj"Ek"Ml"Om"Rn"To"Vp"Xq"]r"es"t"u"v"w"cx"y"z"{"|"_}"^~"""""Z""" "P" "J" " "H"G" ""C"""B"""=""""9"""""h"h""i"i""j"j"""""k"k"""""""l"lm"m"n"o"op"pq"q"""""""r"r~"}~"|}"{|"z{"yz"xy"sx"sw"vw"uv"tu"t":">"@"D"L"N"Q"S"U"W"\"d"g"7"6"f"5"b"4"a"`"3"2"1"0"["/"."Y"-","+"K"*"I")"("'"F"&"%"$"#"""!" ""<""""8"""""""""""""""""""""""""""""""""""""""""""""""""""" "" """"""""""""""""""""" " """       h  i  j  k  l  m  "n " "o "  p   q  "r""s""t""u""v"w""x"""y""z"{"""|"}"""~""""""""""" " "!"!"""""# # $ $ % % & & ' ' ( ( ) ) * * +"+", , - - . . / / 0 0 1 1 2 2 3 3 4"4"5"5"6"6"7 7 67 56 45 4 3 23 2 1 01 0 / ./ -. ,- +, + * )* () '( &' %& $% $   # # "     ! !                    7 89"8J"8:"9;"9H":>":;";<"<>"<B =C =? >@ ?A @E"AF"BD"CG"DG EF <H"<T =I =U >J">X ?Y ?K @\"@L"A]"AM"B`"BN"Ca"CO"De"DP"Ed"EQ"FR"Fg"GS"Gf"HJ"HN IO IK JL KM LQ"MR"NP"OS"PS QR HV IW JZ K[ L^"M_"Nb"Oc"Pk"Qj"Ri"Sh"T`"TX"UY"Ua"VZ"Vb"Wc"W["X\"Y]"Z^"[_"\d"]g"^j"_i"`e"af"bk"ch"ef"dg"hk"ij"mn#lm#lo#no#op"pq"nq"ls"ps"mr"rs"qr"qv"uv"ru"tu"st"tw"pw"vw"w vx t uy xy"x""y"y{"x|"{|"z"z{"}"z}"|}""""""""""" ""  """"" ~" " ~""""""""   """""""""   "~""""""""   ""   " ""  """" ""  """"""""""""""    """" x""y"y""x""  ""x""x"""""y"y"" "   y DATAT^,*VTex UVTex- DATA$ 6CEC ECG CHGC HC CJ C JCM COMCPOCRPC R C B A B A ? = ? =;  ;eecc__^^]]ZZXXVVTT 9%&D%DF%F'%'(%()%)I%I*%*K%KL%LN%N+%+Q%Q,$%,#$,"#,@",!@, !,> ,>,<,:<,:,7766ffdd55bb44aa``3322\\1100[[//..YY--WWUUSS,7gg8899;hh;=?i=i?AjBjABCCEk kEG HG H J  JMl OmlMPmORnPTo VpoTXqpVqXZZ]r^~r]_}~^|}_{|z{yzcxyesxcwsevwuvtut8:<:<> >! @!"@#"$#%$&%D&FD'F(')(I)*IK*LKNL+NQ+S,USWU-WY-.Y/.[/0[10\12\32`3a`4ab45bd5fd6f76g78g676756564545h443h32323i221i10101j00/j/././-.-.,-,-+,+,k++*k*)*)*()()'('(&'&'%&%&$%$%l$$m l # m# n # #o " "p  o  q  p  ! q!  ! !  r~r}~|}{|z{yzxysxwsvwuvtu7t78:;989HJ:8J><H9;><;:>XT<<T`BH<BNCaU=OC=I=UY?I=?K@\X>L@>J?Y]AK?AMEd\@QE@LA]gFMAFRB`eDNBDPGfaCSGCOGDefSPDGFgdERFEQZJHVVHNbcOIWWIK[^LJZ[KM_jQL^_MRibNPkhSOchkPSiRQjnopqolsplmrsmnqrrqvusrutpstwqpwvxvwwtytuuvxyyx|{yz{}zx|}mlon~~xyyxxyyxyDATALQ- A????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<?4???4<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<????<ME242MEPlane.022,2t u a,xc, e,gj@+1?W?̕>DATA,pK080DATATa,*t DATAit :g}lپd-KEH~/ 4 ~RU }%v6}[Z? } #z 4պ}|)%>S}0D4s}RB>}V}C`=VCæd} lӾD֥~>HþA~^L9g(~sU-9~^0H} Е y\T}Fϒ}Y} ѓSW}Kǘ*FO߾!h%=AqAվ334KK1}zξy>T}!ɾWe˾C=Y })ɾ) ܾD*Zv}-˾rA_WW}RѾH9Po >rپdZKEH >2 Z4  >RW Z >%vZ6 >`Z? Z > !z Z3պ >)Z>S >,DZs >R}BZ}V >D`3V侽Zæd > aӾZ֥ >=HþZ >\CZg( >sNZ9 >[+ZH > ЕZy\T >FϒZ}Y > ѓZSW >QǘZ*FO >߾)hZ=A >lAվ>3ZKK1 >wξyZT > ɾde˾Z=Y  >)ɾ5 ܾZ*Zv >1˾r쾿Z_WW >RѾSZPo~/׾ >/׾{>2 'Ke{>rپdXb{>RW ,{>%vB W{>`Z? {> !z 1`}>)R}>,DΔ{>R}B${>D`3Vx{> bӾ+o{>=Hþ" {>\C9{>sNQ{>[+ٴg|> Е1w{>Fϒ{> ѓy}{>Qǘ߾)hW?]{>lAվ>32kE{>wξyw,{> ɾce˾~L{>)ɾ5 ܾ|>1˾r{|>RѾSTrus/ 'KeslپdXbsRU ,r%vB Wr\Z? r #z 1`r|)Rr0DΔrRB$rC`=Vxr lӾ+os>Hþ" s^L9ssUQs^0ٴgs Е1wsFϒs ѓy}sKǘ9`.?Kv%?Vp4lwm2%Lp4T(1LpU;՗*1?VpU;+h^3Rp=K*1?V;%?4DFq2%4a9+1V;`.?K%?Vp4lwm2%Lp4T*1?VpU;(1LpU;^3Rp=K*1?[%?USD(q2%T+1['1j%?VpTSkòm2%LpTlÌ*1?Vp[(1Lp[(\3Rpj%?ITS%?܆US8s%?f?PS%?f?ܼ%?I漐%?f?PS8s%?ITS8s%?VpTS8s%?US8s%?4DF%?Vp4lw%?4%?Vp4%?US%?VpTSr2%ITr2%چT sf2%f?Tf2%f?ܼr2%I漐f2%f?T sr2%IT sm2%LpT sq2%T sq2%4a9m2%Lp4Tq2%4m2%Lp4q2%Tm2%LpT*1?[%+1[%+1弐*1?弐+1[% s*1?[%8sq2%T s%?US8s%?4DFq2%4a9`.?K*1?V;b+1V;%?4q2%4%?USq2%T%?48sq2%4 s*1?WpY%)1KpY%)1Kp⼐*1?Wp⼐)1KpY% s*1?WpY%8sm2%LpT s%?VpTS8s%?Vp4lwm2%Lp4T^3Rp=K*1?VpU;b(1LpU;%?Vp4m2%Lp4%?VpTSm2%LpT%?Vp48sm2%Lp4 s*1?I!<6T,1I!<ʫ*1?-<<\F,1*<ģF*1?I'T,1I٫*1?-&\[M,1*ڣ[M,1I!<ʫ,1*<ģF,1I٫,1*ڣ[M*1?I!<6T*1?-<<\F*1?I'T*1?-&\[M*1?-<<\F,1*<ģF*1?-&\[M,1*ڣ[M,1*<Yڴ,1**1?-<*1?-*1?I!<6T,1I!<ʫ*1?I'T,1I٫,1I!<,1I*1?I!<*1?I`I!<  7<f;[I17=H 7<k7`I!<;[I-1I!<̽-1<}1-1Iۊ-1ƥ-1<-1-1I!<-1Is?I!<3抑s?b<91s?I3s?b|9܍s?b<4Iײs?bs?I!<s?I*1?I'T,1I٫,1*ڣ[M*1?-&\[M,1I,1*k*1?I*1?-6 j*1?-,1**1?I,1I;[I7-1I-1@s?Is?b< j*1?I!<6T,1I!<ʫ,1*<ģF*1?-<<\F,1I!<,1*(,1 #<>(*1? UP,1 P,1 #<,1 *1? #<*1? 7 #<F2 -1 #<-1 s? #<s? *1? ,1 *1? #<,1 #<*1?Ý$I!%5<8.F?>I<)v?>%5&.׈?>%5<tם?>%5?>I!<?>I?>I?>%5!?>I!<?>%5<!?> # ?>Ý$Ý?>ɕ'<v뫁?>ɕP>I!<*xP><0iCP>I*~P> 0P><eעP>P>I!<P>IP>IP>!P>I!<P><!P> #<&i:P> P>Ý$<&&:P>ÝP>e'<n묁P>e( ?I!<0( ?%_$?I{8O_$?F>_$?F<t_$?F_$?I!<_$?I_$?I_$?F@ k_$?I!<_$?F<@ k_$? # <?>Ý<ZP> Ý foD<?>ÝhoD<IP> foDÝhoDI!<$nA>y<6)؆NA>I$bA>y&)A>y<|A>yA>I!<A>IA>IA>y!A>I!<A>y<!A> #<A> A>Ý$<A>ÝA>'<룁A>n2>I!<-'.n2>Y<+ʇJn2>I"'Pln2>Y+n2>Y<חn2>Yn2>I!<n2>In2>In2>Y!n2>I!<n2>Y<!n2> #<n2> n2>Ý$<n2>Ýn2>#'<몁n2>#P+>I!<,P+><1@P+>Is,&P+>1EP+><UקP+>P+>I!<P+>IP+>IP+>!P+>I!<P+><!P+> #<P+> P+>Ý$<P+>ÝP+>'<f뮁P+>F?I!<[/F?ɒ<4y:F?IN/>F?ɒ4F?ɒ<B׭F?ɒF?I!<F?IF?IF?ɒ!F?I!<F?ɒ<!F? #<F? F?Ý$<F?ÝF?Y'<\믁F?YJ ?I!<<7J ?ꑿ<=̏(J ?I.7J ?ꑿx=J ?ꑿ<אJ ?ꑿJ ?I!<J ?IJ ?IJ ?ꑿw [J ?I!<J ?ꑿ;|.?PSQs&;?lӐk&;?lӐ]EL&;?lӐ<'&;?lӐ&;?I!<&;?I&;?I&;?lӐG k&;?I!<&;?lӐT?Ώ<΅T?ΏT?I!<T?IT?IT?Ώ hT?I!<T?Ώ< hT? #<T? T?Ý$<T?ÝT?'*H%<?>*HP>*H%<P>*H( ?*H%<( ?*H)?*H%<)?*H_$?*H%<_$?*H*?*H%<*?*HMH??*H%<MH??*HccD?*H%<ccD?*HY?*H%<Y?*H^?*H%<^?*H *s?+H%< *s?+HUx?+H%<Ux?+Hj?+H%<j?+H}?+H%<}?+HA>*H%<A>*Hn2>*H%<n2>*HP+>*H%<P+>*HF?*H%<F?*HJ ?*H%<J ?*H.?*H%<.?*H&;?*H%<&;?*HH?*H%<H?*HT?*H%<T?*Hc?*H%<c?*Hn?+H%ۤ"<?>ۤP>ۤ"<P>ۤ( ?ۤ"<( ?ۤ)?ۤ"<)?ۤ_$?ۤ"<_$?ۤ*?ۤ"<*?ۤMH??ۤ"<MH??ۤccD?ۤ"<ccD?ۤY?ۤ"<Y?ۤ^?ۤ"<^?ۤ *s?ۤ"< *s?ۤUx?ۤ"<Ux?ۤj?ۤ"<j?ۤ}?ۤ"<}?ۤA>ۤ"<A>ۤn2>ۤ"<n2>ۤP+>ۤ"<P+>ۤF?ۤ"<F?ۤJ ?ۤ"<J ?ۤ.?ۤ"<.?ۤ&;?ۤ"<&;?ۤH?ۤ"<H?ۤT?ۤ"<T?ۤc?ۤ"<c?ۤn?ۤ"<n?ۤs|?ۤ"<s|?ۤ+l?ۤ"<+l?ۤDATATxc,*u DATAiu 74 "4 5 "5 "4 "5 "4 "5 "4 "5 "4 "5 "4  " 5 "4 !"!5 "4 !"""5  " 4 "#"#5 " 4 #$"$5 " 4 $%"%5 " 4 %&"&5 " 4 &'"'5 "4 '("(5 "4 ()")5 "4 )*"*5 "4 *+"+5 "4 +,",5 "4 ,-"-5 "4 -.".5 "4 ./"/5 "4 /0"05 "4 01"15 "4 12"25 "4 23"35 "3"6"7"8"9":";" <"!="">"#?"$@"%A"&B"'C"(D")E"*F"+G",H"-I".J"/K"0L"1M"2N"3O"67 68 89 9: :; ;< <= => >? ?@ @A AB BC CD DE EF FG GH HI IJ JK KL LM MN NO 7O 6P"P"7Q"Q"8R"R"9S"S":T"T";U"U"<V"V"=W"W">X"X"?Y" Y" Z"@Z"A[" ["B\" \"C]" ]"D^"^"E_"_"F`"`"Ga"a"Hb"b"Ic"c"Jd"d"Ke"e"Lf"f"g"Mg"h"Nh"Oi"i"PQ PR RS ST TU UV VW WX XY YZ Z[ [\ \] ]^ ^_ _` `a ab bc cd de ef fg gh hi Qi ju"kt"mr ls"nq op"lv"ow"px"sy"vy"wx"jz"mz"k{"n{"q|"t|"r}"u}"z}"{|"k~"n"o"p"t"w"{"~"""~""j"m"l"s"u"v"z"""""" """" """"" """" """"" """v"w"x"y""""""""""""~" """"""""""""" """"""""""""m"n"q"r"""""""""""""""""""""""""""""""""" """"" " """"" " " """"""" """""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""" " " " " """""""""""""  "  " " """"" " " " """""""""""""""""" "" "" " "" "  "!"!"""""#"#"$"$"%"%"&"&"""""""" "!"""#"!#"$""$"%"%" &"&"(/"*0",1".2"'3")4"+5"-6")7"*8"-9".:"0;"2<"4="6>"8;":<"7="9>"'?"(@"+A",B"/C"1D"3E"5F"@C"BD"?E"AF"HK"JL"GM"IN"GO"/O"HP"0P"IQ"1Q"JR"2R";S"KS"<T"LT"CU"MU"DV"NV"PS"RT"OU"QV"X["Z\"W]"Y^"+_",`".a"-b"1c"2d"5e"6f"9g":h"Ai"Bj"Ik"Jl"Qm"Rn"Yo"Zp"`c"ad"_e"bf"bg"ah"_i"`j"cm"km"dn"ln"_q"'q"`r"(r"as"*s"bt")t"cu"/u"dv"0v"3w"ew"fx"4x"gy"7y"hz"8z"?{"i{"j|"@|"k} G}"l~"H~"m O"n P"o W"p X"ru"sv"qw"tx"ty"sz"q{"r|"u"}"v"~"""""    """  """""""""      """"""""    """  "7"8"9":";"<"=">"K L S T [ \ g"h"y"z"""""""  """  """"""""  ""   """"""""""""" " " """""""  ""   """""""  ""   W"""X""Y""Z""[""\""]""^""o""p""""" "  "   ""  """""""  ""   """" " " "      " "   """""""" " " " " "  !"" #"$ """""""  "!" " # $ &)"(*"%+"',"'-"(."%/"-/ .0 &0"13"24 )5 *6 %7"&8"'9"(:");"*<"+=",>"-?".@"/A"0B"1C"2D 3E"4F 5G"6H 8;":<"7="9>"9?":@"7A"?A @B 8B"CE"DF ;G <H JM"LN"IO"KP"KQ"LR"IS"QS RT JT"UW"VX MY NZ I["J\"K]"L^"M_"N`"Oa"Pb"Qc"Rd"Se"Tf"Ug"Vh Wi"Xj Yk"Zl \_"^`"[a"]b"]c"^d"[e"ce df \f"gi"hj _k `l nq"pr"ms"ot"ou"pv"mw"uw vx nx"y{"z| q} r~ m"n"o"p"q"r"s"t"u"v"w"x"y"z {"| }"~ """""""  ""   """""""  ""   "3""4"5""6""="">""E""F""e""f"""w""x""   "   ""  """""""  ""   " " ""  " " "!"  W" U" g"i"  " " ""  """"""""""""""""""""""""""""""""" " ""  3" 1" C"E"  {" y" ""  """"""""""""""""""""""""G"H"I"J"K"L"M"N"k"l"}"~"    " """""""  "    """""""""""""""""""" " " " "              ""  """""" "     "      """"""""""""     !"" """""""  "   ! " #"#"$"$"%"%"&"&"'"'"("(")")"*"*"+"+",","-"-"."."/ / 0 0 1 1 2 2 !3"3""4 4 $'"&("#)"%*"%+"&,"#-"+- ,. $."/1 02 '3 (4 W5"5"X6"6"Y7"7"Z8"8"[9"9"\:":"];";"^<"<"o=" ="p>" >"?" ?"@" @"A A B B C C D D E"E"F F 69"8:"5;"7<"7="8>"5?"=? >@ 6@"AC BD 9E :F G"H"I"J"K"L"M"N"O"P"Q"R"S T !U "V #W"$X HK"JL"GM"IN"IO"JP"GQ"OQ PR HR"SU TV KW LX GY"%Y"HZ"&Z"'["I["J\"(\"K]")]"L^"*^"M_"+_"N`",`"Oa"-a"Pb".b"Qc"/c"0d"Rd"Se 1e Tf 2f Ug 3g Vh 4h Wi"5i"Xj 6j Z]"\^"Y_"[`"[a"\b"Yc"ac bd Zd"eg fh ]i ^j 7k"8l"9m":n";o"<p"=q">r"?s"@t"Au"Bv"Cw Dx Ey Fz G{"H| lo"np"kq"mr"ms"nt"ku"su tv lv"wy xz o{ p| I}"k}"l~"J~"m"K"n"L"o"M"p"N"q"O"P"r"Q"s"R"t"u"S"T"v"w U x V y W z X {"Y"| Z ~""}""""}"  ~"    ["\"]"^"_"`"a"b"c"d"e"f"g h i j k"l """""""  "    "m""n""o""p""q""r""s""t""u""v""w""x" y  z  {  | "}" ~ """""""  "    """"""""""""    " """""""  "    """"""""""""""""""""""""        ""  """""""  "    """"""""""""""""            """"""""                    ! # " $ 3 5 4 6 E G F H W Y X Z i k j l { } | ~                       !    "  1  3  2  4  C  E  D F U W V X g i h j y { z |                     """"    """  "                                                                  ?""@ " "A!"!"B""""C#"#"D$"$"E%"%"F&"&"M' ' N( ( U) ) V* * ]+ + ^, , i-"-"j."."{/"/"|0"0"1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 : : ; ; < < += 1= ,> 2> =? C? >@ D@ OA UA PB VB aC gC bD hD sE yE tF zF G G H H I I J J K K L L M M N N O O P P Q Q R R )S /S *T 0T ;U AU <V BV MW SW NX TX _Y eY `Z fZ q[ w[ r\ x\ ] ] ^ ^ _ _ ` ` a a b b c c d d e e f f #""$"%"!&"#) ') $* (* !-""."/"-/ .0 0"13 24 +7 57 ,8 68 9; :< =? >@ AC BD EG FH %K IK &L JL 'M (N 1O MO 2P NP 3Q 4R 5S QS 6T RT 9U +U :V ,V ;W <X =Y WY >Z XZ ?[ @\ A] [] B^ \^ C_ D` Ea _a Fb `b Gc Hd Ie ce Jf df DATATe,*2DATAHX26j454545454545 45! 45"!4 5#"4 5$#4 5%$4 5&%4 5'&4 5('45)(45*)45+*45,+45-,45.-45/.450/4510452145324537668899::;; << !==!">>"#??#$@@$%AA%&BB&'CC'(DD()EE)*FF*+GG+,HH,-II-.JJ./KK/0LL01MM12NN23O7O3QPQ76PPRP68RRSR89SSTS9:TTUT:;UUVU;<VVWV<=WWXW=>XXY X>?Y YZ Y?@Z Z[ Z@A[ [\ [AB\ \] \BC] ]^]CD^^_^DE__`_EF``a`FGaabaGHbbcbHIccdcIJddedJKeefeKLffgfLMgghgMNhhihNOi7QiOQislvyxwopmz}rzju}q|{n|tk{~ktpoow{k~n{julsvljzmzyvwxwv~~mrqnnm                 !!"" ###!!#$$$""$ %% %%  &&  &&8*0;.:<2=4)76>9-(@C/B,1D?'3EF5+A0PS;PHKS<TR2TLJRCUO/UMGO1QVDQINVc1,`2da._+5e-bf6b-9g.ah:iA+_Bj`,mQ1ckIQmRnd2JlnR/ur(uc`rdvsav0*s'qw3q_ewbtxft)4x)ty7tbgyaszhs*8zq'?{{i_qj|r`|@(rOu/mcuG}O}kmnvdP0vl~n~HP8;:<=7>9S;KST<LT9gh:y7gyzh8zX[\Z]WY^YopZWopX[\        " #$&8;)*<:(+=7%'9>,9'-?@.(:A/%7?-/AB0.@8&0BF42DG5);<*6HJ\_MN`^LOa[IK]bP]KQcdRL^eSI[cQSefTRd\JTfjXVhkYM_`NZlnqrpsmotouvpwmuwxvnx|z}qr~4=>6E35F5ef6w3ewxf4x=>  !!UWgUWiig13C13EECy{y{HKLJMGINIklJ}Gk}~lH~KL               !"$'$'(&(&)#)#%*%*%+%+,&,&-#-#+-+-.,.,$.$./1/1202 03'3!'(4("4X69[69\:8Z:8];5W;5Y7<^7<7= 7Yo= >8>pZ8 ?5?W5 =? =o? @> @p>6@ 6X@ ACACDBDBE9E[9:F:\FHKLJMGINIOPJQGOQRPHRS!UV" TW#KL$XHZ]KZ&)]L^\J^*(\M_YG_+%YI[`N[',`'[a-[IOa.b\(bPJ\/cY%cQGY-ac/aOQc0db.dRPb&Zd0ZHRd1eg3eSUg4hf2hVTf5i])iWK]*^j6^LXj8lo;<pn:=qk79mr>m9?st@:nuA7ks?AuvB@tl8BvwCEyzFDx{G;op<H|l~o~JMpnNLq}kOI}mrKPKQmsRLtnS}Iuk}QSsuTRvtJ~T~lvUWwyXVzxYM{oNZp|\_`^a[]b]cd^e[cefd\fgijhk_`lnqrpsmotouvpwmuwxvnxy{|z}qr~!#$"3E5G6H4FWiYkZlXj{}~|   !  "  1  3  1 !3 4  2"  4  2 C  E CE FDFD!U#W$X"Vg3i5UgWij6h4XjVhEyG{H|FzWYy{ZX|ziklj{}~|@ #C #"$"BD$E%?%&!&FA!)#)UC#')'MU)V*$D*$N(*V(*!-!Ai-.".jB"//{?-/-i{/0.0|j. 0 @|0131324247+]7+57578,8^,68689;9 ;:< :<+=?==1C?2>@D>,>@OACaAUgCVBDhBPbDsEGEyGzFHFtHK%EK%IKIKL&LF&JLJLM'M'M(N(NNO1O 1MOM O P2P2NP NP3Q3Q4R4R)S5S/5QS)Q/S0T6T*6RT0R*T;U9UA 9]+U;+AUBV:V<:,VB,^<V;WM;SW <XT<NX_Y=+Ye1=MWY_WSeYfZ>2Z`,>TXZfXN`Z=?[q?Cw[D@\x@>r\]AO]UAq[][w]^BV^PBx\^\r^aC_Cg_hD`Db`aEsayE_a_abFzbtF`b`bGcGcHdHdeIeIcecefJfJdfdfLI(xu LIlib //scene.blendeps/My Projects/phatch-blender/data/blender/scene.blendC:\Users\jutuveps\My Projects\phatch-blender\data\blender\scene.blendID4/H/xu OBBounding BoxubeID4H///xu OBcameraameraamera.001ID4/X/H/xu OBcamera_targetmptyID4X///xu OBfloorlaneID4/h/X/xu OBLampID4h//xu OBLamp.001ID40{ xu MAflooraterial.001>DNA1@ SDNANAMEq *next*prev*data*first*lastxyzwxminxmaxyminymax*pointergroupvalval2name[32]typesubtypeflagsaveddatalentotallen*newid*libname[24]usicon_id*propertiesid*idblock*filedataname[240]filename[240]totpad*parentw[2]h[2]changed[2]pad0pad1*rect[2]*obblocktypeadrcodename[128]*bp*beztmaxrcttotrctvartypetotvertipoextraprtbitmaskslide_minslide_maxcurval*drivercurvecurshowkeymuteipoposrelativetotelempad2*weightsvgroup[32]sliderminslidermax*refkeyelemstr[32]elemsizeblock*ipo*fromtotkeyslurph**scripts*flagactscripttotscript*line*formatblenlinenostartendflagscolor[4]pad[4]*namenlineslines*curl*sellcurcselcmarkers*undo_bufundo_posundo_len*compiledmtimesizeseekpassepartalphaangleclipstaclipendlensortho_scaledrawsizeshiftxshiftyYF_dofdistYF_apertureYF_bkhtypeYF_bkhbiasYF_bkhrotscriptlink*dof_obframenrframesoffsetsfrafie_imacyclokmulti_indexlayerpassmenunribufs*gputexture*anim*rrsourcelastframetpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfile*previewlastupdatelastusedanimspeedgen_xgen_ygen_typeaspxaspy*vnodetexcomaptomaptonegblendtype*object*texuvname[32]projxprojyprojzmappingofs[3]size[3]texflagcolormodelpmaptopmaptonegnormapspacewhich_outputpad[2]rgbkdef_varcolfacnorfacvarfacdispfacwarpfacname[160]*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*instance_init)()(*callback)()versionaipotype*ima*cube[6]imat[4][4]obimat[3][3]stypeviewscalenotlaycuberesdepthrecalclastsizenoisesizeturbulbrightcontrastrfacgfacbfacfiltersizemg_Hmg_lacunaritymg_octavesmg_offsetmg_gaindist_amountns_outscalevn_w1vn_w2vn_w3vn_w4vn_mexpvn_distmvn_coltypenoisedepthnoisetypenoisebasisnoisebasis2imaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendcheckerdistnablaiuser*nodetree*plugin*coba*envuse_nodespad[7]loc[3]rot[3]mat[4][4]min[3]max[3]pad3modetotexshdwrshdwgshdwbshdwpadenergydistspotsizespotblendhaintatt1att2*curfallofffalloff_typeshadspotsizebiassoftbufsizesampbuffersfiltertypebufflagbuftyperay_sampray_sampyray_sampzray_samp_typearea_shapearea_sizearea_sizeyarea_sizezadapt_threshray_samp_methodtexactshadhalostepsun_effect_typeskyblendtypehorizon_brightnessspreadsun_brightnesssun_sizebackscattered_lightsun_intensityatm_turbidityatm_inscattering_factoratm_extinction_factoratm_distance_factorskyblendfacsky_exposuresky_colorspacepad4YF_numphotonsYF_numsearchYF_phdepthYF_useqmcYF_bufsizeYF_padYF_causticblurYF_ltradiusYF_glowintYF_glowofsYF_glowtypeYF_pad2*mtex[18]specrspecgspecbmirrmirgmirbambrambbambgambemitangspectraray_mirroralpharefspeczoffsaddtranslucencyfresnel_mirfresnel_mir_ifresnel_trafresnel_tra_ifiltertx_limittx_falloffray_depthray_depth_traharseed1seed2gloss_mirgloss_trasamp_gloss_mirsamp_gloss_traadapt_thresh_miradapt_thresh_traaniso_gloss_mirdist_mirfadeto_mirshade_flagmode_lflarecstarclinecringchasizeflaresizesubsizeflarebooststrand_stastrand_endstrand_easestrand_surfnorstrand_minstrand_widthfadestrand_uvname[32]sbiaslbiasshad_alphaseptexrgbselpr_typepr_backpr_lampml_flagdiff_shaderspec_shaderroughnessrefracparam[4]rmsdarkness*ramp_col*ramp_specrampin_colrampin_specrampblend_colrampblend_specramp_showrampfac_colrampfac_spec*groupfrictionfhreflectfhdistxyfrictdynamodesss_radius[3]sss_col[3]sss_errorsss_scalesss_iorsss_colfacsss_texfacsss_frontsss_backsss_flagsss_presetYF_arYF_agYF_abYF_dscaleYF_dpwrYF_dsmpYF_presetYF_djitgpumaterialname[256]scale*bbi1j1k1i2j2k2selcol1selcol2quat[4]expxexpyexpzradrad2s*mat*imatelemsdisp**mattotcolwiresizerendersizethreshvec[3][3]alfaweightradiush1h2f1f2f3hidevec[4]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsvtilt_interpradius_interpcharidxkernhnurb*bevobj*taperobj*textoncurve*path*keybevpathlenbevresolwidthext1ext2resolu_renresolv_renspacemodespacinglinedistshearfsizewordspaceulposulheightxofyoflinewidth*strfamily[24]*vfont*vfontb*vfonti*vfontbisepchartotboxactbox*tbselstartselend*strinfocurinfoeffect*mface*mtface*tface*mvert*medge*dvert*mcol*msticky*texcomesh*mselectvdataedatafdatatotedgetotfacetotselectact_facecubemapsizesmoothreshsubdivsubdivrsubsurftype*mr*pv*tpageuv[4][2]col[4]transptileunwrapv1v2v3v4edcodecreasebweightdef_nr*dwtotweightco[3]no[3]pad[3]uv[2]co[2]indexfis[256]v[4]midv[2]*faces*colfaces*edges*edge_boundary_states*vert_edge_map*vert_face_map*map_mem*vertslevelslevel_countcurrentnewlvledgelvlpinlvlrenderlvluse_col*edge_flags*edge_creases*vert_map*edge_map*old_faces*old_edges*errormodifiersubdivTyperenderLevels*emCache*mCachedefaxispad[6]lengthrandomizeseed*ob_arm*start_cap*end_cap*curve_ob*offset_oboffset[3]scale[3]merge_distfit_typeoffset_typecountaxistolerance*mirror_obsplit_anglevalueresval_flagslim_flagse_flagsbevel_angledefgrp_name[32]*texturestrengthdirectionmidleveltexmapping*map_objectuvlayer_name[32]uvlayer_tmp*projectors[10]*imagenum_projectorsaspectxaspectypercentfaceCountfacrepeat*objectcenterstartxstartyheightnarrowspeeddampfallofftimeoffslifetimedeformflagmulti*prevCosparentinv[4][4]cent[3]*indexartotindexforce*clothObject*sim_parms*coll_parms*point_cache*x*xnew*xold*current_xnew*current_x*current_v*mfacesnumvertsnumfacesabsorptiontime*bvhtree*dmoperationvertextotinfluencegridsizeneedbind*bindweights*bindcostotcagevert*dyngrid*dyninfluences*dynverts*pad2dyngridsizedyncellmin[3]dyncellwidthbindmat[4][4]*psystotdmverttotdmedgetotdmfacepsysrt[2]*facepavgroupprotect*fss*target*auxTargetvgroup_name[32]keepDistshrinkTypeshrinkOptsprojAxissubsurfLevels*originfactorlimit[2]originOptspntswopntsuopntsvopntswtypeutypevtypewfufvfwdudvdw*defvec[8][3]partypepar1par2par3parsubstr[32]*track*proxy*proxy_group*proxy_from*action*poselib*poseconstraintChannelsdefbasemodifiersdloc[3]orig[3]dsize[3]drot[3]obmat[4][4]constinv[4][4]laycolbitstransflagipoflagtrackflagupflagnlaflagprotectflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactorrdampingsizefacmarginmax_velmin_velm_contactProcessingThresholddtdtxactcolempty_drawtypepad1[3]empty_drawsizedupfacescapropsensorscontrollersactuatorsbbsize[3]actdefgameflaggameflag2*bsoftsoftflaganisotropicFriction[3]constraintsnlastripshooksparticlesystem*pd*soft*dup_groupfluidsimFlagrestrictflagshapenrshapeflagrecalcobody_type*fluidsimSettings*derivedDeform*derivedFinallastDataMaskstateinit_stategpulampcurindexactivedeflectforcefieldpdef_damppdef_rdamppdef_permpdef_frictpdef_rfrictf_strengthf_powerf_distf_dampmaxdistmindistmaxradminradf_power_rpdef_sbdamppdef_sbiftpdef_sboftclump_facclump_powkink_freqkink_shapekink_ampfree_endtex_nablatex_modekinkkink_axisrt2*rngf_noisesimframestartframeendframeeditframelinStiffangStiffvolumeviterationspiterationsditerationsciterationskSRHR_CLkSKHR_CLkSSHR_CLkSR_SPLT_CLkSK_SPLT_CLkSS_SPLT_CLkVCFkDPkDGkLFkPRkVCkDFkMTkCHRkKHRkSHRkAHRcollisionflagsnumclusteriterationswelding*particlestotpointtotspring*bpoint*bspringnodemassgravmediafrictrklimitphysics_speedgoalspringgoalfrictmingoalmaxgoaldefgoalvertgroupfuzzynessinspringinfrictefraintervallocalsolverflags**keystotpointkeysecondspringcolballballdampballstiffsbc_modeaeroedgeminloopsmaxloopschokesolver_IDplasticspringpreload*scratchshearstiffinpush*pointcacheshow_advancedoptionsresolutionxyzpreviewresxyzrealsizeguiDisplayModerenderDisplayModeviscosityValueviscosityModeviscosityExponentgravxgravygravzanimStartanimEndgstarmaxRefineiniVelxiniVelyiniVelz*orgMesh*meshSurface*meshBBsurfdataPath[240]bbStart[3]bbSize[3]typeFlagsdomainNovecgenvolumeInitTypepartSlipValuegenerateTracersgenerateParticlessurfaceSmoothingsurfaceSubdivsparticleInfSizeparticleInfAlphafarFieldSize*meshSurfNormalscpsTimeStartcpsTimeEndcpsQualityattractforceStrengthattractforceRadiusvelocityforceStrengthvelocityforceRadiuslastgoodframemistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposureexprangelinfaclogfacgravityactivityBoxRadiusskytypeocclusionResphysicsEngineticratemaxlogicstepphysubstepmaxphystepmisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxaodistaodistfacaoenergyaobiasaomodeaosampaomixaocolorao_adapt_threshao_adapt_speed_facao_approx_errorao_approx_correctionao_samp_methodao_gather_methodao_approx_passes*aosphere*aotableshemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammaselcolsxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizeqtcodecname[128]codecaudio_codecvideo_bitrateaudio_bitrategop_sizerc_min_raterc_max_raterc_buffer_sizemux_packet_sizemux_ratemixratemain*mat_override*light_overridelay_zmasklayflagpassflagpass_xor*avicodecdata*qtcodecdataffcodecdatacfrapsfrapefraimagesframaptothreadsframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1stereomodedimensionspresetmaximsizexschyschxpartsypartswinposplanesimtypesubimtypequalityrpadrpad1rpad2scemoderendererocresalphamodeosafrs_secedgeintsafetyborderdisprectlayersactlayxaspyaspfrs_sec_basegausspostmulpostgammaposthuepostsatdither_intensitybake_osabake_filterbake_modebake_flagbake_normal_spacebake_quad_splitbake_maxdistbake_biasdistbake_padGIqualityGIcacheGImethodGIphotonsGIdirectYF_AAYFexportxmlYF_nobumpYF_clamprgbyfpad1GIdepthGIcausdepthGIpixelspersampleGIphotoncountGImixphotonsGIphotonradiusYF_raydepthYF_AApassesYF_AAsamplesyfpad2GIshadowqualityGIrefinementGIpowerGIindirpowerYF_gammaYF_exposureYF_raybiasYF_AApixelsizeYF_AAthresholdbackbuf[160]pic[160]stampstamp_font_idstamp_udata[160]fg_stamp[4]bg_stamp[4]simplify_subsurfsimplify_shadowsamplessimplify_particlessimplify_aossscineonwhitecineonblackcineongammajp2_presetjp2_depthrpad3domeresdomemodedomeangledometiltdomeresbuf*dometextparticle_percsubsurf_maxshadbufsample_maxao_errorcol[3]framename[64]*brushtoolseam_bleednormal_anglestepinverttotrekeytotaddkeybrushtypebrush[7]emitterdistdraw_timedname[36]mat[3][3]cornertypeeditbutflagjointrilimitdegrturnextr_offsdoublimitsegmentsringsverticesunwrapperuvcalc_radiusuvcalc_cubesizeuvcalc_marginuvcalc_mapdiruvcalc_mapalignuvcalc_flagautoik_chainlenimapaintparticleselect_threshclean_threshretopo_moderetopo_paint_toolline_divellipse_divretopo_hotspotmultires_subdiv_typeskgen_resolutionskgen_threshold_internalskgen_threshold_externalskgen_length_ratioskgen_length_limitskgen_angle_limitskgen_correlation_limitskgen_symmetry_limitskgen_retarget_angle_weightskgen_retarget_length_weightskgen_retarget_distance_weightskgen_optionsskgen_postproskgen_postpro_passesskgen_subdivisions[3]skgen_multi_level*skgen_templatebone_sketchingbone_sketching_convertskgen_subdivision_numberskgen_retarget_optionsskgen_retarget_rollskgen_side_string[8]skgen_num_string[8]edge_modepad3[2]dirview*session*cumapdrawbrushsmoothbrushpinchbrushinflatebrushgrabbrushlayerbrushflattenbrushpivot[3]brush_typetexnrtexrepttexfadetexsepaveragingtablet_sizetablet_strengthsymmrakeaxislock*camera*world*setbase*basactcursor[3]twcent[3]twmin[3]twmax[3]editbutsizeselectmodeproportionalprop_modeautomergepad5pad6autokey_mode*ed*radioframing*toolsettingsaudiotransform_spacesjumpframesnap_modesnap_flagsnap_target*theDagdagisvaliddagflagssculptdataframe_stepzoomblendximyimspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]zfaclay_usedpersp*ob_centre*bgpic*localvd*ri*retopo_view_data*depthsob_centre_bone[32]localviewlayactscenelockaroundcamzoompivot_lastgridgridviewpixsizenearfarcamdxcamdygridlinesviewbutgridflagmodeselecttwtypetwmodetwflagtwdrawflagtwmat[4][4]clip[4][4]*clipbbafterdrawzbufxrayflag2gridsubdivkeyflagsndofmodendoffilter*properties_storage*gpdlviewquat[4]lpersplviewverthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinycursor[2]rowbutv2d*editipoipokeyactname[32]constname[32]bonename[32]totipopinbutofschannellockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexfromshowgroupmodeltypescriptblockre_alignoldkeypresstab[7]render_sizechanshownzebra*filelisttotfiletitle[24]dir[240]file[80]ofssortmaxnamelencollumsf_fpfp_str[8]*libfiledataretvalmenuact(*returnfunc)()(*returnfunc_event)()(*returnfunc_args)()*arg1*arg2*menup*pupmenuoopsvisiflagtree*treestoresearch_string[32]search_tsesearch_flagsdo_outlinevisstoreflagdeps_flagsimanrcurtileimtypenrdt_uvstickydt_uvstretchpad[5]centxcentyautosnap*texttopviewlinesfont_idlheightleftshowlinenrstabnumbercurrtab_setshowsyntaxoverwritepix_per_linetxtscrolltxtbarwordwrapdoplugins*py_draw*py_event*py_button*py_browsercallback*py_globaldictlastspacescriptname[256]scriptarg[256]*script*but_refsredraws*idaspect*curfont*edittreetreetype*filesactive_filenumtilesxnumtilesyselstateviewrectbookmarkrectscrollposscrollheightscrollareaactive_bookmarkprv_wprv_h*imgoutline[4]neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]textfield_hi[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeiconfile[80]back[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]lamp[4]active[4]group[4]group_active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]edge_seam[4]edge_sharp[4]edge_facesel[4]face[4]face_select[4]face_dot[4]normal[4]bone_solid[4]bone_pose[4]strip[4]strip_select[4]cframe[4]vertex_sizefacedot_sizebpad[2]syntaxl[4]syntaxn[4]syntaxb[4]syntaxv[4]syntaxc[4]movie[4]image[4]scene[4]audio[4]effect[4]plugin[4]transition[4]meta[4]editmesh_active[4]handle_vertex[4]handle_vertex_select[4]handle_vertex_sizehpad[7]solid[4]tuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsttimetnodetarm[20]bpad[4]bpad1[4]spec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]yfexportdir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefviewzoomconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[256]themesundostepsundomemorygp_manhattendistgp_euclideandistgp_erasergp_settingstb_leftmousetb_rightmouselight[3]tw_hotspottw_flagtw_handlesizetw_sizetextimeouttexcollectratememcachelimitprefetchframesframeserverportpad_rot_angleobcenter_diarvisizervibrightrecent_filessmooth_viewtxglreslimitndof_panndof_rotatecurssizepad[8]versemaster[160]verseuser[160]glalphaclipautokey_flagcoba_weightvertbaseedgebaseareabase*sceneendxendysizexsizeyscenenrscreennrfullmainwinwinakthandler[8]*newvvec*v1*v2panelname[64]tabname[64]drawname[64]ofsxofsycontrolsnapold_ofsxold_ofsysortcounter*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanelssubvstr[4]subversionpadsminversionminsubversiondisplaymode*curscreen*curscenefileflagsglobalfname[80]*ibuf*ibuf_comp*se1*se2*se3nrbottomrightxofsyofslift[3]gamma[3]gain[3]saturation*guidir[160]donestartstillendstill*stripdataorxory*crop*transform*color_balance*tstripdata*tstripdata_startstill*tstripdata_endstill*ibuf_startstill*ibuf_endstill*instance_private_data**current_private_data*tmpstartofsendofsmachinestartdispenddispmulhandsizeanim_preseek*stripfacf0facf1*seq1*seq2*seq3seqbase*sound*hdaudiolevelpanstrobe*effectdataanim_startofsanim_endofsblend_modeblend_opacity*oldbasep*parseq*seqbasepmetastackedgeWidthforwardwipetypefMinifClampfBoostdDistdQualitybNoCompScalexIniScaleyIniScalexFinScaleyFinxInixFinyIniyFinrotInirotFininterpolation*frameMapglobalSpeedlastValidFramebuttypeuserjitstatotpartnormfacobfacrandfactexfacrandlifeforce[3]vectsizemaxlendefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstepomattimetexspeedtexflag2negvertgroup_vvgroupname[32]vgroupname_v[32]*keysminfacusedusedelemdxdylinkotypeold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]delaydurationmaterialName[32]damptimerpropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linkstapjoyindexaxis_singleaxisfbuttonhathatfprecisionstr[128]module[64]*mynewinputstotslinks**slinksvalostate_mask*actframeProp[32]blendinpriorityend_resetstrideaxisstridelengthsndnrpad1[2]makecopycopymadepad2[1]track*melinVelocity[3]angVelocity[3]localflagdyn_operationforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]*referencebutstabutendminmaxvisifacrotdampminloc[3]maxloc[3]minrot[3]maxrot[3]matprop[32]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]int_argfloat_arggoaccellerationmaxspeedmaxrotspeedmaxtiltspeedtiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*lamprengobjectdupli_ofs[3]childbaserollhead[3]tail[3]bone_mat[3][3]arm_head[3]arm_tail[3]arm_mat[4][4]xwidthzwidthease1ease2rad_headrad_tailbonebasechainbasepathflaglayer_protectedghostepghostsizeghosttypepathsizeghostsfghostefpathsfpathefpathbcpathacconstflagikflagselectflagagrp_index*bone*childiktree*b_bone_mats*dual_quat*b_bone_dual_quatschan_mat[4][4]pose_mat[4][4]pose_head[3]pose_tail[3]limitmin[3]limitmax[3]stiffness[3]ikstretch*customchanbaseproxy_layerstride_offset[3]cyclic_offset[3]agroupsactive_groupcustomColcs*grpreserved1groupsactive_markeractnractwidthtimeslidename[30]ownspacetarspaceenforceheadtail*tarsubtarget[32]matrix[4][4]space*proptarnumtargetsiterationsrootbonemax_rootbone*poletarpolesubtarget[32]poleangleorientweightgrabtarget[3]reserved2minmaxflagstuckcache[3]lockflagfollowflagvolmodeplaneorglengthbulgepivXpivYpivZaxXaxYaxZminLimit[6]maxLimit[6]extraFzinvmat[4][4]fromtomap[3]expofrom_min[3]from_max[3]to_min[3]to_max[3]zminzmaxpad[9]channel[32]no_rot_axisstride_axiscurmodactstartactendactoffsstridelenblendoutstridechannel[32]offs_bone[32]hasinputhasoutputdatatypesockettype*new_socknslimitstack_indexinternstack_index_extlocxlocyown_indexto_index*tosock*link*new_nodeusername[32]lastyoutputs*storageminiwidthcustom1custom2custom3custom4need_execexectotrbutrprvr*typeinfo*fromnode*tonode*fromsocknodeslinks*stack*threadstackinitstacksizecur_indexalltypes*owntype*selin*selout(*timecursor)()(*stats_draw)()(*test_break)()cyclicmoviesamplesminspeedpercentxpercentybokehcurvedimage_in_widthimage_in_heightcenter_xcenter_yspiniterwrapsigma_colorsigma_spacehuesatt1t2t3fstrengthfalphakey[4]x1x2y1y2colname[32]bktyperotationpreviewgamcono_zbuffstopmaxblurbthresh*dict*nodeangle_ofscolmodmixthresholdfademcjitprojfitshortymintablemaxtableext_in[2]ext_out[2]*curve*table*premultablecurrcliprcm[4]black[3]white[3]bwmul[3]sample[3]offset[2]innerradiusratergb[3]cloneactive_rndactive_cloneactive_mask*layerstotlayermaxlayertotsize*pooleditflagvel[3]rot[4]ave[3]numparentpa[4]w[4]fuv[4]foffsetrand[3]*stick_obprev_state*hairi_rot[4]r_rot[4]r_ave[3]r_ve[3]dietimebanksizemulnum_dmcachebpialiveloopdistrphystyperotmodeavemodereacteventdrawdraw_asdraw_sizechildtypedraw_stepren_stephair_stepkeys_stepadapt_angleadapt_pixrotfromintegratornbetweenboidneighboursbb_alignbb_uv_splitbb_animbb_split_offsetbb_tiltbb_rand_tiltbb_offset[2]simplify_flagsimplify_refsizesimplify_ratesimplify_transitionsimplify_viewporttimetweakjitfackeyed_timeeff_hairgrid_respartfactanfactanphasereactfacavefacphasefacrandrotfacrandphasefacrandsizereactshapeacc[3]dragfacbrownfacdampfacabslengthrandlengthchild_nbrren_child_nbrparentschildsizechildrandsizechildradchildflatchildspreadclumpfacclumppowrough1rough1_sizerough2rough2_sizerough2_thresrough_endrough_end_shapebranch_thresdraw_line[2]max_lat_accmax_tan_accaverage_velbankingmax_bankgroundzboidfac[8]boidrule[8]*eff_group*dup_ob*bb_ob*pd2*part*edit**pathcache**childcachepathcachebufschildcachebufs*target_ob*keyed_ob*latticeeffectorsreacteventstotchildtotcachedtotchildcachetarget_psyskeyed_psystotkeyedbakespacebb_uvname[3][32]vgroup[12]vg_negrt3*renderdata*cacheCdisCvi[3]structuralbendingmax_bendmax_structmax_shearavg_spring_lentimescaleeff_force_scaleeff_wind_scalesim_time_oldstepsPerFrameprerollmaxspringlensolver_typevgroup_bendvgroup_massvgroup_structpresets*collision_listepsilonself_frictionselfepsilonself_loop_countloop_countpressure*pointstotpointsthicknessstrokesframenum*actframegstepinfo[128]sbuffer_sizesbuffer_sflag*sbufferTYPEdcharucharshortushortintlongulongfloatdoublevoidLinkLinkDataListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDPropertyDataIDPropertyIDLibraryFileDataPreviewImageIpoDriverObjectIpoCurveBPointBezTripleIpoKeyBlockKeyScriptLinkTextLineTextMarkerTextPackedFileCameraImageUserImageGPUTextureanimRenderResultMTexTexPluginTexCBDataColorBandEnvMapImBufbNodeTreeTexMappingLampCurveMappingWaveMaterialGroupVFontVFontDataMetaElemBoundBoxMetaBallNurbCharInfoTextBoxCurvePathMeshMFaceMTFaceTFaceMVertMEdgeMDeformVertMColMStickyMSelectCustomDataMultiresPartialVisibilityMDeformWeightMTexPolyMLoopUVMLoopColMFloatPropertyMIntPropertyMStringPropertyOrigSpaceFaceMultiresColMultiresColFaceMultiresFaceMultiresEdgeMultiresLevelMultiresMapNodeModifierDataSubsurfModifierDataLatticeModifierDataCurveModifierDataBuildModifierDataMaskModifierDataArrayModifierDataMirrorModifierDataEdgeSplitModifierDataBevelModifierDataBMeshModifierDataDisplaceModifierDataUVProjectModifierDataDecimateModifierDataSmoothModifierDataCastModifierDataWaveModifierDataArmatureModifierDataHookModifierDataSoftbodyModifierDataClothModifierDataClothClothSimSettingsClothCollSettingsPointCacheCollisionModifierDataBVHTreeSurfaceModifierDataDerivedMeshBVHTreeFromMeshBooleanModifierDataMDefInfluenceMDefCellMeshDeformModifierDataParticleSystemModifierDataParticleSystemParticleInstanceModifierDataExplodeModifierDataFluidsimModifierDataFluidsimSettingsShrinkwrapModifierDataSimpleDeformModifierDataLatticebDeformGroupbActionbPoseBulletSoftBodyPartDeflectSoftBodyObHookRNGSBVertexBodyPointBodySpringSBScratchWorldRadioBaseAviCodecDataQuicktimeCodecDataFFMpegCodecDataAudioDataSceneRenderLayerRenderDataRenderProfileGameFramingTimeMarkerImagePaintSettingsBrushParticleBrushDataParticleEditSettingsTransformOrientationToolSettingsBrushDataSculptDataSculptSessionSceneDagForestBGpicView3DSpaceLinkScrAreaRenderInfoRetopoViewDataViewDepthsbGPdataView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsTreeStoreTreeStoreElemSpaceImageSpaceNlaSpaceTextScriptSpaceScriptSpaceTimeSpaceNodeSpaceImaSelFileListThemeUIThemeSpaceThemeWireColorbThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemTStripElemStripCropStripTransformStripColorBalanceStripColorBalanceGUIHelperStripProxyStripPluginSeqSequencebSoundhdaudioMetaStackEditingWipeVarsGlowVarsTransformVarsSolidColorVarsSpeedControlVarsEffectBuildEffPartEffParticleWaveEffOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbActuatorSensorbDelaySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbJoystickSensorbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorbTwoDFilterActuatorbParentActuatorbStateActuatorFreeCamerabSamplebSoundListenerSpaceSoundGroupObjectBonebArmaturebPoseChannelbActionGroupbActionChannelSpaceActionbConstraintChannelbConstraintbConstraintTargetbPythonConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbMinMaxConstraintbSizeLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbStretchToConstraintbRigidBodyJointConstraintbClampToConstraintbChildOfConstraintbTransformConstraintbLocLimitConstraintbRotLimitConstraintbSizeLimitConstraintbDistLimitConstraintbShrinkwrapConstraintbActionModifierbActionStripbNodeStackbNodeSocketbNodeLinkbNodebNodePreviewbNodeTypeNodeImageAnimNodeBlurDataNodeDBlurDataNodeBilateralBlurDataNodeHueSatNodeImageFileNodeChromaNodeTwoXYsNodeTwoFloatsNodeGeometryNodeVertexColNodeDefocusNodeScriptDictNodeGlareNodeTonemapNodeLensDistTexNodeOutputCurveMapPointCurveMapBrushCloneCustomDataLayerHairKeyParticleKeyChildParticleParticleDataParticleSettingsParticleEditParticleCacheKeyLinkNodebGPDspointbGPDstrokebGPDframebGPDlayerTLEN   L4( P\$8Tpx(x T|8lLDlh88,< L   @ 84DX`D`t@<l<<\hd4Dd<@L@@@<lht(T8xl(4H8P HP|<$$X P$88 x P< 088,@0,Hh(H,(lDLP<L< \PLlT`<8l (DtH@,@t<h4,,D,@,4` l\4<$x( (@   ,D8HSTRC9                     !"#$%&'()*+, -./0!!!"1#234./56789  :;<=>$ ?@.AB%%%%C=/DEF GHIJ& %KLM= N$OPQR'STUV%(((WXY) ))Z[\+]^_*`]a b(c(def ghij kl+mn]% ,opqrstuvwxyz{|$O'} ~- . " /01%++ 2 394   %5C@6$@57 .8qr38-9$O.467:    -;P  <Fqr !"#$%&'()*+,-.+/0123456789:;<=>?@ABCDEFGHIJKL2M$O'}=$O>NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw xyz{|}~/@66 2M9$O?F'} @%A+BBBCDC  $O># "%EEE"1#2F%FGH9C     $OI&> FbC    @ @@@%GFFJ'C $O&>KLMNOPQ R!J"S#T$T%T&6'()*+%,-./U0V1 M 2345 67K89:;%<O89=>W?PW@ANBC>DQX.25 67YEZ%RFSGL3.25 67[H\I]J^3_`_4aKLbMLcccaN`ObPQ R SdT6('%NUU VNUWXYZ[\]T$T&^_V`aKbOc('6%eee dfeefVg] h igee hee jkiee[lmnjee oH k ee p q r stulvwx]yleez{ |mee}]n ee~%]oee%p ee3 %q ee .]%reeseetee muee 3 %+veeF w ee xeeyeez{|}~eeNNNNNNK%eeee %ee %6ee9ee -eeee} ee  k ee  z%F%"$O&PC% o &    $OIC      >      !"#$%'} & ' ( )*G+4,-./0 1 2 3 456?789:;,<=>?@ABCF D & EF$GHIJKLMNOPQRSTUVWXYZ[\]^_`abcd3efn}ghijklmnopqrstuvwxyz{|}~,%Q}0JJJ$ONG/TVU      +$O2M'} !"#$%&'( ) *+,-./0123%4 5 67F8 9:;<=]>?@ABCDD >E?FGH%IJKLMNOPQRSTUVWXYZ[\]^d_`"mabcdefghi#jklmn opqrstuvw xy%z{|}~ F* +F+F m8%   m   2M</] !+ "#$. %&'()*+,-./0129 34567'} g 89:;<=>?@@A% .- mBCDEKFGHIJKLMNOPQRS  " TUVWXYZ[\]^_`+sabcdefg'hijklmnopqCr st5uvwxyz {|}~01$@^kFGHIFGHIFGHIF  $OPA.$FGHWI  %/FGHI B|!FGHI+F     FGHI 9  FGHI.-< ,B | FGHIFGHI*]      ] FGH]+ FGHFGHIP  99%|*FGHI f%+     8     D6 !"#$%&'()*+,-./012345_6789:;<=>?@ABCDEFGHIJK "%LMNOPQRSTUVWXYZ[\]^%4_B`abcdefghijklmnopqrstuvwxyz{ |}~%26   % v%F4F'}    f  88  %0mj%988      +  [$O0          %9p !"# $%&'()*+,-.%/0]l12929-234\5Qn6789:;<=%>?@ABCDEFGHvIJKLM?2NOEP QR S TU% V WXY%+F>Z%[\]^_%`a%bc%de Fpznbfg +h ijkTlmn+F o -p% qzrstuvwx*y z{nT|F  o}~% - 4\ 4\  4\m   -J % " ` -  T  4\+@ -z  % 4\D@?nf j+Fk4\_* - zT  - % ++ $Om]FGH   F - %? & l   "   1  &        %!!! """!$O    g%#FGHI $$$$O % %%      %$O& && %'*  (  ) ]%* + , +F - . [\%/ !0 "1 #$%&2  '()*+,-./%+F3 v4 %05 123456786    9:v7    9:v8    9:v9  %: ;; ;;<= -<<< >?$O [\@ABCDEF = GHIJ>>>>K=LMNOP+QRST>U?V@ @@@WXYN { Z [QR\]^_`abcdeABf???@g@h>i>U9 j k=l mnop qBr>s>t u vwCxy%Dz{D|}"~%%E pB%F%GHhij9IJKLMN zO  P jpmQ[%HR%STU TTT< @UV.\% Cm\/%2MVW F_ TW% XB%YBZ[ YBYXYMm%Qd\p1F.bc4\:  953 678        m      l            ^\]    ! " # $ % & ' ( ) * + , - ?7?. / 0 $O51 %\2 [Z]3 ^4 ^5 6 7 6 8 9 : ; < Nn5= > ? 9@ A B /C D E F G H }{"_I J K L M N O P Q R S T U V W ]X Y Z [ \ ] ^ %F|__ ` a b ]c d `e aaa`f g h bbb i j c cc bk h l ^m  xn o p ENDBphatch-0.2.7/data/blender/object.py0000644000000000000000000004146211346363116017104 0ustar rootroot00000000000000# -*- coding: utf-8 -*- # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 # Note that importing other modules (non Blender/Python) is somewhat # problematic. See imp module and runner.py if you really want to do that. import math import os import sys import tempfile from Blender import Camera, Image, Mathutils, Material, Object, Texture from PIL import Image as PILImage from PIL import ImageOps def _get_image_extension(image, ext={'RGB': '.PNG', 'RGBA': '.PNG'}): if image.mode == 'LA' or \ (image.mode == 'P' and 'transparency' in image.info): image = image.convert('RGBA') elif not image.mode.startswith('RGB'): image = image.convert('RGB') return image, ext[image.mode] if sys.platform.startswith('win'): # BMP fails on Windows2000 # PIL can't write to .bmp temp file (Fails with Error 0) get_image_extension = _get_image_extension else: def get_image_extension(image): return _get_image_extension(image, ext={'RGB': '.BMP', 'RGBA': '.PNG'}) class Textures: def set_up(self, images): for i, image in enumerate(images): texture = Texture.Get('phatch_tex_' + str(i + 1)) texture.image = image class BlenderCamera: def set_up(self, args): camera_target = Object.Get('camera_target') camera_target.RotX = math.radians(args['rotation_x']) camera_target.RotY = -math.radians(args['rotation_y']) camera_target.RotZ = math.radians(args['rotation_z']) camera = Camera.Get('camera') camera.angle = args['camera_lens_angle'] camera_ob = Object.Get('camera') camera_ob.LocX = args['camera_distance'] class Stars: def set_up(self, args, world): if args['stars']: mode = world.getMode() mode |= 2 world.setMode(mode) self._set_stars_color(args, world) def _set_stars_color(self, args, world): old_options = world.getStar() new_options = args['stars_color'] + old_options[3:] world.setStar(new_options) class Mist: def set_up(self, args, world): if args['mist']: mode = world.getMode() mode |= 1 world.setMode(mode) class World: stars = Stars() mist = Mist() def set_up(self, args, scene): if not args['alpha']: world = scene.world world.setZen(args['gradient_top']) world.setHor(args['gradient_bottom']) world.setSkytype(1) # make sure sky gets blended self.stars.set_up(args, world) self.mist.set_up(args, world) class Floor: def set_up(self, args, scene): if args['use_floor']: self._set_color(args) self._set_reflection(args) self._set_opacity(args) else: self._remove_floor(scene) def get_mode(self): return self.material.getMode() mode = property(get_mode) def _set_color(self, args): self.material = Material.Get('floor') self.material.setRGBCol(args['floor_color']) def _set_reflection(self, args): ref = int(args['floor_reflection']) if ref: self.material.setFresnelMirrFac(2 - ref / 100.0) else: self.material.setMode(self.mode ^ Material.Modes['RAYMIRROR']) def _set_opacity(self, args): #note that the idea is to fake it so that mirror still works #TODO: it probably would be nicer to handle this with compositing as #this solution does not work properly with stars option! opacity = int(args['floor_opacity']) / 100.0 self.material.setMode(self.mode ^ Material.Modes['RAYTRANSP']) self.material.fresnelTrans = 5 * (1.0 - opacity) self.material.fresnelTransFac = 5 * (1.0 - opacity) self.material.spec *= opacity self.material.ref *= opacity self.material.alpha *= opacity def _remove_floor(self, scene): scene.objects.unlink(Object.Get('floor')) class BlenderObjects(list): def __init__(self): self.extend([Book(), Box(), Can(), Cd(), Lcd(), Sphere()]) def find(self, args): obj_name = args['object'] for obj in self: if obj_name == obj.name: return obj class BlenderObject: tex_ob_name = '' def __init__(self): if not self.tex_ob_name: self.tex_ob_name = self.name # TODO: generalize self.texface = TexFace(self.tex_ob_name, 'phatch_tex_1') def get_name(self): return self.__class__.__name__ name = property(get_name) def initialize_images(self, args): pass def set_up(self, args, images): pass class TexFace: def __init__(self, tex_ob_name, name): self.tex_ob_name = tex_ob_name self.name = name self._width = None self._height = None def get_width(self): self._calculate_edge_width_and_height() return self._width width = property(get_width) def get_height(self): self._calculate_edge_width_and_height() return self._height height = property(get_height) def _calculate_edge_width_and_height(self): # cache -> to decorator? if self._width is not None and self._height is not None: return ob = Object.Get(self.tex_ob_name) me = ob.getData(mesh=True) tex_group = VertexGroup(me, self.name) tex_corner = VertexGroup(me, self.name + '_corner') connected_edges = tex_corner.find_connected_edges() common_edges = connected_edges.intersection(tex_group.edges) cross_product = cross(tex_corner.vertices.pop(), common_edges) face_normal = tex_group.faces.pop().no common_edges = list(common_edges) if vectors_on_same_side(cross_product, face_normal): e1, e2 = common_edges[0], common_edges[1] else: e1, e2 = common_edges[1], common_edges[0] # TODO: it would be better to use avg of edges # (top/bottom, left/right) here self._width, self._height = get_length(e1, ob), get_length(e2, ob) class VertexGroup: def __init__(self, mesh, name): self.mesh = mesh self.vertex_ids = mesh.getVertsFromGroup(name) def find_connected_edges(self): ret = set() for vertex_id in self.vertex_ids: for e in self.mesh.edges: if e.v1.index == vertex_id: ret.add(e) if e.v2.index == vertex_id: ret.add(e) return ret def get_edges(self): ret = set() for e in self.mesh.edges: found_v1 = False found_v2 = False for index in self.vertex_ids: if e.v1.index == index: found_v1 = True if e.v2.index == index: found_v2 = True if found_v1 and found_v2: ret.add(e) return ret edges = property(get_edges) def get_faces(self): ret = set() for face in self.mesh.faces: found_vertices = 0 for index in self.vertex_ids: for vertex in face.verts: if vertex.index == index: found_vertices += 1 if found_vertices == len(face.verts): ret.add(face) return ret faces = property(get_faces) def get_vertices(self): ret = set() for vertex in self.mesh.verts: for index in self.vertex_ids: if vertex.index == index: ret.add(vertex) return ret vertices = property(get_vertices) def cross(v_id, edges): def get_vec(edge): if edge.v1 == v_id: return edge.v2.co + edge.v1.co return edge.v1.co + edge.v2.co edges = list(edges) vec1 = get_vec(edges[0]) vec2 = get_vec(edges[1]) return Mathutils.CrossVecs(vec1, vec2).normalize() def vectors_on_same_side(v1, v2): # checks if the vec are on the same side of a ball. expects that v1 # and v2 have been normalized already return math.acos(Mathutils.DotVecs(v1, v2)) < math.pi def get_length(edge, ob): v1_world = edge.v1.co * ob.matrix v2_world = edge.v2.co * ob.matrix return (v1_world - v2_world).length class Box(BlenderObject): def set_up(self, args, images): set_material_color('box', args['box_color']) self._adapt_proportions(args, images[0]) def _adapt_proportions(self, args, image): ob = Object.Get(self.name).getParent() width, height = image.getSize() fac = height / 0.8 box_width = width / fac box_height = height / fac box_depth = max(float(args['box_depth']) / fac, 0.001) ob.setSize(box_depth, box_width, box_height) class Book(BlenderObject): def initialize_images(self, args): def initialize_page(box, image_arg, ext): temporary_image = TempFile(ext) left_page = im.crop(box) left_page.save(temporary_image.path) args[image_arg] = temporary_image.path if args['page_mapping'].startswith('Wrap'): im_path = args['input_image_1'] im = PILImage.open(im_path) width, height = im.size im, ext = get_image_extension(im) initialize_page((width / 2 + 1, 0, width, height), \ 'input_image_1', ext) initialize_page((0, 0, width / 2, height), 'input_image_2', ext) def set_up(self, args, images): set_material_color('cover', args['cover_color']) def set_material_color(material_name, color): material = Material.Get(material_name) material.setRGBCol(color) class Can(BlenderObject): pass class Cd(BlenderObject): tex_ob_name = 'cd_lid' def set_up(self, args, images): cd_lid = Object.Get('cd_lid') cd_lid.RotZ -= math.radians(args['lid_rotation']) class Lcd(BlenderObject): pass class Sphere(BlenderObject): pass class Modes(dict): def __init__(self): modes = (Fit(), LetterBox(), ScaleImage(), ScaleModel(), ) for mode in modes: self[mode.name] = mode class Mode: name = '' def execute(self, input_image_path, blender_object): return Image.Load(input_image_path) def clean_up(self): pass class TemporaryImages(list): def close(self): for image in self: image.close() class InputManipulationMode: temporary_images = TemporaryImages() def execute(self, input_image_path, blender_object): im = PILImage.open(input_image_path) new_im_width, new_im_height = self._get_new_im_dimensions(im, blender_object) result_im = self._execute_hook(im, new_im_width, new_im_height) return self._pil_im_to_blender_disk(result_im) def clean_up(self): self.temporary_images.close() def _comparator(self, new_im_height, im_height): pass def _execute_hook(self, im, new_im_width, new_im_height): pass def _get_new_im_dimensions(self, im, blender_object): im_width, im_height = im.size tex_width = blender_object.texface.width tex_height = blender_object.texface.height # figure out the scaling factor between widths and calculate new height new_im_height = im_width / tex_width * tex_height if self._comparator(new_im_height, im_height): new_im_width = im_width else: # scale width instead new_im_width = im_height / tex_height * tex_width new_im_height = im_height return int(new_im_width), int(new_im_height) def _pil_im_to_blender_disk(self, im): im, ext = get_image_extension(im) temporary_image = TempFile(ext) self.temporary_images.append(temporary_image) im.save(temporary_image.path) ret_im = Image.Load(temporary_image.path) return ret_im class Fit(InputManipulationMode): name = 'Fit Image' def _comparator(self, new_im_height, im_height): return new_im_height < im_height def _execute_hook(self, im, new_im_width, new_im_height): fit_im = ImageOps.fit(im, (int(new_im_width), int(new_im_height))) fit_im.format = im.format return fit_im class LetterBox(InputManipulationMode): name = 'Letterbox' def _comparator(self, new_im_height, im_height): return new_im_height > im_height def _execute_hook(self, im, new_im_width, new_im_height): def split(pixels): return pixels / 2, pixels / 2 im_width, im_height = im.size left, top, right, bottom = 0, 0, im_width, im_height if im_width == new_im_width: extra_pixels = new_im_height - im_height top, bottom = split(extra_pixels) bottom += im_height else: extra_pixels = new_im_width - im_width left, right = split(extra_pixels) right += im_width lb_im = PILImage.new(im.mode, (new_im_width, new_im_height)) lb_im.format = im.format lb_im.paste(im, (left, top, right, bottom)) return lb_im class ScaleImage(Mode): name = 'Scale Image' class ScaleModel(Mode): name = 'Scale Model' def execute(self, input_image_path, blender_object): im = Image.Load(input_image_path) im_width, im_height = im.getSize() im_size_ratio = im_width / im_height tex_width = blender_object.texface.width tex_height = blender_object.texface.height tex_size_ratio = tex_width / tex_height ob = Object.Get(blender_object.name).getParent() if tex_size_ratio > im_size_ratio: # scale width scaling_ratio = im_size_ratio / tex_size_ratio ob.SizeY *= scaling_ratio else: # scale height scaling_ratio = tex_size_ratio / im_size_ratio ob.SizeZ *= scaling_ratio return im class BlenderInitializer: blender_objects = BlenderObjects() modes = Modes() selected_mode = Mode() textures = Textures() camera = BlenderCamera() world = World() floor = Floor() def set_up_render(self, args, scene): blender_object = self.blender_objects.find(args) image_size = args['image_size'] images = [] # TODO: handle object, image init here! -> ie. book crop blender_object.initialize_images(args) if image_size not in self.modes: print 'No suitable "Image Size" provided! Got ' + image_size + \ '! Using Scale Image instead.' image_size = 'Scale Image' self.selected_mode = self.modes[image_size] for i in range(1, args['amount_of_input_images'] + 1): input_image = args['input_image_' + str(i)] image = self.selected_mode.execute(input_image, blender_object) images.append(image) self.textures.set_up(images) blender_object.set_up(args, images) self.camera.set_up(args) self.world.set_up(args, scene) self.floor.set_up(args, scene) def clean_up(self): self.selected_mode.clean_up() #FIXME: duplicate code from lib/system.py (should be imported) class TempFile: def __init__(self, suffix='', path=None): """Make a temporary file with :func:`tempfile.mkstemp`. Use the ``path`` attribute to get the filename. :param suffix: If suffix is specified, the file name will end with that suffix, otherwise there will be no suffix. ``TempFile`` does not put a dot between the file name and the suffix; if you need one, put it at the beginning of suffix. :type suffix: string :param path: prefabricated temp path :type path: string >>> t = TempFile('.png') >>> t.path.endswith('.png') True >>> t.close() """ if path is None: self._fd, self.path = tempfile.mkstemp(suffix) else: self._fd = None self.path = path def close(self): """It is important to call this method when finished with the temporary file. """ if self._fd: os.close(self._fd) os.remove(self.path) phatch-0.2.7/data/blender/preview/0000755000000000000000000000000011346363116016736 5ustar rootroot00000000000000phatch-0.2.7/data/blender/preview/object/0000755000000000000000000000000011346363116020204 5ustar rootroot00000000000000phatch-0.2.7/data/blender/preview/object/book.jpg0000644000000000000000000000415211346363116021642 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Eml(\cˢr]ce(\mOe mmXK 卞ԛ=MV"mԛ*6Q`We*FE]l[=E]l[=Eml; R;(EmԻ=j]X.YFʳڍV3Wˣ[=E_/ڏ/ڭlg+ʾ__ZFj,*~y~kg= |j(y;\kj{ykP }"_Q9w${j?G$ZVN(;${z92F}kK &1OqrG &j݃.(;${_j݃O+obbQS{86'?畷ƜkbiS{8K\WO(fj{T=:ãiĀDŽzȒ'e+to1[FKWw 0Afzzo;bP'p7w'4)ytlhD2φ-- j9~fj~ 7T?m-Y}vTGmzV}wl2vܾk_mur6G y kAtfᾶp^钕ct# غbKގ"aVR{I.1IZzivsiwVI-=3YI=PSDfk~#xFȵ6nbxAs/C{95CMUѾ4vjMfU?ʧ?V5[cnNuWwD#c5z4ILf3@4i )phatch-0.2.7/data/blender/preview/object/box.jpg0000644000000000000000000000546311346363116021506 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Eml(\cˢr]ce(\mOe mmXK 卞ԛ=MV"mԛ*6Q`We+[C{]2 #Kد&v3_YO̱GC=GXUS7cZtSGezygoD1}OjxH&kw|XhaﹳJ[@p>Q!&s֜Һ TmZ|23].;z >OYʷAϯ^rdI~ѐOZ(#R|4r]ge++lV6{Rr6Ulʾ]_ZFj,,YwcW8'q^Iu;۔\9V9,JW juU搲rGN}+wws*8m*KqD mcTĞMxS/Quo%ĩhe#4F3WP] aMIYrU~SdxLX紸U4i,>QOT^ILֶ Y7.OBPO@xϛ)4ꕹ.jq궒^ tđ'k`qtbKs$4?O-1\,tnw(Ly9=:*}Hi^8pr"dͰ>@,}(VI*ou Kkb >lcߚN?W뷶]PIac\o1jrxa^W+rw7j<ڍMm2e"f'W7wO5烽3%R;Ip ytx<涡Ư,?'VQs(z~ҧsDZ MMRn`bQ*wgSF+NBRO28tAyUvܞ򯦯/.gIBHI'~8FqW ?yP4UV\&d=uP{NC~u?Q⠎XI}*r-˙cEVUm8$<ΟkA%<*[r5p?6 UVLu5mm#pҳ4Y|OF#r5OҽA?\c6_?@y5½MZQM`-6flfBiXegޙ3H Inhn74śwC+Q5ҬMg"|ȿ׊BO= !}8Z/M/UُHe=?JV lH=5j zU1BZcFi5Wњfh ?phatch-0.2.7/data/blender/preview/object/can.jpg0000644000000000000000000000443111346363116021451 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Eml~FaGEqEv6<_*{&,vig*i6y&6Wk? ]X.Ace.,+6{Rl[)6{UX{Rl[(E]>f@i\('ijI?⤰[ I"G ζ/uJ7Q$gvZ& pSKi%Xb&ӜqY){ڞ'ř#Ҭ.43.%7+K᥺ްݕ$og+|EiisFWo-: יęFE>v'ٽ:[YqD[#emx3ݓk;`rL[[e.ʳV=v{UԻ(\gg=grGV{Qڋʾ_jxM1KMUVvpEgWr4}C?NY^KFi[Q u{TZNn}J[8'M;)q <7,[ϒhP)'?\6&Gpb}FFyn=e)soRKMVqY &&$m^ȼcؖ}_kkkZT{WM{&Uj6{V&]*j6{P9?I5H7-K1^w=NW${:?!岏 }Ư$OVmJv6",p [U>2d8)Mϕݎ1WVGZoO(A#zpQ\xZd<#lz7n+Ԏl{5~c۫\)kvz Tx9烎Ž[|t;v1^}6S.O/6n?I+- ("AՓ+YrG-?N+фʵ8%cokƔxakbqrG =?Jsɨ1^) n=ǵ;{QN m:Qu&(2iاDU='"pUx^V1=@t+>ԟbe氕VRn}ZGR6]-ܭ$@rj[v5/R ҍT*FEk;SknRDJZ1K 4!I,S\Zn)*z@څ HTG╞(t̘8@**?zZf*ImW)#1IO@e%81S3phatch-0.2.7/data/blender/preview/object/cd.jpg0000644000000000000000000000570511346363116021303 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6TFXR$n }v~}*\݌m.KLJ6Ʋ18x5\t<бx!ٖBDJ.%>MN<҅e9r Y\mNeob.X+I)Ub.V@ '*.1oJNɱr9mr :HFxO MUci5f{(5±3ۑ'aȱDrk[nNR,X~8uVb Z)d@I}Gz*wٞqz/=|qr@ҽ;HC+Ơu2+-nmSTc +%B{nZ*Ɗ%ڬkr=%ڇK[hV6RB,lVRl+lZcE?ſkl> LhW?򨨽T^2?|* X-vp&$'Qbb⡒H f9AlGOb*%IwNH#YwNc&0@X<\Rv@8#<)6&2I:)$>QAwռ2M =sò1G$bYV"vAoP ,ѯ(NI7f<f_K[ܒ0#}=}+S?{t5jPV'H `1:8&-y]FUU[Kڬl^kvQgUU?iߜ˻*Y'LxsQ?ʢ |6Gw&#R2nsGr?ž1@h"`z׍ #9_ wڰ2Ad ̌TwBKVIH6bFp?j]9c$.KXX8\r}y?YY!X%wg cܳU6EA?)*X~5>yi-FՑ,HONC}ʠֆ$9Hm eFIS 2ߝHe9Tֶ$ȯimYZ ) ,6re S >[]}jYqrmT20ULJk͔*j6{Wq?&?MR.+cXT'"XǷTwRJIScFF>W?gfR+jƇKn-UhN WxI?/WnKKHdW_½jU;C)5 IEXz+xI7ss4w*^? YKS%WpQ5|.ПZimO`Mjix駺%u\SXgL%q?ҳt ŝGI#TScEj\[_0=}* | :t߾%Yr%0p4B,q7CFi+ėIubFdO5hq;T =3]MƳ&nhȤ;S?y5!r}2"\#l==j[qG0R*?xҶSII?phatch-0.2.7/data/blender/preview/object/lcd.jpg0000644000000000000000000000573411346363116021461 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYGJ,;Rl13,?`?TRbkȏ7򩔣ě(Tεb[lbiδ,'eZ7Џe*d7WFG_T'urN4=f VO'Տe 2()Q]Μ( =1Kf h^\lmj]+6{Rl[)6{UX{U]UJL2#Z{*(,QhS㽒WsR"7eۚ]Ꮖby71p@ak %!)%>lJj? Ihж:ezc^*LY~E2iQw=]miLH@i%llg9] S]G\0l>u [^iyMN;psv} o=!.evcNqWo7こlYZwosW"lp# KvJM<%>Sȟyv7`W|bP5pX} {^Mˍ@xǶo+fXH4upOUbIJG7[g.jڗeUr6Ulʾ]S5TƇ~OOeEꈾj7־ (|,XFHg{cc3gkᅜsJGQG뺺?M E%fۊGrj:$FY-\b1p;$B"hԠc~QL|IGUZKs;) `sgtԚz䌘xnDd>W V|YxI` Lw$ax18Ҧȍ<%$=j;%-$DWAey}em$0G\A.6‘xuϭyofQI"593^%Ӆ[E 2#Q?N k%3S!k:-3Y."ti /@kg} ~y-UKgPrj܃Iz~cbW*w:{z-|Drki.RՇ4 lcY{eqx}}y+NiheDm h#c֢}A~hHb?e,M?i>!kͩ(ZÎqUiΪdA*zcT䈴?Exţ:x_q}{k^k>1Ϳ/je6֢j:叉/b!!ES֧(0Z s/S^jT{_*waqF)أ!CqJ!Yȁ؅$uEV5t{hvCUݭ%~'r3U|WHfmn9PVvCO+l^kfl) }M?U>.0 ]CnëO>䎞̦>fc8T6@ pOfs1@#! 5`zњ#h4њϽflf3[i~S# &5rpE>Q[*}M<{V*~6BRa\'ތ8Tlѕjk6F#ޕ3ʆ\gk6;fh?ÏWlbS`AKvh34fphatch-0.2.7/data/blender/preview/object/sphere.jpg0000644000000000000000000000454311346363116022202 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(EmlWdkyeRai@#PK0`qg*Q#;e)4@spHSxeW cwXO`%#KleibnWKK6ѶlErjMke&jrjMke(\ J6b3%Kf`u٠hgSqyB1wݑLuWWO=[[?w,ng,h#Z1xNbF0$@b@=3Mq7G$18xoxlk̳PcPK`d9rIjFzןRKHxfoG8򬋣4SèQ|A rŭIae$烏+44{ZN1) q֮t]m^۞ry`ӵzLSog%ZZs"=*6WcmԻ=j]X.YFʳڍV3W˧G EG}MXV4Q-H 9勗b:7MmLhBR$`ɻ1A tIdC(' SMA I~=kmvN,}}k#yMɞVH0\0#I9?^MdYzH2 3V/m;<.6>O-vu=#TliY׻̬F'ջ4qj$ OW va$]veU)POl~a"1"4wyz?hZGmEp8` ;˧ieՍ.?vMvR;=VMSmGI5/Xج|Qw:#>" Y+CZ!⹙e$:xE9[kZ.RIr[J/o_^ml*wb]BWRUȶQҫ!\_%kkZˌ8wq\E='tÊKKf^Pv;o+U|spzR ') )7Ay |24v5QFz$`Ovd\T6Tbr9s9uzX\Of5*-ʹm^!Rm))r6(;p/]BbZMMšk0' y,F=jW՝kt=dh*lSE#GPGmN0w7}ɕՆT5[NS+nw!4њvњfh %&i5vi3M@H#4rE1ޥ Hh&iXbJ4Eci QKEkbD4)T3phatch-0.2.7/data/blender/preview/rotation/0000755000000000000000000000000011346363116020575 5ustar rootroot00000000000000phatch-0.2.7/data/blender/preview/rotation/book/0000755000000000000000000000000011346363116021527 5ustar rootroot00000000000000phatch-0.2.7/data/blender/preview/rotation/book/hori_-30_vert_0.jpg0000644000000000000000000000420611346363116025032 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Eml(\cˢr]ce(\mOe mmXK 卞ԛ=MV"mԛ*6Q`We*FE]l[=E]l[=Eml; R;(EmԻ=j]X.YFʳڍV3Wˣ[=E_/ڏ/ڭlg+ʾ__ZFj,*~y~kg= |j([ 7}Cy[kbzDZ ><4j݃.)qG=N$ڇ`?I5/XجQjÒ=I5/Xؤod$cQjÒ=_HO_-Sz~++b5NƠOC zwYʥ($Z&Wj dCq܅?bJ<7 {%Q,q_ZܧFkty(z֑ ̥е~me`? 18,ղ5J eUm}ocqX<#?"?&7G݌B?=ZF]m'Fk5ǵxo^BgIG $pJ9WBjbO:IJ (VqҊ8 K}Hu$\bgΊѢhLb)Fd-Ͽ_J⩙tӥjD68fւhӇJ(4fbE&h;4SRQEu`3M;4f3@phatch-0.2.7/data/blender/preview/rotation/book/hori_-30_vert_30.jpg0000644000000000000000000000424511346363116025120 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?1EXb)b((Q` Q(QJQE\Rъ\UXbJ)أXN6v(SF( LQ`QVqKv)@,+. ?b(\f]R(RbS6Ԙr6Ԙ9@m1I\)1Rb6  P)V".)RQ ThOC1F*Mb( &*L{Qj9@66XJE4PTRRDžN [(`Z] Zv@W"vM(\b$@m#l-Zǚ2?TM v&W83cxf˩_JJ,z9]b5Z鍍BpN9$v'6~sXl~Ќs5擜/\~ߥuӔjG/B%fGB*]jI ZB1ZiZQRM^[$HSYYepƋv':i|4toI$vWI$6Χ4VE)f[6h" ]3G@: U+HH0'rp=p56kOnLIwry+?@>ijW.ǴFWh۫cEaO:EredzEDž-vzdAdk(;`}ޕڮc:cqklgjeVi 9J o .[/ъ~&JOj391ϔǝ${W!5"]Rb"Dx""EKC=E4T \P:PzV2Nmkzƿkܩ^I {?[ GO_G<Q#o>'ȪZAr%-] 2|ѓzW[xZ9itK2t.A'޺Uedx%L78vUbOHgH~.uٴAt~1$gUP$kc9+/N4WjZq1xk]R/dVuv>W]$dmdpG{q^22)TSXT &xGGyhĦ`A5"Te}}|-tuyN=˄ i s^5㯎vZm|<H8I"ߌKau_r_M="_ƃQ&+YgUյ;ST}H^IcEVJQ@—4Qp JSM4NZhNZŧpBP EU .)h CKE6( CHiOZCRphatch-0.2.7/data/blender/preview/rotation/book/hori_-60_vert_0.jpg0000644000000000000000000000415111346363116025034 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Eml(\cˢr]ce(\mOe mmXK 卞ԛ=MV"mԛ*6Q`We*FE]l[=E]l[=Eml; R;(EmԻ=j]X.YFʳڍV3Wˣ[=E_/ڏ/ڭlg+ʾ__ZFj,*~y~kg= |j(y;\kj{ykP }"_Q9wH5"?HO_Q9wH5@rd֗MK+#b5N$?RMvXأsTlMvK ><5LQSrG =ҏ_c-ưF(9#}UEoQ=Nv)p)qF+uRZj&() c={K{n#a2:X}J\WJ.[#@7È^%!^(w9] [O!I8\1<](:K ?J])EC/i2#y"qZ [&LBì;@+8i/ϟvѶGz3g..}q~džFmaXgRF2pH#vW=?:;%ӑR_cNLds+ڷ_~.ĪG24{ ~8 *`k7{twĚ-@[:5fcWSx*;Pƾp?2xއ2jVrvel» %sx֌}VyRѡURpsKRdYKsц4UO=׊,m帚SoahLBIgKW]E2Oi fvaMEP',ņ '7QkfaD}VUA 1հlbMz:9ȶQ<.-5'#;@U+u8!8jk乺I4,OnׯF)/trl~h74f$~h63LϽ\3Fh4L掽yRL  \sK`:4\њfiivisL.hphatch-0.2.7/data/blender/preview/rotation/book/hori_-60_vert_30.jpg0000644000000000000000000000423011346363116025115 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? b+(Q` Q(` Q)qELQ\Q,bQE,1E▗b%;)أXN6v(SF( IEJ)qF(K¸6ԘB6Ѷ!hRbQ[hRrM.)1Kdx4b&)rF)P)@HBb! .)h 1K9@mqF)M66R!&*bҴB8 P)U@J(J 7b\z~]w,qI<t-&YUKY2#y5д K'yUF|˗SXb++*g^^Xţ7ɻP⾊Ib-®ߦƬ{kX>q+|c}*?+ xi+ʍ(""bҵd1w!(*TBӶF*D3|5TWǿ=I[bAcK=[~oY;O,w3ccX˥ah?B>wZ7?z+|#w=6k\QɊ)iHJB)h5,Mi¥ Zݕ >PM>{Ke8(j@>b^_i Vd2A'w9\dž-,,e]:qrf|Ik|%?^EdHn6KE`?#r}?A;Ci[hgi/ I7.Ϝ|[VZPsVKS|fs^4\nhe;p}O=8VΑM>d:p3l_XYXP[vJS#\vK^ӡɋ{bg(pJs*5Jz7oں\\6pt*}GeW[h -pdFqO?7|SZ.`:#tyrPu0ZcV8뻫ﯧ{Y~rIj(| )@;EJ 4Z1.iQp:?ľ6;5zq^.,"~u[*vA<WV)Ihh0G7/5)&29xدҍ%J;ZHuQLAEPphatch-0.2.7/data/blender/preview/rotation/book/hori_-60_vert_60.jpg0000644000000000000000000000433411346363116025125 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? P)@^Fw.)أ!1F)أqF)1F)أ1F)ǵILRF)MqS Z!((.=iqN7b]1F)hEbIJG1O#ڌRNjsF=~eЏ~؟Xe֥Aep>7^M&t(y3a@+[Fv\#!׾kmAZR$Ju5ɕ!Xe8e#B+uqG5ʠ+mfsLerjjK g8v3+fYYcG7FAzԪLPTrVVı%q GcڽʁW8s/ttMD(irFq}svz>KW|t'*͖n,2w7ʪ:'=$^3-TPZ$9,w7=7ڽ{>ʵs+ 6&||GW9cJ9(APMzf"c }4Ա zjԂ \P)kAѮ^-6mgI),Qzidi:}k `sV94xzMgKq 6"q뻥vwѯ{*;[HA) ڼ\uW*Z/]ixL>}9YNQ8j_ hJMu+\JaD͍>Uү4*XX! qurA8ERNGp'2S͍Or[UDm w`oŏz¢8dqnQE1!4H*1NC$ (5wk~h<;i~%E Io#(8bqWfT Wmjfāc&`DH*c#yzk{ǥ]$^MyJBPVFIK2kK$MC=g-ǰG;jЍql7tW_(/sUzO-Ip |w귚yS,' TgU@Qz=Fk/ h\Y[{yq_6&A Sּ~Ty!f%vQJ+i)h!RJC+ p Q\H N1 Zm(-6RRBaNӪQ@phatch-0.2.7/data/blender/preview/rotation/book/hori_0_vert_0.jpg0000644000000000000000000000400311346363116024665 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Eml(\cˢr]ce(\mOe mmXK 卞ԛ=MV"mԛ*6Q`We*FE]l[=E]l[=Eml; R;(EmԻ=j]X.YFʳڍV3Wˣ[=E_/ڏ/ڭlg+ʾ__ZFj,*~y~kg= |j<4O+obbQSrG ><4O+obbQSrG ><4O+obQSrG ><4O+obQSrG ><4O<51G=N$?G$?Xs=bm< ut*eeK)*MRgOzW>/۩,Zhm>x2dhdd̓:z^&ݍ˂GᲹ}{F6שÍ Qd}_Qu+KI5YI! SƒQMqF+- h7r[Ī?Χ_14XԑTdF߆WZ{\^}4KgFy5}QW8/j|׺P̰HFqPT[ױcڌRȢy )1N@visMװ|#扠ooDڍ)%1ᕒCK?.y;s eZXT.|j+=xpӁqњ?>f3@3Fi\v?phatch-0.2.7/data/blender/preview/rotation/book/hori_0_vert_30.jpg0000644000000000000000000000373711346363116024765 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? b+(Q` Q(` Q(QE1F(bQE+bQEqF)qKRS E.)h 1EmQ,hbQ`E.=)1N`b7b\S m?&(G&(>QmI1Kd[h1F( bT"J8 pZDC1K-(J\mj`m mmKS,Q}r)1RmmIybGB)RINQ$hZxJp+E 5OyRLpUHK33!Z>-9m-d>jR8I -"l-8 Tx EoY$TKfۙ}rO{xľ@좈u?Z>HH-]WX?_x1ISᗋ7GaƹwI5'(V)dWVSу) INvL,)T"FE4i-0(HE8t$U=v¾$D1SGھ{dK7_ZoIlI/`:t3^cIA.oᷚ[o;~fg7p(P_xKe3r1{k)\I$Xy C # d zD` ÷d3czcڳ5:ki vF[vݹ?\W7/r_QC-G֬jK<3NZ2Shv6w@dz:'ͫ|'$c%'kqjzlq,Hy`NvA+#[izݺ QYYORrG^HGo('~=V59(DЅX$p䪥qTM6Iriq8GB*B)T8%8 Z #n$vOdьր}Guyv G8B@cP2F8Lg^[jR[ YqФ;Sonkᭉ؟_ʼ~M=>חKrOg1<;4]b[>M4+|7 :k㍉؟_ʏ߇>ڇJc`X>P2ȃ.ۿARiW@--8vJ?r=zq_Prd_ٟ?3<#UeCLsΡ%V4, ::?#_noΐך?? oSgMirсAA5E88WČi))8KUa\(`RS() )E%(ECM4Hi0?phatch-0.2.7/data/blender/preview/rotation/book/hori_0_vert_60.jpg0000644000000000000000000000373411346363116024765 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?)@Nw\SKSF)CqF)1F)XbSF( &)dRRIVN(U$!1F)SQ?oMW(bThEf)1OF QEf(;R &)ؤ"(+D4-8 pj"1Rmm_(\bE&)rQv)1Sa"IVRS "u!-(([$!TS+TUKmg8`xP2x^)T,|?mfJ1ݍ&0H[ž&5 χuh\gn?ɬH2.At޿"oM&g"?֓{;&+3QC)1mymqgu-A_tRl[&ՔGZ~t!1I7cӯ궺_ٖm͒$QB2{&gbE׮MyݎIeNd <B)r281k=FPIfH0X~Ć,vgHϧ^vmkk9^k 9"G-唓cԂ^a !qnTqڸOVk]Ek3*:nu`[Ț{;hE!^GHiSHhd@HH)Hc?N|gs[\!1x9\"{ZGFESׂA^K8xz½FZkyt!ظW} džG* cuq ʬ:)*:ZA${|Fr=J,K2E~_#ҬO |k 8sZϊ( h_yv/R 2޹_3OiOf;MB(ex89ǭ%nc(]%? [ׇbYZ /nOƞʃ `ĒgRU|) Kr [k?h6;{}ĭ,Y<jI">4p :.N2y^qBj~do4=FUJ' ȩ*n6<f"E{dSHY1)8V)hQLAEP (QE:ACE1JiHc-%(QEU(-bR@ P0%\%Jq3phatch-0.2.7/data/blender/preview/rotation/book/hori_30_vert_0.jpg0000644000000000000000000000415211346363116024755 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Eml(\cˢr]ce(\mOe mmXK 卞ԛ=MV"mԛ*6Q`We*FE]l[=E]l[=Eml; R;(EmԻ=j]X.YFʳڍV3Wˣ[=E_/ڏ/ڭlg+ʾ__ZFj,*~y~kg= |j(y;\kj{ykP }"_Q9w${j?G$ZVN(;${z92F}kK &1OqrG &j݃.(;${_j݃O+obbQS{86'?畷ƜkbiS{8K\WO(fj{T=:ãiĀDŽzȒ'e+to1[FKWw 0Afzzo;bP'p7w'4)ytlhD2φ-- j9~fj~ 7T?m-Y}vTGmzV}wl2vܾk_mur6G y kAtfᾶp^钕ct# غbKގ"aVR{I.1IZzivsiwVI-=3YI=PSDfk~#xFȵ6nbxAs/C{95CMUѾ4vjMfU?ʧ?V5[cnNuWwD#c5z4ILf3@4i )phatch-0.2.7/data/blender/preview/rotation/book/hori_30_vert_30.jpg0000644000000000000000000000414411346363116025041 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? b+(S(Q` Q(QE1F(bQE+bQ`E.(]J)qE(ǵ-SF( 1EmLQ`\Q,qF)أQ¸RK|r<6ԛhO.GmIrmvm.GbP &=LQ\rrL2 qϥz~E-eeTUEi|L🉼bf{+8ߑ=c"Qu}pA<WYKn)i'O3 ڡD2t# ʶ1؎E@iǼ"#$=:Ր֤ " `{;956^Gu&*y6VS\Cm4g8ܹ ZWEfݗ8+"Hu&Prs"uD5ͣվ~Og!)ïk>xճeooD[ Sߊ6~F;H{y͖R>\yev23zqϵtR.SW>ck{-"xfIVFzQZ(γ H'$`}Z̯a]4m8I.b\QQKJ,@#='x=OEgH\ɝ;H9qTTT}^6i /|MjR6{\zGMoFig-ʴ-Xgg3wcqcPmKLMKúņ9Oe&Ct}y0)=UՌL|QEr O<}3W|lt|;owL7?n`ׯ tۻw?MMZg ?.T=Nf&V2Ȧ½QO4P˔QEuQE!=)(((@oG-_i767#2 =:cUw~3Z ^qI+D0|ˌ}Nx*v)*#N0VM 46Rahhphatch-0.2.7/data/blender/preview/rotation/book/hori_30_vert_60.jpg0000644000000000000000000000433111346363116025042 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?bXqKv)qNj\SKvQ|3b1JGj1OG1O&)Xb&)1JøR+Tq8 PJ"\TiB,QmXJV.P#&*B)1S`#IVRbIV@)}iRZ! pj" P)V!r=jl iEr")T)T8a*B)T41RS "u!6|RJ(B x P*N(|)5j\yX& @>qSi[)wO-5{* 'eY3`35kZ SmʹpoXyj!]8&6'cƸi)Xwu<~ks~."?uFjwF 81Ӎ%K@4iƐԴ1Si*Z1JtHSE*f NXSo=m4dĒ$ļH454}GͭB8-a?!= ?^w~xQ,0U)wwFC)1l?gI'ں}fIկ-هPx^&3eo1|4M5Y# rp\hXt%I=jZmhd 7ױ#ZMhI%ov2+Q{Mԭ̂-3hĬXccX,D?wO1 V#;YrdH"[0xʴUw3}_5 eam{8#"gg2#* d{S\}GKԵ3{mKڟH'N}kХMʋJIN5̆CN4چZ\Q]v"b)<_ܴcoN3xB"SmHqu"Y?,HrW A +uٕ}=',Y]q޳_h\E#r-O |alJX%.-Gå{ǁ|Aa ˢ[jO-EqN8&zYw:YIZFApZ?m oj:Av-V8qҽZ+6FcɟOν"r>WS#^[^D`<9]5Y&m?zUMBk#2m< Gz:y͜!(UOrFuZH6?$Խab 6?bbQS{RWgȶѶ~ mkx &bMWH-P-ze''pn=z=!y5or ?A"q)l|۲~V6iK&fq`x~-5 K谡ʉ`p[5ɚ,<&# Ѳ ʽ4`ͱbeF?kּ,/+nT1%xy=Iڷ./T/.9%dHWIMqֺݴi٣48 1N⒧ Fi53M&hō݅^X]Mksܖ*#<WK4 /n!!!,vHMx!XVªRh =~&/ d qȥ`X3ϡ_1zf ʷ:yrX\b$ !4lA#rpy⽻@ _K76ej[ Ed)p$=x#9tt·rx.T{Y J3z!+ϊMcⶃit0?f->\nb;mxIٰv8*8z%ʬVqљ)3]c"|VxʹA.$dה@-Gehbyy>+kYC>vb"4}|tSVNEXEo]ya_=__5A9YY[5)8kaL"=)fha)M i!PQ] mRRa⹼#x7ere_y>,}h8KtS@E!գnrgp<Gk*~4/{Lɒm-4۝`ðcsGR=NF7??^{If|IQ;zG]hžTd&g AZ(f 'v3j'%c4Y qOLg)"Te>dL;C;w58\:,s߀=*z׵n-5{i7z=ٮ`*A;Vu} shZƒ2[L2Y8{vC#רu/ ߈i,c[>IG\g~\W*=7~iǭ!HIN5,e( ›Ji(cARZ=WVSqXt5>(7[ۤ FvJ de܃V/4ѝXbUu|19=`ſǍ ;- R ʨ@'H,;fmf1M͜&SnU9 [J8P I^P~ubdZ(Y%bd䎪=XhH6L쁌s smnf-nY$S۱aLwG/3vm#bHQޫ^Yڶqc-Lɓς2=JO7I{E\G<9.s+9-tC=8^W:/\q2U ݎPj6K|G&(GG(I4"!!T422)1O!-obj\&1K~6 .)BBNi$SwY42")TSHih Z#1KuXTֶwQA-ħv>rkռž#;=H̿}:*$ 8QR)j-y*)i4Vy$`2ǠrOwzG¯][:-gr(k??jm/ú7g}OGq)nHr?v#-W}֟DDd'.\:a&iyU&yO|7'qn͜ɾS7XOKus겂lr/Xd9:>w7Y]K@>Ǩ5ӄXSqף =)zSJfCM4Ӎ%f›OP%᷊<xAF:I`[ 71޾bVz_ _e'<3DX ,Zڄ#>'yF@Y7vQHOzKm 9'4ТHc0ǯ8ƹj&0?ϧOW2GnffjXǙ%f9q=+|gl=!\{diY]eXWDK, 995TM'r2:SMv)6k/_h)z?\y28u4!HiM%CQ]aHii  |/ n52G "pr=)XT)+0>Hop'%\ݑק8 Xs%@p9ٷĦI}_9&?@=Uqk5;h6,w d)%['p>־sIѨFJqgG+܇xMjp֭LKdWY+zOb/Hf`?cjDe`EZvBz)iiZE*i_&8akW׮tmCi c?u~G#}#snʑ m{t2ݩsVZQo5II71B'!?vkIO2ZxR^FA+S^7]^;OLu%?t6Ac''sZstק Qsۻzө6 =)e)(u܋ E:NE%:L4Mj1ҘiҚzVlSIY4`phatch-0.2.7/data/blender/preview/rotation/box/0000755000000000000000000000000011346363116021365 5ustar rootroot00000000000000phatch-0.2.7/data/blender/preview/rotation/box/hori_-30_vert_0.jpg0000644000000000000000000000540311346363116024670 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Eml(\cˢr]ce(\mOe mmXK 卞ԛ=MV"mԛ*6Q`We&ќdgUۉ|N9Rmv:vMsy'|qV*rJG]mv~f"lSxAdsdU[zltv$Wb:WL-t(^u= FKYȍKgN1 Z4q\KW/;N 1F:;ER1R;(Z؋{R=vQ`ge*j6{UX_./ڭlg F׶ +}okזx"K@0Uy5mһP- DctqnnaE#7e^W=,:nV˰X, FܤRWRn&;`.7(SKW'#&t #ßU;8G[4iQA ķ":)ylzn~gGu [P%8Cg,@+`j[w2;5 oM( zc "俶P%rD;Diޣ^)FmA35F>(.#e>f kzN;kK-b{;H"Fˑb&퉆GЂaƓQNWctI =O(ҧpq-DgH|/Enɰ`V^W tx'9H'-J7Ò^mu)T}κcimvI9~= iZZHQSPٞ3WA4:D,ӵV۞TW:$tJ9$C%X4IGax Ve.FF9={cF[lI wþg޽:m6xJi908FRR^v+sSr^҄}GnVJZ~z|b8c8tY\nGg+e#g]`2`#8GV8CJZGU+ 3=%;UYenQOƬnRHU\fQb'Lxf#ek>i#j>;ϼ_)+5id6$LkN_J~5#ȤJ SsFiX,74SsKWaE%'V׊t-;my*B E>cUrG^H01rTSi{Eď1 _^72*?uF"1mL\[ך:P]Fe'ȶӭoݴ??dė;ҠnТG(<w R]ys]\N=fư@NNAZ,Me^ʵ1Kb*)V u'IE+u6)3FiaҵE -k$օmx֡Rn={>ڮioyUi|#j &ւ 3B@@4sSt[Gnc4 hRai9.|gy;*= q|xg_Б$X2}7) cYŞh<B9y|7TқA[x=#,( ~^gfkxRb#i)R—N RUaǍ^W}F8cɵb~d F˫ A_|ueLֽ:N5 )--`o4쪳;:W<6_;HOKIE &Jݻ'12UBLN ?A[X`X疗\x*ާka3n oseA\{[OGqE!\%œ#CS aHND6NxHj' Xno@DU^6c2-v<ŚG1-Uڲl⹒( K136po̟J?viJJdX={iqE KH`Nzai+%- 8k˭j2ED=;I ^UN^{)?}8>p!s~5Ro4H~Z]eZ\LS !RR.)qE;QP)qUa +g*Q5)ubrXaG$a~.Rmൕ!6FʻmW'l-%$5{POH ^ 63jjs vB18)Œawb&))Q`HE?`E%>V()h@P)j1KE;(b)1K1J&))ԔXbRSphatch-0.2.7/data/blender/preview/rotation/box/hori_-30_vert_60.jpg0000644000000000000000000000420411346363116024754 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Rסb-VR❄&(:v QEqIO &)RTch:-SREU ZvQKE01N%+B)RR "E4 @)@ -SdWcᏆ("[juclBP >%v3< oxg! i|g8}O_^/~Њ\\Du[ιQO1S]Rz)}+"o=%l U]ބ}ya$AF5JHźZ**:@`H= 9FnGE-W]E%:(R`4y$ƌT?@+<#_\j'_RPV:ޔJܬ9+X뎦%EʷZtbg?@+IՅڕ4te&l"6_.%#Gw4+Enwʳ6?(#>^&$Y Xd#=TGrVhR5-?p"128h+h?K6h1C}'Z(y_->O|{=jJ)"W5 "|G^28#j'QLⷴEuo)WUQu4Tz5%-Xm%8JRJRJU>"WNs&MS<,ǕG}\1&up*ȌAVS+<-ѭMQ-r\q~&Si =M;^ܓRqfzPuqάUv9F;^.KexG"ڊvg s@U0j H" b=ȇ;~g即9wvF\iVH"$DWW, (  @Es:vW"{smq2N>i TmЌλ-'A{ܬ&:2wc m ]kӅ=PskhRR2#tQgs#Epd`nq+2LR0̧u( 6וʽ>xYnT]3os$ΎϽq'#YX>zq \Zdɞ+1;0$ ÏZ95'r2MH%p1^k'}qmN/pmƱz@?R_KE~><*~_/ڏ.lgkc;vR;=@\?&?o|j_އ;s=s=P%{ykP }"_Q99##3?X$rXjLU~1NM+ZQJ$CpV fXUr}|ۻoҼY#ck꫍'LI--"0lj`$5)s]KPկQI.lF mܞ3[ Iñ%cQoioFnJs4(?5whLoi-_]~t{&esxG-r%R3,jѷvӌz =O@Yd@pſF r=j *[?I9ެ赮{Z#@WxU²ڧA/#NQRB1F)risL14?5_#qR#$^-Jo~O[VaFA+ep~ ꮮ/.[|Hڹir;G4%Nhst_?A\=̷s5ēJd3{s9Ͻ#rē]1-̻'T9HA?Ң͎6.isIGX,T.iȡf4\)Ԇ'jg#=tRrO+Xܚd|OZ_T,#+znhsZGisLCKe.iphatch-0.2.7/data/blender/preview/rotation/box/hori_-60_vert_30.jpg0000644000000000000000000000412311346363116024754 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?b 1F(bQE,1EXb((Q` Q(.(- 1K\Q`\Q,QK1N%Xbn(.(1F)h-.)iqW`1N.)CqF=X.3Ԫp$@;Q+>m1d8EX8 }c˸j*O95JF#}wW{JOd*<-9+T}y~'guޯa4LkA Y I=+ KM-BQXҶB¹'7ľּ7s `rO.s++韴^&i$@4&ڥ`9<ך⺠5gaRb6u8 Z)@$1F)i@`R`p2p+>|3h V 7 kwW=}ǸڼQNCZpH̳C#"a#\ؙ6HH TEQaUF@; D~u5"LWݜK%“aǾ+߬U CJ;i vi"B9ָdZӂw3$2EPvu$OҪ, iqqO#y2b’ppxZ2\A5(LUYٶ`gMp!Ⱦ\:Urw`*:"՝3q4w:xiPC 9b7.{W#o53fe(#jz׸>[RbČbR N)KE(*j[\Z2XF 澂1a>wV&IJH)2򢒪V Yx |1z~5 N.--eU1 wxhWbnf$kx[kZMbK47b刕Yzu6qM#GH4p+\$y$}hsB-F;X9b{/F? b9B>r9?_K{ekj\۸G*SR!AOA^c4r+'&kS,Iw]e1Uڬp p{8_@h> YxνK$;Ul}y.OD%mN[VI)G@>b=ǥy-IsG'3{N#$_G..dF}d*fQyF6Wi1v :`x*o RKx.{dֱRg$8MBKSQᧀ2^F ^:/a\h\\M"I$URŒrM:xu$%JQWglVvQcrj]cg.,,eYFjܫUlrjEyGuZ^E ܲUeN@l3^G{ *%y 0$d1\K #Bn.̶Pa&E^9 |t"XYv+L\G.flu,z^ў Ht\]\ON*WFƑn-mQ\>bõO$.I094J}&v0L!QJpXZҼ@vv%{eF!0sxI4v|.WI{#aj$I8ͩ$w6s\FA^b. ,ʪ! dF:φ|Cg[\&21e$q qv1W+BoGutr(*vp^H~#`LӥYPe _j˧i',B5 922\u6& ;W4s4+($ IX1]85^69*N|j<ڍN>U{} .Kk^ԁ{97vjsƳs "y[L-DknIS7ZI!1]% Աy 8##50X-1Jo1бHe0X 53(J-#y['hy['kb?iSy['hy['kb~=b4d--'4sOG~or'0-Jmb`G:WIv$cpgz_ن-Oo;g6 j*wuSդgI壆@W8rWĂjb8$Ư(NnXXr_i3HO\T2L٫tfP^*DžE  z2z}OOiKAnyWwx^zc;餓8*;*l>ŤGKoάyњp⒛3J.ES{{_y66LzKϮ?@ۜj2?yҋ-^h~%k|i]t+[#`I[FEgazώ]tğ]rgR#_So:-4$񯈯5mR h. Ar\Gʁ}󚡩? QRM!;ا3M;4`$4\њJ(I38e<ͲpO8~9Ԥ% Uc(?WO(X!jd_M4Ȟ.Ph>P\BℵwDFJXZ)3IHphatch-0.2.7/data/blender/preview/rotation/box/hori_0_vert_30.jpg0000644000000000000000000000457611346363116024625 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?b 1F(bQE,1EXb((Q`b\QZ*LQZ( 1K1ELRQ`\Q,qF)أXSI,bR,RUX( 1^OޟM.Zm{C'is/.Rס¢GɿUc`.(}2~#d]4$OɿoIstS0y?2o.rRbo  tFXЭb˻C+? _'<8֌cʱF)mma %?0RXW\R̾,pβ޼!w&qm9/duALc;$`{dW 3h쯂PE%W ǵ{.;t[&hUEd); n$*N3ql+3LYĉG"$Ԛ-6bImH2{~gM u|am#q$.fox5]dfdۼpFAj}{3]BI&A7/ yeI1"\_-E:Jb d,,@H$Ki=[hy\a#v\=+xԜ4g j˞:zklCLv rwV?uآ(ۤ) >35kYi7p\*%ظY,0!ɓr  |hm"21HdU؅z|M]8tٳ1F)ԄWcmRJ;b&(;b~]ލ?]u?€y-c?= jwRf!ԯeL|qCHvfsԅmvo:deERRK`3)^?FLv-2 :ZqpFQVmV.iyqV#UH;A|d1eყz^E$yEß6_0b8moRMuyMbnB sןށصi&c2Ƌnq3ϥs{:Y"H9_ⵋaṺa;WT])3grGZZlq%#͑dq}yY/,,$dZ%' ~ffyu (l/? c#=}I)ݣ8r6LoS[viD#BZXr# f oPG5|\דR:"dXyde._ha2{"n[T 432lA*`p>Vh+OSR^4)h".)qK\Sъv 4|Wc PwBOg}(vb}䓟q_x.='6+*k} ̻PvFF3_HOC’+#k0SBD ])JIoJ:y.Ly@$8Es •>!B9DY*,8`5gDf *.qϵcOxk(/9Ǩ씽cbk9;3]7mLP9?bMZPv+¼c{R.caШOtiMgVqlr(R]8))ԄTVQ,qF)أqF)h`F)Ԇi}!m%- 4Ju!Rъ\WE%Q`Z( IR(`E-%!E%:Ԁ)iCIKAphatch-0.2.7/data/blender/preview/rotation/box/hori_0_vert_60.jpg0000644000000000000000000000402611346363116024616 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?\Q^RN&(.)qE%QvSF( ?7QJX)qN¸)qKKv1E.)iCqKZ1N&(.(1IN&)S%M@)iqF).)qN%fpW|~x_Y"{=HT [T?9f(E  3"JCJh\Rъvpq֪}?Z|62[飳&Ԙ{M.=2g*]9b2O^my o*x6Gx:#NOa:aPtSq G)fzx#ܧFkJc%Bڌ$67`bPN19QDb@@"01̕|G^! 'qvNd թ?# ׊ JULdlpWas=f>=)(S^@:R 1KKvT#'VWQ O$ȲőP?7l׷cĶ7&M*r]YӶ m̧GE* ={|{i޹['.r.2I0_M2!LJN=@^?+Ai+o"Mլf,F X9$8 #ĺlKnS,B̸ c[+5q4`+f$đ?IGSaAtW_LQcaT9$v]7{ߊF,EzH_/s:m1~v8uaRC!& lq6~5υg\^K4ŚR9sMK]F;2̧ktE^GE/zFn(tx%6U;#$94M8Broq) 8i Hih4%.)h 1K(%: JJZ*@m4uCKA 4 ZHA(;R⒋@6Hi14mCi,HjXphatch-0.2.7/data/blender/preview/rotation/box/hori_30_vert_0.jpg0000644000000000000000000000546311346363116024621 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Eml(\cˢr]ce(\mOe mmXK 卞ԛ=MV"mԛ*6Q`We+[C{]2 #Kد&v3_YO̱GC=GXUS7cZtSGezygoD1}OjxH&kw|XhaﹳJ[@p>Q!&s֜Һ TmZ|23].;z >OYʷAϯ^rdI~ѐOZ(#R|4r]ge++lV6{Rr6Ulʾ]_ZFj,,YwcW8'q^Iu;۔\9V9,JW juU搲rGN}+wws*8m*KqD mcTĞMxS/Quo%ĩhe#4F3WP] aMIYrU~SdxLX紸U4i,>QOT^ILֶ Y7.OBPO@xϛ)4ꕹ.jq궒^ tđ'k`qtbKs$4?O-1\,tnw(Ly9=:*}Hi^8pr"dͰ>@,}(VI*ou Kkb >lcߚN?W뷶]PIac\o1jrxa^W+rw7j<ڍMm2e"f'W7wO5烽3%R;Ip ytx<涡Ư,?'VQs(z~ҧsDZ MMRn`bQ*wgSF+NBRO28tAyUvܞ򯦯/.gIBHI'~8FqW ?yP4UV\&d=uP{NC~u?Q⠎XI}*r-˙cEVUm8$<ΟkA%<*[r5p?6 UVLu5mm#pҳ4Y|OF#r5OҽA?\c6_?@y5½MZQM`-6flfBiXegޙ3H Inhn74śwC+Q5ҬMg"|ȿ׊BO= !}8Z/M/UُHe=?JV lH=5j zU1BZcFi5Wњfh ?phatch-0.2.7/data/blender/preview/rotation/box/hori_30_vert_30.jpg0000644000000000000000000000472311346363116024702 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?1EXb((Q` Q(QE1IZ( 1KE.(-V1F)h1F)qF( 1K1ELQ\Q,bRQ`bQ`b,N6Q`/ x]]Fyw VⱵo xwTRo=:?뻦>!>pks|Q'U?MW{zrXt}jsiZn9*p>r֪!S];.WNkp6\k4F΁~dcOf"(b!SR❊\UؑQvklj<:XR$[ +ǵ)$dF3s~#"I8]_+ i-x09lH`:+jA Ŗq< GѣmR%A'9 ZH;H_vMdnw/BJ'<c˦4Jn#3@Is;3CjGT`D;T0~cb2x#%('9 k67BTHcs/pFߛ~իxi-XKfXmggkI)W61HO5R;UyD1D%63(<QP~jy)vψ.7r_4a4?g $h3K #~?>ݟ^#W[OkZ5E ٣1Ky$HT}* +.Xj+0(R^D%-Qv(tCqF)ؤ`}F+I;_Ok=v $l# AA=N9ZZ7)Xx^UъȬkPUUQJFd ! |ϊ^%RUf$dz Uҥ E\ژY{uAǶ6h6^Pik6YdreqNI>iHHmm8N[UR啣!p˃dڰmJt<6O-Lo-W]kHdbn^:^m|HG@nXV'&х[f6 d!J@\%uؑ1E-!`Ju!IN4мGh\iZG29:Ř"-jɭ魮Y C )ta=h0k:CiQ\° 2yk4t5d n6M=jĂzTu!hԌJCҖ`%!5,bRZCRmQIQEphatch-0.2.7/data/blender/preview/rotation/box/hori_30_vert_60.jpg0000644000000000000000000000422211346363116024677 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?F )آZZ)Q`b,QKES7bb\RK qF)أqF)أXBbRQ`bbQv(RR1EK\RⴰS6K5 v0ÕENt&>x/~.I-Ȱჲ =ϥ{\I=k{>X򟊼/ 6[qu"#ԑx`ki#J#2{xxķj0ڌįb8.oh.O-Am /=9%tHbS E-RVLRڗl!1E/,}IhDP+F[]Ul 1^g&XprTtnZ38;%.xU 9Q׊駉{I Ғghh5@EKKEtXBRS"#+Hea-xZObXK3B* 2p2coa|>lZn~kIO''kW{\MV:S#-4+ƉU 2J2䌅WkH&RFA`H1g>!h~% ok?7Y`1wr;s+S_ѬDfxs}b;2pч cSMVhꌮcatԢK%i77F|x#=펛~8nMXy7 U\s Gwhc,IPoەqWK}/MK+o_MtpVBWsJrII8+-YA,-T+{ 55xYbf c}IZSi>յHc{ uqhjH`y[rsھ`Iyefv9,O$prE!RJ@\"RbCEiM56 :]()R'V\ T{?~b:mg8Fj@[P=}.tcon9>T=/lv,y+[1)ed )P)tD]F8@}pqѿC>ajSWԬ+_ ġPN|Ĝ'udk+cvh [vk(Rp3.i\m$CIJi){bF+S6Ĥ4i -!ciRRR !4#RJ@hQE@N4L4,cOZCKHj Mju4ԱHzRJi)M% ?phatch-0.2.7/data/blender/preview/rotation/box/hori_60_vert_0.jpg0000644000000000000000000000454311346363116024622 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Eml(\cˢr]ce(\mOe mmXK 卞ԛ=MV"mԛ*6Q`We*SX_gg fOI+} lު 練^A֮-OmQEiO)W{)\tj<.ǚZZw8 n&=$.ߐc2} N_h:qHtXm+hs־E'3u&Wgҍ0s`Pn5׆{dCeYF鱕=v{UԻ(\gg=grGV{Qڋʾ_Kg5Ս^Yy~HRg> ,&[ۨrӞ?٬e;^(" C7g U$m]dHL*#l&/}&HҵK[B淒FdanL|g/ņ&ineT@#ˆ G*&*-$>`4c3 \$tqǧ;4Pj+y8vyۘnُsR^iY\/ZZ?޸O^;׫/pO/ڏ.lgzv9.UKgso OJ/o,QNW|Q} Qox'kcڏiS{8+o]е}OT-tXsp8^׸W/jC- cGX*$L7PT\iGRher|<pT1Y ,ӑ^vB?Dg,m'K>fxH^G}8[gPյ{FmbIc&r -=^-Бk,4@m(wdc8έò1>Y-cш`GQ[gz9K MJg5XkZ% Q=S?c?²1F+}̹#R?S&?o|biS{8$Fyymf uUO!GyOr׀4zqrNj*CeE٦}?4F6`x j$U9RuJqgs grGnGP}+Ofy,7P0qʷ #G^Gd_[HMʹ2aw=WX_W_ZYܢ(]ܫ 3؎kXtRѡ¬UQV ZRRfmaFZtV$-M-L&jni:#CTTsCS'Gmuset.lezIm?qxF:[EÏҸF|R3~C:#-v=K֬H}>;ԍs=O*~lsx:".- a"$N{]gUEMwԉ;gތy5E3Fj<њ@<&P#pGy Hy,sf3黺cXɫ(m1J7bb>)qOK9I(?bP+N h=ϔSIXyPsۭs^1Ҟf\)}?cϫ縷X#{*rkPAךʂ5bypf$~,Ҽ֮[Aa~F=sҼ.?A_O/j.c\%[O¾_+[u/)UjS~5 G Þ[AQ],BRS6ɦEuHJ) K CR%hx{Xuhu+ Ȝ2U>jϤ52I:N iӉ0mHoq{ |i:ޓk[gX Tg6XIslk.C)RWe8{8v%QVHz.IE!5r@J) q4Pj@ 4M%  i (RSMphatch-0.2.7/data/blender/preview/rotation/box/hori_60_vert_60.jpg0000644000000000000000000000375111346363116024710 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?b1^3bj1E1E?bQv(+Qv)1JE;R R1F)bFSF= &)+QWkgYyp8P:}MOږ6ڵʪA0 ͣRbn)⒕3SHE+RbJV(ǵ?cںHRb"f+~ ^)u=Z{14F0 ya音'KwB'N RAxf^8#Sn%A]6J[-2 ;dBW}5Rt~+v5;\ޱHVU.2i#F3#))xF* uv4o~ WE_ċp%7c^5ֽJsSћV)ԕVRSm!RRF)ؤvXJ[溋6$RΏ1q oP`k xoP:GT>yEpO eRhq|3Aqt, qWSemyesDy r6A8}++'ZMW 2yW`ϕ)O藞үH*CȬ՚3ARQ`ZB*@J}!bJZCR40`ӏJJ3>xxxzl.G )UbqSzO^fٰYHC7xpq叓 cH ?\Wз8^$H `y8~\fo T\cxha~J8}v®cgRQN|fCu["pϢ(Z0X&m2B|,rE+E4oJ8)Az(,h>3fݓ>һ+#3rI=ɮ$Mt"Ci -H)i(BMv%!5,bC^#Ğa$Iϙbyݻ wg c>f+y sDHuV uZjyX.Ws6M[Nnfxy"PN 6N@+GQ/[;Hň ҽSm|EZpZȲ+|vm`s LW ZvgDz;}j;n9C ݉EV4ɦA5r@QHj[ CR%#Ri`hi펕鐿.U =#k975 iKILH(LbQH Mi(&cIE!5,mi(4!4@QE&phatch-0.2.7/data/blender/preview/rotation/can/0000755000000000000000000000000011346363116021336 5ustar rootroot00000000000000phatch-0.2.7/data/blender/preview/rotation/can/hori_-30_vert_0.jpg0000644000000000000000000000431211346363116024637 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Emlֶr\ȂWIV\$3ZOyk9TwcIF9~ A0s3/xBFMo)FL8@8<~4*m4r)vUl,M)v)vQ`6Ս(XIڭlUb.VIle vSdV -bnli4b1]R1!u=,8^⛏.H6;^p08n=k›IE4zsJdL\~W{{1`9J mFx0|wsG,On3 +9#9FZkZ7ɣ>J}jLf9UGeu?OM_9`~L壱[e.ʳV&mԻ=j]X.YFʳڍV3Wˣ[=E_/ڪjɋ> Tƛ!_Vu>T_%O8-NWq`1aW7+men?Pk{Zsɯ oCգzc;&my{yj\ܑZђ ook2#ڼÑZEr B3:@=+oXine Gd 7?\Ҍ}ryhY|q?icX_nCsaNy8ڽ_'o?'0~Gk biS>&?4_8?5\QSrG|KƠ燎 kVn)(?S9TzB7+N  Xܝ n:VNMm26WaxPQ7RzSfsL ZQIEUuZvphatch-0.2.7/data/blender/preview/rotation/can/hori_-30_vert_30.jpg0000644000000000000000000000400011346363116024714 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? b+(`\Q,QK1EJ)qF( E.((.(1F)qF( E.( E;bQv(;R=;,ӿ+߱|&9[iAwc%nā3Z 8LQ[>#QQg\cK'.?pL Qv=;Q~=Q,SJ]qN(v ;=f[X)db<; s6K±})IZ-~%BcˀĜq\kb'q7I"m y&EzO3(an2 x O#IrmFgEF=Aj<]\Jm +F/UԒ_`ZipF#G`]G7%3eGl)$ՊR33T>qc. !p QNR;[e̐X;c'yVt"Fڗm&9FE6Ը.P( S!\@*ގ^j㴂mN˨[EtGc[mY$JB}=tIl|ٯ1 5æJzOM OrH-4uRz4Wfl`*2gׂۚHm<ϥs^_`hZ1D$Z)lp ,RRF:ߕu"f|CS,4 yZpnC(,[ŮV6#<+$+JRu 78SǯJ<1 X[ ҼvGU6,|GuM QYdm*CHQ?t)i~ucوUr rO]e-D\BpJ>sdSϑ|l,ԋ;)8\w5Ix;%9{ޣ6Ѷ6TmH P(sXS pi@)HHN; {:i#7sQ(ZNW(mOh(+" R@*J(U i9WOJjAr䚮$~[^S#yTUF ; )qE:HBb T RNH 1J+"SVS관8 R-R@P)ERB)@SJ*phatch-0.2.7/data/blender/preview/rotation/can/hori_-30_vert_60.jpg0000644000000000000000000000366311346363116024735 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?#RJz@)@RBRIR.*+.)أqI~=ǵILR\f)1Rb20)@J@ RJR@R@V pVuHB4ݖQ.+OPu=7W爁v 5g bS ǵRbʹ5&=1JAJS8U$*{+Y.⵷4I5|=[{q,pnjU% Z?b 7$,Z;T?7YZ a$-+P19f3MqpY9R3=*U=^24BA`A+zRCꐙ-iepr?Jx h9 2.O`qֺd*rֳJ^(O. bhhan* Sv:TZfc1F)rF<6rW>!j\񦩩[ p?AX@Sbǩ94_Gr91O 3m?b(Q@ H(QNi8  61%kN^ln'RvNxHk`4YpmϬ/cځpcH c5/[MV|- V y:My=5 :z|VXt0\*un(WRRT\LRNIH)+HыNShH)U hZ$8P)@H@( pi)IR@괄c u"ӅyP)SZ@( ANkD*pR։QJ(hL8 (@-(HQTphatch-0.2.7/data/blender/preview/rotation/can/hori_-60_vert_0.jpg0000644000000000000000000000423211346363116024643 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(EmlIqlym*Zzn5H4 jޡ64RHpF;}_Q\YK+c}ğoGn麓Ks[ ^W3ʽZY@}+:RS6yWSBFйmܢJ^h~FEiT"l.}>t~8tb A\$܃?[?UW\bOq=у*8IQk9mlNG =?J|jFdӁVp5isTc74fKFKmHPܩD>j`UHՐ Ib2=*PVVfCQKrٸsLjPi!J F ;4phatch-0.2.7/data/blender/preview/rotation/can/hori_-60_vert_30.jpg0000644000000000000000000000362311346363116024731 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? b+(%XbRQ`\Q,QK1EJ1K1EZ)b7b\S b{Q`1[wI}ä\O*yq̀xn[q=Kw̾=qNb χ岖2YIgW;}^پۈJGBi1OFڮQ m3boiRWa\hZ\SK|#W4[ZkXej*+1"jlzό#HHc q5&U#? L y=k4]9-fSwBM:\ޫE}%öYQVtx_Cs'r5UNec`w`1]Lz)[KRwlHgӦ!lbVYcͦcld^]hifC66U ;i6(Kw"(S P3N -WW>U*ͣҩypbzuIm{9г,ԜWxzGw5-&y1S)#TtX>X}>9jIU?OƼ[Ҥp}tfF 2_8?l+F~o`Ęy3ܽĝVYs\xZӴ8jKMeNmmȹ6U ?d3@3NTN QTͬԠRL& ơWk:5ˇ;22yn+ӵ8ZF@'~y =HFkҴۋ&IpC*] #8?4s]sddWx A[yϛ"Q)ll_z6sjqr}8&1Igz.cR'ڽF <͓;!Hqq uXe +UDIx_otBKӟuQz(=jӕIY) {~q?9 $AE8RShc9i9kD  pH)Vŧ mÿ$ױ`5i? uUe'5~D}r$֗W#>"ˡx7JeNTkMD1=a\~1^h*^Xi4QN)WZDപ)VZpj-:RhB.}|qRN7Vۿ.ܮz=GPL N LbkO}hǞ%Xn4['*Hx9^-v5GckwR"C!ʽ=Ao"@KRpuUKy5cqW% ~jI@fw翽+sJQ][P$%8UG+PIf,zJ+TwqE8 AOZ(hON)񑰢R pZ!ZpMZpB d1^vף 1Yx#jjh&!g8S歄|e Z*cU$;I_ i2kc^y2d%̌%&9U)š)åzHp-4SZ):VFKH:Ҏ#aԴxJ)JrֈCZpMi­pNZhO^å8SE: ))´Bu m-R R+F֚:ӇZp-4Sp h pJ`O^M)­ Ni8URRphatch-0.2.7/data/blender/preview/rotation/can/hori_0_vert_0.jpg0000644000000000000000000000441511346363116024503 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Eml# Iy|VL+$g*i7(^|}'ZL.~Yק+\>sDfxUѸqtTciKleibnWKK6ѶlErjMke&jrjMke(\M2ĽX |DBZ\ڌr: DݢQwi;_'o۶+բ. 5F8ey潣DZXEE<>{¾~r=T鴴1fG󢈠T@xQuV˓( =Ewk ] F-s3خSĖ_ck IG=mjrO Q2{5VOc=ʒ;}]42T6  h+lVvQܭڗgXK;(Vv{Qڪw*ty~kg=\Q3U ~Ukg2e+ʳ2z?iʒ~S^4)eߝԆ=WxVk;*ZIrcwj"I!hV5]~G+ܒgլu:k9 29 R<S,zWAιZټL; ~G\cd 8Is&p5a٫ܯ\>3TjwndlQlr*oe_/ڏ.lgib.UKgsy|kƱ1F+cokƏIpcokƧ˴t,RBOsVտL>Wv87Z:bC:6|2 *'=x"dNy)\mqb-J7bH=;*Ur[EfIrqvs+Nq/d6>l{ NsZgo!Q?]YW|ǭ뗶Zͪ$Ecr2T?IgbPE,@dmFPbQphatch-0.2.7/data/blender/preview/rotation/can/hori_0_vert_30.jpg0000644000000000000000000000411311346363116024561 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? b+(S(%XbbbX, E--SF( Ÿ|i_}Tl$FzlWOe7ųYss{وgkrSA1Y!g4RHȖ2$BiSF*qE;b)أ\SK 1K~(;m/ ǝvИp1ʰQt2yyȥ-"-Y~(EvdRCW<csmb.gU,9s+r+mubʫpyo4[.Ou\kA%>a' 7nZ?0PrWm%Kf&)_h_Z?JMb p^u6-n)w1̿7ME!T||)Kfn#dTnF>5x;[QCcԒǭp+2j6ԘDEmKLRbR⯔CqF)( ivF|p{C5j;qSn}LhלcF̉ef 3iP]y N#k<q%'a%+;F{ג駱B[\6J۾cݶka%)INJպ-"n;n23 dr2>*%hZ9{(VIQ:.|Qm+Dkry5mDz*d1EacڽQ-jLT_(IB@hi J;Q:b%8**ƚLzvE?3ռ#n<ɣRʇFѵ{[ D0>qP'<~UNGh3F:d׋(-Is;ZFfABUUQ#dZO 0PXePFH<%y%r29n'>= ,a1ɷ;sI&Q*qϚͬom$ ps33U1^#hq(IjL P(IO(\hSTN  :<ބ\R(p$FP~ns^!!LP|h_ 8R}+o tǺTP)X냧%ۺe~:ҸRkL!"@köSy0:G?REx/v7pMiJ77 GJNtħ;w1Ns{Q~(r ,x"+HEM P)@ SҁM Ogm-v!yd`rj]H#Kq_=|w񝞩8#l*A\uL:w]X.Ace.,+6{Rl[)6{UX{Rl[(E]>f@i\('ijI?⤰[ I"G ζ/uJ7Q$gvZ& pSKi%Xb&ӜqY){ڞ'ř#Ҭ.43.%7+K᥺ްݕ$og+|EiisFWo-: יęFE>v'ٽ:[YqD[#emx3ݓk;`rL[[e.ʳV=v{UԻ(\gg=grGV{Qڋʾ_jxM1KMUVvpEgWr4}C?NY^KFi[Q u{TZNn}J[8'M;)q <7,[ϒhP)'?\6&Gpb}FFyn=e)soRKMVqY &&$m^ȼcؖ}_kkkZT{WM{&Uj6{V&]*j6{P9?I5H7-K1^w=NW${:?!岏 }Ư$OVmJv6",p [U>2d8)Mϕݎ1WVGZoO(A#zpQ\xZd<#lz7n+Ԏl{5~c۫\)kvz Tx9烎Ž[|t;v1^}6S.O/6n?I+- ("AՓ+YrG-?N+фʵ8%cokƔxakbqrG =?Jsɨ1^) n=ǵ;{QN m:Qu&(2iاDU='"pUx^V1=@t+>ԟbe氕VRn}ZGR6]-ܭ$@rj[v5/R ҍT*FEk;SknRDJZ1K 4!I,S\Zn)*z@څ HTG╞(t̘8@**?zZf*ImW)#1IO@e%81S3phatch-0.2.7/data/blender/preview/rotation/can/hori_30_vert_30.jpg0000644000000000000000000000414411346363116024650 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? b+(XbRQ`\Q,Q\Q,bQEVR⊻SSF( h^&,4Y[ɈlW_/;Ynh..c;F2wt Q^O-Ѯ`]KA7cC 8lץq>#_?;ũiRdSo$b1N6v(6Z1Ev=?9Eq4mB{k_/}H5 2zVf+rȤyS?v-9;#t6w'!VKU. vWg{<]wrAq *j5U8¦J ϥv_i3DX5S\s/tAz,|U𮫠o{apOqӥpvw! itϚR=0zjŶ^l Y +S*f;>jY)a!`gڨum6ܞ?\+*GT\r<LTBKxZ])7#vѶ(\|\f̶:$c2'8TU˦$}yG,>c 8OzR@p3r>Q&яl5}co% ntZ:nP4R۴HAGQ0kΧSՈG&T|SxldKm8^9^E Rd(|kI 2U=纉y%GWo(8P|Ifm~4f,cg1~wqQ$q#&*]M_(Ib(\jMkW".*Mm#ix\ GTW47u)xn”x4ϣ*V,kVI"uU9޸r=l:k{kGU$q繮N#Ӊo"fOu\ۯ _[@ʑ@}pExUdT[f}yn9+ÙV g=1jk|h]G1]|=qm8 qKM=O2{&?݇ebkLe$ST^ch1F)>Q !Q SK"x?b( 2>~KLR f|?D.,l@##tV4?$Q{,K+;xt^M_ʹ`=7E4Y%3^:RӚKVv72Ms/^c61ǵz/u=)!+PYT8xW|C3”a:2t8]1O!r0) Ȥ+)hw.mǵ;b,@{Qjv(1IEf=+J^֬er䊡LT [o5VJ_L"E!* ; #"%&()SHhHE?T2(.)q] n(;7SERbi1OM0B)RM""~)hphatch-0.2.7/data/blender/preview/rotation/can/hori_30_vert_60.jpg0000644000000000000000000000403011346363116024645 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?#bn(;a .)أXSKj,1F)XbSIj,qIj~(?`1N.+KQjv)qN\SF=S9[ĚoӴ-BOF݈In&(lU5 (۾hW>"1BSF)bSIVRbq]RڵQj~(;{Sys &O,QpOʢ䋐-Y0i 4 格uܱ@:]5v&(کm-`~UeIq$1,8>Y\^XiXT$Ŧ0z~u=ufw f_5Ux}Ēm x2DQ}QIi2M"6pz>5|[8)=Zkwo-̖I#bb*,Vp/%<#^2}fףMH MRb3%&)X 1F)i@Eq&(>Q Ú$omW7189ITap~5>%$_Mt{' mDzכ׋LT$ ͐,?7d * OrADY#rI=M4yUG)P "E%KC-)q]v$f 4QvJbv<Ϙ$s=T½@Ү*d_ⷴ_Fӵb癕 .ysE·*>^FEޟq/u 2}++[WuWRծgSK~Tp\L'WD3)+SHHjZB)Sj.)iq]&qF)أ+b;>"HEMihc"E4a"E442.)E.+ 1NQu2SHE+LSȤ&"E!- RRL# )"jphatch-0.2.7/data/blender/preview/rotation/can/hori_60_vert_0.jpg0000644000000000000000000000424111346363116024566 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(EmlB'Yiy]cn9#+F:{>31Yi6p[(]5焯kV\c\Z M`hU!-heXFܯmOe mmXK 卞ԛ=MV"mԛ*6Q`WeZ45-R @Ol+a {-I#޴}K< bpHꏌ(#b28wk%ocQd$g$~= yHeKC4%Mr:Ɵo$'|A?3JWdC؊혂q)RnOą|{Ʀ3w Fǝ8#6U9+܆L۳+lVvQ¹[g.jڗe vQgUUj6{Q`Wᬉk*LmO{VE-DB Vu~]7J /aR۷6ӥyǏ|Ns$ֲ19VuS9JnSQwU&A Q\^4I^ m)a*[5uur=2Tbpc_gC=)8MVx#\ӣ;Zvt1qEII,]ԪQCmzQGN) kb%%&iX4fV񤢊"J(=)XbˋϽCR[\!h ǜ}ESu= .RHj)1R91Sc֐Vӱ!IJi)XNgphatch-0.2.7/data/blender/preview/rotation/can/hori_60_vert_30.jpg0000644000000000000000000000375511346363116024662 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? RWu\Q,QK1EJ)qF( E.((%,1E;b bQ`1N7b4 :gc#M!h iOqF+ӭ>KR̒P}Y@@=?W1/\V'I|(zː:&(bS IEJ)qF(mRmmmMъm.)+k:4爭|ʮgxиzTOݍƕݑxs"/5Օldn} whb٥*X"I@{FiV0$EnX/!Kf2z(Y u>f.e<$L7z=*R5!RgOnz&m\NuHN~imJ u9XV^©7y5莪GIbxILR\mKovrrmQڟ \mzw>'J?@y~ ^=č*dpF~k*.Y&}_sޟ|G"<_k'uŕ% ֶ4+ugwrt#=kV0{ r 7ɷ pW=km[Zψ\P$ǽg/+)BdnNCa@FpU{£KֲWGxgEeuQ`~Hzt#"1I|rC;mKLR mχ䧍t:_ϏXV6-.A˽qYԅQzݽyS CלQk oe;6װYK`ψD1}ҼĚ%ݎ׀.8AϷ55%٥]KSKF'@!O3W}c}9xVg̚3ǔ5sV5+ٌms "V!4dB*LRS`5qF)z3) HEK@FEIhM2+~Fi- ̊FeHpFr+Yemx<=ՙРu Ŷkor.#W'7g?bxɖ El/V XXD%RVFs[ri)+ٱFE&*B)T1IRؤ"HEz3E%8CR 4S- a]5;t} fa=;fS4 4)- a"E%K@0JyRRW@SM>jX 4IRiy0s mCCi 8j "i K4 phatch-0.2.7/data/blender/preview/rotation/can/hori_60_vert_60.jpg0000644000000000000000000000366211346363116024662 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?7b1^)Qj~(>P1O`Rb1Ef)1O`LSF)XI`J~)1Jùkm.~(ur3mirʹ5&=1G(ڌT'hXZ͞w8= DMK Rb5 |^m}o80_AG1O!1I~))XcqM"1S`.mIAL{Ti1G(8GO"$vܧ0<*ʫ䃐֬n4'k,)uvO@>Eu"ckc[]-ʺf|v=Ξ视F]؁8/ W!v~>9g[xVtsP'aJ)+/cUȧWecJy*ZASMKC5IO!aSȦR 4)Դ3|BӬ_z+vrs9¡=PA5FAAa_2Zv>"m+q.ysE­z =B+W1ھ`PB@CVo$g8>G&)iO]m"OaP 4J3b\Rb[E4}!-4M5-i)423M4M5Ci :HiƛP4sSj͜RSTE4cE44Դ 44lciP4M8̀M4M5 be"a jI=vQFʡ\m.ڟe( m SEiv)vQa\VmYHR\7P7kTb_ b5e?U?z??WxCSp;Td[wH'Eм?G?A*+5ug/!1/;!om ƶuY#Q)=F{ӕUƇp *Gf]$HP}=ZwnȪFX6)T׭!RKmQw nqոBG^tL6zB}= cJ?tW#1ڍ,H<+jd6Ս)W,lVRl9xlO敜2Oϒ9?U=m]$dY_Ogc 9maxi-3h\e{=/h4F60*hF) s֩7v!7(UY^4CJt" i'm{Vcic vc3[ݙ{ TI qu֮mGVI>bO 9u[{ 1H'C T֚w"hvHT^aؽ̶&6?Ĺ ҽWQf>GF̓L~Ux&9QGn?3Br)_OS[<_R+Dr7[g.jڗeUr6Ul3$>/Joø#'n? ğ]?eiR|!q dོ}p_Kh8w.;[]ڣmR)1#ȮN#)ކijiV!9Aj%V]՝KwtFf'8AX^q\Yu?ĤDedcf+ck?RV[R9pO#8°?x_iW6p$YP;NpGj5 ?s7*Bn⎧;lr9tF* Mm"GBXc3]͉fI'[y[i?2<:zƕ[_٥գwSGc^0 ^5k*s-w}4g` a\JzC5n [) Uec8w=ҭ=kEB ]L$~*7ӈZQAؚSKd+oFdi k^]!FEYQr8J\SJ\VbrLRJ*,PH42E(˨ ڴN7ک[/ͼVrtIH^T&fQ/MD.5(JQ\t*R Zvphatch-0.2.7/data/blender/preview/rotation/cd/hori_-30_vert_30.jpg0000644000000000000000000000511111346363116024545 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? \QQK1EJ)qGXz яcI)O&lisGXJ)JM!h\Q4;yf@ )qM4J)qF*Ң$ z)4T֏FMN85;>q`7 1$_ZR=&ӑu=[~[+4KRYNFv/aO@=vZͅ[ă#- zfj/B@}XcUuRPyIsȟ dw'g_3OT&6UzGqPF۽`[>x>W&pOgcuo_X u9_5^%@|#8ָ_6sG{`N2B6qt'6A$#\U>ⶦQv(i`Rنbn: TN7BL<ʼ lčꢸ[: hkZ!) ??,VZZDDQ^m,0+<^pqnMwv< Z _:[ɗ!BU , X.<[wUSk[ <숩f.Q̛Xx BXǨKNl\I95>rHdl r898+|ew3U8iryӹIϓ(w td34/ōHC0r+r E~ѧCЭ$xm@8z⺈5d *Gxd41gdw;F+[!}+ۃy|V}ƚ ˎG9US++:H)"2Pj Yoge!(OE Gb1- %C0;w4Q ;qgwE$EnE+s+$!(˻>©SH !kP13l6C A5P0>L7?^kƓ=12ƲLXY9EsGqKҪl[GV江b޵9{v=` ~f[ю3dRRb#2ʹX{~aX08ۉbF::rb*8hTUZM>$UvXwq5WGܿgn=+HTQk GXB CҒ=0©xZ#Aw*@|GEzcGs:[L'#b-9>Qq% "H=qIiK079Qw/́ $#'U!QEJɰ}OXE6Ѷ]Q{+(1Ƨ:%Z3mX9?ziw"p˷aZSAm\\>Unz˨\("(56A Vy$2JwHsV<) +\f)IMCUZ4ARJJyYI砑d^s]F#,0'uҹso6nT֧^f#p-ӟ$zv$Y >jÞ *ᳵW{+^(;%iƯEaJoP1 Ԏt Re֍zrG@: '(|YFOxްol@| Z٧Nv V)K/k:ܗp#B|u}>,Js#RbWT(;qQӔDx+Rb)E"[LmOd5 btQ\q:rd{ep ?_oÂE=.@#"'3p3kUa^~a*Lmkь1f?emR]$96 RK"F)vXbSѶP#!.i@)SrP)Ԕ*R(@)f! pi@)qKP*;b1HEIB( S( @)´@(H)­! )R( ! )@R@*R▌UXSIvphatch-0.2.7/data/blender/preview/rotation/cd/hori_-60_vert_0.jpg0000644000000000000000000000472011346363116024472 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6Qa5$ +>wY"1 2ڲbq+_I(^TjJ5gݥʋ:0e=;eWXɾ6(I E^ +?w²ɫeO7 KFiB)vQ`]8J]XW,VvR+mVvQ!ˁ+[H'Y#_.+Z2 %;|3e=T ӖcGN_ˀ?,V`r&ѽiU6[C`_iZ.wF:t~}*PxڻwYJ7+[{Rh௨qZ:e:tr Fq]\Ų]>] Fڱe=6{U=E=6UlsB5ex:I Esgŷ)] E}0~IFI=q'W/vt|Y`ݿLRMoYSY7-I⠹FFUM; VBmG|n_KyX~eolӡ*̅U#}S~pX" I",R#e;Xs*+mmM2"X|#l^9d+lVvQܭڗgXK;(Vv{Qڪw*ty~kg=\mi⳿RWmx>fTR^a|8)^UD GuF//WyFk"h"ko396uW= Z](TFÒ8ad~u|s0s3mPд;5芥ʜ>O~u rC=sTJ9kD*0 ĄO_K `Kr` =RJ9?y|j<ڍեWe.ʳڍSmCI5/Xج|RzήH5Br%{yKF>/V^(;${RxvGA;(?IY\ya`zEylt!]oë쵋770cLSGi|]brp+gOm3eBcAx+^蝔|€L!';4gn+-ʧdӞ{xs e(Au$~), " mYdb܌V3d6n\ 3ZֶĒ n{*q і%#VsG]L@@Lf$fgI<~v@͵{U%oj+Q"IڦIvѶI NJJ@f8 ysHEvcF+qڈ}(9vO?H 앗\Z5 bm`Xܥ/vXT \ޮI{QC=کq&Adǹ>k 5ؾ\X>BV0u/Q?Џʫ$ԚP+Ќ,cr=m@mW \g&ʟmi)€)Er"R)jZ\]߅!b}pc]^!Ug—3Z4>b7Sf5KĿ{!xOR}iAb<Yd_cޣ&#yp_(?S]- &ENdq\ƻ<]YI\%4YLRZd pN5Б"N N  KSD.cө(5 )EhEmsf?4˅P={_5wS]|ֲV+22Ey]3HꍗlRxղB:gW͐aA58B+{s6)8WZ$QNi´BS P)SЌZQIN)R!&́7)v2R@~\tj8R(JMj )å%-nbAKVrJjӇJQNNhLpS8U ?phatch-0.2.7/data/blender/preview/rotation/cd/hori_-60_vert_60.jpg0000644000000000000000000000440411346363116024557 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?+$d .)`1N`Qv)S\H-mT2KME]+LXt97#|?*՛WCOѵ{] ǘ-]+~ 2rv@}  CZڜ]'?Ÿ V4ӔLstvj|b4vvD,jUv=kt Y~GJ;Q qLvzm rG?gbcjt)XqpȾ5^~zI}RF9f' ^Q]ch#&1OKIm&9BQK@RJ* U<ڇzԗ$ҨBS$g,}}9}Ƒ{cn1$r9<ҽ:lvAn$zם|0 ׌?g,$9?ʱQkivj-Gu;`F`sޱ<)hZW`v,w?޸/[G:|o>s)(O[\bs~%j~>u;i\lȊOЅ\)@bc+ F~)qW"=m1F9Bu9E EC2c$*9HVIXWRWg=0?ַ@$H2cXj""6=ۮG> LQnQqϷ5I]-+|*徧^Il6ׁW5YQ.סqh6Kj޷kgvV=rH>(I oQlɸP{^Hk:x[Ou!7,n:NGԟA^Hvs>R`(S P)Sдm\c-:iíyhZ},WXR2SU#;$A {†R4 с׆_[{L>WkբOhWGq7_yחJ~ .=|##HUkPIHY5+K 7@!y$'E$+^'og2~6>^|&NY3f$'$ԚQH)$SQOB)P)VN at:ӇZAJ*Ј5 aqn@yO'е-Z -(SѰySjƚ^2ֹ1xw6 ʌ='-ҭ"p̊ѦGcּR t?*pP䍈npַB)Sh(4SBNNh pӫFQH:SROէN):U)í4SZx hNNNhCE4RՁphatch-0.2.7/data/blender/preview/rotation/cd/hori_0_vert_0.jpg0000644000000000000000000000601711346363116024330 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6{QaܯmXGE}lQ6QF, KFj, JK6R¹`&ڳUM=fٽuY3;IS]Ʊ~L?Nr ֋9H5hl I2[vN`.j(Oh2 ˚sjqied?ֻ̏ћ` ř7%&+=\7|)s\\YXgtD rl0oj]{3m98jf؟mj]c6{Rl[)6{UX׌Kdi[^;l5?ʲ0})M#9#v: |nGYAPGE'k,Aq\L7NWieI0?+@Fy,$Z`ndk[2q'D~cܑ8R:zիvK{Cى'8S{t5rD9#,}$n5P +ʱ ?/l*r݊t`8I\tqVL;rF!sV^AtLg Cci`q2$l *q}Mn 2˒XqI;-O NtKL$;}A1LS6rgA͋^nL2YgH''Q\/S6.F0,V6{RB=;(Vv{Qڪw8߈nhUwt*VL?ٿ,?hWh$F?j?c΢y!1; V8JHj6NIM4M"vײ!T^Z2}s‘Z'M쇎Q(%YJ8aI^jkk0s,j ? 1\X^Pl\Ex>Ͽj=d.-#oҼwžlUՍR,ˎ'ۊn 7FB"dGcravqJ@LLF>H`rȣh}q$:;N[=swSCtg!مǘ/-L8rc?yWc#Nps3^ufLd.1޼@8kMtc_HR;=^sx'hx'kbiSXִg7-̪B6Ov5ZnwOZN1êPԚ=r%$rs?:ᴿ5~?~iséZc(S|;:mPMݪ3sU_rSAQfQjt[E9IO8hskg<}q\g`<ٝ*5Z2 >z֭L1m B1KRQCH1k~ux|&,Ԋ6~ ^a :$ahLӿϛ5Z/t[Qu}ss<,Ye\Fˑȯ)Ñ~~m0Xpv9;t!)uy*O^M(uUN7&[1IWU P=RD :k ]tT9X$8Rz⣽M?˚[`ve#J᮹kEQ>[TƎE8\5(ىhwv}+Bk^f5ɕ%Qp^"W4r"7 #P_65DӃ9.ЏU\345[P{Dq/~aȌIi2He1DrG'U֧uy[lc޳v]%y\eSHn#Kp DWC\a@ztiNw=sֹ8yTB+ to\ZM#}{?a}i1 E|1?WǤ{F! 5/V fz(*W`=Eo> qw?{kX(ZѵM ܄cª;JۥHoWIEW`;}WƺU)ie 佊S ᵝVV30?$i@ 5 ,X?s/6K12R%.Ozڕ'KddRbE!B$.)@.)qU!;bSF(RcڎPjLT"( "yTdRRM"N+d%.P)qUa KjZ\S bS bQ`E!ZRIT2")Pphatch-0.2.7/data/blender/preview/rotation/cd/hori_0_vert_60.jpg0000644000000000000000000000443511346363116024420 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Rשc;Qv.)qN7.)SF( LSF)bQV"LR P)N3=jI`K\Tk揵Gqٓ□[I鶟!VcK_K|R<hcKjgܗ_I|cF=jrOK$h oy̖ oC2JNzPYhc <[בU!nWT ~+M:a54m6?ZFPjKb-aJ-`Em998 O,JY޴M\`ʃ#ךicuuV$>+"?tS3FG'zhEtgwA1Ekpd[akKY|Q <`g5Cm69&!#~%FKsɚx0%> V2ƭ@SߧJ:qC+P)b_. r'G~4Ibǩ9 jҮ\Jv2t.cNǵv$B8Ucc;TtZo6tڻ_ O%昲,`(-ѣ,.h[ Fsn{eMaBђLd6z_t!ng^ -ҮC|Xm>첚FI$Y9'*Fs9ѫId%[w#mR75ngp3*,c _W `ʰPT#=&{G z'>dD8*VHJ5/`<WG˟DqWh\Ҥx dfb2)#<(Dmw'|W-h52T ?0qӦ24esn r({Q"a$Ev*\67PE:QR P+DUmnqוCVL`d z6;}}YВ7`7 kIŪ>fɁ=\Tt?-6LHe nx:-R[(Mʁ|.0J}Q¹_ZJdX3R?J~S -cmAlzAJg!Q]gJkQ.12Da[?_HbgQ1kn#!#\:5wP,&u`v=~!&OgT¯?qʬ.w;}IH^#}f))SMjЇNRZ$!.*.)CqF)إǵ;Q~)1Em!RbJi- B*CL"% P)@RS LQN JUn 4Qv1OGB*B)T1SHR "iSH (VJ-RB QKZQvSF(\n)T"C*R)*")TSHphatch-0.2.7/data/blender/preview/rotation/cd/hori_30_vert_0.jpg0000644000000000000000000000570511346363116024416 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6TFXR$n }v~}*\݌m.KLJ6Ʋ18x5\t<бx!ٖBDJ.%>MN<҅e9r Y\mNeob.X+I)Ub.V@ '*.1oJNɱr9mr :HFxO MUci5f{(5±3ۑ'aȱDrk[nNR,X~8uVb Z)d@I}Gz*wٞqz/=|qr@ҽ;HC+Ơu2+-nmSTc +%B{nZ*Ɗ%ڬkr=%ڇK[hV6RB,lVRl+lZcE?ſkl> LhW?򨨽T^2?|* X-vp&$'Qbb⡒H f9AlGOb*%IwNH#YwNc&0@X<\Rv@8#<)6&2I:)$>QAwռ2M =sò1G$bYV"vAoP ,ѯ(NI7f<f_K[ܒ0#}=}+S?{t5jPV'H `1:8&-y]FUU[Kڬl^kvQgUU?iߜ˻*Y'LxsQ?ʢ |6Gw&#R2nsGr?ž1@h"`z׍ #9_ wڰ2Ad ̌TwBKVIH6bFp?j]9c$.KXX8\r}y?YY!X%wg cܳU6EA?)*X~5>yi-FՑ,HONC}ʠֆ$9Hm eFIS 2ߝHe9Tֶ$ȯimYZ ) ,6re S >[]}jYqrmT20ULJk͔*j6{Wq?&?MR.+cXT'"XǷTwRJIScFF>W?gfR+jƇKn-UhN WxI?/WnKKHdW_½jU;C)5 IEXz+xI7ss4w*^? YKS%WpQ5|.ПZimO`Mjix駺%u\SXgL%q?ҳt ŝGI#TScEj\[_0=}* | :t߾%Yr%0p4B,q7CFi+ėIubFdO5hq;T =3]MƳ&nhȤ;S?y5!r}2"\#l==j[qG0R*?xҶSII?phatch-0.2.7/data/blender/preview/rotation/cd/hori_30_vert_30.jpg0000644000000000000000000000511111346363116024470 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? \QQKJ0H?-d4>pc"Kǭ`\Q,QK1EZ1NVs]nʲ1R RM* m#EQh7U1rztm.-> I=0g᫇PS9ҭ YǙ3RGWFXRXs4剋' ` :(0mp;\g_hڍ!LX~#BXyAB|݈՞s+tZT B`"|s圞@j3fwҽn<HݖsJ#L?&/7:$19"tt0@W}[ۛ2F&P@##+^ssW%8Es[4hiDqg~[e4"3j}FdY=0F>kź]aG%#>ph.(I<(U!F 9?,1<ʓ!*Ȅ\8Ty 1W^#E)E Sdu87q$tzW[-geޮ]^wb*U oHh_2v1DB=57S\ΐb9Mꖑ;ك#/=9!эx#{DViȳ,zWUʽ؜dd?#SQ/ObLWM'6RnGB_Qmh ^ρM;k4R.z7q^Coi#Z.ɓm!OyC[ 8Ċ=fJ C+=?#*2,цUEYB}kTc!56z\iUo+֥%]v،Ӻ{+[2$ ۵U9Z1RI|1 XsU;[?K=5P)4րE%IIѶ\Wg)1Ib(:u =#T܏xg*Qi?idEOvvBH[x*xa8Z];r֩cH{E]RSI<8 Vvb) 205lI7TR}n\{CTd+ONjBF)أ1F)أLSE+ `F+[Hđ Vv;+[)'_kZ}w>_:5iC}@v\E 8޺;yU6TH,n?6Yw:5hW99Пu<~tGq ã7u_\xuPQ 8dQ~ %H0qzWղ1A\"f+"ϿGљ^,|C56 ik[ vJd]Ih.B> _~%rt{Z+n%Rr*ʕeܤ+X3كM B)SKvK9Eq>m>aj.qS:jqq}A3SǨi_bֺAP;<~ ~hvǸ&/JPQAĉO6{TU;6F  9jLFL##sUl3GMselB3ⴰ\3e9'p?Jn簆thO2ȃiϧ\aXݿAѣ)ʑqڠwyiVCr}sՍ#.-m t;wӃ]bf-6S֩Q('&BI)ށ'OL cx?W$E!RdRG{iz_lfTeacMhIЁOS-WC51O9@k%c.zB1ҰS˷?֜,nM%:VJwQ,B)`#"jR)TdSM5s)9M6WBP>]c;mSErZMge!JrMge(VI:Xip 3gLmj=!UfqX߆X`}/Q!s9wolƑ /R6S4i6a 񏟖??T #4e_sۚ!T'@}*mGz폕-O,Ecjx$~Z|Se0&{;]-W9T|f.6X8 ךm1Dv40'Τypr5jOg;t1 eelsJɝWulןϵhIpFWl0Qy1CVbNm| YIAƸ0nDH8&CI,!߀ekb)mFSjkԙlVvQ;+lV6{Rr6Ulʾ]_ZFj,*~Ձdž??u;=|1!##Ώ8Kқѽ pץadn_5b(<@U["8E?6QkM[-o,8ןfu_B:uA8oBoSN8T&$ZTβ, $gciˋlw$pߨZ4?IJ[U? 40\J֪Ě 7|j<ڍWe.ʳڍaSy6i?({_Ʊ6Ѷ9w:{gݭGƓ{m|]mpck{m|ww3̱2)WLTu=Z#*0m7T[ iKȥF~-BeۗMr>#L3kv:suN/hi -2?S@qOD}J!rC3WXj1j!C.!{ "Y [BAzIJ8|VUi^ "4|t[&/~U[Ÿ =hf⻝Y[V+goOcq[tj3Y1O/?1QNi-PHoxK+QnLbGSSȊS9ߋL[Dي+B?\ŰƮUKo &yzN+LQZ*y@IE!5!ZCA44OT7<-DgmR%*ޠbl6{9Sܢ̓Ur?t?SY SЕ{~*]>ҳ*ktA܏uV?3jFLPtH~cm9q9$} 4њ4i3H,hHM!4kHM41I?!f'+Q-[S)wT!wVldECtzhH[<+SozLQl%&hphatch-0.2.7/data/blender/preview/rotation/cd/hori_60_vert_30.jpg0000644000000000000000000000417111346363116024500 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? \QQK1EJ)qLfv R|:R{цc?U撚 @%XbRQ`1K\USF= F^tQ7PGtj(ixBޤ |i9z SҦ c7BkףM`FCkִe*M_R]Qvf*+)^"Pi-vJrAbQ\8?j\V|E-&([r3bx]mx_o犵eH?GYՏƷ=G!!뚵`MYq0+$}*ijd"1;l`sX U=OLm[,c- m~~TжՉN~q}5~BvP |WM\#xhRUu8Et^8d uQ$?Q?0.q)? P}q?֟!'ŸQ$tSIv vѶ9"Fڗmh^HܕM^U5EBsAk*)nzY/NEA{eDp ?!ZZc6.76z85CŖF]!aprC3bn#eʕuy:܎>+Kv8s~l!vTr`fS/21G }(q?_iW"Ilzc5^1^iw8!b ۜ;yΤO8RВ8\Scӊ1] 6Df)1O"X -mvb.C;mmK\r"[QM3 sU)1Z},%_Q]0 61C+ҵh+ wLcʻh*NA޼Wflq{ QΊ|PYbkhRC3:;\}*ѬQ/V ;_=Ef& _NKih[kʚKiӱBd;ޖDYaXuk6h <g߭k:s[oQ\3dRo-Z4.@+Й/CnOS^R(쎟n_Qz}=+op3T}^RS tH))ԄT)^FC 441SM<CiƛY;kZ+[&p)V΄7??ƹ+ҿg&7fbII皆~vbh,ҟn1n\uވq#Mf!=i zaM=*iO4ƬƚiN4ֳcz!c*\@,aXgʻQWO4PQme!KHi m:z԰?phatch-0.2.7/data/blender/preview/rotation/cd/hori_60_vert_60.jpg0000644000000000000000000000444011346363116024502 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?7b1^Ōcڌ{SF)y3[BN_Q<Ժ֝yw^̈YݑO*#Uu\ׯxà =RSOCciU ~x?Zx襪<[e 7QRⷋRWD&)1I~)1J3SF)XbHE+学m?bImI1G(kK߅@@cy=I x+?eVIIK4hC+~rTʉK }WOm Euaכלg:}G}g љPG ]F%ѵ6 1ʨVr+(ˑm(9He \?a:R "Rb6TEF*LRcڗ(\}>,%'nOG^~@χ:>%x_Rv=N($c~k D}*/SR=:Bq?\W5>dl,f XiLW%[!=EzĻy2G-}8:ǎ/?Ҧq{ C)h5KN3!ѷNo*uSjiJ(?Wc!E)J/eHUW-R8l󊯤./. 2BH~-Ȕ)^4$kh@w$pWty;mFAqI }GY-.ID*@G+6}xҹaIv)t+r:BJ'¿ʭ{/ʭv G'+lV6{R쫰YFʳڍV3W˨~?&oS ?i5~Eo-nx10<ס]F7-_<;_6=y?Nynͫ=Kn%\<#G+YidQKe`{sOL׈Gwfmv\HX8?0=FkA`Q'2fe(&%XI^.KDN|xi A] ~Y:jh_`FAauq=W*2䝪\{)"A剚%=M& 2 3X˺!W|@LVA{g{QIʻ)vUl&0)ka 4ϽU`W*w:{ݠo*6)?Ru*[q85>5|H6<"|~M3_Asm=|9Em~?7[\jvvasF9W +&v:q$F m龘G_\*6r~}C4:ֹ>U6qf=]+3Q4Qb sړ^WK]Is /a~]>Y'M"Kep^CD&ԉUs1#za8U.+Ќʵ8#}I5/C~;mC^1F*N`hر?QI9* h"_RnkR2h9$W^Zib}SXD?"E`gP?*=,i,fS 6q9<|cK:v:j uGf0Ż0 Ƿx?W)uivv wTfale'y\RI‘oiCW#sDjV#M'穫:oD)~uP'6kJOOYϮjP4nn!l #۷DJI=0O] '3k T6zE&hvXŋE74fsE74vRQN:]ZĺV($ SդXZC.y aq5gWm8|Μ{ʯc3j#TPN5_1dJPr^fi;ҷ쭬,Vb#X·^qns}MU$<"GvnAz"S8_u }p1׶4|D?'U㸍dd[^zzi_ ,jj3ˀY"b f[ 9xthlZW~].#).pvmbȀeFs=zqS!%{3ur-E(H* @Gl+K+r?S]Tc#)=FS, SaAz>T>X 5ƞO=NBikK1ȓafk-X:詎06 9v$b|ɮYElZ8Qsǭu#Ӯng6]<%fo  oҹvǪ;hJJn=3]o~fl|9N8zͥFdSr<ʲk[P{kupm-| Wf|2tǽf6MOUH1$nx,qGX mE AT4Cs;9v#5NN[#M"2wR˸t[MZ&Ȕ*0!1='tCݔdVyݺNZ>340xb!43]p9!U'|q9rr6_?#վ<_%Z-:Գ{b@x'- j)hs6bEzv9b~))X((xzuvp) R0=pM}SDF[T/F3W7َz_+upsKԉ/!0I ͌+^d4tEvlW=3#T$GO|0uTb,jqKUk FN-?LCdne9 [}ntsPMwWD)aG+d)Y3Êk q# v!˹,[m?栖G#>%̏q;!`TXR(h[ln)1O%]3SHE+JRӰ(;.kv%A͑W'f`X~?aYԸ.f4OQծ>ϧZ;3z/]d֯U 1sK߭r)|:yV-Cy ''wSx5nDHY<}qG=#@TKɊ˘MҸeGAq5J'x< OzBۮ?<ҺZnC՛mCm曫A ~5,&׮DD0IT,@f&w$j2Đ-I䟭E]♌_D%&)Ԙ"E%+ @)h J!ϡk7|z/ VXxSndؘ"JE%>VRuTE(N uR@%سIOz@)iP( E:v)h+ n))VSiTE((QJ))H -R)j!1K(bZ)XS%+N5,gphatch-0.2.7/data/blender/preview/rotation/lcd/hori_-60_vert_0.jpg0000644000000000000000000000470611346363116024652 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;P'ce*>X.rQӋmbō)0n^m9#S9Wtmp8-viNPyb2cUJoǽy4U#N]edݾ[^?i֗Ip»b!SD19Gq)vUlgr]>]X.Ace.,+6{Rl[)6{UX{Rl[(E]0ՍoZ,'"u=^[U,I\`ғMYy;IQ\`Ӧ2J=PM&X0}wsOM6n/O6dE#IT%|H(=Q ^~pb] _]ZFjr]gg= $ڇm7MK߱XأsuG|Gıo-‘C:K1G<${j?J#Gy/V>=@qG5Nod $]PJg^߾n3qloCs0_QK"؜w}I+̈́N2c\j!seJKetU'^}0];qsc7BhuiV>U5 =O֯4w*|N<$?N(0Z `WG}UM[[o Q=N-3Ub2(34< 4u㞍 JXQ(@P%jS{>(kQ[^M{#Zrp:_?xwLSI^E,o-LƋBan"Zuig_) #_Y lB֥}1֝CUm- R4cT6%ԹB4qEL曚Fi3KhSF*DMNdebF7 :ISQ.i^~٨K;e4L~h65B\)sLphatch-0.2.7/data/blender/preview/rotation/lcd/hori_-60_vert_30.jpg0000644000000000000000000000373511346363116024736 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?b 1F(bQE,1EXb((Q` Q(.(- 1K\Q`\Q,QK1N%$T9>2:Iԯ˭I"[!gݏWA_ڰbRVQ` b!R9u*KgC_G$[G9 x,_HF0b.VYnb?Daδ,+ u$r3݆Z|?Eh,8 c=zt "Į8ջr$9O<L$o&$oʻxׁ^Go)C1}@(A8WMf1N&+{6u8 Z)@$1F)i@`r3o'3U?ʉ+2+n!YwO^$͵ iijڼps}67%£/xdӕ^Ycv0:ÿ=k΂YwLդe#|[s&ʔ3:7FOVu on}ԏqd{V6<]J;Snz(I>{?XI(t2\ z ]Rh&g* ~0\V+SĚƯ5P1AWԟrk7PS?@LSIV:QH)jFAKL"KUaF)tM.^> 2GcTi;I,>? ]̖&—ے8g\22Fyy$I is}64MU`y##$}kA# %;>v5heƹqs)V'!^QM)q {3nEjPEԕQuX1N)"Q@)ERpcv2)–WV_P-`"݌pE{.u"ZƆB,͌zö+Ñ9^:м5֥dR =܏C^Z:r6S97XX1A8lp,$}p'1춁vBjz8z\ݘWbb\WE\Qv1Iv)1EJ))ås)E%:B(H U1*IنV^j<TP>jU8##?ɬ9@Q!KE-U&(-bZ)X TJZ(ZpH)ERӅRiԔh(BQE(KT!1IuRphatch-0.2.7/data/blender/preview/rotation/lcd/hori_0_vert_0.jpg0000644000000000000000000000572611346363116024512 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYYl:TiȨ'd^I$AkxsG/" -弿F[O6VG{)7vQ&XӬ}ݔ+uQ ?:G(SolYzVo2|nlԍEx$6ѶlZX6{Rl[)6{UX{W7?<]uݕ tҸgփм7?`I599^Mz.ҮV?:5*-PH12ƪ+U`@ݞI#;q6i=}y=?pN:juEmrWqUٙɆX©{qRۍ&DӧhPr;== dW0[[JҜŷ.~6rԭ%%18!)~y)Azl#X_zz$gN}*_.DL$9mhxEݎ{) ~i*-#fbOS4.[{t^dg}S&DG:x<[OS[]:I 0 3Ư]iS\@\qDZ'SvR RJfs G#iFPrsR_*Evp7+wBVWK̒1f*sJribQq(NzgIDaʆFgī!.|*~[2s}w=?|eYFj9r+o+oaތW*w:{+ocA}=]&w{jQèiIǎ01}mg׵a5f-m@3e ~";ܒHg-\ꖖ n"gGҲ9'vsOШñ<߳tC'ǩj6ճԛS3Qg~I-''=sʆI.q%3.NiN3KO{ Ec%#&*j#{#UcPHQ$'=^?DM*^nIpoO<5jRۏ + 9>5XESs{m|{m|/j*Rd+h³RH@pYlcOFaGTq#,M}}Y0|ƅeum=mzcC>6sk䉦V's|&Rbc/sPZFS| \3IEk1sI)sCVsOs1w̟_Γ(YKuC?p Dy$I?¨:W ϽF-e+#8޹e4ԴU;ٍ?¦7Tq@QbwƞD@\sB̳;Bn L}<HS'Ou.P 6a}o꿕OԜ@$)\KA1h%0?phatch-0.2.7/data/blender/preview/rotation/lcd/hori_0_vert_30.jpg0000644000000000000000000000505411346363116024567 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?b 1F(bQE,1EXb((Q`b\QZ*LQZ( 1K1ELRQ`\Q,qF)أXSI,bR,RUX$&Tto4^LJq|]vvi1kV$qƹ̋4Z62oI$\)n <=gM Ta"ՏEC}q[ZM 4,mӝǏqҽ8 TqQhҚR>t>8j(oxNBA惇<SSaZAjH;q>t:]SMX"3g} #"$dT1ಌnjfv&*=Ou>ɔ:#Ga˒z9>hkuE.vʴy!>PeX$[e<Ȳ!Bkm9G['q#gRH֚|Kh/tqr,-9G$:u5Al2 0xoUi܅m>X,S!X(9BjD-}Ff3 A]#J~jyD̷֮`9WmOO C&O2v;JYnZ1!WvgmS='6ȖdžBs~usi 鶖lb䛋X Ja*Ɵ[LE" GpB`=F;hJ#u͍~Y[$>nCjzo/o&Ͻ {sRY_ƛ6vݢ vfW, \ŷ AP뚪kl2ݓQݍB+A\SF*bc8EqXLU=I~w rA}ys$yḩg~fKKuj t:6aLB)b,Xޝ%ʴ#,W9ldaNeV׭1th!meҺ1(E@n){siV8犇:_-$]k%:6&TK LMBQs+ČM\"0E[?.+Kn*;iP$4v>ڒWeБHiٞ/~喖Kx<%u@td'K/H~Օڜ\;H5_ݼ(f;5R{C|M7#8+&-.ON?5#Yۍ^m<9+O\vk:ISSK1z}ĭ$$?Ոtlʮ?(arL_R zQ\jZE݌>!h `m\72% #r5 6;ar3qO+VenFѹ9늚GBrƘEvI7v4Ju!VQ,qF)أ6K"wnj:*\j>>?V&CK.4m>m%- 4Ju!Rъ\WE%Q`Z( IR(`E-%!E%:Ԁ)iCIKAphatch-0.2.7/data/blender/preview/rotation/lcd/hori_0_vert_60.jpg0000644000000000000000000000356211346363116024574 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?\Q^RN&(.)qE%QvSF( ?7QJX)qN¸)qKKv1E.)iCqKZ1N&(.(1IN&)S%M@)iqF).)qN%`RS E)XbRJ%!4R.)h;RiIYp1ۓL7gFO?#Jfx })IL4(B8 e$a,XufjAT7,F1֟.l|)#F)1X;a4 ʃ hp'),Vn\Pg4[4M}>btӍ6JCKAN-!)qKEULQ\QE&))ԔXbRRRiS5,RZ H 4 YRJB QE.)X.CIiSj 4M`%4CRphatch-0.2.7/data/blender/preview/rotation/lcd/hori_30_vert_0.jpg0000644000000000000000000000573411346363116024574 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYGJ,;Rl13,?`?TRbkȏ7򩔣ě(Tεb[lbiδ,'eZ7Џe*d7WFG_T'urN4=f VO'Տe 2()Q]Μ( =1Kf h^\lmj]+6{Rl[)6{UX{U]UJL2#Z{*(,QhS㽒WsR"7eۚ]Ꮖby71p@ak %!)%>lJj? Ihж:ezc^*LY~E2iQw=]miLH@i%llg9] S]G\0l>u [^iyMN;psv} o=!.evcNqWo7こlYZwosW"lp# KvJM<%>Sȟyv7`W|bP5pX} {^Mˍ@xǶo+fXH4upOUbIJG7[g.jڗeUr6Ulʾ]S5TƇ~OOeEꈾj7־ (|,XFHg{cc3gkᅜsJGQG뺺?M E%fۊGrj:$FY-\b1p;$B"hԠc~QL|IGUZKs;) `sgtԚz䌘xnDd>W V|YxI` Lw$ax18Ҧȍ<%$=j;%-$DWAey}em$0G\A.6‘xuϭyofQI"593^%Ӆ[E 2#Q?N k%3S!k:-3Y."ti /@kg} ~y-UKgPrj܃Iz~cbW*w:{z-|Drki.RՇ4 lcY{eqx}}y+NiheDm h#c֢}A~hHb?e,M?i>!kͩ(ZÎqUiΪdA*zcT䈴?Exţ:x_q}{k^k>1Ϳ/je6֢j:叉/b!!ES֧(0Z s/S^jT{_*waqF)أ!CqJ!Yȁ؅$uEV5t{hvCUݭ%~'r3U|WHfmn9PVvCO+l^kfl) }M?U>.0 ]CnëO>䎞̦>fc8T6@ pOfs1@#! 5`zњ#h4њϽflf3[i~S# &5rpE>Q[*}M<{V*~6BRa\'ތ8Tlѕjk6F#ޕ3ʆ\gk6;fh?ÏWlbS`AKvh34fphatch-0.2.7/data/blender/preview/rotation/lcd/hori_30_vert_30.jpg0000644000000000000000000000476011346363116024655 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?1EXb((Q` Q(QE1IZ( 1KE.(-V1F)i&\4U-GbSD# RvbRbk&(.(1F)qE1F)h-*jM?Չ5/>= mCtJqSk*cM z cq'k^|'h{d%dSm"u;[1Da۷pRszt<5ÉaGCqv7%4׭>k{-=30qXW%I6D2/76rlF'=2yN<+giH#ʣW>hi]U`҉u[&P $Ѥ1eI{hz??9kYd }iy-d=I8:?:K:3U0ꬫǡx\ϊsX5ݺDž dHoZ~Kqre z F*Kv)qWbFcڢ\xEX2u.=gō=OJiҮ|~sjp6F]Fo>PxҹZt=,ԢFx)w@s3cvЬwhsIGb'r1p{ݫ"DcEynd O74 %B1)ir8uymNP?[gd>Wo|UbRMM]h#[&)أv&=?ԸyD3r0h~Ϸ0+".]U^ǎk$08Px8ʟ g@ExwVT]ZkzQD2mO+Aһ+/)OcC}Axe2>\\\&ĐМn?#YW=-X|zm?ҵ`D$n2!= Ȟ\WOt>Y-! X$jŕJ}3f^#.5*qu>IHu~][N-nf*{16 紫$ŜFTn5#םJYu"G[* rEzZt«1#15? mq6Fx&Mhʖl?P01Wq1IKE(;bl!RR BۣvCj̗Q]'`0UiHL@u9Q֨i԰ZF5- _c鏻ƺ'MՇ7tY+m7vzI2+]<<<U #PHt&P7i#e.ǡh^"Iԣlg`cn֋ 8 2FP:y |,u_i!RY{ov7p; IL>N#xŚ5G8z-xQ5&/y-f%9]\}$)k+9"IH &(4IN5#jKk-xSL5-'jw)s L?+U5AvT[FX3OgSMazjWzQd뷜#13,gf('>%P2Av6M=kQ 4,e)Hk(5#=*X Hii K԰ER`4QE&3phatch-0.2.7/data/blender/preview/rotation/lcd/hori_30_vert_60.jpg0000644000000000000000000000405311346363116024653 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?F )آZZ)Q`b,QKES7bb\RK qF)أqF)أXBbRQ`bbQv(RR1EK\Rⴰ.Cy$ x2܏QW*m{ʂ1L!Xf+.:Q̎21R 5Џ>i>dJ# 88#j:]ѵm&  ^QvphEg> J[T!(.(]&)1KE(Q\QJI\{R7wiŖnJ9. 2hșqQV<][KQ`D6+QT6'tgO[[[H7d}A~)YlvN߼8GnzTkwQΓoS[7[< ݓwp'ZRSͩMo'a ÆJ-/WV$00.m9\q.G[a,RaA*y; |n3c֦ _oou@=}}s\j[07¹^"$`Sf_DHd iߢ,z]oI =y i?\JZfke$fhZ, h+{Zwiu}:7ܢiNr=sU>dew~\;* Ƣ")J߸m'OmՌ|:-wIU~V'%z(Kgg ܇ÌuoP\$r1HS(p8\THN%"iHTIXVM{mq0B95fXǵ<պ}*wR%k6SIZE-bD;E:jl2Οua&y0![4R)|ƱW{aץak5{Ik:1X5vԭ^C?^۞^Y^:屟Ou-T!+uK5 +oO£ky6݊=vT]OQ4PPSɜ͞x޳xλ56A/]vj Y!,@odJb>f+:p9IZtQJi+1RJ@^Q eM1) )CKHjXĦu4Ԁ+2e$Њm-!RJSIR1 %)Q]iMJJSIR44֧SMK-! %)Rphatch-0.2.7/data/blender/preview/rotation/lcd/hori_60_vert_0.jpg0000644000000000000000000000470011346363116024567 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(EmlY7ycvk. vh309:}\aV)ޥE[0|"j}rܮXـA'ZtO˯_Y:g#'\a^=P'+ϩ'R:$Q|I{+SEhV6R¹cg&jgU[g&ʵX.UX&mi*d'Ww'v`}Nsډ#\ a\Sjri6\Ě2R?^|۩=+OH 8TE#5ziV!nd I66Ӡjy怏*YJH8 kQaxY>m_>xz&цLDԯ#i*q^#~'!W9Pm C;N?ZMio?ZMm)vUlrj]cg.,,eYFjܫUlrU<;r`(OH5@1KzdbQ>$b 6X{JDZ&6Ȇ3mf4n*Ace7<3k|66Cgsa4Uh*F\ӳf& A;u!ξww|vvKlbI,I?\ݼ1)v9On]ֳo5͌+̩g:#6Uoج:GAtI?Zo2?'ѯ*r2{nJYžI"p;vޱ(C#rr`J˚ 'rpRo?#^H%%09J=+!LZ5jBqX434X~d ;m3zD۱Ilui4[=+[z65=&ݿJU.Ru1~Fz%J0-6:[;K^G"=G,{2=XH_#@lFO${Ihvs)-4f3WqfҸfp?phatch-0.2.7/data/blender/preview/rotation/lcd/hori_60_vert_30.jpg0000644000000000000000000000367611346363116024665 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? b+(Q` Q(` Q(QJQE1F(P E.(;P(JtW֑4{]GƕMGG4UFJ[ QK1N%&)qF( 1KE1F)hbb3b1Ex vK#@ȹʑQN:sҼ an!|8n# ²қO|7fk2C){Rfx=x<}+.o )SIW*d6 n9 }ann팤)OmO*q}6WCv+o> 4pv׶ P#o\s|܏ZK!24ӾF)XRQ`'.)ivG)7#Q#vmgH-*9+z?a !F2A\oSyu s,HGLcȯk4mxQi[3)8dx^+UiwlAq]+6=t4s6^ּ/ kXX qr; x%nB.GYc1vżk|~JLQt(@1})!)q]^0LSIEn))r(?b9HB="0v? 54ni/K]F1k;u!73ϭr$St]̻m=Gu+sFVw>S#OT6@4H+>Súm.NHdBȡ2=;Ώ4q%ѳ;|_߀g(Z#޽UrX-wа52kMԜgY˱/b{RSiҽK LSIJ7bLRȤi4,cM!J3fJERyRXغ8< G|>I-P+jNrjCǘat['q_cZsA7p$Rc# 6+}|3|z_;prNH?׺xGv#.`67|gx373ҳs&.In/^:CBS^d}RLm /Ml4R JеUb[?cX􆲩QrN]3[2I*>jzWf6{5hOtU`8NOxgj9E%vEP0=ii H M%ҸJ(5 h&J CKM4QI) )phatch-0.2.7/data/blender/preview/rotation/lcd/hori_60_vert_60.jpg0000644000000000000000000000340011346363116024651 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?b1^3bj1E1E?bQv(+Qv)1JE;R R1F)bFSF=]R棸Ζ5)9 ~'ƛm) `p7q-%QČRbn)⒕3SHE+RbJV(ǵ?cںHRb"+pEϨ9F]Uk9\,{n=Md=zGRV`{mrF^#5Ŋ53T״?7 \FnهScm:цq%`%:#qE:n))QJ6v))X أRb,HLSa@K3RR7 yz뵀~f'% *O?~">aG͉4= z% 6ͩZH ǩR<^Ak6F{.%ZńkԩG% @ז|Nu? ktfUg8sy5#ijsIPH<=z4*Մ"簫`%RIJ%TB+ 4i#"zRTW3[IHObz#p޶bP0s~5 IVOʽd }+M,JcR]1ױ&y&tBWG:eօ˦^m,du?+Vb'ܠu=/ڒܐWOԱ  w}~^Ջ9?2 }UG<."U?/_O|f-nH\2#?ŏl;S/vs}k''F,1=NI$לz7~RniƖרq(4ɦA5r@QHj[ CR%#Ri`Xtd3B`## FhSUcs\Ίul:zVĠ)1zQE .fJ3]7$ M %԰i*XR`*FiQEphatch-0.2.7/data/blender/preview/rotation/sphere/0000755000000000000000000000000011346363116022063 5ustar rootroot00000000000000phatch-0.2.7/data/blender/preview/rotation/sphere/hori_-30_vert_0.jpg0000644000000000000000000000471711346363116025375 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(EmlIvƌŒã#"ʉ8ʇq Ua $QFN6WC/5@]H zYw6w "oF\Q GtRKleib.WKK6ѶlErjMke&jrjMke(\u1im{qT"ILpzzV|+%\Qe^f3xAt(ґѭy[GEPm$F8Wv}F g])A8$g#T-=ygcW'fF߆ui]IdG#iʺ喯{xHh 9Eyn>R>|/F`#&VW9c:TzW]-9/ʂ[4LFaP <=q{eq+bn$SR;(^{{R=vQ`ge*j6{UX_. Xi@X\TǤ\?2勗bHvyY].r J)oL DP80>čQPt~uƶ<,6x6QA=3k&Gz6Toci:%c;F}K+E eusۚ&6gO|L׼E[˨#@YFzs.mhP71H'AK~,o$It2'KR9D`|Ǧ35N#]??O]v4qHVYFKtҹJYTR9C[dg$ѣbISCN=2i06s?F"leɢ]gg=ɹ7.ݶ'%m|(yҧsDZ|Q} _$sҔI5q;t*A^~Z(%6G-Mr723+{L  ?3ּDݎQӶP95oh0qǯAX:&e?eJ=k*||)ʁ|T[ٕD 2!ḟjּ QD1bo~һ(Uw(temJVgr-5)R P)VhS+%ŰZ47t7#swGĆ>:`,k 9P@׭u AզhdW q3(p3S^;z1Vh}A]#ί^au]BB506gnHc OBz֑zg&s v|"?kΉ01,c-EY w2>:ۜm"7FNc=דҤGa9n~< ZO~fa)\c$cp1eɭZi!խlrB[*NV2(̚q,b\;~c %*VP %l?k5 70QJ 32Ta,wPǒkjDjvMVHs9^W4Sfd%iTSJN N >1 pUJ4ZhKln _̢0?#uVҼC%T>Xv`T\=8?konN1zWM3 i9^kU`WrqW#JZM^KfpsYER-ZYp\ִ,dۖ!r?tg5xNVyhP(Q:w Zuk]Ɵ9+x 2D cq$=Q 7@!|4Eha 9~U炄ۚ/'fp 0F8PO_~uӲ76 gwHkal|.)(F#&V"ч,T{MݑM""E'N Nh!ivF*@O-GHTo*OW%VoepQWsxnkN J(V bMChCn#|~kWgK9`Op$݊hGb jK ܝтF:_ Dyhz3N nzz<#jBRSNE4sG-4R ZhCb (; A85bȆ#G֠T?\ifMFA͖$Rhӌ>a6RbB*bHE+ħMv ii R Q֩)@@R(In!&)`#"E4B))i H4phatch-0.2.7/data/blender/preview/rotation/sphere/hori_-30_vert_60.jpg0000644000000000000000000000445711346363116025464 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? pR^Fbb P)qTRT\n(?cڝ7bF >P#1I\GB*B)ȤHE!-R@)N)f!()qT.)ʥdԥ8GvMVBs!E@=;.-lM {dpq%i Q~=1WaHEHE!-TSHhN)SH P)@ 5/ xr#"%`6]q/pvjMTNo)r>)L(χ; +K*nHQYh‡]ç=h۲2emwccer$L]5Qy氵B|;2QH#?RfNyҪs E}4TYHEHFiP8 S$Z&*@)qr4\{;1YKwn dkTC `5ݴ+c(V7 zx1!RR Hv4ȭnvey;_CXnk-qPW5Zv767yXRmb۔#7W-FNI!xXIFAeEs>&m>d9]l~l9u=}iAH3ڈxUE|8^? ڼjs,W2j& 9c.K۝%Ap-ߖwƲʀ,<~Rn.湊5-Dl'QAnVV?1'TW+K{ֵ͓ՖީhQ\Q(C*=[E!&) hOi„Z\P)kAĂ?^ٙuc#Psg0{u#5Wir:e^^7y߱*;34*r)#58mnq--2U*rw+ڼ1f RLvup6Zͣe"HrExVpvj|ZW؏M|Ax-LHKZL>l 955˩];}.6gʙd@ֹ] UljJW\ȬJȀd2G^*یH6=_ʜ7%(E[S ĠZ֫aS,e v d硯9nDշs$7PavErfs^JZ[ EWcaP 4hKNOm(B AKLFd`Xt*pEi\TгYf RJ[sx]vV뵶ݙf9&B)Ɯa{%-iRRKIR Mi¥ pJ)*Ѕ Q֭)R +H 4FiXSik6M!ҥCIKIPphatch-0.2.7/data/blender/preview/rotation/sphere/hori_-60_vert_0.jpg0000644000000000000000000000457711346363116025404 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(Emleh HI;§TLAⳕXCeF2ȧt-@ +8uV|/= hXOw FQvR(ZXRRr m)vQa\ړgZIڪ\ړeZF,*gU^kiOYnK }/5ۨ=+|:Ҿ;lWxZH.V `;*ZK("0 a))<`yU ӄ7Qi$&R Wr{>|cei<Z ቀ=SO4,WT!q?y!UV'+5VmI$څt^%ޝK&Y S*bkWE=2nL7+r 5V[;`GJvue@hR^yw4[w{̿[tZK%h@+ǧ)Ү'u1PioА" n xch㕑ISG/XY$MEԊI3ϔbv7?({oƕ|Qx>k S{b t(RR(heޘ.@pA*ݳ{W+灭:їX?;'G#@}v:ZaݲU54w yXodܶFPuRWWZc94+ #N+/֮sX[ǻbfM@ gQq^ %0%mKWF$;i6Ռ-!QKj#KGf* *>\7a6u #(de01A3ڜXNf%rCո\яaii”``nisMQ}tGR4fQ 3KI\A]њI3Lp*q)@X x zvNcRd P3*㠘.EA)wVؐ⛚nh ?phatch-0.2.7/data/blender/preview/rotation/sphere/hori_-60_vert_30.jpg0000644000000000000000000000434011346363116025453 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? b+(`bbRQ`\Q,Q\Q,bRXb)XQK\Uъv(Qvrp*\Xbc&,2Dq$lQBe 2Q~)1U`)أhb])V]&)qOD{jT`}?6/^N k[>Xh[$l:stʻAP1H>h'>V(޸ٴbU! Kk+  AjZ{Ҹ`ǗeznaǦ[ |ʂa0|n~_rG׭9"MѢ5&ž\!YZ4;t=^G4bƪ"7f ::)t{"kfHz;8P#6J.`11y<9VrVChRb;iJL8 Y1Ji1E.(`}OEN7rHrNX}袜) }Bpm,!b,qHE:*ZH)Ef-:K!hxB v)HJGB*f"E4y"?phatch-0.2.7/data/blender/preview/rotation/sphere/hori_-60_vert_60.jpg0000644000000000000000000000432611346363116025462 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?, P)@z.)qN 1O.)f(?m.|GLTi69@Ԙ1I\qHf* \j O$qz `YˑH=jżM 6ʞZY~ C~[&;ҝB".YIhsyz9gٛN\1nOfSE,SHH+^Ȉ""EC Q@ERǠocD,\3ʼn$T/.:qQYx ^w6.DA Һ-:ЖB*Ȫu+B>uzUM qqjL4$rÌtZ~O7ZZݯC2ci 9=2sҺ/#Q" nΡZJo*]W"+QՖ %\RANE )+wqRqP拏q_SJKy'V @p q\+ZiٝФk"ֻ"x?A)8V%@;AIWxjXbVˁO_ JJƔ޶7gӥ1G3kz]]ZܖC>;L{~Vr:Դ;G q,Hr:)kciF˘C.yOtN I11bTq5KSiڍ- cpIny==-u Zg(aH1##iҳ;tu{tP6-w$5I$WG[B )8UA'sSI_U.L4JlH)R z"b Z$")޼g9zhQ_n?Jn)A;wc0NoF%4 ͤqaұA":E*p8SOLv!cm'$g?yRF=J0is R%φ[q8YQ!c!jd}'az{ ^*mNGmʴ%Sp8bJEUks].QKAXHiRyT Fur#hN4R٣4WE4b@LYpBYje#FqqPaј~5o`\Jb=]SB0?e&jP;X䡁ȧ[܆;>fE;Z)(+pK`R*,њ曊Q.+'Hn)M"CKHMM):RRJZ.}wS3Fi phatch-0.2.7/data/blender/preview/rotation/sphere/hori_0_vert_30.jpg0000644000000000000000000000456111346363116025315 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? b+(S(&(.(1F)qF( 1K1ELQ(QJ:\QR`E;bQxRN$NemTF;JX'#CF2T׵5(YSF*hbR LQ`bvъ~)qO.3mn~҆H hj( X=+"^Ike$2f\s\rXRͫ8_ [$qKr9o ") 6y|S"d"q*Gq1 p9ҹR㺆b HN:{V,)CeA'#Wjٳ-HIAp}klu9c >lA©shce`P(LV~jԭ*}5ND 8 IC⺨U呜c?m&ڛm&+[i0jRirKv)kE\f)B=ac8I\G)6sO.XҾdUՌ<#2y_N?:h9n9#ַ4ƷKkL I6@#z+ ,gtȚzC.]<]C,c~CYk^mOT4X[[6BHg8Zi}zU! ROs\cTQ*pdL]C,"XԔ(Wh#H9Wqzj3<99]<Һ*$rmÙsOovP2ʷQ+30Ź[dk cOMϖ##Y׫pO=H^2z#aZ:(V=vm<(hU \qyeA2KRSZ("λG$sQ\~1Pm#[5 V!-۲Exch\nh4Rn]5&W9A@1|@;VNst!DV~6?҄Ц3[$Rc)+XoR2)TSH @@QZ*t^cۅm5i=uiQ^]7]{<^f3<76YG&I?n(C)#-F#9,ԭJnДY֫9G ;9T^OgE) l_Pq߃sZnW$c96Gp3J1݅ݴjtUC}SeH%1N36"F~(]G)X""E&h)RMD)qTqT.WV yJܹbED,p >Ê8HS]! +katBsڡ{0FWz"RdK ۶TUV9I[qB{$o'ڱH ApA[Zeif<95tĻOf;_na1-I8]xLWcRN4T41@ zDW-(_jx%T7p G9{r WbMO7W_bشy835ǖ0eag%\_}+Ok۔Ƥ3޾jNt9i,rZ(Hf99YzPIۀ< 6SՆc3}ޜ0vPrNGRy4 `t5$T{m4ө JZQKE(hzen-dž=iS]As94omi6/?fn=ĆXjhA$,:W9iO~]rj@t>0Uzwczcga_sX1}2TLƗ{-KEqZA [l:>uw#\ y8sּ'))Qt[Rp۟?0Fq ;^k<&y.f>N+6@.^IBg#;W9$&aHzcڷڊF*ܣQE) !'X1OLjsq.T5N/Ml4Q^HiSjX pZ$ SUFxbxّFS?MZA;5E4sJ)5-˪2@eIc$Rrii)Fam4Ji(Q)qEaRLaRNJpuh*jZa@qHMi4iY=iiZ04SҒS6CTMN&Ɖ0Gphatch-0.2.7/data/blender/preview/rotation/sphere/hori_30_vert_0.jpg0000644000000000000000000000454311346363116025315 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?e!ZR};m;)6QaܯmXF}lQ6T(@\m.ڟe( m SEiv)vQa\VmYHR\eYF,;Rl;(EmlWdkyeRai@#PK0`qg*Q#;e)4@spHSxeW cwXO`%#KleibnWKK6ѶlErjMke&jrjMke(\ J6b3%Kf`u٠hgSqyB1wݑLuWWO=[[?w,ng,h#Z1xNbF0$@b@=3Mq7G$18xoxlk̳PcPK`d9rIjFzןRKHxfoG8򬋣4SèQ|A rŭIae$烏+44{ZN1) q֮t]m^۞ry`ӵzLSog%ZZs"=*6WcmԻ=j]X.YFʳڍV3W˧G EG}MXV4Q-H 9勗b:7MmLhBR$`ɻ1A tIdC(' SMA I~=kmvN,}}k#yMɞVH0\0#I9?^MdYzH2 3V/m;<.6>O-vu=#TliY׻̬F'ջ4qj$ OW va$]veU)POl~a"1"4wyz?hZGmEp8` ;˧ieՍ.?vMvR;=VMSmGI5/Xج|Qw:#>" Y+CZ!⹙e$:xE9[kZ.RIr[J/o_^ml*wb]BWRUȶQҫ!\_%kkZˌ8wq\E='tÊKKf^Pv;o+U|spzR ') )7Ay |24v5QFz$`Ovd\T6Tbr9s9uzX\Of5*-ʹm^!Rm))r6(;p/]BbZMMšk0' y,F=jW՝kt=dh*lSE#GPGmN0w7}ɕՆT5[NS+nw!4њvњfh %&i5vi3M@H#4rE1ޥ Hh&iXbJ4Eci QKEkbD4)T3phatch-0.2.7/data/blender/preview/rotation/sphere/hori_30_vert_30.jpg0000644000000000000000000000456511346363116025404 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? b+(S(&(.(1F)qF( 1KJ,1E1EXQK*QK\Q`E;b*X\q9gQdTEn͐QOs0}Z7QRjab:)أVSF( b{RF+NQ\f jMm#]<4rId NquV FI|C{n$$[qՎxJO]GQcft$@NkV,M<= Q(+tmeB[qx ^^9uap˱P2Hlaaɮ2.n;,qEs8I+ݢqKncGZj|(*}Eke+$$(RFxpGp:e̫QT([+{)n+FX%II8'r7X\JDof8b}ޥIܾ'Ԍ2%Y q p8{`b5$,VWaozZ Ons8XZYF UN3p?kGCKGX@@3yu]2ipK1;;߽Ӝcr=%, wq]M4k _6~Itӳ9&BT^]hvw>;/`nf2{hQs̟rݞP\d}NFN:|e^] +p $1jGg4; %|`Qsїb뚏,b,zGc?:n!̇99b1$RLeG!QIpBlw5h&m/3sn!nZ1yX;ߩ:+jAR0q9v#IJ[uKygI`7&n'I9 =u{7meb#XAL0&AIg&e59.W 8QoByc'$M1ڤIs:Aߧ*zL癔}RSȤ5i1O"@Z z]j$!+QmXMJeCeI\<~f8OWy}8ؖ9bI41|*m4!44S6 34fHiњi4cMcIEi)M%H@=)hm:Rphatch-0.2.7/data/blender/preview/rotation/sphere/hori_30_vert_60.jpg0000644000000000000000000000442511346363116025402 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?'bf)qN.)bR( ڌ{S ڌQ`1N`1OGjLT"v)qNh!<-(ZP1RbSRqq];h[/5qb\SuvyΘ9wcܞj[gEwzfv?yjA?.+}M9L lYmuɒGWKqEċv mI۸O#Oʳ롷p!$Oi uO?^bSF+ѱROM pS$@)ꤐ<@+u6 8'S䋗awc|- )%',f(C3@3c#ztZ&HK`O9~9Ph"(>PHFn  3Ws9]i]$p; l3+##sGP;m^Ю\& !4b;139ۢ-l\~PXG f̿y*.GLw|JpO^+Bg);t->+k 8Б\13ܔbGt?|2BvT$WAAKvHE:N8 $oJxM :9ut8e!҉Þ=Ɲg"DּOK&@a#1K-][+irvoR=z 5G񎝋X`,u#D'ܚX>ʑ\^8@KXr?JFڕ6z*/.e>JEnbWp8$xay7Z493# ɂnКu^{(UT2`Rv^KFw:f|v:SRJR* //rs1m_cH g?, \ 6(s-~QqQv2qx%P]h67R 9'BKa93J-j<$EE<Lj@dWx$IE6ݍI5/XاMvX\;ōl⻽AeK)$_7V=ne֡ X u?mNkf9mK#~8Ž& ju%7-D\"Fb32[T.nFp9ld–[-O$zL"V7RSNɥλ\+B<. ~g<_D3}d3hm>@-n= fybRh&÷R3`dsMnj%+ !HX`(ǸV<1ݵ:qW4ZlWd=u$\yjr HG4ZP;XQTSTT6VPEor$fqM`3FkA&}($Zb$4|S3YCH>;4)E+ȘRv;R)1K`$V!٣4fphatch-0.2.7/data/blender/preview/rotation/sphere/hori_60_vert_30.jpg0000644000000000000000000000425711346363116025405 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? b\Wu\Q,QK1EJ)qF( E.((.)1E1F(bQE+)أvQvQ,qF*ŵ"/ p>%񌺁횗(ʸ{Ҕ`2TQN IEJ)qF(mmImmI6ԛiv"ǵz'IEx3:̜3=qӾxZKqܬnR9\v< =I>i LBA 9'$ߧZ1v5Wj?oʐ"0UBq| $ տ),-jb\s=E`^*Ww2 _-1 3ж3ZG 1#wE\[X[v!\M 0?y'$ܗ-ogwЯ , #i9cj2es1#?xPq{8O~7Fh0 G#픦U<ŗ`h=~a -g=kKolq2P72+]XY129~};ϝoi۶VG? l6" &uGULdg9?L]یbyB@s`6kC&Wf+K\@5Yb^TGb,Rb"BkP3|Ga! b`2}֨bѺȇ2B9O.=ƝγXr5JahsҴu(cd}{?ʹ^6H`|M6I=n.O^8:G ޤ̬|e@8?jzg# Vf4H]㑞kwn/Wr=<}EcߍhPg^G ՛ww,J1çC7SvC\+v$U=VHTܧ1'Ѓ?Щ#+R2?JINi~bndR1HE74ӂҊzWf3m4ɡ c71,;#Ys<ƥI6/j.w)lo |>!ܽzb#0_Lw+H6sx-=M vBCRO5$97*7{dc3HFw_ev H*  ϼL_S0M2L&NE4yE!Ryږ_.iv\I!*F9ROPJt?\i++5 KHjcNUHiOZCH",QJ+{\Rfp3IJ`) JSII (4!AE!QEphatch-0.2.7/data/blender/preview/rotation/sphere/hori_60_vert_60.jpg0000644000000000000000000000426611346363116025410 0ustar rootroot00000000000000JFIFHHC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?3b\Wd3b\S<{R⟊1G(\b.GLT.PLT+)1RbV2(?Tw,K\WW)#6S}Rb@m}MPDpSQ'Nk+HVvш 4/,M"" ELTRR "RSaN NQ&6SK tW$noBEћ>Joym. v-;+۩^[--lV21^f38|Jgi[T灌z' ǥwzkD{''Wv% SiF ;@tZ`8#4E"/<u29Qw5Bա ?{۵z8lK䙜mQHB)R]HEHFiT)qK\WrqOg8!]Gv'~tb<9o=ֻi>TwJ䃗awcܴM>1iX-^A n /pe$}j z@ @ xY:ŵڿL-H-U_r}n/Y`*W<䏼܌`/^}]GsAiW?ÎN?\n$dWO˻{K$u2zߔg@1X8)ֲ@b(+1cT62հrJ<)-K`R?Trӳ)v",0:(Zʙ.Qԫ)) *ou$2N$v'|Rr5gaSM~q[\A$]>Vcߒ?>d !E98m%!a,Ymnb$ l'*m˃$PI=:bLҴ򐛍o1ǩq;]^ݡU * @95cI<#|ֳLʸft#:{SqIC0}Nb;?ATjWbz$H(9laHiN\rd5&i*D 6nsϭ\ƶ*ⰪO>Asڼ|vN=zu-#mЪ˱$MWfWi^ Nv@'wir Npx83W8{N溻R%\s$nے8bJ l$ކߓߍMg!L3n2>s3KWn+jЬΈJ܃\.]sO977:yq^ (>HΤ 43i,h3IEtܑsIFi3ESIELўr@?P)(OW1#Ai$SISq¬op44qԀ֜zSOZ)VLQE\QE!Q@Z*XĤLQE&ii,phatch-0.2.7/data/blender/runner.py0000644000000000000000000000567711346363116017157 0ustar rootroot00000000000000# -*- coding: utf-8 -*- # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import imp import os import re import sys from Blender import Scene class BlenderScript(object): def __init__(self): self.args = Arguments() self.render_path = os.path.dirname(self.args['render_path']) def render(self): scene = Scene.GetCurrent() script = imp.load_source(self.args['script'], self.args['script_path']) blender_initializer = script.BlenderInitializer() blender_initializer.set_up_render(self.args, scene) self.set_up_render_context(scene) blender_initializer.clean_up() def set_up_render_context(self, scene): context = scene.getRenderingContext() context.sFrame = 1 context.eFrame = 1 context.imageSizeX(int(self.args['render_width'])) context.imageSizeY(int(self.args['render_height'])) context.setRenderWinSize(100) context.oversampling = True context.OSALevel = 5 if self.args['alpha']: context.alphaMode = 1 context.enableRGBAColor() else: context.alphaMode = 0 context.enableRGBColor() context.renderPath = self.render_path + os.path.sep context.renderAnim() class Arguments(dict): def __init__(self): args = sys.argv[sys.argv.index('--') + 1:] for arg in args: parts = arg.split(':', 1) if len(parts) < 2: continue key, value = parts[0], parts[1] if re.search('^#[0-9A-Fa-f]{6}$', value): self[key] = color(value) elif value.lower() in ('no', 'false'): self[key] = False else: try: float_val = float(value) int_val = int(value) if float_val == int_val: self[key] = int_val else: self[key] = float_val except ValueError: self[key] = value def color(hex_color): # converts color str (#) to list of three floats # [0.0, 1.0] and returns it return [int(hex_color[1:][i:i + 2], 16) / 255.0 \ for i in xrange(0, len(hex_color) - 1, 2)] script = BlenderScript() script.render() phatch-0.2.7/data/blender/scene.blend0000644000000000000000000045416011346363116017372 0ustar rootroot00000000000000BLENDER-v249REND =SceneGLOB(= 2V  SRVSR1-Animation J  DATA  DATA  DATA   DATA @DATA @DATA @DATA `DATA `DATA  `DATA DATA  DATA @DATA @DATA @DATA( p  DATA(p   DATA( P p  DATA(P   DATA( 0 P DATA(0   @`DATA(  0 DATA(   `DATA(   @DATA( `   DATA(`   @DATA( @` DATA(@  DATA( @`DATA( @DATA( @DATA(p@DATA(p DATA(PpDATA(P@DATA(0PDATA(0 DATA(0@DATA@' O#%`"DATA`Link and MaterialsEditing>DATA`MeshEditingF>DATAAnim settingsObject>DATA DrawObjectF>DATA PConstraintsObject>DATAP EffectsObjectDATAPHooksObjectF>DATAParticle InteractionObject> DATASoftbodyObject> DATA@ OutputRender>DATA@ p!RenderRenderF>DATAp!"@ AnimRender>DATA"p!FormatRender>DATA#%333?@DhCDhCC(BDC?z?DATA%#333?/9DATA@'(  !  DATA( 2@'@`G==o?@,/)+DATA)+Transform PropertiesView3d>DATA+)3D Viewport propertiesView3d>"DATAX@,/333?????????G==o? A*A?G==o??????*Ap B??=C ݢM@ݢM@ݢM@? DATA/@,333?/9DATA 2A(`@??PףH4P?p3p3DATAp3Transform PropertiesIpo!>DATAx4`6333? zC̽̌?zC@ #< #<`jFzD OBzC̽̌?DATA0`674333? CC|||??l|DATA78`6 333? zCCHBC|||?CFC= ADATA897 333?  =rttDATA9:8 333? ?zDzDBCl||ll|zDzD=HB DATA:;9 333? BzB@l|llFzD #<HB DATAX;P?:333? ??? ???? A???PA A!O?j?}GCHB? Ap B? #<C DATAP?;333? /9DATAAJ 2@ @E`HBDDATABDLink and MaterialsEditing>DATADBMeshEditingF>DATA@E0F333?J zCB{ µCB ?BFB= ADATA0F0G@E 333?J zCCHBC$?CFC= ADATA0G`H0F333?J #DhC`DpJgChCC(BDC?z?DATA`H0G333?J /9DATAJA @} ?=o?.PNTK MDATAK MTransform PropertiesView3d>DATA MK3D Viewport propertiesView3d>"DATA0PNP333? KDATAg@heLampLampF>DATA@hpigSpotLamp>DATApij@hTexture and InputLamp>DATAjkpiMap ToLamp>piDATAkmjPreviewMaterial>DATAm0nkMaterialMaterialF>DATA0n`omPreviewWorld>0DATA`op0nWorldWorldF>0DATApq`oMist Stars PhysicsWorld>DATAqrpTexture and InputWorld>0DATAr tqMap ToWorld>0qDATA tPurOutputRender>DATAPuv tRenderRenderF>DATAvwPuAnimRender>DATAwxvFormatRender>DATAxzwLink and MaterialsEditing>DATAz@{xMeshEditingF>DATA@{p|zMesh ToolsEditing>DATAp|}@{Mesh Tools 1Editing>DATA}~p|CameraEditingF>DATA~}ShadersMaterial>DATA0~TextureMaterial>DATA0`Anim settingsObjectF>DATA`0DrawObject>DATA`ConstraintsObject>DATAScriptlinksScript>DATA EffectsObjectDATA PMap InputMaterial>DATAP Map ToMaterial>DATAPAnimAnim>DATASoundSound>DATAListenerSoundF>DATA@SequencerSound>DATA@pArmatureEditingF>DATAp@RampsMaterialF>mDATAБpMirror TranspMaterial>DATAБMist / Stars / PhysicsWorld>0DATA0БAmb OccWorld>0БDATA0`Shadow and SpotLamp>DATA`0ModifiersEditing>DATA`ShapesEditing>`DATAMultiresEditing>DATA Mesh Tools MoreEditing^>DATA PUV CalculationEditing>DATAP Object and LinksObject>DATAPRender LayersRender> tDATABakeRender>vDATApɍStampRender>wDATApɍ`Links and PipelineMaterialF>DATA`pɍPreviewTexture>DATA@333?dFDHhCRDxObCC(BDC?z?mDATAX@333?d??? ???? A??@PA Aj?c3>}GCHB? Ap B? #<C DATA0P@333?dHE}CHE}C HE}C??DATAP333?d/9DATAdZ XX`ZPoppDATAZ[[Yc#>>o?OO 8@0`DATA0`Transform PropertiesView3d,>DATA`0View PropertiesView3dT>"DATAX333????r^7d????r?^73d??c#>>oWVBi;?@,@yr?^73d??c#>>o????r^7d??@?p B??iӍ<=Cr^7d7?X<???? Gpp? Mt>DATA0@333?1D+)71D88HEVD??(EEDATA07DATA007    pP@@aDATAx@333?zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATA@ 333??zDzB@22FzD #<HB DATA@333?DdC8CnD fCC(BDC?z?DATA@333?Load Library PICTURESC:\Users\jutuveps\My Projects\phatch\data\blender\box.blend\Object\Camerad.blendZDATA@YZ [Z?i? JL 0))лDATAлTransform PropertiesView3d,>"DATAлView PropertiesView3dT>"DATAX0333?fھn=3E>-B: ?FO$y ?T??v?fHE>LO$ǓھAB:y ?n= ?T?t!?:?co@?{-ҽnҽ>N 3%H?TTY?6eEy@@ IRU>8@6+F>\|,@@B"A@?i? JLfھn=3E>-B: ?FO$y ?T??v?4f>]~<ܕm.kG@Te@p B??z:=Ch&)T>Ԕ.e><???? 0DATAx0333?zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATA0333?HEVDHEVD2 XHEVD??2DATA@CS@ff DATA 333??zDzB@22FzD #<HB DATA333?DdC8CnD fCC(BDC?z?DATA333?Save Asrary PICTURESC:\Users\jutuveps\My Projects\phatch\data\blender\x.blend\Object\scene.blend6DATA[ [`Z[$g?&?AHMQQkl xEEPDATAPTransform PropertiesView3d,>DATAPView PropertiesView3dT>"DATAXP333?/;3@??i!"4,;i!"?/;30L?.;3?i!"-;i!"4??-;@3@??)3VA$g?2N4d<3,;33&?gDATARenderRenderF>DATA AnimRender>DATA FormatRender>DATAP@333? ~CA~CA!?AFA= ADATA@@P 333? zCCHBC ?CFC= ADATA@p@333? DhC?DhCC(BDC?z?mDATAXp@333? ??? ???? A??@PA Aj?c3>}GCHB? Ap B? #<C DATA0p333? @̌AR|B1@lA A@CC #<@DATA333? /9DATA@0P !  DATApPG@? JL-=-=W-X~ 0`p DATA`OutputRender>DATA`RenderRender>DATAAnimRender0>DATA FormatRenderH>DATA PPreviewMaterial>DATAP MaterialMaterial>DATAPShadersMaterial0>DATATextureMaterialD>DATAMap InputMaterial\>DATA@Map ToMaterial`>DATA@p RampsMaterial>PDATAp @Mirror TranspMaterialH>DATA  333?*ChCCvgCC(BDC?z?DATAX p 333?*J>H!?)xu?i6>Pbܗ=(?^L?a?滎z?J>#xu?ܗ=Hi6>(? ?Pb^L?\FAA?4[?[!?@jG>gb>Pb>4Im>k&?]M^L<0@AzA=>Kc<2֍7&> ?:x¸A1vB,jB~@G@? JLJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?@?$$OAp B?=Ch?j(4?t'>d DATAxp0 333?*zC AzC A #< #<`jFzD OBDATA0p333?*;SAVE FILE/usr/home/intrr/blender/blend/untitled.blendDATAppU.=w=o?+=+=W+X,XPDATAX`333????h?j(4?t'>????hj(4t'?U.=w=o??OAp B??=Ch?j(4?t'>dEh@Eh@Eh@? DATA`333?DdC>9C,DeCC(BDC?z?DATAxP`333?zC AzC A #< #<`jFzD OBDATAP333? SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATA'ppPe?B$?AHM+++USp%DATAX"333?ݕ/?U~'?3F:?>T8165e?2>Z& 4?ߕ/?7F:?81W~>85e?'?T2>ne@>M@?4z?'''䷄?K??T?v|@?l211A 4Atp>?@@FC>G ?4xB֟&BĭeA(@e?B$?AHMݕ/?U~'?3F:?>T8165e?2>Z& 4?H?N,Z#OAp B??=Ch?j(4?t'>dA@A@A@? DATA"#333?DdC>9C,DeCC(BDC?z?DATAx#p%"333?zC AzC A #< #<`jFzD OBDATAp%#333? SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATA'0p&=+=o?US)/DATAX),333?*?3?3:-vk(4??3?3;@k(40v@?&=PU1n;+=ꉖø;ZO{:?JXA54U0AC;@j(40v@?&=+=o??3?3:-vk(4?5?5IXAp B??=C:j(4?.vdٚ@ٚ@ٚ@? DATA,-)333?*DdC>9C,DeCC(BDC?z?DATAx-/,333?*zC AzC A #< #<`jFzD OBDATA/-333?* SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendSR1nSR4-Sequence278@0Af  DATA 2 3DATA 332 DATA 33 3 DATA 3@43DATA @443DATA 45@4DATA 5`54DATA `555DATA 5 6`5DATA 665DATA 66 6TDATA 6@76TDATA @776DATA 7@7DATA(8p8 33DATA(p88823DATA(8P9p82@4DATA(P99834DATA(90:P9@44DATA(0::9 35DATA(:;0:3`5DATA(;;:5`5DATA(;;;55DATA(;`<;`5 6DATA(`<<;5 6DATA(<@=`<56DATA(@==< 66DATA(= >@=56DATA( >>=`56DATA(>? >66DATA(?p?>@4@7DATA(p???5@7DATA(?P@p? 67DATA(P@@?47DATA(@P@@77DATA0AJ2@443@GpHBFDATABCOutputRender>DATACDBRenderRenderF>DATADFCAnimRender>DATAFDFormatRender>DATA@GpH333?ʃDhCvDhCC(BDC?z?DATApH@G333?ʃ/9DATAJL0A5 33`5 !  DATAL@UJ@4@7748=i>o? PMSDATAPM@N333?ʄ~CB~CB ?BFB= ADATA@N`OPM333?ʄzCAzCA  A@FB= A ?DATAX`OS@N333?ʄ????????8=i>o?fffAD&@??fffAp B? #<C DATAS`O333?ʄAVE TARGA/t1.blend9DATA@U]L66`5 68=H>o?UUU VP[DATAVW333?JzCAzCA1||1 A@FB= A ?DATAXWP[V333?J????????8=H>o?fffA*@??fffAp B? #<C DATAP[W333?JAVE TARGA/t1.blend9DATA]f@U55668=>o?SSST^@dDATAx^`333?ʅB̽̌?B̽̌? #< #<`jFzD SQB̽̌?DATAX`@d^333?ʅ????????8=>o?fffA@??fffAp B? #<C DATA@d`333?ʅOAD FILE/9DATAf]@75 678=i>o? glDATAgh333?*zCAzCA A@FB= A ?DATAXhlg333?*????????8=i>o?fffAD&@??fffAp B? #<C DATAlh333?*AVE TARGA/t1.blend9SRn1SR5-Scriptingo ssyz  DATA o pDATA ppo DATA pp p DATA p@qpDATA @qqpDATA qr@qDATA r`rqDATA `rrrDATA r s`rDATA srDATA(ss ppDATA(s`ts pqDATA(`ttsprDATA(t@u`tqrDATA(@uut@q`rDATA(u v@uqrDATA( vvurrDATA(vw v`rrDATA(wpwv@qqDATA(pwwwo@qDATA(wPxpwo sDATA(Pxxwp sDATA(x0yPx`r sDATA(0yyxr sDATA(y0yprDATAz`{q ppr !  DATA`{z@qqr`rz==o?|}DATA|}Transform PropertiesView3d>DATA}|3D Viewport propertiesView3d>"DATAX333? ˅????????z==o?&A*A?z==o??????*Ap B??=C ?@?@?@? DATA333? ˅/9DATA`{ srrp??Pף Lp@@DATA@Transform PropertiesIpo!>DATAp@ 333? > =DATA @p333? CCx??|?DATAx`@333? zC̽̌?zC@;; #< #<`jFzD OBzC̽̌?DATA0`Ќ333? CC|||??l|DATAЌЍ` 333? zCCHBC|||?CFC= ADATAЍЎЌ 333? ?zDzDBCl||ll|zDzD=HB DATAЎЍ 333? BzB@l|llFzD #<HB DATAXЎ333? ??? ???? A???PA A!O?j?}GCHB? Ap B? #<C DATA333? /9DATAo@q`r sODATA@Link and MaterialsEditing>DATA@pMeshEditingF>DATAp@Anim settingsObject>DATAЛpDrawObjectF>DATAЛConstraintsObject>DATA0ЛEffectsObjectDATA0`HooksObjectF>DATA`0Particle InteractionObject>ЛDATA`SoftbodyObject>ЛDATAOutputRender>DATA RenderRenderF>DATA PAnimRender>DATAP FormatRender>DATAPScriptlinksScript>DATA333? ChC#DhCC(BDC?z?DATA333? /9SC@ SCScenetageainpг???=@dd??< d XZ! ??BB?????//backbuf/tmp/L?L?L??>??_??D |DATA({iDATA({iDATA({.pDATA({`jjPDATA(`{г.DATA(г{`DATA(@z,d'=A@DATAL?B ?o: ??P22 2d 22 22 22 22 22 > #<===ff??AHz?=???CDATA8'????C?N #,=P +=`??????DATAH`%?=Vy?>`fff?Ou<?DATAX1 RenderLayerIM IMRender Resultp8p8nJ??CACAcameraamera.001a.001,L>LB=B-B@?LA(LASpot.001 ????Ю?AB>??.?A4B?@@@ ???o:??????@?????DATA8'????C?55?55?0??????DATA0%??DATA(LA(LASpot.002 ????>AB>??0.?A4B?@@@ ???o:??????@?????DATA80'????C?55?55???????DATA%??DATA(WOyWOWorld5g=pb>>===??A <=@?@pA A?L= ף;>DATA(TXTXTextDATA(pEERFDATApOB0qpOBBounding Boxube?>>?>>???????????43@i!3n!4@@33@Y'?DOBd8? #=?>=???????@???POB0pqOBcameraameraamera.001 @?????ɿI@ɿ.;3?i!"-;i!"4??-;.;3@???????$Z0? ' '???<?Z0??OBd??>?>B@?u=??????OB0qPpOBcamera_targetmpty?????????????????.;3?i!"-;i!"4??-;@3@?DOBd8? #=?>=???????@???OB0PqOBfloorlane p@???????????????.;3?i!"-;i!"4??-;@3@??DOBd8?<?>Q8>???????@???@hDATAOB0qPOBLamp  ?Ν????{&?W+b=?6씾t? bfE9L"?%?_>oK? ?Ν???????33?&&?'?t?AL_> b"?oK?7씾fE&??>J/?DOBd8? <?>#y>u=???@???OB0qOBLamp.001 b٤.LX?6Ƶ????{&?W+b=?6씾t? bfE9L"?%?_>oK?b٤.LX?6Ƶ???????@?33? (@4?t??L_> b#?oK?6씾fE&?5ۿx ;Or??DOBd8? <?>#y>u=???@???MA*MAflooraterial.0016li=i=sj>?????????>?L?Vn@33???2?? ף; ף;EE ????????@?=?==??? ????L?L?L?L==ff????DATA( ME4@@aMECube.001`  ???DATAh`*DATA:??II?I?I???III??II?I??IIDATAh*DATA7 DATAh*ME@4MEPlaneE`` @5RARA?DATADATAh`*DATA`:RARARARRRRRADATAh*`DATA0`7####DATAh*DATA6DNA1@1SDNANAMEq *next*prev*data*first*lastxyzwxminxmaxyminymax*pointergroupvalval2name[32]typesubtypeflagsaveddatalentotallen*newid*libname[24]usicon_id*propertiesid*idblock*filedataname[240]filename[240]totpad*parentw[2]h[2]changed[2]pad0pad1*rect[2]*obblocktypeadrcodename[128]*bp*beztmaxrcttotrctvartypetotvertipoextraprtbitmaskslide_minslide_maxcurval*drivercurvecurshowkeymuteipoposrelativetotelempad2*weightsvgroup[32]sliderminslidermax*refkeyelemstr[32]elemsizeblock*ipo*fromtotkeyslurph**scripts*flagactscripttotscript*line*formatblenlinenostartendflagscolor[4]pad[4]*namenlineslines*curl*sellcurcselcmarkers*undo_bufundo_posundo_len*compiledmtimesizeseekpassepartalphaangleclipstaclipendlensortho_scaledrawsizeshiftxshiftyYF_dofdistYF_apertureYF_bkhtypeYF_bkhbiasYF_bkhrotscriptlink*dof_obframenrframesoffsetsfrafie_imacyclokmulti_indexlayerpassmenunribufs*gputexture*anim*rrsourcelastframetpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfile*previewlastupdatelastusedanimspeedgen_xgen_ygen_typeaspxaspy*vnodetexcomaptomaptonegblendtype*object*texuvname[32]projxprojyprojzmappingofs[3]size[3]texflagcolormodelpmaptopmaptonegnormapspacewhich_outputpad[2]rgbkdef_varcolfacnorfacvarfacdispfacwarpfacname[160]*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*instance_init)()(*callback)()versionaipotype*ima*cube[6]imat[4][4]obimat[3][3]stypeviewscalenotlaycuberesdepthrecalclastsizenoisesizeturbulbrightcontrastrfacgfacbfacfiltersizemg_Hmg_lacunaritymg_octavesmg_offsetmg_gaindist_amountns_outscalevn_w1vn_w2vn_w3vn_w4vn_mexpvn_distmvn_coltypenoisedepthnoisetypenoisebasisnoisebasis2imaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendcheckerdistnablaiuser*nodetree*plugin*coba*envuse_nodespad[7]loc[3]rot[3]mat[4][4]min[3]max[3]pad3modetotexshdwrshdwgshdwbshdwpadenergydistspotsizespotblendhaintatt1att2*curfallofffalloff_typeshadspotsizebiassoftbufsizesampbuffersfiltertypebufflagbuftyperay_sampray_sampyray_sampzray_samp_typearea_shapearea_sizearea_sizeyarea_sizezadapt_threshray_samp_methodtexactshadhalostepsun_effect_typeskyblendtypehorizon_brightnessspreadsun_brightnesssun_sizebackscattered_lightsun_intensityatm_turbidityatm_inscattering_factoratm_extinction_factoratm_distance_factorskyblendfacsky_exposuresky_colorspacepad4YF_numphotonsYF_numsearchYF_phdepthYF_useqmcYF_bufsizeYF_padYF_causticblurYF_ltradiusYF_glowintYF_glowofsYF_glowtypeYF_pad2*mtex[18]specrspecgspecbmirrmirgmirbambrambbambgambemitangspectraray_mirroralpharefspeczoffsaddtranslucencyfresnel_mirfresnel_mir_ifresnel_trafresnel_tra_ifiltertx_limittx_falloffray_depthray_depth_traharseed1seed2gloss_mirgloss_trasamp_gloss_mirsamp_gloss_traadapt_thresh_miradapt_thresh_traaniso_gloss_mirdist_mirfadeto_mirshade_flagmode_lflarecstarclinecringchasizeflaresizesubsizeflarebooststrand_stastrand_endstrand_easestrand_surfnorstrand_minstrand_widthfadestrand_uvname[32]sbiaslbiasshad_alphaseptexrgbselpr_typepr_backpr_lampml_flagdiff_shaderspec_shaderroughnessrefracparam[4]rmsdarkness*ramp_col*ramp_specrampin_colrampin_specrampblend_colrampblend_specramp_showrampfac_colrampfac_spec*groupfrictionfhreflectfhdistxyfrictdynamodesss_radius[3]sss_col[3]sss_errorsss_scalesss_iorsss_colfacsss_texfacsss_frontsss_backsss_flagsss_presetYF_arYF_agYF_abYF_dscaleYF_dpwrYF_dsmpYF_presetYF_djitgpumaterialname[256]scale*bbi1j1k1i2j2k2selcol1selcol2quat[4]expxexpyexpzradrad2s*mat*imatelemsdisp**mattotcolwiresizerendersizethreshvec[3][3]alfaweightradiush1h2f1f2f3hidevec[4]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsvtilt_interpradius_interpcharidxkernhnurb*bevobj*taperobj*textoncurve*path*keybevpathlenbevresolwidthext1ext2resolu_renresolv_renspacemodespacinglinedistshearfsizewordspaceulposulheightxofyoflinewidth*strfamily[24]*vfont*vfontb*vfonti*vfontbisepchartotboxactbox*tbselstartselend*strinfocurinfoeffect*mface*mtface*tface*mvert*medge*dvert*mcol*msticky*texcomesh*mselectvdataedatafdatatotedgetotfacetotselectact_facecubemapsizesmoothreshsubdivsubdivrsubsurftype*mr*pv*tpageuv[4][2]col[4]transptileunwrapv1v2v3v4edcodecreasebweightdef_nr*dwtotweightco[3]no[3]pad[3]uv[2]co[2]indexfis[256]v[4]midv[2]*faces*colfaces*edges*edge_boundary_states*vert_edge_map*vert_face_map*map_mem*vertslevelslevel_countcurrentnewlvledgelvlpinlvlrenderlvluse_col*edge_flags*edge_creases*vert_map*edge_map*old_faces*old_edges*errormodifiersubdivTyperenderLevels*emCache*mCachedefaxispad[6]lengthrandomizeseed*ob_arm*start_cap*end_cap*curve_ob*offset_oboffset[3]scale[3]merge_distfit_typeoffset_typecountaxistolerance*mirror_obsplit_anglevalueresval_flagslim_flagse_flagsbevel_angledefgrp_name[32]*texturestrengthdirectionmidleveltexmapping*map_objectuvlayer_name[32]uvlayer_tmp*projectors[10]*imagenum_projectorsaspectxaspectypercentfaceCountfacrepeat*objectcenterstartxstartyheightnarrowspeeddampfallofftimeoffslifetimedeformflagmulti*prevCosparentinv[4][4]cent[3]*indexartotindexforce*clothObject*sim_parms*coll_parms*point_cache*x*xnew*xold*current_xnew*current_x*current_v*mfacesnumvertsnumfacesabsorptiontime*bvhtree*dmoperationvertextotinfluencegridsizeneedbind*bindweights*bindcostotcagevert*dyngrid*dyninfluences*dynverts*pad2dyngridsizedyncellmin[3]dyncellwidthbindmat[4][4]*psystotdmverttotdmedgetotdmfacepsysrt[2]*facepavgroupprotect*fss*target*auxTargetvgroup_name[32]keepDistshrinkTypeshrinkOptsprojAxissubsurfLevels*originfactorlimit[2]originOptspntswopntsuopntsvopntswtypeutypevtypewfufvfwdudvdw*defvec[8][3]partypepar1par2par3parsubstr[32]*track*proxy*proxy_group*proxy_from*action*poselib*poseconstraintChannelsdefbasemodifiersdloc[3]orig[3]dsize[3]drot[3]obmat[4][4]constinv[4][4]laycolbitstransflagipoflagtrackflagupflagnlaflagprotectflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactorrdampingsizefacmarginmax_velmin_velm_contactProcessingThresholddtdtxactcolempty_drawtypepad1[3]empty_drawsizedupfacescapropsensorscontrollersactuatorsbbsize[3]actdefgameflaggameflag2*bsoftsoftflaganisotropicFriction[3]constraintsnlastripshooksparticlesystem*pd*soft*dup_groupfluidsimFlagrestrictflagshapenrshapeflagrecalcobody_type*fluidsimSettings*derivedDeform*derivedFinallastDataMaskstateinit_stategpulampcurindexactivedeflectforcefieldpdef_damppdef_rdamppdef_permpdef_frictpdef_rfrictf_strengthf_powerf_distf_dampmaxdistmindistmaxradminradf_power_rpdef_sbdamppdef_sbiftpdef_sboftclump_facclump_powkink_freqkink_shapekink_ampfree_endtex_nablatex_modekinkkink_axisrt2*rngf_noisesimframestartframeendframeeditframelinStiffangStiffvolumeviterationspiterationsditerationsciterationskSRHR_CLkSKHR_CLkSSHR_CLkSR_SPLT_CLkSK_SPLT_CLkSS_SPLT_CLkVCFkDPkDGkLFkPRkVCkDFkMTkCHRkKHRkSHRkAHRcollisionflagsnumclusteriterationswelding*particlestotpointtotspring*bpoint*bspringnodemassgravmediafrictrklimitphysics_speedgoalspringgoalfrictmingoalmaxgoaldefgoalvertgroupfuzzynessinspringinfrictefraintervallocalsolverflags**keystotpointkeysecondspringcolballballdampballstiffsbc_modeaeroedgeminloopsmaxloopschokesolver_IDplasticspringpreload*scratchshearstiffinpush*pointcacheshow_advancedoptionsresolutionxyzpreviewresxyzrealsizeguiDisplayModerenderDisplayModeviscosityValueviscosityModeviscosityExponentgravxgravygravzanimStartanimEndgstarmaxRefineiniVelxiniVelyiniVelz*orgMesh*meshSurface*meshBBsurfdataPath[240]bbStart[3]bbSize[3]typeFlagsdomainNovecgenvolumeInitTypepartSlipValuegenerateTracersgenerateParticlessurfaceSmoothingsurfaceSubdivsparticleInfSizeparticleInfAlphafarFieldSize*meshSurfNormalscpsTimeStartcpsTimeEndcpsQualityattractforceStrengthattractforceRadiusvelocityforceStrengthvelocityforceRadiuslastgoodframemistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposureexprangelinfaclogfacgravityactivityBoxRadiusskytypeocclusionResphysicsEngineticratemaxlogicstepphysubstepmaxphystepmisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxaodistaodistfacaoenergyaobiasaomodeaosampaomixaocolorao_adapt_threshao_adapt_speed_facao_approx_errorao_approx_correctionao_samp_methodao_gather_methodao_approx_passes*aosphere*aotableshemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammaselcolsxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizeqtcodecname[128]codecaudio_codecvideo_bitrateaudio_bitrategop_sizerc_min_raterc_max_raterc_buffer_sizemux_packet_sizemux_ratemixratemain*mat_override*light_overridelay_zmasklayflagpassflagpass_xor*avicodecdata*qtcodecdataffcodecdatacfrapsfrapefraimagesframaptothreadsframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1stereomodedimensionspresetmaximsizexschyschxpartsypartswinposplanesimtypesubimtypequalityrpadrpad1rpad2scemoderendererocresalphamodeosafrs_secedgeintsafetyborderdisprectlayersactlayxaspyaspfrs_sec_basegausspostmulpostgammaposthuepostsatdither_intensitybake_osabake_filterbake_modebake_flagbake_normal_spacebake_quad_splitbake_maxdistbake_biasdistbake_padGIqualityGIcacheGImethodGIphotonsGIdirectYF_AAYFexportxmlYF_nobumpYF_clamprgbyfpad1GIdepthGIcausdepthGIpixelspersampleGIphotoncountGImixphotonsGIphotonradiusYF_raydepthYF_AApassesYF_AAsamplesyfpad2GIshadowqualityGIrefinementGIpowerGIindirpowerYF_gammaYF_exposureYF_raybiasYF_AApixelsizeYF_AAthresholdbackbuf[160]pic[160]stampstamp_font_idstamp_udata[160]fg_stamp[4]bg_stamp[4]simplify_subsurfsimplify_shadowsamplessimplify_particlessimplify_aossscineonwhitecineonblackcineongammajp2_presetjp2_depthrpad3domeresdomemodedomeangledometiltdomeresbuf*dometextparticle_percsubsurf_maxshadbufsample_maxao_errorcol[3]framename[64]*brushtoolseam_bleednormal_anglestepinverttotrekeytotaddkeybrushtypebrush[7]emitterdistdraw_timedname[36]mat[3][3]cornertypeeditbutflagjointrilimitdegrturnextr_offsdoublimitsegmentsringsverticesunwrapperuvcalc_radiusuvcalc_cubesizeuvcalc_marginuvcalc_mapdiruvcalc_mapalignuvcalc_flagautoik_chainlenimapaintparticleselect_threshclean_threshretopo_moderetopo_paint_toolline_divellipse_divretopo_hotspotmultires_subdiv_typeskgen_resolutionskgen_threshold_internalskgen_threshold_externalskgen_length_ratioskgen_length_limitskgen_angle_limitskgen_correlation_limitskgen_symmetry_limitskgen_retarget_angle_weightskgen_retarget_length_weightskgen_retarget_distance_weightskgen_optionsskgen_postproskgen_postpro_passesskgen_subdivisions[3]skgen_multi_level*skgen_templatebone_sketchingbone_sketching_convertskgen_subdivision_numberskgen_retarget_optionsskgen_retarget_rollskgen_side_string[8]skgen_num_string[8]edge_modepad3[2]dirview*session*cumapdrawbrushsmoothbrushpinchbrushinflatebrushgrabbrushlayerbrushflattenbrushpivot[3]brush_typetexnrtexrepttexfadetexsepaveragingtablet_sizetablet_strengthsymmrakeaxislock*camera*world*setbase*basactcursor[3]twcent[3]twmin[3]twmax[3]editbutsizeselectmodeproportionalprop_modeautomergepad5pad6autokey_mode*ed*radioframing*toolsettingsaudiotransform_spacesjumpframesnap_modesnap_flagsnap_target*theDagdagisvaliddagflagssculptdataframe_stepzoomblendximyimspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]zfaclay_usedpersp*ob_centre*bgpic*localvd*ri*retopo_view_data*depthsob_centre_bone[32]localviewlayactscenelockaroundcamzoompivot_lastgridgridviewpixsizenearfarcamdxcamdygridlinesviewbutgridflagmodeselecttwtypetwmodetwflagtwdrawflagtwmat[4][4]clip[4][4]*clipbbafterdrawzbufxrayflag2gridsubdivkeyflagsndofmodendoffilter*properties_storage*gpdlviewquat[4]lpersplviewverthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinycursor[2]rowbutv2d*editipoipokeyactname[32]constname[32]bonename[32]totipopinbutofschannellockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexfromshowgroupmodeltypescriptblockre_alignoldkeypresstab[7]render_sizechanshownzebra*filelisttotfiletitle[24]dir[240]file[80]ofssortmaxnamelencollumsf_fpfp_str[8]*libfiledataretvalmenuact(*returnfunc)()(*returnfunc_event)()(*returnfunc_args)()*arg1*arg2*menup*pupmenuoopsvisiflagtree*treestoresearch_string[32]search_tsesearch_flagsdo_outlinevisstoreflagdeps_flagsimanrcurtileimtypenrdt_uvstickydt_uvstretchpad[5]centxcentyautosnap*texttopviewlinesfont_idlheightleftshowlinenrstabnumbercurrtab_setshowsyntaxoverwritepix_per_linetxtscrolltxtbarwordwrapdoplugins*py_draw*py_event*py_button*py_browsercallback*py_globaldictlastspacescriptname[256]scriptarg[256]*script*but_refsredraws*idaspect*curfont*edittreetreetype*filesactive_filenumtilesxnumtilesyselstateviewrectbookmarkrectscrollposscrollheightscrollareaactive_bookmarkprv_wprv_h*imgoutline[4]neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]textfield_hi[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeiconfile[80]back[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]lamp[4]active[4]group[4]group_active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]edge_seam[4]edge_sharp[4]edge_facesel[4]face[4]face_select[4]face_dot[4]normal[4]bone_solid[4]bone_pose[4]strip[4]strip_select[4]cframe[4]vertex_sizefacedot_sizebpad[2]syntaxl[4]syntaxn[4]syntaxb[4]syntaxv[4]syntaxc[4]movie[4]image[4]scene[4]audio[4]effect[4]plugin[4]transition[4]meta[4]editmesh_active[4]handle_vertex[4]handle_vertex_select[4]handle_vertex_sizehpad[7]solid[4]tuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsttimetnodetarm[20]bpad[4]bpad1[4]spec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]yfexportdir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefviewzoomconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[256]themesundostepsundomemorygp_manhattendistgp_euclideandistgp_erasergp_settingstb_leftmousetb_rightmouselight[3]tw_hotspottw_flagtw_handlesizetw_sizetextimeouttexcollectratememcachelimitprefetchframesframeserverportpad_rot_angleobcenter_diarvisizervibrightrecent_filessmooth_viewtxglreslimitndof_panndof_rotatecurssizepad[8]versemaster[160]verseuser[160]glalphaclipautokey_flagcoba_weightvertbaseedgebaseareabase*sceneendxendysizexsizeyscenenrscreennrfullmainwinwinakthandler[8]*newvvec*v1*v2panelname[64]tabname[64]drawname[64]ofsxofsycontrolsnapold_ofsxold_ofsysortcounter*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanelssubvstr[4]subversionpadsminversionminsubversiondisplaymode*curscreen*curscenefileflagsglobalfname[80]*ibuf*ibuf_comp*se1*se2*se3nrbottomrightxofsyofslift[3]gamma[3]gain[3]saturation*guidir[160]donestartstillendstill*stripdataorxory*crop*transform*color_balance*tstripdata*tstripdata_startstill*tstripdata_endstill*ibuf_startstill*ibuf_endstill*instance_private_data**current_private_data*tmpstartofsendofsmachinestartdispenddispmulhandsizeanim_preseek*stripfacf0facf1*seq1*seq2*seq3seqbase*sound*hdaudiolevelpanstrobe*effectdataanim_startofsanim_endofsblend_modeblend_opacity*oldbasep*parseq*seqbasepmetastackedgeWidthforwardwipetypefMinifClampfBoostdDistdQualitybNoCompScalexIniScaleyIniScalexFinScaleyFinxInixFinyIniyFinrotInirotFininterpolation*frameMapglobalSpeedlastValidFramebuttypeuserjitstatotpartnormfacobfacrandfactexfacrandlifeforce[3]vectsizemaxlendefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstepomattimetexspeedtexflag2negvertgroup_vvgroupname[32]vgroupname_v[32]*keysminfacusedusedelemdxdylinkotypeold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]delaydurationmaterialName[32]damptimerpropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linkstapjoyindexaxis_singleaxisfbuttonhathatfprecisionstr[128]module[64]*mynewinputstotslinks**slinksvalostate_mask*actframeProp[32]blendinpriorityend_resetstrideaxisstridelengthsndnrpad1[2]makecopycopymadepad2[1]track*melinVelocity[3]angVelocity[3]localflagdyn_operationforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]*referencebutstabutendminmaxvisifacrotdampminloc[3]maxloc[3]minrot[3]maxrot[3]matprop[32]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]int_argfloat_arggoaccellerationmaxspeedmaxrotspeedmaxtiltspeedtiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*lamprengobjectdupli_ofs[3]childbaserollhead[3]tail[3]bone_mat[3][3]arm_head[3]arm_tail[3]arm_mat[4][4]xwidthzwidthease1ease2rad_headrad_tailbonebasechainbasepathflaglayer_protectedghostepghostsizeghosttypepathsizeghostsfghostefpathsfpathefpathbcpathacconstflagikflagselectflagagrp_index*bone*childiktree*b_bone_mats*dual_quat*b_bone_dual_quatschan_mat[4][4]pose_mat[4][4]pose_head[3]pose_tail[3]limitmin[3]limitmax[3]stiffness[3]ikstretch*customchanbaseproxy_layerstride_offset[3]cyclic_offset[3]agroupsactive_groupcustomColcs*grpreserved1groupsactive_markeractnractwidthtimeslidename[30]ownspacetarspaceenforceheadtail*tarsubtarget[32]matrix[4][4]space*proptarnumtargetsiterationsrootbonemax_rootbone*poletarpolesubtarget[32]poleangleorientweightgrabtarget[3]reserved2minmaxflagstuckcache[3]lockflagfollowflagvolmodeplaneorglengthbulgepivXpivYpivZaxXaxYaxZminLimit[6]maxLimit[6]extraFzinvmat[4][4]fromtomap[3]expofrom_min[3]from_max[3]to_min[3]to_max[3]zminzmaxpad[9]channel[32]no_rot_axisstride_axiscurmodactstartactendactoffsstridelenblendoutstridechannel[32]offs_bone[32]hasinputhasoutputdatatypesockettype*new_socknslimitstack_indexinternstack_index_extlocxlocyown_indexto_index*tosock*link*new_nodeusername[32]lastyoutputs*storageminiwidthcustom1custom2custom3custom4need_execexectotrbutrprvr*typeinfo*fromnode*tonode*fromsocknodeslinks*stack*threadstackinitstacksizecur_indexalltypes*owntype*selin*selout(*timecursor)()(*stats_draw)()(*test_break)()cyclicmoviesamplesminspeedpercentxpercentybokehcurvedimage_in_widthimage_in_heightcenter_xcenter_yspiniterwrapsigma_colorsigma_spacehuesatt1t2t3fstrengthfalphakey[4]x1x2y1y2colname[32]bktyperotationpreviewgamcono_zbuffstopmaxblurbthresh*dict*nodeangle_ofscolmodmixthresholdfademcjitprojfitshortymintablemaxtableext_in[2]ext_out[2]*curve*table*premultablecurrcliprcm[4]black[3]white[3]bwmul[3]sample[3]offset[2]innerradiusratergb[3]cloneactive_rndactive_cloneactive_mask*layerstotlayermaxlayertotsize*pooleditflagvel[3]rot[4]ave[3]numparentpa[4]w[4]fuv[4]foffsetrand[3]*stick_obprev_state*hairi_rot[4]r_rot[4]r_ave[3]r_ve[3]dietimebanksizemulnum_dmcachebpialiveloopdistrphystyperotmodeavemodereacteventdrawdraw_asdraw_sizechildtypedraw_stepren_stephair_stepkeys_stepadapt_angleadapt_pixrotfromintegratornbetweenboidneighboursbb_alignbb_uv_splitbb_animbb_split_offsetbb_tiltbb_rand_tiltbb_offset[2]simplify_flagsimplify_refsizesimplify_ratesimplify_transitionsimplify_viewporttimetweakjitfackeyed_timeeff_hairgrid_respartfactanfactanphasereactfacavefacphasefacrandrotfacrandphasefacrandsizereactshapeacc[3]dragfacbrownfacdampfacabslengthrandlengthchild_nbrren_child_nbrparentschildsizechildrandsizechildradchildflatchildspreadclumpfacclumppowrough1rough1_sizerough2rough2_sizerough2_thresrough_endrough_end_shapebranch_thresdraw_line[2]max_lat_accmax_tan_accaverage_velbankingmax_bankgroundzboidfac[8]boidrule[8]*eff_group*dup_ob*bb_ob*pd2*part*edit**pathcache**childcachepathcachebufschildcachebufs*target_ob*keyed_ob*latticeeffectorsreacteventstotchildtotcachedtotchildcachetarget_psyskeyed_psystotkeyedbakespacebb_uvname[3][32]vgroup[12]vg_negrt3*renderdata*cacheCdisCvi[3]structuralbendingmax_bendmax_structmax_shearavg_spring_lentimescaleeff_force_scaleeff_wind_scalesim_time_oldstepsPerFrameprerollmaxspringlensolver_typevgroup_bendvgroup_massvgroup_structpresets*collision_listepsilonself_frictionselfepsilonself_loop_countloop_countpressure*pointstotpointsthicknessstrokesframenum*actframegstepinfo[128]sbuffer_sizesbuffer_sflag*sbufferTYPEdcharucharshortushortintlongulongfloatdoublevoidLinkLinkDataListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDPropertyDataIDPropertyIDLibraryFileDataPreviewImageIpoDriverObjectIpoCurveBPointBezTripleIpoKeyBlockKeyScriptLinkTextLineTextMarkerTextPackedFileCameraImageUserImageGPUTextureanimRenderResultMTexTexPluginTexCBDataColorBandEnvMapImBufbNodeTreeTexMappingLampCurveMappingWaveMaterialGroupVFontVFontDataMetaElemBoundBoxMetaBallNurbCharInfoTextBoxCurvePathMeshMFaceMTFaceTFaceMVertMEdgeMDeformVertMColMStickyMSelectCustomDataMultiresPartialVisibilityMDeformWeightMTexPolyMLoopUVMLoopColMFloatPropertyMIntPropertyMStringPropertyOrigSpaceFaceMultiresColMultiresColFaceMultiresFaceMultiresEdgeMultiresLevelMultiresMapNodeModifierDataSubsurfModifierDataLatticeModifierDataCurveModifierDataBuildModifierDataMaskModifierDataArrayModifierDataMirrorModifierDataEdgeSplitModifierDataBevelModifierDataBMeshModifierDataDisplaceModifierDataUVProjectModifierDataDecimateModifierDataSmoothModifierDataCastModifierDataWaveModifierDataArmatureModifierDataHookModifierDataSoftbodyModifierDataClothModifierDataClothClothSimSettingsClothCollSettingsPointCacheCollisionModifierDataBVHTreeSurfaceModifierDataDerivedMeshBVHTreeFromMeshBooleanModifierDataMDefInfluenceMDefCellMeshDeformModifierDataParticleSystemModifierDataParticleSystemParticleInstanceModifierDataExplodeModifierDataFluidsimModifierDataFluidsimSettingsShrinkwrapModifierDataSimpleDeformModifierDataLatticebDeformGroupbActionbPoseBulletSoftBodyPartDeflectSoftBodyObHookRNGSBVertexBodyPointBodySpringSBScratchWorldRadioBaseAviCodecDataQuicktimeCodecDataFFMpegCodecDataAudioDataSceneRenderLayerRenderDataRenderProfileGameFramingTimeMarkerImagePaintSettingsBrushParticleBrushDataParticleEditSettingsTransformOrientationToolSettingsBrushDataSculptDataSculptSessionSceneDagForestBGpicView3DSpaceLinkScrAreaRenderInfoRetopoViewDataViewDepthsbGPdataView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsTreeStoreTreeStoreElemSpaceImageSpaceNlaSpaceTextScriptSpaceScriptSpaceTimeSpaceNodeSpaceImaSelFileListThemeUIThemeSpaceThemeWireColorbThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemTStripElemStripCropStripTransformStripColorBalanceStripColorBalanceGUIHelperStripProxyStripPluginSeqSequencebSoundhdaudioMetaStackEditingWipeVarsGlowVarsTransformVarsSolidColorVarsSpeedControlVarsEffectBuildEffPartEffParticleWaveEffOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbActuatorSensorbDelaySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbJoystickSensorbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorbTwoDFilterActuatorbParentActuatorbStateActuatorFreeCamerabSamplebSoundListenerSpaceSoundGroupObjectBonebArmaturebPoseChannelbActionGroupbActionChannelSpaceActionbConstraintChannelbConstraintbConstraintTargetbPythonConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbMinMaxConstraintbSizeLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbStretchToConstraintbRigidBodyJointConstraintbClampToConstraintbChildOfConstraintbTransformConstraintbLocLimitConstraintbRotLimitConstraintbSizeLimitConstraintbDistLimitConstraintbShrinkwrapConstraintbActionModifierbActionStripbNodeStackbNodeSocketbNodeLinkbNodebNodePreviewbNodeTypeNodeImageAnimNodeBlurDataNodeDBlurDataNodeBilateralBlurDataNodeHueSatNodeImageFileNodeChromaNodeTwoXYsNodeTwoFloatsNodeGeometryNodeVertexColNodeDefocusNodeScriptDictNodeGlareNodeTonemapNodeLensDistTexNodeOutputCurveMapPointCurveMapBrushCloneCustomDataLayerHairKeyParticleKeyChildParticleParticleDataParticleSettingsParticleEditParticleCacheKeyLinkNodebGPDspointbGPDstrokebGPDframebGPDlayerTLEN   `HH(0p$8p(0 @x8Ph`hP0@  p0 @ `@XhpPpPHxHHhxx@` PP`PPPx0Hx((8X@XHX@@X0 0x0 x8@8( ((P0@ H 0 0 H@@P00Hh(H,(lH`h<PP` XPpT `@8p(X(XX8PPp800H0H08hp`8H(0( (@   8H8H (STRC9                     !"#$%&'()*+, -./0!!!"1#234./56789  :;<=>$ ?@.AB%%%%C=/DEF GHIJ& %KLM= N$OPQR'STUV%(((WXY) ))Z[\+]^_*`]a b(c(def ghij kl+mn]% ,opqrstuvwxyz{|$O'} ~- . " /01%++ 2 394   %5C@6$@57 .8qr38-9$O.467:    -;P  <Fqr !"#$%&'()*+,-.+/0123456789:;<=>?@ABCDEFGHIJKL2M$O'}=$O>NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw xyz{|}~/@66 2M9$O?F'} @%A+BBBCDC  $O># "%EEE"1#2F%FGH9C     $OI&> FbC    @ @@@%GFFJ'C $O&>KLMNOPQ R!J"S#T$T%T&6'()*+%,-./U0V1 M 2345 67K89:;%<O89=>W?PW@ANBC>DQX.25 67YEZ%RFSGL3.25 67[H\I]J^3_`_4aKLbMLcccaN`ObPQ R SdT6('%NUU VNUWXYZ[\]T$T&^_V`aKbOc('6%eee dfeefVg] h igee hee jkiee[lmnjee oH k ee p q r stulvwx]yleez{ |mee}]n ee~%]oee%p ee3 %q ee .]%reeseetee muee 3 %+veeF w ee xeeyeez{|}~eeNNNNNNK%eeee %ee %6ee9ee -eeee} ee  k ee  z%F%"$O&PC% o &    $OIC      >      !"#$%'} & ' ( )*G+4,-./0 1 2 3 456?789:;,<=>?@ABCF D & EF$GHIJKLMNOPQRSTUVWXYZ[\]^_`abcd3efn}ghijklmnopqrstuvwxyz{|}~,%Q}0JJJ$ONG/TVU      +$O2M'} !"#$%&'( ) *+,-./0123%4 5 67F8 9:;<=]>?@ABCDD >E?FGH%IJKLMNOPQRSTUVWXYZ[\]^d_`"mabcdefghi#jklmn opqrstuvw xy%z{|}~ F* +F+F m8%   m   2M</] !+ "#$. %&'()*+,-./0129 34567'} g 89:;<=>?@@A% .- mBCDEKFGHIJKLMNOPQRS  " TUVWXYZ[\]^_`+sabcdefg'hijklmnopqCr st5uvwxyz {|}~01$@^kFGHIFGHIFGHIF  $OPA.$FGHWI  %/FGHI B|!FGHI+F     FGHI 9  FGHI.-< ,B | FGHIFGHI*]      ] FGH]+ FGHFGHIP  99%|*FGHI f%+     8     D6 !"#$%&'()*+,-./012345_6789:;<=>?@ABCDEFGHIJK "%LMNOPQRSTUVWXYZ[\]^%4_B`abcdefghijklmnopqrstuvwxyz{ |}~%26   % v%F4F'}    f  88  %0mj%988      +  [$O0          %9p !"# $%&'()*+,-.%/0]l12929-234\5Qn6789:;<=%>?@ABCDEFGHvIJKLM?2NOEP QR S TU% V WXY%+F>Z%[\]^_%`a%bc%de Fpznbfg +h ijkTlmn+F o -p% qzrstuvwx*y z{nT|F  o}~% - 4\ 4\  4\m   -J % " ` -  T  4\+@ -z  % 4\D@?nf j+Fk4\_* - zT  - % ++ $Om]FGH   F - %? & l   "   1  &        %!!! """!$O    g%#FGHI $$$$O % %%      %$O& && %'*  (  ) ]%* + , +F - . [\%/ !0 "1 #$%&2  '()*+,-./%+F3 v4 %05 123456786    9:v7    9:v8    9:v9  %: ;; ;;<= -<<< >?$O [\@ABCDEF = GHIJ>>>>K=LMNOP+QRST>U?V@ @@@WXYN { Z [QR\]^_`abcdeABf???@g@h>i>U9 j k=l mnop qBr>s>t u vwCxy%Dz{D|}"~%%E pB%F%GHhij9IJKLMN zO  P jpmQ[%HR%STU TTT< @UV.\% Cm\/%2MVW F_ TW% XB%YBZ[ YBYXYMm%Qd\p1F.bc4\:  953 678        m      l            ^\]    ! " # $ % & ' ( ) * + , - ?7?. / 0 $O51 %\2 [Z]3 ^4 ^5 6 7 6 8 9 : ; < Nn5= > ? 9@ A B /C D E F G H }{"_I J K L M N O P Q R S T U V W ]X Y Z [ \ ] ^ %F|__ ` a b ]c d `e aaa`f g h bbb i j c cc bk h l ^m  xn o p ENDBphatch-0.2.7/data/blender/sphere.blend0000644000000000000000000050666411346363116017572 0ustar rootroot00000000000000BLENDER-v249REND jv SceneGLOB(jv  2F SR:SR1-AnimationpvvPAЯ2P̒F DATA &DATA &࣠ DATA ࣠@& DATA @/ڣ࣠DATA /ڣ0fp@DATA 0fp e/ڣDATA eh0fpDATA h eDATA pphDATA pp BDATA BҢppDATA ҢP BDATA PpvҢDATA pvPDATA(v@L&࣠DATA(@L;[v@DATA(;[W@L&0fpDATA(W0;[࣠ eDATA(0 ѢW e0fpDATA( Ѣm0h/ڣDATA(mP Ѣ eDATA(P0smhDATA(0s` LP e/ڣDATA(` Lp0sppDATA(p_` L B/ڣDATA(_@p@ BDATA(@һ_pp BDATA(һ ~@ҢhDATA( ~(\һP0fpDATA((\e ~PDATA(ei(\PҢDATA(ilepvppDATA(l@ipv BDATA(@@RlҢ/ڣDATA(@R@pvҢDATA(PA@Rpp0fpDATA(PApvPDATAЯ2`2pp B@O0'`Kp3piDATAp3MLink and MaterialsEditing>DATAMp3MeshEditingF>DATApeMAnim settingsObject>DATApePcDrawObjectF>DATAPcCpeConstraintsObject>DATACkPcEffectsObjectDATAkCHooksObjectF>peDATAUkParticle InteractionObject>PcDATAU ;SoftbodyObject>PcDATA ;ҡUOutputRender>DATAҡ 2 ;RenderRenderF>DATA 2piҡAnimRender>DATApi 2FormatRender>DATA0'`K333?@DhCDhCC(BDC?z?DATA`K0'333?/9DATA`2HЯ20fp&࣠ e !  DATAH`2ҢPhG==o?`ݛpBVӫDATAӫTransform PropertiesView3d>DATAӫ3D Viewport propertiesView3d>"DATAX`ݛpBV333?????????G==o? A*A?G==o??????*A B??=C ݢM@ݢM@ݢM@? DATApBV`ݛ333?/9DATAD8Hh e/ڣ??PףHa U@0V@0VDATA@0VTransform PropertiesIpo!>DATAxa`333? zC̽̌?zC@ #< #<`jFzD OBzC̽̌?DATA0`ݛa333? CC|||??l|DATAݛ̫` 333? zCCHBC|||?CFC= ADATA̫`ݛ 333?  =rttDATA``̫ 333? ?zDzDBCl||ll|zDzD=HB DATA`/` 333? BzB@l|llFzD #<HB DATAX/ U`333? ??? ???? A???PA A!O?j?}GCHB? A B? #<C DATA U/333? /9DATAD8P̒pvҢ/ڣ B ի@3UDATA@3ULink and MaterialsEditing>DATAU@3MeshEditingF>DATAիU333?J zCB{ µCB ?BFB= ADATAU:ի 333?J zCCHBC$?CFC= ADATA:U333?J #DhC`DpJgChCC(BDC?z?DATA:333?J /9DATAP̒D8pp0fpPpv} ?=o?.hD͒;DATA͒;Transform PropertiesView3d>DATA;͒3D Viewport propertiesView3d>"DATA0haU333? KDATApi6'@eULampLampF>DATA6' 8'piSpotLamp>DATA 8'٢6'Texture and InputLamp>DATA٢٢ 8'Map ToLamp> 8'DATA٢ġ٢PreviewMaterial>DATAġġ٢MaterialMaterialF>DATAġd8ġPreviewWorld>dDATAd8e8ġWorldWorldF>dDATAe8d8Mist Stars PhysicsWorld>DATA0e8Texture and InputWorld>dDATA0Map ToWorld>dDATA0OutputRender>DATA2RenderRenderF>DATA22AnimRender>DATA22FormatRender>DATA@2Link and MaterialsEditing>\DATA@FYMeshEditingF>\DATAFYGY@Mesh ToolsEditing>DATAGYHFYMesh Tools 1Editing>DATAHIGYCameraEditingF>DATAId֠HShadersMaterial>DATAd֠e֠ITextureMaterial>xDATAe֠Dd֠Anim settingsObjectF>DATADFe֠DrawObject>DATAF<DConstraintsObject>DATA<<FScriptlinksScript>DATA<x<EffectsObjectFDATAx@x<Map InputMaterial>DATA@xkxMap ToMaterial>xDATAkk@xAnimAnim>DATAkDkSoundSound>DATAD FkListenerSoundF>DATA FѢDSequencerSound>DATAѢѢ FArmatureEditingF>DATAѢѢRampsMaterialF>ġDATAѢMirror TranspMaterial>IDATA2Mist / Stars / PhysicsWorld>dDATA22Amb OccWorld>dDATA22Shadow and SpotLamp>DATA2ModifiersEditing>\DATA𺾣ShapesEditing>\DATA𺾣 MultiresEditing>\DATA 𺾣Mesh Tools MoreEditing^>DATA UV CalculationEditing>𺾣DATAeTexture FaceEditing>𺾣DATAe eLinks and PipelineMaterial>DATA e eSSSMaterial>IDATA   ePreviewTexture>^DATA  + TextureTextureF>^DATA +P+ ColorsTextureF>^ DATAP+P +ImageTexture>^DATAPP+Map ImageTexture>^DATAXPRender LayersRender>DATAXXBakeRender>2DATAXiXStampRender>2DATAiXObject and LinksObject>DATA@j\333? hHDhCDdhCC(BDC?z?0mDATAX\`U@j333? h??? ???? A??@PA Aj?c3>}GCHB? A B? #<C DATA0`U$s\333? hHE}CHE}C HE}C??DATA$s`U333? h/9DATAЍU0` hں֠%K DDATA0`)ЍU;ǡpzUCpw=6>o?=g=+=,g T<KҢ  a `DATAa `Transform PropertiesView3d,>DATA `aView PropertiesView3dT>"DATA KP333?0`CCp?˾?T<dL?o@DATAXP=K333?0`????????w=6>o?{IAG@y?w=6>o??????{IA? B??zT==C7?X<sx@x@x@0T?? DATAx=KP333?0`zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATA0Kh=333?0`HEVDHEVD2 XHEVD??2DATAhP?K 333?0`?zDzB@22FzD #<HB DATAP?Ңh333?0`DdC8CnD fCC(BDC?z?DATAҢP?333?0`LSave FileNT PICTURES/Users/ton/Desktop/umpbug Folder/ender.app/Contents/Resources/untitled.blend DATA)pѺ0`88љ;ǡ?? JL;;+;, <C֠pp@+DATA@+Transform PropertiesView3d,>DATA@+View PropertiesView3dT>"DATAXC֠Ϻ333?)Cھb7g?g?~7">Ң6?:ɶL??w8C?ھg?@6ߟ8?g?)>fF@??>?!7^gg5}?T7ھ"ھm64?6:6k`?T6@w8C@ǾS?@6?p,w9uXoՔiA@qo?8@?? JLCھb7g?g?~7">Ң6?:ɶL??w8C?>*@ܟ? B??:=CT$@.@2?7?X<???? DATAxϺ@[C֠333?)zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATA0@[\Ϻ333?)HEVDHEVD2 XHEVD??2pkpkDATA@pkCS@ffFDATA\F֠@[ 333?)?zDzB@22FzD #<HB DATAF֠\333?)DdC8CnD fCC(BDC?z?DATAF֠333?)Load Library PICTURESC:\Users\jutuveps\My Projects\phatch-blender\data\blender\scene.blend\Object\sphere.blend66.JPGODATApѺ)pzUљ%KC?M? JL=i=i= Tt 2G֠G֠hhDATAhhTransform PropertiesView3d,>DATAhhView PropertiesView3dT>"DATAX PSAF DATA  8VDATA 8Vº DATA º`4 8V DATA `4pΣºDATA pΣb`4<DATA b5pΣ<DATA 5bDATA 25DATA 2@,<DATA @P2,DATA P @DATA PeP,DATA Pe4 DATA 4PeDATA( k  8VºDATA( + k`4DATA(+ pΣDATA(X+b`4DATA(XbbpΣDATA(bp,X 8V5DATA(p,P5bºDATA(P5]p,5DATA(]P5bDATA(&s]2pΣDATA(&sҢb2DATA(Ң h&s@DATA( hҢ@2DATA(P hPpΣDATA(PU5PDATA(U UP@ DATA( UP;U 2DATA(P;; U PDATA(;ҡP;PePDATA(ҡ`ҡ; PeDATA(`ҡP2ҡ45DATA(P22`ҡ@4DATA(2P24PeDATA>S 8pΣb`4?@Pף;;!Љg¢@8DATA0OutputRender>DATA07RenderRenderF>DATA7@80AnimRender>DATA@87FormatRender>DATAЉPE8333? ~CA~CA!?AFA= ADATAPE8ԌЉ 333? zCCHBC ?CFC= ADATAԌ8PE8333? DhC?DhCC(BDC?z?mDATAX8ՌԌ333? ??? ???? A??@PA Aj?c3>}GCHB? A B? #<C DATA0Ռg¢8333? @̌AR|B1@lA A@CC #<@DATAg¢Ռ333? /9DATA 8U>S5 8Vº !  DATAU 82@bG@? JL-=-=W-X~U`Lʘ`U UDATA`U љOutputRender>DATA љ љ`URenderRender>DATA љ`݌ љAnimRender0>DATA`݌ތ љFormatRenderH>DATAތ02`݌PreviewMaterial>DATA02`2ތMaterialMaterial>DATA`20202ShadersMaterial0>DATA02`2`2TextureMaterialD>DATA`20*02Map InputMaterial\>DATA0*1*`2Map ToMaterial`>DATA1* U0*RampsMaterial>02DATA U1*Mirror TranspMaterialH>DATAU0333?*ChCCvgCC(BDC?z?DATAX0AU333?*J>H!?)xu?i6>Pbܗ=(?^L?a?滎z?J>#xu?ܗ=Hi6>(? ?Pb^L?\FAA?4[?[!?@jG>gb>Pb>4Im>k&?]M^L<0@AzA=>Kc<2֍7&> ?:x¸A1vB,jB~@G@? JLJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?@?$$OA B?=Ch?j(4?t'>d DATAxA`Lʘ0333?*zC AzC A #< #<`jFzD OBDATA`LʘA333?*;SAVE FILE/usr/home/intrr/blender/blend/untitled.blendDATA,KUpΣP 2U.=w=o?+=+=W+X,X0)K2DATAX0)KNʘ333????h?j(4?t'>????hj(4t'?U.=w=o??OA B??=Ch?j(4?t'>dEh@Eh@Eh@? DATANʘ*0)K333?DdC>9C,DeCC(BDC?z?DATAx*2Nʘ333?zC AzC A #< #<`jFzD OBDATA2*333? SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATA,KAPe4@ e?B$?AHM+++USP0DATAXP0@2333?ݕ/?U~'?3F:?>T8165e?2>Z& 4?ߕ/?7F:?81W~>85e?'?T2>ne@>M@?4z?'''䷄?K??T?v|@?l211A 4Atp>?@@FC>G ?4xB֟&BĭeA(@e?B$?AHMݕ/?U~'?3F:?>T8165e?2>Z& 4?H?N,Z#OA B??=Ch?j(4?t'>dA@A@A@? DATA@2`ЌP0333?DdC>9C,DeCC(BDC?z?DATAx`Ќ@2333?zC AzC A #< #<`jFzD OBDATA`Ќ333? SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATAA,KP54Pe&=+=o?US2 !DATAX2 2333?*?3?3:-vk(4??3?3;@k(40v@?&=PU1n;+=ꉖø;ZO{:?JXA54U0AC;@j(40v@?&=+=o??3?3:-vk(4?5?5IXA B??=C:j(4?.vdٚ@ٚ@ٚ@? DATA 2 Ҍ2333?*DdC>9C,DeCC(BDC?z?DATAx Ҍ ! 2333?*zC AzC A #< #<`jFzD OBDATA ! Ҍ333?* SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendSRߌ p1VSR4-Sequence`#³p90@_pF DATA `##DATA # $`# DATA $$# DATA $$ $DATA $@%$DATA @%%$DATA %&@%DATA &P2%DATA P20׌&DATA 0׌UP2DATA UU0׌TDATA U`³UTDATA `³³UDATA ³`³DATA(p9i# $DATA(iip9`#$DATA(i`(i`#$DATA(`((i$@%DATA((İ`($@%DATA(İİ(#%DATA(İ0 љİ $&DATA(0 љ љİ%&DATA( љ20 љ%P2DATA(22 љ&0׌DATA(2220׌P2DATA(222UP2DATA(22*2U0׌DATA(2*P3*2%UDATA(P3*0U2*&UDATA(0UUP3*UUDATA(U0j¢0U`³$DATA(0j¢j¢U`³P2DATA(j¢ 0j¢³0׌DATA( j¢³@%DATA( `³³DATA0@U`#$@%$U,DATA,0OutputRender>DATA0`,RenderRenderF>DATA`0AnimRender>DATA`FormatRender>DATAU333?ʃDhCvDhCC(BDC?z?DATAU333?ʃ/9DATA@UU0%# $& !  DATAU @U$`³³@%8=i>o? @(ʢPDATA@(ʢ0)ʢ333?ʄ~CB~CB ?BFB= ADATA0)ʢP*ʢ@(ʢ333?ʄzCAzCA  A@FB= A ?DATAXP*ʢP0)ʢ333?ʄ????????8=i>o?fffAD&@??fffA B? #<C DATAPP*ʢ333?ʄAVE TARGA/t1.blend9DATA 0\pUUU&0׌8=H>o?UUU  `UDATA U333?JzCAzCA1||1 A@FB= A ?DATAXU`U 333?J????????8=H>o?fffA*@??fffA B? #<C DATA`UU333?JAVE TARGA/t1.blend9DATA0\p@_p P2%UU8=>o?SSST]p3DATAx]p00333?ʅB̽̌?B̽̌? #< #<`jFzD SQB̽̌?DATAX003]p333?ʅ????????8=>o?fffA@??fffA B? #<C DATA300333?ʅOAD FILE/9DATA@_p0\p`³P20׌³8=i>o? `p3DATA`p/333?*zCAzCA A@FB= A ?DATAX/3`p333?*????????8=i>o?fffAD&@??fffA B? #<C DATA3/333?*AVE TARGA/t1.blend9SR ߌSR5-Scripting9PUi֠ j֠ǰF DATA 9DATA 69 DATA 65 DATA 5-6DATA -U5DATA Uap-DATA apbpUDATA bpapDATA PbpDATA PDATA(UPU6DATA(PUUUUDATA(U0UPU6apDATA(0UUUUapDATA(UU0U-bpDATA(UUUUDATA(UUUapDATA(U`UUbpDATA(`UUUU-DATA(U@U`U9-DATA(@UUU9PDATA(U U@U5PDATA( UUUPbpDATA(Ui֠ UPDATA(i֠U5apDATA j֠pk֠U6ap !  DATApk֠j j֠-Ubpz==o? ||l֠m֠DATAl֠m֠Transform PropertiesView3d>DATAm֠l֠3D Viewport propertiesView3d>"DATAX ||333? ˅????????z==o?&A*A?z==o??????*A B??=C ?@?@?@? DATA| |333? ˅/9DATAjǰpk֠Pap5??Pף L0jŰjjDATAjTransform PropertiesIpo!>DATA0jj 333? > =DATA j`j0j333? CCx??|?DATAx`jhj333? zC̽̌?zC@;; #< #<`jFzD OBzC̽̌?DATA0hh`j333? CC|||??l|DATAhhh 333? zCCHBC|||?CFC= ADATAh o֠h 333? ?zDzDBCl||ll|zDzD=HB DATA o֠hh 333? BzB@l|llFzD #<HB DATAXhŰ o֠333? ??? ???? A???PA A!O?j?}GCHB? A B? #<C DATAŰh333? /9DATAǰj9-bpPO $8`V@ɰ"8DATA@ɰpʰLink and MaterialsEditing>DATApʰ˰@ɰMeshEditingF>DATA˰`pʰAnim settingsObject>DATA`@a˰DrawObjectF>DATA@apb`ConstraintsObject>DATApbc@aEffectsObjectDATAcdpbHooksObjectF>`DATAdfcParticle InteractionObject>@aDATAf08dSoftbodyObject>@aDATA08`8fOutputRender>DATA`8 808RenderRenderF>DATA 8!8`8AnimRender>DATA!8"8 8FormatRender>DATA"8!8ScriptlinksScript>DATA $8`V333? ChC#DhCC(BDC?z?DATA`V $8333? /9SC@FSCScenetageain0 jYFN[@6x,(;?x,(;?x,(;?=`ZZdd??< d X Z! ??BB?33s????//backbuf/tmp/L?L?L??>??_??D P4\DATA( j{P%8#DATA(P%8{| j#@DATA(|{p|P%8<AkDATA(p|{F|9ВpDATA(F{Fp|)ƪDATA(F{FF*DATA(F{XF*DATA(X{YF]DATA(Y{YX*🀘DATA(Y{YY JPbDDATA(Y{Y fDDATA(`Zz,d'=A@DATAZL?B ?o: ??P22 2d 22 22 22 22 22 > #<===ff??AHz?=???CDATA8\'????C?N #,=P +=]??????DATAH]%?=Vy?>`fff?Ou<?DATAX1 RenderLayerIM0 IMIMGA3166.JPGZC:/Users/jutuveps/Pictures/IMGA3166.JPG0F??DATA(0 "'DATA"')'**+-,+00./....-2,-1=;<8/2111,+1#(.$.!(2"&/ %+#'0!(.$/$*!!)"%*"+&-#,##-$,#-#,!+&+&+/72//+*2./#$()',600;25534---2./:897./401**,***:20;78645('- %)$)%-%- )2"&/((0 '/ '-$(1#*2%(1&.112-51.8/032.4+.///2./401-+,2'+3/0(&+"%124<85651///534:65;31423(*)201:63>;6000'+,*+-&,&. $-))3/+,/.*2015/1312:44:469526451/04311-,401431331510423;31935<428434;CCB@=:5>88111<:;:65841000867A>9PEAH?8MD=986>63BB@B=7312<;9A=:961A@<@;8:51D?;GB:9<66===::8127RJ=WNEMC:F?7L=:@=4G@:@<3B>5A:4761;60961>43?61GA3TN6`O;~gWQ=4G/#3)|<)B7!/!6(j`2$O.G5xA,I4}@-i0JZDt@*eY?pKZC!{X:oa:pOdQtU9`gi}t=cQ-ya}hMkr|l{~CdGrX\[ء؜|cEsE.|iIfT>}\weM$**0/-q4!j1:' O0Zw"t&i1Q5)1++y}ih޲ߣڤܧgP.vH0crNkpQ% x?,e13x%u("k s ~K0V," !(&'rb>a+|H2%$$  #)##$&*$$*`ach4hfkbfo``bznED264%=7+GC7HE4G?2JI5''%?@08:/73*MG7KJ8NM9IJ8UN;HE6^YpF:Z}{F@Y8/kzPC:vqXFB|ZoLA(LALamp????>A4B>??? B4B?@@???o:??????@?????@DATA8'????C?55?55?0g??????DATA0g%??DATA(@LA(LALamp.002????>A4B>??? B4B?@@???o:??????@?????`ҡDATA8'????C?55?55?P2'??????DATAP2'%??DATA(`ҡLA(LALamp.003????>A4B>??0? B4B?@@???o:??????@?????ҡDATA80'????C?55?55???????DATA%??DATA(ҡLA(LALamp.006????>A4B>??඾? B4B?@@???o:??????@?????DATA8඾'????C?55?55?`??????DATA`%??DATA(WO0yWOWorld_===??A <>??@pA A?L= ף;>PDATA(PTXTXText0DATA(EERFDATAOB0ВpqAkOBLamp I'?`yP?F =??????I'?`yP?F =?????????.;3?i!",;j!"4??ĝb0Ж3\?ayP0}>?DOBd8? #=?>=???????@???hhOB0Akq@ВpOBLamp.001 /?S=??????/?S=?????????.;3?i!"-;i!"4??*38?S>:>?DOBd8? #=?>=???????@???03M03MOB0@qAkOBLamp.002 u5Hf>??????u5Hf>?????????.;3?i!"-;j!"4??P <3Q@5H?g~=?DOBd8? #=?>=???????@???22OB0qƪ@OBLamp.003 -W?9]n???????-W?9]n??????????.;3?i!",;i!"4??P |A3@-Wsܾ?DOBd8? #=?>=???????@???OB0ƪqOBSphere" `  0Mx,(;4?1+?1+?1+??431+?1+431+?x,(;4???????((???|? u34Z3|?`u3|tݬ3b=fm?DOBd8? #=?>=???????@???q7=)s0]y@DATA0MDATAX NSubsurf MA@p*MAMaterial.001L?L?L???????????L?=???A?? ף; ף;AA ????????@?=?==???????L?L?L?L==ff????QQDATA!p??????????L>DATA(TE@p&TEphatch_tex_1.Lenn^>@?????=?@@????? @??<dDATA(ME`4MESphere.002P@qU%0^FkGk @:x@??l?DATAP@pDATAhFk*DATAp::>|Z?-w5?0U'?V]^l?>tW4?5^l?t5?0U'V>|Z-xՋ>֋>|Z\ \ x>?1U'o=o=t='?u='?RR5?5?`ZZt='?u='?>RRW4>?0U'?o=o=]ԋ>Ջ>|Z?\ \ wl?d>|Z?-wzZ5?0U'?V]4!_l?>tW4?`4!_l?tzZ5?1U'Vd>|Z-x׋Ջ>|Z\ x>1U'o=w='t='?iR55?`Zw='t='?>iRW4>0U'?o=]֋Ӌ>|Z?\ wþf|Z?<w50U'?]`l1>2W45``l1251U'þJz|Z<xI峋IlՋً|Zߤx1U'‘s='x='ii55`s='x='>iiW40U'?‘]ҋ׋|Z?ߤ߈wt4þ|Z?<҈wUd>450U'?] 4`l>2W4Ç4` 4`l2Ud>451U'3þ|ZՋ|Z\ x?1U'o=y='?r='Ri5?5`Zy='?r='>RiW4?0U'?o=]؋>ы|Z?\ ߈wDATAhGk*0^DATA0^7x''''''### # # # # # # # # # # # ## ## ## ## ###################'#'# ' # !'!#!"'"#"#'###%#$%#"&#%&#!'#&'# (#'(#)#()#*#)*#+#*+#+,#,-#*-#-.#).#./#(/#/0#'0#01#&1#12#%2#23#14#34#05#45#/6#56#.7#67#-8#78#,9#89#$'3#4#5#6#7#8#9#'9#$3#$2#,#+##$''#$#$##$#DATAh*VTex@qUVTexU%DATA@q6@$                 $$ ! "!#"$#$%##%&""&'!!'(  ())**+++,*-,+).-*(/.)'0/(&10'%21&$2%$3223411450056//67..78--89,,99987867564534$3DATA U%A@A?Q<ґ>>n>8N=?n>8N=ґ>>>P>Y>" +><Y>" +>>P>?!>>0r=x><0r=x>?!>> >?>ۚ<ۚ >?>>~?px=*?<px=*?>~?į>6m5?%>O?<> T?z>k?%>O?į>6m5?<z>k?> T?r>w??> T?y>NN?r>w??į>6m5?p2?>/?y>NN?> T?<>~??d?p2?>/?į>6m5?< >?>T?>?d?>~?<?!>>?^>T?> >?><>P>.?˛>?^>?!>><ґ>>~y?J9>.?˛>>P><A?Q<~y?J9>ґ>>?A?Q~y?J9>?~y?J9>R?f#> *?ۏ>.?˛><.?˛> *?ۏ>1?>?^><?^>1?>a2? >T?><T?>a2? >O0???d?<?d?O0??\(? 6?p2?>/?<p2?>/?\(? 6?h?T?y>NN?<y>NN?h?T?r>w??h?T?w/?l?r>w??\(? 6?7AY?QT?w/?l?h?T?<O0??r?,?7AY?QT?\(? 6?<a2? >}?&.?r?,?O0??<1?>֑t?m>}?&.?a2? >< *?ۏ>x+]?D1>֑t?m>1?><R?f#>4?=x+]?D1> *?ۏ><A?Q<4?=R?f#>?0?؁< >y> >(Y=?< >(Y= >y>7>>>ޞ,><>ޞ,>7>>.t>7+> =>< =>.t>7+>>>>=;E?<>=;E?>>b>2?8J='-?<8J='-?b>2?X$>6?xq>R?<xq>R?X$>6? >DnV?>0l?<>0l? >DnV?> y??< >DnV?>*O?> y??<X$>6?g>]0?>*O? >DnV?<b>2?d>Q?g>]0?X$>6?<>>|?+l>d>Q?b>2?<.t>7+>e?>|?+l>>><7>>L?b>e?>.t>7+>< >y>{?;>L?b>7>><0?؁<{?;> >y>?<0?؁<?4$>{?;>?<{?;>?4$>lI*?Ώ>L?b><L?b>lI*?Ώ>1?>e?><e?>1?>2?%?|?+l><|?+l>2?%?*/?L?d>Q?<d>Q?*/?L?'?S8?g>]0?<g>]0?'?S8?m~?zV?>*O?<>*O?m~?zV?> y??<m~?zV?X.?n?> y??<X.?n?m~?zV?'?S8?X?%wV?<*/?L?Iw?dt/?X?%wV?'?S8?<2?%?N?>Iw?dt/?*/?L?<1?>Du?uŤ>N?>2?%?<lI*?Ώ>KZ?1>Du?uŤ>1?><?4$> 3?-=KZ?1>lI*?Ώ><0?؁< 3?-=?4$>?<LIHdLIlib //scene.blendnc/python/phatch/trunk/data/blender/scene.blend/home/stani/sync/python/phatch/trunk/data/blender/scene.blende.blendIDHdOBBounding BoxubeIDHdOBcameraameraamera.001IDH🀘dOBcamera_targetmptyIDH🀘PbDdOBfloorlaneIDHPbDfD🀘dOBLampIDHfDPbDdOBLamp.001DNA1fSDNANAMEq *next*prev*data*first*lastxyzwxminxmaxyminymax*pointergroupvalval2name[32]typesubtypeflagsaveddatalentotallen*newid*libname[24]usicon_id*propertiesid*idblock*filedataname[240]filename[240]totpad*parentw[2]h[2]changed[2]pad0pad1*rect[2]*obblocktypeadrcodename[128]*bp*beztmaxrcttotrctvartypetotvertipoextraprtbitmaskslide_minslide_maxcurval*drivercurvecurshowkeymuteipoposrelativetotelempad2*weightsvgroup[32]sliderminslidermax*refkeyelemstr[32]elemsizeblock*ipo*fromtotkeyslurph**scripts*flagactscripttotscript*line*formatblenlinenostartendflagscolor[4]pad[4]*namenlineslines*curl*sellcurcselcmarkers*undo_bufundo_posundo_len*compiledmtimesizeseekpassepartalphaangleclipstaclipendlensortho_scaledrawsizeshiftxshiftyYF_dofdistYF_apertureYF_bkhtypeYF_bkhbiasYF_bkhrotscriptlink*dof_obframenrframesoffsetsfrafie_imacyclokmulti_indexlayerpassmenunribufs*gputexture*anim*rrsourcelastframetpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfile*previewlastupdatelastusedanimspeedgen_xgen_ygen_typeaspxaspy*vnodetexcomaptomaptonegblendtype*object*texuvname[32]projxprojyprojzmappingofs[3]size[3]texflagcolormodelpmaptopmaptonegnormapspacewhich_outputpad[2]rgbkdef_varcolfacnorfacvarfacdispfacwarpfacname[160]*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*instance_init)()(*callback)()versionaipotype*ima*cube[6]imat[4][4]obimat[3][3]stypeviewscalenotlaycuberesdepthrecalclastsizenoisesizeturbulbrightcontrastrfacgfacbfacfiltersizemg_Hmg_lacunaritymg_octavesmg_offsetmg_gaindist_amountns_outscalevn_w1vn_w2vn_w3vn_w4vn_mexpvn_distmvn_coltypenoisedepthnoisetypenoisebasisnoisebasis2imaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendcheckerdistnablaiuser*nodetree*plugin*coba*envuse_nodespad[7]loc[3]rot[3]mat[4][4]min[3]max[3]pad3modetotexshdwrshdwgshdwbshdwpadenergydistspotsizespotblendhaintatt1att2*curfallofffalloff_typeshadspotsizebiassoftbufsizesampbuffersfiltertypebufflagbuftyperay_sampray_sampyray_sampzray_samp_typearea_shapearea_sizearea_sizeyarea_sizezadapt_threshray_samp_methodtexactshadhalostepsun_effect_typeskyblendtypehorizon_brightnessspreadsun_brightnesssun_sizebackscattered_lightsun_intensityatm_turbidityatm_inscattering_factoratm_extinction_factoratm_distance_factorskyblendfacsky_exposuresky_colorspacepad4YF_numphotonsYF_numsearchYF_phdepthYF_useqmcYF_bufsizeYF_padYF_causticblurYF_ltradiusYF_glowintYF_glowofsYF_glowtypeYF_pad2*mtex[18]specrspecgspecbmirrmirgmirbambrambbambgambemitangspectraray_mirroralpharefspeczoffsaddtranslucencyfresnel_mirfresnel_mir_ifresnel_trafresnel_tra_ifiltertx_limittx_falloffray_depthray_depth_traharseed1seed2gloss_mirgloss_trasamp_gloss_mirsamp_gloss_traadapt_thresh_miradapt_thresh_traaniso_gloss_mirdist_mirfadeto_mirshade_flagmode_lflarecstarclinecringchasizeflaresizesubsizeflarebooststrand_stastrand_endstrand_easestrand_surfnorstrand_minstrand_widthfadestrand_uvname[32]sbiaslbiasshad_alphaseptexrgbselpr_typepr_backpr_lampml_flagdiff_shaderspec_shaderroughnessrefracparam[4]rmsdarkness*ramp_col*ramp_specrampin_colrampin_specrampblend_colrampblend_specramp_showrampfac_colrampfac_spec*groupfrictionfhreflectfhdistxyfrictdynamodesss_radius[3]sss_col[3]sss_errorsss_scalesss_iorsss_colfacsss_texfacsss_frontsss_backsss_flagsss_presetYF_arYF_agYF_abYF_dscaleYF_dpwrYF_dsmpYF_presetYF_djitgpumaterialname[256]scale*bbi1j1k1i2j2k2selcol1selcol2quat[4]expxexpyexpzradrad2s*mat*imatelemsdisp**mattotcolwiresizerendersizethreshvec[3][3]alfaweightradiush1h2f1f2f3hidevec[4]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsvtilt_interpradius_interpcharidxkernhnurb*bevobj*taperobj*textoncurve*path*keybevpathlenbevresolwidthext1ext2resolu_renresolv_renspacemodespacinglinedistshearfsizewordspaceulposulheightxofyoflinewidth*strfamily[24]*vfont*vfontb*vfonti*vfontbisepchartotboxactbox*tbselstartselend*strinfocurinfoeffect*mface*mtface*tface*mvert*medge*dvert*mcol*msticky*texcomesh*mselectvdataedatafdatatotedgetotfacetotselectact_facecubemapsizesmoothreshsubdivsubdivrsubsurftype*mr*pv*tpageuv[4][2]col[4]transptileunwrapv1v2v3v4edcodecreasebweightdef_nr*dwtotweightco[3]no[3]pad[3]uv[2]co[2]indexfis[256]v[4]midv[2]*faces*colfaces*edges*edge_boundary_states*vert_edge_map*vert_face_map*map_mem*vertslevelslevel_countcurrentnewlvledgelvlpinlvlrenderlvluse_col*edge_flags*edge_creases*vert_map*edge_map*old_faces*old_edges*errormodifiersubdivTyperenderLevels*emCache*mCachedefaxispad[6]lengthrandomizeseed*ob_arm*start_cap*end_cap*curve_ob*offset_oboffset[3]scale[3]merge_distfit_typeoffset_typecountaxistolerance*mirror_obsplit_anglevalueresval_flagslim_flagse_flagsbevel_angledefgrp_name[32]*texturestrengthdirectionmidleveltexmapping*map_objectuvlayer_name[32]uvlayer_tmp*projectors[10]*imagenum_projectorsaspectxaspectypercentfaceCountfacrepeat*objectcenterstartxstartyheightnarrowspeeddampfallofftimeoffslifetimedeformflagmulti*prevCosparentinv[4][4]cent[3]*indexartotindexforce*clothObject*sim_parms*coll_parms*point_cache*x*xnew*xold*current_xnew*current_x*current_v*mfacesnumvertsnumfacesabsorptiontime*bvhtree*dmoperationvertextotinfluencegridsizeneedbind*bindweights*bindcostotcagevert*dyngrid*dyninfluences*dynverts*pad2dyngridsizedyncellmin[3]dyncellwidthbindmat[4][4]*psystotdmverttotdmedgetotdmfacepsysrt[2]*facepavgroupprotect*fss*target*auxTargetvgroup_name[32]keepDistshrinkTypeshrinkOptsprojAxissubsurfLevels*originfactorlimit[2]originOptspntswopntsuopntsvopntswtypeutypevtypewfufvfwdudvdw*defvec[8][3]partypepar1par2par3parsubstr[32]*track*proxy*proxy_group*proxy_from*action*poselib*poseconstraintChannelsdefbasemodifiersdloc[3]orig[3]dsize[3]drot[3]obmat[4][4]constinv[4][4]laycolbitstransflagipoflagtrackflagupflagnlaflagprotectflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactorrdampingsizefacmarginmax_velmin_velm_contactProcessingThresholddtdtxactcolempty_drawtypepad1[3]empty_drawsizedupfacescapropsensorscontrollersactuatorsbbsize[3]actdefgameflaggameflag2*bsoftsoftflaganisotropicFriction[3]constraintsnlastripshooksparticlesystem*pd*soft*dup_groupfluidsimFlagrestrictflagshapenrshapeflagrecalcobody_type*fluidsimSettings*derivedDeform*derivedFinallastDataMaskstateinit_stategpulampcurindexactivedeflectforcefieldpdef_damppdef_rdamppdef_permpdef_frictpdef_rfrictf_strengthf_powerf_distf_dampmaxdistmindistmaxradminradf_power_rpdef_sbdamppdef_sbiftpdef_sboftclump_facclump_powkink_freqkink_shapekink_ampfree_endtex_nablatex_modekinkkink_axisrt2*rngf_noisesimframestartframeendframeeditframelinStiffangStiffvolumeviterationspiterationsditerationsciterationskSRHR_CLkSKHR_CLkSSHR_CLkSR_SPLT_CLkSK_SPLT_CLkSS_SPLT_CLkVCFkDPkDGkLFkPRkVCkDFkMTkCHRkKHRkSHRkAHRcollisionflagsnumclusteriterationswelding*particlestotpointtotspring*bpoint*bspringnodemassgravmediafrictrklimitphysics_speedgoalspringgoalfrictmingoalmaxgoaldefgoalvertgroupfuzzynessinspringinfrictefraintervallocalsolverflags**keystotpointkeysecondspringcolballballdampballstiffsbc_modeaeroedgeminloopsmaxloopschokesolver_IDplasticspringpreload*scratchshearstiffinpush*pointcacheshow_advancedoptionsresolutionxyzpreviewresxyzrealsizeguiDisplayModerenderDisplayModeviscosityValueviscosityModeviscosityExponentgravxgravygravzanimStartanimEndgstarmaxRefineiniVelxiniVelyiniVelz*orgMesh*meshSurface*meshBBsurfdataPath[240]bbStart[3]bbSize[3]typeFlagsdomainNovecgenvolumeInitTypepartSlipValuegenerateTracersgenerateParticlessurfaceSmoothingsurfaceSubdivsparticleInfSizeparticleInfAlphafarFieldSize*meshSurfNormalscpsTimeStartcpsTimeEndcpsQualityattractforceStrengthattractforceRadiusvelocityforceStrengthvelocityforceRadiuslastgoodframemistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposureexprangelinfaclogfacgravityactivityBoxRadiusskytypeocclusionResphysicsEngineticratemaxlogicstepphysubstepmaxphystepmisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxaodistaodistfacaoenergyaobiasaomodeaosampaomixaocolorao_adapt_threshao_adapt_speed_facao_approx_errorao_approx_correctionao_samp_methodao_gather_methodao_approx_passes*aosphere*aotableshemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammaselcolsxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizeqtcodecname[128]codecaudio_codecvideo_bitrateaudio_bitrategop_sizerc_min_raterc_max_raterc_buffer_sizemux_packet_sizemux_ratemixratemain*mat_override*light_overridelay_zmasklayflagpassflagpass_xor*avicodecdata*qtcodecdataffcodecdatacfrapsfrapefraimagesframaptothreadsframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1stereomodedimensionspresetmaximsizexschyschxpartsypartswinposplanesimtypesubimtypequalityrpadrpad1rpad2scemoderendererocresalphamodeosafrs_secedgeintsafetyborderdisprectlayersactlayxaspyaspfrs_sec_basegausspostmulpostgammaposthuepostsatdither_intensitybake_osabake_filterbake_modebake_flagbake_normal_spacebake_quad_splitbake_maxdistbake_biasdistbake_padGIqualityGIcacheGImethodGIphotonsGIdirectYF_AAYFexportxmlYF_nobumpYF_clamprgbyfpad1GIdepthGIcausdepthGIpixelspersampleGIphotoncountGImixphotonsGIphotonradiusYF_raydepthYF_AApassesYF_AAsamplesyfpad2GIshadowqualityGIrefinementGIpowerGIindirpowerYF_gammaYF_exposureYF_raybiasYF_AApixelsizeYF_AAthresholdbackbuf[160]pic[160]stampstamp_font_idstamp_udata[160]fg_stamp[4]bg_stamp[4]simplify_subsurfsimplify_shadowsamplessimplify_particlessimplify_aossscineonwhitecineonblackcineongammajp2_presetjp2_depthrpad3domeresdomemodedomeangledometiltdomeresbuf*dometextparticle_percsubsurf_maxshadbufsample_maxao_errorcol[3]framename[64]*brushtoolseam_bleednormal_anglestepinverttotrekeytotaddkeybrushtypebrush[7]emitterdistdraw_timedname[36]mat[3][3]cornertypeeditbutflagjointrilimitdegrturnextr_offsdoublimitsegmentsringsverticesunwrapperuvcalc_radiusuvcalc_cubesizeuvcalc_marginuvcalc_mapdiruvcalc_mapalignuvcalc_flagautoik_chainlenimapaintparticleselect_threshclean_threshretopo_moderetopo_paint_toolline_divellipse_divretopo_hotspotmultires_subdiv_typeskgen_resolutionskgen_threshold_internalskgen_threshold_externalskgen_length_ratioskgen_length_limitskgen_angle_limitskgen_correlation_limitskgen_symmetry_limitskgen_retarget_angle_weightskgen_retarget_length_weightskgen_retarget_distance_weightskgen_optionsskgen_postproskgen_postpro_passesskgen_subdivisions[3]skgen_multi_level*skgen_templatebone_sketchingbone_sketching_convertskgen_subdivision_numberskgen_retarget_optionsskgen_retarget_rollskgen_side_string[8]skgen_num_string[8]edge_modepad3[2]dirview*session*cumapdrawbrushsmoothbrushpinchbrushinflatebrushgrabbrushlayerbrushflattenbrushpivot[3]brush_typetexnrtexrepttexfadetexsepaveragingtablet_sizetablet_strengthsymmrakeaxislock*camera*world*setbase*basactcursor[3]twcent[3]twmin[3]twmax[3]editbutsizeselectmodeproportionalprop_modeautomergepad5pad6autokey_mode*ed*radioframing*toolsettingsaudiotransform_spacesjumpframesnap_modesnap_flagsnap_target*theDagdagisvaliddagflagssculptdataframe_stepzoomblendximyimspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]zfaclay_usedpersp*ob_centre*bgpic*localvd*ri*retopo_view_data*depthsob_centre_bone[32]localviewlayactscenelockaroundcamzoompivot_lastgridgridviewpixsizenearfarcamdxcamdygridlinesviewbutgridflagmodeselecttwtypetwmodetwflagtwdrawflagtwmat[4][4]clip[4][4]*clipbbafterdrawzbufxrayflag2gridsubdivkeyflagsndofmodendoffilter*properties_storage*gpdlviewquat[4]lpersplviewverthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinycursor[2]rowbutv2d*editipoipokeyactname[32]constname[32]bonename[32]totipopinbutofschannellockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexfromshowgroupmodeltypescriptblockre_alignoldkeypresstab[7]render_sizechanshownzebra*filelisttotfiletitle[24]dir[240]file[80]ofssortmaxnamelencollumsf_fpfp_str[8]*libfiledataretvalmenuact(*returnfunc)()(*returnfunc_event)()(*returnfunc_args)()*arg1*arg2*menup*pupmenuoopsvisiflagtree*treestoresearch_string[32]search_tsesearch_flagsdo_outlinevisstoreflagdeps_flagsimanrcurtileimtypenrdt_uvstickydt_uvstretchpad[5]centxcentyautosnap*texttopviewlinesfont_idlheightleftshowlinenrstabnumbercurrtab_setshowsyntaxoverwritepix_per_linetxtscrolltxtbarwordwrapdoplugins*py_draw*py_event*py_button*py_browsercallback*py_globaldictlastspacescriptname[256]scriptarg[256]*script*but_refsredraws*idaspect*curfont*edittreetreetype*filesactive_filenumtilesxnumtilesyselstateviewrectbookmarkrectscrollposscrollheightscrollareaactive_bookmarkprv_wprv_h*imgoutline[4]neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]textfield_hi[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeiconfile[80]back[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]lamp[4]active[4]group[4]group_active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]edge_seam[4]edge_sharp[4]edge_facesel[4]face[4]face_select[4]face_dot[4]normal[4]bone_solid[4]bone_pose[4]strip[4]strip_select[4]cframe[4]vertex_sizefacedot_sizebpad[2]syntaxl[4]syntaxn[4]syntaxb[4]syntaxv[4]syntaxc[4]movie[4]image[4]scene[4]audio[4]effect[4]plugin[4]transition[4]meta[4]editmesh_active[4]handle_vertex[4]handle_vertex_select[4]handle_vertex_sizehpad[7]solid[4]tuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsttimetnodetarm[20]bpad[4]bpad1[4]spec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]yfexportdir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefviewzoomconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[256]themesundostepsundomemorygp_manhattendistgp_euclideandistgp_erasergp_settingstb_leftmousetb_rightmouselight[3]tw_hotspottw_flagtw_handlesizetw_sizetextimeouttexcollectratememcachelimitprefetchframesframeserverportpad_rot_angleobcenter_diarvisizervibrightrecent_filessmooth_viewtxglreslimitndof_panndof_rotatecurssizepad[8]versemaster[160]verseuser[160]glalphaclipautokey_flagcoba_weightvertbaseedgebaseareabase*sceneendxendysizexsizeyscenenrscreennrfullmainwinwinakthandler[8]*newvvec*v1*v2panelname[64]tabname[64]drawname[64]ofsxofsycontrolsnapold_ofsxold_ofsysortcounter*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanelssubvstr[4]subversionpadsminversionminsubversiondisplaymode*curscreen*curscenefileflagsglobalfname[80]*ibuf*ibuf_comp*se1*se2*se3nrbottomrightxofsyofslift[3]gamma[3]gain[3]saturation*guidir[160]donestartstillendstill*stripdataorxory*crop*transform*color_balance*tstripdata*tstripdata_startstill*tstripdata_endstill*ibuf_startstill*ibuf_endstill*instance_private_data**current_private_data*tmpstartofsendofsmachinestartdispenddispmulhandsizeanim_preseek*stripfacf0facf1*seq1*seq2*seq3seqbase*sound*hdaudiolevelpanstrobe*effectdataanim_startofsanim_endofsblend_modeblend_opacity*oldbasep*parseq*seqbasepmetastackedgeWidthforwardwipetypefMinifClampfBoostdDistdQualitybNoCompScalexIniScaleyIniScalexFinScaleyFinxInixFinyIniyFinrotInirotFininterpolation*frameMapglobalSpeedlastValidFramebuttypeuserjitstatotpartnormfacobfacrandfactexfacrandlifeforce[3]vectsizemaxlendefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstepomattimetexspeedtexflag2negvertgroup_vvgroupname[32]vgroupname_v[32]*keysminfacusedusedelemdxdylinkotypeold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]delaydurationmaterialName[32]damptimerpropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linkstapjoyindexaxis_singleaxisfbuttonhathatfprecisionstr[128]module[64]*mynewinputstotslinks**slinksvalostate_mask*actframeProp[32]blendinpriorityend_resetstrideaxisstridelengthsndnrpad1[2]makecopycopymadepad2[1]track*melinVelocity[3]angVelocity[3]localflagdyn_operationforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]*referencebutstabutendminmaxvisifacrotdampminloc[3]maxloc[3]minrot[3]maxrot[3]matprop[32]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]int_argfloat_arggoaccellerationmaxspeedmaxrotspeedmaxtiltspeedtiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*lamprengobjectdupli_ofs[3]childbaserollhead[3]tail[3]bone_mat[3][3]arm_head[3]arm_tail[3]arm_mat[4][4]xwidthzwidthease1ease2rad_headrad_tailbonebasechainbasepathflaglayer_protectedghostepghostsizeghosttypepathsizeghostsfghostefpathsfpathefpathbcpathacconstflagikflagselectflagagrp_index*bone*childiktree*b_bone_mats*dual_quat*b_bone_dual_quatschan_mat[4][4]pose_mat[4][4]pose_head[3]pose_tail[3]limitmin[3]limitmax[3]stiffness[3]ikstretch*customchanbaseproxy_layerstride_offset[3]cyclic_offset[3]agroupsactive_groupcustomColcs*grpreserved1groupsactive_markeractnractwidthtimeslidename[30]ownspacetarspaceenforceheadtail*tarsubtarget[32]matrix[4][4]space*proptarnumtargetsiterationsrootbonemax_rootbone*poletarpolesubtarget[32]poleangleorientweightgrabtarget[3]reserved2minmaxflagstuckcache[3]lockflagfollowflagvolmodeplaneorglengthbulgepivXpivYpivZaxXaxYaxZminLimit[6]maxLimit[6]extraFzinvmat[4][4]fromtomap[3]expofrom_min[3]from_max[3]to_min[3]to_max[3]zminzmaxpad[9]channel[32]no_rot_axisstride_axiscurmodactstartactendactoffsstridelenblendoutstridechannel[32]offs_bone[32]hasinputhasoutputdatatypesockettype*new_socknslimitstack_indexinternstack_index_extlocxlocyown_indexto_index*tosock*link*new_nodeusername[32]lastyoutputs*storageminiwidthcustom1custom2custom3custom4need_execexectotrbutrprvr*typeinfo*fromnode*tonode*fromsocknodeslinks*stack*threadstackinitstacksizecur_indexalltypes*owntype*selin*selout(*timecursor)()(*stats_draw)()(*test_break)()cyclicmoviesamplesminspeedpercentxpercentybokehcurvedimage_in_widthimage_in_heightcenter_xcenter_yspiniterwrapsigma_colorsigma_spacehuesatt1t2t3fstrengthfalphakey[4]x1x2y1y2colname[32]bktyperotationpreviewgamcono_zbuffstopmaxblurbthresh*dict*nodeangle_ofscolmodmixthresholdfademcjitprojfitshortymintablemaxtableext_in[2]ext_out[2]*curve*table*premultablecurrcliprcm[4]black[3]white[3]bwmul[3]sample[3]offset[2]innerradiusratergb[3]cloneactive_rndactive_cloneactive_mask*layerstotlayermaxlayertotsize*pooleditflagvel[3]rot[4]ave[3]numparentpa[4]w[4]fuv[4]foffsetrand[3]*stick_obprev_state*hairi_rot[4]r_rot[4]r_ave[3]r_ve[3]dietimebanksizemulnum_dmcachebpialiveloopdistrphystyperotmodeavemodereacteventdrawdraw_asdraw_sizechildtypedraw_stepren_stephair_stepkeys_stepadapt_angleadapt_pixrotfromintegratornbetweenboidneighboursbb_alignbb_uv_splitbb_animbb_split_offsetbb_tiltbb_rand_tiltbb_offset[2]simplify_flagsimplify_refsizesimplify_ratesimplify_transitionsimplify_viewporttimetweakjitfackeyed_timeeff_hairgrid_respartfactanfactanphasereactfacavefacphasefacrandrotfacrandphasefacrandsizereactshapeacc[3]dragfacbrownfacdampfacabslengthrandlengthchild_nbrren_child_nbrparentschildsizechildrandsizechildradchildflatchildspreadclumpfacclumppowrough1rough1_sizerough2rough2_sizerough2_thresrough_endrough_end_shapebranch_thresdraw_line[2]max_lat_accmax_tan_accaverage_velbankingmax_bankgroundzboidfac[8]boidrule[8]*eff_group*dup_ob*bb_ob*pd2*part*edit**pathcache**childcachepathcachebufschildcachebufs*target_ob*keyed_ob*latticeeffectorsreacteventstotchildtotcachedtotchildcachetarget_psyskeyed_psystotkeyedbakespacebb_uvname[3][32]vgroup[12]vg_negrt3*renderdata*cacheCdisCvi[3]structuralbendingmax_bendmax_structmax_shearavg_spring_lentimescaleeff_force_scaleeff_wind_scalesim_time_oldstepsPerFrameprerollmaxspringlensolver_typevgroup_bendvgroup_massvgroup_structpresets*collision_listepsilonself_frictionselfepsilonself_loop_countloop_countpressure*pointstotpointsthicknessstrokesframenum*actframegstepinfo[128]sbuffer_sizesbuffer_sflag*sbufferTYPEdcharucharshortushortintlongulongfloatdoublevoidLinkLinkDataListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDPropertyDataIDPropertyIDLibraryFileDataPreviewImageIpoDriverObjectIpoCurveBPointBezTripleIpoKeyBlockKeyScriptLinkTextLineTextMarkerTextPackedFileCameraImageUserImageGPUTextureanimRenderResultMTexTexPluginTexCBDataColorBandEnvMapImBufbNodeTreeTexMappingLampCurveMappingWaveMaterialGroupVFontVFontDataMetaElemBoundBoxMetaBallNurbCharInfoTextBoxCurvePathMeshMFaceMTFaceTFaceMVertMEdgeMDeformVertMColMStickyMSelectCustomDataMultiresPartialVisibilityMDeformWeightMTexPolyMLoopUVMLoopColMFloatPropertyMIntPropertyMStringPropertyOrigSpaceFaceMultiresColMultiresColFaceMultiresFaceMultiresEdgeMultiresLevelMultiresMapNodeModifierDataSubsurfModifierDataLatticeModifierDataCurveModifierDataBuildModifierDataMaskModifierDataArrayModifierDataMirrorModifierDataEdgeSplitModifierDataBevelModifierDataBMeshModifierDataDisplaceModifierDataUVProjectModifierDataDecimateModifierDataSmoothModifierDataCastModifierDataWaveModifierDataArmatureModifierDataHookModifierDataSoftbodyModifierDataClothModifierDataClothClothSimSettingsClothCollSettingsPointCacheCollisionModifierDataBVHTreeSurfaceModifierDataDerivedMeshBVHTreeFromMeshBooleanModifierDataMDefInfluenceMDefCellMeshDeformModifierDataParticleSystemModifierDataParticleSystemParticleInstanceModifierDataExplodeModifierDataFluidsimModifierDataFluidsimSettingsShrinkwrapModifierDataSimpleDeformModifierDataLatticebDeformGroupbActionbPoseBulletSoftBodyPartDeflectSoftBodyObHookRNGSBVertexBodyPointBodySpringSBScratchWorldRadioBaseAviCodecDataQuicktimeCodecDataFFMpegCodecDataAudioDataSceneRenderLayerRenderDataRenderProfileGameFramingTimeMarkerImagePaintSettingsBrushParticleBrushDataParticleEditSettingsTransformOrientationToolSettingsBrushDataSculptDataSculptSessionSceneDagForestBGpicView3DSpaceLinkScrAreaRenderInfoRetopoViewDataViewDepthsbGPdataView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsTreeStoreTreeStoreElemSpaceImageSpaceNlaSpaceTextScriptSpaceScriptSpaceTimeSpaceNodeSpaceImaSelFileListThemeUIThemeSpaceThemeWireColorbThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemTStripElemStripCropStripTransformStripColorBalanceStripColorBalanceGUIHelperStripProxyStripPluginSeqSequencebSoundhdaudioMetaStackEditingWipeVarsGlowVarsTransformVarsSolidColorVarsSpeedControlVarsEffectBuildEffPartEffParticleWaveEffOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbActuatorSensorbDelaySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbJoystickSensorbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorbTwoDFilterActuatorbParentActuatorbStateActuatorFreeCamerabSamplebSoundListenerSpaceSoundGroupObjectBonebArmaturebPoseChannelbActionGroupbActionChannelSpaceActionbConstraintChannelbConstraintbConstraintTargetbPythonConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbMinMaxConstraintbSizeLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbStretchToConstraintbRigidBodyJointConstraintbClampToConstraintbChildOfConstraintbTransformConstraintbLocLimitConstraintbRotLimitConstraintbSizeLimitConstraintbDistLimitConstraintbShrinkwrapConstraintbActionModifierbActionStripbNodeStackbNodeSocketbNodeLinkbNodebNodePreviewbNodeTypeNodeImageAnimNodeBlurDataNodeDBlurDataNodeBilateralBlurDataNodeHueSatNodeImageFileNodeChromaNodeTwoXYsNodeTwoFloatsNodeGeometryNodeVertexColNodeDefocusNodeScriptDictNodeGlareNodeTonemapNodeLensDistTexNodeOutputCurveMapPointCurveMapBrushCloneCustomDataLayerHairKeyParticleKeyChildParticleParticleDataParticleSettingsParticleEditParticleCacheKeyLinkNodebGPDspointbGPDstrokebGPDframebGPDlayerTLEN   `HH(0p$8p(0 @x8Ph`hP0@  p0 @ `@XhpPpPHxHHhxx@` PP`PPPx0Hx((8X@XHX@@X0 0x0 x8@8( ((P0@ H 0 0 H@@P00Hh(H,(lH`h<PP` XPpT `@8p(X(XX8PPp800H0H08hp`8H(0( (@   8H8H (STRC9                     !"#$%&'()*+, -./0!!!"1#234./56789  :;<=>$ ?@.AB%%%%C=/DEF GHIJ& %KLM= N$OPQR'STUV%(((WXY) ))Z[\+]^_*`]a b(c(def ghij kl+mn]% ,opqrstuvwxyz{|$O'} ~- . " /01%++ 2 394   %5C@6$@57 .8qr38-9$O.467:    -;P  <Fqr !"#$%&'()*+,-.+/0123456789:;<=>?@ABCDEFGHIJKL2M$O'}=$O>NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw xyz{|}~/@66 2M9$O?F'} @%A+BBBCDC  $O># "%EEE"1#2F%FGH9C     $OI&> FbC    @ @@@%GFFJ'C $O&>KLMNOPQ R!J"S#T$T%T&6'()*+%,-./U0V1 M 2345 67K89:;%<O89=>W?PW@ANBC>DQX.25 67YEZ%RFSGL3.25 67[H\I]J^3_`_4aKLbMLcccaN`ObPQ R SdT6('%NUU VNUWXYZ[\]T$T&^_V`aKbOc('6%eee dfeefVg] h igee hee jkiee[lmnjee oH k ee p q r stulvwx]yleez{ |mee}]n ee~%]oee%p ee3 %q ee .]%reeseetee muee 3 %+veeF w ee xeeyeez{|}~eeNNNNNNK%eeee %ee %6ee9ee -eeee} ee  k ee  z%F%"$O&PC% o &    $OIC      >      !"#$%'} & ' ( )*G+4,-./0 1 2 3 456?789:;,<=>?@ABCF D & EF$GHIJKLMNOPQRSTUVWXYZ[\]^_`abcd3efn}ghijklmnopqrstuvwxyz{|}~,%Q}0JJJ$ONG/TVU      +$O2M'} !"#$%&'( ) *+,-./0123%4 5 67F8 9:;<=]>?@ABCDD >E?FGH%IJKLMNOPQRSTUVWXYZ[\]^d_`"mabcdefghi#jklmn opqrstuvw xy%z{|}~ F* +F+F m8%   m   2M</] !+ "#$. %&'()*+,-./0129 34567'} g 89:;<=>?@@A% .- mBCDEKFGHIJKLMNOPQRS  " TUVWXYZ[\]^_`+sabcdefg'hijklmnopqCr st5uvwxyz {|}~01$@^kFGHIFGHIFGHIF  $OPA.$FGHWI  %/FGHI B|!FGHI+F     FGHI 9  FGHI.-< ,B | FGHIFGHI*]      ] FGH]+ FGHFGHIP  99%|*FGHI f%+     8     D6 !"#$%&'()*+,-./012345_6789:;<=>?@ABCDEFGHIJK "%LMNOPQRSTUVWXYZ[\]^%4_B`abcdefghijklmnopqrstuvwxyz{ |}~%26   % v%F4F'}    f  88  %0mj%988      +  [$O0          %9p !"# $%&'()*+,-.%/0]l12929-234\5Qn6789:;<=%>?@ABCDEFGHvIJKLM?2NOEP QR S TU% V WXY%+F>Z%[\]^_%`a%bc%de Fpznbfg +h ijkTlmn+F o -p% qzrstuvwx*y z{nT|F  o}~% - 4\ 4\  4\m   -J % " ` -  T  4\+@ -z  % 4\D@?nf j+Fk4\_* - zT  - % ++ $Om]FGH   F - %? & l   "   1  &        %!!! """!$O    g%#FGHI $$$$O % %%      %$O& && %'*  (  ) ]%* + , +F - . [\%/ !0 "1 #$%&2  '()*+,-./%+F3 v4 %05 123456786    9:v7    9:v8    9:v9  %: ;; ;;<= -<<< >?$O [\@ABCDEF = GHIJ>>>>K=LMNOP+QRST>U?V@ @@@WXYN { Z [QR\]^_`abcdeABf???@g@h>i>U9 j k=l mnop qBr>s>t u vwCxy%Dz{D|}"~%%E pB%F%GHhij9IJKLMN zO  P jpmQ[%HR%STU TTT< @UV.\% Cm\/%2MVW F_ TW% XB%YBZ[ YBYXYMm%Qd\p1F.bc4\:  953 678        m      l            ^\]    ! " # $ % & ' ( ) * + , - ?7?. / 0 $O51 %\2 [Z]3 ^4 ^5 6 7 6 8 9 : ; < Nn5= > ? 9@ A B /C D E F G H }{"_I J K L M N O P Q R S T U V W ]X Y Z [ \ ] ^ %F|__ ` a b ]c d `e aaa`f g h bbb i j c cc bk h l ^m  xn o p ENDBphatch-0.2.7/data/fonts/0000755000000000000000000000000011346363116014773 5ustar rootroot00000000000000phatch-0.2.7/data/fonts/FreeSans.ttf0000644000000000000000000161454411346363116017237 0ustar rootroot00000000000000 FFTMKHGDEF,`GPOSY,GSUB^.$OS/2o;Vcmapv> vcvt RK$fpgmBIXgasp glyf$wheadD1,6hheaLd$hmtxZeCC!6<hQgunn'LnMsMY<qAM OFR 5ZtS &dOAKLvA &P[t(c 4 4  `0'#38(T02,%'&-8B0>N ,$569h"*(.<*$()$($D649$,,69H0ZZcY00d8SSOOSOOcO,"Z?0OOO!AKS &O[0c@OO<OROQhOO0S ,*,$ FFZ,(E,"7F7FF-FjF.F,$-F,6<=BFFFF9F(FF,(,(8F"BHFRF8A7F,F &,$([,6cZFccZF?E0"OFO:Q9S,FSF%S:F0c< 5 5<OFOFOF/*/*d?E,O:!-FS,FS.FOFAKjF,*,* y"Z,(/,(/,(?E,0"c  O7FO7F &,$ &,$ &,$0OFhOFOOSROTJ?C?]UB#JL3O/-o1 [(JBJ*JOJ-Jo<L*~$ 0'MO5MMMMAA,J<#EI&<L*^,?8DF0!B-<B,+*GB$(('(+ I I5,E#AA&#P?bGwH,E! `LU+LC2*!FZM FOIIFFIFF&>FnF:O:V&n?>_'o?`=:&&9X%o?m0>z3_=K$?98? N3^>#%<#X8423,jjjrTrW>>>#9>kkmIdsXakk>>~Ikc,}  >1>=E#X<E X  Kk8c_4*O( 8A*2T|L!M,^iG ,   e*qqxqvs?Z?q?X?d?N?e?e???mj,U,"R%RtD#s#e:+ O3} ?- Hy+w@ya/d  Rt9(AM191`$yy(! m+e@_0\@eYZzuzvqpelrf]B-" ! |!nn@S r <L3 b obYfz #hYs lN;l?l%5 <, &-r)t.O_) >, .0xv)\<:D5D4?55 <l055! &,L3XXXXX08/S} D P - - - P  :1_ ie [ ey ( $ }TT     Mv[  qlVlOXr>:DMUq5F\c Kb= H #=H ` ` = m l l @&O=@7O2 -@2@7`-@-PK<l<</<X<S<<}Pn<U<<Z<[PPK<o<YP<O<W<,<[<NP<T<P<TPx<Q<tKoxv,*O,6O,6O,60Y,Y,Y,U,V,Z,(Z,(Z,(Z,(Z,(cZ ,,S,;S,FS,-,S,FO:O:O:,P:,,P,PAKAFAKAFAKAFL,FL,FL,FL,F &,$ &,$ &,$ &,$[,6[,6]ME]M;]M;]M0"0"0"0"0"ccccU,AU,AU,AU,AU,A   ccc,F,*,*,*,,*,*,*,*,*,*,*,*Z,(Z,(Z,(Z,( ,Z,(Z,(Z,(SN_9 &,$ &,$ &,$ , &,$ &,$ &,$ &,$ &,$ &,$ &,$ &,$U,AU,AU,AU,AU,AU,AU,A    T0T0T0T0T0T0T0T0AAAAAA'''''' 0 1 )   08CGccEc<cHc%c-,$,$,$,$,$,$AA WWW)W((((((((A$$$$$$$$AA'WWT0T0'',$,$(($$T0T0T0T0T0T0T0T0ss$$$$$$$$'T0T0T0T0T0T0T0sSMxM M AAS(*M 8 ),M ((((6969((  AA MM $$$$$AAAA4MRMyMM.M.,,A@@@M0M1M/M1,&,&^2^FWs P 111111M[MUnb,|,M,RNyNXMBMB|0_________(___a____[]e<,!!g):j LX4R? 4 O"o2-ccZ8:e(ee(eeee(ee(eeee(d,dBddd,P0YAKBBBB    BD,AF [-1[-    0-  |8# -|8{  ['-[,['D ,+Z7/  H7H7H-H7H7-7i7i$)H(H2H2(HkHK 8KT[[((,ddd,__HHHK(HHHHHHHHH*H2H2H(H(H-H---*H-H-H-H-HHH-H-H(H(H-H-H7H7H7H7HH6HH6(|4|P|B|B|E|E+++++LXL`L|>|>|>|>==W@>H(H(|B|B7'bH_I,,d##II,,|||||||k,|#|#$#rj!r"#S"##S"+7+Q###==H(M.fPd92222PVwYzvZsb_?R1(~`ja:aMU{__rUU@L++{__XmNae)`Wz MM8kLvzSMmkMiK}mR1_?nsVqRlNZ9yrvcl2N..nnaajLLI((ZdtQ]o_]o^LL,+,", ,,#,+,.,%,&,f,   , ":1:K%z:P&h? 9R%i?%#H2<<<<:::O:V&n?_`= &&9X%m0z3_=?98?N3^>#%<#>O:&98?H#)&NS'pA/iM' 24 G&-!# T 5 0MK/:w#2"5xFxY|O   } +8:8:r+++++KG]q!:!VwX X  ,1`?n?++!-Z-PP@@  nmq  Dh~3   gHk[[+yy+.VX_HjjezSCO O/Hhh0%%   .F:+O} ?--  +pq+t+ rq    ? q  x _CoJ$3* CGt:+ O3} ?- Hy+ yyWaa n2FHcq8|ULL' a\vuo?]c')B'iN)g'>>|)C|2bxjjrtJ**jUU  5]Jk5])u# = '!|||LLLU,LD([8c?z]s*U QY)*; b(.&bNE9EoE8c(EE9E3E[b& A  r H uK;,(v,/./6h[Q*^KXh[[u2 Bm+*%5)L\33\, NL42,G:<01,T$q0`.^)V2[/X1*K*Kb obYfz #hYs lN;l?p% a T 1 @ > [ B g RQ1rr{uojmugZ hZ]Cl ab_alP~37Y\jNouz~_sV_ ,J 9 M U v   ( 0 3 6 9 < B H M \ ^ t        ! + 0 3 9 C G ` o EMWY[]}   $ & 7 > I K q y ! !!!!"!(!-!3!5!!!!!!!!!""" """" "."4">"I"M"P"b"e"k"s"}"""""""""## ###*#$"%K%l%%%%%%%%%&,&c&f&j'A** .00000000jA6<>ADO $7P[^mPtz~r1Ya0  ; O X     * 2 5 8 < > G K Y ^ f         * / 2 6 > G ` f  HPY[]_   & 0 9 D K p t ! !!!!"!&!*!0!5!S!!!!!!!!""""""" "#"4"<"@"M"P"`"d"j"m"z"""""""""### #)#$"%%P%%%%%%%%%&,&`&e&j'@** .00000A000h98>@CFzysoMLHDA<;:975u`^[{zxrqmkjihged`^SRK?>=<;:987653$! hgf^ vutsrpomha`][LKGF@><:2(F`-,)T܅ڜڛښژmhgb!+nXWVUTS    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeixpk vj s gw w  l|cn T zm}b :  o py@KqGHIzLJA,K*PXJvY#?+X=YK*PX}Y ԰.-, /+\X G#Faj X db8!!Y!Y-,KRXE#Y!-,i @PX!@Y-,+X!#!zXYKRXXY!+XFvYXYYY-, \Z-,"PX \\Y-,$PX@\\Y-, 9/-KPXYF+X!YKRX!Y+\X E+D E++D E:++D E++D Ev++D Ey++D E ++D E+D E +Fv+D E +Fv+D E +Fv+D E+Fv+D E@+Fv+D E+Fv+DY NEJSSUUU^^,,,,X(<xhP\p< T L P  0 d $ <x8\x(|$@8(|tTXt 0DD(Hh(D  0 H !!P!"<""## #8#P#h##$h$$$$$$%%(%x%%%%%&&<&&&&''('l''(( (8(P(h)()))***0*H*`*x*++,+D+\+t++,4,L,d,|,,---0-H-`-x-.....///0/H/`/x/0,0D0\0t000111112 2$2<2T2l222233l3333334<4444455545L5|555556 6$6<6p666677707H7788808H8`8x899999:::4:L:d:|;D;<<(<===4=h===>>>0>H>`>x>>??|?????@ @$@<@T@l@@AAABB`BBCDCCDDpDDE EEEF8FGGGGH<HHI IIJJ\JK4KLL|LMHMN@NtNO0OtOPP\PPQ(QxQRRLRSSTST4TTUU U\UlUUUUUUVV,VDV\VtVVVVVWWW4WLWdW|WWWWWXX X8XPXhXYlYYYYZDZZZ[[[0[H[`[x[[[[[\\ \8\P\h\\\\\\]](]@]X]p]]]]]^^^0^H^`^x^^_P_` ````a@aXapabtbbbbbccc4cLcdccdd(dde0ef flfffglgh<hi,ijj,jjk$kXkkll(lmm\mmn8no o0oDoxoop@ppppqqqr0rtrrs@sttdtxtttuutuvv\vpvvvwdwwxXxlxxyPyz z{l{{{{|||(|<|P|||}}T}|}}}}}}~~$~8~x~~~~,H\p @`8P,@`0DXlTt4p 8\8\L8Lh|($pH Lp 0HX,<`$4Xhx,<L| $\@`(x hH$D0dL(H,Xh<L$Tl@P`p<L|`` Xh@X4DhxP`(p`0H(8H`p x| |,\,l4h4tP h\ H|0h(hlxÔìhĸLň4lƨ0HǔPhȀPhɀɘɰ0H`xʐ<Tl˄˜˴,D\ť8l@Ϭ@ЬшtxӸ$xX<֬0xhdڈۀ܀ܐܸ$݀ݤh lLDd(dXt\|lt4x@Xx $@\tL4t PD` TL(pT0(DhD hDl\  t\8L,T@X  L   @ \  P     h|TdH<0X$lD h < !0!p!""t"#X#$$`$%8%&&'p'(0()D)\))*<**+4+|,,<,,,- ---. .(/0/L/h//0$0112\2344p546677788h89T9:8:;H;<>>?L?@D@ABCDDDEPEFG0HHIIJJK$KLM$NNO0OPPlPQxQR<RSSSTxTUHUV8VW,WXX<XXY<YZZhZZ[[\^@^\^_D_`\`abc\dxde8effgDghThixijPj|jkkpkl(lmmlmnnoTppqPqhqqqrhrssxsthtu\uvDwwwxlyyzz{{d{|,|}}~0~~D`P0Tl d |8P, h L$Ld|\HPt thD<p4x`$@X0X8l\tpX(<8H|4x\@lHl8$,Hp8h,Ŭ(hlȸɈ0 H̬8<ά \@ԠՠTtpt,Tٰ,ڰT܈ߴ|(0  Lht@<LpxH4`p\ \$t$HllPpH L  <   `  L <,<P<<HPPP 0 !H!"\"#$ $% %%%%& &$&<&T&l&&&&&&'','(8(P(h(((((())()@)X)p)))))***0*H*+4+L+d+|+++++, ,$,<,T,l,,,,,,--,-D-\-t-----...4.L.d.|...../ /$/</T/l//////00,0D0\0t0000011141L1d1|111112 2$2<2T2l22222233,3D3\3t3333344444L4d4|444445 5$5<5T5l55555566,6D6\6t6666677747L7d7|777778 8$8<8T8l88888899,9D9\9t99999:::4:L:d:|:::::; ;$;<;T;l;;;;;;<<, >$><>T>l>>>>>>??,?D?\?t?????@ @$@<@T@l@@@@@@AA,ADA\AtAAAAABBB4BPBlBBBBBBCC,CDC\CtCCCCCD D$D<DTDlDDDDDDEE,EDE\EtEEEEEFFF8FPFhFFFFFFGG(G@GXGpGGGGGHH H8HPHhHHHHHHII(I@IXIpIIIIIJJJ0JHJ`JxJJJJJKK K8KPKhKKKKKKLL(L@LXLpLLLLLMMM0MHM`MxMMMMMNN N8NPNhNNNNNNNOO,ODO\OtOOOOOPPP4PLPdP|PPPPPQ Q$Q<QTQlQQQQQQRR,RDR\RtRRRRRSSS0SHS`SxSSSSSTTTTTTTTTTTTTT0T@TPTlTTTTUU<UUVVDVpVVVWW0WYY$Y\YYZZPZpZ[8[[\ \(\\]]^^8^p^^_$__`8`````aaa0aDaXalbDc c|cdlefghiijtklnnTndnxoooqr,s0ssttuu$u<u\u|uuuuv v,vLvdvtvvvvvw w4wLw\wtwwwwwwwxx4xDx\x|xxxxyyy$y4yDy|yyzz{{H{d{x{{|$|t|||}}$}8}L}h}}}~$~h~|PltThThhxL<X0h `$8P@hX <p ht\ld4\p4@$Hx,@T,xPp8lPl(D`8X| (D`|Ht,@Th| (D`|$@\x8Tp 4Pl 8p,@T$8Tp$h,Hd (D\t<l0l<PX$t X 8Pİ 0pl$dǤDtȤ8ˠ̐4ИшTdӼ\ ָL ؐ4 ۸ܬ,޴ߔ8xtl@LHTTHlXP(|$X4 pT$4L0`( L  p  p    H 0T lLL|$ l\$8 X!!P!""x"#4###$ $@$$%L%%&&\&&'H'(,() )8)P)h))))***+h+x++++++++,,|,-$-.0./H/p//0$0x001<112 2h233|4445|56H6677<7l8808l89,9x9:P:;@;;<(<==,==>h>?(?t?@ @@ADAB0BBC4CDDxDEtEFtG GhGHlHI\J4JKHKLL\LM`MNNpNOLOP\PPQTQRPRS\STpTUUlUVlVWWpWXxYDZZ[\(]0^(^_`a0abcpddelf fghThijtk klm`n$nopXqr`sXtuxv`whx|yz{|h} ~~dH8XPX<Hl$HhL`hD`$pPx84p \hh8H ŬƼpɼH˰P8t$ Ӝhՠ@x(ې@ d8T@<d0xTx<  L(pH L\d, 8     \@ph  !!"#$%P%&t&'()\* *+8+,`--.P./h001`2@234<45h567@8@99:;<=?8@hADBCDDEFGtHPI$IJTKL$MN$O PPQhRLSSTUVWtXLY[0[\]^_`bc0defgh0ij k lnoq4rHsPstu<uvw(xxy|zz{{|X}}~||4L,,$4,h\D,Dd4<4` ,8`HLL`THX0Dl$ X0dD(($` d (hL(h(0|Tt€ÄĤŌ|ǀɌX˴P͈ Μ$Ќt ֔0p؄LTۄDܜH$t |(pTTT|H`Dh (<Px Px 4`4`$H<D$l  \0 t    0    ,4XH|Hh$lx|P,(4 8 !"<##$ $%L&&'()h*4*+@+,-P-.x/(/001(123h445d56 67,778|89x9:h:;;;<<=>P>??@0@l@@AB0BCDDPDEpEF8FG\GH4HI IIJXJK0KKL4LtLMMXMMNHNNOOhOP$PQHQRS8TTUhUV|W$WXLXYpZZ[L[\L]]^4^_H_```a|b(bc,cdleeLef f`fggghhHhi ipijjjkllHmLnloHo`oxooooopp p8pPphppppppqq(q@qXqpqqqrsPt t,tLtltttuuv,vw w\wC!!!oN /C| #'#5'STRhh41 3#'73#'4]']'ooo3#3##7##7#537#537337#3$]jiu'L&|'L&erly$L$}#0| }DDDD!.4;%#5.=3&'&546753#.'%5>54&'oi;emO $]!Ge`;[gO@243"81ZzJ716[ $02"&46"32654&%3#2#"&46"32654&HcdedF)<<*)<;oBuBHceEGddF)<<*)<;dIEdeeF;*)<;)+;^'VdHEdedF;)*;;(+;4} ,5%#"&5467.54626=3#>54&#"'32 '*= \qE]/"d\?2Eljp&;Y$]]$Y;&2 ##5#5353FF FFWmh 73#5>=#Wii#32#"& 3265+.@;!wqrvvJFWYM0ܐf[#5>73#f>:X? .R;"632!!>?654&#"2e~dA8u(Ro\`P< t\R6#B-Wu?47U9L $"#632#"'332654##5>54&L9Xesc@8mXHHEN% _OCxSEh[l'ODexMJKCK,A8A %!533##5GBAiiXު]4O6#!!632#".'332654&#"#;Hfk)E-%XrHSTG):Q5W+ip)/wXLO[%+%4>32#.#"632#""32654&+"3G?#Qk X >.LQ:i_zeARR>=PJC^R3bW38O~chSBD[WCGS. #67!5x^(|JϪ W%("&547.5462&"32654"32654z҅y6*ww*spCC87D9RQACSu:waz{av:"@1SjjS2@=32=<24M|NM?>&##"&'33267"&54632"2654&"3G@#Qk X >.LQBze=PJSRk^R3bW38O~chMXCGSTAE[n 7#5#5hhhhhhhhnm #53#5>=#hii#< hh\x&&4-75% -vEOO2oa!5!5aFFFF25-5v EOOM#54>54&#"#4632#5%45%Z%54%F:I8UolatZ%.J1-9 /7%B00=#3?RJswhhh"r5A332654&#"327#".5467>32#"'#"&546322654&#"SZ @hя؟Orpr|yTJBYVLn`BLF]eT&A[6(?b:#X}ꝏ C*kmbC54&+ova(=Z-eF?}/1>D?^r$;;p/T+49E04>32#.#"32673!".00GyL+_^Wj{mZ``!KwG/d2bjO4NNej3Ni`Y3!2#'32654&+YlpplRZe !!!!!dLRRRZC #!!!]t\LRR,$326=#5!#'#"&54>32#.#"$9^]&#&=4&+#!2'4&+326 +q:>]Pks6+LCJEh&0* ")8.IAC?e^>RH6<0m0%2>54/&54632#.#"#".'3V8N%x~X^WJY6BJQ(>gA)KN8%X+U;*)S#0%cswkGMD7*01`C9=. #7\<64Q##5!b]<yRRU3#"&533265(]]eUXdnoOOTJ!#33ddci !# #333ffhdhWPP # #33sqqov0vc #33]socG !!5!5ELfTRR5R@,#3#ggHH#/7,53#53ggHHS,I3# #IEzyE,PB!5B~22P#'`<䔔*)4632327#"&'#"&54>7>=4&#"26=Aad- #()T^O] -<$1&=8:<SEXeJ<6qIF)? %(MTG& &(-0I*^  -P,6 3632#"'#"32654&6S9ihx|hk;KBPPBDUSVZCoooY^p#.#"3273#"&54632T@4DMNEkTp^k}j[m\7;ob]j~`kb#5#"&54632"32654&J"O6jz{fl5DTTEBPP'E1+}Qp[\on[^o(%!3273#"&632!654&#"~+Sf#TvZnmJq&T=?RH(DiV`J@7,AYW###5354632&#"WSFFA: : D8DY8?E5R&("&5463253#"&'3326="32654&\|{db>M0_I\nUqT>#K!CNNDBLK}[LJKeV*TJX_a2,n^_mk^bmF4&#"#3>32#C)@NSS%K8LYSk70aP0'MBtB#7#5SST ii& 3#"'53265#5FS &SS mG'%ii: 73##kgQSU޵PD#T'F!3>32>32#4&#"#4&#"#FM"K4a,%H4IOT3.3HT3.3HT J/*P,$KGwi27P9i27P9F3>32#4&#"#FM#Q:LZS:2@NT X70NAtk/8aP$ 2#"&6"32654&q}np}~oFPPFEQOMmmm\an6& 3632#"'"32654&6M;lhy{ea@BPPBDTSO^}NoooY^p&##"&5463253"32654&S9ihx|hk32ATTTM$C( Jg _;3"$732654&/.5462#&#"#"'z5E7C&+N]InbXf3<.3PNFuc/7-%" C>IWTMT+$# E:LZ#327#"&5#5353V'14GGS DF+(DA !#5#"&5332653K%P:L[S:2ANSI4,NA/8aP)  !#33[^^ W !# #333*_je^\kdfgh^e hh #'#373$a__~~^ & 3#"'5326?3Z)^ Y l KSh !!5!5EV9 JIKxI+,!#";#"&=4&'5>=463%$.R%.49",,"94A'EF&x'AE>E< E ;F>Ed,3#d<<S, 5326=47&=4&+532#%RR%/4:!++!:4A'x%&x'AE>E< E EK "#>32326=3#"/&/571u590'*bsNFKE!%:E?z3 J 4t673#5.546753#.8`TjW*euue*XcT9XEg tZmab wz ZYcV254'#53.54632#&#"&3C;?!h(+*9J+#580E8nQ"e5>,X@M ,> 7+'RD'B8.%B;V.&(791![{ 1W9FC'&%'#"''7&547'76327'"32654&:5(<5)380 687,5:(;97,>?,+?>65391+;9-7575:7)42/>V==*,> !#3##5#535#5333着XUUb3M33M3cBd,3#3#d<<<<oo++4?32654/.5467&5462#54&#"#".57654/=)+571+27,kaT5,&3 =0mkP.4'oII' E50&2&u"J12G33E`bO/70%"^'J6s)"4 H`*J0{'?=3m-<(d(#5!#5h hgggg%0#"&54632#.#"327 #"&54$ 32654(!@(VlmX#G -(9DE8V<ᢚ8@$fi2+]OHb|ߞ✞%/M#-!5%#"'#"&5467>=4#"#63232'3265@"/1808DYC";~zTS.9%6b33_,++4,11 , l^z /(bj 757757bjj5jjYzSSSSyYzSSSS(V w!#5!(FNw.8#58HH#.9#&54574&+#32'3254&+& #"&54$ 32654O"F΍K#(=<ᢚh/ -#%($ ~"*C# ߞ✞w.!5.FF 2#"&46"32654/>YY@=YYfN87&(8Y>@XZ|Y98&'87('2o ##5#5353!5FFFFFFF"#6323!>?654&$>@R`?! 3H:;1 F8R/ #:IL& / +B%"#632#"&5332654&'춮&.#?@K9GUFHO>,-*0 3@.)-,@8;L=IJD.++&'3# $\P-3#q<A$  %#"'#"'#33265332 !S;h6$SS:1ANS-1? SS/8aP)L)0O .546;####an^9@R@^e@JW.#5|}}'*2654#"'73632#"'<2.. *& &)B9/N %\8# +2"( #57>73#c6$ +>D.0W(/D!52"&546"2654&:DJKKKC'--N-,b33ZTOZZRQZ4@78@?79@bj 57'557'5llall=YzSSSSyYzSSSS=Q #57>73#3#%#533##=c6$ +>:<:.CC>D.0W'x; 5d=L *#57>73#3#"#6323!>?654&c6$ +>:<:$>@R`?! 3H:;1D.0W' F8R/ #:IL& / +Q%)47"#632#"&5332654&'춮&%3#%#533##=.#?@K9GUFHO>,-*0 3@.):<:.CC>-,@8;L=IJD.++&'3# $5'x; 5d`' "] #D$#C$#@$#K$#j$#I$ %!#!!!!!!#Ug+n`dRRR(_0*5%2673!632#"'732654#"'7.'.54>32#.#"zZ_`! &)B90M6. 8Xy܁!4@r!q3=HFYkbR"6$ f2zK*"DsD*"CsD*"@pD*"KqD*"jpD*"IlD"M0<C%3273#"&'&'#"&54>=4#"#632>3226=%!4&#"01e%TvY:^ 8e;L\*FGf$vp Tʀ/\6IpFZgG86&P@?R4K%iUa,':4TG&9$ N]R&,J@7pQe  ,('-GYW*3.54632#.#"3273#632#"'732654#"'5N&j[mT@4DMNEkTt\ %*B9/N6.  8=P,b]7;oc]j^m!# +2!) %("DvH("CxH("@{H("juH"DA"C"@ "j$*4>32&''7&'77"&"32654&$-<8'';a$U4,%Ja(Z*F+"||FPPFEQO@e<' (1-'(,/-%)#MLs>Rmmm\anF"KtQ$"DmR$"CnR$"@nR$"KnR$"jmR2 !5#5#5&hhhFFhhphh##"''7&54632732654&#"?,}og<= B0~oeA:\+?FP)EFPGIm>EJGsAA0m_B 4m_DA"DlXA"ClXA"@oXA"jnX&"CQ\6& 3632#"'"32654&6S8ifz{ea@BPPBDTSP}NoooY^p&"jV\g#B$*"BnD#G$*"GnD3"&5467#'!#3#327 h8L3. KMcx7'H%0px4*$:',6 - L+3T4?632327327#".5467&'#"&54>763>=4#"26=Cad- LH&*:1%9QaO]%(@5)1%u:;QEXeJ<6qIF)?=7 - ,!( CMTG"3" N-0I*^  -P,0#C&"CnF0#@&"@cF0i#H&"H\F0#A&"AgFY#A'#qG #53!2#!326&+3YEE]kppkSCCSC-!3##5#"&546325#5353"32654&??JFbf|{ea@SDTTDBPO5;R|N5LnnlY\mZeg#B(("BsHZe#G(("GrHZe#H(("HqHZ3"&5467!!!!!!#327@8L3.=ds7'H%04*$:RRR,6 - (4+3%327#"&54>7#"&632!32?54&#"&)(&"&)?L(pmJq~01e%T=?R)B,(0 - 0($J@6b4K%iAYWIZe#A(("A|H,c@@7 *&"@XJ,#G*&"GaJ,i#H*&"HXJ,#E*&#_JS#@+#@K'!5%53!533##!##5w,]w],,]^,ZZHFLF4&#"##53533#>32#C)@NS??S%K8LYSk70aPX5LL50'MBt0i#K,%"K g#B,"B*#G,"G3"&5467#33278L3.^7(H%04*$:',6 - 3"&54673#327#5r8L-(S 0#H%0T4*!8 *6 - ii_#H,^ #S  dr#-,B&1#ML #@-&&@O#\.:#\N: 73 #%#k0gS  F#C/@#COP#\/9#\OP#}/D1#qqOP#y/D#yO( 7!!573{(PP]yLzR9M8u 7#573BBS??S3@392@2`L#C1F"CzQL#\1F#\QL#A1F"AtQ0s#Q L&%3#"'53232=#3.XMG @vXeT58Q;1jF&#"'532654&#"#3>32 &:2@NTM#Q:LZmG'/8aP X70N&g#B2$"BkR&#G2$"GlR&#L/2$#LR+-4>325!!!!!!5#".7327&#"+(=RM'y>HUNCu(MR<'])94};;|59'dXT6XLRRRJ^5QZIn?' xex'@n(*1%3273#"'#"&54632>32$"32654!4&#"01f#TvY>?q||q=e=Jq،PPFEQX&P@?R4K%iV`ggj28J@7pm^`ml^a3GYW]#C5EK"CU]#\5;A#\U]#A51P"AU0m#C6""CWV0m#@6""@VV0*mH%2>54/&54632#.#"632#"'732654#"'7&#'.=3V8N%x~X^WJY6BJQ;wT&)B9/N6.  ,YgX+U;*)S#0%cswkGMD7*01`C(ED+ # +2"( %E[64"*>732654&/.5462#&#"632#"'732654#"'7&'z5E7C&+N]InbXf3<.3PNF4.&O&)B9/N6. /7-%" C>IWTMT+$# E:/N # +2"( %G0m#A6""ATV+Q2654#"'7##5!##632#"'2.. * < &)B9/N %[RRy7# +2"%,2654#"'7.5#53533#327632#"'B2.. &(*GGSVV &)B9/N %S*$DDF/# +2"Q#A7#4WQ535#5!#3##x<]eHRRHe #3#327#"&=#535#5353VOO'14LLGGS DHF+(HDUi#K8A"KpXUg#B8A"BlXU#G8A"GlXU#I8A"IjXU#L 8A#LXU3#"&5467#"&53326533279L"'9,]eUXd]%44%H%04)/ pOOTJ4W9046 - A4  $327#"&547#5#"&533265#*$'>J`%P:L[S:2AN ; -2+>1I4,NA/8aP)#@8:#@Z #@<&"@V\ #j<G#C="CZ]G#H="HP]G#A="AX]3##5354632&#"SFFA: :DY8?E5-!533#632#"'##5"3264&YS@ae{|fbFJ?$COPBDTTLL5N|R;X5m\Ylnn0* 0%2>54&+4+3%"5463!2#!#"3263J1>D?F{=G~=Z-eF?vaR1 R+49EM!1N$;;p/TB^r:OOo!6  "32654&!!632#"'BPPBDUS9ihx|hk;oooY^p3IVZCo732654&+332#!'@RQA]]dƀRR=@PhxfcË  "32654&3632#"'#'BPPBDUSS9ihx|hk;K]oooY^p VZCË0 &0(4>32632&#"#.#"32673!".00GyLHP _^Wj{mZ``!KwG/d2bjO4O;ORNNej3Ni`.,"632&#"#.#"3273#"&54632R T@4DMNEkTp^k}jT>ER7;ob]j~`k0L!%32654&+"5463!2#!#"3263glppl{=GoR1 Rǚ1N:OOo754!35!5!!".6;#"Ot=Y-] 8''8R'+EF:.)-,6  "3264&#5#"&546325!5!&FSUDBPPK;kh|xhi9p^Yooo3CZVI%;$ 6Ze !5!5!5!!5!sdLRR'R/0m/".547&54632#.#";#"32>=3MQv<ix~X^WJY_?XlC`%N8;U+X6Y\+GG&}1-lcswkGMD7.[RT.)+47Ji5&C!!!!#"'532Zt\QH DL%RRG58Q&##"'53265#5354632&#"W &FFA: : DmG'DY8?E5R,.326=#5!#'#"&54>32632&#"#.#"$9^[cEgI>K57FA+#"&54&#"#3>3232>54&'7/714C)@NSS%K8LYI-F&5Hf1?';d+(/70aP0'MB/#1=+.t3&}; Pv:34632&#"73#:A: :kgQe8?E5޵PM #5333##|||T}}TSCCC,"273267#".' #'527.#76*:o0!! z`%6 !$5_LMFb\tMbR @ !#5#"'#"&533265332653S"K4a,%H4JT_/-3C_[3C_J/*P,$LFV27O: iO: &33##"'532Le}XiMG DL%T'OD58LF83>32#4&#"#FM#Q:LZS:2@NT X70NA3/8aP& #"&632.#"!26^pm ԌaVԐ}|Fu& ""2654&#"&63232>54'7t菎>lB @%k=򥤄΢V$$ 6+8]a$5w !"32654&7#"&63232654'FPPFEQO%\%np}~n8R mmm\an+8VEg# & #"2654&#"&632632#4&#"t菎qVT`SI^%&*X򥤄΢V8=gTM5i$8 #"32654&#4&#"#"&632632FPPFEQOHT"'#4np}~nT8@>F@mmm\an]M'*I|))I0#3264&++##"3263#"5463!2gCKKCq[]R1 {=GluDxD]q:O1No6&  ""32654&'632#"'#4632&#"BPPBDTS;lhy{ea@T>9 :oooY^p^}N?9>E[!3264&+#332#&=4&#AIIA]]hxV%"q;=DxDxqct:JOL> .IAC?0m0%2>=3#".546?>54&#"#>32G;U+X%8NK)Ag>(QJB6YJW^X~x%N;46<\7# .=9C`10*7DMGkwsc%0#S)*"$%3#"&546?>54&#"#>2326sXcuFNP3.<3fXbnI]N+&C7E4ZL:E #$+TMTWI>C "%-7G 5!!!!5 fmTRRR&= "2654&#"&4632327#"5i%%2%$2II29B& $$$#IdHD8T'Gm&.5#53533#327#"'53265),GGSVV &+$DDmG'Q4>7!##+"327#"?2]+R16 {Z4+RytO3#327#"&5#5354632&#"VV'14GGA: :^RDF+(DY8?E&Q#5!#327#"&54'%]eUXd]X+8f SnoOOTJ Ao#5#"&5332653>54'J%K%P:L[S:2AN]+8kHI4,NA/8aP)  U".5332>=4.'3N7MM(](('GF3 4)+l,aJ - '=a?8ciDA&'>323#.#"$ !A-s]  iN @cE"&$!#"'5326?3632&#")^ Yr)^l KU hAl KG3#!!5#537!5EMWfTCRRCR 3#!!57#537!5{SEV]} JCIKCI E7!5!#"'332654#52>Ef ,1|X Qj ҵRT +F,dyMAK  E3"3273#"&'454>7'5!! jQ X|1, f KAMyd,F+ TR q '5!!#"32673#"&546Ə܏0NEHHXmaJIKCKJMxeXc"6 ,#"&#"327#"&543232654&+57!5!,aW=6Wb $%.aa`\0aSH0Pb &E LBO40+;KIJ"632'!!>7'57654&#"2e~W(A8u(I_S'`P< t\{O$MD#B-Wo|9"MB7U9L@#%#"&5332654.=#53533#x]hsO?H?H&66&GGSVV&66&]c|nD^8:)5=.DD-"&D6&  ">54&#"#3>32#O'? 7*haTT=_NBW".5:97/h9$A6F"))P;%^N#E<;10&$d,_d,"_n_2,33#3###535#53<<FfFCFfF|Y#?'Y#@'#@,GP#-,/P&#M,/D&w#MOLn#-1L&k#M1F&#M,Q#A$*"ApD"#A,"A&#A2$"AnRU#A8A"AoXU#qCA9"qm|UN#vjA#vUP#AkA#ApUN#CjA#CI( H)#qC*9"ql|#q&*"qn\ #q"M#q,-3267#536=#5!3##'#"&54>32#.#"$9^M $5kL\nn^_mk^bmX(4$@2,}[LJ[3468TJ,#A*&"AZJO#A.#AN&#&"&5467.54632327"2654&8L-)Nd0#H%0t菎4*"7Ξ԰eg*6 - p򥤄$#&"&5467.54632327"32654&8L.*\e~nq}qd0#H%0FPPFEQO4*"8vy*6 - mmm\an&#S#q$#"qk E#Ay q"AU+&&AY#='Y#]'#],G,#v*&#vJL#C1F"CNQu#v*#v #v"M#v=#v #v#\$#\D#^$*#^De#\(#\HZe#^((#^H]#\ ,Q#\*#^;,#^/&#\2#\R&#^-2$#^R&#\5A#\YU]#^5-Z#^kUU#\8#\XU#^8A#^X0m0<%2>54/&54632#.#"#".'33+52=#V8N%x~X^WJY6BJQ(>gA)KN8%X+Ud4.77;*)S#0%cswkGMD7*01`C9=. #7\<64wg8A&N"$0732654&/.5462#&#"#"'3+52=#z5E7C&+N]InbXf3<.3PNFucd4.77/7-%" C>IWTMT+$# E:LZg8A&NQ##5!3+52505#b]328D-][mN800D0j[mT@4DM++-6 M,0I)*<6Ilb]7;obN0#  7&L $"32654&#"&546323327#"5 DTTEBPPY"O6jz{fl5S"' p[\on[^ox1+}Q&GmF $"32654&7#5#"&5463254632&#" DTTEBPPJ"O6jz{fl5A: :p[\on[^oE1+}Q8?E(747>32#"&'332767'.#"(qJmnZvT#fS+R?=Tp7@J`ViD(HDIWYA( H)"#%3#"&547&5462#&#";#"326sXcuVAnbXf3<10>J+;@6E4ZLV&%KIWTMT+$!5L6%-7"G!(>32#"&547"32654&+532654&"az\p",*rcyoG?GO6=;+5)01?WI(5;-LZYsm_-%6L5!$+& 33##"'53265#53FSMM &NN HmG'#K1\|{db><9 0_I\nUn^_mk^bm^b2,}[S9>EJKeV*TJX& /"32654&"&54632>2&#"#"&'3326=CNNDBLKT\|{db<$> 0_I\nUqT>#Kn^_mk^bm}Y#. H%KeV*TJX_a2, !326=#53#'#"&54>32#.#"vMb.`,Lln$8^;]vV C?UVajUB=HV|#HO;'ZR3,k 254''47&'33". `4 ZZ&47L0#/(*/P^N`(F<+4  #/2632#4&#"#"&5467&"#>32>54&4:;5>`L2 (+<-.=^8)%.4LbE-! ,??Af@%6O)Zf)?.Y)T}mG?3'1gF3  K, F4&#"#4632&#">32#C)@NSA: :%K8LYSk70aPe8?E50'MBtF&%4&#"#4632&#">32#"'53265C)@NSA: :%K8LY &k70aPe8?E50'MBmG'#5533##5#5TSPPSKii_HHB 327#"&5'14 UF+(  3#3#53# IIRR HHH|D& 3327#"DT& mF'GDqJ#"'732654#+57!#3!Yam5I7)EN TT cXexg.KCK=JF  P@ F8 !##"'#"&533265332653M"K4a,%H4IOT3.3HT3.3HT/*P,$KG27P9I27P9IF&*3>32>32#"'532654&#"#4&#"#FM"K4a,%H4IO &3.3HT3.3HT J/*P,$KG mG'27P9i27P9&3>32#4&#"#"'53265FM#Q:LZS:2@N & X70NAtk/8aPrmG'F&@3>32327#"54&#"#FM#Q:LZ& :2@NT X70NA('Gm/8aPF ##3mSl c c$ 2#"&6."!26q}np}~MN)N|NRZ[QFNXX$ "3275&#3#3!5#"&6325!FPPF_&$n7Np}~nN8Jmmbb LL&%/%4.#"326=332>%4>2#"'#"&c-EA*x3:7,T/3(4,G|{G,$<=!`0.b^`:T1 qsIc9!"85H5)JU=('=SL*Fh4ZZ98 EA  U EA 7>53#5#"'ETTTM$C( IJg'_;3E& 7>53327#"=#"'ETTT& $C( IJg'Gm;3E8A #3>32ATTTM$C( Jg(_;3E&A327#"53>32ATT& M$C( Jg'Gmy_;3Tt 3#4 #4&'T T""mm!%%Ee !4&'#54 ""T %%!mmR6 #'##3254&+32RCgET,@![1*[wHL 0/#$+6  _ "(0332654&/.5462#&#"#"'327#""X5E7C&+N]InbXf3<.3PNFucN/& k/7-%" C>IWTMT+$# E:LZL'G& #"'532654632&#" &A: :^5mG'8?E&##"'53265#534632&#"W &FFA: :8DmG'@D-8?E5& 4#"5632327#"5_: :A& 5E?8'Gm& &3265&#"4>324632&#"&'#"&S#(0#<"#M/8 31A: :"SGVLg  *5 e8?E5 HpI W &#327#"&5#5353V'14GGS DF+(OD0 !#5#"&=#53533533#!326=K%P:L[IISSNN:2ANI4,NAxHHW/8aP "F *#".5467#5332>54&'531?';d>Af9& ?1nH5%N4,E'5H&};54&'7714SI-F&5Hf1?';d+(U/#1=+.t3&};54SNH9rB4+Ht &"_6)``KxIJ->5    q #"'332654+57!5!,YamXHHEN0 cXexMJKCKIJ/"#632#>54&L9XesC8T_OCxSEh[9f,A8A/.#"#&'.54632=H:CO_T8CseJNA8A,pJf9[h/ ,0+4>32#.#"32673!".500GyL+_^Wj{mZ``!KwG/d2bjO4NNej3Nh`1&&2kF B"$#"&547&54632'";#"32654&nzcrVAp\~^3?10)5+;=6OG?ZLV&%KIW|/+$!5L6%-_msY[ *326=#53#'#"&54>32632&#"#.#"vMb.`,Lln$8^;c;N :V C?UVajUB=HV|#HO;'27E533,kF M&!#54>323&'#"&73265&#"DS/8 31S"SGVLM#(0#<"#ii*5  HpI* :7 N0F| 333FT @L&F $"32654&54632&#"##"&54632 ETTEBPOU<9 S9ihx|hgp[\onZ^pI9>ES/"#6323##5#535>54&L9XesC8mmTii_OCxSEh[9fHHX,A8A/.#"3##5#535&'.54632=H:CO_iiTmm8CseJNA8A,XHHf9[h #"32654&%!!5#"&546323 DTTEBPP'E$"O6jz{fl5S!p[\on[^o?JIE1+}QI[q+7#"'732654#+57!#5#"&546323!%"32654&Yam5I7)EN J"O6jz{fl5SDTTEBPP cXexg.KCK=E1+}QJ p[\on[^o 7:"32654&"32>54##5!5#"&546323!354632 DTTEBPP &"ISNH"O6jz{fl5SrB4+HV#p[\on[^o   )6)``E1+}QJ->5'^C?<5OC "3"&546$44,,4$#4O33#'#t_`?QO@``O2#'373_`?QO@O``w.q\P-vPCl?<Ol?zU< 332673#".;T(0; $<4B" @sd#5hhhOC 2"&546"2654&%34H44$$3%$34$#4,93 "&546733278L3.F7'H%04*$:,6 - e?23273#"&#"#>[X :Jd :-%%h&%16N\3#%3#=q<q<䖖PCPvO@eKwq=us!5sHHUG&dHdj4}#532654&#"'62,, J34F@ 3%$3CIO3LOA%OD3#'^(DoOD 3#'73#']']'Dooo=N#'##'`<=`<䖖U/#HcGU G1,G} `+6G 3#532>5#QQ  )EX*/G #;"=)  QF*XE/G`0C0v3#5#53HH54'%-I+8pT #"&5462&"327h#%34H $3%$3  )53533SHSHSSH)##5#5.SHSx8K9kew.qIq.Ch3#YLLhC3#YLL632#"'732654&#"#%34$"U3%$3  :!53353FFƉCC!!75#̆32733273#"C+ :-!%'>1  :J4G%16@T%hh4#H0#HKcF=2#KeK G \ Y #5'67&'9 4.8+ A , -19% 5 (5-5*!e&OP&C#"&5462&"327N#%34H $\3%$3  3 #H GuPQ~f{5%gޙW!DE!t#_57'5鼼yJ:; 57'5%3#'#鼼K!c&MN&J:;C632#"'732654&#"#%34$"3%$3  dH%mR37''7'7/PQ5'./&4QPDT,CFFC,'8I2>32#*#.'#"&54>32>7.#"2654&#"W'& 2$"!.$2 &!   *! 1  "8 8" \(  &M(&  " 37#7#A%9?' e_9N267>73"&'.'33232653#"/&3C+WL**-!D,317 =A%*$FKE +); ?xNU+5!/7'?; %1KK1% ;.5 ,5 5, 6:d!+632327#"'#"&54>7>=4#"26=MK  $# -+ " 7!A7u   $y# :J#3273#"&46323254&#" ' -"*01*+ p  ( %9b;""<U#57#5 P((:H 2#"&46"32654&+/0**00*94189d9*$$**#%*:L #5#"&=3326=3(#  C$%p;^#&#"3273#"&54632*) +$(01("*,+%#)0$)902;&:VX#5#"&546325"32654&'(//')8 X#:3/:gf*F**"$*9XP4&#"#3632#&"%ni!m7j B@2673#"=3!1JL *Oc2( nm sPDNddv#2jY/ 2"&54v((/&ze 'N5&se"D'N7|"$Oo%R6!#!6|`{5)3!0bt{;Ze(G=S+&!5!#"&632%"2654&)Pt菎@R1VԂ򥤄d,O.3#3#tcxh'uK0L1Ac !5!!5!!5!S9gI"SsSaS&2P!#!#!^^0y[i3(^ )55!!!^t*U#RR0Q7 <%"&5463532##4&'>={|Q}{SoVWnVon_}yQQx|_vVk c r{ lUYq;4%##5#"&5;332657"^"zvZKWVWKZlaaQA7AQ7kb4!%>54&#"!53.546323!;D.qmiMOZhTL /MwAqnc#LH.ei,H #j #j0G#'"{J#8+"(|"`0G(4>353327#"&=&5#"4&#"3260 1S4o3H +%#_BxRBJFHN!CJ9%FRW E  8Nni[f2:)4>32#"&'#4&#"32654+53262*Q;_iho_;F!VH?4;)qAE2*?G7RE$dXw%_w$3?)jTJDJI: #5&#"'4632 V $.'v F #7~%(74632'5!!#".7";27>54&%v_ &*"y =A1FRPD/ %RsHH /4S1$8]gO[]]5Rb'$%#"547&546732#.#";#"267 mgffpf ch LV;@@..?AHrXPB_`Q?CO'%U/(;(/,(%'&>".5467#5!'654&&7L=+gdqED&L" .T6BH<@ℎ.A7aE!#J4&#"#4#"'632632'.>X  $CaR[Xn{lLH6SU.v8 7327#"&53 .,<@XQHEB !##373l>XXr < ,.#76323267#".' #  6 !'=! 0!! z`') R &:H"JFb\N8"&'#332676=3#5 +6XX 8)*=VP; "x##*17j>%%  Y>/%2'654&+".54>7.5467#5!#";#"jI'J#&8Ca1'3"6D, dt*@LXRnJd^F*C=^V"!78.H) K9+HFFT0+E@RxD$R5i %27#"&5###5!#; 0.,^G(@@ >0FT:FF98"4>32#"'#2654."90B>!r>D+Gc5X>\11410/1=_8% wlm&G\l8Q)*RpR*J&4632#4&#"'>54&'.'.tc|[JB01(H;/H@0Z -(FI2.9vu_@F'L4.B%  -<,n P %p"N4>32!##"&732654&"",KO,@qsZ[=IOLLMo9RRf{|k[lZVpr* "&5#5!#327HI1! #CQ3II+O ( 7327>53#".531S<# XjnEZ.XbHD<$~V:H7F.8 #"&5467;32+#54&+3267yZF*3CiNXyn X]OK] nZ$D!d;NiŘznOhf,=+"&/#.##56323327=$=ah   B `Ã$ 3&hN<$*8l %##5"&53332653luVtZGUVUGZlljn6YQNQY$'%2>54'7#"'#"&54673>=3.4(4lP*F$<=!`0.b^`<4Pl3:7,T"55H/u"NFh4ZZj<)lIc7 "j("j`$#("q$#6-0"34&47676323##".'33265C#s,! CC 1L24N, P>-AIGSJiC " 3'@*#HAeX8 &8SG+;^@v4 052>32&#"#54.'&4Df>! PK> '&'@2&`.&-`3ZQ3^E$. 9\xETp_+498!463532##5"&73"4&#269Xz?nJXzTa_b^_ae[uy8^M+xSk|oOSki$+%2>54'!3>=3%##"'#"&5467#5.4(4NM3:7,T#>#$<=!`0.b^`!>"55H/eeIc7 ߞF0y6Fh4ZZj(3F(  2733#"'5326=&5#7654&# cgjϐ &Ɣh:ka Tc}NqmG'OFc8*0!>3273327#"&5#7654&#"Z1;Ocgj-#/,6]1=Oh:%.+(9_e}NF9F.4>32#"'3263"#"&572654."90B>!r>D+Gc54)-1'-Dm>\11410/1=_8% wlm&GR4Rl3[\l8Q)*RpR*0%"4>3"3# 1S4CFFBN!CJ9%LVLBJVZe#C(Ze#j%l2+53254+##5!#)J[ 54Rc9B]WE,? BBK9PPYB#C# 0 .#"!!32673!".54>327^W^x lgZ``!KwG/0GyL+NNsR~ej3Ni`12bjO40m6d,#j,-S'!#0#52>=!32#'2>54&+,F.* ua 1>M@{Ch_T,^4OvVtY^rR+48FS!!#3!332#'2>54&+^]1]|w` 1>M@L;uZ\rR+48F2#4+##5!#)J[]B]WE;9PPOm#C*O#D(k#G3Sy !#5#3!3P^v^y'$Oo%#!!!3 4.+32>o-Y=t] 8''8$FE+R.*,-Oo%O83#!!]tR"y %!!>=!3#5!#5KE*[PPR5hv ٥qчZe(? # 333 ##nEt]tEv]Dwb44D0m1%2>54&+532654&#"#>32#".'3V8N%`ClX?_YJW^X~xi(>gA)KN8%X+U;*).TR[.7DMGkwscl-1}9=. #7\<64O 33##OX}eXi['VO#G(Om 3#33 #]]1oz|2M!R!#52>=!#,F.* ^RDjaV-^6QwW'K0S+&2O!#!#"^1^y'[i30&Q7k3#733qqo{@=$0<032##5".54>;532>4.#" &CcF3'?6K._.K6?'3FcC& _0H5''5H0_0H5''5H0|7jH6W8( ^^ (8W6Hj7]%JdJ%z%JdJ%;Oy %33#5!3"^CP^RqчyO9#"&53;3#MX]L]]\A)9t'O %33!333^b^^R'yOy0)333333#o^^^CPyyqQX !#5!32#'32654&+8Dd@RQARxfcRR=@PO %#!33232654&+#od]=@RQAm^cxfR=@Ph'Oo %#!33232654&+od]=@RQAcxfR=@P0 3267!5!.#"#632# `Zgl x^W^_+LyG0/GwK! je~RsMO4Ojb21`iN3!S#"&'##33>32%"32654&v^]yq}}rq~|aŗ좡 o 463!###"&6;5#"OvaI]oneqQ7>53"32654&u,oq}np}$F2?)/J,m](:FPPFEQOFLU  A7 N=mmm\anF 2+4&+3264+3265!RFE2.TG.;bb;.[*1 P4Q"5!3#5!#573#W0"S@FnFݬ@4xx t;(H, 73#'#5#'35kjSjk "#732654&+532654&#"#>2#"'z5E6@;+J>01<3fXbnAVuc/7-%6L5!$+TMTWIK%&VLZF 33##FTlSm ccF"GvHF 73#'#`jS  F !##0#52>5ST !2  b%F$ 33###FhhT2T FkCF 3353#5##FTTTT $RF !###FTT @6& SF< !###<tT L@& \=&R&2632#"&'##"&5463253"32654&!"32654&-dflmd1>#S?5egke^1S@CC@CFFdCBBC@CB^#+-&^lll\`nm^_lk]am [F$ 33333#5FTT=F @4xF 3;53#5#"&5FT"TT;V B9Fn %33!333TTTL @F )333333#dTTT32#"&'33267#53.#"%m[j}k^pTkAM I:4@\\ck`~^TMIP;7F#4>32#".5##3%"32654& 1W7q}n7W2! ^TTJFPPFEQO51D8'&8H> יmmm\an 4>;#5##7.7;5#"F!@,TEgCR[[*1w/0L=F+$("CtH("j{H]'4&#"##53533#>32#"'5>5B*BKSTTS *;#KZ7PP 5{\70bNT@EE@!JD?k@#(|\F|"CC%#3273#"&54632#.#"3XMAkTp^k}j[mT@4:I T^~`kb]7;PI"VBL "j&MF0 72>=!32+##%#32654&FSqmkaF'B8||:81P,yCXEVa6,+(F1 !#5##335332'#32654&TTTqmkbk||;72 BXEW.))4&#"##53533#>32#B*BKSTTS *;#KZS\70bNT@EE@!JDA"C<JF#DH&"GS\F !#5#333:FTTxx @&"ac2$ &2#"&6"32654&23273#"&#"#>q}np}~oFPPFEQOO 4 C[  4(Mmmm\an""^"!-0o %4&+32>7#!#53533#32]vaYY]\\1M+4^rFxxF| %4+32657#!#53533#32[2)[UF>>THHvphN3CS~FHHFKL[i 654&+327'7+#!2KC62L$0]-lu<:2!6a@TM;lhys7U^poo@2?2CNO^ZC93#!53!]]t`Fmu353##FTT i@8 3###535!!jj]KKtFYFR| 5!#3###5F6DDT>HLxFFZRC3#!!32+532654&+]t\]]\40+55+RfZZfR/-'-/Fq 26=4&#"#!#>32+)C$*=3T'A9I>YLF079.[Vd L0'IFBM?y%3#5### 333t@P]nEx]xJчDDwb443 %3#5#%#5# 35373JF!Sg0kSk@x03m:%#"'53254&'.'332>54&+532654&#"#>32mv6L80%H!uX+U;8N%`ClX?_YJW^X~xi\x "7*4 - 6% t64*).TR[.7DMGkwscl-1"32732654&+532654&#"#>2#"'53254&'&'z5E6@;+J>01<3fXbnAV_S6L80%H!/7-%6L5!$+TMTWIK%&VDX%5*4 - 6&Oym%3#5##33$IP,]]1oJчM2F %3#5#'#373@F$SS`@x O'#375373#%#0]]0FxvtF)*MR?: 7'#375373#'#1SS1FgkgF) 1k%gqt*3#3 ###5353``kxdn]UU]oF;D)Fj 533#73 #%##5:SGGk0gS<..FjFQ{ #5!3 ##8Dkxdn]R;D9 #5!73 #%# k0gSLSy%3#5#!#3!3CPQ^]v^JчL;F$ %3#5#5##335332+9)C$*=3TTA9I>YLF079.[Vd@ 0'IFBM03,#"'53254&'.54>32#.#"32673L80%H!Hm:$ 0GyL+_^Wj{mZ`` 5o*4 - 6&CUlL"2bjO4NNej$3'#"'53254&'.54632#.#"3273cL80%H#Xfj[mT@4DMNEkT\N7o*4 - 6&qb]7;ob]j~Vh $yQ %3#5##5!#bCPP32!&T=?R01f#TvZj~OO3*L"+C cJq.AYW4K%iV`xY:4>L.-'%+mJ@7p/3r E.#"#"'53254&'.=.54632#&#";6763 !32673 &C-Vu=L80%H!>c=*fgM?7A2 A)./)JIR,{jW^_(5!-9"f[*4 - 6&1INX=uSN];7DB;8@tJUMO$*3@!654&#"#"'53254&'.'.54632#&#";>32!3273!&T=?RL80%H#UdOO3*L"+C cJq~01f#TeL6.AYW*4 - 6'jY:4>L.-'%+mJ@7p4K%iM_#d#^'?#GT&,#GFOR2+5326=4&+#33\]]\40+55+]]kxdwfZZfR/--/;:q %4&+#37372+5265eC)lSSkMLYYL)CY70 MBzBMI07!y!#52>=!3#5#,F.* GPURDjaV-^6QwWqчF$ !3#5##0#52>5S=FK !2  4x0)CXDG.PAAqQDSR!!#3!3+5326&^]v^^\40+5L;9ZfR/Fq 26=##3353+)*ATTTYLF07 BMSy!#3!33#5#'^]w]GPTL;qчF% 33533#5#5##FTT=FKT 4xOy9!#535#"&53;3PC\]]5+]ѺfZ-/'F !#535#"&=3;3wF=AZTDTxLCFKy@!##333#5#bXԁGPOc{qчcFa 333#5###Fhh=FK2T F4xkC#G *"Gn@#j *"jp@ %!#!!!!!!#Ug+n`dRRR(_"M.:A%3273#"&'&'#"&5467>=4#"#632>3226=%!4&#"01e%TvY:^ 8e;L\s3$vp Tʀ/\6IpFZgG86&P@?R4K%iUa,':4TGQN N]R&,J@7pQe  ,('-GYWZe#G%("GrE/ #7326?# !654&#"#632 &C-Vui/GwK{jW^_+LyG0!-9"f[h1`iN3eMO4Ojb(.#"#>32#"&'&5!32601f#TvZnmJqT=?R4K%iV`J@7pDAYW/#j("jp?#jV&,#jF0m#j'""jJG Ey q +Og#B(F"BvHO#j(F"jxH&#j.$"jmN& #"&632.#"!26^pm ԌaVԐ}|Fu$ 2#"&6."!26q}np}~MN)N|NRZ[QFNXX&#j$"jm0#j="jQ]kg#B3&"BTSk#j3&"jVSk#L3&#L SO9#j7F"jaWO#j;Fl#j[O%2653'#"&53brO_W;[ 1z^/+Ipv]De$$c\WO2#54.'"!!#4>jRp=_'O=%/^&>e-XlIRQ:KA\1X];ZR4S.%##5#"&/46763234&'"37554'k_O~ 0@Ag= n_KJk ";;#[aZo{((P ( n;I85=B[,n R23##4.'"#54676jSq=RR_ #K:rO_0@@+VmL^8HC"pvQRo{')O%26=3".53!!bsN_%=dDSr=^//+[ovQQ9XR6!+XlL][V<32'4'!#533267>754.+7!&5%322{(4+{),SEYZZX';,GF"t % 4p-!:hH=! :*767#:,B=Y-o(Q G60cT %#33#N`OOMJ"0#54.'"%4>32o_'O=9I% &>eD3S7' )%$A9KBAL:W;ZR4"#-? 5"2=+"'"'"'.546;54&'#"'#"#4>;23#E.4Y_k  F:Wx?U |_.KL)i66p8^U8^r _]iBAE :U+q\KNC~$%"&=4673533#2675#"#"/"mjm\c`EH6 %'[po^~\oK~:O =,k?q4.#"#3>32#%I8Jg ^b y/Ts>^8MA45%:"-ZlKG]u33]_]B%%2>74746=3#".5465#3 -_xoIh=# l__ %II:. 6ᩑ"8]_DN@9KA # .3!2.#'2#"&546767'"=4&"276v\^$ A~ *ebP?) Q|PLKIGbeMK7-?]Ć[[T-QkpRRj`IGJGJ}%".532>76=3#5hTr>^/)>-E%_a \,XmL[W$)KL$72'&'"#.'%6, %' /t-g.0" 83P2;"'5467632&'"&/4672>=4."27.LD[_S>0=teV I/H.;E A: D+?U)2#'>+# 7WG=BEko?c< ( "''&-!>CG(Y,+D%:!#)O23#4&'"#54653#".53M8J%j>qSRp=_NU BL7]MmV*-XlIbvo1*3#"'".53327654'&+53274&#"#4>32)Bn.aI];E'<<450X45G`.[?5T2! cOds.b=H Ms:35,77"&31M#"  ".''53326=3o=/+32o_'O=9I% ^&>eD3S7' )%$Ab9KBAL:c;ZR4"#-BG#%5>=4.'"547632G-JT-n61!GW_@Ks>c5$ 32o_,+'_F^&>eD3S7' )%$AbBV0 p**+;ZR4"#-*:674.#" 632'4'!#5332654.#'"'54>32)*HL+0L, _(4+{AESEYZZDk>gI)P )>iB2K?:UH?\."3A5]thH=! HC76793'4Y#GP<(%7J$034.'"#4>32oKO]'O=9I% ^&>eD3S7' )%$AP9KBAL:c;ZR4"#-O%2653#"&53brO_:sTz^/+IpvbFh\0c\WJ%".=32>76=33#5hTr>^/)>-E%_Z \,XmLed[W$)K^$-g3%4.'4632&'"#".5726 0M^`O6k-L3*[ JZCipm qW~@Y Hi(3'O9\i$, 75'15)$\z/LN)?J} 0#54.'"#4>32o_'O=9I% ^&>eD3S7' )%$Ayx9KBAL:c;ZR4"#-<9*54>32#"&'32>54&/"'67&'&62654.#"O.bFX)Dsr]j")-"6)" h#jJYRxP1;!: 9<$e% fSb}qfY)6#:F 5A w`@79(3L_33##L__Pu*!*0%.54>75332#3674&'Y<^E42D]=^?Y*C!9@H4^,=/"^ob0,?tIGp>,77 1,F54. =E2"n)OM0!3C=eϚz '?pI~5;275#'"#"'&533'".546;32B/,..--Ym flC)]-48#ih_.j~0D ?+hHF_{I-Bmp ;)X=pbOC?5 53'65=^35mfP9G"NL73X)hLI.>;27+" 6"<,0$N" x"0- PCS,>2#"532674.#"#%Gh.4,Z,  59/*.-6+-Z  9IT3'73! T8TT9 A #%2653#5#"'#"5332>53(E;XOT4t=cX()X*B_ZI$0[[h4, A.19<J-%#54'.#"!!#3632X5(*BJXO323##4'"#3 !5 BLddVPGGVSD>>?[_K <%2=3#5#"'&57!WO:k YQ/AaJU~-(\DG*9B7"&54632533#2674&#"Wrqf7GRc1HC:CACEAmu+6g:LTitKVtr^e %/#33#>KVJwM?0"!%3632#4'.!H_O?23#26=#"OCDTRBS}&: QN?# t-310(*_"$2I[KB>WAq&0 A,08=P<6/@4( )0F'7".546;533#+"&'"72>54&=#" %3+mbYbb}_ ,'4 z&9c]dOX4"H3GhaI?><0 #3W}SwB.%253#5"'&54654&5##33XO8mUU+?"JT~37&'4734.#"32"t`e}-P/=U3;^}+ZJBIy\Ldv98A/*C=64(6@@8I1ce[mG-%2>53'"&'3 *-XX=_fKXG"H3!Eia ~B"#3632#4&#*-XX>]dOX4"H3GhaI?>(%42#5#"&54>74.'473"265474&#J*!(KVM D9dx1HJ>@D)H([EF=GH9*_?3v4bH;0 -.  tQUrpK Un'823#4'"#3>)=dQyVRB*)?2\ W$+ 747'767!&4%&'&#+@1>fh1'R^=z[-/(1@2{T0'[x0,x%GU=I/4.54>;2'"#5#"&'332>7,4,-,@ T1 T8%HAQVP,; 6&@&$D 1 O8$G6X1,. 2>=3#"'7  X9I* &^X KI%%273#5"/&/4676;"2`WP5+&)'-HAAEP?FS -!'S*=11P5B)4&#"'672;6;#"/"&'&'4>?6=:)3.+53(E;XOT4t=cX()X*B_Z$0[[h4, A.19<&.0E463236;263#"#".'4>54'&'.5744.#"6?>54*tQ! (8/#7Np  =#&(%+%*)"]B-4&#"#36323# GE<4XO533'"&'3 *-XX=_fKXG"H3KEiaG~H@,%253632#4'.#"#5#"&'&5<53 U) O]aD9Zf;S([hgL 3#~ 2> +2"(72673632#4'.#"##"&'&53M;T32'"272654&7umQ15VddQ E;%HG+4LE:><@g}A:UU:NA47kvU_HffJV^2%".54>32"32>54.%+NL. 1C>!m"1E; 1/\=1/10 9pM>b;&wDh:$ )S9k[*S98Q(*/o(07"&54>;32##5"+'"/.533332654#'35"Ia!=I//=Yl*:7-W  4HNW%DD5638PC*; ߆i<_9% C7JnlS-%!F!".53326=335+> VPGHVP>-# `XKDDR$Z5353Zdddee^dd & 27"':2 '0AU+Y  "G3#53#GGGGFGO 3#73#3#73#53#GGGG@FFFFFF3>Wd 3#GGGF3#FGGGn G3#GGG:FX ##5467'367>=3>Q;f(WPX33>WX'(X##5!WW  LL?;X.'##!2#AZW+<+/:WtQ: Xb:=:X3%>75.#"5632#".'3<1    1*&.PMH/H81 W -L  (# R./'5%(+-V:z :X3:WWX#&8X #.'#5{lWAZXam7Pk7 "F:<4 sS7LG(5&+7!,/L"3-%!#54>7>=!53!!'.2W%,4 [W5V+, *b0?Rn(*@5 ?;X 2!.'&'#Ak>**!9GX%4A2X+"? @0:X4&+##532!53uWA:X:N{wAT L`L>8X3>W 3FX2!534.'G/H81  -X-V:L( =9X&!".'!2.'#>7;5H:--PM_BY%# 1   -U6z/.'5%(+tP:-9  $X737>737xYs# W +C:C  &!X5:9'LO98 X.'#3'&'.=32#AZy !!"(P .|!WtQ:  L 3!./'5%?X*2+532>=4.+3'&'&=Aj=*;%aF753 [UWc#WKc/6 +3X!5!3>=3 f<&Fd0-W@jL 4'>8&X#53>7!5!#&l|>7$5#ooWlbL)Lr%X #.'#5{mWAZXamtQ: L<X&67530#0+;2673#.=3bW57J` x>RCW|R}W,YB128\iQR[ZR#{X.'#+532>=#5!#$AZi 1A:"=3<{mWtR8.J, L:.)Lam87 "-%2#"&546'2#"&546$2#"&54&2#"&54@" ! " ! .!!!.! !q ! " ! " "! ! 4c 72#"&546k" ! ! "2 2#"&546i" !  ! "3d 62#"&542#"&546S.! !7" ! !  ! ",p 2#"&54672#"&546d" ! " "! ! " ! "jq %2#"&546'2#"&546R" ! " ! p ! " ! "jq %2#"&546'2#"&546R" ! " !  ! "p ! "jp %2#"&5462#"&546R" ! " ! p ! "n ! "Ta5 72#"&546&2#"&54! "!s.! ! ! " ! W9p 2#"&546&2#"&54" ! s.! ! ! " ! $ ".22#"&54'2#"&5462#"&54672#"&546%!5b.!!!y" ! n" ! " !  "!! ! " ! " ! "\\$ 2#"&54%!5 .! !;d ! \\m7'7702M~Y-$ '3462#"&%462#"&462#"&%462#"&'3533##5#22J22+eem2222\#wz>54.'33##:D! U ;!,kWHV,,54'*#S*IC25^H7Z !$,MuG)5!5!5!ZXa #"&547'!5!73#".5'2632 tmM 8#&'f Z-=Z #}a$#"&547'!537373#""&5'2633 tmb(M  6?'f  #Z-=Z#} kq#532!5!4654&#yyB\oF(TS 1)Z a Q/k2!5!4654&#\oF(T 1)Z a Q/m".5463##'2654&#"2>+_UdY /\&44*&>9'X<_,EX!gOI14XY+6Ld !"&54632"3264@bz|`ay{1bNQ43J~WZ|}Y[zQK/2KHbV[s.54632'>K"2X ): 3_2@(HdfO"!#'#'!53547O$JzppssZ\r_ '!5!73#_J.DZ,>Z__ '!5!73_JZ,>%'!5!5jieO`ZS #/;U2#"&5462#"&54632#"&546'2#"&5462654&#"".546335'##" ! K" ! " ! K" ! h&44*&>9.2>*_Udj[ /> ! " ! " ! " ! "NI14XY+6LO)V;_?ObD,EX!ga(%#654#"%632Z\@DtaE\I;@ؕWHO]qZU;I@np)5!7pHfUJZCkv )##5!5#=SO^Xk?ks'545! 5-AASXDfm(hj7&$ "&/.(#   #xOaI8UZ-_Y+M Y :1 0#`n2$4C2632#"&+"''7.'&54676>54&#"3">=4&5! 5-AAWT<  "dH*h "/%7&$ "&/.(# 1  #xO_J.2 H+".1`(#+M Y :1 0#`(2%#"&'!5%277327kF3C$&8,A(E,71D1Z)m+>CK@ %"&546?!5!'7327SdVF9? >"pA0(F)OL8F3Z!."$@ #"'!!32654'&/;Vd%>  ?)F(0FFLOZ@3*$"$#!5!".54735'#"&'i)t6/i #% W||W Z8V|9_ SI>O] "J?<9!& 3"&'#53!'5#@F5AdGUdk`#532!5!4654&#{{n\oF(TR 1)Z a Q/!#"'!5!'#5!3/\  ;;ZZYck%"#"&54>732632&\ n69KN(Gn*i :((/C9Ee*lSJ*+99&T''7'77''7' &%Y(,$"5'=d+jA!577''7'77m &$Y(+#"5(>+jA!5,O3#3#,####s*/'K7K/'K7Kq5 2#"&54'2#"&546.! !n! "! ! ~ ! "* '7''7'78!8 8KK7^_`]_ 77'7!9 8 8KK7^_`]_3#'3#r####K}/'|KiK@KL[ 535#53#3HHIIL"< <" D 535#53#3 HHII"< <"Ov 2#"&546>" ! B ! "6{ 2"&546/537$/++U y!;9 2#"&467#'7yi.++-$ w";8jv 2#"&546>" !  ! "fq#53qbb]jv 2#"&546>" !  ! "Ov 2#"&546>" ! B ! " x 2#"&5472#"&546).! !7" ! V !  ! "w 2#"&54672#"&546?" ! ! "! ! " ! " #2#"&54632#"&546'2#"&546" ! " ! K" ! t ! " ! " ! " !4632#"&74632#"&2#"&546"! "! ," ! n! 0"! 0"E ! " %N,`H% RHf7!#7777''7''7''7''7'$"$$#"  ; ; ;> ? ? @ @ ( D C C C B @ B A V  )533##'#6#"&542#"&2#"7#"432V'SR'U, , ,  PO%QQg, z- ,J'72673#"'&'3&IDI+FIoKM77G*!AICI-6N]02I+>M'7[TZ\T\>,'7'7[TZX[T[\U\\T\XR2323275#5354&#"#"&=3326323##"#"'"&'73254&#"'254'"'4>8P9T"/hm! o(8A]5DLGJ)J;.)5PC*,HG5;6\eS32: hVJ,/eE.;-)5PC*,7AHI3;7\):Q9W@ II A*(<e@23275#5!####"#"'#".'73254&#"'22674'"'4>32.'"'46322674&5XN4*""&R* XN4"ZH39 "0d-'D",,5)NhkM62 ;$F_vE] `IIM ; ,R?8"-[ 8+Fe)4&'!5!##"&54?2654&+'326 ~Fr+7,/hK'>^J@72D0aHDEEIIC2A(U1OZO%*a3&4LI$e<2'>54&'"#"&54?2654'&+'32654&'!5!!6{^J@72"#/aHDE ~$+7BgO9Y#*,H#G%IUO%*a3&6$&I*EIIC2A(Le:%267#"&54767'#5'%&'"'>325!5!!674'432")::PCJ(J,b QK-VF5|{F7 %,?>:R7/"# *?ԟ;o&(8 UFIII4 J)!-d$AeF.'454632675!5!#"32?#"#"&54?>74&#"#54&#"#"sh2-@sY?Q+K_89J?+*($))QFd$%U7%&J4,)@@VA^73cIIf J2;w#-! =)M;9%b0 )!FU!>{?12673#"'&'32674'%#5!#'>75#'4>IoLM67H2.R) *%U<175/N]02I&1 7IIF3 (  ={[?2674'%#5!54&#"#"'&54573276323#'>75#') *J# %E(A9 7C'%U<17M7I1! *P5 8TIF3 (  ={e!2674'%#5!#'>75#') *%U<17M7IIF3 (  ={%#'72674'%#5!#'>75#'K<|) *%U<17f:%7IIF3 (  =W4JZ232327275#533####"#"'#".'723254&#"'22674'"'4>%2673#"'&'38P98!%hMGLJ)+`I1;&6;PC*,7@HG5;6\,FIpKN39G2/eS'54&#"#"&=332632;R:7!/fMGLK(.dF.;%8?Q=2-6BGN/;6\,?# r&;A`7CeU:A*IG %#'7eO@A*&IG ]m #)<'P:3 <7.CI, 0+:WD23275#53%7'73####"#"'#".'73254&#"'22674'"'4>:S9T"/h1d?UMGLJ)+`I1;r[SC*,7@HG5;6\eY6A*&I6$J 8MN#P;2 <50CI, 0+e87267!5!!632'>74&#"#5#"&54>32.#"%H9I8]yFT.#7IH+@m"L2 %#/>(  IIP[9X0m1!,/' $`D'O:P4)4- eJ%#".'&5723275#5!##454>32&'"323275!#'232675#"&{";9_A:"< /' HI#*  =JHD)0/6Z5(94D32#".57254'""&SS3+> L-&304lQC#3>Wj'q H6y/O #`II G&*A( 6MQ7.NS@ple %232675!5!##5"&547#5!#/f#$lGIt5@NEiY&;,[?IIEF46 uIIg)9PCA*Yie/B%"#".546;5!5!##5#"'&/"'46322674&7##"3>3232C YN4"HI7d-UB",5)NέH 7. '&)E] `II|-R?5G#[!8+.M ( e-632323275!5!##5"'"'7232754&#"pN')'II.3%D*Ur0P/dK4 & II!2&V:,m 95 8e746;5!5!##"327#"'&Ag68z)5+6(_3DV{jMNMmpIIL()A$V*tGGe'732654'7#".5476;5!5!##"s(1'FB96LzX6_<"02Fl$ %;#197'1*iP`.HS'B52}II#ce046;5!5!##32632#".'7254#""&1>cY'(w ,"9="?Y93>Wj'q H6yy"!`II:4I 4L(QgQ.OR@p"e&/74>;5!5!##"&54632#"'&>54#"1A+m)2YM>4#5 #:<hSR>(2.7@,hII>.?i'-4B,& *= LLP);31`e####"&=#5!26=#`GJMC@U*`[-$?YU>I)1V4e4>3!5!5!###""'&*1'\4GI?IP4O^84+hIIr;,xR6ap*e-%275#53##5"'&'3254&'"327"54>320rahHI:GQ_G_(15.B; "3+K^-II0/CRC {)6.0Cs 0 eEAe&46;5!5!##"34'432#/".*E4H!(F&,: b!In?' &?W`II+!C&1e>B)93(Qe1%2675#53##5#".547.547632#54'"6;"e9`HJ_r$: 7-5#$3.CI(1:-4" ư89II_ & ;*W*1"%G(%0"R ES48e463!5!5!####"*JY8GJ B(%IIOX 8e#53463!5!5!####"``JY8GJ Y(%IIOX e 7"&=#5!##5'275#Mh*IH*I<7;X@II'J7%-e'7"&=#5!!632'>54&#"#5'3275#Mh*D1E^{E"S955H2;-;8ۦX@II?WDV0j2)&&1#%-0e$%67!5!##5".54672&'"327'M HIA=5L#YF G8+'7.#$ IIܮ/)<0Eg PN,6vBe(235#53####"&546;54&#"#4/46.IhHI b )/ NFc/7II c r!/ 0=e46;5#5!####"&%5# )^HI bg "II NpI,e4'#5!##5#"&'226275#9,HJ=Q`)5LPD)A54)II5xd,Q,30ZLe#"'&/732=!5!#dK6 5X% 3_W;J>O3BMh-6`|)-).IIe7'7#"'&/732=!5!#~847K6 =3< 3_W;J>O5958#3BX=F6`|)-).IIe%73".54632675!5!##'47&'"s4F?%NN8cLYCBHGJ/b B&1./F$K3!@-Fe0E^GB|II`r*!!(. ,:e,8>75!5!#"'#"&5463232654&#".#"32>P >%A,RK^'(`HS\DWR:-"+(($L3)VV' `4kIIn 1;,UfY]gVQh'NK0+<*Amu- e!1=#53>75!5!#"'#"&5463232654.#".#"32>bb >%A,RK^'(`HS\DWR:-"+ &$L3)VV( P\T4kIIn 1;,UfY]gVQh'NJ0,#*Amu, e&'"327!5!##5#"&5467202,.!"B<^I@CGfWHFl9'( <!IIܮ4j?Dh e -&'"327#%72>7#"'&547#5!3##+7E'(d+yP2./6@,28/)-bMGKM*!z8EW45( =(*75IGe 7"&=#5!##575#327'Mh*IH**:.EʚXAII'&,)e$###'#"'&/732=!5!5#GK&D "H% 3_W;J>&%,1U-6`|)-).Ie27#"'&547&5476;5!5!#!"632'674&#"{Y &fAKK&:!99!;,=09X{7K6#6m98K>`II ; 7').! :e-.54632675!5!#'>74&#"#5.#"sh2-AuX@Q+K_89J?:%U6$$8J%"-+@@UDa73cIIf J2;w#+b0*+PU'>#53eeRcK!#"'&'7327654/&546;#"?ZZ?bKSTF3Z`$ )PQ>3 N +;470W2"'632#"33254k@ 6=S<"%A7J\G wBxA!.:%8G)$`]L527#".547632#.#"B6.9)(E*#.SQ4a^(%4267#"&'&'46;#" 0 &)D$F:E9aTC9<* %@8IG6&A!-46;#"63>7#"32>7#".547&E9aTC.!" &)D <"" ')E=:$C{8IG6$ <* ! ;)6#0#$J;2673#"'&'3q+FIoKM77G*!-6N]02I+cEX'54&#"#"'&=3327632E?# &E'B96Cc1" -M5 :|Kt#'7LK=K;LL#%7'7H?1c>L7#-H###53'2673#"'&'3MHMj3@HoLM66G1/H6.N\/2I%1!\####53/54&#"#"'&=3327632MGMX?  $F (B9 5BH2  -M5 8 M ###53'73MHM==YH:,###53%7'73MHMB1d>|RH7#^9'39!W iKZt#ZK9)8b#53"&533265232>32#"'732654'"##".5732654'.#'2>54&#"'4>{RR}zFR96];P5" C7ECRPB:* %!+Q#(1G( /3(S<29{Q)(.%$>3' 8*YLTqqT6FE7ZAF& 2;2o\Ys1G0@/ .- -@!3HK2!/"3 G0 ()  (.2 6#5D6*2!5!&3,M2'&'#5'"6?22, 11(! -5RC1$E7>7&#09; "+- #)KH!#1 -t<L#532673#"&53YY1%;>\CA\<*(V(0CTW@"+ e;#537267!5!!632'>74&#"#5#"'&546767&/&#"JJ %H9I8-0yFT.#5HIH+@67.D  %Y>@D(  IIP-/8X0m1!,v$01C&E2P ]4-s eH32=#5!##5#"&'.57#5332>75#".54>32&#">75!#" , HI,7E}3S< JJ8`S+t<$,(): 1) = W/+1?j -IIy$0<F $DcmG0$3*'+: F 5 $%Λ26 e7#537#"&54;5#5!###JJ& 'f(; GH7BpII$e$#5374.'5!5!5!###"'&5732\JJ GJ#T9c;A>>E&(' uIIg)9PCA*Yfe4#537"&546;5!5!#!32>32#".57254#"II8w)>dY!%;5!5!##"&'4632#"'&>74#"3JJA+m)2YM>4#5 #9=hSR>&2.D@7@,hII>.?i%/5A,& (= LLP);31e#+7#53'"&=#5!!632'>54&#"#5'3275#IIMh*D1F]{E"S955H2;-;8CUX@II?ZAV0j2)&&1#%-0,e"#534'#5!##5#"&'326275#JJ>9,HJ=Q`*4LPD)A5D4)II5xd +Q,30ZLDeE%"327#"32>7#".547&5467'#5'%&'"'>325!5!!7'432+ML>88O#7(# &)B=<& +4)H+b"+ OC?|B-&A-=8:% <*7#5$&>/C )=ϛ9lM7 SHBHH5J* -eU.54632675!5!#32>7#"32>7#".'47&54>54&#"#54&#"pg0,?rV=O,Jhr4="00",1# '*H="" '*E*4)";"10"3$%7G,"2=>SE\61`HHd L3*G-'+/ <* " =)1 8$&>$>-+6!$(%DR"0x@f77.5463267327#".54>54'"#54&'"J& /WA.=6,= %.%"$0&'9 '.'K'6%#.a/>4E*'$ #B(.#, # 9&34"3>'v:SfL7.54632>32327#"32>7#".'47&54>54'"#54&'"J& 0XA0= /&2'/'$#$$  + !8&.,'.'K'6%#.a/B(J*."?14 $,  .+*/;'34"3>'s'C;eE''2DEKeDDeDZ] #"&546322654&#"i]^fi[\j:CB;6E@'aigc`kmG>:DF<>Cqe 2##"&'463254&#"M]I#9J\i8!a?"$5egRX7YFI^,/\'26Xe>32'#"'472>74&'"X}/Z}#72<eB;/0SN?5^#.qU4W7 +J4/q97D/de/%4&+'3254'"'7632'&545463226b6A,kpf[->B.66!@&W?P7osB/B1?KMDB ;(T!"8!HX t0>*ENe#,#"&547.5467>74.'3254k_GE[eZD-?(d,CJX$9X]eDUiWI@OOCHW?L3 B $=]+L ) FKK9ef2#'#"&547327.54'%XML-5Og:D E.- ?I*n[_m"f0G=8^ee0;#"3274'432'"#"&'47.54632&#"V$HZ/@@0 @!'8C8" RjV43_BH!)G(+DIH)(7 V(1'#_K`2K(74&#"3L#fP +! $ WR"+ 2'^/e%7,H_ *  1BY%%/Y*#jQ) 2#"&54>32654&#"1I49:" (,!))A42F0 #n+",!,###53%7'737#53MHMB1d>|R'H7#hxU#53###53'73߁MHM==YxH:f #53#4&'&#"3###53&54632mT(BWkSMHMKnUZ^hxj'nHH6Nd:A1W##53%23###53654&#"#&5461]xMMHMOR= &/N)ex*s_HH >N +;470W}('"#4&'&#"3###53&54632'4632D!$*!T'BWhSMHMKjTJ6##3 & 3;'l'nHH6Q_p0@},#53/"#4&'&#"3###53&54632'4632QQD!$*!T'BWhSMHMKjTJ6##J; & 3;'l'nHH6Q_p0@x#"&'3274632#".: @#,M0& !8GVN#h " +( 3254&#"'7#"&54632V&/"2*$;(1C9%5D&)!6*_1)@42&C"0 !-72654&#"7#"&54632'2654&#"7#"&54632 3%k4&(AA"D_ 3!o,.90@#(8c80$?3;'1080FB,$4@t.%!5!##5'#".'732654&#"'632>G3R4C;aA* 3{F(7?()/S<^2 [?33\~I:bi:=-'N< ek!{6&'##5'#".'732654&#"'632!5!533##4-3R4C;aA* 3{F(7?()/S<^>   3JJ3:\~I:bi:=-'N< ek9 [?3 M3 ?3!5!654.#"#"&54732632'&/32654&#"'>32nX $l6J0 42Q9HR@$M% ;+*9(EA1T&547#"'732754.#"'4>732>3'23!5!4&#&+"&=4673;63636G)..4# :G"3'!=2%3$ /\ J(c>.] !E1*$M' hkUUkr:d (!%#d1[22 &M*#,8=33 ,< %>#F23!32?67#".'32>54'"&=#5!6=4&#"5473J-Bg' 'fP9^8)32R.(< " 7.>f- 7W6E3)2 (/!ZoD_|V'!jwU#3)*%( +-3 f01@7B23!327#".'&'32>54'#"&=!5!65654&'"5473h.D]2@S'AA#QE3313-$B'2"<>)&Bf- 7W7H3"p9u2J%VL^R#/ >*4S:3!f21X.72675333##54&'#5&/67.'#"&547^O>393TT3 632$eo$L&*'"$pC; #8"6#'%y\3j;D+t`N8H4 &21& G/3$ t5y;2>54.'&547#"'7>54.#"&54>:F55&8,7 F.6R^R6d,* , %* &-#gK>!+;%4 2J.1&6($*R8Mi*1+ %'/!9-#;02#.#"#"&547326324&#"327#"&546(23GG* RR,BI>F, #;3O9H_5A@1:'+Sz %/9#LYH#4/&#"#"&547;26324&#"327#"&54632654/&546?LW3b =TQ,2BAD. #7Z%\Z $*IhiIW(uG_A5@1/1+Tx"+'8k0:&9(D)!*"I>2#".'732654''254&#"&54632/ "2)(H75%)3 5Q]L#".'732654''2654#"&54632654.'&547QP5,"2)(H75%)3354&+#5.+"7zw6H0/")( ^03@ %+)()C`*.33.&N4#B%'7LfX/X/+33##5./>4'"&54732677W$Ld3TT3:3:*4(%1( &'=5FaV3R,1-45)*%/DJ+{,2533##&#"32632'>54#"#"&5469M.3CC3V^!F O",E**I '  W15HM3`7#)"!E( O  %1^.$27#'47#5!##5./7##"&& !.K&AtO=3JN&H $ 5)a133AAZ (R8  :D>32#"'326?#".'732654'#"547&'7&#"325 I4 '.',59(#)ZJ>g@&3"5R0<3% =!o#>(5<$UE$)  W<P-JcM|B @ykAE.0,"4!W>&1 5.72>54.'&'#5!!2#{#bDLgc"L6: G5Yi 33=.(L.5@.+532654./#"&=#5!!;26722654'#"'%8/?R/."C`z;GWw\304*= "12 NC1  ;)3/)$7='3\2?^.33 @ZK&a.E7".547#5!!327&547".'32?#"&'&5332654'(3 KzK9<0 #BP2$*%,SAH3'B%"@(2.a1337'!>_;HTjN]X !!# B!-"')!3_x+F! ?E06'$&?"+675!5!33##5'&/.'#5.+"7py 63VV33?#q#)Ca,+3AX3= W2;V1:F\#"&'#4&#&+&547;636;24&#""327#".54632>32'"2654&#"532654&0g,[3B^#H}/69 ":, %n  "#! *7%,=j7_-X83%'/(240gCL3E9 C<9*#S x $ $>Ab>-4lxE49!,3%F'323!32654#"'632#"&5#5!654'".54736A/;d&!"-:c4,'d[[ #,!*aF636D$"1'6vS?'O3 2 / ) .T".3##"&54>7>54'#53&5472654'/2Ư2@fHFV2 ʬP6&):4I<"G0,N73Pr^HZD N=%3]G54#"'62,'x 35% *>.9d?'33q 6Y1&"!=8[?$327+"&54>32533##4&#"r, )F>)3& 3__3Y$5@?3^+1:('c3W+w=&U.&*&54>32#"./332654&#"%5!, 8&KcfS)E/(3XYBLF57va '" '{y$?+JV\IFa!w33433##5./>54&#"32727+"&54624\%jI3QQ3";,C&,(*("7) ? (V~Q8P)YX3I% 58 ""*$3- 2DJ.'#5!!67&54Mc3Og,./j2"33!PO_ Lcb-5%"753##5./7&54632&#yR3GkMp^),*' yU-J1& DJ3VGK)[F=8Y325!5!##5.#"c4#4,b3P3B$&3"&D/F"f33BE--,   s)>32533##4/.''654&#"72767&#" n6F4UU4  $%.% # 3#43B1PE3:."&!$ 9 ,+2&) Y.*3254&##5./67&'#5!!6;2#"' I<38b($fNr3>(69vK Zr7 #1?ZFA_ %M#6@33*8&1,'aNaP'% .%.+'675!5!##*9!~A3H''%Y.6b++33$X,GA.,0#".'32654'#"&54632&#"326%5!%`K9bC:"9%T,P"5R3O)4! K%3oX #!9 @s1Jm_:Q?3Z7?#00:233.!.'5#5!##54&#"#"&5475>NB93`#B2U)D>=79.&!"33C+P,],82N.670/.+5!##5.')9Y KU?3)9?IY7;G&4#9C 233LCR :F7""5j.#675!5!##5.+"754632#"&G3>09twF&A^6&33Y/, \'" .-;27#"&46326325!5!##4&#"4&#"L0&;GG;1.+&S.N3@'9#.%)90QR0+ 33Y&0)54#"'73>54&#"56;263533##4&#"327#" 4$I5N$3QQ3Q$!, <X&)-1=8k_&W3^s/6 +.&'#5!##5./6&'5-~"F3BdE*I;0|UL#A33@]G:%3(?+7qc{.&6325.'5#5!##5.#"#"'7326s@5"'2 B_853 :'30A,  -84EK7"33N4?4j#E.#2&/32>54&#"&546'5!6lY&_:&: M$B0dY:o2[p!H9!(# $<"%*9+K33_ 4632#"&"i2".$5!&/32>54&#"&54635)-AY&_:&: M$B0d/3NK+o2[p!H9!(# $<"%*9+K{&'#53533##L2Rb  3YY3:3 M33###53'>32&#"B_Y3m_* DXV#BUe33:IdNJ&Ww)$23###53.#"'67."&546ц TT3ccf,[o -@Hi)m33Rv$ *!$%H*iL#'274'7&'#"&5463267&#"0 *#= (0M9< */) ?IBA9/"9S @$463'7&#"327'#"&B1. !+1( )3&0b)5?"!#&r/%)?+dsj2QG~8Q%) 7'?'/+dZi!j2QG~8l@~8/.7267#"&5467#5! CL^O<V[rD3  :fK$31n5q807467#534&+"&47327273633#3267#".GA-Y)*3,2 XLG>=0 C0H"Q/342H #4M3j@~  :9TD {%06<GQWi%#"&5467#5!3267&'#"'727/&5477'67'67'654/7632&"'&'77&'#53533##BL^O<VZsD)B!* ($5G!,+!,4 0 !+s2Rb 3JJ3W:fK$31s6p #,*d3s #),%*u  44%+):3 M3 w4%/9?Vw%&'27#"/7'&477'67'677'654/62'&#"&'7267#"&5467#5!26323###5374&#"#"&547."*0  44K%,+!,342  !,OCM]P<VYsB&K /?hh4yy2@`S)$+*544 < u )+$* 4O#+' :gK#31s5q~;!,33$63$)7/Z'7+{({ 1/"'654.'&54632#".'732654+9.'!)0 J[g7_G:OC# & /8-.$Li 4 ,#H/5.PBTA4(84'  >426323###5374&"#"&547c)B&Gdd3yy3(B`T*4(,33$63!,7.+6%"&=#5!!>7#".'32>54'4632#"& %. S(4wY=a9'3Q)=# %5 6(33[%p"YoIg]$$6-2(!)4 a.+3"&5#5!!>54#"'6324632#".#4Z.M#"(Lj!- /733h]d# "mL_-!.&&+5!##5&/674632#"&eU I3C,=,E$Q(/K+) %&]23Lp/8B*5G# $#%fX '&Y;2675333##54&''75&/67.'#"&547HpC; #0O>393UU37ds42$eo$L&8!$/3$ ,8"6#'%y\3i=C+GT*8jU`N8H4 &2!$& tyt2>54/&'#"'7>54.#"&54>32>54.'&547#"'732654&#"&5465,".]-b ,* , %) &-# :F55&8,7 F.6R^R6BC&C=$ .8(!*4F2!$19"#.*1+ &&0!9-K>!+;%4 2J.1&6($*R83W );" 3 %1   #&$,62654.5467#"'732654&#"&54632R=2GG2 )(0;/D7#!+45,$/",(  &6#'9 &-  #("2(O4j2654.547#"'732654&#"&546322654/&5467#"'732654&#"&54632>2HG2# Cm/D7!"+45-=].g  ((4/D7! "+/5{#/!,) .Z': &0   "("2eB/"4'#4  0': &/  # *AA 4&#"326'2#"&54>pA4>I@4O<8DR^IXncK*8. Ml,%%#"&546332654.'&547ls=.A?1  19O+$==* 1EE1Mc09/ M=4/!1 40 +0=b1#"#'&/&/33254./&'7^2a"HC39@!* R'uH:''*"6E@~$@;#''=.V$*!&#-?,'2#"73>54&#"&54>&/;1!)BD$a3+mG$6O>$1: 3 #4X7A^/z C!*4#Dz%1= &,9C 262654'7>=&#"#"&5467.54>32\>s(>h%:r"B+%3~aGER'D@=&7/43(J/#C.@ $:O0", *1b8JL?'13M/%8 8&+61%03&5467."&546?6?&'>32#".'732654 Z $+) .!>cI>jF+3=o@1BL226J+#3-(8.!(!KOZwEo? Hm]E?`0;6363637&54&#"+"./57"#"'4632375' 89/"NF 6 l6(,x&CWL),*&v=g 4X:7 $  0"32>54&%#"#"'4'76326323;2?*-,;3N#dJ/%,$/-9/'   18#@>/#  JOg3"# >4%>5.'.547?654&#"3"&54632H('E6Q &1$&\xwR:)&:?G;7Kp I4%  - " *#/=pN` 3 0=+!7.258El: . '.+'675!5!##*9V$ %9!~A3@>e X,X.6b++33.!7.'77.+'675!5!##`:,n69!~A3H''%&&Q . I7 .6b++33$X,ba %.#529{M]M/b3=aOIf$ 3#2654'7#"&=#5354'80AA/F-,4_D99VV1$19F3Z/&R*."'<=sJXB3KNba 72673#w63/M]MOa=(K&$ %>75>54.#"&54>32%< 3@" '%*8(1[,Z :3+$'$. 4)34P: <1732>73#"&5463232654&#"&54>32#'"@8K}S5 3AR-2BY., " .9(7, ,!L;h7H# V]nѫ"D8#3(#3'(?=8N/' 73#"54#62i %*L9TG&7N#V.(7"&=4#563232>323#"&=4#"l + 2" *1&3 N?M?)" 34)51e+%72654.#"".=4>321K)! 2,# 1G$#G/98#`P(#3 $ "3 3 554<)"C.Qdt $326?63"#".'#"546326.,O+&?43473#"&53%/YHJX 7,( RlkS%0 @WX 4632"&53Y00!H '$!&00AA0'(m+82#"&54>4&#"3262#"&54>4&#"3262GC84F.e2&$ "!)C #+C86D 6k.  )("mD86DD8 ${&"3 ( 6%5CC8 #,| ) #'+h@26?53###"&54>=&'#"&54>54'4&+532676 &6+;džAN/7 '$+$BJ;&  &8\ ">]P1hF'Ai JE>&:*C$ &WI]7/$;" =&'#"&54>54'4&+532676 &6+;mZ@ Z,AN/7 '$+$BJ;&  &8\ ">]P1hF'AFi JE>&:*C$ &WI]7/$;" 2#"&'67&'###53546323598G4׈iYK$>! c6\w@}}kc43 q-{L:bA!f# (asINagn@A:g)Q783567&'#5!4&#"#4>323####"32>2#"&-{MwZ2JC*@#B/am@_3LcPK$>! d/uA|T[gnAf>H&@;"g:A@>/!f# 'co@"""h"vX0@3>7%!2"'"!##".5#54&#"#326} xJ[J0Cq\=Z5%biMFu'L54W?2! DY-!fK '9S26F@Q0NCA41*H8*AXo#Dk64 +EC]Ic>+A 8[0OG(5h"v!07"&54632>7!5!##&''327.#"Pny]cn-p ! C A3 .% jZ,)7"7H7rSXkyEAA7.986KW3"UD'9 *J %2675!4.'#532!53##5#"'763%T )@E ikY ȇABcL%0@Z=1& AA54'#53232>54&54632'*ʉA$0EA 3:p <>2SDHJ&)4)! A"Bd#'KANE.J3A'+c 'TZz.}'074>327654&#!5#5!!32#&'#"&7327&#"<>*>\4+B:M/E"_6,E")Y^D]@;*L;KHY+)265-"AAv/.NM1mH4SL8(?L!4632!5!5!##".'#"5!32>F3#<’pZ1MG*9#]O!;1S.?6AAsOd?zY~~f3&.74>3!5!5!#!"632#".54>3&>54&'#;$ 6 -t+o&tnrn,  "54&#"#"&5467'32>7;4=q86:;kb 2 ; (K'' &% )3!W- g\'"'(l*";%=KAAATW2OQ? &8, - 3M  KA!4%,;5&'#5!#!"3!#327#"&'./.54[ K l>2O+#! ;+)X/)@=;xx7AAA$,@ )70 A%h#%#"&'>?5!5!#&#"32>32zM>6Pp6w1 H|"_B)/#>"! euCJMA AA=Y3L )%4&#"32>".54>75!5!!wWPu2K, \VT3/[<4(5,0A1 4$",4>32!5!5!#!632#"'&'#"254#"77%!(%EaG

  • ') .appendTo($('.sidebar .this-page-menu')); } }, /** * init the modindex toggle buttons */ initModIndex : function() { var togglers = $('img.toggler').click(function() { var src = $(this).attr('src'); var idnum = $(this).attr('id').substr(7); console.log($('tr.cg-' + idnum).toggle()); if (src.substr(-9) == 'minus.png') $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); else $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); }).css('display', ''); if (DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX) { togglers.click(); } }, /** * helper function to hide the search marks again */ hideSearchWords : function() { $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); $('span.highlight').removeClass('highlight'); }, /** * make the url absolute */ makeURL : function(relativeURL) { return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; }, /** * get the current relative url */ getCurrentURL : function() { var path = document.location.pathname; var parts = path.split(/\//); $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { if (this == '..') parts.pop(); }); var url = parts.join('/'); return path.substring(url.lastIndexOf('/') + 1, path.length - 1); } }; // quick alias for translations _ = Documentation.gettext; $(document).ready(function() { Documentation.init(); }); phatch-0.2.7/docs/build/html/_static/file.png0000644000000000000000000000061011346363116020774 0ustar rootroot00000000000000PNG  IHDRabKGD pHYs  tIME  )TIDAT8˭J@Ir('[ "&xYZ X0!i|_@tD] #xjv YNaEi(əy@D&`6PZk$)5%"z.NA#Aba`Vs_3c,2mj [klvy|!Iմy;v "߮a?A7`c^nk?Bg}TЙD# "RD1yER*6MJ3K_Ut8F~IENDB`phatch-0.2.7/docs/build/html/_static/jquery.js0000644000000000000000000035367311346363116021250 0ustar rootroot00000000000000/*! * jQuery JavaScript Library v1.3.2 * http://jquery.com/ * * Copyright (c) 2009 John Resig * Dual licensed under the MIT and GPL licenses. * http://docs.jquery.com/License * * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) * Revision: 6246 */ (function(){ var // Will speed up references to window, and allows munging its name. window = this, // Will speed up references to undefined, and allows munging its name. undefined, // Map over jQuery in case of overwrite _jQuery = window.jQuery, // Map over the $ in case of overwrite _$ = window.$, jQuery = window.jQuery = window.$ = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context ); }, // A simple way to check for HTML strings or ID strings // (both of which we optimize for) quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, // Is it a simple selector isSimple = /^.[^:#\[\.,]*$/; jQuery.fn = jQuery.prototype = { init: function( selector, context ) { // Make sure that a selection was provided selector = selector || document; // Handle $(DOMElement) if ( selector.nodeType ) { this[0] = selector; this.length = 1; this.context = selector; return this; } // Handle HTML strings if ( typeof selector === "string" ) { // Are we dealing with HTML string or an ID? var match = quickExpr.exec( selector ); // Verify a match, and that no context was specified for #id if ( match && (match[1] || !context) ) { // HANDLE: $(html) -> $(array) if ( match[1] ) selector = jQuery.clean( [ match[1] ], context ); // HANDLE: $("#id") else { var elem = document.getElementById( match[3] ); // Handle the case where IE and Opera return items // by name instead of ID if ( elem && elem.id != match[3] ) return jQuery().find( selector ); // Otherwise, we inject the element directly into the jQuery object var ret = jQuery( elem || [] ); ret.context = document; ret.selector = selector; return ret; } // HANDLE: $(expr, [context]) // (which is just equivalent to: $(content).find(expr) } else return jQuery( context ).find( selector ); // HANDLE: $(function) // Shortcut for document ready } else if ( jQuery.isFunction( selector ) ) return jQuery( document ).ready( selector ); // Make sure that old selector state is passed along if ( selector.selector && selector.context ) { this.selector = selector.selector; this.context = selector.context; } return this.setArray(jQuery.isArray( selector ) ? selector : jQuery.makeArray(selector)); }, // Start with an empty selector selector: "", // The current version of jQuery being used jquery: "1.3.2", // The number of elements contained in the matched element set size: function() { return this.length; }, // Get the Nth element in the matched element set OR // Get the whole matched element set as a clean array get: function( num ) { return num === undefined ? // Return a 'clean' array Array.prototype.slice.call( this ) : // Return just the object this[ num ]; }, // Take an array of elements and push it onto the stack // (returning the new matched element set) pushStack: function( elems, name, selector ) { // Build a new jQuery matched element set var ret = jQuery( elems ); // Add the old object onto the stack (as a reference) ret.prevObject = this; ret.context = this.context; if ( name === "find" ) ret.selector = this.selector + (this.selector ? " " : "") + selector; else if ( name ) ret.selector = this.selector + "." + name + "(" + selector + ")"; // Return the newly-formed element set return ret; }, // Force the current matched set of elements to become // the specified array of elements (destroying the stack in the process) // You should use pushStack() in order to do this, but maintain the stack setArray: function( elems ) { // Resetting the length to 0, then using the native Array push // is a super-fast way to populate an object with array-like properties this.length = 0; Array.prototype.push.apply( this, elems ); return this; }, // Execute a callback for every element in the matched set. // (You can seed the arguments with an array of args, but this is // only used internally.) each: function( callback, args ) { return jQuery.each( this, callback, args ); }, // Determine the position of an element within // the matched set of elements index: function( elem ) { // Locate the position of the desired element return jQuery.inArray( // If it receives a jQuery object, the first element is used elem && elem.jquery ? elem[0] : elem , this ); }, attr: function( name, value, type ) { var options = name; // Look for the case where we're accessing a style value if ( typeof name === "string" ) if ( value === undefined ) return this[0] && jQuery[ type || "attr" ]( this[0], name ); else { options = {}; options[ name ] = value; } // Check to see if we're setting style values return this.each(function(i){ // Set all the styles for ( name in options ) jQuery.attr( type ? this.style : this, name, jQuery.prop( this, options[ name ], type, i, name ) ); }); }, css: function( key, value ) { // ignore negative width and height values if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 ) value = undefined; return this.attr( key, value, "curCSS" ); }, text: function( text ) { if ( typeof text !== "object" && text != null ) return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); var ret = ""; jQuery.each( text || this, function(){ jQuery.each( this.childNodes, function(){ if ( this.nodeType != 8 ) ret += this.nodeType != 1 ? this.nodeValue : jQuery.fn.text( [ this ] ); }); }); return ret; }, wrapAll: function( html ) { if ( this[0] ) { // The elements to wrap the target around var wrap = jQuery( html, this[0].ownerDocument ).clone(); if ( this[0].parentNode ) wrap.insertBefore( this[0] ); wrap.map(function(){ var elem = this; while ( elem.firstChild ) elem = elem.firstChild; return elem; }).append(this); } return this; }, wrapInner: function( html ) { return this.each(function(){ jQuery( this ).contents().wrapAll( html ); }); }, wrap: function( html ) { return this.each(function(){ jQuery( this ).wrapAll( html ); }); }, append: function() { return this.domManip(arguments, true, function(elem){ if (this.nodeType == 1) this.appendChild( elem ); }); }, prepend: function() { return this.domManip(arguments, true, function(elem){ if (this.nodeType == 1) this.insertBefore( elem, this.firstChild ); }); }, before: function() { return this.domManip(arguments, false, function(elem){ this.parentNode.insertBefore( elem, this ); }); }, after: function() { return this.domManip(arguments, false, function(elem){ this.parentNode.insertBefore( elem, this.nextSibling ); }); }, end: function() { return this.prevObject || jQuery( [] ); }, // For internal use only. // Behaves like an Array's method, not like a jQuery method. push: [].push, sort: [].sort, splice: [].splice, find: function( selector ) { if ( this.length === 1 ) { var ret = this.pushStack( [], "find", selector ); ret.length = 0; jQuery.find( selector, this[0], ret ); return ret; } else { return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){ return jQuery.find( selector, elem ); })), "find", selector ); } }, clone: function( events ) { // Do the clone var ret = this.map(function(){ if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { // IE copies events bound via attachEvent when // using cloneNode. Calling detachEvent on the // clone will also remove the events from the orignal // In order to get around this, we use innerHTML. // Unfortunately, this means some modifications to // attributes in IE that are actually only stored // as properties will not be copied (such as the // the name attribute on an input). var html = this.outerHTML; if ( !html ) { var div = this.ownerDocument.createElement("div"); div.appendChild( this.cloneNode(true) ); html = div.innerHTML; } return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]; } else return this.cloneNode(true); }); // Copy the events from the original to the clone if ( events === true ) { var orig = this.find("*").andSelf(), i = 0; ret.find("*").andSelf().each(function(){ if ( this.nodeName !== orig[i].nodeName ) return; var events = jQuery.data( orig[i], "events" ); for ( var type in events ) { for ( var handler in events[ type ] ) { jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); } } i++; }); } // Return the cloned set return ret; }, filter: function( selector ) { return this.pushStack( jQuery.isFunction( selector ) && jQuery.grep(this, function(elem, i){ return selector.call( elem, i ); }) || jQuery.multiFilter( selector, jQuery.grep(this, function(elem){ return elem.nodeType === 1; }) ), "filter", selector ); }, closest: function( selector ) { var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null, closer = 0; return this.map(function(){ var cur = this; while ( cur && cur.ownerDocument ) { if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) { jQuery.data(cur, "closest", closer); return cur; } cur = cur.parentNode; closer++; } }); }, not: function( selector ) { if ( typeof selector === "string" ) // test special case where just one selector is passed in if ( isSimple.test( selector ) ) return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector ); else selector = jQuery.multiFilter( selector, this ); var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; return this.filter(function() { return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector; }); }, add: function( selector ) { return this.pushStack( jQuery.unique( jQuery.merge( this.get(), typeof selector === "string" ? jQuery( selector ) : jQuery.makeArray( selector ) ))); }, is: function( selector ) { return !!selector && jQuery.multiFilter( selector, this ).length > 0; }, hasClass: function( selector ) { return !!selector && this.is( "." + selector ); }, val: function( value ) { if ( value === undefined ) { var elem = this[0]; if ( elem ) { if( jQuery.nodeName( elem, 'option' ) ) return (elem.attributes.value || {}).specified ? elem.value : elem.text; // We need to handle select boxes special if ( jQuery.nodeName( elem, "select" ) ) { var index = elem.selectedIndex, values = [], options = elem.options, one = elem.type == "select-one"; // Nothing was selected if ( index < 0 ) return null; // Loop through all the selected options for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { var option = options[ i ]; if ( option.selected ) { // Get the specifc value for the option value = jQuery(option).val(); // We don't need an array for one selects if ( one ) return value; // Multi-Selects return an array values.push( value ); } } return values; } // Everything else, we just grab the value return (elem.value || "").replace(/\r/g, ""); } return undefined; } if ( typeof value === "number" ) value += ''; return this.each(function(){ if ( this.nodeType != 1 ) return; if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) ) this.checked = (jQuery.inArray(this.value, value) >= 0 || jQuery.inArray(this.name, value) >= 0); else if ( jQuery.nodeName( this, "select" ) ) { var values = jQuery.makeArray(value); jQuery( "option", this ).each(function(){ this.selected = (jQuery.inArray( this.value, values ) >= 0 || jQuery.inArray( this.text, values ) >= 0); }); if ( !values.length ) this.selectedIndex = -1; } else this.value = value; }); }, html: function( value ) { return value === undefined ? (this[0] ? this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : null) : this.empty().append( value ); }, replaceWith: function( value ) { return this.after( value ).remove(); }, eq: function( i ) { return this.slice( i, +i + 1 ); }, slice: function() { return this.pushStack( Array.prototype.slice.apply( this, arguments ), "slice", Array.prototype.slice.call(arguments).join(",") ); }, map: function( callback ) { return this.pushStack( jQuery.map(this, function(elem, i){ return callback.call( elem, i, elem ); })); }, andSelf: function() { return this.add( this.prevObject ); }, domManip: function( args, table, callback ) { if ( this[0] ) { var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ), first = fragment.firstChild; if ( first ) for ( var i = 0, l = this.length; i < l; i++ ) callback.call( root(this[i], first), this.length > 1 || i > 0 ? fragment.cloneNode(true) : fragment ); if ( scripts ) jQuery.each( scripts, evalScript ); } return this; function root( elem, cur ) { return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? (elem.getElementsByTagName("tbody")[0] || elem.appendChild(elem.ownerDocument.createElement("tbody"))) : elem; } } }; // Give the init function the jQuery prototype for later instantiation jQuery.fn.init.prototype = jQuery.fn; function evalScript( i, elem ) { if ( elem.src ) jQuery.ajax({ url: elem.src, async: false, dataType: "script" }); else jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); if ( elem.parentNode ) elem.parentNode.removeChild( elem ); } function now(){ return +new Date; } jQuery.extend = jQuery.fn.extend = function() { // copy reference to target object var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; // Handle a deep copy situation if ( typeof target === "boolean" ) { deep = target; target = arguments[1] || {}; // skip the boolean and the target i = 2; } // Handle case when target is a string or something (possible in deep copy) if ( typeof target !== "object" && !jQuery.isFunction(target) ) target = {}; // extend jQuery itself if only one argument is passed if ( length == i ) { target = this; --i; } for ( ; i < length; i++ ) // Only deal with non-null/undefined values if ( (options = arguments[ i ]) != null ) // Extend the base object for ( var name in options ) { var src = target[ name ], copy = options[ name ]; // Prevent never-ending loop if ( target === copy ) continue; // Recurse if we're merging object values if ( deep && copy && typeof copy === "object" && !copy.nodeType ) target[ name ] = jQuery.extend( deep, // Never move original objects, clone them src || ( copy.length != null ? [ ] : { } ) , copy ); // Don't bring in undefined values else if ( copy !== undefined ) target[ name ] = copy; } // Return the modified object return target; }; // exclude the following css properties to add px var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, // cache defaultView defaultView = document.defaultView || {}, toString = Object.prototype.toString; jQuery.extend({ noConflict: function( deep ) { window.$ = _$; if ( deep ) window.jQuery = _jQuery; return jQuery; }, // See test/unit/core.js for details concerning isFunction. // Since version 1.3, DOM methods and functions like alert // aren't supported. They return false on IE (#2968). isFunction: function( obj ) { return toString.call(obj) === "[object Function]"; }, isArray: function( obj ) { return toString.call(obj) === "[object Array]"; }, // check if an element is in a (or is an) XML document isXMLDoc: function( elem ) { return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument ); }, // Evalulates a script in a global context globalEval: function( data ) { if ( data && /\S/.test(data) ) { // Inspired by code by Andrea Giammarchi // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html var head = document.getElementsByTagName("head")[0] || document.documentElement, script = document.createElement("script"); script.type = "text/javascript"; if ( jQuery.support.scriptEval ) script.appendChild( document.createTextNode( data ) ); else script.text = data; // Use insertBefore instead of appendChild to circumvent an IE6 bug. // This arises when a base node is used (#2709). head.insertBefore( script, head.firstChild ); head.removeChild( script ); } }, nodeName: function( elem, name ) { return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); }, // args is for internal usage only each: function( object, callback, args ) { var name, i = 0, length = object.length; if ( args ) { if ( length === undefined ) { for ( name in object ) if ( callback.apply( object[ name ], args ) === false ) break; } else for ( ; i < length; ) if ( callback.apply( object[ i++ ], args ) === false ) break; // A special, fast, case for the most common use of each } else { if ( length === undefined ) { for ( name in object ) if ( callback.call( object[ name ], name, object[ name ] ) === false ) break; } else for ( var value = object[0]; i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} } return object; }, prop: function( elem, value, type, i, name ) { // Handle executable functions if ( jQuery.isFunction( value ) ) value = value.call( elem, i ); // Handle passing in a number to a CSS property return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ? value + "px" : value; }, className: { // internal only, use addClass("class") add: function( elem, classNames ) { jQuery.each((classNames || "").split(/\s+/), function(i, className){ if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) ) elem.className += (elem.className ? " " : "") + className; }); }, // internal only, use removeClass("class") remove: function( elem, classNames ) { if (elem.nodeType == 1) elem.className = classNames !== undefined ? jQuery.grep(elem.className.split(/\s+/), function(className){ return !jQuery.className.has( classNames, className ); }).join(" ") : ""; }, // internal only, use hasClass("class") has: function( elem, className ) { return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; } }, // A method for quickly swapping in/out CSS properties to get correct calculations swap: function( elem, options, callback ) { var old = {}; // Remember the old values, and insert the new ones for ( var name in options ) { old[ name ] = elem.style[ name ]; elem.style[ name ] = options[ name ]; } callback.call( elem ); // Revert the old values for ( var name in options ) elem.style[ name ] = old[ name ]; }, css: function( elem, name, force, extra ) { if ( name == "width" || name == "height" ) { var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ]; function getWH() { val = name == "width" ? elem.offsetWidth : elem.offsetHeight; if ( extra === "border" ) return; jQuery.each( which, function() { if ( !extra ) val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; if ( extra === "margin" ) val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0; else val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; }); } if ( elem.offsetWidth !== 0 ) getWH(); else jQuery.swap( elem, props, getWH ); return Math.max(0, Math.round(val)); } return jQuery.curCSS( elem, name, force ); }, curCSS: function( elem, name, force ) { var ret, style = elem.style; // We need to handle opacity special in IE if ( name == "opacity" && !jQuery.support.opacity ) { ret = jQuery.attr( style, "opacity" ); return ret == "" ? "1" : ret; } // Make sure we're using the right name for getting the float value if ( name.match( /float/i ) ) name = styleFloat; if ( !force && style && style[ name ] ) ret = style[ name ]; else if ( defaultView.getComputedStyle ) { // Only "float" is needed here if ( name.match( /float/i ) ) name = "float"; name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase(); var computedStyle = defaultView.getComputedStyle( elem, null ); if ( computedStyle ) ret = computedStyle.getPropertyValue( name ); // We should always get a number back from opacity if ( name == "opacity" && ret == "" ) ret = "1"; } else if ( elem.currentStyle ) { var camelCase = name.replace(/\-(\w)/g, function(all, letter){ return letter.toUpperCase(); }); ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; // From the awesome hack by Dean Edwards // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 // If we're not dealing with a regular pixel number // but a number that has a weird ending, we need to convert it to pixels if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) { // Remember the original values var left = style.left, rsLeft = elem.runtimeStyle.left; // Put in the new values to get a computed value out elem.runtimeStyle.left = elem.currentStyle.left; style.left = ret || 0; ret = style.pixelLeft + "px"; // Revert the changed values style.left = left; elem.runtimeStyle.left = rsLeft; } } return ret; }, clean: function( elems, context, fragment ) { context = context || document; // !context.createElement fails in IE with an error but returns typeof 'object' if ( typeof context.createElement === "undefined" ) context = context.ownerDocument || context[0] && context[0].ownerDocument || document; // If a single string is passed in and it's a single tag // just do a createElement and skip the rest if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) { var match = /^<(\w+)\s*\/?>$/.exec(elems[0]); if ( match ) return [ context.createElement( match[1] ) ]; } var ret = [], scripts = [], div = context.createElement("div"); jQuery.each(elems, function(i, elem){ if ( typeof elem === "number" ) elem += ''; if ( !elem ) return; // Convert html string into DOM nodes if ( typeof elem === "string" ) { // Fix "XHTML"-style tags in all browsers elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){ return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? all : front + ">"; }); // Trim whitespace, otherwise indexOf won't work as expected var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase(); var wrap = // option or optgroup !tags.indexOf("", "" ] || !tags.indexOf("", "" ] || tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && [ 1, "", "
    " ] || !tags.indexOf("", "" ] || // matched above (!tags.indexOf("", "" ] || !tags.indexOf("", "" ] || // IE can't serialize and

    autocontrast

    class actions.autocontrast.Action(**options)

    Bases: core.models.Action

    Maximize image contrast

    static init()
    interface(fields)
    static pil(image, amount=100.0, cutoff=0)
    Apply a filter - amount: 0-1 - repeat: how many times it should be repeated
    actions.autocontrast.autocontrast(image, amount=100.0, cutoff=0)
    Apply a filter - amount: 0-1 - repeat: how many times it should be repeated
    actions.autocontrast.init()

    Previous topic

    actions

    Next topic

    background

    phatch-0.2.7/docs/build/html/actions.background.html0000644000000000000000000001760311346363116022377 0ustar rootroot00000000000000 background — Phatch v0.2 documentation

    background

    class actions.background.Action(**options)

    Bases: core.models.StampMixin, core.models.Action

    Put color under transparent image

    get_relevant_field_labels()

    If this method is present, Phatch will only show relevant fields.

    Returns:list of the field labels which are relevant
    Return type:list of strings

    Note

    It is very important that the list of labels has EXACTLY the same order as defined in the interface method.

    static init()
    interface(fields)
    static pil(image, fill, mark, color, horizontal_offset=None, vertical_offset=None, horizontal_justification=None, vertical_justification=None, orientation=None, method=None, opacity=100)
    actions.background.background(image, fill, mark, color, horizontal_offset=None, vertical_offset=None, horizontal_justification=None, vertical_justification=None, orientation=None, method=None, opacity=100)
    actions.background.init()

    Previous topic

    autocontrast

    Next topic

    blender

    phatch-0.2.7/docs/build/html/actions.blender.html0000644000000000000000000004267011346363116021675 0ustar rootroot00000000000000 blender — Phatch v0.2 documentation

    blender

    class actions.blender.Action(**options)

    Bases: core.models.Action

    3D Objects

    apply(photo, setting, cache)
    construct_command(values)
    get_relevant_field_labels()

    If this method is present, Phatch will only show relevant options.

    Returns:list of the field labels which are relevant
    Return type:list of strings

    Note

    It is very important that the list of labels has EXACTLY the same order as defined in the interface method.

    init()
    interface(fields)
    class actions.blender.Background
    get_relevant(action)
    interface(action, fields)
    set_args(action, values)
    class actions.blender.BlenderObject

    Bases: object

    get_command(values)
    get_name()
    get_relevant(action)
    interface(action, fields)
    name
    set_args(action, values)
    class actions.blender.BlenderObjects

    Bases: list

    get_selected_object(action)
    interface(action, fields)
    class actions.blender.Book

    Bases: actions.blender.BlenderObject

    get_relevant(action)
    interface(action, fields)
    set_args(action, values)
    class actions.blender.Box

    Bases: actions.blender.BlenderObject

    get_relevant(action)
    interface(action, fields)
    class actions.blender.Camera
    get_relevant(action)
    interface(action, fields)
    set_args(action, values)
    class actions.blender.Can
    Bases: actions.blender.BlenderObject
    class actions.blender.Cd

    Bases: actions.blender.BlenderObject

    get_relevant(action)
    interface(action, fields)
    class actions.blender.Floor
    get_relevant(action)
    interface(action, fields)
    class actions.blender.Lcd
    Bases: actions.blender.BlenderObject
    class actions.blender.Sphere
    Bases: actions.blender.BlenderObject

    Previous topic

    background

    Next topic

    border

    phatch-0.2.7/docs/build/html/actions.border.html0000644000000000000000000001641611346363116021536 0ustar rootroot00000000000000 border — Phatch v0.2 documentation

    border

    class actions.border.Action(**options)

    Bases: core.models.Action

    Draw border inside or outside

    get_relevant_field_labels()

    If this method is present, Phatch will only show relevant fields. :returns: list of the field labels which are relevant :rtype: list of strings .. note:

    It is very important that the list of labels has EXACTLY
    the same order as defined in the interface method.
    static init()
    interface(fields)
    static pil(image, method, border_width=0, left=0, right=0, top=0, bottom=0, color=0, opacity=100)
    values(info)
    actions.border.border(image, method, border_width=0, left=0, right=0, top=0, bottom=0, color=0, opacity=100)
    actions.border.init()

    Previous topic

    blender

    Next topic

    brightness

    phatch-0.2.7/docs/build/html/actions.brightness.html0000644000000000000000000001473411346363116022432 0ustar rootroot00000000000000 brightness — Phatch v0.2 documentation

    brightness

    class actions.brightness.Action(**options)

    Bases: core.models.Action

    Adjust brightness from black to white

    static init()
    interface(fields)
    static pil(image, amount=50)
    Adjust brightness from black to white - amount: -1(black) 0 (unchanged) 1(white) - repeat: how many times it should be repeated
    actions.brightness.brightness(image, amount=50)
    Adjust brightness from black to white - amount: -1(black) 0 (unchanged) 1(white) - repeat: how many times it should be repeated
    actions.brightness.init()

    Previous topic

    border

    Next topic

    canvas

    phatch-0.2.7/docs/build/html/actions.canvas.html0000644000000000000000000001524511346363116021533 0ustar rootroot00000000000000 canvas — Phatch v0.2 documentation

    canvas

    class actions.canvas.Action(**options)

    Bases: core.models.Action

    Crop or expand the canvas without scaling

    static init()
    interface(fields)
    static pil(image, new_size, centering, background_color, opacity, old_size=None)
    values(info)
    actions.canvas.canvas_size(image, new_size, centering, background_color, opacity, old_size=None)
    actions.canvas.init()

    Previous topic

    brightness

    Next topic

    color_to_alpha

    phatch-0.2.7/docs/build/html/actions.color_to_alpha.html0000644000000000000000000002012611346363116023237 0ustar rootroot00000000000000 color_to_alpha — Phatch v0.2 documentation

    color_to_alpha

    class actions.color_to_alpha.Action(**options)

    Bases: core.models.Action

    Make selected color transparent

    get_relevant_field_labels()

    If this method is present, Phatch will only show relevant fields.

    Returns:list of the field labels which are relevant
    Return type:list of strings

    Note

    It is very important that the list of labels has EXACTLY the same order as defined in the interface method.

    static init()
    interface(fields)
    static pil(image, color_value=None, select_color_by=None)
    actions.color_to_alpha.color_to_alpha(image, color_value=None, select_color_by=None)
    actions.color_to_alpha.difference1(source, color)
    When source is bigger than color
    actions.color_to_alpha.difference2(source, color)
    When color is bigger than source
    actions.color_to_alpha.init()

    Previous topic

    canvas

    Next topic

    colorize

    phatch-0.2.7/docs/build/html/actions.colorize.html0000644000000000000000000001453711346363116022111 0ustar rootroot00000000000000 colorize — Phatch v0.2 documentation

    colorize

    class actions.colorize.Action(**options)

    Bases: core.models.Action

    Colorize grayscale image

    static init()
    interface(fields)
    static pil(image, black, white, amount=100)
    Apply a filter - amount: 0-1
    actions.colorize.colorize(image, black, white, amount=100)
    Apply a filter - amount: 0-1
    actions.colorize.init()

    Previous topic

    color_to_alpha

    Next topic

    common

    phatch-0.2.7/docs/build/html/actions.common.html0000644000000000000000000001436711346363116021554 0ustar rootroot00000000000000 common — Phatch v0.2 documentation

    common

    class actions.common.Action(**options)

    Bases: core.models.Action

    Copies the most common pixel value

    static init()
    interface(fields)
    static pil(image, radius, amount=100)
    Apply a filter - amount: 0-1
    actions.common.common(image, radius, amount=100)
    Apply a filter - amount: 0-1
    actions.common.init()

    Previous topic

    colorize

    Next topic

    contour

    phatch-0.2.7/docs/build/html/actions.contour.html0000644000000000000000000001607711346363116021755 0ustar rootroot00000000000000 contour — Phatch v0.2 documentation

    contour

    class actions.contour.Action(**options)

    Bases: core.models.Action

    Draw a contour around image edges

    static init()
    interface(fields)
    static pil(image, size=1, offset=0, contour_color=0, fill_color=0, opacity=100, include_image=True)
    values(info)
    actions.contour.init()
    actions.contour.put_border(image, size, offset, contour_color, fill_color, opacity, include_image)
    actions.contour.put_contour(image, size=1, offset=0, contour_color=0, fill_color=0, opacity=100, include_image=True)

    Previous topic

    common

    Next topic

    contrast

    phatch-0.2.7/docs/build/html/actions.contrast.html0000644000000000000000000001475011346363116022115 0ustar rootroot00000000000000 contrast — Phatch v0.2 documentation

    contrast

    class actions.contrast.Action(**options)

    Bases: core.models.Action

    Adjust from grey to black & white

    static init()
    interface(fields)
    static pil(image, amount=50)
    Adjust brightness from black to white - amount: -1(black) 0 (unchanged) 1(white) - repeat: how many times it should be repeated
    actions.contrast.contrast(image, amount=50)
    Adjust brightness from black to white - amount: -1(black) 0 (unchanged) 1(white) - repeat: how many times it should be repeated
    actions.contrast.init()

    Previous topic

    contour

    Next topic

    convert_mode

    phatch-0.2.7/docs/build/html/actions.convert_mode.html0000644000000000000000000001363411346363116022744 0ustar rootroot00000000000000 convert_mode — Phatch v0.2 documentation

    convert_mode

    class actions.convert_mode.Action(**options)

    Bases: core.models.Action

    Convert the color mode of an image

    apply(photo, setting, cache)
    static init()
    interface(fields)
    actions.convert_mode.init()

    Previous topic

    contrast

    Next topic

    copy

    phatch-0.2.7/docs/build/html/actions.copy.html0000644000000000000000000001362111346363116021226 0ustar rootroot00000000000000 copy — Phatch v0.2 documentation

    copy

    class actions.copy.Action(**options)

    Bases: core.models.Action

    Copy the original image

    apply(photo, setting, cache)
    interface(fields)
    is_done_info(info)
    is_overwrite_existing_images_forced()
    Force overwrite when copying in place.

    Previous topic

    convert_mode

    Next topic

    crop

    phatch-0.2.7/docs/build/html/actions.crop.html0000644000000000000000000001430011346363116021212 0ustar rootroot00000000000000 crop — Phatch v0.2 documentation

    crop

    class actions.crop.Action(**options)

    Bases: core.models.CropMixin, core.models.Action

    Crop the image

    static init()
    static pil(image, mode=None, all=0, left=0, right=0, top=0, bottom=0)
    actions.crop.crop(image, mode=None, all=0, left=0, right=0, top=0, bottom=0)
    actions.crop.init()

    Previous topic

    copy

    Next topic

    delete_tags

    phatch-0.2.7/docs/build/html/actions.delete_tags.html0000644000000000000000000001446311346363116022541 0ustar rootroot00000000000000 delete_tags — Phatch v0.2 documentation

    delete_tags

    class actions.delete_tags.Action(**options)

    Bases: core.models.Action

    Delete Exif or Iptc tags

    apply(photo, setting, cache)
    get_relevant_field_labels()

    If this method is present, Phatch will only show relevant fields.

    Returns:list of the field labels which are relevant
    Return type:list of strings

    Note

    It is very important that the list of labels has EXACTLY the same order as defined in the interface method.

    interface(fields)

    Previous topic

    crop

    Next topic

    desaturate

    phatch-0.2.7/docs/build/html/actions.desaturate.html0000644000000000000000000001436711346363116022425 0ustar rootroot00000000000000 desaturate — Phatch v0.2 documentation

    desaturate

    class actions.desaturate.Action(**options)

    Bases: core.models.Action

    Fade all colors to gray

    static init()
    interface(fields)
    static pil(image, amount=100)
    actions.desaturate.grayscale(image, amount=100)
    actions.desaturate.init()

    Previous topic

    delete_tags

    Next topic

    effect

    phatch-0.2.7/docs/build/html/actions.effect.html0000644000000000000000000001462311346363116021513 0ustar rootroot00000000000000 effect — Phatch v0.2 documentation

    effect

    class actions.effect.Action(**options)

    Bases: core.models.Action

    Blur, Sharpen, Emboss, Smooth, ...

    static init()
    interface(fields)
    static pil(image, filter, amount=100, repeat=1)
    Apply a filter - amount: 0-1 - repeat: how many times it should be repeated
    actions.effect.effect(image, filter, amount=100, repeat=1)
    Apply a filter - amount: 0-1 - repeat: how many times it should be repeated
    actions.effect.init()

    Previous topic

    desaturate

    Next topic

    equalize

    phatch-0.2.7/docs/build/html/actions.equalize.html0000644000000000000000000001422311346363116022072 0ustar rootroot00000000000000 equalize — Phatch v0.2 documentation

    equalize

    class actions.equalize.Action(**options)

    Bases: core.models.Action

    Equalize the image histogram

    static init()
    interface(fields)
    static pil(image, amount=100)
    actions.equalize.equalize(image, amount=100)
    actions.equalize.init()

    Previous topic

    effect

    Next topic

    fit

    phatch-0.2.7/docs/build/html/actions.fit.html0000644000000000000000000001463511346363116021044 0ustar rootroot00000000000000 fit — Phatch v0.2 documentation

    fit

    class actions.fit.Action(**options)

    Bases: core.models.Action

    Downsize and crop image with fixed ratio

    static init()
    interface(fields)
    static pil(image, size, method, bleed, centering)
    values(info)
    actions.fit.fit(image, size, method, bleed, centering)
    actions.fit.init()

    Previous topic

    equalize

    Next topic

    geek

    phatch-0.2.7/docs/build/html/actions.geek.html0000644000000000000000000001406311346363116021170 0ustar rootroot00000000000000 geek — Phatch v0.2 documentation

    geek

    class actions.geek.Action(**options)

    Bases: core.models.Action

    Execute external command

    apply(photo, setting, cache)
    get_relevant_field_labels()
    init()
    interface(fields)
    is_overwrite_existing_images_forced()

    Previous topic

    fit

    Next topic

    geotag

    phatch-0.2.7/docs/build/html/actions.geotag.html0000644000000000000000000001340611346363116021523 0ustar rootroot00000000000000 geotag — Phatch v0.2 documentation

    geotag

    class actions.geotag.Action(**options)

    Bases: core.models.Action

    Add gps data

    apply(photo, setting, cache)
    static init()
    interface(fields)
    actions.geotag.init()

    Previous topic

    geek

    Next topic

    grid

    phatch-0.2.7/docs/build/html/actions.grid.html0000644000000000000000000001567611346363116021215 0ustar rootroot00000000000000 grid — Phatch v0.2 documentation

    grid

    class actions.grid.Action(**options)

    Bases: core.models.Action

    Make n x m matrix of image

    get_relevant_field_labels()
    static init()
    interface(fields)
    static pil(image, grid, col_line_width=0, row_line_width=0, line_color='#FFFFFF', line_opacity=0, old_size=None, scale=True)
    values(info)
    actions.grid.init()
    actions.grid.make_grid(image, grid, col_line_width=0, row_line_width=0, line_color='#FFFFFF', line_opacity=0, old_size=None, scale=True)

    Previous topic

    geotag

    Next topic

    highlight

    phatch-0.2.7/docs/build/html/actions.highlight.html0000644000000000000000000001455511346363116022232 0ustar rootroot00000000000000 highlight — Phatch v0.2 documentation

    highlight

    class actions.highlight.Action(**options)

    Bases: core.models.Action

    Apply a transparency highlight

    static init()
    interface(fields)
    static pil(image, highlight, resample_highlight, opacity, cache=None)
    actions.highlight.init()
    actions.highlight.put_highlight(image, highlight, resample_highlight, opacity, cache=None)

    Previous topic

    grid

    Next topic

    imagemagick

    phatch-0.2.7/docs/build/html/actions.html0000644000000000000000000002151011346363116020251 0ustar rootroot00000000000000 actions — Phatch v0.2 documentation phatch-0.2.7/docs/build/html/actions.imagemagick.html0000644000000000000000000001522011346363116022507 0ustar rootroot00000000000000 imagemagick — Phatch v0.2 documentation

    imagemagick

    class actions.imagemagick.Action(**options)

    Bases: core.models.Action

    Blur, Polaroid, Shadow, Unsharp...

    apply(photo, setting, cache)
    get_relevant_field_labels()
    If this method is present, Phatch will only show relevant
    fields.
    Returns:

    list of the field labels which are relevant

    Return type:

    list of strings

    Note

    It is very important that the list of labels has EXACTLY the same order as defined in the interface method.

    init()
    interface(fields)

    Previous topic

    highlight

    Next topic

    invert

    phatch-0.2.7/docs/build/html/actions.invert.html0000644000000000000000000001434011346363116021562 0ustar rootroot00000000000000 invert — Phatch v0.2 documentation

    invert

    class actions.invert.Action(**options)

    Bases: core.models.Action

    Invert the colors of an image

    static init()
    interface(fields)
    static pil(image, amount=100)
    actions.invert.init()
    actions.invert.invert(image, amount=100)

    Previous topic

    imagemagick

    Next topic

    lossless_jpeg

    phatch-0.2.7/docs/build/html/actions.lossless_jpeg.html0000644000000000000000000003226411346363116023134 0ustar rootroot00000000000000 lossless_jpeg — Phatch v0.2 documentation

    lossless_jpeg

    class actions.lossless_jpeg.Action(**options)

    Bases: actions.lossless_jpeg.LossLessSaveUtilityMixin, core.models.Action

    Rotate, flip, grayscale and crop

    init()
    class actions.lossless_jpeg.Arguments

    Bases: list

    List with tweaked append behaviour to make it suitable for command line arguments.

    append(*options)
    class actions.lossless_jpeg.Exiftran

    Bases: object

    get_command_line(action, photo, input, output)
    get_command_line_args(action, photo)
    get_relevant_field_labels(action)
    interface(action, fields)
    class actions.lossless_jpeg.Jpegtran

    Bases: core.models.CropMixin

    get_command_line(action, photo, input, output)
    get_command_line_args(action, photo)
    get_relevant_field_labels(action)
    interface(action, fields)
    class actions.lossless_jpeg.LossLessSaveUtilityMixin

    Bases: core.models.LosslessSaveMixin, actions.lossless_jpeg.UtilityMixin

    For lossless JPEG operations, this has to work on the source jpeg files immediately, otherwise it makes no sense. So we need to overwrite the call method.

    call(photo, info, utility)
    This is called by the apply method.
    get_relevant_field_labels()
    This should work like a save action. So it needs a filename and folder, while the file type is fixed (e.g. JPEG).
    class actions.lossless_jpeg.UtilityMixin

    Bases: object

    apply(photo, setting, cache)
    call(photo, info, utility)
    This is decoupled from the apply method so we can overwrite it.
    get_relevant_field_labels(relevant=None)
    interface(fields)
    actions.lossless_jpeg.utilities_dict(*utilities)

    Previous topic

    invert

    Next topic

    mask

    phatch-0.2.7/docs/build/html/actions.mask.html0000644000000000000000000001435211346363116021211 0ustar rootroot00000000000000 mask — Phatch v0.2 documentation

    mask

    class actions.mask.Action(**options)

    Bases: core.models.Action

    Apply a transparency mask

    static init()
    interface(fields)
    static pil(image, mask, resample_mask, cache=None)
    actions.mask.init()
    actions.mask.put_mask(image, mask, resample_mask, cache=None)

    Previous topic

    lossless_jpeg

    Next topic

    maximum

    phatch-0.2.7/docs/build/html/actions.maximum.html0000644000000000000000000001434111346363116021731 0ustar rootroot00000000000000 maximum — Phatch v0.2 documentation

    maximum

    class actions.maximum.Action(**options)

    Bases: core.models.Action

    Copies the maximum pixel value

    static init()
    interface(fields)
    static pil(image, radius, amount=100)
    Apply a filter - amount: 0-1
    actions.maximum.init()
    actions.maximum.maximum(image, radius, amount=100)
    Apply a filter - amount: 0-1

    Previous topic

    mask

    Next topic

    median

    phatch-0.2.7/docs/build/html/actions.median.html0000644000000000000000000001435211346363116021513 0ustar rootroot00000000000000 median — Phatch v0.2 documentation

    median

    class actions.median.Action(**options)

    Bases: core.models.Action

    Copies the median pixel value

    static init()
    interface(fields)
    static pil(image, radius, amount=100)
    Apply a filter - amount: 0-1
    actions.median.init()
    actions.median.median(image, radius, amount=100)
    Apply a filter - amount: 0-1

    Previous topic

    maximum

    Next topic

    minimum

    phatch-0.2.7/docs/build/html/actions.minimum.html0000644000000000000000000001436111346363116021731 0ustar rootroot00000000000000 minimum — Phatch v0.2 documentation

    minimum

    class actions.minimum.Action(**options)

    Bases: core.models.Action

    Copies the minimum pixel value

    static init()
    interface(fields)
    static pil(image, radius, amount=100)
    Apply a filter - amount: 0-1
    actions.minimum.init()
    actions.minimum.minimum(image, radius, amount=100)
    Apply a filter - amount: 0-1

    Previous topic

    median

    Next topic

    mirror

    phatch-0.2.7/docs/build/html/actions.mirror.html0000644000000000000000000001723211346363116021570 0ustar rootroot00000000000000 mirror — Phatch v0.2 documentation

    mirror

    class actions.mirror.Action(**options)

    Bases: core.models.Action

    Symmetrical tile texture

    static init()
    interface(fields)
    static pil(image, direction)
    actions.mirror.get_dimensions(image, direction)
    actions.mirror.get_scales(direction)
    actions.mirror.init()
    actions.mirror.tile(image, direction)
    actions.mirror.x_mirror(image, result)
    actions.mirror.xy_mirror(image, result)
    actions.mirror.y_mirror(image, result)

    Previous topic

    minimum

    Next topic

    offset

    phatch-0.2.7/docs/build/html/actions.offset.html0000644000000000000000000001476511346363116021554 0ustar rootroot00000000000000 offset — Phatch v0.2 documentation

    offset

    class actions.offset.Action(**options)

    Bases: core.models.Action

    Offset by distance and wrap around

    static init()
    interface(fields)
    static pil(image, horizontal_offset, vertical_offset=None)
    values(info)
    actions.offset.init()
    actions.offset.offset(image, horizontal_offset, vertical_offset=None)

    Previous topic

    mirror

    Next topic

    perspective

    phatch-0.2.7/docs/build/html/actions.perspective.html0000644000000000000000000001631311346363116022606 0ustar rootroot00000000000000 perspective — Phatch v0.2 documentation

    perspective

    class actions.perspective.Action(**options)

    Bases: core.models.Action

    Shear 2d or 3d

    get_relevant_field_labels()
    static init()
    interface(fields)
    static pil(image, width, height, skew_x, skew_y, offset_x, offset_y, left, top, back_color, opacity, resample, crop, transpose)
    values(info)
    actions.perspective.init()
    actions.perspective.perspective(image, width, height, skew_x, skew_y, offset_x, offset_y, left, top, back_color, opacity, resample, crop, transpose)

    Previous topic

    offset

    Next topic

    posterize

    phatch-0.2.7/docs/build/html/actions.posterize.html0000644000000000000000000001447511346363116022310 0ustar rootroot00000000000000 posterize — Phatch v0.2 documentation

    posterize

    class actions.posterize.Action(**options)

    Bases: core.models.Action

    Reduce the number of bits of color channel

    static init()
    interface(fields)
    static pil(image, bits, amount=100)
    Apply a filter - amount: 0-1
    actions.posterize.init()
    actions.posterize.posterize(image, bits, amount=100)
    Apply a filter - amount: 0-1

    Previous topic

    perspective

    Next topic

    rank

    phatch-0.2.7/docs/build/html/actions.rank.html0000644000000000000000000001441611346363116021212 0ustar rootroot00000000000000 rank — Phatch v0.2 documentation

    rank

    class actions.rank.Action(**options)

    Bases: core.models.Action

    Copies the rank’th pixel value

    static init()
    interface(fields)
    static pil(image, radius, rank=50, amount=100)
    Apply a filter - amount: 0-1
    actions.rank.init()
    actions.rank.rnk(image, radius, rank=50, amount=100)
    Apply a filter - amount: 0-1

    Previous topic

    posterize

    Next topic

    reflection

    phatch-0.2.7/docs/build/html/actions.reflection.html0000644000000000000000000002073011346363116022405 0ustar rootroot00000000000000 reflection — Phatch v0.2 documentation

    reflection

    class actions.reflection.Action(**options)

    Bases: core.models.Action

    Drops a reflection

    get_relevant_field_labels()

    If this method is present, Phatch will only show relevant fields.

    Returns:list of the field labels which are relevant
    Return type:list of strings

    Note

    It is very important that the list of labels has EXACTLY the same order as defined in the interface method.

    static init()
    interface(fields)
    static pil(image, depth, opacity, background_color, background_opacity, scale_method, gap=0, scale_reflection=False, blur_reflection=False, cache=None)
    values(info)
    actions.reflection.gradient_mask(size, opacity, cache)
    actions.reflection.gradient_vector(size, opacity, cache)
    actions.reflection.init()
    actions.reflection.reflect(image, depth, opacity, background_color, background_opacity, scale_method, gap=0, scale_reflection=False, blur_reflection=False, cache=None)

    Previous topic

    rank

    Next topic

    rename

    phatch-0.2.7/docs/build/html/actions.rename.html0000644000000000000000000001372511346363116021530 0ustar rootroot00000000000000 rename — Phatch v0.2 documentation

    rename

    class actions.rename.Action(**options)

    Bases: core.models.Action

    Rename the original image

    apply(photo, setting, cache)
    interface(fields)
    is_done_info(info)
    is_overwrite_existing_images_forced()
    Force overwrite when using default values.

    Previous topic

    reflection

    Next topic

    rename_tag

    phatch-0.2.7/docs/build/html/actions.rename_tag.html0000644000000000000000000001246611346363116022364 0ustar rootroot00000000000000 rename_tag — Phatch v0.2 documentation

    rename_tag

    class actions.rename_tag.Action(**options)

    Bases: core.models.Action

    Rename a tag

    apply(photo, setting, cache)
    interface(fields)

    Previous topic

    rename

    Next topic

    rotate

    phatch-0.2.7/docs/build/html/actions.rotate.html0000644000000000000000000001462711346363116021561 0ustar rootroot00000000000000 rotate — Phatch v0.2 documentation

    rotate

    class actions.rotate.Action(**options)

    Bases: core.models.Action

    Rotate with random angle

    static init()
    interface(fields)
    static pil(image, angle, resample_image, expand=0, amount=100, background_color='#000000', background_opacity=100)
    actions.rotate.init()
    actions.rotate.rotate(image, angle, resample_image, expand=0, amount=100, background_color='#000000', background_opacity=100)

    Previous topic

    rename_tag

    Next topic

    round

    phatch-0.2.7/docs/build/html/actions.round.html0000644000000000000000000002113511346363116021402 0ustar rootroot00000000000000 round — Phatch v0.2 documentation

    round

    class actions.round.Action(**options)

    Bases: core.models.Action

    Rounded or crossed corners

    get_relevant_field_labels()

    If this method is present, Phatch will only show relevant fields.

    Returns:list of the field labels which are relevant
    Return type:list of strings

    Note

    It is very important that the list of labels has EXACTLY the same order as defined in the interface method.

    static init()
    interface(fields)
    static pil(image, cache={}, round_all=True, rounding_type=None, radius=100, opacity=255, pos=('Rounded', 'Rounded', 'Rounded', 'Rounded'), back_color='#FFFFFF')
    values(info)
    actions.round.create_corner(radius=100, opacity=255, factor=2)
    actions.round.create_rounded_rectangle(size=(600, 400), cache={}, radius=100, opacity=255, pos=('Rounded', 'Rounded', 'Rounded', 'Rounded'))
    actions.round.init()
    actions.round.round_image(image, cache={}, round_all=True, rounding_type=None, radius=100, opacity=255, pos=('Rounded', 'Rounded', 'Rounded', 'Rounded'), back_color='#FFFFFF')

    Previous topic

    rotate

    Next topic

    saturation

    phatch-0.2.7/docs/build/html/actions.saturation.html0000644000000000000000000001470711346363116022453 0ustar rootroot00000000000000 saturation — Phatch v0.2 documentation

    saturation

    class actions.saturation.Action(**options)

    Bases: core.models.Action

    Adjust saturation from grayscale to high

    static init()
    interface(fields)
    static pil(image, amount=50)
    Adjust brightness from black to white - amount: -1(black) 0 (unchanged) 1(white) - repeat: how many times it should be repeated
    actions.saturation.init()
    actions.saturation.saturation(image, amount=50)
    Adjust brightness from black to white - amount: -1(black) 0 (unchanged) 1(white) - repeat: how many times it should be repeated

    Previous topic

    round

    Next topic

    save

    phatch-0.2.7/docs/build/html/actions.save.html0000644000000000000000000001723511346363116021217 0ustar rootroot00000000000000 save — Phatch v0.2 documentation

    save

    class actions.save.Action(**options)

    Bases: core.models.Action

    Save and convert to other types

    apply(photo, setting, cache)
    get_format(ext, photo=None)
    get_relevant_field_labels()

    If this method is present, Phatch will only show relevant fields.

    Returns:list of the field labels which are relevant
    Return type:list of strings

    Note

    It is very important that the list of labels has EXACTLY the same order as defined in the interface method.

    static init()
    interface(fields)
    is_done_info(info)
    is_overwrite_existing_images_forced()
    actions.save.init()

    Previous topic

    saturation

    Next topic

    save_metadata

    phatch-0.2.7/docs/build/html/actions.save_metadata.html0000644000000000000000000001241711346363116023054 0ustar rootroot00000000000000 save_metadata — Phatch v0.2 documentation

    save_metadata

    class actions.save_metadata.Action(**options)

    Bases: core.models.LosslessSaveMixin, core.models.Action

    Save only metadata (lossless)

    apply(photo, setting, cache)

    Previous topic

    save

    Next topic

    scale

    phatch-0.2.7/docs/build/html/actions.scale.html0000644000000000000000000001431411346363116021343 0ustar rootroot00000000000000 scale — Phatch v0.2 documentation

    scale

    class actions.scale.Action(**options)

    Bases: core.models.Action

    Make the image smaller or bigger

    apply(photo, setting, cache)
    static init()
    interface(fields)
    actions.scale.init()
    actions.scale.preserve_proportions(x0, y0, x1, y1)

    Previous topic

    save_metadata

    Next topic

    shadow

    phatch-0.2.7/docs/build/html/actions.shadow.html0000644000000000000000000002156411346363116021546 0ustar rootroot00000000000000 shadow — Phatch v0.2 documentation

    shadow

    class actions.shadow.Action(**options)

    Bases: core.models.Action

    Drops a blurred shadow under a photo

    static init()
    interface(fields)
    static pil(image, horizontal_offset=5, vertical_offset=5, background_color=(255, 255, 255, 0), shadow_color=4473924, border=8, shadow_blur=3, force_background_color=False, cache=None)

    Add a gaussian blur drop shadow to an image.

    Parameters:
    • image – The image to overlay on top of the shadow.
    • type – PIL Image
    • offset (tuple of integers) – Offset of the shadow from the image as an (x,y) tuple. Can be positive or negative.
    • background_color – Background color behind the image.
    • shadow_color – Shadow color (darkness).
    • border – Width of the border around the image. This must be wide enough to account for the blurring of the shadow.
    • shadow_blur – Number of times to apply the filter. More shadow_blur produce a more blurred shadow, but increase processing time.
    values(info)
    actions.shadow.drop_shadow(image, horizontal_offset=5, vertical_offset=5, background_color=(255, 255, 255, 0), shadow_color=4473924, border=8, shadow_blur=3, force_background_color=False, cache=None)

    Add a gaussian blur drop shadow to an image.

    Parameters:
    • image – The image to overlay on top of the shadow.
    • type – PIL Image
    • offset (tuple of integers) – Offset of the shadow from the image as an (x,y) tuple. Can be positive or negative.
    • background_color – Background color behind the image.
    • shadow_color – Shadow color (darkness).
    • border – Width of the border around the image. This must be wide enough to account for the blurring of the shadow.
    • shadow_blur – Number of times to apply the filter. More shadow_blur produce a more blurred shadow, but increase processing time.
    actions.shadow.init()

    Previous topic

    scale

    Next topic

    sketch

    phatch-0.2.7/docs/build/html/actions.sketch.html0000644000000000000000000001424611346363116021541 0ustar rootroot00000000000000 sketch — Phatch v0.2 documentation

    sketch

    class actions.sketch.Action(**options)

    Bases: core.models.Action

    Transform to a grayscale pencil drawing

    static init()
    interface(fields)
    static pil(image, details_degree=1)
    actions.sketch.init()
    actions.sketch.sketch(image, details_degree=1)

    Previous topic

    shadow

    Next topic

    solarize

    phatch-0.2.7/docs/build/html/actions.solarize.html0000644000000000000000000001443411346363116022107 0ustar rootroot00000000000000 solarize — Phatch v0.2 documentation

    solarize

    class actions.solarize.Action(**options)

    Bases: core.models.Action

    Invert all pixel values above threshold

    static init()
    interface(fields)
    static pil(image, treshold, amount=100)
    Apply a filter - amount: 0-1
    actions.solarize.init()
    actions.solarize.solarize(image, treshold, amount=100)
    Apply a filter - amount: 0-1

    Previous topic

    sketch

    Next topic

    tamogen

    phatch-0.2.7/docs/build/html/actions.tamogen.html0000644000000000000000000001566011346363116021713 0ustar rootroot00000000000000 tamogen — Phatch v0.2 documentation

    tamogen

    class actions.tamogen.Action(**options)

    Bases: core.models.Action

    Tone altering mosaic generator

    get_relevant_field_labels()
    static init()
    interface(fields)
    static pil(image, fill_type, fill_image, fill_folder, columns, rows, canvas_width, canvas_height)
    values(info)
    actions.tamogen.init()
    actions.tamogen.mosaic(image, fill_type, fill_image, fill_folder, columns, rows, canvas_width, canvas_height)

    Previous topic

    solarize

    Next topic

    text

    phatch-0.2.7/docs/build/html/actions.text.html0000644000000000000000000001651211346363116021242 0ustar rootroot00000000000000 text — Phatch v0.2 documentation

    text

    class actions.text.Action(**options)

    Bases: core.models.OffsetMixin, core.models.Action

    Write text at a given position

    get_relevant_field_labels()
    static init()
    interface(fields)
    static pil(image, text, horizontal_offset, vertical_offset, horizontal_justification, vertical_justification, size, color='#FFFFFF', orientation=None, font=None)
    Draws text on an image.
    values(info, pixel_fields={})
    actions.text.draw_text(image, text, horizontal_offset, vertical_offset, horizontal_justification, vertical_justification, size, color='#FFFFFF', orientation=None, font=None)
    Draws text on an image.
    actions.text.init()

    Previous topic

    tamogen

    Next topic

    time_shift

    phatch-0.2.7/docs/build/html/actions.time_shift.html0000644000000000000000000001473311346363116022414 0ustar rootroot00000000000000 time_shift — Phatch v0.2 documentation

    time_shift

    class actions.time_shift.Action(**options)

    Bases: core.models.Action

    Shift time values of tags

    apply(photo, setting, cache)
    get_relevant_field_labels()
    static init()
    interface(fields)
    actions.time_shift.get_date(info)
    actions.time_shift.init()

    Previous topic

    text

    Next topic

    transpose

    phatch-0.2.7/docs/build/html/actions.transpose.html0000644000000000000000000001505211346363116022272 0ustar rootroot00000000000000 transpose — Phatch v0.2 documentation

    transpose

    class actions.transpose.Action(**options)

    Bases: core.models.Action

    Flip or rotate 90 degrees

    apply(photo, setting, cache)
    static init()
    interface(fields)
    static pil(image, method, amount=100)
    actions.transpose.init()
    actions.transpose.transpose(image, method, amount=100)

    Previous topic

    time_shift

    Next topic

    warm_up

    phatch-0.2.7/docs/build/html/actions.warm_up.html0000644000000000000000000001510111346363116021721 0ustar rootroot00000000000000 warm_up — Phatch v0.2 documentation

    warm_up

    class actions.warm_up.Action(**options)

    Bases: core.models.Action

    Colorize midtones of an image

    static init()
    interface(fields)
    static pil(image, midtone, brighten, amount=100)
    Apply a toning filter. Move the midtones to the desired color while preserving blacks and whites with optional mixing with original image - amount: 0-100%
    actions.warm_up.init()
    actions.warm_up.warmup(image, midtone, brighten, amount=100)
    Apply a toning filter. Move the midtones to the desired color while preserving blacks and whites with optional mixing with original image - amount: 0-100%

    Previous topic

    transpose

    Next topic

    watermark

    phatch-0.2.7/docs/build/html/actions.watermark.html0000644000000000000000000001516511346363116022256 0ustar rootroot00000000000000 watermark — Phatch v0.2 documentation

    watermark

    class actions.watermark.Action(**options)

    Bases: core.models.StampMixin, core.models.Action

    Apply with tiling, scaling and opacity

    static init()
    static pil(image, mark, horizontal_offset=None, vertical_offset=None, horizontal_justification=None, vertical_justification=None, orientation=None, method=None, opacity=100)
    Adds a watermark to an image.
    actions.watermark.init()
    actions.watermark.watermark(image, mark, horizontal_offset=None, vertical_offset=None, horizontal_justification=None, vertical_justification=None, orientation=None, method=None, opacity=100)
    Adds a watermark to an image.

    Previous topic

    warm_up

    Next topic

    write_tag

    phatch-0.2.7/docs/build/html/actions.write_tag.html0000644000000000000000000001246711346363116022250 0ustar rootroot00000000000000 write_tag — Phatch v0.2 documentation

    write_tag

    class actions.write_tag.Action(**options)

    Bases: core.models.Action

    Write new value to a tag

    apply(photo, setting, cache)
    interface(fields)

    Previous topic

    watermark

    Next topic

    console

    phatch-0.2.7/docs/build/html/bazaar.html0000644000000000000000000002533411346363116020061 0ustar rootroot00000000000000 Bazaar and Launchpad — Phatch v0.2 documentation

    Bazaar and Launchpad

    For Phatch we use bazaar (distributed version control) and launchpad. We will describe the steps here to get you up and running for Phatch development.

    Launchpad

    1. To create a new Launchpad account, visit the account sign-up page. All you need is an email address that Launchpad can use to contact you.
    2. Create a ssh key and upload it to your launchpad profile.
    3. Apply for membership of the phatch-dev team.
    4. This last step is optional. If you want to stay up to date with all bug reports, blueprints (new features), ... apply for membership of the phatch-launchpad team. Warning: this might flood your inbox with a lot of email!

    Note

    It is very important that you not only log any activity you do for Phatch on launchpad as bugs or blueprints, but also report progress and de-assign yourself if you quit working on something.

    Bazaar

    Getting Started with Bazaar

    1. Download and install bazaar.

      • Windows: Download the standalone installer.

      • Mac OS X: Download the application bundle.

      • Linux: Get bazaar from the repositories, for example for Ubuntu/Debian ...

        If you want only the command line version:

        sudo apt-get install bzr

        If you want to use bzr with a GUI and nautilus integration, you could install (some only available from Ubuntu Lucid):

        sudo apt-get install bzr bzr-gtk bzr-explorer nautilus-bzr
    2. Tell bazaar who you are:

      bzr whoami "Your name <email@adress>"
    3. Login to launchpad:

      bzr launchpad-login
    4. Install the Phatch precommit hook.

      This will check your code before committing to your branch. It tests your code it follows PEP8, does not break any doctests and has the right copyright and license. The precommit hook is the file tests/test_suite/bzr_precommit_test.py and should be placed in your bazaar plugin folder. In order to get your code accepted, you must use the precommit hook.

      • Linux and Mac OS X:

        1. Install nosetests and licensecheck:

        sudo apt-get install python-nose devscripts

        1. Symlink bzr_precommit_test.py to ~/.bazaar/plugins/
      • Windows:

        1. Install nosetests (see nose website for more info):

        easy_install nose

        1. Copy bzr_precommit_test.py to C:\Program Files\Bazaar\plugins and update it every time it changes.

    Using Bazaar

    1. For every new feature or bugfix you need to start a separate branch:

      bzr branch lp:phatch

      Or if you want to give it a specific name:

      bzr branch lp:phatch name_of_branch

      So it is not unusual that one user works on more than one branch. We prefer to merge branches as soon as they are stable to prevent large differences.

    2. To let other developers follow your progress, push your branch to launchpad:

      bzr push lp:~user_name/phatch/name_of_branch
    3. Merge regularly with the main branch so it does not divert. At least merge every time before you start coding. The command is:

      bzr merge lp:phatch

      Do not use the command bzr update or bzr pull.

    4. When your branch is ready file a merge request. To do so, visit your branch’s overview page, click Propose for merging into another branch, then follow the on-screen instructions.

    Table Of Contents

    Previous topic

    Become a Phatch developer!

    Next topic

    Code Style: PEP8

    phatch-0.2.7/docs/build/html/console.console.html0000644000000000000000000003517111346363116021724 0ustar rootroot00000000000000 console — Phatch v0.2 documentation

    console

    class console.console.CliMixin
    exit()
    show_error(message, exit=True)
    show_info(*messages)
    show_message(*messages)
    show_notification(message, *args, **keyw)
    write(message)
    class console.console.Frame(actionlist, paths, settings, output=<open file '<stdout>', mode 'w' at 0x2b88d1bb0140>)

    Bases: console.console.CliMixin, core.message.FrameReceiver

    class Progress(title, parent_max, child_max, verbose, output, message='')

    Bases: console.console.CliMixin, core.message.ProgressReceiver

    close()
    erase()
    update(result, value, newmsg='')
    Frame.append_save_action(actions)
    Frame.show_execute_dialog(result, settings, files=None)
    To be overwritten.
    Frame.show_files_message(result, message, title, files)
    Frame.show_image_tree(result, *args, **keyw)
    Frame.show_progress(title, parent_max, child_max=1, message='')
    Frame.show_progress_error(result, message, ignore=True)
    Frame.show_scrolled_message(message, title, **keyw)
    Frame.show_status(message, *args, **keyw)
    Frame.verify_actionlist(actionlist)
    class console.console.Progress(title, parent_max, child_max, verbose, output, message='')

    Bases: console.console.CliMixin, core.message.ProgressReceiver

    close()
    erase()
    update(result, value, newmsg='')
    console.console.ask(message, answers)
    console.console.ask_yes_no(message)
    console.console.example()
    console.console.main(actionlist, paths, settings)
    console.console.u(txt)

    Previous topic

    console

    Next topic

    core

    phatch-0.2.7/docs/build/html/console.html0000644000000000000000000001020511346363116020252 0ustar rootroot00000000000000 console — Phatch v0.2 documentation

    console

    Previous topic

    write_tag

    Next topic

    console

    phatch-0.2.7/docs/build/html/core.api.html0000644000000000000000000010574311346363116020324 0ustar rootroot00000000000000 api — Phatch v0.2 documentation

    api

    exception core.api.PathError(filename)
    Bases: exceptions.Exception
    core.api.apply_action_to_photo(action, photo, read_only_settings, cache, image_file, result)

    Apply a single action to a photo. It uses log_error() for non fatal errors or process_error() for serious errors. The settings are read only as the actions don’t have permission to change them.

    Parameters:
    • action (core.models.Action) – action
    • photo (core.pil.Photo) – photo
    • read_only_settings (lib.odict.ReadOnlyDict) – read only settings
    • cache (dictionary) – cache for data which is usefull across photos
    • image_file (string) – filename reference during error logging
    • result (dictionary) – settings for dialog (eg stop_for_errors)
    core.api.apply_actions_to_photo(actions, image_info, info_not_file, cache, read_only_settings, skip_existing_images, result, report, is_done, image_index, repeat)
    Apply the action list to one photo.
    core.api.apply_actions_to_photos(actions, settings, paths=None, drop=False, update=None)

    Apply all the actions to the photos in path.

    Parameters:
    • actions (list of core.models.Action) – actions
    • settings (dictionary) – process settings (writable, eg recursion, ...)
    • paths (list of strings) – paths where the images are located. If they are not specified, Phatch will ask them to the user.
    • drop (bool) – True in case files were dropped or phatch is started as a droplet.
    core.api.assert_safe(actions)
    core.api.check_actionlist(actions, settings)

    Verifies action list before executing. It checks whether:

    • the action list is not empty
    • all actions are not disabled
    • if there is a save action at the end or only file actions
    • overwriting images is forced
    Parameters:
    • actions (list of core.models.Action) – actions of the action list
    • settings (dictionary) – execution settings
    >>> settings = {'no_save':False}
    >>> check_actionlist([], settings) is None
    True
    >>> from actions import canvas, save
    >>> canvas_action = canvas.Action()
    >>> save_action = save.Action()
    >>> check_actionlist([canvas_action,save_action],
    ... {'no_save':False}) is None
    False
    >>> check_actionlist([canvas_action], settings) is None
    True
    >>> settings = {'no_save':True}
    >>> check_actionlist([canvas_action], settings) is None
    False
    >>> settings['overwrite_existing_images_forced']
    False
    
    core.api.check_actionlist_file_only(actions)

    Check whether the action list only exist of file operations (such as copy, rename, ...)

    Parameter:actions – actions of the action list
    Type:list of core.models.Action
    Returns:True if only file operations, False otherwise
    Return type:bool
    >>> from actions import canvas, rename
    >>> check_actionlist_file_only([canvas.Action()])
    False
    >>> check_actionlist_file_only([rename.Action()])
    True
    
    core.api.filter_image_infos(folder, extensions, files, root, info_file)

    Filter image files by extension and verify if they are files. It returns a list of info dictionaries which are generated by :method:`InfoPil.dump`:

    {'day': 14,
     'filename': 'beach',
     'filesize': 9682,
     'folder': u'/home/stani',
     'foldername': u'stani',
     'hour': 23,
     'minute': 43,
     'month': 3,
     'monthname': 'March',
     'path': '/home/stani/beach.jpg',
     'root': '/home',
     'second': 26,
     'subfolder': u'',
     'type': 'jpg',
     'weekday': 4,
     'weekdayname': 'Friday',
     'year': 2008,
     '$': 0}
    

    $ is the index of the file within a folder.

    Helper function for get_image_infos_from_folder()

    Parameters:
    • folder (string) – folder path (recursion dependent)
    • extensions (list of strings) – extensions (without .)
    • files (list of strings) – list of filenames without folder path
    • root (string) – root folder path (independent from recursion)
    Returns:

    list of image file info

    Return type:

    list of dictionaries

    core.api.flush_log(photo, image_file, action=None)

    Flushes non fatal errors/warnings with log_error() and warnings that have been logged from the photo to the error log file.

    Parameters:
    • photo (class:core.pil.Photo) – photo which has photo.log
    • image_file (string) – absolute path of the image
    • action (core.models.Action) – action which was involved in the error (optional)
    core.api.get_image_infos(paths, info_file, extensions, recursive)

    Get all image info dictionaries from a mix of folder and file paths.

    Parameters:
    • paths (list of strings) – file and/or folderpaths
    • extensions (list of strings) – extensions (without .)
    • recursive (bool) – include subfolders
    Returns:

    list of image file info

    Return type:

    list of dictionaries

    core.api.get_image_infos_from_folder(folder, info_file, extensions, recursive)

    Get all image info dictionaries from a specific folder.

    Parameters:
    • folder (string) – top folder path
    • extensions (list of strings) – extensions (without .)
    • recursive (bool) – include subfolders
    Returns:

    list of image file info

    Return type:

    list of dictionaries

    Helper function for get_image_infos()

    core.api.get_paths_and_settings(paths, settings, drop=False)

    Ask the user for paths and settings. In the GUI this shows the execute dialog box.

    Parameters:
    • paths (list of strings) – initial value of the paths (eg to fill in dialog)
    • settings (dictionary) – settings
    • drop (bool) – True in case files were dropped or phatch is started as a droplet.
    core.api.get_photo(info_file, info_not_file, result)

    Get a core.pil.Photo instance from a file. If there is an error opening the file, func:process_error will be called.

    Parameters:
    • info_file (dictionary) – file information
    • info_not_file (string) – image information not related to file
    • result (dict) – settings to send to progress dialog box (such as stop for errors)
    Returns:

    photo, result

    Return type:

    tuple

    core.api.get_vars(actions)

    Extract all used variables from actions.

    Parameter:actions (list of dict) – list of actions
    core.api.import_actions()
    Import all actions from the ct.PHATCH_ACTIONS_PATH.
    core.api.import_module(module, folder=None)

    Import a module, mostly used for actions.

    Parameters:
    • module (string) – module/action name
    • folder (string) – folder where the module is situated
    core.api.init()
    Verify user paths and import all actions. This function should be called at the start.
    core.api.init_actions(actions)

    Initializes all actions. Shows an error to the user if an action fails to initialize.

    Parameter:actions (list of core.models.Action) – actions
    Returns:False, if one action fails, True otherwise
    Return type:bool
    core.api.init_error_log_file()
    Reset ERROR_LOG_COUNTER and create the ERROR_LOG_FILE.
    core.api.log_error(message, filename, action=None, label='Error')

    Writer error message to log file.

    Helper function for flush_log(), process_error().

    Parameters:
    • message (string) – error message
    • filename (string) – image filename
    • label (string) – 'Error' or 'Warning'
    Returns:

    error log details

    Return type:

    string

    core.api.open_actionlist(filename)

    Open the action list from a file.

    Parameter:filename (string) – the filename of the action list
    Returns:action list
    Return type:dictionary
    core.api.process_error(photo, message, image_file, action, result, ignore)

    Logs error to file with log_error() and show dialog box allowing the user to skip, abort or ignore.

    Helper function for get_photo() and apply_action.

    Parameters:
    • photo (class:core.pil.Photo) – photo
    • message (string) – error message
    • image_file (string) – absolute path of the image
    • result (dictionary) – settings for dialog (eg stop_for_errors)
    Returns:

    photo, result

    Return type:

    tuple

    core.api.save_actionlist(filename, data)

    Save actionlist data to filename.

    Parameters:
    • filename (string) – filename of the actionlist, if it has no extension .phatch will be added automatically.
    • data (dictionary) – action list data

    Actionlists are stored as dictionaries:

    data = {'actions':[...], 'description':'...'}
    
    core.api.verify_images(image_infos, repeat)

    Filter invalid images out.

    Verify if images are not corrupt. Show the invalid images to the user. If no valid images are found, show an error to the user. Otherwise show the valid images to the user.

    Parameter:image_infos (list of dictionaries) – list of image info dictionaries
    Returns:None for error, valid image info dictionaries otherwise

    Previous topic

    core

    Next topic

    config

    phatch-0.2.7/docs/build/html/core.config.html0000644000000000000000000001577711346363116021027 0ustar rootroot00000000000000 config — Phatch v0.2 documentation

    config

    class core.config.Paths
    core.config.add_user_paths(config_paths)
    core.config.check_config_paths(config_paths)
    core.config.check_fonts(force=False)
    core.config.fix_python_path(phatch_python_path=None)
    core.config.init_config_paths(config_paths=None)
    core.config.load_locale(app, path, canonical='default', unicode=True)
    core.config.load_locale_only(config_paths=None)
    core.config.verify_app_user_paths()
    Create user path structure if it does not exist yet. If there are new action lists in the phatch library, copy them to the user folder.

    Previous topic

    api

    Next topic

    ct

    phatch-0.2.7/docs/build/html/core.ct.html0000644000000000000000000001023211346363116020145 0ustar rootroot00000000000000 ct — Phatch v0.2 documentation

    ct

    Previous topic

    config

    Next topic

    message

    phatch-0.2.7/docs/build/html/core.html0000644000000000000000000001146411346363116017550 0ustar rootroot00000000000000 core — Phatch v0.2 documentation

    Previous topic

    console

    Next topic

    api

    phatch-0.2.7/docs/build/html/core.imageTable.html0000644000000000000000000003425411346363116021603 0ustar rootroot00000000000000 imageTable — Phatch v0.2 documentation

    imageTable

    class core.imageTable.Table(thumb_size=(128, 128))

    Bases: object

    add_image_key(image, key, value='')
    add_key(key, value='')
    Add key to all images
    delete_cell(row, col)
    delete_images(pos, num=1)
    delete_keys(pos, num=1)
    get_cell_value(row, col)
    get_image_amount()
    get_image_label(index)
    get_key_amount()
    get_key_label(index)
    is_cell_deletable(row, col)
    is_cell_editable(row, col)
    is_cell_empty(row, col)
    is_image_editable(image)
    is_key_editable(index=0, key=None)
    is_key_empty(key)
    open_folder(folder)
    open_image(filename, update=True)
    open_images(filenames)
    set_cell_value(row, col, value)
    set_filter(filter='')
    set_image_key_value(image, key, value)
    set_image_label(index, value)
    set_key_label(index, value)
    set_key_value(key, value)
    set_tag(tag)
    transpose()
    update()
    class core.imageTable.TableImage(filename, thumb_size=(128, 128))
    get_time()
    is_modified()
    update()
    update_if_modified()
    update_time()

    Previous topic

    ct

    Next topic

    information

    This Page

    phatch-0.2.7/docs/build/html/core.information.html0000644000000000000000000006326411346363116022101 0ustar rootroot00000000000000 information — Phatch v0.2 documentation

    information

    class core.information.DumpInfo(d=None)

    Bases: dict

    Dictionary like object which tracks changes.

    >>> d = DumpInfo({'hello': 'world'})
    >>> d['foo'] = 'bar'
    >>> d.changed
    ['foo']
    
    class core.information.InfoCache(source=None)

    Bases: object

    disable_cache()

    Turn off static caching.

    This makes only sense for callable sources.

    enable_cache()

    Enable the static cache so that the expensive :method:_get_source_dynamic does not get called for every var access.

    This makes only sense for callable sources.

    extract_all()
    Extract all values, which is usefull for inspector.
    extract_others()
    Extract all other vars. Does nothing by default. (to be overwritten)
    provides(var)

    Wether this info (might) provide the var variable.

    Returns:if this info should handle this variable
    Return type:bool
    set_source(source)

    Sets the source of this info. This allows reuse of the same info if needed.

    Parameter:source (object or callable) – retrieve source from which to extract data
    class core.information.InfoCollection

    Create an info like dictionary which uses a collection of several info instances.

    >>> import Image
    >>> image1 = Image.new('RGB',(2,1))
    >>> image2 = Image.new('L',(1,2))
    >>> info = InfoCollection()
    >>> info.list.append(InfoPil(image1))
    >>> info.types()
    ['Pil']
    >>> info.dump()
    {}
    >>> info['Pil.Format']
    >>> info.dump()
    {'Pil.Format': None}
    >>> info['width']
    2
    >>> info.dump()
    {'Pil.Format': None, 'width': 2, 'Pil.Size': (2, 1), 'height': 1}
    >>> info.set_source('Pil', image2)
    >>> info.dump()
    {}
    >>> d = info.dump('mode','height')
    >>> d
    {'Pil.Size': (1, 2), 'width': 1, 'mode': 'L', 'height': 2}
    >>> type(d) == DumpInfo
    True
    
    append_info(info)
    clear()
    dump(*vars)
    provides(var)
    set_source(d, source=None)

    Set source of an info from the collection. If source is None, d should be a dictionary otherwise a type. Raises an UnknownTypeError in case an unknown type is given.

    Parameters:
    • d (dict/str) – dictionary {type: source} or type
    • source – source (pil image, filename, ...)
    types()
    class core.information.InfoFile(source=None)

    Bases: core.information.InfoCache

    Wraps a lazy file path access around an image filename.

    >>> info = InfoFile('/home/phatch/test.png')
    >>> info['foldername']
    u'phatch'
    >>> sorted(info.dict.keys())
    ['foldername', 'root']
    >>> info['type']
    u'png'
    >>> sorted(info.dict.keys())
    ['filename', 'foldername', 'root', 'type']
    >>> info.set_source('/home/gimp/world.jpg')
    >>> info['type']
    u'jpg'
    >>> sorted(info.dict.keys())
    ['filename', 'type']
    
    class core.information.InfoPexif
    class core.information.InfoPil(source=None)

    Bases: core.information.InfoCache

    Wraps a lazy PIL var access to an image.

    Parameter:image (Pil.Image/function) – Pil.Image or callable to retrieve it
    >>> import pprint
    >>> import Image
    >>> image = Image.new('L',(1,2))
    >>> info = InfoPil(image)
    >>> info.provides('Pil.FormatDescription')
    True
    >>> pprint.pprint(info.vars)
    ['Pil.Format',
     'Pil.FormatDescription',
     'Pil.Size',
     'compression',
     'height',
     'mode',
     'width']
    >>> sorted(info.dict.keys())
    []
    >>> info['mode']
    'L'
    >>> info['height']
    2
    >>> info['Pil.Format']
    >>> sorted(info.dict.keys())
    ['Pil.Format', 'Pil.Size', 'height', 'mode', 'width']
    >>> info.reset_geometry()
    >>> sorted(info.dict.keys())
    ['Pil.Format', 'Pil.Size', 'mode']
    >>> info.extract_all()
    >>> pprint.pprint(sorted(info.dict.keys()))
    ['Pil.Format',
     'Pil.FormatDescription',
     'Pil.Size',
     'compression',
     'height',
     'mode',
     'width']
    
    extract_others()
    Extract all other vars
    reset_geometry()
    exception core.information.UnknownTypeError
    Bases: exceptions.Exception
    core.information.extract_info_pexif(info, image)
    pexif = Pil EXIF
    core.information.get_module(var)
    core.information.get_modules(vars)
    core.information.get_vars(actions)

    Extract all used variables from actions.

    Parameter:actions (list of dict) – list of actions
    core.information.is_string(x)

    Previous topic

    imageTable

    Next topic

    message

    This Page

    phatch-0.2.7/docs/build/html/core.message.html0000644000000000000000000002261611346363116021174 0ustar rootroot00000000000000 message — Phatch v0.2 documentation

    message

    class core.message.FrameReceiver(name)

    Bases: lib.events.Receiver

    append_save_action(actions)
    To be overwritten.
    show_error(message)
    To be overwritten.
    show_execute_dialog(result, settings, files=None)
    To be overwritten.
    show_files_message(result, message, title, files)
    To be overwritten.
    show_progress(title, parent_max, child_max, message='')
    To be overwritten. parent_max -> parent loop, eg images child_max -> child loop, eg actions & open
    show_progress_error(result, message, ignore=True)
    To be overwritten.
    show_scrolled_message(message, title, **keyw)
    To be overwritten.
    class core.message.ProgressReceiver(parent_max, child_max)

    Bases: lib.events.Receiver

    close()
    set_max(parent_max, child_max)
    sleep()
    update(result, value, newmsg='')
    update_filename(result, parent_index, filename)
    update_index(result, parent_index, child_index)

    Previous topic

    ct

    Next topic

    models

    phatch-0.2.7/docs/build/html/core.models.html0000644000000000000000000005256111346363116021035 0ustar rootroot00000000000000 models — Phatch v0.2 documentation

    models

    Store internally as a string. Provide validation routines.

    class core.models.Action(**options)

    Bases: lib.formField.Form

    Action base class.

    class BlenderField(value=None, visible=True, choices=None)

    Bases: lib.formField.ImageDictionaryField

    get_path()
    init_dictionary()
    class Action.BlenderObjectField(value=None, visible=True, choices=None)
    Bases: core.models.BlenderField
    class Action.BlenderRotationField(value=None, visible=True, choices=None)

    Bases: core.models.BlenderField

    get_path()
    title_parser(field, filename)
    class Action.HighlightFileField(value=None, visible=True, choices=None)

    Bases: lib.formField.ImageDictionaryReadFileField

    init_dictionary()
    class Action.MaskFileField(value=None, visible=True, choices=None)

    Bases: lib.formField.ImageDictionaryReadFileField

    init_dictionary()
    class Action.PerspectiveField(value=None, visible=True, choices=None)

    Bases: lib.formField.ImageDictionaryField

    init_dictionary()
    class Action.WatermarkFileField(value=None, visible=True, choices=None)

    Bases: lib.formField.ImageDictionaryReadFileField

    init_dictionary()
    Action.apply(photo, setting, cache)

    Can be overwritten always returns the photo.

    If this method is not overwritten a pil method should be required.

    Action.ensure_path_or_desktop(folder, photo, filename, desktop=False)

    Ensures that folder exists. If it can’t create the path, it will log an error in the photo and propose to save it in the desktop folder instead.

    Parameters:
    • folder – folder path
    • folder (core.pil.Photo) – photo to log to
    • filename (str) – targeted filename
    • desktop (bool) – force saving on desktop
    Returns:

    same filename, or on desktop in case of errors

    Return type:

    str

    static Action.init()
    Action.is_done(photo)
    Method used for resuming when a batch was interrupted. Check if this image has been done already.
    Action.values(info, pixel_fields=None, exclude=None)
    class core.models.CropMixin

    Bases: object

    get_relevant_field_labels(action=None)

    If this method is present, Phatch will only show relevant fields.

    Returns:list of the field labels which are relevant
    Return type:list of strings

    Note

    It is very important that the list of labels has EXACTLY the same order as defined in the interface method.

    interface(fields, action=None)
    values(info, pixel_fields=None, exclude=None, action=None)
    class core.models.LosslessSaveMixin

    Bases: object

    get_lossless_filename(photo, info)
    interface(fields)
    is_done(photo)
    Method used for resuming when a batch was interrupted. For metadata there is no way to know if this image has been done already, so return False by default.
    is_overwrite_existing_images_forced()
    Always force overwrite as we want to store the tags in existing images.
    class core.models.OffsetMixin

    Bases: object

    get_relevant_field_labels()
    interface(fields)
    values(info, pixel_fields=None, exclude=None)
    class core.models.StampMixin

    Bases: core.models.OffsetMixin

    get_relevant_field_labels()
    interface(fields)
    core.models.init()
    core.models.negative(value)

    Returns the negative value of a string expression.

    Parameter:value (str) – int or float expression
    Returns:negative value of expression
    Return type:str
    >>> negative('5')
    '-5'
    >>> negative('-5')
    '5'
    

    Previous topic

    message

    Next topic

    pil

    phatch-0.2.7/docs/build/html/core.pil.html0000644000000000000000000004667211346363116020344 0ustar rootroot00000000000000 pil — Phatch v0.2 documentation

    pil

    All PIL related issues.

    class core.pil.InfoPhoto(info, info_to_dump, get_pil, image=None)

    Bases: dict

    assert_transparency()
    Raise a KeyError for 'transparency' when image.mode is not 'P'.
    assert_writable(tag)

    Assert that the tag is writable. This can raise an NotWritableTagError because of several reasons:

    • Tag might be read-only (e.g. Exif_Photo_PixelXDimension)
    • Tag might be not Exif or Iptc
    • Image file format might not allow writing of this tag
    Parameter:tag (string) – tag name
    Returns:True, if writable
    Return type:bool
    clear_log()
    Clears the log.
    close()
    Remove circular reference.
    get_log()

    Get the log contents.

    Returns:the log
    Return type:string
    is_dirty()

    The photo can become dirty in two ways:

    • new metadata has been set
    • the image has changes size

    In case the image size has changed it will update the Exif.Photo.PixelXDimension and Exif.Photo.PixelYimension accordingly.

    Returns:True, if dirty
    Return type:boolean
    log(message)

    Log a message

    Parameter:message (string) – message
    save(target, target_format=None, thumbdata=None)
    Parameters:
    • target (string) – target filename
    • target_format (string) – target format e.g. obtained by PIL
    • thumbdata (string) – new thumbnail (eg with StringIO, see imtools)
    set(tag, value)
    update(d, explicit=True)
    Do this explicitly so __setitem__ gets called.
    update_size()
    If the image is exif writable and if the size has changed, it will update Exif.Photo.PixelXDimension and Exif.Photo.PixelYimension.
    class core.pil.Layer(filename, position=(0, 0), load=True)
    apply_pil(function, *arg, **keyw)
    open(uri)
    exception core.pil.NotWritableTagError
    Bases: exceptions.Exception
    class core.pil.Photo(info, info_to_dump=None)

    Use get_photo() to obtain a photo from a filename.

    append_to_report(filename, image=None)
    apply_pil(function, *arg, **keyw)
    call(command, check_exe=True, shell=None, size=None, unlock=False, output_filename=None, mode=None)
    clear_log()
    close()
    Remove circular references.
    convert(mode, *args, **keyw)
    Converts all layers to a different mode.
    get_filename(folder, filename, typ)
    get_flattened_image()
    get_layer(name=None)
    get_log()
    get_thumb(size=(128, 128))
    log(message)
    resize(size, method)
    Resizes all layers to a different size
    rotate_exif(reverse=False)
    safe_mode(format)
    Convert the photo into a safe mode for this specific format
    save(filename, format=None, save_metadata=True, **options)
    Saves a flattened image
    set_layer(layer, name=None)
    core.pil.fix_EXIF(tag)
    core.pil.get_photo(filename)
    core.pil.image_to_dict(filename, im=None)
    core.pil.split_data(d)

    Provide attribute access to the variables.

    Parameter:d (dict) – a dumped metadata dictionary
    >>> d = {'date': '2008-11-27 13:54:33', 'tuple': (1, 2)}
    
    core.pil.split_vars_static_dynamic(vars)

    Previous topic

    models

    Next topic

    preview

    phatch-0.2.7/docs/build/html/core.preview.html0000644000000000000000000001110011346363116021213 0ustar rootroot00000000000000 preview — Phatch v0.2 documentation

    preview

    core.preview.generate(source, size=(48, 48), path=u'/home/stani/.cache/phatch/preview', force=True)

    Previous topic

    pil

    Next topic

    safeGlobals

    phatch-0.2.7/docs/build/html/core.regex.html0000644000000000000000000001057411346363116020662 0ustar rootroot00000000000000 regex — Phatch v0.2 documentation

    regex

    Previous topic

    preview

    Next topic

    settings

    This Page

    phatch-0.2.7/docs/build/html/core.safeGlobals.html0000644000000000000000000001425511346363116021772 0ustar rootroot00000000000000 safeGlobals — Phatch v0.2 documentation

    safeGlobals

    core.safeGlobals.add_dictionary(namespace, dictionary)
    core.safeGlobals.add_module(namespace, module)

    Add module dictionary to the namespace. This is the equivalent for:

    from module import *
    

    This used for the GLOBALS variable.

    Parameters:
    • namespace (dict) – namespace
    • module_dict (module) – module
    core.safeGlobals.allow(key)
    core.safeGlobals.safe_globals()

    Previous topic

    preview

    Next topic

    settings

    phatch-0.2.7/docs/build/html/core.settings.html0000644000000000000000000001112411346363116021400 0ustar rootroot00000000000000 settings — Phatch v0.2 documentation

    settings

    core.settings.create_settings(config_paths=None, options=None)

    Previous topic

    safeGlobals

    Next topic

    translation

    phatch-0.2.7/docs/build/html/core.translation.html0000644000000000000000000001136611346363116022106 0ustar rootroot00000000000000 translation — Phatch v0.2 documentation

    translation

    core.translation.to_english(x)
    core.translation.to_local(x)

    Previous topic

    settings

    Next topic

    data

    phatch-0.2.7/docs/build/html/data.html0000644000000000000000000001037411346363116017530 0ustar rootroot00000000000000 data — Phatch v0.2 documentation

    Previous topic

    translation

    Next topic

    info

    phatch-0.2.7/docs/build/html/data.info.html0000644000000000000000000001244111346363116020457 0ustar rootroot00000000000000 info — Phatch v0.2 documentation

    info

    Important: Run this file everytime info is changed.

    data.info.all_credits()
    data.info.write_credits()
    data.info.write_readme()
    data.info.write_readme_credits()

    Previous topic

    data

    Next topic

    license

    phatch-0.2.7/docs/build/html/data.license.html0000644000000000000000000001023611346363116021146 0ustar rootroot00000000000000 license — Phatch v0.2 documentation

    license

    Previous topic

    info

    Next topic

    version

    phatch-0.2.7/docs/build/html/data.version.html0000644000000000000000000001020211346363116021202 0ustar rootroot00000000000000 version — Phatch v0.2 documentation

    version

    Previous topic

    license

    Next topic

    lib

    phatch-0.2.7/docs/build/html/genindex.html0000644000000000000000000100462211346363116020420 0ustar rootroot00000000000000 Index — Phatch v0.2 documentation

    Index

    A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X | Y

    A

    Action (class in actions.autocontrast)
    (class in actions.background)
    (class in actions.blender)
    (class in actions.border)
    (class in actions.brightness)
    (class in actions.canvas)
    (class in actions.color_to_alpha)
    (class in actions.colorize)
    (class in actions.common)
    (class in actions.contour)
    (class in actions.contrast)
    (class in actions.convert_mode)
    (class in actions.copy)
    (class in actions.crop)
    (class in actions.delete_tags)
    (class in actions.desaturate)
    (class in actions.effect)
    (class in actions.equalize)
    (class in actions.fit)
    (class in actions.geek)
    (class in actions.geotag)
    (class in actions.grid)
    (class in actions.highlight)
    (class in actions.imagemagick)
    (class in actions.invert)
    (class in actions.lossless_jpeg)
    (class in actions.mask)
    (class in actions.maximum)
    (class in actions.median)
    (class in actions.minimum)
    (class in actions.mirror)
    (class in actions.offset)
    (class in actions.perspective)
    (class in actions.posterize)
    (class in actions.rank)
    (class in actions.reflection)
    (class in actions.rename)
    (class in actions.rename_tag)
    (class in actions.rotate)
    (class in actions.round)
    (class in actions.saturation)
    (class in actions.save)
    (class in actions.save_metadata)
    (class in actions.scale)
    (class in actions.shadow)
    (class in actions.sketch)
    (class in actions.solarize)
    (class in actions.tamogen)
    (class in actions.text)
    (class in actions.time_shift)
    (class in actions.transpose)
    (class in actions.warm_up)
    (class in actions.watermark)
    (class in actions.write_tag)
    (class in core.models)
    Action.BlenderField (class in core.models)
    Action.BlenderObjectField (class in core.models)
    Action.BlenderRotationField (class in core.models)
    Action.HighlightFileField (class in core.models)
    Action.MaskFileField (class in core.models)
    Action.PerspectiveField (class in core.models)
    Action.WatermarkFileField (class in core.models)
    ActionBrowser (class in pyWx.dialogs)
    ActionDialog (class in pyWx.dialogs)
    ActionListBox (class in pyWx.dialogs)
    actions (module)
    actions.autocontrast (module)
    actions.background (module)
    actions.blender (module)
    actions.border (module)
    actions.brightness (module)
    actions.canvas (module)
    actions.color_to_alpha (module)
    actions.colorize (module)
    actions.common (module)
    actions.contour (module)
    actions.contrast (module)
    actions.convert_mode (module)
    actions.copy (module)
    actions.crop (module)
    actions.delete_tags (module)
    actions.desaturate (module)
    actions.effect (module)
    actions.equalize (module)
    actions.fit (module)
    actions.geek (module)
    actions.geotag (module)
    actions.grid (module)
    actions.highlight (module)
    actions.imagemagick (module)
    actions.invert (module)
    actions.lossless_jpeg (module)
    actions.mask (module)
    actions.maximum (module)
    actions.median (module)
    actions.minimum (module)
    actions.mirror (module)
    actions.offset (module)
    actions.perspective (module)
    actions.posterize (module)
    actions.rank (module)
    actions.reflection (module)
    actions.rename (module)
    actions.rename_tag (module)
    actions.rotate (module)
    actions.round (module)
    actions.saturation (module)
    actions.save (module)
    actions.save_metadata (module)
    actions.scale (module)
    actions.shadow (module)
    actions.sketch (module)
    actions.solarize (module)
    actions.tamogen (module)
    actions.text (module)
    actions.time_shift (module)
    actions.transpose (module)
    actions.warm_up (module)
    actions.watermark (module)
    actions.write_tag (module)
    add_checkboard() (in module lib.imtools)
    add_dictionary() (in module core.safeGlobals)
    add_image_key() (lib.imageTable.Table method)
    add_key() (lib.imageTable.Table method)
    add_module() (in module core.safeGlobals)
    add_tool() (pyWx.gui.Frame method)
    add_user_paths() (in module core.config)
    AddColumnRow() (lib.pyWx.imageInspector.Grid method)
    AddForced() (lib.pyWx.popup.ForcedBoxSizer method)
    AddPanel() (other.pyWx.toasterbox.ToasterBox method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    AddRow() (lib.pyWx.imageInspector.Grid method)
    AddTagDialog (class in lib.pyWx.dialogsInspector)
    (class in lib.pyWx.imageInspector)
    AlignHorizontalField (class in lib.formField)
    AlignVerticalField (class in lib.formField)
    all_credits() (in module data.info)
    allow() (in module core.safeGlobals)
    App (class in pyWx.gui)
    (class in pyWx.wxGlade.frame)
    append() (actions.lossless_jpeg.Arguments method)
    (other.tamogen.BoundingBoxContainer method)
    (other.tamogen.FillImages method)
    append_field() (lib.pyWx.treeEdit.TreeMixin method)
    append_form() (lib.pyWx.treeEdit.TreeMixin method)
    append_form_by_label() (lib.pyWx.treeEdit.TreeMixin method)
    append_form_by_label_to_last() (lib.pyWx.treeEdit.TreeMixin method)
    append_form_by_label_to_selected() (lib.pyWx.treeEdit.TreeMixin method)
    append_forms() (lib.pyWx.treeEdit.TreeMixin method)
    append_save_action() (console.console.Frame method)
    (core.message.FrameReceiver method)
    (pyWx.gui.Frame method)
    append_to_report() (core.pil.Photo method)
    Applications (class in lib.windows.locate)
    apply() (actions.blender.Action method)
    (actions.convert_mode.Action method)
    (actions.copy.Action method)
    (actions.delete_tags.Action method)
    (actions.geek.Action method)
    (actions.geotag.Action method)
    (actions.imagemagick.Action method)
    (actions.lossless_jpeg.UtilityMixin method)
    (actions.rename.Action method)
    (actions.rename_tag.Action method)
    (actions.save.Action method)
    (actions.save_metadata.Action method)
    (actions.scale.Action method)
    (actions.time_shift.Action method)
    (actions.transpose.Action method)
    (actions.write_tag.Action method)
    (core.models.Action method)
    apply_action_to_photo() (in module core.api)
    apply_actions_to_photo() (in module core.api)
    apply_actions_to_photos() (in module core.api)
    apply_pil() (core.pil.Layer method)
    (core.pil.Photo method)
    Arguments (class in actions.lossless_jpeg)
    ask() (in module console.console)
    Ask() (lib.pyWx.imageInspector.Grid method)
    ask_yes_no() (in module console.console)
    AskText() (lib.pyWx.imageInspector.Grid method)
    assert_safe() (in module core.api)
    (in module lib.safe)
    (lib.formField.Field method)
    (lib.formField.Form.Field method)
    assert_safe_expr() (in module lib.safe)
    assert_transparency() (core.pil.InfoPhoto method)
    assert_writable() (core.pil.InfoPhoto method)
    AttrIncRef() (lib.pyWx.inspector.Grid method)
    auto_crop() (in module lib.imtools)
    AutoCompleteDictionaryFileCtrl (class in lib.pyWx.popup)
    AutoCompleteIconCtrl (class in lib.pyWx.autoCompleteCtrls)
    AutoCompleteTextCtrl (class in lib.pyWx.autoCompleteCtrls)
    autocontrast() (in module actions.autocontrast)

    B

    Background (class in actions.blender)
    background() (in module actions.background)
    basename() (in module lib.fonts)
    bitmap() (in module lib.pyWx.graphics)
    bitmap_open() (in module lib.pyWx.graphics)
    blank_lines() (in module other.pep8)
    blend() (in module lib.imtools)
    Blender (class in lib.windows.locate)
    BlenderObject (class in actions.blender)
    BlenderObjects (class in actions.blender)
    Book (class in actions.blender)
    BooleanCtrl (class in lib.pyWx.popup)
    BooleanField (class in lib.formField)
    border() (in module actions.border)
    bottom (other.tamogen.BoundingBox attribute)
    BoundingBox (class in other.tamogen)
    BoundingBoxContainer (class in other.tamogen)
    Box (class in actions.blender)
    (class in lib.pyWx.vlist)
    brightness() (in module actions.brightness)
    browse_files() (pyWx.dialogs.ExecuteDialog method)
    browse_folder() (pyWx.dialogs.ExecuteDialog method)
    BrowseMixin (class in pyWx.dialogs)
    Browser (class in lib.pyWx.imageInspector)
    (class in lib.pyWx.tag)
    (lib.pyWx.inspectorTag.Frame attribute)
    (pyWx.dialogs.ImageInspectorFrame attribute)
    build_tokens_line() (other.pep8.Checker method)

    C

    calculate_location() (in module lib.imtools)
    call() (actions.lossless_jpeg.LossLessSaveUtilityMixin method)
    (actions.lossless_jpeg.UtilityMixin method)
    (core.pil.Photo method)
    (in module lib.system)
    Camera (class in actions.blender)
    Can (class in actions.blender)
    canon_decode_tag() (other.EXIF.EXIF_header method)
    canvas_size() (in module actions.canvas)
    Cd (class in actions.blender)
    ChangeRowValues() (lib.pyWx.imageInspector.Grid method)
    CharField (class in lib.formField)
    check_actionlist() (in module core.api)
    check_actionlist_file_only() (in module core.api)
    check_all() (other.pep8.Checker method)
    check_config_paths() (in module core.config)
    check_fonts() (in module core.config)
    check_libtiff() (in module lib.openImage)
    check_logical() (other.pep8.Checker method)
    check_physical() (other.pep8.Checker method)
    checkboard() (in module lib.imtools)
    CheckEmpty() (lib.pyWx.tag.Browser method)
    (lib.pyWx.tag.ContentMixin method)
    Checker (class in other.pep8)
    ChoiceCtrl (class in lib.pyWx.popup)
    ChoiceField (class in lib.formField)
    CleanList() (other.pyWx.toasterbox.ToasterBox method)
    clear() (lib.metadata.InfoExtract method)
    (lib.odict.odict method)
    clear_cache() (lib.metadata.InfoExtract method)
    clear_log() (core.pil.InfoPhoto method)
    (core.pil.Photo method)
    CliMixin (class in console.console)
    close() (console.console.Frame.Progress method)
    (console.console.Progress method)
    (core.message.ProgressReceiver method)
    (core.pil.InfoPhoto method)
    (core.pil.Photo method)
    Close() (lib.pyWx.popup.EditPanel method)
    (lib.pyWx.popup.FontFileCtrl method)
    close() (lib.system.TempFile method)
    (pyWx.dialogs.ProgressDialog method)
    close_popup() (lib.pyWx.treeEdit.TreeMixin method)
    collapse_forms() (lib.pyWx.treeEdit.TreeMixin method)
    collect_fonts() (in module lib.fonts)
    color_to_alpha() (in module actions.color_to_alpha)
    ColorCtrl (class in lib.pyWx.popup)
    ColorField (class in lib.formField)
    colorize() (in module actions.colorize)
    ComboCtrl (class in lib.pyWx.popup)
    CommandLineField (class in lib.formField)
    common() (in module actions.common)
    compile_expr() (in module lib.safe)
    compound_statements() (in module other.pep8)
    console (module)
    console.console (module)
    construct_command() (actions.blender.Action method)
    ContentBox (lib.pyWx.vlistTag.TestDialog attribute)
    ContentBrowser (lib.pyWx.vlistTag.Dialog attribute)
    (pyWx.dialogs.ActionDialog attribute)
    ContentCtrl (lib.pyWx.imageInspector.Browser attribute)
    (lib.pyWx.imageInspector.Frame.Browser attribute)
    (lib.pyWx.inspectorTag.TestBrowser attribute)
    (lib.pyWx.tag.Browser attribute)
    (lib.pyWx.tag.TestBrowser attribute)
    (lib.pyWx.vlistTag.TestBrowser attribute)
    (pyWx.dialogs.ActionBrowser attribute)
    (pyWx.dialogs.ImageInspectorBrowser attribute)
    ContentMixin (class in lib.pyWx.tag)
    contrast() (in module actions.contrast)
    convert() (core.pil.Photo method)
    (in module lib.imtools)
    convert_from_string() (in module lib.metadata)
    convert_safe_mode() (in module lib.imtools)
    convert_save_mode_by_format() (in module lib.imtools)
    copy_text() (in module lib.pyWx.clipboard)
    CopyCellValue() (lib.pyWx.imageInspector.Grid method)
    CopyRowLabel() (lib.pyWx.imageInspector.Grid method)
    core (module)
    core.api (module)
    core.config (module)
    core.ct (module)
    core.message (module)
    core.models (module)
    core.pil (module)
    core.preview (module)
    core.safeGlobals (module)
    core.settings (module)
    core.translation (module)
    create_corner() (in module actions.round)
    create_droplet() (in module lib.linux.desktop)
    create_nautilus_extension() (in module lib.linux.nautilusExtension)
    create_phatch_droplet() (in module linux.droplet)
    create_phatch_inspect_nautilus_action() (in module linux.droplet)
    create_phatch_inspect_thunar_action() (in module linux.droplet)
    create_phatch_inspector_droplet() (in module linux.droplet)
    create_phatch_nautilus_action() (in module linux.droplet)
    create_phatch_recent_droplet() (in module linux.droplet)
    create_phatch_recent_nautilus_action() (in module linux.droplet)
    create_phatch_recent_thunar_action() (in module linux.droplet)
    create_phatch_thunar_action() (in module linux.droplet)
    create_popup() (lib.pyWx.treeEdit.TreeMixin method)
    create_popup_selected() (lib.pyWx.treeEdit.TreeMixin method)
    create_rounded_rectangle() (in module actions.round)
    create_settings() (in module core.settings)
    create_thunar_action() (in module linux.thunar)
    CreateBitmap() (pyWx.nuovext.Provider method)
    CreateBitmapButton() (lib.pyWx.inspectorTag.Frame method)
    CreateColumns() (lib.pyWx.folderFileBrowser.ListCtrl method)
    CreateImageList() (lib.pyWx.treeEdit.TreeMixin method)
    CreateRowLabelMenu() (lib.pyWx.imageInspector.Grid method)
    (pyWx.dialogs.ImageInspectorGrid method)
    CreditsDialog (class in lib.pyWx.about)
    crop() (in module actions.crop)
    CropMixin (class in core.models)
    crunch_data() (in module other.pyWx.img2py)
    CsvFileField (class in lib.formField)
    ctrl_factory() (in module lib.pyWx.popup)

    D

    d() (in module lib.gps)
    data (module)
    data.info (module)
    data.license (module)
    data.version (module)
    DataDict (class in lib.listData)
    DataTuple (class in lib.listData)
    DateTime (class in lib.metadataTest)
    decode_maker_note() (other.EXIF.EXIF_header method)
    delete() (in module lib.thumbnail)
    delete_all_forms() (lib.pyWx.treeEdit.TreeMixin method)
    delete_cell() (lib.imageTable.Table method)
    delete_images() (lib.imageTable.Table method)
    delete_keys() (lib.imageTable.Table method)
    DeleteCell() (lib.pyWx.imageInspector.Grid method)
    DeleteCols() (lib.pyWx.imageInspector.Grid method)
    (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    DeleteRows() (lib.pyWx.imageInspector.Grid method)
    (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    (lib.pyWx.inspector.Grid.Table method)
    (lib.pyWx.inspector.Table method)
    Deselect() (lib.pyWx.imageFileBrowser.ListCtrl method)
    Dialog (class in lib.pyWx.about)
    (class in lib.pyWx.imageFileBrowser)
    (class in lib.pyWx.vlistTag)
    DialogsMixin (class in pyWx.gui)
    DictionaryFileCtrl (class in lib.pyWx.popup)
    DictionaryReadFileField (class in lib.formField)
    difference1() (in module actions.color_to_alpha)
    difference2() (in module actions.color_to_alpha)
    DisableDrag() (lib.pyWx.treeDragDrop.Mixin method)
    displayhook() (in module lib.gettextFix)
    does_process() (lib.system.MethodRegister method)
    DpiField (class in lib.formField)
    draw_text() (in module actions.text)
    DrawText() (other.pyWx.toasterbox.ToasterBoxWindow method)
    drop() (in module pyWx.gui)
    drop_shadow() (in module actions.shadow)
    droplet_label_format() (pyWx.gui.Frame method)
    DropletApp (class in pyWx.gui)
    DropletFrame (class in pyWx.gui)
    DropletMixin (class in pyWx.gui)
    dump() (lib.formField.Form method)
    (lib.metadata.InfoExtract method)
    dump_IFD() (other.EXIF.EXIF_header method)
    DumpInfo (class in lib.metadata)

    E

    EditPanel (class in lib.pyWx.popup)
    effect() (in module actions.effect)
    empty_bitmap() (in module lib.pyWx.imageInspector)
    EmptyFileField (class in lib.formField)
    enable_actions() (pyWx.gui.Frame method)
    enable_collapse_automatic() (lib.pyWx.treeEdit.TreeMixin method)
    (pyWx.gui.Frame method)
    enable_form() (lib.pyWx.treeEdit.TreeMixin method)
    enable_form_item() (lib.pyWx.treeEdit.TreeMixin method)
    enable_menu() (pyWx.gui.Frame method)
    enable_selected_form() (lib.pyWx.treeEdit.TreeMixin method)
    enable_toolbar() (pyWx.gui.Frame method)
    EnableBackgroundPainting() (lib.pyWx.paint.Mixin method)
    EnableDrag() (lib.pyWx.treeDragDrop.Mixin method)
    EnableResize() (lib.pyWx.tag.Browser method)
    ensure() (in module lib.pyWx.wxcheck)
    ensure_path() (in module lib.system)
    (in module lib.thumbnail)
    (lib.formField.Form method)
    ensure_path_or_desktop() (core.models.Action method)
    ensure_unicode() (in module lib.unicoding)
    equalize() (in module actions.equalize)
    erase() (console.console.Frame.Progress method)
    (console.console.Progress method)
    ErrorDialog (class in pyWx.dialogs)
    (class in pyWx.wxGlade.dialogs)
    eval() (lib.formField.Field method)
    (lib.formField.Form.Field method)
    eval_restricted() (in module lib.safe)
    eval_safe() (in module lib.safe)
    events() (lib.pyWx.treeEdit.TreeMixin method)
    example() (in module console.console)
    (in module lib.events)
    (in module lib.fonts)
    (in module lib.pyWx.about)
    (in module lib.pyWx.imageFileBrowser)
    (in module lib.pyWx.paint)
    (in module lib.pyWx.popup)
    (in module lib.pyWx.tag)
    (in module lib.pyWx.treeEdit)
    (in module lib.pyWx.vlist)
    (in module lib.pyWx.vlistTag)
    (in module pyWx.dialogs)
    example_data_tuple() (in module lib.pyWx.folderFileBrowser)
    example_dict_data() (in module lib.pyWx.folderFileBrowser)
    exception_to_unicode() (in module lib.unicoding)
    excluded() (in module other.pep8)
    execute() (pyWx.gui.DropletFrame method)
    ExecuteDialog (class in pyWx.dialogs)
    (class in pyWx.wxGlade.dialogs)
    EXIF_header (class in other.EXIF)
    ExifItpcField (class in lib.formField)
    Exiftran (class in actions.lossless_jpeg)
    exit() (console.console.CliMixin method)
    expand() (lib.metadata.InfoExtract class method)
    expand_forms() (lib.pyWx.treeEdit.TreeMixin method)
    expand_indent() (in module other.pep8)
    expand_var() (lib.metadata.InfoExtract class method)
    export_form() (lib.pyWx.treeEdit.TreeMixin method)
    export_forms() (lib.pyWx.treeEdit.TreeMixin method)
    export_settings() (pyWx.dialogs.ExecuteDialog method)
    extend_vars() (in module lib.safe)
    extension_to_image_format() (in module lib._pyexiv2)
    extract_all() (lib.metadata.InfoExtract method)
    extract_tags() (in module lib.pyWx.tag)
    extract_TIFF_thumbnail() (other.EXIF.EXIF_header method)
    ExtractTags() (pyWx.dialogs.ActionDialog method)
    extraneous_whitespace() (in module other.pep8)

    F

    Field (class in lib.formField)
    file_extension() (in module lib.system)
    FileCtrl (class in lib.pyWx.popup)
    FileDropTarget (class in lib.pyWx.droplet)
    FileField (class in lib.formField)
    filename_match() (in module other.pep8)
    filename_to_title() (in module lib.system)
    FileNameField (class in lib.formField)
    files_data_dict() (in module lib.listData)
    files_data_tuple() (in module lib.listData)
    files_dictionary() (in module lib.formField)
    FilesDialog (class in pyWx.dialogs)
    (class in pyWx.wxGlade.dialogs)
    FileSizeCtrl (class in lib.pyWx.popup)
    FileSizeField (class in lib.formField)
    fill_background_color() (in module lib.imtools)
    FillImage (class in other.tamogen)
    FillImages (class in other.tamogen)
    filter_image_infos() (in module core.api)
    find_checks() (in module other.pep8)
    find_command() (in module lib.system)
    find_exe() (in module lib.system)
    (in module lib.windows.locate)
    (lib.formField.Form method)
    find_in() (in module lib.system)
    findClosestImageAndToneDiff() (other.tamogen.FillImages method)
    findFonts() (in module other.findsystem)
    findWindowById() (in module pyWx.gui)
    first_IFD() (other.EXIF.EXIF_header method)
    fit() (in module actions.fit)
    fit_color_in_palette() (in module lib.imtools)
    fix_EXIF() (in module core.pil)
    fix_filename() (in module lib.unicoding)
    fix_paths() (in module lib.pyWx.droplet)
    fix_python_path() (in module core.config)
    fix_quotes() (in module lib.system)
    fix_string() (lib.formField.ExifItpcField method)
    (lib.formField.Field method)
    (lib.formField.Form.ExifItpcField method)
    (lib.formField.Form.Field method)
    (lib.formField.Form.ImageTypeField method)
    (lib.formField.ImageTypeField method)
    flatten() (in module lib.imtools)
    FloatField (class in lib.formField)
    FloatSliderCtrl (class in lib.pyWx.popup)
    FloatSliderField (class in lib.formField)
    Floor (class in actions.blender)
    flush() (in module lib._pyexiv2)
    flush_log() (in module core.api)
    FolderCtrl (class in lib.pyWx.popup)
    FolderField (class in lib.formField)
    FolderFileBrowser (class in pyWx.wxGlade.dialogs)
    font_dictionary() (in module lib.fonts)
    font_names() (in module lib.fonts)
    FontFileCtrl (class in lib.pyWx.popup)
    FontFileField (class in lib.formField)
    ForcedBoxSizer (class in lib.pyWx.popup)
    Form (class in lib.formField)
    Form.AlignHorizontalField (class in lib.formField)
    Form.AlignVerticalField (class in lib.formField)
    Form.BooleanField (class in lib.formField)
    Form.CharField (class in lib.formField)
    Form.ChoiceField (class in lib.formField)
    Form.ColorField (class in lib.formField)
    Form.CommandLineField (class in lib.formField)
    Form.CsvFileField (class in lib.formField)
    Form.DictionaryReadFileField (class in lib.formField)
    Form.DpiField (class in lib.formField)
    Form.EmptyFileField (class in lib.formField)
    Form.ExifItpcField (class in lib.formField)
    Form.Field (class in lib.formField)
    Form.FileField (class in lib.formField)
    Form.FileNameField (class in lib.formField)
    Form.FileSizeField (class in lib.formField)
    Form.FloatField (class in lib.formField)
    Form.FloatSliderField (class in lib.formField)
    Form.FolderField (class in lib.formField)
    Form.FontFileField (class in lib.formField)
    Form.GeoReadFileField (class in lib.formField)
    Form.ImageDictionaryField (class in lib.formField)
    Form.ImageDictionaryReadFileField (class in lib.formField)
    Form.ImageEffectField (class in lib.formField)
    Form.ImageFilterField (class in lib.formField)
    Form.ImageModeField (class in lib.formField)
    Form.ImageReadFileField (class in lib.formField)
    Form.ImageReadTypeField (class in lib.formField)
    Form.ImageResampleAutoField (class in lib.formField)
    Form.ImageResampleField (class in lib.formField)
    Form.ImageTransposeField (class in lib.formField)
    Form.ImageTypeField (class in lib.formField)
    Form.ImageWriteTypeField (class in lib.formField)
    Form.IntegerField (class in lib.formField)
    Form.NotEmptyCharField (class in lib.formField)
    Form.OptionalTransposeField (class in lib.formField)
    Form.OrientationField (class in lib.formField)
    Form.PixelField (class in lib.formField)
    Form.PositiveFloatField (class in lib.formField)
    Form.PositiveIntegerField (class in lib.formField)
    Form.PositiveNonZeroFloatField (class in lib.formField)
    Form.PositiveNonZeroIntegerField (class in lib.formField)
    Form.RankSizeField (class in lib.formField)
    Form.ReadFileField (class in lib.formField)
    Form.SliderField (class in lib.formField)
    Form.TiffCompressionField (class in lib.formField)
    format_expr() (in module lib.safe)
    Frame (class in console.console)
    (class in lib.pyWx.droplet)
    (class in lib.pyWx.imageInspector)
    (class in lib.pyWx.inspectorTag)
    (class in lib.pyWx.shell)
    (class in pyWx.gui)
    (class in pyWx.wxGlade.frame)
    Frame.Browser (class in lib.pyWx.imageInspector)
    Frame.Progress (class in console.console)
    FrameReceiver (class in core.message)
    from_exif_string() (lib.metadataTest.DateTime method)

    G

    gcd() (in module other.EXIF)
    (in module other.surd)
    GCDC() (in module lib.pyWx.compatible)
    generate() (in module core.preview)
    generate_layer() (in module lib.imtools)
    GeoReadFileField (class in lib.formField)
    get() (in module lib.pyWx.screenshot)
    (lib.formField.Field method)
    (lib.formField.Form.Field method)
    (lib.formField.TestFieldMixin method)
    (lib.listData.DataDict method)
    (lib.listData.DataTuple method)
    Get() (lib.pyWx.popup.BooleanCtrl method)
    (lib.pyWx.popup.ComboCtrl method)
    get_action_list() (pyWx.gui.DropletMixin method)
    get_action_list_files() (pyWx.gui.DropletMixin method)
    get_alpha() (in module lib.imtools)
    get_as_string() (lib.formField.Field method)
    (lib.formField.Form.Field method)
    get_bottom() (other.tamogen.BoundingBox method)
    get_by_header() (lib.listData.DataDict method)
    get_cell_value() (lib.imageTable.Table method)
    get_command() (actions.blender.BlenderObject method)
    get_command_line() (actions.lossless_jpeg.Exiftran method)
    (actions.lossless_jpeg.Jpegtran method)
    get_command_line_args() (actions.lossless_jpeg.Exiftran method)
    (actions.lossless_jpeg.Jpegtran method)
    get_count() (in module other.pep8)
    get_date() (in module actions.time_shift)
    get_default_path() (pyWx.dialogs.ExecuteDialog method)
    get_dimensions() (in module actions.mirror)
    get_droplet_folder() (pyWx.gui.Frame method)
    get_error_statistics() (in module other.pep8)
    get_exif_orientation() (in module lib.imtools)
    get_exif_transposition() (in module lib.imtools)
    get_field() (lib.formField.Form method)
    get_field_labels() (lib.formField.Form method)
    get_field_size() (lib.formField.Form method)
    get_field_string() (lib.formField.Form method)
    get_fields() (lib.formField.Form method)
    get_filename() (core.pil.Photo method)
    get_filesize() (in module lib.thumbnail)
    get_flattened_image() (core.pil.Photo method)
    get_form() (lib.pyWx.treeEdit.TreeMixin method)
    get_form_field() (lib.pyWx.treeEdit.TreeMixin method)
    get_form_fields_visible() (lib.pyWx.treeEdit.TreeMixin method)
    get_form_item() (lib.pyWx.treeEdit.TreeMixin method)
    get_form_selected() (lib.pyWx.treeEdit.TreeMixin method)
    get_format() (actions.save.Action method)
    (in module lib.imtools)
    get_format_data() (in module lib.imtools)
    (in module lib.thumbnail)
    get_format_filename() (in module lib.imtools)
    get_freedesktop_filename() (in module lib.thumbnail)
    get_freedesktop_pnginfo() (in module lib.thumbnail)
    get_freedesktop_size_label() (in module lib.thumbnail)
    get_hash() (in module lib.thumbnail)
    get_headers() (lib.listData.DataDict method)
    (lib.listData.DataTuple method)
    get_icon() (in module pyWx.images)
    get_icon_filename() (pyWx.gui.DialogsMixin method)
    get_image_amount() (lib.imageTable.Table method)
    get_image_filename() (lib.imageTable.Table method)
    get_image_infos() (in module core.api)
    get_image_infos_from_folder() (in module core.api)
    get_image_label() (lib.imageTable.Table method)
    get_index() (in module lib.pyWx.treeEdit)
    get_info_libtiff() (in module lib.openImage)
    get_key_amount() (lib.imageTable.Table method)
    get_key_label() (lib.imageTable.Table method)
    get_last_form() (lib.pyWx.treeEdit.TreeMixin method)
    get_layer() (core.pil.Photo method)
    get_left() (other.tamogen.BoundingBox method)
    get_list_file() (lib.pyWx.folderFileBrowser.OpenMixin method)
    get_log() (core.pil.InfoPhoto method)
    (core.pil.Photo method)
    get_lossless_filename() (core.models.LosslessSaveMixin method)
    get_max_height() (in module pyWx.dialogs)
    get_metadata() (in module lib.gps)
    get_methods() (lib.system.MethodRegister method)
    get_mtime() (in module lib.thumbnail)
    get_name() (actions.blender.BlenderObject method)
    get_node_value() (in module lib.gps)
    get_palette() (in module lib.imtools)
    get_path() (core.models.Action.BlenderField method)
    (core.models.Action.BlenderRotationField method)
    (lib.windows.locate.Blender method)
    (lib.windows.locate.Inkscape method)
    (lib.windows.locate.RegistryApplication method)
    get_paths_and_settings() (in module core.api)
    get_photo() (in module core.api)
    (in module core.pil)
    get_popup_pos_offset_size() (lib.pyWx.treeEdit.TreeMixin method)
    get_quality() (in module lib.imtools)
    get_relevant() (actions.blender.Background method)
    (actions.blender.BlenderObject method)
    (actions.blender.Book method)
    (actions.blender.Box method)
    (actions.blender.Camera method)
    (actions.blender.Cd method)
    (actions.blender.Floor method)
    get_relevant_field_labels() (actions.background.Action method)
    (actions.blender.Action method)
    (actions.border.Action method)
    (actions.color_to_alpha.Action method)
    (actions.delete_tags.Action method)
    (actions.geek.Action method)
    (actions.grid.Action method)
    (actions.imagemagick.Action method)
    (actions.lossless_jpeg.Exiftran method)
    (actions.lossless_jpeg.Jpegtran method)
    (actions.lossless_jpeg.LossLessSaveUtilityMixin method)
    (actions.lossless_jpeg.UtilityMixin method)
    (actions.perspective.Action method)
    (actions.reflection.Action method)
    (actions.round.Action method)
    (actions.save.Action method)
    (actions.tamogen.Action method)
    (actions.text.Action method)
    (actions.time_shift.Action method)
    (core.models.CropMixin method)
    (core.models.OffsetMixin method)
    (core.models.StampMixin method)
    get_reverse_transposition() (in module lib.imtools)
    get_right() (other.tamogen.BoundingBox method)
    get_safe() (in module lib.formField)
    get_scales() (in module actions.mirror)
    get_section_size() (in module other.tamogen)
    get_selected_extensions() (pyWx.dialogs.ExecuteDialog method)
    get_selected_object() (actions.blender.BlenderObjects method)
    get_setting() (pyWx.gui.DialogsMixin method)
    get_size() (in module lib.imtools)
    (lib.formField.Form.PixelField method)
    (lib.formField.PixelField method)
    get_statistics() (in module other.pep8)
    get_text() (in module lib.gps)
    (in module lib.pyWx.clipboard)
    get_thumb() (core.pil.Photo method)
    get_time() (lib.imageTable.TableImage method)
    get_tone() (in module other.tamogen)
    get_top() (other.tamogen.BoundingBox method)
    get_tree_folder() (lib.pyWx.folderFileBrowser.OpenMixin method)
    get_unused_palette_indices() (in module lib.imtools)
    get_uri() (in module lib.thumbnail)
    get_used_palette_colors() (in module lib.imtools)
    get_used_palette_indices() (in module lib.imtools)
    get_vars() (in module core.api)
    get_vars_by_info() (in module lib.metadata)
    (lib.metadata.InfoExtract class method)
    get_warning_statistics() (in module other.pep8)
    get_window() (in module lib.pyWx.screenshot)
    get_xml_timez() (in module lib.gps)
    getAssociatedTopics() (other.pubsub.PublisherClass method)
    GetAttr() (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    (lib.pyWx.inspector.Grid.Table method)
    (lib.pyWx.inspector.Table method)
    GetBrowser() (lib.pyWx.tag.ContentMixin method)
    GetCellRowCol() (lib.pyWx.imageInspector.Grid method)
    GetChoices() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    GetColLabelValue() (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    GetColorAsString() (lib.pyWx.popup.ColorCtrl method)
    GetContent() (lib.pyWx.tag.Browser method)
    GetDefaultPath() (lib.pyWx.popup.DictionaryFileCtrl method)
    (lib.pyWx.popup.FontFileCtrl method)
    getDeliveryCount() (other.pubsub.PublisherClass method)
    GetEmpty() (lib.pyWx.tag.ContentMixin method)
    GetFilter() (lib.pyWx.tag.ContentMixin method)
    GetGrid() (lib.pyWx.imageInspector.Frame method)
    (lib.pyWx.inspector.Grid.Table method)
    (lib.pyWx.inspector.Table method)
    (lib.pyWx.inspectorTag.Frame method)
    GetIconSize() (lib.pyWx.vlist.Box method)
    GetItem() (lib.pyWx.vlist.Box method)
    (pyWx.dialogs.ActionListBox method)
    GetItemChildren() (lib.pyWx.treeDragDrop.Mixin method)
    GetItemFile() (lib.pyWx.imageFileBrowser.ListCtrl method)
    GetItemLabel() (lib.pyWx.imageFileBrowser.ListCtrl method)
    GetItemTags() (lib.pyWx.tag.Browser method)
    GetLabel() (lib.pyWx.imageFileBrowser.ListCtrl method)
    GetListBox() (pyWx.dialogs.ActionDialog method)
    GetListCtrl() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    getMessageCount() (other.pubsub.PublisherClass method)
    GetModal() (lib.pyWx.imageInspector.AddTagDialog method)
    GetNumberCols() (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    (lib.pyWx.inspector.Grid.Table method)
    (lib.pyWx.inspector.Table method)
    GetNumberRows() (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    (lib.pyWx.inspector.Grid.Table method)
    (lib.pyWx.inspector.Table method)
    GetPaintMessage() (lib.pyWx.imageInspector.Browser method)
    (lib.pyWx.imageInspector.Frame.Browser method)
    (lib.pyWx.paint.Mixin method)
    getPencilBitmap() (in module lib.pyWx.imageInspector)
    getPencilData() (in module lib.pyWx.imageInspector)
    getPencilImage() (in module lib.pyWx.imageInspector)
    GetPopupText() (other.pyWx.toasterbox.ToasterBoxWindow method)
    GetRootChild() (lib.pyWx.treeDragDrop.Mixin method)
    GetRowLabelValue() (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    getSmallDnArrowBitmap() (in module other.pyWx.TextCtrlAutoComplete)
    getSmallDnArrowData() (in module other.pyWx.TextCtrlAutoComplete)
    getSmallDnArrowImage() (in module other.pyWx.TextCtrlAutoComplete)
    getSmallUpArrowBitmap() (in module other.pyWx.TextCtrlAutoComplete)
    getSmallUpArrowData() (in module other.pyWx.TextCtrlAutoComplete)
    getSmallUpArrowImage() (in module other.pyWx.TextCtrlAutoComplete)
    GetSortImages() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    getStrAllTopics() (in module other.pubsub)
    GetStringSelection() (pyWx.dialogs.ActionDialog method)
    (pyWx.dialogs.ActionListBox method)
    GetTableAttr() (lib.pyWx.inspector.Grid method)
    GetTableValue() (lib.pyWx.inspector.Grid method)
    GetTag() (lib.pyWx.tag.ContentMixin method)
    GetTags() (lib.pyWx.tag.Browser method)
    GetTagSelection() (pyWx.dialogs.ActionDialog method)
    GetToasterBoxWindow() (other.pyWx.toasterbox.ToasterBox method)
    GetTopLevelParent() (lib.pyWx.imageInspector.OpenMixin method)
    GetTreeLabel() (lib.pyWx.folderFileBrowser.OpenMixin method)
    (lib.pyWx.folderFileBrowser.Panel method)
    (pyWx.wxGlade.dialogs.FolderFileBrowser method)
    GetValue() (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    (lib.pyWx.inspector.Grid.Table method)
    (lib.pyWx.inspector.Table method)
    (lib.pyWx.popup.ColorCtrl method)
    (lib.pyWx.popup.FloatSliderCtrl method)
    (lib.pyWx.popup.ImageDictionaryFileCtrl method)
    (lib.pyWx.popup.PixelCtrl method)
    (lib.pyWx.popup.SliderCtrl method)
    GetWildcard() (lib.pyWx.popup.FileCtrl method)
    (lib.pyWx.popup.LabelFileCtrl method)
    gradient_mask() (in module actions.reflection)
    gradient_vector() (in module actions.reflection)
    GradientColour() (lib.pyWx.vlist.Box method)
    grayscale() (in module actions.desaturate)
    Grid (class in lib.pyWx.imageInspector)
    (class in lib.pyWx.inspector)
    (class in lib.pyWx.inspectorTag)
    Grid.Table (class in lib.pyWx.imageInspector)
    (class in lib.pyWx.inspector)
    GridTag (class in lib.pyWx.imageInspector)

    H

    handle_gpx() (in module lib.gps)
    handle_trk() (in module lib.gps)
    handle_trkpt() (in module lib.gps)
    handle_trkseg() (in module lib.gps)
    has_alpha() (in module lib.imtools)
    has_forms() (lib.pyWx.treeEdit.TreeMixin method)
    has_transparency() (in module lib.imtools)
    HasActionList() (pyWx.dialogs.ImageInspectorGrid method)
    HTMLColorToPILColor() (in module lib.colors)
    HTMLColorToRGB() (in module lib.colors)
    HTMLColorToRGBA() (in module lib.colors)

    I

    IconMixin (class in pyWx.dialogs)
    identity_color() (in module lib.imtools)
    IFD_Tag (class in other.EXIF)
    ignore_code() (in module other.pep8)
    image() (in module lib.pyWx.graphics)
    image_to_dict() (in module core.pil)
    ImageDictionaryField (class in lib.formField)
    ImageDictionaryFileCtrl (class in lib.pyWx.popup)
    ImageDictionaryReadFileField (class in lib.formField)
    ImageEffectField (class in lib.formField)
    ImageFilterField (class in lib.formField)
    ImageInspectorApp (class in pyWx.gui)
    ImageInspectorBrowser (class in pyWx.dialogs)
    ImageInspectorFrame (class in pyWx.dialogs)
    ImageInspectorGrid (class in pyWx.dialogs)
    ImageModeField (class in lib.formField)
    ImageReadFileCtrl (class in lib.pyWx.popup)
    ImageReadFileField (class in lib.formField)
    ImageReadTypeField (class in lib.formField)
    ImageResampleAutoField (class in lib.formField)
    ImageResampleField (class in lib.formField)
    ImageTransposeField (class in lib.formField)
    ImageTreeDialog (class in pyWx.dialogs)
    (class in pyWx.wxGlade.dialogs)
    ImageTypeField (class in lib.formField)
    ImageWriteTypeField (class in lib.formField)
    import_actions() (in module core.api)
    import_form() (lib.pyWx.treeEdit.TreeMixin method)
    import_module() (in module core.api)
    import_settings() (pyWx.dialogs.ExecuteDialog method)
    imports_on_separate_lines() (in module other.pep8)
    indentation() (in module other.pep8)
    index() (lib.odict.odict method)
    Info (in module lib.metadata)
    info (in module lib.metadata)
    InfoEXIF (class in lib.metadata)
    InfoExif (class in lib.metadata)
    InfoExtract (class in lib.metadata)
    InfoFile (class in lib.metadata)
    InfoIptc (class in lib.metadata)
    InfoPexif (class in lib.metadata)
    InfoPhoto (class in core.pil)
    InfoPil (class in lib.metadata)
    InfoProvideError
    InfoTest (class in lib.metadata)
    InfoZexif (class in lib.metadata)
    init() (actions.autocontrast.Action static method)
    (actions.background.Action static method)
    (actions.blender.Action method)
    (actions.border.Action static method)
    (actions.brightness.Action static method)
    (actions.canvas.Action static method)
    (actions.color_to_alpha.Action static method)
    (actions.colorize.Action static method)
    (actions.common.Action static method)
    (actions.contour.Action static method)
    (actions.contrast.Action static method)
    (actions.convert_mode.Action static method)
    (actions.crop.Action static method)
    (actions.desaturate.Action static method)
    (actions.effect.Action static method)
    (actions.equalize.Action static method)
    (actions.fit.Action static method)
    (actions.geek.Action method)
    (actions.geotag.Action static method)
    (actions.grid.Action static method)
    (actions.highlight.Action static method)
    (actions.imagemagick.Action method)
    (actions.invert.Action static method)
    (actions.lossless_jpeg.Action method)
    (actions.mask.Action static method)
    (actions.maximum.Action static method)
    (actions.median.Action static method)
    (actions.minimum.Action static method)
    (actions.mirror.Action static method)
    (actions.offset.Action static method)
    (actions.perspective.Action static method)
    (actions.posterize.Action static method)
    (actions.rank.Action static method)
    (actions.reflection.Action static method)
    (actions.rotate.Action static method)
    (actions.round.Action static method)
    (actions.saturation.Action static method)
    (actions.save.Action static method)
    (actions.scale.Action static method)
    (actions.shadow.Action static method)
    (actions.sketch.Action static method)
    (actions.solarize.Action static method)
    (actions.tamogen.Action static method)
    (actions.text.Action static method)
    (actions.time_shift.Action static method)
    (actions.transpose.Action static method)
    (actions.warm_up.Action static method)
    (actions.watermark.Action static method)
    (core.models.Action static method)
    (in module actions.autocontrast)
    (in module actions.background)
    (in module actions.border)
    (in module actions.brightness)
    (in module actions.canvas)
    (in module actions.color_to_alpha)
    (in module actions.colorize)
    (in module actions.common)
    (in module actions.contour)
    (in module actions.contrast)
    (in module actions.convert_mode)
    (in module actions.crop)
    (in module actions.desaturate)
    (in module actions.effect)
    (in module actions.equalize)
    (in module actions.fit)
    (in module actions.geotag)
    (in module actions.grid)
    (in module actions.highlight)
    (in module actions.invert)
    (in module actions.mask)
    (in module actions.maximum)
    (in module actions.median)
    (in module actions.minimum)
    (in module actions.mirror)
    (in module actions.offset)
    (in module actions.perspective)
    (in module actions.posterize)
    (in module actions.rank)
    (in module actions.reflection)
    (in module actions.rotate)
    (in module actions.round)
    (in module actions.saturation)
    (in module actions.save)
    (in module actions.scale)
    (in module actions.shadow)
    (in module actions.sketch)
    (in module actions.solarize)
    (in module actions.tamogen)
    (in module actions.text)
    (in module actions.time_shift)
    (in module actions.transpose)
    (in module actions.warm_up)
    (in module actions.watermark)
    (in module core.api)
    (in module core.models)
    (in module lib.notify)
    (pyWx.gui.App method)
    (pyWx.gui.DropletMixin method)
    init_actions() (in module core.api)
    init_config_paths() (in module core.config)
    init_dictionary() (core.models.Action.BlenderField method)
    (core.models.Action.HighlightFileField method)
    (core.models.Action.MaskFileField method)
    (core.models.Action.PerspectiveField method)
    (core.models.Action.WatermarkFileField method)
    (lib.formField.DictionaryReadFileField method)
    (lib.formField.FontFileField method)
    (lib.formField.Form.DictionaryReadFileField method)
    (lib.formField.Form.FontFileField method)
    init_error_log_file() (in module core.api)
    InitData() (lib.pyWx.folderFileBrowser.ListCtrl method)
    initialize() (lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl method)
    Inkscape (class in lib.windows.locate)
    input_dir() (in module other.pep8)
    input_file() (in module other.pep8)
    InputCtrl (lib.pyWx.popup.AutoCompleteDictionaryFileCtrl attribute)
    InsertTagInActionList() (pyWx.dialogs.ImageInspectorGrid method)
    inspect() (in module pyWx.gui)
    (pyWx.dialogs.ImageTreeDialog method)
    inspect_list_item() (pyWx.dialogs.ImageTreeDialog method)
    inspect_tree_item() (pyWx.dialogs.ImageTreeDialog method)
    install() (in module linux.droplet)
    install_frame() (in module pyWx.plugin)
    install_menu_item() (in module linux.droplet)
    (pyWx.gui.Frame method)
    IntegerField (class in lib.formField)
    interface() (actions.autocontrast.Action method)
    (actions.background.Action method)
    (actions.blender.Action method)
    (actions.blender.Background method)
    (actions.blender.BlenderObject method)
    (actions.blender.BlenderObjects method)
    (actions.blender.Book method)
    (actions.blender.Box method)
    (actions.blender.Camera method)
    (actions.blender.Cd method)
    (actions.blender.Floor method)
    (actions.border.Action method)
    (actions.brightness.Action method)
    (actions.canvas.Action method)
    (actions.color_to_alpha.Action method)
    (actions.colorize.Action method)
    (actions.common.Action method)
    (actions.contour.Action method)
    (actions.contrast.Action method)
    (actions.convert_mode.Action method)
    (actions.copy.Action method)
    (actions.delete_tags.Action method)
    (actions.desaturate.Action method)
    (actions.effect.Action method)
    (actions.equalize.Action method)
    (actions.fit.Action method)
    (actions.geek.Action method)
    (actions.geotag.Action method)
    (actions.grid.Action method)
    (actions.highlight.Action method)
    (actions.imagemagick.Action method)
    (actions.invert.Action method)
    (actions.lossless_jpeg.Exiftran method)
    (actions.lossless_jpeg.Jpegtran method)
    (actions.lossless_jpeg.UtilityMixin method)
    (actions.mask.Action method)
    (actions.maximum.Action method)
    (actions.median.Action method)
    (actions.minimum.Action method)
    (actions.mirror.Action method)
    (actions.offset.Action method)
    (actions.perspective.Action method)
    (actions.posterize.Action method)
    (actions.rank.Action method)
    (actions.reflection.Action method)
    (actions.rename.Action method)
    (actions.rename_tag.Action method)
    (actions.rotate.Action method)
    (actions.round.Action method)
    (actions.saturation.Action method)
    (actions.save.Action method)
    (actions.scale.Action method)
    (actions.shadow.Action method)
    (actions.sketch.Action method)
    (actions.solarize.Action method)
    (actions.tamogen.Action method)
    (actions.text.Action method)
    (actions.time_shift.Action method)
    (actions.transpose.Action method)
    (actions.warm_up.Action method)
    (actions.write_tag.Action method)
    (core.models.CropMixin method)
    (core.models.LosslessSaveMixin method)
    (core.models.OffsetMixin method)
    (core.models.StampMixin method)
    (lib.formField.Form method)
    interpolate() (lib.formField.Field method)
    (lib.formField.Form.Field method)
    InvalidWriteFormatError
    invert() (in module actions.invert)
    is_cell_deletable() (lib.imageTable.Table method)
    is_cell_editable() (lib.imageTable.Table method)
    is_cell_empty() (lib.imageTable.Table method)
    is_dirty() (core.pil.InfoPhoto method)
    is_done() (core.models.Action method)
    (core.models.LosslessSaveMixin method)
    is_done_info() (actions.copy.Action method)
    (actions.rename.Action method)
    (actions.save.Action method)
    is_editable_tag() (in module lib.metadata)
    is_enabled() (lib.formField.Form method)
    is_field() (lib.pyWx.treeEdit.TreeMixin method)
    is_field_selected() (lib.pyWx.treeEdit.TreeMixin method)
    is_field_true() (lib.formField.Form method)
    is_file() (in module lib.system)
    is_form() (lib.pyWx.treeEdit.TreeMixin method)
    is_form_enabled() (lib.pyWx.treeEdit.TreeMixin method)
    is_form_selected() (lib.pyWx.treeEdit.TreeMixin method)
    is_image_editable() (lib.imageTable.Table method)
    is_key_editable() (lib.imageTable.Table method)
    is_key_empty() (lib.imageTable.Table method)
    is_modified() (lib.imageTable.TableImage method)
    is_needed() (in module lib.thumbnail)
    is_overwrite_existing_images_forced() (actions.copy.Action method)
    (actions.geek.Action method)
    (actions.rename.Action method)
    (actions.save.Action method)
    (core.models.LosslessSaveMixin method)
    is_protected_actionlist() (pyWx.gui.Frame method)
    is_readable_format() (in module lib._pyexiv2)
    is_save_not_ok() (pyWx.gui.Frame method)
    is_string() (in module lib.metadataTest)
    is_writable_format() (in module lib._pyexiv2)
    is_writable_format_exif() (in module lib._pyexiv2)
    is_writable_format_iptc() (in module lib._pyexiv2)
    is_writable_tag() (in module lib.metadata)
    is_writeable_not_exif_tag() (in module lib.metadata)
    is_www_file() (in module lib.system)
    IsEditableCell() (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    IsEmpty() (lib.pyWx.imageInspector.GridTag method)
    (lib.pyWx.inspectorTag.Grid method)
    (lib.pyWx.tag.Browser method)
    (lib.pyWx.tag.TestContentCtrl method)
    (lib.pyWx.vlistTag.TestContentBox method)
    (pyWx.dialogs.ActionListBox method)
    (pyWx.gui.Frame method)
    IsEmptyCell() (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    (lib.pyWx.inspector.Grid.Table method)
    (lib.pyWx.inspector.Table method)
    iskeyword() (in module other.pep8)
    isSubscribed() (other.pubsub.PublisherClass method)
    IsTableEmptyCell() (lib.pyWx.inspector.Grid method)
    isValid() (other.pubsub.PublisherClass method)
    items() (lib.odict.odict method)

    J

    Jpegtran (class in actions.lossless_jpeg)

    K

    keys() (lib.odict.odict method)

    L

    LabelFileCtrl (class in lib.pyWx.popup)
    Layer (class in core.pil)
    Lcd (class in actions.blender)
    left (other.tamogen.BoundingBox attribute)
    lib (module)
    lib._pyexiv2 (module)
    lib.colors (module)
    lib.desktop (module)
    lib.events (module)
    lib.fonts (module)
    lib.formField (module)
    lib.gettextFix (module)
    lib.gps (module)
    lib.imageTable (module)
    lib.imtools (module)
    lib.linux (module)
    lib.linux.desktop (module)
    lib.linux.nautilusExtension (module)
    lib.listData (module)
    lib.metadata (module)
    lib.metadataTest (module)
    lib.notify (module)
    lib.odict (module)
    lib.openImage (module)
    lib.pyWx (module)
    lib.pyWx.about (module)
    lib.pyWx.autoCompleteCtrls (module)
    lib.pyWx.clipboard (module)
    lib.pyWx.compatible (module)
    lib.pyWx.dialogsInspector (module)
    lib.pyWx.droplet (module)
    lib.pyWx.folderFileBrowser (module)
    lib.pyWx.graphics (module)
    lib.pyWx.imageFileBrowser (module)
    lib.pyWx.imageInspector (module)
    lib.pyWx.inspector (module)
    lib.pyWx.inspectorTag (module)
    lib.pyWx.paint (module)
    lib.pyWx.popup (module)
    lib.pyWx.screenshot (module)
    lib.pyWx.shell (module)
    lib.pyWx.tag (module)
    lib.pyWx.treeDragDrop (module)
    lib.pyWx.treeEdit (module)
    lib.pyWx.vlist (module)
    lib.pyWx.vlistTag (module)
    lib.pyWx.wildcard (module)
    lib.pyWx.wxcheck (module)
    lib.pyWx.wxPil (module)
    lib.reverse_translation (module)
    lib.safe (module)
    lib.system (module)
    lib.thumbnail (module)
    lib.unicoding (module)
    lib.windows (module)
    lib.windows.locate (module)
    linux (module)
    linux.droplet (module)
    linux.thunar (module)
    linuxFontDirectories() (in module other.findsystem)
    list_IFDs() (other.EXIF.EXIF_header method)
    ListCtrl (class in lib.pyWx.folderFileBrowser)
    (class in lib.pyWx.imageFileBrowser)
    load() (lib.formField.Form method)
    load_actionlist_data() (pyWx.gui.DialogsMixin method)
    load_locale() (in module core.config)
    load_locale_only() (in module core.config)
    locate_files() (in module lib.fonts)
    log() (core.pil.InfoPhoto method)
    (core.pil.Photo method)
    log_error() (in module core.api)
    LosslessSaveMixin (class in core.models)
    LossLessSaveUtilityMixin (class in actions.lossless_jpeg)

    M

    m() (in module lib.gps)
    MacReopenApp() (pyWx.gui.App method)
    main() (in module console.console)
    (in module lib.metadataTest)
    (in module other.pyWx.img2py)
    (in module pyWx.gui)
    make_grid() (in module actions.grid)
    make_string() (in module other.EXIF)
    make_string_uc() (in module other.EXIF)
    match() (lib.pyWx.autoCompleteCtrls.AutoCompleteIconCtrl method)
    (lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl method)
    (other.pyWx.TextCtrlAutoComplete.test method)
    maximum() (in module actions.maximum)
    maximum_line_length() (in module other.pep8)
    median() (in module actions.median)
    menu_action() (in module linux.droplet)
    menu_file_export_droplet() (pyWx.gui.Frame method)
    merge() (in module lib.fonts)
    Message (class in other.pubsub)
    message() (in module other.pep8)
    MethodRegister (class in lib.system)
    minimum() (in module actions.minimum)
    missing_newline() (in module other.pep8)
    missing_whitespace() (in module other.pep8)
    missing_whitespace_around_operator() (in module other.pep8)
    Mixin (class in lib.pyWx.droplet)
    (class in lib.pyWx.paint)
    (class in lib.pyWx.treeDragDrop)
    mosaic() (in module actions.tamogen)
    (in module other.tamogen)
    move() (lib.odict.odict method)
    move_down() (other.tamogen.BoundingBox method)
    (other.tamogen.BoundingBoxContainer method)
    move_form_selected_down() (lib.pyWx.treeEdit.TreeMixin method)
    move_form_selected_up() (lib.pyWx.treeEdit.TreeMixin method)
    move_right() (other.tamogen.BoundingBox method)
    (other.tamogen.BoundingBoxContainer method)
    MoveAbove() (other.pyWx.toasterbox.ToasterBox method)
    MoveChildDown() (lib.pyWx.treeDragDrop.Mixin method)
    MoveChildUp() (lib.pyWx.treeDragDrop.Mixin method)
    mute_string() (in module other.pep8)
    myListCtrl (class in other.pyWx.TextCtrlAutoComplete)

    N

    n2s() (other.EXIF.EXIF_header method)
    name (actions.blender.BlenderObject attribute)
    name() (in module lib.fonts)
    nautilus_exists() (in module lib.linux.nautilusExtension)
    needs_orientation() (lib.metadata.InfoPil class method)
    needs_update() (in module lib.thumbnail)
    negative() (in module core.models)
    next_IFD() (other.EXIF.EXIF_header method)
    nikon_ev_bias() (in module other.EXIF)
    NotEmptyCharField (class in lib.formField)
    Notify() (other.pyWx.toasterbox.ToasterBox method)
    NotifyTimer() (other.pyWx.toasterbox.ToasterBoxWindow method)
    NotImplementedError
    NotWritableTagError
    now() (in module lib.metadataTest)

    O

    odict (class in lib.odict)
    offset() (in module actions.offset)
    OffsetMixin (class in core.models)
    olympus_decode_tag() (other.EXIF.EXIF_header method)
    olympus_special_mode() (in module other.EXIF)
    on_abort() (pyWx.dialogs.ErrorDialog method)
    (pyWx.wxGlade.dialogs.ErrorDialog method)
    on_browse() (pyWx.dialogs.ExecuteDialog method)
    (pyWx.wxGlade.dialogs.ExecuteDialog method)
    on_button_log() (pyWx.dialogs.StatusDialog method)
    (pyWx.wxGlade.dialogs.StatusDialog method)
    on_button_report() (pyWx.dialogs.StatusDialog method)
    (pyWx.wxGlade.dialogs.StatusDialog method)
    on_close() (lib.pyWx.shell.Frame method)
    (pyWx.gui.Frame method)
    on_context_menu() (pyWx.gui.Frame method)
    on_default() (pyWx.dialogs.ExecuteDialog method)
    (pyWx.wxGlade.dialogs.ExecuteDialog method)
    on_description_text() (pyWx.gui.Frame method)
    on_details() (pyWx.wxGlade.dialogs.ErrorDialog method)
    on_drop() (pyWx.gui.Frame method)
    on_filter_text() (lib.pyWx.folderFileBrowser.Panel method)
    on_help() (pyWx.dialogs.WritePluginDialog method)
    (pyWx.wxGlade.dialogs.WritePluginDialog method)
    on_ignore() (pyWx.dialogs.ErrorDialog method)
    (pyWx.wxGlade.dialogs.ErrorDialog method)
    on_item_activated() (lib.pyWx.treeEdit.TreeMixin method)
    on_item_expanding() (lib.pyWx.treeEdit.TreeMixin method)
    on_left_down() (lib.pyWx.treeEdit.TreeMixin method)
    on_list_item_activated() (lib.pyWx.folderFileBrowser.OpenMixin method)
    on_list_item_right_click() (pyWx.dialogs.ImageTreeDialog method)
    on_list_item_selected() (lib.pyWx.folderFileBrowser.PreviewMixin method)
    on_menu_collapse_automatic() (pyWx.wxGlade.frame.Frame method)
    on_menu_edit_add() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_edit_disable() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_edit_down() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_edit_enable() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_edit_modify() (pyWx.wxGlade.frame.Frame method)
    on_menu_edit_remove() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_edit_up() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_file_export_actionlist_to_clipboard() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_file_export_droplet_actionlist() (in module linux.droplet)
    on_menu_file_export_droplet_actionlist_to_clipboard() (pyWx.wxGlade.frame.Frame method)
    on_menu_file_export_droplet_inspector() (in module linux.droplet)
    on_menu_file_export_droplet_inspector_to_clipboard() (pyWx.wxGlade.frame.Frame method)
    on_menu_file_export_droplet_recent() (in module linux.droplet)
    on_menu_file_export_droplet_recent_to_clipboard() (pyWx.wxGlade.frame.Frame method)
    on_menu_file_export_inspector_to_clipboard() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_file_export_nautilus_actionlist() (in module linux.droplet)
    on_menu_file_export_nautilus_inspector() (in module linux.droplet)
    on_menu_file_export_nautilus_recent() (in module linux.droplet)
    on_menu_file_export_recent_to_clipboard() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_file_export_thunar_actionlist() (in module linux.droplet)
    on_menu_file_export_thunar_inspector() (in module linux.droplet)
    on_menu_file_export_thunar_recent() (in module linux.droplet)
    on_menu_file_history() (pyWx.gui.Frame method)
    on_menu_file_new() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_file_open() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_file_open_library() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_file_quit() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_file_save() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_file_save_as() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_help_about() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_help_bug() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_help_documentation() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_help_forum() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_help_plugin() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_help_translate() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_help_website() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_tool_enter() (pyWx.gui.Frame method)
    on_menu_tools_browse_library_phatch() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_tools_browse_library_user() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_tools_browse_system_library() (pyWx.wxGlade.frame.Frame method)
    on_menu_tools_browse_user_library() (pyWx.wxGlade.frame.Frame method)
    on_menu_tools_execute() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_tools_image_inspector() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_tools_python_shell() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_tools_safe() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_tools_show_log() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_tools_show_report() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_tools_update_fonts() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_view_collapse_all() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_view_collapse_automatic() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_view_description() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_view_droplet() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_menu_view_expand_all() (pyWx.gui.Frame method)
    (pyWx.wxGlade.frame.Frame method)
    on_sel_changed() (lib.pyWx.treeEdit.TreeMixin method)
    on_sel_changing() (lib.pyWx.treeEdit.TreeMixin method)
    on_select() (lib.pyWx.treeEdit.TreeMixin method)
    on_show_droplet() (pyWx.gui.Frame method)
    on_size() (pyWx.gui.Frame method)
    on_skip() (pyWx.dialogs.ErrorDialog method)
    (pyWx.wxGlade.dialogs.ErrorDialog method)
    on_source() (pyWx.dialogs.ExecuteDialog method)
    (pyWx.wxGlade.dialogs.ExecuteDialog method)
    on_template() (pyWx.dialogs.WritePluginDialog method)
    (pyWx.wxGlade.dialogs.WritePluginDialog method)
    on_tree_end_drag() (pyWx.gui.Frame method)
    on_tree_item_activated() (lib.pyWx.folderFileBrowser.OpenMixin method)
    on_tree_item_right_click() (pyWx.dialogs.ImageTreeDialog method)
    on_tree_sel_changed() (lib.pyWx.folderFileBrowser.Panel method)
    onActivate() (lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl method)
    OnActivate() (lib.pyWx.imageInspector.Frame method)
    (pyWx.dialogs.ActionDialog method)
    OnActivated() (lib.pyWx.imageFileBrowser.Dialog method)
    OnAdd() (lib.pyWx.dialogsInspector.AddTagDialog method)
    (lib.pyWx.imageInspector.AddTagDialog method)
    OnBeginDrag() (lib.pyWx.treeDragDrop.Mixin method)
    OnBrowse() (lib.pyWx.popup.FileCtrl method)
    (lib.pyWx.popup.FolderCtrl method)
    onBtChangeChoice() (other.pyWx.TextCtrlAutoComplete.test method)
    onBtDynamicChoices() (other.pyWx.TextCtrlAutoComplete.test method)
    onBtMultiChoice() (other.pyWx.TextCtrlAutoComplete.test method)
    onBtStartChoices() (other.pyWx.TextCtrlAutoComplete.test method)
    OnCancel() (lib.pyWx.compatible.SearchCtrl method)
    OnChange() (lib.pyWx.popup.ImageDictionaryFileCtrl method)
    onClickToggleDown() (lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl method)
    (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    onClickToggleUp() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    OnClose() (lib.pyWx.about.CreditsDialog method)
    (lib.pyWx.about.Dialog method)
    (lib.pyWx.about.wxgAboutDialog method)
    (lib.pyWx.about.wxgCreditsDialog method)
    (lib.pyWx.inspectorTag.Frame method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    OnColLabelPaint() (lib.pyWx.imageInspector.Grid method)
    OnCompareItems() (lib.pyWx.treeDragDrop.Mixin method)
    (pyWx.wxGlade.frame.Tree method)
    OnContextMenu() (pyWx.dialogs.ActionListBox method)
    onControlChanged() (lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl method)
    (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    OnCornerLabelPaint() (lib.pyWx.imageInspector.Grid method)
    OnCredits() (lib.pyWx.about.Dialog method)
    (lib.pyWx.about.wxgAboutDialog method)
    OnDoubleClick() (lib.pyWx.droplet.Frame method)
    (lib.pyWx.vlistTag.Dialog method)
    OnDrawBackground() (lib.pyWx.vlist.Box method)
    OnDrawItem() (lib.pyWx.vlist.Box method)
    OnDrawSeparator() (lib.pyWx.vlist.Box method)
    OnDrop() (lib.pyWx.imageInspector.Grid method)
    OnDropFiles() (lib.pyWx.droplet.FileDropTarget method)
    OnEndDrag() (lib.pyWx.treeDragDrop.Mixin method)
    onEnteredText() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    OnEraseBackground() (lib.pyWx.paint.Mixin method)
    OnFilter() (lib.pyWx.tag.Browser method)
    OnGetItemAttr() (lib.pyWx.folderFileBrowser.ListCtrl method)
    OnGetItemImage() (lib.pyWx.folderFileBrowser.ListCtrl method)
    OnGetItemText() (lib.pyWx.folderFileBrowser.ListCtrl method)
    OnGridCellChange() (lib.pyWx.imageInspector.Grid method)
    OnGridCellLeftClick() (lib.pyWx.imageInspector.Grid method)
    OnGridCellRightClicked() (lib.pyWx.imageInspector.Grid method)
    OnGridColLabelRightClicked() (lib.pyWx.imageInspector.Grid method)
    OnGridEditorHidden() (lib.pyWx.imageInspector.Grid method)
    OnGridLabelLeftDclicked() (lib.pyWx.imageInspector.Grid method)
    OnGridLabelRightClicked() (lib.pyWx.imageInspector.Grid method)
    OnGridRowLabelRightClicked() (lib.pyWx.imageInspector.Grid method)
    OnIdle() (lib.pyWx.shell.Frame method)
    OnInit() (pyWx.gui.App method)
    (pyWx.gui.DropletMixin method)
    (pyWx.gui.ImageInspectorApp method)
    (pyWx.wxGlade.frame.App method)
    OnItemSelected() (lib.pyWx.imageFileBrowser.Dialog method)
    OnKeyDown() (lib.pyWx.imageInspector.Grid method)
    onKeyDown() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    OnLeftDown() (lib.pyWx.droplet.Frame method)
    OnLeftUp() (lib.pyWx.droplet.Frame method)
    OnLicense() (lib.pyWx.about.Dialog method)
    (lib.pyWx.about.wxgAboutDialog method)
    onListClick() (lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl method)
    (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    onListColClick() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    onListDClick() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    onListItemSelected() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    only_actions_with_tag() (pyWx.gui.Frame method)
    OnMeasureItem() (lib.pyWx.vlist.Box method)
    OnMouseDown() (other.pyWx.toasterbox.ToasterBoxWindow method)
    OnMouseMove() (lib.pyWx.droplet.Frame method)
    OnOk() (lib.pyWx.vlistTag.Dialog method)
    OnOpen() (lib.pyWx.imageInspector.OpenMixin method)
    OnOpenUrl() (lib.pyWx.imageInspector.OpenMixin method)
    OnPaint() (lib.pyWx.droplet.Frame method)
    OnRightDown() (lib.pyWx.inspector.Grid method)
    OnRightUp() (lib.pyWx.droplet.Frame method)
    OnRowLabelPaint() (lib.pyWx.imageInspector.Grid method)
    OnScroll() (lib.pyWx.popup.FloatSliderCtrl method)
    (lib.pyWx.popup.SliderCtrl method)
    OnSelectColor() (lib.pyWx.popup.ColorCtrl method)
    OnShow() (lib.pyWx.droplet.Frame method)
    OnSize() (lib.pyWx.tag.Browser method)
    OnSpin() (lib.pyWx.popup.FloatSliderCtrl method)
    (lib.pyWx.popup.SliderCtrl method)
    OnTag() (lib.pyWx.tag.Browser method)
    OnTagText() (lib.pyWx.dialogsInspector.AddTagDialog method)
    (lib.pyWx.imageInspector.AddTagDialog method)
    OnText() (lib.pyWx.imageFileBrowser.Dialog method)
    OnViewSource() (pyWx.dialogs.ActionListBox method)
    open() (core.pil.Layer method)
    (in module lib.openImage)
    (in module lib.thumbnail)
    (lib.metadata.InfoExtract method)
    open_actionlist() (in module core.api)
    open_dcraw() (in module lib.openImage)
    open_folder() (lib.imageTable.Table method)
    open_image() (in module lib.imtools)
    (lib.imageTable.Table method)
    open_image_data() (in module lib.imtools)
    open_image_exif() (in module lib.imtools)
    (in module lib.openImage)
    open_image_exif_thumb() (in module lib.openImage)
    open_image_with_command() (in module lib.openImage)
    open_image_with_pil() (in module lib.openImage)
    open_image_without_pil() (in module lib.openImage)
    open_imagemagick() (in module lib.openImage)
    open_images() (lib.imageTable.Table method)
    open_inkscape() (in module lib.openImage)
    open_libtiff() (in module lib.openImage)
    open_thumb() (in module lib.openImage)
    open_xcf() (in module lib.openImage)
    OpenImage() (lib.pyWx.imageInspector.Frame method)
    (lib.pyWx.imageInspector.Grid method)
    (lib.pyWx.imageInspector.OpenMixin method)
    OpenImages() (lib.pyWx.imageInspector.Frame method)
    (lib.pyWx.imageInspector.Grid method)
    (lib.pyWx.imageInspector.OpenMixin method)
    OpenMixin (class in lib.pyWx.folderFileBrowser)
    (class in lib.pyWx.imageInspector)
    OptionalTransposeField (class in lib.formField)
    OrientationField (class in lib.formField)
    other (module)
    other.EXIF (module)
    other.findsystem (module)
    other.pep8 (module)
    other.pubsub (module)
    other.pyWx (module)
    other.pyWx.img2img (module)
    other.pyWx.img2py (module)
    other.pyWx.TextCtrlAutoComplete (module)
    other.pyWx.toasterbox (module)
    other.relativedelta (module)
    other.surd (module)
    other.tamogen (module)

    P

    Panel (class in lib.pyWx.folderFileBrowser)
    paste() (in module lib.imtools)
    PathError
    Paths (class in core.config)
    perspective() (in module actions.perspective)
    Photo (class in core.pil)
    pil() (actions.autocontrast.Action static method)
    (actions.background.Action static method)
    (actions.border.Action static method)
    (actions.brightness.Action static method)
    (actions.canvas.Action static method)
    (actions.color_to_alpha.Action static method)
    (actions.colorize.Action static method)
    (actions.common.Action static method)
    (actions.contour.Action static method)
    (actions.contrast.Action static method)
    (actions.crop.Action static method)
    (actions.desaturate.Action static method)
    (actions.effect.Action static method)
    (actions.equalize.Action static method)
    (actions.fit.Action static method)
    (actions.grid.Action static method)
    (actions.highlight.Action static method)
    (actions.invert.Action static method)
    (actions.mask.Action static method)
    (actions.maximum.Action static method)
    (actions.median.Action static method)
    (actions.minimum.Action static method)
    (actions.mirror.Action static method)
    (actions.offset.Action static method)
    (actions.perspective.Action static method)
    (actions.posterize.Action static method)
    (actions.rank.Action static method)
    (actions.reflection.Action static method)
    (actions.rotate.Action static method)
    (actions.round.Action static method)
    (actions.saturation.Action static method)
    (actions.shadow.Action static method)
    (actions.sketch.Action static method)
    (actions.solarize.Action static method)
    (actions.tamogen.Action static method)
    (actions.text.Action static method)
    (actions.transpose.Action static method)
    (actions.warm_up.Action static method)
    (actions.watermark.Action static method)
    pil_wxBitmap() (in module lib.pyWx.wxPil)
    pil_wxImage() (in module lib.pyWx.wxPil)
    PILColorToHTMLColor() (in module lib.colors)
    PILColorToRGB() (in module lib.colors)
    PilConstantMixin (class in lib.formField)
    PixelCtrl (class in lib.pyWx.popup)
    PixelField (class in lib.formField)
    Play() (other.pyWx.toasterbox.ToasterBox method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    popitem() (lib.odict.odict method)
    PositiveFloatField (class in lib.formField)
    PositiveIntegerField (class in lib.formField)
    PositiveNonZeroFloatField (class in lib.formField)
    PositiveNonZeroIntegerField (class in lib.formField)
    posterize() (in module actions.posterize)
    preserve_proportions() (in module actions.scale)
    PreviewMixin (class in lib.pyWx.folderFileBrowser)
    print_benchmark() (in module other.pep8)
    print_statistics() (in module other.pep8)
    process_error() (in module core.api)
    process_file() (in module other.EXIF)
    process_options() (in module other.pep8)
    ProcessKey() (lib.pyWx.imageInspector.Grid method)
    (pyWx.dialogs.ImageInspectorGrid method)
    Progress (class in console.console)
    ProgressDialog (class in pyWx.dialogs)
    ProgressReceiver (class in core.message)
    Provider (class in pyWx.nuovext)
    provides() (lib.metadata.InfoExtract method)
    (lib.metadata.InfoPexif class method)
    (lib.metadata.InfoTest class method)
    (lib.metadata.InfoZexif class method)
    PublisherClass (class in other.pubsub)
    put_alpha() (in module lib.imtools)
    put_border() (in module actions.contour)
    put_contour() (in module actions.contour)
    put_highlight() (in module actions.highlight)
    put_mask() (in module actions.mask)
    put_palette() (in module lib.imtools)
    python_3000_backticks() (in module other.pep8)
    python_3000_has_key() (in module other.pep8)
    python_3000_not_equal() (in module other.pep8)
    python_3000_raise_comma() (in module other.pep8)
    pyWx (module)
    pyWx.dialogs (module)
    pyWx.gui (module)
    pyWx.images (module)
    pyWx.nuovext (module)
    pyWx.plugin (module)
    pyWx.wxGlade (module)
    pyWx.wxGlade.dialogs (module)
    pyWx.wxGlade.frame (module)

    R

    r() (in module lib.gps)
    raise_error_file() (lib.formField.CommandLineField method)
    (lib.formField.Form.CommandLineField method)
    raise_error_not_found() (lib.formField.CommandLineField method)
    (lib.formField.Form.CommandLineField method)
    raise_error_out_max() (lib.formField.CommandLineField method)
    (lib.formField.Form.CommandLineField method)
    RankSizeField (class in lib.formField)
    Ratio (class in other.EXIF)
    Rational (class in lib.metadataTest)
    read_gpx() (in module lib.gps)
    read_thumbdata() (in module lib._pyexiv2)
    ReadFileField (class in lib.formField)
    readline() (other.pep8.Checker method)
    readline_check_physical() (other.pep8.Checker method)
    ReadOnlyDict (class in lib.odict)
    ReceiveListener (class in lib.events)
    Receiver (class in lib.events)
    reduce() (other.EXIF.Ratio method)
    reduce_opacity() (in module lib.imtools)
    reflect() (in module actions.reflection)
    RefreshAll() (lib.pyWx.imageInspector.Grid method)
    (lib.pyWx.inspector.Grid method)
    (lib.pyWx.vlist.Box method)
    RefreshAllItems() (lib.pyWx.folderFileBrowser.ListCtrl method)
    RefreshList() (pyWx.dialogs.ActionListBox method)
    register() (in module lib.notify)
    (lib.system.MethodRegister method)
    RegisterStyle() (lib.pyWx.popup.ComboCtrl method)
    RegistryApplication (class in lib.windows.locate)
    relativedelta (class in other.relativedelta)
    remove_alpha() (in module lib.imtools)
    remove_selected_form() (lib.pyWx.treeEdit.TreeMixin method)
    RenameRowLabelValue() (lib.pyWx.imageInspector.Grid method)
    report_error() (other.pep8.Checker method)
    rescale() (in module lib.pyWx.treeEdit)
    reset_geometry() (lib.metadata.InfoPil method)
    reset_y() (other.tamogen.BoundingBox method)
    (other.tamogen.BoundingBoxContainer method)
    resize() (core.pil.Photo method)
    resize_popup() (lib.pyWx.treeEdit.TreeMixin method)
    RGBToHTMLColor() (in module lib.colors)
    RGBToPILColor() (in module lib.colors)
    right (other.tamogen.BoundingBox attribute)
    rnk() (in module actions.rank)
    rotate() (in module actions.rotate)
    rotate_exif() (core.pil.Photo method)
    rotation_title_parser() (in module lib.formField)
    round_image() (in module actions.round)
    run_check() (other.pep8.Checker method)

    S

    s() (in module lib.gps)
    s2n() (other.EXIF.EXIF_header method)
    s2n_intel() (in module other.EXIF)
    s2n_motorola() (in module other.EXIF)
    safe_globals() (in module core.safeGlobals)
    safe_mode() (core.pil.Photo method)
    saturation() (in module actions.saturation)
    save() (core.pil.InfoPhoto method)
    (core.pil.Photo method)
    (in module lib.imtools)
    (in module lib.pyWx.screenshot)
    save_actionlist() (in module core.api)
    save_check_mode() (in module lib.imtools)
    save_libtiff() (in module lib.openImage)
    save_safely() (in module lib.imtools)
    save_to_cache() (in module lib.thumbnail)
    save_window() (in module lib.pyWx.screenshot)
    scan_infos() (lib.metadata.InfoExtract class method)
    ScrollDown() (other.pyWx.toasterbox.ToasterBoxWindow method)
    ScrollUp() (other.pyWx.toasterbox.ToasterBoxWindow method)
    search() (in module lib.gps)
    SearchCtrl (class in lib.pyWx.compatible)
    Select() (lib.pyWx.imageFileBrowser.Dialog method)
    (lib.pyWx.imageFileBrowser.ListCtrl method)
    selectCallback() (other.pyWx.TextCtrlAutoComplete.test method)
    selftest() (in module other.pep8)
    send (in module lib.events)
    send() (in module lib.notify)
    Sender (class in lib.events)
    SendListener (class in lib.events)
    sendMessage() (other.pubsub.PublisherClass method)
    set() (core.pil.InfoPhoto method)
    (lib.formField.Field method)
    (lib.formField.Form.Field method)
    (lib.metadata.InfoExtract method)
    set_args() (actions.blender.Background method)
    (actions.blender.BlenderObject method)
    (actions.blender.Book method)
    (actions.blender.Camera method)
    set_as_string() (lib.formField.Field method)
    (lib.formField.Form.Field method)
    set_as_string_dirty() (lib.formField.Field method)
    (lib.formField.Form.Field method)
    set_bin_paths() (in module lib.system)
    set_bottom() (other.tamogen.BoundingBox method)
    set_cell_value() (lib.imageTable.Table method)
    set_choices() (lib.formField.ChoiceField method)
    (lib.formField.Form.ChoiceField method)
    set_data() (lib.listData.DataTuple method)
    set_dirty() (pyWx.gui.Frame method)
    set_drop() (pyWx.dialogs.ExecuteDialog method)
    set_field() (lib.formField.Form method)
    set_field_as_string() (lib.formField.Form method)
    set_field_as_string_dirty() (lib.formField.Form method)
    set_fields() (lib.formField.Form method)
    set_filter() (lib.imageTable.Table method)
    (lib.listData.DataTuple method)
    set_font_cache() (in module lib.fonts)
    set_form_field_value() (lib.pyWx.treeEdit.TreeMixin method)
    set_form_field_value_selected() (lib.pyWx.treeEdit.TreeMixin method)
    set_globals() (lib.formField.Field static method)
    (lib.formField.Form.Field static method)
    set_icon() (in module pyWx.images)
    set_image_key_value() (lib.imageTable.Table method)
    set_image_label() (lib.imageTable.Table method)
    set_item_image() (lib.pyWx.treeEdit.TreeMixin method)
    set_key_label() (lib.imageTable.Table method)
    set_key_value() (lib.imageTable.Table method)
    set_layer() (core.pil.Photo method)
    set_left() (other.tamogen.BoundingBox method)
    set_max() (core.message.ProgressReceiver method)
    set_new_tone() (in module other.tamogen)
    set_orientation() (lib.metadata.InfoExtract method)
    (lib.metadata.InfoPil method)
    set_report() (pyWx.gui.DialogsMixin method)
    set_right() (other.tamogen.BoundingBox method)
    set_safe() (in module lib.formField)
    set_safe_mode() (pyWx.gui.Frame method)
    set_setting() (pyWx.gui.DialogsMixin method)
    set_source() (lib.metadata.InfoExtract method)
    set_tag() (lib.imageTable.Table method)
    set_theme() (in module pyWx.gui)
    set_top() (other.tamogen.BoundingBox method)
    set_vars() (lib.metadata.InfoExtract method)
    SetActions() (pyWx.dialogs.ActionListBox method)
    SetAsFileDropTarget() (lib.pyWx.droplet.Mixin method)
    SetAttrReadOnly() (lib.pyWx.inspector.Grid method)
    SetBackgroundColour() (lib.pyWx.popup.SliderCtrl method)
    SetChoices() (lib.pyWx.autoCompleteCtrls.AutoCompleteIconCtrl method)
    (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    SetColumnWidths() (lib.pyWx.folderFileBrowser.Panel method)
    (pyWx.dialogs.ImageTreeDialog method)
    SetData() (lib.pyWx.folderFileBrowser.ListCtrl method)
    (lib.pyWx.folderFileBrowser.Panel method)
    (lib.pyWx.inspectorTag.Grid method)
    (lib.pyWx.inspectorTag.TestContentGrid method)
    (pyWx.dialogs.ImageTreeDialog method)
    setdefault() (lib.odict.odict method)
    setDynamicChoices() (lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl method)
    (other.pyWx.TextCtrlAutoComplete.test method)
    SetEntryCallback() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    SetFilter() (lib.pyWx.folderFileBrowser.ListCtrl method)
    (lib.pyWx.imageInspector.GridTag method)
    (lib.pyWx.inspectorTag.TestContentGrid method)
    (lib.pyWx.tag.TestContentCtrl method)
    (lib.pyWx.vlistTag.TestContentBox method)
    (pyWx.dialogs.ActionListBox method)
    SetFocus() (lib.pyWx.popup.PixelCtrl method)
    (lib.pyWx.popup.SliderCtrl method)
    SetIconSize() (lib.pyWx.vlist.Box method)
    SetMatchFunction() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    SetMessage() (pyWx.dialogs.StatusDialog method)
    SetMinVerSize() (in module lib.pyWx.popup)
    SetMultipleChoices() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    SetOkLabel() (pyWx.dialogs.ImageTreeDialog method)
    SetPopupBackgroundColor() (other.pyWx.toasterbox.ToasterBox method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    SetPopupBitmap() (other.pyWx.toasterbox.ToasterBox method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    SetPopupPauseTime() (other.pyWx.toasterbox.ToasterBox method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    SetPopupPosition() (other.pyWx.toasterbox.ToasterBox method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    SetPopupPositionByInt() (other.pyWx.toasterbox.ToasterBox method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    SetPopupScrollSpeed() (other.pyWx.toasterbox.ToasterBox method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    SetPopupSize() (other.pyWx.toasterbox.ToasterBox method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    SetPopupText() (other.pyWx.toasterbox.ToasterBox method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    SetPopupTextColor() (other.pyWx.toasterbox.ToasterBox method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    SetPopupTextFont() (other.pyWx.toasterbox.ToasterBox method)
    (other.pyWx.toasterbox.ToasterBoxWindow method)
    SetRowColours() (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    (lib.pyWx.inspector.Grid method)
    SetRowLabelValue() (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    SetSelectCallback() (other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete method)
    SetTableValue() (lib.pyWx.inspector.Grid method)
    SetTag() (lib.pyWx.imageInspector.GridTag method)
    (lib.pyWx.inspectorTag.TestContentGrid method)
    (lib.pyWx.tag.ContentMixin method)
    (lib.pyWx.tag.TestContentCtrl method)
    (lib.pyWx.vlistTag.TestContentBox method)
    (pyWx.dialogs.ActionListBox method)
    SetTheme() (lib.pyWx.vlist.Box method)
    SetTitle() (other.pyWx.toasterbox.ToasterBox method)
    SetTitleFilename() (lib.pyWx.imageInspector.Frame method)
    (lib.pyWx.imageInspector.Grid method)
    SetValue() (lib.pyWx.imageFileBrowser.Dialog method)
    (lib.pyWx.imageInspector.Grid.Table method)
    (lib.pyWx.imageInspector.Table method)
    (lib.pyWx.inspector.Grid.Table method)
    (lib.pyWx.inspector.Table method)
    (lib.pyWx.popup.ChoiceCtrl method)
    (lib.pyWx.popup.ImageDictionaryFileCtrl method)
    (lib.pyWx.popup.PixelCtrl method)
    SetVerticalGradient() (lib.pyWx.vlist.Box method)
    SetWindowShape() (lib.pyWx.droplet.Frame method)
    shell() (in module lib.system)
    shell_cache() (in module lib.system)
    shell_returncode() (in module lib.system)
    show() (lib.pyWx.droplet.Frame method)
    show_description() (pyWx.gui.Frame method)
    show_dir_dialog() (pyWx.dialogs.BrowseMixin method)
    show_droplet() (pyWx.gui.Frame method)
    show_error() (console.console.CliMixin method)
    (core.message.FrameReceiver method)
    (lib.pyWx.imageInspector.Grid method)
    (pyWx.gui.DialogsMixin method)
    show_execute_dialog() (console.console.Frame method)
    (core.message.FrameReceiver method)
    (pyWx.gui.DialogsMixin method)
    show_files_message() (console.console.Frame method)
    (core.message.FrameReceiver method)
    (pyWx.gui.DialogsMixin method)
    show_frame() (pyWx.gui.App method)
    show_image_tree() (console.console.Frame method)
    (pyWx.gui.DialogsMixin method)
    show_info() (console.console.CliMixin method)
    (pyWx.gui.DialogsMixin method)
    show_log() (pyWx.gui.DialogsMixin method)
    show_message() (console.console.CliMixin method)
    (lib.pyWx.imageInspector.Grid method)
    (pyWx.gui.DialogsMixin method)
    show_notification() (console.console.CliMixin method)
    (pyWx.gui.DialogsMixin method)
    show_paint_message() (pyWx.gui.Frame method)
    show_preview() (lib.pyWx.folderFileBrowser.PreviewMixin method)
    show_progress() (console.console.Frame method)
    (core.message.FrameReceiver method)
    (pyWx.gui.DialogsMixin method)
    show_progress_error() (console.console.Frame method)
    (core.message.FrameReceiver method)
    (pyWx.gui.DialogsMixin method)
    show_question() (pyWx.gui.DialogsMixin method)
    show_report() (pyWx.gui.DialogsMixin method)
    show_scrolled_message() (console.console.Frame method)
    (core.message.FrameReceiver method)
    (pyWx.gui.DialogsMixin method)
    show_status() (console.console.Frame method)
    (pyWx.gui.DialogsMixin method)
    ShowButtons() (pyWx.dialogs.ImageTreeDialog method)
    ShowError() (lib.pyWx.imageInspector.Grid method)
    ShowLog() (lib.pyWx.imageInspector.Grid method)
    ShowMessage() (lib.pyWx.imageInspector.Grid method)
    ShowPath() (lib.pyWx.imageFileBrowser.Dialog method)
    SizeCtrl (lib.pyWx.popup.PixelCtrl attribute)
    sketch() (in module actions.sketch)
    sleep() (core.message.ProgressReceiver method)
    (pyWx.dialogs.ProgressDialog method)
    SliderCtrl (class in lib.pyWx.popup)
    SliderField (class in lib.formField)
    solarize() (in module actions.solarize)
    sort() (lib.listData.DataDict method)
    (lib.listData.DataTuple method)
    Sphere (class in actions.blender)
    split() (in module lib.imtools)
    split_command() (in module lib.system)
    split_data() (in module core.pil)
    split_vars() (lib.metadata.InfoFile class method)
    split_vars_static_dynamic() (in module core.pil)
    SplitValue() (lib.pyWx.popup.PixelCtrl method)
    StampMixin (class in core.models)
    start() (in module lib.system)
    start_list_item() (lib.pyWx.folderFileBrowser.OpenMixin method)
    start_tree_item() (lib.pyWx.folderFileBrowser.OpenMixin method)
    StartEvents() (lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl method)
    StatusDialog (class in pyWx.dialogs)
    (class in pyWx.wxGlade.dialogs)
    StopEvents() (lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl method)
    subscribe() (in module lib.events)
    (lib.events.Receiver method)
    (other.pubsub.PublisherClass method)
    surd (class in other.surd)

    T

    Table (class in lib.imageTable)
    (class in lib.pyWx.imageInspector)
    (class in lib.pyWx.inspector)
    TableImage (class in lib.imageTable)
    tabs_obsolete() (in module other.pep8)
    tabs_or_spaces() (in module other.pep8)
    TempFile (class in lib.system)
    template_show() (pyWx.dialogs.WritePluginDialog method)
    test (class in other.pyWx.TextCtrlAutoComplete)
    test() (in module other.pubsub)
    test_driver() (in module other.surd)
    test_error() (in module other.surd)
    TestBrowser (class in lib.pyWx.inspectorTag)
    (class in lib.pyWx.tag)
    (class in lib.pyWx.vlistTag)
    TestContentBox (class in lib.pyWx.vlistTag)
    TestContentCtrl (class in lib.pyWx.tag)
    TestContentGrid (class in lib.pyWx.inspectorTag)
    TestDialog (class in lib.pyWx.vlistTag)
    TestFieldMixin (class in lib.formField)
    TestFrame (class in lib.pyWx.inspector)
    (class in lib.pyWx.inspectorTag)
    (class in lib.pyWx.tag)
    (class in lib.pyWx.vlist)
    (class in lib.pyWx.vlistTag)
    TextCtrl (class in lib.pyWx.popup)
    TextCtrlAutoComplete (class in other.pyWx.TextCtrlAutoComplete)
    thumbnail() (in module lib.thumbnail)
    thunar_exists() (in module linux.thunar)
    TiffCompressionField (class in lib.formField)
    tile() (in module actions.mirror)
    title() (in module lib.system)
    title_parser() (core.models.Action.BlenderRotationField method)
    to_english() (in module core.translation)
    to_local() (in module core.translation)
    to_python() (lib.formField.BooleanField method)
    (lib.formField.CommandLineField method)
    (lib.formField.DictionaryReadFileField method)
    (lib.formField.ExifItpcField method)
    (lib.formField.Field method)
    (lib.formField.FileField method)
    (lib.formField.FileSizeField method)
    (lib.formField.FloatField method)
    (lib.formField.Form.BooleanField method)
    (lib.formField.Form.CommandLineField method)
    (lib.formField.Form.DictionaryReadFileField method)
    (lib.formField.Form.ExifItpcField method)
    (lib.formField.Form.Field method)
    (lib.formField.Form.FileField method)
    (lib.formField.Form.FileSizeField method)
    (lib.formField.Form.FloatField method)
    (lib.formField.Form.ImageModeField method)
    (lib.formField.Form.IntegerField method)
    (lib.formField.Form.OrientationField method)
    (lib.formField.Form.PositiveFloatField method)
    (lib.formField.Form.PositiveIntegerField method)
    (lib.formField.Form.PositiveNonZeroFloatField method)
    (lib.formField.Form.PositiveNonZeroIntegerField method)
    (lib.formField.Form.ReadFileField method)
    (lib.formField.ImageModeField method)
    (lib.formField.IntegerField method)
    (lib.formField.OrientationField method)
    (lib.formField.PilConstantMixin method)
    (lib.formField.PositiveFloatField method)
    (lib.formField.PositiveIntegerField method)
    (lib.formField.PositiveNonZeroFloatField method)
    (lib.formField.PositiveNonZeroIntegerField method)
    (lib.formField.ReadFileField method)
    to_string() (lib.formField.BooleanField method)
    (lib.formField.Field method)
    (lib.formField.Form.BooleanField method)
    (lib.formField.Form.Field method)
    ToasterBox (class in other.pyWx.toasterbox)
    ToasterBoxWindow (class in other.pyWx.toasterbox)
    toggle_form_item() (lib.pyWx.treeEdit.TreeMixin method)
    top (other.tamogen.BoundingBox attribute)
    trailing_blank_lines() (in module other.pep8)
    trailing_whitespace() (in module other.pep8)
    TranslateAction() (pyWx.dialogs.ActionListBox method)
    transpose() (in module actions.transpose)
    (in module lib.imtools)
    (lib.imageTable.Table method)
    transpose_exif() (in module lib.imtools)
    Tree (class in pyWx.wxGlade.frame)
    tree_label() (lib.pyWx.treeEdit.TreeMixin method)
    TreeMixin (class in lib.pyWx.treeEdit)
    truncate() (in module lib.pyWx.imageFileBrowser)
    types() (lib.metadata.InfoExtract method)

    U

    u() (in module console.console)
    UnknownTypeError
    unregister_extension() (lib.system.MethodRegister method)
    unregister_method() (lib.system.MethodRegister method)
    UnsafeError
    unsubAll() (other.pubsub.PublisherClass method)
    unsubscribe() (lib.events.Receiver method)
    (other.pubsub.PublisherClass method)
    unsubscribe_all() (lib.events.Receiver method)
    untranslated() (in module lib.pyWx.popup)
    update() (console.console.Frame.Progress method)
    (console.console.Progress method)
    (core.message.ProgressReceiver method)
    (core.pil.InfoPhoto method)
    (lib.imageTable.Table method)
    (lib.imageTable.TableImage method)
    (lib.odict.odict method)
    (pyWx.dialogs.ProgressDialog method)
    update_filename() (core.message.ProgressReceiver method)
    update_form_relevance() (lib.pyWx.treeEdit.TreeMixin method)
    update_headers() (lib.listData.DataDict method)
    update_if_modified() (lib.imageTable.TableImage method)
    update_index() (core.message.ProgressReceiver method)
    update_size() (core.pil.InfoPhoto method)
    update_time() (lib.imageTable.TableImage method)
    UpdateHeaders() (lib.pyWx.folderFileBrowser.Panel method)
    (pyWx.dialogs.ImageTreeDialog method)
    UpdateIfNeeded() (lib.pyWx.imageInspector.Frame method)
    (lib.pyWx.imageInspector.Grid method)
    UpdateNumberRows() (lib.pyWx.inspector.Grid method)
    UpdateRowsColsNumbers() (lib.pyWx.imageInspector.Grid method)
    UpdateThumbs() (lib.pyWx.imageInspector.Grid method)
    UpdateValues() (lib.pyWx.imageInspector.Grid method)
    (lib.pyWx.inspector.Grid method)
    usage() (in module other.EXIF)
    utilities_dict() (in module actions.lossless_jpeg)
    UtilityMixin (class in actions.lossless_jpeg)

    V

    validate() (lib.formField.Field method)
    (lib.formField.Form.Field method)
    (other.pubsub.PublisherClass method)
    ValidationError
    values() (actions.border.Action method)
    (actions.canvas.Action method)
    (actions.contour.Action method)
    (actions.fit.Action method)
    (actions.grid.Action method)
    (actions.offset.Action method)
    (actions.perspective.Action method)
    (actions.reflection.Action method)
    (actions.round.Action method)
    (actions.shadow.Action method)
    (actions.tamogen.Action method)
    (actions.text.Action method)
    (core.models.Action method)
    (core.models.CropMixin method)
    (core.models.OffsetMixin method)
    (lib.odict.odict method)
    verify_actionlist() (console.console.Frame method)
    verify_app_user_paths() (in module core.config)
    verify_dcraw() (in module lib.openImage)
    verify_image() (in module lib.openImage)
    verify_image_with_pil() (in module lib.openImage)
    verify_image_without_pil() (in module lib.openImage)
    verify_imagemagick() (in module lib.openImage)
    verify_images() (in module core.api)
    verify_xcf() (in module lib.openImage)

    W

    warmup() (in module actions.warm_up)
    watermark() (in module actions.watermark)
    whitespace_around_comma() (in module other.pep8)
    whitespace_around_named_parameter_equals() (in module other.pep8)
    whitespace_around_operator() (in module other.pep8)
    whitespace_before_inline_comment() (in module other.pep8)
    whitespace_before_parameters() (in module other.pep8)
    wildcard() (pyWx.dialogs.ExecuteDialog method)
    wildcard_list() (in module lib.pyWx.wildcard)
    win32FontDirectory() (in module other.findsystem)
    win32InstalledFonts() (in module other.findsystem)
    windows (module)
    wrap() (in module lib.system)
    write() (console.console.CliMixin method)
    write_credits() (in module data.info)
    write_header() (in module lib.gps)
    write_metadata() (in module lib._pyexiv2)
    write_readme() (in module data.info)
    write_readme_credits() (in module data.info)
    write_thumbdata() (in module lib._pyexiv2)
    WritePluginDialog (class in pyWx.dialogs)
    (class in pyWx.wxGlade.dialogs)
    wxBitmap_pil() (in module lib.pyWx.wxPil)
    wxgAboutDialog (class in lib.pyWx.about)
    wxgCreditsDialog (class in lib.pyWx.about)
    WxgPanel (class in lib.pyWx.folderFileBrowser)
    wxImage_pil() (in module lib.pyWx.wxPil)

    X

    x_mirror() (in module actions.mirror)
    xy_mirror() (in module actions.mirror)

    Y

    y_mirror() (in module actions.mirror)
    phatch-0.2.7/docs/build/html/index.html0000644000000000000000000001335011346363116017723 0ustar rootroot00000000000000 Become a Phatch developer! — Phatch v0.2 documentation

    Table Of Contents

    Next topic

    Bazaar and Launchpad

    phatch-0.2.7/docs/build/html/index2.html0000644000000000000000000003273211346363116020012 0ustar rootroot00000000000000 index2 — Phatch v0.2 documentation phatch-0.2.7/docs/build/html/lib._pyexiv2.html0000644000000000000000000002046611346363116021134 0ustar rootroot00000000000000 _pyexiv2 — Phatch v0.2 documentation

    _pyexiv2

    lib._pyexiv2.extension_to_image_format(ext)
    lib._pyexiv2.flush(image, thumbdata)
    lib._pyexiv2.is_readable_format(format)
    Returns True if pyexiv2 can read Exif or Iptc metadata from the image file format.
    lib._pyexiv2.is_writable_format(format)
    Returns True if pyexiv2 can write Exif or Iptc metadata to the image file format.
    lib._pyexiv2.is_writable_format_exif(format)
    Returns True if pyexiv2 can write Exif metadata to the image file format.
    lib._pyexiv2.is_writable_format_iptc(format)
    Returns True if pyexiv2 can write Iptc metadata to the image file format.
    lib._pyexiv2.read_thumbdata(image)
    lib._pyexiv2.write_metadata(source_pyexiv2_image, target, source_format=None, target_format=None, thumbdata=None)
    Parameters:
    • source_pyexiv2_image (pyexiv2.Image) – file opened by pyexiv2
    • target (string) – target filename
    • source_format (string) – source format e.g. obtained by PIL
    • target_format (string) – target format e.g. obtained by PIL
    • thumbdata (string) – new thumbnail (e.g. with StringIO, see imtools)
    lib._pyexiv2.write_thumbdata(image, thumbdata=None)

    Previous topic

    lib

    Next topic

    colors

    phatch-0.2.7/docs/build/html/lib.colors.html0000644000000000000000000001472511346363116020671 0ustar rootroot00000000000000 colors — Phatch v0.2 documentation

    colors

    lib.colors.HTMLColorToPILColor(colorstring)
    converts #RRGGBB to PIL-compatible integers
    lib.colors.HTMLColorToRGB(colorstring)
    convert #RRGGBB to an (R, G, B) tuple
    lib.colors.HTMLColorToRGBA(colorstring, opacity)
    lib.colors.PILColorToHTMLColor(pil_integer)
    lib.colors.PILColorToRGB(pil_color)
    convert a PIL-compatible integer into an (r, g, b) tuple
    lib.colors.RGBToHTMLColor(rgb_tuple)
    convert an (R, G, B) tuple to #RRGGBB
    lib.colors.RGBToPILColor(rgb_tuple)

    Previous topic

    _pyexiv2

    Next topic

    desktop

    phatch-0.2.7/docs/build/html/lib.desktop.html0000644000000000000000000001032211346363116021026 0ustar rootroot00000000000000 desktop — Phatch v0.2 documentation

    desktop

    Cross platform library to locate the desktop folder.

    Previous topic

    colors

    Next topic

    events

    phatch-0.2.7/docs/build/html/lib.events.html0000644000000000000000000001637111346363116020673 0ustar rootroot00000000000000 events — Phatch v0.2 documentation

    events

    The aim of this library is to abstract pubsub.

    class lib.events.ReceiveListener(obj, method)
    class lib.events.Receiver(name)
    subscribe(method)
    Subscribe with some class magic. Example: self.subscribe(‘error’) -> subscribe(‘frame.error’) Afterwars you can call it with send.frame_error()
    unsubscribe(method)
    Subscribe with some class magic. Example: self.subscribe(‘error’) -> subscribe(‘frame.error’)
    unsubscribe_all()
    class lib.events.SendListener(topic='')
    class lib.events.Sender
    lib.events.example()
    lib.events.send
    lib.events.subscribe(method, obj)

    Previous topic

    desktop

    Next topic

    fonts

    phatch-0.2.7/docs/build/html/lib.fonts.html0000644000000000000000000001633111346363116020514 0ustar rootroot00000000000000 fonts — Phatch v0.2 documentation

    fonts

    lib.fonts.basename(font_file)
    lib.fonts.collect_fonts()
    Collect a list of all font filenames.
    lib.fonts.example()
    lib.fonts.font_dictionary(filename=None, force=False)
    Path specification for the font dictionary, cached
    lib.fonts.font_names(filename=None)
    lib.fonts.locate_files(command)
    lib.fonts.merge(*paths)
    lib.fonts.name(x)

    Split camelcase filenames and ensure title case.

    >>> name('ArialBlack italic')
    'Arial Black Italic'
    
    lib.fonts.set_font_cache(user_fonts_path, root_fonts_path, user_fonts_cache_path, root_fonts_cache_path)
    Expose global variables

    Previous topic

    events

    Next topic

    formField

    phatch-0.2.7/docs/build/html/lib.formField.html0000644000000000000000000030310411346363116021267 0ustar rootroot00000000000000 formField — Phatch v0.2 documentation

    formField

    Store internally as a string. Provide validation routines.

    class lib.formField.AlignHorizontalField(value, **keyw)
    Bases: lib.formField.ChoiceField
    class lib.formField.AlignVerticalField(value, **keyw)
    Bases: lib.formField.ChoiceField
    class lib.formField.BooleanField(value, visible=True)

    Bases: lib.formField.Field

    to_python(x, label)
    to_string(x)
    class lib.formField.CharField(value=None, visible=True, choices=None)
    Bases: lib.formField.Field
    class lib.formField.ChoiceField(value, choices, **keyw)

    Bases: lib.formField.NotEmptyCharField

    set_choices(choices)
    class lib.formField.ColorField(value, visible=True)
    Bases: lib.formField.Field
    class lib.formField.CommandLineField(*args, **keyw)

    Bases: lib.formField.NotEmptyCharField

    raise_error_file(label, what)
    raise_error_not_found(label, what)
    raise_error_out_max(label)
    to_python(x, label)
    class lib.formField.CsvFileField(value=None, visible=True, choices=None)
    Bases: lib.formField.FileField
    class lib.formField.DictionaryReadFileField(value=None, visible=True, choices=None)

    Bases: lib.formField.ReadFileField

    init_dictionary()
    to_python(x, label, test=False)
    class lib.formField.DpiField(value=None, visible=True, choices=None)

    Bases: lib.formField.PositiveNonZeroIntegerField

    PIL defines the resolution in two dimensions as a tuple (x, y). Phatch ignores this possibility and simplifies by using only one resolution

    class lib.formField.EmptyFileField(value=None, visible=True, choices=None)
    Bases: lib.formField.FileField
    class lib.formField.ExifItpcField(value=None, visible=True, choices=None)

    Bases: lib.formField.NotEmptyCharField

    fix_string(x)
    to_python(x, label)
    class lib.formField.Field(value, visible=True)

    Bases: object

    Base class for fields. This needs to be subclassed but, never used directly.

    Required to overwrite: description - describes the expected value

    Optional to overwrite to_python - raise here exceptions in case of validation errors (defaults

    to string).

    to_string - (defaults to string)

    Never overwrite: validate - will work right out of the box as exceptions are raised by

    the to_python method

    get - gets the current value as a string set - sets the current value as a string

    You can access the value by self.value_as_string

    This field interpolates <variables> within a info. << or >> will be interpolated as < or >

    Parameters:
    • value (str) – initial value
    • visible (str) – if the field will be visible as a field

    Invisible fields request a different kind of user interaction to change their values than a normal field. In Phatch this is used eg for enabling/disabling actions.

    A get_relevant_* method of a Form will show/hide fields which depend on other conditions.

    assert_safe(label, info)
    eval(x, label)
    fix_string(x)
    For the ui (see ‘write tag’ action)
    get(info=None, label='?', value_as_string=None, test=False)

    For code: Interpolated, but not translated - value_as_string can be optionally provided to test the expression

    Ignore test parameter (only for compatiblity with TestField)

    get_as_string()
    For GUI: Translation, but no interpolation here
    interpolate(x, info, label)
    set(x)
    For code: Interpolated, but not translated
    set_as_string(x)
    For GUI: Translation, but no interpolation here
    set_as_string_dirty(x)
    For GUI: Translation, but no interpolation here
    static set_globals(_globals)
    to_python(x, label)
    to_string(x)
    validate(names, _globals, _locals)
    Helper method for safe.compile_expr().
    class lib.formField.FileField(value=None, visible=True, choices=None)

    Bases: lib.formField.NotEmptyCharField

    to_python(x, label)
    class lib.formField.FileNameField(value=None, visible=True, choices=None)

    Bases: lib.formField.NotEmptyCharField

    Without extension

    class lib.formField.FileSizeField(value=None, visible=True, choices=None)

    Bases: lib.formField.IntegerField

    Can be in bytes (bt), kilo bytes (kb), mega bytes (mb), or giga bytes (gb).

    >>> FileSizeField('5kb').get()
    5120
    >>> FileSizeField('5mb').get()
    5242880
    
    to_python(x, label)
    class lib.formField.FloatField(value, visible=True)

    Bases: lib.formField.Field

    to_python(x, label)
    class lib.formField.FloatSliderField(value, minValue, maxValue, **keyw)

    Bases: lib.formField.FloatField, lib.formField.SliderField

    A value with boundaries set by a slider.

    class lib.formField.FolderField(value=None, visible=True, choices=None)
    Bases: lib.formField.NotEmptyCharField
    class lib.formField.FontFileField(value=None, visible=True, choices=None)

    Bases: lib.formField.DictionaryReadFileField

    init_dictionary()
    class lib.formField.Form(**options)

    Bases: object

    class AlignHorizontalField(value, **keyw)
    Bases: lib.formField.ChoiceField
    class Form.AlignVerticalField(value, **keyw)
    Bases: lib.formField.ChoiceField
    class Form.BooleanField(value, visible=True)

    Bases: lib.formField.Field

    to_python(x, label)
    to_string(x)
    class Form.CharField(value=None, visible=True, choices=None)
    Bases: lib.formField.Field
    class Form.ChoiceField(value, choices, **keyw)

    Bases: lib.formField.NotEmptyCharField

    set_choices(choices)
    class Form.ColorField(value, visible=True)
    Bases: lib.formField.Field
    class Form.CommandLineField(*args, **keyw)

    Bases: lib.formField.NotEmptyCharField

    raise_error_file(label, what)
    raise_error_not_found(label, what)
    raise_error_out_max(label)
    to_python(x, label)
    class Form.CsvFileField(value=None, visible=True, choices=None)
    Bases: lib.formField.FileField
    class Form.DictionaryReadFileField(value=None, visible=True, choices=None)

    Bases: lib.formField.ReadFileField

    init_dictionary()
    to_python(x, label, test=False)
    class Form.DpiField(value=None, visible=True, choices=None)

    Bases: lib.formField.PositiveNonZeroIntegerField

    PIL defines the resolution in two dimensions as a tuple (x, y). Phatch ignores this possibility and simplifies by using only one resolution

    class Form.EmptyFileField(value=None, visible=True, choices=None)
    Bases: lib.formField.FileField
    class Form.ExifItpcField(value=None, visible=True, choices=None)

    Bases: lib.formField.NotEmptyCharField

    fix_string(x)
    to_python(x, label)
    class Form.Field(value, visible=True)

    Bases: object

    Base class for fields. This needs to be subclassed but, never used directly.

    Required to overwrite: description - describes the expected value

    Optional to overwrite to_python - raise here exceptions in case of validation errors (defaults

    to string).

    to_string - (defaults to string)

    Never overwrite: validate - will work right out of the box as exceptions are raised by

    the to_python method

    get - gets the current value as a string set - sets the current value as a string

    You can access the value by self.value_as_string

    This field interpolates <variables> within a info. << or >> will be interpolated as < or >

    Parameters:
    • value (str) – initial value
    • visible (str) – if the field will be visible as a field

    Invisible fields request a different kind of user interaction to change their values than a normal field. In Phatch this is used eg for enabling/disabling actions.

    A get_relevant_* method of a Form will show/hide fields which depend on other conditions.

    assert_safe(label, info)
    eval(x, label)
    fix_string(x)
    For the ui (see ‘write tag’ action)
    get(info=None, label='?', value_as_string=None, test=False)

    For code: Interpolated, but not translated - value_as_string can be optionally provided to test the expression

    Ignore test parameter (only for compatiblity with TestField)

    get_as_string()
    For GUI: Translation, but no interpolation here
    interpolate(x, info, label)
    set(x)
    For code: Interpolated, but not translated
    set_as_string(x)
    For GUI: Translation, but no interpolation here
    set_as_string_dirty(x)
    For GUI: Translation, but no interpolation here
    static set_globals(_globals)
    to_python(x, label)
    to_string(x)
    validate(names, _globals, _locals)
    Helper method for safe.compile_expr().
    class Form.FileField(value=None, visible=True, choices=None)

    Bases: lib.formField.NotEmptyCharField

    to_python(x, label)
    class Form.FileNameField(value=None, visible=True, choices=None)

    Bases: lib.formField.NotEmptyCharField

    Without extension

    class Form.FileSizeField(value=None, visible=True, choices=None)

    Bases: lib.formField.IntegerField

    Can be in bytes (bt), kilo bytes (kb), mega bytes (mb), or giga bytes (gb).

    >>> FileSizeField('5kb').get()
    5120
    >>> FileSizeField('5mb').get()
    5242880
    
    to_python(x, label)
    class Form.FloatField(value, visible=True)

    Bases: lib.formField.Field

    to_python(x, label)
    class Form.FloatSliderField(value, minValue, maxValue, **keyw)

    Bases: lib.formField.FloatField, lib.formField.SliderField

    A value with boundaries set by a slider.

    class Form.FolderField(value=None, visible=True, choices=None)
    Bases: lib.formField.NotEmptyCharField
    class Form.FontFileField(value=None, visible=True, choices=None)

    Bases: lib.formField.DictionaryReadFileField

    init_dictionary()
    class Form.GeoReadFileField(value=None, visible=True, choices=None)
    Bases: lib.formField.ReadFileField
    class Form.ImageDictionaryField(value=None, visible=True, choices=None)
    Bases: lib.formField.ImageDictionaryReadFileField
    class Form.ImageDictionaryReadFileField(value=None, visible=True, choices=None)
    Bases: lib.formField.ImageReadFileField
    class Form.ImageEffectField(value, **keyw)
    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField
    class Form.ImageFilterField(value, **keyw)
    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField
    class Form.ImageModeField(value, **keyw)

    Bases: lib.formField.ChoiceField

    to_python(x, label)
    class Form.ImageReadFileField(value=None, visible=True, choices=None)
    Bases: lib.formField.DictionaryReadFileField
    class Form.ImageReadTypeField(value, **keyw)
    Bases: lib.formField.ChoiceField
    class Form.ImageResampleAutoField(value, **keyw)
    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField
    class Form.ImageResampleField(value, **keyw)
    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField
    class Form.ImageTransposeField(value, **keyw)
    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField
    class Form.ImageTypeField(value, **keyw)

    Bases: lib.formField.ChoiceField

    fix_string(x)
    class Form.ImageWriteTypeField(value, **keyw)
    Bases: lib.formField.ChoiceField
    class Form.IntegerField(value=None, visible=True, choices=None)

    Bases: lib.formField.NotEmptyCharField

    to_python(x, label)
    class Form.NotEmptyCharField(value=None, visible=True, choices=None)
    Bases: lib.formField.CharField
    class Form.OptionalTransposeField(value, **keyw)
    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField
    class Form.OrientationField(value, **keyw)

    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField

    to_python(x, label)
    class Form.PixelField(value=None, visible=True, choices=None)

    Bases: lib.formField.IntegerField

    Can be pixels, cm, inch, %.

    get_size(info, base, dpi, label, value_as_string=None)
    class Form.PositiveFloatField(value, visible=True)

    Bases: lib.formField.FloatField

    to_python(x, label)
    class Form.PositiveIntegerField(value=None, visible=True, choices=None)

    Bases: lib.formField.IntegerField

    to_python(x, label)
    class Form.PositiveNonZeroFloatField(value, visible=True)

    Bases: lib.formField.PositiveFloatField

    to_python(x, label)
    class Form.PositiveNonZeroIntegerField(value=None, visible=True, choices=None)

    Bases: lib.formField.PositiveIntegerField

    to_python(x, label)
    class Form.RankSizeField(value, **keyw)
    Bases: lib.formField.IntegerField, lib.formField.ChoiceField
    class Form.ReadFileField(value=None, visible=True, choices=None)

    Bases: lib.formField.TestFieldMixin, lib.formField.FileField

    This is a test field to ensure that the file exists. It could also have been called the MustExistFileField.

    to_python(x, label, test=False)
    class Form.SliderField(value, minValue, maxValue, **keyw)

    Bases: lib.formField.IntegerField

    A value with boundaries set by a slider.

    class Form.TiffCompressionField(value, **keyw)
    Bases: lib.formField.ChoiceField
    Form.dump()
    Dump as raw strings
    Form.ensure_path(path)
    Form.find_exe(program, name=None)
    Form.get_field(label, info=None)
    Form.get_field_labels()
    Form.get_field_size(label, info, base, dpi)
    Form.get_field_string(label)
    Form.get_fields(info, convert=False, pixel_fields=None, exclude=None)
    Form.interface(fields)

    Describe here the fields. This is called from the __init__ method.

    Parameter:fields (odict) – an (usually empty) ordered dictionary
    Form.is_enabled()
    Form.is_field_true(label)
    Form.load(fields)
    Load dumped, raw strings.
    Form.set_field(label, value)
    Form.set_field_as_string(label, value_as_string)
    Form.set_field_as_string_dirty(label, value_as_string)
    Form.set_fields(**options)
    class lib.formField.GeoReadFileField(value=None, visible=True, choices=None)
    Bases: lib.formField.ReadFileField
    class lib.formField.ImageDictionaryField(value=None, visible=True, choices=None)
    Bases: lib.formField.ImageDictionaryReadFileField
    class lib.formField.ImageDictionaryReadFileField(value=None, visible=True, choices=None)
    Bases: lib.formField.ImageReadFileField
    class lib.formField.ImageEffectField(value, **keyw)
    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField
    class lib.formField.ImageFilterField(value, **keyw)
    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField
    class lib.formField.ImageModeField(value, **keyw)

    Bases: lib.formField.ChoiceField

    to_python(x, label)
    class lib.formField.ImageReadFileField(value=None, visible=True, choices=None)
    Bases: lib.formField.DictionaryReadFileField
    class lib.formField.ImageReadTypeField(value, **keyw)
    Bases: lib.formField.ChoiceField
    class lib.formField.ImageResampleAutoField(value, **keyw)
    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField
    class lib.formField.ImageResampleField(value, **keyw)
    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField
    class lib.formField.ImageTransposeField(value, **keyw)
    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField
    class lib.formField.ImageTypeField(value, **keyw)

    Bases: lib.formField.ChoiceField

    fix_string(x)
    class lib.formField.ImageWriteTypeField(value, **keyw)
    Bases: lib.formField.ChoiceField
    class lib.formField.IntegerField(value=None, visible=True, choices=None)

    Bases: lib.formField.NotEmptyCharField

    to_python(x, label)
    class lib.formField.NotEmptyCharField(value=None, visible=True, choices=None)
    Bases: lib.formField.CharField
    class lib.formField.OptionalTransposeField(value, **keyw)
    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField
    class lib.formField.OrientationField(value, **keyw)

    Bases: lib.formField.PilConstantMixin, lib.formField.ChoiceField

    to_python(x, label)
    class lib.formField.PilConstantMixin
    to_python(x, label)
    class lib.formField.PixelField(value=None, visible=True, choices=None)

    Bases: lib.formField.IntegerField

    Can be pixels, cm, inch, %.

    get_size(info, base, dpi, label, value_as_string=None)
    class lib.formField.PositiveFloatField(value, visible=True)

    Bases: lib.formField.FloatField

    to_python(x, label)
    class lib.formField.PositiveIntegerField(value=None, visible=True, choices=None)

    Bases: lib.formField.IntegerField

    to_python(x, label)
    class lib.formField.PositiveNonZeroFloatField(value, visible=True)

    Bases: lib.formField.PositiveFloatField

    to_python(x, label)
    class lib.formField.PositiveNonZeroIntegerField(value=None, visible=True, choices=None)

    Bases: lib.formField.PositiveIntegerField

    to_python(x, label)
    class lib.formField.RankSizeField(value, **keyw)
    Bases: lib.formField.IntegerField, lib.formField.ChoiceField
    class lib.formField.ReadFileField(value=None, visible=True, choices=None)

    Bases: lib.formField.TestFieldMixin, lib.formField.FileField

    This is a test field to ensure that the file exists. It could also have been called the MustExistFileField.

    to_python(x, label, test=False)
    class lib.formField.SliderField(value, minValue, maxValue, **keyw)

    Bases: lib.formField.IntegerField

    A value with boundaries set by a slider.

    class lib.formField.TestFieldMixin

    Mixin class, the to_python method should

    def to_python(self, x, label, test=False):
    “test parameter to signal test-validate” return x

    See set_form_field_value in treeEdit.py

    get(info=None, label='?', value_as_string=None, test=False)
    Use this method to test-validate the user input, for example: field.get(IMAGE_TEST_INFO, value_as_string, label, test=True)
    class lib.formField.TiffCompressionField(value, **keyw)
    Bases: lib.formField.ChoiceField
    exception lib.formField.ValidationError(expected, message, details=None)
    Bases: exceptions.Exception
    lib.formField.files_dictionary(paths, extensions, title_parser=None)

    Collects files with a certain extension in different folders and stores the files in a dictionary of which the keys are titled versions of the filename.

    Phatch uses this for fonts, highlights and masks.

    >>> files_dictionary(['/etc/apt'], ['.list'])
    {'Sources': '/etc/apt/sources.list'}
    
    lib.formField.get_safe()
    lib.formField.rotation_title_parser(field, filename)
    lib.formField.set_safe(state)

    Previous topic

    fonts

    Next topic

    gettextFix

    phatch-0.2.7/docs/build/html/lib.gettextFix.html0000644000000000000000000001072011346363116021512 0ustar rootroot00000000000000 gettextFix — Phatch v0.2 documentation

    gettextFix

    lib.gettextFix.displayhook(value)

    Previous topic

    formField

    Next topic

    gps

    phatch-0.2.7/docs/build/html/lib.gps.html0000644000000000000000000002247011346363116020155 0ustar rootroot00000000000000 gps — Phatch v0.2 documentation

    gps

    lib.gps.d(angle)
    d(any) - get degrees from a number :eg d(33.41) -> 33
    lib.gps.get_metadata(dateString, timedict, timeshift, path, report=None)

    get_metadata(float) - get a dictionary of changes to the metadata dateString - EXIF date format string /* in */ timeshift - delta between GMT and local time (seconds.

    Positive to West)

    path - path to the image (only for stdout reporting) report - log file

    lib.gps.get_node_value(node)
    get_node_value((node) - return the value of a node
    lib.gps.get_text(nodelist)
    get_text(nodeList) - return the text in nodelist
    lib.gps.get_xml_timez(phototime, timeshift)
    getXMLtimez - convert a datetime to an XML formatted date
    lib.gps.handle_gpx(gpx, timedict, ns)
    handle_gpx
    lib.gps.handle_trk(trk, timedict, ns)
    handle_trk
    lib.gps.handle_trkpt(trkpt, timedict, ns)
    handle_trkpt
    lib.gps.handle_trkseg(trkseg, timedict, ns)
    handle_trkseg
    lib.gps.m(angle)
    m(any) - get minutes from a number :eg d(33.41) -> 24
    lib.gps.r(f)
    r(float) - get a Rational number for a float
    lib.gps.read_gpx(gpx_file)
    read_gpx(string) - get a dictionary of time/position information
    lib.gps.s(angle)
    s(any) - get seconds from a number :eg s(33.41) -> 36
    lib.gps.search(dict, target)
    search(dict,taget) - search for closest match
    lib.gps.write_header(report)

    Previous topic

    gettextFix

    Next topic

    imageTable

    phatch-0.2.7/docs/build/html/lib.html0000644000000000000000000002135211346363116017363 0ustar rootroot00000000000000 lib — Phatch v0.2 documentation phatch-0.2.7/docs/build/html/lib.imageTable.html0000644000000000000000000003535511346363116021424 0ustar rootroot00000000000000 imageTable — Phatch v0.2 documentation

    imageTable

    class lib.imageTable.Table(thumb_size=(128, 128))

    Bases: object

    add_image_key(image, key, value='')
    add_key(key, value='')
    Add key to all images
    delete_cell(row, col)
    delete_images(pos, num=1)
    delete_keys(pos, num=1)
    get_cell_value(row, col)
    get_image_amount()
    get_image_filename(index)
    get_image_label(index)
    get_key_amount()
    get_key_label(index)
    is_cell_deletable(row, col)
    is_cell_editable(row, col)
    is_cell_empty(row, col)
    is_image_editable(image)
    is_key_editable(index=0, key=None)
    is_key_empty(key)
    open_folder(folder)
    open_image(filename, update=True, encoding=None)
    open_images(paths, encoding=None)
    set_cell_value(row, col, value)
    set_filter(filter='')
    set_image_key_value(image, key, value)
    set_image_label(index, value)
    set_key_label(index, value)
    set_key_value(key, value)
    set_tag(tag)
    transpose()
    update()
    class lib.imageTable.TableImage(filename, thumb_size=(128, 128))
    get_time()
    is_modified()
    update()
    Update the table from the image source file.
    update_if_modified()

    Check if the source file image has changed and update if it has.

    Returns:True, if source image has changed
    Return type:bool
    update_time()
    Update time. This time is used to check if the source file has changed.

    Previous topic

    gps

    Next topic

    imtools

    phatch-0.2.7/docs/build/html/lib.imtools.html0000644000000000000000000015070511346363116021055 0ustar rootroot00000000000000 imtools — Phatch v0.2 documentation

    imtools

    exception lib.imtools.InvalidWriteFormatError
    Bases: exceptions.Exception
    lib.imtools.add_checkboard(image)

    “If the image has a transparent mask, a RGB checkerboard will be drawn in the background.

    Note

    In case of a thumbnail, the resulting image can not be used for the cache, as it replaces the transparency layer with a non transparent checkboard.

    Parameter:image (pil.Image) – image
    Returns:image, with checkboard if transparant
    Return type:pil.Image
    lib.imtools.auto_crop(image)
    Crops all transparent or black background from the image :param image: input image :type image: PIL image object :returns: the cropped image :rtype: PIL image object
    lib.imtools.blend(im1, im2, amount, color=None)

    Blend two images with each other. If the images differ in size the color will be used for undefined pixels.

    Parameters:
    • im1 (pil.Image) – first image
    • im2 (pil.Image) – second image
    • amount (int) – amount of blending
    • color (tuple) – color of undefined pixels
    Returns:

    blended image

    Return type:

    pil.Image

    lib.imtools.calculate_location(horizontal_offset, vertical_offset, horizontal_justification, vertical_justification, canvas_size, image_size)

    Calculate location based on offset and justification. Offsets can be positive and negative.

    Parameters:
    • horizontal_offset (int) – horizontal offset
    • vertical_offset (int) – vertical offset
    • horizontal_justification (string) – 'Left', 'Middle', 'Right'
    • vertical_justification (string) – 'Top', 'Middle', 'Bottom'
    • canvas_size (tuple of int) – size of the total canvas
    • image_size (tuple of int) – size of the image/text which needs to be placed
    Returns:

    location

    Return type:

    tuple of int

    >>> calculate_location(50, 50, 'Left', 'Middle', (100,100), (10,10))
    (50, 45)
    
    lib.imtools.checkboard(size, delta=8, fg=(128, 128, 128), bg=(204, 204, 204))

    Draw an n x n checkboard, which is often used as background for transparent images. The checkboards are stored in the CHECKBOARD cache.

    Parameters:
    • delta (int) – dimension of one square
    • fg (tuple of int) – foreground color
    • bg (tuple of int) – background color
    Returns:

    checkboard image

    Return type:

    pil.Image

    lib.imtools.convert(image, mode, *args, **keyw)

    Returns a converted copy of an image

    Parameters:
    • image (PIL image object) – input image
    • mode (string) – the new mode
    • args (tuple of values) – extra options
    • keyw (dictionary of options) – extra keyword options
    Returns:

    the converted image

    Return type:

    PIL image object

    lib.imtools.convert_safe_mode(image)

    Converts image into a processing-safe mode.

    Parameter:image (PIL image object) – input image
    Returns:the converted image
    Return type:PIL image object
    lib.imtools.convert_save_mode_by_format(image, format)

    Converts image into a saving-safe mode.

    Parameters:
    • image (PIL image object) – input image
    • format (string) – target format
    Returns:

    the converted image

    Return type:

    PIL image object

    lib.imtools.fill_background_color(image, color)

    Fills given image with background color.

    Parameters:
    • image (pil.Image) – source image
    • color (tuple of int) – background color
    Returns:

    filled image

    Return type:

    pil.Image

    lib.imtools.fit_color_in_palette(image, color)

    Fit a color into a palette. If the color exists already in the palette return its current index, otherwise add the color to the palette if possible. Returns -1 for color index if all colors are used already.

    Parameters:
    • image (pil.Image) – image with a palette
    • color ((r, g, b) tuple) – color to fit
    Returns:

    color index, (new) palette

    Return type:

    (r, g, b) tuple, sequence of (r, g, b) tuples

    lib.imtools.flatten(l)

    Flatten a list.

    Parameter:l (list) – list to be flattened
    Returns:flattened list
    Return type:list
    >>> flatten([[1, 2], [3]])
    [1, 2, 3]
    
    lib.imtools.generate_layer(image_size, mark, method, horizontal_offset, vertical_offset, horizontal_justification, vertical_justification, orientation, opacity)

    Generate new layer for backgrounds or watermarks on which a given image mark can be positioned, scaled or repeated.

    Parameters:
    • image_size (tuple of int) – size of the reference image
    • mark (pil.Image) – image mark
    • method (string) – 'Tile', 'Scale', 'By Offset'
    • horizontal_offset (int) – horizontal offset
    • vertical_offset (int) – vertical offset
    • horizontal_justification (string) – 'Left', 'Middle', 'Right'
    • vertical_justification (string) – 'Top', 'Middle', 'Bottom'
    • orientation (string) – mark orientation (e.g. 'ROTATE_270')
    • opacity (float) – opacity within [0, 1]
    Returns:

    generated layer

    Return type:

    pil.Image

    lib.imtools.get_alpha(image)

    Gets the image alpha band. Can handles P mode images with transpareny. Returns a band with all values set to 255 if no alpha band exists.

    Parameter:image (PIL image object) – input image
    Returns:alpha as a band
    Return type:single band image object
    lib.imtools.get_exif_orientation(image)

    Gets the exif orientation of an image.

    Parameter:image (pil.Image) – image
    Returns:orientation
    Return type:int
    lib.imtools.get_exif_transposition(orientation)

    Get the transposition methods necessary to aling the image to its exif orientation.

    Parameter:orientation (int) – exif orientation
    Returns:(transposition methods, reverse transpostion methods)
    Return type:tuple
    lib.imtools.get_format(ext)

    Guess the image format by the file extension.

    Parameter:ext (string) – file extension
    Returns:image format
    Return type:string

    Warning

    This is only meant to check before saving files. For existing files open the image with PIL and check its format attribute.

    >>> get_format('jpg')
    'JPEG'
    
    lib.imtools.get_format_data(image, format)

    Convert the image in the file bytes of the image. By consequence this byte data is different for the chosen format (JPEG, TIFF, ...).

    Parameters:
    • image – source image
    • format (string) – image file type format
    Returns:

    byte data of the image

    lib.imtools.get_format_filename(filename)

    Guess the image format by the filename.

    Parameter:filename (string) – filename
    Returns:image format
    Return type:string

    Warning

    This is only meant to check before saving files. For existing files open the image with PIL and check its format attribute.

    >>> get_format_filename('test.tif')
    'TIFF'
    
    lib.imtools.get_palette(image)

    Gets the palette of an image as a sequence of (r, g, b) tuples.

    Parameter:image – image with a palette
    Returns:palette colors
    Return type:a sequence of (r, g, b) tuples
    lib.imtools.get_quality(im, size, format, down=0, up=100, delta=1000, options=None)

    Figure out recursively the quality save parameter to obtain a certain image size. This mostly used for JPEG images.

    Parameters:
    • im (pil.Image) – image
    • format (string) – image file format (e.g. 'JPEG')
    • down (int) – minimum file size in bytes
    • up (int) – maximum file size in bytes
    • delta (int) – fault tolerance in bytes
    • options (dict) – image save options
    Returns:

    save quality

    Return type:

    int

    Example:

    filename = '/home/stani/sync/Desktop/IMGA3345.JPG'
    im = Image.open(filename)
    q = get_quality(im, 300000, "JPEG")
    im.save(filename.replace('.jpg', '_sized.jpg'))
    
    lib.imtools.get_reverse_transposition(transposition)

    Get the reverse transposition method.

    Parameter:transposition – transpostion, e.g. Image.ROTATE_90
    Returns:inverse transpostion, e.g. Image.ROTATE_270
    lib.imtools.get_size(im, format, **options)

    Gets the size in bytes if the image would be written to a file.

    Parameter:format (string) – image file format (e.g. 'JPEG')
    Returns:the file size in bytes
    Return type:int
    lib.imtools.get_unused_palette_indices(image)

    Get unused color indices in an image palette.

    Parameter:image – image with a palette
    Returns:unused color indices of the palette
    Return type:set of 0-255
    lib.imtools.get_used_palette_colors(image)

    Get used colors in an image palette as a sequence of (r, g, b) tuples.

    Parameter:image – image with a palette
    Returns:used colors of the palette
    Return type:sequence of (r, g, b) tuples
    lib.imtools.get_used_palette_indices(image)

    Get used color indices in an image palette.

    Parameter:image – image with a palette
    Returns:used colors of the palette
    Return type:set of integers (0-255)
    lib.imtools.has_alpha(image)

    Checks if the image has an alpha band. i.e. the image mode is either RGBA or LA. The transparency in the P mode doesn’t count as an alpha band

    Parameter:image (PIL image object) – the image to check
    Returns:True or False
    Return type:boolean
    lib.imtools.has_transparency(image)

    Checks if the image has transparency. The image has an alpha band or a P mode with transparency.

    Parameter:image (PIL image object) – the image to check
    Returns:True or False
    Return type:boolean
    lib.imtools.identity_color(image, value=0)

    Get a color with same color component values.

    >>> im = Image.new('RGB', (1,1))
    >>> identity_color(im, 2)
    (2, 2, 2)
    >>> im = Image.new('L', (1,1))
    >>> identity_color(im, 7)
    7
    
    lib.imtools.open_image(uri)

    Open local files or remote files over http.

    Parameter:uri (string) – image location
    Returns:image
    Return type:pil.Image
    lib.imtools.open_image_data(data)

    Open image from format data.

    Parameter:data (string) – image format data
    Returns:image
    Return type:pil.Image
    lib.imtools.open_image_exif(uri)

    Open local files or remote files over http and transpose the image to its exif orientation.

    Parameter:uri (string) – image location
    Returns:image
    Return type:pil.Image
    lib.imtools.paste(destination, source, box=(0, 0), mask=None, force=False)

    “Pastes the source image into the destination image while using an alpha channel if available.

    Parameters:
    • destination (PIL image object) – destination image
    • source (PIL image object) – source image
    • box (tuple) – The box argument is either a 2-tuple giving the upper left corner, a 4-tuple defining the left, upper, right, and lower pixel coordinate, or None (same as (0, 0)). If a 4-tuple is given, the size of the pasted image must match the size of the region.
    • mask (bool or PIL image object) – mask or None
    • force (bool) –

      With mask: Force the invert alpha paste or not.

      Without mask:

      • If True it will overwrite the alpha channel of the destination with the alpha channel of the source image. So in that case the pixels of the destination layer will be abandonned and replaced by exactly the same pictures of the destination image. This is mostly what you need if you paste on a transparant canvas.
      • If False this will use a mask when the image has an alpha channel. In this case pixels of the destination image will appear through where the source image is transparent.
    lib.imtools.put_alpha(image, alpha)

    Copies the given band to the alpha layer of the given image.

    Parameters:
    • image (PIL image object) – input image
    • alpha (single band image object) – the alpha band to copy
    lib.imtools.put_palette(image_to, image_from, palette=None)

    Copies the palette and transparency of one image to another.

    Parameters:
    • image_to (pil.Image) – image with a palette
    • image_from (pil.Image) – image with a palette
    • palette (sequence of (r, g, b) tuples or None) – image palette
    lib.imtools.reduce_opacity(im, opacity)

    Returns an image with reduced opacity if opacity is within [0, 1].

    Parameters:
    • im (pil.Image) – source image
    • opacity (float) – opacity within [0, 1]
    Returns im:

    image

    Return type:

    pil.Image

    >>> im = Image.new('RGBA', (1, 1), (255, 255, 255))
    >>> im = reduce_opacity(im, 0.5)
    >>> im.getpixel((0,0))
    (255, 255, 255, 127)
    
    lib.imtools.remove_alpha(image)

    Returns a copy of the image after removing the alpha band or transparency

    Parameter:image (PIL image object) – input image
    Returns:the input image after removing the alpha band or transparency
    Return type:PIL image object
    lib.imtools.save(image, filename, **options)

    Saves an image with a filename and raise the specific InvalidWriteFormatError in case of an error instead of a KeyError. Also can hack around UnicodeEncodeError (eg for IM format)

    Parameters:
    • image (pil.Image) – image
    • filename (string) – image filename
    lib.imtools.save_check_mode(image, filename, **options)
    lib.imtools.save_safely(image, filename)

    Saves an image with a filename and raise the specific InvalidWriteFormatError in case of an error instead of a KeyError. It can also save IM files with unicode.

    Parameters:
    • image (pil.Image) – image
    • filename (string) – image filename
    lib.imtools.split(image)

    Work around for bug in Pil 1.1.7

    Parameter:image (PIL image object) – input image
    Returns:the different color bands of the image (eg R, G, B)
    Return type:tuple
    lib.imtools.transpose(image, methods)

    Transpose with a sequence of transformations, mainly useful for exif.

    Parameters:
    • image (pil.Image) – image
    • methods (list) – transposition methods
    Returns:

    transposed image

    Return type:

    pil.Image

    lib.imtools.transpose_exif(image, reverse=False)

    Transpose an image to its exif orientation.

    Parameters:
    • image (pil.Image) – image
    • reverse (bool) – False when opening, True when saving
    Returns:

    transposed image

    Return type:

    pil.Image

    Previous topic

    imageTable

    Next topic

    linux

    phatch-0.2.7/docs/build/html/lib.linux.desktop.html0000644000000000000000000001145011346363116022167 0ustar rootroot00000000000000 desktop — Phatch v0.2 documentation

    desktop

    lib.linux.desktop.create_droplet(name, command, folder='~/Desktop', icon='gnome-panel-launcher.svg')

    Previous topic

    linux

    Next topic

    nautilusExtension

    phatch-0.2.7/docs/build/html/lib.linux.html0000644000000000000000000001061311346363116020517 0ustar rootroot00000000000000 linux — Phatch v0.2 documentation

    Previous topic

    imtools

    Next topic

    desktop

    phatch-0.2.7/docs/build/html/lib.linux.nautilusExtension.html0000644000000000000000000001231311346363116024256 0ustar rootroot00000000000000 nautilusExtension — Phatch v0.2 documentation

    nautilusExtension

    lib.linux.nautilusExtension.create_nautilus_extension(name, label, command, mimetypes, tooltip='', preload='', encoding='UTF8')
    lib.linux.nautilusExtension.nautilus_exists()

    Previous topic

    desktop

    Next topic

    listData

    phatch-0.2.7/docs/build/html/lib.listData.html0000644000000000000000000007466611346363116021147 0ustar rootroot00000000000000 listData — Phatch v0.2 documentation

    listData

    class lib.listData.DataDict(data=None, headers=None, id='id')

    Bases: lib.listData.DataTuple

    get(row, col, default='')

    Returns the cell value specified by the row and column index.

    Parameters:
    • row (int) – index of row
    • col (int) – index of column
    • default – value to return if column header does not exist
    Returns:

    cell value

    >>> data = DataDict([{'id': 0, 'hello':'world'},
    ... {'id': 1, 'foo':'bar'}])
    >>> data.get_headers()
    ['foo', 'hello', 'id']
    >>> data.get(0,0)
    ''
    >>> data.get(0,1)
    'world'
    >>> data.get(1,0)
    'bar'
    >>> data.get(1,1)
    ''
    >>> data.get(1,2)
    1
    
    get_by_header(row, header, default='')

    Returns the cell value specified by the row and column header.

    Parameters:
    • row (int) – index of row
    • col (string) – column header
    • default – value to return if column header does not exist
    Returns:

    cell value

    >>> data = DataDict([{'id': 0, 'hello':'world'},
    ... {'id': 1, 'foo':'bar'}], headers=['foo','hello'])
    >>> data.get_by_header(0,'foo')
    ''
    >>> data.get_by_header(0,'hello')
    'world'
    >>> data.get_by_header(1,'foo')
    'bar'
    
    get_headers()

    Get the headers of the columns.

    Returns:headers of the columns
    Return type:list of strings
    >>> data = DataDict([{'id': 0, 'hello':'world'},
    ... {'id': 1, 'foo':'bar', 'hello':'planet'}])
    >>> data.get_headers()
    ['foo', 'hello', 'id']
    
    sort(data)

    Sorts the data in place.

    >>> DataDict(id='path').sort([{'path': 'id1', 'name': 'f1'},
    ... {'path': 'id0', 'name': 'f2'}])
    [{'path': 'id0', 'name': 'f2'}, {'path': 'id1', 'name': 'f1'}]
    
    update_headers(headers=None, all=False)

    Change sequence and find all headers (dict keys) in the data.

    >>> data = DataDict([{'id': 0, 'hello':'world'},
    ... {'id': 1, 'foo':'bar'}])
    >>> data.get_headers()
    ['foo', 'hello', 'id']
    >>> data.update_headers(['hello'])
    >>> data.get_headers()
    ['hello']
    >>> data.update_headers(['hello'], all=True)
    >>> data._headers
    ['hello', 'foo', 'id']
    
    class lib.listData.DataTuple(data=None)

    Bases: object

    get(row, col)

    Returns the cell value specified by the row and col.

    Parameters:
    • row (int) – index of row
    • col (int) – index of column
    Returns:

    cell value

    >>> data = DataTuple([(0, 6)])
    >>> data.get(0,0)
    6
    
    get_headers()

    Get the headers of the columns.

    Returns:headers of the columns
    Return type:list of strings
    >>> data = DataTuple([('id1','f1'),('id0','f2')])
    >>> data.get_headers()
    ['0']
    
    set_data(data, amount=None, sort=True)

    The data is organised as tuple/list of tuples. Amount is how much is visible and not necessarily the length of the data tuple!

    Parameters:
    • data (tuple/list) – data organized in rows
    • amount (int) – amount of rows visible
    Returns:

    whether the underlying data has really changed

    Return type:

    bool

    >>> data = DataTuple()
    >>> data.set_data([(6, ),(5, )], amount=1)
    True
    >>> data.set_data([(6, ),(5, )], amount=1)
    False
    >>> len(data) == data.amount
    False
    
    set_filter(filter)

    Filters the data which is visible. It puts the visible data rows to the front and limits the amount. The visible data is automatically sorted.

    Parameter:filter (string) – substring which should appear in the data rows
    Returns:whether the filter has really changed
    Return type:bool
    >>> data = DataTuple([(6, ),(5, )])
    >>> data.set_filter('6')
    True
    >>> data.set_filter('6')
    False
    >>> data.amount
    1
    >>> len(data)
    2
    
    sort(data)

    Sorts the data in place.

    >>> DataTuple().sort([('id1','f1'),('id0','f2')])
    [('id0', 'f2'), ('id1', 'f1')]
    
    lib.listData.files_data_dict(files)

    Turns a flat file list into a hierarchical one , of which the data values can be fed to the DataDict Class (not the whole hierarchy).

    Parameter:files (list) – rows which consists of tuples, each tuples contains the full filename as the first element before other data
    Returns:folder hierarchy
    Return type:dict
    >>> import pprint
    >>> files = [{'path': 'f0/i00', 'size': '5kb'},
    ... {'path': 'f0/i01', 'size': '1kb'},
    ... {'path': 'f1/i10', 'size': '2kb'},
    ... {'path': 'f1/f2/i120', 'size': '3kb'}]
    >>> pprint.pprint(files_data_dict(files),width=60)
    {'f0/': {'children': {},
             'data': [{'path': 'f0/i00', 'size': '5kb'},
                      {'path': 'f0/i01', 'size': '1kb'}]},
     'f1/': {'children': {},
             'data': [{'path': 'f1/i10', 'size': '2kb'}]},
     'f1/f2/': {'children': {},
                'data': [{'path': 'f1/f2/i120',
                          'size': '3kb'}]}}
    
    lib.listData.files_data_tuple(files)

    Turns a flat file list into a hierarchical one, of which the data values can be fed to the DataTuple Class (not the whole hierarchy).

    Parameter:files (list) – rows which consists of tuples, each tuples contains the full filename as the first element before other data
    Returns:folder hierarchy
    Return type:dict
    >>> import pprint
    >>> files = [('f0/i00', 0), ('f0/i01', 1),
    ... ('f1/i10', 2), ('f1/f2/i120', 3),]
    >>> pprint.pprint(files_data_tuple(files),width=60)
    {'f0/': {'children': {},
             'data': [('f0/i00', 0), ('f0/i01', 1)]},
     'f1/': {'children': {}, 'data': [('f1/i10', 2)]},
     'f1/f2/': {'children': {}, 'data': [('f1/f2/i120', 3)]}}
    

    Previous topic

    nautilusExtension

    Next topic

    metadata

    phatch-0.2.7/docs/build/html/lib.metadata.html0000644000000000000000000030621711346363116021150 0ustar rootroot00000000000000 metadata — Phatch v0.2 documentation

    metadata

    class lib.metadata.DumpInfo(d=None)

    Bases: dict

    Dictionary like object which tracks changes.

    >>> d = DumpInfo({'hello': 'world'})
    >>> d['foo'] = 'bar'
    >>> d.changed
    ['foo']
    
    lib.metadata.Info
    alias of InfoZexif
    class lib.metadata.InfoEXIF(source=None, vars=None)

    Bases: lib.metadata._InfoCache

    >>> import pprint
    >>> filename = '../tests/input/exĩf ïptç.jpg'
    >>> info = InfoEXIF(filename)
    >>> pprint.pprint(sorted(info.dict.keys()))
    []
    >>> info['EXIF_Thumbnail_Compression']
    (0x0103) Short=JPEG (old-style) @ 3402
    >>> pprint.pprint(sorted(info.dict.keys()))
    ['EXIF_Thumbnail_Compression']
    >>> import pyexiv2
    >>> from other import EXIF
    >>> exif = EXIF.process_file(open(filename, 'rb'))
    >>> info = InfoEXIF(exif)
    >>> info['orientation']
    8
    >>> str(info['EXIF_Image_Orientation'])
    'Rotated 90 CCW'
    >>> info['EXIF_Thumbnail_Compression']
    (0x0103) Short=JPEG (old-style) @ 3402
    >>> pprint.pprint(sorted(info.dict.keys()))
    ['EXIF_Image_Orientation', 'EXIF_Thumbnail_Compression', 'orientation']
    >>> info.extract_all()
    >>> pprint.pprint(sorted(info.dict.keys()))
    ['EXIF_ApertureValue',
     'EXIF_ColorSpace',
     'EXIF_ComponentsConfiguration',
     'EXIF_CompressedBitsPerPixel',
     'EXIF_CustomRendered',
     'EXIF_DateTimeDigitized',
     'EXIF_DateTimeOriginal',
     'EXIF_DigitalZoomRatio',
     'EXIF_ExifImageLength',
     'EXIF_ExifImageWidth',
     'EXIF_ExifVersion',
     'EXIF_ExposureBiasValue',
     'EXIF_ExposureMode',
     'EXIF_ExposureTime',
     'EXIF_FNumber',
     'EXIF_FileSource',
     'EXIF_Flash',
     'EXIF_FlashPixVersion',
     'EXIF_FocalLength',
     'EXIF_FocalPlaneResolutionUnit',
     'EXIF_FocalPlaneXResolution',
     'EXIF_FocalPlaneYResolution',
     'EXIF_Image_DateTime',
     'EXIF_Image_ExifOffset',
     'EXIF_Image_Make',
     'EXIF_Image_Model',
     'EXIF_Image_Orientation',
     'EXIF_Image_ResolutionUnit',
     'EXIF_Image_XResolution',
     'EXIF_Image_YCbCrPositioning',
     'EXIF_Image_YResolution',
     'EXIF_InteroperabilityOffset',
     'EXIF_JPEGThumbnail',
     'EXIF_MakerNote',
     'EXIF_MakerNote_AFPointSelected',
     'EXIF_MakerNote_AFPointUsed',
     'EXIF_MakerNote_ContinuousDriveMode',
     'EXIF_MakerNote_Contrast',
     'EXIF_MakerNote_DigitalZoom',
     'EXIF_MakerNote_EasyShootingMode',
     'EXIF_MakerNote_ExposureMode',
     'EXIF_MakerNote_FirmwareVersion',
     'EXIF_MakerNote_FlashActivity',
     'EXIF_MakerNote_FlashBias',
     'EXIF_MakerNote_FlashDetails',
     'EXIF_MakerNote_FlashMode',
     'EXIF_MakerNote_FocalUnitsPerMM',
     'EXIF_MakerNote_FocusMode',
     'EXIF_MakerNote_FocusType',
     'EXIF_MakerNote_ISO',
     'EXIF_MakerNote_ImageNumber',
     'EXIF_MakerNote_ImageSize',
     'EXIF_MakerNote_ImageType',
     'EXIF_MakerNote_LongFocalLengthOfLensInFocalUnits',
     'EXIF_MakerNote_Macromode',
     'EXIF_MakerNote_MeteringMode',
     'EXIF_MakerNote_OwnerName',
     'EXIF_MakerNote_Quality',
     'EXIF_MakerNote_Saturation',
     'EXIF_MakerNote_SelfTimer',
     'EXIF_MakerNote_SequenceNumber',
     'EXIF_MakerNote_Sharpness',
     'EXIF_MakerNote_ShortFocalLengthOfLensInFocalUnits',
     'EXIF_MakerNote_SubjectDistance',
     'EXIF_MakerNote_Tag_0x0000',
     'EXIF_MakerNote_Tag_0x0001',
     'EXIF_MakerNote_Tag_0x0002',
     'EXIF_MakerNote_Tag_0x0003',
     'EXIF_MakerNote_Tag_0x0004',
     'EXIF_MakerNote_Tag_0x000D',
     'EXIF_MakerNote_Tag_0x0010',
     'EXIF_MakerNote_Tag_0x0013',
     'EXIF_MakerNote_Tag_0x0018',
     'EXIF_MakerNote_Tag_0x0019',
     'EXIF_MakerNote_Tag_0x001C',
     'EXIF_MakerNote_Tag_0x001D',
     'EXIF_MakerNote_Tag_0x001E',
     'EXIF_MakerNote_Tag_0x001F',
     'EXIF_MakerNote_Tag_0x0022',
     'EXIF_MakerNote_Tag_0x0023',
     'EXIF_MakerNote_Tag_0x0024',
     'EXIF_MakerNote_Tag_0x0025',
     'EXIF_MakerNote_Tag_0x0026',
     'EXIF_MakerNote_Tag_0x0027',
     'EXIF_MakerNote_Tag_0x0028',
     'EXIF_MakerNote_Unknown',
     'EXIF_MakerNote_WhiteBalance',
     'EXIF_MaxApertureValue',
     'EXIF_MeteringMode',
     'EXIF_SceneCaptureType',
     'EXIF_SensingMethod',
     'EXIF_ShutterSpeedValue',
     'EXIF_Thumbnail_Compression',
     'EXIF_Thumbnail_JPEGInterchangeFormat',
     'EXIF_Thumbnail_JPEGInterchangeFormatLength',
     'EXIF_Thumbnail_ResolutionUnit',
     'EXIF_Thumbnail_XResolution',
     'EXIF_Thumbnail_YResolution',
     'EXIF_UserComment',
     'EXIF_WhiteBalance',
     'orientation']
    
    class lib.metadata.InfoExif(source=None, vars=None)

    Bases: lib.metadata._InfoPyexiv2

    >>> import pprint
    >>> filename = '../tests/input/exĩf ïptç.jpg'
    >>> info = InfoExif(filename)
    >>> info['Exif_Image_DateTime']
    DateTime('2010:03:03 11:03:08')
    >>> import pyexiv2
    >>> exif = pyexiv2.Image(filename)
    >>> exif.readMetadata()
    >>> info = InfoExif(exif)
    >>> info['Exif_Image_DateTime']
    DateTime('2010:03:03 11:03:08')
    >>> print info['Exif_Image_DateTime']
    2010:03:03 11:03:08
    >>> info['Exif_Image_Orientation']
    8
    >>> info['Exif_Photo_MaxApertureValue'].__class__ == pyexiv2.Rational
    True
    >>> print info['Exif_Photo_MaxApertureValue']
    128/32
    >>> info.extract_all()
    >>> pprint.pprint(sorted(info.dict.keys()))
    ['Exif_CanonCs_0x0000',
     'Exif_CanonCs_0x0006',
     'Exif_CanonCs_0x0008',
     'Exif_CanonCs_0x0009',
     'Exif_CanonCs_0x0015',
     'Exif_CanonCs_0x001e',
     'Exif_CanonCs_0x001f',
     'Exif_CanonCs_0x0026',
     'Exif_CanonCs_0x0027',
     'Exif_CanonCs_0x0029',
     'Exif_CanonCs_0x002b',
     'Exif_CanonCs_0x002c',
     'Exif_CanonCs_0x002d',
     'Exif_CanonCs_AESetting',
     'Exif_CanonCs_AFPoint',
     'Exif_CanonCs_ColorTone',
     'Exif_CanonCs_Contrast',
     'Exif_CanonCs_DigitalZoom',
     'Exif_CanonCs_DisplayAperture',
     'Exif_CanonCs_DriveMode',
     'Exif_CanonCs_EasyMode',
     'Exif_CanonCs_ExposureProgram',
     'Exif_CanonCs_FlashActivity',
     'Exif_CanonCs_FlashDetails',
     'Exif_CanonCs_FlashMode',
     'Exif_CanonCs_FocusContinuous',
     'Exif_CanonCs_FocusMode',
     'Exif_CanonCs_FocusType',
     'Exif_CanonCs_ISOSpeed',
     'Exif_CanonCs_ImageSize',
     'Exif_CanonCs_ImageStabilization',
     'Exif_CanonCs_Lens',
     'Exif_CanonCs_LensType',
     'Exif_CanonCs_Macro',
     'Exif_CanonCs_MaxAperture',
     'Exif_CanonCs_MeteringMode',
     'Exif_CanonCs_MinAperture',
     'Exif_CanonCs_PhotoEffect',
     'Exif_CanonCs_Quality',
     'Exif_CanonCs_Saturation',
     'Exif_CanonCs_Selftimer',
     'Exif_CanonCs_Sharpness',
     'Exif_CanonCs_ZoomSourceWidth',
     'Exif_CanonCs_ZoomTargetWidth',
     'Exif_CanonSi_0x0000',
     'Exif_CanonSi_0x0001',
     'Exif_CanonSi_0x0003',
     'Exif_CanonSi_0x0006',
     'Exif_CanonSi_0x0008',
     'Exif_CanonSi_0x000a',
     'Exif_CanonSi_0x000b',
     'Exif_CanonSi_0x000c',
     'Exif_CanonSi_0x000d',
     'Exif_CanonSi_0x0010',
     'Exif_CanonSi_0x0011',
     'Exif_CanonSi_0x0012',
     'Exif_CanonSi_0x0014',
     'Exif_CanonSi_0x0017',
     'Exif_CanonSi_0x0018',
     'Exif_CanonSi_0x0019',
     'Exif_CanonSi_0x001a',
     'Exif_CanonSi_0x001b',
     'Exif_CanonSi_0x001c',
     'Exif_CanonSi_0x001d',
     'Exif_CanonSi_0x001e',
     'Exif_CanonSi_0x001f',
     'Exif_CanonSi_0x0020',
     'Exif_CanonSi_0x0021',
     'Exif_CanonSi_AFPointUsed',
     'Exif_CanonSi_ApertureValue',
     'Exif_CanonSi_FlashBias',
     'Exif_CanonSi_ISOSpeed',
     'Exif_CanonSi_Sequence',
     'Exif_CanonSi_ShutterSpeedValue',
     'Exif_CanonSi_SubjectDistance',
     'Exif_CanonSi_TargetAperture',
     'Exif_CanonSi_TargetShutterSpeed',
     'Exif_CanonSi_WhiteBalance',
     'Exif_Canon_0x0000',
     'Exif_Canon_0x0003',
     'Exif_Canon_0x000d',
     'Exif_Canon_0x0013',
     'Exif_Canon_0x0018',
     'Exif_Canon_0x0019',
     'Exif_Canon_0x001c',
     'Exif_Canon_0x001d',
     'Exif_Canon_0x001e',
     'Exif_Canon_0x001f',
     'Exif_Canon_0x0022',
     'Exif_Canon_0x0023',
     'Exif_Canon_0x0024',
     'Exif_Canon_0x0025',
     'Exif_Canon_0x0026',
     'Exif_Canon_0x0027',
     'Exif_Canon_0x0028',
     'Exif_Canon_FirmwareVersion',
     'Exif_Canon_FocalLength',
     'Exif_Canon_ImageNumber',
     'Exif_Canon_ImageType',
     'Exif_Canon_ModelID',
     'Exif_Canon_OwnerName',
     'Exif_Image_DateTime',
     'Exif_Image_ExifTag',
     'Exif_Image_Make',
     'Exif_Image_Model',
     'Exif_Image_Orientation',
     'Exif_Image_ResolutionUnit',
     'Exif_Image_XResolution',
     'Exif_Image_YCbCrPositioning',
     'Exif_Image_YResolution',
     'Exif_Iop_InteroperabilityIndex',
     'Exif_Iop_InteroperabilityVersion',
     'Exif_Iop_RelatedImageLength',
     'Exif_Iop_RelatedImageWidth',
     'Exif_MakerNote_ByteOrder',
     'Exif_MakerNote_Offset',
     'Exif_Photo_ApertureValue',
     'Exif_Photo_ColorSpace',
     'Exif_Photo_ComponentsConfiguration',
     'Exif_Photo_CompressedBitsPerPixel',
     'Exif_Photo_CustomRendered',
     'Exif_Photo_DateTimeDigitized',
     'Exif_Photo_DateTimeOriginal',
     'Exif_Photo_DigitalZoomRatio',
     'Exif_Photo_ExifVersion',
     'Exif_Photo_ExposureBiasValue',
     'Exif_Photo_ExposureMode',
     'Exif_Photo_ExposureTime',
     'Exif_Photo_FNumber',
     'Exif_Photo_FileSource',
     'Exif_Photo_Flash',
     'Exif_Photo_FlashpixVersion',
     'Exif_Photo_FocalLength',
     'Exif_Photo_FocalPlaneResolutionUnit',
     'Exif_Photo_FocalPlaneXResolution',
     'Exif_Photo_FocalPlaneYResolution',
     'Exif_Photo_InteroperabilityTag',
     'Exif_Photo_MakerNote',
     'Exif_Photo_MaxApertureValue',
     'Exif_Photo_MeteringMode',
     'Exif_Photo_PixelXDimension',
     'Exif_Photo_PixelYDimension',
     'Exif_Photo_SceneCaptureType',
     'Exif_Photo_SensingMethod',
     'Exif_Photo_ShutterSpeedValue',
     'Exif_Photo_UserComment',
     'Exif_Photo_WhiteBalance',
     'Exif_Thumbnail_Compression',
     'Exif_Thumbnail_JPEGInterchangeFormat',
     'Exif_Thumbnail_JPEGInterchangeFormatLength',
     'Exif_Thumbnail_ResolutionUnit',
     'Exif_Thumbnail_XResolution',
     'Exif_Thumbnail_YResolution',
     'orientation']
    
    class lib.metadata.InfoExtract(filename=None, vars=None, sources=None)

    Create an info like dictionary which uses a collection of several info instances and can evaluate Python expressions.

    >>> import Image
    >>> import pprint
    >>> list(InfoExtract.get_vars_by_info(['mode'])[0].values())
    [['mode', 'orientation']]
    >>> list(InfoExtract.get_vars_by_info(['width'])[0].values())
    [['width', 'orientation']]
    >>> vars = ['format', 'width', 'subfolder', 'orientation', 'crazy']
    >>> filename = '../tests/input/exĩf ïptç.jpg'
    >>> image = Image.open(filename)
    >>> info = InfoExtract(filename, vars + ['Pexif_DateTimeOriginal'])
    >>> info.types()
    ['File', 'Exif', 'Pil', 'Pexif']
    >>> info.vars_unknown
    ['crazy']
    >>> info['format']
    'JPEG'
    >>> pprint.pprint(sorted(info.dump(expand=False).items()))
    [('Pexif_DateTimeOriginal', DateTime('2010:03:03 11:03:08')),
     ('format', 'JPEG'),
     ('height', 640),
     ('orientation', 8),
     ('size', (480, 640)),
     ('subfolder', u''),
     ('width', 480)]
    >>> info['size']  # uses orientation
    (480, 640)
    >>> image.size  # ignores orientation
    (640, 480)
    >>> info['Pexif_DateTimeOriginal']
    DateTime('2010:03:03 11:03:08')
    >>> pprint.pprint(sorted(info.dump(expand=True).items()))
    [('Pexif_DateTimeOriginal', DateTime('2010:03:03 11:03:08')),
     ('Pexif_DateTimeOriginal.day', 3),
     ('Pexif_DateTimeOriginal.hour', 11),
     ('Pexif_DateTimeOriginal.microsecond', 0),
     ('Pexif_DateTimeOriginal.minute', 3),
     ('Pexif_DateTimeOriginal.month', 3),
     ('Pexif_DateTimeOriginal.monthname', 'March'),
     ('Pexif_DateTimeOriginal.second', 8),
     ('Pexif_DateTimeOriginal.weekday', 2),
     ('Pexif_DateTimeOriginal.weekdayname', 'Wednesday'),
     ('Pexif_DateTimeOriginal.year', 2010),
     ('format', 'JPEG'),
     ('height', 640),
     ('orientation', 8),
     ('size', (480, 640)),
     ('size[0]', 480),
     ('size[1]', 640),
     ('subfolder', u''),
     ('width', 480)]
    >>> info.extract_all()
    >>> pprint.pprint(sorted(info.dump(expand=False).keys()))
    ['Exif_CanonCs_0x0000',
     'Exif_CanonCs_0x0006',
     'Exif_CanonCs_0x0008',
     'Exif_CanonCs_0x0009',
     'Exif_CanonCs_0x0015',
     'Exif_CanonCs_0x001e',
     'Exif_CanonCs_0x001f',
     'Exif_CanonCs_0x0026',
     'Exif_CanonCs_0x0027',
     'Exif_CanonCs_0x0029',
     'Exif_CanonCs_0x002b',
     'Exif_CanonCs_0x002c',
     'Exif_CanonCs_0x002d',
     'Exif_CanonCs_AESetting',
     'Exif_CanonCs_AFPoint',
     'Exif_CanonCs_ColorTone',
     'Exif_CanonCs_Contrast',
     'Exif_CanonCs_DigitalZoom',
     'Exif_CanonCs_DisplayAperture',
     'Exif_CanonCs_DriveMode',
     'Exif_CanonCs_EasyMode',
     'Exif_CanonCs_ExposureProgram',
     'Exif_CanonCs_FlashActivity',
     'Exif_CanonCs_FlashDetails',
     'Exif_CanonCs_FlashMode',
     'Exif_CanonCs_FocusContinuous',
     'Exif_CanonCs_FocusMode',
     'Exif_CanonCs_FocusType',
     'Exif_CanonCs_ISOSpeed',
     'Exif_CanonCs_ImageSize',
     'Exif_CanonCs_ImageStabilization',
     'Exif_CanonCs_Lens',
     'Exif_CanonCs_LensType',
     'Exif_CanonCs_Macro',
     'Exif_CanonCs_MaxAperture',
     'Exif_CanonCs_MeteringMode',
     'Exif_CanonCs_MinAperture',
     'Exif_CanonCs_PhotoEffect',
     'Exif_CanonCs_Quality',
     'Exif_CanonCs_Saturation',
     'Exif_CanonCs_Selftimer',
     'Exif_CanonCs_Sharpness',
     'Exif_CanonCs_ZoomSourceWidth',
     'Exif_CanonCs_ZoomTargetWidth',
     'Exif_CanonSi_0x0000',
     'Exif_CanonSi_0x0001',
     'Exif_CanonSi_0x0003',
     'Exif_CanonSi_0x0006',
     'Exif_CanonSi_0x0008',
     'Exif_CanonSi_0x000a',
     'Exif_CanonSi_0x000b',
     'Exif_CanonSi_0x000c',
     'Exif_CanonSi_0x000d',
     'Exif_CanonSi_0x0010',
     'Exif_CanonSi_0x0011',
     'Exif_CanonSi_0x0012',
     'Exif_CanonSi_0x0014',
     'Exif_CanonSi_0x0017',
     'Exif_CanonSi_0x0018',
     'Exif_CanonSi_0x0019',
     'Exif_CanonSi_0x001a',
     'Exif_CanonSi_0x001b',
     'Exif_CanonSi_0x001c',
     'Exif_CanonSi_0x001d',
     'Exif_CanonSi_0x001e',
     'Exif_CanonSi_0x001f',
     'Exif_CanonSi_0x0020',
     'Exif_CanonSi_0x0021',
     'Exif_CanonSi_AFPointUsed',
     'Exif_CanonSi_ApertureValue',
     'Exif_CanonSi_FlashBias',
     'Exif_CanonSi_ISOSpeed',
     'Exif_CanonSi_Sequence',
     'Exif_CanonSi_ShutterSpeedValue',
     'Exif_CanonSi_SubjectDistance',
     'Exif_CanonSi_TargetAperture',
     'Exif_CanonSi_TargetShutterSpeed',
     'Exif_CanonSi_WhiteBalance',
     'Exif_Canon_0x0000',
     'Exif_Canon_0x0003',
     'Exif_Canon_0x000d',
     'Exif_Canon_0x0013',
     'Exif_Canon_0x0018',
     'Exif_Canon_0x0019',
     'Exif_Canon_0x001c',
     'Exif_Canon_0x001d',
     'Exif_Canon_0x001e',
     'Exif_Canon_0x001f',
     'Exif_Canon_0x0022',
     'Exif_Canon_0x0023',
     'Exif_Canon_0x0024',
     'Exif_Canon_0x0025',
     'Exif_Canon_0x0026',
     'Exif_Canon_0x0027',
     'Exif_Canon_0x0028',
     'Exif_Canon_FirmwareVersion',
     'Exif_Canon_FocalLength',
     'Exif_Canon_ImageNumber',
     'Exif_Canon_ImageType',
     'Exif_Canon_ModelID',
     'Exif_Canon_OwnerName',
     'Exif_Image_DateTime',
     'Exif_Image_ExifTag',
     'Exif_Image_Make',
     'Exif_Image_Model',
     'Exif_Image_Orientation',
     'Exif_Image_ResolutionUnit',
     'Exif_Image_XResolution',
     'Exif_Image_YCbCrPositioning',
     'Exif_Image_YResolution',
     'Exif_Iop_InteroperabilityIndex',
     'Exif_Iop_InteroperabilityVersion',
     'Exif_Iop_RelatedImageLength',
     'Exif_Iop_RelatedImageWidth',
     'Exif_MakerNote_ByteOrder',
     'Exif_MakerNote_Offset',
     'Exif_Photo_ApertureValue',
     'Exif_Photo_ColorSpace',
     'Exif_Photo_ComponentsConfiguration',
     'Exif_Photo_CompressedBitsPerPixel',
     'Exif_Photo_CustomRendered',
     'Exif_Photo_DateTimeDigitized',
     'Exif_Photo_DateTimeOriginal',
     'Exif_Photo_DigitalZoomRatio',
     'Exif_Photo_ExifVersion',
     'Exif_Photo_ExposureBiasValue',
     'Exif_Photo_ExposureMode',
     'Exif_Photo_ExposureTime',
     'Exif_Photo_FNumber',
     'Exif_Photo_FileSource',
     'Exif_Photo_Flash',
     'Exif_Photo_FlashpixVersion',
     'Exif_Photo_FocalLength',
     'Exif_Photo_FocalPlaneResolutionUnit',
     'Exif_Photo_FocalPlaneXResolution',
     'Exif_Photo_FocalPlaneYResolution',
     'Exif_Photo_InteroperabilityTag',
     'Exif_Photo_MakerNote',
     'Exif_Photo_MaxApertureValue',
     'Exif_Photo_MeteringMode',
     'Exif_Photo_PixelXDimension',
     'Exif_Photo_PixelYDimension',
     'Exif_Photo_SceneCaptureType',
     'Exif_Photo_SensingMethod',
     'Exif_Photo_ShutterSpeedValue',
     'Exif_Photo_UserComment',
     'Exif_Photo_WhiteBalance',
     'Exif_Thumbnail_Compression',
     'Exif_Thumbnail_JPEGInterchangeFormat',
     'Exif_Thumbnail_JPEGInterchangeFormatLength',
     'Exif_Thumbnail_ResolutionUnit',
     'Exif_Thumbnail_XResolution',
     'Exif_Thumbnail_YResolution',
     'Pexif_ApertureValue',
     'Pexif_ColorSpace',
     'Pexif_ComponentsConfiguration',
     'Pexif_CompressedBitsPerPixel',
     'Pexif_DateTime',
     'Pexif_DateTimeDigitized',
     'Pexif_DateTimeOriginal',
     'Pexif_ExifImageHeight',
     'Pexif_ExifImageWidth',
     'Pexif_ExifInteroperabilityOffset',
     'Pexif_ExifOffset',
     'Pexif_ExifVersion',
     'Pexif_ExposureTime',
     'Pexif_FNumber',
     'Pexif_FileSource',
     'Pexif_Flash',
     'Pexif_FlashPixVersion',
     'Pexif_FocalLength',
     'Pexif_FocalPlaneResolutionUnit',
     'Pexif_FocalPlaneXResolution',
     'Pexif_FocalPlaneYResolution',
     'Pexif_Make',
     'Pexif_MakerNote',
     'Pexif_MaxApertureValue',
     'Pexif_MeteringMode',
     'Pexif_Model',
     'Pexif_Orientation',
     'Pexif_ResolutionUnit',
     'Pexif_SensingMethod',
     'Pexif_UserComment',
     'Pexif_XResolution',
     'Pexif_YCbCrPositioning',
     'Pexif_YResolution',
     'aspect',
     'compression',
     'day',
     'desktop',
     'dpi',
     'filename',
     'filesize',
     'folder',
     'foldername',
     'format',
     'formatdescription',
     'gamma',
     'height',
     'hour',
     'interlace',
     'minute',
     'mode',
     'month',
     'monthname',
     'orientation',
     'path',
     'root',
     'second',
     'size',
     'subfolder',
     'transparency',
     'type',
     'weekday',
     'weekdayname',
     'width',
     'year']
    >>> info.set(filename='../tests/input/exĩf ïptç.jpg',
    ...     vars=vars) #exclude Pexif.* vars
    >>> pprint.pprint(sorted(info.dump(expand=False).items()))
    [('format', 'JPEG'),
     ('height', 640),
     ('orientation', 8),
     ('size', (480, 640)),
     ('subfolder', u''),
     ('width', 480)]
    >>> info['root']
    u'../tests'
    >>> d = info.dump(expand=False)
    >>> pprint.pprint(sorted(d.items()))
    [('foldername', u'input'),
     ('format', 'JPEG'),
     ('height', 640),
     ('orientation', 8),
     ('root', u'../tests'),
     ('size', (480, 640)),
     ('subfolder', u''),
     ('width', 480)]
    >>> type(d) == dict
    True
    >>> info.set(vars=vars + ['Iptc_Application2_Copyright'])
    >>> info.extract_all()
    >>> pprint.pprint(sorted(info.dump(expand=False).keys()))
    ['Exif_CanonCs_0x0000',
     'Exif_CanonCs_0x0006',
     'Exif_CanonCs_0x0008',
     'Exif_CanonCs_0x0009',
     'Exif_CanonCs_0x0015',
     'Exif_CanonCs_0x001e',
     'Exif_CanonCs_0x001f',
     'Exif_CanonCs_0x0026',
     'Exif_CanonCs_0x0027',
     'Exif_CanonCs_0x0029',
     'Exif_CanonCs_0x002b',
     'Exif_CanonCs_0x002c',
     'Exif_CanonCs_0x002d',
     'Exif_CanonCs_AESetting',
     'Exif_CanonCs_AFPoint',
     'Exif_CanonCs_ColorTone',
     'Exif_CanonCs_Contrast',
     'Exif_CanonCs_DigitalZoom',
     'Exif_CanonCs_DisplayAperture',
     'Exif_CanonCs_DriveMode',
     'Exif_CanonCs_EasyMode',
     'Exif_CanonCs_ExposureProgram',
     'Exif_CanonCs_FlashActivity',
     'Exif_CanonCs_FlashDetails',
     'Exif_CanonCs_FlashMode',
     'Exif_CanonCs_FocusContinuous',
     'Exif_CanonCs_FocusMode',
     'Exif_CanonCs_FocusType',
     'Exif_CanonCs_ISOSpeed',
     'Exif_CanonCs_ImageSize',
     'Exif_CanonCs_ImageStabilization',
     'Exif_CanonCs_Lens',
     'Exif_CanonCs_LensType',
     'Exif_CanonCs_Macro',
     'Exif_CanonCs_MaxAperture',
     'Exif_CanonCs_MeteringMode',
     'Exif_CanonCs_MinAperture',
     'Exif_CanonCs_PhotoEffect',
     'Exif_CanonCs_Quality',
     'Exif_CanonCs_Saturation',
     'Exif_CanonCs_Selftimer',
     'Exif_CanonCs_Sharpness',
     'Exif_CanonCs_ZoomSourceWidth',
     'Exif_CanonCs_ZoomTargetWidth',
     'Exif_CanonSi_0x0000',
     'Exif_CanonSi_0x0001',
     'Exif_CanonSi_0x0003',
     'Exif_CanonSi_0x0006',
     'Exif_CanonSi_0x0008',
     'Exif_CanonSi_0x000a',
     'Exif_CanonSi_0x000b',
     'Exif_CanonSi_0x000c',
     'Exif_CanonSi_0x000d',
     'Exif_CanonSi_0x0010',
     'Exif_CanonSi_0x0011',
     'Exif_CanonSi_0x0012',
     'Exif_CanonSi_0x0014',
     'Exif_CanonSi_0x0017',
     'Exif_CanonSi_0x0018',
     'Exif_CanonSi_0x0019',
     'Exif_CanonSi_0x001a',
     'Exif_CanonSi_0x001b',
     'Exif_CanonSi_0x001c',
     'Exif_CanonSi_0x001d',
     'Exif_CanonSi_0x001e',
     'Exif_CanonSi_0x001f',
     'Exif_CanonSi_0x0020',
     'Exif_CanonSi_0x0021',
     'Exif_CanonSi_AFPointUsed',
     'Exif_CanonSi_ApertureValue',
     'Exif_CanonSi_FlashBias',
     'Exif_CanonSi_ISOSpeed',
     'Exif_CanonSi_Sequence',
     'Exif_CanonSi_ShutterSpeedValue',
     'Exif_CanonSi_SubjectDistance',
     'Exif_CanonSi_TargetAperture',
     'Exif_CanonSi_TargetShutterSpeed',
     'Exif_CanonSi_WhiteBalance',
     'Exif_Canon_0x0000',
     'Exif_Canon_0x0003',
     'Exif_Canon_0x000d',
     'Exif_Canon_0x0013',
     'Exif_Canon_0x0018',
     'Exif_Canon_0x0019',
     'Exif_Canon_0x001c',
     'Exif_Canon_0x001d',
     'Exif_Canon_0x001e',
     'Exif_Canon_0x001f',
     'Exif_Canon_0x0022',
     'Exif_Canon_0x0023',
     'Exif_Canon_0x0024',
     'Exif_Canon_0x0025',
     'Exif_Canon_0x0026',
     'Exif_Canon_0x0027',
     'Exif_Canon_0x0028',
     'Exif_Canon_FirmwareVersion',
     'Exif_Canon_FocalLength',
     'Exif_Canon_ImageNumber',
     'Exif_Canon_ImageType',
     'Exif_Canon_ModelID',
     'Exif_Canon_OwnerName',
     'Exif_Image_DateTime',
     'Exif_Image_ExifTag',
     'Exif_Image_Make',
     'Exif_Image_Model',
     'Exif_Image_Orientation',
     'Exif_Image_ResolutionUnit',
     'Exif_Image_XResolution',
     'Exif_Image_YCbCrPositioning',
     'Exif_Image_YResolution',
     'Exif_Iop_InteroperabilityIndex',
     'Exif_Iop_InteroperabilityVersion',
     'Exif_Iop_RelatedImageLength',
     'Exif_Iop_RelatedImageWidth',
     'Exif_MakerNote_ByteOrder',
     'Exif_MakerNote_Offset',
     'Exif_Photo_ApertureValue',
     'Exif_Photo_ColorSpace',
     'Exif_Photo_ComponentsConfiguration',
     'Exif_Photo_CompressedBitsPerPixel',
     'Exif_Photo_CustomRendered',
     'Exif_Photo_DateTimeDigitized',
     'Exif_Photo_DateTimeOriginal',
     'Exif_Photo_DigitalZoomRatio',
     'Exif_Photo_ExifVersion',
     'Exif_Photo_ExposureBiasValue',
     'Exif_Photo_ExposureMode',
     'Exif_Photo_ExposureTime',
     'Exif_Photo_FNumber',
     'Exif_Photo_FileSource',
     'Exif_Photo_Flash',
     'Exif_Photo_FlashpixVersion',
     'Exif_Photo_FocalLength',
     'Exif_Photo_FocalPlaneResolutionUnit',
     'Exif_Photo_FocalPlaneXResolution',
     'Exif_Photo_FocalPlaneYResolution',
     'Exif_Photo_InteroperabilityTag',
     'Exif_Photo_MakerNote',
     'Exif_Photo_MaxApertureValue',
     'Exif_Photo_MeteringMode',
     'Exif_Photo_PixelXDimension',
     'Exif_Photo_PixelYDimension',
     'Exif_Photo_SceneCaptureType',
     'Exif_Photo_SensingMethod',
     'Exif_Photo_ShutterSpeedValue',
     'Exif_Photo_UserComment',
     'Exif_Photo_WhiteBalance',
     'Exif_Thumbnail_Compression',
     'Exif_Thumbnail_JPEGInterchangeFormat',
     'Exif_Thumbnail_JPEGInterchangeFormatLength',
     'Exif_Thumbnail_ResolutionUnit',
     'Exif_Thumbnail_XResolution',
     'Exif_Thumbnail_YResolution',
     'Iptc_Application2_Byline',
     'Iptc_Application2_Caption',
     'Iptc_Application2_Copyright',
     'Iptc_Application2_ObjectName',
     'Iptc_Application2_RecordVersion',
     'aspect',
     'compression',
     'day',
     'desktop',
     'dpi',
     'filename',
     'filesize',
     'folder',
     'foldername',
     'format',
     'formatdescription',
     'gamma',
     'height',
     'hour',
     'interlace',
     'minute',
     'mode',
     'month',
     'monthname',
     'orientation',
     'path',
     'root',
     'second',
     'size',
     'subfolder',
     'transparency',
     'type',
     'weekday',
     'weekdayname',
     'width',
     'year']
    
    clear()
    Clear alfl info types.
    clear_cache()
    Clears the look up cache.
    dump(filename=None, expand=False, free=False)

    Dump as a dictionary.

    Parameter:vars (list) – list of variables as arguments
    classmethod expand(d)
    classmethod expand_var(d, key, value)
    extract_all()
    Extract all variables provided by the info types.
    classmethod get_vars_by_info(vars, old_vars=None, filename='test.png')

    Organizes vars in a dictionary by Info class (e.g. InfoPil, InfoExif, ...).

    As this is a class method, old_vars has to be passed explicitly instead of being obtained from the instance.

    Parameters:
    • vars (list of strings) – variables
    • old_vars (list of strings) – previous variables
    open(filename, sources=None)

    Feeds a new file as source for all info types.

    Parameter:filename (string) – filename of the source file

    Note

    This will clear the cache.

    provides(var)

    Whether this info provides this variable.

    Parameter:var (string) – name of the variable
    Returns:if var is provided
    Return type:bool
    classmethod scan_infos(vars)

    Scan which info types the variables vars require.

    Parameter:vars (list) – variables which have to be provided
    Returns:variables by required info types
    Return type:dict of lists
    set(filename=None, vars=None, sources=None)

    Set new parameters for the info.

    Parameters:
    • filename (string) – filename of the source file
    • vars (list) – variables that have to be extracted (e.g. orientation)
    set_orientation(orientation=None)
    set_source(d)

    Set source of an info from the collection. Raises an UnknownTypeError in case an unknown type is given.

    Parameter:d (dict/str) – dictionary {type: source} or type
    set_vars(vars, filename='test.png')

    Limit the range of the possible variables which might be looked up.

    Parameter:vars (list) – variables that have to be extracted (e.g. orientation)
    types()

    Which info types are used by this instance.

    Returns:info types
    Return type:list
    class lib.metadata.InfoFile(source=None, vars=None)

    Bases: lib.metadata._InfoCache

    Wraps a lazy file path access around an image filename.

    >>> info = InfoFile('/home/phatch/test.png')
    >>> info['foldername']
    u'phatch'
    >>> sorted(info.dict.keys())
    ['foldername', 'root']
    >>> info['type']
    u'png'
    >>> sorted(info.dict.keys())
    ['filename', 'foldername', 'root', 'type']
    >>> info.set_source('/home/gimp/world.jpg')
    >>> info['type']
    u'jpg'
    >>> sorted(info.dict.keys())
    ['filename', 'type']
    
    classmethod split_vars(vars)
    class lib.metadata.InfoIptc(source=None, vars=None)

    Bases: lib.metadata._InfoPyexiv2

    >>> import pprint
    >>> filename = '../tests/input/exĩf ïptç.jpg'
    >>> info = InfoIptc(filename)
    >>> info['Iptc_Application2_RecordVersion']
    0
    >>> import pyexiv2
    >>> exif = pyexiv2.Image(filename)
    >>> exif.readMetadata()
    >>> info = InfoIptc(exif)
    >>> info['Iptc_Application2_RecordVersion']
    0
    >>> info['Iptc_Application2_Copyright']
    'Copyright 2010, www.stani.be'
    >>> pprint.pprint(sorted(info.dict.keys()))
    ['Iptc_Application2_Copyright', 'Iptc_Application2_RecordVersion']
    >>> info.extract_all()
    >>> pprint.pprint(sorted(info.dict.keys()))
    ['Iptc_Application2_Byline',
     'Iptc_Application2_Caption',
     'Iptc_Application2_Copyright',
     'Iptc_Application2_ObjectName',
     'Iptc_Application2_RecordVersion']
    
    class lib.metadata.InfoPexif(source=None, vars=None)

    Bases: lib.metadata._InfoPilMetadata

    Wraps a lazy PIL exif var access to an image.

    >>> import pprint
    >>> filename = '../tests/input/exĩf ïptç.jpg'
    >>> info = InfoPexif(filename)
    >>> info['orientation']
    8
    >>> info['Pexif_DateTimeOriginal']
    DateTime('2010:03:03 11:03:08')
    >>> pprint.pprint(info.dict.keys())
    ['Pexif_DateTimeOriginal', 'orientation']
    >>> import Image
    >>> image = Image.open(filename)
    >>> info = InfoPexif(image)
    >>> info['Pexif_DateTimeOriginal']
    DateTime('2010:03:03 11:03:08')
    >>> pprint.pprint(info.dict.keys())
    ['Pexif_DateTimeOriginal']
    >>> info.extract_all()
    >>> info['Pexif_DateTimeOriginal']
    DateTime('2010:03:03 11:03:08')
    >>> pprint.pprint(info.dict.keys())
    ['orientation',
     'Pexif_Make',
     'Pexif_Flash',
     'Pexif_YResolution',
     'Pexif_DateTimeDigitized',
     'Pexif_ExifImageWidth',
     'Pexif_FocalPlaneYResolution',
     'Pexif_MaxApertureValue',
     'Pexif_MeteringMode',
     'Pexif_ExifVersion',
     'Pexif_MakerNote',
     'Pexif_FNumber',
     'Pexif_FocalPlaneResolutionUnit',
     'Pexif_SensingMethod',
     'Pexif_Orientation',
     'Pexif_FocalLength',
     'Pexif_XResolution',
     'Pexif_ExifOffset',
     'Pexif_FileSource',
     'Pexif_CompressedBitsPerPixel',
     'Pexif_ExifImageHeight',
     'Pexif_ResolutionUnit',
     'Pexif_ExifInteroperabilityOffset',
     'Pexif_ApertureValue',
     'Pexif_ExposureTime',
     'Pexif_ColorSpace',
     'Pexif_YCbCrPositioning',
     'Pexif_Model',
     'Pexif_DateTime',
     'Pexif_ComponentsConfiguration',
     'Pexif_FlashPixVersion',
     'Pexif_FocalPlaneXResolution',
     'Pexif_DateTimeOriginal',
     'Pexif_UserComment']
    
    classmethod provides(var)
    class lib.metadata.InfoPil(source=None, vars=None)

    Bases: lib.metadata._InfoPil

    Wraps a lazy PIL var access to an image.

    Parameter:image (Pil.Image/function) – Pil.Image or callable to retrieve it
    >>> import pprint
    >>> import Image
    >>> image = Image.new('L',(1,2))
    >>> info = InfoPil(image)
    >>> info['format']
    >>> info.provides('formatdescription')
    True
    >>> pprint.pprint(info.possible_vars)
    ['aspect',
     'compression',
     'dpi',
     'format',
     'formatdescription',
     'gamma',
     'height',
     'interlace',
     'mode',
     'size',
     'transparency',
     'width']
    >>> sorted(info.dict.keys())
    ['format', 'orientation']
    >>> info['mode']
    'L'
    >>> info['height']
    2
    >>> info['format']
    >>> info['dpi']
    72
    >>> sorted(info.dict.keys())
    ['dpi', 'format', 'height', 'mode', 'orientation', 'size', 'width']
    >>> info.reset_geometry()
    >>> sorted(info.dict.keys())
    ['dpi', 'format', 'mode', 'orientation']
    >>> info.extract_all()
    >>> pprint.pprint(sorted(info.dict.keys()))
    ['aspect',
     'compression',
     'dpi',
     'format',
     'formatdescription',
     'gamma',
     'height',
     'interlace',
     'mode',
     'orientation',
     'size',
     'transparency',
     'width']
    
    classmethod needs_orientation(vars)

    InfoPil always needs to know the orientation.

    Returns:True
    Return type:bool
    reset_geometry()
    set_orientation(orientation)
    exception lib.metadata.InfoProvideError

    Bases: exceptions.Exception

    When the variable can’t be provided by the current info instances.

    class lib.metadata.InfoTest
    classmethod provides(var)
    class lib.metadata.InfoZexif(source=None, vars=None)

    Bases: lib.metadata._InfoPilMetadata

    Wraps a lazy PIL exif var access to an image.

    >>> import pprint
    >>> filename = '../tests/input/exĩf ïptç.jpg'
    >>> info = InfoZexif(filename)
    >>> info['Zexif_0x9202']
    (128, 32)
    >>> import Image
    >>> image = Image.open(filename)
    >>> info = InfoZexif(image)
    >>> info['Zexif_0x9202']
    (128, 32)
    >>> pprint.pprint(info.dict.keys())
    ['Zexif_0x9202']
    >>> info.extract_all()
    >>> pprint.pprint(info.dict.keys())
    ['Zexif_0x9202',
     'Zexif_0x0128',
     'orientation',
     'Zexif_0x9205',
     'Zexif_0x9101',
     'Zexif_0xa001',
     'Zexif_0xa002',
     'Zexif_0x9209',
     'Zexif_0xa20f',
     'Zexif_0xa005',
     'Zexif_0xa20e',
     'Zexif_0x9000',
     'Zexif_0xa217',
     'Zexif_0x9003',
     'Zexif_0x9004',
     'Zexif_0xa210',
     'Zexif_0x011b',
     'Zexif_0x9286',
     'Zexif_0x9207',
     'Zexif_0x829d',
     'Zexif_0x829a',
     'Zexif_0xa404',
     'Zexif_0xa406',
     'Zexif_0xa401',
     'Zexif_0xa402',
     'Zexif_0xa403',
     'Zexif_0xa000',
     'Zexif_0x9102',
     'Zexif_0x0110',
     'Zexif_0x0112',
     'Zexif_0x0132',
     'Zexif_0x920a',
     'Zexif_0x8769',
     'Zexif_0x010f',
     'Zexif_0x927c',
     'Zexif_0xa300',
     'Zexif_0x0213',
     'Zexif_0x011a',
     'Zexif_0xa003']
    
    classmethod provides(var)
    exception lib.metadata.UnknownTypeError
    Bases: exceptions.Exception
    lib.metadata.convert_from_string(value)

    If value is recongized as a datetime string, convert value into DateTime instance.

    Parameter:value (string) – any value
    Returns:same value or converted in date
    Return type:string/DateTime
    lib.metadata.get_vars_by_info(filename)
    lib.metadata.info
    alias of InfoZexif
    lib.metadata.is_editable_tag(tag)
    lib.metadata.is_writable_tag(tag)
    lib.metadata.is_writeable_not_exif_tag(tag, mode)

    Previous topic

    listData

    Next topic

    metadataTest

    phatch-0.2.7/docs/build/html/lib.metadataTest.html0000644000000000000000000001573411346363116022011 0ustar rootroot00000000000000 metadataTest — Phatch v0.2 documentation

    metadataTest

    class lib.metadataTest.DateTime(source)
    from_exif_string(exif_string)

    Creates the DateTime from an exif string (as returned by PIL exif).

    Parameter:exif_string (string) – datetime string with format %Y:%m:%d %H:%M:%S
    class lib.metadataTest.Rational
    lib.metadataTest.is_string(x)

    Checks whether x is a string not.

    Parameter:x – variable
    Returns:True if string, False otherwise
    Return type:bool
    lib.metadataTest.main(path)
    lib.metadataTest.now()

    Previous topic

    metadata

    Next topic

    notify

    phatch-0.2.7/docs/build/html/lib.notify.html0000644000000000000000000001217611346363116020676 0ustar rootroot00000000000000 notify — Phatch v0.2 documentation

    notify

    lib.notify.init(app_name, icon=None)
    lib.notify.register(app_name)
    lib.notify.send(title, message, icon='gtk-dialog-info', wxicon=None, urgency=None, timeout=None)

    Previous topic

    metadataTest

    Next topic

    odict

    phatch-0.2.7/docs/build/html/lib.odict.html0000644000000000000000000001610711346363116020466 0ustar rootroot00000000000000 odict — Phatch v0.2 documentation

    odict

    class lib.odict.ReadOnlyDict(data)
    class lib.odict.odict(d=None)

    Bases: dict

    This one uses generators in places where it can, and plays nicely with deepcopy.

    clear()
    index(key)
    items()
    keys()
    move(key, index)
    Move the specified to key to before the specified index.
    popitem()
    setdefault(key, failobj=None)
    update(d)
    values()

    Previous topic

    notify

    Next topic

    openImage

    phatch-0.2.7/docs/build/html/lib.openImage.html0000644000000000000000000003420111346363116021263 0ustar rootroot00000000000000 openImage — Phatch v0.2 documentation

    openImage

    lib.openImage.check_libtiff(compression)
    lib.openImage.get_info_libtiff(filename)

    Get tiff info of a file with tiffinfo, which needs to be installed on your system.

    Parameter:filename (string) – name of tiff image file
    Returns:info about the file
    Return type:dict
    lib.openImage.open(uri)
    lib.openImage.open_dcraw(filename)
    Open a camera raw image file.
    lib.openImage.open_image_exif(uri)
    lib.openImage.open_image_exif_thumb(uri)
    lib.openImage.open_image_with_command(filename, command, app, extension='png', temp_ext=None)

    Open with an external command (such as Inkscape, dcraw, imagemagick).

    Parameters:
    • filename (string) – filename, from which a temporary filename will be derived
    • command (string) – conversion command with optional temp file interpolation
    • extension (string) – file type
    • temp_ext (string) – if a temp file can not be specified to the command (eg dcraw), give the file extension of the command output
    lib.openImage.open_image_with_pil(uri)
    lib.openImage.open_image_without_pil(filename, method_register)
    Try to open images which PIL can’t handle.
    lib.openImage.open_imagemagick(filename)
    Open an image with Imagemagick.
    lib.openImage.open_inkscape(filename)
    Open an Inkscape file.
    lib.openImage.open_libtiff(filename)

    Opens a tiff file with tiffcp, which needs to be installed on your system.

    Parameter:filename (string) – name of tiff image file
    Returns:PIL image
    Return type:Image.Image
    lib.openImage.open_thumb(filename, image=None, open_image=<function open_image_exif_thumb at 0x271f050>, size=(128, 128), save_cache=True)
    lib.openImage.open_xcf(filename)
    Open a gimp file.
    lib.openImage.save_libtiff(image, filename, compression=None, **options)

    Saves a tiff compressed file with tiffcp.

    Parameters:
    • image (Image.Image) – PIL image
    • filename (string) – name of tiff image file
    • compression (string) – g3, g4, jpeg, lzw, tiff_lzw
    Returns:

    log message

    Return type:

    string

    lib.openImage.verify_dcraw(filename)
    Verify a camera raw image file.
    lib.openImage.verify_image(info_file, valid, invalid, method_register=<lib.system.MethodRegister instance at 0x2724cf8>)
    lib.openImage.verify_image_with_pil(info_file, valid, invalid)
    lib.openImage.verify_image_without_pil(info_file, method_register, valid, invalid)
    Try to verify images which PIL can’t handle.
    lib.openImage.verify_imagemagick(filename)
    Verify an image with Imagemagick.
    lib.openImage.verify_xcf(filename)
    Verify a gimp file.

    Previous topic

    odict

    Next topic

    pyWx

    phatch-0.2.7/docs/build/html/lib.pyWx.about.html0000644000000000000000000002152211346363116021441 0ustar rootroot00000000000000 about — Phatch v0.2 documentation

    about

    class lib.pyWx.about.CreditsDialog(parent, credits)

    Bases: lib.pyWx.about.wxgCreditsDialog

    Credit dialog.

    OnClose(event)
    class lib.pyWx.about.Dialog(parent, title, logo, description, website, credits, license)

    Bases: lib.pyWx.about.wxgAboutDialog

    OnClose(event)
    OnCredits(event)
    OnLicense(event)
    lib.pyWx.about.example()
    class lib.pyWx.about.wxgAboutDialog(*args, **kwds)

    Bases: wx._windows.Dialog

    OnClose(event)
    OnCredits(event)
    OnLicense(event)
    class lib.pyWx.about.wxgCreditsDialog(*args, **kwds)

    Bases: wx._windows.Dialog

    OnClose(event)

    Previous topic

    pyWx

    Next topic

    autoCompleteCtrls

    phatch-0.2.7/docs/build/html/lib.pyWx.autoCompleteCtrls.html0000644000000000000000000002366211346363116024007 0ustar rootroot00000000000000 autoCompleteCtrls — Phatch v0.2 documentation

    autoCompleteCtrls

    class lib.pyWx.autoCompleteCtrls.AutoCompleteIconCtrl(parent, id, value, style, choices, colNames=None, multiChoices=None, showHead=True, dropDownClick=True, colFetch=-1, colSearch=0, hideOnNoMatch=True, selectCallback=None, entryCallback=None, matchFunction=None, **therest)

    Bases: lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl

    SetChoices(choices)
    Sets the choices available in the popup wx.ListBox. The items will be sorted case insensitively.
    match(text, choice)
    Demonstrate “smart” matching feature, by ignoring http:// and www. when doing matches.
    class lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl(parent, id, value, style, choices)

    Bases: other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete

    StartEvents()
    StopEvents()
    initialize(value, choices)
    match(text, choice)
    Demonstrate “smart” matching feature, by ignoring http:// and www. when doing matches.
    onActivate(evt)
    onClickToggleDown(event)
    onControlChanged(event)
    onListClick(evt)
    setDynamicChoices()

    Previous topic

    about

    Next topic

    clipboard

    phatch-0.2.7/docs/build/html/lib.pyWx.clipboard.html0000644000000000000000000001374311346363116022274 0ustar rootroot00000000000000 clipboard — Phatch v0.2 documentation

    clipboard

    lib.pyWx.clipboard.copy_text(text)

    Copies text to the clipboard.

    Parameter:text (string) – text to copy
    Returns:if the operation was succesfull
    Return type:bool
    lib.pyWx.clipboard.get_text()

    Gets text from the clipboard.

    Returns:text from the clipboard or an empty string
    Return type:string

    Previous topic

    autoCompleteCtrls

    Next topic

    compatible

    phatch-0.2.7/docs/build/html/lib.pyWx.compatible.html0000644000000000000000000001301611346363116022445 0ustar rootroot00000000000000 compatible — Phatch v0.2 documentation

    compatible

    This library enables enhanced features based on wxPython versions.

    lib.pyWx.compatible.GCDC(x)
    class lib.pyWx.compatible.SearchCtrl(*args, **keyw)

    Bases: wx._controls.SearchCtrl

    OnCancel(event)

    Previous topic

    clipboard

    Next topic

    dialogsInspector

    phatch-0.2.7/docs/build/html/lib.pyWx.dialogsInspector.html0000644000000000000000000001267211346363116023646 0ustar rootroot00000000000000 dialogsInspector — Phatch v0.2 documentation

    dialogsInspector

    class lib.pyWx.dialogsInspector.AddTagDialog(*args, **kwds)

    Bases: wx._windows.Dialog

    OnAdd(event)
    OnTagText(event)

    Previous topic

    compatible

    Next topic

    droplet

    phatch-0.2.7/docs/build/html/lib.pyWx.droplet.html0000644000000000000000000002243411346363116022003 0ustar rootroot00000000000000 droplet — Phatch v0.2 documentation

    droplet

    class lib.pyWx.droplet.FileDropTarget(method)

    Bases: wx._misc.FileDropTarget

    OnDropFiles(x, y, filenames)
    class lib.pyWx.droplet.Frame(parent, title, bitmap, method=None, label='', label_color=wx.Colour(), label_angle=0, label_pos=(0, 0), auto=False, pos=(0, 0), OnShow=None, splash=False, tooltip='')

    Bases: lib.pyWx.droplet.Mixin, wx._windows.Frame

    OnDoubleClick(evt)
    OnLeftDown(evt)
    OnLeftUp(evt)
    OnMouseMove(evt)
    OnPaint(evt)
    OnRightUp(evt)
    OnShow(bool)
    SetWindowShape(*evt)
    show(bool=True)
    class lib.pyWx.droplet.Mixin
    SetAsFileDropTarget(object, method)
    lib.pyWx.droplet.fix_paths(paths)

    Previous topic

    dialogsInspector

    Next topic

    folderFileBrowser

    phatch-0.2.7/docs/build/html/lib.pyWx.folderFileBrowser.html0000644000000000000000000003502411346363116023750 0ustar rootroot00000000000000 folderFileBrowser — Phatch v0.2 documentation

    folderFileBrowser

    class lib.pyWx.folderFileBrowser.ListCtrl(*args, **kwds)

    Bases: wx._controls.ListCtrl

    CreateColumns()
    InitData(data)
    OnGetItemAttr(item)
    OnGetItemImage(item)
    OnGetItemText(item, col)
    RefreshAllItems()
    SetData(data, amount=None)
    SetFilter(filter)
    class lib.pyWx.folderFileBrowser.OpenMixin

    Bases: object

    GetTreeLabel(label, parent_label)
    get_list_file(index)
    get_tree_folder(item)
    on_list_item_activated(event)
    on_tree_item_activated(event)
    start_list_item(index)
    start_tree_item(item)
    class lib.pyWx.folderFileBrowser.Panel(parent, id, data, Data, headers=None, **options)

    Bases: lib.pyWx.folderFileBrowser.WxgPanel

    GetTreeLabel(label, parent_label)
    SetColumnWidths(*widths)
    SetData(data_tree, Data, headers, id='path')
    UpdateHeaders(headers=None)
    on_filter_text(event)
    on_tree_sel_changed(event)
    class lib.pyWx.folderFileBrowser.PreviewMixin

    Bases: lib.pyWx.folderFileBrowser.OpenMixin

    on_list_item_selected(event)
    show_preview(filename)
    class lib.pyWx.folderFileBrowser.WxgPanel(*args, **kwds)
    Bases: wx._windows.Panel
    lib.pyWx.folderFileBrowser.example_data_tuple()
    lib.pyWx.folderFileBrowser.example_dict_data()

    Previous topic

    droplet

    Next topic

    graphics

    phatch-0.2.7/docs/build/html/lib.pyWx.graphics.html0000644000000000000000000001275211346363116022134 0ustar rootroot00000000000000 graphics — Phatch v0.2 documentation

    graphics

    lib.pyWx.graphics.bitmap(icon, size=(48, 48), client=u'wxART_OTHER_C')
    lib.pyWx.graphics.bitmap_open(x, height=64)
    lib.pyWx.graphics.image(icon, size=(48, 48))

    Previous topic

    folderFileBrowser

    Next topic

    imageFileBrowser

    phatch-0.2.7/docs/build/html/lib.pyWx.html0000644000000000000000000001462311346363116020334 0ustar rootroot00000000000000 pyWx — Phatch v0.2 documentation phatch-0.2.7/docs/build/html/lib.pyWx.imageFileBrowser.html0000644000000000000000000002233111346363116023554 0ustar rootroot00000000000000 imageFileBrowser — Phatch v0.2 documentation

    imageFileBrowser

    class lib.pyWx.imageFileBrowser.Dialog(parent, files, icon_size=(64, 64), **keyw)

    Bases: wx._windows.Dialog

    OnActivated(event)
    OnItemSelected(event)
    OnText(event)
    Select(value)
    SetValue(value)
    ShowPath(state)
    class lib.pyWx.imageFileBrowser.ListCtrl(parent, files, icon_size=(64, 64), checkboard=False, **keyw)

    Bases: wx._controls.ListCtrl

    Deselect(index)
    GetItemFile(item)
    GetItemLabel(item)
    GetLabel(file)
    Select(index)
    lib.pyWx.imageFileBrowser.example()
    lib.pyWx.imageFileBrowser.truncate(content, length=100, suffix='...')

    Previous topic

    graphics

    Next topic

    imageInspector

    phatch-0.2.7/docs/build/html/lib.pyWx.imageInspector.html0000644000000000000000000011752411346363116023310 0ustar rootroot00000000000000 imageInspector — Phatch v0.2 documentation

    imageInspector

    class lib.pyWx.imageInspector.AddTagDialog(parent, keys, *args, **keyw)

    Bases: lib.pyWx.dialogsInspector.AddTagDialog

    GetModal()

    The dialog should be invoked by this method.

    Returns:tag, value
    Return type:string, *
    OnAdd(event)
    This gets called when the Add button is pressed.
    OnTagText(event)

    This event is binded to the tag wx.TextCtrl:

    self.Bind(wx.EVT_TEXT, self.OnTagText, self.tag)

    class lib.pyWx.imageInspector.Browser(parent, tags, content_ctrl_keyw, *args, **keyw)

    Bases: lib.pyWx.tag.Browser

    ContentCtrl
    alias of GridTag
    GetPaintMessage()
    class lib.pyWx.imageInspector.Frame(parent, filename='', icon=None, thumb_size=(128, 128), *args, **kwds)

    Bases: wx._windows.Frame

    class Browser(parent, tags, content_ctrl_keyw, *args, **keyw)

    Bases: lib.pyWx.tag.Browser

    ContentCtrl
    alias of GridTag
    GetPaintMessage()
    Frame.GetGrid()
    Frame.OnActivate(event)
    Frame.OpenImage(filename)
    Frame.OpenImages(filenames)
    Frame.SetTitleFilename(filename)
    To be called from the grid.
    Frame.UpdateIfNeeded(event=None)
    class lib.pyWx.imageInspector.Grid(parent, thumb_size=(128, 128))

    Bases: lib.pyWx.droplet.Mixin, wx.grid.Grid

    AddColumnRow(col)
    AddRow()
    Ask(message, title='')
    AskText(question, value='', title='')
    ChangeRowValues(row)
    CopyCellValue(row, col)
    CopyRowLabel(row)
    CreateRowLabelMenu(menu, row)
    DeleteCell(row, col)
    DeleteCols(pos=0, num=1)
    DeleteRows(pos=0, num=1)
    GetCellRowCol(event=None)
    OnColLabelPaint(evt)
    OnCornerLabelPaint(evt)
    OnDrop(filenames, x, y)
    OnGridCellChange(event)
    OnGridCellLeftClick(evt)
    OnGridCellRightClicked(event)
    (row, evt) -> display a popup menu when a row label is right clicked
    OnGridColLabelRightClicked(col)
    OnGridEditorHidden(evt)
    OnGridLabelLeftDclicked(event)
    OnGridLabelRightClicked(event)
    OnGridRowLabelRightClicked(row)
    OnKeyDown(event)
    OnRowLabelPaint(evt)
    OpenImage(filename)
    OpenImages(filenames)
    ProcessKey(key_code, row, col, shift, ctrl, alt)
    RefreshAll(update_column=False, force_thumbs=False)
    RenameRowLabelValue(row)
    SetTitleFilename(filename)
    ShowError(message, title=u'Image Inspector')
    ShowLog()
    ShowMessage(message, title='', style=260)
    class Table(thumb_size=(128, 128))

    Bases: wx.grid.PyGridTableBase

    DeleteCols(pos=0, num=1)
    DeleteRows(pos=0, num=1)
    GetAttr(row, col, kind)

    Get the attribute of a grid cell. The attribute defines:

    • color (odd/even rows)
    • read-only
    Parameters:
    • row (int) – row
    • col (int) – column
    • kind – not used (but obligatory for wxPython)
    Returns:

    attribute

    GetColLabelValue(col)
    GetNumberCols()
    GetNumberRows()
    GetRowLabelValue(row)
    GetValue(row, col)
    IsEditableCell(row, col)
    IsEmptyCell(row, col)
    SetRowColours(colors=(wx.Colour(254, 255, 255, 255), wx.Colour(250, 250, 250, 255)))

    Define the base attribute for odd and even rows:

    • background color
    • text color
    • selected color

    The selected color is based on the system (gtk, windows or mac os x).

    SetRowLabelValue(row, value)
    SetValue(row, col, value)
    Grid.UpdateIfNeeded()
    Grid.UpdateRowsColsNumbers()
    Only consider adding or removing rows.
    Grid.UpdateThumbs(force_thumbs=False)
    Grid.UpdateValues()
    Update all displayed values
    Grid.show_error(message, title)
    Grid.show_message(message, title='', style=260)
    class lib.pyWx.imageInspector.GridTag(parent, thumb_size=(128, 128))

    Bases: lib.pyWx.imageInspector.OpenMixin, lib.pyWx.tag.ContentMixin, lib.pyWx.imageInspector.Grid

    IsEmpty()
    SetFilter(filter=None)
    SetTag(tag)
    Filters from all_data to tag_data
    class lib.pyWx.imageInspector.OpenMixin

    Bases: object

    GetTopLevelParent()
    OnOpen(event)
    OnOpenUrl(event)
    OpenImage(filename)
    OpenImages(filenames)
    class lib.pyWx.imageInspector.Table(thumb_size=(128, 128))

    Bases: wx.grid.PyGridTableBase

    DeleteCols(pos=0, num=1)
    DeleteRows(pos=0, num=1)
    GetAttr(row, col, kind)

    Get the attribute of a grid cell. The attribute defines:

    • color (odd/even rows)
    • read-only
    Parameters:
    • row (int) – row
    • col (int) – column
    • kind – not used (but obligatory for wxPython)
    Returns:

    attribute

    GetColLabelValue(col)
    GetNumberCols()
    GetNumberRows()
    GetRowLabelValue(row)
    GetValue(row, col)
    IsEditableCell(row, col)
    IsEmptyCell(row, col)
    SetRowColours(colors=(wx.Colour(254, 255, 255, 255), wx.Colour(250, 250, 250, 255)))

    Define the base attribute for odd and even rows:

    • background color
    • text color
    • selected color

    The selected color is based on the system (gtk, windows or mac os x).

    SetRowLabelValue(row, value)
    SetValue(row, col, value)
    lib.pyWx.imageInspector.empty_bitmap(width, height)
    lib.pyWx.imageInspector.getPencilBitmap()
    lib.pyWx.imageInspector.getPencilData()
    lib.pyWx.imageInspector.getPencilImage()

    Previous topic

    imageFileBrowser

    Next topic

    inspector

    phatch-0.2.7/docs/build/html/lib.pyWx.inspector.html0000644000000000000000000003363611346363116022346 0ustar rootroot00000000000000 inspector — Phatch v0.2 documentation

    inspector

    This unites Table and Grid in one with the following presumptions: - the grid only grows in rows

    class lib.pyWx.inspector.Grid(parent, data, *arg, **keyw)

    Bases: wx.grid.Grid

    AttrIncRef(attr)
    GetTableAttr(row, col, kind)
    GetTableValue(row, col)
    IsTableEmptyCell()
    OnRightDown(event)
    RefreshAll()
    SetAttrReadOnly(attr, bool)
    SetRowColours(odd=wx.Colour(250, 250, 250, 255), even=wx.Colour(254, 255, 255, 255))
    SetTableValue(row, col, value)
    class Table(grid)

    Bases: wx.grid.PyGridTableBase

    DeleteRows(pos=0, numRows=1)
    GetAttr(row, col, kind)
    GetGrid()
    GetNumberCols()
    GetNumberRows()
    GetValue(row, col)
    IsEmptyCell(row, col)
    SetValue(row, col, value)
    Grid.UpdateNumberRows()
    Only consider adding or removing rows.
    Grid.UpdateValues()
    Send an event to the grid table to update all displayed values
    class lib.pyWx.inspector.Table(grid)

    Bases: wx.grid.PyGridTableBase

    DeleteRows(pos=0, numRows=1)
    GetAttr(row, col, kind)
    GetGrid()
    GetNumberCols()
    GetNumberRows()
    GetValue(row, col)
    IsEmptyCell(row, col)
    SetValue(row, col, value)
    class lib.pyWx.inspector.TestFrame(parent)
    Bases: wx._windows.Frame

    Previous topic

    imageInspector

    Next topic

    inspectorTag

    phatch-0.2.7/docs/build/html/lib.pyWx.inspectorTag.html0000644000000000000000000002463611346363116023002 0ustar rootroot00000000000000 inspectorTag — Phatch v0.2 documentation

    inspectorTag

    class lib.pyWx.inspectorTag.Frame(parent, data, tags, icon=None, *args, **kwds)

    Bases: wx._windows.Frame

    Browser
    alias of TestBrowser
    CreateBitmapButton(id, tooltip, size=(24, 24), style=2097152)
    GetGrid()
    OnClose(event)
    class lib.pyWx.inspectorTag.Grid(parent, data, *arg, **keyw)

    Bases: lib.pyWx.tag.ContentMixin, lib.pyWx.inspector.Grid

    IsEmpty()
    SetData(data, tag)
    class lib.pyWx.inspectorTag.TestBrowser(parent, tags, content_ctrl_keyw, *args, **keyw)

    Bases: lib.pyWx.tag.Browser

    ContentCtrl
    alias of TestContentGrid
    class lib.pyWx.inspectorTag.TestContentGrid(parent, data, *arg, **keyw)

    Bases: lib.pyWx.inspectorTag.Grid

    SetData(data)
    SetFilter(filter=None)
    SetTag(tag, filter=None)
    class lib.pyWx.inspectorTag.TestFrame(parent)
    Bases: wx._windows.Frame

    Previous topic

    inspector

    Next topic

    paint

    phatch-0.2.7/docs/build/html/lib.pyWx.paint.html0000644000000000000000000001347011346363116021445 0ustar rootroot00000000000000 paint — Phatch v0.2 documentation

    paint

    class lib.pyWx.paint.Mixin
    EnableBackgroundPainting(object, state=True, color=wx.Colour())
    GetPaintMessage()
    OnEraseBackground(event=None, paint_object=None)
    lib.pyWx.paint.example()

    Previous topic

    inspectorTag

    Next topic

    popup

    phatch-0.2.7/docs/build/html/lib.pyWx.popup.html0000644000000000000000000006541311346363116021501 0ustar rootroot00000000000000 popup — Phatch v0.2 documentation

    popup

    All translations should be done here. Only controls eg. choice controls can give 100%safe english strings. SetValue(english) Display(dutch) #or any other language GetValue(english)

    The bridge between fields and ctrls is done as follows: formField.Field <-> treeEdit.create_popup <-> popup.Ctrl

    class lib.pyWx.popup.AutoCompleteDictionaryFileCtrl(parent, value, size, dictionary, **extra)

    Bases: lib.pyWx.popup.DictionaryFileCtrl

    InputCtrl
    alias of AutoCompleteTextCtrl
    class lib.pyWx.popup.BooleanCtrl(parent, value, size, on_change=None)

    Bases: lib.pyWx.popup._CtrlRelevantMixin, lib.pyWx.popup._Ctrl, wx._controls.CheckBox

    Get()
    class lib.pyWx.popup.ChoiceCtrl(parent, value, size, choices, on_change=None)

    Bases: lib.pyWx.popup._CtrlRelevantMixin, lib.pyWx.popup._CtrlWithItems, wx._controls.Choice

    SetValue(value)
    class lib.pyWx.popup.ColorCtrl(parent, value, size)

    Bases: lib.pyWx.popup._Ctrl, wx.lib.colourselect.ColourSelect

    GetColorAsString(color=None)
    GetValue()
    OnSelectColor(event)
    class lib.pyWx.popup.ComboCtrl(parent, value, size, choices, style=[, 'DROPDOWN', 'SORT'])

    Bases: lib.pyWx.popup._CtrlWithItems, wx._controls.ComboBox

    Get()
    RegisterStyle(style)
    from a list of strings [‘DROPDOWN’,’SORT’] to wx
    class lib.pyWx.popup.DictionaryFileCtrl(parent, value, size, dictionary, **extra)

    Bases: lib.pyWx.popup.LabelFileCtrl

    GetDefaultPath(default_path=None)
    class lib.pyWx.popup.EditPanel(parent, typ, value, extra={}, size=(28, 28), pos=(0, 0), offset=0, label='', border=0, CtrlMixin=None)

    Bases: wx._windows.Panel

    See for example create_popup in treeEdit

    Close()
    Loses focus
    class lib.pyWx.popup.FileCtrl(parent, value, size, **extra)

    Bases: lib.pyWx.popup._PathCtrl

    GetWildcard()
    OnBrowse(event)
    class lib.pyWx.popup.FileSizeCtrl(parent, value, size, **extra)
    Bases: lib.pyWx.popup.PixelCtrl
    class lib.pyWx.popup.FloatSliderCtrl(parent, value, size, **extra)

    Bases: lib.pyWx.popup.SliderCtrl

    Needs to mimic a wx.SliderCtrl

    GetValue()
    OnScroll(event)
    OnSpin(event)
    class lib.pyWx.popup.FolderCtrl(parent, value, size, **extra)

    Bases: lib.pyWx.popup._PathCtrl

    OnBrowse(event)
    class lib.pyWx.popup.FontFileCtrl(parent, value, size, dictionary, **extra)

    Bases: lib.pyWx.popup.AutoCompleteDictionaryFileCtrl

    Close()
    GetDefaultPath(default_path=None)
    class lib.pyWx.popup.ForcedBoxSizer(orient, height, border=0)

    Bases: wx._core.BoxSizer

    AddForced(item, proportion, flag=2288, border=None, size=None)
    class lib.pyWx.popup.ImageDictionaryFileCtrl(parent, value, size, extensions, dictionary, dialog, show_path=True, on_change=None, icon_size=(64, 64))

    Bases: lib.pyWx.popup._CtrlRelevantMixin, lib.pyWx.popup._Ctrl, wx._controls.Button

    GetValue()
    OnChange(event, value=None)
    SetValue(value)
    class lib.pyWx.popup.ImageReadFileCtrl(parent, value, size, **extra)
    Bases: lib.pyWx.popup.LabelFileCtrl
    class lib.pyWx.popup.LabelFileCtrl(parent, value, size, **extra)

    Bases: lib.pyWx.popup.FileCtrl

    GetWildcard()
    exception lib.pyWx.popup.NotImplementedError(instance, method)
    Bases: exceptions.Exception
    class lib.pyWx.popup.PixelCtrl(parent, value, size, **extra)

    Bases: lib.pyWx.popup._ComposedCtrl

    GetValue()
    SetFocus()
    SetValue(value)
    SizeCtrl
    alias of TextCtrl
    SplitValue(value)
    Split value and unit
    lib.pyWx.popup.SetMinVerSize(item, size, border=0)
    class lib.pyWx.popup.SliderCtrl(parent, value, size, **extra)

    Bases: lib.pyWx.popup._ComposedCtrl

    Needs to mimic a wx.SliderCtrl

    GetValue()
    OnScroll(event)
    OnSpin(event)
    SetBackgroundColour(color)
    SetFocus()
    class lib.pyWx.popup.TextCtrl(parent, value, id=-1, choices=None, on_change=None, **keyw)
    Bases: lib.pyWx.popup._CtrlRelevantMixin, lib.pyWx.popup._CtrlChoices, wx._controls.ComboBox
    lib.pyWx.popup.ctrl_factory(name, CtrlMixin)
    lib.pyWx.popup.example()
    lib.pyWx.popup.untranslated(self, x)

    Previous topic

    paint

    Next topic

    screenshot

    phatch-0.2.7/docs/build/html/lib.pyWx.screenshot.html0000644000000000000000000001315511346363116022507 0ustar rootroot00000000000000 screenshot — Phatch v0.2 documentation

    screenshot

    lib.pyWx.screenshot.get(rect)
    Takes a screenshot of the screen at give pos & size (rect).
    lib.pyWx.screenshot.get_window(window)
    lib.pyWx.screenshot.save(rect, filename)
    lib.pyWx.screenshot.save_window(window, filename)

    Previous topic

    popup

    Next topic

    shell

    phatch-0.2.7/docs/build/html/lib.pyWx.shell.html0000644000000000000000000001254111346363116021437 0ustar rootroot00000000000000 shell — Phatch v0.2 documentation

    shell

    class lib.pyWx.shell.Frame(parent, title='Shell', intro='', values={}, icon=None, **kw)

    Bases: wx._windows.Frame

    OnIdle(event)
    Free the CPU to do other things.
    on_close(event)

    Previous topic

    screenshot

    Next topic

    tag

    phatch-0.2.7/docs/build/html/lib.pyWx.tag.html0000644000000000000000000003170111346363116021102 0ustar rootroot00000000000000 tag — Phatch v0.2 documentation

    tag

    class lib.pyWx.tag.Browser(parent, tags, content_ctrl_keyw, *args, **keyw)

    Bases: lib.pyWx.paint.Mixin, wx._windows.Panel

    ContentCtrl needs to be a class which implements these methods: - content.SetTag <- browser.OnTag - content.SetFilter <- browser.OnFilter

    CheckEmpty()
    ContentCtrl
    alias of Panel
    EnableResize(state=True, object=None)
    GetContent()
    GetItemTags(item)
    Can be overwritten.
    GetTags(items)
    IsEmpty()
    OnFilter(event)
    OnSize(event)
    OnTag(event)
    class lib.pyWx.tag.ContentMixin

    Bases: object

    CheckEmpty()
    GetBrowser()
    GetEmpty()
    GetFilter()
    GetTag()
    SetTag(tag)
    class lib.pyWx.tag.TestBrowser(parent, tags, content_ctrl_keyw, *args, **keyw)

    Bases: lib.pyWx.tag.Browser

    ContentCtrl
    alias of TestContentCtrl
    class lib.pyWx.tag.TestContentCtrl(*args, **keyw)

    Bases: lib.pyWx.tag.ContentMixin, wx._controls.TextCtrl

    IsEmpty()
    SetFilter(filter)
    SetTag(tag)
    class lib.pyWx.tag.TestFrame(parent)
    Bases: wx._windows.Frame
    lib.pyWx.tag.example()
    lib.pyWx.tag.extract_tags(items)

    Previous topic

    shell

    Next topic

    treeDragDrop

    phatch-0.2.7/docs/build/html/lib.pyWx.treeDragDrop.html0000644000000000000000000001624411346363116022716 0ustar rootroot00000000000000 treeDragDrop — Phatch v0.2 documentation

    treeDragDrop

    class lib.pyWx.treeDragDrop.Mixin
    DisableDrag()
    EnableDrag(dragTo=None)
    GetItemChildren(item)
    GetRootChild(item)
    MoveChildDown(item)
    MoveChildUp(item)
    OnBeginDrag(event)
    Allow drag-and-drop.
    OnCompareItems(item1, item2)
    OnEndDrag(event)
    Do the re-organization if possible

    Previous topic

    tag

    Next topic

    treeEdit

    phatch-0.2.7/docs/build/html/lib.pyWx.treeEdit.html0000644000000000000000000005155311346363116022103 0ustar rootroot00000000000000 treeEdit — Phatch v0.2 documentation

    treeEdit

    class lib.pyWx.treeEdit.TreeMixin(form_factory={}, CtrlMixin=[], icon_size=(28, 28), show_error=<function _do_nothing at 0xeecd320>, set_dirty=<function _do_nothing at 0xeecd320>)

    Bases: lib.pyWx.treeDragDrop.Mixin

    • form is like an action
    CreateImageList(icon_size)
    append_field(parent, label, field, method=None, item=None)
    append_form(form, item=-1)
    append_form_by_label(item, label)
    append_form_by_label_to_last(label)
    append_form_by_label_to_selected(label)
    append_forms(forms)
    close_popup(event=None)
    collapse_forms()
    create_popup(item)
    Connect formField.field to popup.Ctrl (VIP!)
    create_popup_selected()
    delete_all_forms()
    enable_collapse_automatic(state)
    enable_form(item, bool)
    enable_form_item(item, bool)
    enable_selected_form(bool)
    events()
    expand_forms()
    export_form(item, label=None)
    export_forms()
    get_form(item, label=None)
    get_form_field(item)
    get_form_fields_visible(item, form)

    Retrieves the visible fields and their values. If a field is dirty, its value will be overwritten with the newly given value.

    Very important: this handles the dirty fields.

    get_form_item(item)
    get_form_selected()
    get_last_form()
    get_popup_pos_offset_size(item)
    has_forms()
    import_form(item, form)
    is_field(item)
    is_field_selected()
    is_form(item)
    is_form_enabled(item)
    is_form_selected()
    move_form_selected_down()
    move_form_selected_up()
    on_item_activated(event)
    on_item_expanding(event)
    on_left_down(event)
    on_sel_changed(event)
    on_sel_changing(event)
    on_select(event)
    remove_selected_form()
    resize_popup()
    set_form_field_value(item, value_as_string)
    set_form_field_value_selected(value)
    set_item_image(x, image)
    toggle_form_item(item, event)
    tree_label(name, value)
    update_form_relevance(field_item)
    Conditional form
    lib.pyWx.treeEdit.example()
    lib.pyWx.treeEdit.get_index(li, index, n=3)
    lib.pyWx.treeEdit.rescale(image, x, y, filter=None)
    For compatibility with wxPython 2.6

    Previous topic

    treeDragDrop

    Next topic

    vlist

    phatch-0.2.7/docs/build/html/lib.pyWx.viewer.html0000644000000000000000000001330411346363116021627 0ustar rootroot00000000000000 viewer — Phatch v0.2 documentation

    viewer

    class lib.pyWx.viewer.ImageViewer

    Bases: wx._windows.ScrolledWindow

    SetImage(image)
    class lib.pyWx.viewer.Img
    SetSize(size)

    Previous topic

    treeEdit

    Next topic

    vlist

    This Page

    phatch-0.2.7/docs/build/html/lib.pyWx.vlist.html0000644000000000000000000002132411346363116021470 0ustar rootroot00000000000000 vlist — Phatch v0.2 documentation

    vlist

    class lib.pyWx.vlist.Box(parent, *args, **kwds)

    Bases: wx._windows.VListBox

    Default Icon Size is ICON_SIZE (48).

    GetIconSize()
    GetItem(n)
    Needs to be overwritten.
    GradientColour(color)
    OnDrawBackground(dc, rect, n)
    Gradient fill from color 1 to color 2 with top to bottom or left to right.
    OnDrawItem(dc, rect, n)
    OnDrawSeparator(dc, rect, n)
    OnMeasureItem(n)
    RefreshAll()
    SetIconSize(icon_size=(48, 48), units=5)
    All vertical spacing is calculated by the icon size. The higher the units, the less space in between label and summary and the more space between the label/summary and the separators.
    SetTheme(theme='default')
    SetVerticalGradient(bool=True)
    class lib.pyWx.vlist.TestFrame(parent)
    Bases: wx._windows.Frame
    lib.pyWx.vlist.example()

    Previous topic

    treeEdit

    Next topic

    vlistTag

    phatch-0.2.7/docs/build/html/lib.pyWx.vlistTag.html0000644000000000000000000002410411346363116022123 0ustar rootroot00000000000000 vlistTag — Phatch v0.2 documentation

    vlistTag

    Wraps vlist in a tag browser jacket.

    class lib.pyWx.vlistTag.Dialog(parent, tags, *args, **kwds)

    Bases: wx._windows.Dialog

    ContentBrowser
    alias of TestBrowser
    OnDoubleClick(event)
    OnOk(event)
    class lib.pyWx.vlistTag.TestBrowser(parent, tags, content_ctrl_keyw, *args, **keyw)

    Bases: lib.pyWx.tag.Browser

    ContentCtrl
    alias of TestContentBox
    class lib.pyWx.vlistTag.TestContentBox(parent, *args, **kwds)

    Bases: lib.pyWx.tag.ContentMixin, lib.pyWx.vlist.Box

    IsEmpty()
    SetFilter(filter)
    SetTag(tag)
    class lib.pyWx.vlistTag.TestDialog(parent, tags, *args, **kwds)

    Bases: lib.pyWx.vlistTag.Dialog

    ContentBox
    alias of TestContentBox
    class lib.pyWx.vlistTag.TestFrame(parent)
    Bases: wx._windows.Frame
    lib.pyWx.vlistTag.example()

    Previous topic

    vlist

    Next topic

    wildcard

    phatch-0.2.7/docs/build/html/lib.pyWx.wildcard.html0000644000000000000000000001124511346363116022121 0ustar rootroot00000000000000 wildcard — Phatch v0.2 documentation

    wildcard

    lib.pyWx.wildcard.wildcard_list(name, extensions)

    Previous topic

    vlistTag

    Next topic

    wxPil

    phatch-0.2.7/docs/build/html/lib.pyWx.wxPil.html0000644000000000000000000001303511346363116021432 0ustar rootroot00000000000000 wxPil — Phatch v0.2 documentation

    wxPil

    lib.pyWx.wxPil.pil_wxBitmap(image)
    lib.pyWx.wxPil.pil_wxImage(image)
    lib.pyWx.wxPil.wxBitmap_pil(wx_bitmap)
    lib.pyWx.wxPil.wxImage_pil(wx_image)

    Previous topic

    wildcard

    Next topic

    wxcheck

    phatch-0.2.7/docs/build/html/lib.pyWx.wxcheck.html0000644000000000000000000001146311346363116021766 0ustar rootroot00000000000000 wxcheck — Phatch v0.2 documentation

    wxcheck

    lib.pyWx.wxcheck.ensure(recommended, minimal)
    Ensures the minimal version of wxPython is installed. - minimal: as string (eg. ‘2.6’)

    Previous topic

    wxPil

    Next topic

    reverse_translation

    phatch-0.2.7/docs/build/html/lib.reverse_translation.html0000644000000000000000000001032211346363116023446 0ustar rootroot00000000000000 reverse_translation — Phatch v0.2 documentation

    reverse_translation

    Previous topic

    wxcheck

    Next topic

    safe

    phatch-0.2.7/docs/build/html/lib.safe.html0000644000000000000000000003670511346363116020310 0ustar rootroot00000000000000 safe — Phatch v0.2 documentation

    safe

    exception lib.safe.UnsafeError
    Bases: exceptions.Exception
    lib.safe.assert_safe(expr, _globals=None, _locals=None, validate=None)
    lib.safe.assert_safe_expr(meta_expr, _globals=None, _locals=None, validate=None, preprocess=<function <lambda> at 0x26a9398>)
    lib.safe.compile_expr(meta_expr, _globals=None, _locals=None, validate=None, preprocess=<function <lambda> at 0x26a92a8>, safe=True)

    If safe is a list, a restricted evaluation will be executed. Otherwise if safe is None, a unrestriced eval will be executed.

    Parameters:
    • meta_expr (string) – meta-expression with <subexpressions>
    • _globals (dict) – globals
    • _locals (dict) – locals
    • safe (list or None) – safe names which will be accepted by the compiler
    • preprocess (callable) – preprocess expression (e.g. for ## formatting)
    >>> compile_expr('<1+1>_<abs(2-3)>', safe=False)
    u'2_1'
    >>> compile_expr('<###(index+1)>', _locals={'index':1},
    ...     preprocess=format_expr, safe=False)
    u'002'
    
    lib.safe.eval_restricted(s, _globals=None, _locals=None, allowed=[, 'abs', 'int', 'min', 'max', 'pow', 'sum', 'True', 'False', 'denominator', 'numerator', 'chr', 'lower', 'str', 'title', 'upper', 'day', 'hour', 'microsecond', 'minute', 'month', 'monthname', 'second', 'weekday', 'weekdayname', 'year'])

    Evaluate an expression while allowing a restricted set of names.

    Parameter:allowed (list of string) – allowed names
    Returns:result
    >>> eval_restricted('max(a, a+b)', _globals={'a':0, 'b':2},
    ... _locals={'a':1}, allowed=['max'])
    3
    >>> try:
    ...     eval_restricted('a+b+c', _globals={'a':0, 'b':2}, _locals={'a':1})
    ... except UnsafeError, error:
    ...     print(error)
    The following name(s) are invalid: c
    
    lib.safe.eval_safe(expr, _globals=None, _locals=None, validate=None)

    Safely evaluate an expression. It will raise a ValueError if non validated names are used.

    Parameter:expr (string) – expression
    Returns:result
    >>> eval_safe('1+1')
    2
    >>> try:
    ...     eval_safe('"lowercase".upper()')
    ... except UnsafeError, error:
    ...     print(error)
    The following name(s) are invalid: upper
    
    lib.safe.extend_vars(vars, s)

    Extend vars with new unique variables from s.

    Parameters:
    • vars (list of string) – collection of previous variables
    • s (string) – multiple expressions
    >>> vars = ['a1']
    >>> extend_vars(vars, '<a1>_<foo>_<world>_<###index>')
    >>> vars
    ['a1', 'foo', 'world', 'index']
    
    lib.safe.format_expr(s)

    Returns an expression with #### in a pure python expression which can be evaluated.

    Parameter:s (expression) – expression
    >>> f = format_expr('###(5+1)')
    >>> f
    '"%03d"%(5+1)'
    >>> eval(f)
    '006'
    

    Previous topic

    reverse_translation

    Next topic

    system

    phatch-0.2.7/docs/build/html/lib.system.html0000644000000000000000000007235211346363116020714 0ustar rootroot00000000000000 system — Phatch v0.2 documentation

    system

    class lib.system.MethodRegister
    does_process(filename)

    Check if the filename can be processed by any of the registered methods.

    Parameter:filename (string) – filename
    get_methods(extension)

    Get all methods registered for an extension.

    Parameter:extension (string) – file extension
    Returns:list of methods registered for the extension
    Return type:list
    register(extensions, method)

    Register one method for multiple extensions. If the method is None, it will cancel the registration.

    Parameters:
    • extensions (list of strings) – list of file extensions
    • method – method to open a file
    • method – function
    unregister_extension(extension)

    Unregister an extension from all methods.

    Parameter:extensions (list of strings) – list of file extensions
    unregister_method(method)

    Unregister a method from all extensions.

    Parameters:
    • method – method to open a file
    • method – function
    class lib.system.TempFile(suffix='', path=None)
    close(force_remove=True, dest='')

    It is important to call this method when finished with the temporary file.

    Parameters:
    • force_remove (boolean) – Remove temporary file and raise IOError when it does not exist anymore. Set to False too allow for processes that delete the temporary file when failing to exit succesfully.
    • dest (string) – This is eg used for thumbnails in order to rename them to their proper location
    lib.system.call(args, **keyw)
    Same as subprocess.call, but if only a command line text is given it breaks it in a list of arguments so it can be used also with shell=False on Unix.
    lib.system.ensure_path(path)

    Ensure a path exists, create all not existing paths.

    It raises an OSError, if an invalid path is specified.

    Parameter:path (str) – the absolute folder path (not relative!)
    lib.system.file_extension(uri)
    lib.system.filename_to_title(filename)

    Converts a filename to a title. It replaces dashes with spaces and converts every first character to uppercase.

    Parameter:filename (str) – an absolute or relative path
    Returns:titled version of the filename
    Return type:bool
    >>> filename_to_title('~/highlight_mask.png')
    'Highlight Mask'
    
    lib.system.find_command(text)

    Find command in text

    Parameter:text (string) – command line
    Returns:text
    Return type:text
    >>> find_command('convert image.jpg image.jpg')
    'convert'
    >>> find_command('"/my apps/convert" image.jpg image.jpg')
    '"/my apps/convert"'
    >>> find_command('/my apps/convert image.jpg image.jpg')
    '/my'
    
    lib.system.find_exe(executable, quote=True, use_which=True, raise_exception=False)

    Finds an executable binary. Returns None if the binary can not be found.

    This method need some extra love for Windows and Mac.

    Parameters:
    • executable (string) – binary which will be used as a plugin (eg imagemagick)
    • quote (bool) – quote the path if it contains spaces
    • use_which (bool) – use the command which on non windows platforms
    • raise_exception (bool) – raise exception if not found
    Returns:

    absolute path to the binary

    Return type:

    string or None

    >>> find_exe('python')
    '/usr/bin/python'
    >>> find_exe('python', use_which=False)
    '/usr/bin/python'
    
    lib.system.find_in(filename, paths)

    Finds a filename in a list of paths.

    Parameters:
    • filename (str) – filename
    • paths (list of strings) – paths
    Returns:

    found filename with path or None

    Return type:

    string or None

    lib.system.fix_quotes(text)

    Fix quotes for a command line parameter. Only surround by quotes if a space is present in the filename.

    Parameter:text (string) – command line parameter
    Returns:text with quotes if needed
    Return type:string
    >>> fix_quotes('blender')
    'blender'
    >>> fix_quotes('/my programs/blender')
    '"/my programs/blender"'
    
    lib.system.is_file(path)

    Checks wether a path is a valid local or remote file.

    Parameter:path (str) – the path which has to be checked
    Returns:True if path is a valid local or remote file, False otherwise
    Return type:bool
    >>> is_file('http://www.foo.com/logo.png')
    True
    >>> is_file('ftp://foo.com/logo.png')
    True
    >>> is_file('/etc/fstab')
    True
    >>> is_file('/etc/fstap')
    False
    
    lib.system.is_www_file(url)

    Checks whether a file is remote (http or ftp).

    Parameter:url (str) – file path or url
    Returns:True if remote, False if local
    Return type:bool
    >>> is_www_file('http://www.foo.com/logo.png')
    True
    >>> is_www_file('ftp://foo.com/logo.png')
    True
    >>> is_www_file('logo.png')
    False
    
    lib.system.set_bin_paths(paths=[])

    Initializes where binaries can be found.

    Parameter:paths (list of strings) – list of paths where binaries might be found
    lib.system.shell(*args, **options)

    Runs a shell command and captures the output.

    Parameter:args (tuple of strings) – the command to be executed in the shell
    Returns:stdout and stdout
    Return type:typle of strings
    >>> shell('echo world', shell=True)
    ('world\n', '')
    
    lib.system.shell_cache(args, cache='', key=None, validate=None, **options)

    Runs a shell command and captures the output. It uses a caching system so that cached results don’t need to run a subprocess anymore. The results are cached by sys.platform

    Parameters:
    • args (tuple of strings) – the command to be executed in the shell
    • cache (string) – the filename of the cache file
    • validate – a validate (eg mtime) to validate the cache result
    Returns:

    stdout and stdout

    Return type:

    typle of strings

    >>> shell('echo world', shell=True)
    ('world\n', '')
    
    lib.system.shell_returncode(*args, **options)

    Runs a shell command and returns it’s exit code.

    Parameter:args (tuple of strings) – the command to be executed in the shell
    Returns:command exit code
    Return type:integer
    lib.system.split_command(text)

    Breaks a single command line into a list of string arguments.

    Parameter:text (str) – command line text
    Returns:list of arguments
    Return type:list of str
    >>> split_command('blender file_in.png file_out.png')
    ['blender', 'file_in.png', 'file_out.png']
    >>> split_command('"/my progs/blender" file_in.png file_out.png')
    ['"/my progs/blender"', 'file_in.png', 'file_out.png']
    
    lib.system.start(path)

    Open a file or browse a folder.

    Parameter:path (string) – location of the file
    lib.system.title(text)

    Turns a text in a title

    Parameter:text (str) – text
    Returns:title
    Return type:str
    >>> title('hello_world')
    'Hello World'
    
    lib.system.wrap(text, fill=70)

    Previous topic

    safe

    Next topic

    thumbnail

    phatch-0.2.7/docs/build/html/lib.thumbnail.html0000644000000000000000000004761011346363116021352 0ustar rootroot00000000000000 thumbnail — Phatch v0.2 documentation

    thumbnail

    The most important functions of this module are open and save_to_cache.

    For the freedesktop specifications, it follows: http://jens.triq.net/thumbnail-spec/index.html

    lib.thumbnail.delete(filename)
    lib.thumbnail.ensure_path(*paths)
    lib.thumbnail.get_filesize(filename, file_stat=None)
    lib.thumbnail.get_format_data(image, format, size=(128, 128), checkboard=False)

    Convert the image in the file bytes of the image at a certain size. By consequence this byte data is different for the chosen format (JPEG, TIFF, ...).

    Parameters:
    • image – source image
    • format (string) – image file type format
    • size (tuple of int) – target thumbnail size
    Returns:

    byte data of the thumbnail

    lib.thumbnail.get_freedesktop_filename(filename, size_label='normal')

    Get filename of freedekstop thumbnail.

    Parameters:
    • filename (string) – image filename
    • size_label (string) – 'normal' or 'large'
    Returns:

    thumbnail filename

    Return type:

    string

    lib.thumbnail.get_freedesktop_pnginfo(filename, image=None, thumb_info=None)

    Gets png metadata for the thumbnail.

    Parameter:filename (string) – image filename
    Returns:png info
    Return type:PngImagePlugin.PngInfo
    lib.thumbnail.get_freedesktop_size_label(size)

    Returns the freedesktop size label.

    Parameter:size (tuple of int) – requested size of the thumbnail
    Returns:size label
    Return type:string
    >>> get_freedesktop_size_label((128, 128))
    'normal'
    >>> get_freedesktop_size_label((128, 129))
    'large'
    
    lib.thumbnail.get_hash(filename)

    Get md5 hash of uri of filename.

    Parameter:filename (string) – filename
    Returns:hash
    Return type:string
    >>> get_hash('file:///home/user/test.png')
    '03223f4f10458a8b5d14327f3ae23136'
    
    lib.thumbnail.get_mtime(filename, file_stat=None)
    lib.thumbnail.get_uri(filename)

    Get uri of filename.

    Parameter:filename (string) – filename
    Returns:uri
    Return type:string
    >>> get_uri('/home/user/test.png')
    'file:///home/user/test.png'
    
    lib.thumbnail.is_needed(image, format='JPEG')

    Small images don’t need thumbnails

    Parameters:
    • image (pil.Image) – image
    • format (string) – image format
    Returns:

    True if large enough, False otherwise

    Return type:

    bool

    >>> im = Image.new('L', (128, 128))
    >>> is_needed(im)
    False
    >>> im = Image.new('L', (1024, 1024))
    >>> is_needed(im)
    True
    
    lib.thumbnail.needs_update(filename, size_label='normal', thumb_filename=None)
    lib.thumbnail.open(filename, image=None, open_image=<function open_image_exif at 0x2706398>, size=(128, 128), save_cache=True)

    Retrieves a thumbnail from a file. It will only use the cache if size is smaller than the cache thumbnail sizes.

    On Linux it will try to load it from the freedesktop thumbnail cache, which makes it much faster. Otherwise it will generate the thumbnail.

    Parameters:
    • filename (string) – filename of the image
    • image (pil.Image) – generate thumb from pil image directly (optional)
    • open_image (function) – alternative for Image.open
    • size (tuple of int) – size of the thumbnail
    • save_cache (bool) – save thumbnail in cache (linux only)
    Returns:

    thumbnail

    Return type:

    pil.Image

    lib.thumbnail.save_to_cache(filename, image=None, open_image=<function open_image_exif at 0x2706398>, thumb_info=None, **options)

    Save the thumb of image as a thumbnail for specified file.

    This is called by the _open function, which requires that it returns the thumb.

    Parameters:
    • filename (string) – filename of the image
    • image (pil.Image) – generate thumb from pil image directly (optional)
    • open_image (function) – alternative for Image.open
    lib.thumbnail.thumbnail(image, size=(128, 128), checkboard=False, copy=True)

    Makes a not in place thumbnail

    Parameters:
    • image (pil.Image) – image
    • size (tuple of int) – thumbnail size
    Returns:

    thumbnail

    Return type:

    Image

    >>> im = Image.new('L', (1024, 1024))
    >>> thumbnail(im, (128, 128)).size
    (128, 128)
    

    Previous topic

    system

    Next topic

    unicoding

    phatch-0.2.7/docs/build/html/lib.unicoding.html0000644000000000000000000001233411346363116021341 0ustar rootroot00000000000000 unicoding — Phatch v0.2 documentation

    unicoding

    lib.unicoding.ensure_unicode(x, encoding='UTF8', errors='replace')
    lib.unicoding.exception_to_unicode(x, encoding='UTF8', errors='replace')
    lib.unicoding.fix_filename(f, encoding=None)

    Previous topic

    thumbnail

    Next topic

    windows

    phatch-0.2.7/docs/build/html/lib.windows.html0000644000000000000000000001076211346363116021057 0ustar rootroot00000000000000 windows — Phatch v0.2 documentation

    Previous topic

    unicoding

    Next topic

    locate

    phatch-0.2.7/docs/build/html/lib.windows.locate.html0000644000000000000000000001631411346363116022324 0ustar rootroot00000000000000 locate — Phatch v0.2 documentation

    locate

    class lib.windows.locate.Applications
    Bases: dict
    class lib.windows.locate.Blender

    Bases: lib.windows.locate.RegistryApplication

    get_path(reg)
    class lib.windows.locate.Inkscape

    Bases: lib.windows.locate.RegistryApplication

    get_path(reg)
    class lib.windows.locate.RegistryApplication
    get_path(reg)
    lib.windows.locate.find_exe(app_name)

    Previous topic

    windows

    Next topic

    register

    phatch-0.2.7/docs/build/html/lib.windows.register.html0000644000000000000000000001054611346363116022702 0ustar rootroot00000000000000 register — Phatch v0.2 documentation

    register

    Previous topic

    locate

    Next topic

    shortcut

    phatch-0.2.7/docs/build/html/lib.windows.shortcut.html0000644000000000000000000001045611346363116022731 0ustar rootroot00000000000000 shortcut — Phatch v0.2 documentation

    shortcut

    Previous topic

    register

    Next topic

    linux

    phatch-0.2.7/docs/build/html/license.html0000644000000000000000000001532411346363116020241 0ustar rootroot00000000000000 License and Copyright — Phatch v0.2 documentation

    Table Of Contents

    Previous topic

    Code Style: PEP8

    Next topic

    actions

    phatch-0.2.7/docs/build/html/lico.html0000644000000000000000000001532411346363116017545 0ustar rootroot00000000000000 License and Copyright — Phatch v0.2 documentation

    Table Of Contents

    Previous topic

    Code Style: PEP8

    Next topic

    Testing

    phatch-0.2.7/docs/build/html/linux.droplet.html0000644000000000000000000002764611346363116021440 0ustar rootroot00000000000000 droplet — Phatch v0.2 documentation

    droplet

    linux.droplet.create_phatch_droplet(actionlist, folder, icon='phatch')
    linux.droplet.create_phatch_inspect_nautilus_action()
    linux.droplet.create_phatch_inspect_thunar_action(icon='phatch')
    linux.droplet.create_phatch_inspector_droplet(folder, icon='phatch')
    linux.droplet.create_phatch_nautilus_action(actionlist)
    linux.droplet.create_phatch_recent_droplet(folder, icon='phatch')
    linux.droplet.create_phatch_recent_nautilus_action()
    linux.droplet.create_phatch_recent_thunar_action(icon='phatch')
    linux.droplet.create_phatch_thunar_action(actionlist, description='', icon='phatch')
    linux.droplet.install(self)
    linux.droplet.install_menu_item(self, menu, name, label, tooltip='', style=0)
    linux.droplet.menu_action(self, program, comment, method, *args, **keyw)
    linux.droplet.on_menu_file_export_droplet_actionlist(self, event)
    linux.droplet.on_menu_file_export_droplet_inspector(self, event)
    linux.droplet.on_menu_file_export_droplet_recent(self, event)
    linux.droplet.on_menu_file_export_nautilus_actionlist(self, event)
    linux.droplet.on_menu_file_export_nautilus_inspector(self, event)
    linux.droplet.on_menu_file_export_nautilus_recent(self, event)
    linux.droplet.on_menu_file_export_thunar_actionlist(self, event)
    linux.droplet.on_menu_file_export_thunar_inspector(self, event)
    linux.droplet.on_menu_file_export_thunar_recent(self, event)

    Previous topic

    linux

    Next topic

    thunar

    phatch-0.2.7/docs/build/html/linux.html0000644000000000000000000001032011346363116017745 0ustar rootroot00000000000000 linux — Phatch v0.2 documentation

    Previous topic

    shortcut

    Next topic

    droplet

    phatch-0.2.7/docs/build/html/linux.thunar.html0000644000000000000000000001156311346363116021257 0ustar rootroot00000000000000 thunar — Phatch v0.2 documentation

    thunar

    linux.thunar.create_thunar_action(name, command, description, types='<text-files/>', patterns='*', icon='')
    linux.thunar.thunar_exists()

    Previous topic

    droplet

    Next topic

    other

    phatch-0.2.7/docs/build/html/modindex.html0000644000000000000000000010222511346363116020423 0ustar rootroot00000000000000 Global Module Index — Phatch v0.2 documentation

    Global Module Index

    A | C | D | L | O | P | W
     
    A
    actions
        actions.autocontrast
        actions.background
        actions.blender
        actions.border
        actions.brightness
        actions.canvas
        actions.color_to_alpha
        actions.colorize
        actions.common
        actions.contour
        actions.contrast
        actions.convert_mode
        actions.copy
        actions.crop
        actions.delete_tags
        actions.desaturate
        actions.effect
        actions.equalize
        actions.fit
        actions.geek
        actions.geotag
        actions.grid
        actions.highlight
        actions.imagemagick
        actions.invert
        actions.lossless_jpeg
        actions.mask
        actions.maximum
        actions.median
        actions.minimum
        actions.mirror
        actions.offset
        actions.perspective
        actions.posterize
        actions.rank
        actions.reflection
        actions.rename
        actions.rename_tag
        actions.rotate
        actions.round
        actions.saturation
        actions.save
        actions.save_metadata
        actions.scale
        actions.shadow
        actions.sketch
        actions.solarize
        actions.tamogen
        actions.text
        actions.time_shift
        actions.transpose
        actions.warm_up
        actions.watermark
        actions.write_tag
     
    C
    console
        console.console
    core
        core.api
        core.config
        core.ct
        core.message
        core.models
        core.pil
        core.preview
        core.safeGlobals
        core.settings
        core.translation
     
    D
    data
        data.info
        data.license
        data.version
     
    L
    lib
        lib._pyexiv2
        lib.colors
        lib.desktop
        lib.events
        lib.fonts
        lib.formField
        lib.gettextFix
        lib.gps
        lib.imageTable
        lib.imtools
        lib.linux
        lib.linux.desktop
        lib.linux.nautilusExtension
        lib.listData
        lib.metadata
        lib.metadataTest
        lib.notify
        lib.odict
        lib.openImage
        lib.pyWx
        lib.pyWx.about
        lib.pyWx.autoCompleteCtrls
        lib.pyWx.clipboard
        lib.pyWx.compatible
        lib.pyWx.dialogsInspector
        lib.pyWx.droplet
        lib.pyWx.folderFileBrowser
        lib.pyWx.graphics
        lib.pyWx.imageFileBrowser
        lib.pyWx.imageInspector
        lib.pyWx.inspector
        lib.pyWx.inspectorTag
        lib.pyWx.paint
        lib.pyWx.popup
        lib.pyWx.screenshot
        lib.pyWx.shell
        lib.pyWx.tag
        lib.pyWx.treeDragDrop
        lib.pyWx.treeEdit
        lib.pyWx.vlist
        lib.pyWx.vlistTag
        lib.pyWx.wildcard
        lib.pyWx.wxcheck
        lib.pyWx.wxPil
        lib.reverse_translation
        lib.safe
        lib.system
        lib.thumbnail
        lib.unicoding
        lib.windows
        lib.windows.locate
    linux
        linux.droplet
        linux.thunar
     
    O
    other
        other.EXIF
        other.findsystem
        other.pep8
        other.pubsub
        other.pyWx
        other.pyWx.img2img
        other.pyWx.img2py
        other.pyWx.TextCtrlAutoComplete
        other.pyWx.toasterbox
        other.relativedelta
        other.surd
        other.tamogen
     
    P
    pyWx
        pyWx.dialogs
        pyWx.gui
        pyWx.images
        pyWx.nuovext
        pyWx.plugin
        pyWx.wxGlade
        pyWx.wxGlade.dialogs
        pyWx.wxGlade.frame
     
    W
    windows
    phatch-0.2.7/docs/build/html/objects.inv0000644000000000000000000037332411346363116020107 0ustar rootroot00000000000000# Sphinx inventory version 1 # Project: Phatch # Version: 0.2 actions.effect mod actions.effect.html pyWx.dialogs mod pyWx.dialogs.html lib.pyWx.treeDragDrop mod lib.pyWx.treeDragDrop.html lib.imageTable mod lib.imageTable.html actions mod actions.html lib.pyWx.wildcard mod lib.pyWx.wildcard.html core.pil mod core.pil.html actions.text mod actions.text.html actions.invert mod actions.invert.html lib.pyWx.wxPil mod lib.pyWx.wxPil.html lib.pyWx.tag mod lib.pyWx.tag.html lib.gps mod lib.gps.html other.pyWx.TextCtrlAutoComplete mod other.pyWx.TextCtrlAutoComplete.html console mod console.html pyWx.plugin mod pyWx.plugin.html actions.tamogen mod actions.tamogen.html actions.mirror mod actions.mirror.html pyWx.images mod pyWx.images.html actions.offset mod actions.offset.html other mod other.html actions.colorize mod actions.colorize.html actions.fit mod actions.fit.html other.pyWx mod other.pyWx.html core.api mod core.api.html lib.system mod lib.system.html actions.contour mod actions.contour.html lib.pyWx.shell mod lib.pyWx.shell.html actions.common mod actions.common.html actions.border mod actions.border.html lib.pyWx.imageInspector mod lib.pyWx.imageInspector.html actions.desaturate mod actions.desaturate.html actions.convert_mode mod actions.convert_mode.html actions.grid mod actions.grid.html lib.pyWx.inspector mod lib.pyWx.inspector.html actions.geek mod actions.geek.html other.EXIF mod other.EXIF.html lib.pyWx.imageFileBrowser mod lib.pyWx.imageFileBrowser.html actions.saturation mod actions.saturation.html pyWx.nuovext mod pyWx.nuovext.html actions.round mod actions.round.html actions.background mod actions.background.html core.models mod core.models.html actions.rename mod actions.rename.html pyWx.wxGlade.dialogs mod pyWx.wxGlade.dialogs.html other.pep8 mod other.pep8.html actions.warm_up mod actions.warm_up.html lib.pyWx.graphics mod lib.pyWx.graphics.html actions.contrast mod actions.contrast.html other.pubsub mod other.pubsub.html actions.time_shift mod actions.time_shift.html actions.rotate mod actions.rotate.html lib.formField mod lib.formField.html actions.mask mod actions.mask.html other.pyWx.toasterbox mod other.pyWx.toasterbox.html other.pyWx.img2img mod other.pyWx.img2img.html data.license mod data.license.html lib.pyWx.paint mod lib.pyWx.paint.html pyWx mod pyWx.html core mod core.html actions.lossless_jpeg mod actions.lossless_jpeg.html actions.crop mod actions.crop.html console.console mod console.console.html other.findsystem mod other.findsystem.html lib.pyWx.about mod lib.pyWx.about.html lib.pyWx.inspectorTag mod lib.pyWx.inspectorTag.html actions.blender mod actions.blender.html lib.unicoding mod lib.unicoding.html lib.linux mod lib.linux.html lib.thumbnail mod lib.thumbnail.html linux.thunar mod linux.thunar.html lib.openImage mod lib.openImage.html actions.color_to_alpha mod actions.color_to_alpha.html actions.minimum mod actions.minimum.html pyWx.gui mod pyWx.gui.html lib.listData mod lib.listData.html lib.pyWx.screenshot mod lib.pyWx.screenshot.html actions.median mod actions.median.html core.message mod core.message.html actions.save_metadata mod actions.save_metadata.html lib.pyWx mod lib.pyWx.html core.translation mod core.translation.html linux mod linux.html lib.events mod lib.events.html lib.pyWx.droplet mod lib.pyWx.droplet.html core.safeGlobals mod core.safeGlobals.html lib.pyWx.autoCompleteCtrls mod lib.pyWx.autoCompleteCtrls.html actions.save mod actions.save.html linux.droplet mod linux.droplet.html actions.watermark mod actions.watermark.html lib.metadata mod lib.metadata.html core.preview mod core.preview.html actions.autocontrast mod actions.autocontrast.html lib.desktop mod lib.desktop.html actions.maximum mod actions.maximum.html lib.reverse_translation mod lib.reverse_translation.html data.version mod data.version.html lib.linux.nautilusExtension mod lib.linux.nautilusExtension.html actions.geotag mod actions.geotag.html other.surd mod other.surd.html actions.rename_tag mod actions.rename_tag.html actions.shadow mod actions.shadow.html lib.pyWx.compatible mod lib.pyWx.compatible.html actions.scale mod actions.scale.html lib.imtools mod lib.imtools.html lib.pyWx.dialogsInspector mod lib.pyWx.dialogsInspector.html actions.write_tag mod actions.write_tag.html actions.sketch mod actions.sketch.html actions.posterize mod actions.posterize.html lib.pyWx.popup mod lib.pyWx.popup.html lib.fonts mod lib.fonts.html pyWx.wxGlade mod pyWx.wxGlade.html lib.windows mod lib.windows.html lib.odict mod lib.odict.html actions.copy mod actions.copy.html core.settings mod core.settings.html lib.colors mod lib.colors.html core.config mod core.config.html other.pyWx.img2py mod other.pyWx.img2py.html lib.pyWx.wxcheck mod lib.pyWx.wxcheck.html lib mod lib.html actions.transpose mod actions.transpose.html core.ct mod core.ct.html actions.solarize mod actions.solarize.html data.info mod data.info.html lib.pyWx.folderFileBrowser mod lib.pyWx.folderFileBrowser.html actions.equalize mod actions.equalize.html lib.metadataTest mod lib.metadataTest.html lib.pyWx.clipboard mod lib.pyWx.clipboard.html other.tamogen mod other.tamogen.html pyWx.wxGlade.frame mod pyWx.wxGlade.frame.html actions.imagemagick mod actions.imagemagick.html lib.pyWx.vlist mod lib.pyWx.vlist.html lib.gettextFix mod lib.gettextFix.html actions.perspective mod actions.perspective.html data mod data.html actions.highlight mod actions.highlight.html lib.windows.locate mod lib.windows.locate.html lib.pyWx.vlistTag mod lib.pyWx.vlistTag.html windows mod windows.html actions.reflection mod actions.reflection.html actions.brightness mod actions.brightness.html lib.notify mod lib.notify.html lib.safe mod lib.safe.html actions.rank mod actions.rank.html other.relativedelta mod other.relativedelta.html actions.canvas mod actions.canvas.html lib.pyWx.treeEdit mod lib.pyWx.treeEdit.html lib._pyexiv2 mod lib._pyexiv2.html lib.linux.desktop mod lib.linux.desktop.html actions.delete_tags mod actions.delete_tags.html console.console.CliMixin.exit method console.console.html pyWx.gui.Frame class pyWx.gui.html lib.formField.Form.ExifItpcField class lib.formField.html lib.pyWx.tag.Browser.OnTag method lib.pyWx.tag.html lib.system.MethodRegister.does_process method lib.system.html lib.formField.SliderField class lib.formField.html actions.minimum.Action.init staticmethod actions.minimum.html lib.odict.odict.clear method lib.odict.html lib.pyWx.inspector.TestFrame class lib.pyWx.inspector.html lib.pyWx.tag.ContentMixin.GetBrowser method lib.pyWx.tag.html lib.windows.locate.find_exe function lib.windows.locate.html pyWx.dialogs.ActionListBox.TranslateAction method pyWx.dialogs.html lib.formField.Form.ImageEffectField class lib.formField.html other.EXIF.nikon_ev_bias function other.EXIF.html linux.droplet.create_phatch_inspector_droplet function linux.droplet.html other.tamogen.BoundingBox.get_top method other.tamogen.html core.api.import_module function core.api.html lib.pyWx.popup.TextCtrl class lib.pyWx.popup.html lib.listData.DataDict.update_headers method lib.listData.html other.pubsub.PublisherClass.getAssociatedTopics method other.pubsub.html pyWx.wxGlade.frame.Frame.on_menu_edit_down method pyWx.wxGlade.frame.html pyWx.wxGlade.frame.Frame.on_menu_tools_browse_library_user method pyWx.wxGlade.frame.html lib.thumbnail.is_needed function lib.thumbnail.html other.pep8.message function other.pep8.html core.settings.create_settings function core.settings.html lib.formField.Form.FileField.to_python method lib.formField.html lib.formField.ImageReadTypeField class lib.formField.html actions.lossless_jpeg.UtilityMixin.apply method actions.lossless_jpeg.html lib.pyWx.imageInspector.Grid.AddColumnRow method lib.pyWx.imageInspector.html actions.common.common function actions.common.html lib.formField.files_dictionary function lib.formField.html pyWx.dialogs.ImageInspectorGrid.InsertTagInActionList method pyWx.dialogs.html lib.pyWx.imageInspector.Grid.show_error method lib.pyWx.imageInspector.html other.pep8.ignore_code function other.pep8.html actions.rename_tag.Action.apply method actions.rename_tag.html actions.desaturate.grayscale function actions.desaturate.html other.pep8.mute_string function other.pep8.html other.pep8.get_count function other.pep8.html lib.gps.handle_trkpt function lib.gps.html lib.pyWx.imageInspector.Grid.Table.DeleteCols method lib.pyWx.imageInspector.html lib.formField.Form.set_field method lib.formField.html lib.formField.GeoReadFileField class lib.formField.html lib.pyWx.inspector.Grid.Table.GetGrid method lib.pyWx.inspector.html lib.thumbnail.get_format_data function lib.thumbnail.html lib.metadataTest.main function lib.metadataTest.html linux.droplet.on_menu_file_export_droplet_recent function linux.droplet.html actions.geotag.Action.apply method actions.geotag.html lib.pyWx.treeEdit.TreeMixin.get_form method lib.pyWx.treeEdit.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.onKeyDown method other.pyWx.TextCtrlAutoComplete.html actions.effect.effect function actions.effect.html other.pyWx.toasterbox.ToasterBox.SetPopupScrollSpeed method other.pyWx.toasterbox.html actions.grid.Action.interface method actions.grid.html lib.pyWx.treeEdit.TreeMixin.expand_forms method lib.pyWx.treeEdit.html actions.rank.Action.init staticmethod actions.rank.html lib.formField.Form.Field.set_as_string method lib.formField.html lib.formField.Form.OptionalTransposeField class lib.formField.html pyWx.wxGlade.dialogs.WritePluginDialog class pyWx.wxGlade.dialogs.html actions.border.Action.interface method actions.border.html lib.imageTable.Table.is_key_editable method lib.imageTable.html other.pep8.missing_newline function other.pep8.html actions.mirror.tile function actions.mirror.html pyWx.gui.DropletMixin class pyWx.gui.html lib.pyWx.imageInspector.GridTag.IsEmpty method lib.pyWx.imageInspector.html lib.pyWx.vlistTag.TestFrame class lib.pyWx.vlistTag.html console.console.Frame.show_status method console.console.html lib.formField.Form.ReadFileField class lib.formField.html core.pil.Photo.save method core.pil.html lib.formField.DpiField class lib.formField.html lib.pyWx.tag.ContentMixin.GetFilter method lib.pyWx.tag.html pyWx.dialogs.ImageTreeDialog.UpdateHeaders method pyWx.dialogs.html lib.formField.FontFileField class lib.formField.html actions.text.Action class actions.text.html core.models.StampMixin.get_relevant_field_labels method core.models.html pyWx.gui.DialogsMixin.load_actionlist_data method pyWx.gui.html other.EXIF.EXIF_header.dump_IFD method other.EXIF.html actions.minimum.init function actions.minimum.html lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl.StopEvents method lib.pyWx.autoCompleteCtrls.html lib.imtools.convert_safe_mode function lib.imtools.html actions.save.Action.apply method actions.save.html lib.pyWx.folderFileBrowser.Panel.SetColumnWidths method lib.pyWx.folderFileBrowser.html lib.imageTable.Table.delete_cell method lib.imageTable.html lib.formField.Field.to_string method lib.formField.html actions.posterize.Action class actions.posterize.html lib.pyWx.popup.AutoCompleteDictionaryFileCtrl.InputCtrl attribute lib.pyWx.popup.html actions.tamogen.Action.values method actions.tamogen.html actions.blender.BlenderObject.get_relevant method actions.blender.html actions.text.init function actions.text.html lib.formField.Form.IntegerField.to_python method lib.formField.html pyWx.gui.Frame.enable_toolbar method pyWx.gui.html other.EXIF.s2n_intel function other.EXIF.html actions.solarize.solarize function actions.solarize.html linux.droplet.create_phatch_nautilus_action function linux.droplet.html actions.lossless_jpeg.Exiftran.interface method actions.lossless_jpeg.html lib.pyWx.imageInspector.Frame.GetGrid method lib.pyWx.imageInspector.html lib.pyWx.tag.TestContentCtrl.SetFilter method lib.pyWx.tag.html core.pil.InfoPhoto.close method core.pil.html core.api.log_error function core.api.html actions.blender.BlenderObject.get_name method actions.blender.html lib.listData.DataDict.get method lib.listData.html actions.blender.Camera class actions.blender.html actions.blender.BlenderObject class actions.blender.html other.pep8.whitespace_before_parameters function other.pep8.html lib.pyWx.popup.LabelFileCtrl class lib.pyWx.popup.html lib.events.send attribute lib.events.html lib.openImage.open function lib.openImage.html other.EXIF.process_file function other.EXIF.html lib.formField.ImageReadFileField class lib.formField.html actions.tamogen.mosaic function actions.tamogen.html actions.perspective.Action.pil staticmethod actions.perspective.html other.pep8.find_checks function other.pep8.html lib.listData.DataTuple.sort method lib.listData.html lib.formField.Form.ImageResampleField class lib.formField.html lib.pyWx.autoCompleteCtrls.AutoCompleteIconCtrl.SetChoices method lib.pyWx.autoCompleteCtrls.html lib.pyWx.imageFileBrowser.Dialog.OnItemSelected method lib.pyWx.imageFileBrowser.html pyWx.dialogs.ActionDialog class pyWx.dialogs.html other.pyWx.toasterbox.ToasterBoxWindow.GetPopupText method other.pyWx.toasterbox.html lib.pyWx.popup.ImageDictionaryFileCtrl.OnChange method lib.pyWx.popup.html actions.scale.preserve_proportions function actions.scale.html other.tamogen.BoundingBox.reset_y method other.tamogen.html actions.lossless_jpeg.Action class actions.lossless_jpeg.html lib.pyWx.imageInspector.Frame.OpenImages method lib.pyWx.imageInspector.html lib.pyWx.treeEdit.TreeMixin.get_form_item method lib.pyWx.treeEdit.html lib.odict.odict.popitem method lib.odict.html lib.pyWx.imageInspector.GridTag.SetFilter method lib.pyWx.imageInspector.html core.models.Action.WatermarkFileField.init_dictionary method core.models.html lib.pyWx.imageInspector.Grid.OpenImage method lib.pyWx.imageInspector.html pyWx.dialogs.ProgressDialog class pyWx.dialogs.html core.pil.Layer.apply_pil method core.pil.html pyWx.wxGlade.frame.Frame.on_menu_edit_up method pyWx.wxGlade.frame.html actions.convert_mode.Action class actions.convert_mode.html lib.pyWx.imageFileBrowser.ListCtrl class lib.pyWx.imageFileBrowser.html actions.brightness.Action class actions.brightness.html lib.odict.ReadOnlyDict class lib.odict.html linux.droplet.on_menu_file_export_droplet_inspector function linux.droplet.html actions.perspective.init function actions.perspective.html pyWx.wxGlade.frame.Frame.on_menu_help_translate method pyWx.wxGlade.frame.html lib.formField.Form.DictionaryReadFileField.init_dictionary method lib.formField.html lib.pyWx.wxPil.pil_wxBitmap function lib.pyWx.wxPil.html actions.median.Action.interface method actions.median.html lib.formField.Form.load method lib.formField.html pyWx.dialogs.ErrorDialog.on_abort method pyWx.dialogs.html lib.pyWx.popup.ImageDictionaryFileCtrl.SetValue method lib.pyWx.popup.html actions.color_to_alpha.Action class actions.color_to_alpha.html lib.formField.Form.ensure_path method lib.formField.html lib.pyWx.folderFileBrowser.Panel.on_filter_text method lib.pyWx.folderFileBrowser.html lib.pyWx.imageInspector.Table.DeleteCols method lib.pyWx.imageInspector.html actions.sketch.Action class actions.sketch.html actions.lossless_jpeg.LossLessSaveUtilityMixin.get_relevant_field_labels method actions.lossless_jpeg.html actions.shadow.Action.init staticmethod actions.shadow.html lib.imtools.save_safely function lib.imtools.html lib.pyWx.inspector.Grid.Table.GetValue method lib.pyWx.inspector.html lib.formField.Form.find_exe method lib.formField.html lib.pyWx.treeEdit.TreeMixin.create_popup method lib.pyWx.treeEdit.html pyWx.gui.DropletFrame class pyWx.gui.html lib.pyWx.popup.FloatSliderCtrl.OnScroll method lib.pyWx.popup.html actions.convert_mode.Action.init staticmethod actions.convert_mode.html lib.pyWx.treeEdit.TreeMixin.on_select method lib.pyWx.treeEdit.html actions.shadow.Action.values method actions.shadow.html lib.pyWx.imageInspector.getPencilImage function lib.pyWx.imageInspector.html actions.highlight.Action.interface method actions.highlight.html lib.formField.Form.TiffCompressionField class lib.formField.html lib.pyWx.popup.ChoiceCtrl.SetValue method lib.pyWx.popup.html actions.reflection.reflect function actions.reflection.html core.models.Action.is_done method core.models.html lib.pyWx.imageInspector.Table.GetColLabelValue method lib.pyWx.imageInspector.html pyWx.wxGlade.frame.Frame.on_menu_collapse_automatic method pyWx.wxGlade.frame.html other.pep8.print_statistics function other.pep8.html pyWx.gui.App.MacReopenApp method pyWx.gui.html lib.safe.extend_vars function lib.safe.html actions.watermark.Action class actions.watermark.html lib.imageTable.Table.open_image method lib.imageTable.html lib.formField.Form.PositiveIntegerField.to_python method lib.formField.html core.config.Paths class core.config.html core.models.CropMixin.interface method core.models.html pyWx.wxGlade.frame.Frame.on_menu_file_export_droplet_actionlist_to_clipboard method pyWx.wxGlade.frame.html lib.pyWx.inspector.Table.GetAttr method lib.pyWx.inspector.html lib.pyWx.imageFileBrowser.Dialog.SetValue method lib.pyWx.imageFileBrowser.html lib.pyWx.imageInspector.Grid.Table.GetNumberRows method lib.pyWx.imageInspector.html lib.notify.init function lib.notify.html lib.pyWx.folderFileBrowser.example_data_tuple function lib.pyWx.folderFileBrowser.html lib.formField.ImageResampleField class lib.formField.html lib.openImage.open_libtiff function lib.openImage.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.SetMultipleChoices method other.pyWx.TextCtrlAutoComplete.html core.pil.Photo.get_log method core.pil.html lib.imtools.open_image function lib.imtools.html lib.pyWx.vlist.Box.GradientColour method lib.pyWx.vlist.html core.pil.Layer class core.pil.html actions.autocontrast.Action.interface method actions.autocontrast.html actions.delete_tags.Action.interface method actions.delete_tags.html lib.linux.nautilusExtension.create_nautilus_extension function lib.linux.nautilusExtension.html other.EXIF.olympus_special_mode function other.EXIF.html core.models.Action.BlenderRotationField class core.models.html lib.pyWx.inspector.Grid.Table.GetAttr method lib.pyWx.inspector.html other.EXIF.make_string_uc function other.EXIF.html actions.rotate.Action.interface method actions.rotate.html actions.desaturate.Action.interface method actions.desaturate.html lib.pyWx.about.wxgAboutDialog.OnCredits method lib.pyWx.about.html pyWx.gui.Frame.on_menu_file_new method pyWx.gui.html lib.system.is_file function lib.system.html core.message.ProgressReceiver.update method core.message.html pyWx.dialogs.ExecuteDialog.wildcard method pyWx.dialogs.html lib.imtools.get_quality function lib.imtools.html lib.formField.IntegerField class lib.formField.html lib.formField.Form.CommandLineField.raise_error_file method lib.formField.html actions.desaturate.Action.pil staticmethod actions.desaturate.html lib.pyWx.wildcard.wildcard_list function lib.pyWx.wildcard.html other.pep8.Checker.run_check method other.pep8.html lib.imtools.put_alpha function lib.imtools.html pyWx.gui.Frame.on_menu_tools_safe method pyWx.gui.html linux.droplet.on_menu_file_export_nautilus_recent function linux.droplet.html pyWx.gui.Frame.IsEmpty method pyWx.gui.html lib.formField.Form.ImageFilterField class lib.formField.html core.pil.Layer.open method core.pil.html actions.contour.Action.values method actions.contour.html actions.blender.Book.interface method actions.blender.html lib.pyWx.treeEdit.get_index function lib.pyWx.treeEdit.html pyWx.dialogs.ExecuteDialog.get_selected_extensions method pyWx.dialogs.html lib.fonts.collect_fonts function lib.fonts.html lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl.match method lib.pyWx.autoCompleteCtrls.html lib.pyWx.inspectorTag.TestContentGrid.SetData method lib.pyWx.inspectorTag.html lib.formField.Form.PositiveNonZeroFloatField.to_python method lib.formField.html lib.pyWx.imageFileBrowser.Dialog class lib.pyWx.imageFileBrowser.html actions.time_shift.Action.get_relevant_field_labels method actions.time_shift.html lib.imtools.paste function lib.imtools.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.onClickToggleDown method other.pyWx.TextCtrlAutoComplete.html pyWx.gui.Frame.on_menu_edit_down method pyWx.gui.html core.api.get_paths_and_settings function core.api.html core.message.ProgressReceiver.update_index method core.message.html actions.round.Action.init staticmethod actions.round.html other.pyWx.toasterbox.ToasterBoxWindow.NotifyTimer method other.pyWx.toasterbox.html core.models.Action.BlenderField.get_path method core.models.html actions.common.Action.interface method actions.common.html actions.shadow.Action class actions.shadow.html core.pil.Photo.get_thumb method core.pil.html actions.offset.Action.values method actions.offset.html pyWx.dialogs.ExecuteDialog.on_source method pyWx.dialogs.html lib.metadata.InfoExtract.extract_all method lib.metadata.html lib.metadata.InfoExif class lib.metadata.html lib.formField.Form.IntegerField class lib.formField.html actions.time_shift.Action.interface method actions.time_shift.html linux.droplet.create_phatch_thunar_action function linux.droplet.html actions.reflection.Action.interface method actions.reflection.html actions.fit.Action class actions.fit.html lib.pyWx.inspectorTag.Frame.OnClose method lib.pyWx.inspectorTag.html pyWx.wxGlade.frame.Frame.on_menu_view_droplet method pyWx.wxGlade.frame.html pyWx.gui.Frame.on_menu_help_about method pyWx.gui.html actions.warm_up.Action.interface method actions.warm_up.html lib.pyWx.imageInspector.Grid.DeleteRows method lib.pyWx.imageInspector.html actions.color_to_alpha.Action.get_relevant_field_labels method actions.color_to_alpha.html lib.pyWx.imageInspector.Frame class lib.pyWx.imageInspector.html lib.formField.Form.ImageResampleAutoField class lib.formField.html lib.formField.ExifItpcField class lib.formField.html lib.pyWx.treeEdit.TreeMixin.is_form_selected method lib.pyWx.treeEdit.html core.pil.InfoPhoto.set method core.pil.html other.findsystem.linuxFontDirectories function other.findsystem.html lib.pyWx.imageInspector.Grid.OpenImages method lib.pyWx.imageInspector.html lib.metadata.InfoPil.reset_geometry method lib.metadata.html core.api.apply_actions_to_photos function core.api.html lib.pyWx.inspector.Table.GetNumberRows method lib.pyWx.inspector.html lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl.StartEvents method lib.pyWx.autoCompleteCtrls.html actions.convert_mode.Action.interface method actions.convert_mode.html actions.solarize.init function actions.solarize.html lib.formField.Form.Field.interpolate method lib.formField.html lib.formField.ImageDictionaryField class lib.formField.html actions.tamogen.Action.init staticmethod actions.tamogen.html actions.perspective.perspective function actions.perspective.html other.pubsub.PublisherClass.getDeliveryCount method other.pubsub.html lib.windows.locate.Blender class lib.windows.locate.html lib.pyWx.wxcheck.ensure function lib.pyWx.wxcheck.html actions.copy.Action.interface method actions.copy.html lib.events.example function lib.events.html lib.imtools.transpose function lib.imtools.html lib.formField.PositiveFloatField.to_python method lib.formField.html other.pep8.missing_whitespace function other.pep8.html actions.border.Action class actions.border.html lib.formField.Form.AlignHorizontalField class lib.formField.html lib.pyWx.treeEdit.TreeMixin.move_form_selected_down method lib.pyWx.treeEdit.html pyWx.gui.Frame.on_menu_help_plugin method pyWx.gui.html lib.pyWx.imageInspector.getPencilData function lib.pyWx.imageInspector.html console.console.example function console.console.html lib.thumbnail.get_filesize function lib.thumbnail.html lib.pyWx.folderFileBrowser.WxgPanel class lib.pyWx.folderFileBrowser.html pyWx.wxGlade.frame.Frame.on_menu_file_open method pyWx.wxGlade.frame.html actions.rank.Action class actions.rank.html pyWx.dialogs.ActionListBox.SetTag method pyWx.dialogs.html actions.round.init function actions.round.html lib.system.file_extension function lib.system.html lib.colors.HTMLColorToRGBA function lib.colors.html other.pyWx.TextCtrlAutoComplete.getSmallUpArrowData function other.pyWx.TextCtrlAutoComplete.html lib.thumbnail.needs_update function lib.thumbnail.html lib.imageTable.TableImage class lib.imageTable.html lib.metadata.InfoProvideError exception lib.metadata.html actions.median.init function actions.median.html lib.pyWx.treeDragDrop.Mixin.DisableDrag method lib.pyWx.treeDragDrop.html lib.metadata.InfoExtract.scan_infos classmethod lib.metadata.html other.tamogen.BoundingBox.bottom attribute other.tamogen.html actions.lossless_jpeg.utilities_dict function actions.lossless_jpeg.html pyWx.gui.DialogsMixin.set_report method pyWx.gui.html lib.formField.Form.Field.get_as_string method lib.formField.html core.models.Action.HighlightFileField.init_dictionary method core.models.html linux.droplet.create_phatch_droplet function linux.droplet.html lib.thumbnail.ensure_path function lib.thumbnail.html pyWx.dialogs.example function pyWx.dialogs.html lib.imtools.convert function lib.imtools.html lib.formField.Form.get_field_string method lib.formField.html actions.imagemagick.Action class actions.imagemagick.html actions.transpose.Action.init staticmethod actions.transpose.html pyWx.dialogs.ActionDialog.GetStringSelection method pyWx.dialogs.html pyWx.gui.DialogsMixin.show_status method pyWx.gui.html lib.formField.Form.BooleanField class lib.formField.html actions.transpose.Action class actions.transpose.html actions.blender.Can class actions.blender.html lib.pyWx.folderFileBrowser.ListCtrl.InitData method lib.pyWx.folderFileBrowser.html lib.gps.handle_gpx function lib.gps.html pyWx.wxGlade.frame.Frame.on_menu_help_bug method pyWx.wxGlade.frame.html lib.metadataTest.Rational class lib.metadataTest.html lib.imageTable.Table.set_filter method lib.imageTable.html lib.pyWx.imageInspector.Grid.Table.GetAttr method lib.pyWx.imageInspector.html actions.canvas.Action.interface method actions.canvas.html lib.formField.TestFieldMixin class lib.formField.html actions.canvas.init function actions.canvas.html lib.formField.Form.PositiveFloatField.to_python method lib.formField.html lib.pyWx.folderFileBrowser.ListCtrl.SetFilter method lib.pyWx.folderFileBrowser.html lib.metadata.InfoExtract.set_orientation method lib.metadata.html actions.brightness.brightness function actions.brightness.html lib.imageTable.Table.delete_images method lib.imageTable.html core.api.import_actions function core.api.html pyWx.wxGlade.frame.Frame.on_menu_help_website method pyWx.wxGlade.frame.html pyWx.wxGlade.dialogs.ExecuteDialog.on_default method pyWx.wxGlade.dialogs.html core.pil.Photo.apply_pil method core.pil.html actions.geotag.Action class actions.geotag.html lib.events.SendListener class lib.events.html lib.thumbnail.save_to_cache function lib.thumbnail.html pyWx.gui.DialogsMixin.show_files_message method pyWx.gui.html pyWx.wxGlade.dialogs.ExecuteDialog.on_browse method pyWx.wxGlade.dialogs.html lib.pyWx.inspectorTag.TestBrowser class lib.pyWx.inspectorTag.html pyWx.dialogs.ErrorDialog class pyWx.dialogs.html other.surd.test_driver function other.surd.html other.pep8.whitespace_around_named_parameter_equals function other.pep8.html lib.pyWx.imageInspector.AddTagDialog.OnAdd method lib.pyWx.imageInspector.html pyWx.gui.Frame.install_menu_item method pyWx.gui.html pyWx.gui.Frame.on_menu_tools_browse_library_phatch method pyWx.gui.html pyWx.dialogs.ImageTreeDialog.on_tree_item_right_click method pyWx.dialogs.html lib.pyWx.popup.EditPanel.Close method lib.pyWx.popup.html pyWx.gui.DialogsMixin.show_scrolled_message method pyWx.gui.html lib.imageTable.TableImage.update_if_modified method lib.imageTable.html other.pyWx.TextCtrlAutoComplete.test.onBtStartChoices method other.pyWx.TextCtrlAutoComplete.html lib.pyWx.treeEdit.TreeMixin class lib.pyWx.treeEdit.html core.models.Action.MaskFileField.init_dictionary method core.models.html pyWx.dialogs.ActionListBox.OnContextMenu method pyWx.dialogs.html pyWx.wxGlade.dialogs.ErrorDialog.on_details method pyWx.wxGlade.dialogs.html pyWx.wxGlade.frame.Frame.on_menu_edit_remove method pyWx.wxGlade.frame.html core.config.add_user_paths function core.config.html lib.system.TempFile class lib.system.html actions.watermark.Action.init staticmethod actions.watermark.html linux.droplet.on_menu_file_export_nautilus_inspector function linux.droplet.html console.console.Frame.show_execute_dialog method console.console.html lib.pyWx.popup.AutoCompleteDictionaryFileCtrl class lib.pyWx.popup.html lib.formField.Form.DictionaryReadFileField.to_python method lib.formField.html lib._pyexiv2.extension_to_image_format function lib._pyexiv2.html other.pyWx.img2py.main function other.pyWx.img2py.html lib.formField.Field.set_as_string_dirty method lib.formField.html pyWx.gui.DropletApp class pyWx.gui.html lib.thumbnail.get_mtime function lib.thumbnail.html lib.imageTable.Table.add_key method lib.imageTable.html other.tamogen.BoundingBox.get_bottom method other.tamogen.html lib.pyWx.folderFileBrowser.ListCtrl.SetData method lib.pyWx.folderFileBrowser.html actions.blender.Box class actions.blender.html lib.pyWx.imageInspector.Grid.UpdateRowsColsNumbers method lib.pyWx.imageInspector.html actions.maximum.init function actions.maximum.html pyWx.gui.Frame.on_tree_end_drag method pyWx.gui.html lib.formField.Form.CsvFileField class lib.formField.html pyWx.gui.Frame.on_menu_help_website method pyWx.gui.html lib.pyWx.inspector.Table.IsEmptyCell method lib.pyWx.inspector.html actions.highlight.Action.pil staticmethod actions.highlight.html pyWx.images.set_icon function pyWx.images.html lib.formField.Form.FileField class lib.formField.html lib.formField.PositiveIntegerField.to_python method lib.formField.html other.pyWx.toasterbox.ToasterBox.SetPopupSize method other.pyWx.toasterbox.html actions.median.Action.pil staticmethod actions.median.html core.message.FrameReceiver.show_progress_error method core.message.html other.pep8.Checker.check_physical method other.pep8.html other.pyWx.toasterbox.ToasterBoxWindow.SetPopupSize method other.pyWx.toasterbox.html lib.openImage.open_image_with_command function lib.openImage.html pyWx.gui.Frame.droplet_label_format method pyWx.gui.html actions.grid.Action class actions.grid.html lib.formField.Form.Field.set_globals staticmethod lib.formField.html pyWx.wxGlade.dialogs.StatusDialog class pyWx.wxGlade.dialogs.html other.tamogen.mosaic function other.tamogen.html lib.pyWx.folderFileBrowser.ListCtrl.RefreshAllItems method lib.pyWx.folderFileBrowser.html core.models.Action.WatermarkFileField class core.models.html lib.pyWx.tag.Browser.GetItemTags method lib.pyWx.tag.html lib.listData.DataDict class lib.listData.html actions.mirror.Action.pil staticmethod actions.mirror.html other.EXIF.EXIF_header.next_IFD method other.EXIF.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete class other.pyWx.TextCtrlAutoComplete.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.onEnteredText method other.pyWx.TextCtrlAutoComplete.html actions.desaturate.Action.init staticmethod actions.desaturate.html lib.linux.nautilusExtension.nautilus_exists function lib.linux.nautilusExtension.html other.tamogen.BoundingBox.left attribute other.tamogen.html lib.pyWx.inspector.Grid.SetAttrReadOnly method lib.pyWx.inspector.html pyWx.dialogs.ImageInspectorFrame class pyWx.dialogs.html other.pyWx.TextCtrlAutoComplete.test.onBtMultiChoice method other.pyWx.TextCtrlAutoComplete.html actions.blender.Action.apply method actions.blender.html actions.color_to_alpha.Action.interface method actions.color_to_alpha.html lib.pyWx.vlist.Box.SetIconSize method lib.pyWx.vlist.html lib.formField.Field.to_python method lib.formField.html lib.formField.Field.set_as_string method lib.formField.html pyWx.gui.Frame.on_menu_tool_enter method pyWx.gui.html other.pubsub.PublisherClass.subscribe method other.pubsub.html pyWx.gui.Frame.on_menu_view_droplet method pyWx.gui.html lib.fonts.set_font_cache function lib.fonts.html lib.formField.Form.ColorField class lib.formField.html lib.pyWx.treeDragDrop.Mixin.OnBeginDrag method lib.pyWx.treeDragDrop.html lib.imtools.has_alpha function lib.imtools.html pyWx.gui.Frame.on_menu_edit_up method pyWx.gui.html lib.pyWx.imageInspector.OpenMixin.OnOpenUrl method lib.pyWx.imageInspector.html other.EXIF.EXIF_header.olympus_decode_tag method other.EXIF.html pyWx.gui.Frame.enable_actions method pyWx.gui.html lib.openImage.verify_xcf function lib.openImage.html pyWx.wxGlade.frame.Frame.on_menu_view_description method pyWx.wxGlade.frame.html pyWx.gui.App.show_frame method pyWx.gui.html lib.pyWx.imageInspector.Grid.OnGridEditorHidden method lib.pyWx.imageInspector.html lib.pyWx.treeEdit.TreeMixin.export_form method lib.pyWx.treeEdit.html lib.metadata.InfoExtract.expand_var classmethod lib.metadata.html actions.color_to_alpha.Action.pil staticmethod actions.color_to_alpha.html core.message.FrameReceiver.show_execute_dialog method core.message.html lib.imtools.add_checkboard function lib.imtools.html actions.crop.init function actions.crop.html lib.pyWx.imageInspector.Frame.Browser.ContentCtrl attribute lib.pyWx.imageInspector.html actions.blender.Camera.interface method actions.blender.html core.pil.InfoPhoto.clear_log method core.pil.html actions.lossless_jpeg.Exiftran.get_command_line method actions.lossless_jpeg.html lib.pyWx.imageInspector.Grid.CopyRowLabel method lib.pyWx.imageInspector.html lib.pyWx.imageInspector.AddTagDialog.OnTagText method lib.pyWx.imageInspector.html pyWx.gui.App.init method pyWx.gui.html pyWx.wxGlade.frame.Frame.on_menu_tools_execute method pyWx.wxGlade.frame.html pyWx.gui.Frame.is_save_not_ok method pyWx.gui.html lib.windows.locate.RegistryApplication class lib.windows.locate.html lib.safe.eval_restricted function lib.safe.html actions.invert.Action.pil staticmethod actions.invert.html lib.pyWx.vlist.Box.OnMeasureItem method lib.pyWx.vlist.html lib.gps.write_header function lib.gps.html lib.openImage.open_image_exif function lib.openImage.html lib.pyWx.tag.example function lib.pyWx.tag.html actions.common.Action class actions.common.html actions.grid.Action.init staticmethod actions.grid.html core.api.apply_action_to_photo function core.api.html pyWx.dialogs.ActionBrowser class pyWx.dialogs.html lib.imageTable.Table.is_cell_editable method lib.imageTable.html pyWx.dialogs.ProgressDialog.sleep method pyWx.dialogs.html lib.formField.Form.ImageDictionaryField class lib.formField.html lib.formField.ReadFileField class lib.formField.html actions.contrast.contrast function actions.contrast.html lib.pyWx.treeEdit.TreeMixin.update_form_relevance method lib.pyWx.treeEdit.html lib.pyWx.inspectorTag.TestContentGrid class lib.pyWx.inspectorTag.html other.pyWx.TextCtrlAutoComplete.test.onBtChangeChoice method other.pyWx.TextCtrlAutoComplete.html actions.text.Action.interface method actions.text.html lib.pyWx.imageInspector.OpenMixin.OnOpen method lib.pyWx.imageInspector.html pyWx.gui.Frame.only_actions_with_tag method pyWx.gui.html lib.unicoding.ensure_unicode function lib.unicoding.html lib.pyWx.tag.ContentMixin.CheckEmpty method lib.pyWx.tag.html lib.pyWx.folderFileBrowser.OpenMixin.start_tree_item method lib.pyWx.folderFileBrowser.html core.models.Action.ensure_path_or_desktop method core.models.html actions.mirror.get_dimensions function actions.mirror.html pyWx.nuovext.Provider class pyWx.nuovext.html lib.pyWx.inspector.Grid.SetTableValue method lib.pyWx.inspector.html core.models.LosslessSaveMixin.is_done method core.models.html pyWx.gui.Frame.on_menu_tools_execute method pyWx.gui.html actions.blender.Action.init method actions.blender.html actions.posterize.posterize function actions.posterize.html actions.reflection.Action.get_relevant_field_labels method actions.reflection.html pyWx.gui.Frame.on_menu_edit_remove method pyWx.gui.html actions.warm_up.Action.init staticmethod actions.warm_up.html actions.contrast.Action.pil staticmethod actions.contrast.html actions.equalize.init function actions.equalize.html lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl.onControlChanged method lib.pyWx.autoCompleteCtrls.html lib.formField.AlignVerticalField class lib.formField.html lib.openImage.open_image_without_pil function lib.openImage.html lib.pyWx.inspectorTag.Frame.Browser attribute lib.pyWx.inspectorTag.html lib.pyWx.imageInspector.OpenMixin.OpenImage method lib.pyWx.imageInspector.html actions.highlight.Action.init staticmethod actions.highlight.html actions.warm_up.init function actions.warm_up.html lib.imageTable.Table.get_image_label method lib.imageTable.html lib.pyWx.imageInspector.Grid.OnKeyDown method lib.pyWx.imageInspector.html lib.pyWx.inspector.Grid.Table.DeleteRows method lib.pyWx.inspector.html lib.pyWx.folderFileBrowser.ListCtrl.OnGetItemText method lib.pyWx.folderFileBrowser.html lib.colors.RGBToPILColor function lib.colors.html pyWx.dialogs.ExecuteDialog.get_default_path method pyWx.dialogs.html core.models.StampMixin.interface method core.models.html actions.contrast.Action class actions.contrast.html lib.pyWx.tag.TestContentCtrl.IsEmpty method lib.pyWx.tag.html lib.pyWx.tag.ContentMixin.GetEmpty method lib.pyWx.tag.html actions.blender.Background.interface method actions.blender.html pyWx.gui.Frame.on_menu_tools_update_fonts method pyWx.gui.html other.pyWx.toasterbox.ToasterBoxWindow.SetPopupBackgroundColor method other.pyWx.toasterbox.html lib.pyWx.tag.ContentMixin.SetTag method lib.pyWx.tag.html lib.listData.DataTuple.get_headers method lib.listData.html actions.contour.put_border function actions.contour.html other.pep8.whitespace_around_comma function other.pep8.html lib.pyWx.tag.Browser.OnSize method lib.pyWx.tag.html lib.imageTable.Table.get_key_label method lib.imageTable.html lib.pyWx.about.CreditsDialog.OnClose method lib.pyWx.about.html lib.safe.UnsafeError exception lib.safe.html lib.pyWx.treeEdit.TreeMixin.enable_selected_form method lib.pyWx.treeEdit.html lib.pyWx.inspector.Grid.Table.GetNumberCols method lib.pyWx.inspector.html actions.warm_up.Action class actions.warm_up.html lib.pyWx.imageInspector.GridTag.SetTag method lib.pyWx.imageInspector.html actions.common.Action.init staticmethod actions.common.html lib.metadata.UnknownTypeError exception lib.metadata.html pyWx.wxGlade.dialogs.FolderFileBrowser class pyWx.wxGlade.dialogs.html lib.pyWx.about.wxgAboutDialog class lib.pyWx.about.html actions.lossless_jpeg.Arguments.append method actions.lossless_jpeg.html console.console.Frame.Progress class console.console.html lib.pyWx.droplet.Frame.OnLeftDown method lib.pyWx.droplet.html actions.contrast.init function actions.contrast.html lib.pyWx.folderFileBrowser.Panel.on_tree_sel_changed method lib.pyWx.folderFileBrowser.html lib.imtools.transpose_exif function lib.imtools.html actions.rotate.init function actions.rotate.html actions.lossless_jpeg.Jpegtran.get_relevant_field_labels method actions.lossless_jpeg.html lib.pyWx.folderFileBrowser.OpenMixin.on_list_item_activated method lib.pyWx.folderFileBrowser.html lib.formField.Field.set method lib.formField.html other.pep8.filename_match function other.pep8.html lib.pyWx.vlist.Box.GetIconSize method lib.pyWx.vlist.html other.pep8.whitespace_before_inline_comment function other.pep8.html actions.shadow.init function actions.shadow.html actions.reflection.gradient_vector function actions.reflection.html core.pil.Photo.call method core.pil.html other.pyWx.TextCtrlAutoComplete.test.setDynamicChoices method other.pyWx.TextCtrlAutoComplete.html actions.reflection.Action.init staticmethod actions.reflection.html lib.formField.Field.get method lib.formField.html lib.pyWx.popup.DictionaryFileCtrl.GetDefaultPath method lib.pyWx.popup.html lib.imageTable.Table.get_cell_value method lib.imageTable.html lib.pyWx.vlistTag.TestContentBox class lib.pyWx.vlistTag.html pyWx.dialogs.ExecuteDialog.on_browse method pyWx.dialogs.html actions.autocontrast.Action class actions.autocontrast.html lib.formField.PositiveIntegerField class lib.formField.html lib.formField.Form.PixelField.get_size method lib.formField.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.onListItemSelected method other.pyWx.TextCtrlAutoComplete.html lib.formField.ExifItpcField.fix_string method lib.formField.html lib.formField.OrientationField class lib.formField.html lib.imageTable.Table.delete_keys method lib.imageTable.html pyWx.dialogs.StatusDialog.on_button_log method pyWx.dialogs.html lib.gps.get_text function lib.gps.html lib.imtools.get_size function lib.imtools.html core.api.check_actionlist function core.api.html pyWx.dialogs.WritePluginDialog.on_template method pyWx.dialogs.html lib.system.start function lib.system.html lib.pyWx.tag.Browser.OnFilter method lib.pyWx.tag.html other.EXIF.EXIF_header.decode_maker_note method other.EXIF.html lib.pyWx.popup.FileCtrl class lib.pyWx.popup.html lib.metadata.InfoExtract.open method lib.metadata.html lib.system.split_command function lib.system.html other.pyWx.toasterbox.ToasterBox.Play method other.pyWx.toasterbox.html core.api.PathError exception core.api.html actions.round.create_rounded_rectangle function actions.round.html other.pyWx.TextCtrlAutoComplete.getSmallUpArrowBitmap function other.pyWx.TextCtrlAutoComplete.html actions.mirror.Action.interface method actions.mirror.html actions.scale.Action.interface method actions.scale.html lib.formField.Form.CommandLineField.raise_error_out_max method lib.formField.html pyWx.wxGlade.dialogs.WritePluginDialog.on_template method pyWx.wxGlade.dialogs.html lib.formField.ColorField class lib.formField.html actions.lossless_jpeg.Jpegtran.get_command_line method actions.lossless_jpeg.html lib.pyWx.imageInspector.Table.DeleteRows method lib.pyWx.imageInspector.html lib.pyWx.imageFileBrowser.Dialog.OnActivated method lib.pyWx.imageFileBrowser.html core.message.ProgressReceiver.sleep method core.message.html actions.text.Action.init staticmethod actions.text.html lib.system.MethodRegister.get_methods method lib.system.html lib.pyWx.imageInspector.Grid.OnGridLabelLeftDclicked method lib.pyWx.imageInspector.html actions.effect.Action.pil staticmethod actions.effect.html pyWx.gui.Frame.on_menu_view_collapse_all method pyWx.gui.html lib.formField.ImageTypeField.fix_string method lib.formField.html lib.pyWx.about.Dialog.OnLicense method lib.pyWx.about.html actions.blender.Cd class actions.blender.html lib.gps.get_xml_timez function lib.gps.html pyWx.dialogs.ActionListBox.OnViewSource method pyWx.dialogs.html lib.pyWx.graphics.bitmap function lib.pyWx.graphics.html lib.pyWx.imageInspector.OpenMixin.GetTopLevelParent method lib.pyWx.imageInspector.html pyWx.gui.DialogsMixin.show_execute_dialog method pyWx.gui.html lib.formField.OrientationField.to_python method lib.formField.html actions.time_shift.Action.init staticmethod actions.time_shift.html actions.lossless_jpeg.Jpegtran.interface method actions.lossless_jpeg.html other.pyWx.img2py.crunch_data function other.pyWx.img2py.html actions.tamogen.Action class actions.tamogen.html lib.metadata.info attribute lib.metadata.html pyWx.gui.DropletFrame.execute method pyWx.gui.html actions.geek.Action.get_relevant_field_labels method actions.geek.html actions.border.init function actions.border.html pyWx.wxGlade.frame.Frame.on_menu_edit_disable method pyWx.wxGlade.frame.html lib.pyWx.treeEdit.TreeMixin.get_form_fields_visible method lib.pyWx.treeEdit.html lib.formField.Form.ImageDictionaryReadFileField class lib.formField.html lib.pyWx.vlistTag.Dialog.ContentBrowser attribute lib.pyWx.vlistTag.html actions.minimum.Action class actions.minimum.html lib.pyWx.imageInspector.Grid.Ask method lib.pyWx.imageInspector.html core.models.LosslessSaveMixin.is_overwrite_existing_images_forced method core.models.html lib.events.Receiver class lib.events.html actions.color_to_alpha.difference1 function actions.color_to_alpha.html actions.rename_tag.Action.interface method actions.rename_tag.html actions.desaturate.Action class actions.desaturate.html lib.metadata.InfoFile class lib.metadata.html other.pubsub.PublisherClass.isSubscribed method other.pubsub.html core.api.get_vars function core.api.html pyWx.wxGlade.frame.Frame.on_menu_help_forum method pyWx.wxGlade.frame.html pyWx.wxGlade.frame.Frame.on_menu_file_export_droplet_recent_to_clipboard method pyWx.wxGlade.frame.html lib.formField.PositiveNonZeroFloatField class lib.formField.html lib.pyWx.treeEdit.TreeMixin.on_sel_changing method lib.pyWx.treeEdit.html lib.pyWx.popup.FileSizeCtrl class lib.pyWx.popup.html core.models.StampMixin class core.models.html other.pyWx.toasterbox.ToasterBox.SetPopupPauseTime method other.pyWx.toasterbox.html lib.formField.Form.AlignVerticalField class lib.formField.html core.models.Action.BlenderField.init_dictionary method core.models.html lib.pyWx.inspector.Grid.IsTableEmptyCell method lib.pyWx.inspector.html other.pyWx.toasterbox.ToasterBoxWindow class other.pyWx.toasterbox.html lib.metadata.InfoPexif class lib.metadata.html lib.pyWx.inspectorTag.Grid.SetData method lib.pyWx.inspectorTag.html other.pep8.missing_whitespace_around_operator function other.pep8.html actions.mirror.xy_mirror function actions.mirror.html lib.pyWx.folderFileBrowser.ListCtrl class lib.pyWx.folderFileBrowser.html console.console.Frame.show_scrolled_message method console.console.html lib.pyWx.imageInspector.getPencilBitmap function lib.pyWx.imageInspector.html lib.pyWx.popup.LabelFileCtrl.GetWildcard method lib.pyWx.popup.html lib.imageTable.TableImage.update method lib.imageTable.html actions.background.Action class actions.background.html lib.formField.Form.Field.validate method lib.formField.html core.models.LosslessSaveMixin.interface method core.models.html lib.openImage.verify_imagemagick function lib.openImage.html core.pil.InfoPhoto.update_size method core.pil.html lib.imtools.put_palette function lib.imtools.html actions.offset.Action.pil staticmethod actions.offset.html core.pil.Photo.rotate_exif method core.pil.html lib.gettextFix.displayhook function lib.gettextFix.html lib.pyWx.treeEdit.TreeMixin.append_form_by_label_to_selected method lib.pyWx.treeEdit.html lib.formField.ValidationError exception lib.formField.html lib.pyWx.imageInspector.Grid.CopyCellValue method lib.pyWx.imageInspector.html pyWx.gui.Frame.is_protected_actionlist method pyWx.gui.html pyWx.dialogs.ActionDialog.OnActivate method pyWx.dialogs.html lib.formField.EmptyFileField class lib.formField.html linux.droplet.on_menu_file_export_droplet_actionlist function linux.droplet.html lib.formField.Form.OrientationField.to_python method lib.formField.html console.console.Frame.append_save_action method console.console.html console.console.main function console.console.html lib.openImage.check_libtiff function lib.openImage.html lib.pyWx.popup.SliderCtrl.OnSpin method lib.pyWx.popup.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.onListColClick method other.pyWx.TextCtrlAutoComplete.html actions.blender.Lcd class actions.blender.html pyWx.gui.Frame.on_menu_tools_show_log method pyWx.gui.html lib.imageTable.Table.set_key_value method lib.imageTable.html core.models.Action.BlenderRotationField.get_path method core.models.html core.models.Action.apply method core.models.html lib.pyWx.about.wxgAboutDialog.OnLicense method lib.pyWx.about.html lib.imtools.remove_alpha function lib.imtools.html actions.transpose.Action.apply method actions.transpose.html lib.formField.Field.set_globals staticmethod lib.formField.html lib.fonts.locate_files function lib.fonts.html lib.imtools.reduce_opacity function lib.imtools.html pyWx.wxGlade.frame.Frame.on_menu_file_export_droplet_inspector_to_clipboard method pyWx.wxGlade.frame.html core.pil.fix_EXIF function core.pil.html lib.pyWx.treeEdit.TreeMixin.tree_label method lib.pyWx.treeEdit.html actions.grid.Action.get_relevant_field_labels method actions.grid.html lib.pyWx.treeEdit.TreeMixin.get_form_selected method lib.pyWx.treeEdit.html pyWx.wxGlade.dialogs.ErrorDialog class pyWx.wxGlade.dialogs.html pyWx.wxGlade.dialogs.ErrorDialog.on_ignore method pyWx.wxGlade.dialogs.html lib.pyWx.treeEdit.TreeMixin.resize_popup method lib.pyWx.treeEdit.html lib.imtools.get_reverse_transposition function lib.imtools.html lib.pyWx.treeEdit.TreeMixin.enable_form method lib.pyWx.treeEdit.html lib.pyWx.tag.ContentMixin.GetTag method lib.pyWx.tag.html lib.pyWx.vlistTag.Dialog class lib.pyWx.vlistTag.html lib.formField.Form.FileSizeField.to_python method lib.formField.html lib.formField.Form.FolderField class lib.formField.html pyWx.gui.drop function pyWx.gui.html actions.blender.Background.get_relevant method actions.blender.html lib.formField.TiffCompressionField class lib.formField.html lib.pyWx.imageFileBrowser.Dialog.ShowPath method lib.pyWx.imageFileBrowser.html actions.perspective.Action.init staticmethod actions.perspective.html lib.formField.PositiveFloatField class lib.formField.html lib.pyWx.treeDragDrop.Mixin class lib.pyWx.treeDragDrop.html lib.pyWx.imageInspector.Grid.OnDrop method lib.pyWx.imageInspector.html lib.formField.ImageTransposeField class lib.formField.html lib.colors.PILColorToRGB function lib.colors.html core.models.OffsetMixin class core.models.html lib.metadata.InfoFile.split_vars classmethod lib.metadata.html lib.events.Sender class lib.events.html actions.lossless_jpeg.UtilityMixin.call method actions.lossless_jpeg.html lib.pyWx.autoCompleteCtrls.AutoCompleteIconCtrl.match method lib.pyWx.autoCompleteCtrls.html actions.crop.crop function actions.crop.html core.pil.Photo.close method core.pil.html actions.colorize.Action.pil staticmethod actions.colorize.html lib.pyWx.imageInspector.Grid.OnGridLabelRightClicked method lib.pyWx.imageInspector.html lib.imageTable.Table.update method lib.imageTable.html linux.droplet.on_menu_file_export_thunar_recent function linux.droplet.html lib.formField.Form.BooleanField.to_python method lib.formField.html other.pyWx.toasterbox.ToasterBoxWindow.ScrollDown method other.pyWx.toasterbox.html lib.system.filename_to_title function lib.system.html other.pyWx.toasterbox.ToasterBoxWindow.SetPopupTextColor method other.pyWx.toasterbox.html lib.pyWx.wxPil.pil_wxImage function lib.pyWx.wxPil.html actions.lossless_jpeg.UtilityMixin.get_relevant_field_labels method actions.lossless_jpeg.html other.tamogen.BoundingBoxContainer.move_down method other.tamogen.html pyWx.dialogs.ProgressDialog.update method pyWx.dialogs.html lib.pyWx.tag.TestContentCtrl.SetTag method lib.pyWx.tag.html lib.formField.Form.GeoReadFileField class lib.formField.html linux.droplet.install_menu_item function linux.droplet.html lib.pyWx.imageInspector.Grid.AskText method lib.pyWx.imageInspector.html actions.contour.Action class actions.contour.html actions.transpose.transpose function actions.transpose.html actions.mirror.init function actions.mirror.html lib.pyWx.vlist.Box.SetVerticalGradient method lib.pyWx.vlist.html actions.canvas.canvas_size function actions.canvas.html linux.thunar.thunar_exists function linux.thunar.html actions.round.round_image function actions.round.html actions.maximum.Action.pil staticmethod actions.maximum.html lib.pyWx.popup.SliderCtrl.OnScroll method lib.pyWx.popup.html other.pep8.print_benchmark function other.pep8.html core.models.Action.init staticmethod core.models.html lib.pyWx.imageInspector.Grid.OnGridColLabelRightClicked method lib.pyWx.imageInspector.html core.models.Action class core.models.html pyWx.gui.DialogsMixin.show_message method pyWx.gui.html lib.formField.CommandLineField.raise_error_file method lib.formField.html lib.pyWx.compatible.SearchCtrl.OnCancel method lib.pyWx.compatible.html lib.pyWx.treeEdit.TreeMixin.append_field method lib.pyWx.treeEdit.html lib.pyWx.vlistTag.TestContentBox.IsEmpty method lib.pyWx.vlistTag.html lib.pyWx.imageInspector.Grid.RefreshAll method lib.pyWx.imageInspector.html lib.pyWx.vlistTag.example function lib.pyWx.vlistTag.html core.models.init function core.models.html other.pyWx.toasterbox.ToasterBoxWindow.AddPanel method other.pyWx.toasterbox.html other.pep8.input_file function other.pep8.html other.tamogen.BoundingBox.set_bottom method other.tamogen.html pyWx.dialogs.ActionListBox.RefreshList method pyWx.dialogs.html other.pep8.iskeyword function other.pep8.html lib.unicoding.exception_to_unicode function lib.unicoding.html core.api.apply_actions_to_photo function core.api.html actions.round.Action.interface method actions.round.html pyWx.gui.DialogsMixin.show_error method pyWx.gui.html pyWx.dialogs.ErrorDialog.on_skip method pyWx.dialogs.html lib.pyWx.inspector.Grid.GetTableAttr method lib.pyWx.inspector.html lib.pyWx.inspector.Table class lib.pyWx.inspector.html lib.imtools.open_image_data function lib.imtools.html core.pil.Photo.clear_log method core.pil.html other.pyWx.toasterbox.ToasterBoxWindow.Play method other.pyWx.toasterbox.html other.tamogen.BoundingBox.right attribute other.tamogen.html actions.contrast.Action.interface method actions.contrast.html other.pyWx.TextCtrlAutoComplete.getSmallDnArrowBitmap function other.pyWx.TextCtrlAutoComplete.html lib.metadata.InfoTest class lib.metadata.html lib.pyWx.droplet.fix_paths function lib.pyWx.droplet.html lib.formField.CommandLineField.raise_error_not_found method lib.formField.html actions.minimum.Action.pil staticmethod actions.minimum.html lib.pyWx.treeEdit.TreeMixin.is_field method lib.pyWx.treeEdit.html lib.pyWx.droplet.Mixin class lib.pyWx.droplet.html lib.pyWx.vlistTag.TestBrowser class lib.pyWx.vlistTag.html lib.pyWx.imageInspector.Grid.Table class lib.pyWx.imageInspector.html lib.imtools.blend function lib.imtools.html lib.pyWx.imageInspector.Grid.ChangeRowValues method lib.pyWx.imageInspector.html actions.save.Action.interface method actions.save.html lib.formField.Form.PositiveFloatField class lib.formField.html lib.formField.ImageResampleAutoField class lib.formField.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.GetSortImages method other.pyWx.TextCtrlAutoComplete.html actions.rank.Action.interface method actions.rank.html core.api.check_actionlist_file_only function core.api.html lib.formField.PixelField class lib.formField.html lib.formField.Form.ExifItpcField.to_python method lib.formField.html lib.odict.odict.values method lib.odict.html lib.pyWx.popup.SliderCtrl.SetBackgroundColour method lib.pyWx.popup.html actions.blender.Action.interface method actions.blender.html lib.imtools.has_transparency function lib.imtools.html pyWx.gui.Frame.on_menu_tools_browse_library_user method pyWx.gui.html other.pyWx.TextCtrlAutoComplete.test.match method other.pyWx.TextCtrlAutoComplete.html lib.pyWx.inspector.Grid.UpdateNumberRows method lib.pyWx.inspector.html lib.pyWx.folderFileBrowser.ListCtrl.CreateColumns method lib.pyWx.folderFileBrowser.html lib.formField.Form.NotEmptyCharField class lib.formField.html actions.highlight.Action class actions.highlight.html lib.pyWx.folderFileBrowser.Panel.SetData method lib.pyWx.folderFileBrowser.html other.pep8.selftest function other.pep8.html other.pep8.whitespace_around_operator function other.pep8.html lib.formField.BooleanField.to_string method lib.formField.html lib.pyWx.popup.ForcedBoxSizer.AddForced method lib.pyWx.popup.html lib.formField.ChoiceField class lib.formField.html lib.notify.send function lib.notify.html lib.pyWx.imageInspector.Grid.OnCornerLabelPaint method lib.pyWx.imageInspector.html pyWx.gui.Frame.menu_file_export_droplet method pyWx.gui.html lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl.setDynamicChoices method lib.pyWx.autoCompleteCtrls.html lib.pyWx.paint.Mixin class lib.pyWx.paint.html actions.blender.Background class actions.blender.html lib.formField.IntegerField.to_python method lib.formField.html actions.rank.init function actions.rank.html lib.formField.Form.Field.to_python method lib.formField.html actions.offset.Action.interface method actions.offset.html pyWx.gui.Frame.set_dirty method pyWx.gui.html lib.openImage.open_image_exif_thumb function lib.openImage.html pyWx.gui.Frame.on_size method pyWx.gui.html lib.formField.Form.CommandLineField.to_python method lib.formField.html pyWx.gui.Frame.enable_collapse_automatic method pyWx.gui.html lib.pyWx.imageInspector.Browser.ContentCtrl attribute lib.pyWx.imageInspector.html actions.background.init function actions.background.html actions.reflection.init function actions.reflection.html pyWx.gui.Frame.on_menu_file_history method pyWx.gui.html actions.maximum.Action.init staticmethod actions.maximum.html lib.formField.Form.PixelField class lib.formField.html actions.background.Action.init staticmethod actions.background.html actions.grid.init function actions.grid.html actions.blender.Floor.get_relevant method actions.blender.html lib.windows.locate.Applications class lib.windows.locate.html pyWx.gui.Frame.on_menu_view_expand_all method pyWx.gui.html actions.contour.Action.interface method actions.contour.html pyWx.gui.DialogsMixin.show_question method pyWx.gui.html pyWx.wxGlade.dialogs.FilesDialog class pyWx.wxGlade.dialogs.html lib.listData.DataTuple.set_data method lib.listData.html other.pyWx.toasterbox.ToasterBox.AddPanel method other.pyWx.toasterbox.html core.config.init_config_paths function core.config.html lib.windows.locate.Inkscape.get_path method lib.windows.locate.html actions.blender.Camera.set_args method actions.blender.html actions.blender.BlenderObject.name attribute actions.blender.html lib.metadata.InfoPexif.provides classmethod lib.metadata.html lib.system.ensure_path function lib.system.html lib.imtools.get_unused_palette_indices function lib.imtools.html actions.save.Action class actions.save.html lib.metadata.InfoIptc class lib.metadata.html lib.formField.Form.FloatSliderField class lib.formField.html pyWx.dialogs.StatusDialog.SetMessage method pyWx.dialogs.html pyWx.gui.Frame.on_menu_file_export_recent_to_clipboard method pyWx.gui.html actions.color_to_alpha.init function actions.color_to_alpha.html lib.pyWx.popup.ImageDictionaryFileCtrl class lib.pyWx.popup.html core.config.check_config_paths function core.config.html pyWx.gui.App class pyWx.gui.html actions.imagemagick.Action.interface method actions.imagemagick.html lib.imageTable.Table.get_image_amount method lib.imageTable.html other.pyWx.toasterbox.ToasterBox.SetPopupTextFont method other.pyWx.toasterbox.html pyWx.gui.DialogsMixin.show_info method pyWx.gui.html lib.pyWx.treeEdit.TreeMixin.set_item_image method lib.pyWx.treeEdit.html lib.openImage.open_xcf function lib.openImage.html lib.formField.PilConstantMixin class lib.formField.html other.pubsub.Message class other.pubsub.html pyWx.wxGlade.frame.Frame.on_menu_file_quit method pyWx.wxGlade.frame.html lib._pyexiv2.is_writable_format_exif function lib._pyexiv2.html actions.time_shift.Action.apply method actions.time_shift.html pyWx.gui.Frame.show_description method pyWx.gui.html other.EXIF.Ratio class other.EXIF.html lib.imageTable.Table.get_key_amount method lib.imageTable.html core.safeGlobals.allow function core.safeGlobals.html lib.odict.odict.setdefault method lib.odict.html lib.thumbnail.thumbnail function lib.thumbnail.html lib.imageTable.Table.is_key_empty method lib.imageTable.html core.pil.Photo.log method core.pil.html lib.formField.Form.ImageTypeField.fix_string method lib.formField.html pyWx.gui.DialogsMixin.show_image_tree method pyWx.gui.html actions.contrast.Action.init staticmethod actions.contrast.html pyWx.dialogs.ActionBrowser.ContentCtrl attribute pyWx.dialogs.html actions.time_shift.init function actions.time_shift.html core.pil.Photo.get_flattened_image method core.pil.html actions.offset.Action class actions.offset.html console.console.CliMixin.show_message method console.console.html pyWx.gui.Frame.append_save_action method pyWx.gui.html pyWx.wxGlade.dialogs.StatusDialog.on_button_report method pyWx.wxGlade.dialogs.html core.config.fix_python_path function core.config.html lib.metadata.InfoZexif.provides classmethod lib.metadata.html pyWx.gui.DialogsMixin.get_setting method pyWx.gui.html lib.pyWx.popup.FontFileCtrl class lib.pyWx.popup.html pyWx.wxGlade.dialogs.StatusDialog.on_button_log method pyWx.wxGlade.dialogs.html lib.formField.Form.CommandLineField.raise_error_not_found method lib.formField.html lib.events.Receiver.unsubscribe_all method lib.events.html lib.formField.Form.set_field_as_string_dirty method lib.formField.html console.console.Progress.update method console.console.html lib.pyWx.treeEdit.TreeMixin.is_form_enabled method lib.pyWx.treeEdit.html lib.pyWx.about.wxgAboutDialog.OnClose method lib.pyWx.about.html pyWx.wxGlade.frame.Frame.on_menu_tools_browse_library_phatch method pyWx.wxGlade.frame.html actions.save.Action.is_done_info method actions.save.html lib.pyWx.popup.FileCtrl.GetWildcard method lib.pyWx.popup.html actions.lossless_jpeg.Arguments class actions.lossless_jpeg.html core.pil.Photo class core.pil.html actions.equalize.equalize function actions.equalize.html lib.openImage.save_libtiff function lib.openImage.html other.pyWx.toasterbox.ToasterBoxWindow.SetPopupPosition method other.pyWx.toasterbox.html linux.droplet.create_phatch_recent_thunar_action function linux.droplet.html lib.pyWx.inspector.Grid.AttrIncRef method lib.pyWx.inspector.html lib.colors.RGBToHTMLColor function lib.colors.html actions.blender.BlenderObjects.interface method actions.blender.html lib.pyWx.autoCompleteCtrls.AutoCompleteIconCtrl class lib.pyWx.autoCompleteCtrls.html lib.pyWx.popup.FontFileCtrl.Close method lib.pyWx.popup.html actions.median.Action.init staticmethod actions.median.html lib.pyWx.imageInspector.Table.SetRowLabelValue method lib.pyWx.imageInspector.html lib.imageTable.Table.open_images method lib.imageTable.html lib.pyWx.popup.SliderCtrl class lib.pyWx.popup.html lib.formField.Form.OrientationField class lib.formField.html pyWx.dialogs.WritePluginDialog.template_show method pyWx.dialogs.html lib.openImage.open_inkscape function lib.openImage.html core.pil.Photo.get_filename method core.pil.html lib.pyWx.treeEdit.TreeMixin.set_form_field_value_selected method lib.pyWx.treeEdit.html actions.border.border function actions.border.html actions.delete_tags.Action.apply method actions.delete_tags.html other.findsystem.findFonts function other.findsystem.html actions.imagemagick.Action.apply method actions.imagemagick.html lib.pyWx.dialogsInspector.AddTagDialog.OnTagText method lib.pyWx.dialogsInspector.html lib.pyWx.imageInspector.Grid.RenameRowLabelValue method lib.pyWx.imageInspector.html pyWx.dialogs.ExecuteDialog.export_settings method pyWx.dialogs.html lib.pyWx.graphics.bitmap_open function lib.pyWx.graphics.html actions.colorize.Action.interface method actions.colorize.html other.findsystem.win32FontDirectory function other.findsystem.html lib.imageTable.Table.set_image_label method lib.imageTable.html pyWx.dialogs.ActionDialog.ExtractTags method pyWx.dialogs.html other.pep8.blank_lines function other.pep8.html other.EXIF.EXIF_header.list_IFDs method other.EXIF.html pyWx.wxGlade.frame.Frame.on_menu_view_collapse_all method pyWx.wxGlade.frame.html actions.perspective.Action.interface method actions.perspective.html core.models.Action.HighlightFileField class core.models.html pyWx.wxGlade.dialogs.WritePluginDialog.on_help method pyWx.wxGlade.dialogs.html pyWx.gui.ImageInspectorApp.OnInit method pyWx.gui.html pyWx.wxGlade.dialogs.FolderFileBrowser.GetTreeLabel method pyWx.wxGlade.dialogs.html lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl.onListClick method lib.pyWx.autoCompleteCtrls.html actions.tamogen.Action.pil staticmethod actions.tamogen.html actions.brightness.Action.pil staticmethod actions.brightness.html lib.imtools.InvalidWriteFormatError exception lib.imtools.html lib.formField.Form.CommandLineField class lib.formField.html lib.pyWx.imageInspector.Frame.UpdateIfNeeded method lib.pyWx.imageInspector.html lib.pyWx.imageInspector.Grid.SetTitleFilename method lib.pyWx.imageInspector.html core.message.ProgressReceiver.close method core.message.html actions.sketch.sketch function actions.sketch.html pyWx.gui.Frame.on_menu_file_export_actionlist_to_clipboard method pyWx.gui.html lib.colors.HTMLColorToRGB function lib.colors.html lib.formField.RankSizeField class lib.formField.html lib.pyWx.folderFileBrowser.OpenMixin.get_list_file method lib.pyWx.folderFileBrowser.html console.console.CliMixin class console.console.html lib.formField.Form.interface method lib.formField.html lib.metadataTest.now function lib.metadataTest.html lib.formField.Form.RankSizeField class lib.formField.html lib.metadata.Info attribute lib.metadata.html other.tamogen.set_new_tone function other.tamogen.html actions.rename_tag.Action class actions.rename_tag.html lib.imtools.get_format_data function lib.imtools.html actions.solarize.Action.init staticmethod actions.solarize.html lib.listData.DataDict.sort method lib.listData.html lib.metadata.InfoPil.set_orientation method lib.metadata.html lib.pyWx.inspectorTag.Frame.GetGrid method lib.pyWx.inspectorTag.html lib.metadata.InfoZexif class lib.metadata.html lib.pyWx.treeEdit.TreeMixin.has_forms method lib.pyWx.treeEdit.html lib.pyWx.folderFileBrowser.PreviewMixin.on_list_item_selected method lib.pyWx.folderFileBrowser.html pyWx.dialogs.IconMixin class pyWx.dialogs.html lib.metadata.InfoExtract.set_vars method lib.metadata.html pyWx.wxGlade.frame.App class pyWx.wxGlade.frame.html lib.pyWx.imageFileBrowser.ListCtrl.GetLabel method lib.pyWx.imageFileBrowser.html pyWx.wxGlade.frame.Frame.on_menu_help_documentation method pyWx.wxGlade.frame.html other.pep8.Checker class other.pep8.html actions.reflection.gradient_mask function actions.reflection.html console.console.Frame.show_files_message method console.console.html lib.system.find_exe function lib.system.html actions.brightness.init function actions.brightness.html lib.formField.Form.ChoiceField class lib.formField.html lib.metadata.convert_from_string function lib.metadata.html pyWx.wxGlade.frame.Frame.on_menu_help_about method pyWx.wxGlade.frame.html actions.fit.Action.init staticmethod actions.fit.html actions.copy.Action.is_overwrite_existing_images_forced method actions.copy.html lib.imtools.get_exif_orientation function lib.imtools.html other.pep8.get_statistics function other.pep8.html actions.reflection.Action.values method actions.reflection.html core.api.get_image_infos_from_folder function core.api.html core.pil.Photo.get_layer method core.pil.html lib.pyWx.popup.ComboCtrl.RegisterStyle method lib.pyWx.popup.html actions.contour.put_contour function actions.contour.html lib.metadata.InfoPil.needs_orientation classmethod lib.metadata.html lib.pyWx.popup.SliderCtrl.GetValue method lib.pyWx.popup.html actions.reflection.Action class actions.reflection.html lib.events.subscribe function lib.events.html lib.pyWx.paint.example function lib.pyWx.paint.html lib.formField.Form.ImageWriteTypeField class lib.formField.html lib.pyWx.inspectorTag.TestFrame class lib.pyWx.inspectorTag.html lib.openImage.open_imagemagick function lib.openImage.html pyWx.dialogs.ExecuteDialog class pyWx.dialogs.html other.pep8.python_3000_has_key function other.pep8.html pyWx.gui.Frame.on_context_menu method pyWx.gui.html actions.warm_up.warmup function actions.warm_up.html lib.pyWx.inspectorTag.TestContentGrid.SetTag method lib.pyWx.inspectorTag.html lib.metadataTest.DateTime class lib.metadataTest.html other.pubsub.PublisherClass.validate method other.pubsub.html lib.pyWx.wxPil.wxImage_pil function lib.pyWx.wxPil.html lib.pyWx.treeEdit.TreeMixin.on_sel_changed method lib.pyWx.treeEdit.html lib.formField.FloatField.to_python method lib.formField.html actions.invert.init function actions.invert.html actions.geek.Action.apply method actions.geek.html console.console.Frame.show_progress_error method console.console.html actions.contour.Action.pil staticmethod actions.contour.html lib.pyWx.droplet.FileDropTarget class lib.pyWx.droplet.html lib.fonts.merge function lib.fonts.html actions.tamogen.Action.get_relevant_field_labels method actions.tamogen.html other.tamogen.BoundingBox.move_down method other.tamogen.html lib.pyWx.popup.FontFileCtrl.GetDefaultPath method lib.pyWx.popup.html actions.scale.Action.init staticmethod actions.scale.html pyWx.gui.Frame.on_menu_file_open method pyWx.gui.html pyWx.dialogs.BrowseMixin.show_dir_dialog method pyWx.dialogs.html lib.system.MethodRegister.unregister_extension method lib.system.html pyWx.wxGlade.frame.Frame.on_menu_edit_add method pyWx.wxGlade.frame.html lib.pyWx.treeEdit.TreeMixin.append_forms method lib.pyWx.treeEdit.html lib.formField.Form.ImageTransposeField class lib.formField.html lib.pyWx.vlist.Box class lib.pyWx.vlist.html lib.fonts.basename function lib.fonts.html lib.imageTable.Table.is_image_editable method lib.imageTable.html lib.system.call function lib.system.html linux.droplet.create_phatch_recent_nautilus_action function linux.droplet.html lib.formField.Form.ImageReadFileField class lib.formField.html actions.blender.Action class actions.blender.html lib.system.title function lib.system.html lib.pyWx.popup.FolderCtrl.OnBrowse method lib.pyWx.popup.html other.pep8.tabs_or_spaces function other.pep8.html pyWx.gui.Frame.show_droplet method pyWx.gui.html lib.gps.read_gpx function lib.gps.html lib.pyWx.imageInspector.Grid.UpdateIfNeeded method lib.pyWx.imageInspector.html pyWx.wxGlade.frame.Frame.on_menu_tools_show_report method pyWx.wxGlade.frame.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.SetSelectCallback method other.pyWx.TextCtrlAutoComplete.html lib.formField.Field.get_as_string method lib.formField.html core.translation.to_local function core.translation.html core.config.check_fonts function core.config.html lib.pyWx.compatible.SearchCtrl class lib.pyWx.compatible.html lib.pyWx.treeEdit.TreeMixin.enable_collapse_automatic method lib.pyWx.treeEdit.html lib.imageTable.Table.transpose method lib.imageTable.html lib.pyWx.imageInspector.GridTag class lib.pyWx.imageInspector.html lib.formField.Form.PositiveIntegerField class lib.formField.html lib.pyWx.tag.Browser.CheckEmpty method lib.pyWx.tag.html lib.formField.Form.get_fields method lib.formField.html lib.formField.FolderField class lib.formField.html pyWx.dialogs.ExecuteDialog.browse_files method pyWx.dialogs.html lib.pyWx.popup.PixelCtrl.SplitValue method lib.pyWx.popup.html lib.formField.Form.DictionaryReadFileField class lib.formField.html other.pep8.indentation function other.pep8.html lib.imageTable.TableImage.update_time method lib.imageTable.html lib.pyWx.treeEdit.TreeMixin.get_form_field method lib.pyWx.treeEdit.html lib.formField.Field.validate method lib.formField.html lib.pyWx.tag.ContentMixin class lib.pyWx.tag.html other.tamogen.BoundingBoxContainer.reset_y method other.tamogen.html actions.blender.BlenderObject.get_command method actions.blender.html actions.maximum.maximum function actions.maximum.html other.pep8.trailing_whitespace function other.pep8.html lib.thumbnail.get_freedesktop_pnginfo function lib.thumbnail.html actions.mask.put_mask function actions.mask.html lib.pyWx.imageInspector.Grid.ShowLog method lib.pyWx.imageInspector.html lib.pyWx.popup.FloatSliderCtrl class lib.pyWx.popup.html core.safeGlobals.add_dictionary function core.safeGlobals.html console.console.Frame.Progress.erase method console.console.html lib.pyWx.folderFileBrowser.Panel.UpdateHeaders method lib.pyWx.folderFileBrowser.html lib.events.ReceiveListener class lib.events.html pyWx.dialogs.BrowseMixin class pyWx.dialogs.html lib.formField.Field.eval method lib.formField.html lib.fonts.name function lib.fonts.html actions.effect.Action.interface method actions.effect.html actions.maximum.Action.interface method actions.maximum.html lib.pyWx.imageInspector.Table.IsEditableCell method lib.pyWx.imageInspector.html actions.save.Action.get_format method actions.save.html lib.imageTable.Table.set_cell_value method lib.imageTable.html lib.openImage.open_dcraw function lib.openImage.html lib.pyWx.imageInspector.Grid.CreateRowLabelMenu method lib.pyWx.imageInspector.html other.pep8.python_3000_raise_comma function other.pep8.html lib.linux.desktop.create_droplet function lib.linux.desktop.html actions.rename.Action.is_done_info method actions.rename.html actions.autocontrast.Action.init staticmethod actions.autocontrast.html lib.pyWx.treeEdit.TreeMixin.append_form method lib.pyWx.treeEdit.html other.EXIF.Ratio.reduce method other.EXIF.html pyWx.wxGlade.frame.Frame class pyWx.wxGlade.frame.html pyWx.gui.Frame.on_menu_file_quit method pyWx.gui.html lib.odict.odict class lib.odict.html other.pep8.get_error_statistics function other.pep8.html lib.pyWx.imageInspector.Table.IsEmptyCell method lib.pyWx.imageInspector.html lib.system.MethodRegister class lib.system.html lib.imageTable.Table.is_cell_deletable method lib.imageTable.html actions.rotate.rotate function actions.rotate.html lib.formField.Form.FileNameField class lib.formField.html lib.metadata.InfoExtract.set method lib.metadata.html lib.formField.Form.ImageReadTypeField class lib.formField.html lib.pyWx.folderFileBrowser.ListCtrl.OnGetItemAttr method lib.pyWx.folderFileBrowser.html lib.pyWx.vlist.Box.GetItem method lib.pyWx.vlist.html actions.saturation.Action.interface method actions.saturation.html lib.pyWx.treeDragDrop.Mixin.OnCompareItems method lib.pyWx.treeDragDrop.html core.message.ProgressReceiver.set_max method core.message.html other.tamogen.get_section_size function other.tamogen.html actions.solarize.Action.pil staticmethod actions.solarize.html lib.safe.compile_expr function lib.safe.html lib.pyWx.imageInspector.Grid.OnGridRowLabelRightClicked method lib.pyWx.imageInspector.html lib.imageTable.Table.set_key_label method lib.imageTable.html core.pil.InfoPhoto.assert_transparency method core.pil.html lib.safe.format_expr function lib.safe.html actions.lossless_jpeg.LossLessSaveUtilityMixin.call method actions.lossless_jpeg.html lib.events.Receiver.unsubscribe method lib.events.html lib.safe.eval_safe function lib.safe.html lib.pyWx.imageInspector.Grid.OnGridCellLeftClick method lib.pyWx.imageInspector.html lib.formField.Form.Field.assert_safe method lib.formField.html lib.pyWx.screenshot.save function lib.pyWx.screenshot.html lib.formField.PositiveNonZeroIntegerField.to_python method lib.formField.html lib.pyWx.imageInspector.Grid.ShowError method lib.pyWx.imageInspector.html lib.metadata.InfoExtract class lib.metadata.html other.tamogen.BoundingBox class other.tamogen.html actions.blender.Book.get_relevant method actions.blender.html data.info.all_credits function data.info.html actions.brightness.Action.interface method actions.brightness.html other.pep8.input_dir function other.pep8.html lib.formField.Form.ImageModeField.to_python method lib.formField.html core.api.save_actionlist function core.api.html lib.imtools.generate_layer function lib.imtools.html actions.mask.Action.pil staticmethod actions.mask.html lib.pyWx.imageInspector.Grid.Table.GetNumberCols method lib.pyWx.imageInspector.html pyWx.gui.DialogsMixin.get_icon_filename method pyWx.gui.html lib.pyWx.droplet.FileDropTarget.OnDropFiles method lib.pyWx.droplet.html lib.pyWx.popup.PixelCtrl class lib.pyWx.popup.html other.pyWx.toasterbox.ToasterBox.SetPopupPositionByInt method other.pyWx.toasterbox.html lib.imtools.get_alpha function lib.imtools.html pyWx.wxGlade.frame.Tree class pyWx.wxGlade.frame.html lib.listData.DataDict.get_headers method lib.listData.html actions.color_to_alpha.color_to_alpha function actions.color_to_alpha.html lib.pyWx.treeEdit.TreeMixin.move_form_selected_up method lib.pyWx.treeEdit.html console.console.Frame.show_image_tree method console.console.html other.tamogen.BoundingBox.get_right method other.tamogen.html other.tamogen.FillImages.append method other.tamogen.html lib.pyWx.treeDragDrop.Mixin.GetRootChild method lib.pyWx.treeDragDrop.html lib.pyWx.imageInspector.Grid.OnGridCellRightClicked method lib.pyWx.imageInspector.html actions.posterize.Action.pil staticmethod actions.posterize.html console.console.CliMixin.show_notification method console.console.html pyWx.wxGlade.frame.Frame.on_menu_file_new method pyWx.wxGlade.frame.html other.pyWx.toasterbox.ToasterBox.SetTitle method other.pyWx.toasterbox.html lib.pyWx.imageFileBrowser.Dialog.OnText method lib.pyWx.imageFileBrowser.html actions.convert_mode.init function actions.convert_mode.html lib.pyWx.about.Dialog.OnClose method lib.pyWx.about.html pyWx.gui.Frame.on_close method pyWx.gui.html lib.metadataTest.DateTime.from_exif_string method lib.metadataTest.html lib.safe.assert_safe function lib.safe.html actions.write_tag.Action.apply method actions.write_tag.html lib.pyWx.inspectorTag.Frame class lib.pyWx.inspectorTag.html core.api.open_actionlist function core.api.html other.pyWx.toasterbox.ToasterBoxWindow.SetPopupScrollSpeed method other.pyWx.toasterbox.html actions.save_metadata.Action class actions.save_metadata.html other.pep8.extraneous_whitespace function other.pep8.html lib.pyWx.popup.PixelCtrl.SizeCtrl attribute lib.pyWx.popup.html actions.scale.Action.apply method actions.scale.html lib.pyWx.treeEdit.TreeMixin.on_left_down method lib.pyWx.treeEdit.html other.pyWx.TextCtrlAutoComplete.myListCtrl class other.pyWx.TextCtrlAutoComplete.html other.pyWx.TextCtrlAutoComplete.getSmallDnArrowImage function other.pyWx.TextCtrlAutoComplete.html console.console.ask function console.console.html actions.median.median function actions.median.html core.api.flush_log function core.api.html core.models.Action.PerspectiveField class core.models.html lib.imtools.get_used_palette_indices function lib.imtools.html core.models.OffsetMixin.values method core.models.html other.pep8.expand_indent function other.pep8.html pyWx.dialogs.ImageTreeDialog.SetOkLabel method pyWx.dialogs.html lib.pyWx.folderFileBrowser.Panel class lib.pyWx.folderFileBrowser.html lib.fonts.example function lib.fonts.html lib.openImage.verify_dcraw function lib.openImage.html lib.pyWx.shell.Frame.on_close method lib.pyWx.shell.html actions.grid.make_grid function actions.grid.html lib._pyexiv2.write_thumbdata function lib._pyexiv2.html lib.formField.Field.fix_string method lib.formField.html other.tamogen.BoundingBox.set_left method other.tamogen.html actions.mirror.Action.init staticmethod actions.mirror.html actions.effect.init function actions.effect.html actions.delete_tags.Action class actions.delete_tags.html other.EXIF.gcd function other.EXIF.html lib.formField.Form.CharField class lib.formField.html pyWx.wxGlade.frame.Frame.on_menu_file_save_as method pyWx.wxGlade.frame.html actions.rename.Action.interface method actions.rename.html lib.notify.register function lib.notify.html core.config.verify_app_user_paths function core.config.html pyWx.gui.Frame.get_droplet_folder method pyWx.gui.html lib.pyWx.screenshot.get_window function lib.pyWx.screenshot.html lib.imageTable.Table.get_image_filename method lib.imageTable.html lib.formField.Form.get_field_labels method lib.formField.html lib.pyWx.popup.SetMinVerSize function lib.pyWx.popup.html lib.system.MethodRegister.unregister_method method lib.system.html lib.thumbnail.get_hash function lib.thumbnail.html console.console.ask_yes_no function console.console.html console.console.Progress.close method console.console.html actions.blender.BlenderObject.interface method actions.blender.html actions.lossless_jpeg.UtilityMixin.interface method actions.lossless_jpeg.html pyWx.dialogs.WritePluginDialog.on_help method pyWx.dialogs.html lib.pyWx.popup.ImageReadFileCtrl class lib.pyWx.popup.html lib.gps.r function lib.gps.html lib.gps.s function lib.gps.html lib.pyWx.inspector.Table.DeleteRows method lib.pyWx.inspector.html lib.pyWx.treeEdit.TreeMixin.on_item_activated method lib.pyWx.treeEdit.html lib.gps.m function lib.gps.html lib.pyWx.popup.NotImplementedError exception lib.pyWx.popup.html lib.odict.odict.keys method lib.odict.html lib.pyWx.droplet.Frame.show method lib.pyWx.droplet.html lib.gps.d function lib.gps.html lib.pyWx.inspector.Grid.RefreshAll method lib.pyWx.inspector.html pyWx.wxGlade.dialogs.ExecuteDialog class pyWx.wxGlade.dialogs.html lib.formField.Form.get_field method lib.formField.html pyWx.gui.Frame.on_menu_tools_image_inspector method pyWx.gui.html console.console.CliMixin.show_info method console.console.html lib.formField.FontFileField.init_dictionary method lib.formField.html lib.imtools.checkboard function lib.imtools.html pyWx.dialogs.ActionDialog.GetTagSelection method pyWx.dialogs.html lib.pyWx.imageInspector.OpenMixin class lib.pyWx.imageInspector.html other.tamogen.FillImage class other.tamogen.html lib.pyWx.treeEdit.TreeMixin.CreateImageList method lib.pyWx.treeEdit.html actions.blender.Action.get_relevant_field_labels method actions.blender.html lib.formField.Form.SliderField class lib.formField.html core.models.OffsetMixin.interface method core.models.html lib.formField.NotEmptyCharField class lib.formField.html lib.pyWx.popup.example function lib.pyWx.popup.html core.pil.InfoPhoto.log method core.pil.html actions.transpose.Action.interface method actions.transpose.html pyWx.dialogs.ActionDialog.GetListBox method pyWx.dialogs.html other.pep8.Checker.check_logical method other.pep8.html actions.mask.init function actions.mask.html lib.system.is_www_file function lib.system.html actions.blender.Cd.interface method actions.blender.html actions.crop.Action class actions.crop.html lib.pyWx.imageInspector.Grid.Table.GetValue method lib.pyWx.imageInspector.html actions.blender.Cd.get_relevant method actions.blender.html lib.formField.DictionaryReadFileField class lib.formField.html console.console.CliMixin.show_error method console.console.html actions.effect.Action.init staticmethod actions.effect.html lib.pyWx.inspector.Table.GetGrid method lib.pyWx.inspector.html actions.rotate.Action class actions.rotate.html lib.imtools.identity_color function lib.imtools.html other.tamogen.BoundingBox.move_right method other.tamogen.html actions.lossless_jpeg.Jpegtran.get_command_line_args method actions.lossless_jpeg.html lib.imtools.fit_color_in_palette function lib.imtools.html lib.pyWx.inspector.Grid.OnRightDown method lib.pyWx.inspector.html lib.imtools.get_exif_transposition function lib.imtools.html linux.droplet.on_menu_file_export_thunar_inspector function linux.droplet.html lib.pyWx.inspector.Grid.Table.GetNumberRows method lib.pyWx.inspector.html actions.watermark.watermark function actions.watermark.html lib.system.set_bin_paths function lib.system.html lib.pyWx.popup.PixelCtrl.GetValue method lib.pyWx.popup.html actions.fit.fit function actions.fit.html actions.rank.Action.pil staticmethod actions.rank.html pyWx.gui.Frame.on_menu_edit_enable method pyWx.gui.html lib.formField.Form.Field.get method lib.formField.html actions.offset.Action.init staticmethod actions.offset.html lib.pyWx.vlist.Box.OnDrawSeparator method lib.pyWx.vlist.html pyWx.dialogs.ImageInspectorGrid class pyWx.dialogs.html pyWx.wxGlade.frame.Frame.on_menu_view_expand_all method pyWx.wxGlade.frame.html core.api.init function core.api.html lib.imtools.get_palette function lib.imtools.html core.message.FrameReceiver.show_files_message method core.message.html core.pil.NotWritableTagError exception core.pil.html lib.pyWx.popup.BooleanCtrl.Get method lib.pyWx.popup.html actions.canvas.Action class actions.canvas.html actions.saturation.saturation function actions.saturation.html lib.pyWx.vlistTag.TestContentBox.SetTag method lib.pyWx.vlistTag.html actions.sketch.Action.init staticmethod actions.sketch.html lib.pyWx.folderFileBrowser.OpenMixin.on_tree_item_activated method lib.pyWx.folderFileBrowser.html other.tamogen.BoundingBoxContainer.move_right method other.tamogen.html lib.gps.get_metadata function lib.gps.html lib.formField.Form.EmptyFileField class lib.formField.html actions.saturation.init function actions.saturation.html lib.formField.Form.ChoiceField.set_choices method lib.formField.html lib.pyWx.imageFileBrowser.ListCtrl.GetItemFile method lib.pyWx.imageFileBrowser.html pyWx.wxGlade.dialogs.ErrorDialog.on_skip method pyWx.wxGlade.dialogs.html pyWx.wxGlade.frame.Frame.on_menu_file_save method pyWx.wxGlade.frame.html actions.shadow.Action.pil staticmethod actions.shadow.html lib.system.shell_cache function lib.system.html actions.highlight.put_highlight function actions.highlight.html lib.pyWx.imageInspector.Table class lib.pyWx.imageInspector.html lib._pyexiv2.write_metadata function lib._pyexiv2.html lib.imageTable.Table.set_image_key_value method lib.imageTable.html lib.pyWx.folderFileBrowser.OpenMixin class lib.pyWx.folderFileBrowser.html pyWx.wxGlade.frame.Frame.on_menu_tools_image_inspector method pyWx.wxGlade.frame.html pyWx.dialogs.ExecuteDialog.import_settings method pyWx.dialogs.html lib.formField.get_safe function lib.formField.html actions.imagemagick.Action.init method actions.imagemagick.html lib.metadata.InfoTest.provides classmethod lib.metadata.html actions.median.Action class actions.median.html core.message.FrameReceiver.show_progress method core.message.html lib.formField.CommandLineField.raise_error_out_max method lib.formField.html core.pil.get_photo function core.pil.html lib.unicoding.fix_filename function lib.unicoding.html actions.text.Action.pil staticmethod actions.text.html other.tamogen.BoundingBox.get_left method other.tamogen.html actions.contour.init function actions.contour.html actions.lossless_jpeg.Exiftran class actions.lossless_jpeg.html pyWx.wxGlade.dialogs.ExecuteDialog.on_source method pyWx.wxGlade.dialogs.html lib.formField.Form.BooleanField.to_string method lib.formField.html actions.saturation.Action.init staticmethod actions.saturation.html core.message.ProgressReceiver.update_filename method core.message.html other.pyWx.toasterbox.ToasterBoxWindow.SetPopupBitmap method other.pyWx.toasterbox.html lib.thumbnail.open function lib.thumbnail.html actions.mirror.x_mirror function actions.mirror.html lib.metadata.DumpInfo class lib.metadata.html pyWx.wxGlade.frame.Frame.on_menu_file_export_actionlist_to_clipboard method pyWx.wxGlade.frame.html core.api.get_photo function core.api.html lib.pyWx.imageInspector.Grid class lib.pyWx.imageInspector.html console.console.Frame.verify_actionlist method console.console.html actions.save.Action.get_relevant_field_labels method actions.save.html actions.contour.Action.init staticmethod actions.contour.html lib.thumbnail.delete function lib.thumbnail.html core.safeGlobals.safe_globals function core.safeGlobals.html other.pyWx.toasterbox.ToasterBoxWindow.SetPopupText method other.pyWx.toasterbox.html lib.pyWx.imageInspector.Table.GetRowLabelValue method lib.pyWx.imageInspector.html pyWx.dialogs.ImageTreeDialog.inspect_list_item method pyWx.dialogs.html pyWx.gui.DialogsMixin.show_progress method pyWx.gui.html lib.windows.locate.Blender.get_path method lib.windows.locate.html pyWx.gui.Frame.on_show_droplet method pyWx.gui.html other.pubsub.getStrAllTopics function other.pubsub.html lib.formField.OptionalTransposeField class lib.formField.html pyWx.gui.Frame.on_menu_view_description method pyWx.gui.html lib.colors.PILColorToHTMLColor function lib.colors.html core.preview.generate function core.preview.html core.pil.InfoPhoto class core.pil.html other.pep8.Checker.check_all method other.pep8.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.onListClick method other.pyWx.TextCtrlAutoComplete.html pyWx.wxGlade.frame.Frame.on_menu_file_export_inspector_to_clipboard method pyWx.wxGlade.frame.html lib.pyWx.tag.extract_tags function lib.pyWx.tag.html other.EXIF.EXIF_header class other.EXIF.html lib.formField.ReadFileField.to_python method lib.formField.html actions.rename.Action class actions.rename.html actions.posterize.Action.interface method actions.posterize.html lib.pyWx.popup.BooleanCtrl class lib.pyWx.popup.html lib.pyWx.imageInspector.Frame.OpenImage method lib.pyWx.imageInspector.html other.tamogen.BoundingBox.top attribute other.tamogen.html lib.pyWx.imageInspector.AddTagDialog class lib.pyWx.imageInspector.html other.EXIF.EXIF_header.n2s method other.EXIF.html lib.formField.ImageEffectField class lib.formField.html lib.imtools.fill_background_color function lib.imtools.html pyWx.wxGlade.frame.Frame.on_menu_file_open_library method pyWx.wxGlade.frame.html lib.windows.locate.Inkscape class lib.windows.locate.html data.info.write_readme function data.info.html lib._pyexiv2.read_thumbdata function lib._pyexiv2.html actions.convert_mode.Action.apply method actions.convert_mode.html lib.pyWx.droplet.Frame.OnPaint method lib.pyWx.droplet.html pyWx.gui.DialogsMixin.set_setting method pyWx.gui.html lib.formField.AlignHorizontalField class lib.formField.html lib.pyWx.treeEdit.example function lib.pyWx.treeEdit.html lib.pyWx.paint.Mixin.OnEraseBackground method lib.pyWx.paint.html lib.metadata.is_writable_tag function lib.metadata.html pyWx.wxGlade.frame.Frame.on_menu_tools_browse_system_library method pyWx.wxGlade.frame.html lib.metadata.InfoExtract.set_source method lib.metadata.html lib.fonts.font_names function lib.fonts.html lib.formField.Form.FloatField class lib.formField.html lib.pyWx.compatible.GCDC function lib.pyWx.compatible.html lib.imageTable.Table.is_cell_empty method lib.imageTable.html lib.pyWx.treeEdit.TreeMixin.enable_form_item method lib.pyWx.treeEdit.html actions.delete_tags.Action.get_relevant_field_labels method actions.delete_tags.html lib.formField.Form.PositiveNonZeroIntegerField.to_python method lib.formField.html lib.formField.FloatField class lib.formField.html actions.common.Action.pil staticmethod actions.common.html lib.pyWx.vlistTag.TestDialog class lib.pyWx.vlistTag.html pyWx.gui.DropletMixin.init method pyWx.gui.html lib.pyWx.treeEdit.TreeMixin.create_popup_selected method lib.pyWx.treeEdit.html core.message.FrameReceiver.show_scrolled_message method core.message.html pyWx.gui.Frame.on_menu_edit_add method pyWx.gui.html actions.lossless_jpeg.Exiftran.get_relevant_field_labels method actions.lossless_jpeg.html core.pil.Photo.set_layer method core.pil.html core.pil.InfoPhoto.update method core.pil.html actions.equalize.Action.pil staticmethod actions.equalize.html lib.pyWx.popup.FolderCtrl class lib.pyWx.popup.html actions.transpose.init function actions.transpose.html pyWx.gui.Frame.on_menu_file_open_library method pyWx.gui.html lib.metadata.is_editable_tag function lib.metadata.html core.pil.Photo.convert method core.pil.html lib.pyWx.folderFileBrowser.PreviewMixin.show_preview method lib.pyWx.folderFileBrowser.html actions.background.Action.interface method actions.background.html console.console.Frame.Progress.close method console.console.html lib.pyWx.folderFileBrowser.OpenMixin.start_list_item method lib.pyWx.folderFileBrowser.html lib.pyWx.imageInspector.Grid.Table.SetRowColours method lib.pyWx.imageInspector.html other.tamogen.BoundingBox.set_right method other.tamogen.html core.pil.InfoPhoto.assert_writable method core.pil.html lib.pyWx.inspector.Grid.Table.IsEmptyCell method lib.pyWx.inspector.html pyWx.dialogs.ImageTreeDialog.on_list_item_right_click method pyWx.dialogs.html lib.system.find_in function lib.system.html other.pyWx.toasterbox.ToasterBoxWindow.OnMouseDown method other.pyWx.toasterbox.html pyWx.wxGlade.frame.Frame.on_menu_tools_python_shell method pyWx.wxGlade.frame.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.GetListCtrl method other.pyWx.TextCtrlAutoComplete.html other.pyWx.TextCtrlAutoComplete.test.onBtDynamicChoices method other.pyWx.TextCtrlAutoComplete.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.onListDClick method other.pyWx.TextCtrlAutoComplete.html lib.formField.Form.ExifItpcField.fix_string method lib.formField.html actions.perspective.Action.get_relevant_field_labels method actions.perspective.html core.api.verify_images function core.api.html linux.droplet.on_menu_file_export_thunar_actionlist function linux.droplet.html lib.openImage.open_image_with_pil function lib.openImage.html lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl class lib.pyWx.autoCompleteCtrls.html lib.imageTable.Table.add_image_key method lib.imageTable.html pyWx.dialogs.WritePluginDialog class pyWx.dialogs.html core.pil.Photo.append_to_report method core.pil.html lib.pyWx.treeEdit.TreeMixin.append_form_by_label method lib.pyWx.treeEdit.html other.pyWx.toasterbox.ToasterBoxWindow.ScrollUp method other.pyWx.toasterbox.html lib.formField.Form.Field.eval method lib.formField.html core.api.process_error function core.api.html lib.pyWx.imageInspector.Grid.UpdateValues method lib.pyWx.imageInspector.html other.pyWx.TextCtrlAutoComplete.getSmallUpArrowImage function other.pyWx.TextCtrlAutoComplete.html lib.pyWx.vlistTag.TestContentBox.SetFilter method lib.pyWx.vlistTag.html other.pyWx.toasterbox.ToasterBoxWindow.DrawText method other.pyWx.toasterbox.html lib.pyWx.folderFileBrowser.PreviewMixin class lib.pyWx.folderFileBrowser.html lib.pyWx.imageInspector.Grid.OnRowLabelPaint method lib.pyWx.imageInspector.html other.pyWx.toasterbox.ToasterBox.CleanList method other.pyWx.toasterbox.html lib.formField.Form.PositiveNonZeroIntegerField class lib.formField.html lib.formField.Field class lib.formField.html lib.formField.Form.Field.set_as_string_dirty method lib.formField.html lib.pyWx.about.CreditsDialog class lib.pyWx.about.html actions.posterize.Action.init staticmethod actions.posterize.html pyWx.gui.Frame.on_drop method pyWx.gui.html lib.fonts.font_dictionary function lib.fonts.html lib.pyWx.dialogsInspector.AddTagDialog.OnAdd method lib.pyWx.dialogsInspector.html core.models.LosslessSaveMixin.get_lossless_filename method core.models.html actions.maximum.Action class actions.maximum.html actions.text.Action.values method actions.text.html actions.grid.Action.pil staticmethod actions.grid.html actions.invert.Action.init staticmethod actions.invert.html other.tamogen.BoundingBox.set_top method other.tamogen.html pyWx.gui.Frame.set_safe_mode method pyWx.gui.html actions.highlight.init function actions.highlight.html pyWx.gui.ImageInspectorApp class pyWx.gui.html lib.pyWx.treeEdit.TreeMixin.is_form method lib.pyWx.treeEdit.html actions.background.background function actions.background.html lib.system.fix_quotes function lib.system.html linux.droplet.create_phatch_inspect_nautilus_action function linux.droplet.html actions.mirror.get_scales function actions.mirror.html lib.formField.ImageModeField.to_python method lib.formField.html lib.metadata.InfoExtract.expand classmethod lib.metadata.html lib.pyWx.about.wxgCreditsDialog class lib.pyWx.about.html lib.formField.Form.ImageModeField class lib.formField.html lib.metadata.InfoExtract.types method lib.metadata.html other.pubsub.PublisherClass.getMessageCount method other.pubsub.html pyWx.gui.DialogsMixin.show_report method pyWx.gui.html other.findsystem.win32InstalledFonts function other.findsystem.html other.pyWx.toasterbox.ToasterBox.Notify method other.pyWx.toasterbox.html actions.copy.Action.apply method actions.copy.html lib.listData.files_data_dict function lib.listData.html core.models.negative function core.models.html lib.pyWx.vlist.Box.OnDrawItem method lib.pyWx.vlist.html lib.formField.ImageModeField class lib.formField.html lib.formField.DictionaryReadFileField.init_dictionary method lib.formField.html lib.formField.Form.PositiveNonZeroFloatField class lib.formField.html pyWx.gui.Frame.enable_menu method pyWx.gui.html pyWx.wxGlade.frame.Frame.on_menu_file_export_recent_to_clipboard method pyWx.wxGlade.frame.html pyWx.gui.findWindowById function pyWx.gui.html pyWx.dialogs.ImageInspectorBrowser class pyWx.dialogs.html actions.equalize.Action class actions.equalize.html lib.pyWx.shell.Frame.OnIdle method lib.pyWx.shell.html lib.pyWx.imageInspector.Grid.show_message method lib.pyWx.imageInspector.html actions.blender.BlenderObject.set_args method actions.blender.html pyWx.wxGlade.frame.Tree.OnCompareItems method pyWx.wxGlade.frame.html linux.droplet.create_phatch_recent_droplet function linux.droplet.html lib.formField.Form.set_field_as_string method lib.formField.html actions.invert.Action class actions.invert.html lib.system.MethodRegister.register method lib.system.html lib.pyWx.imageInspector.Grid.UpdateThumbs method lib.pyWx.imageInspector.html lib.imtools.calculate_location function lib.imtools.html other.pyWx.toasterbox.ToasterBox.SetPopupBackgroundColor method other.pyWx.toasterbox.html actions.round.Action.values method actions.round.html lib.pyWx.vlistTag.Dialog.OnOk method lib.pyWx.vlistTag.html lib.formField.BooleanField.to_python method lib.formField.html lib.pyWx.treeDragDrop.Mixin.GetItemChildren method lib.pyWx.treeDragDrop.html pyWx.images.get_icon function pyWx.images.html lib.metadata.get_vars_by_info function lib.metadata.html lib.pyWx.inspector.Grid.UpdateValues method lib.pyWx.inspector.html lib.pyWx.inspectorTag.Frame.CreateBitmapButton method lib.pyWx.inspectorTag.html pyWx.gui.Frame.on_menu_edit_disable method pyWx.gui.html lib.metadata.InfoExtract.clear_cache method lib.metadata.html lib.pyWx.imageInspector.Table.GetValue method lib.pyWx.imageInspector.html lib._pyexiv2.is_writable_format function lib._pyexiv2.html lib.pyWx.vlist.TestFrame class lib.pyWx.vlist.html pyWx.dialogs.StatusDialog.on_button_report method pyWx.dialogs.html lib.imageTable.TableImage.is_modified method lib.imageTable.html console.console.Progress.erase method console.console.html lib.pyWx.imageInspector.OpenMixin.OpenImages method lib.pyWx.imageInspector.html other.pyWx.toasterbox.ToasterBox.SetPopupTextColor method other.pyWx.toasterbox.html lib.pyWx.treeEdit.TreeMixin.toggle_form_item method lib.pyWx.treeEdit.html actions.shadow.drop_shadow function actions.shadow.html lib.pyWx.imageInspector.Grid.Table.IsEditableCell method lib.pyWx.imageInspector.html core.pil.image_to_dict function core.pil.html core.message.FrameReceiver.show_error method core.message.html pyWx.dialogs.ActionListBox.GetItem method pyWx.dialogs.html lib.pyWx.tag.TestBrowser class lib.pyWx.tag.html actions.fit.Action.interface method actions.fit.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.SetMatchFunction method other.pyWx.TextCtrlAutoComplete.html lib.pyWx.popup.ColorCtrl.GetValue method lib.pyWx.popup.html other.pubsub.PublisherClass class other.pubsub.html lib.pyWx.paint.Mixin.EnableBackgroundPainting method lib.pyWx.paint.html actions.rank.rnk function actions.rank.html core.models.Action.values method core.models.html other.pubsub.PublisherClass.unsubAll method other.pubsub.html lib.pyWx.vlist.Box.RefreshAll method lib.pyWx.vlist.html pyWx.wxGlade.frame.Frame.on_menu_edit_enable method pyWx.wxGlade.frame.html lib.pyWx.treeEdit.TreeMixin.on_item_expanding method lib.pyWx.treeEdit.html core.pil.split_data function core.pil.html actions.blender.Action.construct_command method actions.blender.html lib.pyWx.imageInspector.Table.SetValue method lib.pyWx.imageInspector.html lib.windows.locate.RegistryApplication.get_path method lib.windows.locate.html lib.pyWx.popup.FileCtrl.OnBrowse method lib.pyWx.popup.html other.surd.test_error function other.surd.html pyWx.dialogs.ImageInspectorGrid.ProcessKey method pyWx.dialogs.html lib.pyWx.droplet.Frame.OnLeftUp method lib.pyWx.droplet.html lib.pyWx.tag.TestFrame class lib.pyWx.tag.html lib.pyWx.imageInspector.Grid.OnColLabelPaint method lib.pyWx.imageInspector.html lib.formField.rotation_title_parser function lib.formField.html actions.fit.init function actions.fit.html lib.pyWx.treeDragDrop.Mixin.EnableDrag method lib.pyWx.treeDragDrop.html lib.pyWx.graphics.image function lib.pyWx.graphics.html data.info.write_readme_credits function data.info.html lib.pyWx.inspectorTag.Grid class lib.pyWx.inspectorTag.html lib.imageTable.Table.set_tag method lib.imageTable.html pyWx.wxGlade.frame.App.OnInit method pyWx.wxGlade.frame.html lib.formField.PositiveNonZeroIntegerField class lib.formField.html lib.formField.DictionaryReadFileField.to_python method lib.formField.html lib.pyWx.inspector.Grid.GetTableValue method lib.pyWx.inspector.html other.pyWx.toasterbox.ToasterBoxWindow.SetPopupTextFont method other.pyWx.toasterbox.html lib.listData.DataTuple class lib.listData.html lib.pyWx.popup.SliderCtrl.SetFocus method lib.pyWx.popup.html pyWx.dialogs.ExecuteDialog.browse_folder method pyWx.dialogs.html lib.pyWx.tag.Browser.IsEmpty method lib.pyWx.tag.html actions.background.Action.get_relevant_field_labels method actions.background.html lib.formField.Form.ReadFileField.to_python method lib.formField.html actions.geek.Action.is_overwrite_existing_images_forced method actions.geek.html pyWx.wxGlade.frame.Frame.on_menu_tools_update_fonts method pyWx.wxGlade.frame.html actions.colorize.init function actions.colorize.html other.pep8.excluded function other.pep8.html pyWx.gui.Frame.on_menu_help_translate method pyWx.gui.html lib.pyWx.treeEdit.TreeMixin.is_field_selected method lib.pyWx.treeEdit.html lib.imageTable.Table class lib.imageTable.html actions.save.Action.init staticmethod actions.save.html actions.solarize.Action class actions.solarize.html pyWx.gui.Frame.on_menu_help_forum method pyWx.gui.html lib.pyWx.droplet.Frame class lib.pyWx.droplet.html linux.droplet.menu_action function linux.droplet.html lib.imtools.save_check_mode function lib.imtools.html lib.pyWx.clipboard.get_text function lib.pyWx.clipboard.html core.translation.to_english function core.translation.html lib.imtools.get_used_palette_colors function lib.imtools.html lib.pyWx.about.Dialog class lib.pyWx.about.html actions.save_metadata.Action.apply method actions.save_metadata.html other.tamogen.get_tone function other.tamogen.html actions.lossless_jpeg.Action.init method actions.lossless_jpeg.html lib.formField.FileSizeField.to_python method lib.formField.html lib.openImage.verify_image_without_pil function lib.openImage.html lib.formField.Form class lib.formField.html other.pyWx.toasterbox.ToasterBoxWindow.SetPopupPositionByInt method other.pyWx.toasterbox.html other.EXIF.IFD_Tag class other.EXIF.html actions.perspective.Action.values method actions.perspective.html other.pep8.trailing_blank_lines function other.pep8.html lib.pyWx.tag.Browser.GetContent method lib.pyWx.tag.html lib.pyWx.imageInspector.Grid.DeleteCols method lib.pyWx.imageInspector.html lib.pyWx.inspectorTag.TestBrowser.ContentCtrl attribute lib.pyWx.inspectorTag.html pyWx.dialogs.FilesDialog class pyWx.dialogs.html lib.pyWx.about.example function lib.pyWx.about.html actions.write_tag.Action.interface method actions.write_tag.html actions.round.create_corner function actions.round.html pyWx.gui.Frame.on_menu_view_collapse_automatic method pyWx.gui.html actions.fit.Action.values method actions.fit.html lib.formField.CommandLineField.to_python method lib.formField.html pyWx.plugin.install_frame function pyWx.plugin.html actions.warm_up.Action.pil staticmethod actions.warm_up.html actions.blender.Box.get_relevant method actions.blender.html other.pyWx.toasterbox.ToasterBox.MoveAbove method other.pyWx.toasterbox.html lib.metadata.InfoExtract.provides method lib.metadata.html lib.system.shell_returncode function lib.system.html core.pil.Photo.resize method core.pil.html other.pep8.process_options function other.pep8.html lib.pyWx.popup.ImageDictionaryFileCtrl.GetValue method lib.pyWx.popup.html pyWx.dialogs.ActionListBox.IsEmpty method pyWx.dialogs.html lib.pyWx.imageFileBrowser.ListCtrl.GetItemLabel method lib.pyWx.imageFileBrowser.html lib.pyWx.inspector.Grid.SetRowColours method lib.pyWx.inspector.html lib.formField.Form.ImageTypeField class lib.formField.html lib.formField.BooleanField class lib.formField.html actions.desaturate.init function actions.desaturate.html actions.solarize.Action.interface method actions.solarize.html lib.pyWx.popup.ColorCtrl.GetColorAsString method lib.pyWx.popup.html lib.formField.FileNameField class lib.formField.html actions.watermark.Action.pil staticmethod actions.watermark.html pyWx.gui.DropletMixin.OnInit method pyWx.gui.html actions.watermark.init function actions.watermark.html lib.formField.Form.set_fields method lib.formField.html core.pil.InfoPhoto.is_dirty method core.pil.html lib.pyWx.imageFileBrowser.ListCtrl.Deselect method lib.pyWx.imageFileBrowser.html lib.pyWx.imageInspector.Grid.Table.GetRowLabelValue method lib.pyWx.imageInspector.html other.pep8.Checker.report_error method other.pep8.html lib.pyWx.dialogsInspector.AddTagDialog class lib.pyWx.dialogsInspector.html lib.pyWx.imageInspector.Frame.OnActivate method lib.pyWx.imageInspector.html pyWx.wxGlade.frame.Frame.on_menu_tools_safe method pyWx.wxGlade.frame.html actions.canvas.Action.pil staticmethod actions.canvas.html lib.pyWx.screenshot.save_window function lib.pyWx.screenshot.html lib.pyWx.treeEdit.TreeMixin.import_form method lib.pyWx.treeEdit.html lib.gps.handle_trk function lib.gps.html lib.formField.Form.Field.to_string method lib.formField.html pyWx.dialogs.ImageTreeDialog.SetData method pyWx.dialogs.html actions.border.Action.init staticmethod actions.border.html console.console.Frame class console.console.html pyWx.nuovext.Provider.CreateBitmap method pyWx.nuovext.html pyWx.gui.DialogsMixin.show_notification method pyWx.gui.html lib.pyWx.imageInspector.AddTagDialog.GetModal method lib.pyWx.imageInspector.html lib.formField.Form.get_field_size method lib.formField.html lib.pyWx.imageInspector.Grid.ShowMessage method lib.pyWx.imageInspector.html other.pyWx.toasterbox.ToasterBoxWindow.SetPopupPauseTime method other.pyWx.toasterbox.html lib.pyWx.treeEdit.TreeMixin.append_form_by_label_to_last method lib.pyWx.treeEdit.html lib.formField.Form.is_enabled method lib.formField.html pyWx.gui.set_theme function pyWx.gui.html lib.odict.odict.index method lib.odict.html lib.imtools.get_format function lib.imtools.html actions.rotate.Action.init staticmethod actions.rotate.html pyWx.wxGlade.frame.Frame.on_menu_help_plugin method pyWx.wxGlade.frame.html lib.pyWx.imageInspector.Grid.Table.SetValue method lib.pyWx.imageInspector.html lib.pyWx.tag.Browser.ContentCtrl attribute lib.pyWx.tag.html actions.border.Action.get_relevant_field_labels method actions.border.html lib.formField.Form.Field.fix_string method lib.formField.html core.pil.InfoPhoto.save method core.pil.html lib.pyWx.treeDragDrop.Mixin.OnEndDrag method lib.pyWx.treeDragDrop.html pyWx.gui.DialogsMixin class pyWx.gui.html core.safeGlobals.add_module function core.safeGlobals.html other.EXIF.s2n_motorola function other.EXIF.html lib.pyWx.treeEdit.TreeMixin.set_form_field_value method lib.pyWx.treeEdit.html actions.geek.Action.interface method actions.geek.html lib.formField.TestFieldMixin.get method lib.formField.html lib.metadata.InfoExtract.clear method lib.metadata.html lib.pyWx.clipboard.copy_text function lib.pyWx.clipboard.html lib.pyWx.vlistTag.Dialog.OnDoubleClick method lib.pyWx.vlistTag.html lib.imtools.flatten function lib.imtools.html actions.colorize.colorize function actions.colorize.html actions.text.draw_text function actions.text.html actions.offset.init function actions.offset.html other.pep8.python_3000_backticks function other.pep8.html lib.formField.Field.interpolate method lib.formField.html pyWx.dialogs.ImageTreeDialog.ShowButtons method pyWx.dialogs.html lib.pyWx.imageInspector.Grid.DeleteCell method lib.pyWx.imageInspector.html lib.formField.PixelField.get_size method lib.formField.html actions.rename.Action.is_overwrite_existing_images_forced method actions.rename.html actions.copy.Action class actions.copy.html actions.blender.Book.set_args method actions.blender.html lib.system.TempFile.close method lib.system.html pyWx.dialogs.ExecuteDialog.on_default method pyWx.dialogs.html actions.copy.Action.is_done_info method actions.copy.html lib.pyWx.treeEdit.TreeMixin.get_popup_pos_offset_size method lib.pyWx.treeEdit.html lib.pyWx.droplet.Frame.OnDoubleClick method lib.pyWx.droplet.html lib.pyWx.imageInspector.empty_bitmap function lib.pyWx.imageInspector.html lib.gps.search function lib.gps.html lib.system.find_command function lib.system.html core.api.filter_image_infos function core.api.html lib.imtools.auto_crop function lib.imtools.html core.pil.split_vars_static_dynamic function core.pil.html lib.events.Receiver.subscribe method lib.events.html other.pep8.Checker.build_tokens_line method other.pep8.html lib.formField.Form.Field.set method lib.formField.html pyWx.dialogs.ImageTreeDialog.inspect method pyWx.dialogs.html lib.pyWx.droplet.Frame.SetWindowShape method lib.pyWx.droplet.html linux.droplet.on_menu_file_export_nautilus_actionlist function linux.droplet.html pyWx.gui.inspect function pyWx.gui.html actions.scale.Action class actions.scale.html lib.formField.FileField.to_python method lib.formField.html lib.pyWx.inspector.Grid.Table.SetValue method lib.pyWx.inspector.html console.console.Frame.show_progress method console.console.html lib.pyWx.imageFileBrowser.example function lib.pyWx.imageFileBrowser.html lib.pyWx.inspectorTag.TestContentGrid.SetFilter method lib.pyWx.inspectorTag.html other.surd.surd class other.surd.html lib.pyWx.treeEdit.TreeMixin.close_popup method lib.pyWx.treeEdit.html actions.geek.Action.init method actions.geek.html other.pubsub.PublisherClass.sendMessage method other.pubsub.html core.api.init_error_log_file function core.api.html lib.odict.odict.update method lib.odict.html lib.safe.assert_safe_expr function lib.safe.html lib.imtools.split function lib.imtools.html lib.pyWx.treeEdit.TreeMixin.collapse_forms method lib.pyWx.treeEdit.html pyWx.dialogs.ExecuteDialog.set_drop method pyWx.dialogs.html actions.crop.Action.init staticmethod actions.crop.html console.console.CliMixin.write method console.console.html lib.pyWx.paint.Mixin.GetPaintMessage method lib.pyWx.paint.html actions.blender.Sphere class actions.blender.html lib.pyWx.treeEdit.TreeMixin.events method lib.pyWx.treeEdit.html core.models.CropMixin class core.models.html lib.formField.FloatSliderField class lib.formField.html actions.tamogen.Action.interface method actions.tamogen.html actions.blender.Floor.interface method actions.blender.html lib.formField.set_safe function lib.formField.html other.tamogen.FillImages class other.tamogen.html core.models.OffsetMixin.get_relevant_field_labels method core.models.html lib.listData.DataDict.get_by_header method lib.listData.html actions.color_to_alpha.difference2 function actions.color_to_alpha.html lib.system.wrap function lib.system.html core.api.init_actions function core.api.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.onControlChanged method other.pyWx.TextCtrlAutoComplete.html actions.posterize.init function actions.posterize.html lib.pyWx.shell.Frame class lib.pyWx.shell.html pyWx.gui.Frame.on_menu_tools_show_report method pyWx.gui.html other.pyWx.TextCtrlAutoComplete.getSmallDnArrowData function other.pyWx.TextCtrlAutoComplete.html linux.droplet.create_phatch_inspect_thunar_action function linux.droplet.html lib.pyWx.imageInspector.Grid.AddRow method lib.pyWx.imageInspector.html lib.pyWx.treeEdit.TreeMixin.delete_all_forms method lib.pyWx.treeEdit.html pyWx.dialogs.ImageTreeDialog.inspect_tree_item method pyWx.dialogs.html lib.pyWx.imageInspector.Table.GetNumberRows method lib.pyWx.imageInspector.html lib.pyWx.popup.ChoiceCtrl class lib.pyWx.popup.html other.pep8.tabs_obsolete function other.pep8.html actions.reflection.Action.pil staticmethod actions.reflection.html pyWx.wxGlade.frame.Frame.on_menu_edit_modify method pyWx.wxGlade.frame.html pyWx.gui.Frame.on_description_text method pyWx.gui.html lib.imageTable.Table.open_folder method lib.imageTable.html lib.pyWx.imageInspector.Grid.ProcessKey method lib.pyWx.imageInspector.html actions.autocontrast.autocontrast function actions.autocontrast.html data.info.write_credits function data.info.html lib.formField.FileField class lib.formField.html lib.pyWx.imageInspector.Grid.Table.SetRowLabelValue method lib.pyWx.imageInspector.html actions.colorize.Action class actions.colorize.html actions.round.Action class actions.round.html pyWx.dialogs.ImageInspectorBrowser.ContentCtrl attribute pyWx.dialogs.html pyWx.dialogs.ActionListBox.SetFilter method pyWx.dialogs.html core.models.Action.MaskFileField class core.models.html lib.formField.Form.is_field_true method lib.formField.html other.relativedelta.relativedelta class other.relativedelta.html lib.pyWx.inspector.Grid.Table class lib.pyWx.inspector.html lib.thumbnail.get_freedesktop_size_label function lib.thumbnail.html actions.save.Action.is_overwrite_existing_images_forced method actions.save.html actions.geotag.Action.init staticmethod actions.geotag.html lib.formField.Form.DpiField class lib.formField.html lib.formField.Field.assert_safe method lib.formField.html lib.gps.handle_trkseg function lib.gps.html lib.formField.Form.dump method lib.formField.html actions.minimum.minimum function actions.minimum.html pyWx.gui.Frame.show_paint_message method pyWx.gui.html actions.lossless_jpeg.UtilityMixin class actions.lossless_jpeg.html lib.pyWx.droplet.Mixin.SetAsFileDropTarget method lib.pyWx.droplet.html other.pep8.imports_on_separate_lines function other.pep8.html actions.autocontrast.init function actions.autocontrast.html actions.text.Action.get_relevant_field_labels method actions.text.html actions.blender.Box.interface method actions.blender.html other.pyWx.toasterbox.ToasterBox.SetPopupText method other.pyWx.toasterbox.html core.api.assert_safe function core.api.html lib.formField.ImageDictionaryReadFileField class lib.formField.html actions.blender.Background.set_args method actions.blender.html lib.formField.ChoiceField.set_choices method lib.formField.html other.pubsub.test function other.pubsub.html lib.pyWx.wxPil.wxBitmap_pil function lib.pyWx.wxPil.html pyWx.gui.Frame.on_menu_help_bug method pyWx.gui.html actions.grid.Action.values method actions.grid.html pyWx.gui.DropletMixin.get_action_list method pyWx.gui.html lib.pyWx.popup.FloatSliderCtrl.GetValue method lib.pyWx.popup.html actions.invert.Action.interface method actions.invert.html lib.imtools.convert_save_mode_by_format function lib.imtools.html actions.lossless_jpeg.Jpegtran class actions.lossless_jpeg.html lib.pyWx.vlist.Box.OnDrawBackground method lib.pyWx.vlist.html pyWx.gui.Frame.on_menu_help_documentation method pyWx.gui.html lib.metadata.is_writeable_not_exif_tag function lib.metadata.html pyWx.gui.Frame.on_menu_file_save method pyWx.gui.html pyWx.gui.Frame.on_menu_tools_python_shell method pyWx.gui.html other.EXIF.usage function other.EXIF.html lib.thumbnail.get_freedesktop_filename function lib.thumbnail.html actions.blender.Camera.get_relevant method actions.blender.html pyWx.dialogs.ImageTreeDialog class pyWx.dialogs.html actions.time_shift.get_date function actions.time_shift.html other.pep8.compound_statements function other.pep8.html lib.pyWx.imageInspector.Frame.Browser.GetPaintMessage method lib.pyWx.imageInspector.html lib.pyWx.imageInspector.Grid.Table.GetColLabelValue method lib.pyWx.imageInspector.html lib.pyWx.imageInspector.Grid.Table.DeleteRows method lib.pyWx.imageInspector.html console.console.Progress class console.console.html lib.formField.Form.FontFileField class lib.formField.html lib.openImage.verify_image function lib.openImage.html other.EXIF.make_string function other.EXIF.html lib.formField.FileSizeField class lib.formField.html other.EXIF.EXIF_header.s2n method other.EXIF.html actions.rename.Action.apply method actions.rename.html lib.pyWx.popup.FloatSliderCtrl.OnSpin method lib.pyWx.popup.html lib.formField.PilConstantMixin.to_python method lib.formField.html lib.pyWx.screenshot.get function lib.pyWx.screenshot.html lib.pyWx.tag.Browser class lib.pyWx.tag.html other.pubsub.PublisherClass.unsubscribe method other.pubsub.html other.pyWx.TextCtrlAutoComplete.test.selectCallback method other.pyWx.TextCtrlAutoComplete.html lib.metadata.InfoExtract.get_vars_by_info classmethod lib.metadata.html actions.mirror.y_mirror function actions.mirror.html actions.fit.Action.pil staticmethod actions.fit.html actions.blender.BlenderObjects class actions.blender.html lib.formField.ImageTypeField class lib.formField.html lib.pyWx.imageFileBrowser.Dialog.Select method lib.pyWx.imageFileBrowser.html actions.transpose.Action.pil staticmethod actions.transpose.html other.tamogen.BoundingBoxContainer.append method other.tamogen.html lib.odict.odict.items method lib.odict.html core.config.load_locale function core.config.html lib.pyWx.inspector.Grid class lib.pyWx.inspector.html lib.pyWx.popup.ComboCtrl.Get method lib.pyWx.popup.html lib.pyWx.popup.EditPanel class lib.pyWx.popup.html lib.pyWx.folderFileBrowser.example_dict_data function lib.pyWx.folderFileBrowser.html actions.effect.Action class actions.effect.html core.models.LosslessSaveMixin class core.models.html actions.mask.Action class actions.mask.html pyWx.gui.DropletMixin.get_action_list_files method pyWx.gui.html lib.pyWx.treeDragDrop.Mixin.MoveChildDown method lib.pyWx.treeDragDrop.html actions.border.Action.values method actions.border.html lib.thumbnail.get_uri function lib.thumbnail.html pyWx.wxGlade.frame.Frame.on_menu_tools_show_log method pyWx.wxGlade.frame.html lib.pyWx.popup.ColorCtrl class lib.pyWx.popup.html lib.pyWx.folderFileBrowser.Panel.GetTreeLabel method lib.pyWx.folderFileBrowser.html core.pil.InfoPhoto.get_log method core.pil.html actions.mask.Action.init staticmethod actions.mask.html actions.write_tag.Action class actions.write_tag.html lib._pyexiv2.is_readable_format function lib._pyexiv2.html lib.formField.Form.FontFileField.init_dictionary method lib.formField.html pyWx.gui.DialogsMixin.show_log method pyWx.gui.html pyWx.wxGlade.dialogs.ImageTreeDialog class pyWx.wxGlade.dialogs.html actions.sketch.Action.pil staticmethod actions.sketch.html lib.pyWx.folderFileBrowser.ListCtrl.OnGetItemImage method lib.pyWx.folderFileBrowser.html other.pep8.Checker.readline method other.pep8.html core.models.Action.BlenderObjectField class core.models.html lib.pyWx.inspectorTag.Grid.IsEmpty method lib.pyWx.inspectorTag.html pyWx.dialogs.ImageInspectorGrid.CreateRowLabelMenu method pyWx.dialogs.html lib.formField.CommandLineField class lib.formField.html lib.pyWx.popup.ComboCtrl class lib.pyWx.popup.html lib.pyWx.popup.ctrl_factory function lib.pyWx.popup.html lib.pyWx.imageInspector.Grid.Table.IsEmptyCell method lib.pyWx.imageInspector.html actions.saturation.Action.pil staticmethod actions.saturation.html actions.autocontrast.Action.pil staticmethod actions.autocontrast.html lib.pyWx.imageFileBrowser.truncate function lib.pyWx.imageFileBrowser.html actions.lossless_jpeg.LossLessSaveUtilityMixin class actions.lossless_jpeg.html actions.crop.Action.pil staticmethod actions.crop.html core.config.load_locale_only function core.config.html lib.pyWx.inspector.Table.GetNumberCols method lib.pyWx.inspector.html lib._pyexiv2.flush function lib._pyexiv2.html lib.pyWx.treeEdit.rescale function lib.pyWx.treeEdit.html actions.background.Action.pil staticmethod actions.background.html other.pyWx.toasterbox.ToasterBox class other.pyWx.toasterbox.html lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl.initialize method lib.pyWx.autoCompleteCtrls.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.onClickToggleUp method other.pyWx.TextCtrlAutoComplete.html core.api.get_image_infos function core.api.html actions.canvas.Action.values method actions.canvas.html lib.pyWx.tag.TestContentCtrl class lib.pyWx.tag.html pyWx.gui.DialogsMixin.show_progress_error method pyWx.gui.html actions.common.init function actions.common.html lib.formField.Form.FileSizeField class lib.formField.html pyWx.dialogs.get_max_height function pyWx.dialogs.html actions.lossless_jpeg.Exiftran.get_command_line_args method actions.lossless_jpeg.html lib.metadata.InfoEXIF class lib.metadata.html actions.geotag.init function actions.geotag.html lib.formField.ExifItpcField.to_python method lib.formField.html lib.gps.get_node_value function lib.gps.html core.message.ProgressReceiver class core.message.html other.EXIF.EXIF_header.canon_decode_tag method other.EXIF.html actions.mask.Action.interface method actions.mask.html lib.pyWx.vlistTag.TestBrowser.ContentCtrl attribute lib.pyWx.vlistTag.html actions.equalize.Action.init staticmethod actions.equalize.html core.models.CropMixin.get_relevant_field_labels method core.models.html lib.formField.CsvFileField class lib.formField.html other.pubsub.PublisherClass.isValid method other.pubsub.html actions.blender.Book class actions.blender.html actions.border.Action.pil staticmethod actions.border.html actions.tamogen.init function actions.tamogen.html lib.pyWx.imageInspector.Grid.OnGridCellChange method lib.pyWx.imageInspector.html pyWx.dialogs.ActionListBox.GetStringSelection method pyWx.dialogs.html actions.time_shift.Action class actions.time_shift.html lib.metadataTest.is_string function lib.metadataTest.html core.models.Action.BlenderRotationField.title_parser method core.models.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.SetChoices method other.pyWx.TextCtrlAutoComplete.html actions.geek.Action class actions.geek.html core.models.Action.BlenderField class core.models.html lib.pyWx.tag.TestBrowser.ContentCtrl attribute lib.pyWx.tag.html pyWx.dialogs.ImageTreeDialog.SetColumnWidths method pyWx.dialogs.html lib.pyWx.treeDragDrop.Mixin.MoveChildUp method lib.pyWx.treeDragDrop.html core.message.FrameReceiver.append_save_action method core.message.html actions.save.init function actions.save.html actions.scale.init function actions.scale.html pyWx.gui.App.OnInit method pyWx.gui.html lib.pyWx.inspector.Table.SetValue method lib.pyWx.inspector.html lib.listData.DataTuple.set_filter method lib.listData.html other.pep8.get_warning_statistics function other.pep8.html lib.pyWx.imageFileBrowser.ListCtrl.Select method lib.pyWx.imageFileBrowser.html other.pyWx.toasterbox.ToasterBox.SetPopupPosition method other.pyWx.toasterbox.html lib.pyWx.treeEdit.TreeMixin.get_last_form method lib.pyWx.treeEdit.html console.console.u function console.console.html other.EXIF.EXIF_header.extract_TIFF_thumbnail method other.EXIF.html console.console.Frame.Progress.update method console.console.html lib.pyWx.droplet.Frame.OnMouseMove method lib.pyWx.droplet.html linux.thunar.create_thunar_action function linux.thunar.html lib.formField.CharField class lib.formField.html other.pyWx.toasterbox.ToasterBox.GetToasterBoxWindow method other.pyWx.toasterbox.html lib.pyWx.tag.Browser.GetTags method lib.pyWx.tag.html lib.pyWx.imageInspector.Grid.GetCellRowCol method lib.pyWx.imageInspector.html lib.pyWx.imageInspector.Table.SetRowColours method lib.pyWx.imageInspector.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.SetEntryCallback method other.pyWx.TextCtrlAutoComplete.html lib.pyWx.treeEdit.TreeMixin.export_forms method lib.pyWx.treeEdit.html actions.colorize.Action.init staticmethod actions.colorize.html actions.invert.invert function actions.invert.html lib.pyWx.folderFileBrowser.OpenMixin.get_tree_folder method lib.pyWx.folderFileBrowser.html actions.blender.Floor class actions.blender.html lib.pyWx.imageInspector.Frame.Browser class lib.pyWx.imageInspector.html actions.round.Action.get_relevant_field_labels method actions.round.html lib.openImage.get_info_libtiff function lib.openImage.html core.models.CropMixin.values method core.models.html lib.pyWx.about.Dialog.OnCredits method lib.pyWx.about.html core.models.Action.PerspectiveField.init_dictionary method core.models.html lib.pyWx.popup.PixelCtrl.SetValue method lib.pyWx.popup.html pyWx.wxGlade.dialogs.ErrorDialog.on_abort method pyWx.wxGlade.dialogs.html other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete.GetChoices method other.pyWx.TextCtrlAutoComplete.html actions.brightness.Action.init staticmethod actions.brightness.html actions.rotate.Action.pil staticmethod actions.rotate.html actions.perspective.Action class actions.perspective.html other.pyWx.toasterbox.ToasterBoxWindow.OnClose method other.pyWx.toasterbox.html lib.formField.PositiveNonZeroFloatField.to_python method lib.formField.html lib.imtools.open_image_exif function lib.imtools.html lib.system.shell function lib.system.html actions.equalize.Action.interface method actions.equalize.html lib.pyWx.tag.Browser.EnableResize method lib.pyWx.tag.html lib.formField.ImageFilterField class lib.formField.html lib.imtools.get_format_filename function lib.imtools.html actions.mirror.Action class actions.mirror.html actions.sketch.init function actions.sketch.html pyWx.wxGlade.frame.Frame.on_menu_tools_browse_user_library method pyWx.wxGlade.frame.html lib.pyWx.popup.untranslated function lib.pyWx.popup.html actions.geotag.Action.interface method actions.geotag.html other.surd.gcd function other.surd.html pyWx.dialogs.ErrorDialog.on_ignore method pyWx.dialogs.html lib.pyWx.droplet.Frame.OnShow method lib.pyWx.droplet.html lib.pyWx.vlist.Box.SetTheme method lib.pyWx.vlist.html lib.pyWx.vlist.example function lib.pyWx.vlist.html pyWx.wxGlade.frame.Frame.on_menu_view_collapse_automatic method pyWx.wxGlade.frame.html lib.pyWx.inspector.Table.GetValue method lib.pyWx.inspector.html lib._pyexiv2.is_writable_format_iptc function lib._pyexiv2.html pyWx.dialogs.ActionListBox.SetActions method pyWx.dialogs.html other.tamogen.BoundingBoxContainer class other.tamogen.html lib.metadata.InfoExtract.dump method lib.metadata.html core.message.FrameReceiver class core.message.html lib.pyWx.popup.PixelCtrl.SetFocus method lib.pyWx.popup.html actions.shadow.Action.interface method actions.shadow.html lib.colors.HTMLColorToPILColor function lib.colors.html pyWx.gui.Frame.on_menu_file_save_as method pyWx.gui.html lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl.onActivate method lib.pyWx.autoCompleteCtrls.html other.pep8.maximum_line_length function other.pep8.html actions.color_to_alpha.Action.init staticmethod actions.color_to_alpha.html actions.imagemagick.Action.get_relevant_field_labels method actions.imagemagick.html pyWx.dialogs.ProgressDialog.close method pyWx.dialogs.html pyWx.dialogs.StatusDialog class pyWx.dialogs.html lib.pyWx.imageInspector.Browser.GetPaintMessage method lib.pyWx.imageInspector.html lib.pyWx.popup.ForcedBoxSizer class lib.pyWx.popup.html other.EXIF.EXIF_header.first_IFD method other.EXIF.html actions.minimum.Action.interface method actions.minimum.html core.pil.Photo.safe_mode method core.pil.html lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl.onClickToggleDown method lib.pyWx.autoCompleteCtrls.html lib.imtools.save function lib.imtools.html actions.offset.offset function actions.offset.html lib.openImage.open_thumb function lib.openImage.html actions.sketch.Action.interface method actions.sketch.html lib.pyWx.imageInspector.Table.GetAttr method lib.pyWx.imageInspector.html pyWx.gui.Frame.on_menu_file_export_inspector_to_clipboard method pyWx.gui.html lib.formField.Form.FloatField.to_python method lib.formField.html actions.blender.BlenderObjects.get_selected_object method actions.blender.html other.pep8.Checker.readline_check_physical method other.pep8.html lib.pyWx.imageInspector.Browser class lib.pyWx.imageInspector.html other.pyWx.toasterbox.ToasterBox.SetPopupBitmap method other.pyWx.toasterbox.html lib.pyWx.vlistTag.TestDialog.ContentBox attribute lib.pyWx.vlistTag.html lib.pyWx.popup.DictionaryFileCtrl class lib.pyWx.popup.html pyWx.dialogs.ImageInspectorFrame.Browser attribute pyWx.dialogs.html lib.imageTable.TableImage.get_time method lib.imageTable.html pyWx.gui.Frame.add_tool method pyWx.gui.html lib.openImage.verify_image_with_pil function lib.openImage.html other.tamogen.FillImages.findClosestImageAndToneDiff method other.tamogen.html pyWx.gui.main function pyWx.gui.html lib.formField.Form.Field class lib.formField.html other.pyWx.TextCtrlAutoComplete.test class other.pyWx.TextCtrlAutoComplete.html pyWx.dialogs.ImageInspectorGrid.HasActionList method pyWx.dialogs.html pyWx.dialogs.ActionListBox class pyWx.dialogs.html lib.odict.odict.move method lib.odict.html lib.listData.DataTuple.get method lib.listData.html lib.pyWx.droplet.Frame.OnRightUp method lib.pyWx.droplet.html lib.pyWx.popup.ColorCtrl.OnSelectColor method lib.pyWx.popup.html actions.round.Action.pil staticmethod actions.round.html actions.canvas.Action.init staticmethod actions.canvas.html lib.pyWx.about.wxgCreditsDialog.OnClose method lib.pyWx.about.html pyWx.dialogs.ActionDialog.ContentBrowser attribute pyWx.dialogs.html lib.formField.ImageWriteTypeField class lib.formField.html lib.pyWx.imageInspector.Table.GetNumberCols method lib.pyWx.imageInspector.html other.pep8.python_3000_not_equal function other.pep8.html lib.pyWx.folderFileBrowser.OpenMixin.GetTreeLabel method lib.pyWx.folderFileBrowser.html lib.listData.files_data_tuple function lib.listData.html lib.pyWx.imageInspector.Frame.SetTitleFilename method lib.pyWx.imageInspector.html lib.pyWx.treeEdit.TreeMixin.remove_selected_form method lib.pyWx.treeEdit.html linux.droplet.install function linux.droplet.html actions.saturation.Action class actions.saturation.html lib.metadata.InfoPil class lib.metadata.html phatch-0.2.7/docs/build/html/other.EXIF.html0000644000000000000000000004641711346363116020501 0ustar rootroot00000000000000 EXIF — Phatch v0.2 documentation

    EXIF

    class other.EXIF.EXIF_header(file, endian, offset, fake_exif, strict, debug=0)
    canon_decode_tag(value, dict)
    decode_maker_note()
    dump_IFD(ifd, ifd_name, dict={36864: ('ExifVersion', <function make_string at 0x1055dc08>), 37377: ('ShutterSpeedValue', ), 37378: ('ApertureValue', ), 36867: ('DateTimeOriginal', ), 36868: ('DateTimeDigitized', ), 37381: ('MaxApertureValue', ), 37382: ('SubjectDistance', ), 37383: ('MeteringMode', {0: 'Unidentified', 1: 'Average', 2: 'CenterWeightedAverage', 3: 'Spot', 4: 'MultiSpot', 5: 'Pattern'}), 37384: ('LightSource', {0: 'Unknown', 1: 'Daylight', 2: 'Fluorescent', 3: 'Tungsten', 9: 'Fine Weather', 10: 'Flash', 11: 'Shade', 12: 'Daylight Fluorescent', 13: 'Day White Fluorescent', 14: 'Cool White Fluorescent', 15: 'White Fluorescent', 17: 'Standard Light A', 18: 'Standard Light B', 19: 'Standard Light C', 20: 'D55', 21: 'D65', 22: 'D75', 255: 'Other'}), 37385: ('Flash', {0: 'No', 1: 'Fired', 5: 'Fired (?)', 7: 'Fired (!)', 9: 'Fill Fired', 13: 'Fill Fired (?)', 15: 'Fill Fired (!)', 16: 'Off', 24: 'Auto Off', 25: 'Auto Fired', 29: 'Auto Fired (?)', 31: 'Auto Fired (!)', 32: 'Not Available'}), 37386: ('FocalLength', ), 41483: ('FlashEnergy', ), 41484: ('SpatialFrequencyResponse', ), 40962: ('ExifImageWidth', ), 41486: ('FocalPlaneXResolution', ), 41487: ('FocalPlaneYResolution', ), 41488: ('FocalPlaneResolutionUnit', ), 529: ('YCbCrCoefficients', ), 530: ('YCbCrSubSampling', ), 531: ('YCbCrPositioning', {1: 'Centered', 2: 'Co-sited'}), 532: ('ReferenceBlackWhite', ), 41493: ('ExposureIndex', ), 512: ('JPEGProc', ), 41495: ('SensingMethod', {1: 'Not defined', 2: 'One-chip color area', 3: 'Two-chip color area', 4: 'Three-chip color area', 5: 'Color sequential area', 7: 'Trilinear', 8: 'Color sequential linear'}), 37380: ('ExposureBiasValue', ), 59932: ('Padding', ), 40965: ('InteroperabilityOffset', ), 34850: ('ExposureProgram', {0: 'Unidentified', 1: 'Manual', 2: 'Program Normal', 3: 'Aperture Priority', 4: 'Shutter Priority', 5: 'Program Creative', 6: 'Program Action', 7: 'Portrait Mode', 8: 'Landscape Mode'}), 34852: ('SpectralSensitivity', ), 34853: ('GPSInfo', ), 34855: ('ISOSpeedRatings', ), 34856: ('OECF', ), 41991: ('GainControl', {0: 'None', 1: 'Low gain up', 2: 'High gain up', 3: 'Low gain down', 4: 'High gain down'}), 41992: ('Contrast', {0: 'Normal', 1: 'Soft', 2: 'Hard'}), 513: ('JPEGInterchangeFormat', ), 41993: ('Saturation', {0: 'Normal', 1: 'Soft', 2: 'Hard'}), 41994: ('Sharpness', {0: 'Normal', 1: 'Soft', 2: 'Hard'}), 41995: ('DeviceSettingDescription', ), 41996: ('SubjectDistanceRange', ), 514: ('JPEGInterchangeFormatLength', ), 37396: ('SubjectArea', ), 37500: ('MakerNote', ), 37510: ('UserComment', <function make_string_uc at 0x1055dc80>), 33421: ('CFARepeatPatternDim', ), 33422: ('CFAPattern', ), 33423: ('BatteryLevel', ), 37520: ('SubSecTime', ), 37521: ('SubSecTimeOriginal', ), 37522: ('SubSecTimeDigitized', ), 33432: ('Copyright', ), 33434: ('ExposureTime', ), 40091: ('XPTitle', ), 40092: ('XPComment', ), 33437: ('FNumber', ), 40094: ('XPKeywords', ), 40095: ('XPSubject', ), 50341: ('PrintIM', ), 37121: ('ComponentsConfiguration', {0: '', 1: 'Y', 2: 'Cb', 3: 'Cr', 4: 'Red', 5: 'Green', 6: 'Blue'}), 37122: ('CompressedBitsPerPixel', ), 37379: ('BrightnessValue', ), 256: ('ImageWidth', ), 257: ('ImageLength', ), 258: ('BitsPerSample', ), 259: ('Compression', {32896: 'IT8LW', 1: 'Uncompressed', 2: 'CCITT 1D', 3: 'T4/Group 3 Fax', 4: 'T6/Group 4 Fax', 5: 'LZW', 6: 'JPEG (old-style)', 7: 'JPEG', 8: 'Adobe Deflate', 9: 'JBIG B&W', 10: 'JBIG Color', 32908: 'PixarFilm', 32898: 'IT8BL', 32771: 'CCIRLEW', 34712: 'JPEG 2000', 34713: 'Nikon NEF Compressed', 32773: 'PackBits', 32769: 'Epson ERF Compressed', 32897: 'IT8MP', 32809: 'Thunderscan', 32946: 'Deflate', 32947: 'DCS', 32909: 'PixarLog', 34661: 'JBIG', 65000: 'Kodak DCR Compressed', 34676: 'SGILog', 34677: 'SGILog24', 65535: 'Pentax PEF Compressed', 32766: 'Next', 32895: 'IT8CTPAD'}), 262: ('PhotometricInterpretation', ), 263: ('Thresholding', ), 266: ('FillOrder', ), 269: ('DocumentName', ), 270: ('ImageDescription', ), 271: ('Make', ), 272: ('Model', ), 273: ('StripOffsets', ), 274: ('Orientation', {1: 'Horizontal (normal)', 2: 'Mirrored horizontal', 3: 'Rotated 180', 4: 'Mirrored vertical', 5: 'Mirrored horizontal then rotated 90 CCW', 6: 'Rotated 90 CW', 7: 'Mirrored horizontal then rotated 90 CW', 8: 'Rotated 90 CCW'}), 277: ('SamplesPerPixel', ), 278: ('RowsPerStrip', ), 279: ('StripByteCounts', ), 282: ('XResolution', ), 283: ('YResolution', ), 284: ('PlanarConfiguration', ), 285: ('PageName', <function make_string at 0x1055dc08>), 41728: ('FileSource', {1: 'Film Scanner', 2: 'Reflection Print Scanner', 3: 'Digital Camera'}), 40961: ('ColorSpace', {1: 'sRGB', 2: 'Adobe RGB', 65535: 'Uncalibrated'}), 296: ('ResolutionUnit', {1: 'Not Absolute', 2: 'Pixels/Inch', 3: 'Pixels/Centimeter'}), 301: ('TransferFunction', ), 42240: ('Gamma', ), 305: ('Software', ), 306: ('DateTime', ), 315: ('Artist', ), 41729: ('SceneType', {1: 'Directly Photographed'}), 318: ('WhitePoint', ), 319: ('PrimaryChromaticities', ), 41985: ('CustomRendered', {0: 'Normal', 1: 'Custom'}), 18246: ('Rating', ), 40960: ('FlashPixVersion', <function make_string at 0x1055dc08>), 342: ('TransferRange', ), 41730: ('CVAPattern', ), 40963: ('ExifImageLength', ), 41986: ('ExposureMode', {0: 'Auto Exposure', 1: 'Manual Exposure', 2: 'Auto Bracket'}), 34665: ('ExifOffset', ), 41492: ('SubjectLocation', ), 34675: ('InterColorProfile', ), 41987: ('WhiteBalance', {0: 'Auto', 1: 'Manual'}), 41988: ('DigitalZoomRatio', ), 40093: ('XPAuthor', ), 33723: ('IPTC/NAA', ), 41989: ('FocalLengthIn35mmFilm', ), 41990: ('SceneCaptureType', {0: 'Standard', 1: 'Landscape', 2: 'Portrait', 3: 'Night)'})}, relative=0, stop_tag='UNDEF')
    extract_TIFF_thumbnail(thumb_ifd)
    first_IFD()
    list_IFDs()
    n2s(offset, length)
    next_IFD(ifd)
    olympus_decode_tag(value, dict)
    s2n(offset, length, signed=0)
    class other.EXIF.IFD_Tag(printable, tag, field_type, values, field_offset, field_length)
    class other.EXIF.Ratio(num, den)
    reduce()
    other.EXIF.gcd(a, b)
    other.EXIF.make_string(seq)
    other.EXIF.make_string_uc(seq)
    other.EXIF.nikon_ev_bias(seq)
    other.EXIF.olympus_special_mode(v)
    other.EXIF.process_file(f, stop_tag='UNDEF', details=True, strict=False, debug=False)
    other.EXIF.s2n_intel(str)
    other.EXIF.s2n_motorola(str)
    other.EXIF.usage(exit_status)

    Previous topic

    other

    Next topic

    findsystem

    phatch-0.2.7/docs/build/html/other.findsystem.html0000644000000000000000000001376211346363116022130 0ustar rootroot00000000000000 findsystem — Phatch v0.2 documentation

    findsystem

    Find system fonts (only works on Linux and Win32 at the moment)

    other.findsystem.findFonts(paths=None)

    Find fonts in paths, or the system paths if not given

    XXX Doesn’t current support OS-X system paths

    other.findsystem.linuxFontDirectories()

    Get system font directories on Linux/Unix

    Uses /usr/sbin/chkfontpath to get the list of system-font directories, note that many of these will not be truetype font directories.

    If /usr/sbin/chkfontpath isn’t available, uses returns a set of common Linux/Unix paths

    other.findsystem.win32FontDirectory()
    Get User-specific font directory on Win32
    other.findsystem.win32InstalledFonts(fontDirectory=None)
    Get list of explicitly installed font names

    Previous topic

    EXIF

    Next topic

    pep8

    phatch-0.2.7/docs/build/html/other.html0000644000000000000000000001256511346363116017744 0ustar rootroot00000000000000 other — Phatch v0.2 documentation

    Previous topic

    thunar

    Next topic

    EXIF

    phatch-0.2.7/docs/build/html/other.pep8.html0000644000000000000000000010310011346363116020601 0ustar rootroot00000000000000 pep8 — Phatch v0.2 documentation

    pep8

    Check Python source code formatting, according to PEP 8: http://www.python.org/dev/peps/pep-0008/

    For usage and a list of options, try this: $ python pep8.py -h

    This program and its regression test suite live here: http://github.com/jcrocholl/pep8

    Groups of errors and warnings: E errors W warnings 100 indentation 200 whitespace 300 blank lines 400 imports 500 line length 600 deprecation 700 statements

    You can add checks to this program by writing plugins. Each plugin is a simple function that is called for each line of source code, either physical or logical.

    Physical line: - Raw line of text from the input file.

    Logical line: - Multi-line statements converted to a single line. - Stripped left and right. - Contents of strings replaced with ‘xxx’ of same length. - Comments removed.

    The check function requests physical or logical lines by the name of the first argument:

    def maximum_line_length(physical_line) def extraneous_whitespace(logical_line) def blank_lines(logical_line, blank_lines, indent_level, line_number)

    The last example above demonstrates how check plugins can request additional information with extra arguments. All attributes of the Checker object are available. Some examples:

    lines: a list of the raw lines from the input file tokens: the tokens that contribute to this logical line line_number: line number in the input file blank_lines: blank lines before this one indent_char: first indentation character in this file (‘ ‘ or ‘ ‘) indent_level: indentation (with tabs expanded to multiples of 8) previous_indent_level: indentation on previous line previous_logical: previous logical line

    The docstring of each check function shall be the relevant part of text from PEP 8. It is printed if the user enables –show-pep8. Several docstrings contain examples directly from the PEP 8 document.

    Okay: spam(ham[1], {eggs: 2}) E201: spam( ham[1], {eggs: 2})

    These examples are verified automatically when pep8.py is run with the –doctest option. You can add examples for your own check functions. The format is simple: “Okay” or error/warning code followed by colon and space, the rest of the line is example source code. If you put ‘r’ before the docstring, you can use

    for newline, for tab and s

    for space.

    class other.pep8.Checker(filename)

    Bases: object

    Load a Python source file, tokenize it, check coding style.

    build_tokens_line()
    Build a logical line from tokens.
    check_all()
    Run all checks on the input file.
    check_logical()
    Build a line from tokens and run all logical checks on it.
    check_physical(line)
    Run all physical checks on a raw input line.
    readline()
    Get the next line from the input buffer.
    readline_check_physical()
    Check and return the next physical line. This method can be used to feed tokenize.generate_tokens.
    report_error(line_number, offset, text, check)
    Report an error, according to options.
    run_check(check, argument_names)
    Run a check plugin.
    other.pep8.blank_lines(logical_line, blank_lines, indent_level, line_number, previous_logical, blank_lines_before_comment)

    Separate top-level function and class definitions with two blank lines.

    Method definitions inside a class are separated by a single blank line.

    Extra blank lines may be used (sparingly) to separate groups of related functions. Blank lines may be omitted between a bunch of related one-liners (e.g. a set of dummy implementations).

    Use blank lines in functions, sparingly, to indicate logical sections.

    Okay: def a():n passnnndef b():n pass Okay: def a():n passnnn# Foon# Barnndef b():n pass

    E301: class Foo:n b = 0n def bar():n pass E302: def a():n passnndef b(n):n pass E303: def a():n passnnnndef b(n):n pass E303: def a():nnnn pass E304: @decoratornndef a():n pass

    other.pep8.compound_statements(logical_line)

    Compound statements (multiple statements on the same line) are generally discouraged.

    While sometimes it’s okay to put an if/for/while with a small body on the same line, never do this for multi-clause statements. Also avoid folding such long lines!

    Okay: if foo == ‘blah’:n do_blah_thing() Okay: do_one() Okay: do_two() Okay: do_three()

    E701: if foo == ‘blah’: do_blah_thing() E701: for x in lst: total += x E701: while t < 10: t = delay() E701: if foo == ‘blah’: do_blah_thing() E701: else: do_non_blah_thing() E701: try: something() E701: finally: cleanup() E701: if foo == ‘blah’: one(); two(); three()

    E702: do_one(); do_two(); do_three()

    other.pep8.excluded(filename)
    Check if options.exclude contains a pattern that matches filename.
    other.pep8.expand_indent(line)

    Return the amount of indentation. Tabs are expanded to the next multiple of 8.

    >>> expand_indent('    ')
    4
    >>> expand_indent('\t')
    8
    >>> expand_indent('    \t')
    8
    >>> expand_indent('       \t')
    8
    >>> expand_indent('        \t')
    16
    
    other.pep8.extraneous_whitespace(logical_line)

    Avoid extraneous whitespace in the following situations:

    • Immediately inside parentheses, brackets or braces.
    • Immediately before a comma, semicolon, or colon.

    Okay: spam(ham[1], {eggs: 2}) E201: spam( ham[1], {eggs: 2}) E201: spam(ham[ 1], {eggs: 2}) E201: spam(ham[1], { eggs: 2}) E202: spam(ham[1], {eggs: 2} ) E202: spam(ham[1 ], {eggs: 2}) E202: spam(ham[1], {eggs: 2 })

    E203: if x == 4: print x, y; x, y = y , x E203: if x == 4: print x, y ; x, y = y, x E203: if x == 4 : print x, y; x, y = y, x

    other.pep8.filename_match(filename)
    Check if options.filename contains a pattern that matches filename. If options.filename is unspecified, this always returns True.
    other.pep8.find_checks(argument_name)
    Find all globally visible functions where the first argument name starts with argument_name.
    other.pep8.get_count(prefix='')
    Return the total count of errors and warnings.
    other.pep8.get_error_statistics()
    Get error statistics.
    other.pep8.get_statistics(prefix='')

    Get statistics for message codes that start with the prefix.

    prefix=’’ matches all errors and warnings prefix=’E’ matches all errors prefix=’W’ matches all warnings prefix=’E4’ matches all errors that have to do with imports

    other.pep8.get_warning_statistics()
    Get warning statistics.
    other.pep8.ignore_code(code)
    Check if options.ignore contains a prefix of the error code. If options.select contains a prefix of the error code, do not ignore it.
    other.pep8.imports_on_separate_lines(logical_line)

    Imports should usually be on separate lines.

    Okay: import osnimport sys E401: import sys, os

    Okay: from subprocess import Popen, PIPE Okay: from myclas import MyClass Okay: from foo.bar.yourclass import YourClass Okay: import myclass Okay: import foo.bar.yourclass

    other.pep8.indentation(logical_line, previous_logical, indent_char, indent_level, previous_indent_level)

    Use 4 spaces per indentation level.

    For really old code that you don’t want to mess up, you can continue to use 8-space tabs.

    Okay: a = 1 Okay: if a == 0:n a = 1 E111: a = 1

    Okay: for item in items:n pass E112: for item in items:npass

    Okay: a = 1nb = 2 E113: a = 1n b = 2

    other.pep8.input_dir(dirname)
    Check all Python source files in this directory and all subdirectories.
    other.pep8.input_file(filename)
    Run all checks on a Python source file.
    other.pep8.iskeyword()
    x.__contains__(y) <==> y in x.
    other.pep8.maximum_line_length(physical_line)

    Limit all lines to a maximum of 79 characters.

    There are still many devices around that are limited to 80 character lines; plus, limiting windows to 80 characters makes it possible to have several windows side-by-side. The default wrapping on such devices looks ugly. Therefore, please limit all lines to a maximum of 79 characters. For flowing long blocks of text (docstrings or comments), limiting the length to 72 characters is recommended.

    other.pep8.message(text)
    Print a message.
    other.pep8.missing_newline(physical_line)
    JCR: The last line should have a newline.
    other.pep8.missing_whitespace(logical_line)

    JCR: Each comma, semicolon or colon should be followed by whitespace.

    Okay: [a, b] Okay: (3,) Okay: a[1:4] Okay: a[:4] Okay: a[1:] Okay: a[1:4:2] E231: [‘a’,’b’] E231: foo(bar,baz)

    other.pep8.missing_whitespace_around_operator(logical_line, tokens)
    • Always surround these binary operators with a single space on either side: assignment (=), augmented assignment (+=, -= etc.), comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), Booleans (and, or, not).
    • Use spaces around arithmetic operators.

    Okay: i = i + 1 Okay: submitted += 1 Okay: x = x * 2 - 1 Okay: hypot2 = x * x + y * y Okay: c = (a + b) * (a - b) Okay: foo(bar, key=’word’, *args, **kwargs) Okay: baz(**kwargs) Okay: negative = -1 Okay: spam(-1) Okay: alpha[:-i] Okay: if not -5 < x < +5:n pass Okay: lambda *args, **kw: (args, kw)

    E225: i=i+1 E225: submitted +=1 E225: x = x*2 - 1 E225: hypot2 = x*x + y*y E225: c = (a+b) * (a-b) E225: c = alpha -4 E225: z = x **y

    other.pep8.mute_string(text)

    Replace contents with ‘xxx’ to prevent syntax matching.

    >>> mute_string('"abc"')
    '"xxx"'
    >>> mute_string("'''abc'''")
    "'''xxx'''"
    >>> mute_string("r'abc'")
    "r'xxx'"
    
    other.pep8.print_benchmark(elapsed)
    Print benchmark numbers.
    other.pep8.print_statistics(prefix='')
    Print overall statistics (number of errors and warnings).
    other.pep8.process_options(arglist=None)
    Process options passed either via arglist or via command line args.
    other.pep8.python_3000_backticks(logical_line)
    Backticks are removed in Python 3000. Use repr() instead.
    other.pep8.python_3000_has_key(logical_line)

    The {}.has_key() method will be removed in the future version of Python. Use the ‘in’ operation instead, like: d = {“a”: 1, “b”: 2} if “b” in d:

    print d[“b”]
    other.pep8.python_3000_not_equal(logical_line)
    != can also be written <>, but this is an obsolete usage kept for backwards compatibility only. New code should always use !=. The older syntax is removed in Python 3000.
    other.pep8.python_3000_raise_comma(logical_line)

    When raising an exception, use “raise ValueError(‘message’)” instead of the older form “raise ValueError, ‘message’”.

    The paren-using form is preferred because when the exception arguments are long or include string formatting, you don’t need to use line continuation characters thanks to the containing parentheses. The older form will be removed in Python 3000.

    other.pep8.selftest()
    Test all check functions with test cases in docstrings.
    other.pep8.tabs_obsolete(physical_line)

    For new projects, spaces-only are strongly recommended over tabs. Most editors have features that make this easy to do.

    Okay: if True:n return W191: if True:ntreturn

    other.pep8.tabs_or_spaces(physical_line, indent_char)

    Never mix tabs and spaces.

    The most popular way of indenting Python is with spaces only. The second-most popular way is with tabs only. Code indented with a mixture of tabs and spaces should be converted to using spaces exclusively. When invoking the Python command line interpreter with the -t option, it issues warnings about code that illegally mixes tabs and spaces. When using -tt these warnings become errors. These options are highly recommended!

    Okay: if a == 0:n a = 1n b = 1 E101: if a == 0:n a = 1ntb = 1

    other.pep8.trailing_blank_lines(physical_line, lines, line_number)

    JCR: Trailing blank lines are superfluous.

    Okay: spam(1) W391: spam(1)n

    other.pep8.trailing_whitespace(physical_line)

    JCR: Trailing whitespace is superfluous.

    Okay: spam(1) W291: spam(1)s

    other.pep8.whitespace_around_comma(logical_line)

    Avoid extraneous whitespace in the following situations:

    • More than one space around an assignment (or other) operator to align it with another.

    JCR: This should also be applied around comma etc. Note: these checks are disabled by default

    Okay: a = (1, 2) E241: a = (1, 2) E242: a = (1, 2)

    other.pep8.whitespace_around_named_parameter_equals(logical_line)

    Don’t use spaces around the ‘=’ sign when used to indicate a keyword argument or a default parameter value.

    Okay: def complex(real, imag=0.0): Okay: return magic(r=real, i=imag) Okay: boolean(a == b) Okay: boolean(a != b) Okay: boolean(a <= b) Okay: boolean(a >= b)

    E251: def complex(real, imag = 0.0): E251: return magic(r = real, i = imag)

    other.pep8.whitespace_around_operator(logical_line)

    Avoid extraneous whitespace in the following situations:

    • More than one space around an assignment (or other) operator to align it with another.

    Okay: a = 12 + 3 E221: a = 4 + 5 E222: a = 4 + 5 E223: a = 4 + 5 E224: a = 4 + 5

    other.pep8.whitespace_before_inline_comment(logical_line, tokens)

    Separate inline comments by at least two spaces.

    An inline comment is a comment on the same line as a statement. Inline comments should be separated by at least two spaces from the statement. They should start with a # and a single space.

    Okay: x = x + 1 # Increment x Okay: x = x + 1 # Increment x E261: x = x + 1 # Increment x E262: x = x + 1 #Increment x E262: x = x + 1 # Increment x

    other.pep8.whitespace_before_parameters(logical_line, tokens)

    Avoid extraneous whitespace in the following situations:

    • Immediately before the open parenthesis that starts the argument list of a function call.
    • Immediately before the open parenthesis that starts an indexing or slicing.

    Okay: spam(1) E211: spam (1)

    Okay: dict[‘key’] = list[index] E211: dict [‘key’] = list[index] E211: dict[‘key’] = list [index]

    Previous topic

    findsystem

    Next topic

    pil_1_1_6

    phatch-0.2.7/docs/build/html/other.pil_1_1_6.JpegImagePlugin.html0000644000000000000000000001074411346363116024417 0ustar rootroot00000000000000 JpegImagePlugin — Phatch v0.2 documentation

    JpegImagePlugin

    Previous topic

    pil_1_1_6

    Next topic

    TiffImagePlugin

    phatch-0.2.7/docs/build/html/other.pil_1_1_6.TiffImagePlugin.html0000644000000000000000000001071411346363116024417 0ustar rootroot00000000000000 TiffImagePlugin — Phatch v0.2 documentation

    TiffImagePlugin

    Previous topic

    JpegImagePlugin

    Next topic

    pubsub

    phatch-0.2.7/docs/build/html/other.pil_1_1_6.html0000644000000000000000000001076111346363116021410 0ustar rootroot00000000000000 pil_1_1_6 — Phatch v0.2 documentation

    Previous topic

    pep8

    Next topic

    JpegImagePlugin

    phatch-0.2.7/docs/build/html/other.pubsub.html0000644000000000000000000005035711346363116021244 0ustar rootroot00000000000000 pubsub — Phatch v0.2 documentation

    pubsub

    This module provides a publish-subscribe component that allows listeners to subcribe to messages of a given topic. Contrary to the original wxPython.lib.pubsub module (which it is based on), it uses weak referencing to the subscribers so the lifetime of subscribers is not affected by Publisher. Also, callable objects can be used in addition to functions and bound methods. See Publisher class docs for more details.

    Thanks to Robb Shecter and Robin Dunn for having provided the basis for this module (which now shares most of the concepts but very little design or implementation with the original wxPython.lib.pubsub).

    The publisher is a singleton instance of the PublisherClass class. You access the instance via the Publisher object available from the module:

    from wx.lib.pubsub import Publisher
    Publisher().subscribe(...)
    Publisher().sendMessage(...)
    ...
    
    Author:Oliver Schoenborn
    Since:Apr 2004
    Version:$Id: pubsub.py,v 1.8 2006/06/11 00:12:59 RD Exp $
    Copyright:(c) 2004 Oliver Schoenborn
    License:wxWidgets
    class other.pubsub.Message(topic, data)
    A simple container object for the two components of a message: the topic and the user data. An instance of Message is given to your listener when called by Publisher().sendMessage(topic) (if your listener callback was registered for that topic).
    class other.pubsub.PublisherClass(singletonKey)

    The publish/subscribe manager. It keeps track of which listeners are interested in which topics (see subscribe()), and sends a Message for a given topic to listeners that have subscribed to that topic, with optional user data (see sendMessage()).

    The three important concepts for Publisher are:

    • listener: a function, bound method or callable object that can be called with one parameter (not counting ‘self’ in the case of methods). The parameter will be a reference to a Message object. E.g., these listeners are ok:

      class Foo:
          def __call__(self, a, b=1): pass # can be called with only one arg
          def meth(self,  a):         pass # takes only one arg
          def meth2(self, a=2, b=''): pass # can be called with one arg
      
      def func(a, b=''): pass
      
      Foo foo
      Publisher().subscribe(foo)           # functor
      Publisher().subscribe(foo.meth)      # bound method
      Publisher().subscribe(foo.meth2)     # bound method
      Publisher().subscribe(func)          # function

      The three types of callables all have arguments that allow a call with only one argument. In every case, the parameter ‘a’ will contain the message.

    • topic: a single word, a tuple of words, or a string containing a set of words separated by dots, for example: ‘sports.baseball’. A tuple or a dotted notation string denotes a hierarchy of topics from most general to least. For example, a listener of this topic:

      ('sports','baseball')
      

      would receive messages for these topics:

      ('sports', 'baseball')                 # because same
      ('sports', 'baseball', 'highscores')   # because more specific
      

      but not these:

       'sports'      # because more general
      ('sports',)    # because more general
      () or ('')     # because only for those listening to 'all' topics
      ('news')       # because different topic
    • message: this is an instance of Message, containing the topic for which the message was sent, and any data the sender specified.

    Note:This class is visible to importers of pubsub only as a Singleton. I.e., every time you execute ‘Publisher()’, it’s actually the same instance of PublisherClass that is returned. So to use, just do’Publisher().method()’.
    getAssociatedTopics(listener)

    Return a list of topics the given listener is registered with. Returns [] if listener never subscribed.

    Attention:

    when using the return of this method to compare to expected list of topics, remember that topics that are not in the form of a tuple appear as a one-tuple in the return. E.g. if you have subscribed a listener to ‘topic1’ and (‘topic2’,’subtopic2’), this method returns:

    associatedTopics = [(‘topic1’,), (‘topic2’,’subtopic2’)]

    getDeliveryCount()
    How many listeners have received a message since beginning of run
    getMessageCount()
    How many times sendMessage() was called since beginning of run
    isSubscribed(listener, topic=None)
    Return true if listener has subscribed to topic specified. If no topic specified, return true if subscribed to something. Use topic=getStrAllTopics() to determine if a listener will receive messages for all topics.
    isValid(listener)
    Return true only if listener will be able to subscribe to Publisher.
    sendMessage(topic='', data=None, onTopicNeverCreated=None)
    Send a message for given topic, with optional data, to subscribed listeners. If topic is not specified, only the listeners that are interested in all topics will receive message. The onTopicNeverCreated is an optional callback of your choice that will be called if the topic given was never created (i.e. it, or one of its subtopics, was never subscribed to by any listener). It will be called as onTopicNeverCreated(topic).
    subscribe(listener, topic='')

    Subscribe listener for given topic. If topic is not specified, listener will be subscribed for all topics (that listener will receive a Message for any topic for which a message is generated).

    This method may be called multiple times for one listener, registering it with many topics. It can also be invoked many times for a particular topic, each time with a different listener. See the class doc for requirements on listener and topic.

    Note:

    The listener is held by Publisher() only by weak reference. This means you must ensure you have at least one strong reference to listener, otherwise it will be DOA (“dead on arrival”). This is particularly easy to forget when wrapping a listener method in a proxy object (e.g. to bind some of its parameters), e.g.:

    class Foo: 
        def listener(self, event): pass
    class Wrapper:
        def __init__(self, fun): self.fun = fun
        def __call__(self, *args): self.fun(*args)
    foo = Foo()
    Publisher().subscribe( Wrapper(foo.listener) ) # whoops: DOA!
    wrapper = Wrapper(foo.listener)
    Publisher().subscribe(wrapper) # good!
    
    Note:

    Calling this method for the same listener, with two topics in the same branch of the topic hierarchy, will cause the listener to be notified twice when a message for the deepest topic is sent. E.g. subscribe(listener, ‘t1’) and then subscribe(listener, (‘t1’,’t2’)) means that when calling sendMessage(‘t1’), listener gets one message, but when calling sendMessage((‘t1’,’t2’)), listener gets message twice.

    unsubAll(topics=None, onNoSuchTopic=None)
    Unsubscribe all listeners subscribed for topics. Topics can be a single topic (string or tuple) or a list of topics (ie list containing strings and/or tuples). If topics is not specified, all listeners for all topics will be unsubscribed, ie. the Publisher singleton will have no topics and no listeners left. If onNoSuchTopic is given, it will be called as onNoSuchTopic(topic) for each topic that is unknown.
    unsubscribe(listener, topics=None)

    Unsubscribe listener. If topics not specified, listener is completely unsubscribed. Otherwise, it is unsubscribed only for the topic (the usual tuple) or list of topics (ie a list of tuples) specified. Nothing happens if listener is not actually subscribed to any of the topics.

    Note that if listener subscribed for two topics (a,b) and (a,c), then unsubscribing for topic (a) will do nothing. You must use getAssociatedTopics(listener) and give unsubscribe() the returned list (or a subset thereof).

    validate(listener)
    Similar to isValid(), but raises a TypeError exception if not valid
    other.pubsub.getStrAllTopics()
    Function to call if, for whatever reason, you need to know explicitely what is the string to use to indicate ‘all topics’.
    other.pubsub.test()

    Previous topic

    TiffImagePlugin

    Next topic

    pyWx

    phatch-0.2.7/docs/build/html/other.pyWx.TextCtrlAutoComplete.html0000644000000000000000000004242111346363116024776 0ustar rootroot00000000000000 TextCtrlAutoComplete — Phatch v0.2 documentation

    TextCtrlAutoComplete

    wxPython Custom Widget Collection 20060207 Written By: Edward Flick (eddy -=at=- cdf-imaging -=dot=- com)

    Michele Petrazzo (michele -=dot=- petrazzo -=at=- unipex -=dot=- it) Will Sadkin (wsadkin-=at=- nameconnector -=dot=- com)

    Copyright 2006 (c) CDF Inc. ( http://www.cdf-imaging.com ) Contributed to the wxPython project under the wxPython project’s license.

    This was slightly adapted by Stani for Phatch: - disable the parent event binding - change styles of the popup and listctrl

    class other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete(parent, colNames=None, choices=None, multiChoices=None, showHead=True, dropDownClick=True, colFetch=-1, colSearch=0, hideOnNoMatch=True, selectCallback=None, entryCallback=None, matchFunction=None, **therest)

    Bases: wx._controls.TextCtrl, wx.lib.mixins.listctrl.ColumnSorterMixin

    GetChoices()
    GetListCtrl()
    GetSortImages()
    SetChoices(choices)
    Sets the choices available in the popup wx.ListBox. The items will be sorted case insensitively.
    SetEntryCallback(cb=None)
    SetMatchFunction(mf=None)
    SetMultipleChoices(choices, colSearch=0, colFetch=-1)
    Set multi-column choice
    SetSelectCallback(cb=None)
    onClickToggleDown(event)
    onClickToggleUp(event)
    onControlChanged(event)
    onEnteredText(event)
    onKeyDown(event)
    Do some work when the user press on the keys: up and down: move the cursor left and right: move the search
    onListClick(evt)
    onListColClick(evt)
    onListDClick(evt)
    onListItemSelected(event)
    other.pyWx.TextCtrlAutoComplete.getSmallDnArrowBitmap()
    other.pyWx.TextCtrlAutoComplete.getSmallDnArrowData()
    other.pyWx.TextCtrlAutoComplete.getSmallDnArrowImage()
    other.pyWx.TextCtrlAutoComplete.getSmallUpArrowBitmap()
    other.pyWx.TextCtrlAutoComplete.getSmallUpArrowData()
    other.pyWx.TextCtrlAutoComplete.getSmallUpArrowImage()
    class other.pyWx.TextCtrlAutoComplete.myListCtrl(parent, ID=-1, pos=wx.Point(-1, -1), size=wx.Size(-1, -1), style=0)
    Bases: wx._controls.ListCtrl, wx.lib.mixins.listctrl.ListCtrlAutoWidthMixin
    class other.pyWx.TextCtrlAutoComplete.test
    match(text, choice)
    Demonstrate “smart” matching feature, by ignoring http:// and www. when doing matches.
    onBtChangeChoice(event)
    onBtDynamicChoices(event)
    Demonstrate dynamic adjustment of the auto-complete list, based on what’s been typed so far:
    onBtMultiChoice(event)
    onBtStartChoices(event)
    selectCallback(values)
    Simply function that receive the row values when the user select an item
    setDynamicChoices()

    Previous topic

    pyWx

    Next topic

    img2img

    phatch-0.2.7/docs/build/html/other.pyWx.html0000644000000000000000000001207711346363116020710 0ustar rootroot00000000000000 pyWx — Phatch v0.2 documentation

    Previous topic

    pubsub

    Next topic

    TextCtrlAutoComplete

    phatch-0.2.7/docs/build/html/other.pyWx.img2img.html0000644000000000000000000001073211346363116022236 0ustar rootroot00000000000000 img2img — Phatch v0.2 documentation

    img2img

    Previous topic

    TextCtrlAutoComplete

    Next topic

    img2py

    phatch-0.2.7/docs/build/html/other.pyWx.img2py.html0000644000000000000000000001632211346363116022113 0ustar rootroot00000000000000 img2py — Phatch v0.2 documentation

    img2py

    img2py.py – Convert an image to PNG format and embed it in a Python
    module with appropriate code so it can be loaded into a program at runtime. The benefit is that since it is Python source code it can be delivered as a .pyc or ‘compiled’ into the program using freeze, py2exe, etc.

    Usage:

    img2py.py [options] image_file python_file

    Options:

    -m <#rrggbb> If the original image has a mask or transparency defined it will be used by default. You can use this option to override the default or provide a new mask by specifying a colour in the image to mark as transparent.
    -n <name> Normally generic names (getBitmap, etc.) are used for the image access functions. If you use this option you can specify a name that should be used to customize the access fucntions, (getNameBitmap, etc.)
    -c Maintain a catalog of names that can be used to reference images. Catalog can be accessed via catalog and index attributes of the module. If the -n <name> option is specified then <name> is used for the catalog key and index value, otherwise the filename without any path or extension is used as the key.
    -a This flag specifies that the python_file should be appended to instead of overwritten. This in combination with -n will allow you to put multiple images in one Python source file.
    -u Don’t use compression. Leaves the data uncompressed.
    -i Also output a function to return the image as a wxIcon.
    other.pyWx.img2py.crunch_data(data, compressed)
    other.pyWx.img2py.main(args)

    Previous topic

    img2img

    Next topic

    toasterbox

    phatch-0.2.7/docs/build/html/other.pyWx.toasterbox.html0000644000000000000000000005074011346363116023100 0ustar rootroot00000000000000 toasterbox — Phatch v0.2 documentation

    toasterbox

    ToasterBox is a cross-platform widget to make the creation of MSN style “toaster” popups easier.

    Description

    ToasterBox is a cross-platform widget to make the creation of MSN style “toaster” popups easier. The syntax is really easy especially if you are familiar with the syntax of wxPython.

    It has 2 main styles:

    • TB_SIMPLE: using this style, you will be able to specify a background image for

      ToasterBox, text properties as text colour, font and label.

    • TB_COMPLEX: this style will allow you to put almost any control inside a

      ToasterBox. You can add a panel in which you can put all the controls you like.

    Both styles support the setting of ToasterBox position (on screen coordinates), size, the time after which the ToasterBox is destroyed (linger), and the scroll speed of ToasterBox.

    Supported Platforms

    ToasterBox has been tested on the following platforms:

    • Windows (verified on Windows XP, 2000)
    • Linux
    • Mac

    License And Version

    ToasterBox is freeware and distributed under the wxPython license.

    Latest revision: Andrea Gavana @ 29 May 2009, 09.00 GMT Version 0.2

    class other.pyWx.toasterbox.ToasterBox(parent, tbstyle=1, windowstyle=33587202, closingstyle=1, scrollType=2)

    Bases: wx._misc.Timer

    AddPanel(panel)
    Adds a panel to the ToasterBox. Use it only for ToasterBoxes created with TB_COMPLEX style.
    CleanList()
    Clean the window list.
    GetToasterBoxWindow()
    Returns the ToasterBox frame.
    MoveAbove(tb)
    If a ToasterBox already exists, move the new one above.
    Notify()
    It’s time to hide a ToasterBox!
    Play()
    Creates the ToasterBoxWindow, that does all the job.
    SetPopupBackgroundColor(colour=None)
    Sets the ToasterBox background colour. Use it only for ToasterBoxes created with TB_SIMPLE style.
    SetPopupBitmap(bitmap=None)
    Sets the ToasterBox background image. Use it only for ToasterBoxes created with TB_SIMPLE style.
    SetPopupPauseTime(pausetime)
    Sets the time after which the ToasterBox is destroyed (linger).
    SetPopupPosition(pos)
    Sets the ToasterBox position on screen.
    SetPopupPositionByInt(pos)
    Sets the ToasterBox position on screen, at one of the screen corners.
    SetPopupScrollSpeed(speed)
    Sets the ToasterBox scroll speed. The speed parameter is the pause time (in ms) for every step in the ScrollUp() method.
    SetPopupSize(size)
    Sets the ToasterBox size.
    SetPopupText(text)
    Sets the ToasterBox text. Use it only for ToasterBoxes created with TB_SIMPLE style.
    SetPopupTextColor(colour=None)
    Sets the ToasterBox foreground colour. Use it only for ToasterBoxes created with TB_SIMPLE style.
    SetPopupTextFont(font=None)
    Sets the ToasterBox text font. Use it only for ToasterBoxes created with TB_SIMPLE style.
    SetTitle(title)
    Sets the ToasterBox title if it was created with TB_CAPTION window style.
    class other.pyWx.toasterbox.ToasterBoxWindow(parent, parent2, tbstyle, windowstyle, closingstyle, scrollType=2)

    Bases: wx._windows.Frame

    AddPanel(panel)
    Adds a panel to the ToasterBox. Use it only for ToasterBoxes created with TB_COMPLEX style.
    DrawText()
    GetPopupText()
    Returns the ToasterBox text. Use it only for ToasterBoxes created with TB_SIMPLE style.
    NotifyTimer(event)
    Hides gradually the ToasterBoxWindow.
    OnClose(event)
    OnMouseDown(event)
    Play()
    Creates the ToasterBoxWindow, that does all the job.
    ScrollDown()
    Scrolls the ToasterBox down, which means gradually hiding the ToasterBox.
    ScrollUp()
    Scrolls the ToasterBox up, which means gradually showing the ToasterBox.
    SetPopupBackgroundColor(colour)
    Sets the ToasterBox background colour. Use it only for ToasterBoxes created with TB_SIMPLE style.
    SetPopupBitmap(bitmap)
    Sets the ToasterBox background image. Use it only for ToasterBoxes created with TB_SIMPLE style.
    SetPopupPauseTime(pausetime)
    Sets the time after which the ToasterBox is destroyed (linger).
    SetPopupPosition(pos)
    Sets the ToasterBox position on screen.
    SetPopupPositionByInt(pos)
    Sets the ToasterBox position on screen, at one of the screen corners.
    SetPopupScrollSpeed(speed)
    Sets the ToasterBox scroll speed. The speed parameter is the pause time (in ms) for every step in the ScrollUp() method.
    SetPopupSize(size)
    Sets the ToasterBox size.
    SetPopupText(text)
    Sets the ToasterBox text. Use it only for ToasterBoxes created with TB_SIMPLE style.
    SetPopupTextColor(colour)
    Sets the ToasterBox foreground colour. Use it only for ToasterBoxes created with TB_SIMPLE style.
    SetPopupTextFont(font)
    Sets the ToasterBox text font. Use it only for ToasterBoxes created with TB_SIMPLE style.

    Table Of Contents

    Previous topic

    img2py

    Next topic

    relativedelta

    phatch-0.2.7/docs/build/html/other.relativedelta.html0000644000000000000000000001751711346363116022572 0ustar rootroot00000000000000 relativedelta — Phatch v0.2 documentation

    relativedelta

    Copyright (c) 2003-2007 Gustavo Niemeyer <gustavo@niemeyer.net>

    This module offers extensions to the standard python 2.3+ datetime module.

    class other.relativedelta.relativedelta(dt1=None, dt2=None, years=0, months=0, days=0, leapdays=0, weeks=0, hours=0, minutes=0, seconds=0, microseconds=0, year=None, month=None, day=None, weekday=None, yearday=None, nlyearday=None, hour=None, minute=None, second=None, microsecond=None)

    The relativedelta type is based on the specification of the excelent work done by M.-A. Lemburg in his mx.DateTime extension. However, notice that this type does NOT implement the same algorithm as his work. Do NOT expect it to behave like mx.DateTime’s counterpart.

    There’s two different ways to build a relativedelta instance. The first one is passing it two date/datetime classes:

    relativedelta(datetime1, datetime2)

    And the other way is to use the following keyword arguments:

    year, month, day, hour, minute, second, microsecond:
    Absolute information.
    years, months, weeks, days, hours, minutes, seconds, microseconds:
    Relative information, may be negative.
    weekday:
    One of the weekday instances (MO, TU, etc). These instances may receive a parameter N, specifying the Nth weekday, which could be positive or negative (like MO(+1) or MO(-2). Not specifying it is the same as specifying +1. You can also use an integer, where 0=MO.
    leapdays:
    Will add given days to the date found, if year is a leap year, and the date found is post 28 of february.
    yearday, nlyearday:
    Set the yearday or the non-leap year day (jump leap days). These are converted to day/month/leapdays information.

    Here is the behavior of operations with relativedelta:

    1. Calculate the absolute year, using the ‘year’ argument, or the original datetime year, if the argument is not present.
    2. Add the relative ‘years’ argument to the absolute year.
    3. Do steps 1 and 2 for month/months.
    4. Calculate the absolute day, using the ‘day’ argument, or the original datetime day, if the argument is not present. Then, subtract from the day until it fits in the year and month found after their operations.
    5. Add the relative ‘days’ argument to the absolute day. Notice that the ‘weeks’ argument is multiplied by 7 and added to ‘days’.
    6. Do steps 1 and 2 for hour/hours, minute/minutes, second/seconds, microsecond/microseconds.
    7. If the ‘weekday’ argument is present, calculate the weekday, with the given (wday, nth) tuple. wday is the index of the weekday (0-6, 0=Mon), and nth is the number of weeks to add forward or backward, depending on its signal. Notice that if the calculated date is already Monday, for example, using (0, 1) or (0, -1) won’t change the day.

    Previous topic

    toasterbox

    Next topic

    surd

    phatch-0.2.7/docs/build/html/other.surd.html0000644000000000000000000001254011346363116020711 0ustar rootroot00000000000000 surd — Phatch v0.2 documentation

    surd

    other.surd.gcd(m, n)
    class other.surd.surd(num=0L, denom=1L)
    other.surd.test_driver()
    other.surd.test_error()

    Previous topic

    relativedelta

    Next topic

    tamogen

    phatch-0.2.7/docs/build/html/other.tamogen.html0000644000000000000000000003102711346363116021367 0ustar rootroot00000000000000 tamogen — Phatch v0.2 documentation

    tamogen

    class other.tamogen.BoundingBox(topleft, bottomright)

    Bases: list

    bottom
    get_bottom()
    get_left()
    get_right()
    get_top()
    left
    move_down()
    move_right()
    reset_y()
    right
    set_bottom(value)
    set_left(value)
    set_right(value)
    set_top(value)
    top
    class other.tamogen.BoundingBoxContainer

    Bases: dict

    append(box_name, topleft, bottomright)
    move_down()
    move_right()
    reset_y()
    class other.tamogen.FillImage(image, fill_section_size, mode)
    Bases: object
    class other.tamogen.FillImages(fill_section_size, mode)

    Bases: list

    append(item)
    findClosestImageAndToneDiff(cmp_img)
    other.tamogen.get_section_size(im_size, num_squares)
    other.tamogen.get_tone(img)
    other.tamogen.mosaic(im, filltype, x_squares, y_squares, x_pix, y_pix, fill_image=None, fill_folder=None)
    other.tamogen.set_new_tone(fill_img, tone_diff, cur_fill_box, final_img)

    Previous topic

    surd

    Next topic

    pyWx

    phatch-0.2.7/docs/build/html/pep8.html0000644000000000000000000001177511346363116017501 0ustar rootroot00000000000000 Code Style: PEP8 — Phatch v0.2 documentation

    Code Style: PEP8

    http://www.python.org/dev/peps/pep-0008/

    Any code submitted to Phatch must follow the PEP8 code style, which is used in the standard library of the main Python distribution.

    You can test if your code follows PEP8 by running the following script in the tests folder:

    python pep8_test.py

    As you should have installed the bazaar precommit hook for Phatch, this test will also be enforced before you are able to commit to your branch.

    Warning

    If you use Windows make sure that you save your code with \n line endings. Code with \r\n line endings will be refused.

    Previous topic

    Bazaar and Launchpad

    Next topic

    actions

    phatch-0.2.7/docs/build/html/pyWx.dialogs.html0000644000000000000000000007560611346363116021220 0ustar rootroot00000000000000 dialogs — Phatch v0.2 documentation

    dialogs

    class pyWx.dialogs.ActionBrowser(parent, tags, content_ctrl_keyw, *args, **keyw)

    Bases: lib.pyWx.tag.Browser

    ContentCtrl
    alias of ActionListBox
    class pyWx.dialogs.ActionDialog(parent, actions, tag='default', **keyw)

    Bases: lib.pyWx.paint.Mixin, lib.pyWx.vlistTag.Dialog

    ContentBrowser
    alias of ActionBrowser
    ExtractTags(actions)
    Called by SetActions.
    GetListBox()
    GetStringSelection()
    GetTagSelection()
    OnActivate(event)
    class pyWx.dialogs.ActionListBox(parent, *args, **kwds)

    Bases: lib.pyWx.tag.ContentMixin, lib.pyWx.vlist.Box

    GetItem(n)
    GetStringSelection()
    IsEmpty()
    OnContextMenu(event)
    OnViewSource(event)
    RefreshList()
    SetActions(actions)
    SetFilter(filter)
    SetTag(tag=u'All')
    TranslateAction(action)
    class pyWx.dialogs.BrowseMixin
    show_dir_dialog(defaultPath, message=u'Choose a folder', style=536877056)
    class pyWx.dialogs.ErrorDialog(parent, message, ignore=True, **keyw)

    Bases: pyWx.wxGlade.dialogs.ErrorDialog, pyWx.dialogs.IconMixin

    on_abort(event)
    on_ignore(event)
    on_skip(event)
    class pyWx.dialogs.ExecuteDialog(parent, drop=False, **options)

    Bases: pyWx.dialogs.BrowseMixin, pyWx.wxGlade.dialogs.ExecuteDialog

    browse_files()
    browse_folder()
    export_settings(settings)
    get_default_path()
    get_selected_extensions()
    import_settings(settings)
    on_browse(event)
    on_default(event)
    on_source(event)
    set_drop(drop)
    wildcard()
    class pyWx.dialogs.FilesDialog(parent, message, title, files, icon='warning', **keyw)
    Bases: pyWx.wxGlade.dialogs.FilesDialog, pyWx.dialogs.IconMixin
    class pyWx.dialogs.IconMixin
    class pyWx.dialogs.ImageInspectorBrowser(parent, tags, content_ctrl_keyw, *args, **keyw)

    Bases: lib.pyWx.imageInspector.Browser

    ContentCtrl
    alias of ImageInspectorGrid
    class pyWx.dialogs.ImageInspectorFrame(parent, filename='', icon=None, thumb_size=(128, 128), *args, **kwds)

    Bases: lib.pyWx.imageInspector.Frame

    Browser
    alias of ImageInspectorBrowser
    class pyWx.dialogs.ImageInspectorGrid(parent, thumb_size=(128, 128))

    Bases: lib.pyWx.imageInspector.GridTag

    CreateRowLabelMenu(menu, row)
    HasActionList()
    InsertTagInActionList(row)
    ProcessKey(key_code, row, col, shift, ctrl, alt)
    class pyWx.dialogs.ImageTreeDialog(*args, **keyw)

    Bases: pyWx.wxGlade.dialogs.ImageTreeDialog

    SetColumnWidths(*widths)
    SetData(data)
    SetOkLabel(label)
    ShowButtons(visible)
    UpdateHeaders(headers=None)
    inspect(path)
    inspect_list_item(index)
    inspect_tree_item(item)
    on_list_item_right_click(event)
    on_tree_item_right_click(event)
    class pyWx.dialogs.ProgressDialog(parent, title, parent_max=1, child_max=1, message='')

    Bases: wx._windows.ProgressDialog, core.message.ProgressReceiver

    +1 is added because eg opening a file is also an action

    close(event=None)
    sleep()
    update(result, value, **message)
    Fix for wxPython2.6
    class pyWx.dialogs.StatusDialog(*args, **kwds)

    Bases: pyWx.wxGlade.dialogs.StatusDialog

    SetMessage(text, report=None)
    on_button_log(event)
    on_button_report(event)
    class pyWx.dialogs.WritePluginDialog(parent, message, **keyw)

    Bases: pyWx.wxGlade.dialogs.WritePluginDialog, pyWx.dialogs.IconMixin

    on_help(event)
    on_template(event)
    template_show(show)
    pyWx.dialogs.example()
    pyWx.dialogs.get_max_height(height=510)

    Previous topic

    pyWx

    Next topic

    gui

    phatch-0.2.7/docs/build/html/pyWx.gui.html0000644000000000000000000010762511346363116020357 0ustar rootroot00000000000000 gui — Phatch v0.2 documentation

    gui

    class pyWx.gui.App(settings, actionlist, *args, **keyw)

    Bases: pyWx.gui.DropletMixin, wx._core.App

    MacReopenApp()
    Called when the doc icon is clicked, and ???
    OnInit()
    init()
    show_frame()
    class pyWx.gui.DialogsMixin
    get_icon_filename()
    get_setting(name)
    load_actionlist_data(filename)
    set_report(report)
    set_setting(name, value)
    show_error(message)
    show_execute_dialog(result, settings, files=None)
    show_files_message(result, message, title, files)
    show_image_tree(result, image_infos, widths, headers, ok_label='&OK', buttons=False, modal=False)
    show_info(message, title='')
    show_log()
    show_message(message, title='', style=260)
    show_notification(message, force=False, report=None)
    show_progress(title, parent_max, child_max=1, message='')
    show_progress_error(result, message, ignore=True)
    show_question(message, style=1034)
    show_report()
    show_scrolled_message(message, title, **keyw)
    show_status(message, log=True)
    class pyWx.gui.DropletApp(actionlist, paths, settings, *args, **keyw)
    Bases: pyWx.gui.DropletMixin, wx._core.App
    class pyWx.gui.DropletFrame(actionlist, paths, *args, **keyw)

    Bases: pyWx.gui.DialogsMixin, wx._windows.Frame, core.message.FrameReceiver

    execute(actionlist, paths)
    class pyWx.gui.DropletMixin
    OnInit()
    get_action_list(file_list)
    get_action_list_files()
    init()
    class pyWx.gui.Frame(actionlist, *args, **keyw)

    Bases: pyWx.gui.DialogsMixin, pyWx.dialogs.BrowseMixin, lib.pyWx.droplet.Mixin, lib.pyWx.paint.Mixin, pyWx.wxGlade.frame.Frame, core.message.FrameReceiver

    IsEmpty()
    add_tool(bitmap, label, tooltip, method, item=0)
    append_save_action(actions)
    droplet_label_format(x)
    enable_actions(state=True)
    enable_collapse_automatic(checked)
    enable_menu(state=True)
    enable_toolbar(state=True)
    get_droplet_folder()
    install_menu_item(menu, name, label, method, tooltip='', style=0)
    is_protected_actionlist(filename)
    is_save_not_ok()
    menu_file_export_droplet(method, *args, **keyw)
    on_close(event=None)
    on_context_menu(event)
    on_description_text(event)
    on_drop(filenames, x, y)
    on_menu_edit_add(event)
    on_menu_edit_disable(event)
    on_menu_edit_down(event)
    on_menu_edit_enable(event)
    on_menu_edit_remove(event)
    on_menu_edit_up(event)
    on_menu_file_export_actionlist_to_clipboard(event)
    on_menu_file_export_inspector_to_clipboard(event)
    on_menu_file_export_recent_to_clipboard(event)
    on_menu_file_history(event)
    on_menu_file_new(event=None)
    on_menu_file_open(event)
    on_menu_file_open_library(event)
    on_menu_file_quit(event)
    on_menu_file_save(event)
    on_menu_file_save_as(event=None)
    on_menu_help_about(event)
    on_menu_help_bug(event)
    on_menu_help_documentation(event)
    on_menu_help_forum(event)
    on_menu_help_plugin(event)
    on_menu_help_translate(event)
    on_menu_help_website(event)
    on_menu_tool_enter(event)
    on_menu_tools_browse_library_phatch(event)
    on_menu_tools_browse_library_user(event)
    on_menu_tools_execute(event)
    on_menu_tools_image_inspector(event)
    on_menu_tools_python_shell(event)
    on_menu_tools_safe(event)
    on_menu_tools_show_log(event)
    on_menu_tools_show_report(event)
    on_menu_tools_update_fonts(event)
    on_menu_view_collapse_all(event)
    on_menu_view_collapse_automatic(event)
    on_menu_view_description(event)
    on_menu_view_droplet(event)
    on_menu_view_expand_all(event)
    on_show_droplet(bool)
    on_size(event)
    on_tree_end_drag(event)
    only_actions_with_tag(actions, tag)
    set_dirty(value)
    set_safe_mode(state)
    show_description(checked)
    show_droplet(checked)
    show_paint_message(message=None)
    class pyWx.gui.ImageInspectorApp(paths, *args, **keyw)

    Bases: wx._core.App

    OnInit()
    pyWx.gui.drop(actionlist, paths, settings)
    pyWx.gui.findWindowById(id)
    pyWx.gui.inspect(paths)
    pyWx.gui.main(settings, actionlist)
    pyWx.gui.set_theme(name='default')

    Previous topic

    dialogs

    Next topic

    images

    phatch-0.2.7/docs/build/html/pyWx.html0000644000000000000000000001126711346363116017570 0ustar rootroot00000000000000 pyWx — Phatch v0.2 documentation

    Previous topic

    tamogen

    Next topic

    dialogs

    phatch-0.2.7/docs/build/html/pyWx.imageInspector.html0000644000000000000000000010145311346363116022535 0ustar rootroot00000000000000 imageInspector — Phatch v0.2 documentation

    imageInspector

    class pyWx.imageInspector.AddTagDialog(parent, keys, *args, **keyw)

    Bases: pyWx.wxGlade.dialogsInspector.AddTagDialog

    GetModal()
    OnAdd(event)
    OnTagText(event)
    class pyWx.imageInspector.Browser(parent, tags, content_ctrl_keyw, *args, **keyw)

    Bases: lib.pyWx.tag.Browser

    ContentCtrl
    alias of GridTag
    GetPaintMessage()
    class pyWx.imageInspector.Frame(parent, filename='', icon=None, thumb_size=(128, 128), *args, **kwds)

    Bases: wx._windows.Frame

    class Browser(parent, tags, content_ctrl_keyw, *args, **keyw)

    Bases: lib.pyWx.tag.Browser

    ContentCtrl
    alias of GridTag
    GetPaintMessage()
    Frame.GetGrid()
    Frame.OnActivate(event)
    Frame.OpenImage(filename)
    Frame.OpenImages(filenames)
    class pyWx.imageInspector.Grid(parent, thumb_size=(128, 128))

    Bases: lib.pyWx.droplet.Mixin, wx.grid.Grid

    AddColumnRow(col)
    AddRow()
    Ask(message, title='')
    AskText(question, value='', title='')
    ChangeRowValues(row)
    CopyCellValue(row, col)
    CopyRowLabel(row)
    CreateRowLabelMenu(menu, row)
    DeleteCell(row, col)
    DeleteCols(pos=0, num=1)
    DeleteRows(pos=0, num=1)
    GetCellRowCol(event=None)
    OnColLabelPaint(evt)
    OnDrop(filenames, x, y)
    OnGridCellRightClicked(event)
    (row, evt) -> display a popup menu when a row label is right clicked
    OnGridColLabelRightClicked(col)
    OnGridLabelRightClicked(event)
    OnGridRowLabelRightClicked(row)
    OnKeyDown(event)
    OnRowLabelPaint(evt)
    OpenImage(filename)
    OpenImages(filenames)
    ProcessKey(key_code, row, col, shift, ctrl, alt)
    RefreshAll(update_column=False)
    RenameRowLabelValue(row)
    ShowError(message, title=u'Image Inspector')
    ShowMessage(message, title='', style=260)
    class Table(thumb_size=(128, 128))

    Bases: wx.grid.PyGridTableBase

    DeleteCols(pos=0, num=1)
    DeleteRows(pos=0, num=1)
    GetAttr(row, col, kind)
    GetColLabelValue(col)
    GetNumberCols()
    GetNumberRows()
    GetRowLabelValue(row)
    GetValue(row, col)
    IsEditableCell(row, col)
    IsEmptyCell(row, col)
    SetRowColours(colors=(wx.Colour(254, 255, 255, 255), wx.Colour(250, 250, 250, 255)))
    SetRowLabelValue(row, value)
    SetValue(row, col, value)
    Grid.UpdateRowsColsNumbers()
    Only consider adding or removing rows.
    Grid.UpdateThumbs()
    Grid.UpdateValues()
    Update all displayed values
    class pyWx.imageInspector.GridTag(parent, thumb_size=(128, 128))

    Bases: pyWx.imageInspector.OpenMixin, lib.pyWx.tag.ContentMixin, pyWx.imageInspector.Grid

    IsEmpty()
    SetFilter(filter=None)
    SetTag(tag)
    Filters from all_data to tag_data
    class pyWx.imageInspector.OpenMixin

    Bases: object

    GetTopLevelParent()
    OnOpen(event)
    OnOpenUrl(event)
    OpenImage(filename)
    OpenImages(filenames)
    class pyWx.imageInspector.Table(thumb_size=(128, 128))

    Bases: wx.grid.PyGridTableBase

    DeleteCols(pos=0, num=1)
    DeleteRows(pos=0, num=1)
    GetAttr(row, col, kind)
    GetColLabelValue(col)
    GetNumberCols()
    GetNumberRows()
    GetRowLabelValue(row)
    GetValue(row, col)
    IsEditableCell(row, col)
    IsEmptyCell(row, col)
    SetRowColours(colors=(wx.Colour(254, 255, 255, 255), wx.Colour(250, 250, 250, 255)))
    SetRowLabelValue(row, value)
    SetValue(row, col, value)
    pyWx.imageInspector.empty_bitmap(width, height)
    pyWx.imageInspector.getPencilBitmap()
    pyWx.imageInspector.getPencilData()
    pyWx.imageInspector.getPencilImage()

    Previous topic

    gui

    Next topic

    images

    This Page

    phatch-0.2.7/docs/build/html/pyWx.images.html0000644000000000000000000001135311346363116021030 0ustar rootroot00000000000000 images — Phatch v0.2 documentation

    images

    pyWx.images.get_icon(name='phatch')
    pyWx.images.set_icon(window, name='phatch')

    Previous topic

    gui

    Next topic

    nuovext

    phatch-0.2.7/docs/build/html/pyWx.nuovext.html0000644000000000000000000001161011346363116021267 0ustar rootroot00000000000000 nuovext — Phatch v0.2 documentation

    nuovext

    class pyWx.nuovext.Provider(*args, **kwargs)

    Bases: wx._misc.ArtProvider

    CreateBitmap(artid, client, size)

    Previous topic

    images

    Next topic

    plugin

    phatch-0.2.7/docs/build/html/pyWx.plugin.html0000644000000000000000000001073511346363116021064 0ustar rootroot00000000000000 plugin — Phatch v0.2 documentation

    plugin

    pyWx.plugin.install_frame(frame)

    Previous topic

    nuovext

    Next topic

    wxGlade

    phatch-0.2.7/docs/build/html/pyWx.wxGlade.dialogs.html0000644000000000000000000002702311346363116022600 0ustar rootroot00000000000000 dialogs — Phatch v0.2 documentation

    dialogs

    class pyWx.wxGlade.dialogs.ErrorDialog(*args, **kwds)

    Bases: wx._windows.Dialog

    on_abort(event)
    on_details(event)
    on_ignore(event)
    on_skip(event)
    class pyWx.wxGlade.dialogs.ExecuteDialog(*args, **kwds)

    Bases: wx._windows.Dialog

    on_browse(event)
    on_default(event)
    on_source(event)
    class pyWx.wxGlade.dialogs.FilesDialog(*args, **kwds)
    Bases: wx._windows.Dialog
    class pyWx.wxGlade.dialogs.FolderFileBrowser(parent, id, data, Data, headers=None, **options)

    Bases: lib.pyWx.folderFileBrowser.PreviewMixin, lib.pyWx.folderFileBrowser.Panel

    GetTreeLabel(label, parent_label)
    class pyWx.wxGlade.dialogs.ImageTreeDialog(data, Data, headers, *args, **kwds)
    Bases: wx._windows.Dialog
    class pyWx.wxGlade.dialogs.StatusDialog(*args, **kwds)

    Bases: wx._windows.Dialog

    on_button_log(event)
    on_button_report(event)
    class pyWx.wxGlade.dialogs.WritePluginDialog(*args, **kwds)

    Bases: wx._windows.Dialog

    on_help(event)
    on_template(event)

    Previous topic

    wxGlade

    Next topic

    frame

    phatch-0.2.7/docs/build/html/pyWx.wxGlade.dialogsInspector.html0000644000000000000000000001331011346363116024461 0ustar rootroot00000000000000 dialogsInspector — Phatch v0.2 documentation

    dialogsInspector

    class pyWx.wxGlade.dialogsInspector.AddTagDialog(*args, **kwds)

    Bases: wx._windows.Dialog

    OnAdd(event)
    OnTagText(event)

    Previous topic

    dialogs

    Next topic

    frame

    This Page

    phatch-0.2.7/docs/build/html/pyWx.wxGlade.frame.html0000644000000000000000000004753711346363116022264 0ustar rootroot00000000000000 frame — Phatch v0.2 documentation

    frame

    class pyWx.wxGlade.frame.App(redirect=False, filename=None, useBestVisual=False, clearSigInt=True)

    Bases: wx._core.App

    OnInit()
    class pyWx.wxGlade.frame.Frame(*args, **kwds)

    Bases: wx._windows.Frame

    on_menu_collapse_automatic(event)
    on_menu_edit_add(event)
    on_menu_edit_disable(event)
    on_menu_edit_down(event)
    on_menu_edit_enable(event)
    on_menu_edit_modify(event)
    on_menu_edit_remove(event)
    on_menu_edit_up(event)
    on_menu_file_export_actionlist_to_clipboard(event)
    on_menu_file_export_droplet_actionlist_to_clipboard(event)
    on_menu_file_export_droplet_inspector_to_clipboard(event)
    on_menu_file_export_droplet_recent_to_clipboard(event)
    on_menu_file_export_inspector_to_clipboard(event)
    on_menu_file_export_recent_to_clipboard(event)
    on_menu_file_new(event)
    on_menu_file_open(event)
    on_menu_file_open_library(event)
    on_menu_file_quit(event)
    on_menu_file_save(event)
    on_menu_file_save_as(event)
    on_menu_help_about(event)
    on_menu_help_bug(event)
    on_menu_help_documentation(event)
    on_menu_help_forum(event)
    on_menu_help_plugin(event)
    on_menu_help_translate(event)
    on_menu_help_website(event)
    on_menu_tools_browse_library_phatch(event)
    on_menu_tools_browse_library_user(event)
    on_menu_tools_browse_system_library(event)
    on_menu_tools_browse_user_library(event)
    on_menu_tools_execute(event)
    on_menu_tools_image_inspector(event)
    on_menu_tools_python_shell(event)
    on_menu_tools_safe(event)
    on_menu_tools_show_log(event)
    on_menu_tools_show_report(event)
    on_menu_tools_update_fonts(event)
    on_menu_view_collapse_all(event)
    on_menu_view_collapse_automatic(event)
    on_menu_view_description(event)
    on_menu_view_droplet(event)
    on_menu_view_expand_all(event)
    class pyWx.wxGlade.frame.Tree(parent, *args, **keyw)

    Bases: lib.pyWx.treeEdit.TreeMixin, wx._controls.TreeCtrl

    OnCompareItems(item1, item2)
    Unclear why this is necessary, because of mixin?

    Previous topic

    dialogs

    Next topic

    templates

    phatch-0.2.7/docs/build/html/pyWx.wxGlade.html0000644000000000000000000001062111346363116021153 0ustar rootroot00000000000000 wxGlade — Phatch v0.2 documentation

    wxGlade

    Previous topic

    plugin

    Next topic

    dialogs

    phatch-0.2.7/docs/build/html/release.html0000644000000000000000000002524111346363116020236 0ustar rootroot00000000000000 Release Manager — Phatch v0.2 documentation

    Release Manager

    For every release we chose a release manager. If you want to volunteer please let us know.

    These are the steps a release manager has to do:

    1. Check the code with these tools:

      pyflakes ../phatch/ | grep -v "undefined name '_'" | grep -v 'but unused'| grep -v redefinition > pyflakes.txt
      pylint --errors-only ../phatch/  | grep -v "Undefined variable '_'" | grep -v "already defined" > pylint.txt

      Do not fix any code in phatch/other. Be carefull to fix errors to prevent breaking. For example if you remove an unused imported function bar in the module foo, be sure to check it is nowhere used as foo.bar. So ignore unused items unless you are 100% sure what you are doing.

    2. License and Copyrights

      Check license and copyrights of any new files:

      python license_test.py

      The above command will only check source code on Debian/Ubuntu, so please check other files manually (such as artwork, ...). Update the copyright file both in trunk as in the PAPT svn.

      Check if in the Help>About dialog box everyone with substantial contributions is listed. Otherwise add it to phatch/data/info.py.

    3. Developer Documentation

      Update developer documentation, by running this command in the docs folder:

      python update.py
    4. Translations

      Download the latest po translations. Test them with potest and fix any errors immediately in launchpad. When all errors are fixed download the latest po and mo translations to trunk.

    5. PPA (Personal Package Archive)

      Build and upload to the Phatch PPA to check if no errors are thrown by the build systems and if Phatch can be correctly installed. Invite users to test the PPA and look for any user interface errors. Do not release a version in the PPA with the new version number yet.

    6. Version number

      Bump up the version number after PPA testing. In the file phatch/data/version.py the variables BASE and VERSION should be identical:

      BASE = "0.2.8"
      VERSION = "0.2.8"
      DATE = "Tue, 09 Mar 2010 21:01:25"
      

      Check in the Help>About dialog box if the version number is displayed correctly.

    7. Commit last changes if necessary. Tag the release, for example:

      bzr tag 0.2.8
    8. Export as zip:

      bzr export ../phatch-0.2.8.zip
    9. PAPT (Debian Python Application Package Team)

      Be sure you have an alioth account. Update the Phatch files from the PAPT svn as far as you can:

      • copyright

        • check differences and sync both from the same file in trunk
      • changelog

        • create a new entry with the command:

          dch -v 0.2.8-1
        • change the entry in:

          phatch (0.2.8-1) UNRELEASED; urgency=low
        • mention all bug fixes

        • list new or removed dependencies

        • send a mail to POX with the subject “RFS: phatch 0.2.8-1” and mention the download url in the message

    10. If the package has been accepted by Debian, release with the new version number in the Phatch PPA.

    11. Ensure the Phatch website gets updated.

    12. Spread the word and announce the Phatch release on (ask help of others if needed):

      If you have a blog, announce it there too.

      Specific annoucements by people:

      • Stani:
        • python-nl mailing list
    13. Give your feedback on this release documentation, so it can be improved.

    Previous topic

    Testing

    Next topic

    actions

    phatch-0.2.7/docs/build/html/search.html0000644000000000000000000000623111346363116020061 0ustar rootroot00000000000000 Search — Phatch v0.2 documentation

    Search

    Please activate JavaScript to enable the search functionality.

    From here you can search these documents. Enter your search words into the box below and click "search". Note that the search function will automatically search for all of the words. Pages containing fewer words won't appear in the result list.

    phatch-0.2.7/docs/build/html/searchindex.js0000644000000000000000000040635111346363116020570 0ustar rootroot00000000000000Search.setIndex({desctypes:{"0":"method","1":"class","2":"staticmethod","3":"function","4":"attribute","5":"exception","6":"classmethod"},terms:{line_color:33,get_text:[11,138],cfapattern:36,exif_canoncs_photoeffect:72,"0x2b775187e140":[],"0x1175ea28":[],exif_makernote_macromod:72,set_form_field_value_select:161,sleep:[1,83],dirnam:45,find_in:24,module_dict:90,assert_safe_expr:157,"0x3791488":[],inspect_tree_item:1,undef:36,pnginfo:74,ensure_unicod:95,"0x2e70140":[],pprint:[80,72],ongetitemattr:59,"0x3974e60":[],"0x3980c20":[],edward:12,onbtmultichoic:12,monthnam:[157,23,72],under:[84,108,12,57,120],preprocess:157,image_from:112,spec:74,onenteredtext:12,exif_filesourc:72,digit:36,everi:[144,89,57,24,69],"0x110d59b0":[],fill_typ:15,"0xf75cb90":[],should:[0,23,48,63,120,156,128,38,80,98,144,45,29,154,42,54,69,118],"0xe601398":[],getsmalluparrowbitmap:12,pexif_orient:72,extract_info_pil:[],to_english:86,upload:[144,69],zexif_0x9000:72,"0x112c3b18":[],zexif_0x9003:72,zexif_0x9004:72,resample_highlight:101,exif_flash:72,unsharp:52,wednesdai:72,exif_makernote_shortfocallengthoflensinfocalunit:72,apertur:36,round_imag:40,imageinspectorbrows:1,"0xfc5a2a8":[],get_by_head:80,direct:16,scenetyp:36,getdefaultpath:118,consequ:[112,74],second:[11,112,72,157,23,45,159],"0xe6472a8":[],follow:[45,57,74,156,157,159,69,34,118],on_drop:79,"0x273e500":[],on_menu_edit_modifi:140,even:[29,34],on_menu_tools_browse_library_phatch:[79,140],hide:[57,54],error_log_count:23,item2:[77,140],neg:[42,108,45,112,159],wxpython2:1,item1:[77,140],"0x2ab260b6b140":[],"0x266f488":[],file_onli:[],"0x1d66488":[],move_down:139,"0x2724cf8":76,blur:[0,108,52],"new":[127,45,72,57,128,74,162,157,112,6,115,144,89,69],symmetr:16,pexif_flash:72,metadata:[11,31,130,72,74,68,6,42,162],widget:[12,57],"0x105aa9b0":[],"0xf9c8de8":[],abov:[144,45,57,133,120],"0xcd0e410":[],orientationfield:54,never:[89,45,54],here:[45,54,104,159,69,118],hideonnomatch:[12,91],"0x1a0c230":[],typeerror:89,path:[11,1,119,23,24,72,96,3,79,80,74,59,137,65,66,127,49,42,54,128],blend:112,interpret:45,on_menu_view_descript:[79,140],"0xa96ba28":[],oncancel:109,forum:144,get_var:23,anymor:24,on_menu_file_new:[79,140],"0x2b4d9b0":[],everyon:[144,120],get_relev:71,datetim:[11,137,36,159,72],listctrlautowidthmixin:12,"0x2a9d500":[],stripoffset:36,asktext:29,volunt:144,iptc_application2_bylin:72,exif_makernote_tag_0x0004:72,source_pyexiv2_imag:162,exif_makernote_tag_0x0000:72,exif_makernote_tag_0x0001:72,exif_makernote_tag_0x0002:72,exif_makernote_tag_0x0003:72,truetyp:66,substr:80,unix:[66,24],"0x1a0c050":[],exif_canonsi_subjectdist:72,set_dirti:[161,79],sgilog24:36,txt:[144,65],get_image_amount:3,unit:[104,142,34,118],highli:45,exif_canoncs_lenstyp:72,tableimag:3,describ:[69,54],would:[89,112,120],init:[0,2,78,46,79,158,82,84,50,51,8,92,94,55,131,15,16,100,98,18,116,105,133,20,21,135,23,63,25,52,64,27,28,145,108,30,7,110,32,33,101,35,71,38,153,154,155,40,48,160,42,117],"0x2e45b90":[],get_filenam:6,on_menu_help_document:[79,140],call:[1,23,24,63,54,74,88,45,29,89,79,6],typl:24,recommend:[45,129],"0x2b730dcb0140":[],preview:[68,62,96],type:[2,153,3,80,74,84,6,89,92,12,72,138,137,23,24,63,52,108,29,112,71,75,76,40,159,42,164],until:159,e302:45,get_xml_timez:11,"0x1ac1500":[],createbitmap:39,relat:[23,6,45],error_messag:[],notic:159,getchoic:12,folderfield:54,on_menu_edit_remov:[79,140],exif_makernote_tag_0x000d:72,must:[89,108,69,112,156],exif_image_yresolut:72,get_form_item:161,delete_all_form:161,"0xdeefc80":[],work:[112,54,63,66,12,159,69],on_context_menu:79,exif_makernote_qu:72,exif_photo_focalplaneresolutionunit:72,test_error:106,lightsourc:36,erf:36,"0x2b4c1a1f30b8":[],get_exif_orient:112,"0xbaf1578":[],"0x2b88d1bb0140":65,root:[23,72],overrid:128,zexif_0x829d:72,unipex:12,get_left:139,"0x280c050":[],exif_focalplanexresolut:72,indic:[89,112,45,53],"0x2ffc488":[],want:[42,144,45,69],basebal:89,canvas_width:15,on_item_activ:161,"0x2681e60":[],temp_filenam:[],end:[156,23],setpopuppausetim:57,addpanel:57,get_section_s:139,length:[45,36,80,37],how:[0,45,38,80,98,48,154,89],onopenurl:29,sever:[45,6,72],show_error:[161,65,83,79,29],image_info:[79,23],verifi:[57,23,45,76],find_command:24,perspect:[68,145,4],updat:[1,23,120,3,65,83,29,123,144,6,69,34],"0x2811c20":[],onactiv:[1,91,29,37],outsid:28,"0xdfdfb18":[],"0x276b050":[],mess:45,temp_ext:76,after:[144,112,57,159],befor:[112,80,156,23,45,123,69],open_image_data:112,pixarlog:36,exif_canoncs_afpoint:72,"0x1a79d70":[],oninit:[79,140],demonstr:[12,45,91],filename_match:45,"0xca917d0":[],on_menu_file_export_droplet_rec:93,get_form_fields_vis:161,classmethod:72,isvalid:89,obsolet:45,exclud:[42,45,54,72],checkerboard:112,green:36,setpopuptextcolor:57,exif_canoncs_satur:72,tempfile_nam:[],exclus:45,primarychromat:36,first:[112,45,24,80,159],"0x320c2a8":[],order:[2,92,54,71,52,153,28,40,84,42,24,69,164],phatch_actions_path:23,origin:[128,46,159,124,89,43],"0xf93fc80":[],"0x351b320":[],getlistbox:1,over:[112,45],becaus:[1,45,6,140,89],jpeg:[112,36,63,72,74,76],getrootchild:77,gcdc:109,"0x37a4e60":[],isselect:[],pixarfilm:36,phatch_python_path:127,"0x2f70758":[],on_default:[1,44],"0x1c2f938":[],fit:[68,21,112,159,4],pexif_sensingmethod:72,write_readme_credit:134,fix:[144,1,24,63,21],"__class__":72,load_actionlist_data:79,gradient_vector:153,treectrl:140,verify_app_user_path:127,fade:30,exif_makernote_whitebal:72,enable_form:161,easier:57,shear:145,append_to_report:6,subtop:89,them:[127,144,23,24,120],apply_actions_to_photo:23,python_3000_backtick:45,thei:[23,45,69],zexif_0x927c:72,"0x2b85758c3140":[],blenderrotationfield:42,safe:[112,54,130,157,6,68,118],put_palett:112,exif_canoncs_focusmod:72,"break":[144,69,24],band:112,show_path:118,exif_canoncs_macro:72,invalidwriteformaterror:112,"0x2846938":[],e401:45,interrupt:42,precommit:[156,69,104,120],get_freedesktop_filenam:74,setvalu:[118,29,34,37],choic:[12,54,42,89,91,118],tiffcompressionfield:54,off:36,"_misc":[49,57,39],im1:112,getvalu:[29,34,118],im2:112,"0xde7fb18":[],timeout:155,each:[89,112,45,80],spectralsensit:36,side:45,mean:[89,57],paus:57,exif_makernote_contrast:72,resum:42,assert_saf:[157,23,54],updaterowscolsnumb:29,newmsg:[65,83],transferfunct:36,"1kb":80,ongrideditorhidden:29,open_dcraw:76,logo:[24,67],extract_info_imag:[],extract:[23,72],"0x2e7a398":[],split_data:6,"0xe1b1320":[],get_selected_extens:1,gradient:142,background_color:[51,108,153,160],newli:161,positiveintegerfield:54,content:[37,6,45,10],wximage_pil:9,do_thre:45,adapt:12,"0x11408a28":[],get_command:71,linear:36,situat:[23,45],free:[26,72,120],standard:[156,36,159],nth:159,"0x1cb3488":[],ifd_nam:36,element:80,progressreceiv:[1,83,65],get_alpha:112,md5:74,topleft:139,exif_image_xresolut:72,"0xe1f3b18":[],extraneous_whitespac:45,angl:[11,51],exif_iop_relatedimagelength:72,exif_aperturevalu:72,"0x272be60":[],setfocu:118,filter:[0,1,7,46,3,80,82,10,98,100,59,133,20,23,27,108,29,70,151,158,161,117],planarconfigur:36,isn:66,pexif:72,regress:45,"_icondialog":[],translateact:1,dimens:[112,54],rang:72,"0xf7622a8":[],independ:23,"0x2b1ed774b140":[],rank:[68,158,4],exif_canoncs_0x002c:72,restrict:157,hook:[156,69,104,120],instruct:69,get_dimens:16,"0xfe059b0":[],messag:[1,23,54,62,79,76,155,65,83,45,29,89,68,6,144],"0x2a86848":[],iconrender:[],on_menu_help_transl:[79,140],"0xf4c7320":[],"0x1bd28c0":[],iskeyword:45,resample_mask:55,on_menu_view_droplet:[79,140],top:[112,139,64,28,145,23,108,45,142],getassociatedtop:89,checker:45,downsiz:21,"0x1deb140":[],exif_photo_compressedbitsperpixel:72,too:[144,24],"0x1edb398":[],boundingbox:139,listen:89,consol:[68,53,13,65],exif_photo_aperturevalu:72,init_info:[],exif_canoncs_colorton:72,mani:[0,45,38,98,66,48,154,89],"0x1d85230":[],sync:[144,112],exif_image_artist:[],pexif_exposuretim:72,barnndef:45,"0x31c88c0":[],"0x2c50320":[],refreshallitem:59,target:[11,112,74,6,42,162],keyword:[112,45,159],provid:[128,54,72,39,6,42,89],expr:157,index2:68,tree:140,"0x1d63500":[],oncollabelpaint:29,exif_makernote_imagenumb:72,createimagelist:161,setoklabel:1,"5mb":54,ontext:37,minut:[11,157,23,159,72],filter_image_fil:[],get_icon_filenam:79,"0x3601d40":[],oncredit:67,"0x35fc050":[],pass:[89,45,159,72],enableres:10,flashpixvers:36,raw:[76,45,54],fontfilectrl:118,onmousemov:49,do_two:45,open_fold:3,referenceblackwhit:36,set_right:139,decode_maker_not:36,textctrl:[118,12,29,10],refreshal:[142,29,34],source_format:162,im_siz:139,exif_photo_datetimedigit:72,colsearch:[12,91],simplifi:54,oncontrolchang:[12,91],shall:45,dictionaryreadfilefield:54,object:[45,54,63,72,3,80,139,59,112,29,60,71,42,89,49,10],"0x2b57ac9f9140":[],testcontentctrl:10,microsecond:[157,159,72],specifi:[23,24,57,80,74,76,128,123,89,159],devicesettingdescript:36,typ:[6,118],python_fil:128,don:[128,24,120,74,23,45],"0x37b0170":[],onbutton:[],set_lay:6,doc:[144,89,79,120],"0x31eb140":[],treeedit:[54,140,130,85,161,118],doe:[127,24,57,80,159,69],nef:36,on_siz:79,bracket:[45,36],wildcard:[1,5,85,130],unchang:[38,48,154],"0x2359938":[],section:45,dot:[89,12],save_libtiff:76,has_kei:45,mustexistfilefield:54,collect_font:119,bottomright:139,random:51,emptyfilefield:54,radiu:[7,27,100,82,40,158],syntax:[45,57],getrowmetadatavalu:[],iscelledit:[],involv:23,absolut:[36,23,24,159],"0x1ff7230":[],bind:[89,12,29],just:89,delet:[24,74,164],setpopups:57,menu:[93,1,79,29],fstab:24,"0x2e1d398":[],get_statist:45,theme:142,deepest:89,"__call__":89,fstap:24,folder:[127,1,23,24,63,72,120,156,3,104,80,99,144,93,6,42,54,69,163],"0x1f43398":[],ensure_path_or_desktop:42,niemey:159,create_nautilus_extens:103,imageinspectorgrid:1,delete_imag:3,stop:23,getxmltimez:11,setpopuptext:57,argument_nam:45,is_writable_format:162,y_squar:139,thumb_info:74,popitem:123,report:[11,1,23,79,45,69],"0xfccc9b0":[],net:[144,159,74],maxaperturevalu:36,from_exif_str:137,bar:[144,45,80,72],"ex\u0129f":72,"0x353a9b0":[],"0x27ec0c8":[],get_image_files_from_fold:[],is_key_empti:3,imagefilterfield:54,baz:45,get_top:139,unrestr:157,twice:89,"0x1de6d40":[],error_log_fil:23,contrast:[68,48,36,98,4],septemb:[],"0xfc3bc08":[],nnnn:45,"0x1088cb90":[],getpencildata:29,num:[106,36,3,29],getbitmap:128,result:[1,23,24,16,79,157,65,83,112],add_user_path:127,extract_info_pyexiv2:[],subject:144,"0x2abc5e9990b8":[],canvas_s:[112,160],"0x1df2d70":[],"0x1029c0c8":[],colorctrl:118,exif_canoncs_0x0015:72,wxglade:[1,140,79,121,68,61,44],"0x10388a28":[],drawn:112,d55:36,attribut:[29,112,45,6,128],setthem:142,accord:45,"0xf6db398":[],extend:157,verify_image_with_pil:76,were:23,weak:89,onkeydown:[12,29],shell_cach:24,onbegindrag:77,extens:[23,54,128,76,5,112,159,24,118],lazi:72,brightnessvalu:36,open_image_without_pil:76,open_image_exif:[76,112,74],toler:112,subfold:[23,72],readline_check_phys:45,dropletapp:79,easi:[89,45,57],add_dictionari:90,fault:112,howev:159,exif_thumbnail_jpeginterchangeformatlength:72,move_form_selected_up:161,logic:45,exif_photo_filesourc:72,com:[144,12,24,45],col:[1,3,80,59,29,34],cancel_vis:[],"0x26b9398":[],tone:[15,46],kwd:[1,140,113,70,151,142,59,29,67,44],"0x27cd9b0":[],devscript:69,height:[1,72,47,145,29,118],gap:153,"0xfe30cf8":[],"0x3857320":[],cropmixin:[42,64,63],settag:[1,70,29,151,10],diff:[],"0xa7e9a28":[],pexif_ycbcrposit:72,exif_canonsi_0x0020:72,exif_canonsi_0x0021:72,strong:89,exif_photo_focalplaneyresolut:72,ongridlabelrightclick:29,onlistitemselect:12,three:[89,45,36],getsmalldnarrowbitmap:12,much:[80,74],unsubscrib:[88,89],filltyp:139,interest:89,subscrib:[88,89],autocompleteiconctrl:91,futur:45,emb:128,"0x2b66f2e53140":[],exif_photo_sensingmethod:72,"0x23fa398":[],get_thumb:6,onidl:26,gettextfix:[68,143,130],xxx:[66,45],argument:[112,24,63,72,45,159,89],is_form_en:161,set_drop:1,child:83,"0xf8f79b0":[],choicefield:54,filectrl:118,ugli:45,ident:144,new_siz:160,launcher:163,ondoubleclick:[49,151],properti:57,framereceiv:[65,83,79],inch:[54,36],aim:88,include_imag:25,calcul:[112,159,142],hypot2:45,on_menu_file_export_thunar_rec:93,"0xfe342a8":[],"0x1ac1488":[],"0x10808c80":[],is_cell_delet:3,"0x9a6dcf8":[],on_menu_file_export_nautilus_actionlist:93,printabl:36,project:[12,45,120],dragto:77,show_notif:[65,79],"0x1fad488":[],"0x10b18a28":[],kwarg:[45,39],pexif_meteringmod:72,inkscap:[76,150],iptc_application2_copyright:72,"0x2b335a7870b8":[],get_tree_fold:59,infotest:72,ongridcellrightclick:29,disabl:[54,23,12,45],setrowcolour:[29,34],credit:67,receiv:[88,89,83,12,159],show_messag:[65,79,29],make:[2,45,36,63,57,74,156,110,33],toaster:57,polaroid:52,amount:[0,45,7,46,80,82,48,51,8,131,98,100,158,133,20,135,27,30,112,38,154,59,117],delete_cel:3,preserv:46,zexif_0xa300:72,split:[119,112,118],nuovext:[61,68,39],old_var:72,complet:[89,12],pyflak:144,blue:36,"0x2edcd70":[],donat:120,check_ex:6,exif_photo_exposuretim:72,rais:[45,24,72,157,112,6,89,54],"0x0103":72,"0x2afa848":[],get_lay:6,pexif_componentsconfigur:72,setrowlabelvalu:29,"0x1067ba28":[],offset_i:145,"0x3735230":[],label_angl:49,kept:45,whitespace_before_paramet:45,pexif_fnumb:72,infocollect:[],client:[47,39],wxcheck:[129,85,130],thi:[2,45,120,3,104,74,84,6,123,161,88,89,90,140,92,12,54,72,57,134,128,23,24,63,52,28,144,108,29,69,34,112,71,153,156,40,159,42,109,164],setbackgroundcolour:118,exif_canonsi_isospe:72,"_do_noth":161,left:[112,139,64,28,145,12,45,89,142],sensingmethod:36,show_report:79,get_image_label:3,photo:[35,92,23,71,63,105,131,52,115,110,107,31,6,124,50,42,43,108,32,164],"0x117f39b0":[],thunderscan:36,gpx_file:11,get_reverse_transposit:112,exif_canoncs_selftim:72,yet:[127,144],languag:118,note:[2,92,45,71,72,120,66,112,52,153,28,40,84,42,89,69,164],prefix:45,ham:45,expos:119,"0x293f488":[],convert_from_str:72,extract_al:72,"1ntb":45,about:[45,130,76,85,67,144],box_nam:139,spread:144,"0x2b96a71a3140":[],ffffff:[40,78,33],save:[81,23,63,76,156,104,92,4,68,31,6,74,42,112],adress:69,"0x3459d70":[],rnk:158,applic:[144,69,150,120],petrazzo:12,which:[2,80,74,84,89,10,92,54,72,156,57,157,23,24,52,28,112,71,153,76,40,159,42,164],iptc_application2_capt:72,wai:[42,45,6,159],"0x18da5a8":[],exif_canonsi_0x001:72,lcd:71,exif_canoncs_imagestabil:72,background:[112,71,57,4,84,29,68,108],collapse_form:161,shadow:[68,108,4,52],getitemchildren:77,macosxdownload:[],"0x100249b0":[],"0x23b8938":[],to_python:54,specif:[119,23,74,66,112,6,159,144,89,69],deprec:45,put_bord:25,format_expr:157,manual:[144,36,120],vip:161,commandlinefield:54,"0x28e3230":[],"0x2bb3560":[],night:36,gettoplevelpar:29,pexif_aperturevalu:72,underli:80,www:[12,24,72,120,156,45,91],right:[45,54,112,64,28,12,29,139,69,142],old:[45,36,72],forumdisplai:144,"0xb7b9410":[],getdialog:[],dead:89,"0x2b6184b69140":[],intern:[42,54],sure:[144,156],flatten:[112,6],"0x2b2e9abd9140":[],is_editable_tag:72,on_brows:[1,44],"0xfd319b0":[],"0x19bb500":[],exif_photo_maxaperturevalu:72,exiftran:63,insensit:[12,91],bottom:[112,64,139,28,142],compressedbitsperpixel:36,"0xf4c3b18":[],image_s:112,subclass:54,label_color:49,printim:36,buffer:45,exif_sensingmethod:72,create_phatch_recent_thunar_act:93,foo:[45,24,72,80,157,144,89],file_extens:24,core:[0,1,31,78,124,2,46,79,158,82,83,84,6,154,86,125,50,51,8,90,127,53,92,94,55,131,15,16,96,100,98,110,18,116,105,133,20,21,135,62,23,63,25,52,64,27,28,65,145,108,30,7,107,68,32,33,101,35,71,38,153,115,40,48,160,42,43,117,164],plu:45,"0xb3580c8":[],uncompress:[128,36],open_inkscap:76,wsadkin:12,pil_jfif_dens:[],on_menu_file_export_droplet_recent_to_clipboard:140,olympus_decode_tag:36,on_menu_help_about:[79,140],copyrowlabel:29,repositori:69,freedekstop:74,post:159,obj:88,fillimag:139,on_menu_tools_execut:[79,140],exif_canoncs_displayapertur:72,slightli:12,surround:[45,24],"0x2cb02a8":[],exif_canoncs_0x0006:72,exif_canoncs_0x0000:72,"0x2b13d40":[],d65:36,commit:[144,156,69],exif_canoncs_0x0008:72,produc:108,fill_background_color:112,s2n_motorola:36,ppa:144,imagemodefield:54,exif_image_mak:72,difference1:2,difference2:2,"float":[11,42,112],encod:[3,103,95],bound:89,y_mirror:16,down:[57,112,12,36],creativ:36,set_item_imag:161,get_image_fil:[],wrap:[45,24,72,151,18,89],on_menu_tools_saf:[79,140],imageeffectfield:54,accordingli:6,"0x10a8ec08":[],"0xeb47578":[],support:[22,57,66],"0x1f68d70":[],transform:[112,116],"_open":74,why:140,avail:[12,36,120,112,66,45,89,69,91],exif_canonsi_0x001d:72,add_modul:90,splash:49,exif_canonsi_0x001a:72,showhead:[12,91],exif_canonsi_0x001c:72,createbitmapbutton:70,set_field_as_string_dirti:54,exif_makernote_focusmod:72,set_image_label:3,"0x2f4d398":[],form:[42,89,45,54,161],offer:159,forc:[119,127,23,96,112,79,124,42,43],"0xaf13b18":[],write_head:11,maxim:98,"0xf500398":[],solar:[68,133,4],pyexiv2:[162,72],"true":[1,45,3,79,80,74,83,6,49,89,10,127,12,54,72,96,157,60,91,137,23,24,140,25,142,65,33,112,36,76,40,42,162,118],is_fil:24,trkseg:11,reset:23,exif_canonsi_0x0014:72,exif_canonsi_0x0017:72,default_path:118,testbrows:[70,151,10],exif_canonsi_0x0010:72,exif_canonsi_0x0012:72,bugfix:69,exif_canonsi_0x0019:72,maximum:[68,100,45,112,4],"0x38ef6c8":[],tell:69,previous_log:45,utilities_dict:63,osnimport:45,unspecifi:45,"0x10d60a28":[],"0x2b57ac257140":[],more:[89,108,45,142,69],"0x38e2d70":[],pentax:36,featur:[109,12,45,69,91],exif_canon_0x001:72,semicolon:45,"abstract":88,mirror:[68,16,36,4],"0xc4b7410":[],onmousedown:57,exif_makernote_sharp:72,exist:[127,23,54,57,80,112,42,24],"0x1029c140":[],htmlcolortorgb:126,e231:45,afterwar:88,"0xed03398":[],ship:120,"0x3255320":[],triq:74,check:[137,23,24,3,79,144,45,42,69,112],save_to_cach:74,subjectdist:36,floor:71,stop_tag:36,excel:159,filesizefield:54,preserve_proport:110,enable_form_item:161,show_paint_messag:79,"0xfc15b90":[],tif:112,"0x2624230":[],"0x27cc500":[],node:11,disabledrag:77,get_right:139,"0x10de09b0":[],sliderctrl:118,stringio:[162,6],is_read:[],consid:[29,34],generate_token:45,import_act:23,exif_image_ycbcrposit:72,warn:[1,112,156,23,45,69],img2img:[22,132,58],update_head:80,create_phatch_inspect_nautilus_act:93,"0x1ec26c8":[],jacket:151,"0x112c3aa0":[],ignor:[1,23,54,72,79,65,83,12,45,144,91],"0x351b230":[],time:[0,11,104,120,3,38,57,98,48,154,50,89,108,69],push:69,"0xf1787d0":[],sharpen:0,backward:[45,159],"5kb":[54,80],get_relevant_:54,is_writable_format_iptc:162,"0x24f2d70":[],concept:89,skip:23,global:[119,90,45,157],setselectcallback:12,"0x2201488":[],onlistclick:[12,91],batterylevel:36,row:[1,12,15,3,80,29,34],hierarch:80,pil_1_1_6:[68,132,56],on_menu_edit_dis:[79,140],depend:[144,23,54,159],set_cell_valu:3,color_valu:2,flash:36,put_mask:55,put_alpha:112,on_menu_file_open:[79,140],move_form_selected_down:161,giga:54,getpencilbitmap:29,sourc:[53,137,45,54,63,72,2,3,96,128,74,112,144,162],string:[2,45,80,74,84,6,89,11,92,129,72,157,138,164,137,23,24,52,28,29,54,112,71,153,76,40,42,162,118],savechang:[],all_credit:134,"0xfb4bb90":[],"0x2125140":[],whether:[137,23,24,80,72],condit:[161,54],octob:[],show_dir_dialog:1,subprocess:[45,24],brows:24,is_www_fil:24,cool:36,exif_canoncs_focuscontinu:72,methodregist:[76,24],image_index:23,on_menu_tools_show_report:[79,140],ondrawsepar:142,gui:[23,54,79,68,61,69],exif_canon_0x001d:72,flush_metadata:[],spatialfrequencyrespons:36,set_tag:3,item:[1,45,139,161,72,37,79,118,12,123,144,59,91,77,10],"0x2613230":[],exif_customrend:72,team:[144,69],is_cell_edit:3,get_action_list_fil:79,exif_photo_interoperabilitytag:72,round:[68,40,4],upper:[157,112],"0x100cc578":[],hasactionlist:1,getrowmetadatatag:[],alfl:72,sign:[45,36,69],everytim:134,choicectrl:118,handle_gpx:11,corner:[40,112,57],"0x105d7a28":[],on_menu_file_export_droplet_actionlist:93,appear:[89,112,80],exif_canoncs_zoomsourcewidth:72,get_window:81,tag_nam:104,current:[66,112,54,72],ontagtext:[29,113],"0xfeceb18":[],deriv:76,dropdown:118,centerweightedaverag:36,boxsiz:118,gener:[23,120,15,96,128,74,45,123,89,112],"0x273e488":[],set_bin_path:24,"0xe1e0b18":[],"0x34de8c0":[],show_quest:79,"0x2ade1c8480b8":[],address:69,"0x295e1b8":[],create_phatch_nautilus_act:93,"0x32d1c20":[],updatethumb:29,"0xc0875f0":[],zexif_0x0128:72,"0x2b078c4640b8":[],invit:144,shift:[1,29,50],fix_quot:24,setpopupbitmap:57,infoexif:72,onselectcolor:118,on_menu_help_plugin:[79,140],behav:159,write_thumbdata:162,on_show_droplet:79,show_progress:[65,83,79],love:24,on_chang:118,extra:[112,45,24,118],tweak:63,modul:[53,23,120,74,128,159,144,89,90],prefer:[45,69],backtick:45,raise_error_out:[],nlyeardai:159,on_sel_chang:161,on_menu_file_export_thunar_inspector:93,start_tree_item:59,"0xd1cc0c8":[],"0x1054aa28":[],"_infocach":72,instal:[93,129,156,76,66,144,69],user_fonts_path:119,exif_makernot:72,regex:[],setmessag:1,get_as_str:54,wxbitmap_pil:9,d75:36,pexif_exifoffset:72,give:[112,81,76,144,89,69,118],visit:69,msn:57,live:45,"0x2212320":[],get_image_filenam:3,create_set:125,black:[119,112,46,38,154,48,20],generate_lay:112,exif_makernote_afpointus:72,singlebrows:[],update_exif_sourc:[],registr:24,exif_photo_exifvers:72,gettagselect:1,peopl:[144,120],claus:45,pylint:144,enhanc:109,on_left_down:161,templat:[68,53,136],timedict:11,"0x2b7896e140b8":[],exif_photo_makernot:72,"0x2b7c3d4c5140":[],unsafeerror:157,"0x2362560":[],pilconstantmixin:54,rotation_title_pars:54,get_form_select:161,"0x2b6271960140":[],focu:118,can:[45,120,80,6,123,88,89,10,128,54,72,156,57,24,63,42,108,69,112,71,76,157,159,144,162,118],"0x2ba334314140":[],get_bottom:139,progressdialog:1,zexif_0x9286:72,onenddrag:77,"0x2b4c81434140":[],subsectimeorigin:36,"0x10590b18":[],pixel_field:[42,54,78],append_form_by_label:161,datetime2:159,chip:36,readmetadata:72,addforc:118,cleanlist:57,getstralltop:89,topic:[88,89],crazi:72,abort:23,"0x19fd0c8":[],get_format_data:[112,74],"0x2f4bd70":[],exif_photo_focalplanexresolut:72,showlog:29,alwai:[42,45,72,120],exif_canonsi_0x0008:72,"0x27e5560":[],multipl:[89,157,45,24,128],exif_image_model:72,empty_bitmap:29,climixin:65,exif_canonsi_0x0000:72,get:[11,23,24,138,112,54,80,74,76,66,45,29,81,104,89,144,6,69,118],exif_canonsi_0x0006:72,publisherclass:89,"0xf634320":[],write:[45,78,120,115,65,6,54,162],pure:157,tile:[16,112,94],writeplugindialog:[1,44],setdynamicchoic:[12,91],mar:144,dialog:[1,23,151,113,37,79,121,155,68,29,67,61,144,118,44],exposuretim:36,max:157,exif_canoncs_images:72,ongridrowlabelrightclick:29,spot:36,ok_label:79,"0x271f050":76,tone_diff:139,pexif_filesourc:72,per:45,mac:[29,57,24,69],"0x1f4f230":[],mixin:[1,12,54,140,77,79,29,60,161,49,10],"0x3002230":[],date:[11,72,6,159,144,69],compound_stat:45,data:[1,23,105,53,128,80,74,59,144,112,123,134,68,89,70,147,34,44],grow:34,extract_info_exif:[],multispot:36,quot:24,explicit:[89,6],pexif_resolutionunit:72,exif_canoncs_0x0009:72,inform:[11,23,45,159],csvfilefield:54,combin:128,istableemptycel:34,write_readm:134,callabl:[89,157,72],exif_canonsi_0x000c:72,"0x2b261940b140":[],exif_canonsi_0x000a:72,"0xef5e2a8":[],michel:12,missing_whitespace_around_oper:45,gradual:57,"0x26d76c8":[],get_dat:50,lst:45,apply_act:23,"_global":[157,54],iptc:[36,162,6,164],line_opac:33,still:45,mainli:112,dynam:12,pipe:45,group:[144,45,36],"0xeecd320":161,pilcolortohtmlcolor:126,gtk:[155,69,29],save_check_mod:112,exif_canon_0x0013:72,platform:[99,57,22,24],window:[53,45,24,150,130,152,17,57,81,156,122,29,68,69],imagetreedialog:[1,44],"0x38d1398":[],enablebackgroundpaint:60,tiff:[76,112,74],mail:144,main:[137,128,156,79,57,65,69],files_dictionari:54,basenam:119,wxgpanel:59,time_shift:[68,50,4],exif_makernote_imagetyp:72,onpreview:[],"0xfc8bb18":[],filesourc:36,initi:[54,23,24,91],check_actionlist:23,answer:65,update_if_modifi:3,append_save_act:[65,83,79],sizectrl:118,now:[89,137],thumbnail:[112,24,130,74,6,68,162],get_icon:17,name:[119,45,79,80,83,6,88,128,54,72,17,103,23,161,66,93,69,71,75,5,76,157,144,163,118],create_phatch_recent_droplet:93,passnnn:45,config:[68,62,127],revers:[112,6],oliv:89,"0x219f6c8":[],round_al:40,zexif_0xa217:72,"0x2e45c08":[],zexif_0xa210:72,getitem:[1,142],input_dir:45,gettag:10,"0x3586398":[],testinfo:[],exif_focalplaneresolutionunit:72,wxicon:[155,128],replac:[112,45,24,95],process_fil:[36,72],gaussian:108,subjectarea:36,next_ifd:36,unlock:6,get_info:[],"1nb":45,year:[157,23,159,72],happen:89,filesizectrl:118,"0x2090b18":[],positivefloatfield:54,shown:120,calculate_loc:112,space:[45,24,142],"0x27f1320":[],profil:69,"0x38f3488":[],onpaint:49,exif_canoncs_qu:72,dutch:118,write_thumbnail:[],"0x1e7f398":[],boundingboxcontain:139,info_to_dump:6,"0x24c2500":[],get_head:80,state:[54,37,79,60,161,10],onsiz:10,autocompletetextctrl:[118,91],mute_str:45,onfilt:10,taget:11,exif_canon_ownernam:72,"byte":[112,54,74],"0x1efb140":[],get_photo:[23,6],setdefault:123,split_var:72,wrong:120,refus:156,thing:26,place:[112,80,74,123,124,69],dpi:[54,72],charfield:54,unborn:[],formatdescript:72,exif_makernote_focustyp:72,lambda:[157,45],oper:[23,45,63,138,159],info:[78,74,6,124,50,92,54,72,15,18,134,21,23,63,25,28,144,145,108,68,69,147,33,153,155,76,40,160,42,43],fill_img:139,showbutton:1,directli:[54,45,36,74],update_s:6,linuxfontdirectori:66,"0x27e98c0":[],"0x2afa7d0":[],"0x2683488":[],yourself:69,child_index:83,pexif_exifimagewidth:72,canon_decode_tag:36,submit:[156,45,120],get_flattened_imag:6,open:[1,23,24,72,76,74,162,65,83,45,6,112],on_tree_item_right_click:1,size:[70,12,78,72,25,96,47,57,80,74,39,76,40,112,6,81,21,153,142,118],"0x31f4560":[],given:[112,24,72,66,159,89,161,78],width:[1,72,79,80,145,108,29,59],exif_makernote_longfocallengthoflensinfocalunit:72,exif_canoncs_0x002d:72,exif_photo_exposurebiasvalu:72,exif_canoncs_0x002b:72,zexif_0x0132:72,setmatchfunct:12,necessarili:80,averag:36,get_form:161,white:[36,46,38,154,48,20],on_menu_help_websit:[79,140],copycellvalu:29,editor:45,"0x10d419b0":[],especi:57,copi:[127,23,7,138,27,74,158,82,100,112,4,124,68,69],set_choic:54,only_actions_with_tag:79,on_list_item_activ:59,ctrl_factori:118,github:45,mostli:[112,23],imports_on_separate_lin:45,than:[2,45,54,74,69],png:[76,128,24,72,74],wide:108,show_statu:[65,79],blenderobjectfield:42,"0x1e47140":[],phototim:11,redefinit:144,subexpress:157,getgrid:[70,29,34],exif_canoncs_0x0029:72,posit:[11,112,78,57,108,6,159],exif_canoncs_0x0027:72,tiffimageplugin:[149,132,56],onscrol:118,browser:[1,70,29,151,10],on_menu_tools_python_shel:[79,140],findclosestimageandtonediff:139,unsubscribe_al:88,"_local":[157,54],look:[144,45,72],iconmixin:1,ani:[11,128,24,72,120,57,156,144,89,69,118],dash:24,create_droplet:163,deletecel:29,"0x1018ec80":[],"0xad40a28":[],portrait:36,on_menu_file_export_droplet_inspector:93,notimplementederror:118,"0x100cc5f0":[],jcrochol:45,arglist:45,gustavo:159,squar:112,scan_info:72,"0x3875230":[],destroi:57,centimet:36,"0x1055dc08":36,ongridcellchang:29,reset_geometri:72,testcontentgrid:70,other:[45,80,89,91,53,92,128,54,72,57,132,139,106,26,66,12,68,69,112,36,159,144,118],put_contour:25,offset_x:145,take:[89,81],pexif_maxaperturevalu:72,"0x10808cf8":[],"0xfc839b0":[],noth:89,channel:[112,117],"0x241c518":[],"0x1f74368":[],begin:89,fix_python_path:127,shade:36,normal:[54,128,36,74],multipli:159,whole:80,topic2:89,compress:[76,128,36,72],"0xb14f230":[],set_glob:54,exif_canoncs_drivemod:72,fill_section_s:139,on_menu_file_save_a:[79,140],get_siz:[112,54],ondrop:29,"0x284f560":[],icon:[1,47,70,26,75,155,93,29,163,79,142],renam:[23,24,4,107,68,43],actionlist:[79,65,93,23],raise_error_not_found:54,later:120,set_key_label:3,wx_imag:9,pexif_focalplanexresolut:72,runtim:128,gettableattr:34,verify_imag:[76,23],w291:45,"0x1d85140":[],get_modul:[],show:[1,92,23,54,2,153,52,57,28,40,84,45,49,42,71,164],"0xd258050":[],"0xf7782a8":[],tb_caption:57,bright:[68,38,48,154,4],permiss:23,hack:112,threshold:[36,133],"0xc64f410":[],label:[1,2,79,74,84,49,92,93,54,57,164,103,23,52,142,28,161,29,71,153,40,59,42,44,118],pull:69,assert_transpar:6,filefield:54,xml:11,on_menu_file_export_droplet_inspector_to_clipboard:140,onli:[2,31,104,74,84,6,89,11,92,54,57,23,24,52,28,144,66,29,69,34,112,71,153,40,45,42,164,118],explicitli:[66,6,72],ratio:[21,36],value_as_str:[161,54],passnndef:45,activ:69,getattr:[29,34],dict:[11,23,36,150,72,80,76,157,45,6,123,139,90,112],datestr:11,vlist:[1,142,151,85,130],"0x10236a28":[],hello_world:24,is_protected_actionlist:79,robb:89,"0x2b87aea7c140":[],overwritten:[128,161,142,65,83,42,10],getmessagecount:89,on_menu_tools_browse_library_us:[79,140],reset_orient:[],"0x1e3c398":[],exif_makernote_easyshootingmod:72,repr:45,get_log:6,ssh:69,getpaintmessag:[29,60],rotate_exif:6,gettoasterboxwindow:57,exif_canonsi_0x0011:72,requir:[42,89,54,72,74],attr:34,"0xfe899b0":[],save_actionlist:23,consist:80,delete_tag:[68,4,164],artist:36,pexif_focalplaneyresolut:72,"0x10edcb18":[],"0x10de0a28":[],median:[68,82,4],fix_exif:6,get_format_filenam:112,autocompletedictionaryfilectrl:118,"0x2b3261160140":[],"0xf707cf8":[],where:[112,24,23,45,159,123],whoami:69,summari:142,wiki:[],"0xe7732a8":[],"0x2afd2b3b5140":[],check_font:127,"_get_source_dynam":[],box:[1,112,54,151,142,23,144,71],exif_canonsi_0x0018:72,set_icon:17,hierarchi:[89,80],border_width:28,"0x1018ecf8":[],set_as_str:54,"0x2ede140":[],htmlcolortorgba:126,held:89,exif_canoncs_maxapertur:72,exif_canonsi_0x000b:72,apply_action_to_photo:23,imtool:[68,112,6,130,162],listinfo:144,python_3000_raise_comma:45,between:[11,45,142,118],"import":[2,45,80,74,84,89,42,90,92,72,134,23,24,52,28,144,69,71,153,40,161,164],exif_canoncs_zoomtargetwidth:72,setpopuptextfont:57,across:23,"0xeeda398":[],maskfilefield:42,e2interact:[],parent:[91,1,12,140,142,37,151,26,57,59,83,118,29,70,67,161,49,44,34,10],"0xfd9f320":[],comp:144,screen:[69,57,81],"0x33eb230":[],flush_log:23,closingstyl:57,get_key_amount:3,canvas_height:15,exif_usercom:72,tue:144,setmultiplechoic:12,"0xfeceaa0":[],blenderobject:71,booleanfield:54,region:112,pexif_mak:72,dump_ifd:36,previous_indent_level:45,"0x2ee96c8":[],improv:144,"0x1dff6c8":[],set_new_ton:139,on_description_text:79,pox:144,rescal:161,"0x10edcaa0":[],get_popup_pos_offset_s:161,set_data:80,"0x3895320":[],s2n_intel:36,colon:45,use_which:24,cvapattern:36,setminvers:118,"0x2b4d8c0":[],jpegutil:[],west:11,invert:[68,112,8,133,4],invers:112,imagereadfilectrl:118,addit:[89,45],zexif_0x010f:72,valueerror:[157,45],highscor:89,skew_x:145,get_image_info:23,background_opac:[51,153],pexif_exifimageheight:72,resolut:54,blank:45,skew_i:145,exif_canonsi_afpointus:72,enable_menu:79,rememb:89,chkfontpath:66,get_lossless_filenam:42,unreleas:144,those:89,python_3000_not_equ:45,"case":[119,23,54,72,12,6,42,89,112,45,91],testfield:54,thumb_from_fil:[],build_tokens_lin:45,"0x3911c20":[],foldernam:[23,72],cfarepeatpatterndim:36,rtype:[112,28],"0x1099ccf8":[],invok:[89,45,29],vertical_offset:[112,94,18,84,78,108],cach:[119,31,74,124,50,92,55,72,131,96,107,23,24,63,105,52,108,110,32,101,35,112,71,153,115,40,42,43,164],login:69,exif_photo_fnumb:72,pil_jfif:[],booleanctrl:118,"0x1050e9b0":[],is_save_not_ok:79,getitemfil:37,"0x11497aa0":[],ctrl:[161,1,29,118],canon:127,"0xf8742a8":[],destin:112,onbtdynamicchoic:12,blah:45,endswith:[],"0x21ce9b0":[],eras:65,"0x117879b0":[],"__init__":[89,54],parent_max:[1,83,79,65],colorstr:126,blank_lin:45,develop:[144,53,69,120],author:89,is_field_select:161,back_color:[40,145],same:[2,92,45,24,71,72,120,52,153,28,144,40,84,159,42,89,112,164],"0x10eeca28":[],"0x2a982a8":[],binari:[45,24],scrolledwindow:[],html:[74,120],pad:36,graphic:[47,85,130],document:[144,53,45,104,120],week:159,finish:24,xy_mirror:16,"0xc1745f0":[],screenshot:[85,81,130],utf8:[103,95],safer:[],xpauthor:36,select_color_bi:2,missing_whitespac:45,"0x1088cc08":[],extern:[35,76],suffix:[24,37],on_menu_view_collapse_automat:[79,140],canvas_act:23,appropri:128,get_scal:16,"0x1e7f2a8":[],displayhook:143,pexif_focallength:72,ccw:[36,72],config_path:[127,125],is_cell_empti:3,pep8:[53,45,156,132,68,69],"0x2ba5bb5fa140":[],model:[0,2,31,78,46,158,82,84,154,124,50,51,8,92,94,55,131,15,16,100,98,110,18,116,105,133,20,21,135,62,23,63,25,52,64,27,28,107,145,108,30,7,68,71,32,33,101,35,36,38,153,115,40,48,160,42,43,117,164],reward:120,comboctrl:118,exif_canoncs_aeset:72,gradientcolour:142,nodelist:11,enabledrag:77,execut:[35,23,24,79,157,89],when:[2,12,24,72,112,79,89,144,45,29,124,43,42,6,69,91],rest:45,bitmap:[79,49,47,57],open_xcf:76,log_error:23,"0x1113fa28":[],aspect:72,kilo:54,user_fonts_cache_path:119,"0x2502d40":[],interoperabilityoffset:36,speed:57,cmp_img:139,"0x110d5a28":[],is_writable_format_exif:162,form_factori:161,"0x3255230":[],"0xef94398":[],except:[23,24,72,157,45,6,89,54,112,118],littl:89,desktop:[112,130,72,73,99,68,42,163],blog:144,color:[2,112,78,130,46,142,126,28,4,68,84,29,30,118,20,36,108,8,32,117,60],set_sourc:72,"0x2411a28":[],overview:69,write_metadata:162,focalplaneresolutionunit:36,"0xe64d320":[],real:45,around:[45,25,72,18,108,112],nameconnector:12,read:[29,23,6,162],dialogsmixin:79,"0xfab3398":[],physical_lin:45,dark:108,content_ctrl_keyw:[1,70,29,151,10],"0x30d3500":[],grid:[70,4,29,68,33,34],mon:159,setwindowshap:49,on_button_log:[1,44],world:[157,24,80,72],part:[45,120],target_format:[162,6],tb_simpl:57,folderpath:23,whitespac:45,getcont:10,win32fontdirectori:66,set_form_field_valu:[161,54],"0x2b19304dd0b8":[],shutter:36,benefit:128,writeabl:[],either:[112,45],on_select:161,output:[65,128,24,63,76],manag:[144,89,120,53],settagdata:[],get_list_fil:59,unknowntypeerror:72,draw:[112,78,28,25,116],singlefram:[],watermarkfilefield:42,slider:54,all_data:29,refreshlist:1,imaget:[68,3,130],deselect:37,slice:45,colorspac:36,exif:[11,137,112,36,72,132,6,68,162,164],getpopuptext:57,definit:45,landscap:36,bitmap_open:47,scrolldown:57,exit:[65,24],"0xec9d320":[],selftest:45,leapdai:159,is_image_edit:3,refer:[89,112,23,6,128],"0x22354d0":[],epson:36,droplet_label_format:79,inserttaginactionlist:1,check_al:45,image_to_dict:6,ration:[11,137,72],is_writeable_not_exif_tag:72,debug:36,"0x1eb5d70":[],artid:39,force_thumb:29,"0xa6c0140":[],image2:[],image1:[],bazaar:[53,69,156,120],xresolut:36,set_saf:54,comparison:45,deflat:36,patherror:23,exif_canon_0x0028:72,focallengthin35mmfilm:36,errordialog:[1,44],exif_canon_0x0027:72,exif_canon_0x0024:72,exif_canon_0x0025:72,exif_canon_0x0022:72,exif_canon_0x0023:72,getcolorasstr:118,get_node_valu:11,degre:[11,131],exif_makernote_unknown:72,stani:[23,72,120,96,12,144,112],checkempti:10,onok:151,routin:[42,54],get_thumbdata:[],rotate_270:112,exif_photo_customrend:72,resampl:145,unregist:24,windowstyl:57,exif_exifimagelength:72,create_thunar_act:75,strip:45,to_loc:86,mark:[112,84,94,128],your:[45,120,76,156,144,89,69],paint_object:60,open_image_exif_thumb:76,has_form:161,multichoic:[12,91],movechilddown:77,onlistdclick:12,overwrit:[112,54,63,23,124,42,43],contentbrows:[1,151],start:[23,24,45,69],missing_newlin:45,interfac:[0,2,78,46,158,82,84,154,124,50,51,8,92,54,55,131,15,16,100,98,18,116,105,133,20,21,135,63,25,52,27,28,107,145,108,30,7,110,32,33,101,35,71,38,153,115,40,48,160,42,43,164,117,144],low:[144,36],lot:69,clear_cach:72,pexif_flashpixvers:72,test_suit:69,"0xbd20b18":[],enough:[108,74],tupl:[23,24,126,80,74,108,6,159,89,54,112],bundl:69,floatsliderfield:54,satur:[68,38,36,4],exif_makernote_byteord:72,extend_var:157,denomin:157,indent_level:45,notat:89,on_menu_file_librari:[],dirti:[161,6],on_help:[1,44],possibl:[77,112,54,72,104,45],"default":[127,1,45,54,79,80,128,42,43,142],positivenonzerofloatfield:54,highlightfilefield:42,svg:163,setasfiledroptarget:49,"0x2b9136956140":[],fillord:36,expect:[89,54,159],"0xca6b5f0":[],scanner:36,creat:[127,137,23,24,72,57,144,42,89,69],yeardai:159,certain:[112,104,54,74,120],exif_makernote_firmwarevers:72,unregister_method:24,strongli:45,extract_oth:[],intro:26,file:[1,45,3,79,80,74,83,6,11,128,54,72,134,23,24,63,65,69,112,36,37,75,76,144,162],proport:118,setpopupscrollspe:57,getbrows:10,film:36,"0x30d3488":[],denot:89,assert_writ:6,"0x117f3a28":[],zexif_0x0112:72,imga3345:112,image_test_info:54,x_mirror:16,orient:[112,36,72,94,84,78,118],field:[0,2,78,46,158,82,84,154,124,161,50,51,8,92,54,55,131,15,16,100,98,18,116,105,133,20,21,135,63,25,52,27,28,107,145,108,30,7,110,32,33,101,35,71,38,153,115,40,48,160,42,43,164,117,118],valid:[24,23,54,76,157,42,89],show_execute_dialog:[65,83,79],"0x10590b90":[],denom:106,you:[45,54,120,104,57,128,144,112,156,159,88,89,69],datatupl:80,"0x2af4c8776140":[],on_filter_text:59,"0x2acad7843140":[],maximum_line_length:45,sequenc:[112,80],org:[144,156,45],docstr:45,info_not_fil:23,track:[89,72],e262:45,e261:45,"0x2d26050":[],icon_s:[161,118,142,37],reduc:[112,36,117],nikon:36,"0xf9c8d70":[],directori:[66,45],"0xba2f5f0":[],mask:[112,54,55,4,128,68,24],"0x107d7c80":[],geotag:[68,105,4],to_str:54,mimic:118,zexif_0x011a:72,findfont:66,zexif_0x011b:72,init_error_log_fil:23,is_writable_tag:72,selectcallback:[12,91],offsetmixin:[42,78],cpu:26,show_files_messag:[65,83,79],all:[119,1,45,120,3,104,80,6,89,72,57,133,23,24,64,142,29,30,69,34,112,144,118],pexif_exifvers:72,forget:[89,120],on_menu_edit_en:[79,140],get_field_str:54,infofil:72,month:[157,23,159,72],start_list_item:59,"0x1f4f320":[],code:[53,45,54,120,104,156,128,144,24,69],set_max:83,"0x107f1b18":[],"0xe537398":[],alt:[1,29],faster:74,children:80,"0x2f56fc8":[],import_form:161,"0x2ad7a875c140":[],exposureprogram:36,pexif_datetim:72,seticons:142,open_method:[],"0x1efb230":[],"0x2054398":[],program:[24,93,36,128,45,54,69],present:[2,92,71,52,153,28,40,84,159,42,24,164],is_field:161,fax:36,construct_command:71,"0x2b0e050":[],"_core":[79,140,118],fals:[119,1,79,80,74,6,49,127,54,72,137,23,24,140,108,29,112,36,37,153,157,42],get_last_form:161,util:63,getitemtag:10,gettreelabel:[59,44],"0xf86b398":[],"0x209a050":[],veri:[2,92,71,52,153,28,161,40,84,42,89,69,164],transpose_exif:112,exception_to_unicod:95,set_report:79,"0x1f2c398":[],verify_image_without_pil:76,show_log:79,round_corn:[],list:[119,2,45,104,80,84,89,127,92,12,54,72,57,157,139,23,24,63,52,28,144,66,112,71,153,40,42,164,118],"0x1a86518":[],exif_canoncs_0x0026:72,registryappl:150,adjust:[12,48,154,38],update_column:29,user_nam:69,align:45,"0x2bc1a28":[],browse_fil:1,"0x3448398":[],on_tree_end_drag:79,"0x20c18c0":[],searchctrl:109,on_menu_tools_image_inspector:[79,140],past:112,"0xfd378c0":[],rate:36,design:89,exif_photo_pixelxdimens:[6,72],"0x27cc488":[],listbox:[12,91],dunn:89,"0x1fcac20":[],cursor:12,what:[144,89,112,12,54],abc:45,action_nam:104,"_composedctrl":118,sum:157,abl:[89,57,156],iseditablecel:29,on_menu_file_histori:79,"_ctrlchoic":118,version:[45,24,120,57,129,144,54,109,102,68,89,22,69,147],rgba:112,usebestvisu:140,handle_trkseg:11,"0x2fd5a28":[],dialogsinspector:[29,85,113,130],tree_label:161,exif_transpos:[],full:[80,120],hash:74,append_form:161,"_ctrl":118,"5gb":[],proper:24,"0xfdd2b18":[],behaviour:63,middl:112,arialblack:119,"2kb":80,trunk:144,therest:[12,91],method:[2,45,79,84,6,49,88,89,10,92,93,54,72,131,57,21,23,24,63,52,28,161,29,94,112,71,153,40,42,164,118],import_set:1,subjectdistancerang:36,"0x2af5398":[],valu:[1,45,78,3,79,80,82,83,6,123,50,91,11,12,54,72,15,100,18,133,21,128,23,139,161,25,26,27,28,143,65,145,108,29,7,71,33,34,112,36,37,153,115,40,158,160,42,43,118],registerstyl:118,extract_info_geometri:[],"0x10d41a28":[],search:[11,53,12],getsmalldnarrowimag:12,sender:[88,89],sgilog:36,pexif_compressedbitsperpixel:72,"0x2b2b518":[],field_item:161,"__setitem__":6,fix_filenam:95,pil_color:126,doctest:[45,104,69],action:[0,1,31,78,2,46,79,4,158,82,83,84,154,124,161,50,51,8,127,53,92,54,55,131,15,16,52,100,98,110,18,116,105,133,20,21,94,135,136,23,63,25,141,64,27,28,65,145,108,30,7,107,68,71,32,33,101,35,36,38,153,115,40,48,104,160,42,43,117,164],"0x2b01b68e2140":[],"0x2b3369982140":[],"0x2b016cff1140":[],"0x2f70848":[],via:[89,45,128],"0x1a11d40":[],find_check:45,"0xe28d2a8":[],whitebal:36,filenam:[119,1,45,3,79,80,74,83,6,49,140,128,54,72,23,24,63,29,81,112,76,59,42,162],settablevalu:34,onadd:[29,113],rounding_typ:40,"0x2694e60":[],pygridcellrender:[],select:[2,12,37,104,45,29],exif_image_exifoffset:72,exif_canoncs_isospe:72,eval_restrict:157,get_field_s:54,stdout:[11,65,24],regist:[122,24,130,155,89,111],two:[45,36,104,112,6,159,89,54],"0x3522320":[],oecf:36,sendmessag:89,exif_canon_0x0019:72,exif_canon_0x0018:72,"0x2065d70":[],flat:80,exif_makernote_flashbia:72,desir:46,fill_fold:[15,139],exif_photo_digitalzoomratio:72,ital:119,field_offset:36,site:36,flag:[128,118],"0xfe05a28":[],particular:89,contentbox:151,issubscrib:89,exif_canon_0x001c:72,none:[119,1,45,78,77,3,79,80,74,162,125,83,84,6,123,49,89,10,11,92,12,54,55,95,57,157,140,18,60,91,139,127,23,24,63,64,161,26,2,65,66,108,29,94,33,101,70,112,36,72,153,155,76,40,59,159,160,42,118,44],set_font_cach:119,exif_canon_0x001f:72,hour:[157,23,159,72],"0x185c050":[],readonlydict:[23,123],wxart_other_c:47,getnumberrow:[29,34],dev:[156,45,69],vlistbox:142,den:36,verify_dcraw:76,abandon:112,def:[89,45,54],exif_canoncs_focustyp:72,settitlefilenam:29,put_highlight:101,oncopi:[],scan:72,"0xf8f7a28":[],share:[89,120],accept:[144,157,69,104],sphere:71,minimum:[68,112,7,4],save_window:81,explor:69,sharp:36,pexif_datetimedigit:72,exif_makernote_iso:72,inspector:[70,29,85,34,130],reverse_transl:[68,130,148],mai:[89,45,57,159],newlin:45,"0xfb4bc08":[],anoth:[112,45,69],labelfilectrl:118,subsectimedigit:36,get_paths_and_set:23,"0x102369b0":[],exif_maxaperturevalu:72,simpl:[89,45,120],get_tim:3,"0x2d0d398":[],augment:45,referenc:89,export_set:1,get_key_label:3,drawtext:57,exif_canoncs_0x001:72,on_menu_file_sav:[79,140],reflect:[68,153,36,4],catalog:128,okai:45,"0x115fb9b0":[],"0x3875140":[],method_regist:76,"short":72,font_dictionari:119,toggle_form_item:161,exif_jpegthumbnail:72,npass:45,trilinear:36,caus:89,callback:89,decoratornndef:45,exposureindex:36,check_libtiff:76,"0x1f12230":[],"0x103889b0":[],exif_exposuremod:72,pil_wximag:9,egg:45,ontag:10,fnumber:36,checkbox:118,help:[144,104],set_field:54,"0x24c2488":[],artwork:144,"0x10248c08":[],soon:69,"0x1a1b488":[],load_locale_onli:127,e251:45,through:112,set_var:72,treedragdrop:[161,77,85,130],file_list:79,e701:45,e702:45,paramet:[157,137,23,24,138,72,54,57,80,74,162,76,108,45,29,159,89,42,6,90,112],style:[1,12,36,72,53,156,79,57,118,45,29,93,70,91],arial:119,example_dict_data:59,showerror:29,"0x9645f50":[],combobox:118,get_command_line_arg:63,identity_color:112,complex:45,thumb_data:[],skip_existing_imag:23,is_key_edit:3,forcedboxs:118,might:[24,69,6,72,120],alter:15,"0x2613320":[],"0x2ada11575140":[],foon:45,good:89,"return":[2,45,3,80,74,84,6,89,11,92,128,54,72,57,157,138,137,23,24,52,28,66,29,112,71,153,76,40,42,162,164],"0x33eb140":[],"0x2181398":[],untransl:118,set_bottom:139,exif_image_exiftag:72,imagetransposefield:54,create_rounded_rectangl:40,"0x1bd29b0":[],srgb:36,thereof:89,nautilusextens:[73,103,130],compound:45,prefix_dict:[],convert_save_mode_by_format:112,"0x2791230":[],"0x268d908":[],complain:120,bigger:[110,2],get_warning_statist:45,has_alpha:112,set_as_string_dirti:54,"0x2e34230":[],imagereadfilefield:54,highlight_mask:24,level:45,ifd:36,token:45,alreadi:[42,144,112,57,159],onitemselect:37,found:[23,24,159],unicod:[68,127,112,130,95],pow:157,"0x1067b9b0":[],truncat:37,pilcolortorgb:126,folderctrl:118,pexif_makernot:72,flick:12,hard:36,tb_complex:57,functor:89,realli:[45,57,80],"0xf93fcf8":[],connect:161,losslesssaveutilitymixin:63,testcontentbox:151,img2pi:[22,132,128],"0x2ac68e63d140":[],event:[1,77,79,83,88,89,91,12,130,57,60,10,140,26,93,109,67,68,34,70,151,113,37,59,161,29,118,44],doc_test:104,positivenonzerointegerfield:54,closest:11,exif_thumbnail_compress:72,exif_datetimedigit:72,setsiz:[],unknown:[89,36,72],publish:89,nautilu:69,testfieldmixin:54,add_kei:3,sparingli:45,pexif_xresolut:72,foreground:[112,57],isempti:[1,151,70,79,29,10],proxi:89,xpcomment:36,focallength:36,drop_shadow:108,eddi:12,expand_var:72,key_cod:[1,29],on_clos:[79,26],base:[0,1,42,3,6,7,8,10,12,15,16,18,20,21,23,25,26,27,28,29,30,31,32,33,34,35,37,38,39,40,59,144,43,44,45,46,48,49,50,51,54,55,57,63,64,65,67,70,71,2,78,79,80,82,83,84,89,91,92,94,72,98,100,105,107,108,109,110,112,113,115,116,117,118,123,124,150,131,133,135,139,140,52,142,145,101,151,153,154,157,158,159,160,161,164],row_line_width:33,ask:[144,65,23,29],phatch:[2,17,120,104,84,127,53,92,12,54,72,96,23,52,28,42,93,69,71,153,156,40,144,164],fridai:23,exif_str:137,rect:[142,81],basi:89,thrown:144,onopen:29,filesdialog:[1,44],thumb_ifd:36,update_index:83,english:118,getwildcard:118,omit:45,"0xf707c80":[],get_pil:6,close_popup:161,create_phatch_droplet:93,"0x2aadd2160140":[],"0x1ea4398":[],set_field_as_str:54,"0x22fc9b0":[],"0x2e34140":[],lifetim:89,do_non_blah_th:45,assign:[45,69],ubuntuforum:144,feed:[45,72],flood:69,singleton:89,show_progress_error:[65,83,79],w391:45,notifi:[68,89,57,155,130],prevent:[144,45,69],horizontal_offset:[112,94,18,84,78,108],number:[11,45,108,159,144,117],set_orient:72,sometim:45,"0x10102398":[],"0xe7982a8":[],initdata:59,"0x33a02a8":[],done:[42,159,118],midton:46,get_format:[92,112],stabl:69,"0x31eb938":[],gpl:120,differ:[112,54,74,6,159,144,89,69],imagetypefield:54,root_fonts_path:119,show_info:[65,79],interact:54,changerowvalu:29,least:[89,45,69],"0x31c89b0":[],vlisttag:[1,151,85,130],"0x3628d70":[],gpx:11,expand:[51,45,72,160],show_preview:59,exif_canon_modelid:72,illeg:45,dt2:159,dt1:159,colnam:[12,91],"0xf75cc08":[],store:[42,112,23,54],unicodeencodeerror:112,image_to:112,option:[0,1,45,78,2,46,104,74,158,125,82,84,6,154,124,50,89,51,8,92,128,54,55,131,15,16,100,98,59,18,116,105,133,20,21,135,23,24,63,25,52,64,27,28,107,145,108,30,7,110,94,31,69,32,33,101,35,112,71,38,153,115,76,40,48,160,42,43,164,117,44],behind:108,exif_photo_datetimeorigin:72,"0xb9a6488":[],ask_yes_no:65,thunar_exist:75,myclass:45,"_infopilmetadata":72,showpath:37,center:[21,36,160],exposur:36,kind:[54,29,34],"0x105aaa28":[],contrari:89,get_ton:139,remot:[112,24],jen:74,remov:[112,24,45,29,144,6,34],get_index:161,meth2:89,horizont:[112,36],bridg:118,"0x105d7aa0":[],on_menu_file_export_actionlist_to_clipboard:[79,140],str:[24,36,72,157,42,54],exif_canon_0x0003:72,jpeginterchangeformat:36,"0x2b9a88399140":[],grei:48,"0xf109398":[],trkpt:11,set_key_valu:3,img:139,on_menu_tools_browse_system_librari:140,packag:[144,120],"0x9836a28":[],sport:89,show_fram:79,"0xfccca28":[],decoupl:63,"_pyexiv2":[68,162,130],"0x19f3398":[],lib:[119,1,77,151,3,47,80,74,162,5,138,123,49,88,89,126,9,142,10,11,53,12,54,95,137,60,150,79,91,103,23,24,140,26,143,161,29,81,67,68,129,34,130,70,112,72,113,37,83,155,76,157,59,42,109,118,163,44],on_menu_file_export_nautilus_rec:93,"0x2afa938":[],self:[93,54,29,88,89,118],"0x305d398":[],presumpt:34,also:[1,45,54,104,128,156,112,159,89,24,69],without:[112,23,54,128,160],build:[144,45,159],"0x211e938":[],"0xb69f488":[],get_info_origin:[],"0x20c19b0":[],tool:144,disable_cach:[],compat:[45,130,120,109,85,161,126],pipelin:104,distribut:[156,69,57],test:[53,12,54,72,120,112,104,57,74,156,45,144,89,69],ongridcollabelrightclick:29,interpol:[76,54],mixtur:45,blank_lines_before_com:45,most:[89,45,27,74],plai:[57,123],is_readable_format:162,createrowlabelmenu:[1,29],win32installedfont:66,"0x2b9a175710b8":[],exifitpcfield:54,ycbcrposit:36,"0xffde398":[],bzr:[144,69,104],convert_mod:[68,32,4],"0x1d0a230":[],clear:[6,123,72],datetime1:159,textctrlautocomplet:[22,12,132,91],ext:[92,112,162],"0x318e8c0":[],exp:89,append_form_by_label_to_select:161,list_ifd:36,usual:[89,45,54],pexif_datetimeorigin:72,wxpil:[9,130,85],affect:89,"0xedfcc80":[],cdf:12,init_dictionari:[42,54],"0x3225938":[],"0x2796230":[],"0x2ea2d70":[],setattrreadonli:34,openimag:[68,76,29,130],datadict:80,trailing_whitespac:45,distanc:18,particularli:89,font:[119,54,130,57,66,68,78],fine:36,exif_fnumb:72,blender:[68,71,24,150,4],surd:[68,106,132],cell:[29,80],copyright:[53,12,36,72,120,159,144,89,69],show_image_tre:[65,79],"0x2ab7c908b140":[],"0x35862a8":[],readfilefield:54,factor:40,exif_canonsi_0x001f:72,it8bl:36,"0x1e99398":[],nosetest:69,unus:[144,112],palett:112,onlistcolclick:12,express:[42,157,54,72],openmixin:[59,29],obtain:[112,6,72,162],on_menu_edit_down:[79,140],extension_to_image_format:162,zexif_0x0213:72,treshold:133,gpsinfo:36,e241:45,e242:45,file_stat:74,imagedictionaryfield:[42,54],rowsperstrip:36,warmup:46,create_popup:[161,118],filter_image_info:23,whitespace_before_inline_com:45,"0x1c38560":[],zexif_0x8769:72,print_benchmark:45,common:[68,66,27,4],imagedescript:36,unregister_extens:24,enableimag:[],nowher:144,"0xfd31a28":[],exif_componentsconfigur:72,is_need:74,set:[1,45,79,125,110,83,31,6,124,89,50,91,92,12,54,72,131,57,107,62,23,24,63,105,52,65,66,68,32,35,112,71,115,157,159,42,43,164],"0x38b3488":[],getmod:29,file_out:24,invis:54,see:[69,54,6,89,162,118],"0x2abea7cd6140":[],arg:[1,45,79,6,89,10,128,54,24,140,142,65,93,109,67,34,70,112,151,113,39,59,29,44],close:[1,24,65,83,6,118],exif_makernote_tag_0x0024:72,contour:[68,25,4],"0x2b2ebbde20b8":[],onrightdown:34,"0x21ce8c0":[],scenecapturetyp:36,create_phatch_inspect_thunar_act:93,someth:[89,45,69],"0x3596c20":[],final_img:139,acceptance_test:104,exif_canonsi_0x001b:72,treemixin:[161,140],won:159,exif_canon_0x0000:72,"0xf4c3b90":[],cur_fill_box:139,actiondialog:1,popup:[12,130,57,29,85,161,91,118],imagemagick:[68,76,24,4,52],scale_method:153,numer:157,"0x10e64b18":[],on_menu_tools_browse_user_librari:140,"0x28bd500":[],lowercas:157,pixelfield:54,istagcel:[],"0x1e66518":[],tabs_or_spac:45,both:[144,104,57],onleftup:49,last:[144,45,69],opac:[112,94,25,153,28,145,40,84,160,126,101],mega:54,listdata:[68,80,130],on_menu_edit_up:[79,140],documentnam:36,exif_colorspac:72,"0x107f1b90":[],tbstyle:57,"0x26a9398":157,"0x2791320":[],oserror:24,pdf:120,exif_canon_focallength:72,"0x1e3c2a8":[],load:[54,45,6,128,74],"0x24fd050":[],tabs_obsolet:45,simpli:12,get_command_lin:63,point:12,format:[11,137,112,72,128,74,157,45,6,162],"0x1d63488":[],set_filt:[3,80],header:[59,1,79,80,44],deliv:128,param:112,"0x1fe8f50":[],linux:[53,103,93,130,73,75,57,74,66,87,68,69,163],wxgaboutdialog:67,is_form_select:161,checkboard:[112,74,37],vertic:[112,36,142],pngimageplugin:74,"0x2cc0e60":[],col_line_width:33,devic:45,whitespace_around_comma:45,process_opt:45,exif_canoncs_meteringmod:72,color_to_alpha:[68,2,4],exif_photo_flashpixvers:72,"0x10eec9b0":[],onmeasureitem:142,is_en:54,strategi:104,"0x27f0488":[],pil_integ:126,pixelctrl:118,on_menu_view_expand_al:[79,140],fire:36,setimag:[],imag:[0,2,45,78,46,3,47,74,158,82,83,84,6,124,7,51,8,9,11,12,94,55,72,131,15,16,17,57,100,98,110,18,116,133,20,21,128,139,135,23,24,161,25,64,27,28,61,145,108,29,30,68,32,33,101,112,38,153,154,76,40,48,104,160,42,43,162,117,144],convert:[11,92,45,24,72,128,74,112,6,159,54,126,32],append:[128,139,63],"0x1171da28":[],expand_ind:45,coordin:[112,57],popen:45,ongetitemtext:59,func:[89,23],jpeginterchangeformatlength:36,exif_canon_imagetyp:72,get_droplet_fold:79,i120:80,"0x2b912a8":[],"0x2a9d488":[],exif_shutterspeedvalu:72,"0x28bd488":[],zexif_0xa000:72,zexif_0xa001:72,zexif_0xa002:72,zexif_0xa003:72,copy_metadata:[],zexif_0xa005:72,kodak:36,"while":[46,112,45,157,63],smart:[12,91],behavior:159,error:[23,54,95,88,157,45,42,144,112],fun:89,win32:66,lossless_jpeg:[68,63,4],gmt:[11,57],deletetablerow:[],robin:89,loop:83,"0x1d6b2a8":[],increment:45,readi:69,on_menu_file_export_recent_to_clipboard:[79,140],on_item_expand:161,jpg:[112,23,24,72],open_actionlist:23,"0xf218cf8":[],"0x1fbee60":[],"0x2b2f64b26140":[],gimp:[76,72],exif_canoncs_flashact:72,pexif_model:72,create_dummy_info:[],minim:129,"0x22fc8c0":[],"0x2add2cd52140":[],onbtchangechoic:12,"0x2b549fb70140":[],add_tool:79,meteringmod:36,infocach:[],safe_mod:6,higher:142,install_menu_item:[93,79],splitvalu:118,xptitl:36,blenderartist:144,get_exif_transposit:112,keyw:[1,93,24,140,151,37,109,118,112,79,65,83,54,29,6,70,34,10],fix_str:54,"0xeb475f0":[],minvalu:54,moment:[66,120],temporari:[76,24],user:[127,23,54,120,74,66,12,45,144,89,69],"0x2801e60":[],chang:[11,23,54,72,120,3,80,12,6,159,134,144,69],"0xd1a0f50":[],"0xf68c398":[],onrowlabelpaint:29,lower:[157,112],infoextract:72,equival:90,discourag:45,older:45,entri:144,parenthes:45,person:144,raise_except:24,expens:[],"0xca41b18":[],getsmalldnarrowdata:12,propos:[42,69],collabor:[],getdeliverycount:89,on_menu_tools_update_font:[79,140],setfilt:[1,151,70,59,29,10],source_filenam:[],imagefilebrows:[85,130,37],exifimagelength:36,test_driv:106,move:[46,12,57,123],"0x185c140":[],"0xe9a2398":[],infopexif:72,meta_expr:157,shortcut:[114,122,130],ongetitemimag:59,menu_file_export_droplet:79,rgb:[112,36],exif_canoncs_contrast:72,template_show:1,appli:[0,45,7,46,82,31,124,50,92,94,55,131,98,100,133,20,23,63,105,52,27,107,108,110,69,32,101,35,71,115,158,42,43,117,164],input:[112,54,63,72,104,45],"0x2ae8a6397140":[],dumpinfo:72,exif_photo_colorspac:72,evt_text:29,bin:24,exif_photo_whitebal:72,march:[23,72],set_image_key_valu:3,transpar:[2,112,55,72,128,84,6,101],"0x3060398":[],is_writ:[],odict:[68,23,54,123,130],"0x1d83950":[],extract_tiff_thumbnail:36,"0xcd9b758":[],exif_thumbnail_jpeginterchangeformat:72,"0x2ab45e82f140":[],python_3000_has_kei:45,fontfilefield:54,movechildup:77,paint:[1,130,79,85,10,60],"0x36356c8":[],previewmixin:[59,44],recong:72,has_transpar:112,brace:45,signal:[54,159],overwrite_existing_images_forc:23,on_menu_file_export_inspector_to_clipboard:[79,140],elaps:45,mylistctrl:12,mycla:45,collect:[119,157,12,54,72],api:[68,62,23],exif_canoncs_len:72,parent2:57,append_form_by_label_to_last:161,popular:45,filedroptarget:49,thumb_siz:[1,3,29],x_pix:139,logical_lin:45,imagedictionaryfilectrl2:[],sketch:[68,116,4],"0x2b0c65912140":[],often:112,urgenc:[144,155],exif_makernote_flashdetail:72,creation:57,some:[12,24,104,45,88,89,69],"_infopil":72,exifoffset:36,wxpython:[12,129,120,57,29,161,109,144,89],integ:[112,108,24,159,126],geticons:142,toasterboxwindow:57,"0x1113f9b0":[],imageview:[],autocompletectrl:[85,130,91],exif_canonsi_whitebal:72,scale:[112,94,4,110,160,68,33],processkei:[1,29],getnamebitmap:128,dictionaryfilectrl:118,pep:[156,45],id0:80,id1:80,larg:[69,74],prog:24,pef:36,"0x23402a8":[],get_image_infos_from_fold:23,subtopic2:89,"0x2baa938":[],previou:[157,45,72],run:[45,24,104,156,134,144,89,69],pil_jfif_vers:[],get_form_field:161,get_error_statist:45,word:[144,89,45],no_sav:23,"0xe692320":[],exif_image_resolutionunit:72,ongridlabelleftdclick:29,step:[144,69,57,159],ycbcrcoeffici:36,yourclass:45,exif_thumbnail_resolutionunit:72,"0x271a488":[],nautilus_exist:103,subtract:159,resiz:6,"0x2b17c8022140":[],gnome:163,transpos:[112,131,3,4,145,68],"0x2b842cc22140":[],update_tim:3,page:[53,69],"_window":[142,1,79,140,113,37,151,26,57,59,118,29,70,67,49,44,34,10],transpost:112,transferrang:36,modal:79,gamma:[36,72],cutoff:98,andrea:57,showcancel:[],"0x2abf96edf140":[],within:[112,23,54],save_metadata:[68,31,6,4],exif_head:36,create_phatch_thunar_act:93,getlistctrl:12,"0x10101398":[],ensur:[119,54,144,42,89,129,24],ifd_tag:36,announc:144,imageinspector:[1,29,85,130],on_menu_file_export_droplet_actionlist_to_clipboard:140,websit:[144,69,67],line_numb:45,spam:45,getpencilimag:29,is_done_info:[43,92,124],apply_pil:6,question:29,alignverticalfield:54,"long":45,custom:[12,36,128],xpkeyword:36,"0x1f80d70":[],arithmet:45,"0x10be0c08":[],"0x19bb488":[],forward:159,paren:45,losslesssavemixin:[42,31,63],create_phatch_recent_nautilus_act:93,etc:[54,45,24,128,159],files:[23,72],uncalibr:36,isospeedr:36,rgbtohtmlcolor:126,poster:[68,117,4],"0x1cb3500":[],onspin:118,"0x1e48398":[],singletonkei:89,translat:[62,54,144,86,68,118],"0x2b359106c140":[],delta:[11,112],grep:144,line:[156,45,24,63,69],"0x3857230":[],on_menu_view_collapse_al:[79,140],oncontextmenu:1,"0x2caf488":[],show_droplet:79,read_gpx:11,resample_imag:51,entrycallback:[12,91],ccirlew:36,desatur:[68,30,4],planet:80,ondropfil:49,camelcas:119,usercom:36,highlight:[68,54,24,101,4],readlin:45,similar:89,"0xe7a9398":[],"0x282d2a8":[],doa:89,exif_canonsi_sequ:72,pencil:116,flow:45,receivelisten:88,doesn:[66,112],wx_bitmap:9,onbtstartchoic:12,addrow:29,write_tag:[68,115,4],subcrib:89,"0x2b9af2a8f140":[],exif_image_datetim:72,"0x1d78e60":[],naa:36,exif_canoncs_digitalzoom:72,validationerror:54,jcr:45,dummi:45,"0x1fe8e60":[],titl:[119,1,79,54,26,57,157,155,65,83,29,67,49,24],sequenti:36,uri:[24,112,6,74,76],invalid:[76,157,23,24],"0xce0c410":[],failobj:123,rrggbb:[126,128],add_checkboard:112,whitepoint:36,optionaltransposefield:54,title_pars:[42,54],"0x2f50dd0":[],numrow:34,nice:123,"0x2e1d2a8":[],ccitt:36,"0x3004140":[],clean:57,"_ctrlwithitem":118,freez:128,benchmark:45,lucid:69,contour_color:25,floatsliderctrl:118,subsectim:36,show_scrolled_messag:[65,83,79],drag:77,eval:[157,54],on_menu_collapse_automat:140,papt:144,"0x11497b18":[],lang:144,freewar:57,pixelyimens:6,algorithm:159,mimetyp:103,"0x3617398":[],dpifield:54,"_ctrlrelevantmixin":118,i10:80,depth:153,far:[144,12],root_fonts_cache_path:119,is_overwrite_existing_images_forc:[42,35,92,124,43],hello:[24,80,72],reset_i:139,rotate_90:112,get_action_list:79,edg:25,warm_up:[68,46,4],jpegimageplugin:[132,56,97],getfilt:10,exif_makernote_offset:72,image_fil:[23,128],exif_canon_imagenumb:72,packbit:36,on_skip:[1,44],"0xf2a9320":[],perspectivefield:42,emboss:0,annouc:144,"0x2eca398":[],"0xeec7398":[],"0x3002140":[],"0x2ef1230":[],export_form:161,"0x20726c8":[],"0x3735320":[],get_freedesktop_pnginfo:74,send:[23,155,144,88,89,34],nose:69,"0x1e47230":[],"0xe584320":[],extract_data:[],verify_xcf:76,weather:36,sens:63,fatal:23,sent:89,resolutionunit:36,exif_canoncs_minapertur:72,windowsdownload:[],"0x100dd398":[],"0x2d2bd40":[],account:[144,108,69],exif2:[],customrend:36,"0x107cea28":[],remove_alpha:112,"0xfc8bb90":[],relev:[2,92,45,71,63,52,153,28,40,84,42,164],get_method:24,"0xe6af398":[],open_imag:[76,3,112,74],filenamefield:54,trk:11,magic:[88,45],sliderfield:54,ranksizefield:54,button:[79,29,118],"0x1997398":[],dropletmixin:79,"0x19db9b0":[],editpanel:118,"try":[76,157,45,74],set_them:79,"0x3578488":[],exif_makernote_continuousdrivemod:72,shutterspeedvalu:36,evt:[49,12,29,91],horizontal_justif:[94,112,84,78],"0x19972a8":[],pleas:[144,45,104,120],defaultpath:1,small:[45,74],smaller:[110,74],"0x10e64b90":[],getsmalluparrowdata:12,crop:[112,63,64,4,145,160,68,21],"_header":80,jump:159,fold:45,setverticalgradi:142,getnumbercol:[29,34],download:[144,69],"0x10a8eb90":[],odd:[29,34],click:[79,69,29],onclos:[70,57,67],htmlcolortopilcolor:126,index:[1,23,128,53,3,37,80,74,157,45,123,161,59,112,159],compar:89,"0x2796320":[],on_tree_sel_chang:59,"0x2cbf0c8":[],feedback:144,find:[66,45,24,80],access:[128,54,72,120,6,89],clipboard:[138,85,130],"0x307b6c8":[],"0x24e4398":[],get_count:45,"0x28e3320":[],whatev:89,pagenam:36,blueprint:69,resize_popup:161,chose:[144,104],exif_image_imagedescript:[],dropletfram:79,onerasebackground:60,open_thumb:76,"0x2b15146a1140":[],len:80,on_menu_tools_show_log:[79,140],"0x2485140":[],exif_makernote_subjectdist:72,samplesperpixel:36,"0x26a92a8":157,ubuntu:[144,69],e223:45,ioerror:24,e221:45,becom:[53,45,6,120],on_menu_file_export_thunar_actionlist:93,sinc:[89,128],createcolumn:59,e224:45,browsemixin:[1,79],weekdai:[157,23,159,72],"0x1054a9b0":[],reus:[],"0x2c50230":[],read_thumbdata:162,"0x1099cc80":[],implement:[89,45,159,10],is_field_tru:54,"0x307e6c8":[],control:[69,57,118],writer:23,"_pathctrl":118,needs_orient:72,"0x21052a8":[],apr:89,moveabov:57,app:[127,76,79,24,140],"0x2a98398":[],setcolumnwidth:[1,59],apt:[69,54],imagereadtypefield:54,"boolean":[24,112,45,6],uniqu:157,rgb_tupl:126,"0x11365c08":[],extract_tag:10,subjectloc:36,compatibl:54,fed:80,"0x24ff4d0":[],from:[45,120,3,104,74,48,6,89,90,11,54,72,138,137,23,24,63,142,108,29,69,112,38,154,76,157,159,144,162,118],tar:[],zip:144,save_saf:112,changelog:144,append_info:[],get_field_files:[],next:[45,36],blenderfield:42,process:[112,24,104,23,108,45],chr:157,camera:[71,36,76],usr:[66,24],on_detail:44,panel:[57,59,10,44,163,118],wxwidget:89,onnosuchtop:89,sort:[118,12,80,72,91],safeglob:[68,62,90],ftp:24,get_nam:71,tag_data:29,imageresamplefield:54,"0x26bb230":[],"0x2e93050":[],pexif_colorspac:72,exif_interoperabilityoffset:72,trail:45,"0x358ae60":[],run_check:45,startev:91,save_act:23,principl:120,"0x35e2398":[],show_descript:79,retriev:[161,72,74],get_files:74,force_background_color:108,alia:[1,151,72,70,29,10,118],linger:57,raise_error_fil:54,"0x306ed70":[],exif_photo_pixelydimens:72,onclicktoggledown:[12,91],exif_canon_0x0026:72,"_infopyexiv2":72,"0x10be0b90":[],check_actionlist_file_onli:23,"0xd1a48c0":[],endian:36,getstringselect:1,xpsubject:36,"0x1175e9b0":[],"0xfe30c80":[],"0x2624320":[],exif_meteringmod:72,deepcopi:123,sudo:69,justif:112,high:[38,36],tag:[1,104,36,130,72,70,151,3,79,115,144,107,54,29,85,50,42,6,164,10],getsmalluparrowimag:12,tab:45,"0x2ffc500":[],tarbal:[],create_corn:40,save_cach:[76,74],delai:45,mix:[46,23,45],toasterbox:[22,132,57],is_str:137,"03223f4f10458a8b5d14327f3ae23136":74,"0x2127560":[],extracttag:1,load_local:127,"0x1dc8398":[],get_cell_valu:3,need:[24,45,54,63,72,120,118,142,74,76,112,144,89,69,10],ntreturn:45,getitemlabel:37,"0x2cbf140":[],instead:[42,112,45,128,72],"0x1055dc80":36,metadatatest:[68,137,130],circular:6,whitespace_around_named_parameter_equ:45,"0x2485230":[],"0x100ac398":[],"0xfdd2aa0":[],imagewritetypefield:54,dropdownclick:[12,91],metaact:[],"0x3004230":[],check_log:45,unidentifi:36,attent:89,open_image_with_pil:76,physic:45,gcd:[106,36],exif_canon_0x000d:72,geek:[68,35,4],delete_kei:3,rename_tag:[68,107,4],onshow:49,pil_jfif_unit:[],seriou:23,pexif_usercom:72,exif_makernote_afpointselect:72,exif_iop_interoperabilityvers:72,get_path:[42,150],findwindowbyid:79,issu:[45,6],notwritabletagerror:6,"0x2b6b130890b8":[],create_phatch_inspector_droplet:93,"0x33b8938":[],allow:[77,23,24,120,57,157,128,6,89,90],exif_canonsi_0x0003:72,nikon_ev_bia:36,onlicens:67,on_list_item_right_click:1,"0xfe89a28":[],exif_canonsi_0x0001:72,expand_form:161,is_dirti:6,timeshift:11,infophoto:6,set_top:139,shell_returncod:24,"0x9e41140":[],exif_flashpixvers:72,set_set:79,tungsten:36,"0xfa4f398":[],i01:80,comma:45,"0x1050ea28":[],filename_to_titl:24,locate_fil:119,size_label:74,getpixel:112,bunch:45,scale_reflect:153,updateifneed:29,ongridcellleftclick:29,actionbrows:1,fit_color_in_palett:112,chosen:[112,74],get_palett:112,settitl:57,statusdialog:[1,44],thunar:[68,75,87],example_data_tupl:59,old_siz:[33,160],verify_imagemagick:76,total:[112,45],sig:144,therefor:45,do_blah_th:45,pixel:[112,36,133,27,82,100,158,7,54],on_menu_tool_ent:79,transpareni:112,bitspersampl:36,add_image_kei:3,handl:[161,76,112],auto:[49,12,36],press:[12,29],parent_label:[59,44],guess:112,dai:[157,23,36,159,72],lzw:[76,36],"0x27e99b0":[],make_grid:33,automat:[23,45,80,104],report_error:45,front:80,exif_iop_interoperabilityindex:72,onleftdown:49,exifvers:36,copy_text:138,"0x3895230":[],figur:112,passnnnndef:45,"0x2b9fa21ef0b8":[],ycbcrsubsampl:36,get_uri:74,februari:159,make_string_uc:36,mode:[112,36,72,64,65,6,139,32],batch:42,"0x1e59d70":[],"0x1deb230":[],"0x24e0398":[],jpegproc:36,vars_unknown:72,subset:89,border:[68,108,28,4,118],focalplaneyresolut:36,maxvalu:54,get_default_path:1,seq:36,check_phys:45,pil_wxbitmap:9,meta:157,"static":[0,2,78,46,158,82,84,50,51,8,92,54,55,131,15,16,100,98,18,116,105,133,20,21,135,25,64,27,28,145,108,30,7,110,94,32,33,101,38,153,154,40,48,160,42,117],"0x114089b0":[],olympus_special_mod:36,meth:89,"0x222a9b0":[],"0xfc83a28":[],"0x2a86938":[],"0x2125230":[],out:[112,23,54],variabl:[119,137,23,54,72,157,6,144,90],crunch_data:128,"0x38d31b8":[],sadkin:12,matrix:33,"0x32c5e60":[],exif_canoncs_exposureprogram:72,jpegtran:63,addtagdialog:[29,113],parent_index:83,exif_canonsi_shutterspeedvalu:72,suitabl:63,rel:[36,24,159],exif_canonsi_0x000d:72,merg:[119,69],renamerowlabelvalu:29,reg:150,red:36,statist:45,exif_makernote_flashmod:72,insid:[45,57,28,104],watermark:[68,112,94,4],e101:45,getempti:10,"0x2ede230":[],"0xae3fa28":[],"0x2b022be800b8":[],dictionari:[11,119,23,54,72,112,6,90,118],releas:[144,53],get_field_label:54,extract_info:[],"0xee3d398":[],bleed:21,log:[11,23,79,76,6,42,69],extract_info_path:[],exif_photo_meteringmod:72,indent:45,transposit:112,could:[69,54,159],area:36,put:[57,128,84,45,80],membership:69,timer:57,keep:[89,120],counterpart:159,exif_photo_exposuremod:72,setact:1,enforc:156,organis:80,get_vars_by_info:72,"3kb":80,exif_focallength:72,draw_text:78,w191:45,creditsdialog:67,exposurebiasvalu:36,exif_canonsi_targetapertur:72,softwar:[36,120],it8mp:36,name_of_branch:69,eval_saf:157,"0x1f8c368":[],e211:45,imageinspectorfram:1,ignore_cod:45,qualiti:112,"0xebc3aa0":[],echo:24,whoop:89,"0x2737c20":[],fluoresc:36,"0x9977f50":[],prioriti:36,namespac:90,dump:[54,23,6,72],gradient_mask:153,strict:36,"2_1":157,licens:[53,12,120,57,144,41,67,68,89,22,69,147],onbrows:118,system:[24,130,76,66,29,68,144],wrapper:89,input_fil:45,zexif_0x920a:72,scrollup:57,stop_for_error:23,on_menu_file_open_librari:[79,140],first_ifd:36,exif_thumbnail_yresolut:72,shell:[24,26,6,85,130],inspect:[1,79],exif_makernote_ownernam:72,"0xee28398":[],get_max_height:1,folderfilebrows:[59,85,130,44],jbig:36,pygridtablebas:[29,34],"0x10248b90":[],standalon:69,exactli:[2,92,112,71,52,153,28,40,84,42,164],shadow_blur:108,shadow_color:108,zexif_0x9202:72,photograph:36,freedesktop:74,zexif_0x9207:72,testdialog:151,zexif_0x9205:72,zexif_0x9209:72,setchoic:[12,91],verify_actionlist:65,structur:127,charact:[45,24],infoiptc:72,"0x10b189b0":[],"0x24872a8":[],menu_act:93,light:36,macreopenapp:79,counter:[],"0x3244398":[],viewer:[],"0x31d22a8":[],on_menu_help_forum:[79,140],liner:45,corrupt:23,font_nam:119,have:[23,54,72,156,45,144,89],tabl:[53,3,29,34],get_metadata:11,"0xe8e2050":[],turn:[24,80],exit_statu:36,showmessag:29,superflu:45,els:45,zexif_0xa402:72,imageresampleautofield:54,"0x35455f0":[],"0xa9b5e60":[],min:157,extract_info_loc:[],"_control":[12,140,37,59,109,10,118],init_config_path:127,weekdaynam:[157,23,72],contact:69,"0xfd37848":[],set_arg:71,"0x2b4222c2a140":[],exif_image_copyright:[],"0x2b22346f4140":[],"0x33c2560":[],divert:69,"0x3905320":[],"0xfc3bb90":[],uppercas:24,oncornerlabelpaint:29,textur:16,wdai:159,unless:144,exif_focalplaneyresolut:72,integerfield:54,"0x34666c8":[],tamogen:[68,15,132,139,4],exif_exifvers:72,who:[69,120],on_templ:[1,44],"0xfd3b398":[],useful:23,write_cach:[],topic1:89,"0x1171d9b0":[],pyc:128,actionlistbox:1,"class":[0,1,2,3,6,7,8,10,12,15,16,18,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,59,42,43,44,45,46,48,49,50,51,54,55,57,60,63,64,65,67,70,71,77,78,79,80,82,83,84,88,89,91,92,94,72,98,100,105,106,107,108,109,110,113,115,116,117,118,123,124,127,150,131,133,135,137,139,140,52,142,145,101,151,153,154,158,159,160,161,164],pubsub:[68,89,132,88],"0xe86d2a8":[],exif_photo_flash:72,ontopicnevercr:89,url:[144,24],request:[45,54,74,69],"0x3905230":[],"0x2af524536140":[],deleterow:[29,34],get_used_palette_indic:112,pep8_test:156,determin:89,autocontrast:[68,98,4],trailing_blank_lin:45,exif_compressedbitsperpixel:72,updatevalu:[29,34],exif_makernote_exposuremod:72,update_form_relev:161,text:[11,1,12,78,138,75,57,4,45,29,68,24,112,91],verbos:65,succesfulli:24,oncompareitem:[77,140],yresolut:36,"0x1a0c140":[],ondrawbackground:142,careful:144,visibl:[1,45,54,80,161,42,89],infopil:[23,72],redirect:140,locat:[122,24,150,130,99,23,112],launchpad:[144,53,69],contentctrl:[1,70,29,151,10],print:[157,45,36,72],brighten:46,tiff_lzw:76,on_list_item_select:59,"0x2b35557ff140":[],vertical_justif:[94,112,84,78],label_po:49,get_mtim:74,get_field:54,ensure_path:[54,24,74],local:[11,157,112,24],meant:112,output_filenam:6,ctrlmixin:[161,118],contribut:[144,12,45,104,120],update_filenam:83,raise_error_in:[],familiar:57,make_str:36,on_button_report:[1,44],pypi:144,regularli:69,set_siz:[],"0x276b140":[],increas:108,digitalzoomratio:36,exif_canon_firmwarevers:72,files_data_dict:80,lossless:[31,63],"0x2ef1140":[],fix_path:49,associatedtop:89,exif_photo_usercom:72,enabl:[109,45,54],organ:[77,80,72],grayscal:[20,38,30,116,63],exif_thumbnail_xresolut:72,utilitymixin:63,i00:80,exif_makernote_tag_0x001:72,grai:30,maintain:128,integr:69,contain:[89,45,24,80],contents2:[],stampmixin:[42,84,94],attrincref:34,altern:74,exif_photo_scenecapturetyp:72,frame:[142,1,79,140,151,70,14,26,57,88,65,29,121,61,49,34,10],"0x2201500":[],get_set:79,flip:[63,131],rgbtopilcolor:126,"0x2cb0398":[],tiffinfo:76,"0x34de9b0":[],convers:76,correctli:144,pattern:[75,45,36],boundari:54,"0x1ef9d40":[],exif_makernote_satur:72,exif_makernote_tag_0x0026:72,exif_makernote_tag_0x0027:72,written:[112,12,45],exif_makernote_tag_0x0025:72,exif_makernote_tag_0x0022:72,exif_makernote_tag_0x0023:72,on_menu_edit_add:[79,140],gaincontrol:36,enable_selected_form:161,progress:[65,23,69],email:69,exif_makernote_tag_0x0028:72,"0x1a1b500":[],zexif_0xa20f:72,kei:[12,24,128,72,3,80,45,29,123,54,90,69],zexif_0xa20:72,setdata:[1,59,70],captur:24,"0x107d7cf8":[],whitespace_around_oper:45,tempfil:24,exifimagewidth:36,job:57,sendlisten:88,zexif_0x0110:72,parenthesi:45,tiffcp:76,succesful:138,thumb:74,testfram:[70,142,151,34,10],licensecheck:69,plugin:[45,24,14,68,61,69],"\u00efpt\u00e7":72,equal:[68,4,135],get_relevant_field_label:[35,92,78,63,2,15,52,153,28,145,40,84,71,42,50,33,164],get_hash:74,getcollabelvalu:29,instanc:[23,72,76,159,89,118],artprovid:39,onrightup:49,app_nam:[155,150],remove_selected_form:161,onchang:118,comment:[93,45],unclear:140,fill_color:25,exif_makernote_digitalzoom:72,arriv:89,"0xf3f18c0":[],pexif_focalplaneresolutionunit:72,"0x2e91398":[],empti:[23,54,138],inspect_list_item:1,imagedictionaryfilectrl:118,clearsigint:140,beach:23,exif_exifimagewidth:72,quit:69,mailman:144,"0x335c8c0":[],exif_canoncs_easymod:72,"_size":112,on_tree_item_activ:59,exif_photo_shutterspeedvalu:72,compon:[89,112],matchfunct:[12,91],getlabel:37,"0x1eb2050":[],immedi:[144,45,63],"0x35ba230":[],files_data_tupl:80,e201:45,e203:45,e202:45,bit:117,exif_canoncs_0x001f:72,adob:36,"0x2af873b11140":[],"0x2eaf6c8":[],data_tre:59,assert:6,check_config_path:127,get_qual:112,get_source_info:[],"0x2b21558bc0b8":[],notemptycharfield:54,exif_makernote_images:72,multi:[12,45],exif_makernote_focalunitspermm:72,exposuremod:36,flashenergi:36,onviewsourc:1,exif_makernote_sequencenumb:72,defin:[2,92,112,36,71,52,153,28,144,40,84,29,42,54,128,164],"0x107ce9b0":[],e111:45,setentrycallback:12,e113:45,e112:45,y_pix:139,alignhorizontalfield:54,layer:[112,6],helper:[23,54],almost:57,"0x322e560":[],setpopupposit:57,"0xf218c80":[],non:[112,23,24,157,159],"0x2e98d40":[],iptc_application2_objectnam:72,archiv:144,extract_info_metadata:[],substanti:144,singlegrid:[],revis:57,handle_trkpt:11,"0x318e9b0":[],on_menu_file_export_nautilus_inspector:93,let:[144,69],welcom:[],iptc_application2_recordvers:72,on_ignor:[1,44],s2n:36,cross:[99,40,57],process_error:23,python:[45,24,72,120,104,156,157,128,159,144,69],info_fil:[76,23],colourselect:118,fill:[112,36,142,23,84,24],singl:[89,112,23,24,45],alioth:144,"0x1a68398":[],extract_info_dpi:[],overal:45,exif_exposuretim:72,infozexif:72,dcraw:76,alpha:[112,45],it8lw:36,effect:[0,68,4],addcolumnrow:29,"0x2192d70":[],enable_collapse_automat:[161,79],georeadfilefield:54,canva:[68,112,23,4,160],"0x3257d70":[],"0x2f5ed70":[],php:144,get_saf:54,pexif_yresolut:72,mosaic:[15,139],googl:144,zexif_0x829a:72,"0x2b9c002a00b8":[],mention:144,zexif_0x9101:72,focalplanexresolut:36,colour:[128,57,29,60,49,34],zexif_0x9102:72,do_on:45,"0x3963488":[],formfield:[54,161,130,68,42,118],exampl:[119,1,45,54,159,151,37,118,104,144,65,112,120,60,67,161,88,89,69,142,10],command:[119,35,103,45,24,63,120,104,75,76,6,144,69,163],shecter:89,choos:[1,104],undefin:[144,112],"0x2aca40c8c140":[],fail:[23,24],unusu:69,"0x26bb320":[],indent_char:45,latest:[144,57],deletecol:29,exif_iop_relatedimagewidth:72,"0x3264908":[],svn:144,gettablevalu:34,less:142,"0x115fba28":[],fill_imag:[15,139],exif_scenecapturetyp:72,setpopuppositionbyint:57,thumbdata:[162,6],setpopupbackgroundcolor:57,pexif_exifinteroperabilityoffset:72,exif_datetimeorigin:72,"0x2e70230":[],pywx:[1,77,47,81,5,138,85,49,9,142,10,53,12,129,130,14,17,57,132,60,61,22,91,79,140,26,128,29,67,68,34,70,151,113,37,39,59,161,109,118,44],"0x2bc19b0":[],wether:24,"0x2b2b73b2f0b8":[],web:120,enable_cach:[],disagre:120,get_used_palette_color:112,stopev:91,open_image_with_command:76,"0x1de1050":[],"0x2952e60":[],script:156,add:[45,94,105,3,104,57,108,29,159,144,90,112],on_menu_file_quit:[79,140],"0x265e230":[],componentsconfigur:36,"0x1ef4050":[],potest:144,reason:[89,6],bool:[142,137,23,24,138,72,3,79,80,74,161,112,6,42,49,34],e222:45,suit:45,match:[11,112,12,45,91],exif_canoncs_sharp:72,interlac:72,photometricinterpret:36,"0x2abcf40e8140":[],"0x2b1f5afb1140":[],dest:24,"0x265e140":[],"0x2aae0c8910b8":[],writabl:[23,6],"0x10d609b0":[],know:[42,89,72,144],bzr_precommit_test:69,colorfield:54,contentmixin:[1,70,29,151,10],exif_makernote_flashact:72,recurs:[112,23],safe_glob:90,reduce_opac:112,"0xfc15c08":[],like:[45,63,72,57,159,161],extract_info_pexif:[],exif_canoncs_flashdetail:72,necessari:[144,112,140],open_libtiff:76,exif_exposurebiasvalu:72,lose:118,exif_whitebal:72,getsortimag:12,soft:36,import_modul:23,datetimeorigin:36,easy_instal:69,install_fram:14,"0x11365b90":[],license_test:[144,120],"0x1d0a320":[],field_length:36,get_selected_object:71,getcellrowcol:29,needs_upd:74,daylight:36,repeat:[0,112,38,98,23,48,154],"export":144,flush:[23,162],exif_makernote_tag_0x001c:72,home:[96,112,23,72,74],"0x2f6b6c8":[],drop:[1,23,77,79,153,108],is_don:[42,23],exif_makernote_tag_0x001f:72,librari:[127,104,99,156,109,88],exif_makernote_tag_0x001d:72,separ:[89,45,142,69],"__contains__":45,avoid:45,enable_toolbar:79,num_squar:139,thank:[89,45],tooltip:[93,70,103,79,49],datetimedigit:36,leap:159,leav:128,overlai:108,thumb_filenam:74,auto_crop:112,freshmeat:144,imageinspectorapp:79,fake_exif:36,on_menu_help_bug:[79,140],"0x2b4f337f0140":[],exif_makernote_tag_0x0019:72,exif_makernote_tag_0x0018:72,"0x2487398":[],dch:144,exif_makernote_tag_0x0013:72,fucntion:128,exif_makernote_tag_0x0010:72,usag:[45,36,128],exif_canonsi_aperturevalu:72,symlink:69,compile_expr:[157,54],e225:45,is_modifi:3,"0x2053140":[],offset:[45,36,25,4,18,108,68,112,118],"0x2b7135aad140":[],dcr:36,"0x2b81e08d5140":[],file_in:24,continu:45,sbin:66,actual:89,"0x35ba140":[],getrowlabelvalu:29,column:[15,12,29,80],http:[112,24,74,156,12,45,144,91],"0x31eb230":[],"0x23b8a28":[],relativedelta:[68,132,159],raise_error_out_max:54,statement:45,inbox:69,includ:[23,45],wxgcreditsdialog:67,on_abort:[1,44],ondrawitem:142,"0x1c162a8":[],find_ex:[54,24,150],fontdirectori:66,"0x2b40d0f5c0b8":[],lemburg:159,is_tru:[],compil:[157,128],own:[45,120],executedialog:[1,44],"final":45,zexif_0xa404:72,onclicktoggleup:12,zexif_0xa406:72,zexif_0xa401:72,move_right:139,zexif_0xa403:72,field_typ:36,been:[23,54,57,144,12,6,42],"0x2af4dfb93140":[],updatenumberrow:34,on_sourc:[1,44],x_squar:139,scrolltyp:57,is_form:161,init_act:23,"0x10024a28":[],split_command:24,pictur:112,get_freedesktop_size_label:74,"0x335c9b0":[],open_imagemagick:76,exif_photo_componentsconfigur:72,rotat:[36,63,72,131,4,68,51],set_left:139,bump:144,exif_digitalzoomratio:72,listctrl:[59,12,37],"0x26a0c20":[],"0x2ae32a8":[],"var":[157,6,72],"0x2f39398":[],gridtag:[1,29],cancel:24,font_fil:119,"function":[23,24,161,72,128,74,76,157,12,6,89,144,36,45],"0x2706398":74,"0x1eb7d40":[],subdirectori:45,inputctrl:118,droplet:[23,130,152,79,146,93,29,85,87,68,49],print_statist:45,handle_trk:11,keyerror:[112,6],histogram:135,read_only_set:23,"0xcd97b18":[],bodi:45,gain:36,exif_makernote_selftim:72,inlin:45,bug:[144,112,69],get_thumb_data:[],count:[89,112,45],cleanup:45,temp:76,possible_var:72,"0x38c6e60":[],findsystem:[68,66,132],scroll:57,smooth:0,displai:[144,29,34,118],browse_fold:1,"0xe6a4de8":[],limit:[45,80,72],"03d":157,otherwis:[137,112,24,63,128,74,157,23,144,89],write_credit:134,preload:103,intercolorprofil:36,convert_safe_mod:112,block:45,pil:[0,2,78,46,74,158,82,84,6,7,51,8,126,54,55,72,131,15,16,100,98,18,116,133,20,21,135,62,137,23,25,64,27,28,144,145,108,30,68,94,33,101,112,38,153,154,76,40,48,160,42,162,117],"0x2b93ad2ee140":[],evalu:[157,72],infoprovideerror:72,"int":[112,80,74,157,29,42],descript:[23,54,75,57,93,67,22],dure:23,columnsortermixin:12,obligatori:29,pausetim:57,mtime:24,child_max:[1,83,79,65],"0x3905e60":[],"0xd150b18":[],get_unused_palette_indic:112,exif_canonsi_targetshutterspe:72,does_process:24,set_safe_mod:79,inc:12,append_field:161,"0x1de1398":[],frame_error:88,imagelength:36,exif_image_orient:72,"0x2b9b642bc140":[],imagedictionaryreadfilefield:[42,54],"0x1f12140":[],detail:[89,54,23,36],e303:45,stripbytecount:36,exif_canoncs_flashmod:72,book:71,"0x1d6b398":[],gavana:57,branch:[89,69,156],passnnndef:45,force_remov:24,"0x2afca8e75140":[],it8ctpad:36,wildcard_list:5,colfetch:[12,91],exif_photo_focallength:72,create_popup_select:161,aperturevalu:36,py2ex:128,unsubal:89,"0x32b4488":[],makernot:36,e304:45,clear_log:6,enable_act:79,"0x2cccc20":[],"0x26cad70":[],get_info_libtiff:76,"0x280dc20":[],details_degre:116,mondai:159,e301:45,exif_canonsi_flashbia:72,exif_makernote_meteringmod:72,notifytim:57,debian:[144,69],stai:69,floatfield:54,sphinx:120,set_attr:[],isemptycel:[29,34],schoenborn:89,"0x2fccc08":[],extran:45,split_vars_static_dynam:6,"0x1ff7140":[],blur_reflect:153,"0x3071d70":[],imagewidth:36,inspectortag:[70,85,130],pixelxdimens:6,"0x11787a28":[],updatehead:[1,59]},titles:["effect","dialogs","color_to_alpha","imageTable","actions","wildcard","pil","minimum","invert","wxPil","tag","gps","TextCtrlAutoComplete","console","plugin","tamogen","mirror","images","offset","ct","colorize","fit","pyWx","api","system","contour","shell","common","border","imageInspector","desaturate","save_metadata","convert_mode","grid","inspector","geek","EXIF","imageFileBrowser","saturation","nuovext","round","license","models","rename","dialogs","pep8","warm_up","graphics","contrast","droplet","time_shift","rotate","imagemagick","Become a Phatch developer!","formField","mask","pil_1_1_6","toasterbox","img2img","folderFileBrowser","paint","pyWx","core","lossless_jpeg","crop","console","findsystem","about","index2","Bazaar and Launchpad","inspectorTag","blender","metadata","linux","thumbnail","thunar","openImage","treeDragDrop","text","gui","listData","screenshot","median","message","background","pyWx","translation","linux","events","pubsub","safeGlobals","autoCompleteCtrls","save","droplet","watermark","unicoding","preview","JpegImagePlugin","autocontrast","desktop","maximum","highlight","version","nautilusExtension","Testing","geotag","surd","rename_tag","shadow","compatible","scale","register","imtools","dialogsInspector","shortcut","write_tag","sketch","posterize","popup","fonts","License and Copyright","wxGlade","windows","odict","copy","settings","colors","config","img2py","wxcheck","lib","transpose","other","solarize","info","equalize","templates","metadataTest","clipboard","tamogen","frame","action","vlist","gettextFix","Release Manager","perspective","droplet","data","reverse_translation","TiffImagePlugin","locate","vlistTag","windows","reflection","brightness","notify","Code Style: PEP8","safe","rank","relativedelta","canvas","treeEdit","_pyexiv2","desktop","delete_tags"],modules:{"actions.effect":0,"pyWx.dialogs":1,"actions.color_to_alpha":2,"lib.imageTable":3,actions:4,"lib.pyWx.wildcard":5,"core.pil":6,"actions.minimum":7,"actions.invert":8,"lib.pyWx.wxPil":9,"lib.pyWx.tag":10,"lib.gps":11,"other.pyWx.TextCtrlAutoComplete":12,console:13,"pyWx.plugin":14,"actions.tamogen":15,"actions.mirror":16,"pyWx.images":17,"actions.offset":18,"core.ct":19,"actions.colorize":20,"actions.fit":21,"other.pyWx":22,"core.api":23,"lib.system":24,"actions.contour":25,"lib.pyWx.shell":26,"actions.common":27,"actions.border":28,"lib.pyWx.imageInspector":29,"actions.desaturate":30,"actions.save_metadata":31,"actions.convert_mode":32,"actions.grid":33,"lib.pyWx.inspector":34,"actions.geek":35,"other.EXIF":36,"lib.pyWx.imageFileBrowser":37,"actions.saturation":38,"pyWx.nuovext":39,"actions.round":40,"data.license":41,"core.models":42,"actions.rename":43,"pyWx.wxGlade.dialogs":44,"other.pep8":45,"actions.warm_up":46,"lib.pyWx.graphics":47,"actions.contrast":48,"lib.pyWx.droplet":49,"actions.time_shift":50,"actions.rotate":51,"lib.formField":54,"actions.mask":55,"other.pyWx.toasterbox":57,"other.pyWx.img2img":58,"lib.pyWx.folderFileBrowser":59,"lib.pyWx.paint":60,pyWx:61,core:62,"actions.lossless_jpeg":63,"actions.crop":64,"console.console":65,"other.findsystem":66,"lib.pyWx.about":67,"lib.pyWx.inspectorTag":70,"actions.blender":71,"lib.metadata":72,"lib.linux":73,"lib.thumbnail":74,"linux.thunar":75,"lib.openImage":76,"lib.pyWx.treeDragDrop":77,"actions.text":78,"pyWx.gui":79,"lib.listData":80,"lib.pyWx.screenshot":81,"actions.median":82,"core.message":83,"actions.background":84,"lib.pyWx":85,"core.translation":86,linux:87,"lib.events":88,"other.pubsub":89,"core.safeGlobals":90,"lib.pyWx.autoCompleteCtrls":91,"actions.save":92,"linux.droplet":93,"actions.watermark":94,"lib.unicoding":95,"core.preview":96,"actions.autocontrast":98,"lib.desktop":99,"actions.maximum":100,"actions.highlight":101,"data.version":102,"lib.linux.nautilusExtension":103,"actions.geotag":105,"other.surd":106,"actions.rename_tag":107,"actions.shadow":108,"lib.pyWx.compatible":109,"actions.scale":110,"lib.imtools":112,"lib.pyWx.dialogsInspector":113,"actions.write_tag":115,"actions.sketch":116,"actions.posterize":117,"lib.pyWx.popup":118,"lib.fonts":119,"pyWx.wxGlade":121,"lib.windows":122,"lib.odict":123,"actions.copy":124,"core.settings":125,"lib.colors":126,"core.config":127,"other.pyWx.img2py":128,"lib.pyWx.wxcheck":129,lib:130,"actions.transpose":131,other:132,"actions.solarize":133,"data.info":134,"actions.equalize":135,"lib.metadataTest":137,"lib.pyWx.clipboard":138,"other.tamogen":139,"pyWx.wxGlade.frame":140,"actions.imagemagick":52,"lib.pyWx.vlist":142,"lib.gettextFix":143,"actions.perspective":145,data:147,"lib.reverse_translation":148,"lib.windows.locate":150,"lib.pyWx.vlistTag":151,windows:152,"actions.reflection":153,"actions.brightness":154,"lib.notify":155,"lib.safe":157,"actions.rank":158,"other.relativedelta":159,"actions.canvas":160,"lib.pyWx.treeEdit":161,"lib._pyexiv2":162,"lib.linux.desktop":163,"actions.delete_tags":164},descrefs:{"actions.effect":{Action:[0,1],init:[0,3],effect:[0,3]},"pyWx.gui.Frame":{on_show_droplet:[79,0],on_description_text:[79,0],on_menu_tools_update_fonts:[79,0],on_tree_end_drag:[79,0],on_menu_view_expand_all:[79,0],on_menu_tools_image_inspector:[79,0],is_save_not_ok:[79,0],on_drop:[79,0],on_menu_view_droplet:[79,0],install_menu_item:[79,0],on_menu_file_history:[79,0],on_menu_tools_browse_library_phatch:[79,0],on_menu_help_about:[79,0],on_menu_tools_execute:[79,0],append_save_action:[79,0],on_menu_file_save:[79,0],on_menu_file_save_as:[79,0],show_description:[79,0],add_tool:[79,0],on_menu_file_open_library:[79,0],menu_file_export_droplet:[79,0],set_dirty:[79,0],on_menu_file_open:[79,0],on_menu_file_export_recent_to_clipboard:[79,0],on_menu_edit_add:[79,0],on_menu_help_website:[79,0],get_droplet_folder:[79,0],on_menu_edit_remove:[79,0],is_protected_actionlist:[79,0],on_menu_tools_python_shell:[79,0],on_size:[79,0],on_menu_help_bug:[79,0],on_menu_view_collapse_automatic:[79,0],on_menu_help_forum:[79,0],enable_collapse_automatic:[79,0],droplet_label_format:[79,0],enable_toolbar:[79,0],on_menu_tools_show_report:[79,0],show_paint_message:[79,0],only_actions_with_tag:[79,0],on_menu_tools_browse_library_user:[79,0],on_menu_edit_down:[79,0],on_close:[79,0],on_menu_edit_enable:[79,0],IsEmpty:[79,0],enable_menu:[79,0],on_menu_help_translate:[79,0],on_menu_file_export_inspector_to_clipboard:[79,0],on_menu_view_collapse_all:[79,0],on_menu_tools_show_log:[79,0],show_droplet:[79,0],on_menu_view_description:[79,0],on_menu_edit_disable:[79,0],on_menu_edit_up:[79,0],on_menu_file_new:[79,0],on_context_menu:[79,0],on_menu_tool_enter:[79,0],on_menu_tools_safe:[79,0],set_safe_mode:[79,0],on_menu_help_plugin:[79,0],on_menu_file_export_actionlist_to_clipboard:[79,0],enable_actions:[79,0],on_menu_file_quit:[79,0],on_menu_help_documentation:[79,0]},"lib.thumbnail":{needs_update:[74,3],"delete":[74,3],get_freedesktop_size_label:[74,3],open:[74,3],get_uri:[74,3],get_format_data:[74,3],save_to_cache:[74,3],is_needed:[74,3],get_mtime:[74,3],get_freedesktop_filename:[74,3],get_hash:[74,3],get_freedesktop_pnginfo:[74,3],thumbnail:[74,3],get_filesize:[74,3],ensure_path:[74,3]},"lib.formField.Form.ExifItpcField":{to_python:[54,0],fix_string:[54,0]},"lib.pyWx.wildcard":{wildcard_list:[5,3]},"core.pil":{Layer:[6,1],get_photo:[6,3],split_data:[6,3],Photo:[6,1],image_to_dict:[6,3],fix_EXIF:[6,3],NotWritableTagError:[6,5],InfoPhoto:[6,1],split_vars_static_dynamic:[6,3]},"lib.pyWx.shell":{Frame:[26,1]},"pyWx.plugin":{install_frame:[14,3]},"pyWx.images":{set_icon:[17,3],get_icon:[17,3]},"actions.offset":{Action:[18,1],init:[18,3],offset:[18,3]},"actions.rename_tag":{Action:[107,1]},"actions.fit":{Action:[21,1],init:[21,3],fit:[21,3]},"actions.warm_up.Action":{"interface":[46,0],init:[46,2],pil:[46,2]},"actions.border":{Action:[28,1],init:[28,3],border:[28,3]},"lib.pyWx.vlist.Box":{RefreshAll:[142,0],GradientColour:[142,0],GetIconSize:[142,0],SetVerticalGradient:[142,0],SetIconSize:[142,0],GetItem:[142,0],OnDrawSeparator:[142,0],OnMeasureItem:[142,0],OnDrawItem:[142,0],OnDrawBackground:[142,0],SetTheme:[142,0]},"other.pubsub.PublisherClass":{getAssociatedTopics:[89,0],getDeliveryCount:[89,0],getMessageCount:[89,0],isSubscribed:[89,0],isValid:[89,0],unsubAll:[89,0],subscribe:[89,0],sendMessage:[89,0],unsubscribe:[89,0],validate:[89,0]},"lib.pyWx.about.wxgAboutDialog":{OnLicense:[67,0],OnCredits:[67,0],OnClose:[67,0]},"actions.blender.Action":{"interface":[71,0],apply:[71,0],init:[71,0],construct_command:[71,0],get_relevant_field_labels:[71,0]},"console.console.Frame.Progress":{close:[65,0],erase:[65,0],update:[65,0]},"actions.contrast.Action":{"interface":[48,0],init:[48,2],pil:[48,2]},"core.models":{negative:[42,3],init:[42,3],CropMixin:[42,1],Action:[42,1],OffsetMixin:[42,1],LosslessSaveMixin:[42,1],StampMixin:[42,1]},"actions.rename":{Action:[43,1]},"lib.pyWx.inspectorTag.Grid":{IsEmpty:[70,0],SetData:[70,0]},"lib.formField.PositiveNonZeroIntegerField":{to_python:[54,0]},"lib.pyWx.compatible.SearchCtrl":{OnCancel:[109,0]},"lib.listData.DataTuple":{sort:[80,0],get:[80,0],set_filter:[80,0],get_headers:[80,0],set_data:[80,0]},"lib.pyWx.imageInspector.GridTag":{IsEmpty:[29,0],SetTag:[29,0],SetFilter:[29,0]},"lib.formField.Form.PositiveIntegerField":{to_python:[54,0]},"actions.sketch":{Action:[116,1],sketch:[116,3],init:[116,3]},"lib.pyWx.paint":{example:[60,3],Mixin:[60,1]},"actions.autocontrast.Action":{"interface":[98,0],init:[98,2],pil:[98,2]},"lib.formField.PositiveIntegerField":{to_python:[54,0]},"lib.formField.OrientationField":{to_python:[54,0]},"other.findsystem":{findFonts:[66,3],win32InstalledFonts:[66,3],win32FontDirectory:[66,3],linuxFontDirectories:[66,3]},"lib.pyWx.about":{CreditsDialog:[67,1],Dialog:[67,1],wxgAboutDialog:[67,1],wxgCreditsDialog:[67,1],example:[67,3]},"lib.imageTable.Table":{is_key_editable:[3,0],open_folder:[3,0],get_image_label:[3,0],delete_cell:[3,0],set_cell_value:[3,0],open_image:[3,0],set_tag:[3,0],get_image_amount:[3,0],is_cell_deletable:[3,0],open_images:[3,0],add_key:[3,0],set_key_value:[3,0],is_cell_editable:[3,0],set_image_key_value:[3,0],set_image_label:[3,0],set_filter:[3,0],get_key_label:[3,0],transpose:[3,0],update:[3,0],delete_keys:[3,0],get_key_amount:[3,0],add_image_key:[3,0],delete_images:[3,0],get_image_filename:[3,0],get_cell_value:[3,0],is_image_editable:[3,0],set_key_label:[3,0],is_key_empty:[3,0],is_cell_empty:[3,0]},"lib.pyWx.droplet.Frame":{SetWindowShape:[49,0],OnShow:[49,0],show:[49,0],OnDoubleClick:[49,0],OnPaint:[49,0],OnMouseMove:[49,0],OnRightUp:[49,0],OnLeftDown:[49,0],OnLeftUp:[49,0]},"lib.pyWx.about.Dialog":{OnLicense:[67,0],OnClose:[67,0],OnCredits:[67,0]},"lib.pyWx.popup.FloatSliderCtrl":{OnScroll:[118,0],OnSpin:[118,0],GetValue:[118,0]},"lib.formField.FloatField":{to_python:[54,0]},"actions.text":{Action:[78,1],draw_text:[78,3],init:[78,3]},"lib.formField.Form":{load:[54,0],PositiveNonZeroIntegerField:[54,1],FloatSliderField:[54,1],FloatField:[54,1],dump:[54,0],TiffCompressionField:[54,1],OrientationField:[54,1],ImageDictionaryReadFileField:[54,1],AlignVerticalField:[54,1],FileSizeField:[54,1],ImageEffectField:[54,1],ImageReadFileField:[54,1],CsvFileField:[54,1],PositiveNonZeroFloatField:[54,1],PixelField:[54,1],OptionalTransposeField:[54,1],ColorField:[54,1],get_field_size:[54,0],NotEmptyCharField:[54,1],ensure_path:[54,0],FolderField:[54,1],ImageModeField:[54,1],RankSizeField:[54,1],ImageResampleField:[54,1],get_fields:[54,0],DpiField:[54,1],set_field:[54,0],EmptyFileField:[54,1],ImageTransposeField:[54,1],ImageTypeField:[54,1],PositiveFloatField:[54,1],get_field:[54,0],CharField:[54,1],FontFileField:[54,1],ExifItpcField:[54,1],BooleanField:[54,1],is_enabled:[54,0],ImageDictionaryField:[54,1],PositiveIntegerField:[54,1],IntegerField:[54,1],DictionaryReadFileField:[54,1],ImageReadTypeField:[54,1],ImageFilterField:[54,1],is_field_true:[54,0],CommandLineField:[54,1],ReadFileField:[54,1],set_field_as_string:[54,0],set_fields:[54,0],GeoReadFileField:[54,1],"interface":[54,0],ImageResampleAutoField:[54,1],ChoiceField:[54,1],AlignHorizontalField:[54,1],FileField:[54,1],Field:[54,1],get_field_labels:[54,0],SliderField:[54,1],get_field_string:[54,0],FileNameField:[54,1],set_field_as_string_dirty:[54,0],ImageWriteTypeField:[54,1],find_exe:[54,0]},"pyWx.gui.DropletMixin":{get_action_list:[79,0],get_action_list_files:[79,0],init:[79,0],OnInit:[79,0]},"lib.listData":{DataDict:[80,1],files_data_tuple:[80,3],DataTuple:[80,1],files_data_dict:[80,3]},"pyWx.dialogs.BrowseMixin":{show_dir_dialog:[1,0]},"actions.watermark":{Action:[94,1],init:[94,3],watermark:[94,3]},"lib.unicoding":{ensure_unicode:[95,3],exception_to_unicode:[95,3],fix_filename:[95,3]},"pyWx.gui.ImageInspectorApp":{OnInit:[79,0]},"actions.maximum":{Action:[100,1],init:[100,3],maximum:[100,3]},"pyWx.wxGlade.dialogs.WritePluginDialog":{on_help:[44,0],on_template:[44,0]},"actions.scale.Action":{"interface":[110,0],apply:[110,0],init:[110,2]},"pyWx.wxGlade.frame.Frame":{on_menu_file_new:[140,0],on_menu_tools_update_fonts:[140,0],on_menu_help_website:[140,0],on_menu_help_forum:[140,0],on_menu_edit_modify:[140,0],on_menu_tools_image_inspector:[140,0],on_menu_file_open_library:[140,0],on_menu_tools_browse_system_library:[140,0],on_menu_file_export_droplet_inspector_to_clipboard:[140,0],on_menu_view_droplet:[140,0],on_menu_help_about:[140,0],on_menu_tools_execute:[140,0],on_menu_file_save:[140,0],on_menu_file_save_as:[140,0],on_menu_tools_show_log:[140,0],on_menu_help_translate:[140,0],on_menu_file_open:[140,0],on_menu_file_quit:[140,0],on_menu_collapse_automatic:[140,0],on_menu_edit_add:[140,0],on_menu_edit_remove:[140,0],on_menu_tools_python_shell:[140,0],on_menu_file_export_actionlist_to_clipboard:[140,0],on_menu_help_bug:[140,0],on_menu_view_collapse_automatic:[140,0],on_menu_view_expand_all:[140,0],on_menu_tools_browse_library_phatch:[140,0],on_menu_tools_browse_library_user:[140,0],on_menu_file_export_droplet_recent_to_clipboard:[140,0],on_menu_edit_enable:[140,0],on_menu_file_export_droplet_actionlist_to_clipboard:[140,0],on_menu_file_export_recent_to_clipboard:[140,0],on_menu_tools_browse_user_library:[140,0],on_menu_view_collapse_all:[140,0],on_menu_edit_down:[140,0],on_menu_view_description:[140,0],on_menu_edit_disable:[140,0],on_menu_edit_up:[140,0],on_menu_tools_show_report:[140,0],on_menu_file_export_inspector_to_clipboard:[140,0],on_menu_tools_safe:[140,0],on_menu_help_plugin:[140,0],on_menu_help_documentation:[140,0]},"lib.pyWx.compatible":{SearchCtrl:[109,1],GCDC:[109,3]},"actions.blender.Cd":{"interface":[71,0],get_relevant:[71,0]},"lib.odict.odict":{index:[123,0],setdefault:[123,0],keys:[123,0],items:[123,0],clear:[123,0],move:[123,0],update:[123,0],values:[123,0],popitem:[123,0]},"lib.formField.Form.ReadFileField":{to_python:[54,0]},"pyWx.wxGlade.dialogs.FolderFileBrowser":{GetTreeLabel:[44,0]},"lib.formField.Form.ImageTypeField":{fix_string:[54,0]},"lib.system.MethodRegister":{unregister_extension:[24,0],register:[24,0],get_methods:[24,0],does_process:[24,0],unregister_method:[24,0]},"lib.formField.BooleanField":{to_string:[54,0],to_python:[54,0]},"lib.formField.FontFileField":{init_dictionary:[54,0]},"actions.text.Action":{"interface":[78,0],values:[78,0],init:[78,2],pil:[78,2],get_relevant_field_labels:[78,0]},"lib.odict":{ReadOnlyDict:[123,1],odict:[123,1]},"lib.system":{fix_quotes:[24,3],set_bin_paths:[24,3],split_command:[24,3],find_in:[24,3],filename_to_title:[24,3],TempFile:[24,1],file_extension:[24,3],title:[24,3],shell_cache:[24,3],start:[24,3],shell:[24,3],find_exe:[24,3],is_file:[24,3],wrap:[24,3],call:[24,3],MethodRegister:[24,1],find_command:[24,3],shell_returncode:[24,3],is_www_file:[24,3],ensure_path:[24,3]},"core.config":{Paths:[127,1],add_user_paths:[127,3],fix_python_path:[127,3],init_config_paths:[127,3],verify_app_user_paths:[127,3],load_locale:[127,3],check_config_paths:[127,3],load_locale_only:[127,3],check_fonts:[127,3]},"actions.posterize.Action":{"interface":[117,0],init:[117,2],pil:[117,2]},"lib.pyWx.dialogsInspector.AddTagDialog":{OnTagText:[113,0],OnAdd:[113,0]},"actions.transpose":{Action:[131,1],init:[131,3],transpose:[131,3]},"lib.pyWx.clipboard":{copy_text:[138,3],get_text:[138,3]},"console.console.Frame":{show_progress:[65,0],show_progress_error:[65,0],append_save_action:[65,0],show_image_tree:[65,0],verify_actionlist:[65,0],show_execute_dialog:[65,0],Progress:[65,1],show_status:[65,0],show_files_message:[65,0],show_scrolled_message:[65,0]},"actions.imagemagick":{Action:[52,1]},"lib.pyWx.vlist":{Box:[142,1],TestFrame:[142,1],example:[142,3]},"lib.events.Receiver":{unsubscribe_all:[88,0],subscribe:[88,0],unsubscribe:[88,0]},"actions.desaturate.Action":{"interface":[30,0],init:[30,2],pil:[30,2]},"actions.tamogen.Action":{get_relevant_field_labels:[15,0],pil:[15,2],init:[15,2],values:[15,0],"interface":[15,0]},"lib.metadata.InfoFile":{split_vars:[72,6]},"actions.blender.BlenderObject":{set_args:[71,0],name:[71,4],get_relevant:[71,0],get_name:[71,0],"interface":[71,0],get_command:[71,0]},"other.tamogen.BoundingBox":{get_right:[139,0],right:[139,4],get_left:[139,0],set_right:[139,0],bottom:[139,4],top:[139,4],set_top:[139,0],set_bottom:[139,0],reset_y:[139,0],get_top:[139,0],set_left:[139,0],move_down:[139,0],move_right:[139,0],get_bottom:[139,0],left:[139,4]},"lib.pyWx.vlistTag":{TestContentBox:[151,1],TestDialog:[151,1],TestFrame:[151,1],Dialog:[151,1],example:[151,3],TestBrowser:[151,1]},"lib.pyWx.popup.LabelFileCtrl":{GetWildcard:[118,0]},"actions.rank":{Action:[158,1],rnk:[158,3],init:[158,3]},"lib.formField.PositiveNonZeroFloatField":{to_python:[54,0]},"actions.delete_tags":{Action:[164,1]},"core.models.StampMixin":{get_relevant_field_labels:[42,0],"interface":[42,0]},"other.pyWx.toasterbox.ToasterBoxWindow":{Play:[57,0],DrawText:[57,0],SetPopupSize:[57,0],AddPanel:[57,0],NotifyTimer:[57,0],OnClose:[57,0],GetPopupText:[57,0],SetPopupBitmap:[57,0],SetPopupPosition:[57,0],SetPopupBackgroundColor:[57,0],ScrollDown:[57,0],ScrollUp:[57,0],SetPopupTextColor:[57,0],SetPopupPauseTime:[57,0],SetPopupScrollSpeed:[57,0],SetPopupText:[57,0],SetPopupTextFont:[57,0],SetPopupPositionByInt:[57,0],OnMouseDown:[57,0]},"lib.formField.Form.PositiveFloatField":{to_python:[54,0]},"pyWx.dialogs.ActionDialog":{GetTagSelection:[1,0],GetListBox:[1,0],OnActivate:[1,0],ContentBrowser:[1,4],GetStringSelection:[1,0],ExtractTags:[1,0]},"pyWx.gui.DialogsMixin":{show_log:[79,0],show_progress:[79,0],show_question:[79,0],show_status:[79,0],show_message:[79,0],show_image_tree:[79,0],show_info:[79,0],get_icon_filename:[79,0],show_files_message:[79,0],load_actionlist_data:[79,0],show_notification:[79,0],show_report:[79,0],show_error:[79,0],show_progress_error:[79,0],set_setting:[79,0],set_report:[79,0],show_execute_dialog:[79,0],get_setting:[79,0],show_scrolled_message:[79,0]},"lib.pyWx.tag":{TestContentCtrl:[10,1],extract_tags:[10,3],TestFrame:[10,1],ContentMixin:[10,1],TestBrowser:[10,1],example:[10,3],Browser:[10,1]},"actions.highlight.Action":{"interface":[101,0],init:[101,2],pil:[101,2]},"lib.pyWx.popup.PixelCtrl":{SizeCtrl:[118,4],SplitValue:[118,0],SetValue:[118,0],SetFocus:[118,0],GetValue:[118,0]},"lib.pyWx.folderFileBrowser.ListCtrl":{CreateColumns:[59,0],OnGetItemImage:[59,0],InitData:[59,0],RefreshAllItems:[59,0],OnGetItemText:[59,0],OnGetItemAttr:[59,0],SetFilter:[59,0],SetData:[59,0]},"pyWx.wxGlade.frame.Tree":{OnCompareItems:[140,0]},"actions.colorize":{Action:[20,1],init:[20,3],colorize:[20,3]},"core.api":{apply_actions_to_photo:[23,3],check_actionlist:[23,3],assert_safe:[23,3],import_actions:[23,3],open_actionlist:[23,3],verify_images:[23,3],process_error:[23,3],init:[23,3],apply_action_to_photo:[23,3],init_actions:[23,3],log_error:[23,3],init_error_log_file:[23,3],get_image_infos_from_folder:[23,3],filter_image_infos:[23,3],get_photo:[23,3],get_image_infos:[23,3],get_paths_and_settings:[23,3],flush_log:[23,3],save_actionlist:[23,3],PathError:[23,5],check_actionlist_file_only:[23,3],apply_actions_to_photos:[23,3],get_vars:[23,3],import_module:[23,3]},"actions.time_shift.Action":{get_relevant_field_labels:[50,0],"interface":[50,0],init:[50,2],apply:[50,0]},"actions.background.Action":{"interface":[84,0],get_relevant_field_labels:[84,0],init:[84,2],pil:[84,2]},"actions.convert_mode.Action":{"interface":[32,0],apply:[32,0],init:[32,2]},"actions.common":{Action:[27,1],init:[27,3],common:[27,3]},"actions.desaturate":{Action:[30,1],init:[30,3],grayscale:[30,3]},"actions.grid":{Action:[33,1],make_grid:[33,3],init:[33,3]},"lib.pyWx.inspector":{Table:[34,1],TestFrame:[34,1],Grid:[34,1]},"other.EXIF":{s2n_motorola:[36,3],s2n_intel:[36,3],Ratio:[36,1],olympus_special_mode:[36,3],make_string:[36,3],make_string_uc:[36,3],EXIF_header:[36,1],nikon_ev_bias:[36,3],usage:[36,3],IFD_Tag:[36,1],process_file:[36,3],gcd:[36,3]},"lib.pyWx.imageFileBrowser":{truncate:[37,3],ListCtrl:[37,1],example:[37,3],Dialog:[37,1]},"actions.copy.Action":{"interface":[124,0],apply:[124,0],is_overwrite_existing_images_forced:[124,0],is_done_info:[124,0]},"lib.pyWx.inspectorTag.Frame":{OnClose:[70,0],GetGrid:[70,0],CreateBitmapButton:[70,0],Browser:[70,4]},"actions.save_metadata.Action":{apply:[31,0]},"pyWx.wxGlade.dialogs":{FilesDialog:[44,1],ExecuteDialog:[44,1],StatusDialog:[44,1],FolderFileBrowser:[44,1],ImageTreeDialog:[44,1],ErrorDialog:[44,1],WritePluginDialog:[44,1]},"other.pep8":{print_statistics:[45,3],Checker:[45,1],missing_whitespace_around_operator:[45,3],message:[45,3],python_3000_raise_comma:[45,3],iskeyword:[45,3],maximum_line_length:[45,3],whitespace_before_parameters:[45,3],tabs_or_spaces:[45,3],missing_whitespace:[45,3],process_options:[45,3],whitespace_around_comma:[45,3],extraneous_whitespace:[45,3],selftest:[45,3],input_dir:[45,3],get_count:[45,3],get_statistics:[45,3],trailing_whitespace:[45,3],excluded:[45,3],python_3000_has_key:[45,3],input_file:[45,3],trailing_blank_lines:[45,3],mute_string:[45,3],get_warning_statistics:[45,3],python_3000_backticks:[45,3],ignore_code:[45,3],find_checks:[45,3],missing_newline:[45,3],whitespace_before_inline_comment:[45,3],filename_match:[45,3],imports_on_separate_lines:[45,3],whitespace_around_named_parameter_equals:[45,3],tabs_obsolete:[45,3],whitespace_around_operator:[45,3],python_3000_not_equal:[45,3],compound_statements:[45,3],print_benchmark:[45,3],expand_indent:[45,3],indentation:[45,3],blank_lines:[45,3],get_error_statistics:[45,3]},"actions.warm_up":{Action:[46,1],init:[46,3],warmup:[46,3]},"lib.pyWx.graphics":{image:[47,3],bitmap_open:[47,3],bitmap:[47,3]},"actions.color_to_alpha.Action":{get_relevant_field_labels:[2,0],"interface":[2,0],init:[2,2],pil:[2,2]},"actions.sketch.Action":{"interface":[116,0],init:[116,2],pil:[116,2]},"pyWx.dialogs.ActionListBox":{OnContextMenu:[1,0],SetActions:[1,0],SetTag:[1,0],IsEmpty:[1,0],GetItem:[1,0],OnViewSource:[1,0],RefreshList:[1,0],TranslateAction:[1,0],GetStringSelection:[1,0],SetFilter:[1,0]},"pyWx.gui.DropletFrame":{execute:[79,0]},"other.pyWx.toasterbox":{ToasterBox:[57,1],ToasterBoxWindow:[57,1]},"actions.canvas.Action":{"interface":[160,0],values:[160,0],init:[160,2],pil:[160,2]},"pyWx.wxGlade.dialogs.ErrorDialog":{on_abort:[44,0],on_details:[44,0],on_skip:[44,0],on_ignore:[44,0]},"lib.pyWx.popup.AutoCompleteDictionaryFileCtrl":{InputCtrl:[118,4]},"core.pil.Layer":{apply_pil:[6,0],open:[6,0]},"actions.minimum.Action":{"interface":[7,0],init:[7,2],pil:[7,2]},"lib.formField.Form.DictionaryReadFileField":{init_dictionary:[54,0],to_python:[54,0]},"actions.watermark.Action":{init:[94,2],pil:[94,2]},"lib.pyWx.folderFileBrowser.Panel":{on_filter_text:[59,0],UpdateHeaders:[59,0],on_tree_sel_changed:[59,0],GetTreeLabel:[59,0],SetColumnWidths:[59,0],SetData:[59,0]},"lib.pyWx.droplet.FileDropTarget":{OnDropFiles:[49,0]},"lib.pyWx.inspectorTag":{TestContentGrid:[70,1],TestFrame:[70,1],Grid:[70,1],Frame:[70,1],TestBrowser:[70,1]},"lib.pyWx.vlistTag.Dialog":{OnDoubleClick:[151,0],ContentBrowser:[151,4],OnOk:[151,0]},"core.models.CropMixin":{"interface":[42,0],get_relevant_field_labels:[42,0],values:[42,0]},"other.tamogen.FillImages":{findClosestImageAndToneDiff:[139,0],append:[139,0]},"lib.pyWx.treeDragDrop":{Mixin:[77,1]},"actions.minimum":{Action:[7,1],init:[7,3],minimum:[7,3]},"lib.pyWx.imageFileBrowser.ListCtrl":{Select:[37,0],Deselect:[37,0],GetItemFile:[37,0],GetItemLabel:[37,0],GetLabel:[37,0]},"lib.pyWx.screenshot":{get_window:[81,3],save:[81,3],save_window:[81,3],get:[81,3]},"actions.background":{Action:[84,1],init:[84,3],background:[84,3]},"core.translation":{to_local:[86,3],to_english:[86,3]},"lib.formField.PositiveFloatField":{to_python:[54,0]},"lib.pyWx.shell.Frame":{on_close:[26,0],OnIdle:[26,0]},"lib.pyWx.treeDragDrop.Mixin":{DisableDrag:[77,0],MoveChildUp:[77,0],EnableDrag:[77,0],OnEndDrag:[77,0],OnCompareItems:[77,0],OnBeginDrag:[77,0],GetRootChild:[77,0],GetItemChildren:[77,0],MoveChildDown:[77,0]},"lib.pyWx.autoCompleteCtrls":{AutoCompleteIconCtrl:[91,1],AutoCompleteTextCtrl:[91,1]},"core.models.Action.PerspectiveField":{init_dictionary:[42,0]},"actions.save":{Action:[92,1],init:[92,3]},"linux.droplet":{install_menu_item:[93,3],on_menu_file_export_droplet_actionlist:[93,3],create_phatch_recent_thunar_action:[93,3],create_phatch_recent_droplet:[93,3],create_phatch_inspector_droplet:[93,3],on_menu_file_export_thunar_actionlist:[93,3],on_menu_file_export_nautilus_actionlist:[93,3],menu_action:[93,3],on_menu_file_export_thunar_inspector:[93,3],create_phatch_droplet:[93,3],create_phatch_inspect_nautilus_action:[93,3],create_phatch_nautilus_action:[93,3],install:[93,3],create_phatch_recent_nautilus_action:[93,3],on_menu_file_export_droplet_inspector:[93,3],on_menu_file_export_droplet_recent:[93,3],on_menu_file_export_nautilus_inspector:[93,3],on_menu_file_export_nautilus_recent:[93,3],create_phatch_inspect_thunar_action:[93,3],create_phatch_thunar_action:[93,3],on_menu_file_export_thunar_recent:[93,3]},"actions.delete_tags.Action":{"interface":[164,0],apply:[164,0],get_relevant_field_labels:[164,0]},"core.models.Action.BlenderRotationField":{title_parser:[42,0],get_path:[42,0]},"core.models.OffsetMixin":{"interface":[42,0],get_relevant_field_labels:[42,0],values:[42,0]},"lib.pyWx.popup.ChoiceCtrl":{SetValue:[118,0]},"lib.linux.nautilusExtension":{nautilus_exists:[103,3],create_nautilus_extension:[103,3]},"lib.formField.IntegerField":{to_python:[54,0]},"actions.crop.Action":{init:[64,2],pil:[64,2]},"actions.scale":{preserve_proportions:[110,3],Action:[110,1],init:[110,3]},"lib.formField.FileField":{to_python:[54,0]},"actions.colorize.Action":{"interface":[20,0],init:[20,2],pil:[20,2]},"actions.write_tag":{Action:[115,1]},"core.models.Action.MaskFileField":{init_dictionary:[42,0]},"pyWx.dialogs.ProgressDialog":{close:[1,0],sleep:[1,0],update:[1,0]},"lib.pyWx.inspector.Grid.Table":{IsEmptyCell:[34,0],SetValue:[34,0],DeleteRows:[34,0],GetValue:[34,0],GetAttr:[34,0],GetGrid:[34,0],GetNumberCols:[34,0],GetNumberRows:[34,0]},"lib.fonts":{font_dictionary:[119,3],name:[119,3],locate_files:[119,3],set_font_cache:[119,3],basename:[119,3],collect_fonts:[119,3],merge:[119,3],font_names:[119,3],example:[119,3]},"pyWx.wxGlade.dialogs.ExecuteDialog":{on_browse:[44,0],on_source:[44,0],on_default:[44,0]},"lib.metadata.InfoExtract":{extract_all:[72,0],set:[72,0],get_vars_by_info:[72,6],dump:[72,0],clear_cache:[72,0],open:[72,0],set_source:[72,0],set_vars:[72,0],expand_var:[72,6],scan_infos:[72,6],types:[72,0],provides:[72,0],set_orientation:[72,0],clear:[72,0],expand:[72,6]},"lib.formField.Form.FloatField":{to_python:[54,0]},"actions.blender.Box":{get_relevant:[71,0],"interface":[71,0]},"pyWx.dialogs.ImageInspectorBrowser":{ContentCtrl:[1,4]},"lib.pyWx.imageFileBrowser.Dialog":{SetValue:[37,0],OnItemSelected:[37,0],ShowPath:[37,0],OnText:[37,0],OnActivated:[37,0],Select:[37,0]},"actions.blender.BlenderObjects":{"interface":[71,0],get_selected_object:[71,0]},"lib.colors":{HTMLColorToPILColor:[126,3],PILColorToRGB:[126,3],HTMLColorToRGBA:[126,3],RGBToHTMLColor:[126,3],PILColorToHTMLColor:[126,3],HTMLColorToRGB:[126,3],RGBToPILColor:[126,3]},"actions.lossless_jpeg.UtilityMixin":{get_relevant_field_labels:[63,0],apply:[63,0],"interface":[63,0],call:[63,0]},"actions.contour.Action":{"interface":[25,0],pil:[25,2],init:[25,2],values:[25,0]},"lib.pyWx.imageInspector.OpenMixin":{OnOpen:[29,0],OpenImages:[29,0],OnOpenUrl:[29,0],GetTopLevelParent:[29,0],OpenImage:[29,0]},"lib.formField.ImageTypeField":{fix_string:[54,0]},"actions.shadow.Action":{"interface":[108,0],pil:[108,2],init:[108,2],values:[108,0]},"pyWx.dialogs.ImageInspectorFrame":{Browser:[1,4]},"actions.equalize":{Action:[135,1],init:[135,3],equalize:[135,3]},"pyWx.dialogs.WritePluginDialog":{on_help:[1,0],template_show:[1,0],on_template:[1,0]},"lib.formField.Form.IntegerField":{to_python:[54,0]},"actions.fit.Action":{"interface":[21,0],pil:[21,2],init:[21,2],values:[21,0]},"lib.pyWx.imageInspector.Frame":{UpdateIfNeeded:[29,0],SetTitleFilename:[29,0],GetGrid:[29,0],OnActivate:[29,0],OpenImages:[29,0],OpenImage:[29,0],Browser:[29,1]},"core.models.Action":{MaskFileField:[42,1],values:[42,0],BlenderRotationField:[42,1],is_done:[42,0],WatermarkFileField:[42,1],BlenderField:[42,1],init:[42,2],HighlightFileField:[42,1],BlenderObjectField:[42,1],apply:[42,0],PerspectiveField:[42,1],ensure_path_or_desktop:[42,0]},"lib.formField.ExifItpcField":{fix_string:[54,0],to_python:[54,0]},"actions.blender.Camera":{"interface":[71,0],get_relevant:[71,0],set_args:[71,0]},"lib.safe":{UnsafeError:[157,5],format_expr:[157,3],eval_safe:[157,3],assert_safe:[157,3],extend_vars:[157,3],compile_expr:[157,3],eval_restricted:[157,3],assert_safe_expr:[157,3]},"actions.canvas":{Action:[160,1],init:[160,3],canvas_size:[160,3]},"lib.formField.DictionaryReadFileField":{init_dictionary:[54,0],to_python:[54,0]},"actions.lossless_jpeg.Jpegtran":{get_relevant_field_labels:[63,0],"interface":[63,0],get_command_line:[63,0],get_command_line_args:[63,0]},"lib._pyexiv2":{is_writable_format_iptc:[162,3],extension_to_image_format:[162,3],flush:[162,3],is_readable_format:[162,3],is_writable_format:[162,3],read_thumbdata:[162,3],write_thumbdata:[162,3],write_metadata:[162,3],is_writable_format_exif:[162,3]},"lib.linux.desktop":{create_droplet:[163,3]},"actions.rotate.Action":{"interface":[51,0],init:[51,2],pil:[51,2]},"pyWx.dialogs.ImageTreeDialog":{inspect_tree_item:[1,0],inspect_list_item:[1,0],ShowButtons:[1,0],UpdateHeaders:[1,0],inspect:[1,0],SetOkLabel:[1,0],on_tree_item_right_click:[1,0],SetColumnWidths:[1,0],on_list_item_right_click:[1,0],SetData:[1,0]},"actions.invert":{Action:[8,1],init:[8,3],invert:[8,3]},"lib.pyWx.wxPil":{pil_wxImage:[9,3],pil_wxBitmap:[9,3],wxBitmap_pil:[9,3],wxImage_pil:[9,3]},"other.pyWx.TextCtrlAutoComplete":{getSmallDnArrowImage:[12,3],getSmallUpArrowData:[12,3],getSmallUpArrowImage:[12,3],getSmallUpArrowBitmap:[12,3],TextCtrlAutoComplete:[12,1],getSmallDnArrowBitmap:[12,3],myListCtrl:[12,1],test:[12,1],getSmallDnArrowData:[12,3]},"actions.solarize.Action":{"interface":[133,0],init:[133,2],pil:[133,2]},"actions.mirror":{get_dimensions:[16,3],xy_mirror:[16,3],y_mirror:[16,3],x_mirror:[16,3],Action:[16,1],init:[16,3],get_scales:[16,3],tile:[16,3]},"lib.pyWx.inspector.Table":{IsEmptyCell:[34,0],SetValue:[34,0],DeleteRows:[34,0],GetValue:[34,0],GetAttr:[34,0],GetGrid:[34,0],GetNumberCols:[34,0],GetNumberRows:[34,0]},"console.console.Progress":{close:[65,0],erase:[65,0],update:[65,0]},"lib.formField.Form.FontFileField":{init_dictionary:[54,0]},"actions.contour":{Action:[25,1],put_border:[25,3],put_contour:[25,3],init:[25,3]},"pyWx.dialogs.ImageInspectorGrid":{CreateRowLabelMenu:[1,0],HasActionList:[1,0],ProcessKey:[1,0],InsertTagInActionList:[1,0]},"lib.metadata.InfoTest":{provides:[72,6]},"lib.formField.FileSizeField":{to_python:[54,0]},"actions.border.Action":{"interface":[28,0],get_relevant_field_labels:[28,0],init:[28,2],values:[28,0],pil:[28,2]},"lib.pyWx.tag.Browser":{OnTag:[10,0],GetTags:[10,0],ContentCtrl:[10,4],GetItemTags:[10,0],OnSize:[10,0],EnableResize:[10,0],OnFilter:[10,0],IsEmpty:[10,0],CheckEmpty:[10,0],GetContent:[10,0]},"lib.pyWx.droplet.Mixin":{SetAsFileDropTarget:[49,0]},"lib.pyWx.vlistTag.TestBrowser":{ContentCtrl:[151,4]},"lib.pyWx.imageInspector.Grid.Table":{IsEmptyCell:[29,0],DeleteCols:[29,0],SetValue:[29,0],SetRowColours:[29,0],DeleteRows:[29,0],SetRowLabelValue:[29,0],GetRowLabelValue:[29,0],GetValue:[29,0],GetAttr:[29,0],IsEditableCell:[29,0],GetNumberCols:[29,0],GetColLabelValue:[29,0],GetNumberRows:[29,0]},"actions.round":{create_rounded_rectangle:[40,3],create_corner:[40,3],init:[40,3],Action:[40,1],round_image:[40,3]},"actions.rank.Action":{"interface":[158,0],init:[158,2],pil:[158,2]},"lib.metadata.InfoPexif":{provides:[72,6]},"actions.time_shift":{Action:[50,1],init:[50,3],get_date:[50,3]},"actions.rotate":{Action:[51,1],init:[51,3],rotate:[51,3]},"lib.imageTable.TableImage":{get_time:[3,0],update_time:[3,0],update_if_modified:[3,0],is_modified:[3,0],update:[3,0]},"actions.lossless_jpeg":{Exiftran:[63,1],UtilityMixin:[63,1],Jpegtran:[63,1],utilities_dict:[63,3],Arguments:[63,1],LossLessSaveUtilityMixin:[63,1],Action:[63,1]},"lib.formField.PixelField":{get_size:[54,0]},"lib.pyWx.inspector.Grid":{AttrIncRef:[34,0],RefreshAll:[34,0],SetRowColours:[34,0],UpdateNumberRows:[34,0],IsTableEmptyCell:[34,0],OnRightDown:[34,0],UpdateValues:[34,0],SetTableValue:[34,0],GetTableValue:[34,0],Table:[34,1],SetAttrReadOnly:[34,0],GetTableAttr:[34,0]},"lib.pyWx.imageInspector.Table":{IsEmptyCell:[29,0],DeleteCols:[29,0],SetValue:[29,0],SetRowColours:[29,0],DeleteRows:[29,0],SetRowLabelValue:[29,0],GetRowLabelValue:[29,0],GetColLabelValue:[29,0],GetAttr:[29,0],IsEditableCell:[29,0],GetNumberCols:[29,0],GetValue:[29,0],GetNumberRows:[29,0]},"lib.pyWx.popup.EditPanel":{Close:[118,0]},"actions.effect.Action":{"interface":[0,0],init:[0,2],pil:[0,2]},"core.models.LosslessSaveMixin":{"interface":[42,0],is_overwrite_existing_images_forced:[42,0],is_done:[42,0],get_lossless_filename:[42,0]},"lib.pyWx.folderFileBrowser.OpenMixin":{get_list_file:[59,0],get_tree_folder:[59,0],start_list_item:[59,0],GetTreeLabel:[59,0],start_tree_item:[59,0],on_tree_item_activated:[59,0],on_list_item_activated:[59,0]},"lib.pyWx.treeEdit.TreeMixin":{on_item_activated:[161,0],append_form_by_label:[161,0],get_form:[161,0],CreateImageList:[161,0],resize_popup:[161,0],expand_forms:[161,0],enable_collapse_automatic:[161,0],on_sel_changing:[161,0],on_item_expanding:[161,0],append_field:[161,0],import_form:[161,0],append_form:[161,0],export_form:[161,0],append_form_by_label_to_last:[161,0],get_popup_pos_offset_size:[161,0],move_form_selected_down:[161,0],is_field:[161,0],update_form_relevance:[161,0],enable_selected_form:[161,0],enable_form:[161,0],has_forms:[161,0],set_form_field_value_selected:[161,0],append_form_by_label_to_selected:[161,0],get_form_field:[161,0],is_form_selected:[161,0],is_form_enabled:[161,0],get_last_form:[161,0],on_left_down:[161,0],create_popup_selected:[161,0],export_forms:[161,0],append_forms:[161,0],is_form:[161,0],enable_form_item:[161,0],delete_all_forms:[161,0],set_form_field_value:[161,0],on_sel_changed:[161,0],get_form_fields_visible:[161,0],get_form_item:[161,0],create_popup:[161,0],toggle_form_item:[161,0],is_field_selected:[161,0],get_form_selected:[161,0],events:[161,0],close_popup:[161,0],move_form_selected_up:[161,0],collapse_forms:[161,0],tree_label:[161,0],set_item_image:[161,0],on_select:[161,0],remove_selected_form:[161,0]},"actions.imagemagick.Action":{"interface":[52,0],apply:[52,0],init:[52,0],get_relevant_field_labels:[52,0]},"lib.formField.Form.BooleanField":{to_string:[54,0],to_python:[54,0]},"lib.formField.ChoiceField":{set_choices:[54,0]},"actions.transpose.Action":{"interface":[131,0],apply:[131,0],init:[131,2],pil:[131,2]},"actions.median.Action":{"interface":[82,0],init:[82,2],pil:[82,2]},"lib.pyWx.popup.ColorCtrl":{OnSelectColor:[118,0],GetColorAsString:[118,0],GetValue:[118,0]},"actions.blender":{Box:[71,1],Book:[71,1],Floor:[71,1],BlenderObject:[71,1],BlenderObjects:[71,1],Cd:[71,1],Sphere:[71,1],Lcd:[71,1],Camera:[71,1],Can:[71,1],Background:[71,1],Action:[71,1]},"lib.pyWx.paint.Mixin":{GetPaintMessage:[60,0],OnEraseBackground:[60,0],EnableBackgroundPainting:[60,0]},"linux.thunar":{thunar_exists:[75,3],create_thunar_action:[75,3]},"actions.blender.Background":{"interface":[71,0],get_relevant:[71,0],set_args:[71,0]},"lib.openImage":{verify_image:[76,3],save_libtiff:[76,3],open_image_with_pil:[76,3],open_inkscape:[76,3],verify_image_without_pil:[76,3],verify_image_with_pil:[76,3],verify_imagemagick:[76,3],open_imagemagick:[76,3],verify_xcf:[76,3],open_image_with_command:[76,3],get_info_libtiff:[76,3],verify_dcraw:[76,3],open_dcraw:[76,3],open_xcf:[76,3],check_libtiff:[76,3],open_libtiff:[76,3],open_thumb:[76,3],open_image_without_pil:[76,3],open_image_exif:[76,3],open:[76,3],open_image_exif_thumb:[76,3]},"actions.tamogen":{Action:[15,1],init:[15,3],mosaic:[15,3]},"actions.color_to_alpha":{Action:[2,1],difference1:[2,3],init:[2,3],color_to_alpha:[2,3],difference2:[2,3]},"lib.formField.TestFieldMixin":{get:[54,0]},"pyWx.gui":{DropletApp:[79,1],inspect:[79,3],DialogsMixin:[79,1],set_theme:[79,3],App:[79,1],drop:[79,3],DropletMixin:[79,1],DropletFrame:[79,1],main:[79,3],findWindowById:[79,3],Frame:[79,1],ImageInspectorApp:[79,1]},"actions.lossless_jpeg.Exiftran":{"interface":[63,0],get_relevant_field_labels:[63,0],get_command_line:[63,0],get_command_line_args:[63,0]},"lib.pyWx.droplet":{fix_paths:[49,3],Frame:[49,1],FileDropTarget:[49,1],Mixin:[49,1]},"lib.formField.CommandLineField":{raise_error_not_found:[54,0],raise_error_out_max:[54,0],raise_error_file:[54,0],to_python:[54,0]},"lib.pyWx.popup.ComboCtrl":{RegisterStyle:[118,0],Get:[118,0]},"lib.pyWx.imageInspector.Grid":{UpdateThumbs:[29,0],AskText:[29,0],ProcessKey:[29,0],OnDrop:[29,0],show_message:[29,0],OnRowLabelPaint:[29,0],AddRow:[29,0],OnGridEditorHidden:[29,0],OnGridLabelLeftDclicked:[29,0],OnCornerLabelPaint:[29,0],DeleteRows:[29,0],ShowError:[29,0],AddColumnRow:[29,0],UpdateRowsColsNumbers:[29,0],OnGridRowLabelRightClicked:[29,0],OnKeyDown:[29,0],OnColLabelPaint:[29,0],OnGridCellChange:[29,0],show_error:[29,0],DeleteCell:[29,0],Ask:[29,0],CreateRowLabelMenu:[29,0],OnGridCellLeftClick:[29,0],OnGridCellRightClicked:[29,0],RefreshAll:[29,0],ShowLog:[29,0],GetCellRowCol:[29,0],UpdateIfNeeded:[29,0],UpdateValues:[29,0],OnGridColLabelRightClicked:[29,0],ChangeRowValues:[29,0],CopyCellValue:[29,0],OpenImages:[29,0],DeleteCols:[29,0],OnGridLabelRightClicked:[29,0],ShowMessage:[29,0],SetTitleFilename:[29,0],CopyRowLabel:[29,0],Table:[29,1],RenameRowLabelValue:[29,0],OpenImage:[29,0]},"actions.lossless_jpeg.Action":{init:[63,0]},"actions.lossless_jpeg.LossLessSaveUtilityMixin":{get_relevant_field_labels:[63,0],call:[63,0]},"actions.geotag.Action":{"interface":[105,0],apply:[105,0],init:[105,2]},"other.surd":{surd:[106,1],test_driver:[106,3],test_error:[106,3],gcd:[106,3]},"other.pyWx.toasterbox.ToasterBox":{SetPopupPosition:[57,0],Play:[57,0],SetPopupSize:[57,0],AddPanel:[57,0],SetTitle:[57,0],SetPopupPositionByInt:[57,0],CleanList:[57,0],MoveAbove:[57,0],SetPopupBackgroundColor:[57,0],SetPopupScrollSpeed:[57,0],SetPopupBitmap:[57,0],Notify:[57,0],SetPopupPauseTime:[57,0],GetToasterBoxWindow:[57,0],SetPopupText:[57,0],SetPopupTextFont:[57,0],SetPopupTextColor:[57,0]},"lib.pyWx.tag.TestContentCtrl":{IsEmpty:[10,0],SetTag:[10,0],SetFilter:[10,0]},"lib.pyWx.inspectorTag.TestBrowser":{ContentCtrl:[70,4]},"lib.formField.Form.PixelField":{get_size:[54,0]},"lib.formField.Form.FileSizeField":{to_python:[54,0]},"lib.pyWx.dialogsInspector":{AddTagDialog:[113,1]},"core.message.ProgressReceiver":{update_index:[83,0],set_max:[83,0],update:[83,0],update_filename:[83,0],sleep:[83,0],close:[83,0]},"lib.pyWx.tag.ContentMixin":{GetFilter:[10,0],GetBrowser:[10,0],CheckEmpty:[10,0],SetTag:[10,0],GetEmpty:[10,0],GetTag:[10,0]},"actions.posterize":{Action:[117,1],init:[117,3],posterize:[117,3]},"lib.pyWx.popup":{PixelCtrl:[118,1],FolderCtrl:[118,1],ForcedBoxSizer:[118,1],ChoiceCtrl:[118,1],SetMinVerSize:[118,3],EditPanel:[118,1],FileCtrl:[118,1],untranslated:[118,3],LabelFileCtrl:[118,1],BooleanCtrl:[118,1],ctrl_factory:[118,3],SliderCtrl:[118,1],DictionaryFileCtrl:[118,1],AutoCompleteDictionaryFileCtrl:[118,1],ImageDictionaryFileCtrl:[118,1],TextCtrl:[118,1],ColorCtrl:[118,1],FloatSliderCtrl:[118,1],ImageReadFileCtrl:[118,1],FontFileCtrl:[118,1],NotImplementedError:[118,5],ComboCtrl:[118,1],example:[118,3],FileSizeCtrl:[118,1]},"actions.blender.Book":{"interface":[71,0],get_relevant:[71,0],set_args:[71,0]},"lib.pyWx.popup.BooleanCtrl":{Get:[118,0]},"core.pil.InfoPhoto":{set:[6,0],log:[6,0],update_size:[6,0],clear_log:[6,0],update:[6,0],get_log:[6,0],is_dirty:[6,0],assert_writable:[6,0],assert_transparency:[6,0],close:[6,0],save:[6,0]},"actions.copy":{Action:[124,1]},"core.settings":{create_settings:[125,3]},"actions.save.Action":{get_relevant_field_labels:[92,0],is_done_info:[92,0],get_format:[92,0],init:[92,2],"interface":[92,0],apply:[92,0],is_overwrite_existing_images_forced:[92,0]},"other.EXIF.EXIF_header":{olympus_decode_tag:[36,0],dump_IFD:[36,0],list_IFDs:[36,0],extract_TIFF_thumbnail:[36,0],next_IFD:[36,0],canon_decode_tag:[36,0],first_IFD:[36,0],n2s:[36,0],s2n:[36,0],decode_maker_note:[36,0]},"actions.geek.Action":{get_relevant_field_labels:[35,0],apply:[35,0],is_overwrite_existing_images_forced:[35,0],"interface":[35,0],init:[35,0]},"core.models.Action.BlenderField":{init_dictionary:[42,0],get_path:[42,0]},"other.pyWx.img2py":{crunch_data:[128,3],main:[128,3]},"actions.rename.Action":{"interface":[43,0],apply:[43,0],is_done_info:[43,0],is_overwrite_existing_images_forced:[43,0]},"actions.write_tag.Action":{"interface":[115,0],apply:[115,0]},"lib.pyWx.imageInspector.AddTagDialog":{OnTagText:[29,0],OnAdd:[29,0],GetModal:[29,0]},"lib.pyWx.popup.ImageDictionaryFileCtrl":{GetValue:[118,0],OnChange:[118,0],SetValue:[118,0]},"actions.solarize":{Action:[133,1],init:[133,3],solarize:[133,3]},"lib.system.TempFile":{close:[24,0]},"pyWx.gui.App":{init:[79,0],show_frame:[79,0],OnInit:[79,0],MacReopenApp:[79,0]},"lib.metadataTest":{is_string:[137,3],now:[137,3],main:[137,3],Rational:[137,1],DateTime:[137,1]},"lib.windows.locate.Inkscape":{get_path:[150,0]},"pyWx.wxGlade.frame":{App:[140,1],Tree:[140,1],Frame:[140,1]},"lib.pyWx.vlistTag.TestContentBox":{IsEmpty:[151,0],SetTag:[151,0],SetFilter:[151,0]},"lib.gettextFix":{displayhook:[143,3]},"actions.perspective":{Action:[145,1],init:[145,3],perspective:[145,3]},"lib.formField.PilConstantMixin":{to_python:[54,0]},"pyWx.dialogs.ErrorDialog":{on_skip:[1,0],on_abort:[1,0],on_ignore:[1,0]},"lib.windows.locate":{Applications:[150,1],find_exe:[150,3],Inkscape:[150,1],RegistryApplication:[150,1],Blender:[150,1]},"actions.reflection":{reflect:[153,3],gradient_vector:[153,3],init:[153,3],Action:[153,1],gradient_mask:[153,3]},"other.EXIF.Ratio":{reduce:[36,0]},"other.relativedelta":{relativedelta:[159,1]},"lib.pyWx.treeEdit":{rescale:[161,3],TreeMixin:[161,1],get_index:[161,3],example:[161,3]},"lib.pyWx.popup.FileCtrl":{GetWildcard:[118,0],OnBrowse:[118,0]},"actions.brightness.Action":{"interface":[154,0],init:[154,2],pil:[154,2]},"pyWx.dialogs":{ActionDialog:[1,1],ImageInspectorBrowser:[1,1],ExecuteDialog:[1,1],FilesDialog:[1,1],ActionBrowser:[1,1],ImageInspectorGrid:[1,1],StatusDialog:[1,1],IconMixin:[1,1],BrowseMixin:[1,1],WritePluginDialog:[1,1],get_max_height:[1,3],ImageTreeDialog:[1,1],ErrorDialog:[1,1],ProgressDialog:[1,1],ActionListBox:[1,1],example:[1,3],ImageInspectorFrame:[1,1]},"lib.pyWx.vlistTag.TestDialog":{ContentBox:[151,4]},"lib.windows.locate.Blender":{get_path:[150,0]},"lib.imageTable":{TableImage:[3,1],Table:[3,1]},"lib.formField.Form.FileField":{to_python:[54,0]},"actions.offset.Action":{"interface":[18,0],pil:[18,2],init:[18,2],values:[18,0]},"lib.gps":{get_xml_timez:[11,3],search:[11,3],get_node_value:[11,3],read_gpx:[11,3],get_text:[11,3],handle_trk:[11,3],m:[11,3],handle_gpx:[11,3],handle_trkseg:[11,3],s:[11,3],r:[11,3],get_metadata:[11,3],write_header:[11,3],handle_trkpt:[11,3],d:[11,3]},"core.pil.Photo":{convert:[6,0],set_layer:[6,0],get_thumb:[6,0],log:[6,0],append_to_report:[6,0],apply_pil:[6,0],clear_log:[6,0],get_log:[6,0],call:[6,0],get_flattened_image:[6,0],safe_mode:[6,0],close:[6,0],get_filename:[6,0],rotate_exif:[6,0],save:[6,0],resize:[6,0],get_layer:[6,0]},"lib.pyWx.popup.FolderCtrl":{OnBrowse:[118,0]},"lib.pyWx.popup.FontFileCtrl":{GetDefaultPath:[118,0],Close:[118,0]},"actions.grid.Action":{"interface":[33,0],get_relevant_field_labels:[33,0],init:[33,2],pil:[33,2],values:[33,0]},"pyWx.wxGlade.dialogs.StatusDialog":{on_button_log:[44,0],on_button_report:[44,0]},"actions.blender.Floor":{get_relevant:[71,0],"interface":[71,0]},"lib.pyWx.imageInspector.Frame.Browser":{GetPaintMessage:[29,0],ContentCtrl:[29,4]},"core.models.Action.WatermarkFileField":{init_dictionary:[42,0]},"lib.listData.DataDict":{sort:[80,0],get_headers:[80,0],get_by_header:[80,0],update_headers:[80,0],get:[80,0]},"lib.pyWx.imageInspector":{getPencilBitmap:[29,3],OpenMixin:[29,1],getPencilImage:[29,3],empty_bitmap:[29,3],GridTag:[29,1],Frame:[29,1],AddTagDialog:[29,1],getPencilData:[29,3],Grid:[29,1],Table:[29,1],Browser:[29,1]},"actions.lossless_jpeg.Arguments":{append:[63,0]},"other.pyWx.TextCtrlAutoComplete.TextCtrlAutoComplete":{onEnteredText:[12,0],SetSelectCallback:[12,0],SetChoices:[12,0],onListColClick:[12,0],onClickToggleUp:[12,0],onListDClick:[12,0],onKeyDown:[12,0],SetMultipleChoices:[12,0],onClickToggleDown:[12,0],onControlChanged:[12,0],GetListCtrl:[12,0],onListClick:[12,0],onListItemSelected:[12,0],SetMatchFunction:[12,0],GetSortImages:[12,0],GetChoices:[12,0],SetEntryCallback:[12,0]},"actions.geek":{Action:[35,1]},"actions.saturation":{Action:[38,1],saturation:[38,3],init:[38,3]},"core.message":{ProgressReceiver:[83,1],FrameReceiver:[83,1]},"pyWx.nuovext":{Provider:[39,1]},"lib.pyWx.folderFileBrowser":{WxgPanel:[59,1],example_dict_data:[59,3],OpenMixin:[59,1],ListCtrl:[59,1],PreviewMixin:[59,1],example_data_tuple:[59,3],Panel:[59,1]},"actions.convert_mode":{Action:[32,1],init:[32,3]},"lib.pyWx.autoCompleteCtrls.AutoCompleteIconCtrl":{SetChoices:[91,0],match:[91,0]},"actions.save_metadata":{Action:[31,1]},"lib.pyWx.autoCompleteCtrls.AutoCompleteTextCtrl":{setDynamicChoices:[91,0],StartEvents:[91,0],onListClick:[91,0],onClickToggleDown:[91,0],onControlChanged:[91,0],onActivate:[91,0],initialize:[91,0],StopEvents:[91,0],match:[91,0]},"actions.perspective.Action":{"interface":[145,0],get_relevant_field_labels:[145,0],init:[145,2],pil:[145,2],values:[145,0]},"actions.contrast":{Action:[48,1],init:[48,3],contrast:[48,3]},"lib.pyWx.popup.SliderCtrl":{OnScroll:[118,0],OnSpin:[118,0],SetBackgroundColour:[118,0],SetFocus:[118,0],GetValue:[118,0]},"lib.formField.Form.OrientationField":{to_python:[54,0]},"lib.formField":{PilConstantMixin:[54,1],PositiveNonZeroIntegerField:[54,1],FloatSliderField:[54,1],TiffCompressionField:[54,1],OrientationField:[54,1],ImageDictionaryReadFileField:[54,1],rotation_title_parser:[54,3],AlignVerticalField:[54,1],FileSizeField:[54,1],ImageEffectField:[54,1],Field:[54,1],CsvFileField:[54,1],PositiveNonZeroFloatField:[54,1],TestFieldMixin:[54,1],PixelField:[54,1],OptionalTransposeField:[54,1],set_safe:[54,3],ColorField:[54,1],RankSizeField:[54,1],NotEmptyCharField:[54,1],ImageResampleAutoField:[54,1],ImageModeField:[54,1],ImageReadFileField:[54,1],Form:[54,1],ImageResampleField:[54,1],DpiField:[54,1],files_dictionary:[54,3],EmptyFileField:[54,1],ImageTransposeField:[54,1],PositiveFloatField:[54,1],CharField:[54,1],FontFileField:[54,1],ExifItpcField:[54,1],get_safe:[54,3],ImageDictionaryField:[54,1],ImageTypeField:[54,1],ValidationError:[54,5],DictionaryReadFileField:[54,1],PositiveIntegerField:[54,1],CommandLineField:[54,1],ImageReadTypeField:[54,1],FolderField:[54,1],ImageFilterField:[54,1],GeoReadFileField:[54,1],ReadFileField:[54,1],ChoiceField:[54,1],AlignHorizontalField:[54,1],FileField:[54,1],FloatField:[54,1],SliderField:[54,1],BooleanField:[54,1],IntegerField:[54,1],FileNameField:[54,1],ImageWriteTypeField:[54,1]},"actions.mask":{Action:[55,1],init:[55,3],put_mask:[55,3]},"lib.pyWx.folderFileBrowser.PreviewMixin":{on_list_item_selected:[59,0],show_preview:[59,0]},"actions.mirror.Action":{"interface":[16,0],init:[16,2],pil:[16,2]},"lib.formField.Form.PositiveNonZeroIntegerField":{to_python:[54,0]},"lib.formField.Field":{set:[54,0],to_python:[54,0],get:[54,0],set_as_string:[54,0],get_as_string:[54,0],assert_safe:[54,0],set_globals:[54,2],to_string:[54,0],set_as_string_dirty:[54,0],interpolate:[54,0],eval:[54,0],validate:[54,0],fix_string:[54,0]},"lib.pyWx.about.CreditsDialog":{OnClose:[67,0]},"actions.crop":{Action:[64,1],init:[64,3],crop:[64,3]},"console.console":{CliMixin:[65,1],Frame:[65,1],u:[65,3],ask_yes_no:[65,3],ask:[65,3],Progress:[65,1],main:[65,3],example:[65,3]},"actions.maximum.Action":{"interface":[100,0],init:[100,2],pil:[100,2]},"actions.mask.Action":{"interface":[55,0],init:[55,2],pil:[55,2]},"other.tamogen.BoundingBoxContainer":{append:[139,0],move_down:[139,0],move_right:[139,0],reset_y:[139,0]},"core.message.FrameReceiver":{show_progress:[83,0],show_progress_error:[83,0],append_save_action:[83,0],show_files_message:[83,0],show_error:[83,0],show_execute_dialog:[83,0],show_scrolled_message:[83,0]},"core.models.Action.HighlightFileField":{init_dictionary:[42,0]},"actions.median":{Action:[82,1],init:[82,3],median:[82,3]},"lib.pyWx.about.wxgCreditsDialog":{OnClose:[67,0]},"lib.events":{Sender:[88,1],SendListener:[88,1],send:[88,4],subscribe:[88,3],Receiver:[88,1],ReceiveListener:[88,1],example:[88,3]},"other.pubsub":{test:[89,3],Message:[89,1],getStrAllTopics:[89,3],PublisherClass:[89,1]},"core.safeGlobals":{add_module:[90,3],safe_globals:[90,3],add_dictionary:[90,3],allow:[90,3]},"lib.formField.Form.CommandLineField":{raise_error_not_found:[54,0],raise_error_out_max:[54,0],raise_error_file:[54,0],to_python:[54,0]},"lib.windows.locate.RegistryApplication":{get_path:[150,0]},"lib.metadata":{info:[72,4],InfoTest:[72,1],UnknownTypeError:[72,5],InfoZexif:[72,1],InfoProvideError:[72,5],InfoPil:[72,1],DumpInfo:[72,1],Info:[72,4],InfoExif:[72,1],is_writeable_not_exif_tag:[72,3],InfoIptc:[72,1],get_vars_by_info:[72,3],convert_from_string:[72,3],InfoEXIF:[72,1],InfoFile:[72,1],InfoPexif:[72,1],InfoExtract:[72,1],is_editable_tag:[72,3],is_writable_tag:[72,3]},"core.preview":{generate:[96,3]},"actions.autocontrast":{Action:[98,1],init:[98,3],autocontrast:[98,3]},"lib.formField.ImageModeField":{to_python:[54,0]},"pyWx.dialogs.StatusDialog":{on_button_log:[1,0],on_button_report:[1,0],SetMessage:[1,0]},"console.console.CliMixin":{show_info:[65,0],show_notification:[65,0],show_message:[65,0],write:[65,0],exit:[65,0],show_error:[65,0]},"lib.formField.Form.PositiveNonZeroFloatField":{to_python:[54,0]},"actions.common.Action":{"interface":[27,0],init:[27,2],pil:[27,2]},"actions.geotag":{Action:[105,1],init:[105,3]},"lib.pyWx.popup.ForcedBoxSizer":{AddForced:[118,0]},"actions.equalize.Action":{"interface":[135,0],init:[135,2],pil:[135,2]},"actions.shadow":{Action:[108,1],drop_shadow:[108,3],init:[108,3]},"actions.rename_tag.Action":{"interface":[107,0],apply:[107,0]},"pyWx.dialogs.ActionBrowser":{ContentCtrl:[1,4]},"lib.imtools":{get_reverse_transposition:[112,3],calculate_location:[112,3],get_exif_transposition:[112,3],open_image:[112,3],flatten:[112,3],reduce_opacity:[112,3],get_format:[112,3],save_safely:[112,3],has_transparency:[112,3],checkboard:[112,3],paste:[112,3],identity_color:[112,3],put_alpha:[112,3],get_size:[112,3],split:[112,3],auto_crop:[112,3],put_palette:[112,3],convert_safe_mode:[112,3],get_format_filename:[112,3],save_check_mode:[112,3],get_palette:[112,3],get_exif_orientation:[112,3],transpose:[112,3],get_used_palette_indices:[112,3],get_used_palette_colors:[112,3],open_image_data:[112,3],remove_alpha:[112,3],open_image_exif:[112,3],fit_color_in_palette:[112,3],convert_save_mode_by_format:[112,3],transpose_exif:[112,3],has_alpha:[112,3],convert:[112,3],save:[112,3],get_alpha:[112,3],generate_layer:[112,3],get_unused_palette_indices:[112,3],get_format_data:[112,3],add_checkboard:[112,3],get_quality:[112,3],InvalidWriteFormatError:[112,5],blend:[112,3],fill_background_color:[112,3]},"lib.metadata.InfoZexif":{provides:[72,6]},"lib.formField.ReadFileField":{to_python:[54,0]},"lib.formField.Form.ImageModeField":{to_python:[54,0]},"pyWx.wxGlade.frame.App":{OnInit:[140,0]},"lib.pyWx.imageInspector.Browser":{GetPaintMessage:[29,0],ContentCtrl:[29,4]},"other.pep8.Checker":{check_logical:[45,0],run_check:[45,0],check_all:[45,0],build_tokens_line:[45,0],check_physical:[45,0],readline_check_physical:[45,0],report_error:[45,0],readline:[45,0]},"actions.invert.Action":{"interface":[8,0],init:[8,2],pil:[8,2]},"lib.pyWx.popup.DictionaryFileCtrl":{GetDefaultPath:[118,0]},"lib.pyWx.inspectorTag.TestContentGrid":{SetFilter:[70,0],SetTag:[70,0],SetData:[70,0]},"lib.formField.Form.ChoiceField":{set_choices:[54,0]},"lib.formField.Form.Field":{set:[54,0],to_python:[54,0],get:[54,0],set_as_string:[54,0],get_as_string:[54,0],assert_safe:[54,0],set_globals:[54,2],to_string:[54,0],set_as_string_dirty:[54,0],interpolate:[54,0],eval:[54,0],validate:[54,0],fix_string:[54,0]},"lib.pyWx.wxcheck":{ensure:[129,3]},"other.pyWx.TextCtrlAutoComplete.test":{setDynamicChoices:[12,0],onBtChangeChoice:[12,0],onBtDynamicChoices:[12,0],onBtMultiChoice:[12,0],onBtStartChoices:[12,0],selectCallback:[12,0],match:[12,0]},"pyWx.nuovext.Provider":{CreateBitmap:[39,0]},"data.info":{all_credits:[134,3],write_readme:[134,3],write_credits:[134,3],write_readme_credits:[134,3]},"actions.reflection.Action":{"interface":[153,0],get_relevant_field_labels:[153,0],init:[153,2],values:[153,0],pil:[153,2]},"other.tamogen":{BoundingBoxContainer:[139,1],FillImage:[139,1],get_tone:[139,3],set_new_tone:[139,3],get_section_size:[139,3],BoundingBox:[139,1],mosaic:[139,3],FillImages:[139,1]},"pyWx.dialogs.ExecuteDialog":{browse_folder:[1,0],get_default_path:[1,0],export_settings:[1,0],browse_files:[1,0],set_drop:[1,0],import_settings:[1,0],wildcard:[1,0],on_browse:[1,0],on_source:[1,0],get_selected_extensions:[1,0],on_default:[1,0]},"actions.highlight":{Action:[101,1],init:[101,3],put_highlight:[101,3]},"lib.metadataTest.DateTime":{from_exif_string:[137,0]},"actions.brightness":{Action:[154,1],init:[154,3],brightness:[154,3]},"lib.pyWx.tag.TestBrowser":{ContentCtrl:[10,4]},"lib.notify":{init:[155,3],register:[155,3],send:[155,3]},"actions.round.Action":{"interface":[40,0],get_relevant_field_labels:[40,0],init:[40,2],values:[40,0],pil:[40,2]},"actions.saturation.Action":{"interface":[38,0],init:[38,2],pil:[38,2]},"lib.metadata.InfoPil":{needs_orientation:[72,6],set_orientation:[72,0],reset_geometry:[72,0]}},filenames:["actions.effect","pyWx.dialogs","actions.color_to_alpha","lib.imageTable","actions","lib.pyWx.wildcard","core.pil","actions.minimum","actions.invert","lib.pyWx.wxPil","lib.pyWx.tag","lib.gps","other.pyWx.TextCtrlAutoComplete","console","pyWx.plugin","actions.tamogen","actions.mirror","pyWx.images","actions.offset","core.ct","actions.colorize","actions.fit","other.pyWx","core.api","lib.system","actions.contour","lib.pyWx.shell","actions.common","actions.border","lib.pyWx.imageInspector","actions.desaturate","actions.save_metadata","actions.convert_mode","actions.grid","lib.pyWx.inspector","actions.geek","other.EXIF","lib.pyWx.imageFileBrowser","actions.saturation","pyWx.nuovext","actions.round","data.license","core.models","actions.rename","pyWx.wxGlade.dialogs","other.pep8","actions.warm_up","lib.pyWx.graphics","actions.contrast","lib.pyWx.droplet","actions.time_shift","actions.rotate","actions.imagemagick","index","lib.formField","actions.mask","other.pil_1_1_6","other.pyWx.toasterbox","other.pyWx.img2img","lib.pyWx.folderFileBrowser","lib.pyWx.paint","pyWx","core","actions.lossless_jpeg","actions.crop","console.console","other.findsystem","lib.pyWx.about","index2","bazaar","lib.pyWx.inspectorTag","actions.blender","lib.metadata","lib.linux","lib.thumbnail","linux.thunar","lib.openImage","lib.pyWx.treeDragDrop","actions.text","pyWx.gui","lib.listData","lib.pyWx.screenshot","actions.median","core.message","actions.background","lib.pyWx","core.translation","linux","lib.events","other.pubsub","core.safeGlobals","lib.pyWx.autoCompleteCtrls","actions.save","linux.droplet","actions.watermark","lib.unicoding","core.preview","other.pil_1_1_6.JpegImagePlugin","actions.autocontrast","lib.desktop","actions.maximum","actions.highlight","data.version","lib.linux.nautilusExtension","testing","actions.geotag","other.surd","actions.rename_tag","actions.shadow","lib.pyWx.compatible","actions.scale","lib.windows.register","lib.imtools","lib.pyWx.dialogsInspector","lib.windows.shortcut","actions.write_tag","actions.sketch","actions.posterize","lib.pyWx.popup","lib.fonts","lico","pyWx.wxGlade","lib.windows","lib.odict","actions.copy","core.settings","lib.colors","core.config","other.pyWx.img2py","lib.pyWx.wxcheck","lib","actions.transpose","other","actions.solarize","data.info","actions.equalize","templates","lib.metadataTest","lib.pyWx.clipboard","other.tamogen","pyWx.wxGlade.frame","templates.action","lib.pyWx.vlist","lib.gettextFix","release","actions.perspective","windows.droplet","data","lib.reverse_translation","other.pil_1_1_6.TiffImagePlugin","lib.windows.locate","lib.pyWx.vlistTag","windows","actions.reflection","actions.brightness","lib.notify","pep8","lib.safe","actions.rank","other.relativedelta","actions.canvas","lib.pyWx.treeEdit","lib._pyexiv2","lib.linux.desktop","actions.delete_tags"]})phatch-0.2.7/docs/build/html/templates.action.html0000644000000000000000000001024011346363116022061 0ustar rootroot00000000000000 action — Phatch v0.2 documentation

    action

    Previous topic

    templates

    Next topic

    windows

    phatch-0.2.7/docs/build/html/templates.html0000644000000000000000000001016311346363116020611 0ustar rootroot00000000000000 templates — Phatch v0.2 documentation

    templates

    Previous topic

    frame

    Next topic

    action

    phatch-0.2.7/docs/build/html/testing.html0000644000000000000000000001451611346363116020276 0ustar rootroot00000000000000 Testing — Phatch v0.2 documentation

    Testing

    Phatch uses two strategies for testing:

    • acceptance testing for all possible image processing pipelines
    • unit tests by doctests

    Acceptance testing

    The acceptance testing uses the images inside the tests/input folder. To get all options for image acceptance testing, run this command from the tests folder:

    python acceptance_test.py --help

    Here are some examples, choose one of the two listed commands ...

    • To run all tests use:

      python acceptance_test.py --all
      python acceptance_test.py -a
    • To run only the library tests use:

      python acceptance_test.py --tag=library
      python acceptance_test.py -t library
    • To run only tests with a certain tag use:

      python acceptance_test.py --tag=tag_name
      python acceptance_test.py -t tag_name
    • To test only one action:

      python acceptance_test.py --select=action_name
      python acceptance_test.py -s action_name

    Doctests

    We chose for doctests as it saves time by being both unit tests and documentation. Please add doctests to the code you contribute.

    Run the doctests inside the tests folder:

    python doc_test.py

    This will automatically also be run by the bzr precommit hook.

    Table Of Contents

    Previous topic

    License and Copyright

    Next topic

    Release Manager

    phatch-0.2.7/docs/build/html/windows.droplet.html0000644000000000000000000000731411346363116021761 0ustar rootroot00000000000000 droplet — Phatch v0.2 documentation

    droplet

    Previous topic

    windows

    phatch-0.2.7/docs/build/html/windows.html0000644000000000000000000001016511346363116020307 0ustar rootroot00000000000000 windows — Phatch v0.2 documentation

    windows

    Previous topic

    action

    Next topic

    droplet

    phatch-0.2.7/docs/make.bat0000644000000000000000000000557511346363116015302 0ustar rootroot00000000000000@ECHO OFF REM Command file for Sphinx documentation set SPHINXBUILD=sphinx-build set ALLSPHINXOPTS=-d build/doctrees %SPHINXOPTS% source if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. changes to make an overview over all changed/added/deprecated items echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (build\*) do rmdir /q /s %%i del /q /s build\* goto end ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% build/html echo. echo.Build finished. The HTML pages are in build/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% build/dirhtml echo. echo.Build finished. The HTML pages are in build/dirhtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% build/pickle echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% build/json echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% build/htmlhelp echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in build/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% build/qthelp echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in build/qthelp, like this: echo.^> qcollectiongenerator build\qthelp\Phatch.qhcp echo.To view the help file: echo.^> assistant -collectionFile build\qthelp\Phatch.ghc goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% build/latex echo. echo.Build finished; the LaTeX files are in build/latex. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% build/changes echo. echo.The overview file is in build/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% build/linkcheck echo. echo.Link check complete; look for any errors in the above output ^ or in build/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% build/doctest echo. echo.Testing of doctests in the sources finished, look at the ^ results in build/doctest/output.txt. goto end ) :end phatch-0.2.7/docs/source/0000755000000000000000000000000011346363116015161 5ustar rootroot00000000000000phatch-0.2.7/docs/source/_static/0000755000000000000000000000000011346363116016607 5ustar rootroot00000000000000phatch-0.2.7/docs/source/_templates/0000755000000000000000000000000011346363116017316 5ustar rootroot00000000000000phatch-0.2.7/docs/source/actions.autocontrast.rst0000644000000000000000000000016611346363116022103 0ustar rootroot00000000000000autocontrast ************ .. automodule:: actions.autocontrast :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.background.rst0000644000000000000000000000016011346363116021466 0ustar rootroot00000000000000background ********** .. automodule:: actions.background :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.blender.rst0000644000000000000000000000014711346363116020767 0ustar rootroot00000000000000blender ******* .. automodule:: actions.blender :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.border.rst0000644000000000000000000000014411346363116020626 0ustar rootroot00000000000000border ****** .. automodule:: actions.border :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.brightness.rst0000644000000000000000000000016011346363116021517 0ustar rootroot00000000000000brightness ********** .. automodule:: actions.brightness :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.canvas.rst0000644000000000000000000000014411346363116020624 0ustar rootroot00000000000000canvas ****** .. automodule:: actions.canvas :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.color_to_alpha.rst0000644000000000000000000000017411346363116022341 0ustar rootroot00000000000000color_to_alpha ************** .. automodule:: actions.color_to_alpha :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.colorize.rst0000644000000000000000000000015211346363116021176 0ustar rootroot00000000000000colorize ******** .. automodule:: actions.colorize :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.common.rst0000644000000000000000000000014411346363116020641 0ustar rootroot00000000000000common ****** .. automodule:: actions.common :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.contour.rst0000644000000000000000000000014711346363116021045 0ustar rootroot00000000000000contour ******* .. automodule:: actions.contour :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.contrast.rst0000644000000000000000000000015211346363116021205 0ustar rootroot00000000000000contrast ******** .. automodule:: actions.contrast :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.convert_mode.rst0000644000000000000000000000016611346363116022041 0ustar rootroot00000000000000convert_mode ************ .. automodule:: actions.convert_mode :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.copy.rst0000644000000000000000000000013611346363116020324 0ustar rootroot00000000000000copy **** .. automodule:: actions.copy :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.crop.rst0000644000000000000000000000013611346363116020315 0ustar rootroot00000000000000crop **** .. automodule:: actions.crop :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.delete_tags.rst0000644000000000000000000000016311346363116021632 0ustar rootroot00000000000000delete_tags *********** .. automodule:: actions.delete_tags :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.desaturate.rst0000644000000000000000000000016011346363116021510 0ustar rootroot00000000000000desaturate ********** .. automodule:: actions.desaturate :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.effect.rst0000644000000000000000000000014411346363116020605 0ustar rootroot00000000000000effect ****** .. automodule:: actions.effect :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.equalize.rst0000644000000000000000000000015211346363116021167 0ustar rootroot00000000000000equalize ******** .. automodule:: actions.equalize :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.fit.rst0000644000000000000000000000013311346363116020131 0ustar rootroot00000000000000fit *** .. automodule:: actions.fit :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.geek.rst0000644000000000000000000000013611346363116020265 0ustar rootroot00000000000000geek **** .. automodule:: actions.geek :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.geotag.rst0000644000000000000000000000014411346363116020617 0ustar rootroot00000000000000geotag ****** .. automodule:: actions.geotag :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.grid.rst0000644000000000000000000000013611346363116020277 0ustar rootroot00000000000000grid **** .. automodule:: actions.grid :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.highlight.rst0000644000000000000000000000015511346363116021322 0ustar rootroot00000000000000highlight ********* .. automodule:: actions.highlight :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.imagemagick.rst0000644000000000000000000000016311346363116021610 0ustar rootroot00000000000000imagemagick *********** .. automodule:: actions.imagemagick :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.invert.rst0000644000000000000000000000014411346363116020660 0ustar rootroot00000000000000invert ****** .. automodule:: actions.invert :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.lossless_jpeg.rst0000644000000000000000000000017111346363116022225 0ustar rootroot00000000000000lossless_jpeg ************* .. automodule:: actions.lossless_jpeg :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.mask.rst0000644000000000000000000000013611346363116020305 0ustar rootroot00000000000000mask **** .. automodule:: actions.mask :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.maximum.rst0000644000000000000000000000014711346363116021031 0ustar rootroot00000000000000maximum ******* .. automodule:: actions.maximum :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.median.rst0000644000000000000000000000014411346363116020606 0ustar rootroot00000000000000median ****** .. automodule:: actions.median :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.minimum.rst0000644000000000000000000000014711346363116021027 0ustar rootroot00000000000000minimum ******* .. automodule:: actions.minimum :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.mirror.rst0000644000000000000000000000014411346363116020663 0ustar rootroot00000000000000mirror ****** .. automodule:: actions.mirror :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.offset.rst0000644000000000000000000000014411346363116020637 0ustar rootroot00000000000000offset ****** .. automodule:: actions.offset :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.perspective.rst0000644000000000000000000000016311346363116021703 0ustar rootroot00000000000000perspective *********** .. automodule:: actions.perspective :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.posterize.rst0000644000000000000000000000015511346363116021377 0ustar rootroot00000000000000posterize ********* .. automodule:: actions.posterize :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.rank.rst0000644000000000000000000000013611346363116020305 0ustar rootroot00000000000000rank **** .. automodule:: actions.rank :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.reflection.rst0000644000000000000000000000016011346363116021501 0ustar rootroot00000000000000reflection ********** .. automodule:: actions.reflection :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.rename.rst0000644000000000000000000000014411346363116020620 0ustar rootroot00000000000000rename ****** .. automodule:: actions.rename :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.rename_tag.rst0000644000000000000000000000016011346363116021451 0ustar rootroot00000000000000rename_tag ********** .. automodule:: actions.rename_tag :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.rotate.rst0000644000000000000000000000014411346363116020647 0ustar rootroot00000000000000rotate ****** .. automodule:: actions.rotate :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.round.rst0000644000000000000000000000014111346363116020475 0ustar rootroot00000000000000round ***** .. automodule:: actions.round :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.rst0000644000000000000000000000224011346363116017351 0ustar rootroot00000000000000actions ******* .. automodule:: actions :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 actions.autocontrast actions.background actions.blender actions.border actions.brightness actions.canvas actions.color_to_alpha actions.colorize actions.common actions.contour actions.contrast actions.convert_mode actions.copy actions.crop actions.delete_tags actions.desaturate actions.effect actions.equalize actions.fit actions.geek actions.geotag actions.grid actions.highlight actions.imagemagick actions.invert actions.lossless_jpeg actions.mask actions.maximum actions.median actions.minimum actions.mirror actions.offset actions.perspective actions.posterize actions.rank actions.reflection actions.rename actions.rename_tag actions.rotate actions.round actions.saturation actions.save actions.save_metadata actions.scale actions.shadow actions.sketch actions.solarize actions.tamogen actions.text actions.time_shift actions.transpose actions.warm_up actions.watermark actions.write_tag phatch-0.2.7/docs/source/actions.saturation.rst0000644000000000000000000000016011346363116021540 0ustar rootroot00000000000000saturation ********** .. automodule:: actions.saturation :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.save.rst0000644000000000000000000000013611346363116020310 0ustar rootroot00000000000000save **** .. automodule:: actions.save :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.save_metadata.rst0000644000000000000000000000017111346363116022147 0ustar rootroot00000000000000save_metadata ************* .. automodule:: actions.save_metadata :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.scale.rst0000644000000000000000000000014111346363116020435 0ustar rootroot00000000000000scale ***** .. automodule:: actions.scale :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.shadow.rst0000644000000000000000000000014411346363116020636 0ustar rootroot00000000000000shadow ****** .. automodule:: actions.shadow :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.sketch.rst0000644000000000000000000000014411346363116020632 0ustar rootroot00000000000000sketch ****** .. automodule:: actions.sketch :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.solarize.rst0000644000000000000000000000015211346363116021200 0ustar rootroot00000000000000solarize ******** .. automodule:: actions.solarize :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.tamogen.rst0000644000000000000000000000014711346363116021006 0ustar rootroot00000000000000tamogen ******* .. automodule:: actions.tamogen :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.text.rst0000644000000000000000000000013611346363116020336 0ustar rootroot00000000000000text **** .. automodule:: actions.text :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.time_shift.rst0000644000000000000000000000016011346363116021502 0ustar rootroot00000000000000time_shift ********** .. automodule:: actions.time_shift :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.transpose.rst0000644000000000000000000000015511346363116021371 0ustar rootroot00000000000000transpose ********* .. automodule:: actions.transpose :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.warm_up.rst0000644000000000000000000000014711346363116021026 0ustar rootroot00000000000000warm_up ******* .. automodule:: actions.warm_up :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.watermark.rst0000644000000000000000000000015511346363116021350 0ustar rootroot00000000000000watermark ********* .. automodule:: actions.watermark :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/actions.write_tag.rst0000644000000000000000000000015511346363116021340 0ustar rootroot00000000000000write_tag ********* .. automodule:: actions.write_tag :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/bazaar.rst0000644000000000000000000000745011346363116017161 0ustar rootroot00000000000000Bazaar and Launchpad ******************** For Phatch we use `bazaar `_ (distributed version control) and `launchpad `_. We will describe the steps here to get you up and running for Phatch development. Launchpad ========= 1. To `create a new Launchpad account `_, visit the account `sign-up page `_. All you need is an email address that Launchpad can use to contact you. 2. Create a ssh key and `upload `_ it to your launchpad profile. 3. Apply for membership of the `phatch-dev `_ team. 4. This last step is optional. If you want to stay up to date with all bug reports, blueprints (new features), ... apply for membership of the `phatch-launchpad `_ team. Warning: this might flood your inbox with a lot of email! .. note:: It is very important that you not only log any activity you do for Phatch on launchpad as bugs or blueprints, but also report progress and de-assign yourself if you quit working on something. Bazaar ====== Getting Started with Bazaar --------------------------- 1. Download and install bazaar. * Windows: Download the `standalone installer `_. * Mac OS X: Download the `application bundle `_. * Linux: Get bazaar from the repositories, for example for Ubuntu/Debian ... If you want only the command line version:: sudo apt-get install bzr If you want to use bzr with a GUI and nautilus integration, you could install (some only available from Ubuntu Lucid):: sudo apt-get install bzr bzr-gtk bzr-explorer nautilus-bzr 2. Tell bazaar who you are:: bzr whoami "Your name " 3. Login to launchpad:: bzr launchpad-login 4. Install the Phatch precommit hook. This will check your code before committing to your branch. It tests your code it follows `PEP8 `_, does not break any doctests and has the right copyright and license. The precommit hook is the file ``tests/test_suite/bzr_precommit_test.py`` and should be placed in your bazaar plugin folder. In order to get your code accepted, you **must** use the precommit hook. * Linux and Mac OS X: 1. Install ``nosetests`` and ``licensecheck``:: sudo apt-get install python-nose devscripts 2. Symlink ``bzr_precommit_test.py`` to ``~/.bazaar/plugins/`` * Windows: 1. Install ``nosetests`` (see `nose `_ website for more info):: easy_install nose 2. Copy ``bzr_precommit_test.py`` to ``C:\Program Files\Bazaar\plugins`` and update it every time it changes. Using Bazaar ------------ 1. For every new feature or bugfix you need to start a separate branch:: bzr branch lp:phatch Or if you want to give it a specific name:: bzr branch lp:phatch name_of_branch So it is not unusual that one user works on more than one branch. We prefer to merge branches as soon as they are stable to prevent large differences. 2. To let other developers follow your progress, push your branch to launchpad:: bzr push lp:~user_name/phatch/name_of_branch 3. Merge regularly with the main branch so it does not divert. At least merge every time before you start coding. The command is:: bzr merge lp:phatch Do not use the command ``bzr update`` or ``bzr pull``. 4. When your branch is ready file a merge request. To do so, visit your branch's overview page, click *Propose for merging into another branch*, then follow the on-screen instructions. phatch-0.2.7/docs/source/conf.py0000644000000000000000000001566511346363116016475 0ustar rootroot00000000000000# -*- coding: utf-8 -*- # # Phatch documentation build configuration file, created by # sphinx-quickstart on Thu Aug 27 17:12:37 2009. # # This file is execfile()d with the current directory set # to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. # # Follows PEP8 import sys import os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.append(os.path.abspath('../../phatch')) # -- General configuration --------------------------------------------------- # Add any Sphinx extension module names here, as strings. # They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', \ 'sphinx.ext.coverage', 'sphinx.ext.ifconfig'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = u'Phatch' copyright = u'2009, www.stani.be' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '0.2' # The full version, including alpha/beta/rc tags. release = '0.2' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = [] # The reST default role (used for this markup: `text`) to use # for all documents. # default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. # add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). # add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. # show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. # modindex_common_prefix = [] # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. html_theme_options = { 'footerbgcolor': '#000000', 'footertextcolor': '#FFFFFF', 'sidebarbgcolor': '#252527', # '#414143', 'sidebartextcolor': '#FFFFFF', 'sidebarlinkcolor': '#C0F237', 'rightsidebar': 'true', 'relbarbgcolor': '#252527', 'relbartextcolor': '', 'relbarlinkcolor': '#C0F237', 'bgcolor': '#1F1F21', 'textcolor': '#FFFFFF', 'linkcolor': '#C0F237', 'headbgcolor': '#C0F237', 'headtextcolor': '#000000', 'headlinkcolor': '#555', 'codebgcolor': '#000000', 'codetextcolor': '#FFFFFF', 'bodyfont': 'Verdana, Arial, Helvetica, sans-serif', 'headfont': 'Verdana, Arial, Helvetica, sans-serif', } # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". # html_title = None # A shorter title for the navigation bar. Default is the same as html_title. # html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. # html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. # html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. # html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. # html_use_smartypants = True # Custom sidebar templates, maps document names to template names. # html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. # html_additional_pages = {} # If false, no module index is generated. # html_use_modindex = True # If false, no index is generated. # html_use_index = True # If true, the index is split into individual pages for each letter. # html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = False # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. # html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). # html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'Phatchdoc' # -- Options for LaTeX output ------------------------------------------------ # The paper size ('letter' or 'a4'). # latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). # latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]) latex_documents = [ ('index', 'Phatch.tex', u'Phatch Documentation', u'www.stani.be', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_use_modindex = True phatch-0.2.7/docs/source/console.console.rst0000644000000000000000000000014711346363116021020 0ustar rootroot00000000000000console ******* .. automodule:: console.console :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/console.rst0000644000000000000000000000022211346363116017351 0ustar rootroot00000000000000console ******* .. automodule:: console :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 console.console phatch-0.2.7/docs/source/core.api.rst0000644000000000000000000000013011346363116017405 0ustar rootroot00000000000000api *** .. automodule:: core.api :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/core.config.rst0000644000000000000000000000014111346363116020103 0ustar rootroot00000000000000config ****** .. automodule:: core.config :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/core.ct.rst0000644000000000000000000000012511346363116017246 0ustar rootroot00000000000000ct ** .. automodule:: core.ct :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/core.message.rst0000644000000000000000000000014411346363116020265 0ustar rootroot00000000000000message ******* .. automodule:: core.message :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/core.models.rst0000644000000000000000000000014111346363116020121 0ustar rootroot00000000000000models ****** .. automodule:: core.models :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/core.pil.rst0000644000000000000000000000013011346363116017420 0ustar rootroot00000000000000pil *** .. automodule:: core.pil :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/core.preview.rst0000644000000000000000000000014411346363116020322 0ustar rootroot00000000000000preview ******* .. automodule:: core.preview :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/core.rst0000644000000000000000000000042011346363116016637 0ustar rootroot00000000000000core **** .. automodule:: core :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 core.api core.config core.ct core.message core.models core.pil core.preview core.safeGlobals core.settings core.translation phatch-0.2.7/docs/source/core.safeGlobals.rst0000644000000000000000000000016011346363116021061 0ustar rootroot00000000000000safeGlobals *********** .. automodule:: core.safeGlobals :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/core.settings.rst0000644000000000000000000000014711346363116020504 0ustar rootroot00000000000000settings ******** .. automodule:: core.settings :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/core.translation.rst0000644000000000000000000000016011346363116021175 0ustar rootroot00000000000000translation *********** .. automodule:: core.translation :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/data.info.rst0000644000000000000000000000013311346363116017553 0ustar rootroot00000000000000info **** .. automodule:: data.info :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/data.license.rst0000644000000000000000000000014411346363116020244 0ustar rootroot00000000000000license ******* .. automodule:: data.license :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/data.rst0000644000000000000000000000024311346363116016623 0ustar rootroot00000000000000data **** .. automodule:: data :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 data.info data.license data.version phatch-0.2.7/docs/source/data.version.rst0000644000000000000000000000014411346363116020307 0ustar rootroot00000000000000version ******* .. automodule:: data.version :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/index.rst0000644000000000000000000000115711346363116017026 0ustar rootroot00000000000000.. Phatch documentation master file, created by sphinx-quickstart on Thu Aug 27 17:12:37 2009. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Become a Phatch developer! ========================== .. toctree:: :maxdepth: 1 bazaar pep8 lico testing release Source Code documentation ========================= .. toctree:: :maxdepth: 1 actions console core data lib linux other pyWx templates windows Indices and Tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` phatch-0.2.7/docs/source/index2.rst0000644000000000000000000000033311346363116017103 0ustar rootroot00000000000000index2 ****** .. automodule:: index2 :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 actions console core data lib linux other pyWx templates windows phatch-0.2.7/docs/source/lib._pyexiv2.rst0000644000000000000000000000014611346363116020226 0ustar rootroot00000000000000_pyexiv2 ******** .. automodule:: lib._pyexiv2 :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.colors.rst0000644000000000000000000000014011346363116017754 0ustar rootroot00000000000000colors ****** .. automodule:: lib.colors :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.desktop.rst0000644000000000000000000000014311346363116020127 0ustar rootroot00000000000000desktop ******* .. automodule:: lib.desktop :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.events.rst0000644000000000000000000000014011346363116017757 0ustar rootroot00000000000000events ****** .. automodule:: lib.events :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.fonts.rst0000644000000000000000000000013511346363116017610 0ustar rootroot00000000000000fonts ***** .. automodule:: lib.fonts :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.formField.rst0000644000000000000000000000015111346363116020364 0ustar rootroot00000000000000formField ********* .. automodule:: lib.formField :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.gettextFix.rst0000644000000000000000000000015411346363116020613 0ustar rootroot00000000000000gettextFix ********** .. automodule:: lib.gettextFix :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.gps.rst0000644000000000000000000000012711346363116017251 0ustar rootroot00000000000000gps *** .. automodule:: lib.gps :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.imageTable.rst0000644000000000000000000000015411346363116020512 0ustar rootroot00000000000000imageTable ********** .. automodule:: lib.imageTable :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.imtools.rst0000644000000000000000000000014311346363116020144 0ustar rootroot00000000000000imtools ******* .. automodule:: lib.imtools :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.linux.desktop.rst0000644000000000000000000000015111346363116021264 0ustar rootroot00000000000000desktop ******* .. automodule:: lib.linux.desktop :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.linux.nautilusExtension.rst0000644000000000000000000000020711346363116023356 0ustar rootroot00000000000000nautilusExtension ***************** .. automodule:: lib.linux.nautilusExtension :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.linux.rst0000644000000000000000000000026111346363116017616 0ustar rootroot00000000000000linux ***** .. automodule:: lib.linux :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 lib.linux.desktop lib.linux.nautilusExtension phatch-0.2.7/docs/source/lib.listData.rst0000644000000000000000000000014611346363116020226 0ustar rootroot00000000000000listData ******** .. automodule:: lib.listData :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.metadata.rst0000644000000000000000000000014611346363116020241 0ustar rootroot00000000000000metadata ******** .. automodule:: lib.metadata :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.metadataTest.rst0000644000000000000000000000016211346363116021077 0ustar rootroot00000000000000metadataTest ************ .. automodule:: lib.metadataTest :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.notify.rst0000644000000000000000000000014011346363116017763 0ustar rootroot00000000000000notify ****** .. automodule:: lib.notify :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.odict.rst0000644000000000000000000000013511346363116017561 0ustar rootroot00000000000000odict ***** .. automodule:: lib.odict :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.openImage.rst0000644000000000000000000000015111346363116020361 0ustar rootroot00000000000000openImage ********* .. automodule:: lib.openImage :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.about.rst0000644000000000000000000000014211346363116020535 0ustar rootroot00000000000000about ***** .. automodule:: lib.pyWx.about :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.autoCompleteCtrls.rst0000644000000000000000000000020611346363116023075 0ustar rootroot00000000000000autoCompleteCtrls ***************** .. automodule:: lib.pyWx.autoCompleteCtrls :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.clipboard.rst0000644000000000000000000000015611346363116021367 0ustar rootroot00000000000000clipboard ********* .. automodule:: lib.pyWx.clipboard :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.compatible.rst0000644000000000000000000000016111346363116021543 0ustar rootroot00000000000000compatible ********** .. automodule:: lib.pyWx.compatible :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.dialogsInspector.rst0000644000000000000000000000020311346363116022732 0ustar rootroot00000000000000dialogsInspector **************** .. automodule:: lib.pyWx.dialogsInspector :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.droplet.rst0000644000000000000000000000015011346363116021073 0ustar rootroot00000000000000droplet ******* .. automodule:: lib.pyWx.droplet :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.folderFileBrowser.rst0000644000000000000000000000020611346363116023043 0ustar rootroot00000000000000folderFileBrowser ***************** .. automodule:: lib.pyWx.folderFileBrowser :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.graphics.rst0000644000000000000000000000015311346363116021225 0ustar rootroot00000000000000graphics ******** .. automodule:: lib.pyWx.graphics :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.imageFileBrowser.rst0000644000000000000000000000020311346363116022647 0ustar rootroot00000000000000imageFileBrowser **************** .. automodule:: lib.pyWx.imageFileBrowser :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.imageInspector.rst0000644000000000000000000000017511346363116022402 0ustar rootroot00000000000000imageInspector ************** .. automodule:: lib.pyWx.imageInspector :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.inspector.rst0000644000000000000000000000015611346363116021436 0ustar rootroot00000000000000inspector ********* .. automodule:: lib.pyWx.inspector :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.inspectorTag.rst0000644000000000000000000000016711346363116022074 0ustar rootroot00000000000000inspectorTag ************ .. automodule:: lib.pyWx.inspectorTag :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.paint.rst0000644000000000000000000000014211346363116020536 0ustar rootroot00000000000000paint ***** .. automodule:: lib.pyWx.paint :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.popup.rst0000644000000000000000000000014211346363116020566 0ustar rootroot00000000000000popup ***** .. automodule:: lib.pyWx.popup :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.rst0000644000000000000000000000121711346363116017430 0ustar rootroot00000000000000pyWx **** .. automodule:: lib.pyWx :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 lib.pyWx.about lib.pyWx.autoCompleteCtrls lib.pyWx.clipboard lib.pyWx.compatible lib.pyWx.dialogsInspector lib.pyWx.droplet lib.pyWx.folderFileBrowser lib.pyWx.graphics lib.pyWx.imageFileBrowser lib.pyWx.imageInspector lib.pyWx.inspector lib.pyWx.inspectorTag lib.pyWx.paint lib.pyWx.popup lib.pyWx.screenshot lib.pyWx.shell lib.pyWx.tag lib.pyWx.treeDragDrop lib.pyWx.treeEdit lib.pyWx.vlist lib.pyWx.vlistTag lib.pyWx.wildcard lib.pyWx.wxPil lib.pyWx.wxcheck phatch-0.2.7/docs/source/lib.pyWx.screenshot.rst0000644000000000000000000000016111346363116021601 0ustar rootroot00000000000000screenshot ********** .. automodule:: lib.pyWx.screenshot :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.shell.rst0000644000000000000000000000014211346363116020532 0ustar rootroot00000000000000shell ***** .. automodule:: lib.pyWx.shell :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.tag.rst0000644000000000000000000000013411346363116020177 0ustar rootroot00000000000000tag *** .. automodule:: lib.pyWx.tag :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.treeDragDrop.rst0000644000000000000000000000016711346363116022014 0ustar rootroot00000000000000treeDragDrop ************ .. automodule:: lib.pyWx.treeDragDrop :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.treeEdit.rst0000644000000000000000000000015311346363116021172 0ustar rootroot00000000000000treeEdit ******** .. automodule:: lib.pyWx.treeEdit :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.vlist.rst0000644000000000000000000000014211346363116020564 0ustar rootroot00000000000000vlist ***** .. automodule:: lib.pyWx.vlist :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.vlistTag.rst0000644000000000000000000000015311346363116021222 0ustar rootroot00000000000000vlistTag ******** .. automodule:: lib.pyWx.vlistTag :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.wildcard.rst0000644000000000000000000000015311346363116021216 0ustar rootroot00000000000000wildcard ******** .. automodule:: lib.pyWx.wildcard :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.wxPil.rst0000644000000000000000000000014211346363116020526 0ustar rootroot00000000000000wxPil ***** .. automodule:: lib.pyWx.wxPil :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.pyWx.wxcheck.rst0000644000000000000000000000015011346363116021056 0ustar rootroot00000000000000wxcheck ******* .. automodule:: lib.pyWx.wxcheck :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.reverse_translation.rst0000644000000000000000000000020711346363116022550 0ustar rootroot00000000000000reverse_translation ******************* .. automodule:: lib.reverse_translation :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.rst0000644000000000000000000000075111346363116016464 0ustar rootroot00000000000000lib *** .. automodule:: lib :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 lib._pyexiv2 lib.colors lib.desktop lib.events lib.fonts lib.formField lib.gettextFix lib.gps lib.imageTable lib.imtools lib.linux lib.listData lib.metadata lib.metadataTest lib.notify lib.odict lib.openImage lib.pyWx lib.reverse_translation lib.safe lib.system lib.thumbnail lib.unicoding lib.windows phatch-0.2.7/docs/source/lib.safe.rst0000644000000000000000000000013211346363116017372 0ustar rootroot00000000000000safe **** .. automodule:: lib.safe :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.system.rst0000644000000000000000000000014011346363116017777 0ustar rootroot00000000000000system ****** .. automodule:: lib.system :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.thumbnail.rst0000644000000000000000000000015111346363116020440 0ustar rootroot00000000000000thumbnail ********* .. automodule:: lib.thumbnail :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.unicoding.rst0000644000000000000000000000015111346363116020434 0ustar rootroot00000000000000unicoding ********* .. automodule:: lib.unicoding :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.windows.locate.rst0000644000000000000000000000015011346363116021414 0ustar rootroot00000000000000locate ****** .. automodule:: lib.windows.locate :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.windows.register.rst0000644000000000000000000000015611346363116021777 0ustar rootroot00000000000000register ******** .. automodule:: lib.windows.register :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lib.windows.rst0000644000000000000000000000031111346363116020145 0ustar rootroot00000000000000windows ******* .. automodule:: lib.windows :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 lib.windows.locate lib.windows.register lib.windows.shortcut phatch-0.2.7/docs/source/lib.windows.shortcut.rst0000644000000000000000000000015611346363116022026 0ustar rootroot00000000000000shortcut ******** .. automodule:: lib.windows.shortcut :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/lico.rst0000644000000000000000000000301011346363116016633 0ustar rootroot00000000000000License and Copyright ********************* License ======= At the moment of this writing Phatch uses the `GPL 3 `_. All code submitted to Phatch needs to use the same license or should be compatible. Copyright ========= All code submitted to Phatch should share its copyright with ``www.stani.be``. You keep the full copyright of your own code, but share it with the Phatch project. This keeps the management of the copyrights simple for packagers and allows us to change the license if needed for example: * From GPL 3 to GPL 4. * If certain modules would become part of eg. wxPython we can donate them under the wxPython license. Phatch and your code will always be available as free software. You can test the licenses from the ``tests`` folder:: python license_test.py .. note:: If you forget the copyright or use the wrong copyright, the bazaar precommit hook will complain. Documentation ============= * The developers documentation ships with the Phatch application under the GPL. The developers documentation is generated with `Sphinx `_ and can be updated any time from the ``docs`` folder with the command:: python update.py * The html version of the user documentation will be accessible for everyone on the web and might be shown with ads. The pdf version of the manual might later be available as a reward to people who donate. If you disagree with one of the above principles, please don't contribute code or documentation to Phatch. phatch-0.2.7/docs/source/linux.droplet.rst0000644000000000000000000000014511346363116020522 0ustar rootroot00000000000000droplet ******* .. automodule:: linux.droplet :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/linux.rst0000644000000000000000000000023211346363116017047 0ustar rootroot00000000000000linux ***** .. automodule:: linux :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 linux.droplet linux.thunar phatch-0.2.7/docs/source/linux.thunar.rst0000644000000000000000000000014211346363116020347 0ustar rootroot00000000000000thunar ****** .. automodule:: linux.thunar :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.EXIF.rst0000644000000000000000000000013411346363116017564 0ustar rootroot00000000000000EXIF **** .. automodule:: other.EXIF :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.findsystem.rst0000644000000000000000000000015611346363116021222 0ustar rootroot00000000000000findsystem ********** .. automodule:: other.findsystem :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.pep8.rst0000644000000000000000000000013411346363116017705 0ustar rootroot00000000000000pep8 **** .. automodule:: other.pep8 :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.pil_1_1_6.JpegImagePlugin.rst0000644000000000000000000000020711346363116023511 0ustar rootroot00000000000000JpegImagePlugin *************** .. automodule:: other.pil_1_1_6.JpegImagePlugin :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.pil_1_1_6.TiffImagePlugin.rst0000644000000000000000000000020711346363116023514 0ustar rootroot00000000000000TiffImagePlugin *************** .. automodule:: other.pil_1_1_6.TiffImagePlugin :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.pil_1_1_6.rst0000644000000000000000000000032111346363116020500 0ustar rootroot00000000000000pil_1_1_6 ********* .. automodule:: other.pil_1_1_6 :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 other.pil_1_1_6.JpegImagePlugin other.pil_1_1_6.TiffImagePlugin phatch-0.2.7/docs/source/other.pubsub.rst0000644000000000000000000000014211346363116020330 0ustar rootroot00000000000000pubsub ****** .. automodule:: other.pubsub :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.pyWx.TextCtrlAutoComplete.rst0000644000000000000000000000022111346363116024067 0ustar rootroot00000000000000TextCtrlAutoComplete ******************** .. automodule:: other.pyWx.TextCtrlAutoComplete :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.pyWx.img2img.rst0000644000000000000000000000015211346363116021332 0ustar rootroot00000000000000img2img ******* .. automodule:: other.pyWx.img2img :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.pyWx.img2py.rst0000644000000000000000000000014711346363116021212 0ustar rootroot00000000000000img2py ****** .. automodule:: other.pyWx.img2py :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.pyWx.rst0000644000000000000000000000034311346363116020002 0ustar rootroot00000000000000pyWx **** .. automodule:: other.pyWx :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 other.pyWx.TextCtrlAutoComplete other.pyWx.img2img other.pyWx.img2py other.pyWx.toasterbox phatch-0.2.7/docs/source/other.pyWx.toasterbox.rst0000644000000000000000000000016311346363116022173 0ustar rootroot00000000000000toasterbox ********** .. automodule:: other.pyWx.toasterbox :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.relativedelta.rst0000644000000000000000000000016711346363116021664 0ustar rootroot00000000000000relativedelta ************* .. automodule:: other.relativedelta :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.rst0000644000000000000000000000042011346363116017030 0ustar rootroot00000000000000other ***** .. automodule:: other :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 other.EXIF other.findsystem other.pep8 other.pil_1_1_6 other.pubsub other.pyWx other.relativedelta other.surd other.tamogen phatch-0.2.7/docs/source/other.surd.rst0000644000000000000000000000013411346363116020006 0ustar rootroot00000000000000surd **** .. automodule:: other.surd :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/other.tamogen.rst0000644000000000000000000000014511346363116020465 0ustar rootroot00000000000000tamogen ******* .. automodule:: other.tamogen :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/pep8.rst0000644000000000000000000000116611346363116016573 0ustar rootroot00000000000000Code Style: PEP8 **************** http://www.python.org/dev/peps/pep-0008/ Any code submitted to Phatch **must** follow the PEP8 code style, which is used in the standard library of the main Python distribution. You can test if your code follows PEP8 by running the following script in the ``tests`` folder:: python pep8_test.py As you should have installed the bazaar precommit hook for Phatch, this test will also be enforced before you are able to commit to your branch. .. warning:: If you use Windows make sure that you save your code with ``\n`` line endings. Code with ``\r\n`` line endings will be refused. phatch-0.2.7/docs/source/pyWx.dialogs.rst0000644000000000000000000000014411346363116020302 0ustar rootroot00000000000000dialogs ******* .. automodule:: pyWx.dialogs :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/pyWx.gui.rst0000644000000000000000000000013011346363116017437 0ustar rootroot00000000000000gui *** .. automodule:: pyWx.gui :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/pyWx.images.rst0000644000000000000000000000014111346363116020122 0ustar rootroot00000000000000images ****** .. automodule:: pyWx.images :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/pyWx.nuovext.rst0000644000000000000000000000014411346363116020370 0ustar rootroot00000000000000nuovext ******* .. automodule:: pyWx.nuovext :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/pyWx.plugin.rst0000644000000000000000000000014111346363116020153 0ustar rootroot00000000000000plugin ****** .. automodule:: pyWx.plugin :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/pyWx.rst0000644000000000000000000000032011346363116016655 0ustar rootroot00000000000000pyWx **** .. automodule:: pyWx :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 pyWx.dialogs pyWx.gui pyWx.images pyWx.nuovext pyWx.plugin pyWx.wxGlade phatch-0.2.7/docs/source/pyWx.wxGlade.dialogs.rst0000644000000000000000000000015411346363116021675 0ustar rootroot00000000000000dialogs ******* .. automodule:: pyWx.wxGlade.dialogs :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/pyWx.wxGlade.frame.rst0000644000000000000000000000014611346363116021346 0ustar rootroot00000000000000frame ***** .. automodule:: pyWx.wxGlade.frame :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/pyWx.wxGlade.rst0000644000000000000000000000026211346363116020254 0ustar rootroot00000000000000wxGlade ******* .. automodule:: pyWx.wxGlade :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 pyWx.wxGlade.dialogs pyWx.wxGlade.frame phatch-0.2.7/docs/source/release.rst0000644000000000000000000000777211346363116017350 0ustar rootroot00000000000000Release Manager *************** For every release we chose a release manager. If you want to volunteer please let us know. These are the steps a release manager has to do: #. Check the code with these tools:: pyflakes ../phatch/ | grep -v "undefined name '_'" | grep -v 'but unused'| grep -v redefinition > pyflakes.txt pylint --errors-only ../phatch/ | grep -v "Undefined variable '_'" | grep -v "already defined" > pylint.txt Do not fix any code in ``phatch/other``. Be carefull to fix errors to prevent breaking. For example if you remove an unused imported function ``bar`` in the module ``foo``, be sure to check it is nowhere used as ``foo.bar``. So ignore unused items unless you are 100% sure what you are doing. #. License and Copyrights Check license and copyrights of any new files:: python license_test.py The above command will only check source code on Debian/Ubuntu, so please check other files manually (such as artwork, ...). Update the copyright file both in trunk as in the PAPT svn. Check if in the ``Help>About`` dialog box everyone with substantial contributions is listed. Otherwise add it to ``phatch/data/info.py``. #. Developer Documentation Update developer documentation, by running this command in the ``docs`` folder:: python update.py #. Translations Download the latest ``po`` translations. Test them with `potest `_ and fix any errors immediately in launchpad. When all errors are fixed download the latest ``po`` and ``mo`` translations to trunk. #. `PPA `_ (Personal Package Archive) Build and upload to the Phatch PPA to check if no errors are thrown by the build systems and if Phatch can be correctly installed. Invite users to test the PPA and look for any user interface errors. Do not release a version in the PPA with the new version number yet. #. Version number Bump up the version number after PPA testing. In the file ``phatch/data/version.py`` the variables ``BASE`` and ``VERSION`` should be identical:: BASE = "0.2.8" VERSION = "0.2.8" DATE = "Tue, 09 Mar 2010 21:01:25" Check in the ``Help>About`` dialog box if the version number is displayed correctly. #. Commit last changes if necessary. Tag the release, for example:: bzr tag 0.2.8 #. Export as zip:: bzr export ../phatch-0.2.8.zip #. `PAPT `_ (Debian Python Application Package Team) Be sure you have an `alioth account `_. Update the Phatch files from the `PAPT svn `_ as far as you can: * copyright * check differences and sync both from the same file in trunk * changelog * create a new entry with the command:: dch -v 0.2.8-1 * change the entry in:: phatch (0.2.8-1) UNRELEASED; urgency=low * mention all bug fixes * list new or removed dependencies * send a mail to POX with the subject "RFS: phatch 0.2.8-1" and mention the download url in the message #. If the package has been accepted by Debian, release with the new version number in the Phatch PPA. #. Ensure the Phatch website gets updated. #. Spread the word and announce the Phatch release on (ask help of others if needed): * http://freshmeat.net/ * http://groups.google.com/group/comp.lang.python * http://groups.google.com/group/comp.lang.python.announce * http://pypi.python.org * http://groups.google.com/group/wxpython-users * http://ubuntuforums.org/forumdisplay.php?f=16 * http://mail.python.org/mailman/listinfo/image-sig (PIL) * http://blenderartists.org/forum/forumdisplay.php?f=11 If you have a blog, announce it there too. Specific annoucements by people: * Stani: * python-nl mailing list #. Give your feedback on this release documentation, so it can be improved. phatch-0.2.7/docs/source/templates.action.rst0000644000000000000000000000014611346363116021166 0ustar rootroot00000000000000action ****** .. automodule:: templates.action :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/templates.rst0000644000000000000000000000023111346363116017705 0ustar rootroot00000000000000templates ********* .. automodule:: templates :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 templates.action phatch-0.2.7/docs/source/testing.rst0000644000000000000000000000231611346363116017372 0ustar rootroot00000000000000Testing ******* Phatch uses two strategies for testing: * acceptance testing for all possible image processing pipelines * unit tests by doctests Acceptance testing ================== The acceptance testing uses the images inside the ``tests/input`` folder. To get all options for image acceptance testing, run this command from the ``tests`` folder:: python acceptance_test.py --help Here are some examples, choose one of the two listed commands ... * To run all tests use:: python acceptance_test.py --all python acceptance_test.py -a * To run only the library tests use:: python acceptance_test.py --tag=library python acceptance_test.py -t library * To run only tests with a certain tag use:: python acceptance_test.py --tag=tag_name python acceptance_test.py -t tag_name * To test only one action:: python acceptance_test.py --select=action_name python acceptance_test.py -s action_name Doctests ======== We chose for doctests as it saves time by being both unit tests and documentation. Please add doctests to the code you contribute. Run the doctests inside the ``tests`` folder:: python doc_test.py This will automatically also be run by the bzr precommit hook. phatch-0.2.7/docs/source/windows.droplet.rst0000644000000000000000000000014711346363116021057 0ustar rootroot00000000000000droplet ******* .. automodule:: windows.droplet :members: :undoc-members: :show-inheritance: phatch-0.2.7/docs/source/windows.rst0000644000000000000000000000022211346363116017401 0ustar rootroot00000000000000windows ******* .. automodule:: windows :members: :undoc-members: :show-inheritance: .. toctree:: :maxdepth: 2 windows.droplet phatch-0.2.7/docs/update.py0000755000000000000000000001372311346363116015526 0ustar rootroot00000000000000#!/usr/bin/python # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import glob import os from subprocess import call TOC = ''' .. toctree:: :maxdepth: 2 %s ''' AUTO = ''' .. automodule:: %s :members: :undoc-members: :show-inheritance: ''' def title(header): """Formats a header title. :param header: header text :type header: str :returns: header text :rtype: str >>> title('header') 'header\\n******\\n' """ return '%s\n%s\n' % (header, '*' * len(header)) def auto(module): """Returns sphinx code to automatically document the module. :param module: module name :type module: str :returns: sphinx code :rtype: str >>> print(auto('module')) .. automodule:: module :members: :undoc-members: :show-inheritance: """ return AUTO % module def toc(modules): """Return sphinx code for module table of contents :param modules: module names :type modules: list of str :returns: sphinx code :rtype: str >>> toc([]) '' >>> print(toc(['foo', 'bar'])) .. toctree:: :maxdepth: 2 bar foo """ modules.sort() if not modules: return '' contents = '\n'.join([' ' + m for m in modules]) return TOC % contents def write(filename, module, children): """Write sphinx code for auto documented module to a file :param filename: filename for the sphinx code :type filename: str :param module: name of the module :type module: str :param children: package modules :type children: list of str """ f = open(filename, 'w') f.write(title(module.split('.')[-1]) + auto(module) + toc(children)) f.close() def update(py_root, rst_root='source', not_overwrite=['index.rst'], index='index2'): """Generate sphinx rst files from python source files. :param py_root: root folder of python source files :type py_root: str :param rst_root: root folder of rst source files :type rst_root: str :param not_overwrite: list of rst files which can't be overwritten :type not_overwrite: list of str :param index: base filename for the rst index :type index: str """ def get_rst_file(module): return os.path.join(rst_root, module + '.rst') for f in [f for f in glob.glob(os.path.join(rst_root, '*.rst')) if not os.path.basename(f) in not_overwrite]: os.remove(f) root = py_root n = len(root) for parent, dirs, files in os.walk(root): modules = [] rel_path = parent[n:].strip(os.path.sep) def get_module(path, append=True): """Transforms a path in a modulename and its rst location. """ if append: parent = rel_path else: parent = '' module = os.path.join(parent, os.path.splitext(path)[0])\ .replace(os.path.sep, '.') if append: modules.append(module) rst_file = get_rst_file(module) return module, rst_file #add subpackage dirs for d in dirs: module, rst_file = get_module(d) #add module files if '__init__.py' in files: files.remove('__init__.py') for file in files: if not (file.endswith('.py') and rel_path): continue module, rst_file = get_module(file) write(rst_file, module, []) # is this the index or the root module? if rel_path: module, rst_file = get_module(rel_path, append=False) else: module = index rst_file = get_rst_file(module) write(rst_file, module, modules) def switch_colors(css, colors): #open f = open(css, 'rb') source = f.read() f.close() #switch for color_couple in colors: source = source.replace(*color_couple) #close f = open(css, 'wb') f.write(source) f.close() def main(py_root, rst_root, not_overwrite, index, colors): """Generate sphinx rst files and html documentation. :param py_root: root folder of python source files :type py_root: str :param rst_root: root folder of rst source files :type rst_root: str :param not_overwrite: list of rst files which can't be overwritten :type not_overwrite: list of str :param index: base filename for the rst index :type index: str """ update(py_root, rst_root, not_overwrite, index) call('make html', shell=True) switch_colors(os.path.join('build', 'html', '_static', 'default.css'), colors) switch_colors(os.path.join('build', 'html', '_static', 'pygments.css'), colors) if __name__ == '__main__': main( py_root=os.path.abspath('../phatch'), rst_root='source', not_overwrite=['index.rst', 'bazaar.rst', 'pep8.rst', 'lico.rst', 'testing.rst', 'release.rst'], index='index2', colors=( ('background-color: #eee;', 'background-color: #252527; color: #ffa;'), ('background-color: #ffe4e4;', 'background-color: #252527; color: #ffe4e4;'), ('#ecf0f3', '#1f1f21'), ('#303030', '#eee'), ('#f2f2f2', '#000'), ) ) #update(py_root) phatch-0.2.7/images/0000755000000000000000000000000011346363116014176 5ustar rootroot00000000000000phatch-0.2.7/images/icons/0000755000000000000000000000000011346363116015311 5ustar rootroot00000000000000phatch-0.2.7/images/icons/128x128/0000755000000000000000000000000011346363116016246 5ustar rootroot00000000000000phatch-0.2.7/images/icons/128x128/phatch-actionlist.png0000644000000000000000000002167011346363116022400 0ustar rootroot00000000000000PNG  IHDR>asBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDATx}{p\ՙnuK`I~;`s`2Hdl25Vnfjwvvݚ!@`;†`l l!X%%ۧ-Ujs9~}wΡhL6Ѧ_ WTtKҲI*k%/t]PyƳozaŠЊЪҪҺC4JP=*W3NtSgAQ0FӴβ;}gѩl Qu#i/ pCCC8[njuk׮s" y@Aݤ <itԢֻru 4 AU\?~Ǻx`|w")SlC< z=r1ܮMr P,CUU4443w9mEQT]@$ %@1dFWU,RCCMڸv 0K`lHUUpz(z`я~8? U0RHiZ+Hk~"UU$Id2xU\3ԣYG)}O; `YAAB!{O-^k֬s0`$rM T / g"RH`0e+߯yqO=ԃOmפ l b$7먤R ' ?faH4:˗/cÆ eM~]/^L H&?ڬݣZ4MeYp~?BP.pY<󘚚*¶mXׂGk J3a/BCC &&&…  o~p8F񰱪lW0یE=N@@QT$ cǎ8~v~߇|hA%TVlJʪ^:Mu= s".HRx7022;Sh8H$u=x^d2 R@&8,UŶ] P$ q!"Qf@T;:::"?OB>b*x5`]aW}zzzw^(2y~ȫTqECŠ0]-@]ip9ܹDbZٱX w&Հ5ll)PseL>3o flFSSSկ~rYŋŽ*4| A "z{{111h4J=*ZIT0T)3LuR2KMl1IE@Ӵh>sttt`"oZsLdz03紝N!iQ$#EQ "X(96>>eu.")-8$˔{Ve s~Bns~3mg:%{ٿ >FIF\ŘV{TJŤ垞Mep-rtnd 4ͦ+&UN3}j;c[kVJl[ՓAޫ} 6{] ('za67@5 5TKލ5EA<T(ų,[ldZ[UWp5=-355+W`ll zj=  !kBk3麎@$xo _@Yd ob}(bhhCCC8rڰ`ϸ=kMg[EE|g8y$$I*Yt](;oL_Z+sN˽p.\AՅe˖^T\tǏRd0_E"06.x"D:)'@:Ƨ~SNaɒ%]SPUåߏGr ȪH L\e?Mۋ~X˗/7םIٜ)'СC"u]*hl?JAUuh}[2L.B:#u[bb,R$"=>Z -׵+Q}1|G%l s/!2#`TgNY W_ũP4msqFEoA$!4woW`bj"H8~8nf̟?o&Q ɓ466vzfb)R*(طoyMG߇7dãk>ո<ik?C`Xg$ĹK<@X y8܅]&ֹZZZ~z444(t:=hѢ'Fᦒ^N@4%++Wo8lQ4p8]>lǯ/üch[j>pw݈c=~N߉րa{.qXn/^\2p=(:hh:˒}CX Xզcl9%ϊ𖳈1ܷ,k9DQoo cݸo388_2ߞt],˸ic͉^ DZ$hi'POg'q0bz b޽?7BhZ0 vvirt_qq8^~evmXrefC:{lIDQ@3g)fgu‡6^ð_J4{8 :⯳X|:?V̿eePѶrm`4._cG 8} S 8p͸ԟ$.alX>ٯy,⴮ЯHR'?8s&b1|~4]':8oߎ7" VUp7@p{@,քw#ܒVwwJxtPjx^x<, M I4$g y#'R@C84. Lj}vU]]\L&{e_exbBz8> S,+EDxg߾7?8 2Z?Os^ "j (dJ\ξ6"LSh]`_O˒8Z]<q_pZBE:oGu.LLLBtI+Hd_禠j4EP6@j-X ,!lYu,K4՘J h# 5ͣnk&re@'͚jPT/MWtb<B/<ϋuk$P +N!% ۲e˭Nx[7?9$IxtkUH0 T68A3tTŶE;}S@Pz.>lzK/Iu:ppby)0uBv 4mdvДoz4͠y a U%a8oicݲem/`gʞxwዑYt'"ˣP[ZNJt6Y)9ϊڄU{￀q4Y<0:^}u$I{,2`JA+P H4 FTYuSx|T*V755o?Y-bD__oYWi݁:t: UU:~CE;q e90LbP?*K/E/‘]s8D"\wcYQ?~aQ!f_+|by !WU$bbAI|c+sm,4M%MB-;D4m z.n}؋/bՋC ĉYWm\E]x)lD)SJ(>:˴  `1 a9!4x]EWVޥ:<E9)XɉfG3GưiX0N&F9CPv1(. D"Ţy %4Cw#-'ȅ(Izߑi2O808<]8\d&꩷^( UU:_TU O?*~'\Ǣ#_|/l, Qpӟ|"k~rS DSdY~>K.M"놬-i> mVL{A頻eA WlD:V~>{-.MVB:TU=322ߎ96bdgVݻN]D eŰ7omix{#ȩu]OѣG^$)49s>}۷WWAAB8h.$ 4vA^4$7{{{qtt  FEj䡚EŰa!t6BS4{BK!xiWQC'(S,-pе|IK{7jV @/uCh/YRKHuirr/ H`~*DlDX,Vr eLtT tD==j% allk6]?T@Q>tR_[ki~U8}B߻4>},TUC)|I`8` =m74+Wv,iZz||SNzrr)lJX. 0\Qdr`E8r(N>B.EH$Aq)ܺYO7dw颲Ɉ$^}w '|<IH$qn2~}hhh0/~ԩwe2aWL'` /e@ uo=Dy<{q iBԍ煮A.}aUx> ( $! J!HDS/də xrgU"efA`2_rIsɘk`a[ VdŘo];^kiL^:X10S?Y@zL/`)~$iz/۩;5`׋|ʱ{z q6R)Ybz5Z{x)^wΖSLDTU\";@ػ:-ZRʥ0l%@ R.";`Y@$8Eug;hT6*QhA@#?$ST_r"Me͛ƲlD$>UU= D#+-@iZiZi:òlEQ0e;ra@ @tek<Cb|8War F2G smXd{Aq|_d2 >#%\R33+Ԟ̺H `D E{?`0B" @P2[f)`T ažo_d)@ْ̽_Q?OXIENDB`phatch-0.2.7/images/icons/128x128/phatch-inspector.png0000644000000000000000000004006611346363116022235 0ustar rootroot00000000000000PNG  IHDR>a pHYs B(x?IDATxb?(bhM#M#M#M#M#M#M#M#M#M#M#M#M#M#M#M#bh 0GAAڡ0@oE$w'Ty>\f7lbjkhP2># H ]?4Q1v(Ԓ 0D'kKP^ Ƃ*,)]zRsӼy!t"Z"-k*EdƔ:-_ doo%4/:0l ۷^x!w=^͛7j߿k LLL &--uUEEm,,, P2Ԗ1 1ELbElҭ"6jHgLb翟J@U˥OӼ{!cҖ+0+ j - RsF3n~w90|d!fKԖ!0D'iekPSS#`8-0+ "YDB`ά's" P}ޟq1n1(k$a,@~mo\a*)%*sϦ\nåmwOK"2/?&FFF&FF? nݒ=~xܹs?}̅y =H/Hɿb## zz묬,˽C̖ @ E,2X,A2C tX"q Yze}?gEd)2.؛[|n=WORHJh܋nU u C}4圯f&"k'̗ 0E':e `& bKa*¤FT0_c܏4Mc)eu8X J˲ i!"1䜐RYPU} 3~~gfQeJY.ϟ"S,H)q>_躎mtjQUD2bfGBPw}ZUUmZ~WG(^ [/ 33߿3lٲ-b߿f`bbG<1f1333ׯ b   rr |||$ <`8{,˗޾}_rZ3?6t\d`CX @=`0,#i}|{n|9|vfTgZ"0 v9(IO1 23B ZTeKHW.n׀(8uqe"93Ic؞>[c99Rٯ izÆ ·no9nnfbbfff+'} Ǡ xІ'xu 1<}?Lo<߿|AVVfSppp103ӿI7oԘ1c7o?Rr=,b|ITwebbb#âEK;/@n}߿7...M!!ADjg- ߿t: _~e fہ+`!yXwaѢ ۶mgc٭ к rrcbuuuB<e @DrԦc |_us)0amA^4pZ[-D4UgB_QmE8YӶ-sޣ:(̈d f~cK/֨ oY$`4Y=xJ100?a; tؖ>|_xf/J}m;v0޽ܹs o޼aL03121Cб~JYf3ݻA@@6lHi?ϟg$WHII~U[V`f``;ݻt3B5 ?~baʀ9Rܹ0qDu1<{ @/_1| yyy RRR@ ?01ܾ}_|%5E/333/_^j= @giDpmOX1*ZrT:bgiLHHS<3?zu@QYUuI!"XnI~yH#lw(eAQȲ BpeeNGDr8mB+|G爢{cq<%h+a蓔Ҝgj0 0])4000?Aɮ]! b.FJJ ]#u#Cff&DExyyxxx899 I ؿ0Ǐ _~eóg^zŐʊ7mݺa޼ BBjӟX>}ٱ>>>j7UY1 @By3 i-J a?9$\)Bd-f{K>˲ŗ?>G]0|sքU)9ǁmo!aXb }27hMӠ(A MS!f`sBP77)}c J+uQtjEs$7EaT#}Ij@CE;`sm#MSض 4a4M,O=J}b022dPPP[2رADDATTl|2 ,, **`llʰdxU7W^1y۷ _f{.9 ×/_Ro߾-߿U")@ܺu[ey$oy100`ځuw0}t]]=aaa!!!vvx#e@C 9!02Bl  : /^do޼aW4۷ommm8tY1 @9b%WE}S;Bʻ漤! l pyDmS3c478|5BJ9sTkm9$AߒbWN= xBs(@DmB)C4Ȳ(1o?%XkWeU.u}3Ƭs'<Z= 0}m$[`ҡpE%R -B`!P-j>~Br5l(]ޫ\[f&!9Ehu1J]ug#2$ sO1UR RHC)Bk c hs! DqyUUMsZ?ʵ "*ʕ+2/^?,O`8l&T j.˗`ad`g +ck)YYY89/_/>}p]o20| ƿRgY{.kJJ" s)M/ \\\ JJp17n2\rAFF(*CL ,, R Oa 888ׯ3({ efbb!5k֜ L~.ǑZ = @?Yb:]>McU`+o.D)Lb){3Bou>JVӐm b$##/=w&-J)FUUiJu4Mc u]e{p3; w1`(·_™ ,z gB[qץ|TE 9ƿs7;;'#%T2220s00ܸqA\\ݻw _~e;ݻw~ s9M0CNYfp33?'ZA 0 ʯ_srCEwXY;ADi纾]RvZA ֟Y'1_1Fm Pj\{tD,=a39fFQD@c'/((NUU]G)[m[10 $ @"G@d«%˃u:~3 )%e;׺$gu2 0~yD=m!/!A֑ bY[IDB8t-μ RJRks1M)\E6ª߿Lfg^ذ3f!'RrB?+sOϟ?3}˗/E,nVFF;`nI`bfa`gI&'l+N\;0 }!$JN>=C` Щ֒G˖޳dK`DJXU"Knmߠv; {mus`fqyfYS_$0Fβ Zk(`MϠuDƘiSY/룋H~rʪ300uarZc`dD޿[hۛ7oq!#(x]/$@fxyyKֿA'fsՔ9sV<1!E(5+B܃x O<5 wإYg`b|XCޟba8mڴ?B+0Zb20@r+doߠ{2B? cHu+;ӧODEE~Š-%iO!i$0󇑟iŊEEE:::ƶ1 @E6DL!. 4ir {s;5ADVI@@&dfޟ ќ,i/@̻AiP!ж-cZ:E8qeq,wADFmegض )D9Ir<)va^M= @?Uv tu= P? ,,=J*M,r]h$6`$/D V)aXa)ж׽o Ғz^"z:sqߗa,KD['ׯ'NbcceE[բ>>~G1|AUU˗ ?fãG֯_`nnɠGff&HGsҀpBafRcPTTdqd0 6ý{.] {ׯ̂׸uV{Ȝd*Ĝ 0DϦ"DDl<R,)l qt:tRǮ{8vߒѭLS=G* sua eNƶs:"~~c^B,/DBb1MOdYy_>c:$鮪nW!71 PD~ b*59N^$'zx b6@ \n)fff\eX0+w~i$v y¶y(hۖq4IӔ0 M z%n[X}H q~w] PJQO<X=6{7G|Y >bbdd#Wsrr2 Rs51?z  Ga8s4Cdd$tÞ={֮]kVJbsdw v ^o',$^^^%K0ܻwATT )~I1?LܼΞ={WFFbb```8ut/_d@11[ DYbgbfdhoddf7778ܹsΝ;P]]`cck d*T߿W2HHH@wA"۷ SLee`ggK(߿2333EQQqIFZ+P[A0O!E3 G(^ i}(Ŕ~Llv6>ٶ},1|]4c]D>oPUGE8Nr\Ru]#MS]w8 UIl!$ CiEp{\ׅR , fFeh͑pmU8"co:)Þ;\;P.aBe FAGW\Љp$ʀx?+lvٝ!)i`:Ŗeg"^=̾9SE:bZB(i`݌t]p]E8la4{},=3ͦ|w;,Kpa6TUcshl[( 19<.$x'\;n@}ޏ]B )B;Ăc+ %TD.q)iƻNa 0ӌ40:"ezyk\PJiBE9AB pNl6A!Vmң$L<%0Dк`#ZWM~^e]ըg8L0@k} V1Pfԅ?iZTʟ}Lϱ1f+vINP4ɾ@I al߀ŝ`"L`'paa\C5i ~M{-vO䦪̻,\48b$M6a\.bDGH)i},X)iހ=`my.!z2PZk c(RJ>~ 9Ho1 BJK1eYo6OZcqnp??\|&hg^{JҷȆ SI%(M&-\r@jz)2NopmOvGWHgPxbyq8$IRa)EQ0Ð0 vTUE]UK)m۸˙ |~i,<|ߧi&(z n7fy|Ov)~O:4HHk9j+` e j`k" U|G7|ff*tqIGI]4{;$M J\7c@@yfm۾A. \j .٬3#|GEQu]TU˲0ÚZ+̮.mƘe;[w"r13ʲD]0 C8qE,p@$?ގX=h;hFDH ELffVB$chۢ鐦z]=@J)˞wtyyXFz?rRf֚`@% CCfBA]aH'j!Փ3=K^us,Rl[WU7YC r҅Ⱥ]PJLӻ(nzs2gK"qgnYXkMRlZ4MMKa볋k ,谞/cx+ cIBHB>LM$33 3pH׳&ImS4˲"خ{wh!IR_HӔZE+h|X`(t:m< $Ix<& `4^?Z}xc qȲV%'M ·GN)hإ\O7MJ ~~P:^.6 ;3yc`%"/}zYۥfgAdzJq?XvCx=Hz z;x-z%dK?VuXפ?63|_JٯiA@ٔV% Xyށy[dD83U~ kW]U)aR\Dp]JBZ\ަTZH>{pHO}RFBac~#_ŶL1Qvq,vbWs|kSOc;1v,V$ K0=z8k7ta6Mq0<P!n_x]$I2 gw̲rm2KT_|,DFnG2)湷 "z%^#ԟM`zzkS{yjh_́ ۗ%voF{m??a:Kyn,CcbQ& ];0k7"UTiDr<9KZ+^=Q >6El_#zwk~XHY ] "jI)]SB@f}w8=u:?>(tb+ FںFm5ק^4,f"n||qp=ehI#qM,@)-|l$ϏAE8al߽s1@E?˂L$&"Wֆp@A,Q: +\ q&S̛L~E{ !sijdYFwc\kmQ .3 ! }ߏ {7m1ZbF!uS+y+ vaW`0[vp=k%P@%'P2`Z@!lW~F87($INq0 {"PF֭[.\Ȱk.Ə?210003CA$1pCYSDXXD_Q@_G 61@< 7bv F 3@L5>^1F|d$Z0g``8 9Z#˴Ve2N?_FFf663&?' ++bf-?1/kL2N@Dv9';xS`1͊lx38hE$==,i8)Iʲ !D\ B0 M0 RZvzھ= Î1J)M}_ns?};+ꌱiÐDͩy{lw~1a8ew.gLU $'I@D޹Rj1N(Zr\];N@}g#ИPRpDMH.R (RcG"Q"F̛7o:v⢦iZzF]ZƘg1<0ڻ+cl ǃc!rι"cNJ!($"-eVXtBr4\}p1zcp}uv [cLk̰f>?.=ƌGm| ;>Xl>;Ǵ= (Nxsd]:cz~^.wE[=N@F\ӠRp@CEA9hݻ4>ArEŲRF&PNOff}goih(,k!|ց뽷ιH0d@&"{ߙ cbx hRJGRRJ\#?8]p!b|u "wl_o7\^ruuɱ ӱ:H2HN=/g#md2}Zo: oaXqٽ{7Î;9p-bzX`adddVlj+fdddeXސ }ҪP 233%KIIg7×/_x;pH"QIbNV$16F. i1ݫ~~]\\lb888n&1 @Ef$*[ AD`lLM0ˎEv0Rfaew晕( h$ 4y vI1骑^vseCE>~NVA02 Ƹup/q>]1[<0_j0N|~ v%@@avR)c>v8Q k-"_]; @ b!Xy+y@`S!`5Zٹ{3cw/Z%Ra8$ +[%t+z4{>`|Þ'InpjVBpud1dy#`˰9ԝ;(;)ƒ@ m -p u٢)mΠdUQi^<_Y=N@u$Ln6ݞ3p5 "),7'] /%Sߛ72CVg/)WYaZmP5EQiTUա{9;(u|DNDʛ]a$,˻H[@q/W7G^8#%`=<**'4;<ܮx}2l.&hӟ>^J://]Kj@}=,3<œC"MAK2ntQYIHY.Pޫ5+M>GZkE,!"2M꺖iжm0 w 1زqǯOD*,q#2_D.~3sUU=nYGDa*$I)E 0?Z|/Cf!bx}R8\\!ڥCvlhy81'Tj5۷w7A@EWbFb`Y]*s!x""neDB@3jEH򟡊W*~mCtb3VؼtQJ!Iij yZkADA,,"0sH1j(t&뺳Lp\x̱1qp?_`pv9@?t!۶-˲]EQ"pRJ]0|o}JĜ1 PDBHVX$J1Hmao~Blΰ>ë/IF,\>o܋0JU}SAp0[8[pr]X'2ꈰct>&'DQ.2mOeyX7MS[koƘjQ1|'%}_'` aڴi ٌLLL, %^_?Ea+o}`+ÇW.!_0 %''=3/++ϟ;w6/133a(````%ʧrfff2zxIpř i&~IxJ '3002}f[X^fF>V??>\ϐb?~ggg2e dGB& 222_~Jȴ1\|i6ѯ_11111222ps@ZJ G0003fðuni!>^AXϟ?狌?wff &҇XU=o>(/_2CWB300300H200233JHH@!oHu=û7~2|y .! /?_p> LLL UMDX"8|0?X9Cȣ tt%do_>~>v^~ff濬?~|x/_>_d``BBBX?MDX"1cCnn.k::& ǏO.\ > 6lz3000윱 Dhsd"$`dd ,]8t)ܤ˭W<n9;bPUM)/N涭3?ZUru&fd_,Yk-$?9g'-H&~ ‚?Bsyonnoݺuh -H i%ϟ2111/+++ϟ?_x!˗|j+Z-$<ВϟYYYY!9|ϟ|-D+W.ddd'%%c.y0cŤa ӧOg`aaabfffebbe``a``g``pc``bff ] (lnnS؄==ȁ #`` leeի3.[I ((:9.KI66r> nV̝;QNN]zחٳgg}æMN8GFMM nnn 4!M4]9XM4'v<30wM# h 8M#M#M#M#M#M#M#M#M#M#M#M#M#M#-̊&IENDB`phatch-0.2.7/images/icons/128x128/phatch.png0000644000000000000000000001570411346363116020232 0ustar rootroot00000000000000PNG  IHDR>asBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<AIDATx}y՝wkTjn ð< !=` f5q0aǐlL&Ʉ I&awvvjw($JkH9TIKraw+PǁE5:ju8q PQ'@NG5:ju8q PQ'@NG5:ju8q PQ'@C8&V\9@[  >#~7_yrC8DZ*h`Mnݕ`+VN1oXs뭷F' AM˗+[]"{ obt0$?|"p)2:QH~R 9S2TB#UOV W]pPࡇ:_r~]eR#vaExdsq! x;^ifNx2wb0i83~zQ W|Ipq &ܿdɒEgzp@~+1d2X<ʨi xȲ˖-no6@,[,>7(XjEB,ޖ0M1 DQqÀ48_p}+ws=E}ヒ)e(eH)(eN4+ 01{1 4JԄat &ɠ&4Maf\3wDP3ur6o" ).]|ҥ~^`ҥޮ&fGɈo=sH(+pif|~35/FgAQB R>i枾IP(}n{$jaRpӋ1FT}{6?}b̏7v*XcFkvtA} \mRctwt!iufǵ2yDD|etMfT &wo < @wMn(`DIW]͟C bnǜ7CV: 5aւM.91ӝB.$c7-[vߏ+x0sw?K_V0 bڼwG}Y{w5}ij%y4"-iT\/\lٲs*B; ݕyǘ{=ͧN 6vPJ/{߫FfŢXdIN/>LĔY℅WNOsAॢIPq댱 !+|IΫJK;/+Op?|j({_?@Ēo,z衇*aaTwqKO)-_4H$0<<?ΪTmB_JׇP(Vc>آ˗VLsQ~ YSž={^$E!WFCghO &L6 ]]]hll$I'x+V,.nS)^*4MR)ã@__/oK~.45MCg F`J'' 8k2~Q,9_t /twwcʔ6AP(Uio-K"ctt##7:Kb?>Yf"!!Jُ?J/W^yqyhs|{+Yi$e3E|o3ֆf DQ qG ~?Chkv47D$fۏ腮k\/p#x=!I2|>bbYu*TUM[K"5k%E⻊*keD+| ZKG" WW[8%?9ŋm/\2$8r2˃} `QVa;W\F8}#bp%!,^~@)˻\8-r>'\)-9 lm,.ݗo/ZtZXK]!dѢgw5LJ2bCV{/t-&LtwM kQ! P3oWȌ6 +r-꪿>3+y,`ejf!Z !6Ԁ_Ӆ04M 7&S;`1c7`'ZI.S' 2 /;wYӶbd*(Jf  glnmyVna͂n`ƚҚ^bApQ "*zcY .:, qhD՟Z J)$I&w7wa-lh; !0<#v0'5D dɮCq¯(?@^袿?.sk` 'NXe۱y0&!5bIAG.{7b`&݁=~v8Ra0 S!rF+?na(OB2Xkc!{'-AE|~ г~/N8m4yطy̤BBpM3J[_ z^F79JT 㒋/?#Ȳ.-|?;/nAr!UHg C+7rѼؿ DM_\xE<$@%W"6‰Q DXKUNሥR_}_zVQ͛6wuu!IWp^`% dлOނ#V~&DQػ*eUlHw-X[ҳi #8rٳR 8|;0 p >ǻ+ "QX8^vg ÈHHo===*¼b/cR 7|MG ‹S&4?mӦSJm^qK0Ns۷Nk}~XxߧZ v舌OP_S!IbbW Kim۶䣏>U"HIӳh4Af WU*>XǼhȧ\o=K/MݠiچG׮]}Fa ]GnM@4M~?|M<0n`|6Z.6D&sN1X^}TFzCO1tf~ؽ{ #l#/Hu/?D0T?(^TUgw}l ~ /awIc=P(t)!1 FC(|DET뺷ǔ,Ӥu ~y_2q BYݰGdP(J<0lWqhlؽ'Ȳ> Q MX,Ll`!c'ra|Wo۶H$בmN3X f:߿ᮮ9sՁ@LXn"؛4`zn@i8~@@Z~x 6!I2;CF;s$c,H$^_cg[wj{>'| GksH:D Gog__??.P,Jw gM { C!$I$O0҂b/B(AȲi6 #X$IYAsO& d+_s;Dȵ#I;z{{e9s85U}}{pp:7dˌYɼ~;m –$R*׭oC>OQBJ~W-`uĸuau![J )-(Q 1Fs gVvf?1MӴ?GѵwS8E'xo =WY (r{sE;$/>ٳ N$BHV iBUUD"cÈ?aݓ ܌`02 X}Ʊ |> ǵ[|EXd2o*D`rXTӴ dr}8^gO6]5 ݩZn̗-x%#l28?x:g&ILi$9(b AAxWxk8>HQ8 BBKPJ}N)Sj&L&Lӌu=:6ދlsjSHϗr}Sn^UmwC0"@,C.)w'w,7 <\f|)WН "ٶ5WP \rs/;smi+pSaהOƹX\2Ş;snD`G7unA4 ݉Ih`Y|nY|΍nn%BN'nڛc8ޚ*x 9˜ x.c\ cs`yp y,DϹ *\ϟ%\H<{5a]unq(hmmaĠlБVGn(3pIDdM)ufpp``vR!",Ņ ?vU--N|Bh-)i%IY;ٙoSa詏 n`]r;pjObM:O;@+$̜)JO>,6|GTG-V $~gc; M&9<^8h 1j*E^*PEToցEУ_jr 8΀aQ~k Y^yPPIENDB`phatch-0.2.7/images/icons/192x192/0000755000000000000000000000000011346363116016250 5ustar rootroot00000000000000phatch-0.2.7/images/icons/192x192/droplet.gif0000644000000000000000000001267511346363116020423 0ustar rootroot00000000000000GIF89a      !!$!("$"%#&)'*')&'+%- 3)-/,.+-13120/5 *: 04655.29,=48:6858<>3B:=0;=:2E :>@7B&<@B9H=BD@B?>BEBE7@EGBFHDFCFF>CGIEI3DHJ>O>QGIFEJLGKMEO/JKIHLNL$4n7L1Kq;Pb,rS S" (TO6-,r6X1=/@>H'L7P+ # +t&d\;uՖD8QmQHUUs-Rpm̠g!vxR.!ܣ7G.9vmT֙Ýq!qN=n騧ꬣ zn%$3G0z'@.e!z1 !D䯾K,0F4S/?Pg #(XA4H݈8a:pxҷd7A ~҃x  @ p!s@ R0Xd< %:'Ju$M8 Q=HG:Rql>,l c@%`(`>#AtrHMRTL4Pu%!q2t?] T8ԡeа(\Y4+Sfy ^׾]*LTypJR-$*BX=XŬeV%`1+Rt y aW{X %Roq dM+ϗt{*_9[[=@{= ^` pcNq=yV, Ȼ hG7}O|G񐏼'6Xϼ-7] e DF)oaA+Lozc0z gwx53Byi1@{ӿAc+)/|5$ N/x_Y(COӟ"Ӈ|2TZ+GhNנ} ,@'~8XxhpeP# wTi.cJw%wC`<؃>eB!CxP' p P$|]\X(c@C0{Q  h*h@(AHF6}`Wpn^0Kpw pF_>(8rxE'SpFP  d0W8?[ c5J1؋ыV`8L<芹/5h^S@ЌX@IU8p0xc긎؎8nW@(LpP"TV x #30PЇ "Yh*Y0L07.)L˥ @9#W ',2AS\P>YV\Z\W+Yy.iDA7`HʰR_)[@S@00p<0A@FW \ɕw٘٘Y0I QISFsР`TTHa,IS`Y9٘ [yyyW`9.92z `SV@BUQ@)9YW YFY 8 `Лii`?T١ ":$),HR` y@ ^CZFzJLڤNڤQR:$jQp > א PI0[ BvFNnOr szxP0,[` ()oE :Znꤠi?P zY zJQڪ nzLp*ꐕ@L`:ڪqڬj:Y Gؚںڭ*٬J:A:jCА?pJp Ѱ {C5ۮ7F;$[&{(k,k?/p;' <@){<۳>{)B1F{Ap.Ж*p ׀ڨ З0y'^{Db;d+ h[g p P x  ڨ BhY;O{hK>KA:6*05X Dp:ۺ{Cpk <0)Ж2 FF"0 Ja ɺ۽ۺ,˻1S0T Pp aad ҴTY'<@<\ ߫+ 4(;M P@dP9)7pp RUJ?NPR< L|K3pS/,pM<%2&L @gpPG|,@9ZLņL8qȊ: PeP.q-n=և،m֌q;xwXC<̒٠-bڤ2+\Ӟ]ڲi1۠-֌Фȴձmۤ mڧ=|=fL¬<}xQ^ (] L(Ӎqո]'-ʰMݳA-3y]-]<~ >^~ ">$^&~(*,.02>4^6~8:<>@B~;phatch-0.2.7/images/icons/192x192/phatch-inspector.png0000644000000000000000000006454711346363116022251 0ustar rootroot00000000000000PNG  IHDRRl pHYs B(xiIDATxb?(#bhQ0`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`Dbh u32000" 3R32R> h11lfrѹЭg2rMU )HTWE>앱 0 D_?svWCc\ko%C. L!ԷRvr^$~6>T`Un)%1~9 M'V 0^tI!Bk:U )r84qpu-޻ۼ ̌ bwBhsq[Ŵ-u<!V XӜ !2<֏⤔Uk}'$,^Fm/얱 0;Pbi %,.讫|PD sa?oSJiNDBѲ\33@[bVUޜsiG7r¥mk]Fc R)ed1 0hAH$B7t{鉈H#Z2ƌ]ι{ !lSʨ uC) / Qw"wRJ1b|ka}9m{Zߋ\9T10 EmW1 H'ڑ;31q%S'fH`@#7@K6ZsKac(DTDJ dAQ uWBT#0303 CE)uz{0ƜY߈t9 "~10C|HY[{ѕ3pVF"qe@CP3Gd?UufEDX9~/eK)kA! t 0Din'7v$dQcПq{ݵ6RC7=Vygo޼}߿11022?!΁a.H~`bï_?~uCVVzN==ߠF0+6߿LLLLLpMދ/FjUk,b "PBJ acDmۢ{!"(Dϋݝh&VUe}7Mټ`9g~>ol}Ѳ?qss3022 {Bt02P~4]fff qMMMUUII)))I666†a߾}cx)ӧn߾pu7o20220prr2033Ck}">?/_2]655@]]d n̙1@E? b{<4 ^ƳG`lKZh&ډq)&?LDeqlWeyZzh8W_c z, MsA۞!DL3Rʗ=r'}*R EQ Mw#ƍZ0FCkuDlWUxFuw?+~imѻvia``e&~=/32200113 )L$$$꠳-2 cؿ>|#U Lׯ k""Z.2:bDCw:T+Vjya///##1!g``lffׯ_xDDDf#*"=fػw/GŅ6Did2331?fd@L tVaɒ77?22Pydׯ a033ccf```;a#BЦ͛7֬Yp5NN.wa/##_888nXZZ{z/߿!=T߿LLL>>6ٙ0TZ3300=qիgxҁ۽z?̠ --&0k׮3,\ɓ |t #Fofffqq0 F۷Zdlv)vv߿fv) 3˗  aaa (l20333|a9 Of`&ZH/BBG.1111C8dL g={߿H_?30AQGA^avPa߿ scػw??🅅ϟ?Y~¬!**j211&$1 ݃ׯLSN>B?ÿB<耸v=.iGeCll Fb%$JlrÚqK,eؼy ???y H/TYZZ`L}ě 0V(\[2b,xF!@^! O*Pґ4|^swOw4 !\]?Z1RZkYtC}ÂZzz|VM @Þ,{Qt+%,M7fFq? ` ,k lPk«8CvXOPUD]J) ߚhK)a!Hu_LӔRyQO=oN-ĝ=@ 쪠Z Ρ yhZ4zm4ZXhq~fv'4MteY;9x@}m "!E<σmAhQYPJ0̒My5|G ᬕ>Bu)!  l }T* a>u!z\ v$Yb^l}R<c'qq^;G/ ĜK P EkRE'*JcU܃ H']+r E?~p"mV \ݼaDmQR]l7b飯$IZӵ*y  ˒piB hDSr_gnQ9`f0rXOnu "i s+Rhu#N( @r]iC uw} f)=\1nP }I$$ Н!pts u2%"e_TEt!PTIod,[~Wzne6/q}^_zy0Q㳊많,K,+hT%3Gk7`/ 8 !q֛nf0hG}:7Ir98>ns7zUUb\4t:RJ1c& `zvKzb1 ۶aY|(!!gQPJ)AYȲ M`Zu'P 1uMunXRJ;ʏqJ/3 Ǐ̛`&/;MFTS{ fffs|[k?a֬Y 2 iZG8Ab.<rMh3prr13110~ADD >} AA?~`x1DDD|JYP0&OرcB,,,i \ @}ڮغB1~D(᱋`>OP<](Ĩ  |(B'hh 3bOO۶Zw21@Du]cZAQZ |3/N, J)<1q!PU'heY"2@` t{?XwK!Dg> 4M=yk8t(@L~7qW^۰ix!Kdeew 6mbafe`gg(LȔ% X 9acXr%ëW899޿ 2pu?03 2|F߿X033[OM iaK䔄p3AKKh;VZgQNHnWaāsD98$%ܹpA?_~7?#qqqEo߾au@t7 S=zLz=MCQ 0 lmpc7zdžv]a}EQD $?$scצiu}9& wd=0,^菜ZVȲ,fs]TRJı/~" N߯Q h4MJ)Z)0 qD;c ͛PK욈Y":eyj۶"+@! '1@|f&D_ \\\ JJ [ 'Nd>(t5'tQ$m bb" .\`x)R ?k;͛7gn<S) mhO4yѣ䠧~S&Ĝ=P?K;jl9xJO@1ф87d7o@uݥ`[2cLk㖰sñ =_HӔa'm?[kC b 2|ߧm[ʲ*h< 8k{ѻ xJ?;_" M_zߟ?Y)IId0!i2$,, m/_wBA23 5PW!5dʕ+ ~çO}~bx%Û7o899~'5aee4iҚǏ211VM]1 ܂8Bc|>!%>&6HЄI,B0#XPps-Km{;49/a+9J'rfZvK0뫴7/ȹ#eɡ!sn yc1ZkPJ!Dtx nCTM]A ԃoc}CRHQ+Xh/PH{WtYf0*yZJ}?ܜ󗦩生0ٮOozw]UO)s~t+;V:X=s(/Ⲯp.RJ[Lc$`}#PJ;9wjBڠ*mUUi#o];0 }iދs.e[$2Pd2d+$[mY?Bs0Sߛ`aaRZ#7t܇O *6 }R1X4\ )0MwRʼ!JD U_@( LctZ{޷sI\; 0 }{NG/?bRLj֠I]Ц>scN1&*}Nu93R5 UB` 2/bwn 1G:AmGUh%kg~[G&"{"*߿ ,*r$#!`]-|X$$F~H+ai0w100@$A4jX 77nT-X0Y `"7orqfⴇ2| cO~,(^{(_.@?L48X ˌ>grvп7[ҾL: ~d{E133?eM 0HxB{[xtԸqZ2c Nnmp2fwVP~24@ۛBUIbUX^6W[e][gfT ܪp89Ͳ*ʺt΋}3g1m6gNj4ڴ"n޼ի7||D& .29^3y˗/  .@E,QÖ 07 XeChZcG(π30111_b\uu5Oss;zb]K }:{NEL"ҦY8> .^&ٷ]DG`?g1'$\˸H)`f29CkB.~m:f.o_8߼yKڿ10g"f  `RړAHvN'333`7o2ADDATTpivaH 7777770?2x񜁕ZZaRΛ@k4M1&0B Pl3CQܮu]ˠZ BG}n:'''߿IdHN=jLNȲ10222HJJ2˗/(͠߿3ܽ{YՅ|껟fbbb;Ç ((Rpss3 3HHH0{ڵ \\\ Sc`g斞O>12222a\1 @ۋzjJ i!a`Z!DAg0ؤrowavٝ 5XkQt>q8J`dN |w""@4$Iq!P$qCJ yAOAo'횜c:fh; mY,14M u( 4?@ajpB?vy0< ð}0k d>LNNp`fih&;_Kr5Blv,;- 8ր0 Ji1qeYR 9<nQ5,_43 fHuf6\`Tp"YYB$I`Ep-4u$JS׽OB27̜=@_F p )Ry G! j7ZE Xxy3{dMlV{&Q6qq$FuD4MPJM81Ơ( h$ l?ouF;y~@!a(1,O}7zN0 եmcUU;"2.x] 0r S8|. $p7jP@%B@D<#z29<~L= ,= @On…gf8i)ֈQ:ƫGx[e>I}03ڶJ)ض*RR,KT A:{=/XY0,K\,]0}\2wuLX]'\Iu(E"E\:5w5=2Eq\WU|\}[B,K(@DHaӢB(98R"z4,f54'i8aA۶~?%ڒcG0Xwtye=c bbNr9r$ׯ?|P-&t3qe# d= ^x_ r>777ɓܹPVVʠ.3&Mܑff߿c fWaOԈm۶1۷A\\~ `t##߿,NLLĝ@ Q(  K*^ܓOὂPګU,R=݅iBdHY6ڶݚA=Ev~ )%s8)8 ng~$Uȕ(Ȳ(8Dhq7I)JM8p]wE,/MӐ9a`\aޥ+t}*5OYUn0 B]1@;1JBARDc`;*B!YܡтP}6doVR9ږ}cD  [y^r9u]qlA-7n<σi*8u]ioNR1M$בnZrcʲ eYC}:W\'RDDdY Jn}Q3];j@}Z 1R!P9EܫV6qaAA[5D vG)bɅmIS< ʲ.If%Ϊ~5ۓ>(8X,^Ѷ-$Ae0ƌ ODRiy3q 5Xt_7ƻ?p]=#7i fD4^PRX֐D|_npp)e!AD>~{B]UU]j0}'j`6xgxj74S3S3$;<ēɔ ES[\PBn (3ϗ6q`6 ߿{ \ ab.$I11<Z#2e nX1߁H@)ex}RSTh)UA4 Ro0]>PD2s'xZ$I8sZԝ=j@' iFSR:3w:D ZI*B2IT})VZA:O{ |c 4MIqJ)eYtz8_?trE47<÷°>h-N#O47$(q*H)A&+xqL( dYѹvO4EJ ۶.f{L&&EDϟX}Ҧ?èsJ֚H#YJ& !i-V-s0 ( "zwh 8/fRR*MVߦnhB98HQ𯮍Hp,s1{0PU,CCy>=Wh/LFPz27R6vRez7`'c:c$ɐDD]1J@}V6i`Cx!]:tBN<)0%lHV|0 6 y3o3cHQ1q,ZJp#.\JyZ]ߺ٥R$,6u yc ^۵(D8!LS%??HLsM 2y<RJMz͉0ڬl=`t #8{'C#h͹-(vzTG;-0j; ijh]=N@}BD *^p.$[Xy]C t%;[cLd$}ei88F$l6#B:! .п ۀ~|~{i%RNAc}n9 Va'ʲDE`4MH)4͔Ȍg;1iu]x9YVsfq^qN}ZxӾQlx~yit7 O/Ӎ1m5!J1I)e%W_P~:Ip8$"yQNa%f*z+xv<- -Oa&!d/ 5&^Lr&gΜc&0 ^Gd>+4SZx$Jۼ.[ե-X<< h%D~ ߊ(g|Y~z"<Qh(+I~,%0Lvvt:8C&u]J~B8ضm |4M*z=A $u~.dpHJ ;f : g6J9Y,wb<<" OWJiT˲FaZ-fXc]jA=wvUW'UX4!!BZ?^HHJSMd+QaG 1q%;b6>In;Lq};H(J0 nsNf{$# 2Jqr|ADR1bwhks ˲jth4h*2Dzp](RcV9F<T*a2my 3uiO%^Kd31 9W{{xGtTHk{0t:}xcR)~'iWf~__ ]=OA}s 6\ݒXaV_)\/)bq&j؂"xcI#&:f&of}C}4MK̬%$Z`2snXԅ'ODHQG nM;bCrHf(PČ R0|0`l | ja,9Inh4`&vn0@ U(]*5R[u(*mXX؋L}.}0)B*Cq#w02BwK_>|ؚ5s4 j5ZZQ!sV" [PAL)gצyq_(*T\/= P0LSfX,`T(˰, q[ "vV^pBN6{ M@Uerc ~il<σmu::8wn.m{=B53|NSM bNxyEfjkvkIQ ^Aw4 cl91)2g#uBR*ժT*(J{,{@?SB.".!!` KW(_"_p&GDBid|Mp-wf'lb`49@yDĥd.8C 8i۟VCPDLiyP#'<>HX.n6z=.~(|Cz; ,#I8f^ZX.<ۀΗ;'ޥ4W1ϷA2o 8gv|GDn{)ʭkCuu(8Ed<Ѷ)>]N0bǎX2!![v$.L}> mۢk4McTkM}:E9 COiz4y~e !$r\cW>k.o`UN){HZZ+qQJ:pMvĿ tFu(1 !bo??"I^)!+9Ω>e6Z-'^voh"_x $P \_ ^h>tvCwk-/tȍQ\ӍX = EPƟD]AJ0}4Lݸ(0];/}ot <@ ܉K/YY "4qiG&|ᅲ-(uUUF۶LD*[ͦRNr8ʲ"IY9~{a+9' #[ \m@d|ʃdC+v(Y#8EQ` vJi<𴹅֌McK1,F@M 9tcp1~;5pA=yX_/L=̖!,k&\QWT"_{wy'9laj[ ||2v_ ʎrU{VwhQU;oW8,/dž5lPw 3a l&0qleHz? 9.tC㳉H3FYvwUAEa|۾ 1n@En%I2Giq<&"rkj^Rxե{\z_͝CC#nvעZ|nwu0 wb1b(|_G|O=c(ifEa<Yn3o? 0_R;8x!ܼI'x^Az  *ithUA@ ߗ$ܾ1HDQ4MIe@5L#ƘD{zghR%B*0tf !za;=qJ)uFn*4/A*!2?`11]h;8J @[9 6 cF 8::3GXz:0 @VKp CQp:_B+AD{0$(W(#Sjf$Z{уf,Oa$4v{}K~`%*[R/}9AQH(Aձ,B/X$X+N2BV>'t+eGW[U}Gje{zzrw"( jw1߿aҥ ǎc|%,ԘY ]1 )3 wal\ 3#̌|F.Hk gD}'`LSĀy #Z߿G`͡_~0| ߠ! y}@ ~ šDL 0fJg C^g89Մ7H?lއ ++w޳Oooo- mJ`@MlN_Wc@W`j`~beddOk}}8%戚6)$ 9'_?ÛCL27 LD o J>2J:Yv]|=XB9@ ͡޽c766+2y-tpuvŸo>/^$XXX`_NDKLc3"!cXGf.5y0:edddl bћCLWϾ2X~ldXe?!(d,숉26v2D###4TdV @*8нܹm۶ML!`O T M{.éS8x![n1y݂<)C'jBlπD3"a| o0fh`54&22vzqeQ0_~b ¾3xaw!>,AB@^kB23 +#$nlQfgnŶyL,,]q]SNeo3;\10}D8W 8z80I&V C[C}/ :ck$I4M1y,iSzdXmے S\Psצ @ $\>$ h 'C'nuil~&P,{;:m(A#xstpq>Xp)FXƂp"1VeeWE E01n0 EM"["gH/sd˕:w AO -[Q!AR:I$HQyk8y5kۖi\YE!]QUژ$R$4$D6z30姎}x kBDƘ#v2<0Qr;׽B |3~7A| 7yvWk8+?y2Kj1rU#8G|ETzZ{G}Ԝ1j0'ӆP1z\'[^C L]!z$J\@ҿ#@.R%!Dk-Z{9a{msNi*oi2 &@3s8V0&V2 Qb=31_gh46-qܫB]@A{># $&'^p"z (W4WxxarjmL<8MumlSoct܉ZU]ޫ*] 0CcABߧ[D$-:zIj]oK>>yz3U\GIk 5,C@4MCeYCEQmGk-bRZkU|R~^ozxo s><^Ev `!z01$@|BCLE̽<F?8΁ӎ'X.ҙRiC}{qc~^u]{x gRܝNP` +t%|߀'ĄİI؍KGba4cq.Amd%s~ڲ~ '7H:neJR!qD4u73z>R嗖9$q@ 4MQ+<4k9'DVvAw 7w:?o@O'H]A >\睇 ɕf/Gq#VM1%^۶?^IF&?(҉ ];@](HTj:hx[/eg!Pb1$&y?$6Z8V۽fv6w$:>~ȲHG|`F?)m ۶%I X*AI` `I'DT93iћ:h(3ʲplyb% CU+R#?q7M突1j8ͿNtӈ`qB6"r];ܝ@ r8H 3n >BC LBNo< ܼ <<4{._T f/0gΜ 5\ 0`P`7ހ>` 0)lS&)GK`f123s@UpZ`mn"Q @}:W[0ƴ-A+"54eO9!Zr.C@oE&%%_?|g;:vy1O/y%La` 9Gh\F!^.h4Vc``|rRϷBg``0{ؖC@JjV?0DGG3_NNǏa@sA--C<<󟁁ATȊ ?0lpp1+7Rgee5{\RMСo ?ћ=Q A[$v5Xs11C gf@?3kiiBG7{">?1<-!gfffddd~ϟoFj|c``=o\\j CF300|```Y={zkbkYm?dWA?r33߿>{>q/333߿ AKK+Rj 3##t>faL zL_^ŋ͌ Lm~VV߿Æ 6K  gg$vٳ45& "EHٰп_vŋ?99ׯҁ<.}zĵkW={u7{] 1li+++ҥK[>ʀdgfdd˗ Y>1h #%K!CL33@"93k'''ƍ \g```Z"C0r#_FF[dF BpRad?UCك #ŋ z YXXk7{{3G-Z($$;XYXXؠ4%%%Ƴg2"F8mG<}4Y^Ǐȧ^g``ϐ //Oe}7.^xر߾}ca ''~~$offAZ2:cKh `D~Yz`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`D`DB B:IENDB`phatch-0.2.7/images/icons/192x192/phatch.png0000644000000000000000000002567311346363116020242 0ustar rootroot00000000000000PNG  IHDRRlsBIT|d pHYs11(RtEXtSoftwarewww.inkscape.org< IDATx}yES>gIraIB0 H!E "E rxAS!!,MrEŕͅO (*$sf=ӳlL?W3]U^CP{yfGyMӋ~q<2 AL4@VlrȄGs=`J=b%en^v;kƺg> I@Ep)ANx[oM6*ёQ/zŞiPD|zqxYx s>oa'! f) 1ъ;f1pw,=jbCvm=~"R NP0nn4m:Ѫ@Vtn9pi8t6=:0yѨ>-[tsL۽py-c6r'.#m"`$l'noMQfi8d6oKS91\Ug;P0dS`<2{[q-M}_&ށ}dQJkp8ɟX\2jweVH%%K|ZwdQzŋ)Vo@A5tma3&?:ў=p ~Q՛ |.an0Zx3UH͡ N8ӕx_9j ~s@޴|N4\<0qd,ˈb@o_ι s>6њa'D[[B9#N+._|D n/^7kDh4~twwFؿXyDX;z%lp}n#+ cM7䡔>M)[f ۞018y<QKCq]lX- bCzCѱvoABBfRJp g7wАo<Zř/6@$Aߏx|}k ]֮J_ϥ}P8}J)<>Щ=xdmXvi}ڊv@ kM&_5͂ E#W)XA9h-Z{BLVOR088и&i7^{of vX뺎Ipy^ë~ɕ<0ֆB,FphA)_]ruO.n>Ꚉllb,C$1E0*;/S<A "x^ d`tjt\Ow)PU N.ɋ9IU)@MA|> tʕ+nqVF]_uBȊ7ip3oH&bއ/wOU%dpI,I!e!cA~EQ!)Ȳ YJPUK૰>_M4=?^79 .P%hkzcrA}dB zYec|D+cqъTw$'(<^/|>|>^/<cyСi顒$$R>t~χ`KeDT_.^ZmQUⱾ}цNq(c#:pޭP2g87*KsM o#``bd=FoQ!H`DwYsc=?sgO=OV|~.(?$rRֻV.F9^}Wsଳy^98Nb``bv65Cqon! " # ! E֫/.RxQ    6vL8^ة{()\F +'ւP D!_5K`,UXC{H ;̕LetLqhɌMϊAڸСB?q}J+QD{=52M5Eߞ<ׯGzA@U>zBꪫO.Uʁa ܶI]v_7Nϗ4H8·ahzX7H 9ܘ5ОDtMW@02 lϪܕW~L*+<\EPUç.AkvD$cԦ!.6᝵\Q(TU3z 0YxVD"Y nhy~_^+!L4JP(WL%:EMC[(T<\zp~Iu Pq,hpD3G]|U/ TXp8wX_Z#`<n ,C|@%.+ZBH49(>9) EjD(z_q>U- Q-2HUUx]fV%<EV;ӧ2_L= o]S$ҥOPqRjB+V j]JFP?o#~.SY{x+ʅ p[8=vR:bh:xswgcJC+g(^ p{y3u…_!cR:! ;v1{`Z 86.VXyusiBȥ^&k~ODRez^ ε=j{z6.'Y2g@uQ$BN'(YBe]65,Kg 6A`" : &k$:Gu}p@jbc#jҨ:9{s=}YS+4RcTzK #8C-O6] y7ɯh9VDY J@Wg *AN~OniiYAq3EIm_$j1<xXַVS,yW[0o/6G 4i~~`㙑X#QG(Fc74\s%JY)c23{2g=e*^;Cj$ .c.B^e#72YKtA$|>H2 m{-ꌪ&X鯪*BE1=Qch3qy$58S*7F=_qx_袋fSJϬ$zI2> M3 Xη"x=8g:N3A4MĬEmM(?88E1l}j_^KY>}ܸ !r)U%V-#(Q) 8OuC8?#u]f^R ?( @8lL7͌d[ÈyFpFԋ.p_! gN0!\pSA؈˛4aM0i6%))& 24K߅1*3H/OB=LQa5h_a7Ax<+C3Xk58nUU?OX̲-"Zty{FˎHzo]J#A$'-c;SvfPM*swjiL/ߪ"E!I"DQ0 y.!2WmcçsL|6g9ޒ 38oW{ލsZe/y^| 'TulŤo/Uף#A^딖. ?aAm}+ !3SS9RZfCyoٺBQEߪ|HB(&|d :cS/KPbx;Wy/)=:-,=/~ajS_ҿZ02JA4kuŀ)gNل͝t_R Q&t;}7m|!!I{h AN l4=0j;o %b7Qİnqv]W{OSx$z|Pb)J7&[w|ޏߟ%%>CèQIR?6s駇ڞ&ZM*#A VoP*أDZnG mj<"p/XѸE'o~o;@OX@ٳg&O! 6*n3S;}Z'?Cϻmxy 3\ɢ&%V> O0s~8_u;zf^&RѻoPM:#XV^*25@^A-zo@ډ [۱y.ts֠&#ֽH$2 lhH Jlg]㏟FggyrPm_4ip:dPP3p$&LuӦٱcN/ k @ vtt3縻<jam*Eᔯ s7Kn۵kw֯U%}*Ȕ22m&2[=S.jkk*!]C@8I6񩻶"8G24bhg`~kC}}}[UUe$WL#h @DFf4iҤiӎ\xTfd|΋}X7 '[g]mB -'6#[RD(أH$w)7A*XM4߅JxzOB&K+CgXQ$ RPEE"F@׌NhA 1!9$b;al7;J+F&։fM"->y䳂y?YFdrE+TSJ!z5hxK ~$SG}@EVݻ={t0XI_ȣc75*Aq!Xk6ݲxqC:~`$IPp: cH$e9:[?Latޟ@6{HtH Xl]WWޞ*:{JjE͢b=X!P(Dii_H̤B&N]K| Nrͤ$ISDQRĞ;fLj,n[QKޫj*]+nD"%n)#xc)afN1Uf"OOz4øqcƌ&{<(L8~|d;ZZ{vPJeMӺTUe+LF]==ݻbX;.Jz)DRޛBv}j4"3B(f"^5BlP(4~)`h"a<Ϸq׎.}E?۠SJiGQT*w tt慄`aŎDPI)?"J|hD { '͟|BQb*! áP(4yR(W&iDQbߗBD$6 M-B("(9/%y )GpI=!6>>DF*z>+f}ea&~× B}Rj_>vcP(&Н(N}5\.NRzgp !8_u|>SSSDB<$l7Cgg'DyȧQTDOk磽bH,#={= @Ӵ$1 V?\)jrfx4I*Vji{""K!;\.L&d2J%~?QvȯAi4#WϯP)JuDRVWoYXx|bvocy/^Z_07%z{{:'a!eqf @RKYD' 7tv5i Bvw0;; C5_anLM ݬzebRI.cy9c011I\[KE@ƐfD)04/5^ˣ?NxqڵU`XUVQTTb %ٜv2@?0@)u'TwݼIENDB`phatch-0.2.7/images/icons/24x24/phatch-inspector.png0000644000000000000000000000345411346363116022063 0ustar rootroot00000000000000PNG  IHDRw= pHYs B(xIDATxb?-b!B #P>H|ͱ0İ/o L5@U}ᘤ~bDci?D~?#;;OvvwjYBL yZK_t|߿QVV1--***aZb[?&&&cܾ}g־}}puӧO1>}֭[ ,./ܣT3142'$ 5iD1 [e7egb3gee1011X90+?°߿ AРe``ffjmma?߿7ZpG0gǐLLL p"%P_FFF"%AfffjbcErjIENDB`phatch-0.2.7/images/icons/24x24/phatch.png0000644000000000000000000000330011346363116020045 0ustar rootroot00000000000000PNG  IHDRw= pHYs B(xrIDATxb?-b b! 30200002Bc|1 @@cMzO00TV2$Y?`bcdbbO>~|_<<8?4EBL {V٫| Ʈ/$,˫%oNFFF>?~>~ӧ 133rqq,1 _+/Ό$\pvju ox,;clVi9@ =1^RB)rB0f?Dԡ 0 EF 3 #yK/h.py24eH̘s3B/M`C} -`f011 V`X p k5ypuIENDB`phatch-0.2.7/images/icons/256x256/0000755000000000000000000000000011346363116016252 5ustar rootroot00000000000000phatch-0.2.7/images/icons/256x256/phatch-inspector.png0000644000000000000000000010240511346363116022235 0ustar rootroot00000000000000PNG  IHDR\rf pHYs B(xIDATxb?(`dbhQ0 -F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(bh\3GFьl,2M\'! ȈypI'h{:F<:. `Tn #B@c1 A E_!Vqڙ"c3X w!3߲G@EOY3K9Z5"OyоkL/`Rd5eZewO>2{ o1 @Dg>{#h6!Ribeea!b!dafZk8M8Nu]SK0 eAD<ݗ3K!IU9{oι:}[UArRόcX2IۀzW1 0 Rl:t`: 7ΒdPȁ[$-;||)=)%pq9ߙ{" "aU{k̰uw"Z⭔zƮk'cB=ִ# C3옱 @Dg+LH  $ǞZ'R,,2Tf#*H諷?ͽ[vkf u*@(h dR-]b_ DfF"u]1i.me1Neh ۟!0D~A`cbh+T2( .3N*v*wZa}Ιu1>qRn)+Skuiƫ "-ܞ`fc:"2+9C־E)08}֪̬C_-53@k?18qB֭ۮovӗ/_D`V3!F)ԋ;L?&&L,eï_~e^uu- 1@ g toHyy<:Eqm )eDծ<F\< TD\U̧3n1sw/w#{/WQD3R^}_0߫2 =i/-?2ܽ{ڵkO}'  3 S|)?V 00@f ~<<<֪mBk068`I1 0C4sk^K.izt C"!9gL<ϯkJRJs0@U6{Aa`@vJomE"k?B}bSգXo-43122e```r*͛7Nr;I$}{r%$HBkmc#AHre@ݻ!lIwZcyNמ  Pg ) 3oIV XxV.*"$-@ָxܹ?|i΀ Ҽmb`g`Ū߿3PM&?6޽{ps3ܹs˗ , . /QQE>7]( z?ӧOw)B= 888LLtuuP3l<*@Z0 K.1:u޽ 30@[I O}::ڟ GpjI~y_|t6;!l`ddd 0Å ;pu?'_ff_2i}BBn~vN>&‚7~`cc`oo -- s33=.0~޽Ν;NNNn: 🙙 ((ɩ,tU譞 6lŋ̙7/q똘~?c?YYYyR\taݺ wa`gg@~ǏSS _3@Ḷ LvA>*'@2_1(((00;(j{b{ðg^m۶1{Ю%0C$HKKH޸qiӦ-.]aSxd@3331?  9]-W^1,]̙3 \\\ hNW`|͵ǻ(߿Grk,.^2iҔYv_=IN0111|AXX!66ؘ9=_6o̰~1prr0@ÿ}?##^OOFlE߿N6388إ[K{oBA__!>>ALLl5ȭ7n2̝;g ܃u\2333񃑍gQFFFƿ2r۷o s+>^0@ 1ᷱQo濑6SRvUifL[ȩZGy}LL BV1 >VaƌY Ǐgㅶ8?##?O>3pss.Ũ2lʕ+}}V200XkUMd( `߅ U'OIϿY]K=L aCZZ*͚݁Г)2ϟ?KH',]aӦ |||r gVV-ywt![;@| !$kA.`P "V+p P%!]6Z?sdj7LY_eyr]W:1`ibq/ߒBk|j4M0 }x!0Q˧sZm0(A"L8ޔR$p;,3004i'V OM< 3R5j{m/_dسgɓ'N8puo߾=Ϡ`nn]lRPUg2e ñc@/##ϟ?dee~éKr8q' Ń}K(8>}Ff?rA/M63lذa] o޼ceee`fff`ffa`aaÀ`p._ĥJJJ X@ _~1tu0\zgc?dfcc;{/d4zGtl/߉'Ǟ}ݑ9dlw/l 63 ݅ԝ10 r`Iq>%L-}kSn_*Ӯ΅ZJd"BYl/B4Mq|f]Ym[sj0MJ-,AX81 [!p]wzD,xޫ8m(40q\10 ` ?0)_+>~SCj:1ZͶdlKwOk;繳?a6(vCw0 h}C,ː$fi*,O xM 1ƘH4Rjs/ ;Qr IK0ӭsY*|ԝ;@($DZ$(= c+ ZMdox\ ؏̼!w} @uȲ IrX,+Ef&kklۙSgb&/,M8/'@ "7qdGi<"J)EvdP_>JJ e[q|s_ ԝM @?jҗ{x!0];xpR(pSl }gۭ}OoyI3'W, Ð,<9uDq`|P?k/ ՖQT[TՖ(H ۢ8 edDTUu `٬^-'?~b>OoB)o󇁅ҥK AAA wed`fff`ccgd`b`gm3 G v;i<7ï_p idx=ҥK(ҥ֬Y ((4[0𗅅 m՚Cn\10} `9\AF. x 3 8T(1&hM~}y#| C)5Ct$yg "y)¦?cɞߛ :N Gޑ$ y#cq] ^}!xr؉U$Rh)(CJ,=e8 C\+@D0ƠסQt0 oH 졙s& 𚦩xmkcT"] 0hhb|*}BG;8u>X^@A;$ڿŖ 7d8}J1CUNJ#cTM_ýZcZ|.8: (uÿ'yD9$A](r1cR~xS=ڶE4()N!m ;58\B6w\A@ `Wvw>B ;#p<[Dјh_t68 $MQ{)w{du=RK 2F/2y oT~ !\pf{C^HBaeu]('e9uIJIu]m[TU5 `Ak31xOlxwHD_G];0 }SDEEXud`=JDЩg{J@>P"aɻ-~ɛu'"o9$h[l "{<*眣*Rʁ>{q?_}<&Pyv8hhbK꜃Z@ePJMo<5_#{B"P^`~/^])ҾNb27w700Fs˖-c{|2̂2GK9@3bVp0psCZ2ЋC-(**b ?~`3 2| >߿,,,;;\tz؀A߿:u,'x27f6b0333|a޼y ||Еo}vvV=+u?-jXC  dlYPdddXYYQZcay&700``ddvA.PDO=n)kŋŐ??6mjׯBN%>S5D!Mo߾2hjj/$eaǎ ׮]3pp@B5O[ eXby6&;: **ʰkn202221HKK3|o7իW ϟ?g````adǐ]߿,,B:;V_xk ~;ϟLԯI߿0())Ak`732pqq6OjM Em=F,gΝ;jUTT5O>0ܻwA^^Ǐ wPZ0$Z{%ށ*;.^ĵa9"%qQ/s?gggcPPP``` ms lŋ Gab`ee퇭Clr̋Z0db!vnnn]v34ϟ'ϟ?n߾ omA300`^|24pD 0ztvvt7!ܜA E? .҅KDVH'=D jm&BB,*^k0=bBZSP DFst5aZWOTX7]iݡ 2VeB3 "7x_931p^)"BJcUv}3liOfg̙_~_8е'???iLs89!{M؁ĺZ kq|777Ν;[NNG.~;o20000(+03s1ߎE/^bb!\; \>1 ,<Sp 2I3j{۟BzeI){SXNWu}9[BH oB(xߜ=ג?W(sR1s)x$>a@]PUdKr˳#Զk=cn;̜A EF]zP\K(.B a0a `Yu)lhsƜ3Xg(cPJo4B!̻>+B/fs-ZS!- CJ~=oct1\3ѓԝA ES$Mcܻ^ Vu ! ą]8 [&BQ !ľ?s{!DuY4vNXON:WL߶~ mǨE֛rh@${R m{!]"əRSj3jY"3rJ)E"9e75oߡ~NN29-28>{a{YXXHj'O2H~V?%ŕyɯ o3333 XG(dddda'ԯC|A_ށ/V/3DܜMP ?6;bWyg ` Eq11N2v3I]nhk7MSMN`"1^*$UC$ߟf03$Źg;=BD!q YeYwp|߀y^0ճTU]w:zEg "33111cfлw"o̭k&^D$DVVVߟgVVVhGO%;~Y}|猌v?+Y?9rt KJW111g ]K }L +AIw-Zae")NŠa^&iH?;Yke]X}I頋<JwZ԰ƿOm,B~cmkzumxZH3 kD4ey8^<;^t}hLD" -|o HoѦ p¶6F8y߿ Hy2bEpU2%3r%#y97E ;:}ϟ? B\{_m6uff?4"?fff{3{}6߿0!n{%Pğ1pA߰fXmr.|?xxxa332yO5,C,b̄ҒB*LŠzB0+`)d PVFbEE׭[QII@%n "]͛k׮ =B'Wɵ6 "kl\ηn^ą-ÅҚx7rfaaa↛xM|)l 1333/// ?n-,1<330U.\Jq?" o_~`bbf\ 0?Ue;-PO g@ faaa:875c? &&&_HjA";wŋkxxxJi 29 ?~ι ϟ?aS-ٍ/3#RûFf`ggg\#e`;...r1;^^^O>2022 ] 2spKɄ d"jzǿ;w.??Gj7߿>}dh\5~{)R)/6Mٌ e_/7o0pss3`W ȳgXYY 0{N!@: _fNN|7"X]v6rrrr/3F]&nT| |ׯyF߿ ?dx 䕓cy6\U&L10A^^ vKtw$cؘ###8Sl z< @zxaAÇ,wrr444|D"3##={Zx"y>yci06;;;77dk|BR j$caeeϟe˖WYjo0_p߿!  L\Q0|ƍ ~ rAΝ;?SSSII ?~qu3D0a7*}c066g7o03< sqq1prr2\ruU`ϟ<<Ϟ=?ݛ̝M @ ?(. z^®Dž{CT\8 P0$CxP(qwF?Wޱ_Tж-Zh pf]YNuUUQ5{:6ͱ- -YUIrwe9åA?ӏQĠ( |vv䕔j. SWL.ֶ,UB0300[n߿- Kp4)I;֭[3ꤤӁZúc8y$|16tO<#m20VH`F0CQk...Ç>~eJO.]Ѫp?333;R(˗/3?1Ozf'P?2O]PPAJJӧOla?ý{N:=P@&Q&ϟ " p۷o3022› {e`ee/Ƅ2@i$г!.1skY?~B(`.]r5̴gtn.` 鶐ĸs.64[m7ƍ _|!X0B*r4ׯ_ (}aϞ=c8s ///G=My?\\\w=s֭BɆAhٱ81oFA39rӧ ZZZ <<<șV0333?ĉ1@7: ߿^^^xG E ~2prrB/RabݤDJ L""Vu &fffB)߿;v~++lipwF`+8޽{蒗ASSӧOF>vҥn---lll>|BZ: GEE7ɓ' |||80,** ?$d5 ll 藨/@߿LLL~t?~?zW]K 0Me ŝޤz^ȍv#]ZxQW}va (Roox2db@e ir&re|OEg2QtB?Y1flq]58Ȳ AmKTU|:ݿ,op<5&EQPJAJm9vTx(dz5m;Ҧ40V`p]1 0}!]NuJ=28dV;ڡ //G{@m{w]yfoptCQBX88i̐su I@w'apL{iwY !0"MS'D4F=σ2d&fY;p TY|532#c4ϟ,ˋ87\1 }| k&up9"l hoZEm_mjR6R4Mhif!B2We6My0 ~ٹ )%֨B=6MSd>lCŸ-NY;, $I1PJND (س[?~Z;p<|]1 @/B &))4>~@;uSxI C+eoY1d!HJζgO?[}  0ɰ<E,}A@J{W쭙"sdYqmUXb^O]'EWa"u]~~7 ii8Aن#oqH Dβ,$0 #Զ]; @}%2X.!b,rA+Oc s;JJVlav ?(.iJIĮ>0Y|2vFuȲq8':sA<i*(F[s_}~ m DJ)c`qO)gfu<yP `^DzHԝ= @説XFR$v6G0x VȺUVH ۽agѲ,hh%>xi]Kc־}= 8* D($ iE+[0bE@D}y~AA1; V0q4Mig!y&O8,K}/ݔm0fK^m[Zr]~Ͳs>n]@ }%p,L$ MFBXH\쉉Qc"nh\^/u[ݵm+vte S|fo2H)u=45$Dd$w'yC)50DeNg8(}1<37RV !4 \}c/WtP% mN)O"F׺IQUb1_q\,p]0( Mg 7\XxIx vH:UL4(L6i~zmr,Zk8ΰZ+jGf< e>63RPdY\ׅ4 O+%yBpl$'Ms[;5 tݾ`> @QZ#7Ǟw!q#24CDlv(ZeHč "ru]065}G!m۰, y_8\{qa&8yq1nZ5$ o˂gw'"✗v42 0T9]1j0}, < 5H/+xMK.p ̓!`;Kni~<zMu][r~uQ!FE2}fƏy8NK)a 4EC)0 Ϣ9j˲D$(sXkvGw$xJ~U2`hiUU}lDQcc,5aE4 J/{wGFHJ){=^,ۜN70Ψ ]MjPUADf.\ ^ ީ]yPhn! nF|4vQmt~x1oЮm[KUU8vu}{>}yy֗\r \ƚ8R)  ij~$ (|{}M><ϛ8F$PJa^cȜ~sG'qmLӜ_A]Ycq]A(q^xpj!@Yy>4M D$""e( 6 ̌O]j@ xp{I?Wuo@ߥt3t5xtԐv'NB(Tˁ! Wz$ "`04+i!t|P_vßQW6OVLn1,!IDQ0' Ѷ-FBJC_& t:b3;TvqwNC8ꟋzEQ`6{bz?s7ѿx"̒4]Q[O *f.[5,m!|[j0}6b{N N /trB!4=$YKuh%;Bd-==y*33np3=N'ι+y29'놁`]@0 $eY4Ma۶~BKbe!4p89 ʲD]7N4f4sPWp {mUwC1D3\յUoZk\j|mX/m۾cUj9]E1ԝj@?E"mS<>E7—3T CH)A t4² ?3?g 0E1!m?,O}磁_6(2H聢(}84MIdP׮d̀eY8>ڟ`ْeyFu+J"d0oi87g6Xxz<5?ϫJUUajdrcl./<4MSvz=et^x @Ap]=N0J)^"'`eKE2[d*r,)#$y mR~$b;=?_END9 ؔ΄(g+"¡OpOШn{7hTUսy#2`FJ0 e1ZkhWmہsmI)RcϮP5RR~Kؓwϫ[׏Hu`A秲,6`cDڏ?* `0pέ48hj0Xx5tlҹ7q_Ï:-LƋ `u(!4IZ80G "p"Zk ez~].x ?_0Ynt jQ%$AXLL~DCB!p]_}OxMJ)dYj_`6{z(ibyZ[;(q4Mn>DD@>ߛc[ksQ׵kD]j0}jeL[Ğًœ<-q ZuHύMZ2@ ==fsdY(Jk\Ƙk}ŏa>0ƮlW ukFEPJ!MS!ƛM)i0 ȌKA|0+uOGO홃_5t]Ѷ8<Af R981f UUatqQr~L7)/RWcQ8cֶ,K$Ib~]j0}"..]CV zx,Z!`H U(4izNl*I@k}+-l&0wX8!DryzOf"cv"!De|J)umo $዁^ں溮CUUR`A!Y4QMB=?`Zi v`^X#}}{ihK#1'r80sCDCCQ/]Aj0}Q锡.-@ ^d6]uc"F*BJahBh}%I&ęt:9"3n,:煻aYy. K!7R`}iZu a""8T @Q eToIUߌx(DeB,KTUfmu]pο !%R`)G]A-&K}ߗ{%-$ #LڀaJJIAPǘY]=j0Zś1JCjMҫtMNGYL/ХK<7{IdH-G$rJ3-+sq (\xpJ'ڸb|Xc*.t?}AUUR JO8q8<Kk̔Re-啨tGQHY!HU, mqv#.*g‰2F}|qS<>1нODH4]?% | zok}ala"^ݯ]J0=XGtх+PG~op[~7.g0uP:bcSɅZE@7ɹ7a}GԲ,ei0)0Bq_ApnOG n5 tz D(49C9k  ~֔גؙXx 9@eM(,̽jvfg/lH`>q*ao'j.NUՃԲ4M9(E$@Aڃof5ڶ!oXVuu]ywzV ʀX,>($5lFu=2q$I)ʲD4Pi4MLS݀ kI$KM_ڂ2$ lEQeuQU`>7;T>/}$A`6o̝1n@E1A ("(42H 'H)|+JM"E4FB) 6lDlN;{`WOe8݁L6$ |KE`mYMq+j}tvqL?{Oq"p)Bk!J)Z~NZ]-Wh8KE3,v`0Rl`>\.SVmfy #Whk&`ӗ:%k~ӟLӒN)5Ms6tNK٨V׉"z"9f]1K1} WJ)ݥCԮ.vW;WI]]k@]ZC.i"^ޗ|Kf3PJ !J) 40#QA:SyNj;1㔥Ž(yQ9 HJ|߷~akY¦b ۔R$;z Lp]1DQ0 !cB}t]@Ȳ f?gW8vO qߪAo$WB0ItgYoj4qpK^Y\_\y~`ǜ h@fG_YDp5^ө~6ewM :zz#/Hl1Yfl]_1k@&P0bZwNG7H?B/KAp4b:R mH:\.h[q7t $g 4M~J (2~@ h0@J.3LPo5Mx 8j#~(F~L0@vXN^hP.\:X2:8A"&rt=f!'MRI.a6jn t:e>3ͨT*?hAtC4*~gM8&_M< a'^򁔢()U=#|VՋeYO5vFOfΞ{%pai/|>OբVɷ~ܾNP6%1&hCX'0,&l l&8D"A!uA0?=gRS! CZ$%P@vxh-HI" Bɶ:6 '5@Iڃ?_T(Ɔt]H V*W|#MӨV4M:ZmK.,6B+V dpx`0񤆮0 Ƒxq(lĚ ԣ8(C;ujny?w>W `U%l:bغ( sRp m 6kq]kGrGPݫ@)3Zd`<_q3ld}:a!vF8Oih4BpHdY}tFE4I6ġk v X,V9IMB`01oo6iOoW[ҹ==h~|{@0ߠyy1x,^fd"CJC2,5}n >2Xpx]KjP=?)V)R]@wY@5 WYFmuPD*Fg6܏{Ȩ\.1d6`6 Ԗ!rvZ8'u7]ja0ĿDGߤQ ʭ”tw jvfn뺘L&:˲H>:ê4F޽ހF۰m7M $o~ZV+},Ec(i"s,(g!-\>1QoX2…O u@3xy!cSi^UU뺮lkP zHq$I0NeOC]N0$J0gV&@ּZyJ%R?vb؎XPR$ow}kY(s/MSzk=LMStG78<Ϯ0 "")Iz^lPD Z?MyOB4FE4*B1zwl*|2! t*H&3OD*'Ax2ܨn)[dY$IL@Q ʲjo7 /+Z)͠'c뵭 ;$%SQ^]?-=GwߞC໯I]@}&9^k]59|C~"`5W]53I;&'9  (̛)I(y`S~?b LmUk4}8XThtss\0R6Y0\ D=dl[}:!Q92,ا6̈"^}s)ڶQ@eN7TFUU8n;T?`>!.Cxxz_XCc6p$o+r4V)>ca]6Ͽu]A 0}ːu2)"/N}/ yjR(UcvKվl8^! 筕hE|9t/1l!JE!q| ; MLv -%@Nw$@D$~[gYb۞Հ+]M @}HQl":t ܆ ha:-f>Z "(x>HZQ'b`mw]@=GPZ04Xj߲|b?MqMV;wĘ8 4p=sΙr|6_7 0Ti2]=N0QB9eBD r$N+@8c_'Y%q}ޟ'&݂lAx)ːk;%p:1 _(鴜ey23& 28c+. ACrĘ@|\,$8]IQc{Guo4 3|7w=`'auCSITA܊A kHV) 0@Gywtt} OB۶YH-~3G)E" CPJ*nyA:fGcaHX988%TŵDDD49_"(`,.B f>!&ك `p Pf;Ƿ ~f`A ?ЂVgd``uXѦa?gbF8P yv1c!=zzٹ ? M: ;vvv iiia5` [ D `l4\-0`f@"" *2l0wB`bkh ̇jo "h;1%*~Së| 1|/H3oH//02@joFXgFk#5Y`-6]s .|`uvߘd?vvvǏ'?n~10 {DHN# XZa\<<l̙3Y|}}@%1W6 C'V`+ؐԡ a```affReggdeeaf``N[ pwZ(Rj&^:)~O %~|e`5ZX7!w&Ҭzfga``bCQXXر 2<9Aޘ##&$}}ĞgB ?k,7o #%@_aE@* &uؘdyyyd$ظa[Bat?@[ ěOSo~@ o ?}>%~~Bio Q wp@mXyWUI!Z$u,6Yi,֫8gJ))B;~b&wBx ƩԝQ hJ_ z}Kϲur(PhPfS}Ā w? JdHD۶Ebkʘ*`Ir+ H.K0M]c.*%+)I(rEv.{v) ƈ)%D1ty8n3"cD?ن<Ǖ]:/HuO8 )\/\?AQ 7]Kn 5D)Q{iKDɺ'M(EȔ2n,6%l yX^E5}0 .P ̩-eT`K[:E%}vk"sQcƀ<^( /sfB* B.$`֒@6 a8?bQ Y4 Db#`ddd/NNN>SSt|&%ę1B1;//$6Z vD8|ʏ̇D.$%pfÓr$v c,,B1qP `~aΜ9 d̝ 6<8]nxπ4`9''iBvzr!HSX "; 0gHLHS,P322g86ѐ% 6ЖrWMbggg9K] 0}r E"e`:n!1HΧC AZKB$bȥՄ`\5JRoL+_>q[ rŢভO=$1@L-MJ,4L l}N f@ꀌEP!2Bдia[lQS.cM{_u]~y2Uya ?f={6l+5] av ׿3BNa211_'|0;@ X1 "v|qh#%.j LxXG gcccziK'ooolԁ] }I@)' 7,!S9(MlC41քN]zxp=}\Yrmۢ( TU,g8G眙1PmȨvz?kRt_olAkŝ9N;t?E x:aS` 2Q'3n .=bʐmS$IGGKχH)u}=}b8vɓ',,,Etaኞksl066ht1\-!)n PMl! /Fn |cBз'u!3$s* ȃ_ 30<İ/77''''nJcz R?zK >>AQ]K 0}Oq%^…KO;xvo ɸ Rĥ` B<Mwʳ9,s4 1^E]˙@֟T+O4Q3BK $jctC_fIE,6=$ ŶK-nADZ "cw Ɂmې?L'`)0,*Orp Xpg0'X`)ao%U*R 8&QBU\.d\gZ!s|D~ ;1 0R-b``j  tJG߿ ~~~[ne[@R!`ddLdwr8fA?!Nj}A-`Cw/a00zȰg& o, \53$vm!ܹs'C?ɓ'>|S0032G? -FC9ӧO 'N`<~?0XZZ2ZXXc``@8%-F棵>n-F?5a kP-F(Q0-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F(-F('*IENDB`phatch-0.2.7/images/icons/256x256/phatch.png0000644000000000000000000003650511346363116020240 0ustar rootroot00000000000000PNG  IHDR\rfsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDATxw?gڶ[rAA{~ĘDM${ԈDQ"hbITc4$FcC`A^{-S3;;;g˽{޼k]f̜sF(p8P p8i`p8 40\8 pp.Ni`p8 40\8 pp.Ni`p8 40\8 pp.Ni`p8 40\8 pp.Ni`p8 40\8 pp.Ni`p8 40\8 pp.Ni`p8 40\8 ppνK 0ؖ"zs^F ͩ#y8{`38U)QX`E2-믏q|N{H[^|d)H {]9}S)T tc߷*M>p01T |ax$]=)/G?\p s= |46GQXS n׋r ,X@p Lj;#T)'9xnXSpp( Nig~+B^? k~o1Rˌ4:\RZ9HAHD"~q@~9\xf̘F9뮻0_9޾ (_((QWED{E| c6l[ߞfuTX+݌3:3'0wܖs>-h ?ܳ-{촌ݸ%eMc:iV ɟiĩD`[w 8+o*y(lJ|9_3gy0cu?a_]]'s@k ]ALA.5(,aq~!yro8nON`TL`#Fxzpmݶ'Kqg7Ϊ gƝ |aDLƢN@׶FُiZ/nt;qc ]O.܌@ 6&2t7N*d 0tP|h^pJp?9~{K={KENç z{ߔQ=tmpc7yR:T-a[0zN4nTl$,bGmؼr8:7 $AvrH Pjc7NJ ەNJN;^5y .fϾwp_ A`@|{1چwf}"*64 Ձcϱ[ e$n{avPCΚ?&NCvco̞ˇa3GSX={H=on}9(z5`]8nFDTƫ= e%ч~ǯ/X_*j\º7Ǻ Р]o$N6bB6 +:n3gZvm :Ot۷c )zHDeƠc;i%Z{~},6;.YOm7N0gDxדnNkfT<SΝ*Cz߀ؠgͯ S5u"*_9aƝMm(N+/F"8 .] S͒f$@W]9sP}VnV ]ʝ%cfc80r"*#C2Zqw!4KIl^?~ DQ.A*^N_pwQ }>)rKa.YQG8s,V*&@JP@Qpͼyw̚5kUs٣ޚS?Ww?'m"R4pyv:#O Y8{y)a#Yػ40NʯA 'aKzqz̙3>s)# &42^zx-i"P- ,]f͟gIO7!sT6vWU.92s<ֽ=>{(d`UyuFছn!o^V"O cyƕ-xׇAC1@<+ߟ8z׫u-3f!qjYb1D"Dzpaq|rY|p?|dZ0 ~٩*u+78BȣHoo% DQ '_*|'UKD<~MMMPŚX;ݘmK&<_\"uxFWWaD¸(: iݱt1/n "kAk`T!iY9 ,k݊@7p)@)Xm5b+G:?pҡZu&V+S(J?:ٓ_#>GG _?Hyc؛Bww7^L[(3W;6بcVعUGo7E` hk0h=GN?xM}TbMMhiiAkk+ZZ bN)r…:#P70}Axel(Pd3 HՍH$Ub}rUE`G*|>jbQ2>]_apOZV+*B$~B!47ܜ\(W ΅ .%"k D"X,fzzze D"}q R(vn1Քfp@raEFG(+yUzC0Dss3P(ߟVWsi \r +G\~kʲ?zi``bpQ|cZe S O8XFbe".d 1 8fW9?x?BI7? Z91.Kx=P%ꈚ W_=JA%D"Kt 6*~1+)DQvaEQsSeųr+0xOLKw}Zog] dꓢ 2]ϸ~ )SC5@5Ac݄~N8DȲ Y!I^4AHU`X]fn.ΤA44 1 8̻_@ss*4z=6͆a|RkD!?WU䮸g-jH8 HwOSGnⵧ E烢(V2!K4+-xrT5DBf+8J\5 {U+l 4ǥXd&݂g[e @<G,ޛE7~7`*kPĦPt4J+rB5(A .@<™ބ zs("^F@ O 2~efwL0kbb(bb8808H9]{ @=nxl5!\uUC~[@m[@óBU|߇@ `%.2{܌Ⱦ=fSFA"ϧ؎+f<~wFk8 ލu,אԆ*}]$@~~5xk;USʢ(>I)y_?PSjni֢fkB ޛ~? B ̬rmlDQDg{S"ճ`;%xxz3'hM t<yʢ\}zh!u{@R|]v5]i Js7FxR(wwP6!  ! %ȃK1 ( A!-jGIɓ:80]^|ݔ45UફBBW_})@w4MÈz$J>CA o`RBL%gԤ(|V1gzc܊/$+/:-H̹ꪫ|[j-B6mցe-kujk6xq-٩?┩e_6Z"-` ^M+#\]+4q+8z3D܍A@#zP7V-ɟg}}X+ۓ @@wK/N×A_ڀVҌ;:A [%]3´+2LU BȕW^y 8~9-Z _ϋGK"|>?9B4Jb-/c[Q$(PU==*ּG cVo;VbW\qvBBkJ+9~lzҦ/| ~Rnk~joE D(l ߜ7(;3]@T6wW "䓑ea~/os@ W=ѹ`}֨\U,S9Iarr8/9WU7[5!_jW\q[.#̠Q")9EY|̾y!/=k_iv*Wo)C"( @H{V2.S!oVC<7@~, }BQzw7pSS{S bjG| )غVĞUoYtٟ@BYf^zi zA<{ߛDY^iD/OZ>v*yk˜cF_ijA=-gn]Φ( $,Yy%V($RF7zO]4K.*ge]~8G%%6*um3-i}Hvg^r>Bsd\{&zݑ:RC+{m9^ /╍QBȹ~K\O#ev_h8$<-Y5oL D%cBPq(JNz~禬&s h@&K&fAX5 +rS ĻZĴ0,blDDJ*cI1jA6rOzSv ࢋ.[zL ؛j'm֝nmu<9 (~Z{#Ku=rZkߞ|)S^|F`KTO@ Uh/9'/IAv"D@ӠꎛN1mys0 >Fr=ey\rqWF>zz;Ū ?yUfM v6BmZYoX52ե.܌.턐^@I@!'t}+u5alMCdsf_}ENMz^]"KfNJ0 /B"P0r3P z7,U]Cm lOiT{R UgJ8#}=C\p2BrE$`ԩmZE\{_7^ƆW3άm``ظꎞtYs]VTP]yBȴR AxiYu@!~o{SKe,y%dEa#-PlalO5Rc& C<C7SN@@гKBS+T<ߟ:uBȯK-iir)&:ڲ.-AFOOz{{ǭ31'Q\PY焝XLkSZm ) b>ly"n"=Z5_ϦLN"Pl \7^o7 `lcceYNALڷ)b 2Ɯsmt[K})_OO]V&AH } SyYԕJQ,h"C$I֌3{!khpz\VbG-V5RIST~gWa寘v5L!lk%2(,\<'ضuj~tR19`/d~SNKN_% $bQt0-N[Atk+X`?ǯFpp'ϓ~=p.GflyNM!m\;yw-tqŒzg~S[6 l~O^0R[ŀuo)8`R33 8xG[anT9zESZl¾_^7-1C7kw$gxl)ҩMR7\T.ɓ'/#|O ;oүxꐺvsr z$I36k}+mVMij/kx"kN)o_~MMR8h{ Ļzi0ۦvOZ KגLy<0BH$܀ 71 $ _Jl҉6(]ftF`oZ-K/ئWyG!GpДŐgGV E6EafvH%QMẃE1rUX oT{MJlDBo?,C'n5ƺ][/SЩ)%IDAT~܍YwK*B)ɶp3w<} PQ5_oyBټ(SJ+xuH bMT?2(XL̮9 EHXB3:m{y7Ѝ`B exFlނv.= _reas9t%ȩg?}!sιoB6@Fș7 eH+^V)s>g-9`H@djl^?maWvfȡk0E?XTAg/7Hj&:A "ĥZ˲2RJ|y𦇐2ɗ`o7pȥb;6 a*{O)E`]}Gv/A=/$B\Kc(^|l&{_׀X&(_ݞ琈  _$fг8bFI0tgy]^uJĂf"?#\Yw9HH"}0/ڷobj[ ZM&][}еn> {ÎΕ |XOI1[1hf 9h#Ӡ)v}Xsog>=_["wL[9Rm6gwŌߎ^ǯ^ǯaaؽԞ=~P= r( 9n :`  Wo_?B?nkBCJ(&b6Ca}}ZjB7RJX6@lbVuwZ`_s'/:bĖ8𮯼,(Fq r(Q#{"1~?c;c]Y)aM.ߞytP&k[{F_n1wJ[r09}\|!'߰ o<@#Wۮ~565|yN%ᬳ~,v")n}Pv_KZF%,:(c~ UF'>_L@ 1Eg|@ P9D։._ _37RQшld*1Щj*Q*- [)B2SO=B<]o"Nh1Sz6hQ}u}֭[o~睷߅ivБ2~d H &5z>?E؊]UTFRuqSJl*ZB)y/i1@nUKdY'tu`pZoPJ]q%h?dkX(}ـoz$y;vib9D[I}_hooG!^]E)~'rCgm3GUO?[ Ff Јd@4}yy-0 ngm@z.fL>3}AZ=%Q+ #F{qNLW}K(-%j#˿ L8<=7կ  &S,ueQah4}>Ú5kV!e4~ %\w6j$"NZo Z4q!WBLGt `> hqͧ/40i RCƟ ^H/TbS%c >O_es@aÆ 2^ۍܭw34LBz3yxd{'qܸFu$IcZs9׌EE4ڋX,qΜM*<(z1oSaڀ/q9DOg_a?oK 4OCPsE@ l+uO(joo_k֬ӦM6#en&Z?&.AgLF$I>ꨣ8"BHU ũ}!=hc(bT-/ּI*0Bnv_ (J%,{_񙘶p=D0*1z<3_ƇϙnO~@S;O_mPJc===XjۑssDy rwB{{* N/\ ؜E"C<G"b1|sIq?ޚj=]&*RWi8'D X,nyXDb L]@S[־-zl#PkL J(3p8كa,}Qg /&K%&R4M%sw |!]3s_Om'Zlߺ{2|#Npw?8*pĉ0t @=~"`'ǒTUE`ߗˌ[BLރY&a[5pKNJݒ)Z>P h|Wc7E`k僞Hln (U9fQ>t]ҥ?w[Fj@<HPߝeBr|~BY4q/Dž$ʑc[-lf Ad'#q8|!? P "'wQlm^s:[uZ"]Aqe،;U=s.5MӬTO3&/c@D\ ɮ>@H=sX-]56|[^]̙Q7\RJm^S$r_8)| N8!C\  fe =f+ Y۷D: 8[߭m|gpr\N(; ߀}G 0Aĉ:xEQ+#uMEete5MLD_&d"`{tuhE,kHt Gv X}T6`E0 h إVc I2wɼnɊ+x;/{hh۷sժSJ[t?۟bRto'k >i߲5,AĉOkk4Ua2_RM7r5MKDQ,K!j{(eɊ ȲDy G2+O)!`Vk֮]Bgg'_jexlԢ={..Ut7s$0ql"P`J],JPX(`ne.&bfa.j[XXs>ѹ IPļ"虿IRb%k?4F_ܚ5k½Sv @6'V -hp;=S{rٌ%#4xw(ʿǏ?~Mq\P=Մf .a @hZ^JY jggJLHM$XBbEpz\eip8ܚ5_ {iĹ //O$pzyS܌_rsH$>xy5j{ׂɄO5/I)EnXBaHUkX`ABIgYw9Ɗ$!f 뚝Ǭg GWl W#Vgk d3z d Y<M>[Эw~g|$lذ~ B;3%I'3\QyBm 4D3mHm.]t~7w-N<ڽv(ڮp/at.ڵku}lY~6/w<4 ހS8op \AK@nSC 8S7H2dW~Vo|ժUFc'z%)Ҭ"8@GhP9i ovzvNѰD7CRW)DD"qOO6m|}ǎۑitNwVXu…maBx6z>_njj:Q^Q꽵 4s},f&1nn8EQ֤sF>b릫xA)M$w}ovuuu!gs}!5[,3<  ٍn ioW{{PEQB/b.4 k{ ٧}@[:PJؒp8h oG1d7l}%\ 8܄}ަ{4r#[ZZGBnU>&O>CU͹NTgA'A@l$x K{{{ڵM6}JSX }6W.**& \Mb<KDQGu`[[1@QGVMj<jškR]lojZr V}'|ѱtnSk3|F_H$ QqNT8 d!`}x{MQæ\}&C Pj<7֓ @=6@SUuM<_ݵtKJgs 5|F^lm53z;U CMŠ)8rG[ `MƷ/BӚ n@F JiTUhtiWWxƍWb8r|=gDpw>UۻQUNZj"<DQG9u@ 0NQq -qn`|lAzs }ԟs^1 c{"XF޽7u=[,j5 AbPdhkk4tqP87N!~n dSR.g9#(=O$bOzzz6ttl[T4tB>Wm_N w37|FMDaB>gDQgP#VDQ>u~,#%I!b-Ec>n}!/#ao4mc<_D6ڵsCr ^K3|f3bk\)ֽ3Fo.Q߻@>1pb{-HiVEc#ZZZF$y(Ë ;I6/)Q]׷꺾UUխŶlݹsh4ʖ-e(jl~.!V3z|_~ JyD(Vry{.Ӯ- |mI4H6QAhaPܲaF74lFXaaMӻt]TU5Hx<vÝQB 9_-E(.~>R {uR[y~߯$I%IIEQE'",OdT3 #La ]U]㚦't]SUUKj"D"[#lc//Tr H}ݨk`|5r`_P+|.l/ݾ+/D G?>!v hBDXAހ+sezDv/s(+' <|D"Px%n:BaN;A!Ml7KB\(.س1׵ߌ` E/"@amn7׶/sV߻z]+lv iv#nB\Hӡ:\g{ncjRjbk\nv)C b >{@6C* (B>[~};%Xqp[ce;W|準l7\!je-v* 5d|P EbwA#cgʪDr_K?p<6R BDxAKTD!神ߔ\jHP7p#?pTZ(A7.\8Fu8N40\8 pp.Ni`p8 40\8 pp.Ni`p8 40\8 pp.Ni`p8 40\8 pp.Ni`p8 40\8 pp.Ni`p8 40\8 pp.Ni`p8 40\8 pp.Nk.!^IENDB`phatch-0.2.7/images/icons/32x32/0000755000000000000000000000000011346363116016072 5ustar rootroot00000000000000phatch-0.2.7/images/icons/32x32/phatch-inspector.gif0000644000000000000000000000244611346363116022042 0ustar rootroot00000000000000GIF89a  "$"&$$%&%'&&'+,+.*8,,---.3-?00001.53772@44672A64:556778::=<9F;;:;;<;;=<<===>==?>><>>??@>@@@@@AAA@BBCDDEGCOGDMJCWFFGFFHKDWHHHGIBHHIIIJIIKJHRJJKJJLKKMKKNLLMLLNMMNMMONNQOOOOOPOOQPPQPPRPPTORMQQRQQSRRRRRSRRTRRUSSRSSSSSTSSUSSVSTTTTUTTVTTWTUSUUUUUVUUWUUXVVVVVWVVXWWXFd WWYXXYGe XXZYYZYY[YY\ZZ[ZZ\[[\[[]Sa;\\]\\^]]^]]_Kk Hm^]b^^^^^_^^a__`__a__bKoPl`````a``baaaaabaacbbbbbdddeddfddgeefeegffh[o6ggi^o8hhhhhjhhkiiiiij`q;jjkjjlkklT}llnmmmnnpnnqooqpppppqZqqqrrqrrrsstuutuuwvvwvvxwwx_wyvyyyyy{zz{{{|}|u||}~~}~~emooppĚƪ*! ,  H*\ȰÇ#J7`&eiL:TB(2a#k;{괽 b'YY>}¡ӇoYF0jH'ϣ2˴BO 2(-#$y`'?)bOT 0}HDgΡR >N*>ADΙ4iXAh5fΔR yҜf%C/]%2Zt匌^ s= D6q Jyab%J*V`@UdE^`'ƄC ;b>< K0DGT鰆L0&;hC>S6FH tdhA;X 7CO7x:7|0@BbP\.xodC/ 0 H4A 21 wI-8F _" -נ1F@ @JahZPDƺP@;phatch-0.2.7/images/icons/32x32/phatch-inspector.png0000644000000000000000000000515311346363116022057 0ustar rootroot00000000000000PNG  IHDR szz pHYs B(x IDATxb?@bPpѡ P#4~cj*Հo['b$j)A?f&&Ĩ32000222c```xܝ;w-_x+_r111}+,,rOJJꢪI..8cK|6ӧO3󇁝ԔAXXaY `?߿|vjbbB77׷11119b?L vYX!-- jj LLL e}*Cggo&MWfffLLL>~Ȣ /VDD5rH 0ПQ#YB"1Ch܆12@~~Fa`aaab?,33332000xΝ;l°w>߉100100Ȱ03ϟ?033411MK_ Oo01HcPcwlLnn򗁁B 5 ŋ Obt2í[7={'o߾33 y:;MY_Mo32<GKn,puw.Xpѧ2033g```b2/R?CݻǨbggsXw6|zZUԖ)*s\zf.d +`Z+pIENDB`phatch-0.2.7/images/icons/32x32/phatch.gif0000644000000000000000000000116711346363116020035 0ustar rootroot00000000000000GIF89a HAABBBABCAEH?EI>EI?FJ>GL=HM=HN͒ϟ@ JѣF;phatch-0.2.7/images/icons/32x32/phatch.png0000644000000000000000000000172311346363116020052 0ustar rootroot00000000000000PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<PIDATXkW?'I۴iM_Lb R6cϳQ;aAV/Q/ ("ۼp0VsBu֗nڤY&6O/Gқ~s~GjmUK%`SjY OW mC)2`?pkƘdI%?('ȻRj3m}!v~[¨R Hpq8 6tq8,-D,bǣڈ2K RlRj.+v fj߯LJ_Rrsr"=$1oMi1*B'/UfLsOk!v;ۘݭr4epH;aYe}|@dXMZll}T7*–2dä|e+kU+osF. ZphTxp@#8Ņ0ud>d>└1ol%ϙđ71} sӕ8ldMNBV`#TR`7̋f.V06G.OI|Ɖ`aR>WӕT5.8JCo)5;p8x2dbÒ!s!0!F~3dTJ[l'0pH۷n;Cnog |s6APJ| | ^r_s8ɥzGdOAlx X_@ of=&|$NIENDB`phatch-0.2.7/images/icons/48x48/0000755000000000000000000000000011346363116016110 5ustar rootroot00000000000000phatch-0.2.7/images/icons/48x48/phatch-actionlist.png0000644000000000000000000000532511346363116022241 0ustar rootroot00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< RIDAThŚ[lTsb|_P(-AM"}"Q P//HUVmPUhUUB jB u(Ԙ1ڋm֗>^~hgo7GضB$@I/VlI`۶m%@Ν;\.u]m[XUeY;5M&Ԓ$B[a[5{4ϐ*x?P?88C|ߥHV,G%\2K<-xv?x<0 ^DZcd2!x I 5y3/*_By$In0d+W9u}}}$ Ç)lyfuR-g՞U췴C$}s%t]GY@B ~-u~ir񋖖d2߿cΒBZnFk 樂erz@4?3l fd#P+-l*- vqw#p]m'[jVr 36~9 $AdfB ;4M>ɒ}Z>LMMq`&5Ju^z{{/m} u*鏢\|aTU%rMbk׮mָ&P l13>88ٳgl‰aI?jNr ~4-, n|hS~ F#l޼ƪX۶ͅ |r,Ȱq׻' hi dj@j?'>nLONCCCttt?[jɓ'~zeY,U|*Mȗ]!-]y«N(]`_tz;wTFE7M'ޤw`oٗ("i_~7Mߤuǿ`YPcoBܻVsˢdyWٱcǂʟ?W1 }&eYly$0::ůM|-{1n~?饿/OЉڬYR 1i:'Nau}ޛ7;mcG:;;rL v|>VZY aY֜d9bk_S.ECkgA,n| Q mS===?+5wnUFGGܹUT49!.cy4I&an|A"qz(C7 d#$ʚʲe˸\pHGG+5 m۶k-BB!8=UF!'s`bz4$ڋMIH$477Jhoo! d ,vCuuu466ez?|'LL3>>A>u}M"I( XRPEQ(% =rQM',rD"$mmmLNN1 |>LMM( PRe\.~EQŰ,Ȳ$IHT6dDJR`p$e,*jTYx.9Y8z<3cYV1NI&B2/ W ǣs[8t`駟?664-d㣏R :EM~+@d/HL  GwNM!P_5 g8y`;_ VcaqIENDB`phatch-0.2.7/images/icons/48x48/phatch-inspector.png0000644000000000000000000000456011346363116022076 0ustar rootroot00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAThmpTw7a$$l @0Z/")MZvZqZə"#,3Q:cHVH5$)EJR  KؽI>a7 IESfxf{s<ޫײ&[m&ۮL]Wk `vԧg~L65=]9/s'nl|@p+Wmjzn (+rڴbnq%%%c08}4|Y {_ _ [ r}`z˗/CQcoߛt&]^_5- ob L:5=* ^^{O?rSv5w6˖MjMf[7B5'%DR ^DhHXM:jTSO=EATVD zf,Çt: ã_ƫ5MwD5M[/:^i\ǏL;rֆnKMR-"ׯKHPiXcEF ҹsHb?n' ^-_n1%u&{E4VXQYYYhƅ Rd*!##øn~?WZڵ2DQ9^@rDVV0V%t0L0o]T'GD^D% Mk@ @ss3K,`HMD_MYx1@QH*jM͏bŧDKK+3f{njkkP]H^ʂ ?Ivm  6aoH堩u֡9t[(-u%Et裿dۘ3gϧ;Qӽ.EDP\V6nj̎Det{w(Nuu5dff2|, .xѴ0.B22.=ny <،[S6vtHNUU[ @ nsJkFc~:/x<_Ž;d2p8p8IGkCWWV'Oj*D4}?r!5stvv|"&i4++o^_XXx^F.IB]]]YC/_Β%K0ܹͣ7x?t N{9=T_"ŋ]}}}wvvMӴnF$*<0(vlolo(iZ{7zx^ ӧO'//r;Wijwa c ᠙.y!dh42 E@UV6ܼEVeFob4b\£=P%Z2%RV 1`<@༐a)5dL,p0>+rg8S,*@qnnJ-jLBNgN(rB +] Lp8!1ӶX$|"?jC(8;MQf1&n4m(^T`08 ժ/UU>Vn`Ʉi}yI<|$qؒiRe;=} `qHK…$//*};%pLl`VG6"`0ؗva'h颮I`QUŸޮ*g||؋:/"kY^?ӽԩSD$\ɢ./QܥY;w?;7()Duuuk5_GxʪrroSU 5Jĉot&BPvvmh(==k۸x$Hؖ}pww׸9}~=N9nwӦ0]E fHd"o ?0Z~=LkuɶkBsT8IENDB`phatch-0.2.7/images/icons/48x48/phatch.png0000644000000000000000000000411711346363116020070 0ustar rootroot00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATh{lT8866۩)Ґ*ЦTJITjiJT4!T#BcJ"*R)6i}H^P ,뵍wg6z1ɟtޙ9}3C+|m#ŘƘƘƘцks@ֺRQ Tֺ hl;f͚Fg2ĝ%l26M @kr@ÍP7B~M/{Zsxݺ#:ܶࡁeRJf-ONa'ߙ5D 6XEưsڗH)wK)RtqD"]!L)1$n'BJI~%2RYWRʏ7mĝ lܸ+/|+9o*VCLJisJ o/4<^w>ڦ7 ObT\εscPmZ7o~{82 XvKBGQz@8lǑ"',^oݺEޑ_\V%)%.\`nQ>r3AO䷯SS~벨vw0&Me XZ__?V^=_qH3 Hq^؏vpɡ%TWߏ4P3 ۙ%7f{eWd?K_{'a xdw Q*Rh"B͚_~oUz8Uʢ_Kكt_f7fo$bUVmB<΋R)OEG7nܠZAբ?s#}]=Q43튔 &x)"RfJY%)D0T2źZR(%S(exԮ7"LkRBJ5)՞F2ZbءT QkRٮT,*yaYy2]w؅ S;g XśuzۘD&HKNdwRPyS%n};11kiiOe˖=ϝ;Ss`%>hhFb1w^b38 N[NOX]%xGbA[ \.7|uU{rNnLD.m.a„R }x7Mx[[ΜR* . XZkݿ"@򋊊*&>9hDQ^/Bb3VaDh5%3fcZk"YYYG^)F577 OۄZoVB!r˧޽s87gC/RJZ:" _ UNԾ4c'zzzinnDls PꩄӞF ,[L+ȩ|0//ocT\#G4ML31a`B֦eY!˲BJv4/ᣗ/OH)#6ЛD:N"T/g$ qb k@~^0.t:omj 6eL&nڄP}n!M"ۮ#l"2wsᒾ#Cĉv[61+ޱ]#Q 02C;'(cLhcLhcLhcLhS/GֿQIENDB`phatch-0.2.7/images/icons/64x64/0000755000000000000000000000000011346363116016104 5ustar rootroot00000000000000phatch-0.2.7/images/icons/64x64/phatch-actionlist.png0000644000000000000000000000755111346363116022240 0ustar rootroot00000000000000PNG  IHDR@@iqsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATx՛Yl[Wzp,J(i؉$z,pȂq-ai0hCS -6)' Jdq5Tr$-ɒش}II;s9 HEy`f耑oYe5TwR)iab-8MӬ%a4J %I)BGb@B7|ۺuyX^zJi, 4, I8xe!ovv6B- >sS7MUUd2477}B@Ar[q-i;gY$`IB'|r xcWio#+Șru0f,--҂r裏5|V 6b" i檛 Ј3M4uT*(ݻw;48{hTzV8ot˲YOQx≿Xc*}&!O%֯_ݻ7~l+;cdE~?O=ԓ@+`OuY7J`[躎$6lشsĺ)4V" n{۷ź.\pHj*\uH!N4%ȡCr |`[D "FM0hn7/"+q3ª]je1m(rhjjH$Bww7mmm|E;::>vz,ZAQu~1me >Ie˅fxxyك$IȝwpSSϓdȰsT 4bN$rPV֬Y Ӽ+i:;;}= ;!4וڜjnt]ȑ#\|YyX "M` `VM;I' DBQ?4}!5 @=RS&R>`0H$!.]⡇8M*/ %JZheH DUUYXX  #HlOU3j\ ӕU583e4i%ǫZ@=t9'H Ȳ4MDQ{jʽzjN'$pK:"rk|֫ R, UsRFڮkuB(e_˼^IK垭/; CިWҼa,--H$H$,--v(|okV!Tj;H_p9dMH$!FnV8 ռi\x1&''˞7 ҘhSo~ޗ `bb Ac ֭#5tEcZjx<{|¸c65K)dp%LNNپ};s[ʺӧ*!HYnޯ9wfƾ(D ҡ=IrA в.޿H˗.]bpph4ʎ;B+hKKTcǎ155o,@r#i퉳5:G tW1Uw0Wg✏sdY?=eΟ;v`۶muB͙`-d2ï }>";tz)((Ƙ= +|LLLpkzD"K/<Jߧ*a( Ȗm 7z>63 lcjjfKX5֪^xD8ׄ{98}[WšJk2^0K}J`8yt ]AU^ïA E8J S5 u ,m=1<iL&ycL}5Ο;čWqf0t~M6m>~h?y$ccg+)O'K?jIWWn;eVy冭ȕ/'ex3zS/ ছn[=q_*Fy뭷 Lre[Sv$I0w^/~F?&{Wm?x+/ZT>uHSS8̆ j>˖=.O|&q~baHW/un5Fغu+>Opc^,+!8ίsJ{mrg={v,eYs8dHDGG`YQ Py&I0FOO7FȲKgg'. [T<.9:}YVk@ dY.ilL&C(bڵdYt]gqq9R4lt:M&r7~0(JY8Αy5Ư U04MCUU0===՚Y%I**`,v rAa\( 4KiM,_YbM` P[JFD [_Rd$>®UQ5Y!Ȁ0_&z4Ms)nW|@?5\.z33htJeԏ+,v7L" dWrRK.m``kDŽ#s[xπG 4hIXPY2'L1sIaNu50܃ZKTJAk,P777^?p9[1x񂁇߿ 0A>ß?} ..~ãq% J$ 0Dϟ H2 `f`P-%HWNoS1FN) }c.ByCXiB  !Ruϳ>wk-q|AbL(Rfж4war[U 0s,r H9Q1#@'RK. ,QRT&gK,@JIιuם.ڭ:Ƙ0@J'٣mri PUepRjo$4X׻Tֽ @wǙr3AN a lXb !6Ƹ^OZM,xivys9uRqZXkCuR,KuqAd4M>֠EqFU]Ì1hsʲs~BA PD_}E  |Zz \xEpE:Dx6!ߪ _h-\]``7 +ROmcY0 "M!۶)˒$Iu7H)5M{ "1X4d_8CCwktTJ݅7d3>|4_䘇?d`Ԅ{С  bb zz 찆2ׯ_ .]bêU+LLL޽{pe~nnnh`g`eewVYY1&&&Gaehܭ?~?'ff&/_23TT3ٳg  || f@Q11121\r?úuk^|+uu59s3ܸqGV@?fϻ8gg筄R|W;0s^”kdN*-[9I8=DԒ&0@%>lYum{eNӔ>q9.cy7`FcBsD=?V1>#b4cםR?_l 0D/S$YMX#M<?QD$מNw0[1ƛs(w"[x c 5RJq<(CF_Wjy,/䜑RºFXk1 GD`k]?M"3O ړOFm1Y?(1B)v/m8:CDG9ghWl:2aιi҅?bzSBX56 ~fdػw/'''Ñ#G_ΐ+x cffb`dddx=CLL -ûw ""/hAJ\y=e00/Uk'>}L1@Dg+ Vx$ ]%@YHص 0i'yW ۶=ZkOApYf>nEP5,[?,10B)R@ DTJiz I; íϯs;7/"'lm^ٽ P]A,DJZpL Zb)=HB$kA[s-LX[<ɡ8yeYM΅=cĈ$Bu AG]) À @P7m "G\i.kض=R4 |,3 9^OH)S'=I.z|;@aFݚSp@jO@iM!xl@0+c,Ld("5iY<9qIDo J֚m)zEk+0ߘpH1Q _?#ágn\nVXXbW,mu1>O)*$ILTm`?[&X`)=q(h2)Az/ 2 ԩ$XJx)xHp:w%U)%Ijض vyZ'Ӵ3OTUu0 C;K|Km(Fp&}k:JAQ GL^_Nj4S׫) (qᭋw?BXl۶aʔ) wf4k111Iprr*니qss 1333C:Q?3ȄF ݛ0fxqǗ ~30p0010p32gDs9sgÕ+\\vųOl0:( +`=={0,XqӦM,_~QWggaeeeffZ"1  m~ʅ[/1<= " \ ~e81ќ{l2f?133LY; @}/1X٦S< x =7HgKҊ4n,VO1 E&MSq$Ȳ3M""RR]f9R*"Bte̻(Q-}a׮] {av߿8?Vf(fd@4*300]3]PPĤ_|Ĥ%d`b`e`fb5p$9F \~ǏK,2Ώ"ivy~pE'N0?ڵkOOZ]kխ<|1Z'hBncmAK!u]l."k###>H@02lܧ,,,߿FE2oe`b`z`GqsK|S/,B50llϟ? f7ß?_` , v N;P?iA:=<`ggSf```+++cqazPp@X`# `'WWve x?;;2k^^3t({:AJ, z{{JJJXXXX#/ 褯oPǏ'ۃW^I㨨 pa"j"Ǘ`)>9;sswohh| 111?~|A}pH y;~~Zgg/>آ/SHp嘘tX 1${ p F kTT1pO}ҥ ͌< T>kׯ_'z2ɁumRG0r@m{US+:{IENDB`phatch-0.2.7/images/icons/64x64/phatch.ico0000644000000000000000000004107611346363116020057 0ustar rootroot00000000000000@@ (B(@    "%')**)(&%"  &,148:<=>??>=<;:851-)#  (07<F"""j...755999<;;=;;=<<=<<=<<====<<<;;:::977322)))cF>:5/(! '/7@(((x977>>>BAABAABAABAABAAA@@<;;222.--.--322<;;A@@BAABAABAABAABAAA@@???:99/--W=83,% #.6=$$$p866A@@BAABAABAABAABAABAABAABAA?>>.-- .--?>>BAABAABAABAABAABAABAABAABAABAA?>>766'''{ H;6/%  ".9###g977BBBEDDEDDEDDEDDEDDCBBA@@?>>BAADCCDCC??? SBƒҍэƒ SB???DCCDCCBAA?>>BAADCCDCCDCCDCCDCCDCCCCCCBBBAA=<<422 g<2)   ,:444CCCGFFGFFGFFGFFGFFGFFGFFFEECBB544*))877CBBAAA988T@ԏԏԏԏT@988AAABBB777***655BAAFEEFEEFEEFEEFEEFEEFEEFEEFEEFEEFEECCC444G5+" (5...yFFFJIIJIIJIIJIIJIIJIIJIIJIIIHHEDD444\A000***E1ԏԏԏԏE1***0// X>655EDDIHHIHHIHHIHHIHHIHHIHHIHHIHHIHHHHHHGGGFF<;;Y8.! .'''bGFFMLLMLLMLLMLLMLLLLLLLLLLLLLLLKKIHH988jԏwQ &vQƅԏԏԏԏƅvP $ zSԏb:::IIIKKKKKKKJJKJJKJJKJJKJJKJJKJJKJJKJJKJJKJJJIICBB+++q6)=EEEOOOOOOOOOONNONNONNONNONNONNONNONNONNIHH-42mԏԏԏtӎԏԏԏԏԏԏԏԏҎtԏԏԏe021HHHNMMNMMNMMNMMNMMNMMNMMNMMNMMNMMNMMNMMNMMNMMMMMMMMHHH111s/ 888DPOORQQRQQRQQRQQRQQRQQRQQRQQRQQRQQRQQRQQRQQPOOoԏԏԏԏԏԏԏԏԏԏԏԏԏԏԏԏԏԏԏԏ jONNQPPQPPQPPQPPPPPPPPPPPPPPPPPPPPPOOPOOPOOPOOPOOPOOPOOPOOFFF5PPPVTSSUTTUTTUTTUTTUTTTTTTTTTTTTTTTTTTTTTTTTTTTSSTSSIYT ԏԏԏԏԏԏԏԏԏԏԏԏԏԏԏԏԏԏ IXSSRRSRRSRRSRRSRRSRRSRRSRRSRRSRRSRRSRRSRRSRRSRRSRRSRRSRRSRRSRRRQQFFFSUUUWWWWWWWWWWVVWVVWVVWVVWVVWVVWVVWVVWVVWVVWVVWVVWVVQPP0@;̉ԏԏԏԏԏx3iFl`Cn`1j{ԏԏԏԏԏɈ0>9POOVUUVUUVUUVUUVUUVUUVUUVUUVUUVUUVUUUUUUUUUUUUUUUUUUUUUTTUTTUTTUTTUTTTTTmVVV'ZYYZYYZYYZYYZYYZYYZYYZYYZYYZYYZYYZYYYYYXXXTTTSSSGGGJ:ԏԏԏԏLj9ydXWWYXXYXXYXXYXXXWW3gˊԏԏԏԏE7GFFSRRTTTWWWXXXXXXXXXXXXXXXXWWXWWXWWXWWXWWXWWXWWXWWXWWXWWXWWXWWXWWXWWQQQ\[[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[[[ZZSRR?>>877,,,bԏԏԏҎ>p_[ZZ\[[\[[\[[\[[[[[[[[ZZZ5zdԏԏԏԏ`,++777?>>TSS[ZZ[ZZ[ZZ[ZZ[ZZ[ZZ[ZZ[ZZ[ZZ[ZZ[ZZ[ZZZZZZZZZZZZZZZZZZZZXXX=]]]G____^^_^^_^^_^^_^^_^^_^^_^^_^^_^^\[[GHG3* &/#ѐ֓֓֓oZZZ^^^^^^^^^^^^^]]^]]^]]^]]XXXu֓֓֓Џ/# &3+LKK]\\^]]^]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]\\]\\]\\]\\][[vb``baabaabaabaabaaaaaaaaaaaaaaaaa]]]=TMؗؗؗؗؗؗؗ=hZ_^^a``a``a``a``a``a``a``a``_^^5r_ؗؗؗؗؗؗؗFJI^^^```````__`__`__`__`__`__`__`__`__`__`__`__`__`__bbb*dddddddddddddddddddccdccdccdcc`__:aUۜۜۜۜۜۜיLQObaadcccccccccccccccccccccccaaaEVQۜۜۜۜۜۜۜDWQa``cbbcbbcbbcbbcbbcbbcbbbbbbbbbbbbbbbbbbbbbbbbbb```geegffgffgffgffgffgffgffgffgffdcc?n` ޠ ޠ ޠ ޠ ޠ ޠ ҘEEEaaafffffffeefeefeefeefeefee`__>DB ۝ ޠ ޠ ޠ ޠ ޠ ޠId\dddeeeeeeeeeeeeeeeeeeeeeeeeeeeeddeddeddeddeccbbb[[[iiiiiiiiiiiiiiiiiiiiiiiiiiihhhTri.KC\[[hggihhihhihhihhhhhhhhfffXXX&SF^gdhgghgghgghgghgghgghgghgghgghgghgghgghgggggggg%hhh1lllllllllllllkklkklkklkklkkhnlA@5gQFFFcccjjjkkkkkkkkkkkkjjjaaaBBBx]4@Ajiikjjkjjkjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkk2ollhonnonnonnonnnnnnnnnnnnnnnnnnnnnnnfff–ҟ 1,HHH_^^hgglkkkjjhgg^]]EDD81ۦfffmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmllmllmllmlloii.qqqqqqqqqqqqqqqqqqqqqqqqqqqqppqppjii7q%!444IIIUUUTTTHHH222*%9ojjjpppppppoopoopoopoopoopoopoopoopoopooooooooqqq" tsstsstsstsstsstsstssssssssoooZZZ,21ѣRB\I٩ݬ.20\[[poosrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrqqquuuqqq vvvvvvvvvvvvvvvvvvvvvvvvmmmEEErǝ̡nHHHmmmuuuuuuuuuuuuuuuuuuuuuuttuttuttusspppyyyyyyyyyyyyyyyyxxyxxutt=Atssxwwxwwxwwxwwxwwxwwwwwwwwwwwvvvs{{{{{{{{{{{{{{{{{{{{{d&""""""""""""""""""(izzzzzzzzzzzzzzzzzzzzzzzzzzzxxx5}}}u~~~~~~~~~~~~~~~~~~g)%2ٵlP.%%%%%%.Qk0ܷ%,k}}}}}}}}}}}}}}}}}}}}}}}}}}}+΁k<նvxyy?((((?xyyu?ӵp}}}?}}}N}++++N}}||كT'e....eh bʈoefoن43̋Ë,7[dI/?????phatch-0.2.7/images/icons/64x64/phatch.png0000644000000000000000000000602111346363116020060 0ustar rootroot00000000000000PNG  IHDR@@iqsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDATxZyl9v.^ ĐBZA.RQJAiIC!6$ B-DTH@4Q#9iMڄ6!7&̼.{̮Vҧy7K82C(6Ԙ"SڀRcRPjLPjJ/=5О={*dYBl.BzeYݼymp߾}cA9rwt<@Bț^~G?tL0i|>(B61^hpWAqD6TBW]Iâ(cM&޽{(P~E1x/gk nE9u;v,\5B~ @L㜃zVUpMX}Iy|۶m/]&S`׮]{{?`oRPJ:Xݣ`$*u (tJ3ކ1X9so~d0|B.Jvmn=(v2x&̘̯u"j38dùMŢZF8[g(`ǎcE; |VMXiVo ঵ '۠<5fݳgϞfWc+cHJ24qO (qhN((UZ✷nݺR`ȇq#`˖-6YXM4EGG_V5g@ L0QB!sf̞=V5Nq7J8(T ` u8юbl_ D9,ve ̊2Of FWOyͨ((6Q䜷Kb޽Ŵ/H-[&xmù* >}:N'8Bt1?603+,h7bd3>8t w:/7x &MŰpknƆwZTUUfA@)E$A__Cɳ(+e?~ sE+ +|iӦ$I3㉈:|08Qn EQr9(Ο?wd_o' N_TH!q &FPpB:ђM@j\n A^+bhx=' aQlnQ!ޟy I[Ma[T[FE\hYǓQ0fs݉J\zz\ʟT:Ks֧]4"PjET>q.K@8Xf\QN@.9&(c޾V3.F{1X> Md[õpt:!(~'×$Ð)Q*f#%U4̿h?ZD+^3?**<6# 1jzjEQ\YjjQ!M*'0pE / |r3:᳿ 8pG}s$^YdAfLT)c +?DҋjlF]`Ͱ@4k{{h"~, r$I9's0XDUUxꮤ; |ɽ+e#X5Ym DsaI^|P(4 @㜳d2ғ+#ȝlɎIq:H!fW3pd;k/2LN"SڀRcRPjLPjJ)Jm@1E@ (5NIENDB`phatch-0.2.7/images/icons/96x96/0000755000000000000000000000000011346363116016116 5ustar rootroot00000000000000phatch-0.2.7/images/icons/96x96/phatch-inspector-96high.png0000644000000000000000000003134211346363116023176 0ustar rootroot00000000000000PNG  IHDR`ƭ:sRGBbKGD pHYs B(xtIME  jC IDATx]wT~ewgw%V@QJ" DFћjDQcLb1M3FͽDD J".m)K:sqʜ3eYeW^~;3ss}؃1MӠᜓl6?s9QU >ȧqu] usB qIKKKw{($rDӴ~o$Y$E !2\ksP(g26.Bh{6i{ƎE-O!\C9R J)!pι?6l=s9DQ* ]AA:!haÆ,Oݻ9sfp”`p(4 (JK.xy~~U?joo I!c:sbsB᪪Be{d`ABA`;oƭ'*9gUs^C!HԥfrB$yꢋ4y-C)v18>k֬,ˇg߽wT|yyeL9?ᄀ%S>?2 e}Z9ν8q DMABl2ƚ~z]w> QO9(<`G)eqB'd#UBL귣ӯ){]8!N)%qE!"Ld$I6` 0q R B.&Mؙd;O [nŨQp7_1rn]OlCuHѣG&aĉD"}ڦM6aݺuxwo_;A4C;\ER)ѣGboUU$IbAWCy1vP{w 1^g\p>=X,}^e˞7Y 9E'IzsfyØ`39 @,Ӣ5kKe1.6% :YaȐ!DsCI'Y檩u_xGq' 4s9ye5,M{l6Oå^2(T ]}8k@D"AB? M,˸[۽{=Pn2iIUmN !7ߌ:#3sރ( N–k{”)S:!l? G1|>O^/+`!'(2 6=#̂R?a‹z= \4xn/UU$I p$IW^s9AE(g0-_gŭHgT:v؁vd2Hߏ#U|O_@cҥBQIhF K.9xpCرcSd~rQtE1A#aby([$ <~>0}a;v`…_5kTYV0sYꪫ0e~S3g6zzzn󁸀?'XhѢOX?…O>uʚUrַ.)\ZKO֭[qc͚5P|>/(@A5ߧC׹3twws[n?zI(V(H O@8xVjƹ!|jQ)9ɓ/[0Ơ*8 ,_H,@x8y|>\.L&l6B!<øK{5gHr̹PMUEe2{=旐`l6K-zڳ``sJS̨ՕRJ _1w}&MB(A8F0B $EA1PPfN'L&L&1jH;.6}/͓EP9աx]~#N=q_4e%p'5\fOe"ZH&裏oO /D,Vh4hH>\Fs8G*F<ރnq {*DQܹ Θ@H p]׸ gIUUɤ̞}F5j4 pԜThq QFc%5?8f͚CuuuBx 8BXf HYV(^~tuu]]]&t]GPfz?W\3!f"q,pd| {eYe]$x]gtPxE' ȑ#XnN81X=b:!Ȳl|eWpBlj9H&hoggw[[[Þ={i UU!&L۷ (f@~챿F),˸o1~Р V:P :3> aԨQU͚u|k_ŨQЀx<2(`Kg/BAǃp8Ahll@puׁIсtvv ;wD>w{pS$_?ww "u7`VsNpKDE$]pUWT(={6(QSSX@,>*/n~'s8,! .:q a(~ᅳ[dY檪M @E27" g+A嫰E*\.iNX)g}H@В'er/5eedd X_cܸqصk x<^xhbU>O^(/pIU$> :Ȏ;ȃ>8$N nǯaF*櫅s:FCCCŴUǸq|r![B*(~ʲ| 5 G~|k-q;j0^g$C)}?C>AQE8X 4$ fV+n51X^V"ehnnGιo:t(,<zȀf@DQ|-$BYĈ@ ?WXp:v>_sGJ 2Ɛez!üq\5칯Q @ "BZZZff#NcAf D*0 1AQ^uՋeYƋ/_O IlذVuwKtZNkueXlwҪ˜$ɦAKLzm[baxBŃNK,fx< ߕ*AJY3I6UW]}?;::y_qh%Ϣ}AH[D)8w (a/-b#˴lC"@gg'4M8+z@W`E;[չg!!@E(u]S8U<પ|>wu]Q]]-$Ir}g/!pdfb8lrسgbm6J՝` ƍػw/)G b=f#x}},&Q,zB4 Z΃r#$}1sι3􎭫4(N_z,rF3(ӖePJ1fs;~UhTs'k3$);l# !#5)--Y+z(^zy( } b?`sK^9`ʹnéqMn`%6T y^tww# t ?d^k̳?qP]L[Q){56*= `ܸqhmmE$A$,P^,cÆf(b7|1"a-@EQw9X$I *3 dѢ1sѮu1;JlྂW+ʘTrG3KE8S閄m!_);JWV9S|Q N$Iشi b:kҤI>h6#.ǨV)SU^ ]g\į]qŕ&(:b8w  &yRP*ǖ"Ӄd20hP+|,Ͻ ddn,.x\p680&L]wU,w8gAx<y g*p<%QY_$ BZ%W]uu'>sPέR_*:UYց$W^y1Τu0A:6PB̭t D9 ]X]5jf̘a'Ĭ'F{˖=w\oݾes)paСv"Z 3pɧA(60IB*>^! qvwycݔs+gS,J.YwhV=0_ Oy1z(\ve@)糯?1ك}ZfH|A#͠(2cȐ!PUъQ&xܼQ)BPz WQ ~YǽvuOzKA)׿({+W8,"(PU6PlЖev]w݅SO=ӦMp8P(qhmmŜ9_ B5[-PU^{P(pG:Y(V!9:mԤ5p4z6/0N;|$_WxMMApDrٌg>y3Ie]Yҁ/ ґS)LQdo>XuL07t`RC$hO?'t(xGS msT:Y`mk4hnV444iԕL'4 PGؤϾB7-^h.dBH$AWW4hMܟu]'lBP1yW}w8TUE<@{>'?BP'gΜ B֬Y mk( f37uMZ:^/N;q() 1,g_sJmժlkk[](4M\ )@`Κ9'wq?B*8n` "E ]ksVرDH$; h.DrnȲlW[p ~$)̟+n&D"~Jy$38יx;Hs%: %Ib|w}G}4|j43G|c'~/1J%;fU)lطo/2 :::/l6kblyWcCi&477cРA?~]afk8묙x䑿`aرc.FYgLqeY7,]~ 48nsL > cǎ%[l!1@@o<khh Ѯ@He8L~qWD%!PIm/yo6 +oS,Xc9h'|28]{ny00dȐO]Ӱ:q A ovmBd>l* ?\f׵@ύLhnk۵^]vu2$mOg7n޽{װ<555H&2dO&@mmm[7nܸ0FpB tFI"bJ`pw HE\H0|ᨣrxhs*oVIDAT/˸h"b1L>tضmv؁: He";P˚7PO$lAЛK@%innWSӪl&0r9_|1FԮ~@d(rӹq ݱc{7nXԇBF95aBPKkX9(%%;]x n6x<L0n 3k; ֮]/~KΟP(ؓ~?|PSSO?صk.r? a XVƼ@)ɠfLv QM=- !PJD"W^usvuu1Y0Rmĉlٲemj\'xPJƘ㮓>a!3,I.;vtUլ[}5y4c\&A2@<G*BP@"ǰa0o<̞=ە+J@qMulٲ݌''A@ ,+v4*zzsNy8~I&ᤓN̈́:~.Q /@$cۣXA UN)"4Mlذ_[n~Ū77MF\I9cN,r} 'x"ijjN-z@\XR9j1{!DdLg3̩e,BcM:GsxO?4,Yb'NF@qzM 21cƜ 'Ȳ0Zydg+UFQg<ٸo*Db3(kH&ؾO;_.AI,b tmB L q/]R38?<7^{-nV<ضmߵks%S9V\I&ݭkZZ>xfϞ=)y< ^bthٴV*"J,A djfvEP*qE)g?LW]ձ7}sƝ׊n՛a)U dӉuƍ?僇nvvnwy'^|+#_~^z)mFLB0Y\^ө>53?pرO cDQpۥ9+'No$aYn,9գ]>)7j%B(d挥0V}("4;AذpSGܹVpΤ??b1J)eYG4͏∀ge!qs#y$Irlذ 11$Ib3o$[VKG!Wl5ŪfvtaO Pj fF|oq)^zZXSYdHJ)d2[^zqxpHc֬Y?O4M#(RMau+sY ~W&Fb@ 8,4x0]ب> ZS^./r}}ɓ!c--Ri'| =ns7՜Z`PV)19 ^)} Ѣ>PJy:t5}9g6e@38k֬A" ,68b h?;*0 0J+Ì= qv1``a9T5o 1vj L27͍^k"cbc Id˖-医"K,Xe2F)9窙Λs֑H$$UsZ^VOd6xc-CdLcg3Ǟ*&~AS'P>\ vm$[Q7V,[銢kAd@&~իW3I\Aj0Tp*9YIWOґв|oG@d"ɴ46IhkؽYg00ai 5@›RlJRj>VZe&6~=իWl6 8!D$I&LϕV³ :BH,ձ⩄L&SDbCN6kPZ-@[8684VBIbÊ(/?LBAݵ'*4M{_84(eb694 7t{뭷aB#(:!Dw?V|>]Q&"3q%h:tuu=lذis^!*w}voptCJ% ^)Wx9/5!DQ~HĉQ W^yjBITh<@=nF?E>w03w}7/`ڵe^ÇǼyp瞳ߣiYk_,OA/I6-w6l9NLaf ~ SSc2djjZ-OEQúaqwyRRT*Ln4hf˅XT ~PPuM6._L=Y9իW~bJ8Vn"htu01z$ +W S&f); PUKU%:;; j$V(E!2AsׯZr얁ü!|ZSy!CNs:Pc9eMypx:I.L&766: ~5~#˭_a$?1p'd2lvSCC+U$q $B*- 'Yk;t2t}C98@$ݹ\SUU} ej$܁̼ 4P(TH$V48O$|KHTHp s"5(V*O!=aYVk  pz|̏7#,#")BVXq@}8Kp0$\y6/pbo7aIENDB`phatch-0.2.7/images/icons/96x96/phatch-inspector.png0000644000000000000000000002670511346363116022111 0ustar rootroot00000000000000PNG  IHDR``w8 pHYs B(x-wIDATxb?(8bhtbhgD2 "8$G̑A v:Ğ$xAؒ$͎z PЂ?(x/[;Qce&"5Pf=b@lD4/A].{@S)#_$1W^<\۷ O<|/_|"O&&&Eo_xprr)""rKZZꦐ}))F<8Ĕ1DwgYN4M|6ABRm"5%/ iTUHkM5ǔ!˾nzo" bo$D9w,{q{ !\MF> 1@Eώ$` 5v/ˌJ4O$̀0N}=B؉8ِsL̬lqC/Wg{c-.@)LY}yuui-]D `׿10C %j.Vk0sDnTg7e~3$H 0zf$W9vq[=B I ~4:W$kN{^5VeA)]} RKwӲ P DΏ) uKI`&bvHO*AT;DDrwffi8^qVC4sv'{UUl3")%DTPU03rΨ*AĮoȉ(LeEJt]w: [۶+R_xA P=SŰ 9BMQZx#H(%i`BRe绢8msBHMD3g!!@"@$kDQ u= hu}CU]Qg(4wX۶ "8'lh1˲}nwd0MZ߿vio߾20224``4333Ï?~͠`mmŠ %%Iݏ=fx"ñc?~<)?##?&&&_~2}ANNnonFFFK8Ǐ,^둜€ڃX -ǿ| $$`aa3߿ XZA3011?~p;3|򅁋Z$111߿ikk/ oQSS{_Ffffe( NF&Gu^l/_߿h ?e033a`c``,V kQauȓ'O/^p^^^$ [~٩5 ׯ233&;p";^&ܬ 끢 Chh(߿- G,n`?>_ ˗/gعs/Yg```߿̟?fPSS[Qqډdf"+`8rX_hq3`ɷoBCC|3<}Ǐ  lll0d3.]ưy~~~\-$daaf'~und("9_rOtujpc`aaaCpp Chh(F`󇁅 gX~=áC?~oxfcccW`ppg dg`ddd/<ٳ0޽APPZ1_&&?e+ QQԊX;@GC"F  g xXKBgX 6`pY ?&`fdRl)qluZAFX.AEQ Iy.LZhBT  8F躷0p>H#,k.x}?ipkk1EDLJG6wZkz q1@EfD:W &K, ³6k2k"/0ɼ?^qնO8^3疳BUiis/@uZcnȲ I"  X k-a1gaiP|I9A΋_= e^%]bw=@aI N : 0 @JXH V XBeޗ7?^+,;򺥔]ks[m(Zq*Bc%<σeuJv4%,뢪*$M MS Ó8s+E1hfo>z0^R׷}oN)_X1@$PZ^q<7HCl3F:KLP P;1m7d3U).۵iC_R pioYUwdBDQʢ;5 @) "B=Ѷ-$I=spΑGHr *q=캮c6 o"8'?V&&k׮;~D߿1B %Xe+5 /0333pqq303 À v=zp}o2\tҊOH/;p`cOOԷo2222/I«߿L̿:q6~~a  ~db066BIqaho`dPUUe@ǁaQ1## ޼ySgϞ1\p܌^D gguwy-33|Mqt©w} ag?p|)3111|AFFARR:Nb8q++яȨ nFFFff M={1~?5ˆh鳦۶&@U3{APPKAQ /_>g y0zӧ >dK1߿Yyyܼy+nڴ~o$ EN)DEO豇&K_&@Q"ꬵbH(DZ3)whݗ_{oPJ!=6m\>I3Q3GUoGƘݹm\u:R漣w BfFF7nL}3?@+HQe_2~YF;Ik6B d!h666[`+)pI*F?9x`K g t,Z 0}6&)Paa `AW{/$RZI)S_w]w9Tvdf|JB򤼓ݲmX!=b "hQY$/9~1E `R 9 C攟 e]{۞DtkibY 0bLA{hѥټ.Mti 7pwI!D4+p.<#n/= "Bޣ:(u'cȺpR7+"(=ZC1F1G3˔*umۋ2O[roE## .>}6ߟ? w FFHx5߿>}k۷o32(((0l,Ml;|)))qqqII)2F!O$gd``"8mwܕfff[ 0:[,d/Ν;޾}dbr??l/ ?~`/"(ӧ޼yK%.H]{jo߿Lbbbb{]+Wxqpp0@0==ac [le011aׯ_>}0e___55U3` pWq ++ûwo\\=z ++ !!ǰf>>^FFHQÇI+0cbYdi߃eA `?ǽ?q3xNn# qBjEKJ$-Zt73q4Ni.+!W.K$xy]%IA@YضMiJҢmH)CmԵq\p˲<eEQCKy-;_`SqzLJ}u@ ].`w٣=<8AKn`jo&5MzRӴg)s~e=^ba49TY!NB MSuPWaQkfm~_=8F_Eya{,o}x|3;Rz&I "bo߾`gb9*k"ʕ޽PQQoKKK3L> =  _f;|++ fy?01pqqA33̞=ȑ# zXd!/#;;˳g;vSY1@[hEKb_#c|JH'Ho !8DM63;;*4 pvkRJ1Fr~᳴(MSc"I!8N$8eYv/ aP%(HiZp]I!,|dHJIȰ,K}x,m۞ `Qw@b  \t4:1!XrOCBEeBNe hqܔS~LieYu]BDXLm 蘔E7(nCZaY90D$0Ma@J 9ǁEQ*(@B1yle; gyڶ{FĴiy/4?ߌRjy) t[1N@{Es@)Op".y@j? ;[.BAs6X9`$R[T3^uH+⒈z28Sj: 8\;~0]31 _lH RdARSoO7cP%ֈDi0?a61Bx8gA3~})n|`f۶s]׫m C{e>sβ J@]4qB^!`mGXIZNqm,NX$byS"f Cfs}ZoyYA"ǀn.oѿ(:34E]׈903(vZcaiQڶE40 2$IC) 2hÔ"bf>;wx~޴G+(,|J`_tkB'|c$8-s]|A=HkRw2 "$IqH׮ۻQsMV?A?_=CUUf8d2=kDȃ18˲$2Q1NÐ V~bqϷ\t(l[ː:ĵJ)֚f]߳(ޖ'"VmV4MmGo;t=KP{!)J!pfCSJ^.vo08w1N!7ס?ps^sؤ`0Qa 8CiJGqi0YR\-y{{sr/5[b0y$c2es~: Xlv~em%Oľ[DU0PȲ \.8lۆi۶E&X(M0_kvV[L:tIhX\ } #MG(ȑ(v[=yPE4 DKBH9,|\ׅ`dN`?P00>n,.<b\ D4ҖXϡB3K˸ҕ%0d2(TMDBT<@9gͦsd;բYײ( T3ʾo$ e1 tZp]rIj5Cl0 4McxB Gf.o8K0fEr yޞ( Rq]|80I bib,d~m^=n`VI(>۶;) ]ʕeɘx ~|\jA}LFpm6N!7bוr""<8X"N=1o5&DDhۖ@YhEd,"&0έ}^cZ 3?!BZn/ t"Yc6p> ~( ydC`lِi“4/خ# ^3+}]Upo3w.y !/e8{LPHX b8M^u )˦?Q@މ$*0Cc pNUJPD (3?c9;Y8`=#6'uJ]ס,KURu]G482[L 3/$YYk8N֗ƘY[H+ELD".q"D^5MsβzyGG!0N wvt{@dJ=M0V!=5 *xl[6#fsWDt\= P GQpX7pxC7(\cZơAEp)? ?g_( i,(s*KZ#gf#X1 `ʾe% a(*ROt׸K,6;Z'^S7  "R$.#( ő; :F +f% V(,HӔ<{eYA+"2mӱ 6 ~M~Шj_Dv2>糧J89>خ߸}|Q /8<0!p>ZT8_qm6ry$ɮ3E_Vo\ P ="ڥ UMNmC7.Л8\ٓCrXNDY!"I MS\UUencޮ昀AYDR]"Ht:[uMj/8NXljӎ 01mvQeyu]I1 @E],maDL%$@ ݬE"V'S|GD_?D!^J k-J>sdY,Y]׬iFu }蟎^ӏ9#(IKczFD>/:;Bvd Bࢀv ~g gm)MӍVcg=@E;~b lb7>6FJڸĄDÒ@Hlvi}|M@SB~Y9E4Mֳ,-]p\֯_ov32]8WG a|=g/2}e` Ǐ/^)))uƍMMM~?TO>12:u 8╗TSS/G_3 0pppd/ ?8]? ؍cSN ^+G) ?,?x_~/NNo .r( <` e:s rq$>yy@uupmKXYY?}t… ~ܹsGDD`L- 8 ΝcE8 PWh_p|:$C3G'"s?EX4<B{zzn(ɴj*3'{v}&V!M7oYYnnn7FA&&&^...˗3ϟTw@H022bF## ##1330###777Ua07SV12@+xعV\?d ( <``edbbbbcܰa#  \O````8wÝ;w'2N}j&Ng```kzIoΰ)PhIENDB`phatch-0.2.7/images/icons/96x96/phatch.png0000644000000000000000000002550011346363116020075 0ustar rootroot00000000000000PNG  IHDR``w8 pHYs B(x*IDATxb?(8bhtbh`g?#,y6?##$zH̙ 0 LˡK?"Xa@CjkA 0DOIEx t2Duҟdf^KGĦ."kyVեG]v; 1F{&M`| pJ; (HL~p)gLD@D@p[uB)MyUJiV1cbb`0S)Z߭ܩmǮ[gcaĔ 1CBtPڻ5@bp6]07ee {卑9K)Zk=֎sPuP89>!;t1 f;\}[Jc|Xjf""c Ĕ 0m+(mbf(18S@F@p nI!uݡmcaZsXk$$R,͝ź ͆x> RstU51NcDD)viNu]_ s* !@DQYA@q4fHTe.Z& E`3y/3? "祝9oCK0VUID |]c8>S? v ATA)%Rc̵(,'6ue3{.f\=4 *{PJج5i :΂ղFQ5k6|­б%x!Z\^ Y]j<11"sN+т_W; P *@-ls`g1;Oi#y ba PU""8iQ8 D"YUXo/Pawc̓Y3 !ՀvNFNF&&b ?g󛁁f"6_AQ&;0lVbPQVgg`b(%ngFmmY!!ebbb?":Ӧ͘,nn߿fa`?߿~1{; Jg3123 h󟁍Ń WNbuçR`aж`eP3`ead?"7 Z20pp12aj! */lkE˿_Lѹ_&&?)1JAE_W0(h& ‚x^cW =l Lf`2Nwl QGRJuʲޟ9۶͖u "Aސ]3;Cf+$|(Kr*d1csA@V4lyq] "֠Oɕ[! l2G )!1voLNqw JQFݛeJ#؛N2ŦE}4lDV1h"ܽ?"AB a>8ـMqY(s:MwV~E<N8a>,ןf{Fi]FkXX.x],99Ä`{xknhd{1FБ׌{|Ǐ>>?dfbbyx##; [0 /'7k10d`da`cce`bbf ?~0H~fx5î9~~Ɛ7T+|cdƠ6݈3,`TXppp۷oŗ/_cbbVqssf*MJA 88 fJ{x^Uk9x W_N4ǜDy]]Xq:@!YT(2_.WUU(LJ)G ?@ &$ ,D>T*S6,dB̝k1n)Ns/\τ1&4M{\g @:AȂKx(KWʂ8F0jA^A#b{ !66;B'98%!T'>~q0 ,q5N[ge2Iy$hPZeǎ{ ji 3a ;%1}c`2?I  ,UU89 ):!} ? ?cx!C} 02 oF _s0qMGGty~1mf@s>|TXX`tXKP,dÓe g xCcDc6J>gMV PMwu'PJY$I~(ڔeII UE3b2%H=YvJ/c@9=u b7#XW_y?z&_4\Z>VEQP4=l8^c*q{|1@ E_f pn-"h2&l/Yf8 mb_U륈ؘ\Co']1]!a=:b)XO3冟傂{L@YzpuyeO}L<;$Q M";c<3Qx:4Mu:O& @ EP"gdva0A(8;Rq/مjvza۶,Ed6iP *yJf"@ Ȉy̐WGZKIA Z .A%2"L m[%KBHEqtQm("|Z;0 }n[ 8YE c3BKol~laǮ; OJJ6TQ1a`~`Ϭcner|5@A 6 PI,/^g~c|Ux m9.=3G 2;Z1@ ED˄Rf>3<&ܳ@M*A"4l% r$` یnuv&"A.Ku\jگ*60wWc_iyNgo[a{؟>? u3^ܸKÚ3m#x H\D^*%dcH> (lNyUUEQ\eBJ@wfPLpQ…^YZν?v!Xd9.w /x{b~?^n61AQDΉ:&"]2?mJ'JRE9y6@0w=* .vL9l/.)>*WdDEnc2(SbUp0UIY]4)̌oKAQ.BhJ؆-Xܻ+234Hq@tD%}DZЪsqS*xEx]b ryڝh!:6ٯ]2}t$"I~NbbZӋwc|G;z Ia . TJ-qIЦZq7N oǴl:KXR 饬_AJ@Ll$RHFW UU-r.n$.RiϓRʪyy(bi?N_(D:!)yJl"<(/{>u==80 C>=l{U? t=-V,3ıAkCx3L9vxǺܘT!.7u]?e)R|Q=w-]ZlLW:xry? m ߺn۹l0xNVu"ϳS(|= Pg7y;KSGxxob1ؤKaIePa~,?za`a$qUU^8^EZDHDjfVߢD,4f=Zv3RPm\zR:ф"  k@c>qJ@6N4M7Ƙ# Z1 @\I#CKS|KR0%wreYf`g9rǽǢ(־38 ffhbe% 40k (1M/SBbx/""^k)akN]םXڛ0 R .j`f``τaD$WJfY2< (zkAUUw.M*ł t. qsri7H,hZвMi^p~Us|n!sT*AZ+"(cLu@i$7i˲F)E$>198OJQz [D! XY[ml!4`aH9[D)ajQZ[R9Ȝ"ju0I f?(/mdY6d11lvDS`;uH✐l8:3T.cLgefa>Pol\:0XFi(ui#?Q"d2QQic"~E\v?VJ{8GYMSTmm;KJϔ{Ւ)jBk-bڮ?\ޕ|u^(KhB|:i|:݀NÌۂ飏.:lzu.d_+ꍨʘ"Rd-I|lR(\zZB)eEz=DZFN`~?hwt\]\n\wB b)~__ x 爵iF2ZیULEW0k--"ۋK'KҋB :*MIe}s}%6`Bx?frN/(˂"89O鶏0"jm_br8c4ԩjb|>9bT[;N0(z)'HE)rDS<ˊ(PSfgW`gu]öm@TJcpIm}>w]w|}׶ WIB.IurJatTjtc I( MqTUUI{{\s"m&:/$?3Q}f!Ħi4M\0H;Ζo[;N@v11"鸇/໸ J+'{Q7xO͛&T u]s۶̊>[ґ!dyʲl^^Ǘd[$:Il\+ ƵO<<H )wzt{"Lufb9<r;sx躎A۶$"Dιģ綴P+4M_(rz~Mٜ< NYcn>13Kl9 spለUU3-;3ߙY,Ӳ,k;TdtZ;n0}"V颔9'܇p.R(5q!ib>3,cG ÐL$q4 3YQ0rn}Sܶ0 4 uڶeM"":D*߮I;eYvRޤ4Mq{ylb'a8D3&cLԫ}WJ~퓈T @TW dc9GD4블9TUeY( 0 ETP@UbY>]"M$@Xͧ'KH|aж-5MC]2!9D_L(D{TdT].W,SG>4j'!TPJD 3{o:gG}Z{Z1gs$8sq0ޯo&)`O3_eQUyO1! &) -o@ԇ؄}pxH6&!8dBU1wZkE)"f&f&NS.C^]~i~='_a"`o o"rΔRB)VFD֊o-I:0I]ָtL;Oup7 c [k{b Q}pq]v1:u͛?~P pH Qf0s !wa2ja333uuuttQ,"l'1 E899. n>'_m8;5rΤD)Z+c >r{;Ţ]g>aFkSJ)ևscZ1S\1 ډXY"VZh!xMH@8n0L03χM~ߓc BؼH)!R jﭵ31BF)]%(`sn !pOuy}Su>! G^£H@ET~Mt0Y1b~cI9c֢97ΐDΙZ+(`fI)afqÝd sCa Xjgw?P 20  dwr#z`"琁Lդ40R={BZnIENDB`phatch-0.2.7/images/icons/scalable/0000755000000000000000000000000011346363116017057 5ustar rootroot00000000000000phatch-0.2.7/images/icons/scalable/phatch-actionlist.svg0000644000000000000000000030714611346363116023231 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/icons/scalable/phatch-inspector.svg0000644000000000000000000012365711346363116023071 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/icons/scalable/phatch.svg0000644000000000000000000011473211346363116021057 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/phatch-flat-logotype-512x100.png0000644000000000000000000003201111346363116021652 0ustar rootroot00000000000000PNG  IHDRdsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDATxyŹ3 ,ʪ((.S=kL՘s5%7{sWcM,"uduCA Dt>3#0tYyp]_}-BkMLLLLLLL)1111111'Vbbbbbb:! NHtBb &&&&&+111111B )À[,RއQ'!W<\_SʫPH)E!m.L= |)%vutS8-$8""Gtj x0?ЯH[6˃-`R^]~Ϥs" 0zocJy[s-n0ڢA,/kVt_.$9pp |*aJyA=V0!~);[)yPjqQ {t y4碔`c]X?R0ؽ `CJwWϱ2\ \wρ;s<`ף$&˕߳hBE%K'Z>2IrH3/ ӆoFz6P޳uo>Aݶ2m-cl#[?OYYaR'R$m Iklޢ!6׼C\H !l*۷~P"7>h|#(iFI)IJy"l7v<DW1f)RsURSFL+HcVz3t#Q\toCbݼ# ;wGx: { '`SRż](1W}s-`R!^P1M"S,t@J\J''?kRӤtZ"#w?ڱX 1y@J'&(,竪 @y)qK |:S8WޯƶsRJ@NGVoن ],[VtK> FdslIyx#/yq,H 73'${6&\n\D߃dnHVI^wttT `adEHIlڧl`um*ʡF"'ݘ7q]8[Kz'vke^1ŔvmGg YF?RE`GBJ95N5!EiQP&RMt(t :~Lz {}>f]h_{6F}4R3`19+Y eJc]U3;K>8 #/yn}kY9P}Q);:QQd *=Ec00,*1ɥRb|Y^}wT `3)* m_޳c\fu8Y`Iyg'}{ssR֭}9]j$ҝQ9QM̚[(8p @yAuvt6IG{=6-JyF&I) 0>ٟ5N1ZJ>_x0gDyz9{WV+VGwוEhb;V9P)o%)'/Yj5P)oc>'=kRo!GA'tʃTi1?a`+ T_CN[\^ lGPY"lc'/9/ No_g&PxZJ%m%,\Y߲f JFtGcQe/3k~NLP/w&Sn#fMs71= SSLu1gj(f0lFt7+Ue~R8s`(Ga k(?TpbYg@h]Q/mhLk{Y9\4H)oe./f,~m>!ހ'(F0Epfeݘ"W9,Lcc1aA?2mckZ_) %(`RRޭ>%0(js0hnE?x>%Jym+m♰Cʶ j?P_]ʂ{QYy$r5rj~,@ nJFQIwR ?C+3 ֍=_s x"nO)Wm. ?h:\J{$f9f𧝶");IJw:-00cPiҽ;D;ck%3uJ%;)ho{U7;ڭ 5&[YJ)]AXȋ`Dr 1S4Eɘ/1HQb2X4AR tlS}[?+R_] N^ɔ~0[l1՘&t/ԋH W??Mn,J@}u)/ dyo`>Y߶0%r2. @-fM-ؙWdSLM/.l[ E|a[Q0/{EŪX!;x6-CӬ `*5 3"4yw ^a"zC7=8o^ylZn޿6ppv.Ʀwz{O3:M)zŋzTIQ%vimctO`\r+[Wl ހ=S)on6JbQ1j8c~.[hsl:(p2TF6W @4Q[y#xQl\է`{UWVܟv,;~쿕. 88uTB׾Nc+~OsU)aFQA-Vta8 ͒kR\io7 K:M<·/G2`^( K; )N3˪̖=B!Xc~'Zh~˲9xڤ((%7^?pg|VtGǜq& G`p0ƯEf؃i 8#ם8} NGGe</:3}B;B0k_)!b ݜ,cb1"]pM){ ;>4wd͒9)lǏ(#JJw"fM($R 9擌]loI5tjfh9xLJ7Ta;aݭ Lڶ0qP&&{e]9=6*}ɎRGϓG7XHN U% @PYo!cC7g4oQmGOaKKR/G `wD0i `)ˀ"hC0J1OŔ, #JZ-fR~A/IX4l5Dc|ݿ=z{{Tþ7:gTԡ )D+>>-xrL:ܾ|`UFx0qQK17ahϛTAТly;v1 $S9S6FԫJy"h RG`0?*-Jy8Jr"+ C2c(fK m]B(xI{t7f9@ۇ<`53 *`RޓUJwF Kh,¤im^I!?>ldL0UãxӔ^ tvAPNQRggEn.{ k0Y"(QP #IX޹;RF1C; T!(#knUvlJyvG5f^oCn3.+,|ERDΔd%SDaG~JDޖ2)"'D(-YL,xgM4l4oaLaԲbKtjc{=c燲 KR(Jy90%Ss4l/remFLw9) f¦<{,4-JyzFLహ?&La_LXWܷw-m0;Fsnεl 9ֺ@&T> &iaTEݶ|)觮jh470CJ\3+IJya }ASe6i3m͛8 ; MTc뱛?okl1(eUףl(ތ.6 @iFaƮJ+)nV. *{ju *Jvl,%#h08؊aE«Kyr ނ>_AVM~"=hB`P֭o }|}qYҸ CK>E05؊M`ZQ%)RcM.lk.KJy**ar5[)%."h/m'SkJycZo>~~HvY`_8vM޴2CF-R f ݨm| Q)Q4ARC[zh Ȁx&KeDm\ϳ<~Z$R䀠̸M̿E mMWK4Eú[Ӻ1z++&~{slʪN>rJTd.]ŤyTMl̊@T#F*n}4Z;lf8bZ |: %#h#ֽ޺b3]Ma@ Diauh~?Xͼ-Y 8H)ڈ^2 J$>.fH5#Rc’!l$V*Vl~ۀW"`aV/r)Jh6dÊ4%()OvDY#/Y{DL08c"IJr<@W1*;0LK9hs V*E'/()0%Xm˨\c۞ѹc;y_6 0Oiϰ8wYAncyEy):r.QJwR?s܏P3>&s{p:Lw0>sdUD\tgΞ6mqh/6ڲ!;Qt*l:f k۵ ?} J.Y$4O[S$2"ORK2szȒHfnWʻ/ y A0ڬFa]xo2Śkgb2 D N[1a)$GP!";XB55ux79h~?/g{ f%Ec]U3x"7JyȰt>*,l_k v/(]0{1Y 4mm+swmG1\aR^V /tK6쓱PRbt>|q?/jJ^h>h b$[ۺG#/SsԶ >&)Ű&lsV)UgcP}igOXXk1KD٬ JٵI &sbޤAeV@Z*sB!8?r3GnFݨRNrJ4ҵwّ[.YGl">#U42d3(}עo)=hi.tUre-/)rC1X\ *CX9L|d[אmbJ9f Gsvzb&J+o+录>&z(p9Aa6gl)>& _lh*G`S*,x5@ӽո##? q,(c`(pt. hfrY5_tv8Ƀ '`gjr|lMba7FJwH$b|)Oh'+<_) ̃qV(Yτkt?S(^&*]zU: ȗQlsp`RmS &d4ma'F!HttJy ` P)xBme|~>5val3&(yy3@Z㿠dfKabm` 6vÉx1a~D\T m'?6Y)Fí+-0B)7941RަH$)6/H/ H+]. 퍝SM·`_)RRa"Ҭ߈r. 1@)V)LXۊXY?n5d͂A9q۱+o<>-mnT8xwU;fslCB-!Yئcf{m=O 'Y옶\&{{P=)ݓ1~|>_R=ᅔ"Ta%ƺ/k=wʚyx#QwǯIYY:մ,qԶ2S%RzHB`=ֶX~<`[V)ݬQ)1@B7ily&{IRGZkcS<(^Y#KJR1 O/ Q$زMt;.'Ust.E?Q:xsyG6 ۫ãykA <c7gVL#^ʺ7ɒ}z~^Vo{k_g}<8Mؔ 1ZJya49͕ܡ-ARbpFu惀t/o/A6SKRc{ 6СYt;8 X ^hk*89fgeiR^Nc+3^h-iYנمR'2i)W1lG -܅!NTv_?$C[X4ˡJ-}e$z:2@9 d;)Jgk0¦|; Uɝ)F)oR n6 AH;#*Uob"NR*?dcFt7\K4cR^JyOQo;o_ް:93 @)xs$pk.e=GRޣhG=եUQꪂ{7 x xZ)/ /bVBbl"?8[#Xh=ktmrNY4bRRg;etJyIn~]-^-((\!{ppNoβh_yu <勧U" )  MRsoZ-Q"6)!{,fpuliR1K؋|GD_~sEQLoF8H¹CŐp^ w1NE֒]I]!*JyK G`4`2EY35˭7!?Ƈ2l,=uae к[L R]1c[lcWe+Vؖ/)4vm?'99Q:Ld0Lv8Л-ۀ̠R^G)J5hVwy[<ĄGJX[3h| |@X{cH[006`T @[`4Җ]/ -wacbbbb: RE"+111111#{;}<;iҤS)?J5J***JRTZTccy>JEEyBp%_g^Ez /nhhؘp?ZpaMmdNl)**&UVTȆTߒH4+|R/Dzƽ@4!ā˙gY["emB8%%@-l 2<򊊊cGƩsmoؤ5$]t!rr}dF&fmy(_UUm#RH)Oҝ!iMMM3 h[ҥG \׽"L#wmmݧWy!DsTGxk+111E\7!Bp^XEB6!N%qk' Zgx7"r$|5dG8 fr.Qɤqpk7[oq+}Qqq`LLLPQQyZd{u_j͍f/}RjYEEX!?BqP OZ$eJ[`,&[Zs_)  ZiퟘL&71$`7o?L]׽Kk~`L&לvi444 Þ}k-*{ {_}߿#}y\ >P+y旃\J歺.\XuZuɠOE)HsmjSkB2|19[~VhѢu/К۵fVk* wɧ I$¤Tmw+83kkz$t|_ǃ *?݁Bp߅$8S'ˀH7wgsV[[2{hy=J$_q^@=0QkfWTL:14 rL}ZsZ޽jN!q?'WTxxL- b~y12 %b &&xP+**VH&խ[%|BFkfu{n7!AJ%FfOQi}W̙3J G=椅0 SJ-kR(!]T UiSriimZsKv? @J9YkuGJ9.^8x!x0dkq`yYf]|LǤA_n 說L[]4W|qTP4w g`)-D[Jug}:uj=QVk6L:uj*U62o޼ORӯb>+Gwܧ,)?8SM)}$5" 97(={9sf-o].ٳg @a)F=S~wo!}J$3 oKR4afl>^|ҥg~aΜl$O87s\ABW /{?ߤ7Oڔ,++L&?jMLj!ۯf͚A29{xC֯4nf~NQJݞL&c &&fCk5wi-cΟ={6vm>N||D x>~uzЫy_gUsI? B2jG+SIdr<{٦DrBpLYi櫵ny:Nͭ ZQQqH1>VFQɘ3fl׺i` 8yRH>+GZi(|&@k}_2X)Ƕ,@?jߚiUU8܉O.]sFHIj-v)S|iӦPj:8Nk4qBcAٳg?@zV~-|)qO or%] G 0&&f[nWWo_<)s5Tt^z!'-w]ĉgL2YZ%'g7s̸̰BP|M>0z!{po;&|ߟL&[\=y3v{Npg 9Ǚ|κ彘\$IuB}WJ-2e/;88O83;J9 ohhx5PЯat:h|@Ѵ$.#ք僀waXYYV*(!Dz9չss$3mڴ^#f9sfg$4.Ӛ.\@); _yO]^k#~-ֲkA_6&h^-8E=JJJ^D 5gksO8Aôp^К?ȟOJJk0ɄК 1ԓ}JoqZCRϥ5kֻBp&]B36aMQVV0e'! image/svg+xml Phatch phatch-0.2.7/images/phatch-image-inspector.png0000644000000000000000000000456011346363116021244 0ustar rootroot00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAThmpTw7a$$l @0Z/")MZvZqZə"#,3Q:cHVH5$)EJR  KؽI>a7 IESfxf{s<ޫײ&[m&ۮL]Wk `vԧg~L65=]9/s'nl|@p+Wmjzn (+rڴbnq%%%c08}4|Y {_ _ [ r}`z˗/CQcoߛt&]^_5- ob L:5=* ^^{O?rSv5w6˖MjMf[7B5'%DR ^DhHXM:jTSO=EATVD zf,Çt: ã_ƫ5MwD5M[/:^i\ǏL;rֆnKMR-"ׯKHPiXcEF ҹsHb?n' ^-_n1%u&{E4VXQYYYhƅ Rd*!##øn~?WZڵ2DQ9^@rDVV0V%t0L0o]T'GD^D% Mk@ @ss3K,`HMD_MYx1@QH*jM͏bŧDKK+3f{njkkP]H^ʂ ?Ivm  6aoH堩u֡9t[(-u%Et裿dۘ3gϧ;Qӽ.EDP\V6nj̎Det{w(Nuu5dff2|, .xѴ0.B22.=ny <،[S6vtHNUU[ @ nsJkFc~:/x<_Ž;d2p8p8IGkCWWV'Oj*D4}?r!5stvv|"&i4++o^_XXx^F.IB]]]YC/_Β%K0ܹͣ7x?t N{9=T_"ŋ]}}}wvvMӴnF$*<0(vlolo(iZ{7zx^ ӧO'//r;Wijwa c ᠙.y!dh42 E@UV6ܼEVeFob4b\£=P%Z2%RV 1`<@༐a)5dL,p0>+rg8S,*@qnnJ-jLBNgN(rB +] Lp8!1ӶX$|"?jC(8;MQf1&n4m(^T`08 ժ/UU>Vn`Ʉi}yI<|$qؒiRe;=} `qHK…$//*};%pLl`VG6"`0ؗva'h颮I`QUŸޮ*g||؋:/"kY^?ӽԩSD$\ɢ./QܥY;w?;7()Duuuk5_GxʪrroSU 5Jĉot&BPvvmh(==k۸x$Hؖ}pww׸9}~=N9nwӦ0]E fHd"o ?0Z~=LkuɶkBsT8IENDB`phatch-0.2.7/images/phatch-logo.png0000644000000000000000000010261111346363116017112 0ustar rootroot00000000000000PNG  IHDRRlsRGBbKGD pHYs B(xtIME Zxf IDATxy\e~Uw'ξ' "È+|uF;38 ,03OTfA(d k!읤;tzW+Uuoݺ|9s.ȌȌȌȌ1s ~2ႫV\qVsKKlTrfr?sfwRN?~q=g_x^?e~av?xXoqkzĘ9eW7c?vɃrN`ɖV.\w~_<辑ᑭ3gnF~'䵯 ?+e7xC:lg͜/~xfB挏:][7g6ϜCtc:40-kÏ>v/E~/nX2s~"gNKk[??oc/tS֦&\sݗ9xp6se駽qj4ums=[RJw띟R:'9^{W;Nvkޭ^3W+)^,[zսU+V:/g>w˓y-WMo~w}u?N)+e0 J{һi!i]3sef˗_{W?>v\0~Xa?k^wOz8cٷe/~A\yEʼn9K]k]FDMK'#zիV_r}s?ӫ:R3; ewmֱgi;?G>|L"|m~?aTpkλ%3纳׮dd .&~,^>Kr>{ɞ{ι{T,n?28Hss3]'Ujok[l<o;/})3ct:12~-۶򎷼 _vWm;zŋ`'e˗..Gw??r9׾u-̟co1!{߾B2.}ǟ~ڵmkw/٧zf@𶷽Ηׯ൫FFyq]Bs/| B˗d3+ٵk]O>4K-J/\dnro/ztx߻>,;v Os;Y;dlj>u\ عkeoMW\*Ӑ22W )Ͽ/"Yv?O8m=y|mo|}ҿȴ3x5 w_ikGxȏrydZ7},ۿ}:cNjerߒ;hL7bX۴%:'R|ůc/)<g }w?vFAOקT<1CF~+_ЙkUc'?UlfW~ܵ}뉔^`],i9uaډ۔&}zr͕mOq>΋~&׼N,Pۊ*uMjuK*q)y/e\7T)F3~ !֔d"gM3[ { O|}&~3/yN?k\=+77;1>hp`[@&%kaꣽks?9i٤Y LEy yg_@Yc>yxwC ')-o1nRwGE>KJ fsM)Lɼyu1oޯ._6tO^u֛7w}v=}mV,MU_$nO-,ǧs $/< \%\@__?ዄǰ1MUDW0 xC@, XK,RY4wzaƑC'}8km+5M- 38΂䙎=3X_I .H!H8BGko λ.e'n\|7q-+m_B>?67~陳׭]Ƌn'wvt۷31D+R&2İReK: Sxb|#X mmAbikhR* J%-hHnNG![ uj=\ !ÂcG5FhluapaHZOI6ln ZrU~1O!chӡ]Og:+.kw[Ҧ0dbq&d, ,B;h,StX\,3c lLսekZBw܅5Ĵ܎AQ=aHV,^cۜ}+8p3 0Pa ?A* GẺO}&)@ΰI4t̃R#0t2$!Š!PRI <]05NCͧeN{q6VQ{$bIPcqs(qP5 gNkY[/$`ݔKa~8|dع9ǎ`X,<]>Wπ`ŠyV}= mh.]6nI+c9L< ĔtB`X^ɔ]Əfqb!1 JyXClɹW:w^J)H8bf TY\OB_Nl i(T)[AcuI(wpjso(H4Bs4vD}ws$/Dl+w"7-p!CD" 2|ca!; 6]8X_ {?EuM!3*$LmwXM yJ7#W'>o4LPرsθyGv4DbB(R] M& ,bNljN[t[w7GgS (D#0!y}!"rrȫ ́Xf=jILI:iD)@{083qL'Oc[;n!K!;3aG xeudg*&-e\H9 pBD"$hTph}~Meza ed'#ZGj( 8zt6s˼obެ9\7r xt߿]cx!IVҨyx+HAiGϕ @D,0eYX=8Cnd5cth:fb4$B#eTQ@u[vpKB [nBSHpք7raRL!&(_Ge')ھ ÙQsqərig›.&2ly~3r4zHiiBר<8W1]Hہ),DG)XRpAiX2Z}LdWtEyN$?RJ,C8\g x*NH"Oh4؎ V C#}sWZf$W=#0{1~|qȥ箧-|_gsϏy'uQPgBVPo_B:oF /M,$1LHM$!JjaJRM l=yb;ݹȼ>hSx3jHV(\5cFGʅr-ЄaHA Rm,Oj殀d<:T`p %k_Cm}.9=?Kh*Txt댠JaygxGhaKI1 Le̸Q(q/)Ɍ&4a(]I-dNT~4XqxhN9T^x FܒKh_4PРuҀΨ @[du<9fI($T YsSOENUSQ~Q'M&uj c>ni" EMPВ01!}H .';V 3ɏiPh|_B BL )ԉf >%fIGWt4咮 V44EhQ*:8а 42]sWr_{׾F6ðl:Zڸs'/arJ;%.A[ !p <{BQ'ѡOL; [#m4ى„ 7';)d4/ BAB!4RLӐ,1SPlJ ]\3)%(g46Cؤǟ T8U]:([8Rvеl>?'wj"|4RrUg8Ap*P6A$]lW@MW37.Y 3Z%-ZM~<dG1A)=A(ttZzThw)!ng T'i-j; w{#TMI<l;s\.t"WwmRVQK/‹Y'*?-Zbh \eTEhjEsWRA0bDfD\ZTX~]lR': 4%ĺSL%+*K}Q3pdoP*r$  DCT|!#3ם>n٧m" q}朵v0t#R_p544H@dF4G/Âlni7?i*,A<XEI8_ӔK T(4J)@=ʚ)O+!  EДAGcfR#$ E~g|P01,(aZ֠ޑ)SJ[ {-iႮ `HI Ӊ:yg 2T=BN&5Q>^> bcze(dBF4&A{wx*I@+ x,:bvۚlx+Z>@nHw/[׾N%翛[MEcwQm+ΚK,DndJ:a TL kܒ"%J^SISOU;QGN zX a1WJ]Ɩ'ǻU!(4Q+LtD$QKx ّrԸМ#hcoj{g.|;g.\Fib#;ڟ1Uk0 |Ogq h%%5~LljkZؿ3`o@~ yY&WqHB)-՚A[B!&I=w2x|Uo|;o~n<)O`se)Dį1 jʮ+QcPZˆ+ pd_H.~`a8ҀG⾧Mo~X\.94ʄ};C(ptI|C iܢ)CB`VrNp.w BnBA0(~)TdB_R&UR`"496;;k mxKo~<|񔼪e6WXqP*8a`9jwj_ '(& ,[ LE1$}C,PLʅqA2cpxJb.QY3:ˊ1qhN0Ԩ G0xI_O>V'm,) ۿKMLթECA)Er$'{f@_X^teU؁{wGO~~v:B)#5)՝jUk=5᧣vFPS 2dGG-M,2M!܅}`ՃumWW xIE5EN""͞31'1@8,a ڗmD$H2@n'RJL)H'י)nv˖-wUU_HV H%/퇍ܔ0DVbwTP8_+RJ{QG[C}oOϓy*k-|ZLǛw;>0@R0#4{8t`? 2)pFe oN`)GXRH֔ơ@Ű.^ٳgCD\v9H& l{i ?qݙ0E !"aLnQ0$<*2 Q+E8~bzv z!o0|8Ĵ)B |WVI%Pʠ)|?Xt*M"VM PK\PH!%qo1W@zwQBēqF"V.+fӲK/[ں$Oru]:rA9zzl4T6ὲTC}p`_ycG< K|T#ybZEZ ACC--bHX=mlc`Zᣚll&IhxH!1 c f WX"S>ysSk(5x|'%7H[xndW}7޶_mjRuʓF{i3$׏Q6V: TUܢF(*-Q;WWҰAID_4 Tv)]ӴðQ(\t¤!! ( p~ R|A4!0|yA8CVtAv'V\AGc-^,˯k\݅%:ޕ\|p݇?#dr,&7ZE~^R0TS.j}갾PU?,Oͽ *"0-Б1hUaFXKk;hH8H(}f:KQȢ[f_15PAH9_HQjYmd`%I61ԯ^heQYXA@hdbN«_I\BDG JxFUջ_V#ĉZ&ȱ߸Vs{{,_~ɬ9sF !fs4s,Az^eY-1xlM,\}`4+ _T3ryZ}nb[!DB=g')M|DT+&q|2}4c&l% ed%H) !hjCQ:DajJ_% Mn{A8</bq& )G"-;_0,Na Y t2F%2|/&u7Z0MseYJpѺ]DpwjsJann?[85`ZQ4aϥŭ\3^Ρo$OPA,7w ^%nAcu`^~ 0c@:[8HÒ4re5IDbdDWnDaZ*Aզ0cHR: ^CF`XN 8T{j,|yΦ՘ЋtӵNJ gPպ5F׬OOyZCXpyٞ;v<-fu7 W;^ih,ceT}ض}S,{8m,cW۽g)z2vf=޿kxd#s9:kQ nmٓԥ8LSҢb=.֓AaJVsXU}w Nsbql;}P* @`p:4)LN3JCi4bHi0VG 'ohRQZ>T)VWRz .X_斖 tĝ---C--ti~ZMyq3R)aٶ}S2Զm ! Mu{vA L^KHʃ6cCCY3(Q>h*0LWxqSaD hꔻZ5 B)#]UpQOJS(&s!4n9@)*!b.Tv+z6 @pxL!dN*B]Ķlcm8eEc0a82k~AX+Xcǎmoy>x"oRނ644tϚ5Cܱy˖hr-Y8C2IJ,Ddi!,k!A߼T,`6Mm,YyK3o=wng^w^yŃ{;l/D ڔ П?LI!$a%?ƐF-]9-RFהT$B1# m+9y)¶c47!JbII( 7 dK@`2ΫfS(`hʼnu19Ȁ0x%k /of/yƚ3kܰRp}@~vVwvtw_roo0!DJJy0M!QHFC={dxhsbXMMĶm8 R)R7577D2od槞$L{E߾V4yCb]Ke(sa,+ HǧtMWjrF! j0hPgH!*q?M TO9yJb RPaFTBH>'/u[BhiiBIJ~7~{D)So lJ ZI =Y^cKK^f|7oyݳIW\R}neGˍ32 }{ ~v<ww].ŀ#$HFEin-B%޷zZc;1\כAR=BLıwO鿾prh. '@ 'nEは`M]}ZE4OE`ɤ"++,=%I]1޿ 9A qbS jBhtAR(0TC)"ڂr=8#[d@*GGw()U?[+ ^0!EBL˪y|b!*$'IH6RJ Øމd=oyXoo} UPn&F̢!Hs{;ͭޅ8vL $b,JE1Cu8mu~P}qgzzD5#D]p[@T-?`v-0LLC+9!$oM4/P#^{@ , "PC|y4m0İMt0MH#hk+* Od岤Ri&[:Pd^A:BDk'Z+Lb\ fhYm̟;;w}֮4~_ẢF+E!yϪTa4 <!S. BKx,TW/|zx̞L0$zES Uux])}<hUB '"/F1Q!y(V*JaF#0UY 0ZQ~4 X<HaӐdќא+ aa>Z[0+Apt|/xfo,fi郃<ݳLOE~|dd`vQA1 G'\Z$Hi !H4$JQ參3KR!xZ[[ijj"NL&5RԴ0˶~sMm,\7]qKW$$@JQ!'0M1u=Q|YB4lP1:CgNٜZh2L(5A ) _!-$s4[lP,hK-'t2UJL aQu]NLP*]iݠFȌOt-=0pÐ Ʋ O"ayc+=/땽cbhh]kR I<qʭmK45I$ȌӶlTTSJ`H Svb %}5%K&d4BHAP.gi)FrEeXsJC '87>y4wt2|DRD<ADries44c "|Y)TӡUTd!w,;KaDi0 :$iHd!&3EmD%PV/qq%THy4* pf~&r; ڻm7c!#ZB @!Osk۶MBf܄$P9PTfJ!Pc e DX;xo `R.Gvl q뺕LRQY~rSG6W !d1<+l>o]ka9ЕRȻn`9:A^ "tR1 ;2o=b,?4Z+ѾA3/O99| ' #iQo|zւE8t4$0Fتwݴ_r#rѥ4Y Naف|.?}[m? 4e"hO 60TtaA sٚbK)kʁ)ZOV:kF5o?ytWiҬޜR Ŵ5i(o]J8?V(mE! |T jO ^9*ݧk_,]#Yy$,x\aH[R~rDlj#jF0BBXӞ ~;oҴ,]I.ib:gwHw@*H<"jaG+J) Zg^y it8a =|'TReYJH<E40c9 F=<7 Wa>Е2 $Y)UС\8ʭ֣};( b`e$ :iF瞻Ws`d(L+|!"eel.-`;T mik[}"x\<7@#)M6=Qr]`a~[8g:V/_D[YէݞExr/kH! 7XXb )L'FSk+2 x5S# ӲJ_2Aso}k=SMS&eƶST;n9bHV1$wlB+kHBʥ"Pq)m=R*R2:KΟC?wlrΖ|?XkS6 l.cr̜%dgd"a0kBl'F!aҥ4jY7.?re(*FJA@,'A0XZدm7>fx IDAT|]m=˪.MVV+{S)uvEJyBgt!2Q|gY tEb Hr@)2@ Jqٳ;Q8N"aXX|/yI&ƿ|9,8o\/i'k5$|Od*P`(8﹌ۈGӮJ˵c%MO(-&&MQ#LQ"ֶinz3>/C-,"+b\ǹT7 P +Xr1FQ5{ :èk7ٸ˖hJ0, U!Po4F-xx#Q/\JcVH__";# "NɁlˡQiFmp@8 ~AD\ wѝ\ $~{7߾˸d ΉBg KXι+"Arve\qpßZ0un;&."x+Pd U'?;ƶˮ`l٢T4E2F,Sl#щ繭9 ֵLU-fyX|3iϸ8n^~0A8 +TM&aZ覉lRV$x+>I3!~5j+_WU4sl$Ue 0=33z VY}mtEnJAhkO>!۲0 ;c2=[IoW7+iJY>야MףKV|aσZǎ߲,+kn@hP/U f'O2[^te=l]E]{Og(ozȕG$6s9bqrb||Ζm^cWcaZ1!G.|KiQ0 L׿ oj\J>T Ix*CGޞrr9&&xyv0u*[-:vD=pq& + ^C$ EaZsO$,׶.q$'8q8$""k׭} [֮Po0T,HʘPVUjHh6w4['4 BHf{vҙP.z˩<%&fp"[G$,a~Oؠuv=JiT vK[u41:'>z_l4lBm69ug 4rj1(x"ڲa IZ4Ֆ%)W+"# p97mZ$ԒTcEG0B@i |ޥ8r90i?6H4Tb]rZ8분{Z'( N3!lezòpkYGx|zNPPbfjA&;qAQl_".8|~y#ytŒű≈jA3Oel| d EYdZ,;+rAz80 SWH) K,AQ` MV5jp"V)"P*(OU<7ۖpԪGe{o9yr5q7oH\Rd|om^OܿYtFkHRȢ@*;K&@Ό}>c۹6^&kR-(Tʘ"2j$!j/l=s3QڮBq?$"{E}DdEJ. v]!zu g=?BY0sZy|QRp׳kƏN3\nZv k2 @e0 BV h^@r/AepIWN9;~Je($01>L./Y>ҁO:֫ $NBk< D4=UUhBcfjl6{EXO4dd,NXb0DUK.[OuZLltl*kz{~$!pDI&D%(i_t>'+_;rm.4R,ۋyMr:G2>rƞ {ǹqy[w-mhdt'du\FYg}V~ٹchE7-_Q%gfW4l\d6Cl"goB6F^#Y2Yo.\;RAs[E_%2jĐQKPH@u,+FxuD2x! U9[z^-N=Ll4@VUy<&Jlk'IKҙHŶ#iiX$Ш;4;b6,q%V+_Ɓ[>ǪMw'w^VDHr*\C-4YL}Gprt4=K:js ;~)҉$LMM%Neox6ӗ{l1W;M:bgL1YWs7qk^󚛬xG_}'Z35[E&vfӖ~tz͛oe9cdY&&jxKҥ/|-ݽsse+WJ:%S7v$9[ƢOz{_^C©{xM+a!2!!ʘR}8 )Q%sL\Kt؞GH# a,L/V+x*YXU708fČǑ5,!qva8M@e<ω%I<@&Ki/k_ V]?#Oɔ&J#H͕bBBD4Qd:ApB&_q1j*CZ%շ|4;07x.߳|e2~Es|s:$ɰ ?zۇ*cS)h֫4JK̊o~Q\^|`c7mU01 ɱq}ػ,ǷX/l]P>QǮ7L#R0`7(F^sǒBj$(-cWlm_RT>$d>'?"Ik^l=wJ~JT3373Ns =?{`jt?yύ|O116GDt]W_k8o|{~[x[O~$B" j ,0=2jz+{UW}Y3 24 z"I UR)߹y|h)KhLD,LVԄf轊vQ i*4 ϣ(JU*:Ύ a@::̡q\7|_GE/O[\_j%Vn؎[͓^ǐes.ws ]5L4{~G?PXA٨S1,f+!??gù>( 1vx3B 4GOgGIzo7$I3,k_hZN7M qBd4Cݪs! )RrƼH@( ē}L214ĒdE!}G n" E7$ۏӄł0$$ "< z>A*ҋ7ݝó亖a+SE!KGW;'gMG[{ىqF"b-ށ;~{=96zt9.O]E>F~>+\hN2dDSox&gφa軶=YTvU]BNMqv Hvj%RS.vcQ-+IjHg?>TD RK*F[ uK5p؍x:zuW*<FntիrbL3}QW6XHy-z2_~NI lTQ #JNJV*c&(‹y-m}i=B70V"I2F*#ݞ#JaB(E´&&|d/w?rFص:bhK%OZNv$L{f%u19:}0 @w<Mk`Cvѽ==usl: Yl:LSUb1Dt~烿[mѬ70kU}eEJ$p!"`C?zoZ@X,)( FʔMi8X2GExĒiN͡kaP-1;>bS^aLg<FY\)хie;+J&ޮK#q/A\K YIdx RtӲ0LMX}V<dEBRT-% tWGԟ`;H$(Fn$ff#$<(xQTb~l.G0O\-;X/L6?x[?hffhI2fk/<3(4uLsMLܒ|(o=* IfQVFtv3[e{DIwd EpV*,TӬT ÈނhHЫ\(N,T# Bs=Tӡ67A0eÏi[2$4a 9Mja(R)dLON0Z(l~>߷?:a׿+@R4D)O$O314D|ేL驯篖_?\7 Fn>A"ŠtsΥX1Dqr$*=*"2]|ze#,AD0 i0}P$Π:|~SnIU^焈tKUcB]府( XtjdI&'w,d:-G4zXt)t|My W=(jD3J 3xu]Qd, IDAT4+$m/RS4=d)zI2$q i)*(G3:W >Mc|-(E~>]? .亮d2n291lΞ4u#T[Qhˤye yN;Y.V≈Ц(P=5ʴEFa;MMm pQ;{ԫU4C̆Hq=]@ x nKp5*y*=}t1xӢ!7(*jn7}C}IXT"Ayκ ~~>\KVŰxb( X,t NwN+"RПJRF#J`2kfA6<C&e8.z ױq.9'(Čy RZMBnb8{fNTUQvI D)y~@<cf|3a=0?;{g+_WiASj4xG|\Lb:Er,"+V;w;+1U;f2dT _D5%ZL)^HpU) Ig`)yx^T,by# p%ZtUOMŁ (>05:z%SeU7>Iaiϗpgg,xj:t, 헱uEؠzET+J8x8]1?gjt_¡MЩ)N6YKG{*ӹNEUVخL$ ؍J3i-$sJ+M$*J_;Z*⭪E2C$5ǎG7/ۧՉg>B"Cv:hTЉ*f V"mTm4MS S]l{E ;qiKL Fny3_Çeb4G|ёZ1l4h4jUM)̱zy^| ?ǔglMRt\_3dXbx{z9x͛gzf_|ﻗ>OS  Ѵ]qY:iN9Z:+׮Rm/;w| d" l%%#)碵wQ₋~l"Ag.S@hPTf_l2tÃs9F&(WwmpK.E\p 'yd>brxwOs˻r;rbI>R,UxNdֿ}ۿ0.FAPu#M&Q,BB~h+ Y]]ippqǞdDt'4~ɝ -n[HgHaF305ffnr/R_Ш0;_fAE-[p, /@4b,a(`׏y˟̋^rynV(0W(Ѿt.^veH}wُz s캝jQ֚d׵l8| Q+bN1'&Lx.4 |?@7tL/ e%K 89_r T tu1211޻cB$7=LwH $>dч6m|IrFGF[ #|wM\>jZ\s}^sp&jBp=ugЬ#r/wy_@*캼u{׏:,0<׏8q[T|\_'Nc96Nzld|$NLXb?}>C[=wD2Y+lRAtQ$t],àG066ʺ8z(ӳsu]y+x㣣G `*JЃVR)  ;}BPdYw3Q"*c|joNylw-w\3/+ٲq3?c>D[{{INw~W]L<Àᣇ)(H<)^OXjݽ=8&z ;O&G.xE$mæ ȍV壵s!$$05t| oex~ۿ̵[}}I ]<*PV6$3323K\˫g&'.@xGI*>>|RK" RY|~8vsCsg~~~pݹ_ EUq|z Ȫi8^½_<},_}E~^ |FDE@QTBQDhq_O_ Xwk=wEvM_#k -eg+#NO%Q4!iT晝+߿u˖| gL7Np۶,κ/ 0;=E4\'AP QGu i] ww;?{N@Ia $4m5W^M1M E==]ש7bc"+ȺA|`CB\ExFot\%nT88K %,Fz=1#f >N|mpev)Ͼ5HʰaŽAHi>6ΒJ#t] ?ig}ݳl9H4} {$hrvnX +ôL$YkThT>JfX}L<;Ndd0i vZ]]K\fjzZJ QԛB]YŠի]~rrIQ-.vuӑ1=>ƾ}8q$~PV Ǐsߣ^zF#"K2nb)*G[_hܦ6oO CS6ia覎,KnFHY9>|uaRF$$Ed3$p=?̉c4 h~fuKn|̢, 'f5IJ& g{5I~QV0 21-32#EeguWNZF5T3Im9o;T2A:<҃k,A$BϦz-p|{u! )26t#T|>ݻn>.1L0z>BMy.sP~! T>ER (Q䩖OEqnmr%1>9Eϲڳ& XV/k 'NΗ>sV[to ^@B֝ |ug 5<#>AeZâl;xKVC*&qʋwz1>f}84׵6"2rp4ϖIj!)CA#"BG F&&qMbV %Cgf, +Vgo  tL{7+\2[1<5HHww/f, a, , Cꎇo}dC~m.g, 񦪊Xr̓aV"$ЬT<_>viHڵ]S b$m=s|cc;q<󘛙i_20,Бewh/ |~tU4=Gퟝ^c*/\WvYB[[D\# \jC;F3X)Eu+DbY7}m-g_05t;q;fsV./vSԮrp{^vݳ_X"E,bX"E,w4۷o_!']/_C}\L^z )a}q/ڵ(I@Z\g>>+𒗼d 5 - !9 J]{xT%@.ᦠ@т2LcJʺY]ݕ>[wmv[Ok]ZSuZ@2g"7$AE.`.3d|1LBy9o~ @:v-Yq͚5Lex@#ʌNI4_Lw3t;y@as?ܓl=,]Z5]s3.UЋpЁ.M §[omm3 77l`B-Z` Qa[}Q߾ %~듘`q_9O@d@)EE!,ۗ>>-؛UV2 ?Z\c( AD@Jxjv!DTH:d=***F'?ƏAoO:"\I?tb揂;vSNwqm*xJD_p򉪪pDr@ y= ^w!*34n ^3-0an+v&qNE7!x>Mģ񭼼Նa|Ѳׇ&2Y#BofvҒOpLE/Q.v =L||ʭg WE=+1CᎣ}FNDΟsN \#uuuJVhoDǧms-jkkp3x,zM55M3lͣ@~lB>p՝Pb!ץӚGD-~Rzcۼ1c Ql;m $Gc^1 f{3F_ ]H?(s93iim>ͦi"fq({-񪫫G1@R bT>Ic:@Q,.-У֏H yfd9Ah')qv*{4c2MZf4x{gŌCVs`8q#@c* 'Ϸ\q<'z{{`RH?DDӸi8ei1_]sӅ`{ eh~e6v8[6N/z:NV7yDK (U MPt0 lZ8p zzamF!ߧ8u(B&횚D,]IᯈF9T?>zX|EBs+ډs.S(GGퟔDtD.{g7Hc\_yͯC.-S>^i+Q!/FH$@hxGbೊGNQŋ^D5ݾ}{GL'dɒ"g$o\^ `s\Pxp4X ]zK=.g7K6&]3+Fң#{İT&m1q^k R?^bڧNcTI7d~+>iErfq0=8.yTK8{%p<ޝu|5 7 DC93}uÆ ٲLE";,kqd-Rpccc^& `EY|JNPdȌ-SD"_UqfxVm ip-3XM?:YY_[E7 y˪&{. D<Ė?[0d,:'#s,$0V2}Fe.;-)tG'4=hZ[VӃh ]=$zT23~ʹ"T?ʯ ?OyU^pDJmfzԲdv)d^IY|$| ׈\7tR9;;w HD7dCGuu< \Jÿ ed9L%]Fz(ڙc1\K~oɦ` 4]7*؉7fq|DmDF=]__nyBɻ3hvV`CGx:{O[%yw}* N&lSSMW];B-齅U}ygW0y?37d?V9*;i HVfBYEBZTTt&1 c@|WSmޓg)Á/QD;tp@͊6p ڍ_NWOM(_A4MwgUheY DT}Frë,m1]A1sH9v#La@M*=SEIDATrH P*2jcD2IWAp±qh?<ݭpGP<<\I1 AH5khlbK\.]8۶KԝxCec;ܫ(t+y鄂rh)I"r>da 1zrjptF q0ܲz/?:<ĬU{v?Д}υ(YP UGl$"memE#"+vii)t^ң2lڴ 0P$ yk R؅h"t5PCk%y9L զ4EUrmSPTߪMJ$ϘZ>D/*KZn|T㵦i/3cco@ ^5 # ;Y5Ifc% ,OӲ@زM|  N;CڃhZ?aR9LL.q|7L‰w&m¢GӖ]Z3ɇtݼysw?rVP۶MBbatfDmS8)Qlz:Qn`9 .,kkK$QjQ|,B:n0'l:G8cNu|jF'8ٽt~ooe ma;;;^oll >U-MT*3J ]#ӡ8mf GBbG$)ҷÑvcxK@&e;| ڝI$@#3AUG Pہuu;+iPPۖnP&Y@E:]x;n#:{4wdpt% PN?iN=fzWUU=k%#B%}pc7*ݫ#t]h;o4to0G<"͡ _Դ~E(Gԅ;QQQQtH1v8m,`Y28#h^3 цMFjSp:iCa nf,pmf Ae8כ^M^eꌗNv2e˖d+('dH~qҪGd&31SH?4\B;t-[-ENr$'9INr$'9INr$'.mg΂NIIENDB`phatch-0.2.7/images/phatch-screen-logotype-512x100.png0000644000000000000000000006357111346363116022222 0ustar rootroot00000000000000PNG  IHDRdsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDATxy\U6U/Kg![g%!B #.̈(UyGQQ@TdIXtt'wֵonwuֽ݅ԇP}sϽ|]( * @* *GTPATP * * Q!TPAT7  *AT@TPA TPAA!FTb+@7)TPAEBy#= @TnS2_[k&d5c3I|e6&u3Ds|8K_VP PG.XEYiEQbN'J 巾PA##|p(#k-#@M_WZE`Om>c'S8!@گ`Qŕ3(4iŲHZs$N* }7^@QJ QQ{ ZoL62G27ᄡ*8|+JQ,O9H&={bPu˄)o*r!!? 0ta** 꿪B3kԩSj\ +*!@؜|@G3*b~=HEQ@VHbOB%$"<8@%^TAF\ /,^wHCCb1iAt ?ڊw|g8 AS,mFvIYCP}[fS ?hsT2qD{k-L>d)Z{~p1҆eYu*%DǯECϹ|DŽ= 5 j۶mvaYvnSSӶm^>t/".iӦ&e/TEe M/}g,)9~L&Tr3<<JDT@qx衇87 #a(I "h.2.@ǑL&q:[i8&<\yߓ$'N ghK΃IIB$+4I,@=PFA|^o*Nkl<Rx%.p}w߷E(sN&̛Ŷ_*M7y} `Z"c}p5BoU Lrv45^\wZY+:KAQ޻{LAS֮iAncwu{L.bAXb(8#es" /jegD1TH_֯_0Ly/[]&{w6_H[Kw`%jr%Y-a«?ilӞ&NeX~,9--G!K1Y{0:kn~ Q _s֚ Ne%(ʴB}> {1ޥx8N]s} Y)@#B< znJQSRy1J6v(SATƠ,X`*vg'sϕDEyK/:{$li?^+v¼5}z~NPq0NB?Xx^KufER9^=~4ػ 4q hf6nC(N-H `8$Iee|d>Sh>9UH_dGL[1S744Jb`1{2eo]uKvP3M{ qaE 'MR&/s=_WտZqB+҃< eFtڋ-SQ!}#P>*\ ;^f4Xv63FbYhQ؃R@`į.ګ!!? 4MP/| 7}_6`ڱc,vavuuB|kX鴻\.ۊ+jv{֋bڶ8qBHZɀ̝;eFAM22SIVь  x6++ATȶyb9GjF7pIX%O`/)G| _wiC$ iQűf'K-uIp:LVByOp*:@<TPZF&K/ﶶ6 o uC!"6mEQl6L> y1 WzAh׾5kVzٲe/vuu}^z@U6Mvݺu%Ka-˲+Y]qbB% 0,v폳gNb`ԩSnd8aPrV?+BMy GJvS_#hEQ8}okssx_ǭE{WEU<_*5kp?F;N?ϕ-By 0$9 8Ao1/UOPDv:iKV`B ΅O<}S4 g4]cf<O_CN֦.B<NDN>O'sw,˲PO,f!5556AAaꪹsyJsFUUUYzկ~ϒ$ !qEQL۝ !YFQg#Ϧ9 6mfM6|޽< Vp$PUBf5 gA86p8ܟJVB5%!E6M7ݴrͲEATύ(p\֭[b+/W3cTJƑmBn:׺uX,B8нͶmKmm}{@!)'wy7Qh B"@*]]& ~h4MQWpZ)pM>|YQUUGU`&s\-ۿo~Yf.zMTԣX /u(B*0G7 M2 ͳܹBD$rˇ?O?'d7!$R@oܸq 0iY?{k_[P;!;EQ[J\cf<"f믿~}}}C<ϏϦ v ` HSSeYÎ^7R|7VUU}4_[[na>P+"SJ>= @pݎt: Qqg#ek^߻;EqΒ$!N#J!L/H#xYOVvڗpqo~35j nKrR(O4MCgIVm\.BN6.큪Lp [KB3ӹaxgp5jrRRM;nUlqmf,L>o@ДIDvx X,sS@:Lv}}kkd3,]hMEBь0 }Ν="&xha]ޓ$I tl֭[~O8-3 A:^SdPml޼yʕ+?NQ0[!7M D* 0Ly.O%`Dmm-jjjp8 ¸S~4h>QȾ~x8>ŭ,%KT;ϚOOOOj8|LiXVKuu⑑7 žZ]rQ@ t4M*ҩT*-0 %kXX9ƶ ÔdB{3'tʕ+h/QM}:( ߯;t:/CȬYV:uPe|2߅%!'x(BAQȲ @ݲ܅.2 γ녦 86 Nx/G0ޜߟ{c!Mg:A1JKӊȔs P555֋.EGFP @GINXeB!9J,rv*hfQ\Z LRQHBA%Y)iu6e-Zhs̩Ohll\1~,eܹs2Uw#ʆڴiSkSSOQbH$Ǣh,', maonnv677۬VkwiZ ?Z:+B!9 J͂F%!(Kіί0A^й6njzF>y6 1*LX3jff̥(O~۾YdI50q(Jrj'jACCÿr SP @@dLHǎ tuu $I-AUظqe˖5Re <_h Vv===CPhj!W:x" IDAT5(:?ty+WtfyzY9#xΝ;wp8ܞNEђ֭[gWUUO}:x|ÃXl-Vj[fleM 章V2ՒM ӟ !7Z/I$$:`*qER!lqZf0h.IaIH&3 G?EI@-Zhb0NXL%4k,XEn/UE}& e˖ń{)YGGG_e4.zL&^}־K.fKe7b@]xdY:;;OWժ;sn_fVt:Ml lݺTi%I|&[F'5~c\+WLdR Sa{%Ij5F6&ߋ ρduj$SeY$* ($i4`p%[?SOafYvgjժYV0@don-;  ChJED"? x a' u3DΧ[[[5<x\K)[,'Og3 u#eƖX6ŢJNVK>0@mͶSϏstmy =)"BP%u/X*3B{ SdٱykUUCf^|œHMCK%a;(jyĬbP_TsDwwK555std6Z+UQ=nukm˩}oZ 8pXbEQZbǓH$RБa0?(ɠ jI &KX'rN}kVWڰ" HӐ$iTS1$I>0 aJh+v(z{{}}}@=h1z:Y]g}ݻ7 P7A\Q#LF!O^R/TA*0Ww2(PNӽFH!D+Tbit=|p݃POZ C_ {{aMH>aQx.&70TMY:5۾#Q7SDcX5x<&]o (ߒeY_."eS eXR*R׵6Ebe] s!F﹔M>s?1Yf9hS&sbq4HaB `fU욳gφ{zz@l@J*Hd(JEqDR)9` cėPGѾu}M&1l[ {RdRƘں ru\H&r0BVKq\~DrT*?tF ;P;c^dO+-B%,Eo)eY=OC#6oA=G1sȼ)T*5(n0~ߏ<l"G&gNK'h6P0 qq\ۥ6FEQP dj=2 G>~:CSK.]ոfǕ?OS>QZfnv4˲2z @ ;<}&lȘY9=&_K.a[[[?z3liV$AQX, Hw IvS9Gl m׾{'; 555)5- 5 )P4!}'?I4GV^&TLȑ#^-'X[,| V% HHZlWT3P1mz.)E!?5?P-[<βBzzO߹D"!a7T{QTGE Zml`0(XtEׯ_EtK>'/ vAUD X3T3ş Q\Qx<~9F(UE9/O곡afTkeYi?P8{-Ha}L͢bǮ/$ޑS{8(q\j5D& u~y5lo~3e5[f0U}`hhH4n8KM[aZ!X%N !LeXxai$ȇ P6.IJd2Jd2JөoP_TۚPiVȺ9.ҩTʝ<1$nJXhnn7 Rj"h)3B^W;jͲr#fϧ1t)(vͼ/. K9a 4`?p!o/yDl +94Ul$BwA=HVtFH9>ds^HLLD( aY$Zm1U8֪"!}nШFRzzzg:1愨ir q9mz-OB [FI_2j'9s̆2GJPsέd ɶ̋]sc(1ibYk& -J'T bLl6l!1NXLRt-&3>σd0Fld˖-+)s+$Yf=M|~"dY[o5uj&Pks0N[v˖-7QuAGop8~'O555q (R,m\F_}eEV25o޼Ap`S8L= a /ҥKիy>sW@#7 ֢/ @12~`/:݁tdi,===|ͧ~i@,hv@]!/3<<_`( AgOv%}9SO٘صX<+8 *noo_j(2DP2N8Vww۷o\cccQQ!o;$ ({YxOм]fcrx^}^~I,21:7BөTJ6NaSl6 &yhi@SdrG횬$ PE!jYx<~֭˷3 c*[[.[Z@1%bS 's^[nt|"^Mu\ZX,xw8qec0FAkKm۶m0EDXRAdΜ9.eBDuǍXp$I|}PIHNd-/?L9 ~ҥKO&S:V|>_/efv!sCG"1NkZR9 Vat:m@B! pM48vvt̹7Pp Ϟ=qR9M }N{/p6מ#`.SqĂ+/a/oVXnr"x\<}IPO}jKOɂ޵[Hv,컑PK.*b"& F`yoyAQїffA~&c2OBMCq(t"vF0q:ek L$)PMQ*ȃCDMsb1L6o4MS6m~Ϟ={:gd'E `gfds;2Mma N6fQp8\0f"t,-S{62q`0ZIoĂ} 7=>LpH^]Ҽo ^SӠ(@~T]TA [7򣡀 `H$uĉC$ꉿj{c5ͧ#nX,AfqE:noiڰό/*8 6,bƐG(Qsbhn,Tc"rY%P}WB!颖,Y$L͋ 6!W !Db1Yd":[p BL&P k׮VBHw^)ZdJ 6P*q܂D}[}E4ՖU8O{X~C~E'c( 'wS#QUWb$ a<-X,8$!w_aA#X~RͣU.աNeL>|رc ~-GV4Egfn"H:a7 P/.fS,Ѩh4 mZChd^O[ZZ~m:̴.[t:$$@Ÿc&/aơh7˲_/"%=|@" esb,KW^ogΜرc/!C sgرc库0GV!zL 4q+s1m:ڦvfs]蓢2 +ms4!>~N566oڴډKm<ofq(Duu5Nj.HFFcHE@];k˥ZZ8("㹯1z+lA]]G.;HRJooHGG ~IRF T/G]|X- ȿd*i l`yТχF@[,eSNwdYV{/#E /_(0!$)@;5Z,kbI&TӋS$IАv<-}Kk~g|yӦF ofN̹-Hvwwnk WUU-\f .|_AX>^|sѢE'‡3{GTC 7,8$69#ȧtEbS֫]_l@ =LZִ$THgxxx跿񖖖՛6mZS/2 ea Zpv. 555weYF2%H### TPxjjjr- AMHӣU7P_tNSO$/b M=]4: \X-BO@uDm.vuu]~bOl5EQ@Qt:߷e˖6lpTNEQNx,gfYaz,a4ME\T*(ztZ8;}1ODVđ)ͲZd[$@iS!|ZTM0800_c٫7o޼o4M a~8`y%sKҥK?]hl8QeeYv 555>p cu;<jʕ !ySOmF6˲0oHD%7 {aE{{{… ,[3hl6$I%0V'3qߧR)P?σv꧵+2XqHӠi ֓(1Ȩ'N8xt:ՙocX7j ȩrBCv~{XMHPF4v5uSHHHuuyqzyY%=U/q 7$ &wx㍟^p8xzC`&^/Daf7LڡO\IɒdiN@e%~dA5kִ_ps,z'=҄f}5 (`$A}{ȑ3XfR l4%j~ Âm6l @ËFR8$g`V|BvX,&B!-96Fñh\(*!.}ϛ7fϼBBF5ŴwŬ,sj<0o1QSP(J<y\߲e=iQ KK *(4pځPqϭL֨ PBaдNPT$I-8sׯ_hѢA&uM eY,ϵ6X[j ("<5*Ķ5sD1c~r!H(SNy:::2'|ㅪnk}MOsP;v/*hJl`g!PbZ B. ꭾ7hzA>mL1Ȳn$DOJѣGlٲepȦg3.v5'Nm6fϞ I8"ٳga0M8;.Ewߵ\2-8b-$ E0kX3`8kcg<xvFAXoVI?]r!#di  --sW9kmoo_hѢBZ2 !"Ԋj; p `Y ÜG><#Fcdž;֕q4B={2C}/~.PgϾlVik(@. ,Iy~߬$MP(-ArR,8|m%=sbԳ9{x}?3Zn,_- _)RHh)!1MBoK Ld G6766}$%-Jv j@|,ۺ{gh+0ggf̜s]xg>!x $^~g655M ;ѻx_SJ#~z5\i…ƓK s<&G纮R#@( c?[qd'@8T?(oOO!&~c4,c(`V*jھ}۷7K.}gKK˜ VG&Cd-u'2c R(`6`3f@UUirٮjD|tBPاmU\VS 3MW~hhhr"?(6`YZZZ*++gN$u___\`pǎ/^xyF#ĥL'jΝ;y_B_WWW .^zOJ?O~ 7%JHLرcfqn0k}z ]wݽo.Bu/r[.V5.hޑw>"N;'LӮN6hLF@K,] @c6mܳgϯ3h? /EΞ=;dvA@)u]*++G}UU###18 D$ŞWJ=dݻ?|+gKKU#}}}zXٚ Fp}}}?]p7\4gΜ(O\ޥM 'N9p@8Mu=_D$8)f;XRn f:YdLB@DQDb@zΝ;wF1 Up8hѢYgϮ G"@$+++p8lG"; Yz3'LDBiJT*%ɤL&e2&PرcCk­&q6'|N*D߄pD?JUf `Du,@%T {`_{RStfA)eA5|!"dYbz0- DѰmPu]-q2IN3(Tqc$o3ϙҽ ,˪fW PX?3d-LOqUPxP\ GRA p>RjB7Tj ʱO$Z2B}׳ª-ZtQCCCcMM͌pmmm Z<n<vvvڵˑ~5f4/.@QN{Ox}N6[39נW+'D=gQ QrRL"(l@3̝;qf}}},]QQayfQ Xdڥ>900cƖ(F7RV(uI(3Q`̃E,WJaFXϢڑr޴eL̀(f#cfx[%~{vV6$lg~5q67}UIc.,7BdMDrOxP 4²(OCAM:S> D7Hb~Qb If2FfP$ qMPCOtE :QZ/Ҍylɶ dI4Jn^3R뮽揠,V69! Y6u^èTH$NgfT;y6/^:SA}꤃'=֫,T|j&8jK)^xN0&q$&q7Bzz d 5́yd,[H,=)CYKskxh59*iLIL֖려g! C-jF)CΡX TV/C dy^=<)-C5xI˔^~˜̚Y-iK?4#̨؏ќ)S9}Q=uLfomRΧ!\K_el&.Ds1=qTjb>תoc39٨jiމ0U 3d^LKϻeF15X򿵷P Es_n9ιBjq,$ڵi|#Ư>oY`"K>|1x2>|BD`]:wvm2[n,멶5zl޼&HUTT3L8]'!ģ(+1131qI?s ">|h!xLJ^)xݲo,]W^Aި:=B TCm͙LFqgЖ1#,B2;,jokk{jt >2^yGERʿx0h1!6ע֙&<2Jn^>Z0 x7p[[ߕ{S!L`=peY6OQ}f{GPaJ)念_3oJ]sÇg:m=`O_BԎw({6w9ӈRIk>95escXpwlK)f5>|֭{Qp7`[u1kPʯqCyefkkwOb_G2M?h\)x7qڴiӬT*Wl*;v$ّH$]ym $*]ז6:\ l1.[#xqG 6d2,˺:HJyx6 ~>ӶzKx`$5Hl>8LLȲH)CE<8F]fӦMRʏO |q6~Q ***WzX>|qgJk>|;Xwl>T &F<(¯gpp[n#TV*Ty}% yu\2A9ˇeYhoooR~EOڶi:BKjL#pqMhc K)/K)Vct FgX-˚-\wP{[nR0N.7o|w9`< KgfnSxa/F1bLV̺{LOQ_fۿb64Lfb86yG~2|1qv!ďQ"^jmm}@*N+hq>arOQa/xPMSw<*")˲~7J5>|W')}qq!ރCq(BI_DlCIDAT=+j<q{絣nT7ZM;JK< 8L$-l6t%㾯mI$+Q~8mk^(hF1\ۂ2AL Rʯz~o1q2?Ɨ-[իWg_@0Jͫ'`˲Zھf13~뺫x\gD|H% mYv ^&tuu9cjXtm{u+tӦM k׮IRfH$.SQ*| >3~R~ eٲenmmW9vl6[iӦG=,jq~j|BơI4^!ǜfӎ\ ]{mxGBJ)D9V[=,1TB,)yjg;>qn.\Ѳ,S3'Z[=?-}把'GKH) ײ/QT*}8ΫYW.ETfɒ%{;T|z2|;s8;xU.RTjpiAJd 0UmKٔO&p.۶/5k 8/d73>|x[mooSrY(ϻL֯_"ze;Bq"geLu֪ʸ%Z0|`k{]tkF(#[ AE|47o?^RʵBϱSC[T5P[ tgt2O"[~K,8΍VN&x Դq2cB >NsM)(g?0j m;s]%@;Iϼ}}Kn;úRGiNj@1rG:aY)#'a^f=88aUO/|3L-˺ !ΟBt*`p4xTSS6rwNe0=oR*:!8J/=ٴi,)S###=B:ﯮX, LuttB c%puQ Y3q3>|V,+"H]>'I8z+? ex(oym*H/gBDbh do8r,PkΣ^Ouu?/^^ގbJ RVe}GyWE{(&zVkkk@2Im)XfM:_-c}/q'k}B8 TwoL,^}^[Gd9o0=+ `*,2θ/ ~2 >|-m۶`WWls=7o(lzk,B+`ƍK /*`H SlAQQQQ1F tJkW aƍ@b;K1D1E!Da1gmذan,;F>|mÇ>| 3>| 7AߚIENDB`phatch-0.2.7/images/phatch-screen-logotype-512x100.svg0000644000000000000000000107145311346363116022234 0ustar rootroot00000000000000 image/svg+xml Phatch Phatch Phatch Photo Batch Processor Old logotype solution New logotype solution Phatch Phatch Pantone 375 C C:40 M:0 Y:100 K:0 #8FD400 C:0 M:0 Y:0 K:90 #414142 Phatch phatch-0.2.7/images/phatch-small.png0000644000000000000000000000172311346363116017264 0ustar rootroot00000000000000PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<PIDATXkW?'I۴iM_Lb R6cϳQ;aAV/Q/ ("ۼp0VsBu֗nڤY&6O/Gқ~s~GjmUK%`SjY OW mC)2`?pkƘdI%?('ȻRj3m}!v~[¨R Hpq8 6tq8,-D,bǣڈ2K RlRj.+v fj߯LJ_Rrsr"=$1oMi1*B'/UfLsOk!v;ۘݭr4epH;aYe}|@dXMZll}T7*–2dä|e+kU+osF. ZphTxp@#8Ņ0ud>d>└1ol%ϙđ71} sӕ8ldMNBV`#TR`7̋f.V06G.OI|Ɖ`aR>WӕT5.8JCo)5;p8x2dbÒ!s!0!F~3dTJ[l'0pH۷n;Cnog |s6APJ| | ^r_s8ɥzGdOAlx X_@ of=&|$NIENDB`phatch-0.2.7/images/phatch.png0000644000000000000000000010714711346363116016165 0ustar rootroot00000000000000PNG  IHDRxsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDATxw|16SM5ʹ@B -c066-&` ۸b0^Z $L\q$jN|Vuhwf<33s  v (>$ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  B    $ "  ]ͫJ-Ӕ@MS16[bo+'ƒ0ιu _3o޼C7mxk̎:XOVX! 7x#0D @Y0o޼v@0|VL.`7޸۽+$B`޼y4Ʊ | `p\A^&$2o޼}  7 ǏuVA w͠IZ ?nFQDH%w-8VJ)-ރ.M7\ADIpw i3_ XxM7V J o뮻L|] 릛n!@'tt>-f %;&LB뮻C`A֨P̊.^0aC9N0~WwkD &Lg!@x;s#\ !<@&x o׈ Jy\2[X,Xs?׸]pDѹ;CгG8sil^W$ ]  $1w/lR1[6@No7<o喆W < ̝; zLw:!S#AVbP*PJ(%R!P*!UkP)Gcaģ 4պqO}}oy[w2QhHaܹ\ *^[Iϩ1rZE65hѦ-ԢE~ VXC5Zf{DiPj-F>'!{[neە!B@+swSP29sR :[0~Sc2jgMICA'DIAh6sa~\NQHg〡c1ޚciu`7~Ec^g'NH!@49sC_yM4;c~~.7w>D@ 8qr+CM3gn z}b7[i;v1čjk:&Xd'g,&97?oV6R!f-\&m]8M94cU$I` B|9JP}S|ww [o5Q@@4ٳˠgH~voUU18`gΜ )&M_s 3k֬IмPUXLHE}>Lg̜99S'Mբ@ ̚5 t[T\w%qb1b1 bH$ F\K{Ν9s|&M)#DC ̜9wػw{̂yH'tBUu r#0`8 g̘73&OZ@9s~pu;vP5Q? f(Q )Θ1A&O:% 0s*ӡg#.Wà!ԢijLl*EK\`30s;\Q(qf̘y?(+Q/ԍP#<H(e{n.>}DL2[=$J3ftp?ݮKSh n-\/Z[U/NzJY8CL>)S|vҁ@ 2cƌKjd [# 49Cݜ?ϧCviQۦ@y ~_fލBzs+Ap(OO(SLvC>}Fw}k~o[0G`j=EmRCvÙHwv7̍Fe,Z?8Oݟo !<0K@ iӦϷ~{"J%+ɚt!ubס>>yhl^"A4b&ᰀ> /ӹ0/aO =ҧķ x{-t=a%tߨiӦ]w/p>O>|6dxnQ.Y}]wK{lttߙ>+N1kX(,8JpwWy;UonrK3mڴgMە!}8,lrc TH5^{_Kd~x h U;еftk.fߪ!c-nI[c{[!JlQMw2o-3Gfkk-:ujUE>aڴi2)&! /1GDqE^rCl^1xM3 9(:^N7[ѢMCn ;aN`L,i@Sa:~'~G>X çmSԺ6wV_`;MV[~:ujwO84t#@9"-`%ux1>u6Xٙ<܄}kz"r7eXXjlm`T7iow?xTGO&WL?mڴgܮ-HxS ahQ'MТjm4{"`eQ0@zkGEnTZW神~`6XM[TX]r+2M4' [4?L>}`_W#M6;+BxeԩewW$2p!"j\`˪Ύ#{m@#]oh bGsck:?Elr8gcW=Sf2B NSOs>ې ~>^uib4. Jj\‡O2jo-wn~e~ض}!4 [&Aǒ JBçO!܃ǸO nץ94@׹:~`uEals1{-^~ش3i[',-h~X6N>p,$<;B4'a:܈/\{8WvN1"ՃW?u]TJgProuwb VXo^A9 ^pٌW]S^g~?U&_e죌 5.bӊN)aݷaSAUEO)A^R :qIQǏ{'3f'ѿ nf̘! 2eJ7CݮK>d[݅x/%|!ظ\ tmRq K?X9 \\/N(rƌp "SL9 :]\Hd2p0TTbW>|\.% Aݮ2|SwBSsQEoɊop̙3_v2D 'O O.ŻW|((.w=׷K'O#0n̙ܮQHɓ'Kpu?:CN1vCGvkk@FX ಙ3g.p"D!PD&O8ݮK.dj"q%󾛋TSpfώrhHI tS Yfֻ]"(&Mn=}KqefaПv%%<–5UxJ"rKf͚@4iR;ov]Ecƿc 8rB ҏ9(q# Gb錱ٳf͢,ZӶDr-7(kC]HƟ}\nAUդX/1T%[om߂(r~,@uqi^Yk>R0Mb sس1)0?@Wp'̞=nWh$ ĉ$ ݮK>Ei8琟\%AdfƖ_a$)i("g\qw<_Az'2^tqUՠ*XC˵$XuW|A|/ ygϾý!g&N\|tw\KqԊ]8w!pw?7_V~O/9lΜ9/]";H䑉'aݏLWUÐsmp%XEϤȴyfϞMC OL86LQ(_UŠj1qwu(#Bx||,E(e9)ܜX"\8gnWH fr1HG}~==iQFxX,Q8f;b'p'ҏ#AQB I 5M;;ΐh_~ysv] (YxxhX FpҨU8[~D"aB!B @a&S9fܹ]"M뮫hٲ3~v] M:a4ECCC7jݮ>A=qo}-"ڌ'|t Ν;'vEMnD"8K픦[W.ξ~+9<./U"2D"^@ n Y<?w޼yPG(lBs 7 #pUεEAkn?]΁g+aj<1uZMoZ xѿb8s}AN_n/yI=@sJyMnr<Ț1cD^C%Hc@1___,kXFNz&iN8p<6S/)IwYY%Cp8mD@uuu#?v"AYpYgmT=9?)ۿ9m7\&gmq,x1z~8ȴ~&Z4\8:s-OǏc}y]/m%Kr$ ;/Dk?s<<yZ͸oc{d{m_ҟ1o9cM0aQ\t&YEJɣ~܄!၉Q\(*+\\[ ͣv}̹eN~K+M74yEuHc؜Ji[4@c c `1 Zbb1 җ c?Lʉm5]X +QW#\Pޒ~lZB2RWo{+h%س-8RzC7>k hcA#8a'qiիBdbvo?]X\gis=ߺ]REq^1nË/K(|l %I{}D@~ `]OYеsX(`_%0](caɪqóc642e=Igx~p28?ξ g.Gܟ^}xAct{ IDATA8#HG@7c_r=$?-clܸqEy@/uҹ.Usc.̟[M?.Ycs&y5Vjܭ^㜣#7ae|艉5Ϗv۷ ÖR6>?iƫx 4:֯Tq5X񭖲Ќا+ X 5aI t05A_W3Z[ >CPttƿ@vxO￟h&16vUo8dwS:#$DO8_pypZMn|~ \]=S XDbw1; 1 0Ͽ=ޟثX: Pr+>4 뗴1~>$__XvELKni\ߒ))оH}ȑ=?!\ xlF Y6 n\ӟҊ߰C.4h1~SL]|I8._?uKx얽KZӴQ^@🟯wFS7FHI$YV Zʸǀ&IN#JجivX,$1Ś%~ A7}-]ICso q wG!IqƝ{D@?1:J~#\W'OS(@ hݻe-ԢԱ9q=Xf1a=pZv6`$~cop.[o@jt5߷w+(JH+?@D9w}Oȍxc췿m/$q')AX!Bc*]`q+WT`;8\dF_ekx\ Ue4 뗫Z\rwo֢K:l_[89F"ܒ1'{bܸcsId{s31cǎm!\Rx9ƴ6 v >u#r3sF#V ˒(_Nf-@\j60im_QWx,'(٥auex_YiWIcf7cl(y`PVV(v= G6ؾoBEe7M?izw2uB W6 efdT(JnK7n\G1?ܮ)cO0,fW~]qzpL9#͈?'+Hn%@o's(*P=oԈ!ӏxKyhݞch.u'Ovտt+h x}׽h"%+ ?nܸSc@'6h{oĉ}SW5`yH^4"Rv/]443t^y6Th<_sLy ]<%4(Xe C(٘׭[7^P)$LI ؓgO>5<琟==x~)~w.q_64"@\ H4H5WSu bB=Gk~Pp#yD5t>X'1锑<ȃnݺ]r%0b$R)9`1cƶe%mkI#-nW'-CRtB8Jt;4 _ѲHII4 {c&nB34ˬ?q5޽3V~=)B)T"W|fFϫj0Ƣ$x6~ᬬ,(]bvǢ5'bƼtl{RV#)~Ș[1L{ 1RY%% 1p.%,M~= ~Oqt z7܉jP2oJK1jZjxꤝYY/׌z&%% 9Vq(-ٗL=i*>t :sZj,E\J7 3GcQf^̝ ߘ|Cѵ'C}9>h~xUtI>Ń9e˖5jԙZ:%#u4Ӛ>r!tZtӓg?صEe;ș"@I)oXǺON&η=٧b1}-QЛŦG9a{߿ &AX+b,k9yC 9zd"P"Lv_0VL>G^mڦ5=?;̣͑~$v#Igi|D=Oj kǺe8Sm÷o4)& c̞0@9=@QB3DƠ_ k S_ ѴL{pKl:= 1s|V{R34eb9fQ'OPA͠m(Т% b\E@0MTݱcc 0FW_}uoؽޥ,ע z|lΗ(6oLC2YΈ囉ra.a TO(9T'(oi {6|[hp\='[,'Eꠉ_ }eI9ZNrmmDc,?ۥvO1M^ߘ%ƪy$ f\HbBYjhL. ïܺpY**ZD~۰Ne).`dd'#[mI#Icƌ[$; u: Y R}@UhپSRWͫBƚd=;4/wP3dTiyq0mSqP_k8w^@~ۓX(&I:atSYgA)J;e?cƌ91SPDhܖ ƥֱk9Ҁ]Mg bÙxz{o3 7s"qh0Ѡn}i S<+=+>jEQ+g\;LQ8duk+%6!`^[GX tGdpJ =dY~+<6(3r-Ow-9%<@1 ٱXT7ɏnoN31Ǚ u~puEwkɸ$qȲ&:C4DhXE }I9r҂|Oc'κ qzXLoncwnA1 .$D/'} .z?>! RYU5Yp Ny!H#F+Uy +`R_t#UV|d۷ftN 5$ɐe3S5({NTȲ[U{Vp+ko%IS=>ǖWpJt+a Ex{7Di؎G2ɐC23oK/Af8J'AQ0PU%?ZRDBX D!)h83871D8ꪫ 7KnS9\CY2}{/觏B?q):FbH- z8e!2_S<­vvsL @ Ŧ2L=rN׮]>C.O\Ò3fl?Y:݉|8:j}fve-$Y+}OWDJ7Rybv$ieSl^ֵu+0@r7vol}1%ca#o]J\z~0Xi7MH/wZtJH\/$mUָQ//|/N3i gLr4G( Rɢ=6PA<"Wu"P4*_5f̘9ug<)ē[UU5 AŮ۝(žR~ WvYP*4 b?- _G|X!E,)' SXmMmr62vwof1a̘1 \C97S8 y#o8 Ș&# >QcOJ>Je9Љ0h?Hz@ׄs*Y֟@?%X='"f(Ѕ@ ؏ö1m+w?_p< ÌWSiq'.ՖX% */dž3 oօob S8Sb>ŮM!ԤP zx0oѣ{<0@b}?bs;!eUU!b(,IH`_G,zG/l4#(7c2Щgi/ $0sHĐn8^g c=0z|iz<#D5zrn{d۶цuV#`P2xrjcgncxDLk#8^YeN{qaA).0@P)!QFo}DB$GOɍf@uW*y(q&.#JݥX'@ ^EmmE! P1箸<0+x^mbGOCT8J=PDŽ5??R/q+ # !Z'|[޿$( Xץ$#G#'u.|d[BMU r]n zuxU %(3f5%fqgYI p`?I!O~#.l#1<{#QcpX'="G*s9LR?OG Cϟ{=1?x<=zьaW/QGC1Gs&W) zo5P馵NIQ6T ˺ cKd? kӦCF "5 =󢭳Z2q_4/,`wIFʞ y!qLo BѾRQ=|B_Iw~`WZM-\vUUxsOOaowzV-2c?{<ڍVjI0 @%\^Cߌ$Kp)T&yŚGy!"̜#GIbnd,d]HCf+xId>_wIAp9wWi>n_w cȑla-Es9Gku맏Rb kICoPkXnR+u3ę8 A \8jcJaqd( 93$+' 㥿K"r V7?n"{$tɔ2Zy͈|?FKIb1{lBEK+=bpI3QK'g)m*T12՜Qg1hX mՒ?kzDXڔ̕.,>|^EsC8Gb}Ȝpߘb Hci@ƭ!=NF͞D)0TuPێ@y⥌G(Js9^x>JGf]wgץh0c>28Zuj@ݖ`}A '& -I*4|[Bj%~ڂı[~%7f% 05x( Rx" 0B k%=N!CWn".wϾ[ݞZ.˓;ݺXt9~]%p4쑋$wܥM=~b*5f; [3Fk ‘eBgx4\Fp7)sog/$N3?Zi2H'.tcܬHA_veB~W)Ft}݈b|צpHLt[[Pi Yu6ns8xg Ȯ͡-xnBQ2'$W.ϟ-/@BiƤ;EjfM$/l_Y.v2TVPٵ ]B3q݉v9KQB?Z P0`w* }ū-)-ưkN1[< L4I$aO#]u6?ݐM!} )6r~Kaڵ`P| Cj)<"͕vnT\?(]0-q.incI^n@ _HhU`P*S_Y-xK/eb (o6!~U̵vm fB"}v``cV/.'Eb*n<nՀ=w]ݢ{b[l*u[OÇ_A15n/'-)L㦤GB6< Ob]i@SII1]ߊV(yvnJS$uOf=ŗ ?5 :B!Go3ŠFC~*.Ӹw*I ! %oncI1lXʰ{ku-fȟѢc fNݞEߩk\% k˙ޏ$KJ}XȄ(Mz%jԲPB0Iݾyx|A׿~d)79YNʂөMI2&aǀ:S0IC_.xm IDATK9eea+ny[ŶlڻwvQ` RYuV/e(‹dKN.d||v0Ȯ!6}VqKV߸Iɲq#Sir %j@9>8t5//_t *a0b@3Ní`~S/>Սq$}nh*>$ _@nFM2 B;Y;̳B $I-r%ˮHrvO&G=F\%9$ɼÅ HD37 !CH@ X#}dlNZ5@-R_|OnRձfыP +sG#M3 |㩿leyNhiNt=vme`, hJJMUUCN .Lh.I23P?ʲF$ŋWx\uE+`$O ,!;6nH#)an3D`2ſQU1,XFG sR|C1bP@E}N_0MS%%Yq0!aQ8Xk^2t>.𢯟z"%.hV+h,yC 'ܺ ^Fш34MK|VG_u,dEZt>`yͻ8O35MEСfOv=;V~I~&Ő ~:Pѿ0r3E?g.X$;!=ܮ|}h>=LIn0X:߾$I'o`֤$3CZOӭguAPUݠMˁ[ɀeؼ 0սAs񷆨fkG3~έwoMN夡6F{90gfr^' ? < ?^Կم^t,_62D:rF\>b@0(wCΩIxsӡ`GAB&N$2%8 t>p5M#c+qi$]p 8İA' ا ?\7#14G r#@3W& ̣5 INQ x>4 q]ac@ .rMw7Xɛa|P@6d߷ XqO-k79jg;r>{ey&}|q\xᅟ?S7$RGͭL.PJ5m&41#+;IbELӓfRcga{rkQf$nIvfna Hӳ[^'/io] d]z «al;{ , I>{{ܳzb1lĎ8_~1v`_˽koW$]F~(J&퉋dZ ӬCX3ECku<`T(3`w] .+e7ֹ67;O3cfBBѐ(zr*xoJA^w,U:N3hZXl'B)AW|W4"omP(P(p84f8*DYT@P:fRd,kqpί~T<NPH7Bslƌ< ugH"PtS 8"1h'ce c/ $ƄK# ;<8\?|TKamqįRS?g޷ػ},xg7s rvMr"_yNIyfF[ GQH}b"-<ۣ~?SKn'1_A?XX(: 6Fa!BV/u# fୟiN32S[#j׮G1 7/@F[W?"%oaj/>2B5;7 _-Xg/жf0}(-C'QwΈB cK>緰,c.߫Gmm^ba]ߘi#>C! EAlA[n|NG迺}jVوqyK6%y?^[6`P޿H QmD1_;ixmjcTtnFdr!7P='@ 4fۂF~~7.s~>G5(88G_*)0/Yƴ7kw@cEEKZ[GXu;|2NFDZQ~?%qcm)#}H7=AcGOV8evXGљy)'Yo=c_69Q$I74o]NNl\DB}f,gZ@H!=Nd8v^,44.CaЈܪbl[+c{j/Vjn#NZ4xb( BJrF@6FC?|-K i4h&iab@*b1#`cF,IîَϪ)8[u҆}}V$N]YR΋Zc-SF@hnc-^!7b/e=߅ik@ˤ1nNR!T&TicĝuYG[nnlQNۦ8 81Bj1h4kQrGu+e2B.k?{y=itv ;v\5$E"Fn:!b@ Q{r7Npz`;h@02Lj\;ݏ][IBMȘ6غwQ  B@NʡCƟ:tpZ\H[%eKVUeHU_գ 8 uº!^Jd*6 ?0%-CK'oglZF(gxSsmsDNt֑w t R=?\po^pV~Jx[g&/QL@̲0 m=~Bƚw{nz4t<`VðS_A&",+zEINsog2xDшsΏy>1^)3ά*//_W/kNS 㟺.! ~=u'A ~{6 ֥` K>Mǜs=O- s9>e'i!<+ ۽EG/) ݬ\H j2`$aJ$@Y={>v16 wE͆Xe9MGѢ,?ؼ2$INSSSW#/W(\ 5(g KVprZLHJT!@a˽L.AKP}4*]nع=*Aa gwaZWoE~ЮzUi܍'2TbI6~/$kZ͖gxdc)YgB`L:f.4p,9 bӶۋ+'^¶%uq7l_ jTɓۙC G۾ NCk?N˲LX͗ Qnhs~ /0 /@Bt̵ o8s',8: J^=[Znk+mmm-CmPFdH 9֋RCYU-ՠıL|p1e#5'Mls'w.TU_z7 b]bA~^Z 5Ay?]ߣD8Ne-ޞee0NUq2s!x7Y+yes4=^4AoTQ1 Иa'PQږ>lݹtL91?uW l( Ư{)ؾ`Vs2xD!PSSs֛o{e%w"%)} `H$@FCuy`39+4hjT‡{`?Q{o4u]RnsnNsaj^uRi)EzŚABJ/cE5xDh4z?|Fa%ÑqdžÑA" k& T@cWKݭ(8Ԩ/: ) " o4Mbͣ>Ho @`)vDP6p[EWK\%dԨ/>(!Wj$J9Fڹsg7J:cOػؾy}'Kkc~DYE#cʎ{ǷH9i۶׼{Pa5Dh,/cRtcgcG n}̣2P2>tE<‰X,_/vڝ0]p#& N8!أGxC,gNi%\Cd CcE'DMseǎ,X*_4*Lu@6x,.%EQSN6) @(o$?G1˰id oOЀ+okÆ a};2%M!CҾ}c;w{Ɵod|S#DTUqݺuӾ/j?S c@>, Nϩg(ǹMq,?nR8a裏o@f0D HO 6I2)>X,Z)%2c[hIqَ'VJ\G*YIEȊi%Z-aQdd )$EA;cowcwzz{zwTMuO|]4ϛ@(####s>>όtBG OG\rٵpN>=FkVu ob~wĉO?~[Io"i_'23,_n? ͂}hQ[&ZnkЃ?O[PB r p_>|qTb,}@H1_UOTWr,2Fgmo bR2lT,./oufOT?BՇz`|hѷy~ף]z)â/~ĢWY6et[D'SUzpF8yAWq當C~]?)F!m#Dq@ғu|6n]v߶Ↄސw @0 թ&cTKbDw>[Dg#2#G>lď;Ч 7l(r_4Pk*TTcw hlCGe2l(j}nn&"klll;۸m=!.CgDM\ץ_J*߽=#E}DuSERV.}Oms׶~J?*=J'/.a@e'n!x u39r뺤$7?)d@$6o2 P{U^5ug߾}wj~qG' s9{6Zn`nI~&ApWR5ib'ҝT;,\:O_65cf!nџbA@@-2WrmuՑ#~S7~2zt< y4(; ײ,/߰m{3G~S@@0A@N$D܎ ]@+}nwdO=ohpa蛟GlrV䘪 Vt?sy>_UBwuݳsssIŸGu@50Y)X^f @!PYEDM6=@@a իŧw ϛZDVsf>}TM?d1"3@dnFDbo{w*m`8ߊE|ve.oҎ벛&O{etw Oxt>ڷ!GA}̦"gUnL0OVţ_Hߗ4zN|7 ᳁ҥ IDAT(ūAwmPU5oON}رcߧ&ZY4ܟJ`,&$ kpp~4>>eYU0rEL[x{nQ&-D_P~ʵ zUTep|C>vG7Ctōq[D'Xt[M-|638&6`>G&yk4R 7ĿRH c?"x|o-//{Ӥ$7mM?"ySHX/߾M944D tQ@ q#tRӟuFpW*ԾO ğ-b|?x޻:/EǟGߵՠX0"s#~x1/ }Qd&k޻MY ^T?ǂw;sϽ _^\\\TubR $ T"O@茀nl@C 57|ˁ+kڍȢDL Ab$u0Q3o]y?!7N豏V:;ğ+jڊ#qMqi4o'IO|PxJ Oг<G؅vƦ`K>+#|^n ۷oJre}A_OJ?φ|m-T|_=FOv!~{}6㿶bC'zõN_*C&axDN+@Z^eFh+^ 7j<~KvhE=_k&-Tc^e|4H,+?uuٙϽ ϒ$IH@/&@ [2#>/\f̀ǫn5oٲe˻mުw8.|HUNgCcxEo5~@yJ 9 Fxz 67 4}{װ(֟`T1B$F<,`ޖeX|A{^cdÿWK ;nP_g&V}O|߻SN=v̙=/_+0sĤ_4o uG8gyzm??>>˲F#=BgTrqaZe[=6~Bo&虎jk2GFDhn/kuD?{A-ۊ~}y?:Ȓ:umA;w=!z5gl_ԈȢJ"7?/ov?chZ.\/xhRv7,_ş(a @dA|^6@6}qItP N6o68 l_νb_pxяh_u|X~@."6_[u??tp-f'~yUH]HoL|MPy(~Ո1WWVV99yї_~+&,bz~J tQ$yL"b@RD""… Ν;? 7kxẍ́G #"GTQ[_! yOD;‹y| eO6 u~"7&eym%w0 >>A bvkOk׍"#F|dߛ }~@7랝a~~^O/՟FIb>,8`%إ423#yR4|S6LOOLOOΝ;yK1O~``Zxo-?Qyyx`y|@ Wϙ?/ůGۦ#e}𛇿Ǚ=W@<7o)>yS=z!?xLJee&}QIN|Xcjn/H22`II&}6ضm_pÍ0::V˲̎LI!vRp` ܾ#]% ܱϘo{8d|ߵ//"Tdnm K?^QoT\Z \%|"ˆ?O4{N|߉Tb?[e _>qG_9. }ҔGuJ2r1pJpwU/[&ynil޼o6mz 1x^*&vku#ԣ-BQt+m/M bg2z2h(z2Ze"x@42#ߕߝ:}_7^}տ{jZ<DUl_d))‚Q߭1DQ ?]1eP&0#p;7mrabd|*m"E8MB &* n "kaaO=422ٛo_m[ ` GeרB]x[XE(xX8˷6>4/a$ }>"R֯>܆o?ӇD>>X.?_t<"h?-NYY']!! =ﯬrͷeom_{x1Uno y3 b#^BáMG>0lПKl7 [I-~U:V1X VN# 7;;fŋz'WVVVI-*QՉo~R]m7iR]>,3 -C@h/ĥi *`s/#"F} ZKcoڼyU 4$u.^Jbe앮Bomwvx_{Т""D X ~#*2W9;=űܬȶ0iLDӧ>333MrQ41IE~TM'*X5((ḱ]4@4j{"7x;4HwO^twݾ+F"V4/c%Fry! E/x۶._El$.VtF- >i`~[칯Kc\UFܧg*U/yvz+7 ]D-`A H?_&Dʎ;vرcܹs{[,͸U$/ZDD0{]_X/4d۫ڇ63(] K~.v^Tq+>ոC5:!^:. 4IY]|I7]JԮ=ݸ,&@y""zzzjzzO4>>j[662o\/0oMc>/(/h]<pSZ¶+4O0OU*X~ofuLAؿxq...>y+CDɂ/'My~O|^ ?M1@0)4ޔȺ C=FD_ڷo۷WwRWU!=QaUP@e,U~ubm"3%XSIH6} R>~{uу8㼼ٳONMMm˄P'0F%p \=yA6& v"V l:z衣G˯o*ჅB;(?r5E';|mx~t=.Xˏ5KoxcgEb0$k8Ή'&'>199y]l"|t2g*} ?g/I%\E/&LuojD# mS ED73oT*WiyC_yA5Q@L˩H:E3]~ȷՒ6 X , `8'zٳg(L9PWV6>R1/+@z;l^Q Mk@1ETA:eYݻm۶?88xeYW&??.q]ғSSO={4P&d:?-$/3շ)P}F7& m* F q}=~Ǐ}Zmn d¬$?W-AD0C#з0?z>өSczY]\B饥'8s)J'|>I\MZIYهs $`ҲU@e Ҙť#GtW޵k?m@sLZbwlz='k@.X~?fY#q ` :o^N qN,//{ffW^y$% x&MY| R1/+TV?l"@oDYW -ɧMUef@jz 7޵e˖^KkRߤcAz`\!qbi|E4I;[4ӡ+\rGwT+gх6] -hqN+ɦ:jUjTV;odV=I:jj6[-..|ܹs3M|)"~0 C# ˋ"M'QOcҘFg֭[f6m L$iO-jt]!u;i`ĥQ}oB~u QkjQAjV,jZ'A5 u$ yH@䯻m~,/PP?o|T; Lk!/:uqdi'k~V`Onc eaE !}g9X>E`j ]w^Ʋe_k&%:v"]Ly?I^|N#}YX?|ojj/FwȾ '6#''>5777ǪRVrɴ%!R ?o Qh?KӘ,F#޽uccc;z}Ka[9M@t=/4;;wS/quyDϋb*ܤ} ?ub|p&L&F 05سNL700xeY#CLn+ *S-y?4LY׀h4yk#2k1IDZDZy'%]^6\ObiȺ2D⼉vT(`j"i^]{&&6788xBfāȳH(bqLiQD[W(uӍFȥK9sK.qI–d~/$mȎ|rd ֝`*S`bkVs7owhh˲ @h R$ÿ Q 7 q@Z^100>y"EDFL"Jb޽͛7144tZh#vLNDW@ yo,<ϻl6,--9233=EFUn /n[~%/1+ *ֻ dFPo--zA>nD"vJ:-&"qv   qSf.ztrry$dL_%nIV'\5h gREn,с" @hj5ybbu\',E)4|/>( G l\Ku.ZF‹SSǖVȬUjڲMHz|󺲰r# _6`,SZC3i& (Ӊ]dǣ߱cMF j7Z5BM tr7-P/e2w։Kff_pv?~SGO+c* +$n)`hX^%YL@^/aB:s#;:c[e]qWoٲuzZnoBgTU,XF2Dž]%e9l6O6N...8wnK l#)E>O#4&&1 0 0|D0MDTȋ$mj>M ڵM jlB Ieu"PFjN\ZZ:Oro#2{~D >*~#[d{e˨dIe4¿ AbL/gIqQW =D$L|y@R}uuf&yUܴ>u-rS!b%Eg͛IeBKi,f@Vd|F Iy]&Ӗʳ.WiNrݲE8&o"f*+5 i/OjO[_².k4,)Y@4T*ӕw =(ZJMEym1>M*Ӗ;`zH|H3,S'm[4K^6,2EbrS-y>oZZ^L^W_X Qv35ݞW%m[4LͫtiIKVHLۺ7M4|YȳoIebd><Dcd **"B +*ycm&iRi^6*3D_VV),|]yt!ņOrT@ϒ.]jrY&IiI- @Q"B&#MTUeB  @f@VE)ED̫ʲ,(ЍֿjAQ"KT&' >7|Z5 EILiԧ%vQgMLMUeN5E:e։|ڲ4IE퉛F8'0b,[T >>ԥ)ӕąHXM _ڲNMTe2$y[|/.o!gM4e&uqq l rYyfit4eiM""_Q(;t4uiL bRAe5|>o!m]Ri>NU+&iE&ꊊt^̧3O*O/ 8 @ X3 gJHЧ SElnDzOS'Wʓ d`TuIe݈n|Z1<"BIl2]yR]|a\A(1)Q@bL+" 7C@V^|7̧)ӕ?20RYŻ﷖H2[fRgR.`Rz`TEpk%Ig=y5`ZVi[+O3]'D 6"B7Zv0=ɻ5`0oYSfp} HMC@S*S<.rYHsrMݐ{ԛ..`r%CL7 C6ϺlZҞy躼B^DCA\@:NFC@TL', 'In': u'_phatch/', 'JPEG Quality': u'85', 'JPEG Size Maximum': '0kb', 'JPEG Size Tolerance': '5%', 'PNG Optimize': u'false', 'Resolution': u'', 'TIFF Compression': u'', '__enabled__': u'true'}, 'label': 'Save'}], 'description': u'Describe here the action list.'}phatch-0.2.7/images/source/igor/0000755000000000000000000000000011346363116016436 5ustar rootroot00000000000000phatch-0.2.7/images/source/igor/autoContrast.svg0000755000000000000000000023500411346363116021654 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/background.svg0000644000000000000000000011112111346363116021273 0ustar rootroot00000000000000 image/svg+xml Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/igor/border.svg0000755000000000000000000011430011346363116020436 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/brightness.svg0000644000000000000000000004402411346363116021333 0ustar rootroot00000000000000 image/svg+xml Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/igor/canvas.svg0000755000000000000000000010612511346363116020442 0ustar rootroot00000000000000 image/svg+xml Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/igor/colorToAlpha.svg0000755000000000000000000016641511346363116021566 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/colorize.svg0000644000000000000000000007714111346363116021017 0ustar rootroot00000000000000 image/svg+xml Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/igor/contrast.svg0000755000000000000000000022347011346363116021027 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/convert.svg0000755000000000000000000006627711346363116020664 0ustar rootroot00000000000000 image/svg+xml Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be www.stani.be Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) phatch-0.2.7/images/source/igor/copy.svg0000644000000000000000000010276211346363116020141 0ustar rootroot00000000000000 image/svg+xml Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/igor/deleteTag.svg0000644000000000000000000021261311346363116021062 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/desaturate.svg0000644000000000000000000011212511346363116021322 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/disable28x28.png0000644000000000000000000000155711346363116021273 0ustar rootroot00000000000000PNG  IHDRr ߔsRGBbKGD pHYs  tIME !uIDATHoU?vbمݶZHh+Ҫ=TE Hp%I0?ԗZ H[ժC$'P)8k}o8ālbGp:h}_G;܇>?2 ֓)ڳ9`[N :§Wퟎ `s6Ky(zcER>GU(paZ$ .qJgBEEjZke\L$ S;wvv1RPZ0TpOj3d}/J͒HE咃W-|hᣉ36|jׯ̦ h̲S]QXe,F\|mO<AD-L 4=UM@=Tp"D>S`.UgH½iA[^KC9k}V7 O GՑjeEnEj'~GIGFK=GL=IKHGMbgKNp.K\>"! B 07 $,HC"!A ZNdPl'h) As(*#78H^Ӄ]Nm%A,!E-&w``Da6x% O\5(8 / X䨮2zQ޷wE#p+iƔ rB>@ |0!ʀAX5B%2GɗXR0@.Mb$$ $02ל\gÀ@F*%A" ah$(Ts״F‚ubpDV $ O%'ʈdI^̓P&xA- H(bl"$ Mre R|iBڒf)-)Ӟb. ;phatch-0.2.7/images/source/igor/droplet.svg0000644000000000000000000023312211346363116020633 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/droplet_opaque.gif0000644000000000000000000000553511346363116022160 0ustar rootroot00000000000000GIF89a*.0./-37968559;:>@;?A=?<;@BBEAB@ACABDAAEGCEBBFHDFCGIFHK>IJHFM9JKIHMDJLJIP(qS/JTQbG6h)#A!'2HcK#_.#͘+]Ths̓)-SeCAS<*2)ͥutZ(SQUUYBŨ@_ц]u-X<+V-ʭx{uĶt[`A @uWi/8ˑ13l9sáCMӨS+>ZUװcU۸e_u,3 Nኍ+_{mmУ\X;A_`C56_vIlhk#(h&xn՝+bfv "-Dr[%y+T͋0(4h8樣J)#X=$L6PF)TJY:ʬbGp= 7Ϙdihl&+[F#pϛ|矀=siLg6ꨟhTI瞏f馑Fw\騤ꢥꪚӪjfja]ūrJ(V6h-hV vT)ZmrhߖfvNJ잉XD8,oyn٬"\pt*BS\-.)۰cbFA.4&L:2/u'33NJE3AGJ0Ee"˰S]|2[3%_gqr-u٥BdhN$ܚ,Tqmj҈޼fnU] MI{7^"}/gn>Rԗc~n9$B bx6 ,,AB EdÜtK }CXLj,aI)(!$m92~؃>0 $$DX pL`:B"@x>̡X<2LB )N7MAt0c`;y!8$€-CKg4\DB`;*ba  ҈Tg8J1r#Pf3P Ah  -UkEtˈC6A(5ʹT_edG$S"8 * [yDK?:ЍtK]VPE3P1D*`LAy4wR]T|Kͯ~ q c`&8(  aAp`M4'oh1Q [ΰ7{=rLƎF 4y1bw@Wp N 3+! 1*CP ᣖIљ%%B%B _ 4:Xib FL 2y[ =PB`s3ӑTDcuK3aΡqY3Yj,8*;@92@4hj@oӠV }HThC $`Z` 9q->0̩52UgXC H6a:q!IgfM "oz_;W 7`ͩ]࡮z ]-G͓(OW|s0Cf>*b̳psAMHy@;phatch-0.2.7/images/source/igor/droplet_opaque.svg0000644000000000000000000024072211346363116022211 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/equalise.svg0000755000000000000000000007701611346363116021005 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/highlite.svg0000644000000000000000000020053211346363116020756 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/imageMagic.svg0000755000000000000000000016212611346363116021215 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/invert.svg0000644000000000000000000014017411346363116020475 0ustar rootroot00000000000000 image/svg+xml Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be phatch-0.2.7/images/source/igor/perspective.svg0000755000000000000000000013410211346363116021514 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/phatch-actionlist.svg0000644000000000000000000030714611346363116022610 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/reflection.svg0000755000000000000000000011046211346363116021320 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/renameTag.svg0000644000000000000000000011422711346363116021071 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/rotate.svg0000644000000000000000000014140511346363116020462 0ustar rootroot00000000000000 image/svg+xml Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/igor/round.svg0000644000000000000000000010135311346363116020311 0ustar rootroot00000000000000 image/svg+xml Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/igor/saturation.svg0000644000000000000000000012414611346363116021360 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/igor/save.svg0000755000000000000000000006017311346363116020127 0ustar rootroot00000000000000 image/svg+xml Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/igor/saveTag.svg0000755000000000000000000015275311346363116020571 0ustar rootroot00000000000000 image/svg+xml TAG phatch-0.2.7/images/source/igor/scale.svg0000644000000000000000000006514311346363116020257 0ustar rootroot00000000000000 image/svg+xml Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/igor/solarize.svg0000644000000000000000000014717511346363116021026 0ustar rootroot00000000000000 image/svg+xml Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/igor/transpose.svg0000644000000000000000000004100611346363116021176 0ustar rootroot00000000000000 image/svg+xml Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be phatch-0.2.7/images/source/igor/watermark.svg0000644000000000000000000014354311346363116021166 0ustar rootroot00000000000000 image/svg+xml Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/igor/writeTag.svg0000755000000000000000000010707511346363116020762 0ustar rootroot00000000000000 image/svg+xml TAG phatch-0.2.7/images/source/nadia/0000755000000000000000000000000011346363116016552 5ustar rootroot00000000000000phatch-0.2.7/images/source/nadia/highlights/0000755000000000000000000000000011346363116020704 5ustar rootroot00000000000000phatch-0.2.7/images/source/nadia/highlights/curved.svg0000644000000000000000000001177211346363116022725 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/highlights/curved_down.svg0000644000000000000000000001305211346363116023745 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/highlights/curved_up.svg0000644000000000000000000001311611346363116023423 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/highlights/curved_up_contrast.svg0000644000000000000000000001362611346363116025346 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli (nadiana.com) Nadia Alramli (nadiana.com) www.stani.be specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/nadia/highlights/curved_up_smooth.svg0000644000000000000000000001177411346363116025024 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/highlights/heart.svg0000644000000000000000000001122711346363116022533 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli (nadiana.com) Nadia Alramli (nadiana.com) www.stani.be specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/nadia/highlights/metallic.svg0000644000000000000000000001065411346363116023225 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli (nadiana.com) Nadia Alramli (nadiana.com) www.stani.be specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/nadia/highlights/radial.svg0000644000000000000000000001215011346363116022660 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/highlights/rectangle_gradient.svg0000644000000000000000000001213511346363116025250 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/highlights/rectangle_top_rounded.svg0000644000000000000000000001252411346363116025777 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/highlights/shades.svg0000644000000000000000000000612211346363116022675 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/highlights/sphere_bottom.svg0000644000000000000000000003177111346363116024310 0ustar rootroot00000000000000 Etiquette Icons hash action computer icons theme Andy Fitzsimon Andy Fitzsimon Andy Fitzsimon image/svg+xml en phatch-0.2.7/images/source/nadia/highlights/sphere_middle.svg0000644000000000000000000001263511346363116024240 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli Nadia Alramli phatch-0.2.7/images/source/nadia/highlights/sphere_top.svg0000644000000000000000000001175611346363116023607 0ustar rootroot00000000000000 image/svg+xml specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be Nadia Alramli (nadiana.com) Nadia Alramli (nadiana.com) www.stani.be phatch-0.2.7/images/source/nadia/highlights/sphere_top_contrast.svg0000644000000000000000000003144611346363116025522 0ustar rootroot00000000000000 Etiquette Icons hash action computer icons theme Andy Fitzsimon Andy Fitzsimon Andy Fitzsimon image/svg+xml en phatch-0.2.7/images/source/nadia/masks/0000755000000000000000000000000011346363116017670 5ustar rootroot00000000000000phatch-0.2.7/images/source/nadia/masks/10_pointed_polygon.svg0000644000000000000000000000705111346363116024125 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/12_pointed_polygon-flat.svg0000644000000000000000000000717411346363116025061 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/12_pointed_polygon.svg0000644000000000000000000000716611346363116024136 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/12_pointed_round.svg0000644000000000000000000001114111346363116023562 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/12_pointed_round_inverted.svg0000644000000000000000000001116211346363116025465 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/13_pointed_polygon.svg0000644000000000000000000000725711346363116024140 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/13_pointed_round.svg0000644000000000000000000001132311346363116023565 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/13_pointed_round_inverted.svg0000644000000000000000000001134611346363116025472 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/14_pointed_blades.svg0000644000000000000000000001152011346363116023670 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/20_pointed_polygon.svg0000644000000000000000000001315311346363116024126 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/20_pointed_round1.svg0000644000000000000000000001314711346363116023652 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/7_pointed_round.svg0000644000000000000000000000775111346363116023522 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/7_pointed_round_star.svg0000644000000000000000000000775311346363116024555 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/7_pointed_star.svg0000644000000000000000000000663511346363116023344 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/8_pointed_polygon.svg0000644000000000000000000000670511346363116024061 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/9_pointed_polygon.svg0000644000000000000000000000677111346363116024065 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/cloud.svg0000644000000000000000000001132311346363116021517 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/daisy.svg0000644000000000000000000001152211346363116021523 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/shield.svg0000644000000000000000000000605011346363116021662 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/star.svg0000644000000000000000000000736611346363116021376 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/star_pointed.svg0000644000000000000000000000734411346363116023114 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/nadia/masks/star_round.svg0000644000000000000000000000735311346363116022601 0ustar rootroot00000000000000 image/svg+xml Nadia Alramli phatch-0.2.7/images/source/openclipart/0000755000000000000000000000000011346363116020016 5ustar rootroot00000000000000phatch-0.2.7/images/source/openclipart/abracadabra_jean_maurice_.svg0000644000000000000000000005735011346363116025615 0ustar rootroot00000000000000 Abracadabra festive entertainment musichall Licence art libre - copyleft Jean-Maurice Le Clech Licence art libre - copyleft image/svg+xml en phatch-0.2.7/images/source/openclipart/ampelfrau_matthew_gates_01.svg0000644000000000000000000003615411346363116025740 0ustar rootroot00000000000000 Ampelfrau roadtravel symbol stop traffic signal symbol girl man go stop pedestrian roadsign go pedestrian city europe Open Clip Art Library Matthew Gates Public Domain 2005-07-28 image/svg+xml en phatch-0.2.7/images/source/openclipart/ant.svg0000644000000000000000000010160211346363116021321 0ustar rootroot00000000000000 Etiquette Icons insect animal Andy Fitzsimon Andy Fitzsimon Andy Fitzsimon image/svg+xml en by Andrew FitzsimonRandom Ant phatch-0.2.7/images/source/openclipart/balloons-aj.svg0000644000000000000000000040775511346363116022762 0ustar rootroot00000000000000 balloons-aj balloons festive party recreation AJ Ashton AJ Ashton AJ Ashton image/svg+xml en phatch-0.2.7/images/source/openclipart/barretr_Pencil.svg0000755000000000000000000006231211346363116023501 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/openclipart/beachball_v0.1.svg0000644000000000000000000001604111346363116023202 0ustar rootroot00000000000000 toy recreation image/svg+xml en phatch-0.2.7/images/source/openclipart/bee1_mimooh_01.svg0000644000000000000000000010701511346363116023227 0ustar rootroot00000000000000 bee1 insect animal bee Open Clip Art Library mimooh mimooh image/svg+xml en phatch-0.2.7/images/source/openclipart/black_and_white_bishop_r.svg0000644000000000000000000003166711346363116025537 0ustar rootroot00000000000000 Black And White Bishops A pair of simple Bishops. bishop white black chess Open Clip Art Library Daniel Steele Daniel Steele 2006/06/09 image/svg+xml en phatch-0.2.7/images/source/openclipart/cross_hand_drawn_linda_k_02.svg0000644000000000000000000001141611346363116026042 0ustar rootroot00000000000000 Cross Hand Drawn This is a standard cross drawn by pen and converted to an SVG in inkscape with the new trace tool. office hash(0x8a393fc) christianity symbol hash(0x8a39378) hash(0x8a393cc) Linda Kim Linda Kim Linda Kim image/svg+xml en phatch-0.2.7/images/source/openclipart/dino_architetto_francesc_04.svg0000644000000000000000000017255011346363116026077 0ustar rootroot00000000000000 Dino architetto francesco rollandin dinosaur Open Clip Art Library Architetto Francesco Rollandin Architetto Francesco Rollandin image/svg+xml en phatch-0.2.7/images/source/openclipart/dolphin.svg0000644000000000000000000005564111346363116022207 0ustar rootroot00000000000000 Etiquette Icons hash computer icons stock theme Andy Fitzsimon Andy Fitzsimon Andy Fitzsimon image/svg+xml en DolphinCreated by Andrew Fitzsimon phatch-0.2.7/images/source/openclipart/don_t_panic__dan_gerhard_01.svg0000644000000000000000000017662411346363116026011 0ustar rootroot00000000000000 Don't Panic! Green creature from "Hitchhikers' Guide to the Galaxy" book covers (HGttG is a humorous science fiction story by Douglas Adams) face logos Open Clip Art Library Dan Gerhards Dan Gerhards September 2005 image/svg+xml en phatch-0.2.7/images/source/openclipart/fire-ball_benji_park_01.svg0000644000000000000000000003200111346363116025054 0ustar rootroot00000000000000 fire-ball comet fire shape Benji Park Benji Park Benji Park image/svg+xml en phatch-0.2.7/images/source/openclipart/house_juliane_krug_01.svg0000644000000000000000000001745211346363116024732 0ustar rootroot00000000000000 house house icon Open Clip Art Library Juliane Krug Juliane Krug image/svg+xml en phatch-0.2.7/images/source/openclipart/istogramma_architetto_fr_01.svg0000644000000000000000000002522211346363116026122 0ustar rootroot00000000000000 Istogramma unsorted Open Clip Art Library Architetto Francesco Rollandin Architetto Francesco Rollandin image/svg+xml en phatch-0.2.7/images/source/openclipart/item_rename.svg0000644000000000000000000001177311346363116023035 0ustar rootroot00000000000000 Part of the Flat Icon Collection (Wed Aug 25 23:29:46 2004) hash action computer icons theme Danny Allen Danny Allen Danny Allen image/svg+xml en phatch-0.2.7/images/source/openclipart/led_square_red.svg0000644000000000000000000002752311346363116023526 0ustar rootroot00000000000000 LED Square (Red) jean.victor.balin@gmail.com led shape Open Clip Art Library Jean-Victor Balin Jean-Victor Balin 2005-08-21 image/svg+xml en phatch-0.2.7/images/source/openclipart/noonespillow_Shiny_Orb.svg0000755000000000000000000001475011346363116025255 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/openclipart/paint_roller_wall_gerald_01.svg0000644000000000000000000073267311346363116026110 0ustar rootroot00000000000000 Paint Roller Wall Paint Roller Wall tool shape work Open Clip Art Library Gerald G. Gerald G. image/svg+xml en phatch-0.2.7/images/source/openclipart/rana03_architetto_france_01.svg0000644000000000000000000011753611346363116025704 0ustar rootroot00000000000000 Rana03 architetto francesco rollandin animal Open Clip Art Library Architetto Francesco Rollandin Architetto Francesco Rollandin image/svg+xml en phatch-0.2.7/images/source/openclipart/scissors.svg0000644000000000000000000006351011346363116022414 0ustar rootroot00000000000000 Etiquette Icons hash computer icons stock theme Andy Fitzsimon Andy Fitzsimon Andy Fitzsimon image/svg+xml en ScissorsCreated by Andrew Fitzsimon phatch-0.2.7/images/source/openclipart/shamrock_for_march_natha_01.svg0000644000000000000000000001543211346363116026046 0ustar rootroot00000000000000 Shamrock for March hash plant Nathan Eady Nathan Eady Nathan Eady image/svg+xml en phatch-0.2.7/images/source/openclipart/soda.svg0000644000000000000000000007064511346363116021501 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/openclipart/sole_ezechiele_01.svg0000644000000000000000000004557111346363116024032 0ustar rootroot00000000000000 sole Created with the Inkscape traffic weather signs_and_symbols Open Clip Art Library Ezechiele Ezechiele sabato 10 settembre 2005 image/svg+xml it phatch-0.2.7/images/source/openclipart/text.svg0000644000000000000000000002037211346363116021527 0ustar rootroot00000000000000 Part of the Flat Icon Collection (Wed Aug 25 23:29:46 2004) hash action computer icons theme Danny Allen Danny Allen Danny Allen image/svg+xml en phatch-0.2.7/images/source/openclipart/tux_clemente_01.svg0000644000000000000000000016207711346363116023550 0ustar rootroot00000000000000 tux penguin tux animal linux Open Clip Art Library clemente clemente image/svg+xml en phatch-0.2.7/images/source/other/0000755000000000000000000000000011346363116016617 5ustar rootroot00000000000000phatch-0.2.7/images/source/other/mirror.svg0000644000000000000000000012436511346363116020665 0ustar rootroot00000000000000 image/svg+xml Phatch Tile Icon Study Arielle B Cruz Public Domain 26 June 2009 phatch-0.2.7/images/source/phatch-logo.blend0000644000000000000000001107220411346363116020720 0ustar rootroot00000000000000BLENDER_v244REND T)SceneGLOB T) 0   SRx@  SR1-Animation ( h     DATA ( DATA( h  DATAh  ( DATA  h DATA (  DATA( h  DATAh  ( DATA  h DATA (  DATA( h  DATAh  ( DATA  h DATA (  DATA(  DATAh  ( h DATA  h   DATA @  ( ( DATA@   h h DATA И @ ( h DATAИ     DATA ` И h  DATA`     DATA  `  h DATA 8   ( DATA8    h DATA Ț 8  h DATAȚ   ( h DATA X Ț   DATAX   (  DATA  X   DATA 0    DATA0 x  ( ( DATAx  0 h ( DATA  x   DATA P   ( DATAP   ( ( DATA P  ( DATA 8  ( h  w  ؞  DATA؞  Link and MaterialsEditing>DATA  ؞ MeshEditingF>DATA   Anim settingsObject>DATA   DrawObjectF>DATA (  ConstraintsObject>DATA( 8  EffectsObjectDATA8 H ( HooksObjectF> DATAH X 8 Particle InteractionObject> DATAX h H SoftbodyObject> DATAh x X OutputRender>DATAx  h RenderRenderF>DATA  x AnimRender>DATA  FormatRender>DATA w 333?Z@DhCDhCC(BDC?z?DATAh y 333?Z/9DATA8 0  ( ( h h DATA0  8     =kd=o?  H x ( 8 DATA( 8 Transform PropertiesView3d>DATA8 ( 3D Viewport propertiesView3d>"DATAH rx 333?\????????=kd=o?*AQ*Ay?=kd=o??????*A%  B??7==C ???? DATAhx yH 333?\/9DATA  0   h  ??Pף  P    DATA Transform PropertiesIpo!>DATA( vp 333?]zC̽̌??zC@ #< #<`jFzD HC OBzC̽̌?DATAp z  333?]CC|||??l|DATA h p 333?]zCCHBC|||?CFC= ADATAxh }  333?]   =rttDATA | h 333?]?zDzDBCl||ll|zDzD=HB DATA   333?]BCBCl|llFzD #<HB DATA r  333?]??? ???? A???PA A!O?j?}GCHB? A%  B? #<C DATAh y 333?]/9DATA   (   h ,  (   DATA  Link and MaterialsEditing>DATA  MeshEditingF>DATA ` 333?_zCB{ µCB, ?BFB= ADATA` 0  333?_zCCHBC$?CFC= ADATA0 w( ` 333?_#DhC`DpJgChCC(BDC?z?DATAh( y0 333?_/9DATA  ( (  ( } ?=o?    DATA  Transform PropertiesView3d>DATA  3D Viewport propertiesView3d>"DATA zP 333?_DC>DC ?? DATA  ))8 DATA8 ) X (| z HO  %  HC  3 m HC HC p? 4 z p? p? ; 2 m ; ; z  3 m 3 3 m z m z DATAP r  333?_????????} ?=o?f?*A?} ?=o??????*A%  B??=C X7@X7@X7@? DATAh yP 333?_/9SRx 8 @ SR2-Model    H  +  DATA  DATA @  DATA@   DATA  @ DATA   DATA @  DATA@   DATA @ DATA   @ DATA P    DATAP     DATA  P   DATA (    DATA( p   @ DATAp  ( @  DATA  p @  DATA H   @ DATAH    DATA (*     ?@Pף " (  ! DATA  PreviewLamp>DATA   LampLampF>DATA   SpotLamp>DATA   Texture and InputLamp>DATA   Map ToLamp> DATA   PreviewMaterial>DATA   MaterialMaterialF>DATA   PreviewWorld>DATA   WorldWorldF>DATA (  Mist Stars PhysicsWorld>DATA( 8  Texture and InputWorld>8 DATA8 H ( Map ToWorld>DATAH X 8 OutputRender>DATAX h H RenderRenderF>DATAh x X AnimRender>DATAx  h FormatRender>DATA  x Link and MaterialsEditing>DATA   MeshEditingF>DATA   Mesh ToolsEditing>DATA   Mesh Tools 1Editing^>DATA   CameraEditingF>DATA   ShadersMaterial> DATA   TextureMaterial>DATA   Anim settingsObject>DATA   DrawObject>DATA (  ConstraintsObject>DATA( 8  ScriptlinksScript>DATA8 H ( EffectsObject DATAH X 8 Map InputMaterial> DATAX h H Map ToMaterial> DATAh x X AnimAnim>DATAx  h SoundSound>DATA  x ListenerSoundF>DATA   SequencerSound>DATA   ArmatureEditingF>DATA   RampsMaterialF> DATA   Mirror TranspMaterial>DATA   Mist / Stars / PhysicsWorld>DATA   Amb OccWorld> DATA   Shadow and SpotLamp>DATA    ModifiersEditingj>DATA  (   ShapesEditing> DATA(  8    MultiresEditing>DATA8  H  (  Render LayersRender>H DATAH  X  8  BakeRender>h DATAX  h H  YafRayRenderF>X DATAh x X  YafRay GIRenderF>X DATAx  h Links and PipelineMaterial>DATA  x SSSMaterial> DATA   NodesMaterialF>x DATA   PreviewTexture>DATA   TextureTextureF>DATA   ColorsTextureF> DATA   ImageTexture>DATA   Map ImageTexture>DATA   Anim and MovieTexture>DATA   Texture faceEditing>DATA (  UV CalculationEditing> DATA( 8  Radio RenderRadio>DATA8 H ( Radio ToolRadioF>DATAH X 8 BlendTexture>DATAX h H Object and LinksObjectF>DATAh x  X Curve and SurfaceEditingF>DATAx  ! h FontEditingDATA! x  CharEditing>x  DATAx" }@# 333?   =DATA@# w8$ " 333? DhC+H^DLQ|hCC(BDC?z?mDATA8$ rh' @# 333? ??? ???? A??@PA Aj?c3>}GCHB? A%  B? #<C DATAh' z( 8$ 333?   ??DATAh( yh' 333? /9DATA(*  +  @  @  DATA + (*  @   ?4i@AHM 8. 7 P P , (- DATA, (- Transform PropertiesView3daint Properties,>"DATA(- , View PropertiesView3dT>"DATA8. rh1 333? + ޕ/?W~'?4F:?>T8185e?3>m?/?ݕ/?5F:?81R~>65e?'?T1>rv@/bB{@? ?s''?4??T?$P@ l3]t@&,A/A*>>ǻR_={>"4ŒB7֟F2BkA&(@?4i@AHMޕ/?W~'?4F:?>T8185e?3>m?/?H?M+Z#Aj@%  B??:=C3:@OV@>+?SպX<????( DATA(h1 v2 8. 333? + zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATA2 zH5 h1 333? +  2 ??23 4 DATA,3 @4 EM@|A(| DATA,@4 4 3 BO`AHO DATA,4 4 @4 BOp=A% DATA,4 4 CS@ff DATAH5 (6 2 333? + ?zDzDBD22FzD #<HB DATA(6 w 7 H5 333? + DdC8CnD fCC(BDC?z?DATAh 7 y(6 333? + @7 OpenT FONT PICTURES//home/stani/sync/python/phatch/trunk/images/lender\Resources/phatch-logo.blendro0{SRx8 v  SR3-Materialodel Sing`9 ; ; ? @ n  DATA`9 9 DATA9 9 `9 DATA9  : 9 DATA : `: 9 DATA`: : : DATA: : `: DATA:  ; : DATA ; `; : DATA`; ; ; \DATA; `; \DATA; (< 9 9 DATA(< p< ; `9 : DATAp< < (< `9 `: DATA< = p< : : DATA= H= < `: : DATAH= = = 9 : DATA= = H= 9 ; DATA=  > = : ; DATA > h> = : ; DATAh> > > `: : DATA> > h> `: `; DATA> @? > : ; DATA@? ? > `; ; DATA? ? @? ; ; DATA? ? : `; DATA@ pc `9 `: : : ?@PףY a A pX DATAA  B OutputRender>DATA B 0C A RenderRenderF>DATA0C @D B AnimRender>DATA@D PE 0C FormatRender>DATAPE `F @D PreviewMaterial>DATA`F pG PE MaterialMaterialF>DATApG H `F RampsMaterialF>`F DATAH I pG ShadersMaterial>DATAI J H Mirror TranspMaterial>H DATAJ K I TextureMaterial>DATAK L J Map InputMaterial>J DATAL M K Map ToMaterial>J DATAM N L PreviewTexture>DATAN O M TextureTextureF>DATAO Q N ColorsTextureF>N DATAQ R O ImageTexture>DATAR  S Q Anim and MovieTexture>DATA S 0T R PreviewLamp>DATA0T @U S LampLampF>DATA@U PV 0T Shadow and SpotLamp>DATAPV `W @U Texture and InputLamp>DATA`W pX PV Map ToLamp>PV DATApX `W Map ImageTexture>DATA Y ~Y 333? DATAY wZ Y 333? DhCޫ DhCC(BDC?z?mDATAZ {[ Y 333? CC@ @>>P??DATA[ \ Z 333? ~CA~CA!?AFA= ADATA\ ] [ 333? zCCHBC ?CFC= ADATA] r` \ 333? ??? ???? A??@PA Aj?c3>}GCHB? A%  B? #<C DATA` za ] 333? @̌AR|B1@lA A@CC #<@DATAha y` 333? /9DATApc hd @ : 9 9 ; DATAhd n pc `; ; ; : l}>U>o?]]] pf m `e `e DATA`e PropertiesImage>"DATApf {g 333?  D D/ d:?}? q?!,ADATAg rj pf 333? nm?aC`A?>S??פ>\6 a?B>S\?|?om?>S?x`C@פ> a?`A?_6B>h@ ˨lԠ??4>FBV>)>:jټX>/\Մ> <?Vd?̸&@CDP6?@?a<B@h@˨lԠ??l}>U>o?nm?aC`A?>S??פ>\6 a?B>S\?|?C?#F$ľgI@%  B??<=Ch˨?kԠd^2?^2?^2?iFY?a?cz@? DATAj wk g 333? DdC>9C,DeCC(BDC?z?DATA(k vm j 333? zC AzC A #< #<`jFzD OBDATAhm yk 333? Save JPEGE/home/igor/Desktop/phatch_project/./text.pngblend DATAn hd `: : ; `; H'?1>o?[[[\ o (u DATAo rr 333? ??DD$?NϾ;|<<]˿?D$?%N%D??<]?>;|?ΤoH'?:ψxI $1>S!Or;>;?$?!8q%iG%z⤤y@y6<]?><|?H'?1>o???DD$?NϾ;|<<]˿??y@%  B?=<=C<]˿Ͼ;|<dg????@ DATAr ws o 333? DdC>9C,DeCC(BDC?z?DATA(s v(u r 333? zC AzC A #< #<`jFzD OBDATAh(u ys 333?  SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendSRxv H 8 SR4-Sequencehw z z  Ѐ   DATAhw w DATAw w hw DATAw (x w DATA(x hx w DATAhx x (x DATAx x hx DATAx (y x DATA(y hy x DATAhy y (y DATAy y hy DATAy (z y dDATA(z hz y dDATAhz z (z DATAz hz DATAz 0{ w w DATA0{ x{ z hw (x DATAx{ { 0{ hw hx DATA{ | x{ (x x DATA| P| { hx x DATAP| | | w x DATA| | P| w (y DATA| (} | x (y DATA(} p} | x hy DATAp} } (} (y y DATA} ~ p} hy y DATA~ H~ } hy y DATAH~ ~ ~ y y DATA~ ~ H~ x (z DATA~   ~ (y (z DATA  h ~ y (z DATAh   hx hz DATA  h hy hz DATA @  y z DATA@   x z DATA @ hz z DATAЀ  hw hx x (x   ȁ  DATAȁ ؂ OutputRender>DATA؂  ȁ RenderRenderF>DATA  ؂ AnimRender>DATA  FormatRender>DATA w 333?[DhCzlGDhCC(BDC?z?DATAh y 333?[/9DATA  Ѐ x w w (y DATA   hx hz z x 8=i>o?  X DATA H 333?Q~CB~CB ?BFB= ADATAH x(  333?QzCAzCA  A@FB= A DATA( rX H 333?Q????????8=i>o?fffAD&@??fffA%  B? #<C DATAhX y( 333?QAVE TARGA/t1.blend9DATA   y (z (y y 8=H>o?eee   DATA xȒ 333?.zCAzCA1||1 A@FB= A DATAȒ r  333?.????????8=H>o?fffA*@??fffA%  B? #<C DATAh yȒ 333?.AVE TARGA/t1.blend9DATA   hy x (z y 8=>o?cccd  DATA( v 333?B̽̌?B̽̌?## #< #<`jFzD SQB̽̌?DATA r  333?????????8=>o?fffA@??fffA%  B? #<C DATAh y 333?OAD FILE/9DATA  hz hy y z 8=i>o?  DATA x 333?ɚzCAzCA A@FB= A DATA r  333?ɚ????????8=i>o?fffAD&@??fffA%  B? #<C DATAh y 333?ɚAVE TARGA/t1.blend9SRxH v SR5-Scripting 0 p `  (  .DATA 0 DATA0 p  DATAp  0 DATA  p DATA 0  DATA0 p  DATAp  0 DATA  p DATA 0  DATA0  DATAp  0 p DATA  p 0 0 DATA H  p p DATAH   0 p DATA ة H   DATAة    0  DATA  h ة p  DATAh     DATA  h  0 DATA @    DATA@    0 DATA Ы @  0 DATAЫ    0 DATA ` Ы  0 DATA`   p DATA  0 0 p p DATA    0   D==o?    DATA  Transform PropertiesView3d>DATA  3D Viewport propertiesView3d>"DATA r 333?l????????D==o?A*Ay?D==o??????*A%  B??9==C slY@lY@lY@sL@(8M0>? DATAh y 333?l/9DATA (  0  p  ??Pף X  x x DATAx Transform PropertiesIpo!>DATAx }0 333?m  7 =DATA0 {X  333?mCCx??|?DATA(X v 0 333?mzC̽̌?zC@;; #< #<`jFzD OBzC̽̌?DATA z X 333?mCC|||??l|ػ  DATA,ػ 0 BO`AHO DATA,0  ػ BOp=A% DATA, 0 EMA(| DATA   333?mzCCHBC|||?CFC= ADATA |  333?m?zDzDBCl||ll|zDzD=HB DATA `  333?mBCBCl|llFzD #<HB DATA` r  333?m??? ???? A???PA A!O?j?}GCHB? A%  B? #<C DATAh y` 333?m/9DATA(     0 O    DATA  0 Link and MaterialsEditing>DATA0 @  MeshEditingF>DATA@ P 0 Anim settingsObject>DATAP ` @ DrawObjectF>DATA` p P ConstraintsObject>DATAp  ` EffectsObjectDATA  p HooksObjectF>P DATA   Particle InteractionObject>` DATA   SoftbodyObject>` DATA   OutputRender>DATA   RenderRenderF>DATA   AnimRender>DATA   FormatRender>DATA  ScriptlinksScript>DATA w 333?koChC۬D$bCC(BDC?z?DATAh y 333?ko/9SC pSCScenetageain% X x  0 f@m|.@IqIqIqIII= ( dd??< d Xdd Z ??  ???????o:?L=//backbufd:/linux/New Folder///ftype@&#@^@&^#D ( DATAx c Z!K DATA c x A3h] DATA cP  VY DATAP c  0) DATA c P & DATA c(   DATA( cp  R DATAp c (  DATA c p x DATA cH  P DATAH c   ` DATA c H  8" DATA c    ,(  DATA  ch   4 DATAh c   4 DATA c h % DATA c@  I DATA@ c   DATA c @ Sf DATA c   DATA c`  X DATA` c  80 DATA c ` n DATA c8  ` DATA8 c  Q DATA c 8 L DATA c  jh DATA cX  W@ DATAX c  60^ DATA c X @XZ DATA c0  !V DATA0 cx  @R DATAx c 0 < DATA c x  + DATA cP  !N DATAP c  " DATA c P # DATA c(  $` DATA( cp  %8 DATAp c ( &v DATA c p '  DATA cH  ( DATAH c  ) DATA c H *p DATA c   +H DATA  ch  , DATAh c  -! DATA c h .ZH) DATA c@  /0 DATA@ c  0 - DATA c @ 1m DATA c  2gy DATA c`  3"@u DATA` c  4G| DATA c ` 5JȀ DATA c8  6[Y DATA8 c  7CPP DATA c 8 8*Ihq DATA c  9TiX@ DATA cX  :TiH DATAX c  ;Ti0D DATA c X < K4 DATA c0  =P0 DATA0 cx  >Ph, DATAx c 0 ?$8 DATA c x @ : DATA cP  A5ؗ DATAP c  B5X( DATA c P CXx DATA c(  D.tXV DATA( cp  Ei DATAp c ( Fe DATA c p Gb DATA cH  HR DATAH c  I/J DATA c H JO G DATA c   KG7 DATA  ch  L;/HC DATAh c  MGp? DATA c h N;/; DATA c@  OQ3 DATA@ c  P.HO DATA c@ Q.S% DATA( b,d'=A@DATAL( mL?B ?o: ?? #<=DATA@ h1 RenderLayerCU8 / CUText@ 6 @ 0d x (S?I>?a>]B>d?]B> ????L=       DATAx 0g DATA PhatchDATA0 -DATA .CU8 / CUText.0025 b 0 3  Ȕ ?" ?Y??d?  ????L=H        DATA x DATA H PHATCH UNITDATAX - DATA  .IMt8 IMtext.pngC:/phatch_project/text.png+FCA CACameraamera.001L>2!B=B.B@?LA $ LASpot ?????AB>??.?A4B?@@@ ???LA $ LALampB?Mt????A4B>??? B4B?@@???VFD 'VF0 WO(X aWOWorld???R?R?R???A@pA A?L=TXh  TXText H! H! H! ::! SDATA H , 15DATAH  P DATA XHh : 15DATAX0 x   15DATA0 ` X DATA`  0 Ȃ  ! 15DATA H! ` X ani.DATAH!  @ u :EERFDATA0 This is the source file for the Phatch logo. DATAP (c) 2007 Igor Kekeljevic1EDATA<h License: GPL v3 or later (http://www.gnu.org/copyleft/gpl)DATAx  7DATA More info about Phatch:DATA$Ȃ Phatch is a Photo Batch ProcessorDATAX (c) 2007-2008 www.stani.beDATA<@ License: GPL v3 or later (http://www.gnu.org/copyleft/gpl)OB % [0) OBCameraamera.001  wv@/hB{@???*?91<"P???ޕ/?5F:?81V~>75e?'?T3>wv@/hB{@??????/d?3?'?OBd??)d??>)d?????OB 0) [h, % OBCircle0 VOd@kjt~1????????i!3?i!3VOd@kjt~1??????ޕ/?815F:W~95e?'?1>T?N@N@E@?DOBd8? #=?>=??@???OB h, [0 0) OBCircle.0014  / / @ VOd@gj\?9@E m??'?????2"?I]>>c?ϵ>U@kݿn5y?AY@5AY@5 ٭A??bd?~> -YѾJ?͘1O9>ͭ?@t7V@!A?DOBd8? #=?>=??@???= @Sp DATA@ DATAD/ ESubsurfOB 0 [3 h, OBCircle.0024 ` x3 x3 H3 ,Yd@jr @9@E m???????2"?I]>>c?L5?4<,bHU@\ݿs:?AY@5AY@5 ٭A??bd?~>YѾJ?O9>c?~DDV@4@?DOBd8? #=?>=??@???k=8J @ DATAH3 DATADx3 ESubsurfOB 3 [7 0 OBCubephere(| P7 P7 7 ?????????????ߕ/?6F:?81[~>85e? '?T5>xv@/hB{@?DOBd8? #=?>=??@???=a  DATA 7 DATADP7 ESubsurfOB 7 [; 3 OBCube.0012 (; (; : E>????????E>?????/?3F:?81\~>85e?'?T5>T@/iB{@?DOBd8? #=?>=??@???@'>h X DATA: DATAD(; ESubsurfOB ; [p? 7 OBCube.0022 ? ? > O???????O??????ޕ/5F:?81X~>>75e?'T3>/fB{@?DOBd8? #=?>=??@???'> @ DATA> DATAD? ESubsurfOB p? [HC ; OBCube.0034 B B B c>????????c>?????ݕ/?7F:?81S~>:5e?'?T5>G@/hB{@?DOBd8? #=?>=??@???o > h DATAB DATADB ESubsurfOB HC [ G p? OBCube.004 3 F F F z0???????z0??????ޕ/5F:?81X~>>75e?'T3>X/fB{@?DOBd8? #=?>=??@???#>P 0 DATAF DATADF ESubsurfOB  G [J HC OBCube.005X5 J J XJ &|޽[ٍ?2?2???ٍ?2?2?&|޽[?????p?^.? %s•>V?F?Vpe>o@Ujn@?DOBd8? #=?>=??@???#>P h DATAXJ DATADJ ESubsurfOB J [N G OBCube.0063 `N `N 0N ~5t?rƽ#P?#P?#P? 1?HZ2??D?X=nܷ=H?>J?'g.M>~5t?rƽ?????kL=g>^E񾾌?Sq>vp?v>'1>o>A4v@ٯ??DOBd8? #=?>=??@???<>hP . DATA0N DATAD`N ESubsurfOB N [R J OBCube.0076 8R 8R R m?TW>{>? ޿D߿ƒP=P=P=!be_@??Ot_=P]*=c2=m?TW>{>??P 6?4G94*zK7N>v^Ju? EZ@o4AbԖ?%?\']@1A4lAB~B?DOBd8? #=?>=??@???s >?DATAR DATAD8R ESubsurfOB R [V N OBCube.008@ p V V U IbtnPܘ>>>pS&t'??K>5"d<^pB=h>3VW5>.>P$?پ?S>;m?6?a!p>aFJ>Q?V)Oz>?:Ɵ?V'?>~xXܽ?8?©AN>Au&H@?DOBd8? #=?>=??@???7_>PO E DATAU DATADV ESubsurfOB V [XZ R OBCube.009@ X9 Y Y Y &q5tnPܘe?L2>^fD?S>;m?6?a!p>aFJ>Q?V)Oz>?Ҝ?JA&>dY8?x?߱<ݶ>HAr!來@?DOBd8? #=?>=??@??? =`= O DATAY DATADY ESubsurfOB XZ [0^ V OBCube.010@ C ] ] ] qtnPܘl>Ȕ>l>pS&t'??#5>EK<6=->)Q1>>kؾ?S>;m?6?a!p>aFJ>Q?V)Oz>?P?b?47>%r꽆*?&?ȟuo>A0S@?DOBd8? #=?>=??@???I >= e= DATA] DATAD] ESubsurfOB 0^ [b XZ OBCube.011@  a a ha g2%7tnPܘh?$Z=h?pS&t'??5?i-'w<x;, K==Z\:>>èp ¾?S>;m?6?a!p>aFJ>Q?V)Oz>?`?r`AV>\^?4?gTGt>>ߊAe @?DOBd8? #=?>=??@??? =HH cH DATAha DATADa ESubsurfOB b [e 0^ OBCylinder.0015 pe pe @e p?[!l???????i!3?i!3p?[!l?????ޕ/?815F:V~95e?'?2>T?b`@o%@M:@?DOBd8? #=?>=??@???1H=xT ! DATA@e DATADpe ESubsurfOB e [i b OBCylinder.002M Hi Hi i gQ?<>SdFݱ>ݱ>ݱ>???ݱ>J2ݱ>ݱJ2gQ?<>SdF?????޷?! i$@iCf J? ?>??AXA{A?DOBd8? #=?>=??@???> b DATAi DATADHi ESubsurfOB i [m e OBCylinder.003@5 m m l DQ?i;OF̵>̵>̵>???̵>m2̵>̵m2DQ?i;OF?????]?R=c @e(`5?R? ? AiRA0A?DOBd8? #=?>=??@???T=V a DATAl DATAD m ESubsurfOB m [hq i OBCylinder.004p5 p p p 1?1~[????𼆿 E???>qy>^e^?S&>(2?b7P31?1~[?????P>_f'9E?w>R>L9>cd?ߓ@ y@A?DOBd8? #=?>=??@???>@\} DATAp DATADp ESubsurfOB hq [@u m OBCylinder.005P p6 t t t @LϿ=6@g[|ƿ{?RR?DZ84~ E???8 >׃>Z?B?uCͩd=%E8>69@ܿso?c7?=*?3L (2? 0|S>@>4/u?*v!O@?Z>F? ;8+I?ECi>g ?Zy?_@dmA@r A?DOBd8? #=?>=??@???>y (+y DATAt DATADt ESubsurfOB @u [y hq OBCylinder.006y  x x xx + @ElL#N@:{{?{?{?X>G`3I??, ׃Zc>W(9 >1+Gn->( @`O}???3?) @#@Y?RRW?+I,?|վl?ŕA>?DOBd8? #=?>=??@???>0} 0DATAxx DATADx ESubsurfOB y [| @u OBCylinder.007m C | | P| Y?) #1?1~[???????(2a7?VгT'>>sy>^e^?#N@:{??i!3?i!3JG鿽[? ᏿?&9=_V>W>v>E?ddR9>>k@H@?DOBd8? #=?>=??@???#>aOr DATAP| DATAD| ESubsurfOB | [Ȁ y OBCylinder.008@u `F X X ( v @[( @`O}?????>uy>^e^?>T[U >ӐJiľ>&$@uy ?.3R$R夳.?㍜.?R3 @???R>EmSE?i?>h?B@0A\D??DOBd8? #=?>=??@???>p}c DATA( DATADX ESubsurfOB Ȁ [ | OBCylinder.009|  0 0  Y?F#&$@uy ???????ѐJiľ>>T[U >>wy>^e^?G#@L>0*??h!3?2?h!w [???nSEQ>? iE?Bh?>a?=AH@?DOBd8? #=?>=??@???>p d DATA DATAD0 ESubsurfOB  [x Ȁ OBCylinder.010Ȁ `{   ؇ ]?݇0G#@L>0*{?{?{?WeS%??7 >׃>Z?ui?"ʼ_Tս2l?3@NpiWؿ???3?/;F@#@Y?V>b"?j?;+I?^%]G=~>>;aM_@+@?DOBd8? #=?>=??@???>y DATA؇ DATAD ESubsurfOB x [P  OBCylinder.011(     ـmfqq=@9gӿ???????ٽH?!툾+EF;^>>wy>^e^?+@/?/;,;3??3C&?-;HQ@\:?/u=?7??C_>Le=4B?E?yu>SR$@?DOBd8? #=?>=??@??? -=0{b P DATA DATAD ESubsurfOB P [( x OBCylinder.012 U    ?5[3@NpiWؿ?????>|y>Xe^?m<>ؽ :p?q6@g[|ƿ?.?a4!4.?R$4.Q夳X!@?`>dfS!?E?O"?D=>꾌I@(:?DOBd8? #=?>=??@???>y DATA DATAD ESubsurfOB ( [ P OBCylinder.013hq P   ` uHQ\:69@ܿso????D???ٽH?!툾)EF;^>>vy>\e^?q=@9gӿ?.?l46P$4.43`> 9U?7??C_>Le=4B?E?tu>0*>4@?DOBd8? #=?>=??@???1=b b DATA` DATAD ESubsurfOB  [ؗ ( OBCylinder.014hq 0 h h 8 eHQ墿69@ܿso??>???@>9?YA?k 9U?+s?;>Zj9Eł1EcX?Ѿap@?DOBd8? #=?>=??@???A=@ xa DATA8 DATADh ESubsurfOB ؗ [  OBCylinder.015  @ @  lmf"̿`H5@l俒ʿ??????@>9?YA?muy>^e^?qyE@+b?/;-;?3C&-;3HQ@墿e?+s?;>\>j9E?˂1EcX?>UOm@@?DOBd8? #=?>=??@???== a `b DATA DATAD@ ESubsurfOB  [ ؗ OBCylinder.016@{    ?I?[????rm@??FUپ><M?H|?a%2?r4?5?73?I?[?????7;#`?{?C7>k0!7{?A<L+A?DOBd8? #=?>=??@???l>j X0DATA DATAD ESubsurfOB  [`  OBCylinder.017 X    ~e?j/?I?[???@C???r45Щ8>UBi?7u%/k$?%>w@*?n??i!3?i!3JG鿽[? ᏿?_ĩ\<0;k!?TF?BF?!m?A?DOBd8? #=?>=??@???>j Z DATA DATAD ESubsurfOB ` [8  OBCylinder.018  Ȧ Ȧ  4?!w@*?n{?{?{?i?ϱI??"?Q!vlϾ>sd? ,z7w=?????3?) @#@Y?| C=I7$?n:=5$?I?V<F@ĞA% @?DOBd8? #=?>=??@???E>@B (Z DATA DATADȦ ESubsurfOB 8 [ ` OBCylinder.019` H   p v @[???????7u%/k$?$>>wh?.1:|=@??.3R$R夳.?㍜.?R3 @???1\=??@???>5K Z DATAp DATAD ESubsurfOB  [ 8 OBCylinder.0208 h x x H Y?F#@????????.1:|=>w h?7u%0k$?#>YI@? @d)??h!3?2?h!w [????=\<KN7=v!?TF?<LF?!z=p@A@?DOBd8? #=?>=??@???>>K A DATAH DATADx ESubsurfOB  [  OBCylinder.021 P P  5W@@0Y1@M]?)V{?{?{ɿ0@??"U!?yl>?? ?>h1j?3$0>{M:?:6?SA?DOBd8? #=?>=??@???գ>PV T DATA  DATADP ESubsurfOB  [  OBCylinder.022 8! ( (  eHQ墿2@ʗ???????9>:?y-?Sq>;2?3u%?3k$%Ҿ:@lj?R ?.?l46P$4.43`> 9U?F?s!?S]Ѿy>TF/?!?ɣ@j@?DOBd8? #=?>=??@???8G=^ _ DATA DATAD( ESubsurfOB  [p  OBCylinder.023 H!   й lmf"̿:@lj?R ??????9>:?y-?Sq>;2?4u%5k$?&>9@eG?Q#?/;-;?3C&-;3HQ@墿e?F?q!?]<Ѿz>TF?/?!@??DOBd8? #=?>=??@???F=n _ DATAй DATAD ESubsurfOB p [H  OBCylinder.024 (" ؽ ؽ  uHQ\:2@ʗ?????D???*ڼSE?wZ9C{2u%3k$?$>zP*@k? h¾?.?l46P$4.43`> 9U?XI>Tm]<`TF?"7E!03?DOBd8? #=?>=??@???kE=0Da T DATA DATADؽ ESubsurfOB H [  p OBCylinder.025p #    ـmfqzP*@k? h¾???????ڼSE?wZ9C{3u%4k$?%> #@V?D?/;,;3??3C&?-;HQ@\:?/u=?^I>RmY]<`TF?"7F!te'?DOBd8? #=?>=??@???=hg HT DATA DATAD ESubsurfOB   [ H OBCylinder.026 `#   X ]?݇0YI@? @d){?{?{?Md??"T!?|l>?? ?>E>׼3 ?V0@5?웿???3?/;F@#@Y?XI?7d>`4$0>UB::)6??DOBd8? #=?>=??@???}>8"L xU DATAX DATAD ESubsurfOB  [  OBCylinder.027  P$ ` ` 0 ?5[0@5?웿?????1u%3k$? >9C{ڼUE?wZY1@M]?)V?.?a4!4.?R$4.Q夳X!@?c\TF?`!M"7ck3>?DOBd8? #=?>=??@???>`NV `SV DATA0 DATAD` ESubsurfOB  [  OBCylinder.028v$ 8 8  j j={[???>ۻA@??}45?;{;.ڛ?54z j j={[?????K=4>pd?S;Jd> A@?DOBd8? #=?>=??@???>>; ؎ DATA DATAD8 ESubsurfOB  [  OBCylinder.029 $    Y?) #j j={[??????? 5?4?!4;]ڛ?|45?t;[ƣ$??i!3?i!3JG鿽[? ᏿??4!=?Spd?> =>JdI @@2S?DOBd8? #=?>=??@???>$ p DATA DATAD ESubsurfOB  [X  OBCylinder.030 $    + @ElL[ƣ${?{?{? ?2I??|~1?v2ػ2sܻ? ׼>d>yV?f%ھ???3?) @#@Y?e;_?E>UE?/h?X>cg>UAͥ?Y@?DOBd8? #=?>=??@???>  DATA DATAD ESubsurfOB X [0  OBCylinder.031 xD%    v @[f%ھ???X0??E!?r=e/?>>0"Z?*ҿ?.3R$R夳.?㍜.?R3 @??? Z??6>B?S\>O>{@%@?DOBd8? #=?>=??@???m> DATA DATAD ESubsurfOB 0 [ X OBCylinder.032X %   h Y?F#*ҿ???????>>/"Z?e/?E!?m=K>sW??h!3?2?h!w [????Z B?2>?M>>S\0@Sn@G ?DOBd8? #=?>=??@???> p 8 DATAh DATAD ESubsurfOB  [ 0 OBCylinder.0330 % p p @ ]?݇0K>sW{?{?{?@|??HKBK?!=\6>뒇>Mp ecſL???3?/;F@#@Y?cw>tN?,Q6S`wý?Q I?DOBd8? #=?>=??@???}>`M x DATA@ DATADp ESubsurfOB  [  OBCylinder.034 4& H H  ?5[ ecſL???8>kED7??x++s>ޏ~T>n?>_c >>Kth%տM?п?.?a4!4.?R$4.Q夳X!@?_zQ?T>a8>3>sOOp!8_)A``?DOBd8? #=?>=??@???>Pq R7 DATA DATADH ESubsurfOB  [  OBCylinder.035 &    ˅u$\,h%տM?п{?{?{?$?I@I??s<o>tPEjӀ Ӊo?".#:љ?M4|x>H5?ױ>?0M?a=?b=@?h. U򶛾 >c-GS?S5>bX? {?@?DOBd8? #=?>=??@???a>  DATA DATAD  ESubsurfOB  [h  OBCylinder.036 &    qY,".#:љ???ŗ \H???UJ=Z3~ax>?w?px9+s>ޏ%T޿4?7?ܾ˛8?)?۾P??k=A%^?Ǽ^?_`o>`8>WOQbK?DOBd8? #=?>=??@???I=E ? DATA DATAD ESubsurfOB h [@  OBCylinder.037 Xg'    ـmfq%T޿4???????TJ=Z2~cx>Aw?px;+s>ޏ#Wg?/;,;3??3C&?-;HQ@\:?/u=?Ǽ^?_`o>_8>ZOy0`?DOBd8? #=?>=??@???uc=@; L? DATA DATAD ESubsurfOB @ [ h OBCylinder.038 8"(   x P +,h%տM?п??ɿ(\H????>?QU% kR x?U+szޏ=ukNܘ?M4|x>H5?ױ>?0M?a=?b=@?M?Z4_>t'%1i8ϩu>O?EAw=??@???$;=? = DATAx DATAD ESubsurfOB  [ @ OBCylinder.039@ (   P lmf"̿ukNܘ???????S=<npx Ex_+s>ޏ?by]?/;-;?3C&-;3HQ@墿e?&ֲ=]_Hoh\Hd8>cѾY>OO @z_?DOBd8? #=?>=??@???W=XE HDATAP DATAD ESubsurfOB  [  OBCylinder.052pr) X X ( !=I0M?[???/?\H???럶E}4@4?2?txX4˰5?&f)3!=I0M?[?????x.*~?#=:c2>%bgF e] 3,?DOBd8? #=?>=??@???>6x DATA( DATADX ESubsurfOB  [  OBCylinder.053 ) 0 0  Y?) #!=I0M?[???????yX4?ʰ5-3@4?2?w럶E}#ǿEY6? ??i!3?i!3JG鿽[? ᏿?#*~?{.(:c e?F&b܁=A@??DOBd8? #=?>=??@???1>8OGDATA DATAD0 ESubsurfOB  [x  OBCylinder.054 )    + @ElL#ǿEY6? {?{?{?<3I??я=;=Yy?X- 6?%k4?d,?JZ[?˿???3?) @#@Y?M1=O9[=#?8g?>|PG>it@,5 T?DOBd8? #=?>=??@???A> DATA DATAD ESubsurfOB x [P  OBCylinder.055 @*    v @[JZ[?˿???7dD5??v<2l5?4-2<[c->I|?;7?SU/?%M9?~ÿ?.3R$R夳.?㍜.?R3 @???A!=\=}?9>n?Gp.`>D:5d@d>?DOBd8? #=?>=??@???>`(DATA DATAD ESubsurfOB P [(  x OBCylinder.056x *    Y?F#M9?~ÿ???????;7?QU/?Ů2I|?v<2l5?:_N3b#??h!3?2?h!w [??? }?5=B!=Gn?:>DD+`>p?@Ύ-?DOBd8? #=?>=??@???>HtDATA  DATAD  ESubsurfOB (  [ P OBCylinder.0578" 0*   ` 5$@0]^<<nj{?{?{?ɿx0`H???AQ%?4C>$?2,S?}=Pƾ=?܌( ,C?ΰ5?4vX4?xX4?Ѱ58?,;H[?Yh@?BK:??x>[*?8>':?9o??Z!r>ӄ@h"VH??DOBd8? #=?>=??@???a>DATA` DATAD ESubsurfOB  [ (  OBCylinder.058(  0+ h h 8 eHQ墿܌( ,C??D???q?ri>@A` V?=#(;yġ' ald?.?l46P$4.43`> 9U?Z (?~t>~+77">6HnΖV7; I?DOBd8? #=?>=??@???_:=ȳHDATA8 DATADh ESubsurfOB  [  OBCylinder.059 x+ @ @  lmf"̿ ald??????q?qi>@B` V?=#(?=y>š'?s湿w8?/;-;?3C&-;3HQ@墿e?\ (?t>z+7?7>:H>nΖV>Rpq%@?DOBd8? #=?>=??@???}=L DATA DATAD@ ESubsurfOB  [  OBCylinder.060(  X,    uHQ\:܌( ,C????D???q?ri>@A` ?V#(?;y>ġ'?w O "?.?l46P$4.43`> 9U?[ (?~t+7?7AH>nؖV?>;_& AM@?DOBd8? #=?>=??@???:= DATA DATAD ESubsurfOB  [`  OBCylinder.061 -    ـmfqw O "???????q?qi>@B` ?V#(?=y>š'?nꋿG?/;,;3??3C&?-;HQ@\:?/u=?[ (?zt~+7?78H>nӖV?>RPA:@?DOBd8? #=?>=??@???o=hB DATA DATAD ESubsurfOB ` [8"  OBCylinder.062P - ! ! ! ]?݇0_N3b#{?{?{?{䇴??I?/b2?B#X?b>[=ë"C>޲???3?/;F@#@Y?$=%D*?2>0:tbr8d(?DOBd8? #=?>=??@???>PDATA! DATAD! ESubsurfOB 8" [& ` OBCylinder.063` . % % p% ?5[ë"C>޲???Qhε??#(?'?B` ?Vn?ui>@]^<<nj?.?a4!4.?R$4.Q夳X!@?}+7?t] (?9H>Ĺ7>ЖV?n@* A ?DOBd8? #=?>=??@???>DATAp% DATAD% ESubsurfOB & [H) 8" OBCylinder.064Q @???????.;?.;3 '??.;3.;@?????5F:? 91ޕ/?>85e?Y~T.>'?ؠG@-@K??DOBd8? #=?>=??@???OB H) [ - & OBCylinder.065 n. , , , t=@g?E%9@eG?Q#A >A >A >y桢~oR>??C)==MKܺ=p=}=:Σ 1=Bm=@z?>?}!F&?MUپ8t>"B?>_Ca6M?J>Qca^??S@?zU@4hG@@8?&5P`BIt=??@??? >u g DATA, DATAD, ESubsurfOB  - [0 H) OBCylinder.066H) . 0 0 X0 S@P~>pe@z?>?????I>vca?~A?ۙ'?< *?(>|@@L>?#@3$@$@?ȿ@H?΅~?=?ۼP?rO?=K,@&7)?DOBd8? #=?>=??@???>Hg } DATAX0 DATAD0 ESubsurfOB 0 [4 - OBCylinder.067H) . `4 `4 04 F@ΐZK@z?>Z->Z->>4F44#@??ߕ>*^[@q!l?#@3$@$@?ȿ@H?/f@q0Ly>WD=??@???3J=0g ЭDATA04 DATAD`4 ESubsurfOB 4 [8 0 OBCylinder.068hq 52 88 88 8 a@4;dC69@ܿsol >l >ιo>lW??Kv=N=A*ƽB=Kƽ:Ҿ9@E m?5>Vk?t+{>CK"5Rj0b?>Kx? M?~??@O>nv>@T@ڿ$꨿ͷ-g}ف8CA ?DOBd8? #=?>=??@???W=G  DATA8 DATAD88 ESubsurfOB 8 [< 4 OBCylinder.0694 O2 < < ; VOd@kj=>9@E ml >l >Q`A>@T@A꨿ɷ/RAuف3CAœ6"C?DOBd8? #=?>=??@???w=Up Dp DATA; DATAD< ESubsurfOB < [X@ 8 OBCylinder.070R (5 ? ? ? @x7Փ>Y!?پG@G@G@??? F@d4}0"9>Yߦk?9@.0_9?Ѿ\??@@@O<@_?}M>=uEa><o>Wo=UZ><9@50?(X)@?DOBd8? #=?>=??@???1H=pp= pJDATA? DATAD? ESubsurfOB X@ [0D < OBCylinder.071hq (f C C C @㩈?U69@ܿsol >l >pPιo>lW??Kv=N=A*ƽB=Kƽ:N>u9?fh>δ??5>Vk?t+{>CK"5Rj0b?>Kx? M?~??@sO>P >@T@x!꨿ʷy4|D}^?DOBd8? #=?>=??@???y=y !y DATAC DATADC ESubsurfOB 0D [H X@ OBCylinder.072X@ Xi2 G G hG F@^t?fh>δ?l >b aP?qMH@>J???Jv=M=>* ȽQ =㊾g9?kh>ʹ??ɑ@Aξؓ@z@ǾTp=+ߋ pAp?@> >|K@y&|$꨿o4|݌YL?DOBd8? #=?>=??@???i=`4 K DATAhG DATADG ESubsurfOB H [K 0D OBCylinder.073X@ v2 pK pK @K F@^t?fh>δ?l >b aP?qMH@>J???Jv=M=>* ȽQ =㊾g9?kh>ʹ??ɑ@Aξؓ@z@ǾTp=+ߋ pAp?@> >|K@y&|$꨿o4|݌YL?DOBd8? #=?>=??@???#=@ y DATA@K DATADpK ESubsurfOB K [HO H OBFont.001 O sq@ZhY=7>7>7>????xA7>xA2 &7>7>xA2xAsq@ZhY=?????$5@JS,p*@?^@ܨ?#@!$mAZAA?DOBd8? #=?>=??@???DATAO OB HO [R K OBLamp  p@݌p@???{&?W+b=???6씾t? bfE9L"?%?_>oK?p@݌p@?????>M.5 ?Ʈ>89?ݘ?_Lc?^TjB?DOBd8? #=?>=?@???OB R [XV HO OBCylinderp U U U p?[!l???????i!3?i!3p?[!l?????ޕ/?815F:V~95e?'?2>T?b`@o%@M:@?DOBd8? #=?>=??@???> H DATAU DATADU ESubsurfOB XV [Y R OBLamp.001  ?ugd???74:@ɿ??63iy?_f*~?v<S=X=e%ew?ugd?????6?V3?B.=[OPy1/?\~@6?DOBd8? #=?>=??@???OB Y [h] XV OBPlane5 \ \ \ [Rg=Rg=Rg="?g,??Uf=l\^XQ;1<DW=/>V"T< [?????l;2A3@Q!P[AH?LAsE@ǹ=ADUCgBB?DOBd8? #=?>=??@???E(>hDATA\ DATAD\ ESubsurfOB h] [Y OBFont ` n(iFNy+N=P=P=?MSá??=.;zß6=!=o9ld5=n(iFNy+?????(@ P8@[6zA ?@?@BXQANB?DOBd8? #=?>=??@???N=DATA` MA` &b MAblack_gloss===???????=??L>?@???x ????????@?=?==???????L?L?L?L==ff????????MAb &e ` MAblack_mate>e>e>??????=??=?????? ????????@?=?=ג<???????L?L?L?L==ff????????MAe &0g b MAbrown_plastic>>qs<??????.>Í>????>???AA ????????@?=?==???????L?L?L?L==ff????MA0g &Pi e MAchromeA[?Dw]?V???????=??>??@??? ????????@?=?==???????L?L?L?L==ff????????MAPi &pk 0g MAgreen_metal?"j[???????=??=??y???? ????????@?=?==???????L?L?L?L==ff????????MApk &m Pi MAlens????????????>L?@????GG ????????@?=?==???????L?L?L?L==ff????????MAm &Xp pk MAgreenklopaterial.0?"j[???????=??=??y???? ????????@?=?==???o ????L?L?L?L==ff????????DATAxo z ??????????L>MAXp &xr m MAolovka.002F?9/?>??????.>Í>??=?vJ????AA ????????@?=?==???????L?L?L?L==ff????MAxr &t Xp MAsocivosnova.001???????=????L?@??? ????????@?=?==???????L?L?L?L==ff????MAt &v xr MAsocivocrveno????????????????X L=??qH?????@?=?==???????L?L?L?L==ff????MAv &x t MAviolet_plasticF?<4;6???????.>Í>??=??@???EE ????????@?=?==???????L?L?L?L==ff????MAx &v MAwhite_gloss11??????????>??L>??@??? ????????@?=?==???????L?L?L?L==ff????????TEz "TEslovaex>@???????@@????? @??<8 ME(| 20 MEcentralniubephere- h} X ~ (  } Ў   $yu?дf?P??DATAh} Pi DATA,} ~ DATA~ 83?Hu<o3?Qu?..3?Ku??..hm3?;?.hm3?XKu?F-Y93?Ku0<B?HuKuuO6B?;Ku?cs8) B?Ku?Ku?t}%}% B?Qu?Kut}%3??Ku.hm3??Ku?.hm.3?q +5?h0ȋB? 5?vfϦ B?Lu?5?@v03??5?0@v"?Iu?Pu?0 ?Iu??0@v$?;??P$?XKu?)"?Ku??Ku@v ??Ku?@v0$?s +5?ڵ: ??5?3?c@B?@3?OL??0@v B?OL?Ku?@v0 B?c@B?Ku@v?b@B? ?ML??DDٮs B?;_?I B?e2?I B?PFI B?6_?mQ[? B?ά;?mQ[?B?jmQ[? B?6_?$?B?$?B?yhO!? B?.4=AB?Vؾ\V? B?(Z?\V? B?(Z?O!? B?.Z?A B?/8?\V? B?0?Au?Ju?0f=Huof=Qu?.u?Bu??0@vf=Ku??.hmpf=;?hmpf=XKu?Y9f=Kul<m=HuKuqO6m=;Ku?8)m=Ku?Ku?}%}%Pm=Qu?Ku}%u??Ku?@v0u??Ku@vf=?Kuhmf=?Ku?hm.u? +5? etf=q +5?ȋm= 5?fϦ m=Lu?5?0u??5?f=?5?@v_~>Iu_~>Pu?0_~>Iu??0@v_~>;?^?P_~>XKu?z\)_~>Ku_~>?Ku@v_~>?Ku?@v0_~>s +5?I%:_~>?5?u?\@B?f=c@B?Nf=OL??@vu?EL??Ym=OL?Ku?0Cm=c@B?Ku_~>b@B?_~>ML??&DٮsCm=;_?I7m=e2?Im=PFIm=6_?mQ[?m=ά;?mQ[?m=jmQ[?m=6_?$?m=$?m=yhO!?m=.4=Am=Vؾ\V?m=(Z?\V?m=(Z?O!?@m=.Z?Am=/8?\V?5m=0?A$?\޾#_a?$?|nBW?$?ɞd3?PZ ?iL?#_a?u?Ԟd3?N_~>ɞd3?ZPZ_~>\޾#_a?_~>|nBW?_~>iL?#_a?Zu?bL?#_a?=?Ju?Ku?y +5? e?Ξd3?NY?y +5? eY?KuY?JuY?Ξd3?N3?ݢh;h0ȋB?(^;vfϦ #?ݢh;uB?2oFʾB?)+u?h;uf=ݢh;ȋm=(^;fϦ _~>ݢh;um=2oFʾm=)+?h;uY?h;u: ? q:9 ?uGiwΑOD7? qZ:7?uGiw(1ODu?wGiwɮb: ?q9 ?ikw1Z7?ikwZ1Z7?qu?kkwF: ?@_qŦ9 ?6={’$7?@_qZŦ7?6=7’$u?6=fR-%?-&)n,%?.dah[)?-&)n)?.dah[u?/da2??*k]2?xko#"X6?xko#"X6??*k ]u?ykomFۖ>Pu?0Aۖ>Iu??0@vFۖ>?Ku@vAۖ>?Ku?@v0Bۖ>?5?Eۖ>b@B?@ۖ>LL??Y@ۖ>iL?#_a?=~?b@B?~?Pu?0~??Ku@v~??5?~??Ku?@v0~?Iu??0@v~?LL??Y~?iL?#_a?={>Iu{>Ku{>t +5? e{>ʞd3?N{>ݢh;u?t +5? e?Ku?Iu?ʞd3?N?ݢh;u3? +2?h0ȋB?k!2?vfϦ $?"+2?uB?!?B?+n?u?.+2?utf= +2?ȋm=k!2?fϦ _~>"+2?um=!?m=+n??(+2?uY?(+2?u{>#+2?u?#+2?uDATA,Ў ( DATA( 5y"" " " """""" " " " "" " " "  """""" " "      ""  """"""" "  "  " ! ! " !" # #$ $ $% % & & #& %' ' '( ") %* (*"&, +,"#+ - ,-"$. *."+.")/"!/ -/"17"18"2;"0= 2>"3< 4?"59"4:"56"78"69";>":?"6A"9B":C";C"<D =D >E"?E"AB CE 1F"2G"4H"5I"6J"7K">L"?M"AN EO FK GL HM IJ"JN"MO LO 0P 1Q"2Q"4R"5R"3S 9T":T"8U";U"GV HW IW"QU RT QV"RW UY XY ;X 8Z YZ :[ [\ T\ \] 9] X^ C^ [^ ]_ B_ _` Za ]b `b"^d cd"[c Xe de"\f bf"cf"ag"Yg eg"h hi"i ij"j"k"hk"@l Nm"Jo no"In mo"np"Wp"Sq @t"lu"rs"tu @v"ly"wx"vy z"{"| "} )~"7"8"K Z a"s w z{ z| {} }~   s"" "w"" "" "" " """"""" """ """ """""""" "0"G"3"H"="L"<"M"D O P"V"S"W"p"q" "P""0""=" D "<""3""S"k"q" F"r"K"s"N"t"m"u" "v""w""x"j"y"| "z" "{" | ' } ("~"@  A""B""N _ `""t v DATA, X Col  DATA X 4            !!"$#%$& #& '%'(*%#+,&&,- %*.$$.+#!/)" -/!1782;>4?:5969BA6?EC:E>;CK71FG2>L4HM?6JI5J6ANOE?ML>EO8UQ1U;2Q:TR4T95RQ2GV4RWHR5IW;UYXU8ZYT:[\9T\]C;X^:C^[B9]__]b`[^dc^Xed]\fb\[cfYZagXYgehiijkhIJonJNmoWInpt@lu@vylz{|z"}{)~}"877K8ZZasw0=GLHM3<D<OM=DLOP0VGWHS3SqWp=0<3<DD=0P3SkSqsrKFNmtuKsxwvyj|w z{ |z}{' ~}('BAANB__`t@v@Nt|vDATA  9ME0 2 (| MECircle Ⱦ 8 p   X 2T$???DATA,p Ⱦ DATAȾ 825?5?2ZZFw?>؀72{ !Fw?ր7{5?5Z>Fw5+ !^烄Fw5+^55Fw7^Fw݃>72^ !55?2ZFw?5+3ޢ{Ӄ>Fw?5+3 !{5?5?2ZZFw?>؀72{ !Fw?ր7{5?5Z>Fw5+ !^烄Fw5+^55Fw7^Fw݃>72^ !55?2ZFw?5+3ޢ{Ӄ>Fw?5+3 !{5?5?>>Fw?>UFw?탄U5?5>>Fw烄Fw55FwFwރ>55?>Fw?UӃ>Fw?U5?5??>>\Fw?>?U\Fw?ʃ?U\5?5?>\>Fw?\Fw?\55?\Fw%?\Fw>?\ 55??>\.Fw??U\>Fw??U\$@13$@1?DATA, 8 DATA8 5T    0!#0!1$!%$#%1!#0!&%#&1!#0!&'#'1!#0!'(#1(!#0!)(#)1!#0!*)#*1!#0!+*#+1! #0 !+,#,1!! #!0!,-#-1!"!#"0!.-#.1!#"##0!./#1/!##/$#%#$#&#'#(#)#*#+#, #!-#".##/#DATA,X  DATA 4$01%$01&%01'&01('01)(01*)01+*0 1,+0 !1-,0!"1.-0"#1/.0#1$/$%%&&''(())**++,  ,-!!-.""./##/$ME 2` 0 MECircle.001   x   p  H  ~Z9KA?3?-N>DATA 0g DATA,  x DATAx 8 >>>>>\KA?>>U\KA?>U\>׾>>\>NA>\NA>\׾׾>\IA>\KA>>\׾>>>\FA?>U\>LA?>U\%> >>\ ?>>\ ?>\%>(ʾ>>\> >U\ >U\ʾ0ʾ>>>\ >U\ >>U\+ʾ>>>\ ?>\> ?>\> ?y>^ ?y> !^+ʾ>y>Z >y>{ y>{ !ʾ0ʾy>ZZ y> !{> y>ޢ{%>(ʾy>Z ?y>^ ! ?>y>^%> >y>>LA?y> !{FA?y>ޢ{׾>y>ZKA>y>^ !IAy>^׾׾y>NAy>^>NAy> !^>׾y>ZKA?y>{KA?>y>{ !>>y>ZZ>>m=ZZKA?>m={ !KA?m={>׾m=Z>NAm= !^NAm=^׾׾m=IAm=^KA>m=^ !׾>m=ZFA?m=ޢ{>LA?m= !{%> >m= ?>m=^ ?m=^ !%>(ʾm=Z> m=ޢ{ m= !{ʾ0ʾm=ZZ m={ ! >m={+ʾ>m=Z ?m= !^> ?m=^> ?$A^ ?$A !^+ʾ>$AZ >(A{ (A{ !ʾ0ʾ,AZZ ,A !{> ,Aޢ{%>(ʾ,AZ ?(A^ ! ?>(A^%> >$A>LA?$A !{FA?$Aޢ{׾>$AZKA>(A^ !IA(A^׾׾,ANA,A^>NA,A !^>׾,AZKA?(A{KA?>(A{ !>>$AZZ>>ZZKA?>{ !KA?{>׾Z>NA !^NA^׾׾IA^KA>^ !׾>ZFA?ޢ{>LA? !{%> > ?>^ ?^ !%>(ʾZ> ޢ{  !{ʾ0ʾZZ { ! >{+ʾ>Z ? !^> ?^> ? ?+ʾ>> >U Uʾ0ʾ>> U> U%>(ʾ> ? ?>%> >>LA?UFA?U׾>>KA>IA׾׾NA>NA>׾>KA?UKA?>U>>>>g=5TAi,>5T1\}>5T"R_=}j=5T>AiH1a=5T.KO>6-w`5T.KO>w.ƽ5T>Hգ5T8R_=أ5T1\=ƽ5T,`5TNBa=5T"N6-B[=CAi,>C2\}>CQ_=}z=C>AiH^a=C)KO>6-w`C4KO>wƽC>HңCR_=ۣC1\MƽC, aCNB`=C&N6-Ba=VT"NV*`VTN*=ƽVTsأVT1\<@գVT8R_=<@f.ƽVT>rk3`VT.KO>R1a=VT.KO>VRj=VT>lJsk3>VT"R_=Y@f>VT1\Y@g=VTlJsE=nT =nTxJ =nTM= \H=nT¿ >=nT>>WInT>>tWnTƿ >UnTM=\YnTxJnT pnT=t=nT= $T4nTW9`=C&NZȫ aCNZȫMƽCXۣC1\GWFңCR_=GWƽC>XY4`C4KO>Z8T^a=C)KO>Z8Tz=C>KXY4>CQ_=[W>C2\[WF[=CKX x=6C3o>6C9 SQBl>6C@V=QBl 'x=6C>3o;#0o =6CF>]s4^n 6CF>s4w6Cۨ>̐o;#6C@V=l 6CSlw6C̐on 6C Fsn =6C F]sy<1g}y1aggv1ǽ$`1<4Z1\=4ZFv1O=$`>/x1[ >agF0z<1 [ >gFv=1O=F$`>/씳=1e\=_Y4Z攳=1s<_Y4Zv=1ϿǽF$`O>F=.jYVCg=.s>ڼdmo?1g=.|~F=.=YVC`=L <.QR=%H/b.]R=2H/b=F.=VC`=f.F.jVC.0ͽ2Hѝ<.>ͽ%Hѝ< <ͽ6-B .ͽB>F j,f =ڼf <=F =H _R=wL < SR=6-wm>F= =AiHg= ~<}g= j>ڼ}O>F= jAi,O>F= jg= j>ڼg= ~<m>F= =L < SR= _R==F =f <f =ڼ>F j .ͽ< <ͽ$L4 9DATA,p  DATAP 5"""""""" " " " " " " " " " " " " "  "  "  ""# #"" " " " " " "  " !" ! ""!" "# /"$/ $"$% %"%& &"&' '"'( ("() )")* *"*+ +"+, ,",- -"-. ."./ .1"01 /0"-2"12 ,3"23 +4"34 *5"45 )6"56 (7"67 '8"78 &9"89 %:"9: $;":; 0; #<"<= "="=> !>">? ?"?@ @"@A A"AB B"BC C"CD D"DE E"EF F"FG G"<G GH"HS <S"FI"HI EJ"IJ DK"JK CL"KL BM"LM AN"MN @O"NO ?P"OP >Q"PQ =R"QR RS 0_"T_ ;T"TU :U"UV 9V"VW 8W"WX 7X"XY 6Y"YZ 5Z"Z[ 4["[\ 3\"\] 2]"]^ 1^"^_ ^a"`a _`"]b"ab \c"bc [d"cd Ze"de Yf"ef Xg"fg Wh"gh Vi"hi Uj"ij Tk"jk `k Sl"lm Rm"mn Qn"no Po"op Op"pq Nq"qr Mr"rs Ls"st Kt"tu Ju"uv Iv"vw Hw"lw wx"x#l"vy"xy#uz"yz#t{"z{#s|"{|#r}"|}#q~"}~#p"~#o"#n"#m"##`"#k"#j"#i"#h"#g"#f"#e"#d"#c"#b"#a"#!!!!!~!}!|!{!z!y!x! """""""""""""""""""""""""""""""""""" """""""""""""""""""""""" " " " " " " " " " " " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#"#"#"#"#"#"#"#"#"#"#"# ! ! ! ! ! ! ! ! ! ! ! !DATA,H  DATA 4        # !  "! #" /$ $% %& &''(())**++,,--..//.10.-21-,32,+43+*54*)65)(76('87'&98&%:9%$;:$/0;"#<=!"=> !>? ?@@AABBCCDDEEFFG#G<<GHSGFIHFEJIEDKJDCLKCBMLBANMA@ON@?PO?>QP>=RQ=<SR;0_T:;TU9:UV89VW78WX67XY56YZ45Z[34[\23\]12]^01^__^a`^]ba]\cb\[dc[ZedZYfeYXgfXWhgWVihVUjiUTkjT_`kRSlmQRmnPQnoOPopNOpqMNqrLMrsKLstJKtuIJuvHIvwSHwllwxwvyxvuzyut{zts|{sr}|rq~}qp~poonnmmlk`jkijhighfgefdecdbcab`a~~}}||{{zzyyxx            ME` 26  MECircle.002h<  p- ( X"  !  , blh ?h ?7=DATA pk DATA, ( DATA( 8b>>C;JJGh ?j>jC;EfgGh ?jRC;EfG>̾:C;J#Gj>h .C;gGjh .C;仙G̾̾:C;##Gh kRC;Gh j>jC;gG̾>C;#JGkh ?C;DfGj>h ?C;gDfGY>=ˢ="[ z"U>"U>ˢ=zY>νˢ="z"U>!Uˢ=oz=Zˢ=[ zνZˢ=zU%Uˢ=oozVνˢ=ݥzY=ˢ=[ z'UU>ˢ=ozνV>ˢ="z=Z>ˢ=[ "z > >7=w8>E=7= w8>E7=  > 7= E=w87=Ew87=  7= w8E7=w8pE=7=  >7= Ew8>7= nE=w8>7= 37=7nE=w87Ew87  7 w8pE7w8E=7  >7 Ew8>7 E=w8>7 > >7w8>E=7 w8>E7  > 7 =Zˢ[ 8νVˢ8'UUˢoo8Yνˢݥ8V=ˢ[ 8U&U>ˢo8νZ>ˢ"8=Z>ˢ[ "8"U>"U>ˢ8Y>=ˢ"[ 8"U>"Uˢo8Y>νˢ"8j>h B߻gkh B߻伙̾̾"C߻##h j"C߻h k>C߻g̾>C߻#Jjh ?C߻Efj>h ?C߻gEf>>C߻JJh ?j>C߻Efgh ?j"C߻Ef>̾"C߻J#jv< ;7=L ;Pjv<7= Pjv<7=c4xc4<7=Pjv ;7=Pjvp 7=xc4@c47= jv7=l ;jv7=@c4<"23"3?"34"4@"45"5A"56"6B"67"7C"78"8D"89"9E"9:":F":;";G";="=H"<="<I">I">?"?@"@A"AB"BC"CD"DE"EF"FG"GH"HI"G"H"F" E" D" C"B"A"@"?">"I"J J$ K# K$ L" L$ M! M$ N N$ O O$ P $P Q Q$ R R$ S S$ T T$ U U$ JU JT TS RS RQ QP OP NO NM ML KL KU %V 1V %W /W X% X. %Y -Y %Z ,Z [% [+ \% \* ]% ]) ^% ^( _% _' `% `& a% a0 `V!_`!_^!]^!]\!\[![Z!ZY!XY!XW!aW!aV!DATA,, p- DATApp- 4l           !!""# #<2&123'&34('45)(56*)67+*78,+89-,9:.-:;/.;=0/=<10I>2<>?32?@43@A54AB65BC76CD87DE98EF:9FG;:GH=;HI<=HGGFFE  ED DC CBBAA@@??>>IIHU$JUJJ$TJTT$STSS$RSRR$QRQQ$PQPP$OPOO$NON N$M NM!M$L!ML"L$K"LK#K$U#KU`%V&`V1_%`'_`&^%_(^_']%^)]^(\%]*\])[%\+[\*Z%[,Z[+Y%Z-YZ,X%Y.XY-W%X/WX.a%W0aW/V%a1Va0ME6 2p ` MECubeP7 t 8 S  7 R  Xs $FX0fA"&AΙ?DATAP7 0g DATA,7 8 DATAx8 8F?:2)@ZZ0r?Oq@{ !0r?N?{?n?ZXE?? !^>?^n?AzN?^@AzKq@^ !:2)@Z`> 6@ޢ{HE?6@ !{?>2)@H?ZZ$r?Rq@H?{ !,r?U?H?{?v?H?Z`E??H? !^>?H?^n?H?AzF?F?^@AzKq@F?^ !72)@F?Z > 6@F?ޢ{8E?6@F? !{8E?6@?V~mp; > 6@?~mp;72)@?ٯ'Pp;@AzKq@?Vp;AzF??p;n??ٯٯp;>??ₒp;`E???Vp;?v??'Pٯp;,r?U??~mp;$r?Rq@?~mVp;?>2)@?'P'Pp;??O$@Ι?NNz<?@Ι?L% zD??Ι?L%z??J?Ι?Nz=?o?Ι? z>o?Ι?zD== J?Ι?z?Ι?z@Ι? zB==O$@Ι?Nz`>=0@Ι?L%z=?=0@Ι? L%z)?y@Ι?HE?6@n`> 6@Un:2)@Q@AzKq@EAzN?EUn?>?UEXE??E?n?Q0r?N?nU0r?Oq@n?:2)@QQ?к$@ΙφX>?@Ι' φX>?WL?Ι'Yφ?Dt?ΙφH{>?K?Ι =φ>K?ΙY=φ"=Dt?Ιφ@WL?Ι=Yφ@@Ι=ا φ"=к$@Ιφ>"0@ΙY'φ8{>?"0@Ι 'φ*?y@Ι{A 2k'Q,A!Ҿ2ko@*32ks@2kfQ3ZA &2kn Q<@o2kq9*n@"׿2kuS*[>As2kP A2kʣۤN@2kF5]Hۤ>k@r2kʻ~AL2k45EHcEA)\2k4bj@2kH|B@,g2k2*A* 2kHʎb@)X2k8V@ɹ2krSGY@ М2kW @Ly#2k@!x@nN2k`@~Ly2kRt"@K+2kBrVڢP@X2kH&ފc@72ky}@fj2kj:CB@ 2kD?tӿ2kqj8;@Č2kJMc."ض?0 ?2k;? =2k@ ]>@N?2kUE@)?2kG8A>8@2k`:?*N|@2k`I/p:ޫ?2k-久@J@2k' )r?ڈ@2k5H8'~@2kݖǽ>Th@2k5IK] ALAi2k1NK0!>(&AT{T"&Ah2koW"&A!{0!>(&A}AwFjǽ>Th@Jg )r?ڈ@Kgp:ޫ?`:?*N|@*hkE@)?'M>@N?4y';? =1b-j8;@Č3mAD?tӿ0Zy}@fj6hSaP@X2ļ"@K+5? ~`@~Ly1 @Ly#4ЩvY@ М1@ɹ4v b@)X4 Q2*A* 2gj@4gcEA)\/K~AL4Kg>k@r2M@2KgA1[>As:U~n@"׿4aQ<@o1EHZA &/Cs@4|{!o@*33,A!Ҿ3d{A 0,{A  ]'Qvb,A!ҾL]vbo@*3V]?`s@j]fQ3?`ZA"&]n bQ<@o8]q9`n@"׿^]uS`[>As]P bA0]ʣ%[M@F]F5]H%[>k@rJ]ʻC[~ALj]45EHC[cEA)\]4[j@h]H|ʾZ@,gt]2*A( B]Hr[b@)Xb]8V[@ɹj]rSG[Y@ М8]j @Ly#j]@Fk!x@lN:]`@~Ly<]Rt\"@K+t]BrV&]P@X@]HZ܊c@7@]y}@fj|]j:C\[B@ V]D?tӿ]ʏZj8;@ČP]JMc.Zض?0 ?.];? =4]@ ɣZ>@N?d]UZ@)?\G8Z>8@\\:?*N|@\`I/x]p:ޫ?V[XZ@J@[ )r?ڈ@[5HZп@ [$ߧ8'~@b[ǽ>Th@N[4IZ8ALXr#X2AWABX1KZ0!>(&AW9X$["&AXm3;9&AX35X0 qPAz@{n?ǧvbqPA< @}n?Y;vb @D @{n?f4!B@` @|@{n?f4߽@`\\AI@{n?09d:b@I@yn?rx?`@?{n?rɈ`Y\A?n?09ŀb%A?{n?Y%[%A%@{n?$%[%A@{n?YC[%A;?}n?BC[WA@{n?[@@{n?EZZ .@@{n?0fA@}n?Yr[x@aO@{n?2WN[z@V@{n?2W[ܹ@⦷@yn?̿jܹ@|4@{n?hFke@[@zn?0G@Λ@yn?¯?\/G@V@{n?X&]J@@yn?IޞSZ: @%@zn?J@bZ@{n?\[^@]@yn?>Q@@xn?x(VZXs@>@zn?"ԬZ?A$@xn??&@R@wn?VZ'?7?yn?4Z%7@rn?YZ7?sn?ؾ`Ltn?4y]7@hn?1g{HٿV?in?cR}|Ljn?Zp#~?gn?^"z(ٿLhn?In?=8t=>[?ѣW4?Y?ߡE`̻]?f-(ٿLy?|L{?7@y?ؾ`L?<-D%7@?P'?7??J?&@R@?KzXs@>@?X1>Q@@? yJ@bZ@? ^J@@?#еv/G@V@?,P0G@Λ@?[ܹ@|4@?ܹ@⦷@?ڋ5z@V@?|Hx@aO@?|0fA@?@@?WA@?%A;??%A@?%A%@?%A??Y\A??Y@??@I@?a\\AI@?Yq[ @|@?}O @D @?}OQdqPA< @?\qPAz@?qPAz@0<ǧĊqPA< @pQ@@@<"Ԭ"?A$@<?&@R@< ,0fp3@<ŁlDATA,R S DATAPS 5                     " """""""" " " ""#" #""""""""""""""" " "!" !" ""!"""#"#$"$%""%"%&"!&"&'" '"'("("()")")*"*"*+"+"+,",",-"-"-."."./"/"$/"%0 $0 &0 '0 (0 )0 *0 +0 ,0 -0 .0 /0 <"1<" 1"12" 2"23" 3"34"4"45"5"56"6"67"7"78"8"89"9"9:":":;";";<";>"=>#<=":?">?#9@"?@#8A"@A#7B"AB#6C"BC#5D"CD#4E"DE#3F"EF#2G"FG#1H"GH#=H#=I!>I!?I!@I!AI!BI!CI!DI!EI!FI!GI!HI!JN MO LP KQ KR"LR"JS"MS"NT"OT"PU"QU"ST RU JV"KV"NY"QY"WX VY WZ"LZ"W["M["X\ O\"X] P]"Z] [\ \_"^_ X^ ^` ]`"_a"ab ^b bc `c"ae"de bd df cf"eh"gh dg gi fi"hj"jk gk kl il"jm"mn"kn no lo"np"pq oq"pr"rs"qs"rt"tu"su"tw"uv"vx sx"vw xy qy yz oz m{ z| l|"j}"{} |~ i~"h"} ~ f"e" c"a" `"_" ]"\" P"O" [" M"W" L" Z" Q" Y" N"V" K"J" U" T" S" R" """""""""""""""""""""""""""""""""""""""""""""""""""~"""}"|"""{ z ""y ""x""w""v"" m"p"{ r"r "t""w """""""" """" """" " " " "" "" "" "" """ "" """"""""" " "" "" ""  ""  ""  ""  "" " " "  " "  " " " "  ""  "   "    "  "  """""  " """ ""!" !"!""""" """""#" #"#"&"&"&"'"$'" $"'"$("("(")")"*"*"),","-"*-",."."0"-0".2"2"3"03"25"5"6"36"57"7"9"69"7:": < 9<":="? <?"=@"B"?B"C"CD"D"BD" !   "   #& '* $% %* () %) %+ +, +- +/ ./ /0 /1 12 13 14 45 46 48 78 89 8; :; ;< ;> => >? >A @A AB AC AE ="="= @"E @E"E"CE"E DATA,Xs t Col DATAt 4X         # !  "! #""#$%!"%& !&' '(())**++,,--../#/$0%$0&%0'&0('0)(0*)0+*0,+0-,0.-0/.0$/ <1 12 23 3445566778899::;;<<;>=;:?>:9@?98A@87BA76CB65DC54ED43FE32GF21HG1<=HI=>I>?I?@I@AIABIBCICDIDEIEFIFGIGHIH=MSTOSJNTKRUQRLPUJVYNVKQYLZ]PZWX]W[\X[MO\X\_^]X^`^_ab`^bcbaedcbdfdehgfdgighjkigklkjmnlknonmponpqprqprssrturrttwsuvxutwvqsxyoqyzm{loz|mj}{il|~jh}fi~hecfea`ca_]`_\P]\OM[[WZLWZYQNYKVVJQUUPOTTNSMJSLRRK~}~|{}|z{zyyxvwxvw==@@EEE=               ! ! " " # #&& '$' $(()*),-*,.0-.230256357967:<9=:?<B?CDDBEC!  !""&##&*'%$'*)($%(),)%++%*-.,+//+-02./11/035214413675488469:78;;89<=:;>>;<?@=>AA>?BCABDE@AEACDATA 9`RQERQEѪѪѪѪ۴ڴڴ۴}}IKKHKJHKJIKKRQERQERQE!!344IKKmqp344IKKmqpξ۴īξ۴ѪxīѪlkYxRQE!!lkYlkY!!DFFKNMxlkYKNM[^]īx[^]orrξīorrξmqp{~344mqp{~gjj344gjjTWVTWVGII!!GIIDFFosrKNMDFFosr[^]KNMosrorr[^]osrorrosrosrosrosr{~osrgjj{~osrTWVgjjosrGIITWVosrDFFGIIRQEss_HKJ}HKJHJJ}HJJ]`_]`_ڴѪڴѪRQEss_ss_|~}g|ywvby]`_WVIwvb]`_HJJ<<4WVIHJJ--(<<4//*--(AA7//*^]NAA7ss_~}g^]Non\~}g|on\|on\on\yon\ywvbon\wvbWVIon\WVI<<4on\<<4--(on\--(//*on\//*AA7on\AA7^]Non\^]N~}glkYRSJlkYRSJVWNlkYVWNlkYڱڱԭԭڱon\ڱ۲on\۲on\on\on\on\00*on\(*)on\00*on\on\vuaon\(*)+,,on\vuaon\on\on\+,,/0/on\on\on\on\/0/HICon\on\on\}on\HICHJIOOC}on\OOClkYOOCHJIHH>lkYOOCHH>jiXHH>TSFjiXHH>TSF`_P`_PTSFTSFTSF`_P+,'jiX`_P+,'33-lkYjiX33-55/HJI}lkY55/wvbHJIHIC}wvbHIC/0/}|f/0/+,,vua}|fDC:+,,(*)00*vuaDC:(*)z~}00*WZYz~}WZY۲խ۲ڱӫխԭ߸ڱԭ߸ӫڱӫڱӫ,--,--lkY55/lkY55/RSJRSJlkY55/lkY55/VWNVWN55/-..55/01+55/!"!55/56/,---..gji,--gjiӫ~ӫ56/~ӫ߸߸խӫpխp01+WZYDFF!"!z~}WZYDFFz~}DC:DC:}|f}|f770wvb770wvb55/55/33-33-+,'+,'01+-..56/!"!~gji-..56/gji~DFF!"!ruuDFFpruu01+pruurutrutruuDFFrutrutrutrutrutqutqutrutqutqttqttqut770qttpsspssqtt770pssptsptspssptsptsptsptsptsptsptsptsptsptsptsHJISUUNNBSUUNNB<<4<<4QQDlonQQDooapsslonooaHJIpsslonpssKMMloolonloolooKMM(*)lpoloolpolpo(*)"##mqplpomqpmqp"##!"!orrmqporrorr!"!qtsorrqtsqtsnrqqtsnrqnrq]`_nrq]`_]`_[^]]`_[^][^][^][^][^][^][^]!"!!"!"##"##(*)(*)KMMKMMpss899pssHJI899ooaѪooaQQDѪ<<4<<4QQD<<4NNBЪNNBPPCSUUnrqnrqЪHJIPPC<<4SUU<<4sr^IJCΧPPCiLLDЪϨnrqIJCnrqPPCͧiЪϨͧͧ<<4sr^ѪͧذѪذΧ899))%LLD899ooa))%žooa֮žԬ֮ͧԬͧ562[^]562ΧiIJCϨLLDsr^ͧIJCiϨͧ))%sr^LLDon\ͧ))%ذͧon\Χذon\on\on\on\))%ooaon\on\on\on\ooažon\on\on\on\ž֮on\on\on\on\֮Ԭon\on\on\on\Ԭͧon\on\on\on\ͧon\on\on\on\on\on\on\on\562on\[^]on\[^]on\562MEp 2X9 6 ^&$MECube.001ȭ @  8   P   2l?}?4~?|?DATA b DATA, 8 DATA+8 82/ ?Z,?{,?xOμ{ !/ ?h"X>ZZei>> !{<>{rVp"X>Z Oμ^ !^rV< +^Vi>+ !^/ ?X)>Z,?V)>{,?T)>Pμ{ !/ ?T)>H"X>ZZ{i>R)>> !{Z>{rVT)>"X>ZT)>Mμ^ !V)>^ sVX)> +^@i>X)>+ !^Vi>+o:< +:rV:: Oμ:orVp"X>: <>:{ei>>o:{/ ?h"X> : ,?xOμ{:o,?{:/ ? :/ ?X)>,?V)>,?T)>Pμ/ ?T)>H"X>{i>R)>>Z>rVT)>"X>T)>MμV)> sVX)> +@i>X)>+!&'>V)>v%@i>X)>+2+ +փ sVX)>Ӄ#V)>ۤ+wT)>MμҌ17rVT)>"X>AO>]OZ>6@s{i>R)>>Nz++[/ ?T)>H"X>rrd#-,?T)>Pμ1|Y,?V)>'r#g/ ?X)>Xab$?h e!?j !?jgD?b$?j7>  Ѕ>j'>?=j'>@E6j7>e _j3D&?fj&VE6h|ee2=hݱ &…>h ?&r>hU%=hU]f0h|>>j񚑾UjUFf0j2>>/%=j>r>j>FY>j2>{?j{?jFY>h>FY>dxG>{?dxG{?dxGFY>dxG2>r>hxG>/%=hxG>Ff0dxG2>>dxGUdxG񚑾U]f0dxG{>>%=`xGUr>`xGU5>`xG5=`xGo%dxG:fݏdxGt_ݏdxGP.X%dxG'>5=dxG'>C>dxG'>P>dxG'>?dxGP.?dxG}P>dxG:P>dxG:Z?dxG}{?dxGP.{ !P>dxG'>ZZC>dxG'> !{5=dxG'>{X%dxG'>Z_ݏdxGP.^ !fݏdxGt^o%dxG:5=`xG^5>`xG !^5> !^5=^o%㾆:fݏu^_ݏ㾞P.^ !X%'>Z5=&>{C>&> !{P>'>ZZ?P.{ !?~{P>㾋:ZP>㾋:?~?P.P>'>C>&>5=&>X%'>_ݏ㾞P.fݏuo%㾆:5=5>cb>&=&EHå㾤å<oEG>=a>rb>a>. ?G>t&?㾫t&?㾭. ?K. ?KZt&?㾭{t&?㾫{ !. ?G>ZZrb>a> !{=a>{oEG>Zå<^ !å㾤^EH=&^cb>& !^cb>‰[& !^=‰[&^E‰[Hå‰[^åĉ[M^ !oEĉ[G>Z=ĉ[`>{rb>ĉ[`> !{. ?ĉ[G>ZZt&?ĉ[{ !t&?‰[{. ?‰[LZ. ?‰[Lt&?‰[t&?ĉ[. ?ĉ[G>rb>ĉ[`>=ĉ[`>oEĉ[G>åĉ[Må‰[E‰[H=‰[&cb>‰[&f>‰[#E=‰[#QJ‰[xs‰[ĉ[;?;Jĉ[> E=ĉ[Ј>f>ĉ[Ј>@K>ĉ[>?ĉ[;??‰[ @K>‰[}s@K>‰[}sZ?‰[ {?ĉ[;?{ !@K>ĉ[>ZZf>ĉ[Ј> !{ E=ĉ[Ј>{;Jĉ[>Zĉ[;?^ !‰[^QJ‰[xsE=‰[#^f>‰[# !^f>2~# !^E=2~#^QJ2~xs4~^4~;?^ !;J4~>Z E=4~Ј>{f>4~Ј> !{@K>4~>ZZ?4~;?{ !?4~ {@K>2~~sZ@K>2~~s?4~ ?4~;?@K>4~>f>4~Ј> E=4~Ј>;J4~>4~;?4~QJ2~xsE=2~#f>2~#>2~` |=2~^  2~p]4~ʆp]4~]u4~=t|=4~D _>>4~D _>>4~=@ ?4~F]u@ ?4~ʆ>2~>2~Z@ ?4~ʆ^ !@ ?4~F]u^>4~=>4~D _>^t|=4~D _> !^4~=Zp]4~]u{p]4~ʆ{ ! 2~ཱྀZZ|=2~^ !{>2~` {>:@C` {|=:@C] !{ :@CཱྀZZp]:@Cʆ{ !p]:@C]u{:@C =Zt|=:@CD _> !^>:@CD _>^>:@C=@ ?:@CB]u^@ ?:@Cʆ^ !>:@CZ>:@CV9؜@ ?:@CʆoGY@ ?:@CB]uJ>:@C=?&>:@CD _>(EY!t|=:@CD _> L#:@C =3ׂp]:@C]u06\p]:@Cʆ# :@C{|=:@C] h՗>:@C` "O\?H>>ZZ|gF?H>>{ !||.?H>>{P?H>>Z% ?H>> !^= ?H>>^ۮRP?H>> ^|.?H>>^ ^eF?H>>^ !ݮRN\?H>>Z=~Sh?H>>ޢ{%Sh?H>> !{R\?Q?ZZ|jF?Q?{ !{ |.?Q?{"P?Q?Z% ?Q? !^= ?Q?^خRP?Q? ^|.?Q?^ ^bF?Q?^ !RK\?Q?Z=~Sh?Q?ޢ{%Sh?Q? !{I17:?Q?%Sh?Q?=~Sh?Q?RK\?Q? ^bF?Q? ^|.?Q?خRP?Q?= ?Q?% ?Q?"P?Q?{ |.?Q?|jF?Q?R\?Q?I17:?H>>%Sh?H>>=~Sh?H>>ݮRN\?H>> ^eF?H>> ^|.?H>>ۮRP?H>>= ?H>>% ?H>>P?H>>||.?H>>|gF?H>>O\?H>>Â?={?|'CۚÂ?X=|'Qۚ3n^?:{?=?J,mC_c"n^?\X==?J,_cy?<{?v``OF d?:{?7?~]?; d?\X=7?~];y?X=v``Â?=v"n^?=7?!u=yVg>{?7?j>;3n^?-~?7?fx!Â?/~?vGz}?:{?t>\i1Fv?lX=t>\iϹÂ?=t>ɂ}=t>aÂ?-~?t>7}L?X=|"{L??{?|C{4?<{?=?j"._ZN 4?`X==?[OςJ 4?=7?S\a"L?=v!kL?1~?v|A4?/~?7?|L?=t>Xa L?/~?t>X=|"{@{?|C{Ǿ?{?=?-_[NǾX==? LυJǾ=7?^"=v'k4~?v|AǾ2~?7?|=t>O 2~?t>Pq=O v?U+P60> P6ypr)XՓ=|?Ѐ ;h?|?$>U"pE?`6ypX).?~;h?|?X?U".?q=O v?~GkE?60>] .?8Փ=|?1 .?8Փ=|?jOm.?~;h?|?.?q=O v?)/kE?60>M&pE?`6yp;h?|?P6ypXՓ=|?iOmPq=O v?)/P60>M&dy=(>! ƾƻ=9U"/L?\y=bvX)23?iz?DB?X?U"%3?ƻ=9Oq %3?=DB?0 u??X=|"{v???{?|C{(?<{?=?w"/s??=v**v??1~?v|A(?/~?7?|{??/~?t>9?`6ypA)`#?~;h?|?;z%)`#?~;h?|?9?`6yp`#?8Փ=|?jOm`#?q=O v?S39?60>M&??\y=bvAz(?iz?DB?;z%侈X=|"{ @{?|C{c?{?=?w"/=v** 4~?v|Ac2~?7?|2~?t>׾P6ypA;h?|?;z%;h?|?׾P6ypXՓ=|?iOmPq=O v?S3׾P60>M& dy=bvAܙiz?DB?;z%X=|"{@{?|C{?{?=?Cl =v,b4~?v|A2~?7?| =t>YF2~?t>i8t> q 8v\1 8t>"|y@{?||C_'?{?=?kCl'X==?e!rX=|c4~?v|A'2~?7?|2~?t>8v9ea87?S4Nkw*?A+Q*gei%viK>BҒi@{?|AUZa>{?=?ҚBc.^=:?j 8vس"X[87?L.bIkw*?)K7 meeiۈTpgK>-ƈ4t?:{? ?0f~C6%t?`X= ?0f6%n?= ?o` n?-~? ?o| x=?= ?b=?/~? ?ھ= ?ھ2~? ?ξ;iwD?a>ń7?;iwD?t|7ń7?;iwD?'#ξ;iwD?'#پ৳=z? u=?=z?zlM1?/~? ?q,?;iwD?'#ɾ2~? ?;iwD?'#2~? ?LQ2~? ?V?n=ϏS]q2~? ?.|j XV?"`p=) ?y-m8 ?;[y+t|? ?BAA$aE 8 ?y>=" |U=t|?U;iwD?.9q,?;iwD?a8Pq=O v?u [a`#?q=O v?R Ra8Qmy?u [a`#?hQmy?R Rar,?jE?a8jE?.9r,?jE?S jE?S 8Qmy?S `#?hQmy?S b;0?X=|"{c;0??{?|C{?<{?=?w"/`;0?=v**c;0?1~?v|A?/~?7?|g;0?/~?t>#n*?`6ypAn?~;h?|?;z%n?~;h?|?#n*?`6ypd?8Փ=|?jOmd?q=O v?D:n*?60>M&h/?\y=bvAY}?iz?DB?;z%c#?/~? ??;iwD?'#?;iwD?Ad?q=O v? \e?hQmy? \?jE?A?jE?S e?hQmy?S cľX=|"{Zľ@{?|C{)?{?=?w"/eľ=v**Zľ4~?v|A)2~?7?|_ľ2~?t>~#P6ypA ;h?|?;z% ;h?|?~#P6yp XՓ=|?iOm Hq=O v?D:#P60>M&*ľdy=bvA?tiz?DB?;z%2~? ? ;iwD?'# ;iwD?A Hq=O v? \ 8Qmy? \ jE?A jE?S 8Qmy?S DATA,P  DATA5 5l# ## ############# ## ## ## # # # ######## # # ##### ## ## ########### # # !#!#!"#"#"##1#1<# <#2#12#3#23#4#34#5#45#6#56#7#67#8#78#9#89#:#9:# ;#:;#;<#/1#$/#$<#.2#./#-3#-.#,4#,-#+5#+,#*6#*+#)7#)*#(8#()#'9#'(#&:#&'#%;#%&#$%#%0!$0!&0!'0!(0!)0!*0!+0!,0!-0!.0!/0!">#=>##=#!?#>?# @#?@#A#@A#B#AB#C#BC#D#CD#E#DE#F#EF#G#FG#H#GH#=H#=T!IT#HI!IJ#GJ!JK#FK!KL#EL!LM#DM!MN#CN!NO#BO!OP#AP!PQ#@Q!QR#?R!RS#>S!ST#SV#UV#TU#RW#VW#QX#WX#PY#XY#OZ#YZ#N[#Z[#M\#[\#L]#\]#K^#]^#J_#^_#I`#_`#U`#Ul!al#`a!ab#_b!bc#^c!cd#]d!de#\e!ef#[f!fg#Zg!gh#Yh!hi#Xi!ij#Wj!jk#Vk!kl#kn#mn#lm#jo#no#ip#op#hq#pq#gr#qr#fs#rs#et#st#du#tu#cv#uv#bw#vw#ax#wx#mx#m#y#xy#yz#wz#z{#v{#{|#u|#|}#t}#}~#s~#~#r##q##p##o##n#############~##}##|##{##z##y###!#!#!#!#!#!#!#!#!#!#!#!#########################################################################!#!#!#!#!#!#!#!#!#!#!#!#########################################################################!#!#!#!#!#!#!#!#!#!#!#!########################## # #  # #  # #  # #  # # ########################## ## ## ## ##  # # #!""-.""#"./"#$"/0"$%"01"%&"12"&'"23"'("34"()"45")*"56"*+"67"+,"78"!,"-8""."!-"#/"$0"%1"&2"'3"(4")5"*6"+7",8"8:":E"-E"7;":;"6<";<"5="<="4>"=>"3?">?"2@"?@"1A"@A"0B"AB"/C"BC".D"CD"DE"9D 9E 9C 9B 9A 9@ 9? 9> 9= 9< 9; 9: !R"GR",G"GH"+H"HI"*I"IJ")J"JK"(K"KL"'L"LM"&M"MN"%N"NO"$O"OP"#P"PQ""Q"QR"FR FQ FP FO FN FM FL FK FJ FI FH FG ST"UV"XY"WZ"SW"TZ"T["S`"U_"V\"UX"VY"X_"W`"Y\"Z["Wa"Zb"[c"`e"ab"ae"bc"Tf"Sg"Uh"Vi"\j"[k"`l"_m"cn eo fg hi"fk gl hm ij"kn"lo pq rs"pu qv rw st"ux"vy {|"z}"}~""""""""""""~"|"}""z"""{"x"{"t"z"u"|"s"}"r"~"k""h""j""n""i""      f"g"h"k"l"m"o """""""       ""       p"q"r"u"v"w"y |"~""""""       ""       p"q"r"u"v"w"x y     " """""" ""    "" """""" """"" """""""]d"^""]"]"]""^"^" ""d""""d""t" s"X"a"Y"b"\"c"_"e"j"n"m o t"x"w y z"{"""""""""""  "   "     """"""d""""^""""""       """"""         "   """"""""""""""""""""""""  " " " " """   """""""      "  "            ""  "" """"""""""""    !" !""" ""#" #"$" $"%" %"&"&"'"'"( ( ) ) * * +"+",","-"-"."."/"/"0"0"1"1"      "#"!$"#% %& $' ( !( ) ") * * '+ +,"&-"-. ,/ /0".1"01 DATA,  @  DATA,@  4?         #     !!""# 1<2132435465768798:9 ;: <;<1/$12./23-.34,-45+,56*+67)*78()89'(9:&':;%&;<$%0%$0&%0'&0('0)(0*)0+*0,+0-,0.-0/.0$/#">="!?>! @? A@BACBDCEDFEGFHG#=HH=TIGHIJFGJKEFKLDELMCDMNBCNOABOP@APQ?@QR>?RS=>STTSVUSRWVRQXWQPYXPOZYON[ZNM\[ML]\LK^]KJ_^JI`_ITU``Ula_`ab^_bc]^cd\]de[\efZ[fgYZghXYhiWXijVWjkUVkllknmkjonjipoihqphgrqgfsrfetsedutdcvucbwvbaxwalmxxmywxyzvwz{uv{|tu|}st}~rs~qrpqopnomn~~}}||{{zzyy                      !-.""./##/0$$01%%12&&23''34((45))56**67++78,-!,8-8:E87;:76<;65=<54>=43?>32@?21A@10BA0/CB/.DC.-ED9DE9CD9BC9AB9@A9?@9>?9=>9<=9;<9:;9E:,!RG+,GH*+HI)*IJ()JK'(KL&'LM%&MN$%NO#$OP"#PQ!"QRFRQFQPFPOFONFNMFMLFLKFKJFJIFIHFHGGRFTSWZ^UVYXS`WTZ[UX_^V\YWabZ]d`eaWc[ZbgSTfUhiV[kfTSgl`hU_mj\Vicnk[`loe~}}z{|ux|{tsz}sr}~nkijhifgkflghmlokhpqupvqrwvy~|u|r~pqrsupvqrwtsxuvyd]]]abXYd^ea_X\Ycb^j\ncoem_z{xt{zjnomywtxywd             "# "#!$!  $ #% #%&%& %'$ '$(( !(!())")" )* * **'+'++,+,&-&--.-.,/,//0/0.1.10101MEX9 2C p MECube.002He= : B < ? : 0>  hA $ &'>d&v%V>>V>DATA: 0g DATA,:  < DATA < 8. ?.KZt&?,{t&?({ !. ?"G>ZZrb>b> !{=b>{nEG>Zå 0^ !å$^E(H=,&^cb>.& !^cb>H& !^=H&^EHHåH^åHH^ !nEHG>Z=H`>{rb>H`> !{. ?HG>ZZt&?H{ !t&?H{. ?HLZDATA,0> ? DATA? 5$######## # # # ## # # # # # ##################DATA,hA B DATAB 4     MEC 2 X9 MECube.003bH E ~ F  PE X  `}   $&'>d&v%?>?DATA E b DATA,PE F DATAF 8 . ?.KZt&?,{t&?({ !. ?"G>ZZrb>b> !{=b>{nEG>Zå 0^ !å$^E(H=,&^cb>.& !^cb>H& !^=H&^EHHåH^åHH^ !nEHG>Z=H`>{rb>H`> !{. ?HG>ZZt&?H{ !t&?H{. ?HLZI?-GԾnKU+?*v%I?%B=n?> 8>?n&&'>9\>ⷽ9>nnΌ$B='?s"v%xΌ&GԾ'"㷽*d'&'>-h*>.h?'. ?p&L>Hi?'db>p&&f&'>Hi*=l&&m"㷽He'Ef&H|xΌHGԾ'å`&fk@sHv%åZ&@monΌH!B='?mEX&G>|ⷽH7>n=X&a>k@n%&'>H7\>rb>\&a>o?>H6>?n. ?`&G>I?H B=n?t&?h&nKU+?Hv%t&?n&?I?HGԾn>p&w0Մ&'>n&u*Dn㷽i&rΌc&&GԾՄ"]&v%[ΌY&pB=|6㷽X&T>"+{%&'>Z&R\>[CY>_&S>|oW?e&XB=+{0XU+?k&v%CYDW?o&/GԾo?.K!dFc!?,I뵾w&g)*?+7h~g)*?)Ľ~c!?&=w.?$>!dO">!u>O!dö> x>.wj>r>~}=r>~x>&wu>F!ds>ߛOޠ=.,!Ľl,#%hl栛%A뵾&1s'KߛF)Fߛ~+ &|=,)lj>.)l">.Oߛö>. .. ? L:;#. ?CL:;#ö>H .">HOߛdb> &db>C&j>H)l|=H)l= &VG=C&VG~H &HFߛE H#ECH#1sHKߛF栛HA뵾&å #åؘC#,H%hl,HĽlå 8G@åԘCHG@ޠH=.sH>ߛOmE G>lmEјCG>lHu>F!dHx>&w= b>#{=ҘC`>#{}=Hp>~j>Hp>~rb> b>@irb>՘C`>@iö>Hx>.w">Hu>O!d. ? G>l:;. ?ژCG>l:;?H>!dOc!?H=w.t&? {t&?C{g)*?HĽ~g)*?H8h~t&? iVt&?CiVc!?HJ뵾w&?H K!dF">p& F> p lö>p& #>Cplj>p&);&'> n*C|=l&)\&'>Co*C k& E0J㷽 k h&J㷽ClOse& KFΌ GԾl`b&L뵾#44ΌݘCGԾl`,_&$h;N v%C#,\&ĽgטCv%C#젛[&=0v|Ό HB= Z9sX&*>O|ΌӘCHB=ZX&Љu>~㷽 F>`x@X&x>44t㷽ҘCF>`x}=X&~>Nd%&'> F\>#vj>\&~>gK%&'>ԘCD\>#vö>]&x>v/> F>Z U">_&̉u>O8 >ؘCD>ZU?b&">~ P? 8B=x c!?f&=tP?ޘC0B=xn)*?i&ĽdRU+? v%vn)*?l&6hK\RU+?Cv%vc!?m&T뵾/EP? %GԾU ?p&)K8 P?C&GԾU"> -! ö> i x">C- ö>C i (xj> ) ! g|= )AЏj>C) g|=C)A(Џ 9! Þ 98C 9ÞC9(8Is K! .𠛾 H뵾xIsޘC K.𠛾ۘCH뵾x(, &hg! , ĽЏ4,ؘC'hg,֘CĽЏ(4蠛 =Þ! L5s ,>8e蠛ҘC=ÞL5sӘC,>8(e ̉u>.! s x>{ҘC̉u>.sҘCx>({}= |>! zj> |>40p}=ԘCx>ߙzj>ԘCx>4(0pö> x>L! =a"> ȉu>eFö>טCx>L=a">ژCĉu>e(F? $>s! -c!? ȥ={i ?ݘC >s-c!?C={(i l)*? Ľz! l)*? 8h0pAl)*?CĽz l)*?C9h0p(Ac!? P뵾=a! 9? (KF9c!?CQ뵾=a9?C)KF(: ?.P'1^W4?.ݯ$jx2$?,륾&z?,(hžsۗ(?,R| 0+?*EG ۗ(?(y|0+?*X2$?'j:&z>&?&=s'8 ?#wa/>1^V4?$ =$jG>"Mq_>V1^>  ̄>G$jæ> >>&&z?> >'8s>Z>|fH>>=؄=Z> |V>> D:>&z>x>s-Oq_>W1^ ̄>x$j]|a/>ϡVB.=ܕG= j:څ>&۔='8 x<"GP $H >"EGP =$륾څ۔& hž](J'ϡWL&ׯܕx-( Wϡ-*N!xܕRD:,#څx*ׄ=,+( V>,M* P>.+(HH>.N*P>. Vϡ>.R!Gܕæ>.$#>&څ?>."'8. ?$LZ. ?7L. ?J6FLZ. ?-#5Læ>H$#>&څ?>H#'8>H Vϡ>HR!Gܕdb>$& !^db>7&fdb>J6F& !^db>,#5&f>H+(GH>HO*Pׄ=H+( V>HM* P=$&^=7&m=G6F&^=)#5&mRD:H #څxH-H Wϡ-HN!xܕE$HE7H|EB6FHE##5H|]HJ'ϡWL􃾢Hׯܕx=H륾څ۔H hžå$^å7fk@å<6F^å#5fk@ HH >HEGP  Hy<HHPå$4^ !å7&۔H='8]H|a/>ϡVB􃾚H-=ܕGnE|$G>ZmE7G>|nE66FG>ZmE#5G>|-HOq_>W1^H ̄>x$jD:H>&z>xH>s=}$b>{=7b>k@n=66F`>{=#5`>k@n=؄=HX> |V>H> >HX>|eH>H>rb>$b> !{rb>7b>o?rb>86F`> !{rb>#5`>o?æ>H>>&&z?>H>'8s>HIq_>V1^>H ̄>G$j. ?$G>ZZ. ?7G>. ?=6FG>ZZ. ?#5G> ?Hsa/>1^V4?H=$jG2$?H4j:&z>&?H}=s'8t&?${ !t&?7nt&?B6F{ !t&?$#5nۗ(?H!y|0+?HYۗ(?HR| 0+?HEG t&?${t&?7?t&?F6F{t&?*#5?2$?H륾&z?H)hžs ?HR'1^W4?H߯$jx>p& O>p&^!~>$l?'>7t0Մæ>p&(#s?>p&.y0>J6Fl?'>-#5t0Մ>p&+(mlHH>o&W*$b׭&'>$k*&'>7r*D؄=l&+(GV>m&W*8Vg&'>H6Fl*&'>+#5r*D:D:l&"#;(xj&(+Ƈ6㷽$h'\㷽7n-g& Sbh&X!_6㷽D6Fh'\㷽o]f&N'Obd&Ό$GԾ'Ό7!GԾՄ"=a&륾۔b&/hž0Ό@6FGԾ'Ό #5!GԾՄ" `&HQ^&EG׭ܝz$v%7v%[ [&yUO\&Jgȩz:6Fv%#5v%[=Z&Vj:۔Z&*=ƇuΌ$6B='?Ό7\B=|]X&a/>SWX&d=uΌ76F4B='?Ό#5\B=|-X&_q_>.X&"̄>ⷽ}$@>n$㷽7M>"+{D:X&>8xX&>&ⷽ66F>>n$㷽#5M>"+{=؄=X&`>DV>Y&>ܝ)R&&'>$@\>%&'>7L\>[CY>\&`>U jdH>[&>ȩ^%&'>86F>\>%&'>#5K\>[CYæ>\&>q?>^&>:x>$?>?n>7L>|o>`&Yq_>>_& ̄> }>;6F=>?n>#5L>|o ?a&}a/>>?d&P=~L?$$B=n?T?7HB=+{02$?g&кj:8s?f&=&yL?@6FB=n?T?"#5DB=+{0ޗ(?h&!yDml:+?j&Y)R$bNU+?$v%UU+?7v%CYEޗ(?m&Q jG:+?l&EG^8VNU+?E6Fv%UU+?(#5v%CYE2$?n&륾q;?n&8hž:x+L?$ GԾnT?7*GԾo ?p&V' >?p& }_L?H6F!GԾnT?,#5*GԾo> j">$Oߛ> Y!_">7 F?> *?T ö>$ .æ> '#E* ö>7 #>C j7">-#5 F>CY!_ ">J6FOߛ?>C*?Tö>-#5 #æ>C'#E߉ö>J6F .> +(<Ǔj>$)lHH> S*+j>7);V> R* ,|=$)lׄ= +( * r|=7)\>C+(<7Ǔj>,#5);HH>CS*+ j>I6F)lV>CS*,|=*#5)\ׄ=C+( r|=H6F)lD: "#I$ &x $7 E0Q T!l $Fߛ- * w7ںD:C"#I7(#5 E0xC% ଅF6F &QCU!lߙ$#5-C wC6FFߛ] N'=s$KߛFY ߯⾕Ls7 KF۔ (hž 렛$D뵾&= 륾* _򠛾7J뵾#44]ߘCN'7Ls"#5 KFYޘC߯⾕ =s@6FKߛF۔ܘC(hž򠛾#5J뵾#44=ژC륾_렛>6FD뵾& IǓ,$&hlI EG,7%h;NG G, {,$Ľl xr* ,7Ľg ؘCIǓ7,#5&h;NIؘCEG ,;6F&hlG֘CI,{,#5Ľg ՘Cyr,:6FĽl= j:㠛$ܥ=.۔ =ꠛ7=0vO S= $(s~$">ߛO] a/>w* 57s7+>O=ӘCj:7ꠛ#5=0v۔ҘC= 㠛76Fԥ=.OӘCS=ߔ$7s#5+>O]ҘCa/>w5(s66F">ߛO- ]q_>y?}$u>F!d ̄>kN7Ήu>~x > Z}$x>&wRD: >_* wf$7x>44t-ҘC]q_>7x?#5Ήu>~ҘC̄> kN66Fu>F!dxҘC>Z$#5x>44tLD:ҘC>_wf66Fx>&w;؄= _>9l}=~$w>~V> >s}=7}>NdfH> >{ xj>$w>~> _>* {j>7}>gK;؄=ӘC\>79l}=#5{>NdV>ԘC > s}=76Ft>~fH>ԘC >{xj>#5{>gK>ԘC\>ߎ{j>86Ft>~æ> >{ö>$x>.w?> >Tzö>7x>v/> ̄>$ gv">$u>O!d> Xq_>5* o">7ʉu>O8 æ>֘C>7{ö>#5x>v/?>ؘC> Tzö>:6Fx>.w>٘C̄>$gv">#5ȉu>O8 >ژCUq_>5߉o"><6Fu>O!d ? a/>y?j?$>!dO:? C=kN_?7#>~ ? ̌=Z ?Tc!?$=w.2$? j:wf* Ec!?7ԥ=t ?ܘC|a/>y?7j? #5!>~ :?ޘC;=kN _??6F>!dO ?ߘC=Z?Tc!?##5Х=t2$?C0j:wfߡEc!?B6F=w.ޗ(? y9l<j)*?$Ľ~6+? Ws+m)*?7Ľd6+? EGx j)*?$8h~ޗ(? R{*  m)*?77hK\ޗ(?C!y9l7<m)*?Ľd6+?CYs +j)*?D6FĽ~6+?CEGx߅m)*?)#58hK\ޗ(?CR{ j)*?F6F8h~2$? 륾{Ic!?$L뵾w& ? 0hžTzc!?7R뵾/E:? gv l?$#K!dF ? V'o* ?7(K8 2$?C륾{7Ic!?*#5R뵾/E ?C2hžTz c!?H6FN뵾w&:?Cgvl?,#5)K8  ?CV'o?H6F$K!dF>$ Vϡ>$W!Gܕ>7 O>7]!~?>$&'8æ>$'#>&څ?>7,y0æ>7)#s>-#5 O>-#5]!~>J6F Vϡ>J6FW!Gܕ?>-#5,y0æ>,#5)#s?>J6F&'8æ>J6F'#>&څ>$+(HH>$Q*P>7+(mlHH>7U*$b׭V>$O* Pׄ=$+( V>7U*8Vgׄ=7+(G>,#5+(mlHH>,#5U*$b׭>J6F+(HH>H6FQ*PV>*#5U*8Vgׄ=*#5+(GV>H6FP* Pׄ=H6F+( HD:$!#څx$!D:7##;x7&+ƇB$S!xܕ-$ Wϡ]7W!_-7 SD:(#5##;x'#5&+Ƈ.D:F6F"#څxE6F"]%#5W!_-$#5 SBD6FS!xܕ-B6F Wϡ]$M'ϡWT􃾈$ܯܕx]7O'O_􃾧7۔$%hž=$륾څ۔7-hž0=7륾]"#5O'O_!#5]A6FM'ϡWT@6Fܯܕx۔#5-hž0=#5륾۔?6F%hž==6F륾څ $I D$EGP 7HM7EG׭ܝB$GP $xK7Hgȩ 7yU #5IM#5EG׭ܝ <6FI D:6FEGP K#5Jgȩ #5yUB:6FIP 96Fy=$,j:څ>&۔$،='8=7j:۔7=ƇI~$C=ܕG]}$a/>ϡVT􃾜7_=]7a/>S=#5j:۔#5=Ƈ=86Fj:څ>&۔76FҌ='8T#5_=]#5a/>SI66FB=ܕG]66Fa/>ϡV-|$Yq_>W1^}$̄>x$j-7aq_>)7̄>dx}$>sD:}$>&zx7>&D:7>8-#5aq_>)#5̄>-66FXq_>W1^66F̄>x$jx#5>&~D:#5>8dx66F>sD:66F>&z;؄=~$]> |V>~$ > <؄=7a>DV>7>ܝ)RfH>$ >>$]>|dH>7>ȩ^>7a>U j<؄=#5_>DV>#5>ܝ)R:؄=66F[> |V>86F> dH>#5>ȩ^>#5_>U jfH>86F>>86F[>|æ>$>>&&z?>$>'8sæ>7>q?>7>:x>$̄>G$j>$Uq_>V1^>7̄>}>7\q_>æ>#5>q?>#5>:xæ>96F>>&&z?>:6F>'8s>#5̄> }>#5Zq_>><6F̄>G$j><6FRq_>V1^ ?$}a/>1^V7?$5=$jG ?7a/>=?7M=~?$=s'82$?$j:&z>& ?7=&y 2$?7ºj:8s ?#5~a/>=?!#5I=~ ?>6Fza/>1^V7?@6F.=$jG ?"#5=&y 2$?$#5j:8s?A6F=s'82$?B6F.j:&z>&ܗ(?$y|3+?$Xޗ(?7yDml8+?7X)R$b3+?$EG ܗ(?$R| 8+?7EG^8Vޗ(?7R jGޗ(?%#5!yDml8+?'#5Y)R$bܗ(?C6F y|3+?D6FY8+?(#5EG^8Vޗ(?*#5R jG3+?F6FEG ܗ(?F6FR| 2$?$륾&z?$-hžs 2$?7륾q; ?75hž:x+7?$$jx ?$U'1^W=?7}_ ?7W' 2$?*#5륾q; ?+#55hž:x+2$?G6F륾&z?H6F/hžs=?,#5}_ ?,#5W' 7?H6F$jx ?I6FU'1^W:?N4Y]TB`8?.AXiȽ:?o&X]TB`?N4Gpj?-Ad*?o&GpjO"?M4ɾ8rO"?-Aɾ^+7O"?m&ɾ8r(?L4v.)0y(?,At9V־D(?m&v.)0y:?DY]TB`8? Xi8B?DGpj? dB*O"?Dɾ8rO"? ~ɾ^A7(?Dv.)0y(? t9V*ADKK-?L4H}KK-?,AH%MȽMKK-?l&H}u/?J4HYs/?*AHBWw/?k&HYu/?I4|fs/?*A|f5+_w/?i&|fKK-?H4t}KK-?'Atc(־~fKK-?g&t}KK-?DH}KK-? H%M8BMu/?DHYs/? HBBWu/?Dzfs/? zf5A_KK-?Dt}KK-? tc(*A~f(?G4 ;0y(?%A;Ƚi(?g&@;0yO"?$Aǐ=w lO"?E4ǐ=_rO"?f&ǐ=_r?#A>+m?D4>pj?d&>pj8?!A2<>־l:?@44<>B`:?a&2<>B`(?D@;0y(? ;8BiO"?Dǐ=_rO"? ǐ=w Bl?D>pj? >Am:?D6<>B`8? 6<>*Al;(?A*m>;Ƚi<(?>40m>\T;(?`&.m>\T>AɌ>@d>>4Ɍ>G>_&Ɍ>GD>AQ>0+^H>=4Q>78J>^&Q>788٩>A)>n־9V:٩><4)>І.):٩>\&)>І.)<(?D2m>\T;(? .m>;8Bi>DɌ>G> Ɍ>@BdH>~DQ>78D> Q>0A^:٩>|D)>І.)8٩> )>n*A9V·>A6H>>Ƚ%M ·>:4:H>u ·>\&:H>uD6J>A|>}BB6J>:4|>GYB6J>[&|>GY>A|>h+5 >94|>G >Z&|>Gz=A6H>־c(z=94:H>uz=Y&:H>u ·>{Du·> :H>>8B%MA6J>{D|>GYC6J> |>}BB>zD|>G> |>hA5z=yDuz= :H>*Ac(ĬA)>Ƚ@Ŭ84)>І@ŬY&)>ІxhAQ>-w h84Q>7_hY&Q>7_joAɌ>=+po84Ɍ>toY&Ɍ>T:A2m> ־T:746m>T:Y&6m> ŬxD)>ІĬ )>8BhxDQ>7_xh Q>-Bw poxDɌ>jo Ɍ>=AT:xD6m>T: 2m> *A,lA<<>PȽ<,l84><>,lY&:<>A>@94 >Y&>yAǐ=|+0y94ǐ=_7y[&ǐ=_7JQA;ǩ־nLQ94;ІLQ[&;І,lxD><>,l <<>P8B<zD >񋾚 >B@yzDǐ=_7y ǐ=|A0LQ{D;ІJQ ;ǩ*AnppARt۲Ƚ>rp;4Rturp\&RtuAlf}Ĥ=4lfGȤ]&nfGĤAH+hȤ>4HYG̤^&HYGvpA?־xp?4?uxp`&>urp|DNtupp Ht۲8B>Ĥ}DlfG jfB}Ȥ~DHYGĤ HAhxpD>uvp @*ARQ AjȽTQ@4l.)ІTQa&l.)Іy"Avɾ-yB4zɾ87yb&|ɾ87#A +=D4Gd&G,l$ATE־ ,lE4U\T,lf&T\TTQDl.)ІRQ j8ByDzɾ87y vɾB-񋾄DG񋾥 A=,lDU]T,l TE*A T:%AS2ȽPT:G4S2B`T:g&T2B`o'A *oH4 pjoh& pjh*A!7+|hJ4!r_hj&!r_Ȭ*AO(D־ǩɬK4O(0y ɬl&O(0yT:DS2B`T: S28BPoD pjo *BhD!r_h !7A|ɬDO(0yȬ O(D*AǩDz=,Af,MȽ۲Dz=L4g,}Jz=l&g,}>.Ay/W>L4y/>l&y/$6J>.Ay/_+$6J>N4y/Y$6J>n&y/Y͇>.Ai,~f־͇>N4j,}͇>o&k,}Dz=Dg,}@z= f,M8B۲>Dy/> y/WB#6J>Dy/Y#6J> y/_A͇>Di,}͇> i,~f*A,٩>/AO(iȽ.٩>N4O(0y.).٩>o&O(0y.)<>/A!l@>O4!r8B>o&!r8>/A m+>O4 pjG>o& pjG:(?/AX2l־E:(?O4X2B`\T:(?o&X2B`\T.٩>DO(0y.),٩> O(i8B@>D!r8<> !lB>D pjG>  mA:(?DX2B`\T:(? X2l*AENo?/AlNX?.Ax"+TX?N4x"mX?o&x"m#?-Aپi>%?,Aνt%?L4ĉ%?l&ĉX? w"+fATX?Dw"mNo? lAN%? 2Bt%?Dĉ#? پA>+?*A!.?,A]k//.?K4]kX.?k&]kX"0?*Av%;iԣ.?(AGνF.?H4.?h&.? ]k//fA.?D]kX+? !A.? G2BF.?D"0? v%;Aԣ+?&A׼Qٵ%?%AL!=Z%?F4`!=1ʼn%?f&p!=1ʼn#?#Aw=aiX?"AW!>gνCX?C4W!>MmX?b&W!>Mm%? X!=ZfA%?Dd!=1ʼn+? ׼QAٵX? W!>g2BCX?DW!>Mm#? w=aANo?A U>k=>A%c>m+=>>4'c>e=>_&)c>eY>A>mihp>AV>kνip><4V>]&V> 'c>mfA+=>D(c>eNo? U>kAhp> V>k2Bip>}DV> >mA~ܘ>Aٯ>h!t m>A>ec//r m>:4>~Xp m>\&>~X&&'>A >,\i;}=A>RνG}=94>~}=Y&>~s m> >ecfA//r m>{D>~X~ܘ> ٯ>hA!}= >R2BG}=zD>~%&'> ">,\A;x<Aٯ>'JQRAV>|>ZR84V>1ia.A)c>#νg.84*c>eM.Y&+c>eMR V>|>fAZRxDV>'JAQ. )c>#2Bg.xD*c>eM˽ >1AapSA U>rk]AW!>m_94W!>Me_Y&W!>MeAx=>imA!=-νk94!=1;v\&!=1;v] W!>fAm_yDW!>MepS U>rAk !=-2Bk{D!=1AmA׼uhRAwКecT<4x~V]&z~\Av%"i,\VA]k1νRX?4]kX~Z_&]kX~R rfAecT|Dv~ x׼uAhV ]k12BRXD]kX~\ v%"ėA,\Au'J !Aq|>@4Di>R*Af%tν-RK4f%ĉ1Rk&f%ĉ1H TfAHDmMqS hNArR f%t2B-RDf%ĉ1˽ $>A>h<,A *up}=.A.q}=L4.t}=l&.&'>.Aݶ/ԣi"U m>.A.Fν1T m>N4.XR m>o&.Xn}= .fAq}=D.h< *AuT m> .F2B1T m>D.X&'> ܶ/ԣA"pܘ>.A%*ٵu^p>/Af%q`p>O4f%ĉbp>o&f%ĉR>/A)i9>/ACνs9>O4m9>o&m^p> f%fAq`p>Df%ĉpܘ> %*ٵAu9> C2Bs9>DmR> )ΗA #?N4پ'#?n&پ' #?Dپ'"0?J4v%"0?j&v%"0?Dv% #?E4x=?'#?e&x=?' #?Dx=?'^>>4>nc>_&>n^>D>n&&'>:4(>&&'>Z&.>%&'>zD(>˽84>n?˽Y&>n?˽xD>n?94x=?nZ&,x=?nzDx=?nb=4v%h^&v%b}Dv%C4پn c&پnDپn˽I4('?,˽i&+'?˽D&'?&'>M4/&'>m&/&'>D/X>O4-']>o&0'X>D-'+?L4^+?m&^+?D^+?G4׼ !^+?g&׼ !^+?D׼ !^No?@4 U>ZNo?`& U>ZNo?D U>Z~ܘ>;4ٯ>{~ܘ>\&ٯ>{~ܘ>{Dٯ>{x<84ٯ>{ !x{ !x{ !pS74 U>ZZpSY& U>ZZpSxD U>ZZ:4׼ !{[&׼ !{|D׼ !{?4{`&{D{qSF4hZqSf&hZqSDhZhN4%*^pܘ>o&%*^pܘ>D%*^No?O4lNo?o&lNo?Dl > ?m&( | > ?ޘ( | > ?L( %Sш > ?1( | > ?<( %ш./>n&A -l./>ݘA -l./>KA -S=./>1A -l./>ګZǘz[\>ګZ5x[\>S/wګZ1z[\>ګZ|ڭ/wn?on<ǘɴ>?on<6ɴ>xSyn<1ɴ>?on<}<ɴ>xy]&ɴ>nk@ʘɴ>nk@8ɴ>TS[1ɴ>nk@<ɴ>T[ > ?`&r[\>| > ?Θr[\>| > ?=t[\>/wS% > ?1r[\>| > ?/w% -?f&om -?֘om -?DyS -?1om -?m&-}>ݘ'}>Kp-}>1'}><`p&'>l&G2D&'>ۘG2E&'>IG2Ǡ&'>1G2D&'>o|H\սZ&si>o| \ս6ci>|4\ս1li>o| \ս}`|&&'>[&>CY[%&'>ɘ>CY[%&'>8>Q8Qo&&'>1>CY['&'>~<>Q8`Qo8}>_&ri>+{"3}>͘ki>+{".}><di>nh>D3}>1ki>+{".}>nh`>D[ ?d&l=|[ ?Ԙ\=|[ ?@L=|[ ?1\=|[ ?D[ ?1n۾"Մ[ ?D`㒗D?KPetc>K>KvBl>m&>ݘ>KX1$bFg>K'~>K}*VJg>n& '0EHg>ݘ '0E><D?1><'z㤃>1 '0E~><}*V㜦X͈>JZb/GNc˞cn>I 1QxJ>I: 2>cn>n& 1\cn>ܘ 1\{j>I9 23/ѿ=I 1gdr=IWb/ ѿ=ۘ 1;ѿ=k& 1;cn>< 1QxX͈>1 1\J><: 2>@|j><: 23/)㓌ѿ=< 1zgѿ=1 1;hr=˞cĽ<2Iu"ǻ`&l\K ǻΘl\Kǻ:rgGĽ;Pv:rl jǻ˘rdǻ^&rdǻqN6'>ʆprs6hB>!PZ&'> ~PȘ'> ~*~<&<;}<0=\;10=tJ}q)N~<'>zpP1'> ~rs}!A5u>c -%6u><y2# 6S>.>%Z&u>8 O%ǘu>8 O4~6>j]LP *6>2 \| 6^>dY\ *ǘ>/vp *Z&>/vA}<u> -%}<u><y%1u>8 O2# }@.>4~}<>j)]LP *}<>2 z\|\ *1>/v }<\>dYr=6N>c5a)ҿ=8枼>&vj>8ޛ>uk-ҿ=ɘ枼>Kg/ҿ=Z&螼>Kg6cn>8枼>GfJ>8ޛ>msi͈>8N>jx5cn>ʘ枼>dN3cn>]&螼>dNr=~<N>5a+ҿ=~<➼>&v-ҿ=1枼>Kgj>~<ڛ>u@kJ>~<ڛ>)ms7cn>~<➼>Gzf5cn>1枼>dNi͈>~<N>jx>9^>cR{Pg>9>\OS>;>|Rg>]&>t44Rg>˘>t44><S>{><u>pY5F?= u>!w>_&u>~>͘u>~><\>R{Pg><>\OSRg>1>t44><>@|><u>pzY5>){>1u>~F?<u>!w.?>bB> -ceta??'>yX?@ >.>la?b&'>Oa?И'>O0(?C0=\|8$?BZݙ=]Lb\(+?D&y.?<`B> -eta?1'>OX?< >.>@l0(?<0=\|z8$?v1?g&sgv1?֘ sgu2?G"2Ims3/v1?Glf;/?Hxv1?j&lN;v1?٘lN;v1?< svQ;/?<l5aGNv1?1 sgu2?<k@>u2?<"2Ims)3/v1?ݘzB}>m&|B}>ݘZ1$:x>m&^1$:x~>ݘ*q~>n&}*qD?1P>1zB}>1Z1$:x~>1*qX͈>ܘZb/ jUX͈>n&\b/ jUJ>ܘ< 2^ȩJ>m&> 2^ȩ|j>ۘ< 2)Rܝ}j>k&> 2)Rܝhr=ۘXb/Dnr=k&Xb/DX͈>1[b/ jUJ>1< 2^ȩ}j>1< 2)Rܝhr=1Xb/D ژy*8 k&w*8~~ؘT1$&~i&V1$&T# ؘtBV# h&vBA֘JAg&K 1y*8~1T1$&T# 1tBA1Js՘`lSsf&_lS6Ә꾡6d&꾡ZҘ˾Ƈ]b&˾Ƈ*И8*b&8s1`lS61꾡Z1˾Ƈ*18XvϘUXva&UĽ͘2IȩgĽ_&2IȩgĽ͘ܝ׭Ľ^&ܝ׭Rv˘xlRv]&|lXv1UĽ12IȩgĽ1ܝ׭Rv1zl*ʘ&<*\&&<Oɘݙ=0S\&ݙ=06ɘ >6Z& >xsǘjB>OtsZ&hB>O*1&<O1~ݙ=061 >xs1lB>OAǘu>S AZ&u>S 8# ǘY>_<# Z&\>_F~ǘ>Ƈ+P~Z&>Ƈ+ ǘ^>; Z&^>;A1u>S 8# 1Y>_F~1>Ƈ+ 1^>;r=ȘN>Gr=Z&N>Gj>ɘ>g8Vj>[&䛾>g8VJ>ʘ>׭$bJ>\&䛾>׭$bg͈>ʘN>mlg͈>]&N>mlr=1N>Gj>1ޛ>g8VJ>1ޛ>׭$bg͈>1N>ml>ʘ^>s>]&^>s>̘>0y>^&>0y>͘W>~ķ>_&Z>~F?͘u>OF?`& u>O>1^>s>1>0y>1W>~F?1u>O0?ϘbB> 0?a&^B> Z?ј >_}\?c& >_}:$?Ԙlݙ=+:x<$?e&vݙ=+:x^(+?՘0&<;q\(+?f&0&<;q0?1bB> Z?1 >_}:$?1hݙ=+:x^(+?1 &<;q;/?֘lG j;/?f&lG ju2?ט 8V^ u2?h&8V^u2?ؘ"2I$b)R u2?j&!2I$b)R;/?ژmlD;/?k&mlD;/?1lG ju2?18V^u2?1#2I$b)R;/?1mlD^(+?ܘBs8\(+?k&Bs8:$?ܘ˾y&<$?l&˾y&Z?ܘ~\?m&~0?ݘdl0?m&cl^(+?1Bs8:$?1˾y&Z?1~0?1dlDATA,X  DATA 5 "H""H""I""I""J""J""K""K""L""L""M""M""N""N""O""O""P""P""Q""Q""R""R""S""S""T" "T " "U " "U " "V " "V ""W""W""X" "X" "Y" "Y" "Z"!"Z" "["!"[" "\"""\" "]"""]""^"#"^" "_"#"_"  `  $!"`!"" a" $#"a#" $"b$"%%"b%"&"c&"%'"c'" ( d( &)"d)" * e* &+"e+" ,"f,"'-"f-" ."g."'/"g/" 0 h0 (1"h1" 2 i2 (3"i3" 4"j4")5"j5"6"k6")7"k7" 8 l8 *9"l9": m: *;"m;"<"n<"+="n=">"o>"+?"o?"@ p@ ,A"pA"B qB ,C"qC"D"rD"-E"rE"F"sF"-G"sG"H tH .I"tI"J uJ .K"uK"L"vL"/M"vM"N"wN"/O"wO"P xP 0Q"xQ"R yR 0S"yS"T"zT"1U"zU"V"{V"1W"{W"X |X 2Y"|Y"Z }Z 2["}["\"~\"3]"~]"^"^"3_"_"` ` 4a"a"b b 4c"c"d"d"5e"e"f"f"5g"g"h h 6i"i"j j 6k"k"l"l"7m"m"n"n"7o"o"p p 8q"q"r r 8s"s"t"t"9u"u"v"v"9w"w"x x :y"y"z z :{"{"|"|";}"}"~"~";""$  #""<"" < %""<""&  """="" = '""=""(  !"">"" > )"">""*  ""?"" ? +""?"",  ""@"" @ -""@"".  ""A"" A /""A""0  ""B"" B 1""B""2  ""C"" C 3""C""4  ""D"" D 5""D""6  ""E"" E 7""E""8  ""F"" F 9""F"":  ""G"" G ;""G""` "^""" "" "_""d" ""a """" c"" """e" b""d "]""" "" "\""h" ""e """" f"" """i" g""h "[""" "" "Z""l" ""i " " " "  j " "  " " "m" k""l "Y""" "" "X""p" ""m """" n"" """q" o""p  "W!"!"""" #"#"$ $"V%"%"t&"& '"'"q( (")")"*"* r+"+", ,"-"-"u.". s/"/"t0 0"U1"1"2"2 3"3"4 4"T5"5"x6"6 7"7"u8 8"9"9":": v;";"< <"="="y>"> w?"?"x@ @"SA"A"B"B C"C"D D"RE"E"|F"F G"G"yH H"I"I"J"J zK"K"L L"M"M"}N"N {O"O"|P P"QQ"Q"R"R S"S"T T"PU"U"V"V W"W"}X X"Y"Y"Z"Z ~["["\ \"]"]"^"^ _"_"` `"Oa"a"b"b c"c"d d"Ne"e"f"f g"g"h h"i"i"j"j k"k"l l"m"m"n"n o"o"p p"Mq"q"r"r s"s"t t"Lu"u"v"v w"w"x x"y"y"z"z {"{"| |"}"}"~"~ "" "K""" "" "J""" "" """" "" """" "" "I""" "" "H""`" "" """" "" """a" ""  " " " "! "" "" " " "( " "" ""# "" """ " &" " '" "" "" " %" "* $"( " " " ") "" "" " " "0 " "" ""+ "" ""* " ," " -" "" "" " /" "2 ."0 " " " "1 "" "" " " "8 " "" ""3 ""  " "2 "  4"  " 5" " "  "" " 7" ": 6"8 " " " "9 "" "" " " "@ " "" ""; "" "": " <" " =" "" "" " ?" "B >"@ "! "! " ""A ""# """ "% $"% "H &" $""' &""C "(") "*"B ("+ D"+ *" E" ","- "." ,"/ G"/ ."J F"H "1 0"1 " 2"I 0""3 2"" "5 4"5 "P 6" 4""7 6""K "8"9 ":"J 8"; L"; :" M" "<"= ">" <"? O"? >"R N"P "A @"A " B"Q @""C B"" "E D"E "X F" D""G F""S "H"I   "J "R  H "K  T "K  J "  U "   "L "M   "N " L"O W"O N"Z V"X "Q P"Q " R"Y P""S R"" "U T"U "` V" T""W V""[ "X"Y "Z"Z X"[ \"[ Z" ]" "\"] "^" \"_ _"_ ^"b ^"`  "a  ` "a! !"! b!"a" `""""c# b#"#"$ $"e$ d$"e% %"h% f%"& d&"&"g' f'"'"c( ("h("i) )"j)"b* h*"k* d*"k+ j+"+ e+", ,"l,"m- -"n-". l."o. g."o/ n/"j/ f/"h0 0"q0 p0"q1 1"1 r1"i2 p2"2"s3 r3"3"4 4"u4 t4"u5 5"p5 v5"6 t6"6"w7 v7"7"k8 8"x8"y9 9"z9"j: x:"{: l:"{; z;"; m;"< <"|<"}= ="~="> |>"> o>"? ~?"r? n?"p@ @"@ @"A A"A A"qB B"B"C C"C"D D"D D"E E"xE E"F F"F"G G"G"sH H"H"I I"I"rJ J"J tJ"K K"K uK"L L"L"M M"M"N N"N wN"O O"zO vO"xP P"P P"Q Q"Q Q"yR R"R"S S"S"T T"T T"U U" U U"V V"V"W W"W"{X X"X"Y Y"Y"zZ Z"Z |Z"[ ["[ }["\ \"\"] ]"]"^ ^"^ ^"_ _""_ ~_"a"`a ]` `b b d"cd \c ce e g"fg Yf fh h j"ij Xi ik k bl Wl lm m"en Vn no o"hp Sp pq q"kr Rr rs s"u"tu Mt tv v x"wx Lw wy y {"z{ Iz z| | ~"}~ H} }  v G  "y F  "| C  " B  "~" =   |" <   z" 9   x" 8    7  v" 6  t" 3  r" 2  p"n" -   l" ,   j" )   h" (    '  f" &  d" #  b" "  `"^"    \"    Z"    X"       V"   T"   R"   P"N"    L"    J"    H"       F"   D"   B"   @">"    <"    :"    8"       6"   4"   2"   0"."    ,"    *"    ("       &"   $"   ""   ""    "    "     "                "   "   "    ""    "    "    "        ! !"" " "# #"$ $ $% %"& & &' '"("() ) )* * +"+, , ,- - ."./ / /0 0 1"12 2 23 3 *4 4 45 5"-6 6 67 7"08 8 89 9"3: : :; ;"<"<= = => > ?"?@ @ @A A B"BC C CD D E"EF F FG G >H H HI I"AJ J JK K"DL L LM M"GN N NO O"aP"aP"R QR Q"S RS dQ"T"gT"V UV U"W VW jU"X"XY Y SY mZ"`Z"oX"["[\ \ W\ q]"]"s["^"u^"` _` _"a `a x_"b"{b"d cd c"e de ~c"f"fg g ag h"h"f"i"ij j ej k"k"i"l"l"}n mn m"o no m"p"p"yr qr q"s rs q"t"tu wu ou v"v"t"w"wx sx sx y"y"w"z"z"m| {| {"} |} {"~"~"i  "  "" g } """" c  """""]  "  """Y  "  "" W  """" S  """}""M  "  """I  "  "" G  "|""" C  """y""=  "  """9  "  "" 7  "x""" 3  """u""-  "  """)  "  "" '  "t""" #  """q""  "  """  "  ""   "p"""   """m""   "  """   "  ""   !"l"#""   %""'"i"("  "  +""."  "  1""   5"h"7""   9"";"e"<"  "  ?""B"  "  E""   I"d"K""   M""O" T G  ]    b F  k    p E  y    ~ D       C       B            A              @       ?       >       =       <     { ^ :  h y  s l 8    v! q! ! k" z" 6# "# $ i$ #$ c% % 4& %& ' a' &' [( ( 2) () * Y* )* S+ + 0, +, - Q- ,- K. . ./ ./ 0 I0 /0 C1 1 ,2 12 3 A3 23 ;4 4 *5 45 6 96 56 37 7 (8 78 9 19 89 +: : &; :; < )< ;< #= P= $> => Z? !? >? ?A @A#>@ ZB"AB#@C#=C CD#PD"<F EF#;E G"FG#EH#:H HI#I"9K JK#8J L"KL#JM#7M MN#N"6P OP#5O Q"PQ#OR#4R RS#S"3U TU#2T V"UV#TW#1W WX#X"0Z YZ#/Y ["Z[#Y\#.\ \]#]"-_ ^_#,^ `"_`#^a#+a ab#b"*d cd#)c e"de#cf#(f fg#g"'i hi#&h j"ij#hk#%k kl#l"$n mn##m o"no#mp#"p pq#zq"!s rs# r vt"st#ru#u uv#lv"x wx#w hy"xy#wz#z z{#^{"} |}#| ~"}~#|# #" # "## #" # "## #" # "## #" # "##  #"  #  "##  #"  # "## #" # "## #" # "## #~" # y"## #p" # k"## #b" # ]"## #T"O"#"M"~# # #K"#"I"G# # #"#E"# ##B""#?"# #I#<";"#"9"# # #7"#"5"L# # #"#1"# ##.""#+"# #N#("'"#"%"# # ##"#"!"Q# # #"#"# ##""#"# #S#""#""# # #"#" "V# # #"# "# ##""#"# #X#""#""# # #"#""[#  #  # "  # " #   # # ""#" # #]#""#""# # #"#""`# # #"#"# ##"!" !# ""#" !"#b###"$"$%#%"&"&#( '(#' %(#)")*#*"+"e+#, ,-#- *,#/"./#."'0#0 /0#1#1"3"23#2"-4#4 34#g5#5"6"67#7"8"8#9 9:#: 79#<";<#;"="j=#> >?#? ;>#A"@A#@":B#B AB#C#C"E"DE#D"?F#F EF#lG#G"H"HI#I"J"J#L KL#K IL#M"MN#N"O"oO#Q PQ#}P NQ#S"RS#R"KT#T ST#U#U"{V"VW#W"PX#|X VX#qY#Y"Z"Z[#w["\"\#x^ ]^#s] [^#`"_`#t_"a"ta#ub bc#oc _b#qd"de#e"]f#rf df#g#g"mh"hi#i"cj#nj hj#vk#k"l"lm#im"n"n#jp op#eo mp#q"qr#fr"s"ys#gu tu#at ru#cv"vw#~w"ox#dx vx#y#{y"_{"z{#xz"t|#`| {|#{}#u}"s"~#[~"q"#\ #W ~#o"#X"m"B#Y #S #U"#j"#V ##g"Q"#d"#R #D#a"N #G #L #D #J #A #H #> #F ##C ##@ ##= ##: #3 #8 #0 #6 #- #4 #* #2 ##/ ##, ##) ##& # #$ # #" # #  # # ## ## ## ## #  # # # # #  # #  ## ## ## ## # # # # # # # # # # # # ## ## # # # # # # # # ## ## # # ### $# # &# # )# # +# # #.# #1# #2# #5# 6# # 8# # <# # =# # #@# #C# #D# #G# H# # J# # M# # O# # #R# #U# #W# #Y# Z# # \# # `# # a# # #e# #g# #i# #k# l#   #  n #|   #  q #y   # s#v #} #w#z #y#w #z#t #}#r #k #p #h #n #e #l #b #i ##f ##c ##` ##!!}!|!!!F!E!!!!H!!!!!!!K!J!!!!M!!!!!!!P!O!!!!R!!!!!!!U!T!!!!W!!!!!! !Z!Y! !!!\!!!!!!!_!^!!!"!a!(!'!!!,!-!d!c!0!!4!f!9!:!!!>!?!i!h!B!!F!k!L!K!!!Q!P!n!m!T!!X!p!^!]!!!b!c!s!r!f!!j!u!p!o ! ! !u !t !x!w!x!!|!z!!!!!!!A!@!!!!C!DATA,`} ~ DATA~ 4 ^ `^#`!!$#__ ((d<$##aa""&&cc''%<%%%be*b$*$  (](d]"d))&"\\ 00h=&++ee** ,,ff--'='//gi2g.2.  0[0h[!h11(!ZZ 88l>(33i   i2 2 4 4j    j55)>     )77km:k6:6 8Y8lY l99* XX@@p?*;;mm::<<nn==+?+??oqBo>B>@W!@p ! W!!"" pAA,"## V %$%$ V% H%&H&t$@&'',CCq())*(qB(+BD+Dr*+*+rEE-@,--.,,/-G/Gs./u.J/sFJF HU 1Ht010 U1 1220tII.233 T 5454T5P56P6x4A677.KKu899:8uJ8;JL;Lv:;:;vMM/A<==><<?/O?Ow>?y>R?wNRNPSAPx@A@SAABB@xQQ0BCCREDEDREXEFXF|DBFGG0SSyHI  IJHyR H K RTK TzJK J  KzU U1B  LM  MNLLO1WOW{NO}NZO{VZVXQQX|PQPQQQRRP|YY2RSSPUTUTPU`UV`VTCVWW2[[}XYYZX}ZX[Z\[\~Z[Z[~]]3C\]]^\\_3___^_^b_^b^` O a ``a `Oa!!!ab!b`a""a4bc##c$N$e$de$dNe%%h%efh%fd&&Dfg''g4c((chi))ijhb*h*k*bdk*djk+j++ke+e5D,,lm--mnl.l.o.5go.gno/n/j/ofj/fh0M0q0hpq0pMq111qr1rpi22i6rs33s4L4u4tu4tLu55p5uvp5vt66Evw77w6k88kxy99yzxj:x:{:jl{:lz{;z;;{m;m7E<<|}==}~|>|>>7o>o~?~?r?nr?np@K@@p@KAAAAqBBq8CCDJDDDJEExExEFFFGG8sHHsIIrJJJrtJtKKKuKu9FLLMMNNN9wNwOOzOvzOvxPIPPxPIQQQQyRRy:SSTHTTTHUU U U`VVGWW:{XX{YYzZZZz|Z|[[[}[};G\\]]^^^;^_a_"_~"_~]a`]`b\dc\ceYgfYfhXjiXikWblWlmVenVnoShpSpqRkrRrsMutMtvLxwLwyI{zIz|H~}H}GvGFyFC|CBB=~=<|<9z98x87v76t63r32p2-n-,l,)j)(h('f'&d&#b#"`"^\ZXVTRP N  L  J HFDB@><:86420.,*(&$"             !""#$$%&&'())*+,,-.//01223*445-66708893::;<==>?@@ABCCDEFFG>HHIAJJKDLLMGNNOaPaRQSRQdTgVUWVUjXYYS`mZoX[\\Wq]s[^u`_a`_xb{dcedc~fggahfijjeki~l}nm}on|mzpyrqysrxqwtuwuovvttswxsxsrypwnzm|{m}|l{j~iihgg}fdccb`^]]\ZYYXWWVTSSRPN}MMLJIIHGG|FDCCB@>y==<:99877x643320.u--,*))(''t&$##" q p m      l!#%'i(+.1h579;e<?BEdIKMOTG]GbFkFpEyE~DDCCB B  A   A   @ @??>>==<<{^{:yh:ysls8 qv!8q! k"zk6#"i$6i$#c%c4&%a'4a'&}[([2)(Y|*2Y*)yS+S0,+Qx-0Q-,uK.K./.It0.I0/qC1C,21Ap3,A32m;4;*549l6*965i373(871h9(198e+:+&;:)d<&)<;a#=P#$>=!`Z?$!?>>?A@?ZBA=>@CP=CD;<FE<GF:;EH:HI89KJ9LK78JM7MN56PO6QP45OR4RS23UT3VU12TW1WX/0ZY0[Z./Y\.\],-_^-`_+,^a+ab)*dc*ed()cf(fg&'ih'ji%&hk%kl#$nm$on"#mpz"pq !sr!vts ruluvxwhyxwz^z{}|~}|          ~ypkb]TOM~KIGEB?<I;975L1.+(N'%#!QS V X[        ]`! ""!b#$%&('%()*+e,-*,/.'00/132-443g56789:79<;=j>?;>A@:BBACED?FFElGHIJLKILMNOo}QPNQSRKTTS~U{VW|}PX{|XVzqYwZ[y\sx^]xw[^t`_vatoubcut_bqders]fqrfdpgmhinocjmnjhlvkilmknejpojimpfqrhsyagutgfru~cvwdeoxcdxv{byx_{z`at|_`|{u^{}[s~]qW\\[~XoZmBSYYXjUVWUVgTdQRSQRaPDONNGMLLDKJJAIHH>GFFEDCCBA@@?>==<;::39880766-544*32210//.-,,+*))('&&%$$#""!             #$&)+.12568<=@CDGHJMORUWYZ\`aegikl  n|   qy  sv} }~w|z z{yyw wxzvttu}srrkqpphonnemllbkiijhffgeccdb``a~}}|GFFE|EHHILKKJJMMNQPPOORRSVUUTTWWX [ZZY      Y\\]`__^"" !^aa#b%$(('&*),,-e+ddc'00./1-4423cff5g7699:8;<>>?j=iih:BB@AC?FFDEhkkGlIHLLKJNMQQPoOnnmKTTRSUPXXWVmppYq[Z^^]\_`bbctassr]ffedgcjjihruukvmlpp on   rq uu  tysxxwo xxwv yt ||z{wzz}{~BAA@@CCDME 2p C MECube.004Ѐ ( P    X     $ &'>v%lQ?tw>mQ?DATA( 0g DATA,X  DATA 8/ ?Z,?{,?xOμ{ !/ ?h"X>ZZei>> !{<>{rVp"X>Z Oμ^ !^rV< +^Vi>+ !^/ ?X)>Z,?V)>{,?T)>Pμ{ !/ ?T)>H"X>ZZ{i>R)>> !{Z>{rVT)>"X>ZT)>Mμ^ !V)>^ sVX)> +^@i>X)>+ !^DATA,    DATA  5$# ## ############# ## ## ## # # # ######## # # #DATA,  P DATAP 4        MEp 2M  MECylinder.0014  < 8 &  8%  ; }=Ѽy?<=<=1>DATA ` DATA, 8 DATA8 8>!a'=R?ZZq>[R?{ !q>?LR?{>R?Zt=?R? !^=?R?^;R?POLR?^\R?^ !@Aa'=(u?ZZq>X(u?{ !q>'L(u?{>(u?Z=?(u? !^=?(u?^@;(u?PoL(u?^`(u?^ !@=a'=(u?ZP=!=(u?ޢ{X=1=(u? !{>Aa'=Dv?GGX=1=Dv?aP=!=Dv?a@=a'=Dv?G`Dv?PoLDv?榰@;Dv?=?Dv?=?Dv?>Dv?Gq>'LDv?a榰q>XDv?au4>F Z=tw?GG->hT;tw?a->)@_tw?a榰~4> ֽtw?G =!tw?q=!tw?̊/ ֽtw?;~@_tw?榰Ϫ;T;tw?V͊Z=tw?G?q="2=tw?a=52=tw?a=62=Gx? !{u4>G Z=Gx?ZZ?q=#2=Gx?ޢ{V͊Z=Gx?ZϪ;T;Gx?^ !;}@_Gx?^̊. ֽGx?q= Gx?^ = Gx? !^~4> ֽGx?Z->(@_Gx?{->T;Gx?{ !u4>E Z=b?ZZ->jT;b?{ !->*@_b?{~4> ֽb?Z = b? !^q= b?^̊/ ֽb?;@_b?^Ϫ;T;b?^ !V͊Z=b?Z?q="2=b?ޢ{=52=b? !{u4>E Z=s?>>\=52=s?U\?q="2=s?U\V͊Z=s?>\Ϫ;T;s?\;@_s?\̊/ ֽs?\q= s?\ = s?\~4> ֽs?>\->*@_s?U\->jT;s?U\>Ҏ;=t?ҹnU#>:t?'nnU#>Tt?'’n!>\ƽt?G-nd=`Mt?n=n=`Mt?=nSvƽt?G-G-n+Tt?=n :t?=nnT;=t?G-n=BQ=t?'nd=SQ=t?n'n0>:="͇?jj> =L="͇?[> "-=L="͇? [> _@:="͇?Wj> /9"͇?w> S"͇?w > ^ƽ"͇?WW> -=H"͇? w> =H"͇?ߥw> 0>ƽ"͇?jW> ">NS"͇?[ > ">19"͇?[> 0>:=ħ?">19ħ?^">NSħ?^ !0>ƽħ?Z=Hħ?ޢ{-=Hħ? !{^ƽħ?ZZSħ?{ !/9ħ?{_@:=ħ?Z"-=L=ħ? !^=L=ħ?^=L=h?\0>:=h?\"-=L=h?\_@:=h?>\/9h?U\Sh?U\^ƽh?>>\-=Hh?U\=Hh?U\0>ƽh?>\">NSh?\">19h?\P>@˹h? >~1=h?P>`Ph? >Hh?h=mh?P=mh?0&bh?)8aPh?)@˹h?P(a~1=h?P=q=h?:=q=h?.=l=h?U\g"> -=h?>>\=Z=h?U\`Ȼ-=h?>\tZU;h?\8Z Oh?\PȻ追h?\=zh?\\=zh?\o">翽h?>\#> Oh?U\#>E;h?U\#>E;gV?Qr0g"> -=gV?SS0#> OgV?Qr_0o">翽gV?SP0\=zgV?0=zgV?_ᯍ0PȻ追gV?PP08Z OgV?_0tZU;gV?0`Ȼ-=gV?PS0=Z=gV?_Qr0.=l=gV?Qr0n>'=:?"",vȢ=hK=:? /,vj%=WK=:?F/,vi'=:?;",vf`:?к ,v.SL:?F,vxgv:?;;,v%=wG:?F,v=wG:? ,v n>]:?";,v!R> L:?/F,v!R>p|:?/ ,v7 > Bɻ:?=6<:?7 >8:?=:?7 Ħ=sɽ:?R-=sɽ:?RTy<ω:?7 7 08:?R,0Cɻ:?Rx<6<:?7 -= @=:?Ħ='@=:?>hlܻk?`Oʠ=pj6k?`O֠=Ck?DFO =>Ľk?`O]G0=>Ľk?`Od(< Dk?FFO j6k?`O mܻk?`O(<elܻ ?^ʠ=< ?>pj6 ?^ !֠=C ?Z =>Ľ ?ޢ{]G0=>Ľ ? !{d(< D ?ZZ j6 ?{ ! mܻ ?{(<< ?ZG0=B7= ? !^=X7= ?^>elܻ?^ʠ=<?>pj6?^ !֠=C?Z =>Ľ?ޢ{]G0=>Ľ? !{d(< D?ZZ j6?{ ! mܻ?{(<<?ZG0=B7=? !^=X7=?^DATA,8% & DATA& 5" "  " " " " " "  " " " "   " """""""" " " """ """"""""""""" " "!" !"""!"" #""#"#"$"$%"#%"%&""&"&'"!'"'(" ("()")")*"*"*+"+"+,",",-"-"-."."./"/"$/"/0"01 $1".2"02 -3"23 ,4"34 +5"45 *6"56 )7"67 (8"78 '9"89 &:"9: %;":; 1; 1<"<= ;="=> :>">? 9?"?@ 8@"@A 7A"AB 6B"BC 5C"CD 4D"DE 3E"EF 2F"FG 0G"<G GI"HI"<H"FJ"IJ"EK"JK"DL"KL"CM"LM"BN"MN"AO"NO"@P"OP"?Q"PQ">R"QR"=S"RS"HS"HT TU"SU UV"RV VW"QW WX"PX XY"OY YZ"NZ Z["M[ [\"L\ \]"K] ]^"J^ ^_"I_ T_"_a"`a"T`"^b"ab"]c"bc"\d"cd"[e"de"Zf"ef"Yg"fg"Xh"gh"Wi"hi"Vj"ij"Uk"jk"`k"`l"lm km"mn jn"no io"op hp"pq gq"qr fr"rs es"st dt"tu cu"uv bv"vw aw"lw wx"xy"ly"vz"xz"u{"z{"t|"{|"s}"|}"r~"}~"q"~"p""o""n""m""y"y  ~ } | { z x " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " """""""""""""""""""""""""" " " " " " " " " " " " """"""""""""""""""""""""DATA,; < DATA< 4          ! "! #" ##$%"#%&!"&' !'( ())**++,,--..//$$/01/.20.-32-,43,+54+*65*)76)(87('98'&:9&%;:%$1;;1<=:;=>9:>?89?@78@A67AB56BC45CD34DE23EF02FG10G<<GIHGFJIFEKJEDLKDCMLCBNMBAONA@PO@?QP?>RQ>=SR=<HSSHTURSUVQRVWPQWXOPXYNOYZMNZ[LM[\KL\]JK]^IJ^_HI_TT_a`_^ba^]cb]\dc\[ed[ZfeZYgfYXhgXWihWVjiVUkjUT`kk`lmjkmnijnohiopghpqfgqrefrsdestcdtubcuvabvw`awllwxywvzxvu{zut|{ts}|sr~}rq~qppoonnmmlyy~}~|}{|z{xzyxMEM 2 p MECylinder.002ha 8O pz P d hO b  y }=Ѽy?<=<=1>DATA8O ` DATA,hO P DATAP 8>!a'=R?ZZq>[R?{ !q>?LR?{>R?Zt=?R? !^=?R?^;R?POLR?^\R?^ !@Aa'=(u?ZZq>X(u?{ !q>'L(u?{>(u?Z=?(u? !^=?(u?^@;(u?PoL(u?^`(u?^ !@=a'=(u?ZP=!=(u?ޢ{X=1=(u? !{>Aa'=Dv?GGX=1=Dv?aP=!=Dv?a@=a'=Dv?G`Dv?PoLDv?榰@;Dv?=?Dv?=?Dv?>Dv?Gq>'LDv?a榰q>XDv?au4>F Z=tw?GG->hT;tw?a->)@_tw?a榰~4> ֽtw?G =!tw?q=!tw?̊/ ֽtw?;~@_tw?榰Ϫ;T;tw?V͊Z=tw?G?q="2=tw?a=52=tw?a=62=Gx? !{u4>G Z=Gx?ZZ?q=#2=Gx?ޢ{V͊Z=Gx?ZϪ;T;Gx?^ !;}@_Gx?^̊. ֽGx?q= Gx?^ = Gx? !^~4> ֽGx?Z->(@_Gx?{->T;Gx?{ !u4>E Z=b?ZZ->jT;b?{ !->*@_b?{~4> ֽb?Z = b? !^q= b?^̊/ ֽb?;@_b?^Ϫ;T;b?^ !V͊Z=b?Z?q="2=b?ޢ{=52=b? !{u4>E Z=s?>>\=52=s?U\?q="2=s?U\V͊Z=s?>\Ϫ;T;s?\;@_s?\̊/ ֽs?\q= s?\ = s?\~4> ֽs?>\->*@_s?U\->jT;s?U\>Ҏ;=t?ҹnU#>:t?'nnU#>Tt?'’n!>\ƽt?G-nd=`Mt?n=n=`Mt?=nSvƽt?G-G-n+Tt?=n :t?=nnT;=t?G-n=BQ=t?'nd=SQ=t?n'n0>:="͇?jj> =L="͇?[> "-=L="͇? [> _@:="͇?Wj> /9"͇?w> S"͇?w > ^ƽ"͇?WW> -=H"͇? w> =H"͇?ߥw> 0>ƽ"͇?jW> ">NS"͇?[ > ">19"͇?[> 0>:=ħ?">19ħ?^">NSħ?^ !0>ƽħ?Z=Hħ?ޢ{-=Hħ? !{^ƽħ?ZZSħ?{ !/9ħ?{_@:=ħ?Z"-=L=ħ? !^=L=ħ?^=L=h?\0>:=h?\"-=L=h?\_@:=h?>\/9h?U\Sh?U\^ƽh?>>\-=Hh?U\=Hh?U\0>ƽh?>\">NSh?\">19h?\P>@˹h? >~1=h?P>`Ph? >Hh?h=mh?P=mh?0&bh?)8aPh?)@˹h?P(a~1=h?P=q=h?:=q=h?.=l=h?U\g"> -=h?>>\=Z=h?U\`Ȼ-=h?>\tZU;h?\8Z Oh?\PȻ追h?\=zh?\\=zh?\o">翽h?>\#> Oh?U\#>E;h?U\#>E;gV?Qr0g"> -=gV?SS0#> OgV?Qr_0o">翽gV?SP0\=zgV?0=zgV?_ᯍ0PȻ追gV?PP08Z OgV?_0tZU;gV?0`Ȼ-=gV?PS0=Z=gV?_Qr0.=l=gV?Qr0n>'=:?"",vȢ=hK=:? /,vj%=WK=:?F/,vi'=:?;",vf`:?к ,v.SL:?F,vxgv:?;;,v%=wG:?F,v=wG:? ,v n>]:?";,v!R> L:?/F,v!R>p|:?/ ,v7 > Bɻ:?=6<:?7 >8:?=:?7 Ħ=sɽ:?R-=sɽ:?RTy<ω:?7 7 08:?R,0Cɻ:?Rx<6<:?7 -= @=:?Ħ='@=:?>hlܻk?`Oʠ=pj6k?`O֠=Ck?DFO =>Ľk?`O]G0=>Ľk?`Od(< Dk?FFO j6k?`O mܻk?`O(<elܻ ?^ʠ=< ?>pj6 ?^ !֠=C ?Z =>Ľ ?ޢ{]G0=>Ľ ? !{d(< D ?ZZ j6 ?{ ! mܻ ?{(<< ?ZG0=B7= ? !^=X7= ?^>elܻ?^ʠ=<?>pj6?^ !֠=C?Z =>Ľ?ޢ{]G0=>Ľ? !{d(< D?ZZ j6?{ ! mܻ?{(<<?ZG0=B7=? !^=X7=?^DATA,b d DATAd 5" "  " " " " " "  " " " "   " """""""" " " """ """"""""""""" " "!" !"""!"" #""#"#"$"$%"#%"%&""&"&'"!'"'(" ("()")")*"*"*+"+"+,",",-"-"-."."./"/"$/"/0"01 $1".2"02 -3"23 ,4"34 +5"45 *6"56 )7"67 (8"78 '9"89 &:"9: %;":; 1; 1<"<= ;="=> :>">? 9?"?@ 8@"@A 7A"AB 6B"BC 5C"CD 4D"DE 3E"EF 2F"FG 0G"<G GI"HI"<H"FJ"IJ"EK"JK"DL"KL"CM"LM"BN"MN"AO"NO"@P"OP"?Q"PQ">R"QR"=S"RS"HS"HT TU"SU UV"RV VW"QW WX"PX XY"OY YZ"NZ Z["M[ [\"L\ \]"K] ]^"J^ ^_"I_ T_"_a"`a"T`"^b"ab"]c"bc"\d"cd"[e"de"Zf"ef"Yg"fg"Xh"gh"Wi"hi"Vj"ij"Uk"jk"`k"`l"lm km"mn jn"no io"op hp"pq gq"qr fr"rs es"st dt"tu cu"uv bv"vw aw"lw wx"xy"ly"vz"xz"u{"z{"t|"{|"s}"|}"r~"}~"q"~"p""o""n""m""y"y  ~ } | { z x " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " """""""""""""""""""""""""" " " " " " " " " " " " """"""""""""""""""""""""DATA,y pz DATApz 4          ! "! #" ##$%"#%&!"&' !'( ())**++,,--..//$$/01/.20.-32-,43,+54+*65*)76)(87('98'&:9&%;:%$1;;1<=:;=>9:>?89?@78@A67AB56BC45CD34DE23EF02FG10G<<GIHGFJIFEKJEDLKDCMLCBNMBAONA@PO@?QP?>RQ>=SR=<HSSHTURSUVQRVWPQWXOPXYNOYZMNZ[LM[\KL\]JK]^IJ^_HI_TT_a`_^ba^]cb]\dc\[ed[ZfeZYgfYXhgXWihWVjiVUkjUT`kk`lmjkmnijnohiopghpqfgqrefrsdestcdtubcuvabvw`awllwxywvzxvu{zut|{ts}|sr~}rq~qppoonnmmlyy~}~|}{|z{xzyxME 2`F M MECylinder.003b   H H    H  T$\<|>My=>DATA x DATA, H DATA|8H 8=2=>^=bh<>^^=q>^ !0='+>Zg@<k>ޢ{@Ÿk> !{>O+>ZZ~lq>{ !0~h<>{>2=>ZŸr=> !^f@< r=>^,ZZ7 !{ƼP=b>ޢ{tg=b>Zl^ !b>^ti`b> Ƽb>^8 !^\Zޓ=>b>{ޓ=bm{ !ޓ=bm<>UH\,>>H\ޓ=>>U H\\>IH\8<>UH\ Ƽ> UH\ti`>IIH\>U H\l<>UH\tg=>I>H\ƼP=> UH\7UH\=2=6>[f@< r=6>[Ÿr=6>[>2=6> ?[0~h<6>V[~lq6>V[>O+6> ? ?[@Ÿk6>V[g@<k6>V[0='+6> ?[^=q6>[^=bh<6>[8G+W=ZZ~LqW={ !0=/+dW=Z^=qW=^ !^=Rh2=W=Z ~h7<ʹ=v2=ʹ=A[v2=1=wO^=1=fl-=ʹ=fLHF;ʹ=V$9ʹ=̫ʹ=K΃Zɾ!{ʹ=bھ^ʹ=Oʹ=fz<ʹ=|1Zfz<1=0F̫1=fk_g'<ʹ=`/ʹ=`:ʹ=jʾʹ=F5Aʹ=NӏZ۾Iʹ=:i\Nkʹ=ꢜ<1=d>ꢜ<ʹ= G,ZF5A1=oY# <ʹ=p%#ʹ=.ǎZ89ʹ=.ǎZvʾ(gʹ=.ǎZRDʹ=l8a۾w ʹ=.ǎZFQ~ʹ=.ǎZ2!<ʹ=02!<1=RD1=6>f;ʹ=.ǎZݾ p`j)(=ʹ=f)6Įʹ=j)*uʹ=Zn)VP=1=n)VP=ʹ=ZZj)*u1=n)T=ʹ=ZK(=ʹ=VK6Įʹ=ZK*uʹ=Z^KVP=1=^KVP=ʹ=ZZZK*u1=^KT=ʹ=fV<ʹ=·¾G'ʹ= ʹ=FƁZƦ8=1=5nƦ8=ʹ=vNZ 1=c7 =ʹ=׽(=ʹ=׽6Įʹ=׽*uʹ=Z׽VP=1=׽VP=ʹ=ZZ׽*u1=׽T=ʹ=VK6Įʹ=׽6Įʹ=(ҽ6Įʹ=ZZK(=ʹ=׽(=ʹ=0ҽ(=ʹ= þo(ʹ=·¾G'ʹ=.k6Įʹ=(zb<ʹ=xffV<ʹ=@9(=ʹ=1!cf)6Įʹ=j)(=ʹ=NMJk<ʹ=Saa>7<ʹ=Saa5Ӿ0jʹ=Saa0ҽDث=ʹ=@ҽї|=ʹ=0ҽz<ʹ=0ҽDث==0ҽ(==0ҽz<=(ҽ6Į=Z@ҽї|==NMJk<=Saab<=xf5Ӿ0j=Saa þo(=>7<=Saa(==1!cj)(==f)6Į=6Į=(zZK(==VK6Į=fV<=@9·¾G'=.k׽(==׽6Į=׽6Įm=VK6Įm=(ҽ6Įm=ZZK(=m=׽(=m=0ҽ(=m=·¾G'm=.k þo(m=6Įm=(zb77,=1=I2]>,=ʹ=3Z~1=Jjᄇ<ʹ=f@<k{ޢ{`Ÿk{ !{>G+{ZZ~<q{{ ! =7+LZ^=q{^ !^=Jh<{^ =2={@f@< r={^Ÿr={ !^>2={Z ~h<{{ͨ=îAY{>ͨ=J5AAoZ":!,=AIAJj ~h< {>2= ZŸr= !^@f@< r= ^ =2= ^=Bh< ^^=q ^ ! =7+6Z~<q { !>G+ ZZ`Ÿk !{f@<k ޢ{ᆰ,=/32Y>,=<⸽IfFl;/Ӿ/~/(KBþ./jĮ/1ѽ*u/ϽDث=/Ͻ(=/ȍϽVP=/Z׽6ˏ쀏ľS쀏VK6ˏ쀏f)6ˏ쀏6ˏ쀏׽r<쀏׽͗|=쀏׽Dث=쀏Ҿl]쀏Jླ[%<쀏7jz<쀏ZKr<쀏^K͗|=쀏ZKDث=쀏j)r<쀏r<쀏͗|=쀏n)͗|=쀏j)Dث=쀏Dث=쀏׽>Į쀏׽(=쀏·¾ G'쀏f龺V<쀏VK>Į쀏ZK(=쀏>Į쀏f)>Į쀏(=쀏j)(=쀏>7<쀏 þs(쀏5Ӿ,0j쀏NMBk<쀏Z<@ҽ͗|=쀏(ҽ>Į쀏0ҽr<쀏0ҽ(=쀏0ҽDث=쀏0ҽr<쀏@ҽ͗|=쀏0ҽDث=쀏5Ӿ,0j쀏SaaNMBk<쀏Saa>7<쀏Saaj)(=쀏f)>Į쀏(=쀏1!cf龺V<쀏@9ZĮ쀏(z þs(쀏·¾ G'쀏.k0ҽ(=쀏׽(=쀏ZK(=쀏(ҽ>Į쀏ZVK>Į쀏׽>Į쀏׽>Įq׽(=q·¾ G'q.kf龺VĮqZK(=q>Įq(zf)>Įqj)(=q(=q1!c>7ĮqZ0ҽr7Į/(=/1!cf龺VĮ/(z·¾ G'/.k þs(/0ҽ(=/׽(=/ZK(=/(ҽ>Į/Z׽>Į/VK>Į/׽T=/׽*u,⸽׽VP=/Z׽VP=<⸽׽*u/׽>Į/׽(=/7 =/ <⸽cƦ8=/vNƦ8=<⸽5n /F·¾ G'/f龺VĮ/ZK(=/n)T=/j)*u<⸽n)VP=/Zn)VP=<⸽j)*u/f)>Į/j)(=/>F;/.ǎRD<⸽6*!<<⸽*!:ilNk/۾I/F5A/Nqjʾ/`:///gs'7Į/*u/$w(=/ঢ়Į/0ҽ*u/0ҽDث=/0ҽ(=/8ҽVP=/Z7ݼVP=/xW<=/1[< ঢ়<(=/Z`7ݼ(=/ޓ=Jm<ս{ !ޓ=Vս{LĮ/rĮ/1ۀpb*u/ۀռ!/1ۀj2=,ZŸr=, !^@f@<r=,^=2=,^=Jh<,^^=q,^ !0=/+ Z~\q,{ !>G+,ZZ@Ÿk, !{g@<k,ޢ{ޓ=Jm<_:ޓ=V_N:LO+n??'~|qnV'0~gy2=n?'Ÿr=n'f@< r=n'=2=n'7l<RΒR 黣ti`GG Ƽ Q8<R\Gޓ=NU 黣,>ޓ=Zm<Uޓ=Zm< { !ޓ=N {\y2=fZ0~gO+fZZ@Ÿkf !{g@<kfޢ{0='+fZ^=qf^ !^=Zh#?#@#A#B#C# D# E# F#G#01#02#23#34#45#56#67#78#89#9:#:;#1;#<=!>?!=>!<@!@A!AB!BC!CD!DE!EF!FG!?G!;H#HI#1I#:J#HJ#9K#JK#8L#KL#7M#LM#6N#MN#5O#NO#4P#OP#3Q#PQ#2R#QR#0S#RS#IS#IT!TU#SU#UV#RV#VW!QW!WX!PX!XY!OY!YZ!NZ!Z[#M[![\#L\!\]#K]!]^#J^!^_#H_!T_# `#0`# a#1a#b#2b#3c#c#d#4d#5e#e#6f#f#g#7g#h#8h#9i#i#j#:j#;k#k#`a!`b!bc!cd!de!ef!fg!gh!hi!ij!jk!ak!Vl!Um#lm!no#qr#st!tu#uv#rv#Uw#Tx#Zy#[z#\{#]|#^}#_~#m!n#o#p!s!wx!yz!z{!{|!|}!}~!x~!w!!m#n#o!l!q!p!!!!!!##!!#!#####!!!!!!!#!!!!!!!!#!!!!!!###!!!!!#!!##!#!##!###!!##!!!!!!!!!!###!#!!!!!!!###!#!!!!!!!######!!##!!!!!!!!!q##t##s##!!p##!!!!!!!!!###t######q########################r##v##u####!!!!#!!!!!##!!!!!#!!!!#!!!!!!!!!!!!!!!!!#!##!#!##!######!###! ! ## # !  # ! !  # # # ! #!#!# ### ####### ##### ## #### ######## # # #!#!#!#"#"#"#######$!$%!%!&'!'(!()!&)!$'!%&!%*!*!&+!),!+,!*+! -!$-!-!'.!./!(/!.!/!-.!"0!0!*0!1!12!2!+1!,2!01!(3!34!)4!3!4!45!,5!5!/6!36!!6!6!#7!7!57!27!o8#p8#l9!q9!V:!r:!Z;#s;#Y<!t<!X=!u=!W>!v>!?!?!y@!@!A!A!9:!;<!<=!=>!:>!8?!;@!8A!9A!B!B!C!C!D!D!E#E#F!F!G!G!H!H!I#I#J!J!K!K!BC!DE!DF!FG!CG!HI!EJ!BK!IK!<L#=M#>N#?O#@P#AQ#BR#CS#DT#EU#FV#GW#wX#xY#yZ#z[#{\#|]#}^#~_#`!a#b#c!d!e!f#g#h#i#j#k!l#m#n#o#p!q!r!s!t!u!v!w!?x!@y!Hz!J{!LM#NO#MN#LP#PQ#QR#RS#ST#TU#UV#VW#OW#XY!Z[![\!\]!]^!^_!Y_!X`!ab!`e!ae!jl!km!ln!mo!fp!gq!pr!qs!ft!ht!gu!iu!cv!rv!dw!sw!cx!bx!dy!Zy!hz!jz!i{!k{!o!n!|#|}#}~#~#########|#}#~##########!!!!!!!!!0!:!1!;!3#=#2!<!4!>!5!?!7#A#6!@!8!B!9!C!!!!!!!!!!L!M!O!Y!P!Q!\!{!]!z!^!y!_#x#`!|!a!f!b#c#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########################################!#!#!###!!#!###!!###!######!##!#!##!#!!!!!!!!!!!!!!!!!#!!!!#!!!!!##!!!!!#!!!!###]##\##`####?#B##>#######J## ##C##H#@## #a######^####!!!!!!L!!O!#b#!P!#_##^##a# ! ! !  !  !:!D!;!E! =# G# <! F! A# I# @# H# C# J#!!!!!!!#!###!!!!!D!E!G#F!I#H#J##$#&!'!"#(##)! %# !# *!!##!+!",#"###-!%/!$%#$.!&(!&.!&0!'1!',#(3#()#)2!*/!*+!*4!+-!+5!,7#,-!-6!/8!./!.9!03!09!17!23#48!45!56!67!89!:=!:C!;A#<=#>B#>?#?@#@A!BC#DG!DJ!EI#FG#HI!KN!MN!KS!KR!Lb!La!Mf!Mc!Nd#Ne#QR!S[!TZ!TU!UV!VW!WX!XY!Z[!O_!Pb!Qc#Rd#Se!Ts#Ut#Vu#Wv#Xw#Yx#Z~#[}#\`#\]#]^#^_!`a#cd#ef!e}#f|!gq!gh!hi!ij!jk!kl!lm!mn!no!op!pr!qr!g#g#h#h#i#i#j#j#k#k#l#l#m#m#n#n#o#o#p#p#q#q#r#r#s~#s!st#t!tu#u!uv#v!vw#w!wx#x!xy!y!yz!z!z{!{!{|!|#|}#}#}~#~!########################!!!!!!!!!!!!########################!!!!!!!!!!!!################################################!!!!!!!!!!!!!!!!!!!!!!!!fF#p!r!v!cP!x!bQ#aR#eK!`S!X[#YZ#_T#^U#]V#\W#[X#ZY#y!dO!w!s!q!gE#u!i;#{!k1!m'#o#!!!! !!!"!#!%!$!n#l)#j2#z!h<#t !DATA,H    DATA8  4   !!" "# # $% %& &' '(())**++,,--..//$$//..--,,++**))( ('! '&"!&%#"%$#=<?>>=<@@AABCBC DD EE FF GG?1;HI;:JH:9KJ98LK87ML76NM65ON54PO43QP32RQ20SR01ISSITURSUVQRVWPQWXOPXYNOYZMNZ[LM[\KL\]JK]^HJ^_IH_T0`a1` a2b`0b `3cb2cb4dc3dc5ed4ed6fe5fe7gf6gf8hg7hg9ih8ih:ji9ji;kj:kj1ak;a kVUmlwUTxz[Zy{\[z|]\{}^]|~_^}xT_~Uwmonmlnomntspsqptqvruvturq                      !!""##$%&'()%$'&%*+&),*%&+ -$ -'./(./$-.'-."0"*0121+,2010*+1(34)34)45,45/63(6!3!67#,5725#7276/l9:V9qr:Y<;Z<ts;X=<Y=ut<W>=X>vu=V:>W:rv>p8?8o?@;s@yZ;A8pAo8q9A9lABCBCDEDEFDFDGFGFCGCGHIHIEJEJKBKBIKIKM=<LO?>NN>=ML<@PP@AQQABRRBCSSCDTTDEUUEFVVFGWWG?OXwxY[zyZ\{z[]|{\^}|]_~}^Yx~_wX`bae`aejlkmlnmonofpgqprqstfhtugiuvcrvwdsw?xcbx?y@dZy@yzHhjHzJ{ik{J1{k;i{jz2zh<ZyYydOQxbPcxwsOdwrvvcP;uiEguht <tfF sqprEqgfpFonmo')nlkm'12)ljaeKRe`SKbaRQ[S`XY_TZ_^UT^]VU]\WV\[XW[ZYXXYZ[|}|~}~03=:90:C17A;32<=48B>54>?65?@76@A89CBMfaLcMLbxYO_QcbP\`|{]\{z^]zy_^yx`af|`a^]]\\`CB?@>?B>JHJ  C H@ a^bLLa_OPb^_ :=GD  C:DJ  ;AIE   =<FG    A@HI  DGJDEIGFIH$" %! #!"#%$&(.$&'",()* %/+! *-#!+,"#-/%$.0&(39.&01',73()24*/85+*46-+57,-68/.9KNdRSeNKNMcdefMNQRdc}eS[ZTs~TUtsUVutVWvuWXwvXYxw[Z~}|fe}qggqghhghiihijjijkkjkllklmmlmnnmnoonoppoprrprqqr~ssttuuvvwwxxyyzz{{||}}~ME`F 2  MECylinder.004HOr G h (I d G c   PD3@Y>DY>_>DATAG x DATA,G (I DATA@(I 8P׽׽Pz޿޿@YxPze谥@Y=Pzey׽ƻ=Pz޿"@`CY>PzW==Y>PzyW@Y>=PzWy=׽Pz"@޿`=?YPzye`BYDr>^==YDr> !^=׽Dr>Z@Y>xDr>{8Y>=Dr>{ !==Dr>ZZ`=?Y>Dr> !{?Y>Dr>ޢ{׽=Dr>Z@Yx=Dr>^ !@YDr>^׽Ļ׽Dr>׽Ļ׽`>\@Y`>\@Yx=`>\׽=`>>\?Y>`>U\`=?Y>`>U\==`>>>\8Y>=`>U\@Y>x`>U\=׽`>>\==Y`>\`BY`>\ ?`>6s =?`>6s=𺵽`>e؛'s?= `>s?=, =`>Ɂsີ==`>ees =?=`>s@ ?=`>s𺵽=`>'es? =`>6s?0 `>6s𺵽`>''szz>UU^),~c>tY^),lc=>t^)zz=>UZ^)c,=>Y^)@c=,=>^)z=z=>ZZ^),=|c=>^),=lc>Y^)z=z>ZU^)c=,>t^)`c,>Yt^)`c,,@V> !{c=,,@V>ޢ{z=z,@V>Z,=lc,@V>^ !,=|c=,@V>^z=z=,@V>@c=,=,@V>^c,=,@V> !^zz=,@V>Z,lc=,@V>{,~c,@V>{ !zz,@V>ZZzzXR>ZZ,~cXR>{ !,lc=XR>{zz=XR>Zc,=XR> !^@c=,=XR>^z=z=XR>,=|c=XR>^,=lcXR>^ !z=zXR>Zc=,XR>ޢ{`c,XR> !{`DYXz>ePZ`CY8>e׽Ȼ׽Xz>޿޿PZ׽Ļ׽8>޿޿=?YXz>yePZ=>Y8>ye=׽Xz>"@޿PZ=׽8>"@޿@Y>Xz>WPZ@Y>|8>W谥8Y>=Xz>WyPZ8Y>=8>Wy==Xz>"@"@PZ==8>"@"@`==Y>Xz>yWPZ`=?Y>8>yW=Y>Xz>WPZ?Y>8>W׽=Xz>޿"@PZ׽=8>޿"@@Yp=Xz>eyPZ@Yt=8>ey@YXz>ePZ@Y8>e谥0>[ {>[=0>[>= {>[>0ս0=0>f0ս0= {>f >0> > {>=>0>>=> {>>0=0=0>ff0=0= {>ff>=0>>>= {>>>0>> {>0=0ս0>f0=0ս {>f=0>>[= {>>[0ս0ս0>0ս0ս {>0>[ {>[Oi{>[N>[ǽǽi{>ǽǽ>=Ki{>>[=J>>[=ǽi{>f=ǽ>fP>i{>P>>H>=i{>>H>=>>==i{>ff==>ff=I>i{>>=K>>>I>i{>K>>ǽ=i{>fǽ=>fP=i{>[>P=>[>PĿi{>[P>[pjD>d谥pj@y{>dPZpj=D>dypj=@y{>dyPZ`ĽR=H>޿"@`ĽN=@y{>޿"@PZ gj>H>W gj>@y{>WPZ=gj>H>yW=gj>@y{>yWPZP=R=H>"@"@P=N=@y{>"@"@PZhj>=D>Wyhj>=@y{>WyPZpj>D>W谥pj>@y{>WPZ`=RĽD>"@޿`=VĽ@y{>"@޿PZ=gjD>yd=hj@y{>ydPZ`Ľ[ĽD>޿޿`Ľ_Ľ@y{>޿޿PZkjD>dlj@y{>dPZkj>8y{Wij>@WPZ`Ľ^=8y{޿"@`Ľ\=@޿"@PZ=gj>8y{yW=ej>@yWPZ`=T=8y{"@"@`=R=@"@"@PZpj>=8y{Wypj>=@WyPZhj>8y{W谥hj>@WPZP=RĽ8y{"@޿P=TĽD"@޿PZ=ij8y{yd=ijDydPZ ij8y{d ijDdPZ`ĽRĽ8y{޿޿`ĽTĽD޿޿PZpj8y{d谥pj@dPZpj=8y{dypj=@dyPZP=[>PĿ=i{[>P[Pi{[ǽǽǽǽi{M[Ki{[=M>[=Ki{>[=ǽf=ǽi{fH>H>i{P>=>P>=i{>==ff==i{ff=G>>=I>i{>ǽ=fǽ=i{fK>M>i{> {> 00ս0= {f0ս0= 0f=> {>=> 0>0=0= {ff0=0= 0ff>= {>>= 0>> {> 00=0ս {f0=0ս0f= {>[=0>[  {[ 0[0ս0ս {0ս0ս0 {[ 0[= {[>= 0[>@Y=8eyPZ@Y|8ePZ׽׽8޿޿PZAY8ePZ?YPze`=AY8yePZ=׽8"@޿PZ8Y>8WPZ8Y>PzW谥@Y>|=8WyPZ==8"@"@PZ==Pz"@"@=;Y>8yWPZ׽Ļ=8޿"@PZ`AY>8WPZ`c,=PR !^c=,=PR^z=z=PR,=hc=PR^,=cPR^ !z=zPRZ@c=,PRޢ{c,PR !{zzPRZZ,tcPR{ !,|c=PR{zz=PRZzz=(@VZ,|c=(@V{,tc(@V{ !zz(@VZZc,(@V !{@c=,(@Vޢ{z=z(@VZ,=c(@V^ !,=hc=(@V^z=z=(@Vc=,=(@V^`c,=(@V !^`c,=Yc=,=z=z=ZZ,=lc=,=cYz=zZU@c=,tc,YtzzUU,rctY,c=tzz=UZ𺵽=\'e?0 =\6?& \6𺵽\''@ ?^6 =?^6ີ=\e؛'?=2 \?= =\Ɂ==\ee =?=\ ?=\`AY>\U=;Y>\U==\>>@Y>x=\U8Y>\U=׽\>`=@Y^@Y^׽׽\@Y~\@Y=\׽Ļ=\>׽Ļ=@rZ@Y=@r^ !@Y~@r^׽׽@r@YBr^`=@YBr !^=׽@rZ8Y>@r{@Y>x=@r{ !==@rZZ=;Y>@r !{`AY>@rޢ{DATA,c d DATAd 5###### ! ! ! ! ! !!!!!!!############## ## ## ## # # # # !!!,#,!"!!"##!"##$!#$#%!$%#&!%&#'!&'#(!'(#)!()#*!)*#+!*+#+,#,-#-.#+.#./#*/#/0#)0#01#(1#12#'2#23#&3#34#%4#45#$5#56##6#67#"7#78#!8#-8#89#9D!-D#7:#9:!6;#:;!5<#;<!4=#<=!3>#=>!2?#>?!1@#?@!0A#@A!/B#AB!.C#BC!CD!DE#EF#CF#FG#BG#GH#AH#HI#@I#IJ#?J#JK#>K#KL#=L#LM#<M#MN#;N#NO#:O#OP#9P#EP# R#S#T#U# V#W# X# Z#[# \#^#_#`#a#b#c#d#e#f#g#h#QS#RT#QU#RV#UW#VX#WY#XZ#Y[#Z\#[]#\^#]_#^`#_a#`b#ac#bd#ce#df#eg#fh#Sg#Th#hi!i}!T}!S~!j~!gj!fk!ik!jl!el!dm!km!ln!cn!bo!mo!np!ap!`q!oq!pr!_r!^s!qs!rt!]t!\u!su!tv![v!Zw!uw!vx!Yx!Xy!wy!xz!Wz!V{!y{!z|!U|!R!{!|!Q!}!~!!!~!}!!!|!!!{!z!!!y!x!!!w!v!!!u!t!!!s!r!!!q!p!!!o!n!!!m!l!!!k!j!!!i!!!!#!!#!!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!############################!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!!#!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!############E#F#G#H#I#J#K#L#M#N#D#O### # #  # #  # #  # #  # # ############!!*#!)#!(#!'#!&#!%#!$#!##!"#!!#+#! # +# 7# !#!6#!"#"5#"###4##$#$3#$%#%2#%&#&1#&'#'0#'(#(/#()#).#)*#*-#*+#+,#,-#-.#-B!./#.A!/0#/@!01#0?!12#1>!23#2=!34#3<!45#4;!56#5:!67#69!,C!,7#78!8C#8O#89#9N#9:#:M#:;#;L#;<#<K#<=#=J#=>#>I#>?#?H#?@#@G#@A#AF#AB#BE#BC#CD#DE!EF!FG!GH!HI!IJ!JK!KL!LM!MN!NO!DO!""""""        ]"Y"Q"DATA, h DATAPh 4D        !, "!#"$#%$&%'&(')(*)+*,++,-.*+./)*/0()01'(12&'23%&34$%45#$56"#67!"78,!8--89D87:976;:65<;54=<43>=32?>21@?10A@0/BA/.CB.-DCCDEFBCFGABGH@AHI?@IJ>?JK=>KL<=LM;<MN:;NO9:OPD9PESQR TUQV RWUX VYWZ X[Y\ Z][^ \_]`^a_b`cadbecfdgehfSgThThi}gS~jhfkiegjlfdmkcelndbomacnpb`qo_apr`^sq]_rt^\us[]tv\ZwuY[vxZXywWYxzXV{yUWz|VR{QU|RT}SQ~~}|{|zy{zxwyxvuwvtsutrqsrpoqpnmonlkmljikj~}iDEEFFGGHHIIJJKKLLMMNNOOD          *+)*()'(&'%&$%#$"#!" !+ ,7 +76! 65"!54#"43$#32%$21&%10'&0/('/.)(.-*)-,+*BC,-AB-.@A./?@/0>?01=>12<=23;<34:;459:568967C87,DO8CON98NM:9ML;:LK<;KJ=<JI>=IH?>HG@?GFA@FEBAEDCBME 2 `F MECylinder.005d (   к X x   .d7E?pF?U,?7C>D>d>DATA( x DATA,X  DATA 8.E? ?|>CPDPwJ??|>mawJ?ﳢ?|>mE?^?|>DP]a[2?bޛ?|>[.*?^?|>-%?ﳢ?|>\-%??|>\`.*? ?|>CP2?>?|>m]?|>amE? ?z?TT,wJ??z?s,wJ??z?s,E?^?z?T$,_?z?s,Z?z?s,E?yЫ? ?%%ptW %u 3?-?i>% *?ƫ?i>|%?⛧?i>i %?̢?i>i*??i>|{u 3?:?i>i i+D??i>{OI?̢?i>%OI?㛧?i>% 7?P4?i>?u?Vf-?*QX R??Uf-?5X R?s?Uf-?5 X?4?Uf-?**X.?C?Uf-? 5XHA?C?Uf-?5XR?3?Wf-?Q"\\?s?Wf-?o\\??Vf-?oDR?u?Vf-?QQ8JA?I?Vf-?oX.?I?Vf-? oX?u?Y}?ѯ/P[;"R??Y}?wY\; R?s?Y}?w\;?5?Z}?ѯѯ\;.?C?Z}?w\;EA?C?Z}?Yw\;R?2?Z}?/Pѯ\;\\?s?\}?ml;\\??\}?zmUx;R?u?[}?)P-Pf;MA?I?[}?Ym\;.?I?[}?m\; R??1?^ !!R??A;?^ !!R??RK?^ !!R??_?^ !!R??o?^ !"R??y?^ !?u?1?Z?u?A;?Z?u?SK?Z?u?_?Z?u?o?Z?u?y?Z R?s?1?^ R?s?A;?^ R?s?SK?^ R?s?_?^ R?s?o?^ R?s?y?^?4?1??4?A;??4?SK??5?_??5?o??5?y?.?C?1?^.?C?A;?].?C?SK?[.?C?_?[.?C?o?].?C?y?^GA?C?1?&!` GA?C?A;?6!d1B?oF?K? m1B?oF?'_?y kW FA?C?o?8!dEA?C?y?'!`R?3?1?ZbR?$?\=;?8]E{R?%?To?7M(R?2?y?ZL\?^s?l1?`"˵_]\?^s?,y?T`!ˣAg\??k1?`4`\??,y?D`4AR?u?1?dZZ7;R?s?[=;?7kiR?s?So?7k(R?u?y?~ZZKA?I?1?!{KA?I?A;? {IA?oF?K?^ ~IA?pF?'_?u ~M LA?I?o?0!{LA?I?y?$!{.?I?1?ޢ{.?I?A;?ޣ{.?I?TK?ޥ{.?I?_?ޥ{.?I?o?ޣ{.?I?y?ޢ{u?pW?J]?{ !u?pW?^}M?{u?M?J??Zu?O?Sn7? !^u??L??u?m5?c}M?^u?m5?O]?^ !u?>?ak?Zu??L??Ku?m5?c}M?^Ku?m5?O]?^ !Ku?>?ak?ZKu??L??^`?m5?c}M?^^`?m5?O]?^ !^`?>?ak?Z^`?>^_?pW?^}M?\U^_?M?J??\>^_?O?Sn7?\^_??L??\^_?m5?c}M?\^_?m5?O]?\^_?>?ak?\>^_? Y=??}?ߩY|F? Y?}?YWK?1ݧ?}?YUK??}?> Y|F?3?}?XY=??}?WxZ)3??}?> WxZ 2*?3?}?XXY%??}?Wx> Y%?3ݧ?}?WxZ2*?X?>-?X觩*3??>-?> Ƅ=??>-?ߩN|F?X?>-?觨K?ݧ?>-?ߩK?ů?>-?> N|F?4?>-?XĄ=?W?>-?Wx*3?W?>-?> Wx2*?4?>-?XX>%?Ư?>-?Wx> >%?ݧ?>-?Wxߨ%?'ݧ?YU?{P2*?Y?YU?Z%??YU?{ !O2*?3?YU?ZZ*3?+?ZU?!{Ą=?W?YU?ޢ{|F?3?ZU?ZK??YU?^ !K?%ݧ?YU?^|F?X?YU?߄=??YU?^*3??YU? !^OHG?E?\K?{'U?_s?<;?Z\?N?.1?h1!c\?s?.1?hc1T?~?<;?wRG?F?`K?`RG?F?)_? \!T?~?o?rtZT?`s?o?ZtZOHG?E?)_? {!L\?s?Ɍy?4ޟ{%\?N?Ɍy?4+!{DATA,x к DATAк 5d# ## ############# ## ## ## # # # ######## # # ### ############# # #!# !#"#!"# ##"####$!$!$!$!$!$!$!$! $!!$!"$!#$!%#%&# &#&'# '#'(# (#()#)#)*#*#*+#+#+,#,#,-#-#-.#.#./#/#/0#0#%0#%1!&1!'1!(1!)1!*1!+1!,1!-1!.1!/1!01!23">?"34"?@"45"@A"56"AB"67"BC"78"CD"89"DE"9:"EF":;"FG";<"GH"<="HI"2=">I"3J"JK"KL"LM"MN"NO"?O"2P"PQ"QR"RS"ST"TU">U"4V"VW"WX"XY"YZ"Z["@["5\"\]"]^"^_"_`"`a"Aa"6b"bc"cd"de"ef"fg"Bg"7h"hi"ij"jk kl"lm"Cm"8n"no"pq"Dq"9r":t";v"vw"xy"Gy"<z"z{"{|"|} }~"~"H"=""""""I"JP KQ LR MS NT OU JV KW LX MY NZ O[ V\ W] X^ Y_ Z` [a \b ]c ^d _e `f ag bh ci dj ek fl gm hn io lp mq nr ps"rt"su"tv ux"vz w{ x~ y z { | } ~  U T S R Q P """"""""""""" " " " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""" " " " " " " " " " " """"""""""""""""""""""""""w|"tw"or"jo"kp"x}"=""2"<"";"":""9""8""7""6""5""4""3""" " " " " " " " " " " " ">""I""H""G""F""E""D""C""B""A""@""?"" " " " " " " " " " " """"""""""""""""""""""" " " " "  " " "  " "  "" """"""""""""""" " " " " " " " " " " "   " ! !"! """""""" "!"""qs Es"uy Fu"|""""w#"#"t$"$"r%"%"o&"&"j'"'"k("("p)")"x*"*"}+"+"s,","u-"-"*+ "+ "# #$ $% %& &' '( () ), ,- *- DATA,  DATAL 47          ! "! #" #$$$$$$$$ $ !$!"$"#$# %& &' '( ())**++,,--..//00%&%11'&1('1)(1*)1+*1,+1-,1.-1/.10/1%023JPPJKQQKLRRLMSSMNTTNOUUO?>34VJJVWKKWXLLXYMMYZNNZ[OO[@?45\VV\]WW]^XX^_YY_`ZZ`a[[aA@56b\\bc]]cd^^de__ef``fgaagBA67hbbhiccijddjkeeklfflmggmCB78nhhnoilpqmmqDC89rnnropsqqsED9:trsuFE:;vttvwuxyuyGF;<zvvz{wx~yyHG<=zz{{||}}~~IH>IUUTTSSRRQQP=2Piojkplx}~w{|2==<<;;::998877665544332I>HIGHFGEFDECDBCAB@A?@>?                  !  !   ! !+*+}x*"+"|}+#"#w|"$#$tw#%$%rt$&%&or%'&'jo&('(kj')()pk(,),sp)-,-us,*-*xu-ME 2p6  MECylinder.0060u  " H   (  P! 3$W-$>`>_F>DATA x DATA, H DATAH 8,#>׽ߪ=6*Q,#> ^>6 o,#>x=^>6o,#>==6QQ,#> >K=6o,#> >$6o ,#>=nڽx6Q,#>=V{b6,#>V{6:,#>׽nڽ6.:,#>$65 ,#>K=65i#׽˪=ѯ/Ph#2V>ħmg#Q=^>Ymg#==/P/Pg# >L=ĉmYh# >z$ĉmi#ϓ=nڽ/Pѯo#=P{Zp#_{ī⅒p#څ׽nڽӯׯp#$wo#K=wY=>^>ޢ{]=Z>ޢ{=Z>ޢ{)!Z>ޢ{ֽ&Z>ޢ{ +V>ޢ{8>׽۪=ZU=׽۪=Z=׽ת=Z)׽Ӫ=Zֽ׽Ϫ=Z ׽Ϫ=Z=>q=^> !{^=l=^> !{=g=^> !{)b=^> !{ֽ\=^> !{ W=^> !{=>==ZZ^===ZZ===ZZ)==ZZֽ==ZZ ==ZZ=> >K={ !^= >K={!= >K={!) >K={!ֽ >K={!  >L={ !=> >${]= >${2=6>bT%^ ~+6>bT%~ֽ >${  >$ {8>=nڽdZb=t=9.ڽ(k2ֽt="ڽQ׳k ͓=nڽ/}Zzs7>=:KA4p=}]4s7>PBL0B'˼6>׽nڽc=:f׽۽R)_g2ֽ:f׽yZڽGK܅׽nڽ |6>$!ZO=$S R=Fb$R hNb$j ֽ$b$_6>K=^ !P=K=]!=K=[!%)K=[! ֽK=]!K=^ !F%`}|^=%`}| !^ =s`}|Z=~U`}|{=jq=`}|{ ! =ف=`}|ZZ=3=`}| !{G3=`}|ޢ{쳽ف=`}|Z`Zq=`}|^ !`U`}|^쳽s`}|F%%y^쳽s%y=%%y !^ =s%yZ=~U%y{=jq=%y{ ! =ف=%yZZ=3=%y !{G3=%yޢ{쳽ف=%yZ`Zq=%y^ !`U%y^F%$^쳽s$=%$ !^ =s$Z=U${=hq=${ ! =؁=$ZZ=3=$ !{G3=$ޢ{쳽؁=$Z`Xq=$^ !`U$^F%!쳽s!=%! =s!>=U!U=hq=!U =؁=!>>=3=!UG3=!U쳽؁=!>`Xq=!`U!s!fwbӽԽ!bbw=|!fw=Խ! bw>!w>=!wұ=*=! wӬ=r>!w@tr>!wbӽ*=!b wnq=!fwn!fw;!DNֽF׽;!=;!uJ=F׽;!@HI&>;!bҲI&>l=;!btҲ=T=;!@HFH=>;!ub(>;!bNֽT=;!MHY=;!Ru;!R,$>}Խ=fxJ,$>N=fx = ,$>F"fx ,$>|Խe׽fxJJ,$>;hfx ,$>=hfx= ,$>Ҋ=e׽fxJ3$>">"fx)3$>">=fx)= 3$>==fx3$>=>fx= )3$>O>fx)/$>!i `=_m/3$>q=_m5ȿ3$>jͥe= `=_m3$>Z=,*<_mȿ3$>Z=9_mȿ5/$>e=o_m//$>ͥ<5_m8@/$>u5_m58@/$>iʒo_m///$> M:_m8@5/$>M)<_m8@ $^Խ'=\&$/R= '$/&"'$6ԽI׽'$V&$$=H $+= ׽\$6>"`%$6>6S=`% $=O=\\$x$=V> `%$W N>`%!$i6`=/!$˜w=5ɿ $kӥ #q$hbmXX#2h'> Wx#ȟ<Wx#/@d=mX# A= ⩇> #A=\<⩇#?d=~n^=#I #>Ehf^=WX#>--WWx> #>3hmWXX#>^boW> Wx#>j7d=mWX#>R;=W> #>R;=7d=f^=W#>S<R=Wߩ#>tbR=W> 3eSU= !^3n h6j^=Z3!=<<^S3Q;=^ !3;d=m~Z3 {ޘ\4> =B{2!=nn=czZZEo=T>֑{'!{?T>֑{ޤ{ֽnn=o콌Zֽ`׽ rjz\. =Sa+!.aDATA,(   DATA  5" "" """"""""""""" "" "" "" " """"""" """ " !"!"""#" #"$"$%"%&"&'"'("()")"*"*+"+,",-"-."./"/"0"01"12"23"34"45"5"6"67"78"89 9:":;";"<"<=">?"?"@"B" D"DE"FG"G" H"HI"IJ"JK KL"LM"M" N"NO"OP"PQ"QR"RS"S"   ! " # $ % & ' ( ) $* %+ &, '- (. )/ *0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; 6< 7= :> ;? <@ >A"@B"AC"BD CF"DH EI FL GM HN IO JP KQ LR MS #S "R !Q P O N T_"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"T`"`a _a"`b Ub"bc Vc"cd Wd"de Xe"ef Yf"fg Zg"gh [h"hi \i"ij ]j"jk ^k"ak `l"lm am"ln bn"no co"op dp"pq eq"qr fr"rs gs"st ht"tu iu"uv jv"vw kw"mw lx"xy"my"xz"nz"z{"o{"{|"p|"|}"q}"}~"r~"~"s""t""u""v""w"y"x "y z "{ "| "} "~ " " " " " """"""""""""""""""""""""""EJ"BE"=@"8="9>"FK" """ "" """"""""""""""""""" " " " " " " " " " " " " """""""""""""""""""""" "" " " " " " " " " " " """"""""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " """"""""""""?A A"CG C"J""E""B""@""=""8""9"">""F""K""A""C"" DATA,P! " DATA" 4  !!""## $$%%&&''(()) *$$*+%%+,&&,-''-.((./))/0**01++12,,23--34..45//56006711782289339:44:;55;<66<=7:>?;;?@<<@=>A??AB@AC DBBDECFGCG HDDHIEFLMGGM NHHNOIIOPJJPQKKQRLLRSMMS S##SR""RQ!!QP  POON N_T`a`TUbVcbUWdcVXedWYfeXZgfY[hgZ\ih[]ji\^kj]_ak^a`lmbnl`conbdpoceqpdfrqegsrfhtsgiuthjvuikwvjamwkmlxynzxlo{znp|{oq}|pr~}qs~rtsutvuwvmywyxxzz{{||}}~~y7=89>:FKLEIJ       KFJKEJBE@B=@8=98>9A>CAFCMEp6 2`{  MECylinder.007G 7 g 89 pN 7 M  @f 4:pkS,$>`>`F>DATA7 x DATA,7 89 DATA89 8,#>^Խ(=6*Q,#>ó>6 o,#>k!=>6o,#>κ=(=6QQ,#>V>=6o,#>X>v 6o ,#>ߺ=x@ؽw6Q,#>k!=,db6,#>,d6:,#>^Խx@ؽ6.:,#>Xs0w 65 ,#>`sP=65d#^Խ(=ѯ/Pd#>ħmd#k!=>Ymd#ú=H=/P/Pd#X>Ш=ĉmYd#`>v ĉmd#=X@ؽ/Pѯl#l!=,dZl#{˳>ޢ{i=ӳ>ޢ{=׳>ޢ{(۳>ޢ{ֽ߳>ޢ{>ޢ{<>^Խ(=ZY=^Խ(=Z=^Խ(=Z)^Խ(=Zֽ^Խ(=Z ^Խ(=ZD>k!=> !{i=k!=> !{=k!=> !{(k!=> !{ֽk!=> !{k!=> !{D>̺=(=ZZi=ʺ=(=ZZ=ɺ=H=ZZ(Ǻ=H=ZZֽƺ=H=ZZź=H=ZZD>V>={ !i=X>={!=X>={!(X>={!ֽX>={!X>={ !D>X>v {i=Z>v {Q=ȋ> ^ ~ȋ> ~ֽ^>v {`>v {<>=x@ؽdZb=A=׽(k'ֽA=׽Q׳k =X@ؽ/}Zzt7>_`!=#KA4p_`!=f]4t7> BLtB'˼<>^Խx@ؽc=?ԽXٽR)_g'ֽ?Խ,ؽGK ^Խ@ؽ |<>Xs0w !ZY=Xs0w S q=]% R h]% jֽVspw b Vspw _<>`sP=^ !Y=`sP=]!=^sP=[!)^sP=[!ֽ^sP=]! ^sP=^ !F=vܷ U==ܷ U ==ܷ >>=Z=ܷ UGZ=ܷ U쳽=ܷ >W=ܷ Wܷ sܷ ewWӽнܷ aaw1=ܷ ew=нܷ aw>O4ܷ w>=ܷ wٱ=Q=ܷ w=M>ܷ w/tM>ܷ wWӽQ=ܷ a wn=ܷ ewng4ܷ ewH  CGֽԽ  =H  uJ=yԽ  AHL&>7  bҲL&>=!=  btҲ={=  AHFH=4v>  ub4v>  bGֽ{=  MH=!=  RuO  R,$>UѽH=fxJ,$>`o=fx = ,$>`p>fx ,$>Uѽ7սfxJJ,$>zQfx ,$>3=Qfx= ,$>=7սfxJ4$>>0>fx)4$>>o=fx)= 4$>=H=fx4$>3=>fx= )4$>{>fx)4$>rcgd=_m/4$>H=`m5ɿ4$>i*l=gd=_m4$>ꁠ=<_mȿ4$>ꁠ=`_mȿ54$>*l=06k`m/4$>j<`m7@4$>`m47@4$>rc06k`m//4$>%_m8@54$>% <_m8@$9ѽh'=\$$VP= $$Np~$$ѽս$$,$$5s= $O =ս\$X>}`%$P>Я=`% $ ='=\\$r=> `%$t>`%$C{cod=/$>襜=4ɿ$o<=ɿ$-3l=pd=$=<ɿ$=`ɿ4$a3l=p>k/$$zp<8 7@$$X 47@$${c>k//$$+7@5$$+ <7@#Wab=X#) #+aiXX#˟ힽ> Wx#V<<ힽWx#uj=piX#.h=`R⩇> #'h=<⩇#Aj=b=#;<=ߩ#̟h=> #>ab=WX#>} uLWWx> #>a0iXXX#>ş螽X> Wx#>5<螽XWx#> j=0iXX#>vb=`LX> #>vb=j=b=W#>5<Ȁ=Xߩ#>şȀ=X> E4ɟ= !^E4'ab=ZE48<=^E4j=b=E4De=<^E4ub=`L^ !E45j=0i~ZE4:9<ꞽޢ{E4ȟꞽ !{E4apiZZE4; O{ !E4] <{qo=Yv'!` =e9Խ$zZw\4>á{ޘ\4>!Z!=u{2! ==zZZQo=>05w'!{/>05wޤ{ֽ=꽌Zֽg9ԽX꽌rYv\,Z!=,a+!,aDATA,M pN DATApN 5" "" """"""""""""" "" "" "" " """"""" """ " !"!"""#" #"$"$%"%&"&'"'("()")"*"*+"+,",-"-."./"/"0"01"12"23"34"45"5"6"67"78"89 9:":;";"<"<=">?"?"@"B" D"DE"FG"G" H"HI"IJ"JK KL"LM"M" N"NO"OP"PQ"QR"RS"S"   ! " # $ % & ' ( ) $* %+ &, '- (. )/ *0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; 6< 7= :> ;? <@ >A"@B"AC"BD CF"DH EI FL GM HN IO JP KQ LR MS #S "R !Q P O N T_"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"T`"`a _a"`b Ub"bc Vc"cd Wd"de Xe"ef Yf"fg Zg"gh [h"hi \i"ij ]j"jk ^k"ak `l"lm am"ln bn"no co"op dp"pq eq"qr fr"rs gs"st ht"tu iu"uv jv"vw kw"mw lx"xy"my"xz"nz"z{"o{"{|"p|"|}"q}"}~"r~"~"s""t""u""v""w"y"x "y z "{ "| "} "~ " " " " " """"""""""""""""""""""""""EJ"BE"=@"8="9>"FK" """ "" """"""""""""""""""" # # # # # # # # # # # # """""""""""""""""""""" "" " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""#"##"" " " " " " " " " " " " """"""""""""?A A"CG C"J""E""B""@""=""8""9"">""F""K""A""C"" DATA,@f g DATAg 4  !!""## $$%%&&''(()) *$$*+%%+,&&,-''-.((./))/0**01++12,,23--34..45//56006711782289339:44:;55;<66<=7:>?;;?@<<@=>A??AB@AC DBBDECFGCG HDDHIEFLMGGM NHHNOIIOPJJPQKKQRLLRSMMS S##SR""RQ!!QP  POON N_T`a`TUbVcbUWdcVXedWYfeXZgfY[hgZ\ih[]ji\^kj]_ak^a`lmbnl`conbdpoceqpdfrqegsrfhtsgiuthjvuikwvjamwkmlxynzxlo{znp|{oq}|pr~}qs~rtsutvuwvmywyxxzz{{||}}~~y7=89>:FKLEIJ       KFJKEJBE@B=@8=98>9A>CAFCME`{ 2P p6 MECylinder.008w |  (~ ` |   0 4:pkS,$>`>`F>DATA| x DATA,| (~ DATA(~ 8,#>^Խ(=6*Q,#>ó>6 o,#>k!=>6o,#>κ=(=6QQ,#>V>=6o,#>X>v 6o ,#>ߺ=x@ؽw6Q,#>k!=,db6,#>,d6:,#>^Խx@ؽ6.:,#>Xs0w 65 ,#>`sP=65d#^Խ(=ѯ/Pd#>ħmd#k!=>Ymd#ú=H=/P/Pd#X>Ш=ĉmYd#`>v ĉmd#=X@ؽ/Pѯl#l!=,dZl#{˳>ޢ{i=ӳ>ޢ{=׳>ޢ{(۳>ޢ{ֽ߳>ޢ{>ޢ{<>^Խ(=ZY=^Խ(=Z=^Խ(=Z)^Խ(=Zֽ^Խ(=Z ^Խ(=ZD>k!=> !{i=k!=> !{=k!=> !{(k!=> !{ֽk!=> !{k!=> !{D>̺=(=ZZi=ʺ=(=ZZ=ɺ=H=ZZ(Ǻ=H=ZZֽƺ=H=ZZź=H=ZZD>V>={ !i=X>={!=X>={!(X>={!ֽX>={!X>={ !D>X>v {i=Z>v {Q=ȋ> ^ ~ȋ> ~ֽ^>v {`>v {<>=x@ؽdZb=A=׽(k'ֽA=׽Q׳k =X@ؽ/}Zzt7>_`!=#KA4p_`!=f]4t7> BLtB'˼<>^Խx@ؽc=?ԽXٽR)_g'ֽ?Խ,ؽGK ^Խ@ؽ |<>Xs0w !ZY=Xs0w S q=]% R h]% jֽVspw b Vspw _<>`sP=^ !Y=`sP=]!=^sP=[!)^sP=[!ֽ^sP=]! ^sP=^ !F=vܷ U==ܷ U ==ܷ >>=Z=ܷ UGZ=ܷ U쳽=ܷ >W=ܷ Wܷ sܷ ewWӽнܷ aaw1=ܷ ew=нܷ aw>O4ܷ w>=ܷ wٱ=Q=ܷ w=M>ܷ w/tM>ܷ wWӽQ=ܷ a wn=ܷ ewng4ܷ ewH  CGֽԽ  =H  uJ=yԽ  AHL&>7  bҲL&>=!=  btҲ={=  AHFH=4v>  ub4v>  bGֽ{=  MH=!=  RuO  R,$>UѽH=fxJ,$>`o=fx = ,$>`p>fx ,$>Uѽ7սfxJJ,$>zQfx ,$>3=Qfx= ,$>=7սfxJ4$>>0>fx)4$>>o=fx)= 4$>=H=fx4$>3=>fx= )4$>{>fx)4$>rcgd=_m/4$>H=`m5ɿ4$>i*l=gd=_m4$>ꁠ=<_mȿ4$>ꁠ=`_mȿ54$>*l=06k`m/4$>j<`m7@4$>`m47@4$>rc06k`m//4$>%_m8@54$>% <_m8@$9ѽh'=\$$VP= $$Np~$$ѽս$$,$$5s= $O =ս\$X>}`%$P>Я=`% $ ='=\\$r=> `%$t>`%$C{cod=/$>襜=4ɿ$o<=ɿ$-3l=pd=$=<ɿ$=`ɿ4$a3l=p>k/$$zp<8 7@$$X 47@$${c>k//$$+7@5$$+ <7@#Wab=X#) #+aiXX#˟ힽ> Wx#V<<ힽWx#uj=piX#.h=`R⩇> #'h=<⩇#Aj=b=#;<=ߩ#̟h=> #>ab=WX#>} uLWWx> #>a0iXXX#>ş螽X> Wx#>5<螽XWx#> j=0iXX#>vb=`LX> #>vb=j=b=W#>5<Ȁ=Xߩ#>şȀ=X> E4ɟ= !^E4'ab=ZE48<=^E4j=b=E4De=<^E4ub=`L^ !E45j=0i~ZE4:9<ꞽޢ{E4ȟꞽ !{E4apiZZE4; O{ !E4] <{qo=Yv'!` =e9Խ$zZw\4>á{ޘ\4>!Z!=u{2! ==zZZQo=>05w'!{/>05wޤ{ֽ=꽌Zֽg9ԽX꽌rYv\,Z!=,a+!,aDATA, ` DATA` 5" "" """"""""""""" "" "" "" " """"""" """ " !"!"""#" #"$"$%"%&"&'"'("()")"*"*+"+,",-"-."./"/"0"01"12"23"34"45"5"6"67"78"89 9:":;";"<"<=">?"?"@"B" D"DE"FG"G" H"HI"IJ"JK KL"LM"M" N"NO"OP"PQ"QR"RS"S"   ! " # $ % & ' ( ) $* %+ &, '- (. )/ *0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; 6< 7= :> ;? <@ >A"@B"AC"BD CF"DH EI FL GM HN IO JP KQ LR MS #S "R !Q P O N T_"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"T`"`a _a"`b Ub"bc Vc"cd Wd"de Xe"ef Yf"fg Zg"gh [h"hi \i"ij ]j"jk ^k"ak `l"lm am"ln bn"no co"op dp"pq eq"qr fr"rs gs"st ht"tu iu"uv jv"vw kw"mw lx"xy"my"xz"nz"z{"o{"{|"p|"|}"q}"}~"r~"~"s""t""u""v""w"y"x "y z "{ "| "} "~ " " " " " """"""""""""""""""""""""""EJ"BE"=@"8="9>"FK" """ "" """"""""""""""""""" # # # # # # # # # # # # """""""""""""""""""""" "" " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""#"##"" " " " " " " " " " " " """"""""""""?A A"CG C"J""E""B""@""=""8""9"">""F""K""A""C"" DATA,0  DATA 4  !!""## $$%%&&''(()) *$$*+%%+,&&,-''-.((./))/0**01++12,,23--34..45//56006711782289339:44:;55;<66<=7:>?;;?@<<@=>A??AB@AC DBBDECFGCG HDDHIEFLMGGM NHHNOIIOPJJPQKKQRLLRSMMS S##SR""RQ!!QP  POON N_T`a`TUbVcbUWdcVXedWYfeXZgfY[hgZ\ih[]ji\^kj]_ak^a`lmbnl`conbdpoceqpdfrqegsrfhtsgiuthjvuikwvjamwkmlxynzxlo{znp|{oq}|pr~}qs~rtsutvuwvmywyxxzz{{||}}~~y7=89>:FKLEIJ       KFJKEJBE@B=@8=98>9A>CAFCMEP 2U `{ MECylinder.009  `'  8    & .xN >=>T>[e>DATA x DATA,  DATA+ 8.t>>X:ξZZώR>X:ξ{ !ώ>X:ξ{t(ː>X:ξZc/&>X:ξ !^T/&>X:ξ^9(ː>X:ξǾ>X:ξ^ǾR>\:ξ^ !9>>\:ξZV65>\:ξޢ{d95>X:ξ !{t@>B<>>\ώR>BPC@C<>\a2&>PC<\R/&>B<\9'ː>B<\Ǿ>B<\ǾR>B<\9=>B<>\X65>BB<U\\W>B<ώR>i޲{ !t>>i޲ZZώ>h޲{t)ː>h޲Zc/&>h޲ !^T/&>i޲^9(ː>i޲Ǿ>h޲^ǾR>l޲^ !9>>l޲ZV65>l޲ޢ{d95>h޲ !{ώR>pXqYt>>@@qYώ>pXNqYt)ː>@CqYc/&>qYT/&>N萧qY9(ː>CCqYǾ>NqYǾR>qY9>>C@qYV65>NpXqYd95>pXqYώR>;Yէt>>;AAէώ>;Yէt(ː>;Aeէc/&>;aէT/&>;aէ9(ː>;eeէǾ>;aէǾR>;aէ9>>;eAէV65>;Yէd95>;Yէo\î>;Yէ>;AAէo >;Yէی>;AeէA6ƃ>;aէm6ƃ>;aէ/)ľی>;eeէ>; >;aէ>;[î>;aէ0)ľ>;eAէm.>;YէA2>;Yէo\î>ppXqY>p@@qYo >npXNqYی>n@CqYA6ƃ>nqYm6ƃ>pN萧qY/)ľی>pCCqY>; >nNqY>;[î>sqY0)ľ>sC@qYm.>sNpXqYA2>npXqYo\î>̾{ !>̾ZZo >̾{ی>̾ZA6ƃ>̾ !^m6ƃ>̾^/)ľی>̾>; >̾^>;[î>̾^ !0)ľ>̾Zm.>̾ޢ{A2>̾ !{o\î>{ !>ZZo >ޝ{ی>ޝZA6ƃ>ޝ !^m6ƃ>^/)ľی>>; >ޝ^>;[î>㝴^ !0)ľ>㝴Zm.>㝴ޢ{A2>ޝ !{ώR>1;{ !t@>1;ZZώ>q;{t+ː>Q;Za2&>q; !^R/&>1;^9'ː>1;Ǿ>Q;^ǾR>Q;^ !9=>Q;ZX65>Q;ޢ{g95>Q; !{t>>nоZZd95>nо !{V65>rоޢ{9>>rоZǾR>rо^ !Ǿ>nо^9(ː>nоT/&>nо^c/&>nо !^t(ː>nоZώ>nо{ώR>nо{ !t>>=Ѿ>>ώR>=ѾUώ>=ѾUt(ː>=Ѿ>c/&>=ѾT/&>=Ѿ9(ː>=ѾǾ>=ѾǾR>=Ѿ9>>=Ѿ>V65>=ѾUd95>=ѾU\W>=Ѿ==Cʼ>>c>(=CʼUc>pCʼU頣=0νCʼ>[_=( Cʼm*'( Cʼm,ֽ0νCʼ[[ܯCʼm頣ܯ=Cʼm,ֽ=Cʼ[>R' >CʼUC= >CʼU==<>>`\c>H=@[`\=( <m`\'0 <m`\~,ֽHν<[[`\ܯ`\~' ><U`\= ><U`\L֟>A<U \pڶ>AA<> \A< \A< \&ʾWE>A< \fڶu>A< \D֟u>A< \狾]E>A<> \xe4>AAA<>> \H֟>`Unڶ>`U*ʾ&>`>``*ʾZE>`jڶu>`H֟u>`狾ZE>`>xe4>`Uxe>8>`U狾&>`>>==< !{~' ><ޢ{,ֽ=<Zܯ=<^ !ܯ<^~,ֽHν<'0 <^=( < !^= ν@<{c>H=<{ !c>H=={ !===ZZc>@={= ν=Z=( = !^'0 =^~,ֽHν=ܯ=^ܯ==^ !,ֽ==Z~' >=ޢ{= >= !{= >$==vc%==$=VVc%~' >$=R=vc%,ֽ=$=qVc%ܯ=$=Éc%ܯ$=ÉRc%~,ֽHν$=qqc%'0 $=RÉd%=( $=Éd%= ν$=Vqc%c>@$==vRc%c>H=$==vc%=x=t =**Jq߇>p1=t =9jJq߇>ht =9Jq=̽t =*Jqj= t =jwJq(P& t =wJqԽ̽t =JqVAЉt =wƖJqVA1=t =wjJq ԽX=t =*JqP&9 >t =9Jq?j=9 >t =j9Jqh+t =C= >ټ !{R' >ټޢ{,ֽ=ټZܯ=ټ^ !ܯټ^,ֽ0νټ*'( ټ^_=( ټ !^=0νټZc>pټ{c>(=ټ{ !==ټZZ==缁ZZc>(=缢{ !c>p缢{=0ν缁Z_=(  !^*'( ^,ֽ0νܯ^ܯ=^ !,ֽ=ZR' >ޢ{C= > !{C= >9T0qR' >90q,ֽ=9$Rܯ=9ЎTܯ9Ў,ֽ0ν9$$*'( 9Ў_=( 9TЎ=0ν9R$c>p90qc>(=90qT==9RRR=M=, Ĉ >=,, Ĉ >,,ĈR=˽, Ĉ= , Ĉ% , Ĉ:]ӽ˽,Ĉ, Ĉx=, ĈD]ӽM=, Ĉ%ȼ >,,Ĉ=ȼ >, ,Ĉh+,狾&><{ !xe4><{狾]E>< !^fڶu><^&ʾWE><<^<^ !.ʾ&><Zpڶ><ޢ{L֟>< !{L֟>< !{pڶ><ޢ{.ʾ&><Z<^ !<^&ʾWE><fڶu><^D֟u>< !^狾]E><{xe@8><{ !狾&>4b=ZZxe@8>4b={ !xe4>4b={狾]E>4b=ZD֟u>4b= !^fڶu>4b=^&ʾWE>4b=4b=^4b=^ !.ʾ&>4b=Zpڶ>4b=ޢ{L֟>4b= !{L֟>=Lt)pڶ>=t).ʾ&>=~U)=2L)=2)&ʾWE>=~~)fڶu>=2)D֟u>=L2)狾]E>=U~)xe4>=t)xe@8>=tL)狾&>=UU) \h>@=='='Ws >@=5\Ws^>@=5Ws\>@=='Wsv>@=\fWsv>@=fWsTʾ>@=Wsվ^>@=fʤWsվ >@=f\WsTʾc>@=='Wsį >@=5Ws >@=\5WsXX,>@=狾&>YJǼZZxe>8>YJǼ{ !xe4>YJǼ{狾ZE>YJǼZH֟u>YJǼ !^jڶu>YJǼ^*ʾZE>YJǼYJǼ^YJǼ^ !*ʾ&>YJǼZnڶ>YJǼޢ{H֟>YJǼ !{H֟>9Ѽ !{nڶ>9Ѽޢ{*ʾ&>9ѼZ9Ѽ^ !9Ѽ^*ʾZE>9Ѽjڶu>9Ѽ^H֟u>9Ѽ !^狾ZE>9ѼZxe4>9Ѽ{xe>8>9Ѽ{ !狾&>9ѼZZ狾&>M T T|xe>8>Mr|xe4>Mr>|狾ZE>M T|H֟u>M4|jڶu>M>4|*ʾZE>M|M4>|M4|*ʾ&>M T|nڶ>M>r|H֟>Mr|XX,> 3>  0Q֜3> 0Q ʾ~> iܗ#Q`eվ> b Q`eվq> bQ ʾ> iiQԜHRw> bQHRw>  bQ̏> #iQSKq> 0QSK> 0 Q̏~> ##Q֖=X=<__=(><6=H=9ʼ__v= >9ʼ5v$2 ><2 >9ʼv 8=<_ @=9ʼ_v=#<m>#9ʼvm>=<5m>ț=9ʼ5v>!=9μ=(=9μgg>!=b<Q~=(=b('9μW>'b<WQ~=(9μg=b9μW쯁>5ĩ>b9μ쯁=̩>b<Q~=(=bb< !{=(=9μZZ=ĩ>9μ !{>5ĩ>b<[$4k;5ĩ>9μ1$LkW7'=b'b<{>('9μ{>!=b<{ !>!=9μ{ !Lt>[|Tܹ>[``Lt><<|T߹><<``Lt>[|Lt><<|Tz>[` T}><<` )i>[)i><<i>[i><< \Ͼz>[ \Ͼv><< ܾ>[ܾ><<ܾ>[ܾ><< \Ͼ۹>[ `\Ͼٹ><< `>[|><<|)>[|)><<| dž~G>>>]¼C㌃dž{G>]¼ꌃں>><t|ֺ>]¼㌃ϾxG>><%t|ϾzG>]¼%ꌃ$Lݾ>><Ct|$Lݾ>]¼C$LݾS>><t|$LݾS>]¼Ͼ$>><%%t|Ͼ$>]¼%%κg>><t|Һ„g>]¼„g>>]¼Cdž$>><%t|dž$>]¼%rS>><t|rS>]¼r>><Ct|r>]¼Cdž{G>]¼ZZr>]¼{ ! dž~G>>><{ !rS>]¼d1rS>><dž$>]¼gdž$>>]¼Ӛ„g>><3е=Һ„g>]¼^κg>><^Ͼ$>]¼Ͼ$>><$LݾS>]¼^$LݾS>><^$Lݾ>]¼^ !$Lݾ>><^ !ϾzG>]¼ZϾxG>><Zֺ>]¼ޢ{ں>><ޢ{>]¼ !{>>< !{^/ >GR<@Ɯd>GR¼fƜd>¼Uo/>GR<7GZUo/>¼6HX>ク='Hvμ6#HDATA, 8 DATA58 5x  "   "  "  "  "  "  "  "  " " " "       ! !" "# #$ $ %"&"'"(")"*"+" ,"!-""."#/"$0"%&"%'"'("()")*"*+"+,",-"-."./"/0"&0"1"2"3"4"5"6"7"8"9" :" ;" <"12"13"34"45"56"67"78"89"9:":;";<"2<"1= 2> 3? 4@ 5A 6B 7C 8D 9E :F ;G <H =>"=?"?@"@A"AB"BC"CD"DE"EF"FG"GH">H"%I &J 'K (L )M *N +O ,P -Q .R /S 0T IJ"IK"KL"LM"MN"NO"OP"PQ"QR"RS"ST"JT"=U">V"?W"@X"AY"BZ"C["D\"E]"F^"G_"H`"UV UW WX XY YZ Z[ [\ \] ]^ ^_ _` V` Ua"Ia"Vb"Jb"Wc"Kc"Ld"Xd"Me"Ye"Nf"Zf"Og"[g"Ph"\h"Qi"]i"Rj"^j"Sk"_k"`l"Tl"ab ac cd de ef fg gh hi ij jk kl bl m"m" n"n"o"o"p"p"q"q"r"r"s"s"t" t"u"!u"v""v"w"#w"x"$x"mn mo op pq qr rs st tu uv vw wx nx y"yz z"z{ {"{| |"|} }"}~ ~"~ " " " " " "y "#y""#"#"#"#"#~"#}"#|"#{"#z"##!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""" "" " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " " " "" " " " " " " " "  "    " "  "  "  "  " " """"""""""""""""""""""""""""""""""  " " !" !" ""!""""# # # # # # # # # # !# "# $"$% %"%& &"&' '"'( ("() )")* *"*+ +"+, ,",- -"-. ."./ /"$/ /0"0; $;".1"01 -2"12 ,3"23 +4"34 *5"45 )6"56 (7"67 '8"78 &9"89 %:"9: :; ;<"<= :="=> 9>">? 8?"?@ 7@"@A 6A"AB 5B"BC 4C"CD 3D"DE 2E"EF 1F"FG 0G"<G GH"HS"<S"FI"HI"EJ"IJ"DK"JK"CL"KL"BM"LM"AN"MN"@O"NO"?P"OP">Q"PQ"=R"QR"RS"ST"TU"RU"UV"QV"VW"PW"WX"OX"XY"NY"YZ"MZ"Z["L["[\"K\"\]"J]"]^"I^"^_"H_"T_"T` _` ^` ]` \` [` Z` Y` X` W` V` U` b"ab a"c"bc d"cd e"de f"ef g"fg h"gh i"hi j"ij k"jk l"kl al ax"mx lm"mn kn"no jo"op ip"pq hq"qr gr"rs fs"st et"tu du"uv cv"vw bw"wx wz"yz"xy"v{"z{"u|"{|"t}"|}"s~"}~"r"~"q""p""o""n""m""y"y""""""""""""""~""}""|""{""z""             "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""" " "" " "  "  " "  " " """ """"""""""""""""""""""""""""""""" " "!"!"  " !"  "  """""""" !"""" #"$ %"&"'""# $% "& $' &' #% "( ( #)")"$* * %+"+"&,","'-"-"() *+ (, *- ,- )+ DATA,& `' DATA.`' 4N   &%%''(())**++ ,, !--!".."#//#$00$&21133445566778899:  :;  ;< 2 <2>=11=?33?@44@A55AB66BC77CD88DE99EF::FG;;GH<<H>2J&%II%'KK'(LL()MM)*NN*+OO+,PP,-QQ-.RR./SS/0TT0&J>VU==UW??WX@@XYAAYZBBZ[CC[\DD\]EE]^FF^_GG_`HH`V>VbaUbJIaUacWaIKcWcdXcKLdXdeYdLMeYefZeMNfZfg[fNOg[gh\gOPh\hi]hPQi]ij^iQRj^jk_jRSk_kl`kSTl`lbVlTJbnmn mmom oopoppqpqqrqrrsrsst st tu!tu!uv"uv"vw#vw#wx$wx$xnx n yz z{ {| |}}~~yy~~}}||{{zzy                  !   "! "######### # !#!"#"$%%&&''(())**++,,--..//$$/0;/.10.-21-,32,+43+*54*)65)(76('87'&98&%:9%$;::;<=9:=>89>?78?@67@A56AB45BC34CD23DE12EF01FG;0G<<GHSGFIHFEJIEDKJDCLKCBMLBANMA@ON@?PO?>QP>=RQ=<SRRSTUQRUVPQVWOPWXNOXYMNYZLMZ[KL[\JK\]IJ]^HI^_SH_T`T_`_^`^]`]\`\[`[Z`ZY`YX`XW`WV`VU`UTbacbdcedfegfhgihjikjlkallaxmklmnjknoijophipqghqrfgrsefstdetucduvbcvwabwxxwzywv{zvu|{ut}|ts~}sr~rqqppoonnmmxyy~}~|}{|z{yz           !   !    !  !    "#%$&"$''&#%()("#)+*+%$*,(,&"(*-*$'--,-'&,)+)#%+MEU 20 P MECylinder.010_ V  pX 8t W r  X PD@Y>DY>_>DATAV x DATA,W pX DATA@pX 8P׽׽Rz޿޿@YvRze谥@Y=Rzey׽ǻ=Rz޿"@`DY>RzW=>Y>RzyW@Y>=RzWy=׽Rz"@޿`=>YRzye`BYCr>^= !^=׽Cr>Z@Y>vCr>{8Y>=Cr>{ !==Cr>ZZ`=@Y>Cr> !{@Y>Cr>ޢ{׽=Cr>Z@Yz=Cr>^ !@YCr>^׽û׽Cr>׽û׽_>\@Y_>\@Yz=_>\׽=_>>\@Y>_>U\`=@Y>_>U\==_>>>\8Y>=_>U\@Y>v_>U\=׽_>>\=\`BY_>\ ?_>6s =?_>6s=ﺵ_>e؛'s?= _>s?=. =_>Ɂsີ==_>ees =?=_>s@ ?=_>s𺵽=_>'es?" =_>6s?. _>6s𺵽_>''szz>UU^),|c>tY^),nc=>t^)zz=>UZ^)c,=>Y^)@c=,=>^)z=z=>ZZ^),=~c=>^),=jc>Y^)z=z>ZU^)c=,>t^)`c,>Yt^)`c,*@V> !{c=,*@V>ޢ{z=z*@V>Z,=jc*@V>^ !,=~c=*@V>^z=z=*@V>@c=,=*@V>^c,=*@V> !^zz=*@V>Z,nc=*@V>{,|c*@V>{ !zz*@V>ZZzzVR>ZZ,|cVR>{ !,nc=VR>{zz=VR>Zc,=VR> !^@c=,=VR>^z=z=VR>,=~c=VR>^,=jcVR>^ !z=zVR>Zc=,VR>ޢ{`c,VR> !{`DYVz>ePZ`BY8>e׽ǻ׽Vz>޿޿PZ׽û׽8>޿޿=>YVz>yePZ=>Y8>ye=׽Vz>"@޿PZ=׽8>"@޿@Y>~Vz>WPZ@Y>z8>W谥8Y>=Vz>WyPZ8Y>=8>Wy==Vz>"@"@PZ==8>"@"@`=>Y>Vz>yWPZ`=@Y>8>yW>Y>Vz>WPZ@Y>8>W׽=Vz>޿"@PZ׽=8>޿"@@Yr=Vz>eyPZ@Yv=8>ey@YVz>ePZ@Y8>e谥0>[ {>[=0>[>= {>[>0ս0=0>f0ս0= {>f >0> > {>=>0>>=> {>>0=0=0>ff0=0= {>ff>=0>>>= {>>>0>> {>0=0ս0>f0=0ս {>f=0>>[= {>>[0ս0ս0>0ս0ս {>0>[ {>[Ni{>[N>[ǽǽi{>ǽǽ>=Ji{>>[=J>>[=ǽi{>f=ǽ>fP>i{>P>>H>=i{>>H>=>>==i{>ff==>ff=J>i{>>=L>>>J>i{>L>>ǽ=i{>fǽ=>fP=i{>[>P=>[>P¿i{>[P>[pjC>d谥pj>y{>dPZpj=C>dypj=>y{>dyPZ`ĽS=G>޿"@`ĽO=>y{>޿"@PZ hj>G>W hj>>y{>WPZ=hj>G>yW=hj>>y{>yWPZP=S=G>"@"@P=O=>y{>"@"@PZhj>=C>Wyhj>=>y{>WyPZpj>C>W谥pj>>y{>WPZ`=QĽC>"@޿`=UĽ>y{>"@޿PZ=fjC>yd=hj>y{>ydPZ`ĽZĽC>޿޿`Ľ^Ľ>y{>޿޿PZjjC>dlj>y{>dPZlj>:y{Wjj>AWPZ`Ľ_=:y{޿"@`Ľ]=A޿"@PZ=hj>:y{yW=fj>AyWPZ`=U=:y{"@"@`=S=A"@"@PZpj>=:y{Wypj>=AWyPZhj>:y{W谥hj>AWPZP=QĽ:y{"@޿P=SĽE"@޿PZ=hj:y{yd=hjEydPZ hj:y{d hjEdPZ`ĽQĽ:y{޿޿`ĽSĽE޿޿PZpj:y{d谥pjAdPZpj=:y{dypj=AdyPZP¿=[>Pƿ=i{[>P[Pi{[ǽǽǽǽi{L[Ji{[=L>[=Ji{>[=ǽf=ǽi{fH>H>i{P>=>P>=i{>==ff==i{ff=H>>=J>i{>ǽ=fǽ=i{fL>N>i{> {> 00ս0= {f0ս0= 0f=> {>=> 0>0=0= {ff0=0= 0ff>= {>>= 0>> {> 00=0ս {f0=0ս0f= {>[=0>[  {[ 0[0ս0ս {0ս0ս0 {[ 0[= {[>= 0[>@Y=8eyPZ@Yz8ePZ׽׽8޿޿PZ@Y8ePZ>YRze`=@Y8yePZ=׽8"@޿PZ8Y>8WPZ8Y>RzW谥@Y>~=8WyPZ==8"@"@PZ==Rz"@"@=8yWPZ׽Ż=8޿"@PZ`BY>8WPZ`c,=RR !^c=,=RR^z=z=RR,=jc=RR^,=cRR^ !z=zRRZ@c=,RRޢ{c,RR !{zzRRZZ,rcRR{ !,~c=RR{zz=RRZzz=*@VZ,~c=*@V{,rc*@V{ !zz*@VZZc,*@V !{@c=,*@Vޢ{z=z*@VZ,=c*@V^ !,=jc=*@V^z=z=*@Vc=,=*@V^`c,=*@V !^`c,=Yc=,=z=z=ZZ,=nc=,=cYz=zZU@c=,tc,YtzzUU,pctY,c=tzz=UZ𺵽=]'e?2 =]6?$ ]6𺵽󺵽]''@ ?_6 =?_6ີ=󺵽]e؛'?=0 ]?=" =]Ɂ==]ee =?=] ?=]`BY>]U=]U==]>>@Y>z=]U8Y>]U=׽]>`=@Y_@Y_׽׽]@Y|]@Y=]׽Ż=]>׽Ż=ArZ@Y=Ar^ !@Y|Ar^׽׽Ar@YCr^`=@YCr !^=׽ArZ8Y>Ar{@Y>z=Ar{ !==ArZZ=Ar !{`BY>Arޢ{DATA,r 8t DATA8t 5###### ! ! ! ! ! !!!!!!!############## ## ## ## # # # # !!!,#,!"!!"##!"##$!#$#%!$%#&!%&#'!&'#(!'(#)!()#*!)*#+!*+#+,#,-#-.#+.#./#*/#/0#)0#01#(1#12#'2#23#&3#34#%4#45#$5#56##6#67#"7#78#!8#-8#89#9D!-D#7:#9:!6;#:;!5<#;<!4=#<=!3>#=>!2?#>?!1@#?@!0A#@A!/B#AB!.C#BC!CD!DE#EF#CF#FG#BG#GH#AH#HI#@I#IJ#?J#JK#>K#KL#=L#LM#<M#MN#;N#NO#:O#OP#9P#EP# R#S#T#U# V#W# X# Z#[# \#^#_#`#a#b#c#d#e#f#g#h#QS#RT#QU#RV#UW#VX#WY#XZ#Y[#Z\#[]#\^#]_#^`#_a#`b#ac#bd#ce#df#eg#fh#Sg#Th#hi!i}!T}!S~!j~!gj!fk!ik!jl!el!dm!km!ln!cn!bo!mo!np!ap!`q!oq!pr!_r!^s!qs!rt!]t!\u!su!tv![v!Zw!uw!vx!Yx!Xy!wy!xz!Wz!V{!y{!z|!U|!R!{!|!Q!}!~!!!~!}!!!|!!!{!z!!!y!x!!!w!v!!!u!t!!!s!r!!!q!p!!!o!n!!!m!l!!!k!j!!!i!!!!#!!#!!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!############################!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!!#!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!############E#F#G#H#I#J#K#L#M#N#D#O### # #  # #  # #  # #  # # ############!!*#!)#!(#!'#!&#!%#!$#!##!"#!!#+#! # +# 7# !#!6#!"#"5#"###4##$#$3#$%#%2#%&#&1#&'#'0#'(#(/#()#).#)*#*-#*+#+,#,-#-.#-B!./#.A!/0#/@!01#0?!12#1>!23#2=!34#3<!45#4;!56#5:!67#69!,C!,7#78!8C#8O#89#9N#9:#:M#:;#;L#;<#<K#<=#=J#=>#>I#>?#?H#?@#@G#@A#AF#AB#BE#BC#CD#DE!EF!FG!GH!HI!IJ!JK!KL!LM!MN!NO!DO!""""""        ]"Y"Q"DATA,X  DATAP 4D        !, "!#"$#%$&%'&(')(*)+*,++,-.*+./)*/0()01'(12&'23%&34$%45#$56"#67!"78,!8--89D87:976;:65<;54=<43>=32?>21@?10A@0/BA/.CB.-DCCDEFBCFGABGH@AHI?@IJ>?JK=>KL<=LM;<MN:;NO9:OPD9PESQR TUQV RWUX VYWZ X[Y\ Z][^ \_]`^a_b`cadbecfdgehfSgThThi}gS~jhfkiegjlfdmkcelndbomacnpb`qo_apr`^sq]_rt^\us[]tv\ZwuY[vxZXywWYxzXV{yUWz|VR{QU|RT}SQ~~}|{|zy{zxwyxvuwvtsutrqsrpoqpnmonlkmljikj~}iDEEFFGGHHIIJJKKLLMMNNOOD          *+)*()'(&'%&$%#$"#!" !+ ,7 +76! 65"!54#"43$#32%$21&%10'&0/('/.)(.-*)-,+*BC,-AB-.@A./?@/0>?01=>12<=23;<34:;459:568967C87,DO8CON98NM:9ML;:LK<;KJ=<JI>=IH?>HG@?GFA@FEBAEDCBME0 2C U MECylinder.011`@ p @       .xN >~<>T>\d>DATAp x DATA,  DATA+ 8.l>4;Zǎ8>4;^ !ǎw>4;^l >4;Je>4;^;e>4; !^1 >4;ZǾx>4;{Ǿ8>8;{ !1>8;ZZ=U>8; !{KU>4;ޢ{l>(G<>ǎ8>(G<ǎu>G<l>G<He>G<9e>(G<1 >(G<>Ǿz>8G8G8G<>>?U>8G<UNU>8G(G<ǎ8>Ev^ !l>EvZǎw>Dv^l >DvJe>Dv^;e>Ev !^1 >EvZǾx>Dv{Ǿ8>Hv{ !1>HvZZ=U>Hv !{KU>Dvޢ{ǎ8>cHl>cHC@ǎw>bHN菦l >bHCCJe>bHN萧;e>cH1 >cH@CǾx>bHpXN菦Ǿ8>fHpX1>fH@@=U>fHpXKU>bHNpXǎ8>\(;a+Xl>\(;eA+Xǎw>\(;a+Xl >\(;ee+XJe>\(;a+X;e>\(;a+X1 >\(;Ae+XǾx>\(;Y+XǾ8>`(;Y+X1>`(;AA+X=U>`(;Y+XKU>\(;Y+Xgǜ>]̾a+Xo} >]̾eA+Xg(>]̾a+Xo}R>]̾ee+X9>]̾a+Xd>]̾a+X!ľR>]̾Ae+X6;)>]̾Y+X6;ǜ>b̾Y+X!ľ >b̾AA+Xd>b̾Y+X9>]̾Y+Xgǜ>Lo} >LC@g(>JN菦o}P>JCC9>JN萧d>L!ľR>L@C6;)>JpXN菦6;ǜ>OpX!ľ >O@@d>OpX9>JNpXgǜ>1̾^ !o} >1̾Zg(>1̾^o}R>1̾9>1̾^d>1̾ !^!ľR>1̾Z6;)>1̾{6;ǜ>1̾{ !!ľ >1̾ZZd>1̾ !{9>1̾ޢ{gǜ>5^ !o} >5Zg(>5^o}P>59>5^d>5 !^!ľR>5Z6;)>5{6;ǜ>5{ !!ľ >5ZZd>5 !{9>5ޢ{ǎ8>!;^ !l>!;Zǎu>a;^l>A;He>a;^9e>!; !^1 >!;ZǾz>A;{Ǿ8>A;{ !1>A;ZZ?U>A; !{NU>A;ޢ{l>JоZKU>Jоޢ{=U>Nо !{1>NоZZǾ8>Nо{ !Ǿx>Jо{1 >JоZ;e>Jо !^Je>Jо^l >Jоǎw>Jо^ǎ8>Jо^ !l>iо>\ǎ8>iо\ǎw>iо\l >iо\Je>iо\;e>iо\1 >iо>\Ǿx>iоU\Ǿ8>mоU\1>mо>>\=U>mоU\KU>iоU\CO~ݥ>iо==Cʼ>>c>(=CʼUc>pCʼU頣=0νCʼ>[_=( Cʼm*'( Cʼm,ֽ0νCʼ[[ܯCʼm頣ܯ=Cʼm,ֽ=Cʼ[>R' >CʼUC= >CʼU==<>>`\c>H=@[`\=( <m`\'0 <m`\~,ֽHν<[[`\ܯ`\~' ><U`\= ><U`\L֟>A<U \pڶ>AA<> \A< \A< \&ʾWE>A< \fڶu>A< \D֟u>A< \狾]E>A<> \xe4>AAA<>> \H֟>`Unڶ>`U*ʾ&>`>``*ʾZE>`jڶu>`H֟u>`狾ZE>`>xe4>`Uxe>8>`U狾&>`>>==< !{~' ><ޢ{,ֽ=<Zܯ=<^ !ܯ<^~,ֽHν<'0 <^=( < !^= ν@<{c>H=<{ !c>H=={ !===ZZc>@={= ν=Z=( = !^'0 =^~,ֽHν=ܯ=^ܯ==^ !,ֽ==Z~' >=ޢ{= >= !{= >$==vc%==$=VVc%~' >$=R=vc%,ֽ=$=qVc%ܯ=$=Éc%ܯ$=ÉRc%~,ֽHν$=qqc%'0 $=RÉd%=( $=Éd%= ν$=Vqc%c>@$==vRc%c>H=$==vc%=x=t =**Jq߇>p1=t =9jJq߇>ht =9Jq=̽t =*Jqj= t =jwJq(P& t =wJqԽ̽t =JqVAЉt =wƖJqVA1=t =wjJq ԽX=t =*JqP&9 >t =9Jq?j=9 >t =j9Jqh+t =C= >ټ !{R' >ټޢ{,ֽ=ټZܯ=ټ^ !ܯټ^,ֽ0νټ*'( ټ^_=( ټ !^=0νټZc>pټ{c>(=ټ{ !==ټZZ==缁ZZc>(=缢{ !c>p缢{=0ν缁Z_=(  !^*'( ^,ֽ0νܯ^ܯ=^ !,ֽ=ZR' >ޢ{C= > !{C= >9T0qR' >90q,ֽ=9$Rܯ=9ЎTܯ9Ў,ֽ0ν9$$*'( 9Ў_=( 9TЎ=0ν9R$c>p90qc>(=90qT==9RRR=M=, Ĉ >=,, Ĉ >,,ĈR=˽, Ĉ= , Ĉ% , Ĉ:]ӽ˽,Ĉ, Ĉx=, ĈD]ӽM=, Ĉ%ȼ >,,Ĉ=ȼ >, ,Ĉh+,狾&><{ !xe4><{狾]E>< !^fڶu><^&ʾWE><<^<^ !.ʾ&><Zpڶ><ޢ{L֟>< !{L֟>< !{pڶ><ޢ{.ʾ&><Z<^ !<^&ʾWE><fڶu><^D֟u>< !^狾]E><{xe@8><{ !狾&>4b=ZZxe@8>4b={ !xe4>4b={狾]E>4b=ZD֟u>4b= !^fڶu>4b=^&ʾWE>4b=4b=^4b=^ !.ʾ&>4b=Zpڶ>4b=ޢ{L֟>4b= !{L֟>=Lt)pڶ>=t).ʾ&>=~U)=2L)=2)&ʾWE>=~~)fڶu>=2)D֟u>=L2)狾]E>=U~)xe4>=t)xe@8>=tL)狾&>=UU) \h>@=='='Ws >@=5\Ws^>@=5Ws\>@=='Wsv>@=\fWsv>@=fWsTʾ>@=Wsվ^>@=fʤWsվ >@=f\WsTʾc>@=='Wsį >@=5Ws >@=\5WsXX,>@=狾&>YJǼZZxe>8>YJǼ{ !xe4>YJǼ{狾ZE>YJǼZH֟u>YJǼ !^jڶu>YJǼ^*ʾZE>YJǼYJǼ^YJǼ^ !*ʾ&>YJǼZnڶ>YJǼޢ{H֟>YJǼ !{H֟>9Ѽ !{nڶ>9Ѽޢ{*ʾ&>9ѼZ9Ѽ^ !9Ѽ^*ʾZE>9Ѽjڶu>9Ѽ^H֟u>9Ѽ !^狾ZE>9ѼZxe4>9Ѽ{xe>8>9Ѽ{ !狾&>9ѼZZ狾&>M T T|xe>8>Mr|xe4>Mr>|狾ZE>M T|H֟u>M4|jڶu>M>4|*ʾZE>M|M4>|M4|*ʾ&>M T|nڶ>M>r|H֟>Mr|XX,> 3>  0Q֜3> 0Q ʾ~> iܗ#Q`eվ> b Q`eվq> bQ ʾ> iiQԜHRw> bQHRw>  bQ̏> #iQSKq> 0QSK> 0 Q̏~> ##Q֖=X=<__=(><6=H=9ʼ__v= >9ʼ5v$2 ><2 >9ʼv 8=<_ @=9ʼ_v=#<m>#9ʼvm>=<5m>ț=9ʼ5v>!=9μ=(=9μgg>!=b<Q~=(=b('9μW>'b<WQ~=(9μg=b9μW쯁>5ĩ>b9μ쯁=̩>b<Q~=(=bb< !{=(=9μZZ=ĩ>9μ !{>5ĩ>b<[$4k;5ĩ>9μ1$LkW7'=b'b<{>('9μ{>!=b<{ !>!=9μ{ !Lt>[|Tܹ>[``Lt><<|T߹><<``Lt>[|Lt><<|Tz>[` T}><<` )i>[)i><<i>[i><< \Ͼz>[ \Ͼv><< ܾ>[ܾ><<ܾ>[ܾ><< \Ͼ۹>[ `\Ͼٹ><< `>[|><<|)>[|)><<| dž~G>>>]¼C㌃dž{G>]¼ꌃں>><t|ֺ>]¼㌃ϾxG>><%t|ϾzG>]¼%ꌃ$Lݾ>><Ct|$Lݾ>]¼C$LݾS>><t|$LݾS>]¼Ͼ$>><%%t|Ͼ$>]¼%%κg>><t|Һ„g>]¼„g>>]¼Cdž$>><%t|dž$>]¼%rS>><t|rS>]¼r>><Ct|r>]¼Cdž{G>]¼ZZr>]¼{ ! dž~G>>><{ !rS>]¼d1rS>><dž$>]¼gdž$>>]¼Ӛ„g>><3е=Һ„g>]¼^κg>><^Ͼ$>]¼Ͼ$>><$LݾS>]¼^$LݾS>><^$Lݾ>]¼^ !$Lݾ>><^ !ϾzG>]¼ZϾxG>><Zֺ>]¼ޢ{ں>><ޢ{>]¼ !{>>< !{^/ >GR<@Ɯd>GR¼fƜd>¼Uo/>GR<7GZUo/>¼6HX>ク='Hvμ6#HDATA,  DATA5 5x  "   "  "  "  "  "  "  "  " " " "       ! !" "# #$ $ %"&"'"(")"*"+" ,"!-""."#/"$0"%&"%'"'("()")*"*+"+,",-"-."./"/0"&0"1"2"3"4"5"6"7"8"9" :" ;" <"12"13"34"45"56"67"78"89"9:":;";<"2<"1= 2> 3? 4@ 5A 6B 7C 8D 9E :F ;G <H =>"=?"?@"@A"AB"BC"CD"DE"EF"FG"GH">H"%I &J 'K (L )M *N +O ,P -Q .R /S 0T IJ"IK"KL"LM"MN"NO"OP"PQ"QR"RS"ST"JT"=U">V"?W"@X"AY"BZ"C["D\"E]"F^"G_"H`"UV UW WX XY YZ Z[ [\ \] ]^ ^_ _` V` Ua"Ia"Vb"Jb"Wc"Kc"Ld"Xd"Me"Ye"Nf"Zf"Og"[g"Ph"\h"Qi"]i"Rj"^j"Sk"_k"`l"Tl"ab ac cd de ef fg gh hi ij jk kl bl m"m" n"n"o"o"p"p"q"q"r"r"s"s"t" t"u"!u"v""v"w"#w"x"$x"mn mo op pq qr rs st tu uv vw wx nx y"yz z"z{ {"{| |"|} }"}~ ~"~ " " " " " "y "#y""#"#"#"#"#~"#}"#|"#{"#z"##!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""" "" " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " " " "" " " " " " " " "  "    " "  "  "  "  " " """"""""""""""""""""""""""""""""""  " " !" !" ""!""""# # # # # # # # # # !# "# $"$% %"%& &"&' '"'( ("() )")* *"*+ +"+, ,",- -"-. ."./ /"$/ /0"0; $;".1"01 -2"12 ,3"23 +4"34 *5"45 )6"56 (7"67 '8"78 &9"89 %:"9: :; ;<"<= :="=> 9>">? 8?"?@ 7@"@A 6A"AB 5B"BC 4C"CD 3D"DE 2E"EF 1F"FG 0G"<G GH"HS"<S"FI"HI"EJ"IJ"DK"JK"CL"KL"BM"LM"AN"MN"@O"NO"?P"OP">Q"PQ"=R"QR"RS"ST"TU"RU"UV"QV"VW"PW"WX"OX"XY"NY"YZ"MZ"Z["L["[\"K\"\]"J]"]^"I^"^_"H_"T_"T` _` ^` ]` \` [` Z` Y` X` W` V` U` b"ab a"c"bc d"cd e"de f"ef g"fg h"gh i"hi j"ij k"jk l"kl al ax"mx lm"mn kn"no jo"op ip"pq hq"qr gr"rs fs"st et"tu du"uv cv"vw bw"wx wz"yz"xy"v{"z{"u|"{|"t}"|}"s~"}~"r"~"q""p""o""n""m""y"y""""""""""""""~""}""|""{""z""             "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""" " "" " "  "  " "  " " """ """"""""""""""""""""""""""""""""" " "!"!"  " !"  "  """""""" !"""" #"$ %"&"'""# $% "& $' &' #% "( ( #)")"$* * %+"+"&,","'-"-"() *+ (, *- ,- )+ DATA, @ DATA.@ 4N   &%%''(())**++ ,, !--!".."#//#$00$&21133445566778899:  :;  ;< 2 <2>=11=?33?@44@A55AB66BC77CD88DE99EF::FG;;GH<<H>2J&%II%'KK'(LL()MM)*NN*+OO+,PP,-QQ-.RR./SS/0TT0&J>VU==UW??WX@@XYAAYZBBZ[CC[\DD\]EE]^FF^_GG_`HH`V>VbaUbJIaUacWaIKcWcdXcKLdXdeYdLMeYefZeMNfZfg[fNOg[gh\gOPh\hi]hPQi]ij^iQRj^jk_jRSk_kl`kSTl`lbVlTJbnmn mmom oopoppqpqqrqrrsrsst st tu!tu!uv"uv"vw#vw#wx$wx$xnx n yz z{ {| |}}~~yy~~}}||{{zzy                  !   "! "######### # !#!"#"$%%&&''(())**++,,--..//$$/0;/.10.-21-,32,+43+*54*)65)(76('87'&98&%:9%$;::;<=9:=>89>?78?@67@A56AB45BC34CD23DE12EF01FG;0G<<GHSGFIHFEJIEDKJDCLKCBMLBANMA@ON@?PO?>QP>=RQ=<SRRSTUQRUVPQVWOPWXNOXYMNYZLMZ[KL[\JK\]IJ]^HI^_SH_T`T_`_^`^]`]\`\[`[Z`ZY`YX`XW`WV`VU`UTbacbdcedfegfhgihjikjlkallaxmklmnjknoijophipqghqrfgrsefstdetucduvbcvwabwxxwzywv{zvu|{ut}|ts~}sr~rqqppoonnmmxyy~}~|}{|z{yz           !   !    !  !    "#%$&"$''&#%()("#)+*+%$*,(,&"(*-*$'--,-'&,)+)#%+MEC 2  0 MECylinder.012tj D } PF p_ D ^  P| .d7D?=?U,?7C>D>d>DATAD x DATA,D PF DATAPF 8.E? ?|>CPDPwJ??|>mawJ?ﳢ?|>mE?^?|>DP]a[2?bޛ?|>[.*?^?|>-%?ﳢ?|>\-%??|>\`.*? ?|>CP2?>?|>m]?|>amE? ?z?TT,wJ??z?s,wJ??z?s,E?^?z?T$,_?z?s,Z?z?s,E?yЫ? ?%%ptW %u 3?-?i>% *?ƫ?i>|%?⛧?i>i %?̢?i>i*??i>|{u 3?:?i>i i+D??i>{OI?̢?i>%OI?㛧?i>% 7?P4?i>??q+?**6=?Sj?q+?5 6=?*?q+?56?l?q+?*Q6d.?f@?q+? o6dA?f@?q+?o6jR?l?q+?QQw6\?+?q+?ob6\?Sj?q+?o6jR??q+?Q.6fA?;?q+?56d.?;?q+? 56??;>ѯѯ??Qj?;>w=?)?;>wY?l?;>ѯ/Pd.?f@?;>maA?g@?;>YmjR?l?;>/P/P\?-?;>mZ\?Uj?;>zmjR??;>)PӯiA?;?;>Ywd.?;?;>w=?Rj??'?^>?Rj??^>?Rj? ?^>?Rj?Tz>^>?Rj?$>^??Rj?0>^???'?????? ???Sz>??#>??0>=?*??'?^ !=?*??^ !=?*? ?^ !=?*?Tz>^ !=?)?$>^ !=?)?0>^ !?l??'?Z?l??Z?l? ?Z?l?Tz>Z?l?$>Z?l?0>Zd.?f@??'?ޢ{d.?f@??ޣ{d.?f@? ?ޥ{d.?f@?Tz>ޥ{d.?f@?$>ޣ{d.?f@?0>ޢ{cA?f@??'?&!{cA?f@??6!{MA?=?W ? ~^ MA?=?`>y ~bA?g@?$>8!{aA?g@?0>'!{ jR?l??'?ZdZbR? k?Ӛ?8k(`R? k?>7kQjR?l?0>Z}Z/\??F'?`4KA{\??>T`4]\?j?F'?`LB\?j?>D`'BjR???'?dZcWR?v?Ӛ?7_R)gR?v?>7KGjR??->~Z| gA?;??'?!Z!gA?;?? SeA?=?Y ?^ hR eA?=?a>u jhA?;?!>0!bhA?;?->$!_d.?;??'?^d.?;??]d.?;? ?[d.?;?Qz>[d.?;?!>]d.?;?->^u?,?i>^u?,?Z ?^ !u?:6?V?Zu?E4?i!?ޢ{u?;G?i!? !{u?FE?V?ZZu?N?Z ?{ !u?N?i>{u?FE?q>Zu?;G?K> !^u?D4?K>^u?:6?q>gt?,?i>^gt?:6?q>gt?,?Z ?^ !gt?:6?V?Zgt?E4?i!?ޢ{gt?;G?i!? !{gt?FE?V?ZZgt?N?Z ?{ !gt?N?i>{gt?FE?q>Zgt?;G?K> !^gt?D4?K>^*`?,?i>^*`?:6?q>*`?,?Z ?^ !*`?:6?V?Z*`?E4?i!?ޢ{*`?;G?i!? !{+`?FE?V?ZZ+`?N?Z ?{ !*`?N?i>{*`?FE?q>Z*`?;G?K> !^*`?D4?K>^zW_?,?i>\zW_?:6?q>\zW_?,?Z ?\zW_?:6?V?\>zW_?E4?i!?\UzW_?;G?i!?\UzW_?FE?V?\>>zW_?N?Z ?\UzW_?N?i>\UzW_?FE?q>\>zW_?;G?K>\zW_?D4?K>\zW_?d?>~ezW_?,D?g>~bbzW_?d?j ?~fzW_?,D?;?~b zW_?}?&?~zW_??&?~zW_?S7?:?~ zW_??f ?~zW_??>~zW_?S7?f>~ bzW_??E>~fzW_?}?E>~f+_?g@?G> MD+_?f?Q>M+_?g@? ?MJu+_?g??M@H+_?k?B'?.Mb+_??B'?.Msb+_?i??MFH@H+_?;? ?Mbu+_?;?G> Mb+_?i?P>MMH+_??P>MuR+_?k?Q>MR ?A>?+?JJfx.?N|?+? fxsA?N|?+?= fx R?A>?+?Jfxm[?{?+?)fxm[??+?)= fx R?==?+?fxqA?.?+?= )fx.?.?+?)fx ?<=?+?Jfx??+? = fx?{?+? fx)?a?+?//_m$?Y?+?8@5_m$?$٧?+?8@_m)?]?+?/_m2??+?5ȿ_mXB=??+?ɿ_mGJF?]?+?_mK?%٧?+?ȿ_mK?Y?+?ȿ5_mGJF?a?+?/_mYB=??+?8@_m2??+?58@_m?8?8>.?t?5>bA?t?5> FR?8?5>\[?y?5>`%[??5>`% ?R?B?8>\\??8> `%.??8>`%?B?8>\z??8> z?y?8>O)??7>//S$?@?7>7@5R$?<٧?8>7@L)?]]?8>/С2??8>5ɿB=??7>ɿJF?_]?7>РƁK?>٧?6>ɿȁK?B?6>ɿ4JF? ?6>/B=??6>7@2??6>47@,)?+?v$>XX 2?L?u$>> Wx9=?L?u$>Wx0F?+?u$>Xs^K??u$>> q^K?ԧ?u$>ߧ0F?pP?v$>觧9=?2?v$>ߩ2?1?w$>> ))?oP?w$>X觧$?ԧ?w$>Wxߧ$??v$>Wx> )?O+?q+?XXW92??q+?> WxW8=??q+?WxWk0F?P+?q+?XW]K??q+?> W]K?iԧ?q+?Wj0F?.P?q+?X8=??q+?ߩX82??q+?> X)?-P?q+?XWZ$?iԧ?q+?WxWZ$??q+?Wx> W$??U?{ !m)?/+?U?ZZ$?tԧ?U?{k)?NP?U?Z2??U?!^8=??U?^0F?OP?U?~^K?vԧ?U?^^K? ?U?^ !0F?0+?U?Z8=?z?U?ޢ{!2?x?U? !{kF?:>? ?`'!T???wzZ\?j?F'?hޝ{ߒ\??F'?h2!{MT?j?~?ZzZG?E=? ?{'!G?E=?p\> {T?j?b>ZóT??c>rkF?9>?y\> \i\??͖>4+!aA\?j?͖>4aDATA,^ p_ DATAp_ 5d# ## ############# ## ## ## # # # ######## # # ### ############# # #!# !#"#!"# ##"####$!$!$!$!$!$!$!$! $!!$!"$!#$!%#%&# &#&'# '#'(# (#()#)#)*#*#*+#+#+,#,#,-#-#-.#.#./#/#/0#0#%0#%1!&1!'1!(1!)1!*1!+1!,1!-1!.1!/1!01!23">?"34"?@"45"@A"56"AB"67"BC"78"CD"89"DE"9:"EF":;"FG";<"GH"<="HI"2=">I"3J"JK"KL"LM"MN"NO"?O"2P"PQ"QR"RS"ST"TU">U"4V"VW"WX"XY"YZ"Z["@["5\"\]"]^"^_"_`"`a"Aa"6b"bc"cd"de"ef"fg"Bg"7h"hi"ij"jk kl"lm"Cm"8n"no"pq"Dq"9r":t";v"vw"xy"Gy"<z"z{"{|"|} }~"~"H"=""""""I"JP KQ LR MS NT OU JV KW LX MY NZ O[ V\ W] X^ Y_ Z` [a \b ]c ^d _e `f ag bh ci dj ek fl gm hn io lp mq nr ps"rt"su"tv ux"vz w{ x~ y z { | } ~  U T S R Q P """"""""""""" " " " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""" " " " " " " " " " " """"""""""""""""""""""""""w|"tw"or"jo"kp"x}"=""2"<"";"":""9""8""7""6""5""4""3""" " " " " " " " " " " " ">""I""H""G""F""E""D""C""B""A""@""?"" " " " " " " " " " " """"""""""""""""""""""" " " " "  " " "  " "  "" """"""""""""""" " " " " " " " " " " "   " ! !"! """""""" "!"""qs Es"uy Fu"|""""w#"#"t$"$"r%"%"o&"&"j'"'"k("("p)")"x*"*"}+"+"s,","u-"-"*+ "+ "# #$ $% %& &' '( () ), ,- *- DATA,P| } DATAL} 47          ! "! #" #$$$$$$$$ $ !$!"$"#$# %& &' '( ())**++,,--..//00%&%11'&1('1)(1*)1+*1,+1-,1.-1/.10/1%023JPPJKQQKLRRLMSSMNTTNOUUO?>34VJJVWKKWXLLXYMMYZNNZ[OO[@?45\VV\]WW]^XX^_YY_`ZZ`a[[aA@56b\\bc]]cd^^de__ef``fgaagBA67hbbhiccijddjkeeklfflmggmCB78nhhnoilpqmmqDC89rnnropsqqsED9:trsuFE:;vttvwuxyuyGF;<zvvz{wx~yyHG<=zz{{||}}~~IH>IUUTTSSRRQQP=2Piojkplx}~w{|2==<<;;::998877665544332I>HIGHFGEFDECDBCAB@A?@>?                  !  !   ! !+*+}x*"+"|}+#"#w|"$#$tw#%$%rt$&%&or%'&'jo&('(kj')()pk(,),sp)-,-us,*-*xu-ME  2Q C MECylinder.013` @       T$\<|>My=>DATA` x DATA,  DATA|8 8=2=>^=bh<>^^=q>^ !0='+>Zg@<k>ޢ{@Ÿk> !{>O+>ZZ~lq>{ !0~h<>{>2=>ZŸr=> !^f@< r=>^,ZZ7 !{ƼP=b>ޢ{tg=b>Zl^ !b>^ti`b> Ƽb>^8 !^\Zޓ=>b>{ޓ=bm{ !ޓ=bm<>UH\,>>H\ޓ=>>U H\\>IH\8<>UH\ Ƽ> UH\ti`>IIH\>U H\l<>UH\tg=>I>H\ƼP=> UH\7UH\=2=6>[f@< r=6>[Ÿr=6>[>2=6> ?[0~h<6>V[~lq6>V[>O+6> ? ?[@Ÿk6>V[g@<k6>V[0='+6> ?[^=q6>[^=bh<6>[8G+W=ZZ~LqW={ !0=/+dW=Z^=qW=^ !^=Rh2=W=Z ~h7<ʹ=v2=ʹ=A[v2=1=wO^=1=fl-=ʹ=fLHF;ʹ=V$9ʹ=̫ʹ=K΃Zɾ!{ʹ=bھ^ʹ=Oʹ=fz<ʹ=|1Zfz<1=0F̫1=fk_g'<ʹ=`/ʹ=`:ʹ=jʾʹ=F5Aʹ=NӏZ۾Iʹ=:i\Nkʹ=ꢜ<1=d>ꢜ<ʹ= G,ZF5A1=oY# <ʹ=p%#ʹ=.ǎZ89ʹ=.ǎZvʾ(gʹ=.ǎZRDʹ=l8a۾w ʹ=.ǎZFQ~ʹ=.ǎZ2!<ʹ=02!<1=RD1=6>f;ʹ=.ǎZݾ p`j)(=ʹ=f)6Įʹ=j)*uʹ=Zn)VP=1=n)VP=ʹ=ZZj)*u1=n)T=ʹ=ZK(=ʹ=VK6Įʹ=ZK*uʹ=Z^KVP=1=^KVP=ʹ=ZZZK*u1=^KT=ʹ=fV<ʹ=·¾G'ʹ= ʹ=FƁZƦ8=1=5nƦ8=ʹ=vNZ 1=c7 =ʹ=׽(=ʹ=׽6Įʹ=׽*uʹ=Z׽VP=1=׽VP=ʹ=ZZ׽*u1=׽T=ʹ=VK6Įʹ=׽6Įʹ=(ҽ6Įʹ=ZZK(=ʹ=׽(=ʹ=0ҽ(=ʹ= þo(ʹ=·¾G'ʹ=.k6Įʹ=(zb<ʹ=xffV<ʹ=@9(=ʹ=1!cf)6Įʹ=j)(=ʹ=NMJk<ʹ=Saa>7<ʹ=Saa5Ӿ0jʹ=Saa0ҽDث=ʹ=@ҽї|=ʹ=0ҽz<ʹ=0ҽDث==0ҽ(==0ҽz<=(ҽ6Į=Z@ҽї|==NMJk<=Saab<=xf5Ӿ0j=Saa þo(=>7<=Saa(==1!cj)(==f)6Į=6Į=(zZK(==VK6Į=fV<=@9·¾G'=.k׽(==׽6Į=׽6Įm=VK6Įm=(ҽ6Įm=ZZK(=m=׽(=m=0ҽ(=m=·¾G'm=.k þo(m=6Įm=(zb77,=1=I2]>,=ʹ=3Z~1=Jjᄇ<ʹ=f@<k{ޢ{`Ÿk{ !{>G+{ZZ~<q{{ ! =7+LZ^=q{^ !^=Jh<{^ =2={@f@< r={^Ÿr={ !^>2={Z ~h<{{ͨ=îAY{>ͨ=J5AAoZ":!,=AIAJj ~h< {>2= ZŸr= !^@f@< r= ^ =2= ^=Bh< ^^=q ^ ! =7+6Z~<q { !>G+ ZZ`Ÿk !{f@<k ޢ{ᆰ,=/32Y>,=<⸽IfFl;/Ӿ/~/(KBþ./jĮ/1ѽ*u/ϽDث=/Ͻ(=/ȍϽVP=/Z׽6ˏ쀏ľS쀏VK6ˏ쀏f)6ˏ쀏6ˏ쀏׽r<쀏׽͗|=쀏׽Dث=쀏Ҿl]쀏Jླ[%<쀏7jz<쀏ZKr<쀏^K͗|=쀏ZKDث=쀏j)r<쀏r<쀏͗|=쀏n)͗|=쀏j)Dث=쀏Dث=쀏׽>Į쀏׽(=쀏·¾ G'쀏f龺V<쀏VK>Į쀏ZK(=쀏>Į쀏f)>Į쀏(=쀏j)(=쀏>7<쀏 þs(쀏5Ӿ,0j쀏NMBk<쀏Z<@ҽ͗|=쀏(ҽ>Į쀏0ҽr<쀏0ҽ(=쀏0ҽDث=쀏0ҽr<쀏@ҽ͗|=쀏0ҽDث=쀏5Ӿ,0j쀏SaaNMBk<쀏Saa>7<쀏Saaj)(=쀏f)>Į쀏(=쀏1!cf龺V<쀏@9ZĮ쀏(z þs(쀏·¾ G'쀏.k0ҽ(=쀏׽(=쀏ZK(=쀏(ҽ>Į쀏ZVK>Į쀏׽>Į쀏׽>Įq׽(=q·¾ G'q.kf龺VĮqZK(=q>Įq(zf)>Įqj)(=q(=q1!c>7ĮqZ0ҽr7Į/(=/1!cf龺VĮ/(z·¾ G'/.k þs(/0ҽ(=/׽(=/ZK(=/(ҽ>Į/Z׽>Į/VK>Į/׽T=/׽*u,⸽׽VP=/Z׽VP=<⸽׽*u/׽>Į/׽(=/7 =/ <⸽cƦ8=/vNƦ8=<⸽5n /F·¾ G'/f龺VĮ/ZK(=/n)T=/j)*u<⸽n)VP=/Zn)VP=<⸽j)*u/f)>Į/j)(=/>F;/.ǎRD<⸽6*!<<⸽*!:ilNk/۾I/F5A/Nqjʾ/`:///gs'7Į/*u/$w(=/ঢ়Į/0ҽ*u/0ҽDث=/0ҽ(=/8ҽVP=/Z7ݼVP=/xW<=/1[< ঢ়<(=/Z`7ݼ(=/ޓ=Jm<ս{ !ޓ=Vս{LĮ/rĮ/1ۀpb*u/ۀռ!/1ۀj2=,ZŸr=, !^@f@<r=,^=2=,^=Jh<,^^=q,^ !0=/+ Z~\q,{ !>G+,ZZ@Ÿk, !{g@<k,ޢ{ޓ=Jm<_:ޓ=V_N:LO+n??'~|qnV'0~gy2=n?'Ÿr=n'f@< r=n'=2=n'7l<RΒR 黣ti`GG Ƽ Q8<R\Gޓ=NU 黣,>ޓ=Zm<Uޓ=Zm< { !ޓ=N {\y2=fZ0~gO+fZZ@Ÿkf !{g@<kfޢ{0='+fZ^=qf^ !^=Zh#?#@#A#B#C# D# E# F#G#01#02#23#34#45#56#67#78#89#9:#:;#1;#<=!>?!=>!<@!@A!AB!BC!CD!DE!EF!FG!?G!;H#HI#1I#:J#HJ#9K#JK#8L#KL#7M#LM#6N#MN#5O#NO#4P#OP#3Q#PQ#2R#QR#0S#RS#IS#IT!TU#SU#UV#RV#VW!QW!WX!PX!XY!OY!YZ!NZ!Z[#M[![\#L\!\]#K]!]^#J^!^_#H_!T_# `#0`# a#1a#b#2b#3c#c#d#4d#5e#e#6f#f#g#7g#h#8h#9i#i#j#:j#;k#k#`a!`b!bc!cd!de!ef!fg!gh!hi!ij!jk!ak!Vl!Um#lm!no#qr#st!tu#uv#rv#Uw#Tx#Zy#[z#\{#]|#^}#_~#m!n#o#p!s!wx!yz!z{!{|!|}!}~!x~!w!!m#n#o!l!q!p!!!!!!##!!#!#####!!!!!!!#!!!!!!!!#!!!!!!###!!!!!#!!##!#!##!###!!##!!!!!!!!!!###!#!!!!!!!###!#!!!!!!!######!!##!!!!!!!!!q##t##s##!!p##!!!!!!!!!###t######q########################r##v##u####!!!!#!!!!!##!!!!!#!!!!#!!!!!!!!!!!!!!!!!#!##!#!##!######!###! ! ## # !  # ! !  # # # ! #!#!# ### ####### ##### ## #### ######## # # #!#!#!#"#"#"#######$!$%!%!&'!'(!()!&)!$'!%&!%*!*!&+!),!+,!*+! -!$-!-!'.!./!(/!.!/!-.!"0!0!*0!1!12!2!+1!,2!01!(3!34!)4!3!4!45!,5!5!/6!36!!6!6!#7!7!57!27!o8#p8#l9!q9!V:!r:!Z;#s;#Y<!t<!X=!u=!W>!v>!?!?!y@!@!A!A!9:!;<!<=!=>!:>!8?!;@!8A!9A!B!B!C!C!D!D!E#E#F!F!G!G!H!H!I#I#J!J!K!K!BC!DE!DF!FG!CG!HI!EJ!BK!IK!<L#=M#>N#?O#@P#AQ#BR#CS#DT#EU#FV#GW#wX#xY#yZ#z[#{\#|]#}^#~_#`!a#b#c!d!e!f#g#h#i#j#k!l#m#n#o#p!q!r!s!t!u!v!w!?x!@y!Hz!J{!LM#NO#MN#LP#PQ#QR#RS#ST#TU#UV#VW#OW#XY!Z[![\!\]!]^!^_!Y_!X`!ab!`e!ae!jl!km!ln!mo!fp!gq!pr!qs!ft!ht!gu!iu!cv!rv!dw!sw!cx!bx!dy!Zy!hz!jz!i{!k{!o!n!|#|}#}~#~#########|#}#~##########!!!!!!!!!0!:!1!;!3#=#2!<!4!>!5!?!7#A#6!@!8!B!9!C!!!!!!!!!!L!M!O!Y!P!Q!\!{!]!z!^!y!_#x#`!|!a!f!b#c#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########################################!#!#!###!!#!###!!###!######!##!#!##!#!!!!!!!!!!!!!!!!!#!!!!#!!!!!##!!!!!#!!!!###]##\##`####?#B##>#######J## ##C##H#@## #a######^####!!!!!!L!!O!#b#!P!#_##^##a# ! ! !  !  !:!D!;!E! =# G# <! F! A# I# @# H# C# J#!!!!!!!#!###!!!!!D!E!G#F!I#H#J##$#&!'!"#(##)! %# !# *!!##!+!",#"###-!%/!$%#$.!&(!&.!&0!'1!',#(3#()#)2!*/!*+!*4!+-!+5!,7#,-!-6!/8!./!.9!03!09!17!23#48!45!56!67!89!:=!:C!;A#<=#>B#>?#?@#@A!BC#DG!DJ!EI#FG#HI!KN!MN!KS!KR!Lb!La!Mf!Mc!Nd#Ne#QR!S[!TZ!TU!UV!VW!WX!XY!Z[!O_!Pb!Qc#Rd#Se!Ts#Ut#Vu#Wv#Xw#Yx#Z~#[}#\`#\]#]^#^_!`a#cd#ef!e}#f|!gq!gh!hi!ij!jk!kl!lm!mn!no!op!pr!qr!g#g#h#h#i#i#j#j#k#k#l#l#m#m#n#n#o#o#p#p#q#q#r#r#s~#s!st#t!tu#u!uv#v!vw#w!wx#x!xy!y!yz!z!z{!{!{|!|#|}#}#}~#~!########################!!!!!!!!!!!!########################!!!!!!!!!!!!################################################!!!!!!!!!!!!!!!!!!!!!!!!fF#p!r!v!cP!x!bQ#aR#eK!`S!X[#YZ#_T#^U#]V#\W#[X#ZY#y!dO!w!s!q!gE#u!i;#{!k1!m'#o#!!!! !!!"!#!%!$!n#l)#j2#z!h<#t !DATA, @ DATA8@ 4   !!" "# # $% %& &' '(())**++,,--..//$$//..--,,++**))( ('! '&"!&%#"%$#=<?>>=<@@AABCBC DD EE FF GG?1;HI;:JH:9KJ98LK87ML76NM65ON54PO43QP32RQ20SR01ISSITURSUVQRVWPQWXOPXYNOYZMNZ[LM[\KL\]JK]^HJ^_IH_T0`a1` a2b`0b `3cb2cb4dc3dc5ed4ed6fe5fe7gf6gf8hg7hg9ih8ih:ji9ji;kj:kj1ak;a kVUmlwUTxz[Zy{\[z|]\{}^]|~_^}xT_~Uwmonmlnomntspsqptqvruvturq                      !!""##$%&'()%$'&%*+&),*%&+ -$ -'./(./$-.'-."0"*0121+,2010*+1(34)34)45,45/63(6!3!67#,5725#7276/l9:V9qr:Y<;Z<ts;X=<Y=ut<W>=X>vu=V:>W:rv>p8?8o?@;s@yZ;A8pAo8q9A9lABCBCDEDEFDFDGFGFCGCGHIHIEJEJKBKBIKIKM=<LO?>NN>=ML<@PP@AQQABRRBCSSCDTTDEUUEFVVFGWWG?OXwxY[zyZ\{z[]|{\^}|]_~}^Yx~_wX`bae`aejlkmlnmonofpgqprqstfhtugiuvcrvwdsw?xcbx?y@dZy@yzHhjHzJ{ik{J1{k;i{jz2zh<ZyYydOQxbPcxwsOdwrvvcP;uiEguht <tfF sqprEqgfpFonmo')nlkm'12)ljaeKRe`SKbaRQ[S`XY_TZ_^UT^]VU]\WV\[XW[ZYXXYZ[|}|~}~03=:90:C17A;32<=48B>54>?65?@76@A89CBMfaLcMLbxYO_QcbP\`|{]\{z^]zy_^yx`af|`a^]]\\`CB?@>?B>JHJ  C H@ a^bLLa_OPb^_ :=GD  C:DJ  ;AIE   =<FG    A@HI  DGJDEIGFIH$" %! #!"#%$&(.$&'",()* %/+! *-#!+,"#-/%$.0&(39.&01',73()24*/85+*46-+57,-68/.9KNdRSeNKNMcdefMNQRdc}eS[ZTs~TUtsUVutVWvuWXwvXYxw[Z~}|fe}qggqghhghiihijjijkkjkllklmmlmnnmnoonoppoprrprqqr~ssttuuvvwwxxyyzz{{||}}~MEQ 2(f  MECylinder.014X` S 0Y @R W  _ 4xH???DATA,@R S DATAS 845?5?>>Fw?>UFw?U5?5>>Fw惄Fw55FwFw܃>55?>Fw?Uԃ>Fw?U5?5??>>\Fw?>?U\Fw?ȃ?U\5?5?>\>Fw?\Fw?\55?\Fw#?\Fw>?\ 55??>\/Fw??U\>Fw??U\.;3.;.;.;3?5?5?>>Fw?>UFw?U5?5>>Fw惄Fw55FwFw܃>55?>Fw?Uԃ>Fw?U5?5??>>\Fw?>?U\Fw?ȃ?U\5?5?>\>Fw?\Fw?\55?\Fw#?\Fw>?\ 55??>\/Fw??U\>Fw??U\.;3.;.;.;3?DATA,W 0Y DATA0Y 5x "  "  " " " " " " " " " " " " " "  " " " " "  " " " " """""""" " " "2!#2!&3!&'#'3!#2!'(#3(!#2!)(#)3!#2!)*#*3!#2!*+#+3! #2 !+,#3,!! #2!!-,#3-!!"#2"!.-#3.!#"#2#!/.#/3!$##2$!/0#30!$%#2%!10#13!%#&1#'#&#(#)#*#+#, #!-#".#/##$0#1%#DATA,_ X` DATAX` 4H            23'&23('23)(23*)23+*2 3,+2 !3-,2!"3.-2"#3/.2#$30/2$%3102%3&1&''(())**++,  ,-!!-.""./##/0$$01%%1&ME(f 2@{ Q MECylinder.015y hg `v h 8o g m  u =x<3;Fw?Fw?wւ?DATAhg v DATA,g h DATAh 8=5?5?NNFw?>|kFw?|k35?5NQ>Fw烄Fw3ㄔ55QQFw3Fw݃>55?QNFw?3|kӃ>Fw?|k5?5??ZZFw?>?{ !Fw?Ƀ?{5?5?Z>Fw? !^Fw?^55?Fw$?^Fw>?^ ! 55??Z.Fw??ޢ{>Fw?? !{/>q?X@/q?@ y0x0?c/q/>EXq/Ey0y0Н/qE/>qXEy0?y0c/q?/@q?/>@Xy0?y0?c/c/>Fw?(?cK.Fw?(?QcK 55?(?HKFw>(?jKFw$(?jQK55(?KFw(?QjK>Fw(?jK5?5(?HKFw?Ƀ(?cQKFw?>(?cK5?5?(?HHK-?-? ?Q~)m?$1~> ?WQ~)m?0~ ?Q~-?- ?gQ~71~>)m ?WQ~0~)m ?Q~-- ?ggQ~)mJ1~ ?Q~)mv0~> ?WQ~--? ?gQ~^1~)m? ?Q~`0~>)m? ?WQ~J{'1 ?DATA,m 8o DATA8o 5x" "  " " " " " "  " " " "   " """""""" " " "#"#" "" "" """"""""""" " " !"!"!"""""#"$"$/" /"%"$%"&"%&"'"&'"("'(")"()"*")*"+"*+","+,"-",-" ."-."./"/0"01".1"12"-2"23",3"34"+4"45"*5"56")6"67"(7"78"'8"89"&9"9:"%:":;"$;"0;"1< 0< 2< 3< 4< 5< 6< 7< 8< 9< :< ;< DATA,u `v DATA`v 4<         #     !!""# $/%$&%'&(')(*)+*,+-, .- /../01-.12,-23+,34*+45)*56()67'(78&'89%&9:$%:;/$;0<10<21<32<43<54<65<76<87<98<:9<;:<0;ME@{ 2X (f MECylinder.016PH| ( ~  | H  Р DY>EY>z_R>DATA| x DATA,| ~ DATA~ 8׽׽qL@YqL^@Y=qL^ !׽Ļ=qLZAY>qLޢ{`=AY>qL !{=Ļ=qLZZ8Y>=qL{ !@Y>lqL{=׽qLZ=:YqL !^`?YqL^׽˻׽|_R@Y|_RHYT=|_Rл׽=|_R>;Y>|_RU@=EY>|_RU=ֻ=|_R>>0Y>=|_RU@Y>>|_RUл=׽|_R>=;Y|_R@EY|_R|_R`>Y@M>^=9Y@M> !^=׽@M>Z@Y>h@M>{8Y>=@M>{ !=ƻ=@M>ZZ`=CY>@M> !{CY>@M>ޢ{׽ƻ=@M>Z@Y=@M>^ !@Y|@M>^׽׽@M>׽׽x_R>\@Y|x_R>\@Y=x_R>\׽ƻ=x_R>>\CY>x_R>U\`=CY>x_R>U\=ƻ=x_R>>>\8Y>=x_R>U\@Y>hx_R>U\=׽x_R>>\=9Yx_R>\`>Yx_R>\ ?x_R>6s ={?x_R>6s=躵x_R>e؛'s?= x_R>s?=< =x_R>Ɂsີ==x_R>ees =?=x_R>s@ ?=x_R>s𺵽=x_R>'es?0 =x_R>6s? x_R>6s𺵽𺵽x_R>''szzLP>UU^),ncLP>tY^),|c=LP>t^)zz=LP>UZ^)c,=LP>Y^)@c=,=LP>^)z=z=LP>ZZ^),=c=LP>^),=\cLP>Y^)z=zLP>ZU^)c=,LP>t^)`c,LP>Yt^)`c,z> !{c=,z>ޢ{z=zz>Z,=\cz>^ !,=c=z>^z=z=z>@c=,=z>^c,=z> !^zz=z>Z,|c=z>{,ncz>{ !zzz>ZZzz =ZZ,nc ={ !,|c= ={zz= =Zc,= = !^@c=,= =^z=z= =,=c= =^,=\c =^ !z=z =Zc=, =ޢ{`c, = !{`@Y3'>ePZ`?Y(2>e׽׽3'>޿޿PZ׽׽(2>޿޿=;Y3'>yePZ=:Y(2>ye=׽3'>"@޿PZ=׽(2>"@޿@Y>p3'>WPZ@Y>l(2>W谥8Y>=3'>WyPZ8Y>=(2>Wy==3'>"@"@PZ=Ļ=02>"@"@`=AY>3'>yWPZ`=CY>02>yWAY>3'>WPZCY>02>W׽=3'>޿"@PZ׽Ļ=02>޿"@@Y=3'>eyPZ@Y=(2>ey@Y3'>ePZ@Y(2>e谥ؚ2>[`D'>[=ؚ2>[>=`D'>[>0ս0=2>f0ս0=`D'>f >2> >`D'>=>2>>=>`D'>>0=0=2>ff0=0=`D'>ff>=ؚ2>>>=`D'>>>ؚ2>>`D'>0=0սؚ2>f0=0ս`D'>f=ؚ2>>[=`D'>>[0ս0սؚ2>0ս0ս`D'>ؚ2>[`D'>[KP'>[J:2>[ǽǽP'>ǽǽ:2>=GP'>>[=F:2>>[=ǽP'>f=ǽ:2>fP>P'>P>:2>H>=P'>>H>Ŀ=:2>>==P'>ff==:2>ff=M>P'>>=O>:2>>M>P'>O>:2>ǽ=P'>fǽ=:2>fP=P'>[>P=:2>[>PP'>[P:2>[pj@+2>d谥pj'>dPZpj=@+2>dypj='>dyPZ`ĽZ=H+2>޿"@`ĽV='>޿"@PZ kj>H+2>W kj>'>WPZ=kj>H+2>yW=kj>'>yWPZP=Z=H+2>"@"@P=V='>"@"@PZhj>=@+2>Wyhj>='>WyPZpj>@+2>W谥pj>'>WPZ`=JĽ@+2>"@޿`=NĽ'>"@޿PZ=cj@+2>yd=dj'>ydPZ`ĽSĽ@+2>޿޿`ĽWĽ'>޿޿PZgj@+2>dhj'>dPZDATA,H  DATA 5  "   "  "  "  "  "  "  "  " " " " " """""""" " " "$        ! !" "# #$ $%"%&"#&"&'""'"'("!("()" )")*"*"*+"+"+,",",-"-"-."."./"/"/0"0"%0"01 1<"%< /2 12".3 23"-4 34",5 45"+6 56"*7 67")8 78"(9 89"': 9:"&; :;";<"<="=>";>">?":?"?@"9@"@A"8A"AB"7B"BC"6C"CD"5D"DE"4E"EF"3F"FG"2G"GH"1H"=H"HI"IT =T"GJ"IJ FK"JK EL"KL DM"LM CN"MN BO"NO AP"OP @Q"PQ ?R"QR >S"RS ST TU"UV"SV"VW"RW"WX"QX"XY"PY"YZ"OZ"Z["N["[\"M\"\]"L]"]^"K^"^_"J_"_`"I`"U`"a "b"c"d$"e "f"g "h"i"j"k"l"m"n"o"p"q"r "s"t!"u"v""w"#x"ca"db"ea"fb"eg"fh"ig"jh"ik"jl"mk"nl"om"np"oq"rp"sq"rt"us"tv"uw"vx"cw"dx"yx y d c z wz {v y{ |z |u t} {} ~| ~s r } ~ q p  o n m l k j i h g f e b a  ~ } | { z y # # ## ## ## ## ## ## ## ## ## ## ##############DATA,Р ( DATA( 4         #$%&"#&'!"'( !() )**++,,--..//0$0%%01<0/21/.32.-43-,54,+65+*76*)87)(98(':9'&;:&%<;;<=>:;>?9:?@89@A78AB67BC56CD45DE34EF23FG12GH<1H==HITHGJIGFKJFELKEDMLDCNMCBONBAPOA@QP@?RQ?>SR>=TSSTUVRSVWQRWXPQXYOPYZNOZ[MN[\LM\]KL]^JK^_IJ_`TI`Uc ab$d ea fb ge hfig jhkiljmknlompnqor psqt! rusv"!twux#"vcwd$#xdxywczxv{yuwz|vt}{su|~tr}qs~rpoqpnmonlkmljikjhgihfegfbaebdca~}~|{}|zy{zyMEX 2 @{ MECylinder.017HE  x  @ Ȳ    .d737C>D>d>DATA x DATA,Ȳ   DATA  8.0;Y=RCPDP /<<Rma />TT, /<<>>s, />s,0;@[>>T$,3>>,ُ>>,+ս@[>>$$,1t>>,1@<>>,+սY=>>$T,8ُȔ=>>s,4Ȕ=>>s,w:`WR=d>%%ptp:=d> U3pt =d>?U3ptѽ WR=d>lڔ%ptK| ptK3d>?ptѽTd>llpt`d>?pt :`d> ptw:Td>%lpt<@3d>U3?pt<|U3 pt Od>$:@ Q=dг=d %HL=d%н@ Q=d|h o6fH@>o6P`Y==QQw6=m=ob6=`mo6p`Y=ҽQ.6fH8568z@ 56ҽѯѯ6Cmw7C`m=wY=ѯ/Phz@>m@gHH>Ym0`Y==/P/P=m=mZ= mzm`Y=ҽ)Pӯ@eH8Yw(z@w7Cm^7Cmu^7CmS^7CmL^7Cm݇^6Cmz-^ҽҽuҽSҽLҽ݇ҽz-7Cm=^ !7Cm=u^ !7Cm=S^ !7Cm=L^ !7C`m=݇^ !7C`m=z-^ !=Z=uZ=SZ=LZ=݇Z=z-ZPz@>ޢ{Xz@>uޣ{Xz@>Sޥ{Xz@>Lޥ{`z@>݇ޣ{`z@>z-ޢ{fH@>&!{fH@>u6!{@lF> ~^ @lF>XLy ~gHH>݇8!{@gHH>z-'!{ P`Y==ZdZpX== t8k(X==䇾7kQ@`Y==z-Z}Z/g=`b=@`4KA=`b=8T`4]@=a@`LB=a8D`'Bp`Y=ҽdZcE\=ҽ t7_R)p8Y=ҽ䇾7KG`Y=ҽ}-~Z| eH8!Z!eH8u S@I^ hR @IFLu jeH8݇0!beH8}-$!_8z@^8z@u]0z@S[0z@L[(z@݇](z@}-^6C>F^6C>2^ !7C>@xZ7C> /7ޢ{7C>/=7 !{7C>x=ZZ7C>0=$2{ !7C>0=F{7C>x=~Z7C>/= !^6C>@/^6C>@x~?>F^?>@x~?>2^ !?>@xZ?> /7ޢ{?>/=7 !{?>x=ZZ?>0=$2{ !?>0=F{?>x=~Z?>/= !^?>@/^`=F^`=@x~`=2^ !`=@xZ`= /7ޢ{`=/=7 !{h=x=ZZh=0=$2{ !`=0=F{`=x=~Z`=/= !^`=@/^=F\=@x~\=2\=@x\>= /7\U=/=7\U=x=\>>=0=$2\U=0=F\U=x=~\>=/=\=@/\= &|L~e= ϽC%~bb= ~f= ϽPz~b =ż~=@=ż~=P=z~ = >~= ><|L~=P=D%~ b=@=e$~f=e$~fH= M MDH=ҽY쇾MH=MJuP=pҽtM@HP=?@.MbP=@@=@.MsbP==ЌtMFH@HP=>MbuP=> M MbP==Z쇾MMHP= @=Z4MuRH=?Y4MRϽ"JJfxb " fx"Q "= fxhS=Ͻ"Jfxxӵ= >")fxxӵ=`>=")= fxhS=="fx@#Q >"= )fxb >")fx="JfxH-A`>=" = fxH-A@>" fxh9ؽc"//_m@٦"8@5_m٦<"8@_mh9ؽc="/_m@="5ȿ_m4@="ɿ_m$;c="_m<٦<"ȿ_m<@٦"ȿ5_m$;c"/_m40"8@_m0"58@_mHMнr= Fu='PFu= T=Mнu=\H=|u=`%H=}=u=`% T=M=r=\\(P(F>r= `%8 F>r=`%HM=r=\gA}=r= gA }r=x=ؽcs=//ߦs=7@5ߦ Wx`] 5Wxx;Ub5XN<5> `N<<5ߧv;@Vb=4觧]@=4ߩ0=3> n׽ Vb=3X觧\m<3WxߧXm4Wx> j׽MbXXW(> WxWc󼐑WxW6;MbXW 8<򦻩> W 8<<򦻩W6;Nb=Xc󼐑=ߩX0=> Xj׽Mb=XWj<WxWjWx> WkF&{ !l׽QbF&ZZk<F&{l׽Rb=F&Z`=F&!^c󼐑=E&^U; Rb=F&~`C<<F&^`C<F&^ !W;QbF&Z``@F&ޢ{讏`F& !{@ < `'!h>=ҽ`twzZ=[*hޝ{= \=*h2!{}= =ptZzZ <8>0{'! <8>tL {`}= =H懾ZP}=ҽG懾r@ <(bL \Xc= \=74+!az=[74aDATA, @ DATA@ 5d# ## ############# ## ## ## # # # ######## # # ### ############# # #!# !#"#!"# ##"####$!$!$!$!$!$!$!$! $!!$!"$!#$!%#%&# &#&'# '#'(# (#()#)#)*#*#*+#+#+,#,#,-#-#-.#.#./#/#/0#0#%0#%1!&1!'1!(1!)1!*1!+1!,1!-1!.1!/1!01!23">?"34"?@"45"@A"56"AB"67"BC"78"CD"89"DE"9:"EF":;"FG";<"GH"<="HI"2=">I"3J"JK"KL"LM"MN"NO"?O"2P"PQ"QR"RS"ST"TU">U"4V"VW"WX"XY"YZ"Z["@["5\"\]"]^"^_"_`"`a"Aa"6b"bc"cd"de"ef"fg"Bg"7h"hi"ij"jk kl"lm"Cm"8n"no"pq"Dq"9r":t";v"vw"xy"Gy"<z"z{"{|"|} }~"~"H"=""""""I"JP KQ LR MS NT OU JV KW LX MY NZ O[ V\ W] X^ Y_ Z` [a \b ]c ^d _e `f ag bh ci dj ek fl gm hn io lp mq nr ps"rt"su"tv ux"vz w{ x~ y z { | } ~  U T S R Q P """"""""""""" " " " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""" " " " " " " " " " " """"""""""""""""""""""""""w|"tw"or"jo"kp"x}"=""2"<"";"":""9""8""7""6""5""4""3""" " " " " " " " " " " " ">""I""H""G""F""E""D""C""B""A""@""?"" " " " " " " " " " " """"""""""""""""""""""" " " " "  " " "  " "  "" """"""""""""""" " " " " " " " " " " "   " ! !"! """""""" "!"""qs Es"uy Fu"|""""w#"#"t$"$"r%"%"o&"&"j'"'"k("("p)")"x*"*"}+"+"s,","u-"-"*+ "+ "# #$ $% %& &' '( () ), ,- *- DATA,  x DATALx 47          ! "! #" #$$$$$$$$ $ !$!"$"#$# %& &' '( ())**++,,--..//00%&%11'&1('1)(1*)1+*1,+1-,1.-1/.10/1%023JPPJKQQKLRRLMSSMNTTNOUUO?>34VJJVWKKWXLLXYMMYZNNZ[OO[@?45\VV\]WW]^XX^_YY_`ZZ`a[[aA@56b\\bc]]cd^^de__ef``fgaagBA67hbbhiccijddjkeeklfflmggmCB78nhhnoilpqmmqDC89rnnropsqqsED9:trsuFE:;vttvwuxyuyGF;<zvvz{wx~yyHG<=zz{{||}}~~IH>IUUTTSSRRQQP=2Piojkplx}~w{|2==<<;;::998877665544332I>HIGHFGEFDECDBCAB@A?@>?                  !  !   ! !+*+}x*"+"|}+#"#w|"$#$tw#%$%rt$&%&or%'&'jo&('(kj')()pk(,),sp)-,-us,*-*xu-ME 2H X MECylinder.018/0 5   `   3 3$W-$>`>_F>DATA0 x DATA,`  DATA 8,#>׽ߪ=6*Q,#> ^>6 o,#>x=^>6o,#>==6QQ,#> >K=6o,#> >$6o ,#>=nڽx6Q,#>=V{b6,#>V{6:,#>׽nڽ6.:,#>$65 ,#>K=65i#׽˪=ѯ/Ph#2V>ħmg#Q=^>Ymg#==/P/Pg# >L=ĉmYh# >z$ĉmi#ϓ=nڽ/Pѯo#=P{Zp#_{ī⅒p#څ׽nڽӯׯp#$wo#K=wY=>^>ޢ{]=Z>ޢ{=Z>ޢ{)!Z>ޢ{ֽ&Z>ޢ{ +V>ޢ{8>׽۪=ZU=׽۪=Z=׽ת=Z)׽Ӫ=Zֽ׽Ϫ=Z ׽Ϫ=Z=>q=^> !{^=l=^> !{=g=^> !{)b=^> !{ֽ\=^> !{ W=^> !{=>==ZZ^===ZZ===ZZ)==ZZֽ==ZZ ==ZZ=> >K={ !^= >K={!= >K={!) >K={!ֽ >K={!  >L={ !=> >${]= >${2=6>bT%^ ~+6>bT%~ֽ >${  >$ {8>=nڽdZb=t=9.ڽ(k2ֽt="ڽQ׳k ͓=nڽ/}Zzs7>=:KA4p=}]4s7>PBL0B'˼6>׽nڽc=:f׽۽R)_g2ֽ:f׽yZڽGK܅׽nڽ |6>$!ZO=$S R=Fb$R hNb$j ֽ$b$_6>K=^ !P=K=]!=K=[!%)K=[! ֽK=]!K=^ !F%`}|^=%`}| !^ =s`}|Z=~U`}|{=jq=`}|{ ! =ف=`}|ZZ=3=`}| !{G3=`}|ޢ{쳽ف=`}|Z`Zq=`}|^ !`U`}|^쳽s`}|F%%y^쳽s%y=%%y !^ =s%yZ=~U%y{=jq=%y{ ! =ف=%yZZ=3=%y !{G3=%yޢ{쳽ف=%yZ`Zq=%y^ !`U%y^F%$^쳽s$=%$ !^ =s$Z=U${=hq=${ ! =؁=$ZZ=3=$ !{G3=$ޢ{쳽؁=$Z`Xq=$^ !`U$^F%!쳽s!=%! =s!>=U!U=hq=!U =؁=!>>=3=!UG3=!U쳽؁=!>`Xq=!`U!s!fwbӽԽ!bbw=|!fw=Խ! bw>!w>=!wұ=*=! wӬ=r>!w@tr>!wbӽ*=!b wnq=!fwn!fw;!DNֽF׽;!=;!uJ=F׽;!@HI&>;!bҲI&>l=;!btҲ=T=;!@HFH=>;!ub(>;!bNֽT=;!MHY=;!Ru;!R,$>}Խ=fxJ,$>N=fx = ,$>F"fx ,$>|Խe׽fxJJ,$>;hfx ,$>=hfx= ,$>Ҋ=e׽fxJ3$>">"fx)3$>">=fx)= 3$>==fx3$>=>fx= )3$>O>fx)/$>!i `=_m/3$>q=_m5ȿ3$>jͥe= `=_m3$>Z=,*<_mȿ3$>Z=9_mȿ5/$>e=o_m//$>ͥ<5_m8@/$>u5_m58@/$>iʒo_m///$> M:_m8@5/$>M)<_m8@ $^Խ'=\&$/R= '$/&"'$6ԽI׽'$V&$$=H $+= ׽\$6>"`%$6>6S=`% $=O=\\$x$=V> `%$W N>`%!$i6`=/!$˜w=5ɿ $kӥ #q$hbmXX#2h'> Wx#ȟ<Wx#/@d=mX# A= ⩇> #A=\<⩇#?d=~n^=#I #>Ehf^=WX#>--WWx> #>3hmWXX#>^boW> Wx#>j7d=mWX#>R;=W> #>R;=7d=f^=W#>S<R=Wߩ#>tbR=W> 3eSU= !^3n h6j^=Z3!=<<^S3Q;=^ !3;d=m~Z3 {ޘ\4> =B{2!=nn=czZZEo=T>֑{'!{?T>֑{ޤ{ֽnn=o콌Zֽ`׽ rjz\. =Sa+!.aDATA,  DATA 5" "" """"""""""""" "" "" "" " """"""" """ " !"!"""#" #"$"$%"%&"&'"'("()")"*"*+"+,",-"-."./"/"0"01"12"23"34"45"5"6"67"78"89 9:":;";"<"<=">?"?"@"B" D"DE"FG"G" H"HI"IJ"JK KL"LM"M" N"NO"OP"PQ"QR"RS"S"   ! " # $ % & ' ( ) $* %+ &, '- (. )/ *0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; 6< 7= :> ;? <@ >A"@B"AC"BD CF"DH EI FL GM HN IO JP KQ LR MS #S "R !Q P O N T_"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"T`"`a _a"`b Ub"bc Vc"cd Wd"de Xe"ef Yf"fg Zg"gh [h"hi \i"ij ]j"jk ^k"ak `l"lm am"ln bn"no co"op dp"pq eq"qr fr"rs gs"st ht"tu iu"uv jv"vw kw"mw lx"xy"my"xz"nz"z{"o{"{|"p|"|}"q}"}~"r~"~"s""t""u""v""w"y"x "y z "{ "| "} "~ " " " " " """"""""""""""""""""""""""EJ"BE"=@"8="9>"FK" """ "" """"""""""""""""""" " " " " " " " " " " " " """""""""""""""""""""" "" " " " " " " " " " " """"""""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " """"""""""""?A A"CG C"J""E""B""@""=""8""9"">""F""K""A""C"" DATA,3 5 DATA5 4  !!""## $$%%&&''(()) *$$*+%%+,&&,-''-.((./))/0**01++12,,23--34..45//56006711782289339:44:;55;<66<=7:>?;;?@<<@=>A??AB@AC DBBDECFGCG HDDHIEFLMGGM NHHNOIIOPJJPQKKQRLLRSMMS S##SR""RQ!!QP  POON N_T`a`TUbVcbUWdcVXedWYfeXZgfY[hgZ\ih[]ji\^kj]_ak^a`lmbnl`conbdpoceqpdfrqegsrfhtsgiuthjvuikwvjamwkmlxynzxlo{znp|{oq}|pr~}qs~rtsutvuwvmywyxxzz{{||}}~~y7=89>:FKLEIJ       KFJKEJBE@B=@8=98>9A>CAFCMEH 2h  MECylinder.019nK J K pg PJ f  PD3@Y>DY>_>DATA J x DATA,PJ K DATA@K 8P׽׽Pz޿޿@YxPze谥@Y=Pzey׽ƻ=Pz޿"@`CY>PzW==Y>PzyW@Y>=PzWy=׽Pz"@޿`=?YPzye`BYDr>^==YDr> !^=׽Dr>Z@Y>xDr>{8Y>=Dr>{ !==Dr>ZZ`=?Y>Dr> !{?Y>Dr>ޢ{׽=Dr>Z@Yx=Dr>^ !@YDr>^׽Ļ׽Dr>׽Ļ׽`>\@Y`>\@Yx=`>\׽=`>>\?Y>`>U\`=?Y>`>U\==`>>>\8Y>=`>U\@Y>x`>U\=׽`>>\==Y`>\`BY`>\ ?`>6s =?`>6s=𺵽`>e؛'s?= `>s?=, =`>Ɂsີ==`>ees =?=`>s@ ?=`>s𺵽=`>'es? =`>6s?0 `>6s𺵽`>''szz>UU^),~c>tY^),lc=>t^)zz=>UZ^)c,=>Y^)@c=,=>^)z=z=>ZZ^),=|c=>^),=lc>Y^)z=z>ZU^)c=,>t^)`c,>Yt^)`c,,@V> !{c=,,@V>ޢ{z=z,@V>Z,=lc,@V>^ !,=|c=,@V>^z=z=,@V>@c=,=,@V>^c,=,@V> !^zz=,@V>Z,lc=,@V>{,~c,@V>{ !zz,@V>ZZzzXR>ZZ,~cXR>{ !,lc=XR>{zz=XR>Zc,=XR> !^@c=,=XR>^z=z=XR>,=|c=XR>^,=lcXR>^ !z=zXR>Zc=,XR>ޢ{`c,XR> !{`DYXz>ePZ`CY8>e׽Ȼ׽Xz>޿޿PZ׽Ļ׽8>޿޿=?YXz>yePZ=>Y8>ye=׽Xz>"@޿PZ=׽8>"@޿@Y>Xz>WPZ@Y>|8>W谥8Y>=Xz>WyPZ8Y>=8>Wy==Xz>"@"@PZ==8>"@"@`==Y>Xz>yWPZ`=?Y>8>yW=Y>Xz>WPZ?Y>8>W׽=Xz>޿"@PZ׽=8>޿"@@Yp=Xz>eyPZ@Yt=8>ey@YXz>ePZ@Y8>e谥0>[ {>[=0>[>= {>[>0ս0=0>f0ս0= {>f >0> > {>=>0>>=> {>>0=0=0>ff0=0= {>ff>=0>>>= {>>>0>> {>0=0ս0>f0=0ս {>f=0>>[= {>>[0ս0ս0>0ս0ս {>0>[ {>[Oi{>[N>[ǽǽi{>ǽǽ>=Ki{>>[=J>>[=ǽi{>f=ǽ>fP>i{>P>>H>=i{>>H>=>>==i{>ff==>ff=I>i{>>=K>>>I>i{>K>>ǽ=i{>fǽ=>fP=i{>[>P=>[>PĿi{>[P>[pjD>d谥pj@y{>dPZpj=D>dypj=@y{>dyPZ`ĽR=H>޿"@`ĽN=@y{>޿"@PZ gj>H>W gj>@y{>WPZ=gj>H>yW=gj>@y{>yWPZP=R=H>"@"@P=N=@y{>"@"@PZhj>=D>Wyhj>=@y{>WyPZpj>D>W谥pj>@y{>WPZ`=RĽD>"@޿`=VĽ@y{>"@޿PZ=gjD>yd=hj@y{>ydPZ`Ľ[ĽD>޿޿`Ľ_Ľ@y{>޿޿PZkjD>dlj@y{>dPZkj>8y{Wij>@WPZ`Ľ^=8y{޿"@`Ľ\=@޿"@PZ=gj>8y{yW=ej>@yWPZ`=T=8y{"@"@`=R=@"@"@PZpj>=8y{Wypj>=@WyPZhj>8y{W谥hj>@WPZP=RĽ8y{"@޿P=TĽD"@޿PZ=ij8y{yd=ijDydPZ ij8y{d ijDdPZ`ĽRĽ8y{޿޿`ĽTĽD޿޿PZpj8y{d谥pj@dPZpj=8y{dypj=@dyPZP=[>PĿ=i{[>P[Pi{[ǽǽǽǽi{M[Ki{[=M>[=Ki{>[=ǽf=ǽi{fH>H>i{P>=>P>=i{>==ff==i{ff=G>>=I>i{>ǽ=fǽ=i{fK>M>i{> {> 00ս0= {f0ս0= 0f=> {>=> 0>0=0= {ff0=0= 0ff>= {>>= 0>> {> 00=0ս {f0=0ս0f= {>[=0>[  {[ 0[0ս0ս {0ս0ս0 {[ 0[= {[>= 0[>@Y=8eyPZ@Y|8ePZ׽׽8޿޿PZAY8ePZ?YPze`=AY8yePZ=׽8"@޿PZ8Y>8WPZ8Y>PzW谥@Y>|=8WyPZ==8"@"@PZ==Pz"@"@=;Y>8yWPZ׽Ļ=8޿"@PZ`AY>8WPZ`c,=PR !^c=,=PR^z=z=PR,=hc=PR^,=cPR^ !z=zPRZ@c=,PRޢ{c,PR !{zzPRZZ,tcPR{ !,|c=PR{zz=PRZzz=(@VZ,|c=(@V{,tc(@V{ !zz(@VZZc,(@V !{@c=,(@Vޢ{z=z(@VZ,=c(@V^ !,=hc=(@V^z=z=(@Vc=,=(@V^`c,=(@V !^`c,=Yc=,=z=z=ZZ,=lc=,=cYz=zZU@c=,tc,YtzzUU,rctY,c=tzz=UZ𺵽=\'e?0 =\6?& \6𺵽\''@ ?^6 =?^6ີ=\e؛'?=2 \?= =\Ɂ==\ee =?=\ ?=\`AY>\U=;Y>\U==\>>@Y>x=\U8Y>\U=׽\>`=@Y^@Y^׽׽\@Y~\@Y=\׽Ļ=\>׽Ļ=@rZ@Y=@r^ !@Y~@r^׽׽@r@YBr^`=@YBr !^=׽@rZ8Y>@r{@Y>x=@r{ !==@rZZ=;Y>@r !{`AY>@rޢ{DATA,f pg DATApg 5###### ! ! ! ! ! !!!!!!!############## ## ## ## # # # # !!!,#,!"!!"##!"##$!#$#%!$%#&!%&#'!&'#(!'(#)!()#*!)*#+!*+#+,#,-#-.#+.#./#*/#/0#)0#01#(1#12#'2#23#&3#34#%4#45#$5#56##6#67#"7#78#!8#-8#89#9D!-D#7:#9:!6;#:;!5<#;<!4=#<=!3>#=>!2?#>?!1@#?@!0A#@A!/B#AB!.C#BC!CD!DE#EF#CF#FG#BG#GH#AH#HI#@I#IJ#?J#JK#>K#KL#=L#LM#<M#MN#;N#NO#:O#OP#9P#EP# R#S#T#U# V#W# X# Z#[# \#^#_#`#a#b#c#d#e#f#g#h#QS#RT#QU#RV#UW#VX#WY#XZ#Y[#Z\#[]#\^#]_#^`#_a#`b#ac#bd#ce#df#eg#fh#Sg#Th#hi!i}!T}!S~!j~!gj!fk!ik!jl!el!dm!km!ln!cn!bo!mo!np!ap!`q!oq!pr!_r!^s!qs!rt!]t!\u!su!tv![v!Zw!uw!vx!Yx!Xy!wy!xz!Wz!V{!y{!z|!U|!R!{!|!Q!}!~!!!~!}!!!|!!!{!z!!!y!x!!!w!v!!!u!t!!!s!r!!!q!p!!!o!n!!!m!l!!!k!j!!!i!!!!#!!#!!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!############################!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!!#!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!############E#F#G#H#I#J#K#L#M#N#D#O### # #  # #  # #  # #  # # ############!!*#!)#!(#!'#!&#!%#!$#!##!"#!!#+#! # +# 7# !#!6#!"#"5#"###4##$#$3#$%#%2#%&#&1#&'#'0#'(#(/#()#).#)*#*-#*+#+,#,-#-.#-B!./#.A!/0#/@!01#0?!12#1>!23#2=!34#3<!45#4;!56#5:!67#69!,C!,7#78!8C#8O#89#9N#9:#:M#:;#;L#;<#<K#<=#=J#=>#>I#>?#?H#?@#@G#@A#AF#AB#BE#BC#CD#DE!EF!FG!GH!HI!IJ!JK!KL!LM!MN!NO!DO!""""""        ]"Y"Q"DATA,  DATAP 4D        !, "!#"$#%$&%'&(')(*)+*,++,-.*+./)*/0()01'(12&'23%&34$%45#$56"#67!"78,!8--89D87:976;:65<;54=<43>=32?>21@?10A@0/BA/.CB.-DCCDEFBCFGABGH@AHI?@IJ>?JK=>KL<=LM;<MN:;NO9:OPD9PESQR TUQV RWUX VYWZ X[Y\ Z][^ \_]`^a_b`cadbecfdgehfSgThThi}gS~jhfkiegjlfdmkcelndbomacnpb`qo_apr`^sq]_rt^\us[]tv\ZwuY[vxZXywWYxzXV{yUWz|VR{QU|RT}SQ~~}|{|zy{zxwyxvuwvtsutrqsrpoqpnmonlkmljikj~}iDEEFFGGHHIIJJKKLLMMNNOOD          *+)*()'(&'%&$%#$"#!" !+ ,7 +76! 65"!54#"43$#32%$21&%10'&0/('/.)(.-*)-,+*BC,-AB-.@A./?@/0>?01=>12<=23;<34:;459:568967C87,DO8CON98NM:9ML;:LK<;KJ=<JI>=IH?>HG@?GFA@FEBAEDCBMEh 2 H MECylinder.020HA 0 P آ   0 .d7E?pF?U,?7C>D>d>DATA x DATA,آ 0 DATA0 8.E? ?|>CPDPwJ??|>mawJ?ﳢ?|>mE?^?|>DP]a[2?bޛ?|>[.*?^?|>-%?ﳢ?|>\-%??|>\`.*? ?|>CP2?>?|>m]?|>amE? ?z?TT,wJ??z?s,wJ??z?s,E?^?z?T$,_?z?s,Z?z?s,E?yЫ? ?%%ptW %u 3?-?i>% *?ƫ?i>|%?⛧?i>i %?̢?i>i*??i>|{u 3?:?i>i i+D??i>{OI?̢?i>%OI?㛧?i>% 7?P4?i>?u?Vf-?*QX R??Uf-?5X R?s?Uf-?5 X?4?Uf-?**X.?C?Uf-? 5XHA?C?Uf-?5XR?3?Wf-?Q"\\?s?Wf-?o\\??Vf-?oDR?u?Vf-?QQ8JA?I?Vf-?oX.?I?Vf-? oX?u?Y}?ѯ/P[;"R??Y}?wY\; R?s?Y}?w\;?5?Z}?ѯѯ\;.?C?Z}?w\;EA?C?Z}?Yw\;R?2?Z}?/Pѯ\;\\?s?\}?ml;\\??\}?zmUx;R?u?[}?)P-Pf;MA?I?[}?Ym\;.?I?[}?m\; R??1?^ !!R??A;?^ !!R??RK?^ !!R??_?^ !!R??o?^ !"R??y?^ !?u?1?Z?u?A;?Z?u?SK?Z?u?_?Z?u?o?Z?u?y?Z R?s?1?^ R?s?A;?^ R?s?SK?^ R?s?_?^ R?s?o?^ R?s?y?^?4?1??4?A;??4?SK??5?_??5?o??5?y?.?C?1?^.?C?A;?].?C?SK?[.?C?_?[.?C?o?].?C?y?^GA?C?1?&!` GA?C?A;?6!d1B?oF?K? m1B?oF?'_?y kW FA?C?o?8!dEA?C?y?'!`R?3?1?ZbR?$?\=;?8]E{R?%?To?7M(R?2?y?ZL\?^s?l1?`"˵_]\?^s?,y?T`!ˣAg\??k1?`4`\??,y?D`4AR?u?1?dZZ7;R?s?[=;?7kiR?s?So?7k(R?u?y?~ZZKA?I?1?!{KA?I?A;? {IA?oF?K?^ ~IA?pF?'_?u ~M LA?I?o?0!{LA?I?y?$!{.?I?1?ޢ{.?I?A;?ޣ{.?I?TK?ޥ{.?I?_?ޥ{.?I?o?ޣ{.?I?y?ޢ{u?pW?J]?{ !u?pW?^}M?{u?M?J??Zu?O?Sn7? !^u??L??u?m5?c}M?^u?m5?O]?^ !u?>?ak?Zu??L??Ku?m5?c}M?^Ku?m5?O]?^ !Ku?>?ak?ZKu??L??^`?m5?c}M?^^`?m5?O]?^ !^`?>?ak?Z^`?>^_?pW?^}M?\U^_?M?J??\>^_?O?Sn7?\^_??L??\^_?m5?c}M?\^_?m5?O]?\^_?>?ak?\>^_? Y=??}?ߩY|F? Y?}?YWK?1ݧ?}?YUK??}?> Y|F?3?}?XY=??}?WxZ)3??}?> WxZ 2*?3?}?XXY%??}?Wx> Y%?3ݧ?}?WxZ2*?X?>-?X觩*3??>-?> Ƅ=??>-?ߩN|F?X?>-?觨K?ݧ?>-?ߩK?ů?>-?> N|F?4?>-?XĄ=?W?>-?Wx*3?W?>-?> Wx2*?4?>-?XX>%?Ư?>-?Wx> >%?ݧ?>-?Wxߨ%?'ݧ?YU?{P2*?Y?YU?Z%??YU?{ !O2*?3?YU?ZZ*3?+?ZU?!{Ą=?W?YU?ޢ{|F?3?ZU?ZK??YU?^ !K?%ݧ?YU?^|F?X?YU?߄=??YU?^*3??YU? !^OHG?E?\K?{'U?_s?<;?Z\?N?.1?h1!c\?s?.1?hc1T?~?<;?wRG?F?`K?`RG?F?)_? \!T?~?o?rtZT?`s?o?ZtZOHG?E?)_? {!L\?s?Ɍy?4ޟ{%\?N?Ɍy?4+!{DATA, P DATAP 5d# ## ############# ## ## ## # # # ######## # # ### ############# # #!# !#"#!"# ##"####$!$!$!$!$!$!$!$! $!!$!"$!#$!%#%&# &#&'# '#'(# (#()#)#)*#*#*+#+#+,#,#,-#-#-.#.#./#/#/0#0#%0#%1!&1!'1!(1!)1!*1!+1!,1!-1!.1!/1!01!23">?"34"?@"45"@A"56"AB"67"BC"78"CD"89"DE"9:"EF":;"FG";<"GH"<="HI"2=">I"3J"JK"KL"LM"MN"NO"?O"2P"PQ"QR"RS"ST"TU">U"4V"VW"WX"XY"YZ"Z["@["5\"\]"]^"^_"_`"`a"Aa"6b"bc"cd"de"ef"fg"Bg"7h"hi"ij"jk kl"lm"Cm"8n"no"pq"Dq"9r":t";v"vw"xy"Gy"<z"z{"{|"|} }~"~"H"=""""""I"JP KQ LR MS NT OU JV KW LX MY NZ O[ V\ W] X^ Y_ Z` [a \b ]c ^d _e `f ag bh ci dj ek fl gm hn io lp mq nr ps"rt"su"tv ux"vz w{ x~ y z { | } ~  U T S R Q P """"""""""""" " " " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""" " " " " " " " " " " """"""""""""""""""""""""""w|"tw"or"jo"kp"x}"=""2"<"";"":""9""8""7""6""5""4""3""" " " " " " " " " " " " ">""I""H""G""F""E""D""C""B""A""@""?"" " " " " " " " " " " """"""""""""""""""""""" " " " "  " " "  " "  "" """"""""""""""" " " " " " " " " " " "   " ! !"! """""""" "!"""qs Es"uy Fu"|""""w#"#"t$"$"r%"%"o&"&"j'"'"k("("p)")"x*"*"}+"+"s,","u-"-"*+ "+ "# #$ $% %& &' '( () ), ,- *- DATA,0  DATAL 47          ! "! #" #$$$$$$$$ $ !$!"$"#$# %& &' '( ())**++,,--..//00%&%11'&1('1)(1*)1+*1,+1-,1.-1/.10/1%023JPPJKQQKLRRLMSSMNTTNOUUO?>34VJJVWKKWXLLXYMMYZNNZ[OO[@?45\VV\]WW]^XX^_YY_`ZZ`a[[aA@56b\\bc]]cd^^de__ef``fgaagBA67hbbhiccijddjkeeklfflmggmCB78nhhnoilpqmmqDC89rnnropsqqsED9:trsuFE:;vttvwuxyuyGF;<zvvz{wx~yyHG<=zz{{||}}~~IH>IUUTTSSRRQQP=2Piojkplx}~w{|2==<<;;::998877665544332I>HIGHFGEFDECDBCAB@A?@>?                  !  !   ! !+*+}x*"+"|}+#"#w|"$#$tw#%$%rt$&%&or%'&'jo&('(kj')()pk(,),sp)-,-us,*-*xu-ME 28! h MECylinder.021(Z @ (%! ! p  !  #! 4:pkS,$>`>`F>DATA@ x DATA,p  DATA 8,#>^Խ(=6*Q,#>ó>6 o,#>k!=>6o,#>κ=(=6QQ,#>V>=6o,#>X>v 6o ,#>ߺ=x@ؽw6Q,#>k!=,db6,#>,d6:,#>^Խx@ؽ6.:,#>Xs0w 65 ,#>`sP=65d#^Խ(=ѯ/Pd#>ħmd#k!=>Ymd#ú=H=/P/Pd#X>Ш=ĉmYd#`>v ĉmd#=X@ؽ/Pѯl#l!=,dZl#{˳>ޢ{i=ӳ>ޢ{=׳>ޢ{(۳>ޢ{ֽ߳>ޢ{>ޢ{<>^Խ(=ZY=^Խ(=Z=^Խ(=Z)^Խ(=Zֽ^Խ(=Z ^Խ(=ZD>k!=> !{i=k!=> !{=k!=> !{(k!=> !{ֽk!=> !{k!=> !{D>̺=(=ZZi=ʺ=(=ZZ=ɺ=H=ZZ(Ǻ=H=ZZֽƺ=H=ZZź=H=ZZD>V>={ !i=X>={!=X>={!(X>={!ֽX>={!X>={ !D>X>v {i=Z>v {Q=ȋ> ^ ~ȋ> ~ֽ^>v {`>v {<>=x@ؽdZb=A=׽(k'ֽA=׽Q׳k =X@ؽ/}Zzt7>_`!=#KA4p_`!=f]4t7> BLtB'˼<>^Խx@ؽc=?ԽXٽR)_g'ֽ?Խ,ؽGK ^Խ@ؽ |<>Xs0w !ZY=Xs0w S q=]% R h]% jֽVspw b Vspw _<>`sP=^ !Y=`sP=]!=^sP=[!)^sP=[!ֽ^sP=]! ^sP=^ !F=vܷ U==ܷ U ==ܷ >>=Z=ܷ UGZ=ܷ U쳽=ܷ >W=ܷ Wܷ sܷ ewWӽнܷ aaw1=ܷ ew=нܷ aw>O4ܷ w>=ܷ wٱ=Q=ܷ w=M>ܷ w/tM>ܷ wWӽQ=ܷ a wn=ܷ ewng4ܷ ewH  CGֽԽ  =H  uJ=yԽ  AHL&>7  bҲL&>=!=  btҲ={=  AHFH=4v>  ub4v>  bGֽ{=  MH=!=  RuO  R,$>UѽH=fxJ,$>`o=fx = ,$>`p>fx ,$>Uѽ7սfxJJ,$>zQfx ,$>3=Qfx= ,$>=7սfxJ4$>>0>fx)4$>>o=fx)= 4$>=H=fx4$>3=>fx= )4$>{>fx)4$>rcgd=_m/4$>H=`m5ɿ4$>i*l=gd=_m4$>ꁠ=<_mȿ4$>ꁠ=`_mȿ54$>*l=06k`m/4$>j<`m7@4$>`m47@4$>rc06k`m//4$>%_m8@54$>% <_m8@$9ѽh'=\$$VP= $$Np~$$ѽս$$,$$5s= $O =ս\$X>}`%$P>Я=`% $ ='=\\$r=> `%$t>`%$C{cod=/$>襜=4ɿ$o<=ɿ$-3l=pd=$=<ɿ$=`ɿ4$a3l=p>k/$$zp<8 7@$$X 47@$${c>k//$$+7@5$$+ <7@#Wab=X#) #+aiXX#˟ힽ> Wx#V<<ힽWx#uj=piX#.h=`R⩇> #'h=<⩇#Aj=b=#;<=ߩ#̟h=> #>ab=WX#>} uLWWx> #>a0iXXX#>ş螽X> Wx#>5<螽XWx#> j=0iXX#>vb=`LX> #>vb=j=b=W#>5<Ȁ=Xߩ#>şȀ=X> E4ɟ= !^E4'ab=ZE48<=^E4j=b=E4De=<^E4ub=`L^ !E45j=0i~ZE4:9<ꞽޢ{E4ȟꞽ !{E4apiZZE4; O{ !E4] <{qo=Yv'!` =e9Խ$zZw\4>á{ޘ\4>!Z!=u{2! ==zZZQo=>05w'!{/>05wޤ{ֽ=꽌Zֽg9ԽX꽌rYv\,Z!=,a+!,aDATA, !  ! DATA ! 5" "" """"""""""""" "" "" "" " """"""" """ " !"!"""#" #"$"$%"%&"&'"'("()")"*"*+"+,",-"-."./"/"0"01"12"23"34"45"5"6"67"78"89 9:":;";"<"<=">?"?"@"B" D"DE"FG"G" H"HI"IJ"JK KL"LM"M" N"NO"OP"PQ"QR"RS"S"   ! " # $ % & ' ( ) $* %+ &, '- (. )/ *0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; 6< 7= :> ;? <@ >A"@B"AC"BD CF"DH EI FL GM HN IO JP KQ LR MS #S "R !Q P O N T_"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"T`"`a _a"`b Ub"bc Vc"cd Wd"de Xe"ef Yf"fg Zg"gh [h"hi \i"ij ]j"jk ^k"ak `l"lm am"ln bn"no co"op dp"pq eq"qr fr"rs gs"st ht"tu iu"uv jv"vw kw"mw lx"xy"my"xz"nz"z{"o{"{|"p|"|}"q}"}~"r~"~"s""t""u""v""w"y"x "y z "{ "| "} "~ " " " " " """"""""""""""""""""""""""EJ"BE"=@"8="9>"FK" """ "" """"""""""""""""""" # # # # # # # # # # # # """""""""""""""""""""" "" " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""#"##"" " " " " " " " " " " " """"""""""""?A A"CG C"J""E""B""@""=""8""9"">""F""K""A""C"" DATA,#! (%! DATA(%! 4  !!""## $$%%&&''(()) *$$*+%%+,&&,-''-.((./))/0**01++12,,23--34..45//56006711782289339:44:;55;<66<=7:>?;;?@<<@=>A??AB@AC DBBDECFGCG HDDHIEFLMGGM NHHNOIIOPJJPQKKQRLLRSMMS S##SR""RQ!!QP  POON N_T`a`TUbVcbUWdcVXedWYfeXZgfY[hgZ\ih[]ji\^kj]_ak^a`lmbnl`conbdpoceqpdfrqegsrfhtsgiuthjvuikwvjamwkmlxynzxlo{znp|{oq}|pr~}qs~rtsutvuwvmywyxxzz{{||}}~~y7=89>:FKLEIJ       KFJKEJBE@B=@8=98>9A>CAFCME8! 2H! MECylinder.022(0:! ! ;! h! `:! g!  ! .xN >~<>T>\d>DATA0:! x DATA,`:! ;! DATA+;! 8.l>4;Zǎ8>4;^ !ǎw>4;^l >4;Je>4;^;e>4; !^1 >4;ZǾx>4;{Ǿ8>8;{ !1>8;ZZ=U>8; !{KU>4;ޢ{l>(G<>ǎ8>(G<ǎu>G<l>G<He>G<9e>(G<1 >(G<>Ǿz>8G8G8G<>>?U>8G<UNU>8G(G<ǎ8>Ev^ !l>EvZǎw>Dv^l >DvJe>Dv^;e>Ev !^1 >EvZǾx>Dv{Ǿ8>Hv{ !1>HvZZ=U>Hv !{KU>Dvޢ{ǎ8>cHl>cHC@ǎw>bHN菦l >bHCCJe>bHN萧;e>cH1 >cH@CǾx>bHpXN菦Ǿ8>fHpX1>fH@@=U>fHpXKU>bHNpXǎ8>\(;a+Xl>\(;eA+Xǎw>\(;a+Xl >\(;ee+XJe>\(;a+X;e>\(;a+X1 >\(;Ae+XǾx>\(;Y+XǾ8>`(;Y+X1>`(;AA+X=U>`(;Y+XKU>\(;Y+Xgǜ>]̾a+Xo} >]̾eA+Xg(>]̾a+Xo}R>]̾ee+X9>]̾a+Xd>]̾a+X!ľR>]̾Ae+X6;)>]̾Y+X6;ǜ>b̾Y+X!ľ >b̾AA+Xd>b̾Y+X9>]̾Y+Xgǜ>Lo} >LC@g(>JN菦o}P>JCC9>JN萧d>L!ľR>L@C6;)>JpXN菦6;ǜ>OpX!ľ >O@@d>OpX9>JNpXgǜ>1̾^ !o} >1̾Zg(>1̾^o}R>1̾9>1̾^d>1̾ !^!ľR>1̾Z6;)>1̾{6;ǜ>1̾{ !!ľ >1̾ZZd>1̾ !{9>1̾ޢ{gǜ>5^ !o} >5Zg(>5^o}P>59>5^d>5 !^!ľR>5Z6;)>5{6;ǜ>5{ !!ľ >5ZZd>5 !{9>5ޢ{ǎ8>!;^ !l>!;Zǎu>a;^l>A;He>a;^9e>!; !^1 >!;ZǾz>A;{Ǿ8>A;{ !1>A;ZZ?U>A; !{NU>A;ޢ{l>JоZKU>Jоޢ{=U>Nо !{1>NоZZǾ8>Nо{ !Ǿx>Jо{1 >JоZ;e>Jо !^Je>Jо^l >Jоǎw>Jо^ǎ8>Jо^ !l>iо>\ǎ8>iо\ǎw>iо\l >iо\Je>iо\;e>iо\1 >iо>\Ǿx>iоU\Ǿ8>mоU\1>mо>>\=U>mоU\KU>iоU\CO~ݥ>iо==Cʼ>>c>(=CʼUc>pCʼU頣=0νCʼ>[_=( Cʼm*'( Cʼm,ֽ0νCʼ[[ܯCʼm頣ܯ=Cʼm,ֽ=Cʼ[>R' >CʼUC= >CʼU==<>>`\c>H=@[`\=( <m`\'0 <m`\~,ֽHν<[[`\ܯ`\~' ><U`\= ><U`\L֟>A<U \pڶ>AA<> \A< \A< \&ʾWE>A< \fڶu>A< \D֟u>A< \狾]E>A<> \xe4>AAA<>> \H֟>`Unڶ>`U*ʾ&>`>``*ʾZE>`jڶu>`H֟u>`狾ZE>`>xe4>`Uxe>8>`U狾&>`>>==< !{~' ><ޢ{,ֽ=<Zܯ=<^ !ܯ<^~,ֽHν<'0 <^=( < !^= ν@<{c>H=<{ !c>H=={ !===ZZc>@={= ν=Z=( = !^'0 =^~,ֽHν=ܯ=^ܯ==^ !,ֽ==Z~' >=ޢ{= >= !{= >$==vc%==$=VVc%~' >$=R=vc%,ֽ=$=qVc%ܯ=$=Éc%ܯ$=ÉRc%~,ֽHν$=qqc%'0 $=RÉd%=( $=Éd%= ν$=Vqc%c>@$==vRc%c>H=$==vc%=x=t =**Jq߇>p1=t =9jJq߇>ht =9Jq=̽t =*Jqj= t =jwJq(P& t =wJqԽ̽t =JqVAЉt =wƖJqVA1=t =wjJq ԽX=t =*JqP&9 >t =9Jq?j=9 >t =j9Jqh+t =C= >ټ !{R' >ټޢ{,ֽ=ټZܯ=ټ^ !ܯټ^,ֽ0νټ*'( ټ^_=( ټ !^=0νټZc>pټ{c>(=ټ{ !==ټZZ==缁ZZc>(=缢{ !c>p缢{=0ν缁Z_=(  !^*'( ^,ֽ0νܯ^ܯ=^ !,ֽ=ZR' >ޢ{C= > !{C= >9T0qR' >90q,ֽ=9$Rܯ=9ЎTܯ9Ў,ֽ0ν9$$*'( 9Ў_=( 9TЎ=0ν9R$c>p90qc>(=90qT==9RRR=M=, Ĉ >=,, Ĉ >,,ĈR=˽, Ĉ= , Ĉ% , Ĉ:]ӽ˽,Ĉ, Ĉx=, ĈD]ӽM=, Ĉ%ȼ >,,Ĉ=ȼ >, ,Ĉh+,狾&><{ !xe4><{狾]E>< !^fڶu><^&ʾWE><<^<^ !.ʾ&><Zpڶ><ޢ{L֟>< !{L֟>< !{pڶ><ޢ{.ʾ&><Z<^ !<^&ʾWE><fڶu><^D֟u>< !^狾]E><{xe@8><{ !狾&>4b=ZZxe@8>4b={ !xe4>4b={狾]E>4b=ZD֟u>4b= !^fڶu>4b=^&ʾWE>4b=4b=^4b=^ !.ʾ&>4b=Zpڶ>4b=ޢ{L֟>4b= !{L֟>=Lt)pڶ>=t).ʾ&>=~U)=2L)=2)&ʾWE>=~~)fڶu>=2)D֟u>=L2)狾]E>=U~)xe4>=t)xe@8>=tL)狾&>=UU) \h>@=='='Ws >@=5\Ws^>@=5Ws\>@=='Wsv>@=\fWsv>@=fWsTʾ>@=Wsվ^>@=fʤWsվ >@=f\WsTʾc>@=='Wsį >@=5Ws >@=\5WsXX,>@=狾&>YJǼZZxe>8>YJǼ{ !xe4>YJǼ{狾ZE>YJǼZH֟u>YJǼ !^jڶu>YJǼ^*ʾZE>YJǼYJǼ^YJǼ^ !*ʾ&>YJǼZnڶ>YJǼޢ{H֟>YJǼ !{H֟>9Ѽ !{nڶ>9Ѽޢ{*ʾ&>9ѼZ9Ѽ^ !9Ѽ^*ʾZE>9Ѽjڶu>9Ѽ^H֟u>9Ѽ !^狾ZE>9ѼZxe4>9Ѽ{xe>8>9Ѽ{ !狾&>9ѼZZ狾&>M T T|xe>8>Mr|xe4>Mr>|狾ZE>M T|H֟u>M4|jڶu>M>4|*ʾZE>M|M4>|M4|*ʾ&>M T|nڶ>M>r|H֟>Mr|XX,> 3>  0Q֜3> 0Q ʾ~> iܗ#Q`eվ> b Q`eվq> bQ ʾ> iiQԜHRw> bQHRw>  bQ̏> #iQSKq> 0QSK> 0 Q̏~> ##Q֖=X=<__=(><6=H=9ʼ__v= >9ʼ5v$2 ><2 >9ʼv 8=<_ @=9ʼ_v=#<m>#9ʼvm>=<5m>ț=9ʼ5v>!=9μ=(=9μgg>!=b<Q~=(=b('9μW>'b<WQ~=(9μg=b9μW쯁>5ĩ>b9μ쯁=̩>b<Q~=(=bb< !{=(=9μZZ=ĩ>9μ !{>5ĩ>b<[$4k;5ĩ>9μ1$LkW7'=b'b<{>('9μ{>!=b<{ !>!=9μ{ !Lt>[|Tܹ>[``Lt><<|T߹><<``Lt>[|Lt><<|Tz>[` T}><<` )i>[)i><<i>[i><< \Ͼz>[ \Ͼv><< ܾ>[ܾ><<ܾ>[ܾ><< \Ͼ۹>[ `\Ͼٹ><< `>[|><<|)>[|)><<| dž~G>>>]¼C㌃dž{G>]¼ꌃں>><t|ֺ>]¼㌃ϾxG>><%t|ϾzG>]¼%ꌃ$Lݾ>><Ct|$Lݾ>]¼C$LݾS>><t|$LݾS>]¼Ͼ$>><%%t|Ͼ$>]¼%%κg>><t|Һ„g>]¼„g>>]¼Cdž$>><%t|dž$>]¼%rS>><t|rS>]¼r>><Ct|r>]¼Cdž{G>]¼ZZr>]¼{ ! dž~G>>><{ !rS>]¼d1rS>><dž$>]¼gdž$>>]¼Ӛ„g>><3е=Һ„g>]¼^κg>><^Ͼ$>]¼Ͼ$>><$LݾS>]¼^$LݾS>><^$Lݾ>]¼^ !$Lݾ>><^ !ϾzG>]¼ZϾxG>><Zֺ>]¼ޢ{ں>><ޢ{>]¼ !{>>< !{^/ >GR<@Ɯd>GR¼fƜd>¼Uo/>GR<7GZUo/>¼6HX>ク='Hvμ6#HDATA,g! h! DATA5h! 5x  "   "  "  "  "  "  "  "  " " " "       ! !" "# #$ $ %"&"'"(")"*"+" ,"!-""."#/"$0"%&"%'"'("()")*"*+"+,",-"-."./"/0"&0"1"2"3"4"5"6"7"8"9" :" ;" <"12"13"34"45"56"67"78"89"9:":;";<"2<"1= 2> 3? 4@ 5A 6B 7C 8D 9E :F ;G <H =>"=?"?@"@A"AB"BC"CD"DE"EF"FG"GH">H"%I &J 'K (L )M *N +O ,P -Q .R /S 0T IJ"IK"KL"LM"MN"NO"OP"PQ"QR"RS"ST"JT"=U">V"?W"@X"AY"BZ"C["D\"E]"F^"G_"H`"UV UW WX XY YZ Z[ [\ \] ]^ ^_ _` V` Ua"Ia"Vb"Jb"Wc"Kc"Ld"Xd"Me"Ye"Nf"Zf"Og"[g"Ph"\h"Qi"]i"Rj"^j"Sk"_k"`l"Tl"ab ac cd de ef fg gh hi ij jk kl bl m"m" n"n"o"o"p"p"q"q"r"r"s"s"t" t"u"!u"v""v"w"#w"x"$x"mn mo op pq qr rs st tu uv vw wx nx y"yz z"z{ {"{| |"|} }"}~ ~"~ " " " " " "y "#y""#"#"#"#"#~"#}"#|"#{"#z"##!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""" "" " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " " " "" " " " " " " " "  "    " "  "  "  "  " " """"""""""""""""""""""""""""""""""  " " !" !" ""!""""# # # # # # # # # # !# "# $"$% %"%& &"&' '"'( ("() )")* *"*+ +"+, ,",- -"-. ."./ /"$/ /0"0; $;".1"01 -2"12 ,3"23 +4"34 *5"45 )6"56 (7"67 '8"78 &9"89 %:"9: :; ;<"<= :="=> 9>">? 8?"?@ 7@"@A 6A"AB 5B"BC 4C"CD 3D"DE 2E"EF 1F"FG 0G"<G GH"HS"<S"FI"HI"EJ"IJ"DK"JK"CL"KL"BM"LM"AN"MN"@O"NO"?P"OP">Q"PQ"=R"QR"RS"ST"TU"RU"UV"QV"VW"PW"WX"OX"XY"NY"YZ"MZ"Z["L["[\"K\"\]"J]"]^"I^"^_"H_"T_"T` _` ^` ]` \` [` Z` Y` X` W` V` U` b"ab a"c"bc d"cd e"de f"ef g"fg h"gh i"hi j"ij k"jk l"kl al ax"mx lm"mn kn"no jo"op ip"pq hq"qr gr"rs fs"st et"tu du"uv cv"vw bw"wx wz"yz"xy"v{"z{"u|"{|"t}"|}"s~"}~"r"~"q""p""o""n""m""y"y""""""""""""""~""}""|""{""z""             "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""" " "" " "  "  " "  " " """ """"""""""""""""""""""""""""""""" " "!"!"  " !"  "  """""""" !"""" #"$ %"&"'""# $% "& $' &' #% "( ( #)")"$* * %+"+"&,","'-"-"() *+ (, *- ,- )+ DATA,! ! DATA.! 4N   &%%''(())**++ ,, !--!".."#//#$00$&21133445566778899:  :;  ;< 2 <2>=11=?33?@44@A55AB66BC77CD88DE99EF::FG;;GH<<H>2J&%II%'KK'(LL()MM)*NN*+OO+,PP,-QQ-.RR./SS/0TT0&J>VU==UW??WX@@XYAAYZBBZ[CC[\DD\]EE]^FF^_GG_`HH`V>VbaUbJIaUacWaIKcWcdXcKLdXdeYdLMeYefZeMNfZfg[fNOg[gh\gOPh\hi]hPQi]ij^iQRj^jk_jRSk_kl`kSTl`lbVlTJbnmn mmom oopoppqpqqrqrrsrsst st tu!tu!uv"uv"vw#vw#wx$wx$xnx n yz z{ {| |}}~~yy~~}}||{{zzy                  !   "! "######### # !#!"#"$%%&&''(())**++,,--..//$$/0;/.10.-21-,32,+43+*54*)65)(76('87'&98&%:9%$;::;<=9:=>89>?78?@67@A56AB45BC34CD23DE12EF01FG;0G<<GHSGFIHFEJIEDKJDCLKCBMLBANMA@ON@?PO?>QP>=RQ=<SRRSTUQRUVPQVWOPWXNOXYMNYZLMZ[KL[\JK\]IJ]^HI^_SH_T`T_`_^`^]`]\`\[`[Z`ZY`YX`XW`WV`VU`UTbacbdcedfegfhgihjikjlkallaxmklmnjknoijophipqghqrfgrsefstdetucduvbcvwabwxxwzywv{zvu|{ut}|ts~}sr~rqqppoonnmmxyy~}~|}{|z{yz           !   !    !  !    "#%$&"$''&#%()("#)+*+%$*,(,&"(*-*$'--,-'&,)+)#%+MEH! 2(" 8! MECylinder.023Hg ! hP" !  " !  "  O" T$\<|>My=>DATA! x DATA,! ! DATA|8! 8=2=>^=bh<>^^=q>^ !0='+>Zg@<k>ޢ{@Ÿk> !{>O+>ZZ~lq>{ !0~h<>{>2=>ZŸr=> !^f@< r=>^,ZZ7 !{ƼP=b>ޢ{tg=b>Zl^ !b>^ti`b> Ƽb>^8 !^\Zޓ=>b>{ޓ=bm{ !ޓ=bm<>UH\,>>H\ޓ=>>U H\\>IH\8<>UH\ Ƽ> UH\ti`>IIH\>U H\l<>UH\tg=>I>H\ƼP=> UH\7UH\=2=6>[f@< r=6>[Ÿr=6>[>2=6> ?[0~h<6>V[~lq6>V[>O+6> ? ?[@Ÿk6>V[g@<k6>V[0='+6> ?[^=q6>[^=bh<6>[8G+W=ZZ~LqW={ !0=/+dW=Z^=qW=^ !^=Rh2=W=Z ~h7<ʹ=v2=ʹ=A[v2=1=wO^=1=fl-=ʹ=fLHF;ʹ=V$9ʹ=̫ʹ=K΃Zɾ!{ʹ=bھ^ʹ=Oʹ=fz<ʹ=|1Zfz<1=0F̫1=fk_g'<ʹ=`/ʹ=`:ʹ=jʾʹ=F5Aʹ=NӏZ۾Iʹ=:i\Nkʹ=ꢜ<1=d>ꢜ<ʹ= G,ZF5A1=oY# <ʹ=p%#ʹ=.ǎZ89ʹ=.ǎZvʾ(gʹ=.ǎZRDʹ=l8a۾w ʹ=.ǎZFQ~ʹ=.ǎZ2!<ʹ=02!<1=RD1=6>f;ʹ=.ǎZݾ p`j)(=ʹ=f)6Įʹ=j)*uʹ=Zn)VP=1=n)VP=ʹ=ZZj)*u1=n)T=ʹ=ZK(=ʹ=VK6Įʹ=ZK*uʹ=Z^KVP=1=^KVP=ʹ=ZZZK*u1=^KT=ʹ=fV<ʹ=·¾G'ʹ= ʹ=FƁZƦ8=1=5nƦ8=ʹ=vNZ 1=c7 =ʹ=׽(=ʹ=׽6Įʹ=׽*uʹ=Z׽VP=1=׽VP=ʹ=ZZ׽*u1=׽T=ʹ=VK6Įʹ=׽6Įʹ=(ҽ6Įʹ=ZZK(=ʹ=׽(=ʹ=0ҽ(=ʹ= þo(ʹ=·¾G'ʹ=.k6Įʹ=(zb<ʹ=xffV<ʹ=@9(=ʹ=1!cf)6Įʹ=j)(=ʹ=NMJk<ʹ=Saa>7<ʹ=Saa5Ӿ0jʹ=Saa0ҽDث=ʹ=@ҽї|=ʹ=0ҽz<ʹ=0ҽDث==0ҽ(==0ҽz<=(ҽ6Į=Z@ҽї|==NMJk<=Saab<=xf5Ӿ0j=Saa þo(=>7<=Saa(==1!cj)(==f)6Į=6Į=(zZK(==VK6Į=fV<=@9·¾G'=.k׽(==׽6Į=׽6Įm=VK6Įm=(ҽ6Įm=ZZK(=m=׽(=m=0ҽ(=m=·¾G'm=.k þo(m=6Įm=(zb77,=1=I2]>,=ʹ=3Z~1=Jjᄇ<ʹ=f@<k{ޢ{`Ÿk{ !{>G+{ZZ~<q{{ ! =7+LZ^=q{^ !^=Jh<{^ =2={@f@< r={^Ÿr={ !^>2={Z ~h<{{ͨ=îAY{>ͨ=J5AAoZ":!,=AIAJj ~h< {>2= ZŸr= !^@f@< r= ^ =2= ^=Bh< ^^=q ^ ! =7+6Z~<q { !>G+ ZZ`Ÿk !{f@<k ޢ{ᆰ,=/32Y>,=<⸽IfFl;/Ӿ/~/(KBþ./jĮ/1ѽ*u/ϽDث=/Ͻ(=/ȍϽVP=/Z׽6ˏ쀏ľS쀏VK6ˏ쀏f)6ˏ쀏6ˏ쀏׽r<쀏׽͗|=쀏׽Dث=쀏Ҿl]쀏Jླ[%<쀏7jz<쀏ZKr<쀏^K͗|=쀏ZKDث=쀏j)r<쀏r<쀏͗|=쀏n)͗|=쀏j)Dث=쀏Dث=쀏׽>Į쀏׽(=쀏·¾ G'쀏f龺V<쀏VK>Į쀏ZK(=쀏>Į쀏f)>Į쀏(=쀏j)(=쀏>7<쀏 þs(쀏5Ӿ,0j쀏NMBk<쀏Z<@ҽ͗|=쀏(ҽ>Į쀏0ҽr<쀏0ҽ(=쀏0ҽDث=쀏0ҽr<쀏@ҽ͗|=쀏0ҽDث=쀏5Ӿ,0j쀏SaaNMBk<쀏Saa>7<쀏Saaj)(=쀏f)>Į쀏(=쀏1!cf龺V<쀏@9ZĮ쀏(z þs(쀏·¾ G'쀏.k0ҽ(=쀏׽(=쀏ZK(=쀏(ҽ>Į쀏ZVK>Į쀏׽>Į쀏׽>Įq׽(=q·¾ G'q.kf龺VĮqZK(=q>Įq(zf)>Įqj)(=q(=q1!c>7ĮqZ0ҽr7Į/(=/1!cf龺VĮ/(z·¾ G'/.k þs(/0ҽ(=/׽(=/ZK(=/(ҽ>Į/Z׽>Į/VK>Į/׽T=/׽*u,⸽׽VP=/Z׽VP=<⸽׽*u/׽>Į/׽(=/7 =/ <⸽cƦ8=/vNƦ8=<⸽5n /F·¾ G'/f龺VĮ/ZK(=/n)T=/j)*u<⸽n)VP=/Zn)VP=<⸽j)*u/f)>Į/j)(=/>F;/.ǎRD<⸽6*!<<⸽*!:ilNk/۾I/F5A/Nqjʾ/`:///gs'7Į/*u/$w(=/ঢ়Į/0ҽ*u/0ҽDث=/0ҽ(=/8ҽVP=/Z7ݼVP=/xW<=/1[< ঢ়<(=/Z`7ݼ(=/ޓ=Jm<ս{ !ޓ=Vս{LĮ/rĮ/1ۀpb*u/ۀռ!/1ۀj2=,ZŸr=, !^@f@<r=,^=2=,^=Jh<,^^=q,^ !0=/+ Z~\q,{ !>G+,ZZ@Ÿk, !{g@<k,ޢ{ޓ=Jm<_:ޓ=V_N:LO+n??'~|qnV'0~gy2=n?'Ÿr=n'f@< r=n'=2=n'7l<RΒR 黣ti`GG Ƽ Q8<R\Gޓ=NU 黣,>ޓ=Zm<Uޓ=Zm< { !ޓ=N {\y2=fZ0~gO+fZZ@Ÿkf !{g@<kfޢ{0='+fZ^=qf^ !^=Zh#?#@#A#B#C# D# E# F#G#01#02#23#34#45#56#67#78#89#9:#:;#1;#<=!>?!=>!<@!@A!AB!BC!CD!DE!EF!FG!?G!;H#HI#1I#:J#HJ#9K#JK#8L#KL#7M#LM#6N#MN#5O#NO#4P#OP#3Q#PQ#2R#QR#0S#RS#IS#IT!TU#SU#UV#RV#VW!QW!WX!PX!XY!OY!YZ!NZ!Z[#M[![\#L\!\]#K]!]^#J^!^_#H_!T_# `#0`# a#1a#b#2b#3c#c#d#4d#5e#e#6f#f#g#7g#h#8h#9i#i#j#:j#;k#k#`a!`b!bc!cd!de!ef!fg!gh!hi!ij!jk!ak!Vl!Um#lm!no#qr#st!tu#uv#rv#Uw#Tx#Zy#[z#\{#]|#^}#_~#m!n#o#p!s!wx!yz!z{!{|!|}!}~!x~!w!!m#n#o!l!q!p!!!!!!##!!#!#####!!!!!!!#!!!!!!!!#!!!!!!###!!!!!#!!##!#!##!###!!##!!!!!!!!!!###!#!!!!!!!###!#!!!!!!!######!!##!!!!!!!!!q##t##s##!!p##!!!!!!!!!###t######q########################r##v##u####!!!!#!!!!!##!!!!!#!!!!#!!!!!!!!!!!!!!!!!#!##!#!##!######!###! ! ## # !  # ! !  # # # ! #!#!# ### ####### ##### ## #### ######## # # #!#!#!#"#"#"#######$!$%!%!&'!'(!()!&)!$'!%&!%*!*!&+!),!+,!*+! -!$-!-!'.!./!(/!.!/!-.!"0!0!*0!1!12!2!+1!,2!01!(3!34!)4!3!4!45!,5!5!/6!36!!6!6!#7!7!57!27!o8#p8#l9!q9!V:!r:!Z;#s;#Y<!t<!X=!u=!W>!v>!?!?!y@!@!A!A!9:!;<!<=!=>!:>!8?!;@!8A!9A!B!B!C!C!D!D!E#E#F!F!G!G!H!H!I#I#J!J!K!K!BC!DE!DF!FG!CG!HI!EJ!BK!IK!<L#=M#>N#?O#@P#AQ#BR#CS#DT#EU#FV#GW#wX#xY#yZ#z[#{\#|]#}^#~_#`!a#b#c!d!e!f#g#h#i#j#k!l#m#n#o#p!q!r!s!t!u!v!w!?x!@y!Hz!J{!LM#NO#MN#LP#PQ#QR#RS#ST#TU#UV#VW#OW#XY!Z[![\!\]!]^!^_!Y_!X`!ab!`e!ae!jl!km!ln!mo!fp!gq!pr!qs!ft!ht!gu!iu!cv!rv!dw!sw!cx!bx!dy!Zy!hz!jz!i{!k{!o!n!|#|}#}~#~#########|#}#~##########!!!!!!!!!0!:!1!;!3#=#2!<!4!>!5!?!7#A#6!@!8!B!9!C!!!!!!!!!!L!M!O!Y!P!Q!\!{!]!z!^!y!_#x#`!|!a!f!b#c#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########################################!#!#!###!!#!###!!###!######!##!#!##!#!!!!!!!!!!!!!!!!!#!!!!#!!!!!##!!!!!#!!!!###]##\##`####?#B##>#######J## ##C##H#@## #a######^####!!!!!!L!!O!#b#!P!#_##^##a# ! ! !  !  !:!D!;!E! =# G# <! F! A# I# @# H# C# J#!!!!!!!#!###!!!!!D!E!G#F!I#H#J##$#&!'!"#(##)! %# !# *!!##!+!",#"###-!%/!$%#$.!&(!&.!&0!'1!',#(3#()#)2!*/!*+!*4!+-!+5!,7#,-!-6!/8!./!.9!03!09!17!23#48!45!56!67!89!:=!:C!;A#<=#>B#>?#?@#@A!BC#DG!DJ!EI#FG#HI!KN!MN!KS!KR!Lb!La!Mf!Mc!Nd#Ne#QR!S[!TZ!TU!UV!VW!WX!XY!Z[!O_!Pb!Qc#Rd#Se!Ts#Ut#Vu#Wv#Xw#Yx#Z~#[}#\`#\]#]^#^_!`a#cd#ef!e}#f|!gq!gh!hi!ij!jk!kl!lm!mn!no!op!pr!qr!g#g#h#h#i#i#j#j#k#k#l#l#m#m#n#n#o#o#p#p#q#q#r#r#s~#s!st#t!tu#u!uv#v!vw#w!wx#x!xy!y!yz!z!z{!{!{|!|#|}#}#}~#~!########################!!!!!!!!!!!!########################!!!!!!!!!!!!################################################!!!!!!!!!!!!!!!!!!!!!!!!fF#p!r!v!cP!x!bQ#aR#eK!`S!X[#YZ#_T#^U#]V#\W#[X#ZY#y!dO!w!s!q!gE#u!i;#{!k1!m'#o#!!!! !!!"!#!%!$!n#l)#j2#z!h<#t !DATA,O" hP" DATA8hP" 4   !!" "# # $% %& &' '(())**++,,--..//$$//..--,,++**))( ('! '&"!&%#"%$#=<?>>=<@@AABCBC DD EE FF GG?1;HI;:JH:9KJ98LK87ML76NM65ON54PO43QP32RQ20SR01ISSITURSUVQRVWPQWXOPXYNOYZMNZ[LM[\KL\]JK]^HJ^_IH_T0`a1` a2b`0b `3cb2cb4dc3dc5ed4ed6fe5fe7gf6gf8hg7hg9ih8ih:ji9ji;kj:kj1ak;a kVUmlwUTxz[Zy{\[z|]\{}^]|~_^}xT_~Uwmonmlnomntspsqptqvruvturq                      !!""##$%&'()%$'&%*+&),*%&+ -$ -'./(./$-.'-."0"*0121+,2010*+1(34)34)45,45/63(6!3!67#,5725#7276/l9:V9qr:Y<;Z<ts;X=<Y=ut<W>=X>vu=V:>W:rv>p8?8o?@;s@yZ;A8pAo8q9A9lABCBCDEDEFDFDGFGFCGCGHIHIEJEJKBKBIKIKM=<LO?>NN>=ML<@PP@AQQABRRBCSSCDTTDEUUEFVVFGWWG?OXwxY[zyZ\{z[]|{\^}|]_~}^Yx~_wX`bae`aejlkmlnmonofpgqprqstfhtugiuvcrvwdsw?xcbx?y@dZy@yzHhjHzJ{ik{J1{k;i{jz2zh<ZyYydOQxbPcxwsOdwrvvcP;uiEguht <tfF sqprEqgfpFonmo')nlkm'12)ljaeKRe`SKbaRQ[S`XY_TZ_^UT^]VU]\WV\[XW[ZYXXYZ[|}|~}~03=:90:C17A;32<=48B>54>?65?@76@A89CBMfaLcMLbxYO_QcbP\`|{]\{z^]zy_^yx`af|`a^]]\\`CB?@>?B>JHJ  C H@ a^bLLa_OPb^_ :=GD  C:DJ  ;AIE   =<FG    A@HI  DGJDEIGFIH$" %! #!"#%$&(.$&'",()* %/+! *-#!+,"#-/%$.0&(39.&01',73()24*/85+*46-+57,-68/.9KNdRSeNKNMcdefMNQRdc}eS[ZTs~TUtsUVutVWvuWXwvXYxw[Z~}|fe}qggqghhghiihijjijkkjkllklmmlmnnmnoonoppoprrprqqr~ssttuuvvwwxxyyzz{{||}}~ME(" 2# H! MECylinder.024Hh" 8" " " " "  " .xN >=>T>[e>DATAh" x DATA," " DATA+" 8.t>>X:ξZZώR>X:ξ{ !ώ>X:ξ{t(ː>X:ξZc/&>X:ξ !^T/&>X:ξ^9(ː>X:ξǾ>X:ξ^ǾR>\:ξ^ !9>>\:ξZV65>\:ξޢ{d95>X:ξ !{t@>B<>>\ώR>BPC@C<>\a2&>PC<\R/&>B<\9'ː>B<\Ǿ>B<\ǾR>B<\9=>B<>\X65>BB<U\\W>B<ώR>i޲{ !t>>i޲ZZώ>h޲{t)ː>h޲Zc/&>h޲ !^T/&>i޲^9(ː>i޲Ǿ>h޲^ǾR>l޲^ !9>>l޲ZV65>l޲ޢ{d95>h޲ !{ώR>pXqYt>>@@qYώ>pXNqYt)ː>@CqYc/&>qYT/&>N萧qY9(ː>CCqYǾ>NqYǾR>qY9>>C@qYV65>NpXqYd95>pXqYώR>;Yէt>>;AAէώ>;Yէt(ː>;Aeէc/&>;aէT/&>;aէ9(ː>;eeէǾ>;aէǾR>;aէ9>>;eAէV65>;Yէd95>;Yէo\î>;Yէ>;AAէo >;Yէی>;AeէA6ƃ>;aէm6ƃ>;aէ/)ľی>;eeէ>; >;aէ>;[î>;aէ0)ľ>;eAէm.>;YէA2>;Yէo\î>ppXqY>p@@qYo >npXNqYی>n@CqYA6ƃ>nqYm6ƃ>pN萧qY/)ľی>pCCqY>; >nNqY>;[î>sqY0)ľ>sC@qYm.>sNpXqYA2>npXqYo\î>̾{ !>̾ZZo >̾{ی>̾ZA6ƃ>̾ !^m6ƃ>̾^/)ľی>̾>; >̾^>;[î>̾^ !0)ľ>̾Zm.>̾ޢ{A2>̾ !{o\î>{ !>ZZo >ޝ{ی>ޝZA6ƃ>ޝ !^m6ƃ>^/)ľی>>; >ޝ^>;[î>㝴^ !0)ľ>㝴Zm.>㝴ޢ{A2>ޝ !{ώR>1;{ !t@>1;ZZώ>q;{t+ː>Q;Za2&>q; !^R/&>1;^9'ː>1;Ǿ>Q;^ǾR>Q;^ !9=>Q;ZX65>Q;ޢ{g95>Q; !{t>>nоZZd95>nо !{V65>rоޢ{9>>rоZǾR>rо^ !Ǿ>nо^9(ː>nоT/&>nо^c/&>nо !^t(ː>nоZώ>nо{ώR>nо{ !t>>=Ѿ>>ώR>=ѾUώ>=ѾUt(ː>=Ѿ>c/&>=ѾT/&>=Ѿ9(ː>=ѾǾ>=ѾǾR>=Ѿ9>>=Ѿ>V65>=ѾUd95>=ѾU\W>=Ѿ==Cʼ>>c>(=CʼUc>pCʼU頣=0νCʼ>[_=( Cʼm*'( Cʼm,ֽ0νCʼ[[ܯCʼm頣ܯ=Cʼm,ֽ=Cʼ[>R' >CʼUC= >CʼU==<>>`\c>H=@[`\=( <m`\'0 <m`\~,ֽHν<[[`\ܯ`\~' ><U`\= ><U`\L֟>A<U \pڶ>AA<> \A< \A< \&ʾWE>A< \fڶu>A< \D֟u>A< \狾]E>A<> \xe4>AAA<>> \H֟>`Unڶ>`U*ʾ&>`>``*ʾZE>`jڶu>`H֟u>`狾ZE>`>xe4>`Uxe>8>`U狾&>`>>==< !{~' ><ޢ{,ֽ=<Zܯ=<^ !ܯ<^~,ֽHν<'0 <^=( < !^= ν@<{c>H=<{ !c>H=={ !===ZZc>@={= ν=Z=( = !^'0 =^~,ֽHν=ܯ=^ܯ==^ !,ֽ==Z~' >=ޢ{= >= !{= >$==vc%==$=VVc%~' >$=R=vc%,ֽ=$=qVc%ܯ=$=Éc%ܯ$=ÉRc%~,ֽHν$=qqc%'0 $=RÉd%=( $=Éd%= ν$=Vqc%c>@$==vRc%c>H=$==vc%=x=t =**Jq߇>p1=t =9jJq߇>ht =9Jq=̽t =*Jqj= t =jwJq(P& t =wJqԽ̽t =JqVAЉt =wƖJqVA1=t =wjJq ԽX=t =*JqP&9 >t =9Jq?j=9 >t =j9Jqh+t =C= >ټ !{R' >ټޢ{,ֽ=ټZܯ=ټ^ !ܯټ^,ֽ0νټ*'( ټ^_=( ټ !^=0νټZc>pټ{c>(=ټ{ !==ټZZ==缁ZZc>(=缢{ !c>p缢{=0ν缁Z_=(  !^*'( ^,ֽ0νܯ^ܯ=^ !,ֽ=ZR' >ޢ{C= > !{C= >9T0qR' >90q,ֽ=9$Rܯ=9ЎTܯ9Ў,ֽ0ν9$$*'( 9Ў_=( 9TЎ=0ν9R$c>p90qc>(=90qT==9RRR=M=, Ĉ >=,, Ĉ >,,ĈR=˽, Ĉ= , Ĉ% , Ĉ:]ӽ˽,Ĉ, Ĉx=, ĈD]ӽM=, Ĉ%ȼ >,,Ĉ=ȼ >, ,Ĉh+,狾&><{ !xe4><{狾]E>< !^fڶu><^&ʾWE><<^<^ !.ʾ&><Zpڶ><ޢ{L֟>< !{L֟>< !{pڶ><ޢ{.ʾ&><Z<^ !<^&ʾWE><fڶu><^D֟u>< !^狾]E><{xe@8><{ !狾&>4b=ZZxe@8>4b={ !xe4>4b={狾]E>4b=ZD֟u>4b= !^fڶu>4b=^&ʾWE>4b=4b=^4b=^ !.ʾ&>4b=Zpڶ>4b=ޢ{L֟>4b= !{L֟>=Lt)pڶ>=t).ʾ&>=~U)=2L)=2)&ʾWE>=~~)fڶu>=2)D֟u>=L2)狾]E>=U~)xe4>=t)xe@8>=tL)狾&>=UU) \h>@=='='Ws >@=5\Ws^>@=5Ws\>@=='Wsv>@=\fWsv>@=fWsTʾ>@=Wsվ^>@=fʤWsվ >@=f\WsTʾc>@=='Wsį >@=5Ws >@=\5WsXX,>@=狾&>YJǼZZxe>8>YJǼ{ !xe4>YJǼ{狾ZE>YJǼZH֟u>YJǼ !^jڶu>YJǼ^*ʾZE>YJǼYJǼ^YJǼ^ !*ʾ&>YJǼZnڶ>YJǼޢ{H֟>YJǼ !{H֟>9Ѽ !{nڶ>9Ѽޢ{*ʾ&>9ѼZ9Ѽ^ !9Ѽ^*ʾZE>9Ѽjڶu>9Ѽ^H֟u>9Ѽ !^狾ZE>9ѼZxe4>9Ѽ{xe>8>9Ѽ{ !狾&>9ѼZZ狾&>M T T|xe>8>Mr|xe4>Mr>|狾ZE>M T|H֟u>M4|jڶu>M>4|*ʾZE>M|M4>|M4|*ʾ&>M T|nڶ>M>r|H֟>Mr|XX,> 3>  0Q֜3> 0Q ʾ~> iܗ#Q`eվ> b Q`eվq> bQ ʾ> iiQԜHRw> bQHRw>  bQ̏> #iQSKq> 0QSK> 0 Q̏~> ##Q֖=X=<__=(><6=H=9ʼ__v= >9ʼ5v$2 ><2 >9ʼv 8=<_ @=9ʼ_v=#<m>#9ʼvm>=<5m>ț=9ʼ5v>!=9μ=(=9μgg>!=b<Q~=(=b('9μW>'b<WQ~=(9μg=b9μW쯁>5ĩ>b9μ쯁=̩>b<Q~=(=bb< !{=(=9μZZ=ĩ>9μ !{>5ĩ>b<[$4k;5ĩ>9μ1$LkW7'=b'b<{>('9μ{>!=b<{ !>!=9μ{ !Lt>[|Tܹ>[``Lt><<|T߹><<``Lt>[|Lt><<|Tz>[` T}><<` )i>[)i><<i>[i><< \Ͼz>[ \Ͼv><< ܾ>[ܾ><<ܾ>[ܾ><< \Ͼ۹>[ `\Ͼٹ><< `>[|><<|)>[|)><<| dž~G>>>]¼C㌃dž{G>]¼ꌃں>><t|ֺ>]¼㌃ϾxG>><%t|ϾzG>]¼%ꌃ$Lݾ>><Ct|$Lݾ>]¼C$LݾS>><t|$LݾS>]¼Ͼ$>><%%t|Ͼ$>]¼%%κg>><t|Һ„g>]¼„g>>]¼Cdž$>><%t|dž$>]¼%rS>><t|rS>]¼r>><Ct|r>]¼Cdž{G>]¼ZZr>]¼{ ! dž~G>>><{ !rS>]¼d1rS>><dž$>]¼gdž$>>]¼Ӛ„g>><3е=Һ„g>]¼^κg>><^Ͼ$>]¼Ͼ$>><$LݾS>]¼^$LݾS>><^$Lݾ>]¼^ !$Lݾ>><^ !ϾzG>]¼ZϾxG>><Zֺ>]¼ޢ{ں>><ޢ{>]¼ !{>>< !{^/ >GR<@Ɯd>GR¼fƜd>¼Uo/>GR<7GZUo/>¼6HX>ク='Hvμ6#HDATA," " DATA5" 5x  "   "  "  "  "  "  "  "  " " " "       ! !" "# #$ $ %"&"'"(")"*"+" ,"!-""."#/"$0"%&"%'"'("()")*"*+"+,",-"-."./"/0"&0"1"2"3"4"5"6"7"8"9" :" ;" <"12"13"34"45"56"67"78"89"9:":;";<"2<"1= 2> 3? 4@ 5A 6B 7C 8D 9E :F ;G <H =>"=?"?@"@A"AB"BC"CD"DE"EF"FG"GH">H"%I &J 'K (L )M *N +O ,P -Q .R /S 0T IJ"IK"KL"LM"MN"NO"OP"PQ"QR"RS"ST"JT"=U">V"?W"@X"AY"BZ"C["D\"E]"F^"G_"H`"UV UW WX XY YZ Z[ [\ \] ]^ ^_ _` V` Ua"Ia"Vb"Jb"Wc"Kc"Ld"Xd"Me"Ye"Nf"Zf"Og"[g"Ph"\h"Qi"]i"Rj"^j"Sk"_k"`l"Tl"ab ac cd de ef fg gh hi ij jk kl bl m"m" n"n"o"o"p"p"q"q"r"r"s"s"t" t"u"!u"v""v"w"#w"x"$x"mn mo op pq qr rs st tu uv vw wx nx y"yz z"z{ {"{| |"|} }"}~ ~"~ " " " " " "y "#y""#"#"#"#"#~"#}"#|"#{"#z"##!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""" "" " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " " " "" " " " " " " " "  "    " "  "  "  "  " " """"""""""""""""""""""""""""""""""  " " !" !" ""!""""# # # # # # # # # # !# "# $"$% %"%& &"&' '"'( ("() )")* *"*+ +"+, ,",- -"-. ."./ /"$/ /0"0; $;".1"01 -2"12 ,3"23 +4"34 *5"45 )6"56 (7"67 '8"78 &9"89 %:"9: :; ;<"<= :="=> 9>">? 8?"?@ 7@"@A 6A"AB 5B"BC 4C"CD 3D"DE 2E"EF 1F"FG 0G"<G GH"HS"<S"FI"HI"EJ"IJ"DK"JK"CL"KL"BM"LM"AN"MN"@O"NO"?P"OP">Q"PQ"=R"QR"RS"ST"TU"RU"UV"QV"VW"PW"WX"OX"XY"NY"YZ"MZ"Z["L["[\"K\"\]"J]"]^"I^"^_"H_"T_"T` _` ^` ]` \` [` Z` Y` X` W` V` U` b"ab a"c"bc d"cd e"de f"ef g"fg h"gh i"hi j"ij k"jk l"kl al ax"mx lm"mn kn"no jo"op ip"pq hq"qr gr"rs fs"st et"tu du"uv cv"vw bw"wx wz"yz"xy"v{"z{"u|"{|"t}"|}"s~"}~"r"~"q""p""o""n""m""y"y""""""""""""""~""}""|""{""z""             "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""" " "" " "  "  " "  " " """ """"""""""""""""""""""""""""""""" " "!"!"  " !"  "  """""""" !"""" #"$ %"&"'""# $% "& $' &' #% "( ( #)")"$* * %+"+"&,","'-"-"() *+ (, *- ,- )+ DATA," 8" DATA.8" 4N   &%%''(())**++ ,, !--!".."#//#$00$&21133445566778899:  :;  ;< 2 <2>=11=?33?@44@A55AB66BC77CD88DE99EF::FG;;GH<<H>2J&%II%'KK'(LL()MM)*NN*+OO+,PP,-QQ-.RR./SS/0TT0&J>VU==UW??WX@@XYAAYZBBZ[CC[\DD\]EE]^FF^_GG_`HH`V>VbaUbJIaUacWaIKcWcdXcKLdXdeYdLMeYefZeMNfZfg[fNOg[gh\gOPh\hi]hPQi]ij^iQRj^jk_jRSk_kl`kSTl`lbVlTJbnmn mmom oopoppqpqqrqrrsrsst st tu!tu!uv"uv"vw#vw#wx$wx$xnx n yz z{ {| |}}~~yy~~}}||{{zzy                  !   "! "######### # !#!"#"$%%&&''(())**++,,--..//$$/0;/.10.-21-,32,+43+*54*)65)(76('87'&98&%:9%$;::;<=9:=>89>?78?@67@A56AB45BC34CD23DE12EF01FG;0G<<GHSGFIHFEJIEDKJDCLKCBMLBANMA@ON@?PO?>QP>=RQ=<SRRSTUQRUVPQVWOPWXNOXYMNYZLMZ[KL[\JK\]IJ]^HI^_SH_T`T_`_^`^]`]\`\[`[Z`ZY`YX`XW`WV`VU`UTbacbdcedfegfhgihjikjlkallaxmklmnjknoijophipqghqrfgrsefstdetucduvbcvwabwxxwzywv{zvu|{ut}|ts~}sr~rqqppoonnmmxyy~}~|}{|z{yz           !   !    !  !    "#%$&"$''&#%()("#)+*+%$*,(,&"(*-*$'--,-'&,)+)#%+ME# 2`# (" MECylinder.025g # # H!# H[# # Y#  H# T$\<|>My=>DATA# x DATA,# H!# DATA|8H!# 8=2=>^=bh<>^^=q>^ !0='+>Zg@<k>ޢ{@Ÿk> !{>O+>ZZ~lq>{ !0~h<>{>2=>ZŸr=> !^f@< r=>^,ZZ7 !{ƼP=b>ޢ{tg=b>Zl^ !b>^ti`b> Ƽb>^8 !^\Zޓ=>b>{ޓ=bm{ !ޓ=bm<>UH\,>>H\ޓ=>>U H\\>IH\8<>UH\ Ƽ> UH\ti`>IIH\>U H\l<>UH\tg=>I>H\ƼP=> UH\7UH\=2=6>[f@< r=6>[Ÿr=6>[>2=6> ?[0~h<6>V[~lq6>V[>O+6> ? ?[@Ÿk6>V[g@<k6>V[0='+6> ?[^=q6>[^=bh<6>[8G+W=ZZ~LqW={ !0=/+dW=Z^=qW=^ !^=Rh2=W=Z ~h7<ʹ=v2=ʹ=A[v2=1=wO^=1=fl-=ʹ=fLHF;ʹ=V$9ʹ=̫ʹ=K΃Zɾ!{ʹ=bھ^ʹ=Oʹ=fz<ʹ=|1Zfz<1=0F̫1=fk_g'<ʹ=`/ʹ=`:ʹ=jʾʹ=F5Aʹ=NӏZ۾Iʹ=:i\Nkʹ=ꢜ<1=d>ꢜ<ʹ= G,ZF5A1=oY# <ʹ=p%#ʹ=.ǎZ89ʹ=.ǎZvʾ(gʹ=.ǎZRDʹ=l8a۾w ʹ=.ǎZFQ~ʹ=.ǎZ2!<ʹ=02!<1=RD1=6>f;ʹ=.ǎZݾ p`j)(=ʹ=f)6Įʹ=j)*uʹ=Zn)VP=1=n)VP=ʹ=ZZj)*u1=n)T=ʹ=ZK(=ʹ=VK6Įʹ=ZK*uʹ=Z^KVP=1=^KVP=ʹ=ZZZK*u1=^KT=ʹ=fV<ʹ=·¾G'ʹ= ʹ=FƁZƦ8=1=5nƦ8=ʹ=vNZ 1=c7 =ʹ=׽(=ʹ=׽6Įʹ=׽*uʹ=Z׽VP=1=׽VP=ʹ=ZZ׽*u1=׽T=ʹ=VK6Įʹ=׽6Įʹ=(ҽ6Įʹ=ZZK(=ʹ=׽(=ʹ=0ҽ(=ʹ= þo(ʹ=·¾G'ʹ=.k6Įʹ=(zb<ʹ=xffV<ʹ=@9(=ʹ=1!cf)6Įʹ=j)(=ʹ=NMJk<ʹ=Saa>7<ʹ=Saa5Ӿ0jʹ=Saa0ҽDث=ʹ=@ҽї|=ʹ=0ҽz<ʹ=0ҽDث==0ҽ(==0ҽz<=(ҽ6Į=Z@ҽї|==NMJk<=Saab<=xf5Ӿ0j=Saa þo(=>7<=Saa(==1!cj)(==f)6Į=6Į=(zZK(==VK6Į=fV<=@9·¾G'=.k׽(==׽6Į=׽6Įm=VK6Įm=(ҽ6Įm=ZZK(=m=׽(=m=0ҽ(=m=·¾G'm=.k þo(m=6Įm=(zb77,=1=I2]>,=ʹ=3Z~1=Jjᄇ<ʹ=f@<k{ޢ{`Ÿk{ !{>G+{ZZ~<q{{ ! =7+LZ^=q{^ !^=Jh<{^ =2={@f@< r={^Ÿr={ !^>2={Z ~h<{{ͨ=îAY{>ͨ=J5AAoZ":!,=AIAJj ~h< {>2= ZŸr= !^@f@< r= ^ =2= ^=Bh< ^^=q ^ ! =7+6Z~<q { !>G+ ZZ`Ÿk !{f@<k ޢ{ᆰ,=/32Y>,=<⸽IfFl;/Ӿ/~/(KBþ./jĮ/1ѽ*u/ϽDث=/Ͻ(=/ȍϽVP=/Z׽6ˏ쀏ľS쀏VK6ˏ쀏f)6ˏ쀏6ˏ쀏׽r<쀏׽͗|=쀏׽Dث=쀏Ҿl]쀏Jླ[%<쀏7jz<쀏ZKr<쀏^K͗|=쀏ZKDث=쀏j)r<쀏r<쀏͗|=쀏n)͗|=쀏j)Dث=쀏Dث=쀏׽>Į쀏׽(=쀏·¾ G'쀏f龺V<쀏VK>Į쀏ZK(=쀏>Į쀏f)>Į쀏(=쀏j)(=쀏>7<쀏 þs(쀏5Ӿ,0j쀏NMBk<쀏Z<@ҽ͗|=쀏(ҽ>Į쀏0ҽr<쀏0ҽ(=쀏0ҽDث=쀏0ҽr<쀏@ҽ͗|=쀏0ҽDث=쀏5Ӿ,0j쀏SaaNMBk<쀏Saa>7<쀏Saaj)(=쀏f)>Į쀏(=쀏1!cf龺V<쀏@9ZĮ쀏(z þs(쀏·¾ G'쀏.k0ҽ(=쀏׽(=쀏ZK(=쀏(ҽ>Į쀏ZVK>Į쀏׽>Į쀏׽>Įq׽(=q·¾ G'q.kf龺VĮqZK(=q>Įq(zf)>Įqj)(=q(=q1!c>7ĮqZ0ҽr7Į/(=/1!cf龺VĮ/(z·¾ G'/.k þs(/0ҽ(=/׽(=/ZK(=/(ҽ>Į/Z׽>Į/VK>Į/׽T=/׽*u,⸽׽VP=/Z׽VP=<⸽׽*u/׽>Į/׽(=/7 =/ <⸽cƦ8=/vNƦ8=<⸽5n /F·¾ G'/f龺VĮ/ZK(=/n)T=/j)*u<⸽n)VP=/Zn)VP=<⸽j)*u/f)>Į/j)(=/>F;/.ǎRD<⸽6*!<<⸽*!:ilNk/۾I/F5A/Nqjʾ/`:///gs'7Į/*u/$w(=/ঢ়Į/0ҽ*u/0ҽDث=/0ҽ(=/8ҽVP=/Z7ݼVP=/xW<=/1[< ঢ়<(=/Z`7ݼ(=/ޓ=Jm<ս{ !ޓ=Vս{LĮ/rĮ/1ۀpb*u/ۀռ!/1ۀj2=,ZŸr=, !^@f@<r=,^=2=,^=Jh<,^^=q,^ !0=/+ Z~\q,{ !>G+,ZZ@Ÿk, !{g@<k,ޢ{ޓ=Jm<_:ޓ=V_N:LO+n??'~|qnV'0~gy2=n?'Ÿr=n'f@< r=n'=2=n'7l<RΒR 黣ti`GG Ƽ Q8<R\Gޓ=NU 黣,>ޓ=Zm<Uޓ=Zm< { !ޓ=N {\y2=fZ0~gO+fZZ@Ÿkf !{g@<kfޢ{0='+fZ^=qf^ !^=Zh#?#@#A#B#C# D# E# F#G#01#02#23#34#45#56#67#78#89#9:#:;#1;#<=!>?!=>!<@!@A!AB!BC!CD!DE!EF!FG!?G!;H#HI#1I#:J#HJ#9K#JK#8L#KL#7M#LM#6N#MN#5O#NO#4P#OP#3Q#PQ#2R#QR#0S#RS#IS#IT!TU#SU#UV#RV#VW!QW!WX!PX!XY!OY!YZ!NZ!Z[#M[![\#L\!\]#K]!]^#J^!^_#H_!T_# `#0`# a#1a#b#2b#3c#c#d#4d#5e#e#6f#f#g#7g#h#8h#9i#i#j#:j#;k#k#`a!`b!bc!cd!de!ef!fg!gh!hi!ij!jk!ak!Vl!Um#lm!no#qr#st!tu#uv#rv#Uw#Tx#Zy#[z#\{#]|#^}#_~#m!n#o#p!s!wx!yz!z{!{|!|}!}~!x~!w!!m#n#o!l!q!p!!!!!!##!!#!#####!!!!!!!#!!!!!!!!#!!!!!!###!!!!!#!!##!#!##!###!!##!!!!!!!!!!###!#!!!!!!!###!#!!!!!!!######!!##!!!!!!!!!q##t##s##!!p##!!!!!!!!!###t######q########################r##v##u####!!!!#!!!!!##!!!!!#!!!!#!!!!!!!!!!!!!!!!!#!##!#!##!######!###! ! ## # !  # ! !  # # # ! #!#!# ### ####### ##### ## #### ######## # # #!#!#!#"#"#"#######$!$%!%!&'!'(!()!&)!$'!%&!%*!*!&+!),!+,!*+! -!$-!-!'.!./!(/!.!/!-.!"0!0!*0!1!12!2!+1!,2!01!(3!34!)4!3!4!45!,5!5!/6!36!!6!6!#7!7!57!27!o8#p8#l9!q9!V:!r:!Z;#s;#Y<!t<!X=!u=!W>!v>!?!?!y@!@!A!A!9:!;<!<=!=>!:>!8?!;@!8A!9A!B!B!C!C!D!D!E#E#F!F!G!G!H!H!I#I#J!J!K!K!BC!DE!DF!FG!CG!HI!EJ!BK!IK!<L#=M#>N#?O#@P#AQ#BR#CS#DT#EU#FV#GW#wX#xY#yZ#z[#{\#|]#}^#~_#`!a#b#c!d!e!f#g#h#i#j#k!l#m#n#o#p!q!r!s!t!u!v!w!?x!@y!Hz!J{!LM#NO#MN#LP#PQ#QR#RS#ST#TU#UV#VW#OW#XY!Z[![\!\]!]^!^_!Y_!X`!ab!`e!ae!jl!km!ln!mo!fp!gq!pr!qs!ft!ht!gu!iu!cv!rv!dw!sw!cx!bx!dy!Zy!hz!jz!i{!k{!o!n!|#|}#}~#~#########|#}#~##########!!!!!!!!!0!:!1!;!3#=#2!<!4!>!5!?!7#A#6!@!8!B!9!C!!!!!!!!!!L!M!O!Y!P!Q!\!{!]!z!^!y!_#x#`!|!a!f!b#c#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########################################!#!#!###!!#!###!!###!######!##!#!##!#!!!!!!!!!!!!!!!!!#!!!!#!!!!!##!!!!!#!!!!###]##\##`####?#B##>#######J## ##C##H#@## #a######^####!!!!!!L!!O!#b#!P!#_##^##a# ! ! !  !  !:!D!;!E! =# G# <! F! A# I# @# H# C# J#!!!!!!!#!###!!!!!D!E!G#F!I#H#J##$#&!'!"#(##)! %# !# *!!##!+!",#"###-!%/!$%#$.!&(!&.!&0!'1!',#(3#()#)2!*/!*+!*4!+-!+5!,7#,-!-6!/8!./!.9!03!09!17!23#48!45!56!67!89!:=!:C!;A#<=#>B#>?#?@#@A!BC#DG!DJ!EI#FG#HI!KN!MN!KS!KR!Lb!La!Mf!Mc!Nd#Ne#QR!S[!TZ!TU!UV!VW!WX!XY!Z[!O_!Pb!Qc#Rd#Se!Ts#Ut#Vu#Wv#Xw#Yx#Z~#[}#\`#\]#]^#^_!`a#cd#ef!e}#f|!gq!gh!hi!ij!jk!kl!lm!mn!no!op!pr!qr!g#g#h#h#i#i#j#j#k#k#l#l#m#m#n#n#o#o#p#p#q#q#r#r#s~#s!st#t!tu#u!uv#v!vw#w!wx#x!xy!y!yz!z!z{!{!{|!|#|}#}#}~#~!########################!!!!!!!!!!!!########################!!!!!!!!!!!!################################################!!!!!!!!!!!!!!!!!!!!!!!!fF#p!r!v!cP!x!bQ#aR#eK!`S!X[#YZ#_T#^U#]V#\W#[X#ZY#y!dO!w!s!q!gE#u!i;#{!k1!m'#o#!!!! !!!"!#!%!$!n#l)#j2#z!h<#t !DATA,H# # DATA8# 4   !!" "# # $% %& &' '(())**++,,--..//$$//..--,,++**))( ('! '&"!&%#"%$#=<?>>=<@@AABCBC DD EE FF GG?1;HI;:JH:9KJ98LK87ML76NM65ON54PO43QP32RQ20SR01ISSITURSUVQRVWPQWXOPXYNOYZMNZ[LM[\KL\]JK]^HJ^_IH_T0`a1` a2b`0b `3cb2cb4dc3dc5ed4ed6fe5fe7gf6gf8hg7hg9ih8ih:ji9ji;kj:kj1ak;a kVUmlwUTxz[Zy{\[z|]\{}^]|~_^}xT_~Uwmonmlnomntspsqptqvruvturq                      !!""##$%&'()%$'&%*+&),*%&+ -$ -'./(./$-.'-."0"*0121+,2010*+1(34)34)45,45/63(6!3!67#,5725#7276/l9:V9qr:Y<;Z<ts;X=<Y=ut<W>=X>vu=V:>W:rv>p8?8o?@;s@yZ;A8pAo8q9A9lABCBCDEDEFDFDGFGFCGCGHIHIEJEJKBKBIKIKM=<LO?>NN>=ML<@PP@AQQABRRBCSSCDTTDEUUEFVVFGWWG?OXwxY[zyZ\{z[]|{\^}|]_~}^Yx~_wX`bae`aejlkmlnmonofpgqprqstfhtugiuvcrvwdsw?xcbx?y@dZy@yzHhjHzJ{ik{J1{k;i{jz2zh<ZyYydOQxbPcxwsOdwrvvcP;uiEguht <tfF sqprEqgfpFonmo')nlkm'12)ljaeKRe`SKbaRQ[S`XY_TZ_^UT^]VU]\WV\[XW[ZYXXYZ[|}|~}~03=:90:C17A;32<=48B>54>?65?@76@A89CBMfaLcMLbxYO_QcbP\`|{]\{z^]zy_^yx`af|`a^]]\\`CB?@>?B>JHJ  C H@ a^bLLa_OPb^_ :=GD  C:DJ  ;AIE   =<FG    A@HI  DGJDEIGFIH$" %! #!"#%$&(.$&'",()* %/+! *-#!+,"#-/%$.0&(39.&01',73()24*/85+*46-+57,-68/.9KNdRSeNKNMcdefMNQRdc}eS[ZTs~TUtsUVutVWvuWXwvXYxw[Z~}|fe}qggqghhghiihijjijkkjkllklmmlmnnmnoonoppoprrprqqr~ssttuuvvwwxxyyzz{{||}}~ME`# 2P$ # MECylinder.026F# $ (# `# # #  0 $ 4:pkS,$>`>`F>DATA# x DATA,# (# DATA(# 8,#>^Խ(=6*Q,#>ó>6 o,#>k!=>6o,#>κ=(=6QQ,#>V>=6o,#>X>v 6o ,#>ߺ=x@ؽw6Q,#>k!=,db6,#>,d6:,#>^Խx@ؽ6.:,#>Xs0w 65 ,#>`sP=65d#^Խ(=ѯ/Pd#>ħmd#k!=>Ymd#ú=H=/P/Pd#X>Ш=ĉmYd#`>v ĉmd#=X@ؽ/Pѯl#l!=,dZl#{˳>ޢ{i=ӳ>ޢ{=׳>ޢ{(۳>ޢ{ֽ߳>ޢ{>ޢ{<>^Խ(=ZY=^Խ(=Z=^Խ(=Z)^Խ(=Zֽ^Խ(=Z ^Խ(=ZD>k!=> !{i=k!=> !{=k!=> !{(k!=> !{ֽk!=> !{k!=> !{D>̺=(=ZZi=ʺ=(=ZZ=ɺ=H=ZZ(Ǻ=H=ZZֽƺ=H=ZZź=H=ZZD>V>={ !i=X>={!=X>={!(X>={!ֽX>={!X>={ !D>X>v {i=Z>v {Q=ȋ> ^ ~ȋ> ~ֽ^>v {`>v {<>=x@ؽdZb=A=׽(k'ֽA=׽Q׳k =X@ؽ/}Zzt7>_`!=#KA4p_`!=f]4t7> BLtB'˼<>^Խx@ؽc=?ԽXٽR)_g'ֽ?Խ,ؽGK ^Խ@ؽ |<>Xs0w !ZY=Xs0w S q=]% R h]% jֽVspw b Vspw _<>`sP=^ !Y=`sP=]!=^sP=[!)^sP=[!ֽ^sP=]! ^sP=^ !F=vܷ U==ܷ U ==ܷ >>=Z=ܷ UGZ=ܷ U쳽=ܷ >W=ܷ Wܷ sܷ ewWӽнܷ aaw1=ܷ ew=нܷ aw>O4ܷ w>=ܷ wٱ=Q=ܷ w=M>ܷ w/tM>ܷ wWӽQ=ܷ a wn=ܷ ewng4ܷ ewH  CGֽԽ  =H  uJ=yԽ  AHL&>7  bҲL&>=!=  btҲ={=  AHFH=4v>  ub4v>  bGֽ{=  MH=!=  RuO  R,$>UѽH=fxJ,$>`o=fx = ,$>`p>fx ,$>Uѽ7սfxJJ,$>zQfx ,$>3=Qfx= ,$>=7սfxJ4$>>0>fx)4$>>o=fx)= 4$>=H=fx4$>3=>fx= )4$>{>fx)4$>rcgd=_m/4$>H=`m5ɿ4$>i*l=gd=_m4$>ꁠ=<_mȿ4$>ꁠ=`_mȿ54$>*l=06k`m/4$>j<`m7@4$>`m47@4$>rc06k`m//4$>%_m8@54$>% <_m8@$9ѽh'=\$$VP= $$Np~$$ѽս$$,$$5s= $O =ս\$X>}`%$P>Я=`% $ ='=\\$r=> `%$t>`%$C{cod=/$>襜=4ɿ$o<=ɿ$-3l=pd=$=<ɿ$=`ɿ4$a3l=p>k/$$zp<8 7@$$X 47@$${c>k//$$+7@5$$+ <7@#Wab=X#) #+aiXX#˟ힽ> Wx#V<<ힽWx#uj=piX#.h=`R⩇> #'h=<⩇#Aj=b=#;<=ߩ#̟h=> #>ab=WX#>} uLWWx> #>a0iXXX#>ş螽X> Wx#>5<螽XWx#> j=0iXX#>vb=`LX> #>vb=j=b=W#>5<Ȁ=Xߩ#>şȀ=X> E4ɟ= !^E4'ab=ZE48<=^E4j=b=E4De=<^E4ub=`L^ !E45j=0i~ZE4:9<ꞽޢ{E4ȟꞽ !{E4apiZZE4; O{ !E4] <{qo=Yv'!` =e9Խ$zZw\4>á{ޘ\4>!Z!=u{2! ==zZZQo=>05w'!{/>05wޤ{ֽ=꽌Zֽg9ԽX꽌rYv\,Z!=,a+!,aDATA,# `# DATA`# 5" "" """"""""""""" "" "" "" " """"""" """ " !"!"""#" #"$"$%"%&"&'"'("()")"*"*+"+,",-"-."./"/"0"01"12"23"34"45"5"6"67"78"89 9:":;";"<"<=">?"?"@"B" D"DE"FG"G" H"HI"IJ"JK KL"LM"M" N"NO"OP"PQ"QR"RS"S"   ! " # $ % & ' ( ) $* %+ &, '- (. )/ *0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; 6< 7= :> ;? <@ >A"@B"AC"BD CF"DH EI FL GM HN IO JP KQ LR MS #S "R !Q P O N T_"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"T`"`a _a"`b Ub"bc Vc"cd Wd"de Xe"ef Yf"fg Zg"gh [h"hi \i"ij ]j"jk ^k"ak `l"lm am"ln bn"no co"op dp"pq eq"qr fr"rs gs"st ht"tu iu"uv jv"vw kw"mw lx"xy"my"xz"nz"z{"o{"{|"p|"|}"q}"}~"r~"~"s""t""u""v""w"y"x "y z "{ "| "} "~ " " " " " """"""""""""""""""""""""""EJ"BE"=@"8="9>"FK" """ "" """"""""""""""""""" # # # # # # # # # # # # """""""""""""""""""""" "" " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""#"##"" " " " " " " " " " " " """"""""""""?A A"CG C"J""E""B""@""=""8""9"">""F""K""A""C"" DATA,0 $  $ DATA $ 4  !!""## $$%%&&''(()) *$$*+%%+,&&,-''-.((./))/0**01++12,,23--34..45//56006711782289339:44:;55;<66<=7:>?;;?@<<@=>A??AB@AC DBBDECFGCG HDDHIEFLMGGM NHHNOIIOPJJPQKKQRLLRSMMS S##SR""RQ!!QP  POON N_T`a`TUbVcbUWdcVXedWYfeXZgfY[hgZ\ih[]ji\^kj]_ak^a`lmbnl`conbdpoceqpdfrqegsrfhtsgiuthjvuikwvjamwkmlxynzxlo{znp|{oq}|pr~}qs~rtsutvuwvmywyxxzz{{||}}~~y7=89>:FKLEIJ       KFJKEJBE@B=@8=98>9A>CAFCMEP$ 2v$ `# MECylinder.027\ $ X]$ !$ <$ $ ;$  \$ PD3@Y>DY>_>DATA$ x DATA,$ !$ DATA@!$ 8P׽׽Pz޿޿@YxPze谥@Y=Pzey׽ƻ=Pz޿"@`CY>PzW==Y>PzyW@Y>=PzWy=׽Pz"@޿`=?YPzye`BYDr>^==YDr> !^=׽Dr>Z@Y>xDr>{8Y>=Dr>{ !==Dr>ZZ`=?Y>Dr> !{?Y>Dr>ޢ{׽=Dr>Z@Yx=Dr>^ !@YDr>^׽Ļ׽Dr>׽Ļ׽`>\@Y`>\@Yx=`>\׽=`>>\?Y>`>U\`=?Y>`>U\==`>>>\8Y>=`>U\@Y>x`>U\=׽`>>\==Y`>\`BY`>\ ?`>6s =?`>6s=𺵽`>e؛'s?= `>s?=, =`>Ɂsີ==`>ees =?=`>s@ ?=`>s𺵽=`>'es? =`>6s?0 `>6s𺵽`>''szz>UU^),~c>tY^),lc=>t^)zz=>UZ^)c,=>Y^)@c=,=>^)z=z=>ZZ^),=|c=>^),=lc>Y^)z=z>ZU^)c=,>t^)`c,>Yt^)`c,,@V> !{c=,,@V>ޢ{z=z,@V>Z,=lc,@V>^ !,=|c=,@V>^z=z=,@V>@c=,=,@V>^c,=,@V> !^zz=,@V>Z,lc=,@V>{,~c,@V>{ !zz,@V>ZZzzXR>ZZ,~cXR>{ !,lc=XR>{zz=XR>Zc,=XR> !^@c=,=XR>^z=z=XR>,=|c=XR>^,=lcXR>^ !z=zXR>Zc=,XR>ޢ{`c,XR> !{`DYXz>ePZ`CY8>e׽Ȼ׽Xz>޿޿PZ׽Ļ׽8>޿޿=?YXz>yePZ=>Y8>ye=׽Xz>"@޿PZ=׽8>"@޿@Y>Xz>WPZ@Y>|8>W谥8Y>=Xz>WyPZ8Y>=8>Wy==Xz>"@"@PZ==8>"@"@`==Y>Xz>yWPZ`=?Y>8>yW=Y>Xz>WPZ?Y>8>W׽=Xz>޿"@PZ׽=8>޿"@@Yp=Xz>eyPZ@Yt=8>ey@YXz>ePZ@Y8>e谥0>[ {>[=0>[>= {>[>0ս0=0>f0ս0= {>f >0> > {>=>0>>=> {>>0=0=0>ff0=0= {>ff>=0>>>= {>>>0>> {>0=0ս0>f0=0ս {>f=0>>[= {>>[0ս0ս0>0ս0ս {>0>[ {>[Oi{>[N>[ǽǽi{>ǽǽ>=Ki{>>[=J>>[=ǽi{>f=ǽ>fP>i{>P>>H>=i{>>H>=>>==i{>ff==>ff=I>i{>>=K>>>I>i{>K>>ǽ=i{>fǽ=>fP=i{>[>P=>[>PĿi{>[P>[pjD>d谥pj@y{>dPZpj=D>dypj=@y{>dyPZ`ĽR=H>޿"@`ĽN=@y{>޿"@PZ gj>H>W gj>@y{>WPZ=gj>H>yW=gj>@y{>yWPZP=R=H>"@"@P=N=@y{>"@"@PZhj>=D>Wyhj>=@y{>WyPZpj>D>W谥pj>@y{>WPZ`=RĽD>"@޿`=VĽ@y{>"@޿PZ=gjD>yd=hj@y{>ydPZ`Ľ[ĽD>޿޿`Ľ_Ľ@y{>޿޿PZkjD>dlj@y{>dPZkj>8y{Wij>@WPZ`Ľ^=8y{޿"@`Ľ\=@޿"@PZ=gj>8y{yW=ej>@yWPZ`=T=8y{"@"@`=R=@"@"@PZpj>=8y{Wypj>=@WyPZhj>8y{W谥hj>@WPZP=RĽ8y{"@޿P=TĽD"@޿PZ=ij8y{yd=ijDydPZ ij8y{d ijDdPZ`ĽRĽ8y{޿޿`ĽTĽD޿޿PZpj8y{d谥pj@dPZpj=8y{dypj=@dyPZP=[>PĿ=i{[>P[Pi{[ǽǽǽǽi{M[Ki{[=M>[=Ki{>[=ǽf=ǽi{fH>H>i{P>=>P>=i{>==ff==i{ff=G>>=I>i{>ǽ=fǽ=i{fK>M>i{> {> 00ս0= {f0ս0= 0f=> {>=> 0>0=0= {ff0=0= 0ff>= {>>= 0>> {> 00=0ս {f0=0ս0f= {>[=0>[  {[ 0[0ս0ս {0ս0ս0 {[ 0[= {[>= 0[>@Y=8eyPZ@Y|8ePZ׽׽8޿޿PZAY8ePZ?YPze`=AY8yePZ=׽8"@޿PZ8Y>8WPZ8Y>PzW谥@Y>|=8WyPZ==8"@"@PZ==Pz"@"@=;Y>8yWPZ׽Ļ=8޿"@PZ`AY>8WPZ`c,=PR !^c=,=PR^z=z=PR,=hc=PR^,=cPR^ !z=zPRZ@c=,PRޢ{c,PR !{zzPRZZ,tcPR{ !,|c=PR{zz=PRZzz=(@VZ,|c=(@V{,tc(@V{ !zz(@VZZc,(@V !{@c=,(@Vޢ{z=z(@VZ,=c(@V^ !,=hc=(@V^z=z=(@Vc=,=(@V^`c,=(@V !^`c,=Yc=,=z=z=ZZ,=lc=,=cYz=zZU@c=,tc,YtzzUU,rctY,c=tzz=UZ𺵽=\'e?0 =\6?& \6𺵽\''@ ?^6 =?^6ີ=\e؛'?=2 \?= =\Ɂ==\ee =?=\ ?=\`AY>\U=;Y>\U==\>>@Y>x=\U8Y>\U=׽\>`=@Y^@Y^׽׽\@Y~\@Y=\׽Ļ=\>׽Ļ=@rZ@Y=@r^ !@Y~@r^׽׽@r@YBr^`=@YBr !^=׽@rZ8Y>@r{@Y>x=@r{ !==@rZZ=;Y>@r !{`AY>@rޢ{DATA,;$ <$ DATA<$ 5###### ! ! ! ! ! !!!!!!!############## ## ## ## # # # # !!!,#,!"!!"##!"##$!#$#%!$%#&!%&#'!&'#(!'(#)!()#*!)*#+!*+#+,#,-#-.#+.#./#*/#/0#)0#01#(1#12#'2#23#&3#34#%4#45#$5#56##6#67#"7#78#!8#-8#89#9D!-D#7:#9:!6;#:;!5<#;<!4=#<=!3>#=>!2?#>?!1@#?@!0A#@A!/B#AB!.C#BC!CD!DE#EF#CF#FG#BG#GH#AH#HI#@I#IJ#?J#JK#>K#KL#=L#LM#<M#MN#;N#NO#:O#OP#9P#EP# R#S#T#U# V#W# X# Z#[# \#^#_#`#a#b#c#d#e#f#g#h#QS#RT#QU#RV#UW#VX#WY#XZ#Y[#Z\#[]#\^#]_#^`#_a#`b#ac#bd#ce#df#eg#fh#Sg#Th#hi!i}!T}!S~!j~!gj!fk!ik!jl!el!dm!km!ln!cn!bo!mo!np!ap!`q!oq!pr!_r!^s!qs!rt!]t!\u!su!tv![v!Zw!uw!vx!Yx!Xy!wy!xz!Wz!V{!y{!z|!U|!R!{!|!Q!}!~!!!~!}!!!|!!!{!z!!!y!x!!!w!v!!!u!t!!!s!r!!!q!p!!!o!n!!!m!l!!!k!j!!!i!!!!#!!#!!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!############################!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!!#!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!############E#F#G#H#I#J#K#L#M#N#D#O### # #  # #  # #  # #  # # ############!!*#!)#!(#!'#!&#!%#!$#!##!"#!!#+#! # +# 7# !#!6#!"#"5#"###4##$#$3#$%#%2#%&#&1#&'#'0#'(#(/#()#).#)*#*-#*+#+,#,-#-.#-B!./#.A!/0#/@!01#0?!12#1>!23#2=!34#3<!45#4;!56#5:!67#69!,C!,7#78!8C#8O#89#9N#9:#:M#:;#;L#;<#<K#<=#=J#=>#>I#>?#?H#?@#@G#@A#AF#AB#BE#BC#CD#DE!EF!FG!GH!HI!IJ!JK!KL!LM!MN!NO!DO!""""""        ]"Y"Q"DATA,\$ X]$ DATAPX]$ 4D        !, "!#"$#%$&%'&(')(*)+*,++,-.*+./)*/0()01'(12&'23%&34$%45#$56"#67!"78,!8--89D87:976;:65<;54=<43>=32?>21@?10A@0/BA/.CB.-DCCDEFBCFGABGH@AHI?@IJ>?JK=>KL<=LM;<MN:;NO9:OPD9PESQR TUQV RWUX VYWZ X[Y\ Z][^ \_]`^a_b`cadbecfdgehfSgThThi}gS~jhfkiegjlfdmkcelndbomacnpb`qo_apr`^sq]_rt^\us[]tv\ZwuY[vxZXywWYxzXV{yUWz|VR{QU|RT}SQ~~}|{|zy{zxwyxvuwvtsutrqsrpoqpnmonlkmljikj~}iDEEFFGGHHIIJJKKLLMMNNOOD          *+)*()'(&'%&$%#$"#!" !+ ,7 +76! 65"!54#"43$#32%$21&%10'&0/('/.)(.-*)-,+*BC,-AB-.@A./?@/0>?01=>12<=23;<34:;459:568967C87,DO8CON98NM:9ML;:LK<;KJ=<JI>=IH?>HG@?GFA@FEBAEDCBMEv$ 2$ P$ MECylinder.028x$ $ y$ 8$ Hx$ $  h$ DY>EY>z_R>DATAx$ x DATA,Hx$ y$ DATAy$ 8׽׽qL@YqL^@Y=qL^ !׽Ļ=qLZAY>qLޢ{`=AY>qL !{=Ļ=qLZZ8Y>=qL{ !@Y>lqL{=׽qLZ=:YqL !^`?YqL^׽˻׽|_R@Y|_RHYT=|_Rл׽=|_R>;Y>|_RU@=EY>|_RU=ֻ=|_R>>0Y>=|_RU@Y>>|_RUл=׽|_R>=;Y|_R@EY|_R|_R`>Y@M>^=9Y@M> !^=׽@M>Z@Y>h@M>{8Y>=@M>{ !=ƻ=@M>ZZ`=CY>@M> !{CY>@M>ޢ{׽ƻ=@M>Z@Y=@M>^ !@Y|@M>^׽׽@M>׽׽x_R>\@Y|x_R>\@Y=x_R>\׽ƻ=x_R>>\CY>x_R>U\`=CY>x_R>U\=ƻ=x_R>>>\8Y>=x_R>U\@Y>hx_R>U\=׽x_R>>\=9Yx_R>\`>Yx_R>\ ?x_R>6s ={?x_R>6s=躵x_R>e؛'s?= x_R>s?=< =x_R>Ɂsີ==x_R>ees =?=x_R>s@ ?=x_R>s𺵽=x_R>'es?0 =x_R>6s? x_R>6s𺵽𺵽x_R>''szzLP>UU^),ncLP>tY^),|c=LP>t^)zz=LP>UZ^)c,=LP>Y^)@c=,=LP>^)z=z=LP>ZZ^),=c=LP>^),=\cLP>Y^)z=zLP>ZU^)c=,LP>t^)`c,LP>Yt^)`c,z> !{c=,z>ޢ{z=zz>Z,=\cz>^ !,=c=z>^z=z=z>@c=,=z>^c,=z> !^zz=z>Z,|c=z>{,ncz>{ !zzz>ZZzz =ZZ,nc ={ !,|c= ={zz= =Zc,= = !^@c=,= =^z=z= =,=c= =^,=\c =^ !z=z =Zc=, =ޢ{`c, = !{`@Y3'>ePZ`?Y(2>e׽׽3'>޿޿PZ׽׽(2>޿޿=;Y3'>yePZ=:Y(2>ye=׽3'>"@޿PZ=׽(2>"@޿@Y>p3'>WPZ@Y>l(2>W谥8Y>=3'>WyPZ8Y>=(2>Wy==3'>"@"@PZ=Ļ=02>"@"@`=AY>3'>yWPZ`=CY>02>yWAY>3'>WPZCY>02>W׽=3'>޿"@PZ׽Ļ=02>޿"@@Y=3'>eyPZ@Y=(2>ey@Y3'>ePZ@Y(2>e谥ؚ2>[`D'>[=ؚ2>[>=`D'>[>0ս0=2>f0ս0=`D'>f >2> >`D'>=>2>>=>`D'>>0=0=2>ff0=0=`D'>ff>=ؚ2>>>=`D'>>>ؚ2>>`D'>0=0սؚ2>f0=0ս`D'>f=ؚ2>>[=`D'>>[0ս0սؚ2>0ս0ս`D'>ؚ2>[`D'>[KP'>[J:2>[ǽǽP'>ǽǽ:2>=GP'>>[=F:2>>[=ǽP'>f=ǽ:2>fP>P'>P>:2>H>=P'>>H>Ŀ=:2>>==P'>ff==:2>ff=M>P'>>=O>:2>>M>P'>O>:2>ǽ=P'>fǽ=:2>fP=P'>[>P=:2>[>PP'>[P:2>[pj@+2>d谥pj'>dPZpj=@+2>dypj='>dyPZ`ĽZ=H+2>޿"@`ĽV='>޿"@PZ kj>H+2>W kj>'>WPZ=kj>H+2>yW=kj>'>yWPZP=Z=H+2>"@"@P=V='>"@"@PZhj>=@+2>Wyhj>='>WyPZpj>@+2>W谥pj>'>WPZ`=JĽ@+2>"@޿`=NĽ'>"@޿PZ=cj@+2>yd=dj'>ydPZ`ĽSĽ@+2>޿޿`ĽWĽ'>޿޿PZgj@+2>dhj'>dPZDATA,$ 8$ DATA8$ 5  "   "  "  "  "  "  "  "  " " " " " """""""" " " "$        ! !" "# #$ $%"%&"#&"&'""'"'("!("()" )")*"*"*+"+"+,",",-"-"-."."./"/"/0"0"%0"01 1<"%< /2 12".3 23"-4 34",5 45"+6 56"*7 67")8 78"(9 89"': 9:"&; :;";<"<="=>";>">?":?"?@"9@"@A"8A"AB"7B"BC"6C"CD"5D"DE"4E"EF"3F"FG"2G"GH"1H"=H"HI"IT =T"GJ"IJ FK"JK EL"KL DM"LM CN"MN BO"NO AP"OP @Q"PQ ?R"QR >S"RS ST TU"UV"SV"VW"RW"WX"QX"XY"PY"YZ"OZ"Z["N["[\"M\"\]"L]"]^"K^"^_"J_"_`"I`"U`"a "b"c"d$"e "f"g "h"i"j"k"l"m"n"o"p"q"r "s"t!"u"v""w"#x"ca"db"ea"fb"eg"fh"ig"jh"ik"jl"mk"nl"om"np"oq"rp"sq"rt"us"tv"uw"vx"cw"dx"yx y d c z wz {v y{ |z |u t} {} ~| ~s r } ~ q p  o n m l k j i h g f e b a  ~ } | { z y # # ## ## ## ## ## ## ## ## ## ## ##############DATA,h$ $ DATA$ 4         #$%&"#&'!"'( !() )**++,,--..//0$0%%01<0/21/.32.-43-,54,+65+*76*)87)(98(':9'&;:&%<;;<=>:;>?9:?@89@A78AB67BC56CD45DE34EF23FG12GH<1H==HITHGJIGFKJFELKEDMLDCNMCBONBAPOA@QP@?RQ?>SR>=TSSTUVRSVWQRWXPQXYOPYZNOZ[MN[\LM\]KL]^JK^_IJ_`TI`Uc ab$d ea fb ge hfig jhkiljmknlompnqor psqt! rusv"!twux#"vcwd$#xdxywczxv{yuwz|vt}{su|~tr}qs~rpoqpnmonlkmljikjhgihfegfbaebdca~}~|{}|zy{zyME$ 2$ v$ MECylinder.029X8 0$ $ $ $ `$ $  $ .d7D?=?U,?7C>D>d>DATA0$ x DATA,`$ $ DATA$ 8.E? ?|>CPDPwJ??|>mawJ?ﳢ?|>mE?^?|>DP]a[2?bޛ?|>[.*?^?|>-%?ﳢ?|>\-%??|>\`.*? ?|>CP2?>?|>m]?|>amE? ?z?TT,wJ??z?s,wJ??z?s,E?^?z?T$,_?z?s,Z?z?s,E?yЫ? ?%%ptW %u 3?-?i>% *?ƫ?i>|%?⛧?i>i %?̢?i>i*??i>|{u 3?:?i>i i+D??i>{OI?̢?i>%OI?㛧?i>% 7?P4?i>??q+?**6=?Sj?q+?5 6=?*?q+?56?l?q+?*Q6d.?f@?q+? o6dA?f@?q+?o6jR?l?q+?QQw6\?+?q+?ob6\?Sj?q+?o6jR??q+?Q.6fA?;?q+?56d.?;?q+? 56??;>ѯѯ??Qj?;>w=?)?;>wY?l?;>ѯ/Pd.?f@?;>maA?g@?;>YmjR?l?;>/P/P\?-?;>mZ\?Uj?;>zmjR??;>)PӯiA?;?;>Ywd.?;?;>w=?Rj??'?^>?Rj??^>?Rj? ?^>?Rj?Tz>^>?Rj?$>^??Rj?0>^???'?????? ???Sz>??#>??0>=?*??'?^ !=?*??^ !=?*? ?^ !=?*?Tz>^ !=?)?$>^ !=?)?0>^ !?l??'?Z?l??Z?l? ?Z?l?Tz>Z?l?$>Z?l?0>Zd.?f@??'?ޢ{d.?f@??ޣ{d.?f@? ?ޥ{d.?f@?Tz>ޥ{d.?f@?$>ޣ{d.?f@?0>ޢ{cA?f@??'?&!{cA?f@??6!{MA?=?W ? ~^ MA?=?`>y ~bA?g@?$>8!{aA?g@?0>'!{ jR?l??'?ZdZbR? k?Ӛ?8k(`R? k?>7kQjR?l?0>Z}Z/\??F'?`4KA{\??>T`4]\?j?F'?`LB\?j?>D`'BjR???'?dZcWR?v?Ӛ?7_R)gR?v?>7KGjR??->~Z| gA?;??'?!Z!gA?;?? SeA?=?Y ?^ hR eA?=?a>u jhA?;?!>0!bhA?;?->$!_d.?;??'?^d.?;??]d.?;? ?[d.?;?Qz>[d.?;?!>]d.?;?->^u?,?i>^u?,?Z ?^ !u?:6?V?Zu?E4?i!?ޢ{u?;G?i!? !{u?FE?V?ZZu?N?Z ?{ !u?N?i>{u?FE?q>Zu?;G?K> !^u?D4?K>^u?:6?q>gt?,?i>^gt?:6?q>gt?,?Z ?^ !gt?:6?V?Zgt?E4?i!?ޢ{gt?;G?i!? !{gt?FE?V?ZZgt?N?Z ?{ !gt?N?i>{gt?FE?q>Zgt?;G?K> !^gt?D4?K>^*`?,?i>^*`?:6?q>*`?,?Z ?^ !*`?:6?V?Z*`?E4?i!?ޢ{*`?;G?i!? !{+`?FE?V?ZZ+`?N?Z ?{ !*`?N?i>{*`?FE?q>Z*`?;G?K> !^*`?D4?K>^zW_?,?i>\zW_?:6?q>\zW_?,?Z ?\zW_?:6?V?\>zW_?E4?i!?\UzW_?;G?i!?\UzW_?FE?V?\>>zW_?N?Z ?\UzW_?N?i>\UzW_?FE?q>\>zW_?;G?K>\zW_?D4?K>\zW_?d?>~ezW_?,D?g>~bbzW_?d?j ?~fzW_?,D?;?~b zW_?}?&?~zW_??&?~zW_?S7?:?~ zW_??f ?~zW_??>~zW_?S7?f>~ bzW_??E>~fzW_?}?E>~f+_?g@?G> MD+_?f?Q>M+_?g@? ?MJu+_?g??M@H+_?k?B'?.Mb+_??B'?.Msb+_?i??MFH@H+_?;? ?Mbu+_?;?G> Mb+_?i?P>MMH+_??P>MuR+_?k?Q>MR ?A>?+?JJfx.?N|?+? fxsA?N|?+?= fx R?A>?+?Jfxm[?{?+?)fxm[??+?)= fx R?==?+?fxqA?.?+?= )fx.?.?+?)fx ?<=?+?Jfx??+? = fx?{?+? fx)?a?+?//_m$?Y?+?8@5_m$?$٧?+?8@_m)?]?+?/_m2??+?5ȿ_mXB=??+?ɿ_mGJF?]?+?_mK?%٧?+?ȿ_mK?Y?+?ȿ5_mGJF?a?+?/_mYB=??+?8@_m2??+?58@_m?8?8>.?t?5>bA?t?5> FR?8?5>\[?y?5>`%[??5>`% ?R?B?8>\\??8> `%.??8>`%?B?8>\z??8> z?y?8>O)??7>//S$?@?7>7@5R$?<٧?8>7@L)?]]?8>/С2??8>5ɿB=??7>ɿJF?_]?7>РƁK?>٧?6>ɿȁK?B?6>ɿ4JF? ?6>/B=??6>7@2??6>47@,)?+?v$>XX 2?L?u$>> Wx9=?L?u$>Wx0F?+?u$>Xs^K??u$>> q^K?ԧ?u$>ߧ0F?pP?v$>觧9=?2?v$>ߩ2?1?w$>> ))?oP?w$>X觧$?ԧ?w$>Wxߧ$??v$>Wx> )?O+?q+?XXW92??q+?> WxW8=??q+?WxWk0F?P+?q+?XW]K??q+?> W]K?iԧ?q+?Wj0F?.P?q+?X8=??q+?ߩX82??q+?> X)?-P?q+?XWZ$?iԧ?q+?WxWZ$??q+?Wx> W$??U?{ !m)?/+?U?ZZ$?tԧ?U?{k)?NP?U?Z2??U?!^8=??U?^0F?OP?U?~^K?vԧ?U?^^K? ?U?^ !0F?0+?U?Z8=?z?U?ޢ{!2?x?U? !{kF?:>? ?`'!T???wzZ\?j?F'?hޝ{ߒ\??F'?h2!{MT?j?~?ZzZG?E=? ?{'!G?E=?p\> {T?j?b>ZóT??c>rkF?9>?y\> \i\??͖>4+!aA\?j?͖>4aDATA,$ $ DATA$ 5d# ## ############# ## ## ## # # # ######## # # ### ############# # #!# !#"#!"# ##"####$!$!$!$!$!$!$!$! $!!$!"$!#$!%#%&# &#&'# '#'(# (#()#)#)*#*#*+#+#+,#,#,-#-#-.#.#./#/#/0#0#%0#%1!&1!'1!(1!)1!*1!+1!,1!-1!.1!/1!01!23">?"34"?@"45"@A"56"AB"67"BC"78"CD"89"DE"9:"EF":;"FG";<"GH"<="HI"2=">I"3J"JK"KL"LM"MN"NO"?O"2P"PQ"QR"RS"ST"TU">U"4V"VW"WX"XY"YZ"Z["@["5\"\]"]^"^_"_`"`a"Aa"6b"bc"cd"de"ef"fg"Bg"7h"hi"ij"jk kl"lm"Cm"8n"no"pq"Dq"9r":t";v"vw"xy"Gy"<z"z{"{|"|} }~"~"H"=""""""I"JP KQ LR MS NT OU JV KW LX MY NZ O[ V\ W] X^ Y_ Z` [a \b ]c ^d _e `f ag bh ci dj ek fl gm hn io lp mq nr ps"rt"su"tv ux"vz w{ x~ y z { | } ~  U T S R Q P """"""""""""" " " " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""" " " " " " " " " " " """"""""""""""""""""""""""w|"tw"or"jo"kp"x}"=""2"<"";"":""9""8""7""6""5""4""3""" " " " " " " " " " " " ">""I""H""G""F""E""D""C""B""A""@""?"" " " " " " " " " " " """"""""""""""""""""""" " " " "  " " "  " "  "" """"""""""""""" " " " " " " " " " " "   " ! !"! """""""" "!"""qs Es"uy Fu"|""""w#"#"t$"$"r%"%"o&"&"j'"'"k("("p)")"x*"*"}+"+"s,","u-"-"*+ "+ "# #$ $% %& &' '( () ), ,- *- DATA,$ $ DATAL$ 47          ! "! #" #$$$$$$$$ $ !$!"$"#$# %& &' '( ())**++,,--..//00%&%11'&1('1)(1*)1+*1,+1-,1.-1/.10/1%023JPPJKQQKLRRLMSSMNTTNOUUO?>34VJJVWKKWXLLXYMMYZNNZ[OO[@?45\VV\]WW]^XX^_YY_`ZZ`a[[aA@56b\\bc]]cd^^de__ef``fgaagBA67hbbhiccijddjkeeklfflmggmCB78nhhnoilpqmmqDC89rnnropsqqsED9:trsuFE:;vttvwuxyuyGF;<zvvz{wx~yyHG<=zz{{||}}~~IH>IUUTTSSRRQQP=2Piojkplx}~w{|2==<<;;::998877665544332I>HIGHFGEFDECDBCAB@A?@>?                  !  !   ! !+*+}x*"+"|}+#"#w|"$#$tw#%$%rt$&%&or%'&'jo&('(kj')()pk(,),sp)-,-us,*-*xu-ME$ 2xD% $ MECylinder.030`~% 0% P% % % 0%  X/% 3$W-$>`>_F>DATA% x DATA,% P% DATAP% 8,#>׽ߪ=6*Q,#> ^>6 o,#>x=^>6o,#>==6QQ,#> >K=6o,#> >$6o ,#>=nڽx6Q,#>=V{b6,#>V{6:,#>׽nڽ6.:,#>$65 ,#>K=65i#׽˪=ѯ/Ph#2V>ħmg#Q=^>Ymg#==/P/Pg# >L=ĉmYh# >z$ĉmi#ϓ=nڽ/Pѯo#=P{Zp#_{ī⅒p#څ׽nڽӯׯp#$wo#K=wY=>^>ޢ{]=Z>ޢ{=Z>ޢ{)!Z>ޢ{ֽ&Z>ޢ{ +V>ޢ{8>׽۪=ZU=׽۪=Z=׽ת=Z)׽Ӫ=Zֽ׽Ϫ=Z ׽Ϫ=Z=>q=^> !{^=l=^> !{=g=^> !{)b=^> !{ֽ\=^> !{ W=^> !{=>==ZZ^===ZZ===ZZ)==ZZֽ==ZZ ==ZZ=> >K={ !^= >K={!= >K={!) >K={!ֽ >K={!  >L={ !=> >${]= >${2=6>bT%^ ~+6>bT%~ֽ >${  >$ {8>=nڽdZb=t=9.ڽ(k2ֽt="ڽQ׳k ͓=nڽ/}Zzs7>=:KA4p=}]4s7>PBL0B'˼6>׽nڽc=:f׽۽R)_g2ֽ:f׽yZڽGK܅׽nڽ |6>$!ZO=$S R=Fb$R hNb$j ֽ$b$_6>K=^ !P=K=]!=K=[!%)K=[! ֽK=]!K=^ !F%`}|^=%`}| !^ =s`}|Z=~U`}|{=jq=`}|{ ! =ف=`}|ZZ=3=`}| !{G3=`}|ޢ{쳽ف=`}|Z`Zq=`}|^ !`U`}|^쳽s`}|F%%y^쳽s%y=%%y !^ =s%yZ=~U%y{=jq=%y{ ! =ف=%yZZ=3=%y !{G3=%yޢ{쳽ف=%yZ`Zq=%y^ !`U%y^F%$^쳽s$=%$ !^ =s$Z=U${=hq=${ ! =؁=$ZZ=3=$ !{G3=$ޢ{쳽؁=$Z`Xq=$^ !`U$^F%!쳽s!=%! =s!>=U!U=hq=!U =؁=!>>=3=!UG3=!U쳽؁=!>`Xq=!`U!s!fwbӽԽ!bbw=|!fw=Խ! bw>!w>=!wұ=*=! wӬ=r>!w@tr>!wbӽ*=!b wnq=!fwn!fw;!DNֽF׽;!=;!uJ=F׽;!@HI&>;!bҲI&>l=;!btҲ=T=;!@HFH=>;!ub(>;!bNֽT=;!MHY=;!Ru;!R,$>}Խ=fxJ,$>N=fx = ,$>F"fx ,$>|Խe׽fxJJ,$>;hfx ,$>=hfx= ,$>Ҋ=e׽fxJ3$>">"fx)3$>">=fx)= 3$>==fx3$>=>fx= )3$>O>fx)/$>!i `=_m/3$>q=_m5ȿ3$>jͥe= `=_m3$>Z=,*<_mȿ3$>Z=9_mȿ5/$>e=o_m//$>ͥ<5_m8@/$>u5_m58@/$>iʒo_m///$> M:_m8@5/$>M)<_m8@ $^Խ'=\&$/R= '$/&"'$6ԽI׽'$V&$$=H $+= ׽\$6>"`%$6>6S=`% $=O=\\$x$=V> `%$W N>`%!$i6`=/!$˜w=5ɿ $kӥ #q$hbmXX#2h'> Wx#ȟ<Wx#/@d=mX# A= ⩇> #A=\<⩇#?d=~n^=#I #>Ehf^=WX#>--WWx> #>3hmWXX#>^boW> Wx#>j7d=mWX#>R;=W> #>R;=7d=f^=W#>S<R=Wߩ#>tbR=W> 3eSU= !^3n h6j^=Z3!=<<^S3Q;=^ !3;d=m~Z3 {ޘ\4> =B{2!=nn=czZZEo=T>֑{'!{?T>֑{ޤ{ֽnn=o콌Zֽ`׽ rjz\. =Sa+!.aDATA,0% % DATA% 5" "" """"""""""""" "" "" "" " """"""" """ " !"!"""#" #"$"$%"%&"&'"'("()")"*"*+"+,",-"-."./"/"0"01"12"23"34"45"5"6"67"78"89 9:":;";"<"<=">?"?"@"B" D"DE"FG"G" H"HI"IJ"JK KL"LM"M" N"NO"OP"PQ"QR"RS"S"   ! " # $ % & ' ( ) $* %+ &, '- (. )/ *0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; 6< 7= :> ;? <@ >A"@B"AC"BD CF"DH EI FL GM HN IO JP KQ LR MS #S "R !Q P O N T_"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"T`"`a _a"`b Ub"bc Vc"cd Wd"de Xe"ef Yf"fg Zg"gh [h"hi \i"ij ]j"jk ^k"ak `l"lm am"ln bn"no co"op dp"pq eq"qr fr"rs gs"st ht"tu iu"uv jv"vw kw"mw lx"xy"my"xz"nz"z{"o{"{|"p|"|}"q}"}~"r~"~"s""t""u""v""w"y"x "y z "{ "| "} "~ " " " " " """"""""""""""""""""""""""EJ"BE"=@"8="9>"FK" """ "" """"""""""""""""""" " " " " " " " " " " " " """""""""""""""""""""" "" " " " " " " " " " " """"""""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " """"""""""""?A A"CG C"J""E""B""@""=""8""9"">""F""K""A""C"" DATA,X/% 0% DATA0% 4  !!""## $$%%&&''(()) *$$*+%%+,&&,-''-.((./))/0**01++12,,23--34..45//56006711782289339:44:;55;<66<=7:>?;;?@<<@=>A??AB@AC DBBDECFGCG HDDHIEFLMGGM NHHNOIIOPJJPQKKQRLLRSMMS S##SR""RQ!!QP  POON N_T`a`TUbVcbUWdcVXedWYfeXZgfY[hgZ\ih[]ji\^kj]_ak^a`lmbnl`conbdpoceqpdfrqegsrfhtsgiuthjvuikwvjamwkmlxynzxlo{znp|{oq}|pr~}qs~rtsutvuwvmywyxxzz{{||}}~~y7=89>:FKLEIJ       KFJKEJBE@B=@8=98>9A>CAFCMExD% 2% $ MECylinder.031p E% % @G% c% E% a%  (% PD3@Y>DY>_>DATAE% x DATA,E% @G% DATA@@G% 8P׽׽Pz޿޿@YxPze谥@Y=Pzey׽ƻ=Pz޿"@`CY>PzW==Y>PzyW@Y>=PzWy=׽Pz"@޿`=?YPzye`BYDr>^==YDr> !^=׽Dr>Z@Y>xDr>{8Y>=Dr>{ !==Dr>ZZ`=?Y>Dr> !{?Y>Dr>ޢ{׽=Dr>Z@Yx=Dr>^ !@YDr>^׽Ļ׽Dr>׽Ļ׽`>\@Y`>\@Yx=`>\׽=`>>\?Y>`>U\`=?Y>`>U\==`>>>\8Y>=`>U\@Y>x`>U\=׽`>>\==Y`>\`BY`>\ ?`>6s =?`>6s=𺵽`>e؛'s?= `>s?=, =`>Ɂsີ==`>ees =?=`>s@ ?=`>s𺵽=`>'es? =`>6s?0 `>6s𺵽`>''szz>UU^),~c>tY^),lc=>t^)zz=>UZ^)c,=>Y^)@c=,=>^)z=z=>ZZ^),=|c=>^),=lc>Y^)z=z>ZU^)c=,>t^)`c,>Yt^)`c,,@V> !{c=,,@V>ޢ{z=z,@V>Z,=lc,@V>^ !,=|c=,@V>^z=z=,@V>@c=,=,@V>^c,=,@V> !^zz=,@V>Z,lc=,@V>{,~c,@V>{ !zz,@V>ZZzzXR>ZZ,~cXR>{ !,lc=XR>{zz=XR>Zc,=XR> !^@c=,=XR>^z=z=XR>,=|c=XR>^,=lcXR>^ !z=zXR>Zc=,XR>ޢ{`c,XR> !{`DYXz>ePZ`CY8>e׽Ȼ׽Xz>޿޿PZ׽Ļ׽8>޿޿=?YXz>yePZ=>Y8>ye=׽Xz>"@޿PZ=׽8>"@޿@Y>Xz>WPZ@Y>|8>W谥8Y>=Xz>WyPZ8Y>=8>Wy==Xz>"@"@PZ==8>"@"@`==Y>Xz>yWPZ`=?Y>8>yW=Y>Xz>WPZ?Y>8>W׽=Xz>޿"@PZ׽=8>޿"@@Yp=Xz>eyPZ@Yt=8>ey@YXz>ePZ@Y8>e谥0>[ {>[=0>[>= {>[>0ս0=0>f0ս0= {>f >0> > {>=>0>>=> {>>0=0=0>ff0=0= {>ff>=0>>>= {>>>0>> {>0=0ս0>f0=0ս {>f=0>>[= {>>[0ս0ս0>0ս0ս {>0>[ {>[Oi{>[N>[ǽǽi{>ǽǽ>=Ki{>>[=J>>[=ǽi{>f=ǽ>fP>i{>P>>H>=i{>>H>=>>==i{>ff==>ff=I>i{>>=K>>>I>i{>K>>ǽ=i{>fǽ=>fP=i{>[>P=>[>PĿi{>[P>[pjD>d谥pj@y{>dPZpj=D>dypj=@y{>dyPZ`ĽR=H>޿"@`ĽN=@y{>޿"@PZ gj>H>W gj>@y{>WPZ=gj>H>yW=gj>@y{>yWPZP=R=H>"@"@P=N=@y{>"@"@PZhj>=D>Wyhj>=@y{>WyPZpj>D>W谥pj>@y{>WPZ`=RĽD>"@޿`=VĽ@y{>"@޿PZ=gjD>yd=hj@y{>ydPZ`Ľ[ĽD>޿޿`Ľ_Ľ@y{>޿޿PZkjD>dlj@y{>dPZkj>8y{Wij>@WPZ`Ľ^=8y{޿"@`Ľ\=@޿"@PZ=gj>8y{yW=ej>@yWPZ`=T=8y{"@"@`=R=@"@"@PZpj>=8y{Wypj>=@WyPZhj>8y{W谥hj>@WPZP=RĽ8y{"@޿P=TĽD"@޿PZ=ij8y{yd=ijDydPZ ij8y{d ijDdPZ`ĽRĽ8y{޿޿`ĽTĽD޿޿PZpj8y{d谥pj@dPZpj=8y{dypj=@dyPZP=[>PĿ=i{[>P[Pi{[ǽǽǽǽi{M[Ki{[=M>[=Ki{>[=ǽf=ǽi{fH>H>i{P>=>P>=i{>==ff==i{ff=G>>=I>i{>ǽ=fǽ=i{fK>M>i{> {> 00ս0= {f0ս0= 0f=> {>=> 0>0=0= {ff0=0= 0ff>= {>>= 0>> {> 00=0ս {f0=0ս0f= {>[=0>[  {[ 0[0ս0ս {0ս0ս0 {[ 0[= {[>= 0[>@Y=8eyPZ@Y|8ePZ׽׽8޿޿PZAY8ePZ?YPze`=AY8yePZ=׽8"@޿PZ8Y>8WPZ8Y>PzW谥@Y>|=8WyPZ==8"@"@PZ==Pz"@"@=;Y>8yWPZ׽Ļ=8޿"@PZ`AY>8WPZ`c,=PR !^c=,=PR^z=z=PR,=hc=PR^,=cPR^ !z=zPRZ@c=,PRޢ{c,PR !{zzPRZZ,tcPR{ !,|c=PR{zz=PRZzz=(@VZ,|c=(@V{,tc(@V{ !zz(@VZZc,(@V !{@c=,(@Vޢ{z=z(@VZ,=c(@V^ !,=hc=(@V^z=z=(@Vc=,=(@V^`c,=(@V !^`c,=Yc=,=z=z=ZZ,=lc=,=cYz=zZU@c=,tc,YtzzUU,rctY,c=tzz=UZ𺵽=\'e?0 =\6?& \6𺵽\''@ ?^6 =?^6ີ=\e؛'?=2 \?= =\Ɂ==\ee =?=\ ?=\`AY>\U=;Y>\U==\>>@Y>x=\U8Y>\U=׽\>`=@Y^@Y^׽׽\@Y~\@Y=\׽Ļ=\>׽Ļ=@rZ@Y=@r^ !@Y~@r^׽׽@r@YBr^`=@YBr !^=׽@rZ8Y>@r{@Y>x=@r{ !==@rZZ=;Y>@r !{`AY>@rޢ{DATA,a% c% DATAc% 5###### ! ! ! ! ! !!!!!!!############## ## ## ## # # # # !!!,#,!"!!"##!"##$!#$#%!$%#&!%&#'!&'#(!'(#)!()#*!)*#+!*+#+,#,-#-.#+.#./#*/#/0#)0#01#(1#12#'2#23#&3#34#%4#45#$5#56##6#67#"7#78#!8#-8#89#9D!-D#7:#9:!6;#:;!5<#;<!4=#<=!3>#=>!2?#>?!1@#?@!0A#@A!/B#AB!.C#BC!CD!DE#EF#CF#FG#BG#GH#AH#HI#@I#IJ#?J#JK#>K#KL#=L#LM#<M#MN#;N#NO#:O#OP#9P#EP# R#S#T#U# V#W# X# Z#[# \#^#_#`#a#b#c#d#e#f#g#h#QS#RT#QU#RV#UW#VX#WY#XZ#Y[#Z\#[]#\^#]_#^`#_a#`b#ac#bd#ce#df#eg#fh#Sg#Th#hi!i}!T}!S~!j~!gj!fk!ik!jl!el!dm!km!ln!cn!bo!mo!np!ap!`q!oq!pr!_r!^s!qs!rt!]t!\u!su!tv![v!Zw!uw!vx!Yx!Xy!wy!xz!Wz!V{!y{!z|!U|!R!{!|!Q!}!~!!!~!}!!!|!!!{!z!!!y!x!!!w!v!!!u!t!!!s!r!!!q!p!!!o!n!!!m!l!!!k!j!!!i!!!!#!!#!!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!############################!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!!#!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!############E#F#G#H#I#J#K#L#M#N#D#O### # #  # #  # #  # #  # # ############!!*#!)#!(#!'#!&#!%#!$#!##!"#!!#+#! # +# 7# !#!6#!"#"5#"###4##$#$3#$%#%2#%&#&1#&'#'0#'(#(/#()#).#)*#*-#*+#+,#,-#-.#-B!./#.A!/0#/@!01#0?!12#1>!23#2=!34#3<!45#4;!56#5:!67#69!,C!,7#78!8C#8O#89#9N#9:#:M#:;#;L#;<#<K#<=#=J#=>#>I#>?#?H#?@#@G#@A#AF#AB#BE#BC#CD#DE!EF!FG!GH!HI!IJ!JK!KL!LM!MN!NO!DO!""""""        ]"Y"Q"DATA,(% % DATAP% 4D        !, "!#"$#%$&%'&(')(*)+*,++,-.*+./)*/0()01'(12&'23%&34$%45#$56"#67!"78,!8--89D87:976;:65<;54=<43>=32?>21@?10A@0/BA/.CB.-DCCDEFBCFGABGH@AHI?@IJ>?JK=>KL<=LM;<MN:;NO9:OPD9PESQR TUQV RWUX VYWZ X[Y\ Z][^ \_]`^a_b`cadbecfdgehfSgThThi}gS~jhfkiegjlfdmkcelndbomacnpb`qo_apr`^sq]_rt^\us[]tv\ZwuY[vxZXywWYxzXV{yUWz|VR{QU|RT}SQ~~}|{|zy{zxwyxvuwvtsutrqsrpoqpnmonlkmljikj~}iDEEFFGGHHIIJJKKLLMMNNOOD          *+)*()'(&'%&$%#$"#!" !+ ,7 +76! 65"!54#"43$#32%$21&%10'&0/('/.)(.-*)-,+*BC,-AB-.@A./?@/0>?01=>12<=23;<34:;459:568967C87,DO8CON98NM:9ML;:LK<;KJ=<JI>=IH?>HG@?GFA@FEBAEDCBME% 2% xD% MECylinder.0320 @% % ȟ% % p% %  % .d7E?pF?U,?7C>D>d>DATA@% x DATA,p% ȟ% DATAȟ% 8.E? ?|>CPDPwJ??|>mawJ?ﳢ?|>mE?^?|>DP]a[2?bޛ?|>[.*?^?|>-%?ﳢ?|>\-%??|>\`.*? ?|>CP2?>?|>m]?|>amE? ?z?TT,wJ??z?s,wJ??z?s,E?^?z?T$,_?z?s,Z?z?s,E?yЫ? ?%%ptW %u 3?-?i>% *?ƫ?i>|%?⛧?i>i %?̢?i>i*??i>|{u 3?:?i>i i+D??i>{OI?̢?i>%OI?㛧?i>% 7?P4?i>?u?Vf-?*QX R??Uf-?5X R?s?Uf-?5 X?4?Uf-?**X.?C?Uf-? 5XHA?C?Uf-?5XR?3?Wf-?Q"\\?s?Wf-?o\\??Vf-?oDR?u?Vf-?QQ8JA?I?Vf-?oX.?I?Vf-? oX?u?Y}?ѯ/P[;"R??Y}?wY\; R?s?Y}?w\;?5?Z}?ѯѯ\;.?C?Z}?w\;EA?C?Z}?Yw\;R?2?Z}?/Pѯ\;\\?s?\}?ml;\\??\}?zmUx;R?u?[}?)P-Pf;MA?I?[}?Ym\;.?I?[}?m\; R??1?^ !!R??A;?^ !!R??RK?^ !!R??_?^ !!R??o?^ !"R??y?^ !?u?1?Z?u?A;?Z?u?SK?Z?u?_?Z?u?o?Z?u?y?Z R?s?1?^ R?s?A;?^ R?s?SK?^ R?s?_?^ R?s?o?^ R?s?y?^?4?1??4?A;??4?SK??5?_??5?o??5?y?.?C?1?^.?C?A;?].?C?SK?[.?C?_?[.?C?o?].?C?y?^GA?C?1?&!` GA?C?A;?6!d1B?oF?K? m1B?oF?'_?y kW FA?C?o?8!dEA?C?y?'!`R?3?1?ZbR?$?\=;?8]E{R?%?To?7M(R?2?y?ZL\?^s?l1?`"˵_]\?^s?,y?T`!ˣAg\??k1?`4`\??,y?D`4AR?u?1?dZZ7;R?s?[=;?7kiR?s?So?7k(R?u?y?~ZZKA?I?1?!{KA?I?A;? {IA?oF?K?^ ~IA?pF?'_?u ~M LA?I?o?0!{LA?I?y?$!{.?I?1?ޢ{.?I?A;?ޣ{.?I?TK?ޥ{.?I?_?ޥ{.?I?o?ޣ{.?I?y?ޢ{u?pW?J]?{ !u?pW?^}M?{u?M?J??Zu?O?Sn7? !^u??L??u?m5?c}M?^u?m5?O]?^ !u?>?ak?Zu??L??Ku?m5?c}M?^Ku?m5?O]?^ !Ku?>?ak?ZKu??L??^`?m5?c}M?^^`?m5?O]?^ !^`?>?ak?Z^`?>^_?pW?^}M?\U^_?M?J??\>^_?O?Sn7?\^_??L??\^_?m5?c}M?\^_?m5?O]?\^_?>?ak?\>^_? Y=??}?ߩY|F? Y?}?YWK?1ݧ?}?YUK??}?> Y|F?3?}?XY=??}?WxZ)3??}?> WxZ 2*?3?}?XXY%??}?Wx> Y%?3ݧ?}?WxZ2*?X?>-?X觩*3??>-?> Ƅ=??>-?ߩN|F?X?>-?觨K?ݧ?>-?ߩK?ů?>-?> N|F?4?>-?XĄ=?W?>-?Wx*3?W?>-?> Wx2*?4?>-?XX>%?Ư?>-?Wx> >%?ݧ?>-?Wxߨ%?'ݧ?YU?{P2*?Y?YU?Z%??YU?{ !O2*?3?YU?ZZ*3?+?ZU?!{Ą=?W?YU?ޢ{|F?3?ZU?ZK??YU?^ !K?%ݧ?YU?^|F?X?YU?߄=??YU?^*3??YU? !^OHG?E?\K?{'U?_s?<;?Z\?N?.1?h1!c\?s?.1?hc1T?~?<;?wRG?F?`K?`RG?F?)_? \!T?~?o?rtZT?`s?o?ZtZOHG?E?)_? {!L\?s?Ɍy?4ޟ{%\?N?Ɍy?4+!{DATA,% % DATA% 5d# ## ############# ## ## ## # # # ######## # # ### ############# # #!# !#"#!"# ##"####$!$!$!$!$!$!$!$! $!!$!"$!#$!%#%&# &#&'# '#'(# (#()#)#)*#*#*+#+#+,#,#,-#-#-.#.#./#/#/0#0#%0#%1!&1!'1!(1!)1!*1!+1!,1!-1!.1!/1!01!23">?"34"?@"45"@A"56"AB"67"BC"78"CD"89"DE"9:"EF":;"FG";<"GH"<="HI"2=">I"3J"JK"KL"LM"MN"NO"?O"2P"PQ"QR"RS"ST"TU">U"4V"VW"WX"XY"YZ"Z["@["5\"\]"]^"^_"_`"`a"Aa"6b"bc"cd"de"ef"fg"Bg"7h"hi"ij"jk kl"lm"Cm"8n"no"pq"Dq"9r":t";v"vw"xy"Gy"<z"z{"{|"|} }~"~"H"=""""""I"JP KQ LR MS NT OU JV KW LX MY NZ O[ V\ W] X^ Y_ Z` [a \b ]c ^d _e `f ag bh ci dj ek fl gm hn io lp mq nr ps"rt"su"tv ux"vz w{ x~ y z { | } ~  U T S R Q P """"""""""""" " " " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""" " " " " " " " " " " """"""""""""""""""""""""""w|"tw"or"jo"kp"x}"=""2"<"";"":""9""8""7""6""5""4""3""" " " " " " " " " " " " ">""I""H""G""F""E""D""C""B""A""@""?"" " " " " " " " " " " """"""""""""""""""""""" " " " "  " " "  " "  "" """"""""""""""" " " " " " " " " " " "   " ! !"! """""""" "!"""qs Es"uy Fu"|""""w#"#"t$"$"r%"%"o&"&"j'"'"k("("p)")"x*"*"}+"+"s,","u-"-"*+ "+ "# #$ $% %& &' '( () ), ,- *- DATA,%  % DATAL % 47          ! "! #" #$$$$$$$$ $ !$!"$"#$# %& &' '( ())**++,,--..//00%&%11'&1('1)(1*)1+*1,+1-,1.-1/.10/1%023JPPJKQQKLRRLMSSMNTTNOUUO?>34VJJVWKKWXLLXYMMYZNNZ[OO[@?45\VV\]WW]^XX^_YY_`ZZ`a[[aA@56b\\bc]]cd^^de__ef``fgaagBA67hbbhiccijddjkeeklfflmggmCB78nhhnoilpqmmqDC89rnnropsqqsED9:trsuFE:;vttvwuxyuyGF;<zvvz{wx~yyHG<=zz{{||}}~~IH>IUUTTSSRRQQP=2Piojkplx}~w{|2==<<;;::998877665544332I>HIGHFGEFDECDBCAB@A?@>?                  !  !   ! !+*+}x*"+"|}+#"#w|"$#$tw#%$%rt$&%&or%'&'jo&('(kj')()pk(,),sp)-,-us,*-*xu-ME% 24& % MECylinder.033H$8 % & `% & % @&  h& 4:pkS,$>`>`F>DATA% x DATA,% `% DATA`% 8,#>^Խ(=6*Q,#>ó>6 o,#>k!=>6o,#>κ=(=6QQ,#>V>=6o,#>X>v 6o ,#>ߺ=x@ؽw6Q,#>k!=,db6,#>,d6:,#>^Խx@ؽ6.:,#>Xs0w 65 ,#>`sP=65d#^Խ(=ѯ/Pd#>ħmd#k!=>Ymd#ú=H=/P/Pd#X>Ш=ĉmYd#`>v ĉmd#=X@ؽ/Pѯl#l!=,dZl#{˳>ޢ{i=ӳ>ޢ{=׳>ޢ{(۳>ޢ{ֽ߳>ޢ{>ޢ{<>^Խ(=ZY=^Խ(=Z=^Խ(=Z)^Խ(=Zֽ^Խ(=Z ^Խ(=ZD>k!=> !{i=k!=> !{=k!=> !{(k!=> !{ֽk!=> !{k!=> !{D>̺=(=ZZi=ʺ=(=ZZ=ɺ=H=ZZ(Ǻ=H=ZZֽƺ=H=ZZź=H=ZZD>V>={ !i=X>={!=X>={!(X>={!ֽX>={!X>={ !D>X>v {i=Z>v {Q=ȋ> ^ ~ȋ> ~ֽ^>v {`>v {<>=x@ؽdZb=A=׽(k'ֽA=׽Q׳k =X@ؽ/}Zzt7>_`!=#KA4p_`!=f]4t7> BLtB'˼<>^Խx@ؽc=?ԽXٽR)_g'ֽ?Խ,ؽGK ^Խ@ؽ |<>Xs0w !ZY=Xs0w S q=]% R h]% jֽVspw b Vspw _<>`sP=^ !Y=`sP=]!=^sP=[!)^sP=[!ֽ^sP=]! ^sP=^ !F=vܷ U==ܷ U ==ܷ >>=Z=ܷ UGZ=ܷ U쳽=ܷ >W=ܷ Wܷ sܷ ewWӽнܷ aaw1=ܷ ew=нܷ aw>O4ܷ w>=ܷ wٱ=Q=ܷ w=M>ܷ w/tM>ܷ wWӽQ=ܷ a wn=ܷ ewng4ܷ ewH  CGֽԽ  =H  uJ=yԽ  AHL&>7  bҲL&>=!=  btҲ={=  AHFH=4v>  ub4v>  bGֽ{=  MH=!=  RuO  R,$>UѽH=fxJ,$>`o=fx = ,$>`p>fx ,$>Uѽ7սfxJJ,$>zQfx ,$>3=Qfx= ,$>=7սfxJ4$>>0>fx)4$>>o=fx)= 4$>=H=fx4$>3=>fx= )4$>{>fx)4$>rcgd=_m/4$>H=`m5ɿ4$>i*l=gd=_m4$>ꁠ=<_mȿ4$>ꁠ=`_mȿ54$>*l=06k`m/4$>j<`m7@4$>`m47@4$>rc06k`m//4$>%_m8@54$>% <_m8@$9ѽh'=\$$VP= $$Np~$$ѽս$$,$$5s= $O =ս\$X>}`%$P>Я=`% $ ='=\\$r=> `%$t>`%$C{cod=/$>襜=4ɿ$o<=ɿ$-3l=pd=$=<ɿ$=`ɿ4$a3l=p>k/$$zp<8 7@$$X 47@$${c>k//$$+7@5$$+ <7@#Wab=X#) #+aiXX#˟ힽ> Wx#V<<ힽWx#uj=piX#.h=`R⩇> #'h=<⩇#Aj=b=#;<=ߩ#̟h=> #>ab=WX#>} uLWWx> #>a0iXXX#>ş螽X> Wx#>5<螽XWx#> j=0iXX#>vb=`LX> #>vb=j=b=W#>5<Ȁ=Xߩ#>şȀ=X> E4ɟ= !^E4'ab=ZE48<=^E4j=b=E4De=<^E4ub=`L^ !E45j=0i~ZE4:9<ꞽޢ{E4ȟꞽ !{E4apiZZE4; O{ !E4] <{qo=Yv'!` =e9Խ$zZw\4>á{ޘ\4>!Z!=u{2! ==zZZQo=>05w'!{/>05wޤ{ֽ=꽌Zֽg9ԽX꽌rYv\,Z!=,a+!,aDATA,@& & DATA& 5" "" """"""""""""" "" "" "" " """"""" """ " !"!"""#" #"$"$%"%&"&'"'("()")"*"*+"+,",-"-."./"/"0"01"12"23"34"45"5"6"67"78"89 9:":;";"<"<=">?"?"@"B" D"DE"FG"G" H"HI"IJ"JK KL"LM"M" N"NO"OP"PQ"QR"RS"S"   ! " # $ % & ' ( ) $* %+ &, '- (. )/ *0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; 6< 7= :> ;? <@ >A"@B"AC"BD CF"DH EI FL GM HN IO JP KQ LR MS #S "R !Q P O N T_"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"T`"`a _a"`b Ub"bc Vc"cd Wd"de Xe"ef Yf"fg Zg"gh [h"hi \i"ij ]j"jk ^k"ak `l"lm am"ln bn"no co"op dp"pq eq"qr fr"rs gs"st ht"tu iu"uv jv"vw kw"mw lx"xy"my"xz"nz"z{"o{"{|"p|"|}"q}"}~"r~"~"s""t""u""v""w"y"x "y z "{ "| "} "~ " " " " " """"""""""""""""""""""""""EJ"BE"=@"8="9>"FK" """ "" """"""""""""""""""" # # # # # # # # # # # # """""""""""""""""""""" "" " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""#"##"" " " " " " " " " " " " """"""""""""?A A"CG C"J""E""B""@""=""8""9"">""F""K""A""C"" DATA,h&  & DATA & 4  !!""## $$%%&&''(()) *$$*+%%+,&&,-''-.((./))/0**01++12,,23--34..45//56006711782289339:44:;55;<66<=7:>?;;?@<<@=>A??AB@AC DBBDECFGCG HDDHIEFLMGGM NHHNOIIOPJJPQKKQRLLRSMMS S##SR""RQ!!QP  POON N_T`a`TUbVcbUWdcVXedWYfeXZgfY[hgZ\ih[]ji\^kj]_ak^a`lmbnl`conbdpoceqpdfrqegsrfhtsgiuthjvuikwvjamwkmlxynzxlo{znp|{oq}|pr~}qs~rtsutvuwvmywyxxzz{{||}}~~y7=89>:FKLEIJ       KFJKEJBE@B=@8=98>9A>CAFCME4& 2& % MECylinder.034pG 5& s& P7& S& 5& Q&  8r& PD3@Y>DY>_>DATA5& x DATA,5& P7& DATA@P7& 8P׽׽Pz޿޿@YxPze谥@Y=Pzey׽ƻ=Pz޿"@`CY>PzW==Y>PzyW@Y>=PzWy=׽Pz"@޿`=?YPzye`BYDr>^==YDr> !^=׽Dr>Z@Y>xDr>{8Y>=Dr>{ !==Dr>ZZ`=?Y>Dr> !{?Y>Dr>ޢ{׽=Dr>Z@Yx=Dr>^ !@YDr>^׽Ļ׽Dr>׽Ļ׽`>\@Y`>\@Yx=`>\׽=`>>\?Y>`>U\`=?Y>`>U\==`>>>\8Y>=`>U\@Y>x`>U\=׽`>>\==Y`>\`BY`>\ ?`>6s =?`>6s=𺵽`>e؛'s?= `>s?=, =`>Ɂsີ==`>ees =?=`>s@ ?=`>s𺵽=`>'es? =`>6s?0 `>6s𺵽`>''szz>UU^),~c>tY^),lc=>t^)zz=>UZ^)c,=>Y^)@c=,=>^)z=z=>ZZ^),=|c=>^),=lc>Y^)z=z>ZU^)c=,>t^)`c,>Yt^)`c,,@V> !{c=,,@V>ޢ{z=z,@V>Z,=lc,@V>^ !,=|c=,@V>^z=z=,@V>@c=,=,@V>^c,=,@V> !^zz=,@V>Z,lc=,@V>{,~c,@V>{ !zz,@V>ZZzzXR>ZZ,~cXR>{ !,lc=XR>{zz=XR>Zc,=XR> !^@c=,=XR>^z=z=XR>,=|c=XR>^,=lcXR>^ !z=zXR>Zc=,XR>ޢ{`c,XR> !{`DYXz>ePZ`CY8>e׽Ȼ׽Xz>޿޿PZ׽Ļ׽8>޿޿=?YXz>yePZ=>Y8>ye=׽Xz>"@޿PZ=׽8>"@޿@Y>Xz>WPZ@Y>|8>W谥8Y>=Xz>WyPZ8Y>=8>Wy==Xz>"@"@PZ==8>"@"@`==Y>Xz>yWPZ`=?Y>8>yW=Y>Xz>WPZ?Y>8>W׽=Xz>޿"@PZ׽=8>޿"@@Yp=Xz>eyPZ@Yt=8>ey@YXz>ePZ@Y8>e谥0>[ {>[=0>[>= {>[>0ս0=0>f0ս0= {>f >0> > {>=>0>>=> {>>0=0=0>ff0=0= {>ff>=0>>>= {>>>0>> {>0=0ս0>f0=0ս {>f=0>>[= {>>[0ս0ս0>0ս0ս {>0>[ {>[Oi{>[N>[ǽǽi{>ǽǽ>=Ki{>>[=J>>[=ǽi{>f=ǽ>fP>i{>P>>H>=i{>>H>=>>==i{>ff==>ff=I>i{>>=K>>>I>i{>K>>ǽ=i{>fǽ=>fP=i{>[>P=>[>PĿi{>[P>[pjD>d谥pj@y{>dPZpj=D>dypj=@y{>dyPZ`ĽR=H>޿"@`ĽN=@y{>޿"@PZ gj>H>W gj>@y{>WPZ=gj>H>yW=gj>@y{>yWPZP=R=H>"@"@P=N=@y{>"@"@PZhj>=D>Wyhj>=@y{>WyPZpj>D>W谥pj>@y{>WPZ`=RĽD>"@޿`=VĽ@y{>"@޿PZ=gjD>yd=hj@y{>ydPZ`Ľ[ĽD>޿޿`Ľ_Ľ@y{>޿޿PZkjD>dlj@y{>dPZkj>8y{Wij>@WPZ`Ľ^=8y{޿"@`Ľ\=@޿"@PZ=gj>8y{yW=ej>@yWPZ`=T=8y{"@"@`=R=@"@"@PZpj>=8y{Wypj>=@WyPZhj>8y{W谥hj>@WPZP=RĽ8y{"@޿P=TĽD"@޿PZ=ij8y{yd=ijDydPZ ij8y{d ijDdPZ`ĽRĽ8y{޿޿`ĽTĽD޿޿PZpj8y{d谥pj@dPZpj=8y{dypj=@dyPZP=[>PĿ=i{[>P[Pi{[ǽǽǽǽi{M[Ki{[=M>[=Ki{>[=ǽf=ǽi{fH>H>i{P>=>P>=i{>==ff==i{ff=G>>=I>i{>ǽ=fǽ=i{fK>M>i{> {> 00ս0= {f0ս0= 0f=> {>=> 0>0=0= {ff0=0= 0ff>= {>>= 0>> {> 00=0ս {f0=0ս0f= {>[=0>[  {[ 0[0ս0ս {0ս0ս0 {[ 0[= {[>= 0[>@Y=8eyPZ@Y|8ePZ׽׽8޿޿PZAY8ePZ?YPze`=AY8yePZ=׽8"@޿PZ8Y>8WPZ8Y>PzW谥@Y>|=8WyPZ==8"@"@PZ==Pz"@"@=;Y>8yWPZ׽Ļ=8޿"@PZ`AY>8WPZ`c,=PR !^c=,=PR^z=z=PR,=hc=PR^,=cPR^ !z=zPRZ@c=,PRޢ{c,PR !{zzPRZZ,tcPR{ !,|c=PR{zz=PRZzz=(@VZ,|c=(@V{,tc(@V{ !zz(@VZZc,(@V !{@c=,(@Vޢ{z=z(@VZ,=c(@V^ !,=hc=(@V^z=z=(@Vc=,=(@V^`c,=(@V !^`c,=Yc=,=z=z=ZZ,=lc=,=cYz=zZU@c=,tc,YtzzUU,rctY,c=tzz=UZ𺵽=\'e?0 =\6?& \6𺵽\''@ ?^6 =?^6ີ=\e؛'?=2 \?= =\Ɂ==\ee =?=\ ?=\`AY>\U=;Y>\U==\>>@Y>x=\U8Y>\U=׽\>`=@Y^@Y^׽׽\@Y~\@Y=\׽Ļ=\>׽Ļ=@rZ@Y=@r^ !@Y~@r^׽׽@r@YBr^`=@YBr !^=׽@rZ8Y>@r{@Y>x=@r{ !==@rZZ=;Y>@r !{`AY>@rޢ{DATA,Q& S& DATAS& 5###### ! ! ! ! ! !!!!!!!############## ## ## ## # # # # !!!,#,!"!!"##!"##$!#$#%!$%#&!%&#'!&'#(!'(#)!()#*!)*#+!*+#+,#,-#-.#+.#./#*/#/0#)0#01#(1#12#'2#23#&3#34#%4#45#$5#56##6#67#"7#78#!8#-8#89#9D!-D#7:#9:!6;#:;!5<#;<!4=#<=!3>#=>!2?#>?!1@#?@!0A#@A!/B#AB!.C#BC!CD!DE#EF#CF#FG#BG#GH#AH#HI#@I#IJ#?J#JK#>K#KL#=L#LM#<M#MN#;N#NO#:O#OP#9P#EP# R#S#T#U# V#W# X# Z#[# \#^#_#`#a#b#c#d#e#f#g#h#QS#RT#QU#RV#UW#VX#WY#XZ#Y[#Z\#[]#\^#]_#^`#_a#`b#ac#bd#ce#df#eg#fh#Sg#Th#hi!i}!T}!S~!j~!gj!fk!ik!jl!el!dm!km!ln!cn!bo!mo!np!ap!`q!oq!pr!_r!^s!qs!rt!]t!\u!su!tv![v!Zw!uw!vx!Yx!Xy!wy!xz!Wz!V{!y{!z|!U|!R!{!|!Q!}!~!!!~!}!!!|!!!{!z!!!y!x!!!w!v!!!u!t!!!s!r!!!q!p!!!o!n!!!m!l!!!k!j!!!i!!!!#!!#!!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!############################!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!!#!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!############E#F#G#H#I#J#K#L#M#N#D#O### # #  # #  # #  # #  # # ############!!*#!)#!(#!'#!&#!%#!$#!##!"#!!#+#! # +# 7# !#!6#!"#"5#"###4##$#$3#$%#%2#%&#&1#&'#'0#'(#(/#()#).#)*#*-#*+#+,#,-#-.#-B!./#.A!/0#/@!01#0?!12#1>!23#2=!34#3<!45#4;!56#5:!67#69!,C!,7#78!8C#8O#89#9N#9:#:M#:;#;L#;<#<K#<=#=J#=>#>I#>?#?H#?@#@G#@A#AF#AB#BE#BC#CD#DE!EF!FG!GH!HI!IJ!JK!KL!LM!MN!NO!DO!""""""        ]"Y"Q"DATA,8r& s& DATAPs& 4D        !, "!#"$#%$&%'&(')(*)+*,++,-.*+./)*/0()01'(12&'23%&34$%45#$56"#67!"78,!8--89D87:976;:65<;54=<43>=32?>21@?10A@0/BA/.CB.-DCCDEFBCFGABGH@AHI?@IJ>?JK=>KL<=LM;<MN:;NO9:OPD9PESQR TUQV RWUX VYWZ X[Y\ Z][^ \_]`^a_b`cadbecfdgehfSgThThi}gS~jhfkiegjlfdmkcelndbomacnpb`qo_apr`^sq]_rt^\us[]tv\ZwuY[vxZXywWYxzXV{yUWz|VR{QU|RT}SQ~~}|{|zy{zxwyxvuwvtsutrqsrpoqpnmonlkmljikj~}iDEEFFGGHHIIJJKKLLMMNNOOD          *+)*()'(&'%&$%#$"#!" !+ ,7 +76! 65"!54#"43$#32%$21&%10'&0/('/.)(.-*)-,+*BC,-AB-.@A./?@/0>?01=>12<=23;<34:;459:568967C87,DO8CON98NM:9ML;:LK<;KJ=<JI>=IH?>HG@?GFA@FEBAEDCBME& 2& 4& MECylinder.035; P& 8& ؏& & & &  & 4:pkS,$>`>`F>DATAP& x DATA,& ؏& DATA؏& 8,#>^Խ(=6*Q,#>ó>6 o,#>k!=>6o,#>κ=(=6QQ,#>V>=6o,#>X>v 6o ,#>ߺ=x@ؽw6Q,#>k!=,db6,#>,d6:,#>^Խx@ؽ6.:,#>Xs0w 65 ,#>`sP=65d#^Խ(=ѯ/Pd#>ħmd#k!=>Ymd#ú=H=/P/Pd#X>Ш=ĉmYd#`>v ĉmd#=X@ؽ/Pѯl#l!=,dZl#{˳>ޢ{i=ӳ>ޢ{=׳>ޢ{(۳>ޢ{ֽ߳>ޢ{>ޢ{<>^Խ(=ZY=^Խ(=Z=^Խ(=Z)^Խ(=Zֽ^Խ(=Z ^Խ(=ZD>k!=> !{i=k!=> !{=k!=> !{(k!=> !{ֽk!=> !{k!=> !{D>̺=(=ZZi=ʺ=(=ZZ=ɺ=H=ZZ(Ǻ=H=ZZֽƺ=H=ZZź=H=ZZD>V>={ !i=X>={!=X>={!(X>={!ֽX>={!X>={ !D>X>v {i=Z>v {Q=ȋ> ^ ~ȋ> ~ֽ^>v {`>v {<>=x@ؽdZb=A=׽(k'ֽA=׽Q׳k =X@ؽ/}Zzt7>_`!=#KA4p_`!=f]4t7> BLtB'˼<>^Խx@ؽc=?ԽXٽR)_g'ֽ?Խ,ؽGK ^Խ@ؽ |<>Xs0w !ZY=Xs0w S q=]% R h]% jֽVspw b Vspw _<>`sP=^ !Y=`sP=]!=^sP=[!)^sP=[!ֽ^sP=]! ^sP=^ !F=vܷ U==ܷ U ==ܷ >>=Z=ܷ UGZ=ܷ U쳽=ܷ >W=ܷ Wܷ sܷ ewWӽнܷ aaw1=ܷ ew=нܷ aw>O4ܷ w>=ܷ wٱ=Q=ܷ w=M>ܷ w/tM>ܷ wWӽQ=ܷ a wn=ܷ ewng4ܷ ewH  CGֽԽ  =H  uJ=yԽ  AHL&>7  bҲL&>=!=  btҲ={=  AHFH=4v>  ub4v>  bGֽ{=  MH=!=  RuO  R,$>UѽH=fxJ,$>`o=fx = ,$>`p>fx ,$>Uѽ7սfxJJ,$>zQfx ,$>3=Qfx= ,$>=7սfxJ4$>>0>fx)4$>>o=fx)= 4$>=H=fx4$>3=>fx= )4$>{>fx)4$>rcgd=_m/4$>H=`m5ɿ4$>i*l=gd=_m4$>ꁠ=<_mȿ4$>ꁠ=`_mȿ54$>*l=06k`m/4$>j<`m7@4$>`m47@4$>rc06k`m//4$>%_m8@54$>% <_m8@$9ѽh'=\$$VP= $$Np~$$ѽս$$,$$5s= $O =ս\$X>}`%$P>Я=`% $ ='=\\$r=> `%$t>`%$C{cod=/$>襜=4ɿ$o<=ɿ$-3l=pd=$=<ɿ$=`ɿ4$a3l=p>k/$$zp<8 7@$$X 47@$${c>k//$$+7@5$$+ <7@#Wab=X#) #+aiXX#˟ힽ> Wx#V<<ힽWx#uj=piX#.h=`R⩇> #'h=<⩇#Aj=b=#;<=ߩ#̟h=> #>ab=WX#>} uLWWx> #>a0iXXX#>ş螽X> Wx#>5<螽XWx#> j=0iXX#>vb=`LX> #>vb=j=b=W#>5<Ȁ=Xߩ#>şȀ=X> E4ɟ= !^E4'ab=ZE48<=^E4j=b=E4De=<^E4ub=`L^ !E45j=0i~ZE4:9<ꞽޢ{E4ȟꞽ !{E4apiZZE4; O{ !E4] <{qo=Yv'!` =e9Խ$zZw\4>á{ޘ\4>!Z!=u{2! ==zZZQo=>05w'!{/>05wޤ{ֽ=꽌Zֽg9ԽX꽌rYv\,Z!=,a+!,aDATA,& & DATA& 5" "" """"""""""""" "" "" "" " """"""" """ " !"!"""#" #"$"$%"%&"&'"'("()")"*"*+"+,",-"-."./"/"0"01"12"23"34"45"5"6"67"78"89 9:":;";"<"<=">?"?"@"B" D"DE"FG"G" H"HI"IJ"JK KL"LM"M" N"NO"OP"PQ"QR"RS"S"   ! " # $ % & ' ( ) $* %+ &, '- (. )/ *0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; 6< 7= :> ;? <@ >A"@B"AC"BD CF"DH EI FL GM HN IO JP KQ LR MS #S "R !Q P O N T_"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"T`"`a _a"`b Ub"bc Vc"cd Wd"de Xe"ef Yf"fg Zg"gh [h"hi \i"ij ]j"jk ^k"ak `l"lm am"ln bn"no co"op dp"pq eq"qr fr"rs gs"st ht"tu iu"uv jv"vw kw"mw lx"xy"my"xz"nz"z{"o{"{|"p|"|}"q}"}~"r~"~"s""t""u""v""w"y"x "y z "{ "| "} "~ " " " " " """"""""""""""""""""""""""EJ"BE"=@"8="9>"FK" """ "" """"""""""""""""""" # # # # # # # # # # # # """""""""""""""""""""" "" " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""#"##"" " " " " " " " " " " " """"""""""""?A A"CG C"J""E""B""@""=""8""9"">""F""K""A""C"" DATA,& 8& DATA8& 4  !!""## $$%%&&''(()) *$$*+%%+,&&,-''-.((./))/0**01++12,,23--34..45//56006711782289339:44:;55;<66<=7:>?;;?@<<@=>A??AB@AC DBBDECFGCG HDDHIEFLMGGM NHHNOIIOPJJPQKKQRLLRSMMS S##SR""RQ!!QP  POON N_T`a`TUbVcbUWdcVXedWYfeXZgfY[hgZ\ih[]ji\^kj]_ak^a`lmbnl`conbdpoceqpdfrqegsrfhtsgiuthjvuikwvjamwkmlxynzxlo{znp|{oq}|pr~}qs~rtsutvuwvmywyxxzz{{||}}~~y7=89>:FKLEIJ       KFJKEJBE@B=@8=98>9A>CAFCME& 2Xg' & MECylinder.036H @& 9' & ' p& '  7' .xN >=>T>[e>DATA@& x DATA,p& & DATA+& 8.t>>X:ξZZώR>X:ξ{ !ώ>X:ξ{t(ː>X:ξZc/&>X:ξ !^T/&>X:ξ^9(ː>X:ξǾ>X:ξ^ǾR>\:ξ^ !9>>\:ξZV65>\:ξޢ{d95>X:ξ !{t@>B<>>\ώR>BPC@C<>\a2&>PC<\R/&>B<\9'ː>B<\Ǿ>B<\ǾR>B<\9=>B<>\X65>BB<U\\W>B<ώR>i޲{ !t>>i޲ZZώ>h޲{t)ː>h޲Zc/&>h޲ !^T/&>i޲^9(ː>i޲Ǿ>h޲^ǾR>l޲^ !9>>l޲ZV65>l޲ޢ{d95>h޲ !{ώR>pXqYt>>@@qYώ>pXNqYt)ː>@CqYc/&>qYT/&>N萧qY9(ː>CCqYǾ>NqYǾR>qY9>>C@qYV65>NpXqYd95>pXqYώR>;Yէt>>;AAէώ>;Yէt(ː>;Aeէc/&>;aէT/&>;aէ9(ː>;eeէǾ>;aէǾR>;aէ9>>;eAէV65>;Yէd95>;Yէo\î>;Yէ>;AAէo >;Yէی>;AeէA6ƃ>;aէm6ƃ>;aէ/)ľی>;eeէ>; >;aէ>;[î>;aէ0)ľ>;eAէm.>;YէA2>;Yէo\î>ppXqY>p@@qYo >npXNqYی>n@CqYA6ƃ>nqYm6ƃ>pN萧qY/)ľی>pCCqY>; >nNqY>;[î>sqY0)ľ>sC@qYm.>sNpXqYA2>npXqYo\î>̾{ !>̾ZZo >̾{ی>̾ZA6ƃ>̾ !^m6ƃ>̾^/)ľی>̾>; >̾^>;[î>̾^ !0)ľ>̾Zm.>̾ޢ{A2>̾ !{o\î>{ !>ZZo >ޝ{ی>ޝZA6ƃ>ޝ !^m6ƃ>^/)ľی>>; >ޝ^>;[î>㝴^ !0)ľ>㝴Zm.>㝴ޢ{A2>ޝ !{ώR>1;{ !t@>1;ZZώ>q;{t+ː>Q;Za2&>q; !^R/&>1;^9'ː>1;Ǿ>Q;^ǾR>Q;^ !9=>Q;ZX65>Q;ޢ{g95>Q; !{t>>nоZZd95>nо !{V65>rоޢ{9>>rоZǾR>rо^ !Ǿ>nо^9(ː>nоT/&>nо^c/&>nо !^t(ː>nоZώ>nо{ώR>nо{ !t>>=Ѿ>>ώR>=ѾUώ>=ѾUt(ː>=Ѿ>c/&>=ѾT/&>=Ѿ9(ː>=ѾǾ>=ѾǾR>=Ѿ9>>=Ѿ>V65>=ѾUd95>=ѾU\W>=Ѿ==Cʼ>>c>(=CʼUc>pCʼU頣=0νCʼ>[_=( Cʼm*'( Cʼm,ֽ0νCʼ[[ܯCʼm頣ܯ=Cʼm,ֽ=Cʼ[>R' >CʼUC= >CʼU==<>>`\c>H=@[`\=( <m`\'0 <m`\~,ֽHν<[[`\ܯ`\~' ><U`\= ><U`\L֟>A<U \pڶ>AA<> \A< \A< \&ʾWE>A< \fڶu>A< \D֟u>A< \狾]E>A<> \xe4>AAA<>> \H֟>`Unڶ>`U*ʾ&>`>``*ʾZE>`jڶu>`H֟u>`狾ZE>`>xe4>`Uxe>8>`U狾&>`>>==< !{~' ><ޢ{,ֽ=<Zܯ=<^ !ܯ<^~,ֽHν<'0 <^=( < !^= ν@<{c>H=<{ !c>H=={ !===ZZc>@={= ν=Z=( = !^'0 =^~,ֽHν=ܯ=^ܯ==^ !,ֽ==Z~' >=ޢ{= >= !{= >$==vc%==$=VVc%~' >$=R=vc%,ֽ=$=qVc%ܯ=$=Éc%ܯ$=ÉRc%~,ֽHν$=qqc%'0 $=RÉd%=( $=Éd%= ν$=Vqc%c>@$==vRc%c>H=$==vc%=x=t =**Jq߇>p1=t =9jJq߇>ht =9Jq=̽t =*Jqj= t =jwJq(P& t =wJqԽ̽t =JqVAЉt =wƖJqVA1=t =wjJq ԽX=t =*JqP&9 >t =9Jq?j=9 >t =j9Jqh+t =C= >ټ !{R' >ټޢ{,ֽ=ټZܯ=ټ^ !ܯټ^,ֽ0νټ*'( ټ^_=( ټ !^=0νټZc>pټ{c>(=ټ{ !==ټZZ==缁ZZc>(=缢{ !c>p缢{=0ν缁Z_=(  !^*'( ^,ֽ0νܯ^ܯ=^ !,ֽ=ZR' >ޢ{C= > !{C= >9T0qR' >90q,ֽ=9$Rܯ=9ЎTܯ9Ў,ֽ0ν9$$*'( 9Ў_=( 9TЎ=0ν9R$c>p90qc>(=90qT==9RRR=M=, Ĉ >=,, Ĉ >,,ĈR=˽, Ĉ= , Ĉ% , Ĉ:]ӽ˽,Ĉ, Ĉx=, ĈD]ӽM=, Ĉ%ȼ >,,Ĉ=ȼ >, ,Ĉh+,狾&><{ !xe4><{狾]E>< !^fڶu><^&ʾWE><<^<^ !.ʾ&><Zpڶ><ޢ{L֟>< !{L֟>< !{pڶ><ޢ{.ʾ&><Z<^ !<^&ʾWE><fڶu><^D֟u>< !^狾]E><{xe@8><{ !狾&>4b=ZZxe@8>4b={ !xe4>4b={狾]E>4b=ZD֟u>4b= !^fڶu>4b=^&ʾWE>4b=4b=^4b=^ !.ʾ&>4b=Zpڶ>4b=ޢ{L֟>4b= !{L֟>=Lt)pڶ>=t).ʾ&>=~U)=2L)=2)&ʾWE>=~~)fڶu>=2)D֟u>=L2)狾]E>=U~)xe4>=t)xe@8>=tL)狾&>=UU) \h>@=='='Ws >@=5\Ws^>@=5Ws\>@=='Wsv>@=\fWsv>@=fWsTʾ>@=Wsվ^>@=fʤWsվ >@=f\WsTʾc>@=='Wsį >@=5Ws >@=\5WsXX,>@=狾&>YJǼZZxe>8>YJǼ{ !xe4>YJǼ{狾ZE>YJǼZH֟u>YJǼ !^jڶu>YJǼ^*ʾZE>YJǼYJǼ^YJǼ^ !*ʾ&>YJǼZnڶ>YJǼޢ{H֟>YJǼ !{H֟>9Ѽ !{nڶ>9Ѽޢ{*ʾ&>9ѼZ9Ѽ^ !9Ѽ^*ʾZE>9Ѽjڶu>9Ѽ^H֟u>9Ѽ !^狾ZE>9ѼZxe4>9Ѽ{xe>8>9Ѽ{ !狾&>9ѼZZ狾&>M T T|xe>8>Mr|xe4>Mr>|狾ZE>M T|H֟u>M4|jڶu>M>4|*ʾZE>M|M4>|M4|*ʾ&>M T|nڶ>M>r|H֟>Mr|XX,> 3>  0Q֜3> 0Q ʾ~> iܗ#Q`eվ> b Q`eվq> bQ ʾ> iiQԜHRw> bQHRw>  bQ̏> #iQSKq> 0QSK> 0 Q̏~> ##Q֖=X=<__=(><6=H=9ʼ__v= >9ʼ5v$2 ><2 >9ʼv 8=<_ @=9ʼ_v=#<m>#9ʼvm>=<5m>ț=9ʼ5v>!=9μ=(=9μgg>!=b<Q~=(=b('9μW>'b<WQ~=(9μg=b9μW쯁>5ĩ>b9μ쯁=̩>b<Q~=(=bb< !{=(=9μZZ=ĩ>9μ !{>5ĩ>b<[$4k;5ĩ>9μ1$LkW7'=b'b<{>('9μ{>!=b<{ !>!=9μ{ !Lt>[|Tܹ>[``Lt><<|T߹><<``Lt>[|Lt><<|Tz>[` T}><<` )i>[)i><<i>[i><< \Ͼz>[ \Ͼv><< ܾ>[ܾ><<ܾ>[ܾ><< \Ͼ۹>[ `\Ͼٹ><< `>[|><<|)>[|)><<| dž~G>>>]¼C㌃dž{G>]¼ꌃں>><t|ֺ>]¼㌃ϾxG>><%t|ϾzG>]¼%ꌃ$Lݾ>><Ct|$Lݾ>]¼C$LݾS>><t|$LݾS>]¼Ͼ$>><%%t|Ͼ$>]¼%%κg>><t|Һ„g>]¼„g>>]¼Cdž$>><%t|dž$>]¼%rS>><t|rS>]¼r>><Ct|r>]¼Cdž{G>]¼ZZr>]¼{ ! dž~G>>><{ !rS>]¼d1rS>><dž$>]¼gdž$>>]¼Ӛ„g>><3е=Һ„g>]¼^κg>><^Ͼ$>]¼Ͼ$>><$LݾS>]¼^$LݾS>><^$Lݾ>]¼^ !$Lݾ>><^ !ϾzG>]¼ZϾxG>><Zֺ>]¼ޢ{ں>><ޢ{>]¼ !{>>< !{^/ >GR<@Ɯd>GR¼fƜd>¼Uo/>GR<7GZUo/>¼6HX>ク='Hvμ6#HDATA,' ' DATA5' 5x  "   "  "  "  "  "  "  "  " " " "       ! !" "# #$ $ %"&"'"(")"*"+" ,"!-""."#/"$0"%&"%'"'("()")*"*+"+,",-"-."./"/0"&0"1"2"3"4"5"6"7"8"9" :" ;" <"12"13"34"45"56"67"78"89"9:":;";<"2<"1= 2> 3? 4@ 5A 6B 7C 8D 9E :F ;G <H =>"=?"?@"@A"AB"BC"CD"DE"EF"FG"GH">H"%I &J 'K (L )M *N +O ,P -Q .R /S 0T IJ"IK"KL"LM"MN"NO"OP"PQ"QR"RS"ST"JT"=U">V"?W"@X"AY"BZ"C["D\"E]"F^"G_"H`"UV UW WX XY YZ Z[ [\ \] ]^ ^_ _` V` Ua"Ia"Vb"Jb"Wc"Kc"Ld"Xd"Me"Ye"Nf"Zf"Og"[g"Ph"\h"Qi"]i"Rj"^j"Sk"_k"`l"Tl"ab ac cd de ef fg gh hi ij jk kl bl m"m" n"n"o"o"p"p"q"q"r"r"s"s"t" t"u"!u"v""v"w"#w"x"$x"mn mo op pq qr rs st tu uv vw wx nx y"yz z"z{ {"{| |"|} }"}~ ~"~ " " " " " "y "#y""#"#"#"#"#~"#}"#|"#{"#z"##!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""" "" " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " " " "" " " " " " " " "  "    " "  "  "  "  " " """"""""""""""""""""""""""""""""""  " " !" !" ""!""""# # # # # # # # # # !# "# $"$% %"%& &"&' '"'( ("() )")* *"*+ +"+, ,",- -"-. ."./ /"$/ /0"0; $;".1"01 -2"12 ,3"23 +4"34 *5"45 )6"56 (7"67 '8"78 &9"89 %:"9: :; ;<"<= :="=> 9>">? 8?"?@ 7@"@A 6A"AB 5B"BC 4C"CD 3D"DE 2E"EF 1F"FG 0G"<G GH"HS"<S"FI"HI"EJ"IJ"DK"JK"CL"KL"BM"LM"AN"MN"@O"NO"?P"OP">Q"PQ"=R"QR"RS"ST"TU"RU"UV"QV"VW"PW"WX"OX"XY"NY"YZ"MZ"Z["L["[\"K\"\]"J]"]^"I^"^_"H_"T_"T` _` ^` ]` \` [` Z` Y` X` W` V` U` b"ab a"c"bc d"cd e"de f"ef g"fg h"gh i"hi j"ij k"jk l"kl al ax"mx lm"mn kn"no jo"op ip"pq hq"qr gr"rs fs"st et"tu du"uv cv"vw bw"wx wz"yz"xy"v{"z{"u|"{|"t}"|}"s~"}~"r"~"q""p""o""n""m""y"y""""""""""""""~""}""|""{""z""             "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""" " "" " "  "  " "  " " """ """"""""""""""""""""""""""""""""" " "!"!"  " !"  "  """""""" !"""" #"$ %"&"'""# $% "& $' &' #% "( ( #)")"$* * %+"+"&,","'-"-"() *+ (, *- ,- )+ DATA,7' 9' DATA.9' 4N   &%%''(())**++ ,, !--!".."#//#$00$&21133445566778899:  :;  ;< 2 <2>=11=?33?@44@A55AB66BC77CD88DE99EF::FG;;GH<<H>2J&%II%'KK'(LL()MM)*NN*+OO+,PP,-QQ-.RR./SS/0TT0&J>VU==UW??WX@@XYAAYZBBZ[CC[\DD\]EE]^FF^_GG_`HH`V>VbaUbJIaUacWaIKcWcdXcKLdXdeYdLMeYefZeMNfZfg[fNOg[gh\gOPh\hi]hPQi]ij^iQRj^jk_jRSk_kl`kSTl`lbVlTJbnmn mmom oopoppqpqqrqrrsrsst st tu!tu!uv"uv"vw#vw#wx$wx$xnx n yz z{ {| |}}~~yy~~}}||{{zzy                  !   "! "######### # !#!"#"$%%&&''(())**++,,--..//$$/0;/.10.-21-,32,+43+*54*)65)(76('87'&98&%:9%$;::;<=9:=>89>?78?@67@A56AB45BC34CD23DE12EF01FG;0G<<GHSGFIHFEJIEDKJDCLKCBMLBANMA@ON@?PO?>QP>=RQ=<SRRSTUQRUVPQVWOPWXNOXYMNYZLMZ[KL[\JK\]IJ]^HI^_SH_T`T_`_^`^]`]\`\[`[Z`ZY`YX`XW`WV`VU`UTbacbdcedfegfhgihjikjlkallaxmklmnjknoijophipqghqrfgrsefstdetucduvbcvwabwxxwzywv{zvu|{ut}|ts~}sr~rqqppoonnmmxyy~}~|}{|z{yz           !   !    !  !    "#%$&"$''&#%()("#)+*+%$*,(,&"(*-*$'--,-'&,)+)#%+MEXg' 28"( & MECylinder.0370 h' x' j' ' h' Ȣ'  ' T$\<|>My=>DATAh' x DATA,h'  j' DATA|8 j' 8=2=>^=bh<>^^=q>^ !0='+>Zg@<k>ޢ{@Ÿk> !{>O+>ZZ~lq>{ !0~h<>{>2=>ZŸr=> !^f@< r=>^,ZZ7 !{ƼP=b>ޢ{tg=b>Zl^ !b>^ti`b> Ƽb>^8 !^\Zޓ=>b>{ޓ=bm{ !ޓ=bm<>UH\,>>H\ޓ=>>U H\\>IH\8<>UH\ Ƽ> UH\ti`>IIH\>U H\l<>UH\tg=>I>H\ƼP=> UH\7UH\=2=6>[f@< r=6>[Ÿr=6>[>2=6> ?[0~h<6>V[~lq6>V[>O+6> ? ?[@Ÿk6>V[g@<k6>V[0='+6> ?[^=q6>[^=bh<6>[8G+W=ZZ~LqW={ !0=/+dW=Z^=qW=^ !^=Rh2=W=Z ~h7<ʹ=v2=ʹ=A[v2=1=wO^=1=fl-=ʹ=fLHF;ʹ=V$9ʹ=̫ʹ=K΃Zɾ!{ʹ=bھ^ʹ=Oʹ=fz<ʹ=|1Zfz<1=0F̫1=fk_g'<ʹ=`/ʹ=`:ʹ=jʾʹ=F5Aʹ=NӏZ۾Iʹ=:i\Nkʹ=ꢜ<1=d>ꢜ<ʹ= G,ZF5A1=oY# <ʹ=p%#ʹ=.ǎZ89ʹ=.ǎZvʾ(gʹ=.ǎZRDʹ=l8a۾w ʹ=.ǎZFQ~ʹ=.ǎZ2!<ʹ=02!<1=RD1=6>f;ʹ=.ǎZݾ p`j)(=ʹ=f)6Įʹ=j)*uʹ=Zn)VP=1=n)VP=ʹ=ZZj)*u1=n)T=ʹ=ZK(=ʹ=VK6Įʹ=ZK*uʹ=Z^KVP=1=^KVP=ʹ=ZZZK*u1=^KT=ʹ=fV<ʹ=·¾G'ʹ= ʹ=FƁZƦ8=1=5nƦ8=ʹ=vNZ 1=c7 =ʹ=׽(=ʹ=׽6Įʹ=׽*uʹ=Z׽VP=1=׽VP=ʹ=ZZ׽*u1=׽T=ʹ=VK6Įʹ=׽6Įʹ=(ҽ6Įʹ=ZZK(=ʹ=׽(=ʹ=0ҽ(=ʹ= þo(ʹ=·¾G'ʹ=.k6Įʹ=(zb<ʹ=xffV<ʹ=@9(=ʹ=1!cf)6Įʹ=j)(=ʹ=NMJk<ʹ=Saa>7<ʹ=Saa5Ӿ0jʹ=Saa0ҽDث=ʹ=@ҽї|=ʹ=0ҽz<ʹ=0ҽDث==0ҽ(==0ҽz<=(ҽ6Į=Z@ҽї|==NMJk<=Saab<=xf5Ӿ0j=Saa þo(=>7<=Saa(==1!cj)(==f)6Į=6Į=(zZK(==VK6Į=fV<=@9·¾G'=.k׽(==׽6Į=׽6Įm=VK6Įm=(ҽ6Įm=ZZK(=m=׽(=m=0ҽ(=m=·¾G'm=.k þo(m=6Įm=(zb77,=1=I2]>,=ʹ=3Z~1=Jjᄇ<ʹ=f@<k{ޢ{`Ÿk{ !{>G+{ZZ~<q{{ ! =7+LZ^=q{^ !^=Jh<{^ =2={@f@< r={^Ÿr={ !^>2={Z ~h<{{ͨ=îAY{>ͨ=J5AAoZ":!,=AIAJj ~h< {>2= ZŸr= !^@f@< r= ^ =2= ^=Bh< ^^=q ^ ! =7+6Z~<q { !>G+ ZZ`Ÿk !{f@<k ޢ{ᆰ,=/32Y>,=<⸽IfFl;/Ӿ/~/(KBþ./jĮ/1ѽ*u/ϽDث=/Ͻ(=/ȍϽVP=/Z׽6ˏ쀏ľS쀏VK6ˏ쀏f)6ˏ쀏6ˏ쀏׽r<쀏׽͗|=쀏׽Dث=쀏Ҿl]쀏Jླ[%<쀏7jz<쀏ZKr<쀏^K͗|=쀏ZKDث=쀏j)r<쀏r<쀏͗|=쀏n)͗|=쀏j)Dث=쀏Dث=쀏׽>Į쀏׽(=쀏·¾ G'쀏f龺V<쀏VK>Į쀏ZK(=쀏>Į쀏f)>Į쀏(=쀏j)(=쀏>7<쀏 þs(쀏5Ӿ,0j쀏NMBk<쀏Z<@ҽ͗|=쀏(ҽ>Į쀏0ҽr<쀏0ҽ(=쀏0ҽDث=쀏0ҽr<쀏@ҽ͗|=쀏0ҽDث=쀏5Ӿ,0j쀏SaaNMBk<쀏Saa>7<쀏Saaj)(=쀏f)>Į쀏(=쀏1!cf龺V<쀏@9ZĮ쀏(z þs(쀏·¾ G'쀏.k0ҽ(=쀏׽(=쀏ZK(=쀏(ҽ>Į쀏ZVK>Į쀏׽>Į쀏׽>Įq׽(=q·¾ G'q.kf龺VĮqZK(=q>Įq(zf)>Įqj)(=q(=q1!c>7ĮqZ0ҽr7Į/(=/1!cf龺VĮ/(z·¾ G'/.k þs(/0ҽ(=/׽(=/ZK(=/(ҽ>Į/Z׽>Į/VK>Į/׽T=/׽*u,⸽׽VP=/Z׽VP=<⸽׽*u/׽>Į/׽(=/7 =/ <⸽cƦ8=/vNƦ8=<⸽5n /F·¾ G'/f龺VĮ/ZK(=/n)T=/j)*u<⸽n)VP=/Zn)VP=<⸽j)*u/f)>Į/j)(=/>F;/.ǎRD<⸽6*!<<⸽*!:ilNk/۾I/F5A/Nqjʾ/`:///gs'7Į/*u/$w(=/ঢ়Į/0ҽ*u/0ҽDث=/0ҽ(=/8ҽVP=/Z7ݼVP=/xW<=/1[< ঢ়<(=/Z`7ݼ(=/ޓ=Jm<ս{ !ޓ=Vս{LĮ/rĮ/1ۀpb*u/ۀռ!/1ۀj2=,ZŸr=, !^@f@<r=,^=2=,^=Jh<,^^=q,^ !0=/+ Z~\q,{ !>G+,ZZ@Ÿk, !{g@<k,ޢ{ޓ=Jm<_:ޓ=V_N:LO+n??'~|qnV'0~gy2=n?'Ÿr=n'f@< r=n'=2=n'7l<RΒR 黣ti`GG Ƽ Q8<R\Gޓ=NU 黣,>ޓ=Zm<Uޓ=Zm< { !ޓ=N {\y2=fZ0~gO+fZZ@Ÿkf !{g@<kfޢ{0='+fZ^=qf^ !^=Zh#?#@#A#B#C# D# E# F#G#01#02#23#34#45#56#67#78#89#9:#:;#1;#<=!>?!=>!<@!@A!AB!BC!CD!DE!EF!FG!?G!;H#HI#1I#:J#HJ#9K#JK#8L#KL#7M#LM#6N#MN#5O#NO#4P#OP#3Q#PQ#2R#QR#0S#RS#IS#IT!TU#SU#UV#RV#VW!QW!WX!PX!XY!OY!YZ!NZ!Z[#M[![\#L\!\]#K]!]^#J^!^_#H_!T_# `#0`# a#1a#b#2b#3c#c#d#4d#5e#e#6f#f#g#7g#h#8h#9i#i#j#:j#;k#k#`a!`b!bc!cd!de!ef!fg!gh!hi!ij!jk!ak!Vl!Um#lm!no#qr#st!tu#uv#rv#Uw#Tx#Zy#[z#\{#]|#^}#_~#m!n#o#p!s!wx!yz!z{!{|!|}!}~!x~!w!!m#n#o!l!q!p!!!!!!##!!#!#####!!!!!!!#!!!!!!!!#!!!!!!###!!!!!#!!##!#!##!###!!##!!!!!!!!!!###!#!!!!!!!###!#!!!!!!!######!!##!!!!!!!!!q##t##s##!!p##!!!!!!!!!###t######q########################r##v##u####!!!!#!!!!!##!!!!!#!!!!#!!!!!!!!!!!!!!!!!#!##!#!##!######!###! ! ## # !  # ! !  # # # ! #!#!# ### ####### ##### ## #### ######## # # #!#!#!#"#"#"#######$!$%!%!&'!'(!()!&)!$'!%&!%*!*!&+!),!+,!*+! -!$-!-!'.!./!(/!.!/!-.!"0!0!*0!1!12!2!+1!,2!01!(3!34!)4!3!4!45!,5!5!/6!36!!6!6!#7!7!57!27!o8#p8#l9!q9!V:!r:!Z;#s;#Y<!t<!X=!u=!W>!v>!?!?!y@!@!A!A!9:!;<!<=!=>!:>!8?!;@!8A!9A!B!B!C!C!D!D!E#E#F!F!G!G!H!H!I#I#J!J!K!K!BC!DE!DF!FG!CG!HI!EJ!BK!IK!<L#=M#>N#?O#@P#AQ#BR#CS#DT#EU#FV#GW#wX#xY#yZ#z[#{\#|]#}^#~_#`!a#b#c!d!e!f#g#h#i#j#k!l#m#n#o#p!q!r!s!t!u!v!w!?x!@y!Hz!J{!LM#NO#MN#LP#PQ#QR#RS#ST#TU#UV#VW#OW#XY!Z[![\!\]!]^!^_!Y_!X`!ab!`e!ae!jl!km!ln!mo!fp!gq!pr!qs!ft!ht!gu!iu!cv!rv!dw!sw!cx!bx!dy!Zy!hz!jz!i{!k{!o!n!|#|}#}~#~#########|#}#~##########!!!!!!!!!0!:!1!;!3#=#2!<!4!>!5!?!7#A#6!@!8!B!9!C!!!!!!!!!!L!M!O!Y!P!Q!\!{!]!z!^!y!_#x#`!|!a!f!b#c#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########################################!#!#!###!!#!###!!###!######!##!#!##!#!!!!!!!!!!!!!!!!!#!!!!#!!!!!##!!!!!#!!!!###]##\##`####?#B##>#######J## ##C##H#@## #a######^####!!!!!!L!!O!#b#!P!#_##^##a# ! ! !  !  !:!D!;!E! =# G# <! F! A# I# @# H# C# J#!!!!!!!#!###!!!!!D!E!G#F!I#H#J##$#&!'!"#(##)! %# !# *!!##!+!",#"###-!%/!$%#$.!&(!&.!&0!'1!',#(3#()#)2!*/!*+!*4!+-!+5!,7#,-!-6!/8!./!.9!03!09!17!23#48!45!56!67!89!:=!:C!;A#<=#>B#>?#?@#@A!BC#DG!DJ!EI#FG#HI!KN!MN!KS!KR!Lb!La!Mf!Mc!Nd#Ne#QR!S[!TZ!TU!UV!VW!WX!XY!Z[!O_!Pb!Qc#Rd#Se!Ts#Ut#Vu#Wv#Xw#Yx#Z~#[}#\`#\]#]^#^_!`a#cd#ef!e}#f|!gq!gh!hi!ij!jk!kl!lm!mn!no!op!pr!qr!g#g#h#h#i#i#j#j#k#k#l#l#m#m#n#n#o#o#p#p#q#q#r#r#s~#s!st#t!tu#u!uv#v!vw#w!wx#x!xy!y!yz!z!z{!{!{|!|#|}#}#}~#~!########################!!!!!!!!!!!!########################!!!!!!!!!!!!################################################!!!!!!!!!!!!!!!!!!!!!!!!fF#p!r!v!cP!x!bQ#aR#eK!`S!X[#YZ#_T#^U#]V#\W#[X#ZY#y!dO!w!s!q!gE#u!i;#{!k1!m'#o#!!!! !!!"!#!%!$!n#l)#j2#z!h<#t !DATA, ' x' DATA8x' 4   !!" "# # $% %& &' '(())**++,,--..//$$//..--,,++**))( ('! '&"!&%#"%$#=<?>>=<@@AABCBC DD EE FF GG?1;HI;:JH:9KJ98LK87ML76NM65ON54PO43QP32RQ20SR01ISSITURSUVQRVWPQWXOPXYNOYZMNZ[LM[\KL\]JK]^HJ^_IH_T0`a1` a2b`0b `3cb2cb4dc3dc5ed4ed6fe5fe7gf6gf8hg7hg9ih8ih:ji9ji;kj:kj1ak;a kVUmlwUTxz[Zy{\[z|]\{}^]|~_^}xT_~Uwmonmlnomntspsqptqvruvturq                      !!""##$%&'()%$'&%*+&),*%&+ -$ -'./(./$-.'-."0"*0121+,2010*+1(34)34)45,45/63(6!3!67#,5725#7276/l9:V9qr:Y<;Z<ts;X=<Y=ut<W>=X>vu=V:>W:rv>p8?8o?@;s@yZ;A8pAo8q9A9lABCBCDEDEFDFDGFGFCGCGHIHIEJEJKBKBIKIKM=<LO?>NN>=ML<@PP@AQQABRRBCSSCDTTDEUUEFVVFGWWG?OXwxY[zyZ\{z[]|{\^}|]_~}^Yx~_wX`bae`aejlkmlnmonofpgqprqstfhtugiuvcrvwdsw?xcbx?y@dZy@yzHhjHzJ{ik{J1{k;i{jz2zh<ZyYydOQxbPcxwsOdwrvvcP;uiEguht <tfF sqprEqgfpFonmo')nlkm'12)ljaeKRe`SKbaRQ[S`XY_TZ_^UT^]VU]\WV\[XW[ZYXXYZ[|}|~}~03=:90:C17A;32<=48B>54>?65?@76@A89CBMfaLcMLbxYO_QcbP\`|{]\{z^]zy_^yx`af|`a^]]\\`CB?@>?B>JHJ  C H@ a^bLLa_OPb^_ :=GD  C:DJ  ;AIE   =<FG    A@HI  DGJDEIGFIH$" %! #!"#%$&(.$&'",()* %/+! *-#!+,"#-/%$.0&(39.&01',73()24*/85+*46-+57,-68/.9KNdRSeNKNMcdefMNQRdc}eS[ZTs~TUtsUVutVWvuWXwvXYxw[Z~}|fe}qggqghhghiihijjijkkjkllklmmlmnnmnoonoppoprrprqqr~ssttuuvvwwxxyyzz{{||}}~ME8"( 2( Xg' MECylinder.038= x#( H( %( R( #( P(  ( .xN >~<>T>\d>DATAx#( x DATA,#( %( DATA+%( 8.l>4;Zǎ8>4;^ !ǎw>4;^l >4;Je>4;^;e>4; !^1 >4;ZǾx>4;{Ǿ8>8;{ !1>8;ZZ=U>8; !{KU>4;ޢ{l>(G<>ǎ8>(G<ǎu>G<l>G<He>G<9e>(G<1 >(G<>Ǿz>8G8G8G<>>?U>8G<UNU>8G(G<ǎ8>Ev^ !l>EvZǎw>Dv^l >DvJe>Dv^;e>Ev !^1 >EvZǾx>Dv{Ǿ8>Hv{ !1>HvZZ=U>Hv !{KU>Dvޢ{ǎ8>cHl>cHC@ǎw>bHN菦l >bHCCJe>bHN萧;e>cH1 >cH@CǾx>bHpXN菦Ǿ8>fHpX1>fH@@=U>fHpXKU>bHNpXǎ8>\(;a+Xl>\(;eA+Xǎw>\(;a+Xl >\(;ee+XJe>\(;a+X;e>\(;a+X1 >\(;Ae+XǾx>\(;Y+XǾ8>`(;Y+X1>`(;AA+X=U>`(;Y+XKU>\(;Y+Xgǜ>]̾a+Xo} >]̾eA+Xg(>]̾a+Xo}R>]̾ee+X9>]̾a+Xd>]̾a+X!ľR>]̾Ae+X6;)>]̾Y+X6;ǜ>b̾Y+X!ľ >b̾AA+Xd>b̾Y+X9>]̾Y+Xgǜ>Lo} >LC@g(>JN菦o}P>JCC9>JN萧d>L!ľR>L@C6;)>JpXN菦6;ǜ>OpX!ľ >O@@d>OpX9>JNpXgǜ>1̾^ !o} >1̾Zg(>1̾^o}R>1̾9>1̾^d>1̾ !^!ľR>1̾Z6;)>1̾{6;ǜ>1̾{ !!ľ >1̾ZZd>1̾ !{9>1̾ޢ{gǜ>5^ !o} >5Zg(>5^o}P>59>5^d>5 !^!ľR>5Z6;)>5{6;ǜ>5{ !!ľ >5ZZd>5 !{9>5ޢ{ǎ8>!;^ !l>!;Zǎu>a;^l>A;He>a;^9e>!; !^1 >!;ZǾz>A;{Ǿ8>A;{ !1>A;ZZ?U>A; !{NU>A;ޢ{l>JоZKU>Jоޢ{=U>Nо !{1>NоZZǾ8>Nо{ !Ǿx>Jо{1 >JоZ;e>Jо !^Je>Jо^l >Jоǎw>Jо^ǎ8>Jо^ !l>iо>\ǎ8>iо\ǎw>iо\l >iо\Je>iо\;e>iо\1 >iо>\Ǿx>iоU\Ǿ8>mоU\1>mо>>\=U>mоU\KU>iоU\CO~ݥ>iо==Cʼ>>c>(=CʼUc>pCʼU頣=0νCʼ>[_=( Cʼm*'( Cʼm,ֽ0νCʼ[[ܯCʼm頣ܯ=Cʼm,ֽ=Cʼ[>R' >CʼUC= >CʼU==<>>`\c>H=@[`\=( <m`\'0 <m`\~,ֽHν<[[`\ܯ`\~' ><U`\= ><U`\L֟>A<U \pڶ>AA<> \A< \A< \&ʾWE>A< \fڶu>A< \D֟u>A< \狾]E>A<> \xe4>AAA<>> \H֟>`Unڶ>`U*ʾ&>`>``*ʾZE>`jڶu>`H֟u>`狾ZE>`>xe4>`Uxe>8>`U狾&>`>>==< !{~' ><ޢ{,ֽ=<Zܯ=<^ !ܯ<^~,ֽHν<'0 <^=( < !^= ν@<{c>H=<{ !c>H=={ !===ZZc>@={= ν=Z=( = !^'0 =^~,ֽHν=ܯ=^ܯ==^ !,ֽ==Z~' >=ޢ{= >= !{= >$==vc%==$=VVc%~' >$=R=vc%,ֽ=$=qVc%ܯ=$=Éc%ܯ$=ÉRc%~,ֽHν$=qqc%'0 $=RÉd%=( $=Éd%= ν$=Vqc%c>@$==vRc%c>H=$==vc%=x=t =**Jq߇>p1=t =9jJq߇>ht =9Jq=̽t =*Jqj= t =jwJq(P& t =wJqԽ̽t =JqVAЉt =wƖJqVA1=t =wjJq ԽX=t =*JqP&9 >t =9Jq?j=9 >t =j9Jqh+t =C= >ټ !{R' >ټޢ{,ֽ=ټZܯ=ټ^ !ܯټ^,ֽ0νټ*'( ټ^_=( ټ !^=0νټZc>pټ{c>(=ټ{ !==ټZZ==缁ZZc>(=缢{ !c>p缢{=0ν缁Z_=(  !^*'( ^,ֽ0νܯ^ܯ=^ !,ֽ=ZR' >ޢ{C= > !{C= >9T0qR' >90q,ֽ=9$Rܯ=9ЎTܯ9Ў,ֽ0ν9$$*'( 9Ў_=( 9TЎ=0ν9R$c>p90qc>(=90qT==9RRR=M=, Ĉ >=,, Ĉ >,,ĈR=˽, Ĉ= , Ĉ% , Ĉ:]ӽ˽,Ĉ, Ĉx=, ĈD]ӽM=, Ĉ%ȼ >,,Ĉ=ȼ >, ,Ĉh+,狾&><{ !xe4><{狾]E>< !^fڶu><^&ʾWE><<^<^ !.ʾ&><Zpڶ><ޢ{L֟>< !{L֟>< !{pڶ><ޢ{.ʾ&><Z<^ !<^&ʾWE><fڶu><^D֟u>< !^狾]E><{xe@8><{ !狾&>4b=ZZxe@8>4b={ !xe4>4b={狾]E>4b=ZD֟u>4b= !^fڶu>4b=^&ʾWE>4b=4b=^4b=^ !.ʾ&>4b=Zpڶ>4b=ޢ{L֟>4b= !{L֟>=Lt)pڶ>=t).ʾ&>=~U)=2L)=2)&ʾWE>=~~)fڶu>=2)D֟u>=L2)狾]E>=U~)xe4>=t)xe@8>=tL)狾&>=UU) \h>@=='='Ws >@=5\Ws^>@=5Ws\>@=='Wsv>@=\fWsv>@=fWsTʾ>@=Wsվ^>@=fʤWsվ >@=f\WsTʾc>@=='Wsį >@=5Ws >@=\5WsXX,>@=狾&>YJǼZZxe>8>YJǼ{ !xe4>YJǼ{狾ZE>YJǼZH֟u>YJǼ !^jڶu>YJǼ^*ʾZE>YJǼYJǼ^YJǼ^ !*ʾ&>YJǼZnڶ>YJǼޢ{H֟>YJǼ !{H֟>9Ѽ !{nڶ>9Ѽޢ{*ʾ&>9ѼZ9Ѽ^ !9Ѽ^*ʾZE>9Ѽjڶu>9Ѽ^H֟u>9Ѽ !^狾ZE>9ѼZxe4>9Ѽ{xe>8>9Ѽ{ !狾&>9ѼZZ狾&>M T T|xe>8>Mr|xe4>Mr>|狾ZE>M T|H֟u>M4|jڶu>M>4|*ʾZE>M|M4>|M4|*ʾ&>M T|nڶ>M>r|H֟>Mr|XX,> 3>  0Q֜3> 0Q ʾ~> iܗ#Q`eվ> b Q`eվq> bQ ʾ> iiQԜHRw> bQHRw>  bQ̏> #iQSKq> 0QSK> 0 Q̏~> ##Q֖=X=<__=(><6=H=9ʼ__v= >9ʼ5v$2 ><2 >9ʼv 8=<_ @=9ʼ_v=#<m>#9ʼvm>=<5m>ț=9ʼ5v>!=9μ=(=9μgg>!=b<Q~=(=b('9μW>'b<WQ~=(9μg=b9μW쯁>5ĩ>b9μ쯁=̩>b<Q~=(=bb< !{=(=9μZZ=ĩ>9μ !{>5ĩ>b<[$4k;5ĩ>9μ1$LkW7'=b'b<{>('9μ{>!=b<{ !>!=9μ{ !Lt>[|Tܹ>[``Lt><<|T߹><<``Lt>[|Lt><<|Tz>[` T}><<` )i>[)i><<i>[i><< \Ͼz>[ \Ͼv><< ܾ>[ܾ><<ܾ>[ܾ><< \Ͼ۹>[ `\Ͼٹ><< `>[|><<|)>[|)><<| dž~G>>>]¼C㌃dž{G>]¼ꌃں>><t|ֺ>]¼㌃ϾxG>><%t|ϾzG>]¼%ꌃ$Lݾ>><Ct|$Lݾ>]¼C$LݾS>><t|$LݾS>]¼Ͼ$>><%%t|Ͼ$>]¼%%κg>><t|Һ„g>]¼„g>>]¼Cdž$>><%t|dž$>]¼%rS>><t|rS>]¼r>><Ct|r>]¼Cdž{G>]¼ZZr>]¼{ ! dž~G>>><{ !rS>]¼d1rS>><dž$>]¼gdž$>>]¼Ӛ„g>><3е=Һ„g>]¼^κg>><^Ͼ$>]¼Ͼ$>><$LݾS>]¼^$LݾS>><^$Lݾ>]¼^ !$Lݾ>><^ !ϾzG>]¼ZϾxG>><Zֺ>]¼ޢ{ں>><ޢ{>]¼ !{>>< !{^/ >GR<@Ɯd>GR¼fƜd>¼Uo/>GR<7GZUo/>¼6HX>ク='Hvμ6#HDATA,P(  R( DATA5 R( 5x  "   "  "  "  "  "  "  "  " " " "       ! !" "# #$ $ %"&"'"(")"*"+" ,"!-""."#/"$0"%&"%'"'("()")*"*+"+,",-"-."./"/0"&0"1"2"3"4"5"6"7"8"9" :" ;" <"12"13"34"45"56"67"78"89"9:":;";<"2<"1= 2> 3? 4@ 5A 6B 7C 8D 9E :F ;G <H =>"=?"?@"@A"AB"BC"CD"DE"EF"FG"GH">H"%I &J 'K (L )M *N +O ,P -Q .R /S 0T IJ"IK"KL"LM"MN"NO"OP"PQ"QR"RS"ST"JT"=U">V"?W"@X"AY"BZ"C["D\"E]"F^"G_"H`"UV UW WX XY YZ Z[ [\ \] ]^ ^_ _` V` Ua"Ia"Vb"Jb"Wc"Kc"Ld"Xd"Me"Ye"Nf"Zf"Og"[g"Ph"\h"Qi"]i"Rj"^j"Sk"_k"`l"Tl"ab ac cd de ef fg gh hi ij jk kl bl m"m" n"n"o"o"p"p"q"q"r"r"s"s"t" t"u"!u"v""v"w"#w"x"$x"mn mo op pq qr rs st tu uv vw wx nx y"yz z"z{ {"{| |"|} }"}~ ~"~ " " " " " "y "#y""#"#"#"#"#~"#}"#|"#{"#z"##!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""" "" " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " " " "" " " " " " " " "  "    " "  "  "  "  " " """"""""""""""""""""""""""""""""""  " " !" !" ""!""""# # # # # # # # # # !# "# $"$% %"%& &"&' '"'( ("() )")* *"*+ +"+, ,",- -"-. ."./ /"$/ /0"0; $;".1"01 -2"12 ,3"23 +4"34 *5"45 )6"56 (7"67 '8"78 &9"89 %:"9: :; ;<"<= :="=> 9>">? 8?"?@ 7@"@A 6A"AB 5B"BC 4C"CD 3D"DE 2E"EF 1F"FG 0G"<G GH"HS"<S"FI"HI"EJ"IJ"DK"JK"CL"KL"BM"LM"AN"MN"@O"NO"?P"OP">Q"PQ"=R"QR"RS"ST"TU"RU"UV"QV"VW"PW"WX"OX"XY"NY"YZ"MZ"Z["L["[\"K\"\]"J]"]^"I^"^_"H_"T_"T` _` ^` ]` \` [` Z` Y` X` W` V` U` b"ab a"c"bc d"cd e"de f"ef g"fg h"gh i"hi j"ij k"jk l"kl al ax"mx lm"mn kn"no jo"op ip"pq hq"qr gr"rs fs"st et"tu du"uv cv"vw bw"wx wz"yz"xy"v{"z{"u|"{|"t}"|}"s~"}~"r"~"q""p""o""n""m""y"y""""""""""""""~""}""|""{""z""             "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""" " "" " "  "  " "  " " """ """"""""""""""""""""""""""""""""" " "!"!"  " !"  "  """""""" !"""" #"$ %"&"'""# $% "& $' &' #% "( ( #)")"$* * %+"+"&,","'-"-"() *+ (, *- ,- )+ DATA,( H( DATA.H( 4N   &%%''(())**++ ,, !--!".."#//#$00$&21133445566778899:  :;  ;< 2 <2>=11=?33?@44@A55AB66BC77CD88DE99EF::FG;;GH<<H>2J&%II%'KK'(LL()MM)*NN*+OO+,PP,-QQ-.RR./SS/0TT0&J>VU==UW??WX@@XYAAYZBBZ[CC[\DD\]EE]^FF^_GG_`HH`V>VbaUbJIaUacWaIKcWcdXcKLdXdeYdLMeYefZeMNfZfg[fNOg[gh\gOPh\hi]hPQi]ij^iQRj^jk_jRSk_kl`kSTl`lbVlTJbnmn mmom oopoppqpqqrqrrsrsst st tu!tu!uv"uv"vw#vw#wx$wx$xnx n yz z{ {| |}}~~yy~~}}||{{zzy                  !   "! "######### # !#!"#"$%%&&''(())**++,,--..//$$/0;/.10.-21-,32,+43+*54*)65)(76('87'&98&%:9%$;::;<=9:=>89>?78?@67@A56AB45BC34CD23DE12EF01FG;0G<<GHSGFIHFEJIEDKJDCLKCBMLBANMA@ON@?PO?>QP>=RQ=<SRRSTUQRUVPQVWOPWXNOXYMNYZLMZ[KL[\JK\]IJ]^HI^_SH_T`T_`_^`^]`]\`\[`[Z`ZY`YX`XW`WV`VU`UTbacbdcedfegfhgihjikjlkallaxmklmnjknoijophipqghqrfgrsefstdetucduvbcvwabwxxwzywv{zvu|{ut}|ts~}sr~rqqppoonnmmxyy~}~|}{|z{yz           !   !    !  !    "#%$&"$''&#%()("#)+*+%$*,(,&"(*-*$'--,-'&,)+)#%+ME( 2pr) 8"( MECylinder.039E и( 9) X( X( ( (  X8) T$\<|>My=>DATAи( x DATA,( X( DATA|8X( 8=2=>^=bh<>^^=q>^ !0='+>Zg@<k>ޢ{@Ÿk> !{>O+>ZZ~lq>{ !0~h<>{>2=>ZŸr=> !^f@< r=>^,ZZ7 !{ƼP=b>ޢ{tg=b>Zl^ !b>^ti`b> Ƽb>^8 !^\Zޓ=>b>{ޓ=bm{ !ޓ=bm<>UH\,>>H\ޓ=>>U H\\>IH\8<>UH\ Ƽ> UH\ti`>IIH\>U H\l<>UH\tg=>I>H\ƼP=> UH\7UH\=2=6>[f@< r=6>[Ÿr=6>[>2=6> ?[0~h<6>V[~lq6>V[>O+6> ? ?[@Ÿk6>V[g@<k6>V[0='+6> ?[^=q6>[^=bh<6>[8G+W=ZZ~LqW={ !0=/+dW=Z^=qW=^ !^=Rh2=W=Z ~h7<ʹ=v2=ʹ=A[v2=1=wO^=1=fl-=ʹ=fLHF;ʹ=V$9ʹ=̫ʹ=K΃Zɾ!{ʹ=bھ^ʹ=Oʹ=fz<ʹ=|1Zfz<1=0F̫1=fk_g'<ʹ=`/ʹ=`:ʹ=jʾʹ=F5Aʹ=NӏZ۾Iʹ=:i\Nkʹ=ꢜ<1=d>ꢜ<ʹ= G,ZF5A1=oY# <ʹ=p%#ʹ=.ǎZ89ʹ=.ǎZvʾ(gʹ=.ǎZRDʹ=l8a۾w ʹ=.ǎZFQ~ʹ=.ǎZ2!<ʹ=02!<1=RD1=6>f;ʹ=.ǎZݾ p`j)(=ʹ=f)6Įʹ=j)*uʹ=Zn)VP=1=n)VP=ʹ=ZZj)*u1=n)T=ʹ=ZK(=ʹ=VK6Įʹ=ZK*uʹ=Z^KVP=1=^KVP=ʹ=ZZZK*u1=^KT=ʹ=fV<ʹ=·¾G'ʹ= ʹ=FƁZƦ8=1=5nƦ8=ʹ=vNZ 1=c7 =ʹ=׽(=ʹ=׽6Įʹ=׽*uʹ=Z׽VP=1=׽VP=ʹ=ZZ׽*u1=׽T=ʹ=VK6Įʹ=׽6Įʹ=(ҽ6Įʹ=ZZK(=ʹ=׽(=ʹ=0ҽ(=ʹ= þo(ʹ=·¾G'ʹ=.k6Įʹ=(zb<ʹ=xffV<ʹ=@9(=ʹ=1!cf)6Įʹ=j)(=ʹ=NMJk<ʹ=Saa>7<ʹ=Saa5Ӿ0jʹ=Saa0ҽDث=ʹ=@ҽї|=ʹ=0ҽz<ʹ=0ҽDث==0ҽ(==0ҽz<=(ҽ6Į=Z@ҽї|==NMJk<=Saab<=xf5Ӿ0j=Saa þo(=>7<=Saa(==1!cj)(==f)6Į=6Į=(zZK(==VK6Į=fV<=@9·¾G'=.k׽(==׽6Į=׽6Įm=VK6Įm=(ҽ6Įm=ZZK(=m=׽(=m=0ҽ(=m=·¾G'm=.k þo(m=6Įm=(zb77,=1=I2]>,=ʹ=3Z~1=Jjᄇ<ʹ=f@<k{ޢ{`Ÿk{ !{>G+{ZZ~<q{{ ! =7+LZ^=q{^ !^=Jh<{^ =2={@f@< r={^Ÿr={ !^>2={Z ~h<{{ͨ=îAY{>ͨ=J5AAoZ":!,=AIAJj ~h< {>2= ZŸr= !^@f@< r= ^ =2= ^=Bh< ^^=q ^ ! =7+6Z~<q { !>G+ ZZ`Ÿk !{f@<k ޢ{ᆰ,=/32Y>,=<⸽IfFl;/Ӿ/~/(KBþ./jĮ/1ѽ*u/ϽDث=/Ͻ(=/ȍϽVP=/Z׽6ˏ쀏ľS쀏VK6ˏ쀏f)6ˏ쀏6ˏ쀏׽r<쀏׽͗|=쀏׽Dث=쀏Ҿl]쀏Jླ[%<쀏7jz<쀏ZKr<쀏^K͗|=쀏ZKDث=쀏j)r<쀏r<쀏͗|=쀏n)͗|=쀏j)Dث=쀏Dث=쀏׽>Į쀏׽(=쀏·¾ G'쀏f龺V<쀏VK>Į쀏ZK(=쀏>Į쀏f)>Į쀏(=쀏j)(=쀏>7<쀏 þs(쀏5Ӿ,0j쀏NMBk<쀏Z<@ҽ͗|=쀏(ҽ>Į쀏0ҽr<쀏0ҽ(=쀏0ҽDث=쀏0ҽr<쀏@ҽ͗|=쀏0ҽDث=쀏5Ӿ,0j쀏SaaNMBk<쀏Saa>7<쀏Saaj)(=쀏f)>Į쀏(=쀏1!cf龺V<쀏@9ZĮ쀏(z þs(쀏·¾ G'쀏.k0ҽ(=쀏׽(=쀏ZK(=쀏(ҽ>Į쀏ZVK>Į쀏׽>Į쀏׽>Įq׽(=q·¾ G'q.kf龺VĮqZK(=q>Įq(zf)>Įqj)(=q(=q1!c>7ĮqZ0ҽr7Į/(=/1!cf龺VĮ/(z·¾ G'/.k þs(/0ҽ(=/׽(=/ZK(=/(ҽ>Į/Z׽>Į/VK>Į/׽T=/׽*u,⸽׽VP=/Z׽VP=<⸽׽*u/׽>Į/׽(=/7 =/ <⸽cƦ8=/vNƦ8=<⸽5n /F·¾ G'/f龺VĮ/ZK(=/n)T=/j)*u<⸽n)VP=/Zn)VP=<⸽j)*u/f)>Į/j)(=/>F;/.ǎRD<⸽6*!<<⸽*!:ilNk/۾I/F5A/Nqjʾ/`:///gs'7Į/*u/$w(=/ঢ়Į/0ҽ*u/0ҽDث=/0ҽ(=/8ҽVP=/Z7ݼVP=/xW<=/1[< ঢ়<(=/Z`7ݼ(=/ޓ=Jm<ս{ !ޓ=Vս{LĮ/rĮ/1ۀpb*u/ۀռ!/1ۀj2=,ZŸr=, !^@f@<r=,^=2=,^=Jh<,^^=q,^ !0=/+ Z~\q,{ !>G+,ZZ@Ÿk, !{g@<k,ޢ{ޓ=Jm<_:ޓ=V_N:LO+n??'~|qnV'0~gy2=n?'Ÿr=n'f@< r=n'=2=n'7l<RΒR 黣ti`GG Ƽ Q8<R\Gޓ=NU 黣,>ޓ=Zm<Uޓ=Zm< { !ޓ=N {\y2=fZ0~gO+fZZ@Ÿkf !{g@<kfޢ{0='+fZ^=qf^ !^=Zh#?#@#A#B#C# D# E# F#G#01#02#23#34#45#56#67#78#89#9:#:;#1;#<=!>?!=>!<@!@A!AB!BC!CD!DE!EF!FG!?G!;H#HI#1I#:J#HJ#9K#JK#8L#KL#7M#LM#6N#MN#5O#NO#4P#OP#3Q#PQ#2R#QR#0S#RS#IS#IT!TU#SU#UV#RV#VW!QW!WX!PX!XY!OY!YZ!NZ!Z[#M[![\#L\!\]#K]!]^#J^!^_#H_!T_# `#0`# a#1a#b#2b#3c#c#d#4d#5e#e#6f#f#g#7g#h#8h#9i#i#j#:j#;k#k#`a!`b!bc!cd!de!ef!fg!gh!hi!ij!jk!ak!Vl!Um#lm!no#qr#st!tu#uv#rv#Uw#Tx#Zy#[z#\{#]|#^}#_~#m!n#o#p!s!wx!yz!z{!{|!|}!}~!x~!w!!m#n#o!l!q!p!!!!!!##!!#!#####!!!!!!!#!!!!!!!!#!!!!!!###!!!!!#!!##!#!##!###!!##!!!!!!!!!!###!#!!!!!!!###!#!!!!!!!######!!##!!!!!!!!!q##t##s##!!p##!!!!!!!!!###t######q########################r##v##u####!!!!#!!!!!##!!!!!#!!!!#!!!!!!!!!!!!!!!!!#!##!#!##!######!###! ! ## # !  # ! !  # # # ! #!#!# ### ####### ##### ## #### ######## # # #!#!#!#"#"#"#######$!$%!%!&'!'(!()!&)!$'!%&!%*!*!&+!),!+,!*+! -!$-!-!'.!./!(/!.!/!-.!"0!0!*0!1!12!2!+1!,2!01!(3!34!)4!3!4!45!,5!5!/6!36!!6!6!#7!7!57!27!o8#p8#l9!q9!V:!r:!Z;#s;#Y<!t<!X=!u=!W>!v>!?!?!y@!@!A!A!9:!;<!<=!=>!:>!8?!;@!8A!9A!B!B!C!C!D!D!E#E#F!F!G!G!H!H!I#I#J!J!K!K!BC!DE!DF!FG!CG!HI!EJ!BK!IK!<L#=M#>N#?O#@P#AQ#BR#CS#DT#EU#FV#GW#wX#xY#yZ#z[#{\#|]#}^#~_#`!a#b#c!d!e!f#g#h#i#j#k!l#m#n#o#p!q!r!s!t!u!v!w!?x!@y!Hz!J{!LM#NO#MN#LP#PQ#QR#RS#ST#TU#UV#VW#OW#XY!Z[![\!\]!]^!^_!Y_!X`!ab!`e!ae!jl!km!ln!mo!fp!gq!pr!qs!ft!ht!gu!iu!cv!rv!dw!sw!cx!bx!dy!Zy!hz!jz!i{!k{!o!n!|#|}#}~#~#########|#}#~##########!!!!!!!!!0!:!1!;!3#=#2!<!4!>!5!?!7#A#6!@!8!B!9!C!!!!!!!!!!L!M!O!Y!P!Q!\!{!]!z!^!y!_#x#`!|!a!f!b#c#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########################################!#!#!###!!#!###!!###!######!##!#!##!#!!!!!!!!!!!!!!!!!#!!!!#!!!!!##!!!!!#!!!!###]##\##`####?#B##>#######J## ##C##H#@## #a######^####!!!!!!L!!O!#b#!P!#_##^##a# ! ! !  !  !:!D!;!E! =# G# <! F! A# I# @# H# C# J#!!!!!!!#!###!!!!!D!E!G#F!I#H#J##$#&!'!"#(##)! %# !# *!!##!+!",#"###-!%/!$%#$.!&(!&.!&0!'1!',#(3#()#)2!*/!*+!*4!+-!+5!,7#,-!-6!/8!./!.9!03!09!17!23#48!45!56!67!89!:=!:C!;A#<=#>B#>?#?@#@A!BC#DG!DJ!EI#FG#HI!KN!MN!KS!KR!Lb!La!Mf!Mc!Nd#Ne#QR!S[!TZ!TU!UV!VW!WX!XY!Z[!O_!Pb!Qc#Rd#Se!Ts#Ut#Vu#Wv#Xw#Yx#Z~#[}#\`#\]#]^#^_!`a#cd#ef!e}#f|!gq!gh!hi!ij!jk!kl!lm!mn!no!op!pr!qr!g#g#h#h#i#i#j#j#k#k#l#l#m#m#n#n#o#o#p#p#q#q#r#r#s~#s!st#t!tu#u!uv#v!vw#w!wx#x!xy!y!yz!z!z{!{!{|!|#|}#}#}~#~!########################!!!!!!!!!!!!########################!!!!!!!!!!!!################################################!!!!!!!!!!!!!!!!!!!!!!!!fF#p!r!v!cP!x!bQ#aR#eK!`S!X[#YZ#_T#^U#]V#\W#[X#ZY#y!dO!w!s!q!gE#u!i;#{!k1!m'#o#!!!! !!!"!#!%!$!n#l)#j2#z!h<#t !DATA,X8) 9) DATA89) 4   !!" "# # $% %& &' '(())**++,,--..//$$//..--,,++**))( ('! '&"!&%#"%$#=<?>>=<@@AABCBC DD EE FF GG?1;HI;:JH:9KJ98LK87ML76NM65ON54PO43QP32RQ20SR01ISSITURSUVQRVWPQWXOPXYNOYZMNZ[LM[\KL\]JK]^HJ^_IH_T0`a1` a2b`0b `3cb2cb4dc3dc5ed4ed6fe5fe7gf6gf8hg7hg9ih8ih:ji9ji;kj:kj1ak;a kVUmlwUTxz[Zy{\[z|]\{}^]|~_^}xT_~Uwmonmlnomntspsqptqvruvturq                      !!""##$%&'()%$'&%*+&),*%&+ -$ -'./(./$-.'-."0"*0121+,2010*+1(34)34)45,45/63(6!3!67#,5725#7276/l9:V9qr:Y<;Z<ts;X=<Y=ut<W>=X>vu=V:>W:rv>p8?8o?@;s@yZ;A8pAo8q9A9lABCBCDEDEFDFDGFGFCGCGHIHIEJEJKBKBIKIKM=<LO?>NN>=ML<@PP@AQQABRRBCSSCDTTDEUUEFVVFGWWG?OXwxY[zyZ\{z[]|{\^}|]_~}^Yx~_wX`bae`aejlkmlnmonofpgqprqstfhtugiuvcrvwdsw?xcbx?y@dZy@yzHhjHzJ{ik{J1{k;i{jz2zh<ZyYydOQxbPcxwsOdwrvvcP;uiEguht <tfF sqprEqgfpFonmo')nlkm'12)ljaeKRe`SKbaRQ[S`XY_TZ_^UT^]VU]\WV\[XW[ZYXXYZ[|}|~}~03=:90:C17A;32<=48B>54>?65?@76@A89CBMfaLcMLbxYO_QcbP\`|{]\{z^]zy_^yx`af|`a^]]\\`CB?@>?B>JHJ  C H@ a^bLLa_OPb^_ :=GD  C:DJ  ;AIE   =<FG    A@HI  DGJDEIGFIH$" %! #!"#%$&(.$&'",()* %/+! *-#!+,"#-/%$.0&(39.&01',73()24*/85+*46-+57,-68/.9KNdRSeNKNMcdefMNQRdc}eS[ZTs~TUtsUVutVWvuWXwvXYxw[Z~}|fe}qggqghhghiihijjijkkjkllklmmlmnnmnoonoppoprrprqqr~ssttuuvvwwxxyyzz{{||}}~MEpr) 2) ( MECylinder.052s) X) 8u) Ѕ) s) x)  ) DY>EY>z_R>DATAs) x DATA,s) 8u) DATA8u) 8׽׽qL@YqL^@Y=qL^ !׽Ļ=qLZAY>qLޢ{`=AY>qL !{=Ļ=qLZZ8Y>=qL{ !@Y>lqL{=׽qLZ=:YqL !^`?YqL^׽˻׽|_R@Y|_RHYT=|_Rл׽=|_R>;Y>|_RU@=EY>|_RU=ֻ=|_R>>0Y>=|_RU@Y>>|_RUл=׽|_R>=;Y|_R@EY|_R|_R`>Y@M>^=9Y@M> !^=׽@M>Z@Y>h@M>{8Y>=@M>{ !=ƻ=@M>ZZ`=CY>@M> !{CY>@M>ޢ{׽ƻ=@M>Z@Y=@M>^ !@Y|@M>^׽׽@M>׽׽x_R>\@Y|x_R>\@Y=x_R>\׽ƻ=x_R>>\CY>x_R>U\`=CY>x_R>U\=ƻ=x_R>>>\8Y>=x_R>U\@Y>hx_R>U\=׽x_R>>\=9Yx_R>\`>Yx_R>\ ?x_R>6s ={?x_R>6s=躵x_R>e؛'s?= x_R>s?=< =x_R>Ɂsີ==x_R>ees =?=x_R>s@ ?=x_R>s𺵽=x_R>'es?0 =x_R>6s? x_R>6s𺵽𺵽x_R>''szzLP>UU^),ncLP>tY^),|c=LP>t^)zz=LP>UZ^)c,=LP>Y^)@c=,=LP>^)z=z=LP>ZZ^),=c=LP>^),=\cLP>Y^)z=zLP>ZU^)c=,LP>t^)`c,LP>Yt^)`c,z> !{c=,z>ޢ{z=zz>Z,=\cz>^ !,=c=z>^z=z=z>@c=,=z>^c,=z> !^zz=z>Z,|c=z>{,ncz>{ !zzz>ZZzz =ZZ,nc ={ !,|c= ={zz= =Zc,= = !^@c=,= =^z=z= =,=c= =^,=\c =^ !z=z =Zc=, =ޢ{`c, = !{`@Y3'>ePZ`?Y(2>e׽׽3'>޿޿PZ׽׽(2>޿޿=;Y3'>yePZ=:Y(2>ye=׽3'>"@޿PZ=׽(2>"@޿@Y>p3'>WPZ@Y>l(2>W谥8Y>=3'>WyPZ8Y>=(2>Wy==3'>"@"@PZ=Ļ=02>"@"@`=AY>3'>yWPZ`=CY>02>yWAY>3'>WPZCY>02>W׽=3'>޿"@PZ׽Ļ=02>޿"@@Y=3'>eyPZ@Y=(2>ey@Y3'>ePZ@Y(2>e谥ؚ2>[`D'>[=ؚ2>[>=`D'>[>0ս0=2>f0ս0=`D'>f >2> >`D'>=>2>>=>`D'>>0=0=2>ff0=0=`D'>ff>=ؚ2>>>=`D'>>>ؚ2>>`D'>0=0սؚ2>f0=0ս`D'>f=ؚ2>>[=`D'>>[0ս0սؚ2>0ս0ս`D'>ؚ2>[`D'>[KP'>[J:2>[ǽǽP'>ǽǽ:2>=GP'>>[=F:2>>[=ǽP'>f=ǽ:2>fP>P'>P>:2>H>=P'>>H>Ŀ=:2>>==P'>ff==:2>ff=M>P'>>=O>:2>>M>P'>O>:2>ǽ=P'>fǽ=:2>fP=P'>[>P=:2>[>PP'>[P:2>[pj@+2>d谥pj'>dPZpj=@+2>dypj='>dyPZ`ĽZ=H+2>޿"@`ĽV='>޿"@PZ kj>H+2>W kj>'>WPZ=kj>H+2>yW=kj>'>yWPZP=Z=H+2>"@"@P=V='>"@"@PZhj>=@+2>Wyhj>='>WyPZpj>@+2>W谥pj>'>WPZ`=JĽ@+2>"@޿`=NĽ'>"@޿PZ=cj@+2>yd=dj'>ydPZ`ĽSĽ@+2>޿޿`ĽWĽ'>޿޿PZgj@+2>dhj'>dPZDATA,x) Ѕ) DATAЅ) 5  "   "  "  "  "  "  "  "  " " " " " """""""" " " "$        ! !" "# #$ $%"%&"#&"&'""'"'("!("()" )")*"*"*+"+"+,",",-"-"-."."./"/"/0"0"%0"01 1<"%< /2 12".3 23"-4 34",5 45"+6 56"*7 67")8 78"(9 89"': 9:"&; :;";<"<="=>";>">?":?"?@"9@"@A"8A"AB"7B"BC"6C"CD"5D"DE"4E"EF"3F"FG"2G"GH"1H"=H"HI"IT =T"GJ"IJ FK"JK EL"KL DM"LM CN"MN BO"NO AP"OP @Q"PQ ?R"QR >S"RS ST TU"UV"SV"VW"RW"WX"QX"XY"PY"YZ"OZ"Z["N["[\"M\"\]"L]"]^"K^"^_"J_"_`"I`"U`"a "b"c"d$"e "f"g "h"i"j"k"l"m"n"o"p"q"r "s"t!"u"v""w"#x"ca"db"ea"fb"eg"fh"ig"jh"ik"jl"mk"nl"om"np"oq"rp"sq"rt"us"tv"uw"vx"cw"dx"yx y d c z wz {v y{ |z |u t} {} ~| ~s r } ~ q p  o n m l k j i h g f e b a  ~ } | { z y # # ## ## ## ## ## ## ## ## ## ## ##############DATA,) X) DATAX) 4         #$%&"#&'!"'( !() )**++,,--..//0$0%%01<0/21/.32.-43-,54,+65+*76*)87)(98(':9'&;:&%<;;<=>:;>?9:?@89@A78AB67BC56CD45DE34EF23FG12GH<1H==HITHGJIGFKJFELKEDMLDCNMCBONBAPOA@QP@?RQ?>SR>=TSSTUVRSVWQRWXPQXYOPYZNOZ[MN[\LM\]KL]^JK^_IJ_`TI`Uc ab$d ea fb ge hfig jhkiljmknlompnqor psqt! rusv"!twux#"vcwd$#xdxywczxv{yuwz|vt}{su|~tr}qs~rpoqpnmonlkmljikjhgihfegfbaebdca~}~|{}|zy{zyME) 2 ) pr) MECylinder.053ȩ) ) P) p) ) )  P) .d7D?=?U,?7C>D>d>DATAȩ) x DATA,) P) DATAP) 8.E? ?|>CPDPwJ??|>mawJ?ﳢ?|>mE?^?|>DP]a[2?bޛ?|>[.*?^?|>-%?ﳢ?|>\-%??|>\`.*? ?|>CP2?>?|>m]?|>amE? ?z?TT,wJ??z?s,wJ??z?s,E?^?z?T$,_?z?s,Z?z?s,E?yЫ? ?%%ptW %u 3?-?i>% *?ƫ?i>|%?⛧?i>i %?̢?i>i*??i>|{u 3?:?i>i i+D??i>{OI?̢?i>%OI?㛧?i>% 7?P4?i>??q+?**6=?Sj?q+?5 6=?*?q+?56?l?q+?*Q6d.?f@?q+? o6dA?f@?q+?o6jR?l?q+?QQw6\?+?q+?ob6\?Sj?q+?o6jR??q+?Q.6fA?;?q+?56d.?;?q+? 56??;>ѯѯ??Qj?;>w=?)?;>wY?l?;>ѯ/Pd.?f@?;>maA?g@?;>YmjR?l?;>/P/P\?-?;>mZ\?Uj?;>zmjR??;>)PӯiA?;?;>Ywd.?;?;>w=?Rj??'?^>?Rj??^>?Rj? ?^>?Rj?Tz>^>?Rj?$>^??Rj?0>^???'?????? ???Sz>??#>??0>=?*??'?^ !=?*??^ !=?*? ?^ !=?*?Tz>^ !=?)?$>^ !=?)?0>^ !?l??'?Z?l??Z?l? ?Z?l?Tz>Z?l?$>Z?l?0>Zd.?f@??'?ޢ{d.?f@??ޣ{d.?f@? ?ޥ{d.?f@?Tz>ޥ{d.?f@?$>ޣ{d.?f@?0>ޢ{cA?f@??'?&!{cA?f@??6!{MA?=?W ? ~^ MA?=?`>y ~bA?g@?$>8!{aA?g@?0>'!{ jR?l??'?ZdZbR? k?Ӛ?8k(`R? k?>7kQjR?l?0>Z}Z/\??F'?`4KA{\??>T`4]\?j?F'?`LB\?j?>D`'BjR???'?dZcWR?v?Ӛ?7_R)gR?v?>7KGjR??->~Z| gA?;??'?!Z!gA?;?? SeA?=?Y ?^ hR eA?=?a>u jhA?;?!>0!bhA?;?->$!_d.?;??'?^d.?;??]d.?;? ?[d.?;?Qz>[d.?;?!>]d.?;?->^u?,?i>^u?,?Z ?^ !u?:6?V?Zu?E4?i!?ޢ{u?;G?i!? !{u?FE?V?ZZu?N?Z ?{ !u?N?i>{u?FE?q>Zu?;G?K> !^u?D4?K>^u?:6?q>gt?,?i>^gt?:6?q>gt?,?Z ?^ !gt?:6?V?Zgt?E4?i!?ޢ{gt?;G?i!? !{gt?FE?V?ZZgt?N?Z ?{ !gt?N?i>{gt?FE?q>Zgt?;G?K> !^gt?D4?K>^*`?,?i>^*`?:6?q>*`?,?Z ?^ !*`?:6?V?Z*`?E4?i!?ޢ{*`?;G?i!? !{+`?FE?V?ZZ+`?N?Z ?{ !*`?N?i>{*`?FE?q>Z*`?;G?K> !^*`?D4?K>^zW_?,?i>\zW_?:6?q>\zW_?,?Z ?\zW_?:6?V?\>zW_?E4?i!?\UzW_?;G?i!?\UzW_?FE?V?\>>zW_?N?Z ?\UzW_?N?i>\UzW_?FE?q>\>zW_?;G?K>\zW_?D4?K>\zW_?d?>~ezW_?,D?g>~bbzW_?d?j ?~fzW_?,D?;?~b zW_?}?&?~zW_??&?~zW_?S7?:?~ zW_??f ?~zW_??>~zW_?S7?f>~ bzW_??E>~fzW_?}?E>~f+_?g@?G> MD+_?f?Q>M+_?g@? ?MJu+_?g??M@H+_?k?B'?.Mb+_??B'?.Msb+_?i??MFH@H+_?;? ?Mbu+_?;?G> Mb+_?i?P>MMH+_??P>MuR+_?k?Q>MR ?A>?+?JJfx.?N|?+? fxsA?N|?+?= fx R?A>?+?Jfxm[?{?+?)fxm[??+?)= fx R?==?+?fxqA?.?+?= )fx.?.?+?)fx ?<=?+?Jfx??+? = fx?{?+? fx)?a?+?//_m$?Y?+?8@5_m$?$٧?+?8@_m)?]?+?/_m2??+?5ȿ_mXB=??+?ɿ_mGJF?]?+?_mK?%٧?+?ȿ_mK?Y?+?ȿ5_mGJF?a?+?/_mYB=??+?8@_m2??+?58@_m?8?8>.?t?5>bA?t?5> FR?8?5>\[?y?5>`%[??5>`% ?R?B?8>\\??8> `%.??8>`%?B?8>\z??8> z?y?8>O)??7>//S$?@?7>7@5R$?<٧?8>7@L)?]]?8>/С2??8>5ɿB=??7>ɿJF?_]?7>РƁK?>٧?6>ɿȁK?B?6>ɿ4JF? ?6>/B=??6>7@2??6>47@,)?+?v$>XX 2?L?u$>> Wx9=?L?u$>Wx0F?+?u$>Xs^K??u$>> q^K?ԧ?u$>ߧ0F?pP?v$>觧9=?2?v$>ߩ2?1?w$>> ))?oP?w$>X觧$?ԧ?w$>Wxߧ$??v$>Wx> )?O+?q+?XXW92??q+?> WxW8=??q+?WxWk0F?P+?q+?XW]K??q+?> W]K?iԧ?q+?Wj0F?.P?q+?X8=??q+?ߩX82??q+?> X)?-P?q+?XWZ$?iԧ?q+?WxWZ$??q+?Wx> W$??U?{ !m)?/+?U?ZZ$?tԧ?U?{k)?NP?U?Z2??U?!^8=??U?^0F?OP?U?~^K?vԧ?U?^^K? ?U?^ !0F?0+?U?Z8=?z?U?ޢ{!2?x?U? !{kF?:>? ?`'!T???wzZ\?j?F'?hޝ{ߒ\??F'?h2!{MT?j?~?ZzZG?E=? ?{'!G?E=?p\> {T?j?b>ZóT??c>rkF?9>?y\> \i\??͖>4+!aA\?j?͖>4aDATA,) p) DATAp) 5d# ## ############# ## ## ## # # # ######## # # ### ############# # #!# !#"#!"# ##"####$!$!$!$!$!$!$!$! $!!$!"$!#$!%#%&# &#&'# '#'(# (#()#)#)*#*#*+#+#+,#,#,-#-#-.#.#./#/#/0#0#%0#%1!&1!'1!(1!)1!*1!+1!,1!-1!.1!/1!01!23">?"34"?@"45"@A"56"AB"67"BC"78"CD"89"DE"9:"EF":;"FG";<"GH"<="HI"2=">I"3J"JK"KL"LM"MN"NO"?O"2P"PQ"QR"RS"ST"TU">U"4V"VW"WX"XY"YZ"Z["@["5\"\]"]^"^_"_`"`a"Aa"6b"bc"cd"de"ef"fg"Bg"7h"hi"ij"jk kl"lm"Cm"8n"no"pq"Dq"9r":t";v"vw"xy"Gy"<z"z{"{|"|} }~"~"H"=""""""I"JP KQ LR MS NT OU JV KW LX MY NZ O[ V\ W] X^ Y_ Z` [a \b ]c ^d _e `f ag bh ci dj ek fl gm hn io lp mq nr ps"rt"su"tv ux"vz w{ x~ y z { | } ~  U T S R Q P """"""""""""" " " " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""" " " " " " " " " " " """"""""""""""""""""""""""w|"tw"or"jo"kp"x}"=""2"<"";"":""9""8""7""6""5""4""3""" " " " " " " " " " " " ">""I""H""G""F""E""D""C""B""A""@""?"" " " " " " " " " " " """"""""""""""""""""""" " " " "  " " "  " "  "" """"""""""""""" " " " " " " " " " " "   " ! !"! """""""" "!"""qs Es"uy Fu"|""""w#"#"t$"$"r%"%"o&"&"j'"'"k("("p)")"x*"*"}+"+"s,","u-"-"*+ "+ "# #$ $% %& &' '( () ), ,- *- DATA,P) ) DATAL) 47          ! "! #" #$$$$$$$$ $ !$!"$"#$# %& &' '( ())**++,,--..//00%&%11'&1('1)(1*)1+*1,+1-,1.-1/.10/1%023JPPJKQQKLRRLMSSMNTTNOUUO?>34VJJVWKKWXLLXYMMYZNNZ[OO[@?45\VV\]WW]^XX^_YY_`ZZ`a[[aA@56b\\bc]]cd^^de__ef``fgaagBA67hbbhiccijddjkeeklfflmggmCB78nhhnoilpqmmqDC89rnnropsqqsED9:trsuFE:;vttvwuxyuyGF;<zvvz{wx~yyHG<=zz{{||}}~~IH>IUUTTSSRRQQP=2Piojkplx}~w{|2==<<;;::998877665544332I>HIGHFGEFDECDBCAB@A?@>?                  !  !   ! !+*+}x*"+"|}+#"#w|"$#$tw#%$%rt$&%&or%'&'jo&('(kj')()pk(,),sp)-,-us,*-*xu-ME ) 2@* ) MECylinder.054Ё`) H,* ) * ) *  ** 3$W-$>`>_F>DATA`) x DATA,) ) DATA) 8,#>׽ߪ=6*Q,#> ^>6 o,#>x=^>6o,#>==6QQ,#> >K=6o,#> >$6o ,#>=nڽx6Q,#>=V{b6,#>V{6:,#>׽nڽ6.:,#>$65 ,#>K=65i#׽˪=ѯ/Ph#2V>ħmg#Q=^>Ymg#==/P/Pg# >L=ĉmYh# >z$ĉmi#ϓ=nڽ/Pѯo#=P{Zp#_{ī⅒p#څ׽nڽӯׯp#$wo#K=wY=>^>ޢ{]=Z>ޢ{=Z>ޢ{)!Z>ޢ{ֽ&Z>ޢ{ +V>ޢ{8>׽۪=ZU=׽۪=Z=׽ת=Z)׽Ӫ=Zֽ׽Ϫ=Z ׽Ϫ=Z=>q=^> !{^=l=^> !{=g=^> !{)b=^> !{ֽ\=^> !{ W=^> !{=>==ZZ^===ZZ===ZZ)==ZZֽ==ZZ ==ZZ=> >K={ !^= >K={!= >K={!) >K={!ֽ >K={!  >L={ !=> >${]= >${2=6>bT%^ ~+6>bT%~ֽ >${  >$ {8>=nڽdZb=t=9.ڽ(k2ֽt="ڽQ׳k ͓=nڽ/}Zzs7>=:KA4p=}]4s7>PBL0B'˼6>׽nڽc=:f׽۽R)_g2ֽ:f׽yZڽGK܅׽nڽ |6>$!ZO=$S R=Fb$R hNb$j ֽ$b$_6>K=^ !P=K=]!=K=[!%)K=[! ֽK=]!K=^ !F%`}|^=%`}| !^ =s`}|Z=~U`}|{=jq=`}|{ ! =ف=`}|ZZ=3=`}| !{G3=`}|ޢ{쳽ف=`}|Z`Zq=`}|^ !`U`}|^쳽s`}|F%%y^쳽s%y=%%y !^ =s%yZ=~U%y{=jq=%y{ ! =ف=%yZZ=3=%y !{G3=%yޢ{쳽ف=%yZ`Zq=%y^ !`U%y^F%$^쳽s$=%$ !^ =s$Z=U${=hq=${ ! =؁=$ZZ=3=$ !{G3=$ޢ{쳽؁=$Z`Xq=$^ !`U$^F%!쳽s!=%! =s!>=U!U=hq=!U =؁=!>>=3=!UG3=!U쳽؁=!>`Xq=!`U!s!fwbӽԽ!bbw=|!fw=Խ! bw>!w>=!wұ=*=! wӬ=r>!w@tr>!wbӽ*=!b wnq=!fwn!fw;!DNֽF׽;!=;!uJ=F׽;!@HI&>;!bҲI&>l=;!btҲ=T=;!@HFH=>;!ub(>;!bNֽT=;!MHY=;!Ru;!R,$>}Խ=fxJ,$>N=fx = ,$>F"fx ,$>|Խe׽fxJJ,$>;hfx ,$>=hfx= ,$>Ҋ=e׽fxJ3$>">"fx)3$>">=fx)= 3$>==fx3$>=>fx= )3$>O>fx)/$>!i `=_m/3$>q=_m5ȿ3$>jͥe= `=_m3$>Z=,*<_mȿ3$>Z=9_mȿ5/$>e=o_m//$>ͥ<5_m8@/$>u5_m58@/$>iʒo_m///$> M:_m8@5/$>M)<_m8@ $^Խ'=\&$/R= '$/&"'$6ԽI׽'$V&$$=H $+= ׽\$6>"`%$6>6S=`% $=O=\\$x$=V> `%$W N>`%!$i6`=/!$˜w=5ɿ $kӥ #q$hbmXX#2h'> Wx#ȟ<Wx#/@d=mX# A= ⩇> #A=\<⩇#?d=~n^=#I #>Ehf^=WX#>--WWx> #>3hmWXX#>^boW> Wx#>j7d=mWX#>R;=W> #>R;=7d=f^=W#>S<R=Wߩ#>tbR=W> 3eSU= !^3n h6j^=Z3!=<<^S3Q;=^ !3;d=m~Z3 {ޘ\4> =B{2!=nn=czZZEo=T>֑{'!{?T>֑{ޤ{ֽnn=o콌Zֽ`׽ rjz\. =Sa+!.aDATA,*  * DATA * 5" "" """"""""""""" "" "" "" " """"""" """ " !"!"""#" #"$"$%"%&"&'"'("()")"*"*+"+,",-"-."./"/"0"01"12"23"34"45"5"6"67"78"89 9:":;";"<"<=">?"?"@"B" D"DE"FG"G" H"HI"IJ"JK KL"LM"M" N"NO"OP"PQ"QR"RS"S"   ! " # $ % & ' ( ) $* %+ &, '- (. )/ *0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; 6< 7= :> ;? <@ >A"@B"AC"BD CF"DH EI FL GM HN IO JP KQ LR MS #S "R !Q P O N T_"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"T`"`a _a"`b Ub"bc Vc"cd Wd"de Xe"ef Yf"fg Zg"gh [h"hi \i"ij ]j"jk ^k"ak `l"lm am"ln bn"no co"op dp"pq eq"qr fr"rs gs"st ht"tu iu"uv jv"vw kw"mw lx"xy"my"xz"nz"z{"o{"{|"p|"|}"q}"}~"r~"~"s""t""u""v""w"y"x "y z "{ "| "} "~ " " " " " """"""""""""""""""""""""""EJ"BE"=@"8="9>"FK" """ "" """"""""""""""""""" " " " " " " " " " " " " """""""""""""""""""""" "" " " " " " " " " " " """"""""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " """"""""""""?A A"CG C"J""E""B""@""=""8""9"">""F""K""A""C"" DATA,** H,* DATAH,* 4  !!""## $$%%&&''(()) *$$*+%%+,&&,-''-.((./))/0**01++12,,23--34..45//56006711782289339:44:;55;<66<=7:>?;;?@<<@=>A??AB@AC DBBDECFGCG HDDHIEFLMGGM NHHNOIIOPJJPQKKQRLLRSMMS S##SR""RQ!!QP  POON N_T`a`TUbVcbUWdcVXedWYfeXZgfY[hgZ\ih[]ji\^kj]_ak^a`lmbnl`conbdpoceqpdfrqegsrfhtsgiuthjvuikwvjamwkmlxynzxlo{znp|{oq}|pr~}qs~rtsutvuwvmywyxxzz{{||}}~~y7=89>:FKLEIJ       KFJKEJBE@B=@8=98>9A>CAFCME@* 2* ) MECylinder.055PA* * B* ^* A* H]*  }* PD3@Y>DY>_>DATAPA* x DATA,A* B* DATA@B* 8P׽׽Pz޿޿@YxPze谥@Y=Pzey׽ƻ=Pz޿"@`CY>PzW==Y>PzyW@Y>=PzWy=׽Pz"@޿`=?YPzye`BYDr>^==YDr> !^=׽Dr>Z@Y>xDr>{8Y>=Dr>{ !==Dr>ZZ`=?Y>Dr> !{?Y>Dr>ޢ{׽=Dr>Z@Yx=Dr>^ !@YDr>^׽Ļ׽Dr>׽Ļ׽`>\@Y`>\@Yx=`>\׽=`>>\?Y>`>U\`=?Y>`>U\==`>>>\8Y>=`>U\@Y>x`>U\=׽`>>\==Y`>\`BY`>\ ?`>6s =?`>6s=𺵽`>e؛'s?= `>s?=, =`>Ɂsີ==`>ees =?=`>s@ ?=`>s𺵽=`>'es? =`>6s?0 `>6s𺵽`>''szz>UU^),~c>tY^),lc=>t^)zz=>UZ^)c,=>Y^)@c=,=>^)z=z=>ZZ^),=|c=>^),=lc>Y^)z=z>ZU^)c=,>t^)`c,>Yt^)`c,,@V> !{c=,,@V>ޢ{z=z,@V>Z,=lc,@V>^ !,=|c=,@V>^z=z=,@V>@c=,=,@V>^c,=,@V> !^zz=,@V>Z,lc=,@V>{,~c,@V>{ !zz,@V>ZZzzXR>ZZ,~cXR>{ !,lc=XR>{zz=XR>Zc,=XR> !^@c=,=XR>^z=z=XR>,=|c=XR>^,=lcXR>^ !z=zXR>Zc=,XR>ޢ{`c,XR> !{`DYXz>ePZ`CY8>e׽Ȼ׽Xz>޿޿PZ׽Ļ׽8>޿޿=?YXz>yePZ=>Y8>ye=׽Xz>"@޿PZ=׽8>"@޿@Y>Xz>WPZ@Y>|8>W谥8Y>=Xz>WyPZ8Y>=8>Wy==Xz>"@"@PZ==8>"@"@`==Y>Xz>yWPZ`=?Y>8>yW=Y>Xz>WPZ?Y>8>W׽=Xz>޿"@PZ׽=8>޿"@@Yp=Xz>eyPZ@Yt=8>ey@YXz>ePZ@Y8>e谥0>[ {>[=0>[>= {>[>0ս0=0>f0ս0= {>f >0> > {>=>0>>=> {>>0=0=0>ff0=0= {>ff>=0>>>= {>>>0>> {>0=0ս0>f0=0ս {>f=0>>[= {>>[0ս0ս0>0ս0ս {>0>[ {>[Oi{>[N>[ǽǽi{>ǽǽ>=Ki{>>[=J>>[=ǽi{>f=ǽ>fP>i{>P>>H>=i{>>H>=>>==i{>ff==>ff=I>i{>>=K>>>I>i{>K>>ǽ=i{>fǽ=>fP=i{>[>P=>[>PĿi{>[P>[pjD>d谥pj@y{>dPZpj=D>dypj=@y{>dyPZ`ĽR=H>޿"@`ĽN=@y{>޿"@PZ gj>H>W gj>@y{>WPZ=gj>H>yW=gj>@y{>yWPZP=R=H>"@"@P=N=@y{>"@"@PZhj>=D>Wyhj>=@y{>WyPZpj>D>W谥pj>@y{>WPZ`=RĽD>"@޿`=VĽ@y{>"@޿PZ=gjD>yd=hj@y{>ydPZ`Ľ[ĽD>޿޿`Ľ_Ľ@y{>޿޿PZkjD>dlj@y{>dPZkj>8y{Wij>@WPZ`Ľ^=8y{޿"@`Ľ\=@޿"@PZ=gj>8y{yW=ej>@yWPZ`=T=8y{"@"@`=R=@"@"@PZpj>=8y{Wypj>=@WyPZhj>8y{W谥hj>@WPZP=RĽ8y{"@޿P=TĽD"@޿PZ=ij8y{yd=ijDydPZ ij8y{d ijDdPZ`ĽRĽ8y{޿޿`ĽTĽD޿޿PZpj8y{d谥pj@dPZpj=8y{dypj=@dyPZP=[>PĿ=i{[>P[Pi{[ǽǽǽǽi{M[Ki{[=M>[=Ki{>[=ǽf=ǽi{fH>H>i{P>=>P>=i{>==ff==i{ff=G>>=I>i{>ǽ=fǽ=i{fK>M>i{> {> 00ս0= {f0ս0= 0f=> {>=> 0>0=0= {ff0=0= 0ff>= {>>= 0>> {> 00=0ս {f0=0ս0f= {>[=0>[  {[ 0[0ս0ս {0ս0ս0 {[ 0[= {[>= 0[>@Y=8eyPZ@Y|8ePZ׽׽8޿޿PZAY8ePZ?YPze`=AY8yePZ=׽8"@޿PZ8Y>8WPZ8Y>PzW谥@Y>|=8WyPZ==8"@"@PZ==Pz"@"@=;Y>8yWPZ׽Ļ=8޿"@PZ`AY>8WPZ`c,=PR !^c=,=PR^z=z=PR,=hc=PR^,=cPR^ !z=zPRZ@c=,PRޢ{c,PR !{zzPRZZ,tcPR{ !,|c=PR{zz=PRZzz=(@VZ,|c=(@V{,tc(@V{ !zz(@VZZc,(@V !{@c=,(@Vޢ{z=z(@VZ,=c(@V^ !,=hc=(@V^z=z=(@Vc=,=(@V^`c,=(@V !^`c,=Yc=,=z=z=ZZ,=lc=,=cYz=zZU@c=,tc,YtzzUU,rctY,c=tzz=UZ𺵽=\'e?0 =\6?& \6𺵽\''@ ?^6 =?^6ີ=\e؛'?=2 \?= =\Ɂ==\ee =?=\ ?=\`AY>\U=;Y>\U==\>>@Y>x=\U8Y>\U=׽\>`=@Y^@Y^׽׽\@Y~\@Y=\׽Ļ=\>׽Ļ=@rZ@Y=@r^ !@Y~@r^׽׽@r@YBr^`=@YBr !^=׽@rZ8Y>@r{@Y>x=@r{ !==@rZZ=;Y>@r !{`AY>@rޢ{DATA,H]* ^* DATA^* 5###### ! ! ! ! ! !!!!!!!############## ## ## ## # # # # !!!,#,!"!!"##!"##$!#$#%!$%#&!%&#'!&'#(!'(#)!()#*!)*#+!*+#+,#,-#-.#+.#./#*/#/0#)0#01#(1#12#'2#23#&3#34#%4#45#$5#56##6#67#"7#78#!8#-8#89#9D!-D#7:#9:!6;#:;!5<#;<!4=#<=!3>#=>!2?#>?!1@#?@!0A#@A!/B#AB!.C#BC!CD!DE#EF#CF#FG#BG#GH#AH#HI#@I#IJ#?J#JK#>K#KL#=L#LM#<M#MN#;N#NO#:O#OP#9P#EP# R#S#T#U# V#W# X# Z#[# \#^#_#`#a#b#c#d#e#f#g#h#QS#RT#QU#RV#UW#VX#WY#XZ#Y[#Z\#[]#\^#]_#^`#_a#`b#ac#bd#ce#df#eg#fh#Sg#Th#hi!i}!T}!S~!j~!gj!fk!ik!jl!el!dm!km!ln!cn!bo!mo!np!ap!`q!oq!pr!_r!^s!qs!rt!]t!\u!su!tv![v!Zw!uw!vx!Yx!Xy!wy!xz!Wz!V{!y{!z|!U|!R!{!|!Q!}!~!!!~!}!!!|!!!{!z!!!y!x!!!w!v!!!u!t!!!s!r!!!q!p!!!o!n!!!m!l!!!k!j!!!i!!!!#!!#!!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!############################!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!!#!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!############E#F#G#H#I#J#K#L#M#N#D#O### # #  # #  # #  # #  # # ############!!*#!)#!(#!'#!&#!%#!$#!##!"#!!#+#! # +# 7# !#!6#!"#"5#"###4##$#$3#$%#%2#%&#&1#&'#'0#'(#(/#()#).#)*#*-#*+#+,#,-#-.#-B!./#.A!/0#/@!01#0?!12#1>!23#2=!34#3<!45#4;!56#5:!67#69!,C!,7#78!8C#8O#89#9N#9:#:M#:;#;L#;<#<K#<=#=J#=>#>I#>?#?H#?@#@G#@A#AF#AB#BE#BC#CD#DE!EF!FG!GH!HI!IJ!JK!KL!LM!MN!NO!DO!""""""        ]"Y"Q"DATA,}* * DATAP* 4D        !, "!#"$#%$&%'&(')(*)+*,++,-.*+./)*/0()01'(12&'23%&34$%45#$56"#67!"78,!8--89D87:976;:65<;54=<43>=32?>21@?10A@0/BA/.CB.-DCCDEFBCFGABGH@AHI?@IJ>?JK=>KL<=LM;<MN:;NO9:OPD9PESQR TUQV RWUX VYWZ X[Y\ Z][^ \_]`^a_b`cadbecfdgehfSgThThi}gS~jhfkiegjlfdmkcelndbomacnpb`qo_apr`^sq]_rt^\us[]tv\ZwuY[vxZXywWYxzXV{yUWz|VR{QU|RT}SQ~~}|{|zy{zxwyxvuwvtsutrqsrpoqpnmonlkmljikj~}iDEEFFGGHHIIJJKKLLMMNNOOD          *+)*()'(&'%&$%#$"#!" !+ ,7 +76! 65"!54#"43$#32%$21&%10'&0/('/.)(.-*)-,+*BC,-AB-.@A./?@/0>?01=>12<=23;<34:;459:568967C87,DO8CON98NM:9ML;:LK<;KJ=<JI>=IH?>HG@?GFA@FEBAEDCBME* 20* @* MECylinder.056ؙ* * `* * * (*  `* .d7E?pF?U,?7C>D>d>DATAؙ* x DATA,* `* DATA`* 8.E? ?|>CPDPwJ??|>mawJ?ﳢ?|>mE?^?|>DP]a[2?bޛ?|>[.*?^?|>-%?ﳢ?|>\-%??|>\`.*? ?|>CP2?>?|>m]?|>amE? ?z?TT,wJ??z?s,wJ??z?s,E?^?z?T$,_?z?s,Z?z?s,E?yЫ? ?%%ptW %u 3?-?i>% *?ƫ?i>|%?⛧?i>i %?̢?i>i*??i>|{u 3?:?i>i i+D??i>{OI?̢?i>%OI?㛧?i>% 7?P4?i>?u?Vf-?*QX R??Uf-?5X R?s?Uf-?5 X?4?Uf-?**X.?C?Uf-? 5XHA?C?Uf-?5XR?3?Wf-?Q"\\?s?Wf-?o\\??Vf-?oDR?u?Vf-?QQ8JA?I?Vf-?oX.?I?Vf-? oX?u?Y}?ѯ/P[;"R??Y}?wY\; R?s?Y}?w\;?5?Z}?ѯѯ\;.?C?Z}?w\;EA?C?Z}?Yw\;R?2?Z}?/Pѯ\;\\?s?\}?ml;\\??\}?zmUx;R?u?[}?)P-Pf;MA?I?[}?Ym\;.?I?[}?m\; R??1?^ !!R??A;?^ !!R??RK?^ !!R??_?^ !!R??o?^ !"R??y?^ !?u?1?Z?u?A;?Z?u?SK?Z?u?_?Z?u?o?Z?u?y?Z R?s?1?^ R?s?A;?^ R?s?SK?^ R?s?_?^ R?s?o?^ R?s?y?^?4?1??4?A;??4?SK??5?_??5?o??5?y?.?C?1?^.?C?A;?].?C?SK?[.?C?_?[.?C?o?].?C?y?^GA?C?1?&!` GA?C?A;?6!d1B?oF?K? m1B?oF?'_?y kW FA?C?o?8!dEA?C?y?'!`R?3?1?ZbR?$?\=;?8]E{R?%?To?7M(R?2?y?ZL\?^s?l1?`"˵_]\?^s?,y?T`!ˣAg\??k1?`4`\??,y?D`4AR?u?1?dZZ7;R?s?[=;?7kiR?s?So?7k(R?u?y?~ZZKA?I?1?!{KA?I?A;? {IA?oF?K?^ ~IA?pF?'_?u ~M LA?I?o?0!{LA?I?y?$!{.?I?1?ޢ{.?I?A;?ޣ{.?I?TK?ޥ{.?I?_?ޥ{.?I?o?ޣ{.?I?y?ޢ{u?pW?J]?{ !u?pW?^}M?{u?M?J??Zu?O?Sn7? !^u??L??u?m5?c}M?^u?m5?O]?^ !u?>?ak?Zu??L??Ku?m5?c}M?^Ku?m5?O]?^ !Ku?>?ak?ZKu??L??^`?m5?c}M?^^`?m5?O]?^ !^`?>?ak?Z^`?>^_?pW?^}M?\U^_?M?J??\>^_?O?Sn7?\^_??L??\^_?m5?c}M?\^_?m5?O]?\^_?>?ak?\>^_? Y=??}?ߩY|F? Y?}?YWK?1ݧ?}?YUK??}?> Y|F?3?}?XY=??}?WxZ)3??}?> WxZ 2*?3?}?XXY%??}?Wx> Y%?3ݧ?}?WxZ2*?X?>-?X觩*3??>-?> Ƅ=??>-?ߩN|F?X?>-?觨K?ݧ?>-?ߩK?ů?>-?> N|F?4?>-?XĄ=?W?>-?Wx*3?W?>-?> Wx2*?4?>-?XX>%?Ư?>-?Wx> >%?ݧ?>-?Wxߨ%?'ݧ?YU?{P2*?Y?YU?Z%??YU?{ !O2*?3?YU?ZZ*3?+?ZU?!{Ą=?W?YU?ޢ{|F?3?ZU?ZK??YU?^ !K?%ݧ?YU?^|F?X?YU?߄=??YU?^*3??YU? !^OHG?E?\K?{'U?_s?<;?Z\?N?.1?h1!c\?s?.1?hc1T?~?<;?wRG?F?`K?`RG?F?)_? \!T?~?o?rtZT?`s?o?ZtZOHG?E?)_? {!L\?s?Ɍy?4ޟ{%\?N?Ɍy?4+!{DATA,(* * DATA* 5d# ## ############# ## ## ## # # # ######## # # ### ############# # #!# !#"#!"# ##"####$!$!$!$!$!$!$!$! $!!$!"$!#$!%#%&# &#&'# '#'(# (#()#)#)*#*#*+#+#+,#,#,-#-#-.#.#./#/#/0#0#%0#%1!&1!'1!(1!)1!*1!+1!,1!-1!.1!/1!01!23">?"34"?@"45"@A"56"AB"67"BC"78"CD"89"DE"9:"EF":;"FG";<"GH"<="HI"2=">I"3J"JK"KL"LM"MN"NO"?O"2P"PQ"QR"RS"ST"TU">U"4V"VW"WX"XY"YZ"Z["@["5\"\]"]^"^_"_`"`a"Aa"6b"bc"cd"de"ef"fg"Bg"7h"hi"ij"jk kl"lm"Cm"8n"no"pq"Dq"9r":t";v"vw"xy"Gy"<z"z{"{|"|} }~"~"H"=""""""I"JP KQ LR MS NT OU JV KW LX MY NZ O[ V\ W] X^ Y_ Z` [a \b ]c ^d _e `f ag bh ci dj ek fl gm hn io lp mq nr ps"rt"su"tv ux"vz w{ x~ y z { | } ~  U T S R Q P """"""""""""" " " " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""" " " " " " " " " " " """"""""""""""""""""""""""w|"tw"or"jo"kp"x}"=""2"<"";"":""9""8""7""6""5""4""3""" " " " " " " " " " " " ">""I""H""G""F""E""D""C""B""A""@""?"" " " " " " " " " " " """"""""""""""""""""""" " " " "  " " "  " "  "" """"""""""""""" " " " " " " " " " " "   " ! !"! """""""" "!"""qs Es"uy Fu"|""""w#"#"t$"$"r%"%"o&"&"j'"'"k("("p)")"x*"*"}+"+"s,","u-"-"*+ "+ "# #$ $% %& &' '( () ), ,- *- DATA,`* * DATAL* 47          ! "! #" #$$$$$$$$ $ !$!"$"#$# %& &' '( ())**++,,--..//00%&%11'&1('1)(1*)1+*1,+1-,1.-1/.10/1%023JPPJKQQKLRRLMSSMNTTNOUUO?>34VJJVWKKWXLLXYMMYZNNZ[OO[@?45\VV\]WW]^XX^_YY_`ZZ`a[[aA@56b\\bc]]cd^^de__ef``fgaagBA67hbbhiccijddjkeeklfflmggmCB78nhhnoilpqmmqDC89rnnropsqqsED9:trsuFE:;vttvwuxyuyGF;<zvvz{wx~yyHG<=zz{{||}}~~IH>IUUTTSSRRQQP=2Piojkplx}~w{|2==<<;;::998877665544332I>HIGHFGEFDECDBCAB@A?@>?                  !  !   ! !+*+}x*"+"|}+#"#w|"$#$tw#%$%rt$&%&or%'&'jo&('(kj')()pk(,),sp)-,-us,*-*xu-ME0* 2 0+ * MECylinder.057p* X+ * 0+ * +  + 4:pkS,$>`>`F>DATAp* x DATA,* * DATA* 8,#>^Խ(=6*Q,#>ó>6 o,#>k!=>6o,#>κ=(=6QQ,#>V>=6o,#>X>v 6o ,#>ߺ=x@ؽw6Q,#>k!=,db6,#>,d6:,#>^Խx@ؽ6.:,#>Xs0w 65 ,#>`sP=65d#^Խ(=ѯ/Pd#>ħmd#k!=>Ymd#ú=H=/P/Pd#X>Ш=ĉmYd#`>v ĉmd#=X@ؽ/Pѯl#l!=,dZl#{˳>ޢ{i=ӳ>ޢ{=׳>ޢ{(۳>ޢ{ֽ߳>ޢ{>ޢ{<>^Խ(=ZY=^Խ(=Z=^Խ(=Z)^Խ(=Zֽ^Խ(=Z ^Խ(=ZD>k!=> !{i=k!=> !{=k!=> !{(k!=> !{ֽk!=> !{k!=> !{D>̺=(=ZZi=ʺ=(=ZZ=ɺ=H=ZZ(Ǻ=H=ZZֽƺ=H=ZZź=H=ZZD>V>={ !i=X>={!=X>={!(X>={!ֽX>={!X>={ !D>X>v {i=Z>v {Q=ȋ> ^ ~ȋ> ~ֽ^>v {`>v {<>=x@ؽdZb=A=׽(k'ֽA=׽Q׳k =X@ؽ/}Zzt7>_`!=#KA4p_`!=f]4t7> BLtB'˼<>^Խx@ؽc=?ԽXٽR)_g'ֽ?Խ,ؽGK ^Խ@ؽ |<>Xs0w !ZY=Xs0w S q=]% R h]% jֽVspw b Vspw _<>`sP=^ !Y=`sP=]!=^sP=[!)^sP=[!ֽ^sP=]! ^sP=^ !F=vܷ U==ܷ U ==ܷ >>=Z=ܷ UGZ=ܷ U쳽=ܷ >W=ܷ Wܷ sܷ ewWӽнܷ aaw1=ܷ ew=нܷ aw>O4ܷ w>=ܷ wٱ=Q=ܷ w=M>ܷ w/tM>ܷ wWӽQ=ܷ a wn=ܷ ewng4ܷ ewH  CGֽԽ  =H  uJ=yԽ  AHL&>7  bҲL&>=!=  btҲ={=  AHFH=4v>  ub4v>  bGֽ{=  MH=!=  RuO  R,$>UѽH=fxJ,$>`o=fx = ,$>`p>fx ,$>Uѽ7սfxJJ,$>zQfx ,$>3=Qfx= ,$>=7սfxJ4$>>0>fx)4$>>o=fx)= 4$>=H=fx4$>3=>fx= )4$>{>fx)4$>rcgd=_m/4$>H=`m5ɿ4$>i*l=gd=_m4$>ꁠ=<_mȿ4$>ꁠ=`_mȿ54$>*l=06k`m/4$>j<`m7@4$>`m47@4$>rc06k`m//4$>%_m8@54$>% <_m8@$9ѽh'=\$$VP= $$Np~$$ѽս$$,$$5s= $O =ս\$X>}`%$P>Я=`% $ ='=\\$r=> `%$t>`%$C{cod=/$>襜=4ɿ$o<=ɿ$-3l=pd=$=<ɿ$=`ɿ4$a3l=p>k/$$zp<8 7@$$X 47@$${c>k//$$+7@5$$+ <7@#Wab=X#) #+aiXX#˟ힽ> Wx#V<<ힽWx#uj=piX#.h=`R⩇> #'h=<⩇#Aj=b=#;<=ߩ#̟h=> #>ab=WX#>} uLWWx> #>a0iXXX#>ş螽X> Wx#>5<螽XWx#> j=0iXX#>vb=`LX> #>vb=j=b=W#>5<Ȁ=Xߩ#>şȀ=X> E4ɟ= !^E4'ab=ZE48<=^E4j=b=E4De=<^E4ub=`L^ !E45j=0i~ZE4:9<ꞽޢ{E4ȟꞽ !{E4apiZZE4; O{ !E4] <{qo=Yv'!` =e9Խ$zZw\4>á{ޘ\4>!Z!=u{2! ==zZZQo=>05w'!{/>05wޤ{ֽ=꽌Zֽg9ԽX꽌rYv\,Z!=,a+!,aDATA,+ 0+ DATA0+ 5" "" """"""""""""" "" "" "" " """"""" """ " !"!"""#" #"$"$%"%&"&'"'("()")"*"*+"+,",-"-."./"/"0"01"12"23"34"45"5"6"67"78"89 9:":;";"<"<=">?"?"@"B" D"DE"FG"G" H"HI"IJ"JK KL"LM"M" N"NO"OP"PQ"QR"RS"S"   ! " # $ % & ' ( ) $* %+ &, '- (. )/ *0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; 6< 7= :> ;? <@ >A"@B"AC"BD CF"DH EI FL GM HN IO JP KQ LR MS #S "R !Q P O N T_"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"T`"`a _a"`b Ub"bc Vc"cd Wd"de Xe"ef Yf"fg Zg"gh [h"hi \i"ij ]j"jk ^k"ak `l"lm am"ln bn"no co"op dp"pq eq"qr fr"rs gs"st ht"tu iu"uv jv"vw kw"mw lx"xy"my"xz"nz"z{"o{"{|"p|"|}"q}"}~"r~"~"s""t""u""v""w"y"x "y z "{ "| "} "~ " " " " " """"""""""""""""""""""""""EJ"BE"=@"8="9>"FK" """ "" """"""""""""""""""" # # # # # # # # # # # # """""""""""""""""""""" "" " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""#"##"" " " " " " " " " " " " """"""""""""?A A"CG C"J""E""B""@""=""8""9"">""F""K""A""C"" DATA,+ X+ DATAX+ 4  !!""## $$%%&&''(()) *$$*+%%+,&&,-''-.((./))/0**01++12,,23--34..45//56006711782289339:44:;55;<66<=7:>?;;?@<<@=>A??AB@AC DBBDECFGCG HDDHIEFLMGGM NHHNOIIOPJJPQKKQRLLRSMMS S##SR""RQ!!QP  POON N_T`a`TUbVcbUWdcVXedWYfeXZgfY[hgZ\ih[]ji\^kj]_ak^a`lmbnl`conbdpoceqpdfrqegsrfhtsgiuthjvuikwvjamwkmlxynzxlo{znp|{oq}|pr~}qs~rtsutvuwvmywyxxzz{{||}}~~y7=89>:FKLEIJ       KFJKEJBE@B=@8=98>9A>CAFCME 0+ 2x+ 0* MECylinder.058`1+ 0+ 2+ `+ 1+ ^+  ؕ+ .xN >~<>T>\d>DATA`1+ x DATA,1+ 2+ DATA+2+ 8.l>4;Zǎ8>4;^ !ǎw>4;^l >4;Je>4;^;e>4; !^1 >4;ZǾx>4;{Ǿ8>8;{ !1>8;ZZ=U>8; !{KU>4;ޢ{l>(G<>ǎ8>(G<ǎu>G<l>G<He>G<9e>(G<1 >(G<>Ǿz>8G8G8G<>>?U>8G<UNU>8G(G<ǎ8>Ev^ !l>EvZǎw>Dv^l >DvJe>Dv^;e>Ev !^1 >EvZǾx>Dv{Ǿ8>Hv{ !1>HvZZ=U>Hv !{KU>Dvޢ{ǎ8>cHl>cHC@ǎw>bHN菦l >bHCCJe>bHN萧;e>cH1 >cH@CǾx>bHpXN菦Ǿ8>fHpX1>fH@@=U>fHpXKU>bHNpXǎ8>\(;a+Xl>\(;eA+Xǎw>\(;a+Xl >\(;ee+XJe>\(;a+X;e>\(;a+X1 >\(;Ae+XǾx>\(;Y+XǾ8>`(;Y+X1>`(;AA+X=U>`(;Y+XKU>\(;Y+Xgǜ>]̾a+Xo} >]̾eA+Xg(>]̾a+Xo}R>]̾ee+X9>]̾a+Xd>]̾a+X!ľR>]̾Ae+X6;)>]̾Y+X6;ǜ>b̾Y+X!ľ >b̾AA+Xd>b̾Y+X9>]̾Y+Xgǜ>Lo} >LC@g(>JN菦o}P>JCC9>JN萧d>L!ľR>L@C6;)>JpXN菦6;ǜ>OpX!ľ >O@@d>OpX9>JNpXgǜ>1̾^ !o} >1̾Zg(>1̾^o}R>1̾9>1̾^d>1̾ !^!ľR>1̾Z6;)>1̾{6;ǜ>1̾{ !!ľ >1̾ZZd>1̾ !{9>1̾ޢ{gǜ>5^ !o} >5Zg(>5^o}P>59>5^d>5 !^!ľR>5Z6;)>5{6;ǜ>5{ !!ľ >5ZZd>5 !{9>5ޢ{ǎ8>!;^ !l>!;Zǎu>a;^l>A;He>a;^9e>!; !^1 >!;ZǾz>A;{Ǿ8>A;{ !1>A;ZZ?U>A; !{NU>A;ޢ{l>JоZKU>Jоޢ{=U>Nо !{1>NоZZǾ8>Nо{ !Ǿx>Jо{1 >JоZ;e>Jо !^Je>Jо^l >Jоǎw>Jо^ǎ8>Jо^ !l>iо>\ǎ8>iо\ǎw>iо\l >iо\Je>iо\;e>iо\1 >iо>\Ǿx>iоU\Ǿ8>mоU\1>mо>>\=U>mоU\KU>iоU\CO~ݥ>iо==Cʼ>>c>(=CʼUc>pCʼU頣=0νCʼ>[_=( Cʼm*'( Cʼm,ֽ0νCʼ[[ܯCʼm頣ܯ=Cʼm,ֽ=Cʼ[>R' >CʼUC= >CʼU==<>>`\c>H=@[`\=( <m`\'0 <m`\~,ֽHν<[[`\ܯ`\~' ><U`\= ><U`\L֟>A<U \pڶ>AA<> \A< \A< \&ʾWE>A< \fڶu>A< \D֟u>A< \狾]E>A<> \xe4>AAA<>> \H֟>`Unڶ>`U*ʾ&>`>``*ʾZE>`jڶu>`H֟u>`狾ZE>`>xe4>`Uxe>8>`U狾&>`>>==< !{~' ><ޢ{,ֽ=<Zܯ=<^ !ܯ<^~,ֽHν<'0 <^=( < !^= ν@<{c>H=<{ !c>H=={ !===ZZc>@={= ν=Z=( = !^'0 =^~,ֽHν=ܯ=^ܯ==^ !,ֽ==Z~' >=ޢ{= >= !{= >$==vc%==$=VVc%~' >$=R=vc%,ֽ=$=qVc%ܯ=$=Éc%ܯ$=ÉRc%~,ֽHν$=qqc%'0 $=RÉd%=( $=Éd%= ν$=Vqc%c>@$==vRc%c>H=$==vc%=x=t =**Jq߇>p1=t =9jJq߇>ht =9Jq=̽t =*Jqj= t =jwJq(P& t =wJqԽ̽t =JqVAЉt =wƖJqVA1=t =wjJq ԽX=t =*JqP&9 >t =9Jq?j=9 >t =j9Jqh+t =C= >ټ !{R' >ټޢ{,ֽ=ټZܯ=ټ^ !ܯټ^,ֽ0νټ*'( ټ^_=( ټ !^=0νټZc>pټ{c>(=ټ{ !==ټZZ==缁ZZc>(=缢{ !c>p缢{=0ν缁Z_=(  !^*'( ^,ֽ0νܯ^ܯ=^ !,ֽ=ZR' >ޢ{C= > !{C= >9T0qR' >90q,ֽ=9$Rܯ=9ЎTܯ9Ў,ֽ0ν9$$*'( 9Ў_=( 9TЎ=0ν9R$c>p90qc>(=90qT==9RRR=M=, Ĉ >=,, Ĉ >,,ĈR=˽, Ĉ= , Ĉ% , Ĉ:]ӽ˽,Ĉ, Ĉx=, ĈD]ӽM=, Ĉ%ȼ >,,Ĉ=ȼ >, ,Ĉh+,狾&><{ !xe4><{狾]E>< !^fڶu><^&ʾWE><<^<^ !.ʾ&><Zpڶ><ޢ{L֟>< !{L֟>< !{pڶ><ޢ{.ʾ&><Z<^ !<^&ʾWE><fڶu><^D֟u>< !^狾]E><{xe@8><{ !狾&>4b=ZZxe@8>4b={ !xe4>4b={狾]E>4b=ZD֟u>4b= !^fڶu>4b=^&ʾWE>4b=4b=^4b=^ !.ʾ&>4b=Zpڶ>4b=ޢ{L֟>4b= !{L֟>=Lt)pڶ>=t).ʾ&>=~U)=2L)=2)&ʾWE>=~~)fڶu>=2)D֟u>=L2)狾]E>=U~)xe4>=t)xe@8>=tL)狾&>=UU) \h>@=='='Ws >@=5\Ws^>@=5Ws\>@=='Wsv>@=\fWsv>@=fWsTʾ>@=Wsվ^>@=fʤWsվ >@=f\WsTʾc>@=='Wsį >@=5Ws >@=\5WsXX,>@=狾&>YJǼZZxe>8>YJǼ{ !xe4>YJǼ{狾ZE>YJǼZH֟u>YJǼ !^jڶu>YJǼ^*ʾZE>YJǼYJǼ^YJǼ^ !*ʾ&>YJǼZnڶ>YJǼޢ{H֟>YJǼ !{H֟>9Ѽ !{nڶ>9Ѽޢ{*ʾ&>9ѼZ9Ѽ^ !9Ѽ^*ʾZE>9Ѽjڶu>9Ѽ^H֟u>9Ѽ !^狾ZE>9ѼZxe4>9Ѽ{xe>8>9Ѽ{ !狾&>9ѼZZ狾&>M T T|xe>8>Mr|xe4>Mr>|狾ZE>M T|H֟u>M4|jڶu>M>4|*ʾZE>M|M4>|M4|*ʾ&>M T|nڶ>M>r|H֟>Mr|XX,> 3>  0Q֜3> 0Q ʾ~> iܗ#Q`eվ> b Q`eվq> bQ ʾ> iiQԜHRw> bQHRw>  bQ̏> #iQSKq> 0QSK> 0 Q̏~> ##Q֖=X=<__=(><6=H=9ʼ__v= >9ʼ5v$2 ><2 >9ʼv 8=<_ @=9ʼ_v=#<m>#9ʼvm>=<5m>ț=9ʼ5v>!=9μ=(=9μgg>!=b<Q~=(=b('9μW>'b<WQ~=(9μg=b9μW쯁>5ĩ>b9μ쯁=̩>b<Q~=(=bb< !{=(=9μZZ=ĩ>9μ !{>5ĩ>b<[$4k;5ĩ>9μ1$LkW7'=b'b<{>('9μ{>!=b<{ !>!=9μ{ !Lt>[|Tܹ>[``Lt><<|T߹><<``Lt>[|Lt><<|Tz>[` T}><<` )i>[)i><<i>[i><< \Ͼz>[ \Ͼv><< ܾ>[ܾ><<ܾ>[ܾ><< \Ͼ۹>[ `\Ͼٹ><< `>[|><<|)>[|)><<| dž~G>>>]¼C㌃dž{G>]¼ꌃں>><t|ֺ>]¼㌃ϾxG>><%t|ϾzG>]¼%ꌃ$Lݾ>><Ct|$Lݾ>]¼C$LݾS>><t|$LݾS>]¼Ͼ$>><%%t|Ͼ$>]¼%%κg>><t|Һ„g>]¼„g>>]¼Cdž$>><%t|dž$>]¼%rS>><t|rS>]¼r>><Ct|r>]¼Cdž{G>]¼ZZr>]¼{ ! dž~G>>><{ !rS>]¼d1rS>><dž$>]¼gdž$>>]¼Ӛ„g>><3е=Һ„g>]¼^κg>><^Ͼ$>]¼Ͼ$>><$LݾS>]¼^$LݾS>><^$Lݾ>]¼^ !$Lݾ>><^ !ϾzG>]¼ZϾxG>><Zֺ>]¼ޢ{ں>><ޢ{>]¼ !{>>< !{^/ >GR<@Ɯd>GR¼fƜd>¼Uo/>GR<7GZUo/>¼6HX>ク='Hvμ6#HDATA,^+ `+ DATA5`+ 5x  "   "  "  "  "  "  "  "  " " " "       ! !" "# #$ $ %"&"'"(")"*"+" ,"!-""."#/"$0"%&"%'"'("()")*"*+"+,",-"-."./"/0"&0"1"2"3"4"5"6"7"8"9" :" ;" <"12"13"34"45"56"67"78"89"9:":;";<"2<"1= 2> 3? 4@ 5A 6B 7C 8D 9E :F ;G <H =>"=?"?@"@A"AB"BC"CD"DE"EF"FG"GH">H"%I &J 'K (L )M *N +O ,P -Q .R /S 0T IJ"IK"KL"LM"MN"NO"OP"PQ"QR"RS"ST"JT"=U">V"?W"@X"AY"BZ"C["D\"E]"F^"G_"H`"UV UW WX XY YZ Z[ [\ \] ]^ ^_ _` V` Ua"Ia"Vb"Jb"Wc"Kc"Ld"Xd"Me"Ye"Nf"Zf"Og"[g"Ph"\h"Qi"]i"Rj"^j"Sk"_k"`l"Tl"ab ac cd de ef fg gh hi ij jk kl bl m"m" n"n"o"o"p"p"q"q"r"r"s"s"t" t"u"!u"v""v"w"#w"x"$x"mn mo op pq qr rs st tu uv vw wx nx y"yz z"z{ {"{| |"|} }"}~ ~"~ " " " " " "y "#y""#"#"#"#"#~"#}"#|"#{"#z"##!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""" "" " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " " " "" " " " " " " " "  "    " "  "  "  "  " " """"""""""""""""""""""""""""""""""  " " !" !" ""!""""# # # # # # # # # # !# "# $"$% %"%& &"&' '"'( ("() )")* *"*+ +"+, ,",- -"-. ."./ /"$/ /0"0; $;".1"01 -2"12 ,3"23 +4"34 *5"45 )6"56 (7"67 '8"78 &9"89 %:"9: :; ;<"<= :="=> 9>">? 8?"?@ 7@"@A 6A"AB 5B"BC 4C"CD 3D"DE 2E"EF 1F"FG 0G"<G GH"HS"<S"FI"HI"EJ"IJ"DK"JK"CL"KL"BM"LM"AN"MN"@O"NO"?P"OP">Q"PQ"=R"QR"RS"ST"TU"RU"UV"QV"VW"PW"WX"OX"XY"NY"YZ"MZ"Z["L["[\"K\"\]"J]"]^"I^"^_"H_"T_"T` _` ^` ]` \` [` Z` Y` X` W` V` U` b"ab a"c"bc d"cd e"de f"ef g"fg h"gh i"hi j"ij k"jk l"kl al ax"mx lm"mn kn"no jo"op ip"pq hq"qr gr"rs fs"st et"tu du"uv cv"vw bw"wx wz"yz"xy"v{"z{"u|"{|"t}"|}"s~"}~"r"~"q""p""o""n""m""y"y""""""""""""""~""}""|""{""z""             "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""" " "" " "  "  " "  " " """ """"""""""""""""""""""""""""""""" " "!"!"  " !"  "  """""""" !"""" #"$ %"&"'""# $% "& $' &' #% "( ( #)")"$* * %+"+"&,","'-"-"() *+ (, *- ,- )+ DATA,ؕ+ 0+ DATA.0+ 4N   &%%''(())**++ ,, !--!".."#//#$00$&21133445566778899:  :;  ;< 2 <2>=11=?33?@44@A55AB66BC77CD88DE99EF::FG;;GH<<H>2J&%II%'KK'(LL()MM)*NN*+OO+,PP,-QQ-.RR./SS/0TT0&J>VU==UW??WX@@XYAAYZBBZ[CC[\DD\]EE]^FF^_GG_`HH`V>VbaUbJIaUacWaIKcWcdXcKLdXdeYdLMeYefZeMNfZfg[fNOg[gh\gOPh\hi]hPQi]ij^iQRj^jk_jRSk_kl`kSTl`lbVlTJbnmn mmom oopoppqpqqrqrrsrsst st tu!tu!uv"uv"vw#vw#wx$wx$xnx n yz z{ {| |}}~~yy~~}}||{{zzy                  !   "! "######### # !#!"#"$%%&&''(())**++,,--..//$$/0;/.10.-21-,32,+43+*54*)65)(76('87'&98&%:9%$;::;<=9:=>89>?78?@67@A56AB45BC34CD23DE12EF01FG;0G<<GHSGFIHFEJIEDKJDCLKCBMLBANMA@ON@?PO?>QP>=RQ=<SRRSTUQRUVPQVWOPWXNOXYMNYZLMZ[KL[\JK\]IJ]^HI^_SH_T`T_`_^`^]`]\`\[`[Z`ZY`YX`XW`WV`VU`UTbacbdcedfegfhgihjikjlkallaxmklmnjknoijophipqghqrfgrsefstdetucduvbcvwabwxxwzywv{zvu|{ut}|ts~}sr~rqqppoonnmmxyy~}~|}{|z{yz           !   !    !  !    "#%$&"$''&#%()("#)+*+%$*,(,&"(*-*$'--,-'&,)+)#%+MEx+ 2X, 0+ MECylinder.059h+ G, @+ @, + ,  @F, T$\<|>My=>DATA+ x DATA,+ @+ DATA|8@+ 8=2=>^=bh<>^^=q>^ !0='+>Zg@<k>ޢ{@Ÿk> !{>O+>ZZ~lq>{ !0~h<>{>2=>ZŸr=> !^f@< r=>^,ZZ7 !{ƼP=b>ޢ{tg=b>Zl^ !b>^ti`b> Ƽb>^8 !^\Zޓ=>b>{ޓ=bm{ !ޓ=bm<>UH\,>>H\ޓ=>>U H\\>IH\8<>UH\ Ƽ> UH\ti`>IIH\>U H\l<>UH\tg=>I>H\ƼP=> UH\7UH\=2=6>[f@< r=6>[Ÿr=6>[>2=6> ?[0~h<6>V[~lq6>V[>O+6> ? ?[@Ÿk6>V[g@<k6>V[0='+6> ?[^=q6>[^=bh<6>[8G+W=ZZ~LqW={ !0=/+dW=Z^=qW=^ !^=Rh2=W=Z ~h7<ʹ=v2=ʹ=A[v2=1=wO^=1=fl-=ʹ=fLHF;ʹ=V$9ʹ=̫ʹ=K΃Zɾ!{ʹ=bھ^ʹ=Oʹ=fz<ʹ=|1Zfz<1=0F̫1=fk_g'<ʹ=`/ʹ=`:ʹ=jʾʹ=F5Aʹ=NӏZ۾Iʹ=:i\Nkʹ=ꢜ<1=d>ꢜ<ʹ= G,ZF5A1=oY# <ʹ=p%#ʹ=.ǎZ89ʹ=.ǎZvʾ(gʹ=.ǎZRDʹ=l8a۾w ʹ=.ǎZFQ~ʹ=.ǎZ2!<ʹ=02!<1=RD1=6>f;ʹ=.ǎZݾ p`j)(=ʹ=f)6Įʹ=j)*uʹ=Zn)VP=1=n)VP=ʹ=ZZj)*u1=n)T=ʹ=ZK(=ʹ=VK6Įʹ=ZK*uʹ=Z^KVP=1=^KVP=ʹ=ZZZK*u1=^KT=ʹ=fV<ʹ=·¾G'ʹ= ʹ=FƁZƦ8=1=5nƦ8=ʹ=vNZ 1=c7 =ʹ=׽(=ʹ=׽6Įʹ=׽*uʹ=Z׽VP=1=׽VP=ʹ=ZZ׽*u1=׽T=ʹ=VK6Įʹ=׽6Įʹ=(ҽ6Įʹ=ZZK(=ʹ=׽(=ʹ=0ҽ(=ʹ= þo(ʹ=·¾G'ʹ=.k6Įʹ=(zb<ʹ=xffV<ʹ=@9(=ʹ=1!cf)6Įʹ=j)(=ʹ=NMJk<ʹ=Saa>7<ʹ=Saa5Ӿ0jʹ=Saa0ҽDث=ʹ=@ҽї|=ʹ=0ҽz<ʹ=0ҽDث==0ҽ(==0ҽz<=(ҽ6Į=Z@ҽї|==NMJk<=Saab<=xf5Ӿ0j=Saa þo(=>7<=Saa(==1!cj)(==f)6Į=6Į=(zZK(==VK6Į=fV<=@9·¾G'=.k׽(==׽6Į=׽6Įm=VK6Įm=(ҽ6Įm=ZZK(=m=׽(=m=0ҽ(=m=·¾G'm=.k þo(m=6Įm=(zb77,=1=I2]>,=ʹ=3Z~1=Jjᄇ<ʹ=f@<k{ޢ{`Ÿk{ !{>G+{ZZ~<q{{ ! =7+LZ^=q{^ !^=Jh<{^ =2={@f@< r={^Ÿr={ !^>2={Z ~h<{{ͨ=îAY{>ͨ=J5AAoZ":!,=AIAJj ~h< {>2= ZŸr= !^@f@< r= ^ =2= ^=Bh< ^^=q ^ ! =7+6Z~<q { !>G+ ZZ`Ÿk !{f@<k ޢ{ᆰ,=/32Y>,=<⸽IfFl;/Ӿ/~/(KBþ./jĮ/1ѽ*u/ϽDث=/Ͻ(=/ȍϽVP=/Z׽6ˏ쀏ľS쀏VK6ˏ쀏f)6ˏ쀏6ˏ쀏׽r<쀏׽͗|=쀏׽Dث=쀏Ҿl]쀏Jླ[%<쀏7jz<쀏ZKr<쀏^K͗|=쀏ZKDث=쀏j)r<쀏r<쀏͗|=쀏n)͗|=쀏j)Dث=쀏Dث=쀏׽>Į쀏׽(=쀏·¾ G'쀏f龺V<쀏VK>Į쀏ZK(=쀏>Į쀏f)>Į쀏(=쀏j)(=쀏>7<쀏 þs(쀏5Ӿ,0j쀏NMBk<쀏Z<@ҽ͗|=쀏(ҽ>Į쀏0ҽr<쀏0ҽ(=쀏0ҽDث=쀏0ҽr<쀏@ҽ͗|=쀏0ҽDث=쀏5Ӿ,0j쀏SaaNMBk<쀏Saa>7<쀏Saaj)(=쀏f)>Į쀏(=쀏1!cf龺V<쀏@9ZĮ쀏(z þs(쀏·¾ G'쀏.k0ҽ(=쀏׽(=쀏ZK(=쀏(ҽ>Į쀏ZVK>Į쀏׽>Į쀏׽>Įq׽(=q·¾ G'q.kf龺VĮqZK(=q>Įq(zf)>Įqj)(=q(=q1!c>7ĮqZ0ҽr7Į/(=/1!cf龺VĮ/(z·¾ G'/.k þs(/0ҽ(=/׽(=/ZK(=/(ҽ>Į/Z׽>Į/VK>Į/׽T=/׽*u,⸽׽VP=/Z׽VP=<⸽׽*u/׽>Į/׽(=/7 =/ <⸽cƦ8=/vNƦ8=<⸽5n /F·¾ G'/f龺VĮ/ZK(=/n)T=/j)*u<⸽n)VP=/Zn)VP=<⸽j)*u/f)>Į/j)(=/>F;/.ǎRD<⸽6*!<<⸽*!:ilNk/۾I/F5A/Nqjʾ/`:///gs'7Į/*u/$w(=/ঢ়Į/0ҽ*u/0ҽDث=/0ҽ(=/8ҽVP=/Z7ݼVP=/xW<=/1[< ঢ়<(=/Z`7ݼ(=/ޓ=Jm<ս{ !ޓ=Vս{LĮ/rĮ/1ۀpb*u/ۀռ!/1ۀj2=,ZŸr=, !^@f@<r=,^=2=,^=Jh<,^^=q,^ !0=/+ Z~\q,{ !>G+,ZZ@Ÿk, !{g@<k,ޢ{ޓ=Jm<_:ޓ=V_N:LO+n??'~|qnV'0~gy2=n?'Ÿr=n'f@< r=n'=2=n'7l<RΒR 黣ti`GG Ƽ Q8<R\Gޓ=NU 黣,>ޓ=Zm<Uޓ=Zm< { !ޓ=N {\y2=fZ0~gO+fZZ@Ÿkf !{g@<kfޢ{0='+fZ^=qf^ !^=Zh#?#@#A#B#C# D# E# F#G#01#02#23#34#45#56#67#78#89#9:#:;#1;#<=!>?!=>!<@!@A!AB!BC!CD!DE!EF!FG!?G!;H#HI#1I#:J#HJ#9K#JK#8L#KL#7M#LM#6N#MN#5O#NO#4P#OP#3Q#PQ#2R#QR#0S#RS#IS#IT!TU#SU#UV#RV#VW!QW!WX!PX!XY!OY!YZ!NZ!Z[#M[![\#L\!\]#K]!]^#J^!^_#H_!T_# `#0`# a#1a#b#2b#3c#c#d#4d#5e#e#6f#f#g#7g#h#8h#9i#i#j#:j#;k#k#`a!`b!bc!cd!de!ef!fg!gh!hi!ij!jk!ak!Vl!Um#lm!no#qr#st!tu#uv#rv#Uw#Tx#Zy#[z#\{#]|#^}#_~#m!n#o#p!s!wx!yz!z{!{|!|}!}~!x~!w!!m#n#o!l!q!p!!!!!!##!!#!#####!!!!!!!#!!!!!!!!#!!!!!!###!!!!!#!!##!#!##!###!!##!!!!!!!!!!###!#!!!!!!!###!#!!!!!!!######!!##!!!!!!!!!q##t##s##!!p##!!!!!!!!!###t######q########################r##v##u####!!!!#!!!!!##!!!!!#!!!!#!!!!!!!!!!!!!!!!!#!##!#!##!######!###! ! ## # !  # ! !  # # # ! #!#!# ### ####### ##### ## #### ######## # # #!#!#!#"#"#"#######$!$%!%!&'!'(!()!&)!$'!%&!%*!*!&+!),!+,!*+! -!$-!-!'.!./!(/!.!/!-.!"0!0!*0!1!12!2!+1!,2!01!(3!34!)4!3!4!45!,5!5!/6!36!!6!6!#7!7!57!27!o8#p8#l9!q9!V:!r:!Z;#s;#Y<!t<!X=!u=!W>!v>!?!?!y@!@!A!A!9:!;<!<=!=>!:>!8?!;@!8A!9A!B!B!C!C!D!D!E#E#F!F!G!G!H!H!I#I#J!J!K!K!BC!DE!DF!FG!CG!HI!EJ!BK!IK!<L#=M#>N#?O#@P#AQ#BR#CS#DT#EU#FV#GW#wX#xY#yZ#z[#{\#|]#}^#~_#`!a#b#c!d!e!f#g#h#i#j#k!l#m#n#o#p!q!r!s!t!u!v!w!?x!@y!Hz!J{!LM#NO#MN#LP#PQ#QR#RS#ST#TU#UV#VW#OW#XY!Z[![\!\]!]^!^_!Y_!X`!ab!`e!ae!jl!km!ln!mo!fp!gq!pr!qs!ft!ht!gu!iu!cv!rv!dw!sw!cx!bx!dy!Zy!hz!jz!i{!k{!o!n!|#|}#}~#~#########|#}#~##########!!!!!!!!!0!:!1!;!3#=#2!<!4!>!5!?!7#A#6!@!8!B!9!C!!!!!!!!!!L!M!O!Y!P!Q!\!{!]!z!^!y!_#x#`!|!a!f!b#c#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########################################!#!#!###!!#!###!!###!######!##!#!##!#!!!!!!!!!!!!!!!!!#!!!!#!!!!!##!!!!!#!!!!###]##\##`####?#B##>#######J## ##C##H#@## #a######^####!!!!!!L!!O!#b#!P!#_##^##a# ! ! !  !  !:!D!;!E! =# G# <! F! A# I# @# H# C# J#!!!!!!!#!###!!!!!D!E!G#F!I#H#J##$#&!'!"#(##)! %# !# *!!##!+!",#"###-!%/!$%#$.!&(!&.!&0!'1!',#(3#()#)2!*/!*+!*4!+-!+5!,7#,-!-6!/8!./!.9!03!09!17!23#48!45!56!67!89!:=!:C!;A#<=#>B#>?#?@#@A!BC#DG!DJ!EI#FG#HI!KN!MN!KS!KR!Lb!La!Mf!Mc!Nd#Ne#QR!S[!TZ!TU!UV!VW!WX!XY!Z[!O_!Pb!Qc#Rd#Se!Ts#Ut#Vu#Wv#Xw#Yx#Z~#[}#\`#\]#]^#^_!`a#cd#ef!e}#f|!gq!gh!hi!ij!jk!kl!lm!mn!no!op!pr!qr!g#g#h#h#i#i#j#j#k#k#l#l#m#m#n#n#o#o#p#p#q#q#r#r#s~#s!st#t!tu#u!uv#v!vw#w!wx#x!xy!y!yz!z!z{!{!{|!|#|}#}#}~#~!########################!!!!!!!!!!!!########################!!!!!!!!!!!!################################################!!!!!!!!!!!!!!!!!!!!!!!!fF#p!r!v!cP!x!bQ#aR#eK!`S!X[#YZ#_T#^U#]V#\W#[X#ZY#y!dO!w!s!q!gE#u!i;#{!k1!m'#o#!!!! !!!"!#!%!$!n#l)#j2#z!h<#t !DATA,@F, G, DATA8G, 4   !!" "# # $% %& &' '(())**++,,--..//$$//..--,,++**))( ('! '&"!&%#"%$#=<?>>=<@@AABCBC DD EE FF GG?1;HI;:JH:9KJ98LK87ML76NM65ON54PO43QP32RQ20SR01ISSITURSUVQRVWPQWXOPXYNOYZMNZ[LM[\KL\]JK]^HJ^_IH_T0`a1` a2b`0b `3cb2cb4dc3dc5ed4ed6fe5fe7gf6gf8hg7hg9ih8ih:ji9ji;kj:kj1ak;a kVUmlwUTxz[Zy{\[z|]\{}^]|~_^}xT_~Uwmonmlnomntspsqptqvruvturq                      !!""##$%&'()%$'&%*+&),*%&+ -$ -'./(./$-.'-."0"*0121+,2010*+1(34)34)45,45/63(6!3!67#,5725#7276/l9:V9qr:Y<;Z<ts;X=<Y=ut<W>=X>vu=V:>W:rv>p8?8o?@;s@yZ;A8pAo8q9A9lABCBCDEDEFDFDGFGFCGCGHIHIEJEJKBKBIKIKM=<LO?>NN>=ML<@PP@AQQABRRBCSSCDTTDEUUEFVVFGWWG?OXwxY[zyZ\{z[]|{\^}|]_~}^Yx~_wX`bae`aejlkmlnmonofpgqprqstfhtugiuvcrvwdsw?xcbx?y@dZy@yzHhjHzJ{ik{J1{k;i{jz2zh<ZyYydOQxbPcxwsOdwrvvcP;uiEguht <tfF sqprEqgfpFonmo')nlkm'12)ljaeKRe`SKbaRQ[S`XY_TZ_^UT^]VU]\WV\[XW[ZYXXYZ[|}|~}~03=:90:C17A;32<=48B>54>?65?@76@A89CBMfaLcMLbxYO_QcbP\`|{]\{z^]zy_^yx`af|`a^]]\\`CB?@>?B>JHJ  C H@ a^bLLa_OPb^_ :=GD  C:DJ  ;AIE   =<FG    A@HI  DGJDEIGFIH$" %! #!"#%$&(.$&'",()* %/+! *-#!+,"#-/%$.0&(39.&01',73()24*/85+*46-+57,-68/.9KNdRSeNKNMcdefMNQRdc}eS[ZTs~TUtsUVutVWvuWXwvXYxw[Z~}|fe}qggqghhghiihijjijkkjkllklmmlmnnmnoonoppoprrprqqr~ssttuuvvwwxxyyzz{{||}}~MEX, 2- x+ MECylinder.060, h, , @, ȁ, ,  , .xN >=>T>[e>DATA, x DATA,ȁ,  , DATA+ , 8.t>>X:ξZZώR>X:ξ{ !ώ>X:ξ{t(ː>X:ξZc/&>X:ξ !^T/&>X:ξ^9(ː>X:ξǾ>X:ξ^ǾR>\:ξ^ !9>>\:ξZV65>\:ξޢ{d95>X:ξ !{t@>B<>>\ώR>BPC@C<>\a2&>PC<\R/&>B<\9'ː>B<\Ǿ>B<\ǾR>B<\9=>B<>\X65>BB<U\\W>B<ώR>i޲{ !t>>i޲ZZώ>h޲{t)ː>h޲Zc/&>h޲ !^T/&>i޲^9(ː>i޲Ǿ>h޲^ǾR>l޲^ !9>>l޲ZV65>l޲ޢ{d95>h޲ !{ώR>pXqYt>>@@qYώ>pXNqYt)ː>@CqYc/&>qYT/&>N萧qY9(ː>CCqYǾ>NqYǾR>qY9>>C@qYV65>NpXqYd95>pXqYώR>;Yէt>>;AAէώ>;Yէt(ː>;Aeէc/&>;aէT/&>;aէ9(ː>;eeէǾ>;aէǾR>;aէ9>>;eAէV65>;Yէd95>;Yէo\î>;Yէ>;AAէo >;Yէی>;AeէA6ƃ>;aէm6ƃ>;aէ/)ľی>;eeէ>; >;aէ>;[î>;aէ0)ľ>;eAէm.>;YէA2>;Yէo\î>ppXqY>p@@qYo >npXNqYی>n@CqYA6ƃ>nqYm6ƃ>pN萧qY/)ľی>pCCqY>; >nNqY>;[î>sqY0)ľ>sC@qYm.>sNpXqYA2>npXqYo\î>̾{ !>̾ZZo >̾{ی>̾ZA6ƃ>̾ !^m6ƃ>̾^/)ľی>̾>; >̾^>;[î>̾^ !0)ľ>̾Zm.>̾ޢ{A2>̾ !{o\î>{ !>ZZo >ޝ{ی>ޝZA6ƃ>ޝ !^m6ƃ>^/)ľی>>; >ޝ^>;[î>㝴^ !0)ľ>㝴Zm.>㝴ޢ{A2>ޝ !{ώR>1;{ !t@>1;ZZώ>q;{t+ː>Q;Za2&>q; !^R/&>1;^9'ː>1;Ǿ>Q;^ǾR>Q;^ !9=>Q;ZX65>Q;ޢ{g95>Q; !{t>>nоZZd95>nо !{V65>rоޢ{9>>rоZǾR>rо^ !Ǿ>nо^9(ː>nоT/&>nо^c/&>nо !^t(ː>nоZώ>nо{ώR>nо{ !t>>=Ѿ>>ώR>=ѾUώ>=ѾUt(ː>=Ѿ>c/&>=ѾT/&>=Ѿ9(ː>=ѾǾ>=ѾǾR>=Ѿ9>>=Ѿ>V65>=ѾUd95>=ѾU\W>=Ѿ==Cʼ>>c>(=CʼUc>pCʼU頣=0νCʼ>[_=( Cʼm*'( Cʼm,ֽ0νCʼ[[ܯCʼm頣ܯ=Cʼm,ֽ=Cʼ[>R' >CʼUC= >CʼU==<>>`\c>H=@[`\=( <m`\'0 <m`\~,ֽHν<[[`\ܯ`\~' ><U`\= ><U`\L֟>A<U \pڶ>AA<> \A< \A< \&ʾWE>A< \fڶu>A< \D֟u>A< \狾]E>A<> \xe4>AAA<>> \H֟>`Unڶ>`U*ʾ&>`>``*ʾZE>`jڶu>`H֟u>`狾ZE>`>xe4>`Uxe>8>`U狾&>`>>==< !{~' ><ޢ{,ֽ=<Zܯ=<^ !ܯ<^~,ֽHν<'0 <^=( < !^= ν@<{c>H=<{ !c>H=={ !===ZZc>@={= ν=Z=( = !^'0 =^~,ֽHν=ܯ=^ܯ==^ !,ֽ==Z~' >=ޢ{= >= !{= >$==vc%==$=VVc%~' >$=R=vc%,ֽ=$=qVc%ܯ=$=Éc%ܯ$=ÉRc%~,ֽHν$=qqc%'0 $=RÉd%=( $=Éd%= ν$=Vqc%c>@$==vRc%c>H=$==vc%=x=t =**Jq߇>p1=t =9jJq߇>ht =9Jq=̽t =*Jqj= t =jwJq(P& t =wJqԽ̽t =JqVAЉt =wƖJqVA1=t =wjJq ԽX=t =*JqP&9 >t =9Jq?j=9 >t =j9Jqh+t =C= >ټ !{R' >ټޢ{,ֽ=ټZܯ=ټ^ !ܯټ^,ֽ0νټ*'( ټ^_=( ټ !^=0νټZc>pټ{c>(=ټ{ !==ټZZ==缁ZZc>(=缢{ !c>p缢{=0ν缁Z_=(  !^*'( ^,ֽ0νܯ^ܯ=^ !,ֽ=ZR' >ޢ{C= > !{C= >9T0qR' >90q,ֽ=9$Rܯ=9ЎTܯ9Ў,ֽ0ν9$$*'( 9Ў_=( 9TЎ=0ν9R$c>p90qc>(=90qT==9RRR=M=, Ĉ >=,, Ĉ >,,ĈR=˽, Ĉ= , Ĉ% , Ĉ:]ӽ˽,Ĉ, Ĉx=, ĈD]ӽM=, Ĉ%ȼ >,,Ĉ=ȼ >, ,Ĉh+,狾&><{ !xe4><{狾]E>< !^fڶu><^&ʾWE><<^<^ !.ʾ&><Zpڶ><ޢ{L֟>< !{L֟>< !{pڶ><ޢ{.ʾ&><Z<^ !<^&ʾWE><fڶu><^D֟u>< !^狾]E><{xe@8><{ !狾&>4b=ZZxe@8>4b={ !xe4>4b={狾]E>4b=ZD֟u>4b= !^fڶu>4b=^&ʾWE>4b=4b=^4b=^ !.ʾ&>4b=Zpڶ>4b=ޢ{L֟>4b= !{L֟>=Lt)pڶ>=t).ʾ&>=~U)=2L)=2)&ʾWE>=~~)fڶu>=2)D֟u>=L2)狾]E>=U~)xe4>=t)xe@8>=tL)狾&>=UU) \h>@=='='Ws >@=5\Ws^>@=5Ws\>@=='Wsv>@=\fWsv>@=fWsTʾ>@=Wsվ^>@=fʤWsվ >@=f\WsTʾc>@=='Wsį >@=5Ws >@=\5WsXX,>@=狾&>YJǼZZxe>8>YJǼ{ !xe4>YJǼ{狾ZE>YJǼZH֟u>YJǼ !^jڶu>YJǼ^*ʾZE>YJǼYJǼ^YJǼ^ !*ʾ&>YJǼZnڶ>YJǼޢ{H֟>YJǼ !{H֟>9Ѽ !{nڶ>9Ѽޢ{*ʾ&>9ѼZ9Ѽ^ !9Ѽ^*ʾZE>9Ѽjڶu>9Ѽ^H֟u>9Ѽ !^狾ZE>9ѼZxe4>9Ѽ{xe>8>9Ѽ{ !狾&>9ѼZZ狾&>M T T|xe>8>Mr|xe4>Mr>|狾ZE>M T|H֟u>M4|jڶu>M>4|*ʾZE>M|M4>|M4|*ʾ&>M T|nڶ>M>r|H֟>Mr|XX,> 3>  0Q֜3> 0Q ʾ~> iܗ#Q`eվ> b Q`eվq> bQ ʾ> iiQԜHRw> bQHRw>  bQ̏> #iQSKq> 0QSK> 0 Q̏~> ##Q֖=X=<__=(><6=H=9ʼ__v= >9ʼ5v$2 ><2 >9ʼv 8=<_ @=9ʼ_v=#<m>#9ʼvm>=<5m>ț=9ʼ5v>!=9μ=(=9μgg>!=b<Q~=(=b('9μW>'b<WQ~=(9μg=b9μW쯁>5ĩ>b9μ쯁=̩>b<Q~=(=bb< !{=(=9μZZ=ĩ>9μ !{>5ĩ>b<[$4k;5ĩ>9μ1$LkW7'=b'b<{>('9μ{>!=b<{ !>!=9μ{ !Lt>[|Tܹ>[``Lt><<|T߹><<``Lt>[|Lt><<|Tz>[` T}><<` )i>[)i><<i>[i><< \Ͼz>[ \Ͼv><< ܾ>[ܾ><<ܾ>[ܾ><< \Ͼ۹>[ `\Ͼٹ><< `>[|><<|)>[|)><<| dž~G>>>]¼C㌃dž{G>]¼ꌃں>><t|ֺ>]¼㌃ϾxG>><%t|ϾzG>]¼%ꌃ$Lݾ>><Ct|$Lݾ>]¼C$LݾS>><t|$LݾS>]¼Ͼ$>><%%t|Ͼ$>]¼%%κg>><t|Һ„g>]¼„g>>]¼Cdž$>><%t|dž$>]¼%rS>><t|rS>]¼r>><Ct|r>]¼Cdž{G>]¼ZZr>]¼{ ! dž~G>>><{ !rS>]¼d1rS>><dž$>]¼gdž$>>]¼Ӛ„g>><3е=Һ„g>]¼^κg>><^Ͼ$>]¼Ͼ$>><$LݾS>]¼^$LݾS>><^$Lݾ>]¼^ !$Lݾ>><^ !ϾzG>]¼ZϾxG>><Zֺ>]¼ޢ{ں>><ޢ{>]¼ !{>>< !{^/ >GR<@Ɯd>GR¼fƜd>¼Uo/>GR<7GZUo/>¼6HX>ク='Hvμ6#HDATA,, @, DATA5@, 5x  "   "  "  "  "  "  "  "  " " " "       ! !" "# #$ $ %"&"'"(")"*"+" ,"!-""."#/"$0"%&"%'"'("()")*"*+"+,",-"-."./"/0"&0"1"2"3"4"5"6"7"8"9" :" ;" <"12"13"34"45"56"67"78"89"9:":;";<"2<"1= 2> 3? 4@ 5A 6B 7C 8D 9E :F ;G <H =>"=?"?@"@A"AB"BC"CD"DE"EF"FG"GH">H"%I &J 'K (L )M *N +O ,P -Q .R /S 0T IJ"IK"KL"LM"MN"NO"OP"PQ"QR"RS"ST"JT"=U">V"?W"@X"AY"BZ"C["D\"E]"F^"G_"H`"UV UW WX XY YZ Z[ [\ \] ]^ ^_ _` V` Ua"Ia"Vb"Jb"Wc"Kc"Ld"Xd"Me"Ye"Nf"Zf"Og"[g"Ph"\h"Qi"]i"Rj"^j"Sk"_k"`l"Tl"ab ac cd de ef fg gh hi ij jk kl bl m"m" n"n"o"o"p"p"q"q"r"r"s"s"t" t"u"!u"v""v"w"#w"x"$x"mn mo op pq qr rs st tu uv vw wx nx y"yz z"z{ {"{| |"|} }"}~ ~"~ " " " " " "y "#y""#"#"#"#"#~"#}"#|"#{"#z"##!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""" "" " " " " " " " " " " " " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""""" " " " " " " " " " " " " " "" " " " " " " " "  "    " "  "  "  "  " " """"""""""""""""""""""""""""""""""  " " !" !" ""!""""# # # # # # # # # # !# "# $"$% %"%& &"&' '"'( ("() )")* *"*+ +"+, ,",- -"-. ."./ /"$/ /0"0; $;".1"01 -2"12 ,3"23 +4"34 *5"45 )6"56 (7"67 '8"78 &9"89 %:"9: :; ;<"<= :="=> 9>">? 8?"?@ 7@"@A 6A"AB 5B"BC 4C"CD 3D"DE 2E"EF 1F"FG 0G"<G GH"HS"<S"FI"HI"EJ"IJ"DK"JK"CL"KL"BM"LM"AN"MN"@O"NO"?P"OP">Q"PQ"=R"QR"RS"ST"TU"RU"UV"QV"VW"PW"WX"OX"XY"NY"YZ"MZ"Z["L["[\"K\"\]"J]"]^"I^"^_"H_"T_"T` _` ^` ]` \` [` Z` Y` X` W` V` U` b"ab a"c"bc d"cd e"de f"ef g"fg h"gh i"hi j"ij k"jk l"kl al ax"mx lm"mn kn"no jo"op ip"pq hq"qr gr"rs fs"st et"tu du"uv cv"vw bw"wx wz"yz"xy"v{"z{"u|"{|"t}"|}"s~"}~"r"~"q""p""o""n""m""y"y""""""""""""""~""}""|""{""z""             "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "  " "  ""  ""  ""  ""  ""  ""  ""  ""  ""  """"""""""""""""""""""""""""""""""""""""""""""" " "" " "  "  " "  " " """ """"""""""""""""""""""""""""""""" " "!"!"  " !"  "  """""""" !"""" #"$ %"&"'""# $% "& $' &' #% "( ( #)")"$* * %+"+"&,","'-"-"() *+ (, *- ,- )+ DATA,, h, DATA.h, 4N   &%%''(())**++ ,, !--!".."#//#$00$&21133445566778899:  :;  ;< 2 <2>=11=?33?@44@A55AB66BC77CD88DE99EF::FG;;GH<<H>2J&%II%'KK'(LL()MM)*NN*+OO+,PP,-QQ-.RR./SS/0TT0&J>VU==UW??WX@@XYAAYZBBZ[CC[\DD\]EE]^FF^_GG_`HH`V>VbaUbJIaUacWaIKcWcdXcKLdXdeYdLMeYefZeMNfZfg[fNOg[gh\gOPh\hi]hPQi]ij^iQRj^jk_jRSk_kl`kSTl`lbVlTJbnmn mmom oopoppqpqqrqrrsrsst st tu!tu!uv"uv"vw#vw#wx$wx$xnx n yz z{ {| |}}~~yy~~}}||{{zzy                  !   "! "######### # !#!"#"$%%&&''(())**++,,--..//$$/0;/.10.-21-,32,+43+*54*)65)(76('87'&98&%:9%$;::;<=9:=>89>?78?@67@A56AB45BC34CD23DE12EF01FG;0G<<GHSGFIHFEJIEDKJDCLKCBMLBANMA@ON@?PO?>QP>=RQ=<SRRSTUQRUVPQVWOPWXNOXYMNYZLMZ[KL[\JK\]IJ]^HI^_SH_T`T_`_^`^]`]\`\[`[Z`ZY`YX`XW`WV`VU`UTbacbdcedfegfhgihjikjlkallaxmklmnjknoijophipqghqrfgrsefstdetucduvbcvwabwxxwzywv{zvu|{ut}|ts~}sr~rqqppoonnmmxyy~}~|}{|z{yz           !   !    !  !    "#%$&"$''&#%()("#)+*+%$*,(,&"(*-*$'--,-'&,)+)#%+ME- 2- X, MECylinder.061`- З- x- xR- -  Q-  x- T$\<|>My=>DATA- x DATA, - x- DATA|8x- 8=2=>^=bh<>^^=q>^ !0='+>Zg@<k>ޢ{@Ÿk> !{>O+>ZZ~lq>{ !0~h<>{>2=>ZŸr=> !^f@< r=>^,ZZ7 !{ƼP=b>ޢ{tg=b>Zl^ !b>^ti`b> Ƽb>^8 !^\Zޓ=>b>{ޓ=bm{ !ޓ=bm<>UH\,>>H\ޓ=>>U H\\>IH\8<>UH\ Ƽ> UH\ti`>IIH\>U H\l<>UH\tg=>I>H\ƼP=> UH\7UH\=2=6>[f@< r=6>[Ÿr=6>[>2=6> ?[0~h<6>V[~lq6>V[>O+6> ? ?[@Ÿk6>V[g@<k6>V[0='+6> ?[^=q6>[^=bh<6>[8G+W=ZZ~LqW={ !0=/+dW=Z^=qW=^ !^=Rh2=W=Z ~h7<ʹ=v2=ʹ=A[v2=1=wO^=1=fl-=ʹ=fLHF;ʹ=V$9ʹ=̫ʹ=K΃Zɾ!{ʹ=bھ^ʹ=Oʹ=fz<ʹ=|1Zfz<1=0F̫1=fk_g'<ʹ=`/ʹ=`:ʹ=jʾʹ=F5Aʹ=NӏZ۾Iʹ=:i\Nkʹ=ꢜ<1=d>ꢜ<ʹ= G,ZF5A1=oY# <ʹ=p%#ʹ=.ǎZ89ʹ=.ǎZvʾ(gʹ=.ǎZRDʹ=l8a۾w ʹ=.ǎZFQ~ʹ=.ǎZ2!<ʹ=02!<1=RD1=6>f;ʹ=.ǎZݾ p`j)(=ʹ=f)6Įʹ=j)*uʹ=Zn)VP=1=n)VP=ʹ=ZZj)*u1=n)T=ʹ=ZK(=ʹ=VK6Įʹ=ZK*uʹ=Z^KVP=1=^KVP=ʹ=ZZZK*u1=^KT=ʹ=fV<ʹ=·¾G'ʹ= ʹ=FƁZƦ8=1=5nƦ8=ʹ=vNZ 1=c7 =ʹ=׽(=ʹ=׽6Įʹ=׽*uʹ=Z׽VP=1=׽VP=ʹ=ZZ׽*u1=׽T=ʹ=VK6Įʹ=׽6Įʹ=(ҽ6Įʹ=ZZK(=ʹ=׽(=ʹ=0ҽ(=ʹ= þo(ʹ=·¾G'ʹ=.k6Įʹ=(zb<ʹ=xffV<ʹ=@9(=ʹ=1!cf)6Įʹ=j)(=ʹ=NMJk<ʹ=Saa>7<ʹ=Saa5Ӿ0jʹ=Saa0ҽDث=ʹ=@ҽї|=ʹ=0ҽz<ʹ=0ҽDث==0ҽ(==0ҽz<=(ҽ6Į=Z@ҽї|==NMJk<=Saab<=xf5Ӿ0j=Saa þo(=>7<=Saa(==1!cj)(==f)6Į=6Į=(zZK(==VK6Į=fV<=@9·¾G'=.k׽(==׽6Į=׽6Įm=VK6Įm=(ҽ6Įm=ZZK(=m=׽(=m=0ҽ(=m=·¾G'm=.k þo(m=6Įm=(zb77,=1=I2]>,=ʹ=3Z~1=Jjᄇ<ʹ=f@<k{ޢ{`Ÿk{ !{>G+{ZZ~<q{{ ! =7+LZ^=q{^ !^=Jh<{^ =2={@f@< r={^Ÿr={ !^>2={Z ~h<{{ͨ=îAY{>ͨ=J5AAoZ":!,=AIAJj ~h< {>2= ZŸr= !^@f@< r= ^ =2= ^=Bh< ^^=q ^ ! =7+6Z~<q { !>G+ ZZ`Ÿk !{f@<k ޢ{ᆰ,=/32Y>,=<⸽IfFl;/Ӿ/~/(KBþ./jĮ/1ѽ*u/ϽDث=/Ͻ(=/ȍϽVP=/Z׽6ˏ쀏ľS쀏VK6ˏ쀏f)6ˏ쀏6ˏ쀏׽r<쀏׽͗|=쀏׽Dث=쀏Ҿl]쀏Jླ[%<쀏7jz<쀏ZKr<쀏^K͗|=쀏ZKDث=쀏j)r<쀏r<쀏͗|=쀏n)͗|=쀏j)Dث=쀏Dث=쀏׽>Į쀏׽(=쀏·¾ G'쀏f龺V<쀏VK>Į쀏ZK(=쀏>Į쀏f)>Į쀏(=쀏j)(=쀏>7<쀏 þs(쀏5Ӿ,0j쀏NMBk<쀏Z<@ҽ͗|=쀏(ҽ>Į쀏0ҽr<쀏0ҽ(=쀏0ҽDث=쀏0ҽr<쀏@ҽ͗|=쀏0ҽDث=쀏5Ӿ,0j쀏SaaNMBk<쀏Saa>7<쀏Saaj)(=쀏f)>Į쀏(=쀏1!cf龺V<쀏@9ZĮ쀏(z þs(쀏·¾ G'쀏.k0ҽ(=쀏׽(=쀏ZK(=쀏(ҽ>Į쀏ZVK>Į쀏׽>Į쀏׽>Įq׽(=q·¾ G'q.kf龺VĮqZK(=q>Įq(zf)>Įqj)(=q(=q1!c>7ĮqZ0ҽr7Į/(=/1!cf龺VĮ/(z·¾ G'/.k þs(/0ҽ(=/׽(=/ZK(=/(ҽ>Į/Z׽>Į/VK>Į/׽T=/׽*u,⸽׽VP=/Z׽VP=<⸽׽*u/׽>Į/׽(=/7 =/ <⸽cƦ8=/vNƦ8=<⸽5n /F·¾ G'/f龺VĮ/ZK(=/n)T=/j)*u<⸽n)VP=/Zn)VP=<⸽j)*u/f)>Į/j)(=/>F;/.ǎRD<⸽6*!<<⸽*!:ilNk/۾I/F5A/Nqjʾ/`:///gs'7Į/*u/$w(=/ঢ়Į/0ҽ*u/0ҽDث=/0ҽ(=/8ҽVP=/Z7ݼVP=/xW<=/1[< ঢ়<(=/Z`7ݼ(=/ޓ=Jm<ս{ !ޓ=Vս{LĮ/rĮ/1ۀpb*u/ۀռ!/1ۀj2=,ZŸr=, !^@f@<r=,^=2=,^=Jh<,^^=q,^ !0=/+ Z~\q,{ !>G+,ZZ@Ÿk, !{g@<k,ޢ{ޓ=Jm<_:ޓ=V_N:LO+n??'~|qnV'0~gy2=n?'Ÿr=n'f@< r=n'=2=n'7l<RΒR 黣ti`GG Ƽ Q8<R\Gޓ=NU 黣,>ޓ=Zm<Uޓ=Zm< { !ޓ=N {\y2=fZ0~gO+fZZ@Ÿkf !{g@<kfޢ{0='+fZ^=qf^ !^=Zh#?#@#A#B#C# D# E# F#G#01#02#23#34#45#56#67#78#89#9:#:;#1;#<=!>?!=>!<@!@A!AB!BC!CD!DE!EF!FG!?G!;H#HI#1I#:J#HJ#9K#JK#8L#KL#7M#LM#6N#MN#5O#NO#4P#OP#3Q#PQ#2R#QR#0S#RS#IS#IT!TU#SU#UV#RV#VW!QW!WX!PX!XY!OY!YZ!NZ!Z[#M[![\#L\!\]#K]!]^#J^!^_#H_!T_# `#0`# a#1a#b#2b#3c#c#d#4d#5e#e#6f#f#g#7g#h#8h#9i#i#j#:j#;k#k#`a!`b!bc!cd!de!ef!fg!gh!hi!ij!jk!ak!Vl!Um#lm!no#qr#st!tu#uv#rv#Uw#Tx#Zy#[z#\{#]|#^}#_~#m!n#o#p!s!wx!yz!z{!{|!|}!}~!x~!w!!m#n#o!l!q!p!!!!!!##!!#!#####!!!!!!!#!!!!!!!!#!!!!!!###!!!!!#!!##!#!##!###!!##!!!!!!!!!!###!#!!!!!!!###!#!!!!!!!######!!##!!!!!!!!!q##t##s##!!p##!!!!!!!!!###t######q########################r##v##u####!!!!#!!!!!##!!!!!#!!!!#!!!!!!!!!!!!!!!!!#!##!#!##!######!###! ! ## # !  # ! !  # # # ! #!#!# ### ####### ##### ## #### ######## # # #!#!#!#"#"#"#######$!$%!%!&'!'(!()!&)!$'!%&!%*!*!&+!),!+,!*+! -!$-!-!'.!./!(/!.!/!-.!"0!0!*0!1!12!2!+1!,2!01!(3!34!)4!3!4!45!,5!5!/6!36!!6!6!#7!7!57!27!o8#p8#l9!q9!V:!r:!Z;#s;#Y<!t<!X=!u=!W>!v>!?!?!y@!@!A!A!9:!;<!<=!=>!:>!8?!;@!8A!9A!B!B!C!C!D!D!E#E#F!F!G!G!H!H!I#I#J!J!K!K!BC!DE!DF!FG!CG!HI!EJ!BK!IK!<L#=M#>N#?O#@P#AQ#BR#CS#DT#EU#FV#GW#wX#xY#yZ#z[#{\#|]#}^#~_#`!a#b#c!d!e!f#g#h#i#j#k!l#m#n#o#p!q!r!s!t!u!v!w!?x!@y!Hz!J{!LM#NO#MN#LP#PQ#QR#RS#ST#TU#UV#VW#OW#XY!Z[![\!\]!]^!^_!Y_!X`!ab!`e!ae!jl!km!ln!mo!fp!gq!pr!qs!ft!ht!gu!iu!cv!rv!dw!sw!cx!bx!dy!Zy!hz!jz!i{!k{!o!n!|#|}#}~#~#########|#}#~##########!!!!!!!!!0!:!1!;!3#=#2!<!4!>!5!?!7#A#6!@!8!B!9!C!!!!!!!!!!L!M!O!Y!P!Q!\!{!]!z!^!y!_#x#`!|!a!f!b#c#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########################################!#!#!###!!#!###!!###!######!##!#!##!#!!!!!!!!!!!!!!!!!#!!!!#!!!!!##!!!!!#!!!!###]##\##`####?#B##>#######J## ##C##H#@## #a######^####!!!!!!L!!O!#b#!P!#_##^##a# ! ! !  !  !:!D!;!E! =# G# <! F! A# I# @# H# C# J#!!!!!!!#!###!!!!!D!E!G#F!I#H#J##$#&!'!"#(##)! %# !# *!!##!+!",#"###-!%/!$%#$.!&(!&.!&0!'1!',#(3#()#)2!*/!*+!*4!+-!+5!,7#,-!-6!/8!./!.9!03!09!17!23#48!45!56!67!89!:=!:C!;A#<=#>B#>?#?@#@A!BC#DG!DJ!EI#FG#HI!KN!MN!KS!KR!Lb!La!Mf!Mc!Nd#Ne#QR!S[!TZ!TU!UV!VW!WX!XY!Z[!O_!Pb!Qc#Rd#Se!Ts#Ut#Vu#Wv#Xw#Yx#Z~#[}#\`#\]#]^#^_!`a#cd#ef!e}#f|!gq!gh!hi!ij!jk!kl!lm!mn!no!op!pr!qr!g#g#h#h#i#i#j#j#k#k#l#l#m#m#n#n#o#o#p#p#q#q#r#r#s~#s!st#t!tu#u!uv#v!vw#w!wx#x!xy!y!yz!z!z{!{!{|!|#|}#}#}~#~!########################!!!!!!!!!!!!########################!!!!!!!!!!!!################################################!!!!!!!!!!!!!!!!!!!!!!!!fF#p!r!v!cP!x!bQ#aR#eK!`S!X[#YZ#_T#^U#]V#\W#[X#ZY#y!dO!w!s!q!gE#u!i;#{!k1!m'#o#!!!! !!!"!#!%!$!n#l)#j2#z!h<#t !DATA,x- З- DATA8З- 4   !!" "# # $% %& &' '(())**++,,--..//$$//..--,,++**))( ('! '&"!&%#"%$#=<?>>=<@@AABCBC DD EE FF GG?1;HI;:JH:9KJ98LK87ML76NM65ON54PO43QP32RQ20SR01ISSITURSUVQRVWPQWXOPXYNOYZMNZ[LM[\KL\]JK]^HJ^_IH_T0`a1` a2b`0b `3cb2cb4dc3dc5ed4ed6fe5fe7gf6gf8hg7hg9ih8ih:ji9ji;kj:kj1ak;a kVUmlwUTxz[Zy{\[z|]\{}^]|~_^}xT_~Uwmonmlnomntspsqptqvruvturq                      !!""##$%&'()%$'&%*+&),*%&+ -$ -'./(./$-.'-."0"*0121+,2010*+1(34)34)45,45/63(6!3!67#,5725#7276/l9:V9qr:Y<;Z<ts;X=<Y=ut<W>=X>vu=V:>W:rv>p8?8o?@;s@yZ;A8pAo8q9A9lABCBCDEDEFDFDGFGFCGCGHIHIEJEJKBKBIKIKM=<LO?>NN>=ML<@PP@AQQABRRBCSSCDTTDEUUEFVVFGWWG?OXwxY[zyZ\{z[]|{\^}|]_~}^Yx~_wX`bae`aejlkmlnmonofpgqprqstfhtugiuvcrvwdsw?xcbx?y@dZy@yzHhjHzJ{ik{J1{k;i{jz2zh<ZyYydOQxbPcxwsOdwrvvcP;uiEguht <tfF sqprEqgfpFonmo')nlkm'12)ljaeKRe`SKbaRQ[S`XY_TZ_^UT^]VU]\WV\[XW[ZYXXYZ[|}|~}~03=:90:C17A;32<=48B>54>?65?@76@A89CBMfaLcMLbxYO_QcbP\`|{]\{z^]zy_^yx`af|`a^]]\\`CB?@>?B>JHJ  C H@ a^bLLa_OPb^_ :=GD  C:DJ  ;AIE   =<FG    A@HI  DGJDEIGFIH$" %! #!"#%$&(.$&'",()* %/+! *-#!+,"#-/%$.0&(39.&01',73()24*/85+*46-+57,-68/.9KNdRSeNKNMcdefMNQRdc}eS[ZTs~TUtsUVutVWvuWXwvXYxw[Z~}|fe}qggqghhghiihijjijkkjkllklmmlmnnmnoonoppoprrprqqr~ssttuuvvwwxxyyzz{{||}}~ME- 2. - MECylinder.062Q- . X- - - 8-  `. 4:pkS,$>`>`F>DATA- x DATA,- X- DATAX- 8,#>^Խ(=6*Q,#>ó>6 o,#>k!=>6o,#>κ=(=6QQ,#>V>=6o,#>X>v 6o ,#>ߺ=x@ؽw6Q,#>k!=,db6,#>,d6:,#>^Խx@ؽ6.:,#>Xs0w 65 ,#>`sP=65d#^Խ(=ѯ/Pd#>ħmd#k!=>Ymd#ú=H=/P/Pd#X>Ш=ĉmYd#`>v ĉmd#=X@ؽ/Pѯl#l!=,dZl#{˳>ޢ{i=ӳ>ޢ{=׳>ޢ{(۳>ޢ{ֽ߳>ޢ{>ޢ{<>^Խ(=ZY=^Խ(=Z=^Խ(=Z)^Խ(=Zֽ^Խ(=Z ^Խ(=ZD>k!=> !{i=k!=> !{=k!=> !{(k!=> !{ֽk!=> !{k!=> !{D>̺=(=ZZi=ʺ=(=ZZ=ɺ=H=ZZ(Ǻ=H=ZZֽƺ=H=ZZź=H=ZZD>V>={ !i=X>={!=X>={!(X>={!ֽX>={!X>={ !D>X>v {i=Z>v {Q=ȋ> ^ ~ȋ> ~ֽ^>v {`>v {<>=x@ؽdZb=A=׽(k'ֽA=׽Q׳k =X@ؽ/}Zzt7>_`!=#KA4p_`!=f]4t7> BLtB'˼<>^Խx@ؽc=?ԽXٽR)_g'ֽ?Խ,ؽGK ^Խ@ؽ |<>Xs0w !ZY=Xs0w S q=]% R h]% jֽVspw b Vspw _<>`sP=^ !Y=`sP=]!=^sP=[!)^sP=[!ֽ^sP=]! ^sP=^ !F=vܷ U==ܷ U ==ܷ >>=Z=ܷ UGZ=ܷ U쳽=ܷ >W=ܷ Wܷ sܷ ewWӽнܷ aaw1=ܷ ew=нܷ aw>O4ܷ w>=ܷ wٱ=Q=ܷ w=M>ܷ w/tM>ܷ wWӽQ=ܷ a wn=ܷ ewng4ܷ ewH  CGֽԽ  =H  uJ=yԽ  AHL&>7  bҲL&>=!=  btҲ={=  AHFH=4v>  ub4v>  bGֽ{=  MH=!=  RuO  R,$>UѽH=fxJ,$>`o=fx = ,$>`p>fx ,$>Uѽ7սfxJJ,$>zQfx ,$>3=Qfx= ,$>=7սfxJ4$>>0>fx)4$>>o=fx)= 4$>=H=fx4$>3=>fx= )4$>{>fx)4$>rcgd=_m/4$>H=`m5ɿ4$>i*l=gd=_m4$>ꁠ=<_mȿ4$>ꁠ=`_mȿ54$>*l=06k`m/4$>j<`m7@4$>`m47@4$>rc06k`m//4$>%_m8@54$>% <_m8@$9ѽh'=\$$VP= $$Np~$$ѽս$$,$$5s= $O =ս\$X>}`%$P>Я=`% $ ='=\\$r=> `%$t>`%$C{cod=/$>襜=4ɿ$o<=ɿ$-3l=pd=$=<ɿ$=`ɿ4$a3l=p>k/$$zp<8 7@$$X 47@$${c>k//$$+7@5$$+ <7@#Wab=X#) #+aiXX#˟ힽ> Wx#V<<ힽWx#uj=piX#.h=`R⩇> #'h=<⩇#Aj=b=#;<=ߩ#̟h=> #>ab=WX#>} uLWWx> #>a0iXXX#>ş螽X> Wx#>5<螽XWx#> j=0iXX#>vb=`LX> #>vb=j=b=W#>5<Ȁ=Xߩ#>şȀ=X> E4ɟ= !^E4'ab=ZE48<=^E4j=b=E4De=<^E4ub=`L^ !E45j=0i~ZE4:9<ꞽޢ{E4ȟꞽ !{E4apiZZE4; O{ !E4] <{qo=Yv'!` =e9Խ$zZw\4>á{ޘ\4>!Z!=u{2! ==zZZQo=>05w'!{/>05wޤ{ֽ=꽌Zֽg9ԽX꽌rYv\,Z!=,a+!,aDATA,8- - DATA- 5" "" """"""""""""" "" "" "" " """"""" """ " !"!"""#" #"$"$%"%&"&'"'("()")"*"*+"+,",-"-."./"/"0"01"12"23"34"45"5"6"67"78"89 9:":;";"<"<=">?"?"@"B" D"DE"FG"G" H"HI"IJ"JK KL"LM"M" N"NO"OP"PQ"QR"RS"S"   ! " # $ % & ' ( ) $* %+ &, '- (. )/ *0 +1 ,2 -3 .4 /5 06 17 28 39 4: 5; 6< 7= :> ;? <@ >A"@B"AC"BD CF"DH EI FL GM HN IO JP KQ LR MS #S "R !Q P O N T_"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"T`"`a _a"`b Ub"bc Vc"cd Wd"de Xe"ef Yf"fg Zg"gh [h"hi \i"ij ]j"jk ^k"ak `l"lm am"ln bn"no co"op dp"pq eq"qr fr"rs gs"st ht"tu iu"uv jv"vw kw"mw lx"xy"my"xz"nz"z{"o{"{|"p|"|}"q}"}~"r~"~"s""t""u""v""w"y"x "y z "{ "| "} "~ " " " " " """"""""""""""""""""""""""EJ"BE"=@"8="9>"FK" """ "" """"""""""""""""""" # # # # # # # # # # # # """""""""""""""""""""" "" " " " " " " " " " " """""""""""""""""""""""""""""""""""""""""""""#"##"" " " " " " " " " " " " """"""""""""?A A"CG C"J""E""B""@""=""8""9"">""F""K""A""C"" DATA,`. . DATA. 4  !!""## $$%%&&''(()) *$$*+%%+,&&,-''-.((./))/0**01++12,,23--34..45//56006711782289339:44:;55;<66<=7:>?;;?@<<@=>A??AB@AC DBBDECFGCG HDDHIEFLMGGM NHHNOIIOPJJPQKKQRLLRSMMS S##SR""RQ!!QP  POON N_T`a`TUbVcbUWdcVXedWYfeXZgfY[hgZ\ih[]ji\^kj]_ak^a`lmbnl`conbdpoceqpdfrqegsrfhtsgiuthjvuikwvjamwkmlxynzxlo{znp|{oq}|pr~}qs~rtsutvuwvmywyxxzz{{||}}~~y7=89>:FKLEIJ       KFJKEJBE@B=@8=98>9A>CAFCME. 2n. - MECylinder.063H. T. H. 4. . 2.  0S. PD3@Y>DY>_>DATA. x DATA,. H. DATA@H. 8P׽׽Pz޿޿@YxPze谥@Y=Pzey׽ƻ=Pz޿"@`CY>PzW==Y>PzyW@Y>=PzWy=׽Pz"@޿`=?YPzye`BYDr>^==YDr> !^=׽Dr>Z@Y>xDr>{8Y>=Dr>{ !==Dr>ZZ`=?Y>Dr> !{?Y>Dr>ޢ{׽=Dr>Z@Yx=Dr>^ !@YDr>^׽Ļ׽Dr>׽Ļ׽`>\@Y`>\@Yx=`>\׽=`>>\?Y>`>U\`=?Y>`>U\==`>>>\8Y>=`>U\@Y>x`>U\=׽`>>\==Y`>\`BY`>\ ?`>6s =?`>6s=𺵽`>e؛'s?= `>s?=, =`>Ɂsີ==`>ees =?=`>s@ ?=`>s𺵽=`>'es? =`>6s?0 `>6s𺵽`>''szz>UU^),~c>tY^),lc=>t^)zz=>UZ^)c,=>Y^)@c=,=>^)z=z=>ZZ^),=|c=>^),=lc>Y^)z=z>ZU^)c=,>t^)`c,>Yt^)`c,,@V> !{c=,,@V>ޢ{z=z,@V>Z,=lc,@V>^ !,=|c=,@V>^z=z=,@V>@c=,=,@V>^c,=,@V> !^zz=,@V>Z,lc=,@V>{,~c,@V>{ !zz,@V>ZZzzXR>ZZ,~cXR>{ !,lc=XR>{zz=XR>Zc,=XR> !^@c=,=XR>^z=z=XR>,=|c=XR>^,=lcXR>^ !z=zXR>Zc=,XR>ޢ{`c,XR> !{`DYXz>ePZ`CY8>e׽Ȼ׽Xz>޿޿PZ׽Ļ׽8>޿޿=?YXz>yePZ=>Y8>ye=׽Xz>"@޿PZ=׽8>"@޿@Y>Xz>WPZ@Y>|8>W谥8Y>=Xz>WyPZ8Y>=8>Wy==Xz>"@"@PZ==8>"@"@`==Y>Xz>yWPZ`=?Y>8>yW=Y>Xz>WPZ?Y>8>W׽=Xz>޿"@PZ׽=8>޿"@@Yp=Xz>eyPZ@Yt=8>ey@YXz>ePZ@Y8>e谥0>[ {>[=0>[>= {>[>0ս0=0>f0ս0= {>f >0> > {>=>0>>=> {>>0=0=0>ff0=0= {>ff>=0>>>= {>>>0>> {>0=0ս0>f0=0ս {>f=0>>[= {>>[0ս0ս0>0ս0ս {>0>[ {>[Oi{>[N>[ǽǽi{>ǽǽ>=Ki{>>[=J>>[=ǽi{>f=ǽ>fP>i{>P>>H>=i{>>H>=>>==i{>ff==>ff=I>i{>>=K>>>I>i{>K>>ǽ=i{>fǽ=>fP=i{>[>P=>[>PĿi{>[P>[pjD>d谥pj@y{>dPZpj=D>dypj=@y{>dyPZ`ĽR=H>޿"@`ĽN=@y{>޿"@PZ gj>H>W gj>@y{>WPZ=gj>H>yW=gj>@y{>yWPZP=R=H>"@"@P=N=@y{>"@"@PZhj>=D>Wyhj>=@y{>WyPZpj>D>W谥pj>@y{>WPZ`=RĽD>"@޿`=VĽ@y{>"@޿PZ=gjD>yd=hj@y{>ydPZ`Ľ[ĽD>޿޿`Ľ_Ľ@y{>޿޿PZkjD>dlj@y{>dPZkj>8y{Wij>@WPZ`Ľ^=8y{޿"@`Ľ\=@޿"@PZ=gj>8y{yW=ej>@yWPZ`=T=8y{"@"@`=R=@"@"@PZpj>=8y{Wypj>=@WyPZhj>8y{W谥hj>@WPZP=RĽ8y{"@޿P=TĽD"@޿PZ=ij8y{yd=ijDydPZ ij8y{d ijDdPZ`ĽRĽ8y{޿޿`ĽTĽD޿޿PZpj8y{d谥pj@dPZpj=8y{dypj=@dyPZP=[>PĿ=i{[>P[Pi{[ǽǽǽǽi{M[Ki{[=M>[=Ki{>[=ǽf=ǽi{fH>H>i{P>=>P>=i{>==ff==i{ff=G>>=I>i{>ǽ=fǽ=i{fK>M>i{> {> 00ս0= {f0ս0= 0f=> {>=> 0>0=0= {ff0=0= 0ff>= {>>= 0>> {> 00=0ս {f0=0ս0f= {>[=0>[  {[ 0[0ս0ս {0ս0ս0 {[ 0[= {[>= 0[>@Y=8eyPZ@Y|8ePZ׽׽8޿޿PZAY8ePZ?YPze`=AY8yePZ=׽8"@޿PZ8Y>8WPZ8Y>PzW谥@Y>|=8WyPZ==8"@"@PZ==Pz"@"@=;Y>8yWPZ׽Ļ=8޿"@PZ`AY>8WPZ`c,=PR !^c=,=PR^z=z=PR,=hc=PR^,=cPR^ !z=zPRZ@c=,PRޢ{c,PR !{zzPRZZ,tcPR{ !,|c=PR{zz=PRZzz=(@VZ,|c=(@V{,tc(@V{ !zz(@VZZc,(@V !{@c=,(@Vޢ{z=z(@VZ,=c(@V^ !,=hc=(@V^z=z=(@Vc=,=(@V^`c,=(@V !^`c,=Yc=,=z=z=ZZ,=lc=,=cYz=zZU@c=,tc,YtzzUU,rctY,c=tzz=UZ𺵽=\'e?0 =\6?& \6𺵽\''@ ?^6 =?^6ີ=\e؛'?=2 \?= =\Ɂ==\ee =?=\ ?=\`AY>\U=;Y>\U==\>>@Y>x=\U8Y>\U=׽\>`=@Y^@Y^׽׽\@Y~\@Y=\׽Ļ=\>׽Ļ=@rZ@Y=@r^ !@Y~@r^׽׽@r@YBr^`=@YBr !^=׽@rZ8Y>@r{@Y>x=@r{ !==@rZZ=;Y>@r !{`AY>@rޢ{DATA,2. 4. DATA4. 5###### ! ! ! ! ! !!!!!!!############## ## ## ## # # # # !!!,#,!"!!"##!"##$!#$#%!$%#&!%&#'!&'#(!'(#)!()#*!)*#+!*+#+,#,-#-.#+.#./#*/#/0#)0#01#(1#12#'2#23#&3#34#%4#45#$5#56##6#67#"7#78#!8#-8#89#9D!-D#7:#9:!6;#:;!5<#;<!4=#<=!3>#=>!2?#>?!1@#?@!0A#@A!/B#AB!.C#BC!CD!DE#EF#CF#FG#BG#GH#AH#HI#@I#IJ#?J#JK#>K#KL#=L#LM#<M#MN#;N#NO#:O#OP#9P#EP# R#S#T#U# V#W# X# Z#[# \#^#_#`#a#b#c#d#e#f#g#h#QS#RT#QU#RV#UW#VX#WY#XZ#Y[#Z\#[]#\^#]_#^`#_a#`b#ac#bd#ce#df#eg#fh#Sg#Th#hi!i}!T}!S~!j~!gj!fk!ik!jl!el!dm!km!ln!cn!bo!mo!np!ap!`q!oq!pr!_r!^s!qs!rt!]t!\u!su!tv![v!Zw!uw!vx!Yx!Xy!wy!xz!Wz!V{!y{!z|!U|!R!{!|!Q!}!~!!!~!}!!!|!!!{!z!!!y!x!!!w!v!!!u!t!!!s!r!!!q!p!!!o!n!!!m!l!!!k!j!!!i!!!!#!!#!!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!############################!##!!##!!##!!##!!##!!##!!##!!##!!##!!##!!#!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!############E#F#G#H#I#J#K#L#M#N#D#O### # #  # #  # #  # #  # # ############!!*#!)#!(#!'#!&#!%#!$#!##!"#!!#+#! # +# 7# !#!6#!"#"5#"###4##$#$3#$%#%2#%&#&1#&'#'0#'(#(/#()#).#)*#*-#*+#+,#,-#-.#-B!./#.A!/0#/@!01#0?!12#1>!23#2=!34#3<!45#4;!56#5:!67#69!,C!,7#78!8C#8O#89#9N#9:#:M#:;#;L#;<#<K#<=#=J#=>#>I#>?#?H#?@#@G#@A#AF#AB#BE#BC#CD#DE!EF!FG!GH!HI!IJ!JK!KL!LM!MN!NO!DO!""""""        ]"Y"Q"DATA,0S. T. DATAPT. 4D        !, "!#"$#%$&%'&(')(*)+*,++,-.*+./)*/0()01'(12&'23%&34$%45#$56"#67!"78,!8--89D87:976;:65<;54=<43>=32?>21@?10A@0/BA/.CB.-DCCDEFBCFGABGH@AHI?@IJ>?JK=>KL<=LM;<MN:;NO9:OPD9PESQR TUQV RWUX VYWZ X[Y\ Z][^ \_]`^a_b`cadbecfdgehfSgThThi}gS~jhfkiegjlfdmkcelndbomacnpb`qo_apr`^sq]_rt^\us[]tv\ZwuY[vxZXywWYxzXV{yUWz|VR{QU|RT}SQ~~}|{|zy{zxwyxvuwvtsutrqsrpoqpnmonlkmljikj~}iDEEFFGGHHIIJJKKLLMMNNOOD          *+)*()'(&'%&$%#$"#!" !+ ,7 +76! 65"!54#"43$#32%$21&%10'&0/('/.)(.-*)-,+*BC,-AB-.@A./?@/0>?01=>12<=23;<34:;459:568967C87,DO8CON98NM:9ML;:LK<;KJ=<JI>=IH?>HG@?GFA@FEBAEDCBMEn. 2. . MECylinder.064 Ho. ~. p. 0w. xo. u.  }. >HFw?Fw?ADATAHo. e DATA,xo. p. DATAp. 8>5?5?ZZFw?ꃄ>{ !Fw?{5?5Z>Fw !^ツFw^55Fw^Fw؃>^ !55?ZFw?ޢ{Ӄ>Fw? !{v>v>A::|ar>=APw|ar>AP|a%v>vA:[|a=rAw|arA|av-vA[[|arA㯉|arz=Aw|a/vv>A[ť:|a(r>AP|ao=r>AwP|a 81WAa?j >A9{!m >>A4Z4Zm a?3 A9{m >侾A4Z̥m x >aA!DŽm $ aADŽm 侾侾Ḁ̥m a ADŽm a >ADŽ!m 侾>Ḁ4Zm  a?A9{m  >a?A!9{m l>\?y!{>l\?yޝ{δ!!?y~Z \l>yc! \3lycô!̴!yl\yc l>\y!cɴ!?ʴ!y~Z \?ly{ \?l>y{!ɴ!?ƴ!?y~Z~Zɴ!?ƴ!?>> \?l>U \?lUɴ!?ʴ!> l>\l\ô!̴! \3l \l>δ!!?>>l\?Ul>\?U߯d3냫DATA,u. 0w. DATA00w. 5"  "  " " "" "" "" "" "" ""  "" "" "" " "" "" """"""""""" " "!"!" """" #"#" $"$""""""" " !"!"""#"#$"$"0"%0 %"%& &"&' '"'( ("() )")* *"*+ +"+, ,",- -"-. ."./ /"/0 /2"12#01".3"23#-4"34#,5"45#+6"56#*7"67#)8"78#(9"89#':"9:#&;":;#%<";<#1<#1=!2=!3=!4=!5=!6=!7=!8=!9=!:=!;=!<=!DATA,}. ~. DATA~. 4H        ! !!" !" "# "# #$ #$ $ $ 0% %& &' '(())**++,,--..//00/21/.32.-43-,54,+65+*76*)87)(98(':9'&;:&%<;%01<=12=23=34=45=56=67=78=89=9:=:;=;<<1=ME. 2. n. MECylinder.065g . . . . (. .  X. 3ѧ>>dp>DATA. 0g DATA,(. . DATA. 8B=B=ܠZZ>=ܠ{ !>ܠ{B=BǽܠZ=ܠ !^ܠ^BǽBǽܠܠ^ =ܠ^ !BǽB=ܠZ>ܠޢ{c= >ܠ !{B=B=* >ZZ>=* >{ !>\* >{B=Bǽ* >Z=* > !^v* >^BǽBǽ* >* >^$c=* >^ ! CǽB=* >Z>* >ޢ{4= >* > !{2=>[ >^>[ > !^<ս=[ >Za=[ >{[ >{ ! ս-ս[ >ZZu[ > !{=[ >ޢ{$=ս[ >Z>\[ >^ !>=[ >^=-=[ >d=>۝^>۝ !^,ս=۝Z=۝{۝{ !սս۝ZZ۝ !{=۝ޢ{ =ս۝Z>۝^ !>=۝^ ==۝ == >= ^> ^ ! =ս Z= ޢ{ !{սս ZZ { != {,ս= Z> !^d=> ^c= >Ο !{>Οޢ{BǽB=ΟZ =Ο^ !Ο^BǽBǽΟΟ^=Ο !^B=BǽΟZ>Ο{>=Ο{ !B=B=ΟZZB=B=r@r@Y>= XY> XiYB=Bǽr@Y=YiYBǽBǽYiY =YBǽB=r@Y>i XYc= > XYd=>7L3^>7mL3^,ս=7F=3^=7S3^7Sm3^սս7F=F=3^7mS3^=7S3^ =ս7F=3^>7Lm3^>=7L3^ ==7º3^=-=>>=>^>\>^ !$=ս>Z=>ޢ{u> !{ ս-ս>ZZ>{ !a=>{<ս=>Z>> !^2=>>^4= >o> !{>o>ޢ{ CǽB=o>Z$c=o>^ !o>^BǽBǽo>vo>^=o> !^B=Bǽo>Z>\o>{>=o>{ !B=B=o>ZZB=B='>r@r@#>='> X#>\'> Xj#B=Bǽ'>r@#='>#v'>j#BǽBǽ'>#'>i#$c='># CǽB='>r@#>'>i X#4= >'> X#2=>>L͡>>mL͡<ս=>F=͡a=>S͡>Sm͡ ս-ս>F=F=͡u>mS͡=>S͡$=ս>F=͡>\>Lm͡>=>L͡=-=>º͡=*=R>=M>=R>=ǝM>fR>=ǝQM=սR>=GM=R>=9bM~R>=Q9bMս(սR>=GGMR>=9bQMj=R>=9bM9ս =R>=GM>R>=QǝM<=>R>=ǝM^=^={6=11z >={6=܎z >}{6=r z^=^˽{6=1z= {6=B#z {6=r B#z^˽^˽{6=z {6=B#r z ={6=B#z^˽^={6=1z >{6=r ܮzT= >{6=ܮz^=^==<ǻj ><Ej^=^˽<j=)=w< >=w<ޖ㨼>iw<ޖ+= սw< L=w<"iw<+"iս'սww<+ޖ?=>w<ޖ^=^=<V= ><^ >< !^^˽^=<^ ! >=<^^=^={6=T= >{6=^ >{6= !^^˽^={6=Z ={6={ {6={ !^˽^˽{6=ZZ {6= !{= {6=ޢ{^=^˽{6=Z >}{6=^ ! >={6=^DATA,. . DATA@. 5                     " """""""" " " "# $/  $%  %&  &'  '(  ()  )*  *+  +, ! ,- !" -. "# ./ /0"01 .1"12 -2"23 ,3"34 +4"45 *5"56 )6"67 (7"78 '8"89 &9"9: %:":; $;"0; G"<G <"<= ="=> >">? ?"?@ @"@A A"AB B"BC C"CD D"DE E"EF F"FG FI"HI"GH"EJ"IJ"DK"JK"CL"KL"BM"LM"AN"MN"@O"NO"?P"OP">Q"PQ"=R"QR"<S"RS"HS";T"T_"0_":U"TU"9V"UV"8W"VW"7X"WX"6Y"XY"5Z"YZ"4["Z["3\"[\"2]"\]"1^"]^"^_"H_ ST RU QV PW OX NY MZ L[ K\ J] I^ "a"`a #`"!b"ab c"bc d"cd e"de f"ef g"fg h"gh i"hi j"ij k"jk `k l"lw w"m"lm n"mn o"no p"op q"pq r"qr s"rs t"st u"tu v"uv vw wx"xy"vy"yz"uz"z{"t{"{|"s|"|}"r}"}~"q~"~"p""o""n""m""l"x"`""k""j""i""h""g""f""e""d""c""b""a"" x  ~ } | { z y #"""!" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""/"".""-"",""+""*")""("""'""&""%""$""""""""""""""#"#"#"#"#"#"#"#"#"#"#"#"#""#"#"#"#"#"#"#"#"#"##############DATA,X. . DATA. 4        ./01-.12,-23+,34*+45)*56()67'(78&'89%&9:$%:;/$;0 G< <= => >??@@AABBCCDDEEFFGGFIHFEJIEDKJDCLKCBMLBANMA@ON@?PO?>QP>=RQ=<SR<GHS0;T_;:UT:9VU98WV87XW76YX65ZY54[Z43\[32]\21^]10_^SH_TRSTUQRUVPQVWOPWXNOXYMNYZLMZ[KL[\JK\]IJ]^HI^_#"a`"!ba! cb dcedfegfhgihjikj#`k lwmlnmonpoqprqsrtsut vu wvvwxyuvyztuz{st{|rs|}qr}~pq~opnomnlmwlxk`jkijhighfgefdecdbcab`ax~~}}||{{zzyyx#""!!  #/..--,,++**))((''&&%%$$/ME. 252 . MECylinder.067T . H]0 . (0. Z0  [0 XP+sfH4?&~?c??DATA. ` DATA,0. . DATA. 8X>Ci?}V6@2T> n&9@$} ޿S@!]BP)o@޿@۟]O5XO.+@6O+')鿀`@+<TF'[n@G{C\`!ج+@&ca@붶f,@ dgWxWB@-Y~dW@K֛^pN迮@y]nW ٸs@SR37Rk>u?<+ 724u[>ޤ?@<[V$>?G4ia 0*>?!_QP:F>+ ?}ZƝ q>?ݶaT#>~?-c˯>?s`,#dȣ> ?XqX~>?Nj7) >t ?,uEhI:gKD>?1>o(exe֙?d KmO~?h@z?R# !g>v?*"l pq?;ǣ5Mn?鲖C^!m?OX/߾fmn?#λ%F̾Xq?P[)(ţyzv?r{ށϏϾ'j~?NHE¾\{?t. ?"zwu ?߭z% 8? oZ''M ?$J(\:?_}"b7?"TK?5 R ;?R!SgYI?_Y_~SF?]z 7Tr~4>3ANh΍z1>\>A<> n"^i5>{1X>Ƿa.[7<`>Wދ`4wHĠ>#VŸѨīר>Zڻ rf>{9<2N>:N&k@(W>LfiL7Q{A&?zmI''?͵=HD NP*%?">q&P,X$?e(&}!\ө#?lkC)#?e3YNKyHA$?_3DC`ZtB&?6y) 琾'?pyaý0(?uAH ׅ:)?/du(?^)>4*3:?R]Nپ5x?By;۾J?q;} Fɾy?'e*)(?bYr;9]C]$?7sci:[2?fhJ;],2bwm(l?~M 5t?p%Ty>C9?qBa)WAX?o "žQ>?ۜVn?u_Bg{? vL]$Wh?:=xѤо-l?i]Zɾ{?&Ty{(\n tϾƓ?:7h-`vL ?j;%\?&8ɥ?{~/K|Oӥ?p181l!ʥ?vC5oej?dΞt꒥?:p]>?9eݎ>?s4݁Y*v>]?q-M0)52>D"?&G^X k>g#?]D"\WL)>v!?!l7ff4>?y#:gKS>?>(?wk>|?N/`僯~͵> ?W63_ux> u ?'; p>&j?Ue^?,?G|B"Uv>\?/uC Se۝@0~Rx@E GKF@kfmIWJPɵ@ _q$~MPa@9VJV-]@ Qak!w@|B jqx߸A@G*Wm?9?@ݽ$lˡ@I_hEz;BL@_tn=@S4_֫E@# ǘJÐ>* ?EFrQ~:>?t1>{Vĕ>&?6y#j>?2[eR"_Є> ?v22p q>?6T ՚]>?V= nvR>G?eF8"S>?MӪ:`>{y?~;RfܚϽu>:( ?MRn̶+׿>[6 ?` Nvƭ  gi?~?Uעf _?w"яMTP?v,sFoIY?XF:JBʙ?)&*ju<:6kAĘ?t).F?a^&.sO,b?^*;-[*?!HeC?|"nI1?0-l@?@B\zd?TZ#?ul?{-6'xf?_Uϙ:r?%v!:trS?sI. y?ȫR11킿4?T w'B҉?K9g`G?b@Bk}{푿?mۍ_L?&@c$>?(ӭRV.>,A? 9~<u>X?X6\>T ?;NR>% ?l.0#>.C?R$>o8?3_@{>[@?+C0>G5EX?թz>cDx?y;>/?,?30b>lc6M?qr>ɛ?8tFL>럿d?J:V>ߚu?_ |]">cn?3Daaj/ܸ>JN?j-E6V׼>D>? v.0>[e?zdM>~?47 ؇> [?4탎d$a>>謿y?)-[:> 1? 3n^>s=3Ơ?j+>P?vF>[?Bt5 G>}芿e?B`92>>R>.?q2v>Etw?oBB>St0?,hغԥ>VUȝ?>7#>ń?+>(?R>Rc?l<>#?؀ ij>v?.Z,F_>?Ja()Uss>?v%Tn)yv>v?)&J*)Yq O>ڔ?+Fh,!;/> ? 2tN>1?\:EOaZI>f?@Ӆ!>q?C`檂> ?Bc5 h>J?=Q@3 >P ?{6Wz>@ȵFxL mթ@Z)V,,>@PagH@.5yj멝񨿎@p,?k.q[%Ȩ>?}o+5(7l ^;@_}QJÿ@gbzJQJ,@` MVXSg@6&RqQd@;\XlsJq@֢Ga^@*'hRut@Zj! ſ)@DiO~˿@dժsοB@n\'e^ο @ 9RgjXʿc@|?cqK>}?TLmwSF>K?KDPmY<:>a ?A@OvL@>b?g@*l4R>,:?k)E?~>l?PM0o;y>2?vVƽF>|>h ?^s' !Ѕ>V?cEbhǐ>&V?bc|˻Дo>Q>t^1xt>>%VT$=Ma?xLlJG9?sH3Ag?PHqC>7*?hcD駿֝vЋ?vݗoP4bY?BhX?u=,?=&jM⪿϶?L /?UTV932?^lۜ P?\[y?j#؜pſ?x]j✿ھ?ix# m&^I?YX6\`'å?xI|. 7F?<ٓvX˱q>?xEQj%.t?~#=ȿV?Ϳ?=]!(п?p<9]@˿H?[妥8Ͽ¼?'?6KJr>jω3z?bB>T _C>9T>21,lNJ20> Hh7QG,>=]UPV$d,E>y[ߥYI1a>1KX9^>E!T/BC'>Z uNkK>wAaP|^>XlG8P>$c7=N>rHQ)aؒ=>':o9>,w>Ss 6;>j(aB>;zm=[=> M0lj={ֿ>(T.=F>c~;V3>nÜhؙ/>Ӎh֞ ݗ>"\h땿">b9< R=g(^>H@kdl?XeMMRv?|.wCB?E}}нq 6?sДK D";?IN(2:̴0O?肖&wmY].?ѫ[ŊTm?:-ړ( O?sӓuc?ӌ//2~[?aMu";?j|Ă} "?YC >^$?e#dGE;O??~+Y?W*8-ν?TGk@S]>]?1*6[{.5>3?-/}vr> ?E\5#XJL[C>?>wb%?GIFSr>?NV@_Z5>N?OF>d?yL١ڧ> ? EѸ6>( ?l;cG8>?z2_+/>%?xI,AkGֿ.@Q4SrQה|ڿ@~T&W[uf @.T5-`=nh鿀 @Ayׂfᅱ@&[iW棾b*TQ@ hRߛ?x@d"׾@@\v7G\@٣S@޾T߿t@~MI̾FٿZ@PHbLտ0@d/NϪ俆@}>?9 1v[Y>D?f&]ױQznο@ p?Ӿ2UÿAB@7W*E^徆ɿ* @"Dѿ@"I6ݾD׿Mv@"qTƾ[ܿ.#@&㭱a(ݿ@W3Mjiٿ@$$n3{;ӿ@w8O9oOt` ̿c@E\"kD0ſ@Fa+a#@ /RkU͸$2@`gJV> ?-fhK IZ>`?_oޖTAmBG>d?Cxr?5> >1">^> 3s,=>t>KvSY>>z<靑>>#ryFs>Q?'Oi9h;Jw>=?b3as6>- ?_{u>Eu ?J(a-uR;=Rؿ?Z[#* ,ljV鿐.?Ry?>a?Wx6D>l߿ؿ?:{jU0>mٿ?YH68_=:ֿ?`p7^ >ֿ?#i>=翄-?ƴ)a-u'Y9?.Oan˦󿆲?ˈ7߽}?1ųPhV'?b¼?zAIR`=C$>Շ! ={O>|#Wa=]ǐ>>> j>4o޺:>ڌn.>J*2_>Y(>Hqt>Ί5Z>wURt>N>*x%)Q`>VK>}M4CWt>?K?-If;>5g>EzgΖmx>og>YP>F!Be2.>iw|C-Fd>KBTg>;$SPb>̀ ѾU𖿄,>庚ᥘ6(ݾ[>ˑN޾dD/>E.+ w־ <>&DLƾmɑ >0Cj1ܡ>D6p4_H-?VS "k^x?gI$=~ c?ju#  B ?#N=D0{?肊T=$kܐ?αzGS •?- iK ?ަI@e?ъx2>A ?4dIr4X?}'j?1.tԳ a;S?z !y R}?\?z<n !~?aZ?NZ2r t^>.?aRy^܀>](?jjCw$>[ ?5tnJnhy> ?zŇ `>R ?|qI>?PTy;ܵjf9<>:?Sqw$i;>J??bhЬ^N`.H>3?G_PovA_>?Y7z]~Vx>i?4W(2s5ϿQ|@\,L+ֿG@ `JT}b޿7s@Iӝ^ _保@)g6ڧ@Nk(#激@RlD3GC@xоh98,ۿ|@|ax5ӿe@32W_,SͿ@ENJʿ%@jfJf)-˿@`1\Hy.@ؿ@3~~s>b?Ycvn@gIGF?>?jCK=__@@|R)#Qܿ\@bV\3CO̗4׿o@_KP_B ׿ @ݪ[6RP:ڿg@9W[Z>@:e^\_{@}drWه33@^YgXL|@"f"=%?{@0ޮb0nV8@) \V&@dNV}T9$_d@c&O >87?>G9q]o/>L ?) ?P?kD$~> ?xFjsv` Ӑ>G ?7PxVFf>?%YJ)4E >?naH>r>c疂M>mG>0`֐>U>MY_DUU>М>wOaѴ"ľ>K?#EsRj_ry^ :~?Z;CgR?=)^xK7ssb"o}?k C}뿂y?^V(Єt?Jx4,ȁz0hp?Hya`Hm?릥0ov+kl?@Gjk!< n?k9ָajq?9MY }{?x)Z6v?^u`Yk[?eKu?0uc(?y~LC`?Zd-`%?#0 IZ? YZx [??Z 1| ?$ K} ?kpc ?O+f7?#~*h Ы?u.7>`?kYU֝>o5vrq>Fhl">BMBHf->59s+k>z ױNऎ̞>`D v>'Kμ:S)}١>+R5\>N|0Vir>fqKチ?q>sH]#7?d|?梤 &rz?۫T%"?9*hp(e?i_MlU2*?hnz9]y?\T{J?vD;KZc?a>P^n멾?n0= ?aVUþ? Y?֬B|"_?ގd)NX?N$zhcbA%??肿X+6?QP1;z|/W?nG8"mT/o?!~q0ba4m?\U3[G??H|Xd\=MLaO?-xlpcW*?Uo{^?ߑ{$ۄ?tcrOa+A?ގPL]?ۉ0k/?͇&Buz?\ p??vG%(eWCa?#}o94K[Cߠ?XLI4U}X?ywT'[#VV?&yE?\ur&f?X b{f|+? esy> ?}XQc>D?vAQxܢV>XA? :MhU>h?+aFz(@{a>=? >r.cGv>?379|Yeo>=?+4,twPI>K+?l?4ZKX1>!w?38x*D>?>y'l\> ?ûFQ+Lj=>r ?XzM{*cKY@mJWNI@ƞT^a@q` C^IC@YdiɵVჿy@Xк, nJ<, @i=n;F@ Ej:/2@4?a_I(Y&@W $)V(H@eHL(0=@O G< gY@ZF*oCÍD@@ '3U>M?6peu,r>?G+aԸ8` @}9Ө/ؿD'@Vݦ_M_ ܿ@@7rKw̾E^@isLCɾ)@>SB0m@Rо\3@.dB _t@.i]T@1Wiԓ<.boK@(GOggA߿g@RH `c|ٿ?@uH9kXvu׿i @a]Q&}>( ?WA$DEb>>?^HV\>dt?+R1>>[ĄE>x>"aQ >+>bS&yy>>^B%>'z>>]WaS~>3?Mxt4!2>3p?EiHi d>?A?!#zZ>m ? =$z;&u'?%~fy8+64?$F/ArkJ?4%$J=E?`׮1L#&?^&9=Y?{=o?3ʛho=υ?fK>#?~  =:2?o)=.lV=Qi܋?Vk*E'ԜAd3=Ç>ڜ2 ?\=>N dq=#j>x +=:}>˺V>>90>뱚>+՘N>t>bH߽؄X>V>[;XM>@ߓG>d@Hz>蒿>Anϋ/>%>}56f}DI[GS%?@&?I- #?O,3.K"?D^L꽲"?n:UhhZ#?b"KaKE]J_$?5Q?K =q>/&?p:&D ol̫'?u0](?SNL](?*((*]C6(?pRS0r)#z?:.L?ZX l?( T )?ˬY '$s?7p81?e%zk:Rܾ0?r\K-ouо]Z?|BҾ%g?x W\>00"?Ra*5߭?,'6 4 ?qL GNڤ?0bj>?b0 Ѿդ?*;xA?^r?:x#NJ־ۂB?'p.¾?¾y?]Kl+;˸׾?#{pͲ?~xC Ⱦ*?pT١M3ݾ}l?@OV/?K,y>?68EтOt>u=?Q4Nu> #?8b-6SA)>5'?N&HQG& >q)?й nbVO> (?'m24Τ>>$??&\RX ت>?C#pw'g>?4*nG>~?M1EК=>A?"6Nɿc>]?ٛ9ːUO7U @kOƍJP")‚=@'UQ!wJ@䳕!FaGk@7`j X d@S>nie@/?)JX>n>/?1fYi~[@(ɤw{.&@ (Gnu埰`@TFMMᵿ6@ֈJۻѷh@* ؠTV굿3@/t`_W2@??Jci/×j@XA%n -Qo}@5:{no]H@ )9jT8[ C@ Qa-Jm7%@6XVsa@@ML$>[?M9܊$Z>0 ?n@; >]?Ds~k>s?=6E45>~?A $^箇>| ?;M2z>†?I63wU3>?F,`2C>2?L(#,ry>r?'h+Xxi>?C+ӎ*CpO>2?1-t):v>Q?fM>aL?\>!(?Wǎ{&>/xf?%m5>eȓ?@皛1>?rn*|>ۉ]??f>{I46?kLlߠ?Y9f2萩>m}a? u3|>لu?W=@>瞀?] g'?>r?>e?I r2>騿s?Ž$b>ת-?5᥉>J4?@.7j>¶?>j>Z[q?^vp0S>N旿?Hed7G7$> ?:Qg/ d>]6? Z}>5 ?Q~A4>\?UnNd>)?!}H0o>Ј2?&˧Z>~7c?ٮת:\>f7j?mC>xH2?P59>)?gkH>moz? J>"?e67 >?\2 SIS{>?o?ZQZ)Nn> ?/42͖> @!?_QQK.Ewǎ>Ut$,t>oˮ U4u> f;p>{֎j~B9iv֮> G1aɲ>)`ID[><7GFzY>fU%,nA4Z+ >P]098_> =Ko2Rgy>H5"oB-Xn>ZaZǖD8v]?/X$= %̊?xAݭ7? (s?%-? 5쿺?Ci濠?B#㧿4 m?3ZNnܿY?{n e4ܿO?#zo߿Q?\Vd񒿅D%?zy0lֿ}?U~QҿZ?x=՞ 3aCKؿy?5oY#m׿w?Y)1⠿Կ#v?Md3Ͽx?ʌP ɿ|?̈ ,렿bſ?ZE ÿ?m<plĿ.? cIȿv ?NSCEͿ ?t1 > ?HzfQ.L>Q ?@RRJu>3 ?Z\V^؍> ?^vy΂>?i]j*w>r?7XWr6t>?M9ORK}>K?vE1t Z>?_=x)!@>m?#9)&"_L)I>?e:D6]>-??{[YIuԿTV@Y=MRa.ۿK@?5(R5._N߿u@ i[ m.߿+@OcyTۿ@kg#ʘԿ0@h ?0̿@{iAf w6ƿ@q-m`@jD¿L@A5QX[G¿@aRx_OVƿT@DIVOH̿@pe 1M&dMп@nV}ʩ>p?!1sH+w#>P;? '1/X;|?um@U,03z@xFs6h@ViFwr%#@nJ:©<@TJZS]@o3hr`@ۨx@A/iY@A</nĽ@8n #͕^6@N%1?8_ A%>?p?µﳐa>?.Cfn>?WCBI{>`Q??T(a  >0?{E8Rr,ݿ>$H?0x >I!?)F[5G>$?cB&@.Bs>%?wc&G,wc>#?X*Pv* n>?1ڐ&n2>F>+ ?'=U>"?bKwx>ÉJ?͓>&NJ՞? 9I>ƈ ?F?>YM.ڞ? rx,>}K?P_ |>.r ?fVB &<>j?2~i3;>h^?t2P>uj?ȍ8 !o>(l(?ec%F=7?A=d?O%>?I̒48>ИG? Zh>+e?F|EƄ>p?mÉ>6Ռ?u1bف>17D??aF=P8l^>x/?24ojD0->l?}==+E?M;M=gȈ0e?87k8>?zE>O!&%?HkƄ}d>:%?VvT>b%J?mҦ~LT>Jik?s;*~>x?l>~ ?x'5Y>_?|`';;=ʕ>M?,yU7T>#P?s[0YK@>Kw*?ؑ/",[>5{A?PhNp?RB> +CfLclBV>"]ʩbYG>g>d!_6e>Ӑ[Fӱel$3>V+5c>O>X ]Yw>֡]LW#$>JgzPς+y4>./{m9Ky4 c>Q bhJPK=V>!j9emʨɿd?-ٌ4YſS?`i㰿ʿ=?"릂Nȿd?+?¿D?x'p9Y?o*"ķڵT?tL/$d4?k[t芰N?} )(?R??Ys2Ԃ>?+2H kCn>?sM!M3eX>$j?%Ncx,UH>*d?INʎoC>;?[-Bq8oJ>"?8Uɮj"Ԓ\>c#?0~s>|"?W+h$Vp`1A>?*OKOAB>?.yiEA\>!? 6FvYބ#E\b{B@C*KynGſI@KR}iƿJ@\ ÿ @v5ehἿ@i)c!Jc@RjL.@$g .ʩ7@҉Eaޑq稿@@\X;d⫿T?@1UQ\Ob@^&LR[U*@*dJHweN@}h>?Ck6O4>?KBYTE(L`&Z꿉@|['ݿ]x@8RPi&ۿj@=cO4ݿ@"GPo?Qh.@UCjCM@p]?}@@φc}{5&@ܞff'j9@F#gk&.%@mcQR@Bƕ] Ti@[]V(iQ⿜@^hQg>m#?z8*ouG>?9sU<_>o ?\?pъp['>;?H\~>. ?pSC1O>s ?.,[G>?5_Ȁj>?^]ߞ'>?W ?_ǭ>Sf?@Nf[>? D4WV> ?\<37^so",ڻ~?/37ZJ-2~?SjF8M{?a1V@j v?Y< %xB,q@q?U>An?:s5l?RΦdg*wYl?.x]o?+Co@s?p*y|?b4>x?|"^4?@>;o_TAJ?dH7N SA? vl]SW l?j5>3m[M??!m5X?v*N? '0B? K5~?dC +0?oQ+r ?n?d( ?!D:T> 0rq"ľ6Xg>`W?bnTԾ씿g>iET)6ݾc6>`$7WvܾȬ>Ҏn`ҾVm-s> >@>Sˮ>8HİӞ, >B@ śM>xr1ɜ>XLcʖ+İ>rtc7:˺x^?޺Jl٦Ha?〥:o"!M ?k 63 <?d-L?Ta_+SZs߽(?Zn: 7]zf?[S  ?G9KY7`C"?c O:pձ#?nҲ-/_S#?SOVǼ!? &9nn?)b1 8u?a?ڵ삿ޱ.I?sz#"?舐#}ZC*?+T%2q0_?Wo8(d<?%Np`0?YJq?u^kR-T."? }]Tؤ.?v8I\93?qRh?P}? ulD%ˠ?X{v`kf4B?xh2zF?ˆxy ྦȠ?C* sB;E7?_* jho$þΡ?w%"]8ž3j?'on3HwSҾr?ZJ2INnj?xW%,Np/b?3xXfU ?~U!_?/.s>?0j]>W!?J0ĸɧѮQ>'?",hQ>Qk-?Q%|+^>1?]cgd t>B3?E4|8q>41?H/dt{>-?]Vn/>$'?.y'[h>5!?Zw >?/&MdjW>V*?j-7#ބGgҌ@pzJS_@.ZTZ @`[MYv@aifQCj@.EnЈD1dc@j=n"#6uc@Ej *vkQ@6o>a=#6x@X!UH$FX@e0K-,1i;@MනF97*@E>R~]o@N #N>/?M+eu>.y$?233Yh˾E/r@E9}3;3}ҿ3@6eSN *տ@ NLRۿ4~@.rMm>@SA\@\~t@:dڣɾ~ |F@?bh}έF@!f'i/JQ@=':f󜓾V߿@S_gLؿ@W(W\`ӿ@;N`Q>]?0v$H_?:nN>y?*saW8pU>?2ByO*>O?<7%"zl>;7?}Dq Wť>\ ?Hǀ>S# ?G!nꂾ> ?A@5G>`?(9sx>;?y/]S+p>/?'4yt1>)?x#*{vDmF?k~COgq9?3] /9bMM?m4 +t?vQ΁a?ȡJR^z'?_ͳ'z/q6?K0&Le;?Iͽ1݂?tS?v|R1 ?7?K-_G y:^? `<;m#?Vv~~?ٹ:h⾾Vr?19V[ž a?6;U Nf?zN6?7Ua? h6Ctrq?)F Mb$ f?o[AAb{?l~-Q{tz44?9fr?Ov.?kDt((>%?m)U >0>WOĽ>QCB>jo)uĽ 5Y>JW˗><П)ᥘ>A.ᐺy:> < =+>=Dd2[=fՕ}>uA'B[=񓿦>]wq/.Z> 6n2 =E[&>&O#^V<ڡK (?k>#S<#(?׀{8t=*t&?S]Ce<=Ӳ$?dN >g)#?w9VZJ'>H Q"?i2g3`/>(X"?5v">þ]?#?)hKw$N> վ $?=5ظ4= ݾ>&?N=پ'(?Ƒs<̾A )?S<4iͽdEu?hEUU%@Q4?{g $=?ðnr6v|:D?OwP.=>A? =N`$:=H? hW26g=ˋU?z/%Z=ax]?xkTҤ?:o7dC&>7+l?O>6?kUI=>ۖ?;ȕ=kAƤ?Z< >y?I `组~5=`?ɖ4(f>P$?L'\Fl>)? ?$YM>/-?Կ3l4ό>.?7|T;iqEʙ>,?4I5ZW>(?eiE>#6#? woNn>A?~'M20>?".[%Պ,>k?12>? w1+Im>? -㰧ꭝо/@HY=KgȾW@>hUJ沾Pu|z^@#La薾_y@?bFj.w}m@$4n[P6W@9XnwjU1M@I"a @7ұU@SJj3xJG@ʻEOʾ%N@yFcq0D@  0>i>@?]+3Qaa]>:?l@SJ^v=@J&/͟&@>꾮ȡB@?6ξ!a@E8H 㸾|"@RҊV}6$q@OdG0S@H9@nȾ Y@L0r &y@@9r6A@ݨ:Elr X@-` @ RS 9@ ڸD>G?1S8XxW>0?؅7R>m?2L-ؐ>?+Z8_>!?$wN>p'?Pk^E`9->,?=]>>ڙ.?܁,Ti`o>?.?^ qDY`t>&+?""'ap,B>D>*&?:.'̸>˶ ?&5]# ?sBn'E!`?~1lj8?k0U1/O?o=\;@:p+?-oK>9.9?eg ,e̾rN6?ՓICm ;M5%?b Ӿ^A? `/&'?5DF(?Lh%">R(?7#Zl'?jyΝ;5Az&?6zw#Ǟ::{wՀ%?}c+D$\/5V$?>9CROHrʃHt$?g0K4vȽR$?}fM4UppK%?ExOD1'?wՠ;mE]9&?z} s>XnFI ?S^4^>4L? FL>D{?P^'>'yG?IQ=PM>Nv] ?zu ˰>5VN ?*wHߨ>^I?IU>)eH ?6.4|>vkg*k ?+㎱uX>eZ?R{pF>0^;?!:QH>4UF?s"x=Y?}m=y?kH`a>Q?#' wg@>u?YtMa0S>頼ϫ?q_73N>!}ÿ ?mӿ0k0><ɿ?KOpE>U̿?R큤=h˿*?qJ+= ȿo?\<:v?/a<кzk?z-x1x>𢿭"?r1iL>#Н?Q[)>VL ?"m72>Y?xZfL0>>ݫ?{">?xc^8l>&c?TZmʋ>J=?}h>۸?Q3A>⌛?󦣵t:->HR?jaȂ1>g'?l*@;>| ?9M4\!%>?G6c(we>X?.E#y>?ftH;m3>[ ?NZw(g>x?zVk q>ӟ?^6&>?VdbQ>R?^$f'2B?>?ҏcFӨv>uO ?GQ]5~ â?H>0?!U^o2V ;ݬv@ĿWG!cd@y`SDb0/@/LaQ_@P5Z*al::@);A,?Lp^<>u4?a1`$>Dɿ@ ~( @¼S]J㕾gVĿ@CIa˿zJ@MhKSҿ˹@UUT0l ׿,@lݬ^3$׿@-agY+Կ@E){k/t9Ϳ@=l,笽1ƿZ@I7hw۽m@Hs)`_J6>Z@]0PVjUzE@G%ekNr>m$ ??eGJPv>|?#n7=d>?,7f>?3Ց-Eo>?/V7>L?p6+.b>8?3z0;3>6?(y`{>\J?;gJ4>)E?-p2uVt{>W!?D:{*>"?b +svg,>Y̿>o?W>( >п2?(K>hֿ?J1.$>=ۿ7 ?pL>&޿?&࢙|>Y޿ŏ?hk>2ۿa?"TU>.׿?y[٠]U>ѿ;?z> ̿?VaK7nW>ɿ?Cm;W>9 ʿ ?F Zi!ANG\==ݿ]?M;`G<@=?G?- f<꿌?Ld =aTT?e=_?Y!|=%?E z,>O?N쟉LrK>i쿿v?p ӆ(YR>oD?ta߿?H`O=ڿ?2}>J>rۿ?%+NxE>Jxv` ?B=T< 1>f|m?ᆊ32>fM?q0H>J:W>z#m>ꝃ>%}딋>Ha>>N$>I3@܃>x.>x>r?v)>[.on?$J7XZh>7q ) ?aG)hj>n$ ?Ehh:"r >\rah >(4أg.f0}#>â6Dv>a;nz>h\>m/i_>Y/`<5`f>Q# 7yg"%>^׾QY/nk<+>Y@jnn)(8=r>/%' p"yV>WV!p^v?^)dp/d򿏥?z +.?)Dyg?橂7?©dy 憤j|?|ڒ4j?l ?S.Q)?x܀'?N}+$忑M?U]8?9?Jx%rωݿS~?8]feٿw΁?2z&qq߿z?%Mt߿{w?h8F*mܿzw?͸ya׿B_y?K{ٜ0ҿo }?#q5ο ހ?0TϕN˿C?ilw9E/_̿Z?>fH^Ͽœ?LI G݇6#Կ?q^65|>?4@ad~ʭ:ʹ>?1IQZM>?qR ԥ>?=Wd>L ?lWT>D?QDs >?c.IdADa9͇>r?qe? Pp%Ԑ>2? 7Kqz#>P?$X2zZcJ14>?ފ2=9_\ >" ?7U`_ħ>ֿ$@\MEЎݿ^@:r;SpR@;J[avl@azcmY߿{@g2uؿ@ehNu/ѿ{@IJf"n92ʿA@( `'aſt@MKX~ SZBſ@&b(RPFȿT@>N7O%>οR@dx`MYӿQ@4N}> ?LicH-ΠQ>f;?B"qQJ]7@ +J ?T@RFkŘWN@ǚECqS1e@gJܙ@4.$U޽%%R@Ha+aj\Q@OG@jAͽ6\@9n F@%3nA~@ Fj=zΛ3b@Ma咾J@{@]Ux}&@5K>Ƥ>8'?%ҭuן >^?)=>n?0*`jڦ>?,&" >q? SJ"}>?mtU>F#?&kB>'?$.'8 IX70>)?";:q">(?F׌3 ng>$?y%;QQ>? R=X&=-?!)>cEJ?Hw4>pI?1|Qc>cOGĤ?38Qƒ>T~??uiHۋ>!&4Ǥ?^R>x(?=q3!p>5E?C,cf,C>=ӥ?m=#=t1ܥ? O=,&Q?*oFp;@e{?]5Zv"=3Oo?e$z=Q%t?G( >^zr?9-z0>3js?Ni/@>]?y$6>Q?i/6>Fq?I@B^:^=KB:?!wr.I=UDa?ƘpgX_?I a˦B<L?RH>پ)?>a )?0PC>ui'?ŝ*Ul>㾄%?h10$>AӾf#? eSUj>j #?U? >' #?lN/0y>L#?IJ%?dON*>a'?6s^E=ž)?% a >{u)?iA@(S>*<(>!JMbIaUZ47A>ags0`.~>ץdd%>m>dN>4ra/>m]R\'>@]Q#UD>GhWN4}%D6?5*lK 2/Z?qV\^?J7 >jC0\#XÿK\?"`p;G9?XÿmP?371Ô?$1$h7g?$ﹿl*?9=$"Tw?@T3& ݰ n?wkl? B{ +?e[YPۡ]B?Gyy; q0?vBsT=}{?K͑cP?&X`B:%?Ӛb䱿8?ۻy󮴿rO6?pҒ?)±>哿`?{*[H.լˇv%? qpO5G*n? gD:Fu ?SFBBxño?rtP1rk~ ?&xP[>~ ?EQ<`݃> ?M$XMp>o?+R3ZZ>R?! RԬཋL>?'?0Ew@̧̟S>- ?D;p9Gf> ? 4[~H"t~>(?/,l1 >E?%/$S K=#>:?W4vp7f>?m?q'2׍n>,?L;1&,o~6{@9 +% 35@hE]኿C@C@WFt@a@ތK 7|:@m] U*\oW@@3a .{e@Aj+'b@?n5g²@ܣ5ne?q@"izB0@r`;S>@-dT3ŋq@\tJ5>?07 *>j?=+;Ĥr> ?#kP>D ?j|%">&?hNJy>T+? >imkI>-?3)i%z&:y>,?ߊh{' |>AF)?@$=9^ x>#?@+5v:>?1#h[‰>C?2ۅ2f:9 P? Q@/Vѣ?GDH'/?p`o$.%Q?|(O̾-?g7;{-`0ң?:@f2!;KY?x*F?ջkjDkN;?<QF/`?'VEKҢ?Sg9Nz?Ƹ*Du9c?Z7cF5W?8BH,.~+_?nX ,h?/)#q@?k@3b9 9?9g/,F :?9$r9RG ?_`f46[L(? 6w!^J#?)`Q@7pc?֘oZ:/e? -S}G$?Aʔ^־+!%?BZ?PȾ8vb&?l<IJ1%?mVAƦľ:al#?U.VSBоJ!?.TSu=`ֽbZ?lCv󾵕?GiyT?|?6G@=?- 膾1"?qIj[ ? q=Y9>>90dMM=>s>=ot>b>Nl|A">=A>~@Ju>n>DX>˳Q4=|Г=> EӔj^=Go>j<>kP,"1>Ȕ퀼Iʊ^">G_8H⎿>17SIC<# Tg>`Ah(i?9?[cY ?{6:m?1z= ?nwݧ3ν3 ?X  a?"RkfH Q? sk6 ?7]:?zO5E@?"ӯl߶&/?ZݗyD; N?NM=A5 ]!?"h%G=%?uX)X; =>?|?/Z4?U-W!S{C>m?/O( xK6>S?)F6O\c>u?U?y܊t!>@?HUl > ?OEץ>g ?*RR]^D> ? O_F>v?IfBx5>KQ??;> ?l6[!O>Si?>/1D)gcࣾϿse@S)YQ}ӿg@N0PXy4ٿH@S`zhῆ@D2g^]迅 @,`Ǽi̥{@i¾|쿮@ ʲdϙ۾1B鿖^@\d⿟@6H*?;9-0^DM>*?-Oc{"Ƅ?Q\@  O6B>@/1>FDa[@^ZгGb@gڊ4:@em LdC̃#@J9oVвMX}Wx@ K b[Iy@Fjim}"@ڂ57ntv@amELxz@@<ht`3@߲v `ku|@IěsT,]wM1@˘JQ>?m:K7'>?2Mk%hu݌>#?*h Q>m)?%lA]n>.?{#F?g+i>1?5%|dGQ>1?*xpA>.?62fO&@<>E*?nw:08 C>IX$?/@w$TU>TA?FB/azl>1?'@"4) ]3d?=Sl3[+XE?lzFb՝?{t1?-j1"35 ,?f?^:|eߜ?vuz2h ?Dkmᖿ#? rD0B? 4B')+b?`ʍ5r?YQ2? sUf?<8s\?+ij8}XO?E}ꅿmCD?pE<4jG0:|?zBi)w7?rvy0Ж;h?Vc5=mE? :,DR ?qY^D?PS9בj@?/'bgw?'v:1>?V;\r*e?f2$'?fJ'+w?XOK#^, rdQ0?-H_LM4NL?Qd}O<\VOO?kI$='CB f?I0jsF;~ ?UE2Q?Ʋހq9y?K@İ? <՞2Q=M،+>?X0Vd CT<@p>(=n=g+E>l[|@/=:|V>}{ٓ=x>>Xʳׄ=L.q> H7AD>D&s Ȋ> ©ҘNؗ>p“=>W+Mn|Z>U8NIqݼJj>ޭAhK?V[2Y( i%B? {*?Xz>?hwdr Y?WL &?U"Jͬ ?8P\sN/ ?;Ԧ-0$^?od?""`? VXՕuGV?ݟyLT@a5?yNM@yqL[뿝 ?(ahF赼h?u*( {?|[*^?E]Dۤ1;?&Ѿf*9?v?Y,+҃?`BwFuY?x$ߝH5h?σ!~B2np?uO# 뿏Ҋ?ٖi<\\>uJ?Q-!={Fۚ> ?$/( xP>]?TY6aP2Mc>s?3z?y!>C@?)HUA> ?Olщ>1 ?HR6`Nz>?"O"VAi>x~?0I]s#d>X??;km>?6ɭ-\!Q->=?/2߂DgrϿK@)YdQ>|ӿ@O0!X4Ruٿ@S`*—oJ@Df:̦v;@,FǼi{D;y@yĸi1HݾV쿤@db@]\2N@GaSށڿp}@,& MnGӿ@cB@K ھϿ@>@bM);Sݿ@}u>TC)?%t9-]ܵE^>|A? 1Y Am@"9g:@Q G𮑾H\)@%\F}g@JF`.@T@-#`xȽG@=wڀi>n(@(ACn_?@;MunQ@+}8xj;֑P@ Qasp@YU1f@C#L2>%"?$"UM7>?H+JN1>^?G0~ͅ\t>?0vr>??ߚ-2!f܆ñ>?,'I>!?eRviU>&?[c0?>p*?1&,q,v>,?<*xv> *?|*q7>X+'?Ǚ*?3DM>J?0W> _i?3ȍB.x>wW?q >x 1Ο?FA->?<*>+u? lĿD>2ۂ2?< u>pzؠ?cm(9!8>CEr?=dT2l>V5o?t#4`[>Hz~3?hAgY~>"rcP?UhK)=%?ĉ =T>!?j_lU>u?ߛW6>*袿?>g>$?5'?h0IP>?Iv50ȇ>>rpR?Q>1e/uq>>=LX?L}h=Ȏ_?|E"$>$t?_5q27>bO!? O A>7"?2fa]> ='w?nxc>=i'O?UĢT>r"C?r1.>V`?Ld`dFe>?v>Rg?Sh34&>4`?5QRUN>R ;?Y[SB>l!?669`>G ?uXRS8`~>_t`dQ҇>WeM㍿mQ>iP1'=~\>['ӊ|>;î/>>櫑?B5&q=> 6'>7l! 4?>L@->F[g %_>5vr}x>=^l|킿Gݴ?v }x ?}8+ "?Q ? m O?q 혿u/?ld t*O?ށ9 J$ ?^.I 劖?hbAjG5?~b׉\?.vjJ?9d@NUɑwlv?kvq>v0{?xm N+&}U@q?OGq~ n?2Rwxel?r>3Z/m?بo l@p?MNt?B1LzA忚y?\&9t/uR}?*fkpBDj ?&_K{BD~?X=WDy>Vb?CP!auL{>l?La:&Q|p>Gr ?VFin\>N ?^;ĎiC>H?ar%睂7->,?^bŃe>??Wɦ'( >S?3NbTf|(>s?hD"ήu<>?=dlCٗU>'?0:EGevk>4? _<7vp7C'ܿ@c[OE>@uOʘT#NDfM;@j+t\ח\r|@bkR@%|fv,0@)Lg{ַ@idyڿ1@Ԫ ^wpܒӿc@ϴ7lWc7п@Z+RT4пqn@_OPIv-տ]]@Ua5YO_e޿%@n|>b?FgK=;?>.C? r,:PW@} 0NxǍN@=EϾڒFI@IɟEճB@J,P`@x;*U~P@ L,ayz@6GvLjت @)7 n-t@ 6nWq@'Fjо7u9_@ Ka侠@/9dUUʆ4 @L -KUG>""?-h琚b[>?1tu>U?10|o~><?!,7*ܟY\>x"?& S/? >\1(?Tqǎ>Ƶ-?LeAI>1?/Km[Io>R3?N1?"04 j*D>-?| !QF>>7u(?'‚9~ *؞?ƕ|l)?2nY?$ h;59?E=1?Aє= )F?o„q=e8?jI =  ?xkǾ(?̻Kk=ɾf'?W=ů%?;&=ாH+$?mdP=Kᘾ->#?*Ó=##?je67.=D&o#?3YK~=IajH%?fM3:|&?]> 5T)?k45(?}:hj^R?o7GJWc?.,dv >iA>i[nt>f ھ>LV_`Eվ-?һg;ԵYھ?iV^{:S1q ?/9gO' ?*O%TbtNɸ  ?fEsQ69?_5wa& ?yMh-?3ӔE?K;ܙb?GͭnƸk?] ">'? C-?͖l,󳪿L?M {^KäP?VLfbܠ8?4t2K ?z.f?0c4_*O'?ܒ񋤿ꃿ}?0*pqU]?߭lyV?2OƳn?j ?cS?y O<1#]|Ȕ?jo2(c\#?4io<:[$aՖ?GiT/@wԞ9k?m%s5vN>?zkox?'epb>?Z?VxS6!4>#?TЀGCm$>?Q,4P>,?K'{tg%>M"?"VB`|6>$?,:F~rHM> #?4"v 9`d>?*'3GM\* t>%B?/6oD3%gz>?O?E/dCoٰ @!kJM;~K@w@R хů@^w6ء@DMf"@k U)@<l =@vt?gwNPf>C46?w_3!Z˱ϛ@[S~>Z0@rjC|@ft@q` -G:IK~@1RXNV(P@"[Ye1@Adp0a}@Løjlmv ~{@Zo2tf@cmkսS@׽|g^_o@\}PJ5@KP/uD7@Ma_F3b>J4?+vr)\>9?t#d(yCkJ>>?Q>BWNAcX2>@?vt.VO>͎A?$| !>??,迦c >? 6]7?j=;ok>2?A ߇ܫ3>+/?JAoEoK>7/?6J0?9*4`hK0r?m|<?n%b3,?FS:B ?i`?-lJBV¨\" C?KϗkX1IB`㛎?LV}c׌?jqDo? yΪyɊ?afi?8m*MU?eC?1@?y$[a?xqq3rL?JgR1Q?a?y . ꗨ8;?jp'-㳿?E(p1? n(1,!?̇NU#ƿI?sh Zvȿ,?\cP=?Uc\K(ƿ?4g5I0&>7l4i;K(G?PbpPx?+2m*WS=~>Kg^})>sσ[,K+d%S>흅Q  f;># d^$3>iٯ^w->.lW3~>sݶSJ6>^c2PtF7 >1!(>L#?iJu4>#8]$?"K>X$ؾ"?'_`N8u>+Ӿz ?]TŒ>ھir?-IIJ>2u?tQ+>;f3?|7[/>a I?!X϶y>\?!O>6!?5ji+>Y#?v>l_$?Ezt,x?W'W?<nsg?Fw6=mu?at0z=+t{7?J+S7>\I>xC+?pm/;E>.l?1ux(= ?I]⨇ g=C?)=51_?Ќ;-苿?lm>^ ?'IC=M*U?g%TK=X?Ӄ>GN?_׈r-(J>G?dqs2bt>TLh?P'W/>dlV6?Aw"O>+bդ?|&oy>9cl'v?^p2Q>r1?(B ~">s?ǎ|X=m%??\ت2=cz?ىBG>$?j4N  z>O#?,ʰ*[J>&?&1r>N%?# 3mt>J"?$C.~?s)t2x>>љ?0uk,>m2?]8B^>? >&-e>2?sA@\>R!?Nb@^=>?t;o4ҤlѾb@#F;þ<-x@D#HR?E9k@OYaw㏿J@ Bloj?F>@7&+rK!hJ@6YwrIWj@?)mg>ezDؓ@;d5;ES@"U#@ZKHz)F@i@оy@)??b.@*- >}:?95U[P>`G? \:]k@.#[Z>@fhG*}I,@YܾF^<@zʫK,O{@T@M k`=p﬿@6Ki7ae@?m' @G?;n☿y@4/RjArxP@Na3-,@c]UbWd%ԙ>@OHL\}>5)?B$PkO>G.$?aiϣ>d ?@ ͇?>?"nv>PI?f X">(!?&- ;i>%?jx.n >*? Hq$.Ӓ>.?X3%o:>1?xh &yt>0? (svꪖ>-?i /T@>65?Ԃ>y@?(̑>.:g?˱e> Q?h손>>.'?)Ih>ݖ?^\>ޡ?G}S>㋿!^?ow%W>)C0?N|XU0>zݠ?sq 7>|(?29?#o90>z* ? !V>nk?WZ.>C(?Xᨉ(Z>(?>ڷ9?)Ά^1>$#6?[T>7k?tw%->v?o 4M> Θ?OlX.g > Ѽ?z*>F9>?UKT>X@?oظybk>A$?Nn>e-F?ыݯ~!>3#?¹">%5?0AQ>1f?;(^>L*)?RO>/ C?{CX6>Q#?t$%&->2,?F$H+Oq>¾?)U]}>U2c ?? Hݏ>/=?RA\ŞX >vT&*ՅU>T=^6ǓZZ> j>xDГÅ>B6B^Ȓ"><ڍQ;q>M$ܾ"؎>xj>qBZҋ>y?"_ؾh>l=?pޓ+J9Z>)T+qΡ0!??g29b(7?!u2î5 e?ahT4@_[?6z`M?? [Y ?ô 5a7 ,?c&?Հn^$t?ޗCJ$S9 ?ɏsFǔF? ~:ڼO?KfC  }?| "? kA(T9ڹ#M,x?hݹL:,s?5}7xTq?fB0q?cJ`QJs?~mL0ڦw??"_I_|?G@7Dh?JIf75(|?iH*??WSgI=~>?͘$>uo؞>I?(-)\3Lg5>k?*7_> ?3?n2:>ڕ ?D iϡ>?$EyIX$>?J@vѓ>x??7ܺ_9פA;>.$?-dȈ>[? % ݾr,>S?9 T=`>r?q$K'߿@?]9׿@u#2V~i.ҿi@NP*Tѿ@Hd3O,wFӿ&@9BK'OK#u.N@$}>?[CEDǭ喃>R@?6%@oھ"k@  ꁿ_@ߣE8׾Knb@: jE$0f;/@DJĨw@AZ$UK6i4h@R% vaT-8\@X9)jR'@*J9nëܾ9O@?nDS@ܙ=j?kk^c@mA-oaul@` 7U'zF*@b*J >{#?P0H%ϧ>o!?Q [f>"?[45%>&?, 2az溰>},?/wo>X2?fIMW>6?N6i/>8?j`uT>&o7?^ HhV>>t3?* 2(3Pی>-?o,>'? ٫Kד bh|?HOqb>9?$Wq^J?E8QԾH?qĂF񫼾2?T~-u=Tǥ?;i*>&3v?9ri,Ur7EӦ?y[' 稾Qʦ?2iA2Ѧ?;/l׾?ǗV jn(?ccǾ ?u4#?唾g?TD`J"?yqf{v^ h?~m<Ȇ?f~=,3?5cd:;HO?BrA9)̾'f?Jd;)Ĵݾ}P?9Q ۾AS?9@/jG a? ^t4_gr.? 0]h.?7O vνZR.?\Cw28.-?p@Mt +?x0+1ҿW=*?p^U5C}#:)?1[Jt}-](?V[m-B-/])?be\&XKνy*?\p<LIO4@g-?KzWl+?^q#mZ> cg" {}>oڻ17(p'j>y05&//|> Do7uC>׊,=n4>ϰm@&h>V(5?e<>M@:#f>ϿQUh3ie>"Bm+>p*>**p%fw >Qaܿv?dBD`c?|?jM?2Ȋ𢚿x}E?AbM?d ]k/?iD-?20M~r:?QMS)& u?0ΨuJ㿑f?~? /?NcgȎ뿜?u-..<5W޿g~?ZcW>4ٿs?V{oJ`z?-.+6C࿪lw?,ͳo|d9޿Fv?L ȫٿfx?ԓ(윿cpԿ |?u嚿Ͽ~V?"OJgVͿY?Ijp6fꐿt_Ϳ?hG3hп$^?EOkH3ؓԿ?m!8j>28?b7aQхDp>s?>qAvV$!> ?/)J/'(q>D?TxOϊDi}>?Os3Vk>5?AKgiAe>=?9Bo=/k>X?V(9jex.|>?ss0zډ>?.+3f;I>C?@*7m=da?>p?Q/NO6 cBiӿ6:@9_^3N+Hڿu@[?S Tz߿'@[j{cEa@vNcp2ݿ@Vgx׿@9ޒhzп{@z/es3ȿ#B@* $_gĿt @yJX `Y4¿@laQ-Lkſ@t8.S9O C˿޽@EbMX^ѿV\@I}ش>9?y_H/l> '?KR' ȃ[80@~TJ옿@|A9>G|AŒR@eXHV?|o@aLEلS@>F@VQÀ&@yPa_D޸@2]D0jmi@.muc'L@)"mK4wg@<=htaqy@y9B`eӛ*@TDW>{@]K0>?X&'L[-⊝>* ?x9>%?b{ /?>D+?_OE>/?w&7 p >X1? I n>0?pGb>\-?uL$i$=;a>'?+;Ťl>D"? s0Y ӈ>?1Qf&>7?N-ʞGO?QCK~>{?uϯ ߞ2w?xV .)hP'}?M]Cu8Uh ?+i:f?l vw-*"8?hbUQ, ?AG1>8n?7q~&LC'V?yI~L#ʚ?*J֙?lpy_Z?Oh$u_n5?r-Eϭ`&?|T?&dOK&M?2-DtoM?Lu.$S?ɱW]2 r]+_x?\$'S)U0lp?Fx*?㚺^q ?c؛P,?4;Ծe?bN1.;ƾ?id/ -W6?]#8W /r蛾b?AB/?cZ5Š3?P_ =ӂr?hGR~D?} T2 ?ekK&gy>6(X+j?Gga'@>rS ?x6oC,^b>}V?gJ*=h>\2?\D>db?^v>j?([ .`>;=oI?t> p?)qW>?l?t=HN>fj ?C Z>,_x?Р3DW=>ƿ?U TGb >d$ȿL?)t}bk>sgɿ$;?IdO/W>ο?o,+ç>ÚտN?v -.w>+ܿ]?`b#N>D?2Dmq>!Ὶ? .=޿|?Nם=]ٿ]g?ե/=ҿ,?`c=Q̿p/?ϟLqV>Jѵue?7o=>䶿Yz?qhB3>?+A];>ٻG?o0'i>;S$?BZ>jƿ?>g8~>UʿH?W5>N ˿M?;Լq>9ɿ ?7=]R> ſG?/Ѿ0KK>Ȥh?2E\>\vڗ?Ff=r>&&?\.kp>&?zf."!{@>U%?#"x]K>!?n#TV^ͺ>6?'+}%>?\ 4kMҚ5>?:Nz>`?=gN>P?OGP?`6ّE(>`?8."9&\1Ø>0#?v&TQA2T^U~@hEbM%^@Z}V@⽚tM@;9}aY빿@EKi'ÏZ^|@@AloVjȿR@+4=l Z5Ϳf@@gF%fο}@)_+z˿2@ӬTPſ@IK˗61o@ǖRHG`, <@ɰDtI5ſI@ ~>;?}!aw}>@?,2jGO<ˇL@ U 4H̾#?@4ʽEHhT@nER|Ǖ`@eJ~fG@?UXb덿~@Mb0aMІI@F`j@`>@4#nSv @[8oDPs3Q@Fj8nx>@`ؾHaо @ݰ15bUվȈm@_K>H?[3hx>?'5zŜ>#e? #5 |+>?0w/ܵo>L ?C*X[>%?-+#Jskyj>]+?s`L !>A/?ğ?*L*]->܄0?l=oaS>.?+4g>3*?1&v6>R#>%?|O-#BS2B:E'舤?<@})-/ N? I==91? K`=- ?Hț #=$?r(=?~c!= "?gBQ$-P= V?3kc.Lj<g?wm+qǸ?";ewBḤ?́Q+ɤ?ٌ7߂ R?gaʽAR[Zb?6:JM^? -Y!b@ Z?Hm|u&q"?q}>"듾!?}7~bp >Z!?C`v;;=6gt"?-)\ L=R^d#?gflK<xͤ'?%E];&?5A./4z?>a `- v>o"04y>.)Q;^uzl>?Bn>q0U Igʴ>诉QxKaV>')&Jq^>-NDEx@_5E>MQVaD>g'cN>7Am6i >+)p_0p\>R>ae&?bc*БP(?;|%?B0䊠Ǔ?Ta?0 Hu?wݪp[?;p;?yN8$?^vE(?~.;oj?jPbe?9v@,&٘ڿHq?b_ ֿ! ?){Oݿ!{?m,0ܿ*x?`nAڿ~w?5꡿տ2;y?@kп|?ۅ~˿s€?QgPax(lɿ\?Ӷj7Ϗ,ɿ`?qhH^QC̿?FGN&H3Ս2п ?n7ޙ>I?6bϳBl>??xU>G!?nH%vl>}?M̜'U>?MIAD><?\@I'a_=>? @7? C>"?!7kBU>8#?z.n{l>"?>T)teVI#>P\? ):9<`>?-PP bAM.Vп@@^NS|׿|@i>~S_ACܿe@p[vn[ݿ5 @kc|{Npڿ@{gbՁjJԿ@wߦh\M̿Ӈ@Be)~mſ\M@%_rŻS@MKXc@bQqV,¿9@9XR%OuFNoȿ@b*~Mh3tοe@;N}Ph>?r^ZH.gӗ>O#?94pY#a޾d@|}S߾Կ4@eNqֿ@U PLQܿ`@7mNo Ԡ@KS:q@Һ!ɨ\qWL@4Xd޾@qht¾KV@hCv4@<fiY@0S_=sڿ]@XW¾Wտ@>LQ>0?)=\o>/>U?w.a<ڈ>K?a7dR\,>?rA(M8>?IGF qP> ?M4)|>D ?0 ?GN=F:S>^ ? ?qjG >0?<^5_P0>+? C-6s4>9B?({u$?8kDFG?3_;1@h.?8 6TO?ȃ+(7W ?@Ӂ@}?ۤeX}?6 s@9Z3?ES~B?rzɮU0΃? }{<G4 ?0]Gm#e҅?@b9:=B:?~~ľC*mk ?nEWs h?~ ._i?FQ?n!x>H?Z $->u, 5 N[>Veu>ӯp-Ww>ES*3 wx> ^_?&Xȼ>@ O F< >s,.Z<x*%!յ>v#_5nhiN>QC!\Uվ ?c蛰mNQ޾I? "ý[FFľp ?O0^bh?ƨZr][ ?̘51yX ?ҮTb!  Rډg?#hEJVwk?:R^fDjE)?<2d}AwѶM{?ZQZBp˾<?i56\Gm ھ?S sf?2<Y'?'"۫g?SH 'w?wa:i ?4 'c{]w?׫R51wV?s.FY V0?a%vM򘿟c\ܿ?_U$g8?z0ju;?_u?=?G?yTxØRJn*ߦ ,}?J^ š&x?tg,3%'V?b$k.;x..{-?4XHo:|w9,?vT,ɔmoE1?w֝䗿]O?sV`\^>Z#?{1{֭:F>c ?5nʙ1>/%?57³a3%>*?k1eʟp($>)A0?N*j6en/>4?!ŁlC>G5?8 h[>03?s1Kr6qq>k:/?v%[SE x}>)??-y$T~>9'$?!{Ys>"R ?i*RXhΥ @M J3wh @ЧTBs @`?I*?:[XV3g>8?0"_+|ɿʾ@ wx~@wXJbÿѦ@&Iߵ˿9@_LìfҿQ@S(c׿ @;ȮV^luؿح@fT:?hտ@$k0Ͽ@V:kڌ WBȿ_u%?eHQ.> "?c rE/>?,)z>??k1О>?݆5Pku>89?@4^ ~~j>?/B4> ?'.tn >kU?_Nn@\и>k#?$|8M r]>4&?^{{ٟ>&?w* x=Ͽ?/]-T=@Կ?1j L~=ٿ/?mZ=ǫ޿fN?տ=ῥ$?&r%>⿙̍?BsAR>[?K'" p>@ܿץ?yuϘpw>ֿ}N?>} Pe>ѿ?^B5>Ϳb?sWns>@>˓ο0?E*BeA{EΉ?WfzH۱?6vK?L<?6 x$F6?O}y={?3 ` =%?F=tR=su?-mTc&>?y `&t=Iel?g7Fq:=?޿6?z~VP=.X:?6s >lx?F?IZ=]~?#?(8= ?ZK>&>G'>>ݛQ>՜s> TBw>RL>@%3>\|:>s[>&>v4>{ /}>r"?Q 1Ns(?;F6j$Y>yqt?!Ah b6O(? 릆 cp*?D,G` y_'?5FCed2Խ>&?);gP.%?YkjE_Aս%?8WJ@J a&?d#/?^7(?{%"Kc|)?le&**?;M:Nꇾ83+? 2RAt؁1+?[Q?7W#a? dc ?AX 2Ᾰ ?5Éh)ȾCP?!Jr9宾W?=$`Z:h5 I-?k5+[~U?~%%r?mJqV9.݄?<; Eɾ0*?q,?F"zԾ*־{??\Ͼ0"? Wr;v{ ?BL?1lT ? y)nhq,?@d,O|0?.n6#irQپF?~>IBeR?m}Q?=KUǨ8MJE?%[F3?YaB>%$?8s-n܁Q<>1|*?'q"0B>0? #,=T>3?L:{G\-n>04?40B[Y>T2?,u -?&LXjG9dp>'?ubw!>D"?~$YZ>?j+7.3Тnn>о?/u~U>?U0x9避@Ju@@UgY@1ea}` ^!@?jԳZb@h?n2<^f@X 6n}kϾ(/i@}<$jȾ%w8_@RgaDѾz@W/Uu3 @=Jg*Q@E#XO@zE+uv@ /t+>]>?2\:D)>}B?5];c8 )p[@8.@umNPR@]PѩI(fC@]3W9-*@ D'd 1倿p@G U7nMݸ}S@8r%윀2@0q0)@ k4Ȍ:@z`1>򓿃b@h؈Q($?N@K;D>*?!#p0>#+?J3#r>L.?[Wd"q>2?w<||>̇8?N jG5 3>D=?Ah!h>?? s77d>?? dd<%Ν>7?-pAȘ>X2?g" ײ$ç> -? C%'#+9?JqkK??r;#'P, Y?8lٻ XG7^?Q}Xd e徱?il2-ϼӾU?2A_t61"/̾z%?u1ń-yо͗?lm6k߾?$D*m9|?Ѓ .PH?L^\"6{G9?/dW/*J?+񑰾"Fm?;ٞAJ=Qh>^?j1i2>2?LV,'[?p7L=&!5YW?bAs`4e-l?n?:[ ?AŸa(:lD]@'F?6;(%JH2u?&EPawi?-Z1፾&?Wd'?_9<> R{$'?i/y]R'?3qF:g7%">&?Y'PRPyo΂$?/4M WG޽"?fLǾm{!?kjM*־w/ ?]\H_c޾58)Q!?5z XDѾބ<$?QN}xܾPoe "?gѴ">q9,ᒿ>Jc賾Y>td4֩>F̾:>$EW>hΙ9>rƔo>3Joʒ>uq 3t>3%6>VEP$3>OBlϾ>=4p#)z?E-o?jD,U ?sȊ5 ɂ?rI6B3?? OyOĜ L$?^J9Yc :9?E <']Z a?*%6Z?2780Q̺?g|րD<?}7,k?7qB~ ?(|9ߺ NXA?`>;;iL`}?s9ʍy% Py?6H06v? ̺/<6}v?ASEEq<2x?~אI{?҄^MG7?7+g@?\5 sx>*?7dUZw>?>mTiӺi>?v%Efͭ|R>l ?}38>?y~#>X?z O>?Hsk(>>x?>uiS!%>R?y`p<>?dZ \|XV>?$Y]0slbϿvh@^(L ֿ@_#T AS޿X@HEe^.S俿@&|f%'_ @ǺkG^5Г@76l:@L@ҵhTLDٿOp@'a Aҿ@zfW.-7"̿~@HNK)rɿQ@"g=JZʿ@6"ZI8'(4ؿ@M~|>?y0A H>F?f5pK;:pM/俺@\G|;57;ۿL@X..Ond@jֿc@"I]dPNDտ@]kR\ؿb@PP!@o&[`4C&@K>T101p@2cfO>p?C%=%m">d\ ?C@H$Eoeڏ>?BjF/>?NxIyw}>> ?SZ|}>O ?]->,?ndIbЄ{>E?mUgF菂>}>Jdp>>@]+?iMn>9?( T`Ϭ>,K?OFJUe[ o$,}?^7Bx^?迻~?.L\jK8}?ykwD")翨y?d`q+ n$w뿏5u?9.71_'p?It5]`m?˹iIZl?ҹV}ܖm?z Ufa%>Bfaj{B>>S`3vr͡퇿ې>Emik#ц<>.N#G&b$۱>ď=%房M>! Ou>vgꚓ+D.x>]ϼm>O) 3N>H;d_N>hGᑿʶ>q'Wx?rȮ }?k):*`?r'ns?G/Q!UQr?Db CC?>dn<M4? ZtT l?H8XXsA2i?&e MH B?n*TP?RԞo΄5?3 0QW-?c;B}IsXZ?zlF ?9sZ^ :u?sa%ٗ?A\H2]PUgZ i?-y&%eV ?=Sw @>)J?"S 4>?N[5>?{G"-A>% ? @IeFW>!?9V{oo>; ?P61r@>?6!^U/s>:?;!z&=>)?ZAv>E ?űIiL#,-Tn>}J ?.PY'VQu@'bJN]FN@#ʞTc6@z-|`Tzb@ziTZ}@/%nPMU|i@=n >|@yDj92 d3@G7#=a<,[׈@CY VM-@e3L5WL9@OLF7Bݸ@k@EHy닿+G@Y ,1>e?qh.S>?L/-`*l, ܬ@R}=0Gٿ@*`Nŕپ=ݿ@`:K俹<@LVqN@~,S־7@巁\߼Z@{ʱdߟQLB@hOP@/ɳiss@Fgv ῱@\S`dۿOv@~Kj5}XhMPؿ2@U#[Q<$>Z ?DAD]eqx> ?&LZX>Or? UoS6> ? ^Mz+>+t>m3e> >g1cs>>>r\\ݯj>Т?aRyDp=>A?ILf>?C$?y$> ?A"{p`?g:ƽʈ?J.؆?-Hc ?܎ܓl&>?v#&PT?֘;`?-wp1=xm ?b}|= +*?}f:j=?r $+LH@7b?j+FآAfpM

    T$`Āk&jw~_XA`! G.\_-Vm]YSP_O.uw[ONJ5%̫!O;qh9@1n_-# coh=YzKR9FWf=?Zu2@HqGWʎoضyv]nw@+בޱkU2xam<vm!ʝyI3F[zaMΪZ9`ڳvے72_$W/'oqSmM/}$[Ke$2vnIo~|hА[d?{ v8Z%Mz$+ǒɌNA`w54Rlow($n ee{L^/]Ma=a~aEs-jS!T_R07*1>qq6RU%KO% ˥09b62mrIޚ>le~Ac";3=s֯=~N4MFkISo3º mMiB֤򖻦aˣw>"xF^$C#GjKIm٘bXud#+;FGCmU9I3J^;E°aG;kv'kKGUId3,8a DAkhT[ˋ& F3b܌#y_?gⷁ>xnºT{[X/V\ d%(w1rziAܟ~:ͬ]zχ lueYoW|IV6u?:08 (n%T)P@C8|e.zuV;p0䤻wAzŦX)+/9@q^W8K3>mfwe$zqΞ|xh xM&-=B~O^ޕqx:ΑiWieXw tu* R1m8Hj|ѾG~Λ{YU/^;гyCd󑏥}= q-;XiGtۥbe\?s~a^MtPK"Ir&v,0x+eqCoti]GOm(Hq >xn+a5ݔSٶ"wϔJ q_S圆ȴvSuse1?:%=Ǣ9iXOda@sӟSX^4@ą®7~4՟m_eU$cOv%]k'U{ Wdkt&|rw#p{=r;HLƛ4:uo%i:ʚYqyP0FvUzl[09@8pu쎨zM$8ktb[kqgDloQ?sԃKInf`YG;8Zl鶿p͌g®d:ɸ"$ S>54yei6O( 2Hm1 q¾9kwQ!HÜbNUz+EI7h p@]"#Vi3xd+TwcI:G6 +(}PvOoar!cbO'^$~xRmjzf٣T.\ |WiVp\(eI|TA@+&7qcG_K)X{f#. 1z%痧ZO*ܜIg|#x(gc[g?@wppqh]L"45mo¾ed|Whڛm7z7zSd3~m큕[Q vRA'iSջTև麗lj|O$B@%scI k裴bu ;O#:duSBё0 ȣn-`cf8&ӆ&uGA0G ݂N8v-T-&fx%eeXd q&m5E5R5 v%1|w&..-Xn 3L+M*ky!9!~H$ԼC.mu V]DDipO6;I. zw0IYٿOnkAigW34yOysWza~;v4m ᭌW@}~ϤJoćb[ǵ}Z@yWk9wDz 86QUN9=cnW}KP99qV tNjh`殬As2s3'lievN%SW")r1-zy[s6Njt;H95W4|@9NHw8#K|gq]p_i:f11א{_R/׺SkiqnrI|ٯqE%ϾîfVmZծHƃ;q3ֹ;[Ҍ|@}ʩ5T*1*;+啼ot{PFӮg^nԗZ!$];Vi$gO'ʉ>k|yn6Fc=sS7ka=|E-SխKukY…r$iY_ 5;Ltv+nK61:5هʃIۖգo.A Bbo`}s%:PkVlyPˈ8u[ NMzV3/|%ഒ[?]֭༑VKkQ&;؉[ mgAHt 1#=6^x mN<{3;Zw7T5~gխukYlܤ6J Ġ3 ttgWH+bi=Yۭu#ha|6ގ]zhGiVm > TYFw97@ҼUl 9bN= uE(.MߡWOj4)E6lB,0s_^; -=OY6cnHu s\*nz7K ) [*!"xPsɮKPDCŶg]i;}%ummI LeJ1r8TҒ8RҬ(a[%I͏ۜ#ِo{ג]mokfF .%1p`%iSv.u-vO[е? O ?GQm}3נJF*8qj)Kt>Akk{Ehy!we8#7mJrNL4KĖX"DK%Fv@EҾ/|=IV,FmPnp7r^;õu7kz4[/$@T,Uǵt @3;Î>T\j䞫Sb *_1SqF`7NcokE\ [xdONՒRҺM*69=7Guky&Kb|\(rFr~Qz$=Jm۟4I;bGg )$[eG1+6KnY9c>v= Ym5[8HEo-9 y0KyOtr,4+k<6R ˅X781$ݗC)|<>t{M'Lm#",͏v$/:lR嶹T'9 ֋C]4< W!<[+f- ?eas6B\38U1wt >LJtzyaωtՊZ}ñ.A*wfу8 ۽>Z ؚi.@<3Pf o:!"jO8暳W7-/eG^9>t n Nsn=}u)mbK5cX!<UG8 @I1Y5Z[lnR"eiD)aXG<񞣩5O7 iC& q*v\`k%6MH동r3КaQ8{R{h~:wzE鸶K8d%\y5.V6 gˍvp3_c8e޶E0OQS>V"v.GngSѭ/.~M6 6* X5J]jFa1,@*$NgZJ4fzy& C{`^C)-L%S#\\ VXnpG>y[RG\{e$[w wjkm,6#d7Nqroq"]:í}lmKUU-2NU1*s\c5NJ<=Uu(ot}"&NZu%9zWseB*'{}|9y_|KMo ,pn 1_[~$G4U]Kzxmϗ12R(BqWEɞV/Ք~G@#BcX<=Wp}x⺍, 7=zWJѳ{LcŚh2yNoj/ cjMbVA iTp"ʓΧ'ֺ9UExm#:sO[t>GMxWW wM>wu#") @듼g<׎|*mIMoks鶰gO. ^fuHܸo^iGis˚^VV_>͠7`oJ|۰6P!yqx.eY t =8f5ݻ>myN z]lބOXOUE- 24xRpF7Q^ki UH5;H"c1V/ʮCS4NK{%rpzȬmJ(-n⺏9ݡ {`-湄y歵֙*α>ՍGcu;YS`c ?ϩ< 6 sⲿgֵsT%SLb8F}+?zcHQ^Vd50PLuM V(;P~{^ ZA-c&L-ߴұH}V"Œj㢎cܟJmr.b΍=Ư2 nՖbd Zt&n73};ؿ}pB1=Jm ͷ E&5'-w7szNSJ࿶57B0SS'CBRI~~Vq.xl$mUlOsz^K;֬'0Y2)܎zRkпu1nGtm?=!ܣsL^6 󜟰</ 4h!K-2X)bNGQ*RlҝX7w=VYbҖ c%Al к'jO׉N>8x/Q:uѨڝPCab28KezJ]F*Z&FؚFe{ cޫxOQFC#rpH>8Z(fg*В_W"+ =8ϧ-}+KG\ב068H?<|ⳏo5fr[Au~j\\7zDGB۰zT r@[i5[cx ,HpKUIJI&ifh  Y'ygΦ/e)qNF0zm^]$ 1s,ecWBE #F i+qsjv|iZkFAWOxY\ZZxm&x7Xkuis=u +v͵`|EF'&VZ"=:#5im4ܹ|JK2 Չ֏+t z0ȑ+VguZ_CW>3gÌ\mu{GT}7'=Vo)GȘy%v\jMk&x#%;rk{̘iޠK^Osʆ8YlW6Ÿ\瑞jFeԫ|MC0w*dG;?O=j[VV-y#=0W֭,hs屴UcrpN㌚!q)jNBE8'z# t5oi_CE>6^N{30bWls7̸B@ r+twJ' eGﴍH U'8*[~ڟԭC PG.sއ=jQu+1@Hl2Si2ܶrK' 8W='l`Ѓ?5 [̆<}k}cRi 1cf'ffbavm=)uy!=Ft-E5dSv£G Hl3ߧ IF?"a.ikڴ j2LSܜrKg&fkRcaC ; q;253,La9U)ጕ:T}\Klf8/$dS8q¿7>nx7S_I]KX[_:]i2d(x™"˃myƿ/񮕥phUӭ"u{yQ~a^Y:4tCǢ:K*I#nh$/ gW<Qfzy+/=LˊUV1 Oӊֳ)hI%9{ٛ}o{ &FI0U )ߨ_;UaJMm: >O8 9fEw?ő{ |RH2y?#c⺣}2].bXiۼfm[PHpOEzAi\[sB"GztDܖ^J hZBfbI29$ő1ђ&|a3+wğ1궰$',~!.$]7]kJj11i7u$YPOANUhv>MsIvEK>A}<{df[r$sdOgd}A ̺+#^?U`'(.fU?YuM:Jk+{m$Ye1m;c> x;⎷|)WjwRڨ_ɝ|nOj  a훨[g0ZjX<38]iͥFl$́NO3 ?*I$kiB+rY 'GZۛm*iiFK{nǠD*Z:MzfhFBq9=/jܲcRl@G;=" CZv+iD專88}3|%RsK_HIHFlm/go>?oكWľ!ok|?,p؃`^H$35ڣu!4~ y!ŠznhX;I[zXД{Q=#Eּ9]0\s_5a.v?VBB:ko&iYb+oL # 1Zmq\ڣQdgx\GnȬrm,W#@VL Z@Wݳ8|͌8Vܷ 1f ~}m)995Zp\}~D5W>0&S4dVoԭ_UMNNrB$N }N>ml7wlh2\ϞK ķR.=bbN:KyE \p_%m|?j|5~g{oXiʊq$g]ª)ɘi;Gnw:úqxG*͆,mA־gDo}IJzw>YLe8ؒ Jյvg[D;RnEY<sXmsiX :Z{<3PSZj3yz _(A5 b] I N3VV"0*[]-En@;c|, bT+6.pw;WLO>Mn%̋kh8uWJ|\ˡ,˺2<[Y#aHkY%Q} <\cq]ޏ 74Uw "KvFN>vԸ{uiC~"&ԇAys#v7Jк:}-2 IJdMdJI#\[=ӬGV#=;c`4KkVO*H_x#?όW5U)N苒nO-*G*E܌d^9O^#ҵAmq+[l]LtI#67QQZI)L}ꖚφ쮴unXmBerHbH^|$"t f3>C#Kl:9,=jҎL4"Ϲ{-#7 K&$e0ƙPNB~2,.Sms? _Q66ϜIa `W# =qfM[KQXn/c;ao5܃FΪ'`:E J;ꚲO|Y[ڵYcs'+tGj?{o۳m4O6E/ ҧcH"T+Yeo62ծ|M)m鮥kOPrdwi&8WׅH4<,ZZ[j:4Qn?Vtݒ=tU#G$>^5{I=>W,o5"JO|;I*},1GFsZ[KBI(dG% }ZqX˭jwlT# U( _Ak7 =:Aoi[+^gN5j74eҢ0.vs d a {Oƛi;'4hַt:I9^./O,~ hk"xeQj.A[]A r>wyGI.[Byx}=3Hv`X@Ts9zw{;T4cjͬ4mݯ[B"B0;!=رcߪCߎm]kW5-L3M 2"h(InH4.B1ai0Ǟ QTFWRIkgw|I>(>xGy2iZ}Pf2F c~|xt?^ +Rծci4jdZ6A,msiΓncS1Ȱ1Xr ZnӶ3PJ{yx=đrK=1޼C;ieR1Œcp9)=_BdKO)tF=zg=z ]څh"MVls’9u4~b[xQ]㖄-΍`<[]%X\Fڼ_1>$.-$e.pL8O5zbZGG BeB?fYY"|9&<_h5Hs+)exHIT$[Gw2$Ay$ip !'^f5aiREܤ fKĸʧ?ZEcP00f:֌QaW<0>Sirp9*;pI⯬$y &hOFPݗ\w?>| wػG;ͭjd4R *!G|lk%vWGDCPONzX>үFKaF\:DEOY#!c1F۟_jc'Ǎv+ݨ$4y <*Ɗ3Z,zvsh+=ս4xLta4>;+k4KΠЁÃoQ]W2WI.Jt+Y d e9rFOlgn}ڱaec%ߞS06 ~ga&"Hmm"Hv<&2Ig;cӖj_YÖDA$/~ZYM= "վ6QXIgWa';ORX4څֹzlDK;r,{p=IV%tjf#k78={k<~$!-TFŵ{贻I%};KW  I#qNr]?EZVn[u!"v؆RGmiZ'j*R?so=)Mx{?<2T1UpifVzgx/Z?}-oCI-{A<2 7N4h&;]Fܞ?Q >[1ت#4G&7C;FLo_q߃@jW23s╂N*MK.%Ӗ]GY7-7oWijv A&ç[ 8E϶[=et: v5=oXաVXMRR-J i~ [-x^t*:tؑ\soK'1N-U pR'=Zp*7Fxn,$M, (mzbDVX˺ 85R =F89b.2E"l8WUy8!͡J-_Z8Ϸl6ZXpSj8IZ*1n({EH <`cx8'Qʡ[9 H )7wZ;pi:#Mg{Yi7ʒ | uѴYl[xQ=ɀKad8,ڿ(nF~ڍx1V`0 8XhbhGV}RHe\K6/8t!q\++k"M\wg! I3a8W >)G[M4(>*_H4D^$|#kD:4$gj n|çG9#c:J.'5nowR!YD ?z,&{_&cn[q۟'^B$$RIBl bI1忊-./<-6i- #|fwuQXn!XiMs̪8Sϛ*kL4)akq=ƇF5ې%md\I=Q1 ;Վ2A)Tl+ʩ+|fR8K12ƼҦ}6LGy.;ܯ9MbWe%#cd6+Pφ-37 kP Lrƣ7 WR~>NxPK_}ITG gcPѾ4w:j+Ih/R4)"41>[~ URn:< EC/" {K+m-YpSaS{rUdxYee&\<q#qC`r'ߊ*dq4"NLN5ƯeozgŚvs8SB. ңugwd|˨hZeZ[F1u-Ŝ?6}ūMjh,dSrJw43r9ٜ$^܋4ԖRaH"hosM#yL[ZwH 8'ok]CZη0ZVwXI/Lk=GV\1$.ߢ*kr|QkFIa|=Vok3۹kT}鱽z"'w,kZX$"sxS; Civ.QeY|Ք!޹&#ՔKJG_3b܎ʫ!z(;]F5O^NHI|IBc(?5^$E|WԶ2Ljo[E"[L2F`9\떶=].7_9u kǽVkw+ou<ҿjj!TW]4] bR4nL>2AGsr[F+e,>yiڽڝni&p!ؿ1 w֦csm>r-$ۢF?Zk?Uj ~Y>\YT^]!BΓ|bKmw7bsfTgǒW%ZӦ[ Jm3Kmu* .bݺUo"kM<q X)Cǥ9-?/?37:_GG;XcQ+7/T)]| ö:΍|ښ!Y{`'s\3y:ţg3pGNXMpxhv|Վ~b$n$眎8s\3[:bhWg($`arNxq+>I_C ti4:3\Yinֳ< kl^}ZwMwG>t]4kƏy!p[}sWUlg}Onm?lP%Y=F"}WVh OLWШz`{}kI'~(H̚P8;H; v+\:gnxAiI]H\sJ Uk-J'/F#Wa\ܜSi=˵y 9^H`>;R^uu)hQ- x<mkq޿*[>SNr|Χ^"|E - ]ݬlst8d'b9$`\ۄuޥ~5˻6SEk$k4;nLpy]k4~Qb)0s9湥t읏"d=v}r$ q3 pE- V9id,*̧8 y<1I{f[sPbne=|?E[ʧˁBup;m^׸-lDSk [=$ k܌m;/lfX[“1R #h%D%Yv%l[Xx1(RM* 8c\Ap"Y^N.00>e*IY`s'K. #g89%e9 _~ iFFīdĬ9'8`81 ;:itVP0bE'b]sI>DХ+NwQ&t@ y #۽s7l忔[?ONƦz; Z}+U;|Haώ'wOjᢈ#2n\m8_rvC84+G=847 %=Yk&?0d {n0[!INsܖ5\+8M5?<$/(UAnZCӛϵl.G,9>‰jYE%У=̲iq`!Mc}5\Op,5a,܁#ҝTbޠCaLi@2$sP=w`}ZXQu#XQkF̵em;UyL Jlc2#8qGD؂t|WqhrHiQOjIũHbq"QNrNI$sڴtGVu[[{J+g%x+YcE.*o-|B"1/&I8'v/"xJflZ5 ^i!\aUX Z~-\jp}i [{næ RUe>m4N\ꚥιsk-,Y9;qURK_zt9ѕg"nvē`ÚtUUODiΝpy(j"trŤR{- 3~غI.8b Enkza{TRf!%I(I$ٮ7*㖣>kO6- , %S2Kk2Ӽ*#A~Em[[[zm%Y}cCil`Fc1y-je~v#'ܱG%\ϲi^5߁4yttm-w7x7hcRI1H6d(O<+.'o۝W&O"睶{f68ݵ:0yjc(So韫gpG B"Jѹk;z%6XׅH$= ܼ 2gAF5x>Ras*xH̪ n>zͧdvU0wUWf1%Q߱S' /1)OmڃjJ۬?"]v|izL5IKvƳ^ ^؟'xR宕ums@WRH|V"H=X3^?\>^Z:4G֫|匱sV<泼;]ׯ-͝nNIq0N#Mz>_"iԺFׄT{a~}t;y>#c>Ou#tAu OIncc5ӆ}zR0zp1ĽvGį:7Aa}+ɬEW3̊?ĺ_=;:9nj. J?#GBiyբ;;dĥ70l#l8] Qc+dө );PW:91K^a (vsՀb 8#>N19#=V|H,3O/ZД/N22y'81ԄC~lۏ%?88<$VOԥ{S&hfU$HeOn^(fHfsӏ}8lH1_8oGG Ů&Wb5ũ ?!Դ0xHgO[#;2m({=RөzFisG{ сo=^dt zm>+(77 _}Hҹ*7?^\"۩ӟR,Kj{v>hbU`O<ܱd岇~=96_29URoZ=n.Bgޮd8*A湀ׇU@2kV02"][/``ul8>ek =Cދ/FdrIG(BN `5|]&Udjţ0] eՕyuiKub$g%a #[;qk'h=@#>qmjBϖ .+MnbpTn Y0qە?Y5Q]k}+ܿun%"gfqN^ #\EZ'IHNܻvZj?P DfG-®6"@G c3\ΡqXKetwun?n#iP1*HÀ<֐mHvV.mf,gx#(F2)GZn4RٴN̦MTŁ+[Ԍ~H<ҺZCmkwVKYl.1='vzחjOu[sG"s`Ϗj|\VX :vZ6/qB;c}KzW8&r9SR<̘;UUMJ%XBǨ$f->"~'LO6-T%2kL4,RVOxH>7Zxks+2I^N(H闋q_]y^ѭ4DjFE 󎀟ĵzbSKS> m6[-#76xF=o$֞O/_RK (YȢIt3lw8O$qrjDb; Vɗ[MelG<ă{Vvmrz^_=ĩcQF>sLwf;Ǵ{Gvw0Rd(حCN]icQ+01?ܥ%6L/5*'P\4 4^osF&xaXe$8"LKit*iHqsy$& !b9 o"{ X̗L<1+@tZ]f}Nb+M;F5G$7m͎T >yoɨi GB[Xc'#qc}鲖.}VZaGa07D07chd״|YcozaՑHa2Qoa4#]T$XIRx'%__'𗁬Kկ-&M0*[5y{ۻ$6^.bGմ0kܮ_hj| Y`g1$»XII˖dGZfM'`{-ž~"*5 9; \;m) SGT\)?'oa_."[F^Kg9}ΛF_\6a<8RȁQ"uuBʞ%ѭUf-Yi:K%)itrM+&6&/qga!RO-O?~/,:Kz,xlj_߳ĭ[O#{PDd_0aU^2Nd<==/^ˣu H-"C+y$FqЊhV2u3fX^}Q+C=cf *e]S޻ :^Nu$VV mXpRt[$.]86yشS?47WUѡu$Ceʞ '9R-4  (@ cp+ _)sCsc pOkFڣNc5qr:t}=F(`zH>ס\j6U+Q]TǽXc9R{֥k] X 1֧!ԞTP}ˁqO#F uФdt:z5DI&FSS2 2=>K2{N2",tzJJj<*w݁}}bC,ۍB𔸉8{aSb|~jakkkn%[/,#'i + vQc㙜_o-Y3؄ 5 qĭ3!{Λck-M+g=͒ 0#Ӯ{|s hY BN8 y\4|1/dq]Ѩ q2yֲ kkIU^+f+RI=?b T_|)|65MK{s) Ypܧg*ٯ$xğW_#t]Yi62s eUL/AGWܤ I2! he %VGE< =Ee^[(b !tH5]:WWFf 2) Uǡ?k~57F4OI3kWmquj% AbVZ5e9s͖~5j EB3s־w & 7E$L'2gG $rq#\W^v8iW䗽~^mGIyIt]wH H y1+Rɿ䅕d)~@;@ xfՙwwŘ'A[eHzã+@RdbK{5!6F#fFV?6 u>bJ#IGS Z|WOi\ ׀:U=f5v c*cDs˼+m«?$Y>i,4.=:2ŖzM9I|۫ic9#!h9bS]3: "?xL𽼭m5֭{ye*N 8,N;^* ~)>n-tiYB]?2Ũ+g^KrGds>{j![J,vLp2BUskMJ[w^SqM&KWWDfVvPtb\}3Z_u-I.B6FtZj.޿|9)_jƫ3`۽y$]I<<`m67 uJxC3m` kBNƺ}8]9CDM'q 3'^l׃M5 -oQ_G2v2d9*z\3/Tgѻ%F6?f4g9;PҔv󔹾gƗjV}c@ f fѓH_lu |Au|Wa7Pyu7wv5L_Me(Q- ZtdojU,=ZjV'%?8uxQ+jaܭku/NhW5yKb&qp"x#g¼.i^e1Ÿ턪S`~GɰDp2  Xz Ђ?’Kg_GE7^DaԞ&I#ɧ(:Qyc2|T~!xkM%H`4SoLQJ@:,l Y'Ox(iI{E@|9_'}i9ϻ- u\CqQK) TWkc~B[?07+_tc&-<|M "6FU HP`T[QŖv ퟭO2F9\`uvi.B *3N# @ sFW~QhΣk/-Ӡd;-ZEԟ5mZ:s[9gt$"%iEs-~/U\jgTV-҃-29QA!GK~~]vv_H׽p0˚;3mK5ʽDIODx<郑ifu7J[CQceiW",on oO@3?s~tR}cxK 8|W*$Z8#9|Q󲸵7$Dw:tWgMLYhn8G2;sk<'LAgV+VY:!sUowݍTnds>2kRީKeE sd .3[ᓜ5ZLIr%l10rzpx]\ -+2Hْ# #r;W 7d$W1dGyxNŸON?J?7\iX1ys@(\{ם¹{߯MAt:E:jVsOSj6;B(rӏ9*T9N{h[h[i'#]{ff!d@gO#4neiKkyIG,`6D }3IYv#[33͸c j;,va9}=)_L Fley p= R RKGIJay!N6X?n5XElڼHb }7m0Qya؅5<ͦiXOSn. *Hpc7w6=?4qs ֶXKK-=vq(1SBՇ :Ϩ)OjgFM,c=BWni7/ئm{] 'Ï N0ΤGX ۺD~Tb}7A|seie`Ƥʋ)9z/*~.ůq[6uj&ʾv49y91}޵kLj|u oo'wR361cVe+yXIW ´rd 36:_y|svo<{7WoJ̴I"ww[y.etgAO|9:B{kZE_i}Z[)78K /c5f~m%xf\.< %=ߕ۞/I~_٧$L|K뫭5HEqk.[wI,P> |rǟ -M6۴uK۶#?$9\ς3cJ?ٗ_ž(e\WմmV;$9mZu ߜ4̑-s+ľ!׼g3>;9CVճ2jӧH>+6k/`pXa*.)z+,賊x7fU+Џ$|}•\BtS'ڕǀ--u]7Ŷ~7 N9Bᆚگ5rLQa8 ZuWr#asb3/O81?A5vVv|YeW/׭RNh+hhW߰ǁu^/_Ql#ó?[۰ُIiQo۴{RJ0=d5ՉQ¹k.Uþ4Umʬ󎻥`u;=u-ښ[:,=pkC }_ͦSdO蓴]JR@a?t>5&[mo62cJp /*A麔.!M)G8$g3+WE`g`WE%sn™PG9yh3 *hGAp=kZw`9ųE $3m^H@ߚ2d`ڜ!*q;GQWw`/H|t *Zֻ7T '=MTW*+؜!#T!Xc[)+spgDW]݁.\ӯ`OGZTq#ǚr:ּSgq ĥ_dĒ[^א c8<,wm)s2Nꑗ=!&j:ٺ6 dp;ceiH#&s@?S^N] X3<ָ!n)h[zQ{}eZEKwFO_:Zo~K^2op:{.[k F` zc-gS;}[Lf,RepʪD+ʨ5Q5Ə_5[m>݅ό5(|aDFCޘ*MkĞ+h+ianDw` 9x\knk+FRk9Fa#/i=siXf)tS͏~W7orRZ-JK+hW`d^!$ѶA\`gW!-<M5ɻMK2u$c gj0s8Sӡ]Z_^[}͠"ܖLsS:nW{nBS=ceXCZ65e_NٲA> +P0~BXaw׷}P{} WUح-ۥLs[HF瞎yDp cszLl5}?}J,@l98~$xi֚py3mv%ky$9R} Lenؘ D s[^)/]&BS=Is׹0ml|Uxim5[DrZd"*Ɵ7W.>"EmuxrUYR+r-uC)*Wti^SϪ9_>c;,n/kXJ3ǯƓq. y6#wfpysdJdծi-mIəlOM1%,Aw:11El6tuBH?0:''=٪EhIs5̓-@Q~(ȶ- 6AF]^,q]}:KynuYP`FKObAlۖ& 4Oc]1yPdoCZgGg#^\!]BeTVSEʔ(f6vdA@%^j̹I er=pHjtۊ|U]i~>WpOek|,&g\gA n[hXªw"r <գjW42,r,S9 d_ZUnݴ^Ꮓdֵ/Ff%m.׋7NOA /Pj_>%=啍.l!8.|D7 nd'a8l۽gfPpROh۽|ݬuy3l 7hը. {{tIVum6GUIsdqWʟxW/xL/ vyŮC+}.YFG/;<ZO?ү چ.:OzGWVgW~xH/ W)&y4Gw,xV=R`+)o8Gg.uI,]mÝ$d`VEb"3uc9|Qh!/= W׷_U{ GJ:.:M s#\{[("wI%oo--ztXClt˝nV͖Tn2 0r#d՞kRK*1e)~ )Wl%$[r<į?-S.㣧7 <+Jwn.VicCK23(21o Rx \gO{dgO=1aNQNQT_u%/f'xƿe(ֵ/7"ho,.h56] WD9 򝲐hN*|U|f2TvO<+!8{ͭ= ľ;m5O ˦ډ<͔baR67pjg|5ixUn<g=6k*.c$E ߅5.(:[ԗF5_ASx^VMs,rĪy|7#GSe?m?*5xZw|Y$]ĭ  R&-|ș7ݺ2嵰JT ~}RA< 66rG\Mjq[OҤH2Odu(HH }jez1i-bG#}( |c^ۖG椫mqyY[2x?Z}!]_z99'<۠#jD彆O#Lji*eԴˉMZ[&M\,,Xs[SaSV{7k<5%m Z ǝ#㞄.I*xt]5#G98[=xS+--/9B%B@|Tdpr+c]?d'U6K-Y!S,<ѓc'4m_>'4HQu/Z4>\s>Ԉ:@(9AMFSO8Rz_ xckE5Kx ,N'\ @$t^/4ۻ{i@*d6z y8^JCO%q)d2FN#cJȚuo1cF\93[r" 9 +^|;6e [I{y rC:儑Nb\s֝)4ҶU4l<\S'HM|B9u HUc 6g#_4ڢXK4ڴ:'^17:toɻ˕dWh>Ste]lx#uuzvb*{n~J@д ]|\I$_ڍZaWPOl? 0\+ɥzF5d:LדNPj~ (ej=_ ^ӵ{o ..G >r`]?)d+[ʦFA%d $wus^q\gRQR6ZD'm^$Id'$aǯSˆu߉$Fj;gÜ܏J|-kҳ.-bp{+w+{1}w N ڴ^3*ՙUv^zGԷ0;AnS\03t;^[yS :}q$Ѻ zqT^Ƥ=NϷ__M|Qsg5}z[n&u̻|a=s/x?Jş>%='yumbEL<6c2H0pW;jo}O+`Q,L^_nW[n|sWR*6oO2150h¾K|u<]cZw$38<êPO-1?o7si^=SOsHWhPO19 ؞_6p-͝G%l(9q׊ʤoحCVY'ԤD}̪m @'=QMZ^Kke`,v8G҂x%#r;TM /Im<څԂ8ْYp1 }WTÑO )m"% Uf!-趷8#Nv 98Q_CJ?~+0OEqk]@sk5̈6˒⵲4WyD{ ۋǗ" P{X' 0*ѵ.Mf&{1W=I7Op.Bzy):V%NArGJ5eucU)nip5b$omŸQM>[1?'}~xtّjOx rZΊ,>$aHiL&r?sǚokBm]-+LҴج%Cu6q?蓥̒ s#Y+ŕFB6s}SɤG3 =((#~Mr?!{=þՆ}{g⋨؁;`7(V&.jNtUWl`@,w  5(J^ڵ}inB,s}EAzŏwim;N↠$Z۽X̫ $")bBkBc~ڝΩi Q2@e\Ԥ:0V_0 3~}gq*xZ|Џ>['٥w7Gokm=͘Լ_$.r80QXnSsOyO? ?f Wд> [A,q33,1=>[)g|]UX*X^-ҿkOfl N8ovE$OZz.tOQN{g}\,m"dgP_&T^Qj֜ן~:uz⛨xnH1eG Ǔ? OƟgyt R͹72k8R9φq3JWM]q&I1qPj,ʀz+rk~{NJzWn \zzv܍?޽^cϋnߙ/kj B*9l4R;NWd`u tޢ1lS9#3ܸl1 @57*39=j$ƚKaܓ=E<@OAƬz7pzWIFWu@U%.fmVcnIwKVFgׯֺE P+p0͞޽sY- fq#FZܡBFqӎK7M;n$8ޠ8*/뱙-kEx氲}v؀(U+YJloRxvx34"Kkòb>9*M*u^Jv&58]IH+|GsMn :+H{ZCnФh.0@y5E)m)+~?_4:ֵat ͺ]DJv>^^ivm;X47Ikhs KxUBDp@0 gīhω,w5?x%~#$3ӢGE!\__Ii7z1%]2EyB$0r7c|wNW-VZp/Mhѻ:e=2~dƾY+-%mpEs5}NBgh[& r>^{̷Si:Xu&R߰n/qq۰׭-es'{z_ Ὲ7vZ F+}wN" [Ƚr㨭iIђ~F.yƑXFݖ[<āUpǢPj?iǪIwPxSO<οt !Ss iѿ3g'MWľ0I]sEXi@-ы*"P%@!SB}?xrDW~/Ўg>Չs0@oİ\^s Z)$ڂh }FdvfSpZh]YY:T_=í6S]o{P6% F>V T)9s:Ӿ @$nX*`HV@Rk+cF2 wڧ.*1W!^>6i -Tn4hoX,f%B-zg~=%qۿt-, +Hb = iĺ֣AYlFp]|>>^ cEo13mE̸ȗ?#Xؐ㡸d7&r/33 _}pixoF=B=cI\R5*n/ۀ#Y0`}W_+\|)S>KB o20,MV5oZ8|OD}u~ο_m?[}^_^4Ite$-(Be3g5@d?x5c~.;#RS@]vJJ3@F>d<7U8^x|q).JqT#|/CW_>*N}Ͻ,ck;kmĤ2uF !`#r*UPФ8<9mZ'٩FP"mꁏ[J1I; [#+M|*:FG#Ti&s1G}Xa[X4m]]2I.^Aͭ;Ë⇋J!Ko^c-I<#6DG,-مabھRcqk]N;]J+5HYa% Jd60p3I .fKiIJNZP:1*)wܱ.>!Ҵ UHRوyU>|g8v[6O>H#o;"R)mMKZPشӕLyK]w>ˆ8v9*[>?0y4M7"(extdWq&N,-# \H0/>G9g:nϗS̮mdx{xt()oodoM=:m t-- ~ɣV g2fO|&u9 #<g_}@e->0>K82cgj/nVmռ?:|OCM񝾗c綥-Y1O9m17W^0;GaYeRJ5k^EQoMz\^M)䵸{}##&1JIԯt+ڶ }"i^J{ylȃ("h9(#]]Cocwo֌<*9)Fkl3Tu_k6B>˰GXnII}/WkoVg~u/ϫKki3->eYVL9e0|B>%|<,WUn24Qdx*Y`r<"$4'1 zwXy ^=*Jh~\hw j@]ټaT7}~ѿ>$jz}k/rktfRi IJ2N)_M/H->5O5/4g $Ax`N_ׄuO ?c^x4t}J9,o%i(ʙ2.Td*5'Mo~rJ~ºv;z?u+[)-]K5VH#vર#Cƾ"_|g_Д߅.54`D1HY&sVүx˕O ֒^h$7Kf<=eirgRt{^_7HT!ݗ!|^<1~./b{]j{/S8J{ YƱ(l K[ᓼR>B ,K_eP? MH=)⿈WR;[lj,@q&+O5~ 3lꭢ.vm'##ںV6Us?lGnr ;e.Ehq"lOoT7ͫyuL Obcy$J瞄m395!@Os"*+CUm'ᶦ {yolUI s8h6I#][6\Ky(+ d}t6f?[-_d4==w?{^>2owVpkw^H qg4}(Ui"lFTyVnMߗ:K:ֱ7?c1I6Xc+VW,r3ֲnW(_dfgie?ya@FB;He_ x'|&L.dbnKkBʥ>fk?f#O$'Aj^Fa7o/fb\X_l~> þNXZx,%(Uى9 ^*(#ĥV]>hlmll%YC墅Sׯ+GFqzׅe*{2\lw9 hgEYҮ/mp ym=ECӾ?}C%kvw{cbZjPOjw: kX>sF|97ʽӺijW_kl#A^ 9=38Eco¡SwCci*j/6,WQD#Վ#fMVNd=gK.4EPXH,c|:e|$,F]?yr?wg:J#Nx軜OYgwPZ}[xFV`- 208'k#>:b-of +2cvg}gةm1e'zwZ߇χԵ?B;Z47aDG>[ .|I]75<;]TRNd)ǵ;J(疵ZNYyOv_~/_jV_綠5]nT󶢤`$ff$]޹c>$:xVY?p|D"Z}#g%u ?;IC0\*XN\'fy Ւ >H|Y '^`kfUT^ol-:}ܵΝs8m1YV6;8#r:q_ǏoS|r_|K?4_r^;MslPkO@Eh\We.}ͰYF#ex\&&uV-[?_J׭mZݠ莽;z+ĞG&kX`1o$z}Drq\ҏ2zys**ܬ-"9]l{ s< t[#0NZ8hDѷ|g ~ud}M8qo$J!cdq%8~S/u_(Eӯ nGz?9#-F-k_VgQuXv^Xi Ğ~R !O0H}Nf>ҡ }/oW,PRsHW#+$Atl<Xe-R/ػ<-Yd~ʱnC$A~z-_xSLk=kNhݔ#G 1! R `^6d<{~JkA=Zÿ/l_Ǹ ]FJjvLI%&Fe& WvVe7,i}nFFE}9I=ѭ6oiGyp<:]B59tq{ֵ|<ӵ]oC˸H%}*I!`pEs{ڧqW^ 'c_>|Nu൶]6c,y[O'A#EUA $V/Þ&qih/KzẅX & /e &&9O%S.g9KRr~37}Gzth*sW^GjN#[ Ś֡ nXtEdh2$=vB&>_Ý:šٹ'}1_oIG 2l1|]Eto[*>&帾Ji)$Uuؾռ9hi>-׌3蓦[f*Ia #H4u=>K[a-,63 L0l y;qr 2|%<,W4\ڲZ~k{ F30ݩ5$=vxo'4_oiexs\Y%[G+\x? H ^>/! w3fY-3; @"h[=k}7+֍VC|Ve WOW_~)_Mǫ=#UI "@6큆/ux*1-?+aP.傲vZ'Ýi5O j2 F9,$&P9E8 S nICZWwxv_] Ȓf/;wh3x% ўy:\b(Pi>=@eŭȯ0\ 2FGq^K~||9xbC>eqgt$]^20Q1Ж7*0H1exEJtZUn^嶧X,_ 5<]Bc_MmfX{=RW-uXI@,O#`1 g Wσoŏff_[.S[1&0O+$傣|UKӧa ~Ѵm>O---L-hV0;:t Nbs}*>6;t"9*q }kpoddU[F8ax\6+q#$`Nx4Md|g:Snk8zZ )k|F6o OOҵEҧ-5+ JfKϯj6KNGag<6:}LQ$TM*úoa?_+m:6G;_ Fإudڹ{u續%>DiۜrN~*گ2vzoaK/~^f@Z;Q zH .L]gBKsFG B)$yI,^V1)69E NkҝI3ɂe_f;WymXPVe)%QѰx?JϓQHyDw1t^+t=9>e~Nv]VIntYaOP2Ʃh~_cafI~D͓溩aeRI-VϦ<] o]2ͧ>0OE YVh0 ziozoLmg2(lE3ry6Nx? WG݋kxւ֨\wq}$1[%\nf}"rcּ1j6)\ȣKiw|rג85WJtI1AZ,ck-sos#H>ѥ @2,q'Ǻ(Ubo5Cl#aIrSTc#e-d8k˸%@5>&/ًKJڪ`K}9+45uiAu-giqD,7 I*UM{.U%S}bۏG*G5_Oִyծ#r$1Bn! $l(#~. LJ)kSysٸq*z{Su (}\3'=$? VAŮҷ>h)4 /V>(֑xch$u1-'X`b. gX,CItCTVu٥)Qw(<u+s_='I~ n#h ,B+,UT OǼTK*7df0pԫgT$ۭί>[ǚ_so)-hW+{*8*h#c_2nOo*JwmMCÚ&6^y(P*E~Xz3nM~G*Tn]Y#>(xCA>,^>;99ȑKil, 㯇:_MԼ1={zwvaȬ6t228˱ 4^]ШTVڿ&ir3Eu<Ū$io"Bo|'q]A|T~KNɢ7ï5-kam'i63ݗ;Uctp׃lKㅽiu;X7{3+㯅?h;]kG5G_඗iW([f) ǖNEDQW[)~|0uboU5c 6=^OeUGc-8]iړ>;dA]-nE {@zFC0oLֲ"_2s{ : [eڪ 8C0i$G.ʐ{ -t=xpYU'R8'8R[̙"9<1֥X 01 ظڼR?Zd˝㿽$٫L r99~e~7w3ILO!.qʸasANiG2L<CwNcVlbP1tVZ[S{7MR=KZxm,-BNhs`ܷEkƿdH%v}+)]7R*ݭNM xZ;Xͣ]BUarSgXm Qp`yW?줿u8>‰Goۧ ȡHrm-`^[^nMCco$N@+k~$̒/՚VM#ʶA)quTayR~DV}Ln0#խH$sxQEޗxKLPGh0vZ;[h~5)53ԴvxKO+=ȅ< 0z3{GxQ5?o.cHrtWg'SD XNጉRYRw%c5.^Q``4|A^xƫA vҲ'# 'IۙA5j iπ|;[ַQ^_VWIWl . }v(RWkY7{_KpѫT쌝[T'i:ddPwHۂAhe8teMEE{_ 饎 TJ7}kVōOj.n:m׆!mmfSUa:1(lѓ񦹪[nImur(#Kݳ\_X6As>N+)x+k [^*!F׌}wk_#oG_=ׄOm]O3jfi䐬qS(Y~LG5$͢k 5^x{!>kA,W$s\ċsGǾH$sRMiE(mJwcZ%)o%5m6kGoX񕦃bXݪ)*CÎxx~~5o Ah tcb\\y{o)(䪃2Rc]ʟ2+0|;O81,"NQk_.g)̰ XҒ6_4 |S'R 0es3'gب[Vށhռ={C4!$3dk|c{ΞJKX|j-LCW[f7 *IO̬Z<8 "2$]|IЏ[;QRWE%Z+wk846iNhsuV>K)#e؊vJ/+ohkH֕EǪXD-ӣ'bH$ >74/"uKv13 H  'Jenrו۲یspFЧ Q?+|%OU|3jh0"{YUsձqvXQc\S9>S ^jϨ+B5me$Koˡl))<מ㊋P|EL V!9 0%I:SyecOɟ ;RR,SPEe$őJ 0I=~!O|WhFZ6fuBv@5Ɍj`q糥Qɞ]Qp^zJ:5G5u)5m?V\BoV5yrOyڮ" ʲe# &|1@cP7t{I5\˪%A qF%uE(D$L/V;rEy[ y\KcxbkTͥw-Ts]MЕujm䴙SqUHe$m, x_,toIЏ_K/MVWI}r};ssJw*1t9,0VFu~Z̲/y~w 2 (wkU7oGF5`u.dy"Lx*% kGmʸs/#Jxs]~V|G#+]kpo|%FXEqN1"[ܧhƠom~GOx7>2Ѽs-nuêͦ0{#dHWj9g^vlN]VY'Vݻ~VGFI ۓR}x?c_l~߶/?fi5Kpct:42|4r.UaA> Z0w0Y齬f7ww| {xAZI޹%\%A\G0 I'ۣI,OZ^i-6zf4>Ep. !]Hlc$;%^Y_[+EmK'45Qm~m[~vQ^K6K仈J̽dF85~1-7|8ğ|/? iKς4]b;;k-Ĉ\5юY n NK Z}tk0> VX JB* d|CzᏀj^0`;M%"Jd$eg M|)`[Z7% J{mM %U㈤Կ[_{kF܀y۰-jJWV`eT? u/:vm/[Jo0쎘1ʽcxo? 3V**3-ѹ;7<18hWKY3x.hWx:Ĭ5$zdȨwFd`3@cG-,9M>2:fx#HP7K+6c\ ~bCAO Jn3O8ӮfZkehO٪Y6W-_43xfLݷHX|XWAoڇo32~.Bs?jbյZͫ6(r&_قm϶>S.F/\ݟiYR>h#GqZ?ho/ q-8?HanW[o/y ]q?] ?fIסQ'GB$a{ l%O.34n=ώ~"7!<ދB:cX'4~߇uxn_٢$1~BZ=w >7[/'m6ď*G~$z]kF++oZ-l6 4'&=1 Dynӄџv_}-?D~YPkwm}sA5Z}䳞eXiW0p/XpF2N=+*T}DۯcR{kkKt66j8U?񦒓~i*ҳ{X^ ֶ%^)#ĉ,xHqqXU'CxnbF&(JosƵ=_C7oRF;$n03\OFİwTZ/#Vy"Kȉ6sk콤~&59~s.j^I" YFޙXq_I |3]-QAj8998?ZxJ,zxI*0۲zg hW_llYW<:cjwk ֙uU4DfA` , H;Y)sTk>#<*bi>g g#v iܘ's-)!sjxfK{8|+[gIWSdqQ *JT-lҞF;J=<_t3&i繁.rkzIeg9Jg,pV0\}Z]Mѵmu'IFl> #O\uԧ$+/e㧵_-ׇk Oυ`ph,-Sq 3M,n/*tl;]ܲ[]O<R)ʶIvTɸpc0n)V-NRtݽ2aAWu~ڕ! ^VOk, ]R8-c/Iַ۫Ѽ; [+fWpp$"rB8qxڙhkk_>߁ՇƇOԿKߊz:|7_ipW$cu h̃_03v:2~%|& S]it2b )Q1DU}Ն5iFw'}]Eg$Sz~g~՚O> /|u>u-5O:\I UbLQH4! H$W|A㧀Σo_¶ww^|h iZ,~$JAM߃#wrޯ>j@!dFBWeIZ3#R>Hӊ/hۄ{,sz4DfDw:d \;Xy<=ExWÚu;1,$qU+eԕ+ڪz)[ˮ*|mF w,p t.ʀ}(:[#դCt9@C^k{ϱ%˦jyn*H> }]֜6FpH$ ~n2xY^-Οj)Y#JJF~ǃiҹkڵSE`ѱ9*n`+vFT,0>]lo'ľo"K&vJ\E j˷w*Nӕv]x+qwXkzjS@ڣ\j6ķ`卨_ 8c:YI齯y"KbhhϞ9)Ggÿ[׎5ߋg GO /;Ui6!;Kubw3N"6YϞ{?x'@𷎴f|W}fsm8Sw$ pxT~i5q2&4)upYL$~kiE|Ϗ:'_DL1o0 bCcAM~,~E[S+;3 ;RW<T*)N=UZ|goeWVHox_bwq=l+)}b ۣ+#3Wn[xI lo6w+#cdcVV%ٖ+w[{]ooA&-%?ϚZfWš$~̟x7[bW1|YĈ^)J!o^~'oďA [(\(AU$W Lؐ~-e 7R=gIu}c1xNïxx{NUHmOfv x /B'R-J}Ueitgn&xu߈o,d[]S=O j:ƝOx͕XxsWXxhYeeԱ 4RNtY85沺~b,=ESދkϭZ&,<-ۿ&ptKPCk@gcoU,Wq?go 7,惢܋dJyN]xE,N (Q*Jkzzj~m$J;߶|cWYN(Kṟ7FI)eql>Tӿ lG/❽Ŝ{g19 zܭZJZzocOh>OZo=tStRg8g>TM?2r%#?i;Ȍs*Vs4bWМ2,l|N0h;^do'0y$X`?'$`*Яb^ سZŴH'bTO#׎G2Ɓy+t9'ZMs6$?]4@LQ!$bGP8C2Rҧ*탐*s2(&[د'_Ùx⿋|fҡFxlxhBK|e?gX#hPyl{uihӘ#ůS\Kwʁ3LM4E~(Y#)΃n? 0}23V%RzXM>/,?w˕^[v^2r DMM(|a"Yb2&9#er'ˡk &֐ʱcZ ~ `႙r6:mI?vs_" B2\>ORHCĻ#E/Bb]OZin3sFGW?M%&" |A T\u jnkx3 1,9;J$:&]6+&XؘӋ從gxB?Ou[{_'+ Q"^HddhŬo,CSgA40 cq0T$\W | e b*i_f +=2ݍޥs[ym"gG3H٫hV:Jo3LɧU_(6&uc S%e_¹z]z6tMpxzQ-AmlSvõMy ɦ4{{{+ ikk_6<͸i89\ϊMkmI_kwmӯ֒O$21 AbE|SmC+xN𭞹fxoǂHn񗖮ck-pK,{*\/^MVC"HDdl/ >x_t? ~߳_Ŀ|K[wI9MZS;Fd ҥJ6EK BmuvVkJJNs:{_4 ~ϟ co=|Ot)?!^=i8'HԈM"3.yY_>#uhZ^ hmN / ,*UQg8*ٺS^ƚZE=_ޭtUJ;8mv&5xo<exVzW}M+붸<&A#4f2Yeq <5^^&?|ɦ>!]jQ̸Mk-cXlhTG^}HTrTs:ז}Rg\'*qܽX K $ U0[r}N AѾY1Un".Ϙ+0;6waI`Y_Un[cyMUeVMm*_ɤy-B@vj0v]WB5o ?JyZK XT< Bn>D2e1F7'k}އe 6s̉o7Yȉ̄N+^?'掾4䕺lqYI*xԣז|9JvH=;E*ǎpHc׻V(BBr8?^9\O+' P@xp~^qqkk9cX?@$tbHw~zTw"V?՟Ğ'ckhm>Zb[Oӆ=k'|?%E-Z_Ow6`4LG +)|?êxO](߶ٮm,L{ߵ/?K |r~B-þ?EާpM-Džu]K,Xog90y |R?i?h#UYGïk \#[<<1ns*T]J7j̲2?S4{z5/_3i /5KPI?~ 5FoTF*yPw'@do'{K$ڎںFNC,G#pv`xHa+gKHMO#xYl2pUOe>u|E/ [_{dxx e[/Mz6ݫ7%iS⹾*hڶ)vwOaDa6X{,h0/)l.[S %ܼؒz}kSew=<7K.k2Yq&Ja@ATl6n=k/ů٣_j6piqbOrR*ec=Q"֝OĿWK7Zo?>K GoR5l' nrG.7 Η7_|*񞇢/Pt*؇E}&Ur^Wh!ƪhݔ틫Vu%'-d&M/mg);?OcWiuέI4wN{RB$~&|$xsſ4?+%7Jբ1yv鈑I|).'Ů1Ui+x˳+n౒{:ߤ}l4>{m15|?J^h@eI58Q,h|Ď/iBjMѡd)钀b'2:s8zkz9qs̰ʣ$pߴ5?5_jqj)u~ұ+_+?-~+|Q&cgÿoE$cR2#,Rf4ǖ:vK+f&V3WKۭ#sixhT:*?tZFSjl"l KzXp3ܜrk3ҟ#*ǛMBc&wOmF99 U/($; gp8LyFݩI6O Ɓe`xAgПoirIYD?e ȷo-UIA?{汬m!kDq -! A{= QkTAr8vXw݌g?0*z> ݬ@*ʬX A99l5{.V)\6ȹ$@=N삽9LO'i-fʼWs S+=IVݹZ :l`aPq,18\eSd4y#X2W(|% I˘"),#3(ceU88NqdcI.m4"H`gM8Ym 8uc c1NZцc?/\$}HСrȱj}o%UZx >SnѐzU[Y|(nkL+enwgT̠_iyPJ :C"V2adɕ"QO=3'XM]W?5lM}t'P摼- 7u/$ow*2~ZZHw[(vzEct᡾lu\RCz*p***q k+&Q|Cߌ+K5 Yώ,C3PwcC)W$|Bgy}[km?mk{,?ڗFv+Tu崽g+?\SBu Xk!tkWuv̿ Ao^km v 0_5+8eA7tn2wFQQputҹtpz_~>5jRMɴi XÏdģFW+^o+N mCNJ)KiWIWVӴ#I{NR'{RcIvFU%\#i$]ɜZ5QJZi~5啖cx{/nKnmw1nU~$xg 崹n{VEI" ] .q5>OKWqQZ^q*iu~ xH )>_N4_xqXZZifKxP21| ~(/|/,xE>1Nc$Rh%%gdZRRuㅄYnWuԌb([m0|#|{x ލu㷇tw|S,="HQ$ OK^+=ឃMs:u֬tCiVWbV&Uxu(!Wf*N*xzVVގ]ONQiWIwO1ЭszׂWEl?/pmCq8yTX\ׅ_'#:-Ƨ|RF 7OFdLcrd,xO.W*G)3JT'vN[:{=;;y6!߳+O?ω$x~O _CnI p (#) yv1'fݗ0k><}@/:Nomi]S^-9KxaV{]9Y_.Hgrc_NTpTiS:Wwk5On,oxGwuWCuq-щs!*$y`ycbP]I>x7sIuR_I;īH@WqRl]:g2ƩK]$͟?<}RQO]VuX壸Jdm\O0guxKEHT9Nd8 $Rg; :{w|xBqriNWΥkG-{7$XpT*u< P\\ -˞7R@dWpx|=֌\}Gĸ^ ا IEz¾=^־x{V#]YY%685z{6{H|# TcS4] n `+M,} ?&-(u_Ek}Kj.!y4eG٪^wO~3ok/vdų#4ٗi,|Sk9mAR\[{b0cmpsc9Kl~ O~{xsz?~$zsxAEAKhG8'q''xRҡ҆[-gI|moEςdV~q;-:z(wAö3הQ]d<ƢBROZw jPrJYX½Ĥg0,Ǟھx7|q\x?!wLw+GTLQk&SM׫53 <]5Jɦƍ8M&_S>!zޟW͌ZE5I3Cr=|MUnj|'{Sė_i ͠+.DGnpQܘq|5LbhUܰvݙ]ȱ8|] ȡ%sLӠC_3uin?]jV7}#eLÜ <mא']|CܾcGw<$r++Sk$'MJ>o>6g85>hE{>q /tubTI dͭ"Ys+UHnFq70P*}L7 ߏSFo[Kn5is gM'mŚk֫yvkbC2Q!5FΟFJI|UkxUY|̱Ae>V-!8V\?Rls{_we߳?9lmZsޣmԍV໽D> x_AL^&ӯ<[ku,. # Z(/<=Gc__egkMgw:5=g7L!{-TA)\lQܳ>ˈ M(;.`1gSnI~*h|sZ<=KjVhK8#8$ Ι8#$W05]֑j\$MbIߔUʥegJ0|V}OGKxź ƣ ZP×'0Fn!3Vy10ߡ|Fռ5xH| `OﭴO[Vю!1'3di O~&d8j1Kއ/]W#'kKKXk'eյ+m|1%])^Gtc'$]u~0oKoM;ŖeH&# b%- _xTb}[3?Tvw=RXo5}ڃw? xTO?&Po,i &FpYO1gd_sJK,s7F$>"i>|oh6)"@k+(eku[پ13Ĵ0{sl>3er'}@y=Dm%#)$"O|n2]?>X- (^hL6PJ)Է^qy8wdء  bPYe4ϑ6} ^+.e#nXbѲ s*ւlV/3>28$'O|Cp-os:A#,eJr9ڼ`I ykpJ %Ibm>{U o`Yŕ#=xNmܺ=@*̌2K.8 ю:Բ;^?ߛk͒B$ {z2367&VC\NJ"PoۏS_2{^SE*p񞕟q!ٛdȠAI;}[Y Vنdp=x=ku?X o >}Vl}6M5n9.g.MivoȑthsF ||)H >HMFIDYv2\+ g|뿙s]:j;o>"|'-{H|j݉9x]JA 2H~ 7X?Ժ'< cvwꥮcO f [$6kW\/ES{-dѭeϚiTgge|w^*t>+y|egV=[XGw*/uyKxmM.һ[qWj G'?_a64Φeed!X`AJKU:VvF?Yemd|5[x<9K ']>o>$rj7Fַ>~yw-\2i:f|3ί\x?V' ij:ƕ^j_K$6xbqp {|Gb(κSm'/cq4iU_/9_|0W|O'ɭ|[oḵ. 洙e%;`WJ9Uk_~((K@/|fmua?7XVf,24I)BQѤ]akƜWM^Grh4xJK x[h-=NQd]I; t;o3|D<1eK}e/jڵ:]/#A:$E <t9)%&}]h+# 1 ^~|?мk/~)xYnö֑$ne/%5ADJJqhocßh1R+W,z?/oRIUmpmg"$%W` _]Sîj$կ<ՈxT;F)o̺|+|(6~EԾ#T}ea,*.mK_(q*ƁZ=e>+DY|k> A?OW:4/w>!%YcKk` )4setVy\)ҵn?[煛@]OZI Y,8ys~#œC%9[4#rϫa8ROg~$ ?6MxvYė^-DLpa|sS5 gPBy I{srd7 1rxNpkW^P_f~GkYtf^e6vXIye& _\=J{0{gK5 e +/G7w:wZ hQV֖%[XTPI*IRXasCԵ ƣ᫋h㾕'{M_d?8l}*dYJQ3AN;$|=u|? >wc9pr]WtKԵ[ |.e x,7 u]^\%ZU Q=w7>kΥ] _z[9IGR)ʑFa=xᅮtc3zS&[Q ?ž&Ǩ#Li7𗳪GW3މ%i E/5{f0HpN>9Z=i>^#Ua/%ԲǨY\L3M*lP$I(H_>|Gx[ZwB^`#7n*3g2[F4pR.:W][?m:.>3Mg?ԯO ?O[RP]$ͦFTwfŎ`nPHFӚ>KKž_MgZEuiNP,mY̑I[89} G-*榼_+IgH~gƯIuǍ/9?97GP.7V"JC(1)$W~Z+w [kQ{LG_ɖc18'$*q_Ҝ7YFIϝJ#7{[ Ie@D"<62s:9B67 r e+ՇKȱIwe57JH,$h!Fs2O^ki l]gi@3r=ڜta{sKYF.R`33rxLvܱHѦ|^@*nqib62{ %9[DVj @h{rS'qO\s"vE4RۙX) 0ܗǡKRu"P"fD+уG>5̋&f7rn؈ 6 }==Gdk|'`zGv>̷|{!+[P`u=MiĊ!hdX)/fZF N$e1d;Yc_hWmAM=L~} (5e>Ŀ ihjZ6 UU$In.Q1XE*d#d-\xW| cb_MyÑ6H`@A\*˔8lLkRk|1>o:GA¥7/'5M*VzuȗoR>YD bPZf/'FEY8ՋFY˭'ھp@_8=pqFoG%G|[Qi7zC6vslxMo U<#7DV ,nCsVó@}Gxxk_մ_8<7Meu.`E䆵?,8 e*_xٝ(NOE޾eZX:1kVaj4wÝ_K-$/W lR 'ʰ7<}k{ ީyWF[䚗u=BIEy$:t[A2b@TqdV\6)+Ekhz:q ѧh-ShWus8㵽*krsplDX5D:oUw j^7Au]Bxm%grbpO:e)_~o芍Z6['fh |,٧iP^8oJ]IINէGxo<;y5xj?xO˩˪*I%D&%2F_r<_+JI=o)!e `[i~\ŰZZG iZ؂VMf)%oU}O־ּ;^%cbAho-UF1"6enŅIQ9IF:IɥߡHS~yAjd:>/ Y/^~+][:*{$]G.hO ޟ8@DlRprBJ1VPzl|ըԓj4N}{?S7>>m)o|4tRO2Bf]ghÏ9Ƶj~Nr񋁨-2ed d+)p^7  M5#*u/Vw%/_;FT%8Z*H<[E|/?[֦-h^of X%C-"~tߎzx}5kM/ڄB [UrGK| @(T'NI7Q)+_vע>!aӝITZpJ4Kw>4.E4[9mmG}&uA&1Os[HP<ȯ̩e skncꙔ3_n*W }ťxX҄zj[XxZ9JKtL}⋹!WeUⶫ[H&oepZ5Ѡ X#L$Xڼd |;*nR}WCTb_r_Uω|1I\jVۂt*(Y-MwuŖ 6P<! d'Vy~}(Yr?t@+w1rq>4ˉ) cY?Ն9G:HE}~Gp{/i>"7mgWY-H\=\cͼ#{uN7Wn"c8Wc˽އ-y.k- FѼUmCG Ԇթ=0s^w5?BկofѼ5V:pHs_k OYTߊ3Em"Oee}<-JB(%N ^֙Vrzg*TRɹ6jݲ|Dki;]ռ{[ICӧi[~ٷZFWpHE HKFᕸ׍Z6dh3́bgv4HًE#>mG¨S)*uK0^Z1|EڕNi21)H" q*Fĺ)XIr Kq8Bob Z8 vߩ}jYKh޽+'!{Q6a=ܼOH康m Gjuإ[MCzҏ6)b*2K*VK~pk)Ufe c:},x~# ˭Úܘ:Lydyekm.̤u F+E%$]6mg4n!?q+`2mJ=ʭi|+ [xnW<u}{ìb.6F|Eo;Fpn84]'Ro[[yZV̷WvRnT q)&n!e!ů[`urjI#KӾ!~P?5ֵ] M{o+ TalwliO)(t 1oEʐA<ׯ3SHl.< eYZH P7~Iq*Laݝ(H!fc'_2Xͬ!f+W2̱G,2Oː9Z%EI GmmF89"͎_PEx}:1gF=l=;soq6\ &g/'r9 ڷMQԒ_3w!}@=1zS.>ѽE>S$f6ܬyxpukQ}bb¥W*8 ̧9HL!36e@‘sJބ^k'f'T% 啲@^HIJ 51A xp{T2z㤻'{T4T$ ssa3D u ,ÎpH"3[4š ca sziu앋s4G,p-TƉ(_omc88yfH`23}6ʓLg]n]F?%)ZKmaoow=v̅|#qd mWFAaO1xKi5Y>l@&L o F=JVxCLo {Y͉jcӞztm˫y|nh2F2zRz~5wUof&L#V%BsrIR@3^|D׉H}e\$vRAߍrե˶M-WMQ,]ª*F 0ţmbf|h977 "~ұj{ƎZhZe^,\Dxlu/6WeX26v?گuGQ<==Xx}RdvPlĒeE;ʓOZos ]RFH&)it  }WXzPoǏG4NeU(~ X5VBaKxioN%Bh]叄->pۤC64,\(>5R5oT;8偟g8F{zMޣDvmϣxѧ*4f[h9a8c^73 i_t5{{ +t^V/`.#WØFn?lKTiDlxnjBּ5w3(QťP<Хbnp¼\^u~fNJ W|/|NӾ!I~-3X 0ho}Js<#1ު%fx~ ;+\ah>"]s!B"׵ӫG̺Ui*[zM>K-O~'7/j:ؼ!_m/@m4c L> )4ѧiмCt(-,,q{dUh3kVXaԧS.WMO&x],EVG=Oo?g {z|R;mCLwZbT ֗|*qxc`O~ o L2j1tt7 jO8Xf ̿v(H3 :Cie5 g@ J?0$’|?f}V/ZvL; D ϣ/Vm}6w?t1G.H ƽ"UPޯfY,=gt]̯%]bQ$[FzV#,Vۛspx8s7㺏Jt/Y*GQгy|uvLo]+Pp!|$pXؿn_OS?~!FU/A^JK٦D݁_pQÖ:Wÿ2֋Ti`\n!nW9(PˤO<7y*c1Tu qħV'4m/J[8uLw)#fw؅s#vphVW3gCerJ*dO;f9\:;_G0Lxfw_TeŦؤI0˾T:؈c)S$mwvڻTrjE\ٵ$t09y-ʺ;iT=xn<*jHd2m-O9I;FeQ^=Q$y)܎ g Fyy+&If%,wʀz9nt $rC+9そim5hKX,3R5:O? c]K `Ԭ#RNc5_߆7-|_ xw\yC_Yy[re% u!XW}ΛSh@nD, V.ZGgoV\rQZ(}qRmX 3 l7I">00zTA=a +Eh>2ԐkГ#˃L?f|1͠Ht{YѵKUrv򹉣^8g s=g{鵖A|;tTIsWZcܝk~]??4KݙԹkƑ#wкOt?h&D>P;]__JI4RG6$rާi>-̰I5o 5տhxaP+RN*iw6y!Ks dq}k>xI!~*M{iڲZno &y< 5# ZU{Xߛӫ\o|)ѯ$xwZuo_Eu>z+5op͌c hEriWGϊ4o7umt=G6^F)u Ae{XZf <{gRxNYoeK?[x(炒 ;xh:&+ Bo!v0%Kƙ)>ҽ~i&,1Ӟy7%ENT.5M,-*SuƖɶshbVrJZGiF_of']P5hWNԀ#==b&rYcc/x.KNѾ2ⶅRVq}XJ XaK|GgVl+64TkIʢ~뵯֭҄r)4og>ϫh ?hMcC}XOy]PKj=6Y[xFh7?s&b&7+(A3P8e'#^:5!Jm%J4e>W} 8%;}sTU~R%u8͵mB0&*?xk+VIpK;Hr7-!brĞI'5vuK0"YTrkU6pä:^_7q$F2e+p~>>#ſ>/[ϡk_d?4٭ aX` {^n+^UUnkh}Oc0ĸNK-'Qk_|K,O ۯ<_ a%+Ē=U2 -ƻ]=ޟss7EdD$F}뢕8VLkJzt8+OM]k⥳}AuRg j+ I_jsunnRD xzs} |?h? #RY*26ߡ_>eњ^?Lc/J J5EΊ${٥I%n oz{{ N&|C3T~l|J?#h7:֛H᝴՜6;yۮÎ}: ~>Y|5|9UXu;kZH_XaǨP'pxom'^]6;ԍ8'&amsinbI+9$Oő> C9Hnn ѴA 4x[PuYtλzu-ɹ:_]ѵ0 c,zL?ट^YڃO R\;*goެрU$r';y3aNK]זZ3N_>ݕ-tFy(09?x54B̸y\<>n}7??붌4>_J4Ӯ|?eVED KH衿{m#d鴯JTH)޹;x#$tσR[}~ g%n<҈-7.$Cѻoɹ,z mk;#K s`۵ܤz^W>+nh! KHKGVZ@nba#n@RK ne.IԊH?/2\`W9`60i[,4(|3ݮVH(vN1cj)!BNwcq@ `Tcrg$s_*#ƛZpir^ǧPm"Ϟn $ 1.,zՖދbBيXxFq)#W%uZ%-J9xyk5%ucwQau]K{iv6AJH瞡x֙7:CZ4͸ɏ-\P"G2k8ylM&,A/Fr=y} 7[:}.%J6 pxGn XQCw_5,yJAep8.|R8͚ ~ϳMpoûY<;k) ׋מ3i^R"SOoV|9wu&Kpx=!v$ܪ,4f Wڿlmm=b~)]oLMZY\[OgfZIAjEH@=#C *RG&S]&~d?ռxTOc hZ&5iw Mkqss Ҫ+G@Ğ!m~hΪj<9=&\VNctI8vKQ2ڜ%x=}fmX)EE{-"}OzNk> U7V8L4b"E f0]<ğ~$_Vt_ |I +R(gOgv[R1j"*d1yXJT*mu/p^k]rʚ[}_l.k_V:/j+KnK0Bpca[I\u7꺍oޑ| q_g9hӺs2Ϫ'Vz֗D|MQ59N[*?$3c  kmE~bDEr12?Ok7Mz8G_w[amjF4מZܢJ[g `dk[߄>xs崑eG}ZOʵg%^V#zkO,B?.xN{A[-FYV$\CG"H]͎9p?J}.Tses2\ہq#4So[db$)t@įw88j>ٵש:۳>i/eoZ^@|=yf]vQ9`gI_+{/+yU>ϪkڋH!Tq  >j4y&F<ՙ7cI< <|ej__~!Iw"G ѦՌ)o);;Օwr7`H#$`[WY!W : ,߰gM8= R_c ёHDI#n /!S 4_{ܤWk Nv -7W{-,66ط6}x5,E+3ȱ/po!܌=}4L%Ra=Ğ|ryYpMgMvrItD,Ici98zsNbd^#6@\rs8*9ɷRbHj;l]w7@Ch;_Cl4dH*q0I'jxacQ,@DK1m1c#9HA)y{6[ ,e'9q?ɫoo#dFmmnmoM+ZxRIJ_#2!'HZ(Hg \nzyQAY]X>fuYbv.rܖRw'W')f̷FTv4urU I08I=Gm"F%Ux&h8wGRq [/,^t[Im&hIA`dm !r/CHGݻѝWLb-.t^GutU%>IV_3(}Z2x_REjrbG8#Yޟ0^ҫ*2Q GVO^i=̒iƜB<\}7(ݏ bk#R^]EAVv3v:=+ѻz=oi+]hnwᇹI.#6s< I_ x:x>e6Wsn0e+J \Nx+E#'˩/dk\yjr)MO~"'Ě7F7ռ_Z]hd"o10eO/@8+JXBIm>a,Dϛ.?࡞>.AMJ]Ks"0 Jmh-3j~`yɉm=1VZ)s/]>{W/y#_i^(QmGo<‰VmW(r`_hL5c܁Up:688Ԕrihԏ?:~9_x_],䔡*\8A8w'Yhxž( ։ i֧qA*oۃx!Nq,oD~Ec -V+^Xbd+T" 2fJ[$^;ĭr&B躥UeҐ;ʬ˒ U~SY&YS2F g?#19vW릧<x{Z5/ OÖvi7rF_q_ǿ7? $h_-N~y.n3_Sէ"N7,sjqާx_R sE$mEjphTD#P=/7ſm=[z5ǧۙ iGpqUb)Au;3,ye*X |:<4&O HeTeCHŔy޿2?hyuᶛfS% 2e)X8#\r.iG[r)=?%5,XI=VVpjHB{~99_; :tz B[ gO WV4&'d~͈ҕZEG#'z\ׯOYu;qaYC[pU svOIV J3йN _eiSj.IJK^較REoM5{bH`v7w!vWAO ]pkvfw?y`;ު2k%rF3eGMggvci=V!ghabuPH#濣ɎBYGMcR]-Ce|5a+sy>d&[DsMl|QkȭzpZ&@|=l~+ë">/6M~f˅T t`$1SLEx6q$*yr¼Ÿš=&S[-b ;ASx&a`E"Ef 0cv? +γR:#Z;k==A;2HaG5Y.|vdMեg=N9cMTte̶)5R>nݟc¿|Hm?k&Vo OlrcYYx9_PÊg74$?ɼi /x__}:\:(v +⬻.J*)򯋪[L~ϿGv3 =E`7`*KwND(oZ1cHcivhB9SVW՜Sڜ.ߗK[klG.`!]FV?2p& %^_DCgPH2*kku$L?aJ NqY< ݨB5P$4ItflgQ\Ǡi"HҫP1 dp#nO<*F覮GM[%-%2yRmUA'>ӰKcq.!eg,`:FNHǧ~j%M9՝R|ЩF-17 U;qǠ]$:kw1.c#8?\JaHq0U-'nXs\ ΗX摚a m,qtJkte.-|1]^2Iv rPz2Xba( su&Cl9+^2x/qQvhEmצId X`["uU;5D>Ɛmhqh ǭD'b [FF[Mq(.mFxF@ >6F}R1.(g wn88&gI)Zgeqך=o/tgDlm*z~$ch΋q%u-K 璮,v;I5*{w"jCUhe]VBC@p_tp9tolm=[R;8[io噋#FP3`#9=1^%&3&GŎ}w uK3 nz(յ)@h\8rNm3^xNxfBsT\3Ҽ[ĚOZo6WD2YmoWW3Ee"9Be#Б޼W\!`fe7)c7ˍߛ=z{K,,HG,27۟_.xZ 6fa譍уЏMvR]Vn:ovc.ہ>#fox_GֵK-%囲$ (Ž՞ef~|1][zMxGDQW+nw%T0 c Y}AZxLG *F$W0Mt>0:`2Ca ѥ Wʳ).2'&A+F=C3\Y^%'}zH4ZQյ3&#VCj_h(g7TI1gma[%^VxH\FK:ҧNQj*Jяs>"V:|W3_RO;σ%ɵ Vl,eU@+<1TkZ}OW|]GּAñc#O.9!=y~ZZ^K "tAo䓐Kp23)eyjE/Eg-w:tKn;ڭ2\#^HX2 c_ÿwf}Rx!mo9be X 84߁NQ_>xdi'6xy$=z#Cμ=[Rm9/.ڱkW"FB.č.؜FC~*^>}u7>@U;p.mO(b}ze4CWQ]/~+o_ |.m2jG_K$Vu/!x$rO'<~f]Ҥ~Y,mLW;A$8@fsJʏӚge2:Tq =kuYai I7N!UY~2JvޗAF: ]^/|V(P(E gqzjfP9!@l2d8s$)GuΩ'J|ߚ!== q ZrP;iGQHLc7UEEaeUVvr%W$NN*~Dl2  f晶9 y< ̻Q_M)V&sj0;ys #dR]P&dBT~y$O$:ՖQE<Q PS.TSealn.dRە"drH U-(cxmYO!XG(eFYyGG@@c#'}fDH5N I?qaǥc35ʹ8'iٳwy>: s{wd1TaF8\;[wnc2cxCpzsi7x]E\N[qmh B}˂ (B{X|;]WyuQ-󟎣X5 Fx}}kG |Kw\Ӽ9;&S*"-"cW <=jw5FлaH)HqrOnN L\xT$?a7C:fx\ν;=K;xeCyDjV-%h> WJSd𖗩^މA*- Kn2wA?]<+rK̗u?ޛm?k ; lƩ18~I_Hc^1u˝[:,Q:#o$,pZY2 NK’˰O05:?O~ 1y!?>^(n6u-kwqi&ggyi~ kέu}O&qu_-η*F0LAΣckMImv>NG=+Gw%]뚽I$|, %f;#~$u=*G@Oms#JA LroPw+>$Sӿ?.UHi= 5TU9[K=&^7wᗴ:.#bnq'䜞pb p|um|8Դ+h!}"ŝGfmyOs潫.u ɮmLnaتN5nM BI_gVk:UUN /Ώugct:m*q hI=?ax6o1̮?X2!研3M?i^VLp}L|OwşÏ}Ϭ\21aA\3eC?Sfu+ 6@Hc  'k)㊙4S.ӲNT~F.&] dק=Xbș$WRc/5ևgo,piFsfeXW8*c3z6~-[×z=[ĚOڴ4U/ 1Md(n95{u>kֿ xxғև5-n,& gf%y9^鎵3ZYѭ@lmyI3~X^Yڝe/zי>([jVl,r0+r0WjfúvLX=VsQ` N; ʌKli^N.NH5Şm5 5"M-Z9!'RA.R}p!LYZy;"W8Q鐠eBwuMnyq5ݔ T^Mx7<5k!(6zkuɦVc2 ;W-o#mc~kw4 EvnG$20DpW99$/_gG_jQ5`#/S_R~mc5QY{|GmBSӤזKk+W{ge0vw`׋|gcj2sK|{6nJT.Xªq |sze Mӛd>; UaksN<^+mWᦑ_ m7qtN^O1NUd*7Vx/WɎV!Cld/Z4Q^X%R͆޹b72ˣR% Kw2Ǹ՝Wnǔ~Ծ% j94mx'| `5(a~T&X<`9^ zrwSUK1XA" Vs$举VW *w|gȩQPr<<[ľgN4b3?7?|=W7x=Z6ҵ(-nu!9!H!wc\W져i4ɱ Iڑux<8kj +JKa pU[%9yh~V'N}nj>@k7uEZq>[Cs7eF<&X:LEW~8_?񎃡:gmog(!vddƠ>v,> 𖒫wF6p)ԃ}~qe{r&cxvױ ɭxn ۿbCrz~ 2k[e ).pAu${yu]5%?&}(czoa֭'喉 #E'#ޠx K/f;I}0Oh! ;W𞆒 ǁ=g5.Vk4Rlhxä8yȯqVZ/C_:G[4Dޱx\hl/|B{WM٭]1-lMYue?t*?7@ۄM? #=Y-:k[<|[%Ķ:J \7F2ntٟL^>-wOMj8Dk7pc~(Ų:z_]|CTEޱ{3帗-IBo#]FCх^<eQF;8 5(_w$Eݿƭ]Jz{qs7OO.^T%s[+ğa' vr8M!Da1PC+ s''9!6^F]$B6&#U  [skt`2&ݐnXgrc9++>USfҰۧ59+j Ԓ'!dv92qRqv|`eia:;g$ՙdgزBS( l219Ůe>T}->Ɗ@[>ݹoX𞅨-ݽW^mJ3nG +7\29xtkCnmıL~V:`82}~'~ҌpZ&ߠ[|vFOPH9=O:llzW^hf2=NL4sMvImX$ýw]m\ڳ] Wxj:yr_w5k4Qz5OӵVQH720ę sߑʿ]APTg>/[޻xcJ{ N%fXnd OWeCӠ6{kq\J&s`vrSԩBI'|5YJomu5]Ă{[K̋#CcNy|υEKK*"1;S|4;g +|7uG1m} ykϙ HH_i.y<9YV6CU]'A<|W46d"P#N:濞0omUtZ#o Kak(jjvL rq#v8?ͨ][yXD$\Nq&krԋt?g| / p4tѢ{y2r>Ss4K=ޜo#Ik67o;bEbA*ӾS\ާ\t]еxs^P.nkJ =0G(r ;u(_iE:;(gghFHڃ$É=JT/:]S^ieOD1҃8ϭhzDvkoV!xʪP:dߧN^uvP,P*`ф9ln2;}-Q55,mGr" h캊$tl/#Gu"0miyn2aH9#rn5KE6 bsxL p[3d' {=|Cխ4\IL%LfF37iwO;1C} SpȑʺNކS3)mt:Fv<`ԗOI1 cFG'U8ynuz|FMy^ItLRVf?"|?QFOizuĀ*->wyZ o+W(THX928⵻ͥڹDlI;yq(e3 JqthPq ]1(@a'Ue^\4 rY00G##zWsw=eM:8k72rh-㶓헷s1C#*0yʨ4 l%m#q^6N~X7tdϷunmgE;ub8x$d6 HgOeapBykoܫ(\,r11A.sL_d/&Mp ׾0?v_fHAr|`܌w=}Ycri3@9!cʃ9dt+I*&X*02Foֳ9SQO(H[8vţ.Lb1s*=~den.>`Pp炠0zSRW0ic;pNHڥHgf9h]*}gi^lidR`!YF-2hzΦ1# 8TU(K<~ltj̗k[@-ٙH)߇<"UX@yp"(P8We ӵr[1֑;[@M*}DCgd|SkR41,UCWc d.P3 Lï(s![ F0cZg{hk dكBku>Fw>߶HW u99NOqEBare6]3FCex瓃'HI|ȥcV&иiv.I`ni= nVUW`ܯY<{?AԚvZ"#fWd`0#8 ] B˨j7ZV` =XIB4miߺ}2qF%IvFXkF Q>ؗ +s3a>yEާ8<GZTrV?slJIxB|SӯziΓ[_J]0mZ??ÿ/\X7%JRHC_.KԐqH- nGxf 炒z=7~ 4m . =$## n>~U*~ĺaj:]jӊ\;zc&ĺCosqf 3{wز:Bڂ#,GL㇋mXՒXGF!r%݁ &#GmaW1I\j/+*l=_jĹ%Ϟ{h=jxt2çL95V?a|+ua|&MZ񞎖)ҥU9G6Oy8YSu)GZ3|WXjZV 7bG𣢁I˴IrL^5/ %5N$2#C׌a#ֿ,YUӚ~K0={D'XVK{q(Q2;J vq9޿B~~:u3?7EfzlO}*gd)}Z҇3k}Zj}q,QPI- !` *\%K\}ܐYFykFz.9[m #3+rU# _Vψ5_#i.MC,?^1\XZwa#i3|APXmƙ ĺ0YwiBqBFl?4#*2fk V-mMԞk;WT[i$a䜖d7;|mᶥo>xT~&̒\hyQ: ZB(6*bYZ[;hxgCjk~~]|7Q4_Z7!DI `?f~oϮ/eRP-P,ȿ(LNPEsbh7rAlz i%qHf.O#=W ql$)u[ 3!s oD$Wd.E-kћitcr#-X|76m䶚bkG.c}.Cup00O5kEi=1N"I ź2AV'wAַe^d6ά#6*= uc+-nVۡ>k3\^J#8]. 5[s&弌syȭi;i%u -Ektv\3rF:Þ1Pqik0̯x%cQzcӦj޻'Oy4ܹI+}B K9k=ëI p hZ mʨSn@@=N)A}"'B}`]7.sў>kD2!A'*V.e{-گL[.Vo>ීv8G+ yHk.>~@8&Z;n28om쮥Y[kfF1T*NwIu/GZ5(r`*9x|-i]R\@K3>3Fkwɻq!B-kmpV:~o.:M>pWsG@u_Ri? iVw,7py06x>}+|)=Y"ߍtf5i緊21j1 g?ߎ\OwW&0^R# 0ˏPkj)ŪiʹuQ島g@S'ELwⶦqq'|E5Mt7ڤG+5}i3kU{u`0ɫdH=]}2~ڿ{oxSBPе^ifhY35~YCPk/:;kHR: ~~ io?N#)rhsCִ@L%k~<'B8)#A k)mNMd>n.6EC³|$pIjPz>wJ-G4譌R$A&i͝aq,9_Z6w,෽ݭ rD 殕_ex72\=sO"c$oM[sk6s@U/AI2aKҼ;'[-n$/W֧q|ۼ 85,=y9N^u=<jc&~φe)]nqᏇ:LsxaeK$F&9p>HbHQX,rerȮ۳Q>˼,eu:=?{ܱ(Zs.AI piLO3E+l?p zCuugG-n#*@gn+p}ӥt?Yiv@$%#.]G͜+﯁~6dzޥ/w)*#cEA{i՛%+.^kfy%tIg sUMX捶2nAqe8^z2~£t;'.V 6&7._6,0#*0d#gغWwu"4: 69'x5|?wnGM(v 6 䞝H| Qcn sP^!us}D Y9(x8Ii\VCIOBQ^0ʊ߸Ӝ.QzUF'Zd́@Wvx>Ҥho5)v_0[2HpG^OF#i\W*Bw[)7&KM:eR챖Ts72vզeuj:}t}}3-loe @^˅Ƭ/Ez*"-Rӵ/ |NOِZ9E, M-t.i4[.B JY*{u6V>mv$4J``K[)6,j_)º++bȲ4[-;菙&~W@TaPq>tebmtnPZlXdkXMW gy?(e5dlhI NCtAjT:cu;߷[Y\@Ge,Ict*ޣlʑ+Btێ92y5Զ9\maq t8 ~^-n#(SF ]ǁ/|o"z.ol "*aF$q6W^-@i̛L|vhR׿z xg2On").wr2N@}9 {+%*Rvyrӎ&o}ɝdq |TIo(~$A7=*]۬{4~F v H^rekz הWM e ^]αMg+sW-{8<ɻ3@hU  ua_ı[̒K h2̢;yUwI,cv3i`VH"?2 B{7UѥY F+hpĂNNy汭Lw1 abm+4hp~`r3ۓI6߉ 2JQ>)K{35huo-KyN7 ꧎*(]Ba:bF3Y|!Gwa_$ xN\}[l kQŞt[mBnAd5#amw2["{'u WRI># _2rp8uJVSj,ibkI>NkjeKBGbֹf]6-QG%NmGڻKie F9%rWgQQ*fwҮ1]-h 9;VuEZ4+o4b\tƿ[=T*}Jz]Ak?:̯Z%g^.%ZE\jn$1Sz֟4?*4,ȇbF8l5bb5j2C-tvn*s޽3ڢwMoa,q0?>% rKUdh{ z{M\<c#c @Z_Kwd?˃s$z-[^>OŬۊIw`rdt"dxWJ#YpN~r[p'J+Tc٨uJx QВKb9<#vAcFkXhvFh ţ$||8^ryi9;i#xm$2;Hp3+{6eېszva(Z"?,ĸF I T(( Sh ;ϗX!KVH6ZGHB$"tmI5ݴW;Whx+F?#{+f +#b 8yԖ:;?r.#iS{K +񏻅ӂ3TI=λMEB "kQ O ŝ[#>t^]d<^Ux`(R~{3u);cH׭nbHEM.O$@I W{ǶsrB 0{-̖+|]E*ŹsyNHfm%i yR+0B9 j S[GR'o.C ]nO\zͻG伦q#K(''`rܵpv1Jx;:قTeϒ[#0 X\tLzS ;̸XN_G/+r q&f $ vۗh@$i=>_Х$,][x:Oo6i K;Ʒ#2KtXMpn38>xR',|k ij[P/ aR1 rrMz$9%RhƍF4X;RiwhhR:cӷj,",n&E]̄zpz`wþѯ>E#!zg85Kcv>Fn(=r9pzNޜ^=X>羈ƅMXjw77;bYU`[?'z7O*Vz|o y..#ċY0xsۭm\ZH ( 3N+͕nΈduٶIQ!5c$zB~}CU $&K̍vv@:<>2j~7BrQ{VhO ڷ_R(< yە1潒\mn>?/,R?߅fpa4Zk_v?8j5eȂgĞ"〟0L#ǃ~<Ǩ^`̱o™IھJ!%i#b'NjCYkzY-D\ppH_N~G>44_#t?w+!Qd\^ZK,c$]NW=:W-}MVRVq(TP e9|WR#}u*%|u>x[`=۷sP6}oI a[΋̐1rwVfDle٦¨ r:MJpŪj qs(`]-!{4i b7#a[=+oO҄emYXӣu5iZݎ4]]̞%?~y^_y6Q{tfƛwww|VLfl++_^!?u[N),֝n߲!BAcS9ct-6C`[_+f&2޸=anמ% &-?zw08Jgaf+H(HyX+OR}Jվ_73}Z^}OZHdh`6à`vƺ;{DIn 8})McHz6~[g`K]}($0}ifGoY-bEАÁc-{Rɧ]`#P*  gED)=ϗ-j=%EeiHMĄB„t$bymgLQy<(20#Ӹ<ӏvZ}ƌeűb/.ۑ>nAOa^o|5 }.:4<%Y2$p>sEwT1=AJ2نY&mLj]|$;S df̀T0\[v{G+8#`-e9?Qo83E̬>{gC(ʤ$l%v qB$tH6<ŕbbg XUl㼧Aɨ^bYyTQ:ژiif;вF{n>$ˤo̓]ܢ= Bn; ACq^VK w[\ԼC{a\deq19Vw:q툻j,y#2Z- aN-&5M^iDyzuX*I =3⾒ܺ{w3Zq~^v&bҔR K7QڳZ0}Fe:i}"އþ(tsZ]"}ioBg,=Ep׷G]Z54TNPqvol>P\w'fofh^513de:d6MgmXYTL硣95O8[vXf ?x9 /8n7W/FG T:tTROQ\;/oYMw9tl;D hsEz{s[jV$)nCc&'Is҅E?^Ƌ,xO.gW_Q%4sK~<=e Cy $L@烓d36傷SV"H6`%%H ݎ^I+"NӬƤQ]![8a̎VEb=SMY4"-cMG:"BtmJeIUerF~^zmNc1a41,ʬns5aW^*%&]Mdҭ/uR]6Y'7l@!oްm$MrzNXە<.?JikN:QVK"Sį A7~FUgyW-ؘx]IN9صk|kgj&)]5ŵL?z0 spqV.ہ5>r*̻FXT[t!G9a'S=ӹ ny^T,d0F0pr/ofȿh,If1:6zzy5N%>CVؘ3v06]?9u!KI\,Ӳd;BRlqX&'i."Rd\d~x \S5Q[{ܥŬVq O2l, Ի*P;;u3VM4S0c[Ydr:mN2ߧcݢFd@!27py^{V\+Զq>A@yAgoZZ%bI7#>Q!Y3܌ߗG$E2[s&79%0=i$/M0jaN"8Rߘr:gRAw^| m8oFx^2ކZIj fȋ<# ;9ePƶ$ C!b1ԁ(RM\2ܺQ$$|M^7,\0eb$z=yZKYhXHiʭƹ9ʧ'9,^;h.9IQ97qgkӋKԄh؛W[E;cDd#%{MgW.Ktc[/7 qf4ErBFX :{TTO!ddF8l3l< p\P2zd`<+Cn,lq,J9 N0|" "KHcHY*wgz]摼3u-j١dWϜL9=<ܓB\LЬ d`*ܥNo"hcy8!Г5lSeXQ3 <ɴ'h8FMЧh1/#,D:0@P{v'd૆;eO1T`Rr@r@= ڔ&@cO.N ^K?šu}ޥK T7sL`^q7qM{eew-I/n5 -!yi7,Q%NN7c>:e.Rj+.u63<ыi%W?- iMF3*fK)TB3qNvJ9Cú/ٮ#Y&6dÞIWӪA^φkk&>`5ˆp'Ss}EmB&c=vgZ.AæƝsydu-<ʪ?2W5cXӭռ1#7Ad^jg&YVu)+I"ňd*EΠ]YivG>pOJWڷckZZS\su$+3L'k 3ͧykC 0yX7+v= *WW ϫ:K.Vɑ!$/U=7͍[? ^ns[\p"p>@I<8Sֹn^R\wwvQGdш1N8[<@-m~}O#*|hin]z32$ӴV&q?;Enu7hEEY$c: %4M拣O{ NP*Yz!<};㴼WӤr#:iEOVloInָzΛ}SxPӵ}2UEF2!j6k*|3O+E.dM3½xUSǝ*}h>o|[n' G䌯<\SKk` 9j69Mj +&f,akN5i`ʮrIHRx8$uS7}j3-.H$~V$FyV⪮W}B)- C6  hp2 =8aMխLn_mgQ,N 8;Pq+įIЕF{`!X,fX J)Sq>[C⋗r IiwrF1:Tr-u(dM*G8d䌊O xԬJԈ$d@= ڮqS1uW7zLPJNד8`<=iS\}\PXaq =}AIi1D<vf̀<^X(]ppqjj?_l_,8#׭d؋-ߌ~&~+ 1z\6QԷ.$/|CV`-terC r{W<3xd|}5m= hMh~L U8;qVu9dK#=$bǂ/`& M5s.[=~[ ;̓B$mFEˡD80 4()nѨyciq4h1ukORU)2dUڌ-9|m6Qza19rlTs'w~jgU&-.ѣS7$\J8`cd  `TK4ZdɖG'OuZHFyS>@uvk;ZM%غPbf`Y 3ay9ik|qnjuŬ>., i\rq׏jגGc-ƠɌ*W<'\%̮r} I&X ]bi:dt*M<0+%y g8zst#Xm Zv,r-d?.$ M:A5#Qn.R)KH]AO֦-'~F*ݣD"T̕6`zbkڂInDM'@^i~A/uLoV+8yJdeqs33>km +ɓtY!{D02LZn*vxɭiRN;ص)ɵ>OkgReI <zns=_ڗ0Vys#gԂ@+/wocR<0m ̫vpޘ<%K 7}kCwSo 콷lbeEt| ݜz`׃:ΕiR1.Ȓ v*U}bhkS[WŅe͎,1lYcQO\w+,(j~[qڡA2gֽKN%kktb[Zp^CO.lL:kcmǎ1T&҅:2Z%[1`|Y;VpN ki/- iXLKoPAR5fNdnz |;.g79eMp:kqmcmy7*d?KC4QYnQh̛\w~tI7I @YYCs܎Vs#G6PWGֽ=p軆|gc 8Z+ЃAkɨ*(ַ 6-_8AB5_>XpHPgl5 B2T߂ Ñֹwcgh+Î(j̪sPCSđ%HTn{r;k!ejEE#r$2;ħ뮧1%ny->L[,;8GMmwbIAY;p" !ׯS\:/݁-bARۈ;/7<&՝ĭuI gh1L.e/p;rq* 1z#"?nõD$ry c$7͠iݥ31 YH#˴AS8?NN) Ds,xIFw/!k1o,dClYN2r?ȲaHŴIHTw)#j?7 b{RKo.řOe-ȴtvRGR jrcŵvHStr0ڟ|(]#RR̞txHPQu0;# yn~|_ <:jڭHM C`6q8a(4ն;kM8kAX~!}v&>Vad38;3Mm7Q2MsmuewgvpRzҸ7t_M,~4~n5lvp#zV?&ĸAmj~wZ폋{9hD[K;N6!*~զK>m3V@[#L[>`$xNh T,.a %pG}4#+Â=q,;4fsa W-clVe W '5R[ir&lZExцUu;Yq}5[ax 7$sR{"PwZuh);?mxF͔}3WKc&U8,׵6qd"&.|9A>Pֹ]Ic֜TuPEyo*~u5I0[ӼLĄ޹7`ČOұˬfvXv%ca⸜  bډaEyq޹tKQՄ7Llth~cW.zmv:h6>] a4M'cGq:ƕk}VyboU;$]y0Fr^wmOdTugxb&G@V|ϷֽXg7G+X9+)aWǢݛAl566} j12ƪ0zAG7ծ~v\edUy0[yszZZ%3 壏!L9v~m26לšocupK5݄3[؞ݥm>TpNK(9]*\BYSK^P$(]39,VTc ϼo-m+]>ݯpy8 肶瓹νqLmMK3$m#-~| o(Bs 8>)}H]WYmI#Av 'w##mRsXUtgoU9?*¬yugJvGY&07.Hq)x-[J{~ܮFo2%̒UduxLp2lqߍdݺ9x V)y@2Gs 1{BiDqq'?6ns-嬧jG.+eF 0i)B.-iW8qFxRdݥ}RHkM>1WWb"'P cОXȮxf(bHwK/ Z:*OF)'akn1V1lxQeC`\A Č&,ǂ69Ǹ-^4%LWi-՜Rq9%tҲEɂ)e NSkr{d[al[kobwӲ]_Isu:̏y ۅY Qbpzw{n̒6a2cH41d܊Y̒7,CsGcn½ÏZ|5iڍj:Fx[#w 09#յژJ%_eN!p| 1ZNmv;JOf~li֭'Q hu p6DT */78]]j3ܑ8o:Ɵiَ+ϭ':"ܷf}4lx,d޻T灟sY4o4e1%L2~kDKBdvdCQ0Ue sng:? Ap%72BkJ]v&ՇFNsicy4GƎ^@|B(y9?Ҵ]gةnW&+Ey-LMß)7ls<`T.LR,{z{擫}%]~r̰m\^`ޠ+/@4['R:!?>%R c?{9|Q-=?K2Cl,gZ7z|r srsWmkķ67zm_h{s\NcZiE:OY(L0>sxV[ƷFes+'GV/R}h'Zt=τbu\Pv6k53|$'J?>IS 3}0?SYl͗j]Ҭ焙mě T=#px/<<$@m]زtIq?ޭAw&_|7lŤ)NɃ:xXMpnnZYeB0 #z|8#%5[a; n/?NL%}:lu2Li`SHVxh;3_s>̎G.u`Kxoƹm5iXn;(&aJU_U!;&V1'MLӭP dc:u[\Bn&1b_:u;C g&G1[^Gq$8a)QSR+{w5C+?Rqp+.efjtZ0n]796ѻppO^@}vryRD7S!BN՛56 їvN9MBY/e ).OojǴ|!0)_H[< G`|H˹#34!P$wm訜6=6Ƣ4{h`+52:͸(xNrx;+jc%g緑2Na24_׏u"lj(  zk]d-[r0!U$b9ﭦNᠼwRL&>YjT˦YVb|Jb:߶h`"XR Ek5V{mb1zܛY(zR)`/n!IpM$da@߹W2Y@5ztƞ}6HmT0 j΢h͸\cyHD"8q|~! 0 푑s]}Lowm2RE#En0$3e{J߷V]8AaKv.Ɉ8Nk`z>J6"Jަlj!.@2A!` m9fh!,aؘ鞼ۮ*gךY0IK<x%gQ#qc'6i.>`Xclvf-͓T9ҽvl+%6qM9pz*qy'XGn۩PD8 dn܊+q+4Bmkd͌;ݣN+yJs Hʮ2rzeS^ۏyȱ+@29P~{ 6Փ1|1Vh 9iѤs$2,`\G3G[x%Bpr&$X"k#>-6Kc-)@*Gʤޛkv:{(eQ S*h5rي ͖ջwq!6);(͓p:.edzNmsO,$1O#c SJm w%NF>DÚ&H8MAVhQ$dH ;:[_ 룵W\6ږ$cEf`W90](hD RtajO|ll_jiM31`CA Nm,o\2y18_9rGq톤vM[Ǻ5FM pr3F 9}[Q./54rya-]}$CM q8lsж\{j ڔQC4Bkv %ABAp9y>g4J+;qc9[H_,6׎15j\2O@̊ 9z}Z4r[mΗsg*s3N[K1zOsǎ9ۂnt6<! dFV9sk{E#QG asl*F pa? |qrMr$;ڐB1F9h6Ӫ6om4&ty1ڑkkts4r:Wq nRN`#jr[n#uJwMh%-puhh㹍cE&yR@i6n Erbrzzy5qrʋ%2/yG=ۤ8ParplQ! H&2tbOn_ZWMXb2ȱ4v֬A&^}OL54)b,3 'r'8B>ؘ~r)PIg`n^ 9u4lW=K@T[X}J,k\ iQ)vN1p:ӊ˝T\ѻޞk͸mgUWKժ]f2d$ǧ6켁%'seyius.+> x#me>(;k=3VCNŷ;1^$ HpKٽ֧k C7XϩztdۢC,xGZfG-MBY|A˂wOJ>CRjnH%BQ@asHUA/0q=ǭhZ-]h$8m-O0rLPC֓Z(X`igkt*-v[mRg 呥b [cW4Oо!_h^xgZN`LxӌݻdF}+_^5^ kڮyrx ch5_>hЮeLy< U& oJudzdyEčLIɈN=K9lϕ^sN/]Ԕÿuf|I,' q{Q6/i*i1@כ^š=^,5M.)v 6Fw5NGԼ,g[EvɱP8YNÀN4I5ZZ3'FY%[_`)F`6|;mY|_Ǿ!JY@zoz2:v<^dn7nSe`~8㯷ghD#y^bӀ+ߺv|:+8H>Oޣ̝8uyNYPHXU}=QhjS4;VKH+J?J-&M3\;e|v7uk}2O.ubH%#paK |?-b-6_Z_tN?3r{ė !AxY4<54)ҖhmqjUd#Hm)9AkG ;G2$Ќ``rvU`HYxd[ѿȬXs$&CR[ 4^01IdX0y@Oͅ8>X]ܵMEY=?#um!%͡i/awd؆1 !n,>_HbrN?--,Kt6W 7_G|NqWN,Ec;HݴZ4 r_[lDdd1m'JTGZ8\}@'Gmu&>Y"9 & !l$s4CPIcq@xX|FE胩µhi yJƫQ( C.H*ab _0yw-p=91psQϑwԂ=E{ML ۃxR#8'8,W9河hV ytȘoS 2@jk].\lFY#1`QIuQQmWX)$DQ2T-02j@)nKD)y8)K7CGRo~gd`6Y^!Y\| ⡖2B",G6 N8 M}KE[jca<|qsךHb"rXܼθ)<4ݐԻ٣D+s2JA"1pN#p#0ãm" G;O#h'_:(`ذ`Z aH֗mi:XV@)U1DeeaJ<ڢȶ$ʢP n[j]A]v兺ڌC/|I'&ˌݓ 5e/!1m2K0I<<UkiY^::I$R1kfCw;.<1a'}ŌIxZ5Ǚid&FǚIax$rq8v!M(Z$;B$Dy Gs{?kWHW@a X] I]Hy$m1(8=-!X +8GVy`2F!ha@ܧwQϛAa#Z(]gr /J5NjŬgϵ6+ 898<.aT(EK s\_֤J^ѵc <0/hyOұ-t;ݿb t'ƚ^$5 zV>AU+|2@[_ X6ckfu/)e;Ai@99⺰lK|_CRӵ\9!@_6_G?4'ݜ}F8n=rCޝl?7@[mc{jwD."13"Hno/E YNNL2Zw}Ġ|C߷*dIDJњk̎<CיU%o2G xFf{It+ɉEn1Td#gNn-2B5͞4t F*ôwU4'M@I#% uڼ i$Oݵ-'GtH|Y#5Qf㨜4]:ZFZ)H3˕]ktvpWdXq\cӛI+]~4׍uJJx+F1ר|4(}E<=p {ӡ?g4"C&w~!}Ρj!S ZvS|W JAȮuo/\b;V+x5m=wAk) FLFnqU;2rOM)?# l,, LӧI$O-,j\nF 섯m̝;6~Լ#R=^g}(-s x(`Ic_& &oyA*g, ܻHJbcň,o˞䎹O+uiIpcr @nҦc[ @[\5[l 񁊳}Ze r}u vs r ivY-Ja q?:Siw3WLSN$T3&K]Ms "H(. "(Mm9 A=)R]2ii/ʌ]$^5y[p,N瑂,:b3WVQE̐[@#RRp0FI"[ʲ\C{:c` Wr] ,l2nЫzgF1nmA| F+I!̳ )LOjj%H^F0sESWZ嵝V\I Umα BVn^("F{]>uV] s ÂF$!sNڄ,ts5Dl9'hJG=GZƶukw$eLڴ5fC"OҺ[6V)Cq&k I<tڵI\y[$r& Z)HV[Uh*X`ν/0]1KIqi1]CN sۊ47!kV$HڤluڣR5tGX.9tjoL%\[Ppp>n} wIՍXv(#v^1yVq_]Z%eiXc9& .9 fRa@QsәGSsY}7߅ E|_k9YNMr}P= +]:S%4xWŪm1K7DQ.zVḓS.DQHYn'JW[qHԆ/@R,3_X0WB{aTOSXgk3g}q׳iHe]DW$?\6tԎH~"xQ ܤxR#+Q&DFE`vB 9%W[654tۓ َQwʱGQ'm_9R2p`sۓ&NVnDoĦ}?نp s;湒ݯmyq|[}H_MdgsWf^]?']aޮ}>nsjH")M,URJ &sqtKJ`#b1gP2]MHrlFsqSf*&,Wmp@b0 TF< M%ǜG'w^,;Y.tW4q]I4*01$9 z膴6(2渂ܩi6!GKxSY/'*ͥ6H$Re'ucT#o.3h$S',/fYy#sDc9 6PSj^HcNY%G@6 Td UX@3Iqz ##=OjR5w֒ +a7S˶j3yU8Q<椓K | G C\hDXKr.\I;1Q b$M*xpC`grrmZ +KIWi?VMt“Y9ɞqN1_bVj5]1yEh< 8 Ò 9U,pPc`t(^>FB6ѬxNOXٔ > s4.uX#hI͠Jp{ZF++M2m`[K;h`.9 ׋õvRT[1pHЪH%2rYYZ`6Ic*y ^ݎ{hϗ+xc!Ե}_LuͥnkA)?Zx{3I2S[>G892*qR&[}ͪgHd\I.0 C8#rN}QZI鑭zD;Sh!MiW$ȸm_h%aԭXӣCqc$N:kiL:]\Z&{2d\dakٻ٭Q̥k|\Gm2RD`Nz؏+#ķ6֚6w wifTrӷ9 'gm^:=Άm{=zq߽ex]VRYȊݗ.2aRIRƧ:T.bw4#$qA^]Nq,r4/5|k-͟.._w,p EX8L&~DzoA/:m2G[;Yg FT) W DwA-<6OТ7Im-'L$!6&W<vhi9ZS"y4R?-.9b+ijNOųܤGt $c>d=>\(<[gfѴP4n۸q_ @Sw*nRrHܐq8ͩgɡg-$UUN\aT$#d饱|S}QbSf?k-Aeпc{[XJ6r R~@@OgmnAq5ɂfpTGچLU4t}M%9|aO:)B6Su,H $snK J[x,,2LyYEN .bz A+hiRgU˲w(\u>Ġ5q$,qYG=qb.{-M*{y1]7ԞN#LS r+KQ29|=7Ci?r@,xN?4U68+Ko`"089A {[Q<.S*̍ y5eeMIfDE!7#IqOX{+G6%PyxUcnʩ[k8!\UGo4H'}ǖ8_;k=5t9CG1e"r:t Xu Q(gm=9?ZqXWc٣ZӤ(l nO#dEx^$ ]Esϧ D36 W.v{fc¿wviTtr,8; :%xLuo2xWrm'?1V9x^:ѨӃi1DCasm[*4R]n}s%ղTQQ_Rll5E/4IE!4F<b w:m1[l07)$7!?ʣ+0U]a/3#;~M5 xc-"[jڪȺW6HzX2A9RFƺmB RT%GQ@U2rI$v 9iTj'9[l4Qj:]ze֛wE*ܡ~$ y\> ,YtscR`b ζ ZPxr9Y_MqRZvqNH u9oNA4QJJI&1NxZ;-br7uRӲP:&I !*F ٮ:wVD{I5F^}Řm~|@F{ K#jbh P(zzTN{ v/3/<ť7q¼4xkޫhvZ[5>Y =|UB)hk+CwOXkM"VIUIn.KpyhAqiO{'U 1Cs鞵Cȓ{ܫ[aZJF(5mFMJ9[v,"F>@OLWikWPw c>ޒٞ3lnnY"yi-Zt7$ÀrI#*p3N+BU9-N;# oG 3ے{|mSA\IXML?\v]ln/N.KK49Y<8'<gyOtP e+{&LﯦRN w*=/{Nx/KCѴ lF1ᶳ=׭r?g¾[V{o a+/Oԯ薈䡐\-\r,_h13GPc9݋A,b̨ ȬsWV7dK!%kZ\Q+}2FYWpcj5i[Pk2J1 Ɇ2;b?ILwG0Âp77u&W3Y,)$r`+`S;{aFz#Y"ҀcbA8w`5K "1Jwg$g$ϨpNF{XRakO#[$ym @zvs [u ^bc#8'yҴ~J΢hc{h]o-0 ^CS Y% r@BI|`mN+Kw2kNĖCsaD?gUw8_\Wmk%ƒ7&TSݜ) "9x'&(ĄAǦ:g Ss*+?7I3 qJV4lK6E5TޯxRy' -V a*j)hX}Fa [^@J/eWr[敊A'WwU;vKh`T*;:sXkOk Ki(_Ҹj1N~;}ۍ. g{#+irAb{(aH3=G[9H;R0 nx8t{8Lc~3.m6E` ^}>\ij ~myT2ZBp%ҷC\'K],qtC(U_O]M"ÎAʱ=>SKffZZX#ku~Hc#}geFؐ|O\y΍xf+}CLQ&VqpR#nkF)M&h|B E<3PwLSAt$I/eGac!@BG=1#8*%(5s;Kk;; d! & ǧOz6yPcw庹.ècM[>Q\$*ٮ-I#N3ׯCj[dsGY(#xڗ]:`7K/4 rk ݫxd9\H:ֺ}Gbմo jVg>Z!\pyª8 d7G巒#ʒren !U_.xP| tr}H SW,fm=VE'0\=(v\HGʠp[rw2{Uu#yLeG%x[n̎[3*ϠI6R%NRX帊&TuzTYiR?4oyl,t{.b3`B|02Iqr=ػySD٤MIp p*g%HlF< ^=sZ|%%ʵ{Ve1}lʱx8a@{VTKV<̹E8n;IJK0$6cpTs;I$V21:հxN]BぁքO̎ч*`cFPK<8$a-oyTQ&퍹vN9yh{{at? /4 ['IU2eEOMaH`?[Mj5Dڠ{okm|`q؜߼k0(qE ,dHS-$-J@Ȭ^)< xtpzF98C+O dECJC1Ƞ6*RiY/ȫ ;Ĩ"%_4A8݅ wKiqf>ifo0Ǻ&amtE!h[fGo5 D 8>Q;W18 Tb@OC期1g$%h7~<G Q$1zRw Jdt1R/_N+ ~Gv*2v}jU_I|S~Ӕ8!zꨕ _q Gck猳y``qo)kt2r(`5jzT);3> -:}p$nktx,Nm5Ͷ] GOƼ\FNh[ 껜O)$yÐ#ja?@uͪΘoD砯yt},n̯ B 4IޙOыUIrCs1tךKja%uHo6 bOAÓָ?ɣ-A+K[%%ܯ'b230 Ex#լgZ.aucݬ@.Χô67q_Űݲd'T,f,L4놞HYL  pG>aG‘zLŚퟄ MN9=9Ǩ#gwЙN%BHx[d( mD+W3,34i Ѫ ;~Le/o弎xo8r`mŒgޣzܲ۲y.T܇CS8EҎo[mqoi+YK,o&j@mb}8WvI%l<NMTѩ)kӱ[ڠӢb Z[}"HpOUnہ6/ڴ}Jk.V%⍔[/$cg9͑t%-"mO`- qNpAi+@iM[S Wz]RKtNK[Xg2+竽:/M\i/ĝ#UV`zJiWZO7J-+"1g\r6TmO3cq<潭|/.mX_]M XVUp7?8vzזW7 [θ_`E8=7 l eIǟ2.9ܸ+F57ܴ;->y4D[}M@F hs v^kxIJ뚆t<[RݍТ8nGZ\r:hǛgy*^ʱH| 2,_)6Yľ1X-ne'T rB6ryO_r\uQy7 w;=71(z'#ݓh [9!pv!XY) %pb4Gf'=7Kz5(p9M<H#j3e!F$FV"5$`|H8`PĤs10bX'QpfDl;H;~#tJ"~)݃FJpEr3 yW- qo0p p:sڲPs JXU3(돯;&"Uֱ/\G:HbDus C*pOK94Ux`2k5f&-ţ;%qDCY֫ ; SVՎNξl"'2gz0׹*3l|/=zsxkPc-'O*2N8Aw{ ,Emiqk Y&e$)$&3:_F9?ڻ_޵Ci$/Qn%T•+Z\q+OcP˞Q^<)6hmZ}MɁ#d><+gEs8灯+K4} xUYe  qv1^WȗLҬG- +7R` 1zkFsQsrm%& &tacIH$: ԑU=]9m߼*S2A OƯknW[I^-d$.r A 8=p䮦yL+sr,mHr)Bg̓J-;"6ZO$<#fFڤ288' E O!+I'n=:3Jo-ܢie!дa_(_A8{;xf"(Yb&#pʓ0K+&m_gs ģ"W$qNN{f䶸X+wVta3 BZ O롹j1ѶV$XgE o[q,r|pP[R`fg2ynjޯOC^9-.业k [42ͳ;2236dŒ4IYI]Rf\`6bwsK{xThY#soq$gZ -]n/.cjeb!(^GVA4p}@YK7312s3_~K$[>rNqۊ-w@/fl;?$\lx%qO&pJ͂Wc= #prcHaK7ft1oLV$d ND^BXK3g@8R]B[jE#Ln$׎<"+n}/!䌞:T";RoI { ./pNHÏqEz.|`TIl*N\ZnTSk[;_c:uչ,Đ.`8rFCd2iDhF8+UtIr~si:⋵H|[a&e?g[ΊE0_XrK4 R H2r kڄmǚϰryK[RIȸ(b|S@F/X MIqiTi8I<L^Btk& JlE9%#_DeC%͸gpA㎤gy7IO+m L'hMͫ\\6Фe;d۽~ai]][S~]ˮ_fn_U8n)*$(O?ҳcg ]LҗI8ߥ{1͸bkxʲ7=ir]f2,w;xN贕ia&a+#!81 w<fܴgc3$'#?(CxwVԥb,b,qv5 0i!:7tӥ}-4UM ApE^C m.ּM *]I !Kuheeq1>8f#v1D\ZK_խ'-ob  Crϴwy$"#LْST ȚԘINOϺs{mv%&|ڑzQaf;l ۚx"DHCjgՈc}+".5"[R%bdnXT` zUմvR Sjy<`1>n0x?孵#8evnq$r$gU2#.{Ӻ*bs $QH5k'sn#Wb7Dn]X+PTsK "edh`k L\|7<@(P]QmmciKiK;* O+;u)+;uؚ2\$f\&S@'νTI3]dv#7s iL|c&rG (3/oYJ؞`TbRٰJ4; #$g#9vỶ!O0=}?/LqOW?%#K`8*tv$ ៛(it&q?"Wh<`䓶\OR@{0Gd~47Q(V=tC0ob}^l=Iuaó'9ݞ+;ꍩe4ɑźQ{7-&b?WG^ezw= ڦ&h)qF\\naYbn-n![2mղM_-hg'oIӚn.aoOd[{B;Ȩ灔 K^|wMإ;xR(Kk`(|Xnہ*%:<ǧP-+ڢa\$veNɷЪw> ,楨 F4:! QK]xڈ5鐙UM2UQx3f9 gzEyXy1Sh-w-ƃIJB9q ۶`J2;WQG`wk"9][uHΓcgt>~a#:WIy8}1^vGncig[KY-Ħ{?wU88nD,|^aQҰ/{C"%۟ʍrAJ]l>Tep6(2dg%5ES^ju 3ϤAN#ñۼcr@DZ"1]7:pֱΦ1p$7nQ%7O9Prk;=J+4Q:{$| d r0seecw2ᐵb`0_jIT`T ܷ*m(o2@njRS ĝ ̷Nl XvvKctDq;?!^Zt2~ti"7_^ǧߟԥ6g -1*sv'%Ͼ\I䬲$J HA%q?ZE,7N;8lgo .nmA6b"Dɀ@V%¬q Lnc/`pq 9pR dѷHfԜ1z ^]!y$~\qg;Hbs;KVU{Z{KfӷK77H'q7W>M5)`W8#8OZp0,K am`eGC:R9b*5~r)N1ǥmkr}c1.8*@\#+6 Il{N11Uk\<bĸT@ DV9LfMXegCdsgkO)k潥yhXwySw9xu,]ܭF\(@e-,TFqPۨԸmVW \q4W 22@X`5"tXV0LSN/SqEdqXeEoV SP}C{T-s¶ n;7I=qpyNxl y!l4R ].䌅,rNILwv%npW@P=zf䞥5De|'XeUW(Sjr~^5dIl!%FWt#"F ;mԕ7SCb2s98=Ve`C]3Q<7I@#M)j-GȈȋ"1Y=y>NL) B#7rq?Tc ֭h徥 }( m?҈hzg9?ʨ%Y{u{n=/&t=56 ¾!XXjzMSM>D HU~Ya?x7޼~*^z/wKk)u(a!FoS|>"Rۡu](aSCOjf#@°P< g,["HԴxu,P%̑,Q+Ĉp[=>[p'ݟt+֝PǮjWzȓeϡU'^$\di%r"EckƩiII[1xXnfѬ63K4b |G?'8 HgAkͥK gf7\WrHҾ)ϛ̥kL8 3e1'r09ϿT ]N rBUnXb.2:qgPy͸fyflddx ܹ-E6֋򆄑dpqá⫠kS)ͱ%T+.z.?W%vXt5o#21 < Cmki33y%rN 'sn`;Ht0G#V .sߎٲ{IM3;B0BApsZeٷ^hKaPrvdyrvw m϶8ȍywu#ު}vuKc4cwrNF8w{R7b t'5VZ!HoLҶw WykdQ(B! }ӓs-O$mq 'IR[ņ8PGťiV_jVbmnza@'i["?٥ ;4d0 ؂@ 6Aֺu(,E"A¨#gsh˧D%!@=,bT۴pkyZCc錓#8]c̋d'pR0pqY6ܨ\ܙYV"T˳fq#J+&O-c\?*UA]r7n20vRV7I G$]4K FUrVD{1ҕrj:1] < pBg8 )楍 EwKJήD'>ݕ($Z uހX ЌlE#Y#u,a!pbpG# d(Mv;s|/#T5"XU@$umg޲V膻A"΁ 44/](T!a{iys1LR -srӅϩnmRo^İ$Z)āi'oS0b ߿ qyiK uړN*I?S 78Sdc MOɐl c9Ԩ(12%R>^3ELt $CsMA3'i!'}E_sO>^)ݦ+/*=N@rkBE8I*7,zQ^āAKB {rգ̍Q]b@ c Ա\6$I<ʼnmF*1#ᥑF#CVL'Ǹoqkixod@\)1^=|;I=J5]69mcΐ5k6Fv1ǁsx \ZtlS;Wp/uv>ZIt1nmY2lmma6>jzq2Jc|'Qslpz֭d:CAo#M,^}j˔Tkq'jmz:gGU6<_3-6+=bo5[=M̓"Dۉy񆈗 >-;7I!%v 8Nqvu涡~+Qχ<1igN]Z̠ $:w]1O$wb<1@dې;>s4|%5OqiXg$HUĖ*S#FK++SKTKOIc -n9]y$êvp,E>{kCWX'̢%m~q#\3.cw,1\YgElHe_u*1֞ iu'X1ؠgo6<($;b.uYyȑoB18Bf\`@6 =@5+Z-R 2؀c٘NŅۑQib{cPD;9* 5Vn♑B1a;sʔ8ݫ~'-b7?kςwf}CqO^M 1:Ӵ];U%giΒFkm6-؍J(A1 u횖( Ԟg2\T@B>\/j7a$pZv]mwFR ˴k8CsTIm$kiKFE|z;պq 8h/m6Q5',w2;b0Y ,1R9=x[n6й}˴:qx#=0(re=)$M4p6%>hN2ޣgS$[LKq$EX!}@ ~nNI&%ő#up V ܜ Mtfܼ۴e(F2yݹI'*GlrQqסDy wʭqx EhftCxE' A̹Brjie@.nI%?ǿpV3Tyfh ]FhcwF'q#Ն:dt)%ܚ&yvL+Fsճ%ǰS ̡d2L+'~ec9++]m,*F|rIc, Bo/ndp*ғ\!:/H*H/%l%v*8R96hwVp[8<#F+n^OɤPN:5*d{TKԇ$d ~=L8=?*-ͰWБHH:'oZ[ȓ8ҝ @'=xI]p'2q֤Wx⩓-=/=p`AHï7D8njUvQ988jZ\f`.ŹnRtlXŲ8g2鞎Id|1?s֗k;"8/ $ps\FR]nrZōjDe{q;S^i>sg43guF:AZ^K{\eڌ}·iI'WrfK0sV#U*1xǷ،3wby6Y&Hhn$J.$r< ´1Чs[ԑKk%uYIp`¼ ^GP >$}?:]֓-n\<-%捔gZޛ.ҵK}nvOmU4\Xw:%کvjv|W<=t8.o%dk-1cHO'.Ēz浣qgppv1};b1>.O2 & a整U!K \dU;=&BFmmUOYĉ:YǜBA!J 5 nf]/%=s3/_H7|s`zUFKK#$b usuԞovo0s#|#:\ KgRЯǂG_\;4t\Yng .J` e $r3Y3o+͡ggPB'r9.VZFltvK;c>z-Q~pD{P\ܹ$\8>f<}8$wjtd6A ,br̡?18=15i]581Xк8^9jzuF{H^& !i'X:`䃟ȖɻyV!,w.ZIdN\]E4JRMyd i5n$u9A|E[ !y `N@̙2s4־I^y)-Mc= ԲB$A\uZ|j0iyslI][hBW3#|sE<:Is %hhʖAwti_ |3rIۓi_\,7;S*6309'ִ.'pmHZy-#FZ?<|SiiVJ,@.FlWDH @ltȪjL堡#&=N(JڗNH #ҜRV[RNH'n8gs֩a'h ƞy9?ҴՋzA{TA$5)fA?\NoF(lw ,s{Q%L}!n8gHBtk M\d01#p !=I4dc=LuW}YQjKw*E UH*meZJ#LMpzZg{a]O^|:XnyvWm|A׎>aۭy4S.b{Y,0[U&*^k=>.KõI]BId[hz8ϡz4dDGl9NFx :AX<g2d#k0 q7L 'A LґC z\^Zki\j,:lA ŏ,yrG#:SIѥe}P%/}RhDrtŽ庿uZ LbL0ǦkntfG<딸npAgN%u+ @MQM#`I#O[9N]nGidN[3*;Am%F#A=7sWec[_O"Qyv@LS s#ӎ@q' H"[d`cDK cF!PugIS4g{X6T **K3.z1Ҫm-w?f%Ir,T (hq9c.G@I8b@Bp̸80HN7VF4%ŔRCtTTx97q9Muw]Z"]4phea$sqi>d@K$7ړNf8bIŒ0}}*ӧC[R&V e9*Voם)T[-]fDiC"l.zgyӠw+-ݴEf&˻ a8Ï8 k@1;L PsHsSYQI6`m3pAkk2[m܏{".6 wg8>ylCQkWk[y_1[GC!"E$ʐ;{̘O%ܖi>0Tn8 *cYhMGfwmotNPM#|60y=84zK̚&1,xBâ7Ͽ/0Ch3 Ũ68b1ڕw*$3\qqkf"Ǎ7rU ʡ\`噛OCOCE ;щ1{d100xdV8t Cb,~Fx铊RwRZ~+|ǗI= [GV'8x%A##ԥ>❚wtԨ$`lh>ӒAT~3Ѝv |=8?<_Oǿҗ(ba"y㑞oǁzSn:A?1Oo*o 䎧<\G8᱑j-j?㢎#:T /^B` r[OJtsH6y28i!qX`<+ͩCBM$o[|品?N3Yڽ\$R"nxjYST;Weo~d6D<.s\\c _fm-+O˂9<3^+`Os۝aXB:c^=N&]ϛ<1) K&<8ϵTr+ (e$}q=Jd0e0p9~<"7ZWg2;21$yMަj_ 5ǔE &N)eGE(2 r3לj3 ><3@ '#oOj4kZFX/ $z~q׏J*ꬊggj=6+<HŒ a6~/{[*. O87fZ]s5+6A2$vlMF6gE-LT<dn38JOpF-Hna pU$qN֞Im0 ϖ!:U=CZKNMM-Q%mUi #ѐ< >j䲒fgH^IQ<4ZSGJNLOPXN YZ\pZ]^fgt\%hjkrlsf(tv}wZq7p@|Esavn|Nx{a͒nw~ϐևӭ۔ڔۛ!Created with GIMP! , H*\ȰÇ#JHŋ#Z1CƏ C>!I(M\c&XAF &<ɳa !LHQtXӧ3#J3xG Pò (XZ˶ 3Ȳe?Ur̚@eg4&Z -َa]pK5@pH"Ilx=K0rxߺI (/Ԡg ^=œ`NpWhR$ڼ2MW@?`HUUX ̳pГ 2ΘeE*R , ~xQ!9_K2`qEdm՗h V E 5PEi 0HgRtfЦ IB ~ 8$ \Lp< hEeyq%r R@L"9(@R5HyªP-@0teLkQ IBQqm>$9(LG枫" T9I T/ %d(E@)jT&g^đ3jIDQgn<# @Dp |PfL4rA@ 0 5:DsAU|Q眴f 0 _< {TI64,E!T]K o q <f6 }ްu!԰܋g^$ndF0 2ha0B>yĹfHzCE\ &  9ַu_YӂDžSt,$:2 Msg'?~8 D ^A^(u !2AT7f,p_Cp6$l,(a87 Rx'@"@ 1ArA1–(H 9zD0lA=3(Du8@㙄:IB@,ÌX-A L~Ȋ"` a - `#4ZG3QiO┵ahC2_l&>d)ҡ)XBCi$3tFaũ ;`+L4AU*x#Xuiz #uEu岨M /^Hjm?ӨMO/ hք7X`- йF%(,G3BX`͢ P1xa5I&ml+[ږ.I?DA>i(U)!! kLp"n(8R²mfe&A!qVQHAUZЍ|5ڵf2`4|ad), f%U^N7pU!]KDb0bB9,R6<6I̍)$[XCaf81IΤ6+0ና>i0 JXWPx̍;l%m[X t |#M@Eb-t!dy~,TAmyp1`Qг$Єо<"H3AR'cX)4qazRcJ4?Xf}^Ȓ>иgE]r.qEk(Ibb_,@ЁZmˀ BMkx5q _mA`_t~&cWsda Ջs&& {;9g8c0&P hw3=ďB_$ umPG:tc%O9?x"-kb~@y <~ƾ ;/IUV UǵtD}@^EN6 E^}5)s,5xƇɀkaB]E2UC/`&wxC-4prNOg1CM*ESF2R ɱ=Zs s9`*q{#p8f !EUE!p ޠx zpmXWO$G xn ` }d8 i*Ess'Ix;y u"Dw+z&z,> {u%B~)E#a`G ~"~C.t2& E -aeS/* #ehNIK!3}6 O!M*) . 2N!'jpU #5)or`+W.2'0)3#.]L6%]8+; /9A)2{{b:6.65=h>29B;p?,>@7 \Wr@0z0Ip_4zt$AiRĥP@̳ ]u`_>zP{ӝL0#$WrAp6O~^rnx8bχȢC JCV2" Eh~Ȱ]ش-<b1)&X&4Q kրAnq;AJ ^4R؁\ICdN6ldwEIjђ3 h%j̞C6Pds=VfÕY:fZRQ<, 1)yJn ̀d+JJ6L;IIhS@A d |d!̮eИȬ2df;Ac)B!ll&g W7{,'3߁x'Iu,"R6 !ټnud\$Is,E7Ǝ2uVHucY̗6^_0'i>5z:tdZǾ5-\J _L UJ F YlلzLU=)\cKݷ㤔T5I(0` |=TY? P>&u->b'%:zYhHX 7HaqkqTm+_9P㵰?a_㺵,Uk}$qr,x3l#:FW;҃"^4~!Ɛjy(01B8dnsZbX:_tČۅGPO ,jbro\^v0 ƔL!E#!/Fe[[}zG,ǫndlpS-~ƅ tXax^s«}]Yl&xMn^$< ZeXI)(Y%JZX~5l˒8Bp{?E&хO 9dnϫ~O 66B ` 9k@Ё Ϩ2U4D1)-؎SSN!:06PBdNn2 _TE﷿߁R:w;d$@f( Zwclcn@ wU*mTUt".F E@^ yX\Mm _9 >y6я~\}smԵS 558!Q)"`t!wC f?ҏ⾆ {%!P,) zP  [ qe˷E4K1UL9S/=60 @ m`\XO  ӐCt~KdpC (pg2 t% @ 2xGDK `k m 01 ͑KP' `0 Ŵ~=$ P~ Pg} `E@"0  W1P;p À>A `PP #Wx 3@smBho{%( `p StAݰ `F  W*-wm` K7AJ,V$X Ͱ 0 ==ݰ p ` CWB #p]!@ő lNZQ/@v` 0  0 'p vF5 `P }0`XBRyK %yXG  p`|p P  Q Br 9 '"T X 6m (Z!h CiЦ D)p` !N ؂"y D T RvV\P0 ?iXpx ؠͰ % !┲ p!!xЛ2B#1 d`"!y(YF0Pq 8 r(A8A@IruB.d`j6S v!C`0I(_r7E4'0J##͙'Z)WᩢA3bBoBr"Y"v`h ,ڢ@ qr.R"y82 _(BJ Х@ +9B.i!(Yo2abwx > |J'#:j:!" P^ $s JB7 9pQ. 0a]-32$4+T Q:5,Z yp"CC0rGsP7HdH RʦUz@#x ʪr#7&s9c$ E%[ɒ,0#Ap902C0pqTV" 34S q@>ų9-+&9ɰaANm&r 4[42@j*"ು,p p/SAJ"'b+IJ V0$Oз~:@ayО%0ؗ0 @0&A'iZBYs0hYзDw@P0gp$;'E-a;h` hh`"Ժ6 aP Or@@q@q7=˻QY h s5;i@nq28Z0 ` ` cP|kt0 }hy; : o` sVq0N`k?a! A!z { (\>  {P t&Q Ba` G< `l wl11K`au;1p`n { lz'зĉspȊ  :b[L {LuGf $?lK˻L k{Ž  k}+ƺ ԼpLN1k"(~l6## |[L46`nV }k{uQ1sǙ|hBϔ{&g},͹l2ʋ}Ĭk;}.+?):\s(?P.+?)\s*'\ '\n(\s+\[(?P.+?)\])?') def get_error(d): if 'GENERATED' in d['license']: return None if d['license'] != 'GPL (v3 or later)': return 'License should be "GPL (v3 or later)".' if d['copyright'] is None: return 'Copyright is missing (needs to include www.stani.be).' if not('www.stani.be' in d['copyright']): return "Copyright doesn't include 'www.stani.be'" def check(): time_start = time.time() error = 0 total = 0 cur_dir = os.getcwd() stdout, stderr = system.shell(['licensecheck', '--recursive', '--copyright', '--ignore', 'phatch/other|wxGlade|license', os.path.abspath('..'), ]) for match in RE_FILE.finditer(stdout): d = match.groupdict() d['error'] = get_error(d) if d['error'] and not('api.py' in d['filename']): print('%(filename)s:\n'\ '- %(error)s\n'\ '- license: %(license)s\n'\ '- copyright: %(copyright)s\n' % d) error += 1 total += 1 print('Ran %d license tests in %.3fs' % (total, time.time() - time_start)) sys.exit(error) if __name__ == '__main__': check() phatch-0.2.7/tests/pep8_test.py0000755000000000000000000000700211346363116016362 0ustar rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright (C) 2007-2010 www.stani.be # 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 http://www.gnu.org/licenses/ # # Follows PEP8 import os import pickle import time import shelve import sys sys.path.insert(0, os.path.join('..', 'phatch')) try: from other import pep8 except ImportError: print("You need to run this script from the 'tests' directory.") sys.exit(1) ERROR_HEADER = "Shame on you! These file(s) don't follow PEP8:\n%s\n" PEP8_APP = os.path.join('..', 'phatch', 'other', 'pep8.py') PEP8_ARGS = ['python', PEP8_APP, '--show-source', '--repeat', '--count'] WXGLADE = 'wxGlade' OTHER = os.path.join('phatch', 'other') OUTPUT = os.path.join('tests', 'output') ERROR_MESSAGE = '' def message(x): global ERROR_MESSAGE print(x) ERROR_MESSAGE += '%s\n' % x pep8.process_options(PEP8_ARGS) pep8.message = message BLACK_LIST = [ os.path.join('phatch', 'lib', 'metadataTest.py'), os.path.join('phatch', 'lib', 'pyWx', 'about.py'), os.path.join('phatch', 'lib', 'pyWx', 'dialogsInspector.py'), os.path.join('phatch', 'lib', 'pyWx', 'folderFileBrowser.py'), ] def test(dirname='..'): global ERROR_MESSAGE def needs_pep8(filename): key = os.path.abspath(filename)[n:] return filename.endswith('.py') and not ( OTHER in filename or OUTPUT in filename or WXGLADE in filename or key in BLACK_LIST ) time_start = time.time() total = 0 dirname = os.path.abspath(dirname) n = len(dirname) + 1 summary = [] if not os.path.exists('cache'): os.mkdir('cache') cache = shelve.open(os.path.join('cache', 'pep8'), protocol=pickle.HIGHEST_PROTOCOL) for root, dirs, files in os.walk(dirname): for name in files: filename = os.path.join(root, name) if not needs_pep8(filename): continue ERROR_MESSAGE = '' count = None mtime = os.path.getmtime(filename) if filename in cache: error_message, count, cmtime = cache[filename] if mtime != cmtime: count = None elif error_message: message(error_message) if count is None: checker = pep8.Checker(filename) # updates ERROR_MESSAGE count = checker.check_all() cache[filename] = ERROR_MESSAGE, count, mtime if count or ERROR_MESSAGE: summary.append((filename, count)) total += 1 cache.close() if summary: print(ERROR_HEADER % '\n'.join( ['%s (%d)' % (filename, count) for filename, count in summary] )) print('Ran %d PEP8 tests in %.3fs' % (total, time.time() - time_start)) return summary def test_with_exit(dirname=''): summary = test(dirname) if summary: sys.exit(1) if __name__ == '__main__': test_with_exit('..') phatch-0.2.7/tests/test_suite/0000755000000000000000000000000011346363116016263 5ustar rootroot00000000000000phatch-0.2.7/tests/test_suite/__init__.py0000644000000000000000000000146411346363116020401 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2009 Nadia Alramli, Stani (www.stani.be) # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 phatch-0.2.7/tests/test_suite/bzr_precommit_test.py0000644000000000000000000000545211346363116022556 0ustar rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright (C) 2007-2010 www.stani.be # 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 http://www.gnu.org/licenses/ # # Follows PEP8 """This is a plugin/hook for bazaar. Linux/Mac: Symlink (ln -s) this file to ~/.bazaar/plugins/ Windows: Copy this file to C:\Program Files\Bazaar\plugins """ import sys from bzrlib import branch from bzrlib.lazy_import import lazy_import lazy_import(globals(), """ import urllib from bzrlib import builtins, errors, option """) LINUX = sys.platform.startswith('linux') WINDOWS = sys.platform.startswith('win') def master_to_path(master): path = urllib.unquote(master.base.replace('file://', '')) if WINDOWS: path = path.lstrip('/').replace('/', '\\') return path def pre_commit_hook(local, master, old_revno, old_revid, future_revno, future_revid, tree_delta, future_tree): """This hook will execute precommit script from root path of the bazaar branch. Commit will be canceled if precommit fails.""" # bzr requires that modules are imported inside the hook import os import subprocess import time import urllib # initialize time time_start = time.time() # initializes paths current_dir = os.getcwd() master_dir = master_to_path(master) test_dir = os.path.join(master_dir, 'tests') phatch_dir = os.path.join(master_dir, 'phatch') if not os.path.exists(phatch_dir): # Ignore other projects other than Phatch return # Ensure to undo the directory change def exit(error=None): os.chdir(current_dir) print('\nRan precommit tests in %.3fs\n' % (time.time() - time_start)) if error: raise errors.BzrError( 'Unable to commit, because %s test failed.' % error) os.chdir(test_dir) # Use subprocesses so exceptions can't mess with the state print(' ' * 80) if LINUX and subprocess.call(['python', 'license_test.py']): exit('license') if not WINDOWS and subprocess.call(['python', 'doc_test.py']): exit('doctest') print('-' * 70) if subprocess.call(['python', 'pep8_test.py']): exit('PEP8') exit() branch.Branch.hooks.install_named_hook('pre_commit', pre_commit_hook, 'Check pre_commit hook') phatch-0.2.7/tests/test_suite/config.py0000644000000000000000000000575411346363116020115 0ustar rootroot00000000000000#!/usr/bin/python # Phatch - Photo Batch Processor # Copyright (C) 2009 Nadia Alramli, www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Follows PEP8 import os import sys import utils ###################################################### # WARNING: Paths are relative to the parent directory# ###################################################### # Actions to be disabled from the full test DISABLE_ACTIONS = set(['rename', 'geek', 'geotag']) # Default image input directory DEFAULT_INPUT = utils.system_path('input') # Default image output directory DEFAULT_OUTPUT = utils.system_path('output/images') # Default log path DEFAULT_LOG = utils.system_path('output/logs.txt') # Default report path DEFAULT_REPORT = utils.system_path('output/report.txt') # Out actionlists path OUT_ACTIONLISTS_PATH = utils.system_path('output/actionlists') # diff path OUT_DIFF = utils.system_path('output/diff') # Phatch package path PHATCH_PATH = utils.system_path('../phatch/') # Phatch application path PHATCH_APP_PATH = utils.system_path(os.path.join(PHATCH_PATH, 'phatch.py')) # Phatch actions path PHATCH_ACTIONS_PATH = utils.system_path(os.path.join(PHATCH_PATH, 'actions')) # Inserting phatch path to system path sys.path.insert(0, PHATCH_PATH) import phatch # Phatch configurations CONFIG_PATHS = phatch.init_config_paths() # Phatch log path USER_LOG_PATH = CONFIG_PATHS['USER_LOG_PATH'] # Phatch library actionlists path PHATCH_ACTIONLISTS_PATH = CONFIG_PATHS['PHATCH_ACTIONLISTS_PATH'] # Report template REPORT_TEMPLATE = """ Errors: %(errors)s Missing: %(missing)s Corrupted: %(corrupted)s Mismatch: %(mismatch)s New: %(new)s """ # File names shortening map SHORTNAME_MAP = sorted([ ('Automatice', 'Auto'), ('Background', 'Bg'), ('Corner', ''), ('Custom', 'Cust'), ('Direction', 'Dir'), ('False', '0'), ('Floor', 'Fl'), ('Gradient', 'Gr'), ('Horizontal', 'Hor'), ('Justification', 'Just'), ('Opacity', 'Op'), ('Options', 'Ops'), ('Orientation', 'Ori'), ('Position', 'Pos'), ('Reflection', 'Rfl'), ('Rotate', 'Rot'), ('Rotation', 'Rot'), ('SameMethodforAllCorners', 'Same'), ('Thumbnail', 'Thumb'), ('Transformation', 'Trafo'), ('Transparent', 'Trapa'), ('True', '1'), ('Utility', 'Util'), ('Vertical', 'Ver'), ('degrees', '')], key=lambda a: len(a[0]), reverse=True) phatch-0.2.7/tests/test_suite/defaults.py0000644000000000000000000000164011346363116020445 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2009 Nadia Alramli, Stani (www.stani.be) # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 blender = { 'Render Width': '128px', 'Render Height': '128px'} #geotag = { # 'GPS Data': '' #} phatch-0.2.7/tests/test_suite/phatchtools.py0000644000000000000000000003165511346363116021177 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2009 Nadia Alramli, Stani (www.stani.be) # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 import re import glob import os.path import sys import logging import subprocess # Test suite modules import utils import config import defaults import gettext gettext.install('_') # Phatch modules from lib.safe import eval_safe ################################# # Building Actions Hashtable # ################################# __DEFAULTS = {} def get_defaults(): """Get actions custom defaults Returns a dictionary that maps action names to defaults""" global __DEFAULTS if __DEFAULTS: return __DEFAULTS __DEFAULTS = dict( (action, getattr(defaults, action)) for action in dir(defaults) if not action.startswith('__')) return __DEFAULTS __ACTIONS = {} def get_actions(): """Get phatch actions Returns a dictionary that maps action names to objects""" global __ACTIONS if __ACTIONS: return __ACTIONS action_names = [utils.file_name(action_file) for action_file in glob.glob(os.path.join(config.PHATCH_ACTIONS_PATH, '*.py'))] default_values = get_defaults() __ACTIONS = dict( ( name, __import__( 'actions.%s' % name, name, fromlist=['actions']).Action()) for name in action_names if name != '__init__') for name, fields in default_values.iteritems(): set_action_fields(__ACTIONS[name], fields) return __ACTIONS def get_action(action_name): """Get action object by name""" return get_actions()[action_name] __FILE_ACTIONS = {} def get_file_actions(): """Get file actions i.e actions that are valid last""" global __FILE_ACTIONS if __FILE_ACTIONS: return __FILE_ACTIONS __FILE_ACTIONS = dict( (name, action) for name, action in get_actions().iteritems() if action.valid_last) return __FILE_ACTIONS __LIBRARY_ACTIONLISTS = {} def get_library_list(): """Get library actionlists""" global __LIBRARY_ACTIONLISTS if __LIBRARY_ACTIONLISTS: return __LIBRARY_ACTIONLISTS pattern = os.path.join(config.PHATCH_ACTIONLISTS_PATH, '*.phatch') actionlist_paths = glob.glob(pattern) __LIBRARY_ACTIONLISTS = dict( ( utils.file_name(actionlist_file), eval_safe(open(actionlist_file).read())) for actionlist_file in actionlist_paths) return __LIBRARY_ACTIONLISTS __ACTIONS_BY_TAGS = {} def get_action_tags(): """Get actions by tags""" global __ACTIONS_BY_TAGS if __ACTIONS_BY_TAGS: return __ACTIONS_BY_TAGS for name, action in get_actions().iteritems(): if name in config.DISABLE_ACTIONS: continue for tag in action.tags: if tag in __ACTIONS_BY_TAGS: __ACTIONS_BY_TAGS[tag][name] = action else: __ACTIONS_BY_TAGS[tag] = {name: action} return __ACTIONS_BY_TAGS ######################################### # ActionLists Generation Functions # ######################################### def generate_actionlists(output='', actionlists=None, file_action='save', choices_function=None, include_file_action=False): """Generate all possible actionlist files based on a choice_function and a list of actionlists :param output: processed images output path :type output: string :param actionlist: list of action lists :type actionlist: list :param file_action: the file action to use :type file_action: string :param choices_function: choice generation function :type choices_function: function :param include_file_action: whether to include the file action in the generated possiblities :type include_file_action: boolean""" logging.info('Generating actionlists...') if not choices_function: choices_function = possible_choices if not actionlists: file_action = get_action(file_action) actionlists = minimal_actionlists(get_actions().values(), file_action) actionlists_info = {} for actionlist in actionlists: if include_file_action or len(actionlist) == 1: possible_actionlist = actionlist else: possible_actionlist = actionlist[:-1] possibilities = utils.product_map( generator=choices_function, *possible_actionlist) for fields_list in possibilities: for (fields, action) in zip(fields_list, actionlist): set_action_fields(action, fields) filename = generate_name(possible_actionlist, fields_list) actionlist = set_file_actions(filename, actionlist, output) output_path = os.path.join( config.OUT_ACTIONLISTS_PATH, '%s.phatch' % filename) utils.write_file(output_path, repr(dump(actionlist))) actionlists_info[filename] = output_path return actionlists_info def generate_library_actionlists(output=''): """Build library actionlists :param output: the processed image output path :type output: string""" logging.info('Generating library actionlists...') actionlists_info = {} for name, actionlist in get_library_list().iteritems(): file_actions = [ action for action in actionlist['actions'] if action['label'].lower() in get_file_actions()] for index, file_action in enumerate(file_actions): file_action['fields']['In'] = '%s' % output file_action['fields']['File Name'] =\ '_%s' % utils.indexed_name(name, index) output_path = os.path.join( config.OUT_ACTIONLISTS_PATH, '%s.phatch' % name) utils.write_file(output_path, repr(actionlist)) actionlists_info[name] = output_path return actionlists_info def execute_actionlist(input, actionlist, options): """Execute the actionlist on input path""" output, error = subprocess.Popen( ['python', config.PHATCH_APP_PATH, '-c', options, actionlist, input], stderr=subprocess.PIPE).communicate() logs_file = open(config.USER_LOG_PATH) logs = logs_file.read() logs_file.close() if logs: logging.error( '\nactionlist: %s\n%s\n' % (actionlist, logs)) if error: logging.error( '\nactionlist: %s\n%s\n' % (actionlist, error)) return not(error or logs) def execute_actionlists(input, actionlists=None, options=''): """Execute a list of actionlists on input path. If no actionlist was given all actionlists will be executed""" errors = [] if not actionlists: actionlists = dict( ( utils.file_name(path), os.path.join(config.OUT_ACTIONLISTS_PATH, path)) for path in os.listdir(config.OUT_ACTIONLISTS_PATH)) total = len(actionlists) for i, name in enumerate(sorted(actionlists)): sys.stdout.write( '\rRunning %s/%s %s' % ( i + 1, total, name[:50].ljust(50))) sys.stdout.flush() if not execute_actionlist(input, actionlists[name], options): errors.append(name) print return errors ################################# # Actions Helper Functions # ################################# def minimal_actionlists(actions, file_action, extra=None): """Convert a single action into a minimal actionlist""" if not extra: extra = [] return [ utils.inline_if( action.valid_last, extra + [action], extra + [action, file_action]) for action in actions] def set_action_fields(action, fields): """Set action fields""" for field_name, field_value in fields.iteritems(): action.set_field(field_name, field_value) def set_file_actions(name, actionlist, output): """Set file actions output path""" file_actions = [action for action in actionlist if action.valid_last] for index, file_action in enumerate(file_actions): file_action.set_field( 'In', '%s' % output) file_action.set_field( 'File Name', '_%s' % utils.indexed_name(name, index)) return actionlist def generate_name(actionlists, fields_list): """Generate file names based on field values""" fields_name = '_'.join( '%s=%s' % ( field_name.strip().replace(' ', ''), ('%s' % field_value).strip().replace(' ', '')) for fields in fields_list for field_name, field_value in fields.iteritems()) filename = '_'.join( '_'.join(map(str.lower, action.label.split())) for action in actionlists) if fields_name: filename = '%s_%s' % (filename, fields_name) return shorten(filename) REMOVE_PARENTHESES = re.compile(r'\([^)]*\)') def shorten(filename): """Shorten a filename into a managable length""" filename = REMOVE_PARENTHESES.sub('', filename) return utils.replace_all(filename, config.SHORTNAME_MAP) def dump(actions): """Dump a list of actions into an actionlist dictionary""" data = [action.dump() for action in actions] return {'description': '', 'actions': data, 'version': '0.2.0.test'} def possible_choices(action): """Generate all possible choices based on boolean and choice fields""" choices = [] possible_choices_helper(action, choices) return choices def possible_choices_helper(action, choices): """Generate all possible action choices based on boolean and choice fields This is a helper function""" if hasattr(action, 'get_relevant_field_labels'): relevant = action.get_relevant_field_labels() else: relevant = action._fields.keys() choice_fields = dict( (name, field) for name, field in action._fields.iteritems() if isinstance(field, (action.BooleanField, action.ChoiceField)) and not isinstance(field, ( action.ImageFilterField, action.ImageResampleField, action.ImageResampleAutoField)) and name != '__enabled__' and name in relevant) choice = dict( (fname, field.get()) for fname, field in choice_fields.iteritems()) if choice in choices: return choices.append(choice) for fname, field in choice_fields.iteritems(): default = field.get() if isinstance(field, action.BooleanField): options = [True, False] else: options = field.choices for option in options: if option == default: continue action.set_field(fname, option) possible_choices_helper(action, choices) def extended_choices(action): """Generate all possible choices based on boolean and choice fields""" choices = [] extended_choices_helper(action, choices) return choices def extended_choices_helper(action, choices): """Generate all possible action choices based on boolean and choice fields This is a helper function""" if hasattr(action, 'get_relevant_field_labels'): relevant = action.get_relevant_field_labels() else: relevant = action._fields.keys() choice_fields = dict( (name, field) for name, field in action._fields.iteritems() if isinstance( field, (action.BooleanField, action.ChoiceField, action.SliderField)) and not isinstance(field, ( action.ImageFilterField, action.ImageResampleField, action.ImageResampleAutoField)) and name != '__enabled__' and name in relevant) choice = dict( (fname, field.get()) for fname, field in choice_fields.iteritems()) if choice in choices: return choices.append(choice) for fname, field in choice_fields.iteritems(): default = field.get() if isinstance(field, action.BooleanField): options = [True, False] elif isinstance(field, action.SliderField): options = [field.max, (field.max + field.min) / 2, field.min] else: options = field.choices for option in options: if option == default: continue action.set_field(fname, option) extended_choices_helper(action, choices) phatch-0.2.7/tests/test_suite/utils.py0000644000000000000000000001415511346363116020003 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2009 Nadia Alramli, Stani (www.stani.be) # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 import filecmp import os import shutil def system_path(path): """Convert a path string into the correct form""" return os.path.abspath(os.path.normpath(path)) def create_path(path): """Create a path if it doesn't already exist""" if not os.path.exists(path): os.makedirs(path) def remove_path(path): """Delete a file or a direcotry""" if os.path.isdir(path): shutil.rmtree(path) elif os.path.exists(path): os.remove(path) def replace_all(input, replace_map): """Replace multiple words in a string""" for key, value in replace_map: input = input.replace(key, value) return input def write_file(path, data): """Write to a file""" f = open(path, 'w') f.write(data) f.close() def file_name(path): """Get the file name from path without its extension""" if os.path.isdir(path): return '' return os.path.basename(path).partition('.')[0] def file_extension(path): """Get the file extension for path""" if os.path.isdir(path): return '' return os.path.basename(path).partition('.')[-1] def indexed_name(name, index): """Return an indexed name""" if index: return '%s_%s' % (name, index) return name def compare(file1, file2): """Compare two files""" return filecmp.cmp(file1, file2) def analyze(original, other): """Analyze the difference between the two images""" result = {} from lib import openImage original_image = openImage.open(original) other_image = openImage.open(other) if other_image.mode != original_image.mode: result['reason'] = 'Mismatching modes %s != %s' % ( other_image.mode, original_image.mode) elif other_image.size != original_image.size: result['reason'] = 'Mismatching sizes %s != %s' % ( other_image.size, original_image.size) elif original_image.info != other_image.info: diff = info_diff(original_image.info, other_image.info) result['reason'] = 'Mismatching info\n\t%s' % diff elif not match_metadata(original, other): result['reason'] = 'Mismatching metadata' else: diff_image = image_diff(original_image, other_image) if diff_image: result['reason'] = 'Mismatching pixels' result['diff'] = diff_image else: result['reason'] = 'Unidentifiable difference' return result def info_diff(original_info, other_info): """Comparing image info""" if original_info == other_info: return result = {'extra': [], 'missing': [], 'diff': []} keys = sorted(list(set(original_info.keys() + other_info.keys()))) for key in keys: original_value = original_info.get(key) other_value = other_info.get(key) if not original_value: result['extra'].append(key) elif not other_value: result['missing'].append(key) elif original_value != other_value: result['diff'].append( '%s should be %s not %s' % (key, original_value, other_value)) diff = [] if result['missing']: diff.append('Missing key: %s' % ', '.join(result['missing'])) if result['extra']: diff.append('Extra key: %s' % ', '.join(result['extra'])) if result['diff']: diff.append('Difference: %s' % ', '.join(result['diff'])) return '\n\t'.join(diff) def image_diff(im1, im2): """Return the diff of two images""" from PIL import Image, ImageMath r1, g1, b1, a1 = im1.convert('RGBA').split() r2, g2, b2, a2 = im2.convert('RGBA').split() diff_image = ImageMath.eval( """convert( max( max( max(abs(r1 - r2), abs(g1 - g2)), abs(b1 - b2) ), abs(a1 - a2) ), 'L')""", r1=r1, r2=r2, g1=g1, g2=g2, b1=b1, b2=b2, a1=a1, a2=a2) if ImageMath.eval('not(image)', image=diff_image): return return diff_image def match_metadata(image1_path, image2_path): """Compare images metadata""" try: import pyexiv2 image1 = pyexiv2.Image(image1_path) image1.readMetadata() image2 = pyexiv2.Image(image2_path) image2.readMetadata() metadata1 = sorted([(key, image1[key]) for key in image1.exifKeys()]) metadata2 = sorted([(key, image2[key]) for key in image2.exifKeys()]) return metadata1 == metadata2 except IOError: return True def banner(title, width=50): """Textual banner""" return '%s\n*%s*\n%s\n' % ('*' * 50, title.center(48, ' ') + '*' * 50) def product(*args, **kwds): """Cartesian product of input iterables.""" # Copyed from python 2.6 docs # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111 pools = map(tuple, args) * kwds.get('repeat', 1) result = [[]] for pool in pools: result = [x + [y] for x in result for y in pool] for prod in result: yield tuple(prod) def product_map(*args, **kwds): generator = kwds.get('generator', list) return product(*[generator(arg) for arg in args]) def inline_if(condition, when_true, when_false): if condition: return when_true else: return when_false phatch-0.2.7/tools/0000755000000000000000000000000011346363116014071 5ustar rootroot00000000000000phatch-0.2.7/tools/change_tags.py0000644000000000000000000000371311346363116016712 0ustar rootroot00000000000000#!/usr/bin/python # Copyright (C) 2009 Nadia Alramli, Stani (www.stani.be) # # 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 http://www.gnu.org/licenses/ # # Follows PEP8 # A script to modify action tags import pprint import re import glob import os.path import sys ACTIONS_PATH = os.path.normpath('../phatch/actions') reg = re.compile(r'(\s*tags\s*=\s*).+') def parse_tags(tag_file): data = open(tag_file).read().split('\n\n') tag_lists = [map(str.strip, tags.split()) for tags in data] tags = {} for tag_list in tag_lists: for action in tag_list[1:]: if action in tags: tags[action].append(tag_list[0]) else: tags[action] = [tag_list[0]] return tags def tag_string(tags): return '[%s]' % ', '.join("_t('%s')" % tag.lower() for tag in tags) if __name__ == '__main__': if len(sys.argv) == 2: tag_file = sys.argv[1] else: tag_file = 'tag_list' tags = parse_tags(tag_file) actions = [ action for action in glob.glob(os.path.join(ACTIONS_PATH, '*.py')) if action != '__init__' ] for action in actions: data = open(action).read() name = os.path.basename(action) def replace_tags(match): return match.group(1) + tag_string(tags[name]) data = reg.sub(replace_tags, data) f = open(action, 'w') f.write(data) f.close() phatch-0.2.7/tools/tag_list0000644000000000000000000000176411346363116015632 0ustar rootroot00000000000000Default watermark.py save.py scale.py round.py transpose.py shadow.py text.py File copy.py rename.py save.py save_metadata.py Metadata write_tag.py delete_tags.py rename_tag.py geotag.py time_shift.py save_metadata.py Transform canvas.py crop.py fit.py lossless_jpeg.py rotate.py scale.py transpose.py offset.py perspective.py mirror.py Size canvas.py crop.py fit.py scale.py lossless_jpeg.py Color autocontrast.py background.py brightness.py color_to_alpha.py colorize.py contrast.py convert_mode.py desaturate.py equalize.py invert.py posterize.py saturation.py Filter border.py background.py common.py contour.py effect.py highlight.py imagemagick.py mask.py maximum.py median.py minimum.py mirror.py offset.py perspective.py rank.py reflection.py round.py shadow.py sketch.py solarize.py tamogen.py text.py watermark.py Plugin blender.py geek.py imagemagick.py

    ><)5CvJY>T;䶛:>4 =L휿n>h3 =zh&>pM=śO>&>еi>G^q>Q,> b,m>,=k>Zh|E7=eb> ?n=n>93efV}%?>z*Ԧ'?1HF%($?1/њl#?ְ` 釾彼"?Wn= ?i-Z#?o'5_K^;L#X/$?Ut<{I@@&?s 6qSImz'?t7dM,|(?N%O(?cYjO؎5(?c!?,?4p@z?'M. hD ?^\'| ?k+q8쾰h?*ii:׾e2??`Gm-&;kj?}~[&2о&_d?vNғ^߾e0?$NE?85?m1&4 ?m}-~ ?nTD?韴jξe?̉h0J査W?ׯFbM^U)#?xb%Ͼ9CP?-Sn,.9þ0?a;G*+Wپ?:Ӡ.U>q?+5a*W>C%?/YB!"Cf>ǟ)? (PHL ~>Y+?"H`R>)? n,k4y>%?!_T.E>O% ?&xr"">Q?&-j#ֻP>?4I@ ?ڇ>=?X9vdk v>?<=M͂J g` @ʐJ%\@y.UD$$uIK@M%Ja#~iK@D9jjj9c@A?nEe1@;nm5@4.jJݾzY@Pna Ԡ@\cAULu.@.KK;ieF@Eh@@#VEd 2@6C>%2?5K?>*`1? 4MZ3M.P@%@9YG5l@?.<Ȉ>g ?XCDu>6L ?Hх>"?^INӂ> ?F 磆>q ??I->R??7v1>3L?0d./E?oY>?o ,'* r >?A+z=*xx>T?a|.6*r>?4~+|Aym]>gkCہ?ʩ~>x]ž?µ/>s5?nqj> ?;ӘXJe>{/?"k >Ⱎ?&>]b?n"7!>g._?>tc2E>鑃?ct4Ol>H?BFi>?7i#*==[}? &=&'?Gϝw>K?\yB>?u's>AF?;ӎq>;ީh/?3g{>[e?Rv/Id?Sh26}>闿??&d/N>?'8}.m=#j?]F>ϖ?q 3I>.?FbsR>@7?@LCn> z<#?l[V>}<?ۨPU*> 8?$0+ML>А/D?7cM]>?%y?sA>6?iJ24?>Z?7PR>dZ?zY{[aKU>$}g?+X7%8s>Jr?_RTM;pA{>PYs8Ln>o7Ơ An>bNHg7iR>Ɩh'Oa@>}SBY>\ .TTΪ><!R[Q>jDWR189LoS>P_DX7>+8F nDl9Fhv>F]KWĝf?S;#?vL\g?TUA<? ꗯ}O?@`R~%*?J/X=W"?(#}歿ڿJ>?Q5^tB=h׿?| p׿X?)xۿ֟?`R22Yb?{`ѿ؋~?P畕Ϳ+?KvZӿZz?= PQ?>7ҿ=x?5\\ο,x?&/WɌɿaz?B[XĿ#@~?1!7F迿?%aImߗ}ÿ ?}Wn?DWNȿz?v .0>׬?OL%g־&L>G4 ?VEϜe> ?]Үv>R?2a @mta>^U?[`{T>^ ?AZˍ<bR>-?Q O\>?IgGNEw] p>?̾?xA,E>/?J<*`]rL>)?g=H4p[>?eOC_.T^>UfҿP@W=Mu] ٿ@1RrkܿͿ@W['yQܿ,@jSYcՂr#ؿ6@gO9ѿ9@չhфvɿ@- pft9¿є@1`ssR@ASXe׿%@ `R]YrĿc@HtE;OTSʿ@fLpoͿ@_}>O?MwF)>E>YE?0ƈ!>>?8ں˔:>?<:躅r\>,?{W=^ЂZ>qW?:m 瓆!>?3Hx>?+(v@>;!?T$d/+?>%?_; &+!rUկ>'?v[*xɢ>P%?_" *#rk>sC"?R )N+As>U,?}>f+?xY/>aؑfp?x±L>uq?ݍ>0?; >!؝?9k>-_S?!>?'n70">N&}I?8>sc33c[>yi3\?}BP>|e|?ip*N =]6?݉m >A?!#{)>)|?:LY> ?ƃE>ִ?;ێ.>X~Q?Ug4j>?5vl/?>͈v?gc2;7ǡ>v??'d0#d>1?}{>+?XA ?qJ_>!´?Ii>J*?~'ώ >/Y?S{ >U/ ?>+6?0l C>"?(c >#P?.>T?-i24>k az?6P*S&>-h ?0Y[k>n'?)$7T8>&.?RTO}2W'>lI23>SkVݪ-ם>ƺm\%C>hݡ`Za>hr`où><61]pW+x>[J^W|C>O]RP J?GhJ6?6*k G%??&W]ZFJ.?j` /Ө3? È[L_?#WbYHe^?ݾKS?ע7%F?b~]ԭU?ى{%㳿j˧?U&,!C?pxֽ̣ۘ?"z NuަP?\WSd?y?K|+NF?s\5W0xĺ?Cp5L!7? "gCԟBn?*UEA<Ӕ?u0\9q?w> ?B8P>w\>K?@K'B}>[?rDsg>C?.DZً.Z>l?Z?ĉ WW>N2#?Q7@@ b>{&?U&.Χpu>,O'?T&~彆>od%?!.ld0g{>[>!?,"TJ;{8>$?&q-5'>^?J/w-  p^@#[vs=!@YjݫDb@ֺ ;khJ@ù*}h'0w2f}@WJaҪhI @!\Xs\p@;5POU @bsK V!c@aIGq-Ud@n{)~7> ?IvcS0>?U$FGX+x翗@e} rڿ@ALOl(rؿ @dON 7ٿK@©MQЉB޿X@ާw".VH;M濏y@]F@Xc@ =yF@v.g v/'M@1˴g t@c[P,6@<>]Bp@YU.'@a-Ps> ?W23#&tl>i?2>Sa>?7ܽqk.Ky>0L?˥@dx>l0?Jߺ95F>E ?JS5^`>?$X86>?BW K>?}R3`>x?ߠI`9}d> ??\ҍL}>$?7 >1o1go?6>SIB<̺P@?ZiHQGA=ʥ|?Ȟe6O,Rx?pF= Sps?H`P5dOo?hؔrHJm?hخb=*7m?Ms&2%o?G7))6t?i5P)+&}?-jn)?:n&y?|A?IgM`x? [l?WrOԇet?HrjS+ 2? 2h٘?eJ` 8c9?  STtP?bՀ  F?83iW(+9q"&վa#>=#pѹ>eFZ ꐿȼ>>!7+U>G辅ߓ>Ienrپ>:ٍ Ǿv>%pgwm>7AܢwHb>$k~}㉕o>S)P_lQҽ>u+k aQ ?5ͱfrP&#?؝`$?wʴ @?Փ8^?Qgwg⛽^?m@CO!?(tWThھ 3$?O^3U־3) &?*jpG'PܾPUh&?mD ʹAu&?IwtM%?M 1&kgx*d}?-eIH]q1&j?eLl2? vir~?V/} ba5b?V\3U>:?q?9HM>?2[k/ >B K?]g{GF{92? rš;#u?r#C-?OHzMPb2s?̎7~[hr?!-R1֢?}ً_۾/P?ąm]þt?5S:V}Ң?FfZKT?xu(t?-V٣?J3i2<6ƽ??gc/Av/2KԾk?{h[ 4iL?t, ?g'v>F%?/&µl>-+?j!]o>0?-gb4~>4?_ C+hfȊ>5?G .{4 +>x3? 59cp)(>-*/? dROV>A)?{ >g#?p3>f?4tB>?E$c9̇@zʺ{JDi[Ȝ@TIDye5@f`Gj8@iw>{_õ@V3un!1Zʾ@Q?nY"$\@Bjd[@5=7awisVr@\UŬP@cKJ@EخeFE+ň=@WE.eu@" %|[e>3?)IB.>#?0D7*WMӾALD@{z}^ оҿ1@E d~N쾭oԿ@?LTM3 ٿy@$JNs;%@0Tz @'@\/8k@ٟd׾>s4@&5hH?h@'h@9ef>ag@%Rz_acٿPo@ZxWߚԿ@yDTGGQ߲>?mXN&?<#͜aA>?+#YE>+?k5}N.%>}I?= хE>c!?ZBHܖ>o ?B* [\>b ? =u6ٙȏ>L?i5Nm(KR>~?h+)c&ނIYS>?0#Q;Mkq>?UzGxSf.2?kFV@?b4p,_?? ?႔7D?̙<}?Ũxu|?󗅵^)H{V~?6>#s'oF?%n~`T$?}KJ%?l8YmG[#) ?g)2'8J[? ~ ľ*)Gd?Roؾ|?_DsZ Y?+])ݾG= ?<x̾l8_?dqֳ`?9g(u?;Ɛʅ n_?iỗTyv> >{?~ZZk?Ek>?cr99)d,>(>oӽ'>ņ@^ok>fN1u)45ͫ> ~U>\Zʥ kT>@ޏ%)-}2>Kp*ʼ>9s<ٖd>n~f7<~>z"WM>!)s25n$;6r>V/Y=zT(?wE1= þE)?i k>2&?^J3/>엾p$?' aKQHU>iלI"?C,Q(Hem>Yr!?q(t*uq>y[!?q~3b`>qվ"?]ػ>><徖b$?').>V[&?ٟW=澇 (?ϼFõ=׾B3)?{8ؿkNu?PZ4?|<"oG?Atvy=PF6?Bv.A=OK|?NG8Y9j>XV?fm'5b>cm?x#U > o[8?c2X R=Uwְ?0}C=2w?ފ;-rs?{W弃fg?ђٹQ4=74)Ơ?MDbx=74h?Ám@=!?"ot&x,>[W 9?Z vW/W>g$ޤ?K^+vI.?Nu+Kx>6:&K?o~Te>lDg/?c?>LB?0xEA>#MĂ?]=$It?x=?;B?ԋ>'?Gg{54>b,?2'X>0?ޙ2pۜ>W0? 8rz>Y.?G>FV|>c)?tp<9 P>bK$?5i ߸k>2?k!cCd鏕A@>u?('>S?;)21nZ>?(kÂ>"?5$VE:+$@KK׳}2@iEdU碒~Ga@Oa_lR|@8Ej7^b@)0n7@<nرh@F/jh&,M@Ea&U^4@x.^UY-@J=AJ@ E#gdR@V$Ft}JZ@7 +x>C?q ?R[ǻ>A!ؾL _@ߑ?lA`@.~H6xݛ@M/|V쓘&0@fNadrcx捿n@:<n3 h^@H",r@|ƾ#H@&9'rr4;J@ >[lOd@y4aU @?4RTȸ@D >?3۰>ٜ?3lQϯ>W?0#ʞ>o?j)'PC$> ?!ys2 >QO&?p<\>7?+?Q GX!;>_4.?sPb)>c.?0ڦBf :>F+?X!%~0K>'?)f +>p!?^/Þ\灰B~z'd?1+q,?%7Zҽq+@˦?.Ǐ'ۅ$d"?cf7=dq?Y} O ?*t'j$Þ5Ů?[L&Z?1?!u0){`-U?нq"6lOB?[O- [^bz?d?9b&?bIXO?(v3^?0?uCo]U?0u٥V?dIDKt?|KCk (> ?p4%P0M -4i4?BGU?y\\/x?n n>5w0hj?Dm"-m̜4Q7?fM N_n?g>=aB|?NHz^(?<ft )?1?N Y,>H*?{+ ٖ>,?V^.2HGuZ>0?,μx>:6?Y='آE!>0;?'z=A+>߃>?tqEl>TO??@M}Ȥ>^\=?Rc 3oX#E>09?`"]QI>3?fkt{0 I >.?xv>+?7$Hܼ635ժT9@/D\cD'@ӱWQOɥ@4̴_$U鞿ߥ@^Xj Suk@?.pJ1Wn@(qf}nP./@JWe"fz@D?WTsn,@ eKy?=@fBt({@DAn@B9:E@(V]>7?$?fb/%;˥^@$" -k98E@$ XE*&@HVF"e;@dK> g@ZU2%+{gD@:9aO1s6@CjJ?9qˣ@>nL#wؕ@?ֹ1MnU_@|iBW ' @?` Rn@VGϴT?Fٓ6@qjJ>W?Cw<> ?Ȅ=F7lM>?5r-\>?.{ > ?8J*bBQ ܅>$?AU)5q!1r>&?C,4 {"`\>%?5Q2ݷufVN>$!?9l1yL>5?}@,..W> n?%Ek>?FK>V{_h?Bd9L?NE_ q?u"Y Ckߙ?z 8"0G'q?`D1#Q۾?(/k3ɥ\׾"y?\x\(dgǔྤ?5dnC1|?>y2pL?fbBҠ?Ԗkt)k?oAx`eKv?j 2=T/FQ?L!Lx; L?sVJ1e/?~T7TO7$ZV?{d-K2YH6^?$.$mc0uf7V?3q'9\rӆ!&?Y33z'+U?+|G8?(?mJ ?1w.C$'?/ P!j? G?4)' !?Lk䑾h!?nA$ΰ[wK ?hIw%7JD?QM$5WW*s?%XbTp gfX?nN?1LnO*?vedJ>?e5$8ewF?"@2S?ۜp?ʴ{>"%u?R]j}><,P?zf" ?US3^>#?ImEN->)u)?wY">w2x2?zvD>;?ONB>Br?vBtޒ>F?L鮮Ο>^D1?Ѽ%Yk>D>?ga.i>n5?(4R>I[[?{z&><ף?2eY0߁>㖠?ly"X<>.?ST.Zj>橿n?q@4w>?sd,@I>%?oXЦk>2?$jN>8?U$>;?a >S?F` >? +# ) >E̟?o1X>͒?S>dp0l?ep7>?RT/$>*oӝ?Py >R?|;";>ࡿu?@[ꭴ >3T?%m>YIT?@>gLk?ҭN.[ہ>~X?J>1? >Y$?B{0X >ǿ&?G(?w>a&?r %y >Z$?6# n>h ?Kt!o*8>h?*$k=N+>?/,08!,u>K?2ez>?N3Ij}>i?&H1LlB>:?&5+mSH>y?;#1(!g|:$@'QL5ܬ@ ^ VeftI?@LaQl@&7,-NjSv<m:@2@ n`>ЯN}@.?Gmqi EV@4| i5@2``7 #Y@Tiu@򿀮K<{ `@ F=?i]z>ܺ?kn:y%@x}c^ @VeJ3_%H7E@[k,PMuh"@+XeQ|u@w[X C^ @qBXa񇿅,*^@#gҊA_@̸ZjC @vi̧ǿ3@@(dI}xNʿ@o}\Nroȿ3@Rccÿك@GGK:>?/t9sm.&> ?e1c#Gp}>?T.{ERDef>'m!?/Ar<1(VO>"?>5D~ +>>!?=fx9>.?8.G3(?>?SNAQ!P>?qR?)rg>1M?|?xK'O>]?+B^Ӫ)|Ԭ&?z !j?mv#8Z⼌?TEQE٩Xǟ ?I lJC0vZކ?el/d峿6?VoN @ ?\EmCN? mco?#-dI?p<ﱿA?=e[7;?'1 dſ?F">Ŀo? Aʿ?O0п?1 1ҿ( ?fs˿2@?d nпaE?4K*eEw>h.?M6=*>"M/'eR38>)1>n'Y&h, >s;Lf5V`(:E>cX]H@ez)>TOg.}>%eC7z>еd[`:i@Y>Э/KYGX^>.MPJ>aRK^>1 >vz}? Fhy>xp ?G`gMC>Pzv?G8Y¯>8-z!>_u_,@>8>GzTc>(_S;>6L#Sĕ>II>9zƀ>G>,4tV\>{U><ĤE>zm?%B>ǀ3?fqU>Zh~! ?߿n?_'y=޿?p|P>Go?]wRxe>L?w|(48`>?qS)TB>n?{Q?>$?} ,=P'?(٣xh={{?ێ=H|?G,=hV?8*"R=^u?]6;>dͿk=?Tj'A6j>ZYͿx?Fm:W>'пE?STM8>ԿВ?y>Xڿ߿?WrOB>E=N?pd>ῢ?㡘'<>d޿?3q%>78ڿ ?&b&>JԿ?o$ @> п?U&8G>?#|B,u>$?Fc"~ {>j2?%0t̩>5C?g,e8MO> ?/C5{]>1 ?=>`>ZC?MkCsP>wu?D>> ? Aׂ5>x?:ili1>?203:>?) eGGӼKɤ@dNXue>H@-RVŽV?Ŀ@;GI+"aQ=ʿF@bIhҿu@=!l~߽x ٿ@*Bkz#ܿ@Mmf(\\ܿ @V^mGWؿM@~붷Spѿ+@LK ɿ@]DIÿA@SvQJnp7@οƻ@ ~l>"+?5(=aFv>|?\TDJEa|(8@} ڿ@`9QO'#ٿ}@7cO5lۿ@ѻ5HP@G!NF@9UD迥f@5],vA?@Щcz7@@ >gu)?P@JR(g*Z@cv@lA)Ɠ]? v}翛{@[GV࿣-@^BQ>ZC?3E*Pu>zL?4V^^>E?~:m*q&|>o?=CJ]fz>?9: ?V^T>?2Z9Հq6>q?YSb>;?;S]=>ra?[Ie> ??WsہUv>?7A8-r%Yb?4oYJ0J(?Ej!G~;JMN|?a<2CLxw?|=/ E+r?„o@B o?ɝhܽ9{G m?j3.Fm?7#`p?AK Mt?oMe$ģ}?c2=z=\Fy?H|X>[i7h,0??An"!D ;?RQJQ^?om¾Zo ??E?˔^ wa?t[kOw?FoR9?A  Er? 8U?A\ /_/?op. O.G ?o/>B+ ?WeMr>!/qoȾ?>+?n*>پĒ'>EnUc;a>FB8' y#>J#ؾ CcĤ>뗚.ǾB>7!#> ~j*>2Ap?ƫsΙK>qffE>M2s5pV\"?7uu$?d@A(!?0'}皾0 ?[xĈOڽۃ ?n8SjA1ཀ1!?bLL "? MkBMȐ=@13?$?m.?CXa%?Cv0[x샾-&?Wt2ۯ&? *q2%?ž 4$]?+kW.+?2z?MK# g "?U&TN ?t?n%8S@ ?o l;ѿ@y w?XO.O%׾ksn?{׾I%?wz>mn/٫?VX/I52??kdA 5? we?އ?̧ ۙоM`?%tty?Y|[g 74Ww?t=w#޾-?"q.ʾBӾy#?YOj-¿ԾQ?yYLs쾯^?y& ̾[ED?pX(p۬ ?D: 3/ǣ?nI>ǚ?; r>j ?7dB>$?2?1>)?,*ӬQG*B>+?KE$4 c/Mut>R*?O!#o4ٝ>*'?!X![ >!?"&v ,&K<>?p,qZQ>E?3JIѨ>?`97֏+>.? < ʔgT@w\JI $K@ӠT֜ ?x@[ 6ahl?@v5]jTm ]e'@b>n gel@=oSmlL@$03jվ΂yʩ@FNEaKP־ @c^RU^ ,g@|Q K F @ E Oo@i\E%/@\7_q|>&1?\vN=+>K!?D@9VõTJ辶@R}?.5ֿ6@7bOOCؿ6@YXMP1 U:ݿ@ +Nzǂ俀@ʟZ'Tg^X)@߳p\)Y@!c]𾗳@QƵgӾDM@rUhQ96>@5goet8B@SPN_[߿)g@L\ Wqžٿ`@_J}@Q$j>+=?+s8r>F?/0_I8>U?18<`Ը>j#?AO6 u>]?JT=1֩>?JP`Ɂ> ?CP=> ?XLt/,> ?ALDgT>?:fT?>ƭ?1?nn8>0?'V,^6z*jϯ?l(iHs(S=Ă?beR9ľ!Y$?HF@o˾l;}?ӂKƾ&px? $;i~u?r9Y^Ou?י+6  w?56p&Fz?ahQB*la@X?} >OH?H@KTGj=~ց?pl)5Eɾ8?`~CQm?tb}H1?RLFKn v?׌t?}vO] U?}vھ%?nrj aN?2L95?dسǟr X?}{zLx?Mke^K- ?v/1.d۽[Ɠ ><q0XD E>A"b, >t962<3y>фEv$G>v쥧ICt>Ұiه>M]Mϙ>1szojj嘿3>h'LüFk> |Fcȉ>/j.m+<(>e\U(3Mb'?G@.swU)?1>F#C&?}2.jP#I%?d,_]OZEKν8%?koz;dؽg%?#`K&?R?Jk轉1t(?q 9_)?u*?6Rڡq:֋9+?aZ*?hwiS? c*c:>4?O%kUݙ> %?D15grؠ>)?4³zHH}M>Jw+?cO)>I&?~n]{WP> ?w#&p8>??mY=><?#CDxwɶ>W?% )P[>?T+˳V 6d@ǥJ?A@;UhqV@"Ta e<@"7rj$H_@>n׾ _`@11?`; =‘v>"\?+g.j1}deܟ@\~UNPЬ@P!HHO@yhIWJ9@-W4MR+e]@E,;SV`Y<@RanYBi@=iBz~g@"ly@$l?~B饿8@6|gCv9@i^iqdQ@SZhrE@*Jȟ>)?6ajr?<-m\;>?('q1!gU>L ?#O[?(C>T#?=%$v"K>$?*~Ur>#?2)ja%:Jk>?]=;֯(Ep>?Bf>L?NEΫʐHV>Ƒ?Du>_?>'ɩ#H-yƖ?c^֒n0?z3 >c&?ow#3~񖿩iY?KrR>-):Sї?koZ<ȡAmT-?q(6PZ2?{Q`,d?]ܧpG?,uzKu}zL?lg -}lT?-I=R ?+?P\ߕ_?arBv?z/XFG?qu/Cw7?tPhcLfԞ@󁿉?Q9{b6V13?cn,?2EG.=O/??K#GV?1pО?C ˞D?0vȦ*?G,TP%P?ȉB?c+Ǚ\I ?b߫>>rX #?QM>:t$?/+> !?\Xa> &s?U,DVS>I?B`> U?o>\p_?l!:D> =?;E>,&e-?%.p>x&?jӤו>*""?5N>+#?X9$6j>h?k! I>ŋ1?Β:A>??%}Y>>_? 3lkL/>5?a>7/>ʡ]?u1N>?m^>vלq?GBH>δ? ׃t>$?1O>?x?>.W?CF>}jD]?d$x>Ds??7b 2>"f'?+vus1 ;>2h?/2}j=2>Wp#?xf2C$>O={?Q! >XE?ArD>ч?Fa><Չ1#? n>ֈ?ζ2>r 8?9uqǮ>C Ԣ?%;?> a?KW&22p>l?Ś*m>5!?#-wLJ>4A ?CN/r#M>?6=[6FI~>?~'x!]>!?md#*Rb(wr>S? *Z(%> ?F .J➃ip>ٹ ?I.W2Ъ>)?k*}(x>(?## ߕ4?@Q;KR ͔@DnE<@0Aiq籼Wj+@3`-r򻮿-@ ޡT@@*J/b^A6@ʨ+FH@!hD@bGFxeߕ3z@n&E>16? 3Wo> ?BnajwBO@g|?@m8jzɿ@ڿ[iqοٜ@'ѓdDcS ѿ@vܨt\U\Ͽ@R%J01ʿ~@JLm&> ?E9`r;3f>??2a&UJ>?.BLTEH>O?`0Rs0ܗ>?jU6g}><?S?j,d>n>?iH0(> ?KOόߙ>?:DSڡq>Z?Qޖ±>no?K+垓 >?B`d;O&?zZzC^Nj?+k&3: ᚪ?A'TRF,i4R?" lB?0k~-MM?ܘkK΅??w>X mVz?ڎB"$?ixj򞿨#?߸n3O?gu+C3?4<~(iXͿ?{&5ƿc?HrB5 Qэ?Hie_?"F e*\?ƊoGìGnƿ0g?wC! Ϳi?^,ӿa?ʒ奔YؿU?$wAࣿwڿ?e?u4sAӿZ?.g q yؿ1?8Y\^2gS/>*hB4 K|>K`f9e B$> 'V3nr@:>6M.frGG7>!]qFb'Lf8R>~Q8M}=F>i="yfKT9F >練79$F9O}'>Fkm;?vVF>=̗3Xm>cC18UY>K5B%@K>W>u;,3"e#>OW> ?`ng>苿>i~Co>J!>~WHb>Qe/>[YC>=K\>$TX>T`(>n9ĆJ=FP >F=B>o꽺,=(`><ܷ=ӛ>6BF^=/>Bjg13d X3?X')So g?^*X?S=?W}{? ?Ti ?wf=J!W?\JQ@=??jzEs>fƋ?sh"Y*#>͉?}at =?`Q?=2?+!9 =sa?8Ø:/^%4(?+]󼲶Ɉ?e /W£Ί?QVvy꿦?2-Mz oq?>#z&>? :&!yM>k?Mfe>F?"(y4 wm> ?S1Yuf> ?[8,쌅V> ?>?;m> ?A9̃>U?2dy>uz?)6@R>?= [X> ?daFd0e˿9h@%D\3P|2Tο@L15W*Կub@Su`AAEܿ@EVga/#6@a.Fj`w@QioFQ6@8teEr@׹s]#m޿6@vմS0Gֿ@ٙLFϿe@af>?K˿Đ@cLƊٿP@oN}d>#)?Ds"=-E\>.,&?roQ *^̯姓OĿ@"̨@>NCɾZwk@UCEɾeɿ/@-^I3("ZϿ@PTҿZ@O3al݃T1ҿo@PCkƁVUοn@*oP:T(ǿQ@U;Vp:I<@CFk&Z'VG@?T릶G{9.> ?BP]q?1V>?reG %÷>?Okt0>U?l1 hK>=?jn렄o>ă?1]cI]@>V?yZ~>qC ?R[Y>d? M()wB>Z?auKm {&>8?GN 0rw>ɿG?P@`=ο.? =}ӿ?&V>oؿ?h$xi:>ڿu?˒x'j>Čڿ?+Ns>e׿Y?``]>=Rҿu?b}+>̿?t%%J >ȿ떗?J'W8d0>ſ!?m[1_>ſ?o;};׿]J?tfT?߼ݿgZ?NKT})8h?ƍn V?x| =?QI=./9?%}!X>8N鿷?WGs(о>7?r0Co> ۿD?r~#L,>`ֿ,:?R]Nu4= ӿ?ix3!=(ӿl?^}E3>{\{[x?;F#>lV?< )>䤄Y?('C>׼>Rći>15w>ȷiʉ>_eҞ>"̷l>p\ >Wl>e} >~ ʡ>vI?n7w͒>r=p?s?>['U>bMu?WKa~>r|?0KfCG>X#?rH0/5>)N$?.i>4S޾["?^9_K$[>[پ4 ?Q_S>d߾?DlL)Lh>v?q#A0ͨ>Y}? ~>m V ?]->I6 ?&ޢ.s>'!? N>ܽ&#?׻%7>+ $?\1;mw,z?ПPS@e%?la2=7 p4k?Nu~菼=[5o?vu0( >fuB?FVa>/)>u:?k#;/>Ӧ?IvW)=b>uq%?a66 =?ߏM?>/1#p=oq?ދM<?/6tȗ%?xݚ >VYO,c?3P oK=XY?\2>ķHۤ?q^&ca>G ?t1>L??LZ{0>SV{`?u'/!>Ka'?}T=>Yl?hbݰ!p>J,s\?-pqA>'t??uΩ>+oY?Ĵ`rS=Se?}ٻ>?@86e>?ה0\)uV!>n;?<*1-q>3?& 5+tn?p?6'>=\?B?&,r5?J?*3n/? ?I:FȗB>3 ?,A)b>eR ?oDm->?CgF圈>G?J?wRu/L[@\EGȔ@DR 6B`h@NUazUH@\ *ClF6/=@#q-r=&ӷAJ@5r!j@)@)nl:ѳ@=duj\@&tU c@ʖJHQ@p?MW@Ĕ%?13Ŕ@`&>3?9UK>2??[ ԽSl@! W,@>@BRGhRJ+@ץF1P!@J7c|@`KT¬ @#`d@8Xi_;@J@mK`c@^>Jn=w k@q2A2\j}`P@HOaK@\U/>I@_L=L@ >x!?JX [t>`l?/ Ś;?>_?%O*[>g?V'焂x> ?$VQ蘄>!??>PY>?[p ;>#?4m9(3L>'?Zk /{'o-{>)?#b'cy >A)? )i)`uQ>p+&?/Om>$?ρFW>m0?y)>go]?Y!T߼>.??W>{zj?._h$>B?_bosg> G ?]~T>ğ?u+x>:M쌠?KJ[0/>Z0?r_6>W p?_Lo>Մ?{m}.f%:>X 6?+>>Ɲ?֑rZ>33c?ʹV&>*FY?@\>7 ?.Ĉ1۰>Rdz?(_gv> I3?u-[>Z?m &5*>?\K\/>=!?{pO>Ib?mQ(x>掕i?w@>'> ?">0Z?ǎNٌr>G6?Isl>f7?>f3Z?#įt>+(a?W>M"?|}?9>&z?q}(l*,>̿f?AJYP,>gE?V2]>1) ?=C*5>tw?BRSZ vB<`>uI/NJi4>Q`Gw~,>m+W2> ;6՗ >Wł>?/4>ձz-ܬ>"Y]>*Gj'$T>[<\"[^G>ķFXFϥt,L>S>o5>&X-vqAL Y!?}8?r7u;!@H?|kZ;+ 7?;6P8g? DL?W $cME?{/Of ?Pp8K}?ǔEA$?pw39YDA?,G'[a?"FKj$ 'q|?|@/]?h-P;<w? loos?;n!yFp?!ٳe-sp?ƀH5r?lS8Hv?, <`5{?AVCv:- ?Ąd47"WN?iG:t?:IVI>?I(;7qG>Q ?B0PZ֬P>??:b >?C7j&c>M?H ֺ>a?ƐIpİ>M ? E֗fޫ>?<5˟>YM?2J`:>t+?g)xr(L>??Z$OkUD_k>?#(!(tݿn@r`PݸeM%@Z0Uҫy@>!Ñ]/@.dQؤ@"g?$v@ؽg-_H@(*d"0j@jV]$+]Tݿ@٦* VI׿CW@*,LPФ#ֿs@fad7ObHؿ@j>NOO +A@}&$>?+FDF{>I8?+?ϒ;r@3#A\@>E&Ⱦ_@EѭI-@GʴJd1~N@["U~okf@Qka}b@d7,j#8nY@N:n}Ҿ= W@?n[@;j>.@ g`@C)daۣ;u]@7Uh]['&@J*>?9TW>x<?VDu>?Z :ϴ>?e?t$>%?.' w%>e+?/$cP>/?%P2Ok0߷> V1?AaR/ݫ>y/? IARe>+?)%,G>%?d냩>, ?mb kg#O̦?ӕ2? "iA( ?cJݚ2*K޾ ?s{B_'Ǿ?}SR.vѦ?eB'4v?3k3-HIڜ?y;&ʁx?Kf4շcfK!P}'i>nޖ6gi>S5|!0>!D&;q>ښֶ S-GO|j>?0vLѶ>&n#0s\>sJ!m+s>mQ7S%$v>(Cl6A| >,',lqx[큿> O; csׅ9o?gu#kB?w}s?`7'I~?Avj9İ?LĘ BMP?' 1?K p O3[?ߗH/& I ?Gs١뿄? z~ s?WJRgc?s33I-|?gYl֚|pPῦ?{N9>x?3_؉'u? /Le8-KHt?|⿫u?e#Nܿny?jl]Iؿ/~?gK #~տ^C?uhe4u[Fտ΂?s ioG7Ͱ׿OA?UA)R ?!H?FELYWbHv> ?N+ y>c?Tv*˂>+1 ?\UbH>w ?Q(F>?H@N:>V>>??Eha>Y?06zwF>y?D0UvgH>|p?[/3?b>?3wK qf)4uٿ##@b`gwN(9&h\@6BHS vE忪@Y[T#@wfc-~a~@Ԫ¥g]Oj<޿@_Qh*l`*׿R@Nevf|Ͽ@p _Zʿ@G XjLw?ɿ@faR>˿@?4U}O6ѿ[@`M PSؿ<@j(8}>4 ?ciI1ƣ͗>+H?XBc>SԜY@~ @A@D:zG8 c@f[Hn7$@_D#M\>@;IPVmJ熿@S Qa7XĆ@KCj`e)ZGW@XΫ+mmź6@ln/O@hIhñ@(`q5\z@ШTM@ J`7>?S+PQ5 >*?"{ZUԳ>?Qy"c>#?k?e\RZ >'?2q9>)?T$k @Ό>I(?N"Ɵm#>[$?*̨8S0>?24a>r?{6O >?j6rҙB>X?)2*>މ7WҚ?4U[6^(NMٛ?WwԏS4BJo?(w1u+䈿L7q?YF9<"W0?)&k:l//? Su,F+4+Й?ͫC_o=ǘ?$,jIz?h5;lM4T?@s52\?֌F[c?#٫<@?SV9~br?t-쇿xpl?F{,v4d?z`T菿f^e?{'Lv%Rɘ^#?;t).'({e?YFT{1ޟSIqk?Z!?(z~?U^Н|R=?3w0_? S?P+#?mR# 'AS߾L[?izC4%9ʾ?[Y(eё?=1Ld.7?|TR^O6kZx?haFC=5 ?8?c PAq2A ?2&C_5 ?ŧo(r@׾` ?h'tHD3?r:>$ ?je>V,?L{fU>z[?ѶGk_r>qU؅ ? 3E^z>׭X#?Xd.@)>^*?Ry+>Wf?abNѾ>s}m@?z-~ƪ>!>ri?oM*i>Ss̓?׼]Vj>upx ?7ˁ>#jj( ?}m>\b8?]1? s>bƿG3?Y@>-ȿͥ?zq>ȿ-?:Eg[>οtN?:m2(,Y$>Կ3?vw.蝚>pۿ?cи$A>1{?B8[fD[>m ?;->q߿Jy?P9ؑ>{ٿ9? ,^>.ӿM?Rge~>Z̿?Gwȁ>?p<>׶?DŎf$1 >$C?=_;h>F8)?l555)h>ٕ?Z>ſ?j?b>Eɿw?:#u>ʿk?Yh[>dɿ? $x1m>5?܀>&]?HVBW>? =$z~/nX>\? w"a{>v6?"!lx>?3;'Pp\a>6?+/nK>?7QY#J>O?> u> ?UA%>@B?@{>?;y^>?^3ܘ!Ce>n?+,)?,0*ݴ@`MS6g@[V߃˵P@p8I;M@ ~F>4?q#&I)a0DATA,Z0 (DATA(5P+"""""""""""" "" "" "" "" "" "" ""  "" "" "" "" " "$"""" " " !"!"""#"#% $%"&"&"'"'"("(")")"*"*"+"+"," ," -"!-" .""."#/" /" 0"$0" 1"%1"&0"&'"'("()")* *+"+,",-"-."./"/1 01"2"2"3"3"4"4"5"5"6"6"7"7" 8"8"9"!9":"":"#;";"<"$<"%="="2<"23"34"45"56 67"78"89"9:":;";= <=">?">@ @A"AB"BC"CD"DE"EF FG"GH"HI"?I">c">V"?W"?b"@d"@X"AY"Ae"BZ"Bf"Cg"C["D\"Dh"Ei"E]"Fj"F^"G_"Gk"Hl"H`"Im"Ia"JK"JL LM"MN"NO"OP"PQ"QR RS"ST"TU"KU"JV"Jo"KW"Kn"Lp"LX"MY"Mq"NZ"Nr"O["Os"Pt"P\"Q]"Qu"R^"Rv"S_"Sw"T`"Tx"Uy"Ua"VW"VX XY"YZ"Z["[\"\]"]^ ^_"_`"`a"Wa"bc"nz no"oz cd"op"pz de"pq"qz ef"qr"rz fg"rs"sz gh"st"tz hi"tu"uz ij"uv"vz jk"vw"wz kl"wx"xz lm"xy"yz bm"ny"c{"d{"e{"f{"g{"h{"i{"j{"k{"l{"m{"b{"|"|"|"|"|"|"|"|"|"|"|"|"~""}~ ~""} ""} ""} ""} ""} ""} ""} ""} ""} ""} "} """"" """"" ""~""""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""""""" " " " " """""" "" "" " " "  " "  " "  " "  " " " "" "" " """"" """"" """"" " "!"!"""""#"#"$"$"%"%"&"&"'"'"("(")")"("" " !"!" "#"#$"$%"%&"&'"') ()"*"*"+"+",","-" -"." ." /"/"0" 0" 1"1"2"2"3"3"4"4"5"5"*4"*+"+,",-"-. ./"/0"01"12"23"35 45"67"68 89"9:":;";<"<="=> >?"?@"@A"7A"6["6N"7O"7Z"8\"8P"9Q"9]":R":^";_";S"<T"<`"=a"=U">b">V"?W"?c"@d"@X"Ae"AY"BC"BD DE"EF"FG"GH"HI"IJ JK"KL"LM"CM"BN"Bg"CO"Cf"Dh"DP"EQ"Ei"FR"Fj"GS"Gk"Hl"HT"IU"Im"JV"Jn"KW"Ko"LX"Lp"Mq"MY"NO"NP PQ"QR"RS"ST"TU"UV VW"WX"XY"OY"Z["fr fg"gr [\"gh"hr \]"hi"ir ]^"ij"jr ^_"jk"kr _`"kl"lr `a"lm"mr ab"mn"nr bc"no"or cd"op"pr de"pq"qr Ze"fq"[s"\s"]s"^s"_s"`s"as"bs"cs"ds"es"Zs"t"t"t"t"t"t"t"t"t"t"t"t"v""uv vw""uw wx""ux xy""uy yz""uz z{""u{ {|""u| |}""u} }~""u~ ~""u ""u "u """"" """"" ""v"w""x""y""z"""{"|""}""~"""""""""""" """"" """"""""""""""""""""""""""""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""" """"""""""""" " "" "" "" "" "" "" "" "" "" "" "  " "  "  "  "  """"" " """ "" "" """"""""""""" " "!"!" """" """""! !" """" #"#"$" $" %"%"&"&"'"'"("(")")"*"*"+"+" ,","-"-"",""#"#$"$%"%& &'"'("()")*"*+"+- ,-"./".0 01"12"23"34"45"56 67"78"89"/9".S".F"/G"/R"0T"0H"1I"1U"2J"2V"3W"3K"4L"4X"5Y"5M"6Z"6N"7O"7["8\"8P"9]"9Q":;":< <="=>">?"?@"@A"AB BC"CD"DE";E":F":_";G";^"<`"<H"=I"=a">J">b"?K"?c"@d"@L"AM"Ae"BN"Bf"CO"Cg"DP"Dh"Ei"EQ"FG"FH HI"IJ"JK"KL"LM"MN NO"OP"PQ"GQ"RS"^j ^_"_j ST"_`"`j TU"`a"aj UV"ab"bj VW"bc"cj WX"cd"dj XY"de"ej YZ"ef"fj Z["fg"gj [\"gh"hj \]"hi"ij R]"^i"Sk"Tk"Uk"Vk"Wk"Xk"Yk"Zk"[k"\k"]k"Rk"l"lz"l{"l|"l}"l~"l"l"l"l"l"l"ny"z"mn no"z{"mo op"{|"mp pq"|}"mq qr"}~"mr rs"~"ms st""mt tu""mu uv""mv vw""mw wx""mx xy"my """"" """"" ""n"o""p""q""r"""s"t""u""v"""w"y""x"""""" """"" ""z""{"|"""}""~""""""""""""""""""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""" "" "" "" "" "" "" "" "" "" "" " " """" "" "  "  "    """""""""""""""" "" " """ "" """"" """"" """"""""""""" " "!" !""" "" #"#"$" $" %"%"$"""" " " !"!"""#"#% $%"&'"&( ()")*"*+"+,",-"-. ./"/0"01"'1"&K"&>"'?"'J"(L"(@")A")M"*B"*N"+O"+C",D",P"-Q"-E".R".F"/G"/S"0T"0H"1U"1I"23"24 45"56"67"78"89"9: :;";<"<="3="2>"2W"3?"3V"4X"4@"5A"5Y"6B"6Z"7C"7["8\"8D"9E"9]":F":^";G";_"<H"<`"=a"=I">?">@ @A"AB"BC"CD"DE"EF FG"GH"HI"?I"JK"Vb VW"Wb KL"WX"Xb LM"XY"Yb MN"YZ"Zb NO"Z["[b OP"[\"\b PQ"\]"]b QR"]^"^b RS"^_"_b ST"_`"`b TU"`a"ab JU"Va"Kc"Lc"Mc"Nc"Oc"Pc"Qc"Rc"Sc"Tc"Uc"Jc"d}"dr"ds"dt"du"dv"dw"dx"dy"dz"d{"d|"fq"r}"ef fg"rs"eg gh"st"eh hi"tu"ei ij"uv"ej jk"vw"ek kl"wx"el lm"xy"em mn"yz"en no"z{"eo op"{|"ep pq"eq |}"~"~""" """"" "~"f"g""h""i""j"""k"l""m""n"""o"q""p"""""" """"" "~"r""s"t"""u""v"w"""x"y""z"""{"}"""|""""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""" "" "" "" "" "" "" "" "" "" "" " """"" """"" """"""" " " " " " " " " " """""""""""" "    "  "  " "" """"""""""""""""""""""""""""" """"" ""  !"!"""#"#$"$%"%& &'"'("()")"C"6"7"B" D" 8"!9"!E"":""F"#G"#;"$<"$H"%I"%="&J"&>"'?"'K"(L"(@")M")A"*+"*, ,-"-."./"/0"01"12 23"34"45"+5"*6"*O"+7"+N",P",8"-9"-Q".:".R"/;"/S"0T"0<"1="1U"2>"2V"3?"3W"4@"4X"5Y"5A"67"68 89"9:":;";<"<="=> >?"?@"@A"7A"BC"NZ NO"OZ CD"OP"PZ DE"PQ"QZ EF"QR"RZ FG"RS"SZ GH"ST"TZ HI"TU"UZ IJ"UV"VZ JK"VW"WZ KL"WX"XZ LM"XY"YZ BM"NY"C["D["E["F["G["H["I["J["K["L["M["B["\u"\j"\k"\l"\m"\n"\o"\p"\q"\r"\s"\t"^i"ju"]^ ^_"jk"]_ _`"kl"]` `a"lm"]a ab"mn"]b bc"no"]c cd"op"]d de"pq"]e ef"qr"]f fg"rs"]g gh"st"]h hi"]i tu"v"vw"wx"xy"yz z{"{|"|}"}~"~" "v"^"_"w"`"x"a"y"b"z"{"c"d"|"e"}"f"~""g"i""h"""""" """"" "v"j"w"k"l"x"y"m"z"n"o"{"|"p"q"}"r"~""s"u"""t""""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""" "" "" "" "" "" "" "" "" "" "" " """"" """"" """"""""""""""""""""""" " """"" """""   " " " " " " " " """"""""""""""""" "  "  "  "  """"" "" """"" " " !"!";"."/":"<"0"1"="2">"?"3"4"@"A"5"B"6"7"C" D" 8"!E"!9""#""$ $%"%&"&'"'("()")* *+"+,",-"#-"".""G"#/"#F"$H"$0"%1"%I"&2"&J"'3"'K"(L"(4")5")M"*6"*N"+7"+O",8",P"-Q"-9"./".0 01"12"23"34"45"56 67"78"89"/9":;"FR FG"GR ;<"GH"HR <="HI"IR =>"IJ"JR >?"JK"KR ?@"KL"LR @A"LM"MR AB"MN"NR BC"NO"OR CD"OP"PR DE"PQ"QR :E"FQ";S"<S"=S">S"?S"@S"AS"BS"CS"DS"ES":S"Tm"Tb"Tc"Td"Te"Tf"Tg"Th"Ti"Tj"Tk"Tl"Va"bm"UV VW"bc"UW WX"cd"UX XY"de"UY YZ"ef"UZ Z["fg"U[ [\"gh"U\ \]"hi"U] ]^"ij"U^ ^_"jk"U_ _`"kl"U` `a"Ua lm"nx"no"op"pq"qr rs"st"tu"uv"vw"wy xy"nz"Vz"W{"o{"X|"p|"Y}"q}"Z~"r~"s"["\"t"]"u"^"v"w"_"a"x"`"y"z"z{"{|"|}"}~ ~""""" "n"b"o"c"d"p"q"e"r"f"g"s"t"h"i"u"j"v"w"k"m"x"y"l""""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""" "" "" "" "" "" "" "" "" "" "" " """"" """"" """"""""""""""""""""""""""""" """"" """"""""""""""" " " " " " " " " " " """" "" "  "  "    "" """"" """"3"&"'"2"4"(")"5"*"6"7"+","8"9"-":"."/";"<"0"="1"" """ " !"!" "#"#$"$%"%"&"?"'">"@"(")"A"*"B"+"C" D" ,"!-"!E"".""F"#/"#G"$0"$H"%I"%1"&'"&( ()")*"*+"+,",-"-. ./"/0"01"'1"23">J >?"?J 34"?@"@J 45"@A"AJ 56"AB"BJ 67"BC"CJ 78"CD"DJ 89"DE"EJ 9:"EF"FJ :;"FG"GJ ;<"GH"HJ <="HI"IJ 2=">I"3K"4K"5K"6K"7K"8K"9K":K";K"<K"=K"2K"Le"LZ"L["L\"L]"L^"L_"L`"La"Lb"Lc"Ld"NY"Ze"MN NO"Z["MO OP"[\"MP PQ"\]"MQ QR"]^"MR RS"^_"MS ST"_`"MT TU"`a"MU UV"ab"MV VW"bc"MW WX"cd"MX XY"MY de"fp"fg"gh"hi"ij jk"kl"lm"mn"no"oq pq"fr"Nr"Os"gs"Pt"ht"Qu"iu"Rv"jv"kw"Sw"Tx"lx"Uy"my"Vz"nz"o{"W{"Y|"p|"X}"q}"r|"rs"st"tu"uv vw"wx"xy"yz"z{"{} |}"f~"Z~"g"["\"h"i"]"j"^"_"k"l"`"a"m"b"n"o"c"e"p"q"d"~"~""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""" "" "" "" "" "" "" "" "" "" "" " """"" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" ""  "  "  "  "  "  """"+"""*"," " !" -" "" ." /" #" $" 0" 1" %"2"&"'"3"4"("5")"" """"" """""7""6"8" "!"9""":"#";"<"$"%"="&">"'"?"("@"A")""  !"!"""#"#$"$%"%& &'"'("()")"*+"6B 67"7B +,"78"8B ,-"89"9B -."9:":B ./":;";B /0";<"<B 01"<="=B 12"=>">B 23">?"?B 34"?@"@B 45"@A"AB *5"6A"+C",C"-C".C"/C"0C"1C"2C"3C"4C"5C"*C"D]"DR"DS"DT"DU"DV"DW"DX"DY"DZ"D["D\"FQ"R]"EF FG"RS"EG GH"ST"EH HI"TU"EI IJ"UV"EJ JK"VW"EK KL"WX"EL LM"XY"EM MN"YZ"EN NO"Z["EO OP"[\"EP PQ"EQ \]"^h"^_"_`"`a"ab bc"cd"de"ef"fg"gi hi"^j"Fj"Gk"_k"Hl"`l"Im"am"Jn"bn"co"Ko"Lp"dp"Mq"eq"Nr"fr"gs"Os"Qt"ht"Pu"iu"jt"jk"kl"lm"mn no"op"pq"qr"rs"su tu"^v"Rv"_w"Sw"Tx"`x"ay"Uy"bz"Vz"W{"c{"d|"X|"Y}"e}"Z~"f~"g"["]"h"i"\"v"vw"wx"xy"yz z{"{|"|}"}~"~" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""" "" "" "" "" "" "" "" "" "" "" " """"" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" "" """"" "" " "#"""""$"""%""&"'"""(")""*"""+"," " -" !"  "    " """" """ " " /" " ." 0" " " 1""2""3"4"""5""6""7" "8"9"!"" """"" " " !"!""#".: ./"/: #$"/0"0: $%"01"1: %&"12"2: &'"23"3: '("34"4: ()"45"5: )*"56"6: *+"67"7: +,"78"8: ,-"89"9: "-".9"#;"$;"%;"&;"';"(;");"*;"+;",;"-;"";"<U"<J"<K"<L"<M"<N"<O"<P"<Q"<R"<S"<T">I"JU"=> >?"JK"=? ?@"KL"=@ @A"LM"=A AB"MN"=B BC"NO"=C CD"OP"=D DE"PQ"=E EF"QR"=F FG"RS"=G GH"ST"=H HI"=I TU"V`"VW"WX"XY"YZ Z["[\"\]"]^"^_"_a `a"Vb">b"?c"Wc"@d"Xd"Ae"Ye"Bf"Zf"[g"Cg"Dh"\h"Ei"]i"Fj"^j"_k"Gk"Il"`l"Hm"am"bl"bc"cd"de"ef fg"gh"hi"ij"jk"km lm"Vn"Jn"Wo"Ko"Lp"Xp"Yq"Mq"Zr"Nr"Os"[s"\t"Pt"Qu"]u"Rv"^v"_w"Sw"Ux"`x"ay"Ty"nx"no"op"pq"qr rs"st"tu"uv"vw"wy xy"z{"z| |}"}~"~""" """{"z"z"{"{"|"|"}"}"~"~"""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""" "" "" "" "" "" "" "" "" "" "" " """"" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" "" """"" " "  " " " " " " " " " " " " " " " "! " "" " " "# " $ "  " % "  "  "    "  "  "  " " " " " "  " ' "  " & " ( "  "  " ) "  " * "  " + " , "  "  " - "  " . "  " / "  " 0 " 1 "  "  "    "  "  "  "  "    "  "  "  "  "& 2 & ' "' 2   "' ( "( 2   "( ) ") 2   ") * "* 2   "* + "+ 2  "+ , ", 2 ! ", - "- 2 ! " "- . ". 2 " # ". / "/ 2 # $ "/ 0 "0 2 $ % "0 1 "1 2  % "& 1 " 3 " 3 " 3 " 3 " 3 " 3 "! 3 "" 3 "# 3 "$ 3 "% 3 " 3 "4 M "4 B "4 C "4 D "4 E "4 F "4 G "4 H "4 I "4 J "4 K "4 L "6 A "B M "5 6 6 7 "B C "5 7 7 8 "C D "5 8 8 9 "D E "5 9 9 : "E F "5 : : ; "F G "5 ; ; < "G H "5 < < = "H I "5 = = > "I J "5 > > ? "J K "5 ? ? @ "K L "5 @ @ A "5 A L M "N X "N O "O P "P Q "Q R R S "S T "T U "U V "V W "W Y X Y "N Z "6 Z "7 [ "O [ "8 \ "P \ "9 ] "Q ] ": ^ "R ^ "S _ "; _ "< ` "T ` "= a "U a "> b "V b "W c "? c "A d "X d "@ e "Y e "Z d "Z [ "[ \ "\ ] "] ^ ^ _ "_ ` "` a "a b "b c "c e d e "N f "B f "O g "C g "D h "P h "Q i "E i "R j "F j "G k "S k "T l "H l "I m "U m "J n "V n "W o "K o "M p "X p "Y q "L q "f p "f g "g h "h i "i j j k "k l "l m "m n "n o "o q p q "r s "r t t u "u v "v w "w x "x y "y z z { "{ | "| } "s } "r "r "s "s "t "t "u "u "v "v "w "w "x "x "y "y "z "z "{ "{ "| "| "} "} "~  "~ " " " " " " " " "~ "~ " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  "  "  "  "  "  " "  " "  "  " " "  "  " "  "  "  "  "  "  "  "  " " " " " "  "    "  "  "  "  "  "  "  " "  " " ! " " " " " # " $ " " " % "  " & "  " ' "  " ( " ) "  "  "   " " " " "    "  "  "  "  " *   " *   " " *   " ! "! *   "! " "" *   "" # "# *   "# $ "$ *   "$ % "% *   "% & "& *   "& ' "' *   "' ( "( *   "( ) ") *   " ) " + " + " + " + " + " + " + " + " + " + " + " + ", E ", : ", ; ", < ", = ", > ", ? ", @ ", A ", B ", C ", D ". 9 ": E "- . . / ": ; "- / / 0 "; < "- 0 0 1 "< = "- 1 1 2 "= > "- 2 2 3 "> ? "- 3 3 4 "? @ "- 4 4 5 "@ A "- 5 5 6 "A B "- 6 6 7 "B C "- 7 7 8 "C D "- 8 8 9 "- 9 D E "F P "F G "G H "H I "I J J K "K L "L M "M N "N O "O Q P Q "F R ". R "/ S "G S "0 T "H T "1 U "I U "2 V "J V "K W "3 W "4 X "L X "5 Y "M Y "6 Z "N Z "O [ "7 [ "9 \ "P \ "8 ] "Q ] "R \ "R S "S T "T U "U V V W "W X "X Y "Y Z "Z [ "[ ] \ ] "F ^ ": ^ "G _ "; _ "< ` "H ` "I a "= a "J b "> b "? c "K c "L d "@ d "A e "M e "B f "N f "O g "C g "E h "P h "Q i "D i "^ h "^ _ "_ ` "` a "a b b c "c d "d e "e f "f g "g i h i "j k "j l l m "m n "n o "o p "p q "q r r s "s t "t u "k u "j "j "k "k "l "l "m "m "n "n "o "o "p "p "q "q "r "r "s "s "t "t "u "u "v w "v x x y "y z "z { "{ | "| } "} ~ ~  " " "w "v "v "w "w "x "x "y "y "z "z "{ "{ "| "| "} "} "~ "~ " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  " "  "  "  "  "  "  "  "  "  "  "  "  "  "  "  " " " " " " " " " " " " "  " "  "  " "  "  "  "  "  "  "  "  "  "  "  "  "  "  "  " " ! " " "  "  "  "  "  "    "  " " " " "   " " "  " " "  " "  "  " "   "  " "   "  " "   "  " "   "  " "   "  " "   " " "   " ! "! "  " ! " # " # " # " # " # " # " # " # " # " # " # " # "$ = "$ 2 "$ 3 "$ 4 "$ 5 "$ 6 "$ 7 "$ 8 "$ 9 "$ : "$ ; "$ < "& 1 "2 = "% & & ' "2 3 "% ' ' ( "3 4 "% ( ( ) "4 5 "% ) ) * "5 6 "% * * + "6 7 "% + + , "7 8 "% , , - "8 9 "% - - . "9 : "% . . / ": ; "% / / 0 "; < "% 0 0 1 "% 1 < = "> H "> ? "? @ "@ A "A B B C "C D "D E "E F "F G "G I H I "> J "& J "' K "? K "( L "@ L ") M "A M "* N "B N "C O "+ O ", P "D P "- Q "E Q ". R "F R "G S "/ S "1 T "H T "0 U "I U "J T "J K "K L "L M "M N N O "O P "P Q "Q R "R S "S U T U "> V "2 V "? W "3 W "4 X "@ X "A Y "5 Y "B Z "6 Z "7 [ "C [ "D \ "8 \ "9 ] "E ] ": ^ "F ^ "G _ "; _ "= ` "H ` "I a "< a "V ` "V W "W X "X Y "Y Z Z [ "[ \ "\ ] "] ^ "^ _ "_ a ` a "b c "b d d e "e f "f g "g h "h i "i j j k "k l "l m "c m "b "b z "c { "c "d "d | "e } "e "f ~ "f "g "g  "h "h "i "i "j "j "k "k "l "l "m "m "n o "n p p q "q r "r s "s t "t u "u v v w "w x "x y "o y "n z "n "o { "o "p "p | "q } "q "r ~ "r "s  "s "t "t "u "u "v "v "w "w "x "x "y "y "z { "z | | } "} ~ "~  " " " " " "{ " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  " " "  "  " " "  " "  "  " " "  " " " " " " " " " "  " " " " " " " " " " " "  " "  "  " " "  " "  " "  "  " " "  " "  " "  " "  "  "  " " " " " " " " "  "  "  "    "    "  "    "  "    "  "    "  "    "  "   "  "  "  "  "  "  "  "  "  "   "  "  "  "  "  "  "  "  "  "  "  "  "  " 5 " * " + " , " - " . " / " 0 " 1 " 2 " 3 " 4 " ) "* 5 "    "* + "   "+ , " ! ", - " ! ! " "- . " " " # ". / " # # $ "/ 0 " $ $ % "0 1 " % % & "1 2 " & & ' "2 3 " ' ' ( "3 4 " ( ( ) " ) 4 5 "6 @ "6 7 "7 8 "8 9 "9 : : ; "; < "< = "= > "> ? "? A @ A "6 B " B " C "7 C " D "8 D "! E "9 E "" F ": F "; G "# G "$ H "< H "% I "= I "& J "> J "? K "' K ") L "@ L "( M "A M "B L "B C "C D "D E "E F F G "G H "H I "I J "J K "K M L M "6 N "* N "7 O "+ O ", P "8 P "9 Q "- Q ": R ". R "/ S "; S "< T "0 T "1 U "= U "2 V "> V "? W "3 W "5 X "@ X "A Y "4 Y "N X "N O "O P "P Q "Q R R S "S T "T U "U V "V W "W Y X Y "Z [ "Z \ \ ] "] ^ "^ _ "_ ` "` a "a b b c "c d "d e "[ e "Z  "Z r "[ s "[ ~ "\ "\ t "] u "] "^ v "^ "_ "_ w "` x "` "a "a y "b "b z "c { "c "d "d | "e "e } "f g "f h h i "i j "j k "k l "l m "m n n o "o p "p q "g q "f r "f "g s "g "h "h t "i u "i "j v "j "k w "k "l "l x "m y "m "n z "n "o { "o "p | "p "q "q } "r s "r t t u "u v "v w "w x "x y "y z z { "{ | "| } "s } "~  " "  " " " " " " " " " " " " " " " " " " " " ~ " " " " " " " " " " " " "~ " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  " "  " " "  "  " "  " " " " " " " " " " " " "  " "  "  " " " " " " " " " " " " "  " "  " "  "  " " " " " " " " " " " " "    "  "  "  " "  " "  " "  " "   " "    "  "    "  "    "  "    "  "   "  "  "  "  "  "  "  "  "  "  "  "  "  " - " " " # " $ " % " & " ' " ( " ) " * " + " , " ! "" - "    "" # "    "# $ "    "$ % "    "% & "    "& ' "    "' ( "    "( ) "    ") * "    "* + "   "+ , " ! " ! , - ". 8 ". / "/ 0 "0 1 "1 2 2 3 "3 4 "4 5 "5 6 "6 7 "7 9 8 9 ". : " : " ; "/ ; " < "0 < " = "1 = " > "2 > "3 ? " ? " @ "4 @ " A "5 A " B "6 B "7 C " C "! D "8 D " E "9 E ": D ": ; "; < "< = "= > > ? "? @ "@ A "A B "B C "C E D E ". F "" F "/ G "# G "$ H "0 H "1 I "% I "2 J "& J "' K "3 K "4 L "( L ") M "5 M "* N "6 N "7 O "+ O "- P "8 P "9 Q ", Q "F P "F G "G H "H I "I J J K "K L "L M "M N "N O "O Q P Q "R S "R T T U "U V "V W "W X "X Y "Y Z Z [ "[ \ "\ ] "S ] "R w "R j "S k "S v "T x "T l "U m "U y "V n "V z "W { "W o "X p "X | "Y } "Y q "Z ~ "Z r "[ s "[  "\ "\ t "] "] u "^ _ "^ ` ` a "a b "b c "c d "d e "e f f g "g h "h i "_ i "^ j "^ "_ k "_ "` "` l "a m "a "b n "b "c o "c "d "d p "e q "e "f r "f "g s "g "h t "h "i "i u "j k "j l l m "m n "n o "o p "p q "q r r s "s t "t u "k u "v w " " w x " " x y " " y z " " z { " " { | " " | } " " } ~ " " ~  " "  " " " " v " "w "x "y "z "{ "| "} "~ " " " "v " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "  "  " "  ""  ""  ""  ""  ""  ""  ""  ""  " "   " " " " " " " " " " " " " " %" " " " " " "  " !" "" #" $""%"  ""  ""  ""  ""  ""  " "  " !"  "!""  ""#"  "#$"  "  $%"&0"&'"'("()")* *+"+,",-"-."./"/1 01"&2"2"3"'3"4"(4"5")5"6"*6"+7"7"8",8"9"-9":".:"/;";"<"0<"="1="2<"23"34"45"56 67"78"89"9:":;";= <="&>">"'?"?"@"(@")A"A"*B"B"C"+C",D" D"!E"-E""F".F"/G"#G"%H"0H"1I"$I">H">?"?@"@A"AB BC"CD"DE"EF"FG"GI HI"JK"JL LM"MN"NO"OP"PQ"QR RS"ST"TU"KU"Jo"Jb"Kc"Kn"Lp"Ld"Me"Mq"Nf"Nr"Os"Og"Ph"Pt"Qu"Qi"Rv"Rj"Sk"Sw"Tx"Tl"Uy"Um"VW"VX XY"YZ"Z["[\"\]"]^ ^_"_`"`a"Wa"Vb"V{"Wc"Wz"X|"Xd"Ye"Y}"Zf"Z~"[g"["\"\h"]i"]"^j"^"_k"_"`l"`"a"am"bc"bd de"ef"fg"gh"hi"ij jk"kl"lm"cm"no"z z{"{ op"{|"| pq"|}"} qr"}~"~ rs"~" st"" tu"" uv"" vw"" wx"" xy"" ny"z"o"p"q"r"s"t"u"v"w"x"y"n""""""""""""""" "" "" "" "" "" "" "" "" "" "" " """"" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""" "" ""  ""   ""   ""   ""   ""  "" "" "" " "("" " !"!" "#"#$"$%"%&"&'"') ()"*"*"+"+"," ," -"!-" .""."#/" /" 0"$0" 1"%1"2"&2"'3"3"4"(4"5")5"*4"*+"+,",-"-. ./"/0"01"12"23"35 45"6"6"7"7"8" 8"!9"9"":":";"#;"$<"<"="%=">"&>"'?"?"@"(@")A"A"6@"67"78"89"9: :;";<"<="=>">?"?A @A"BC"BD DE"EF"FG"GH"HI"IJ JK"KL"LM"CM"Bg"BZ"C["Cf"Dh"D\"E]"Ei"F^"Fj"Gk"G_"H`"Hl"Im"Ia"Jn"Jb"Kc"Ko"Lp"Ld"Mq"Me"NO"NP PQ"QR"RS"ST"TU"UV VW"WX"XY"OY"NZ"Ns"O["Or"Pt"P\"Q]"Qu"R^"Rv"S_"Sw"Tx"T`"Ua"Uy"Vb"Vz"Wc"W{"Xd"X|"Y}"Ye"Z["Z\ \]"]^"^_"_`"`a"ab bc"cd"de"[e"fg"r~ rs"s~ gh"st"t~ hi"tu"u~ ij"uv"v~ jk"vw"w~ kl"wx"x~ lm"xy"y~ mn"yz"z~ no"z{"{~ op"{|"|~ pq"|}"}~ fq"r}"g"h"i"j"k"l"m"n"o"p"q"f""""""""""""""" "" "" "" "" "" "" "" "" "" "" " """"" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """"""""""""""" " " " """""""" " " "  " "  " "  " " " "" "" "" "" "" ""  "  " """" """""! !"""""#"#"$"$"%"%"&"&"'"'"("(")")"*"*"+"+" ," ,"-"!-"",""#"#$"$%"%& &'"'("()")*"*+"+- ,-"." ."/" /" 0"0"1" 1"2"2"3"3"4"4"5"5"6"6"7"7"8" 8"!9"9".8"./"/0"01"12 23"34"45"56"67"79 89":;":< <="=>">?"?@"@A"AB BC"CD"DE";E":_":R";S";^"<`"<T"=U"=a">V">b"?c"?W"@X"@d"Ae"AY"Bf"BZ"C["Cg"Dh"D\"Ei"E]"FG"FH HI"IJ"JK"KL"LM"MN NO"OP"PQ"GQ"FR"Fk"GS"Gj"Hl"HT"IU"Im"JV"Jn"KW"Ko"Lp"LX"MY"Mq"NZ"Nr"O["Os"P\"Pt"Qu"Q]"RS"RT TU"UV"VW"WX"XY"YZ Z["[\"\]"S]"^_"jv jk"kv _`"kl"lv `a"lm"mv ab"mn"nv bc"no"ov cd"op"pv de"pq"qv ef"qr"rv fg"rs"sv gh"st"tv hi"tu"uv ^i"ju"_w"`w"aw"bw"cw"dw"ew"fw"gw"hw"iw"^w"x"x"x"x"x"x"x"x"x"x"x"x"z""yz z{""y{ {|""y| |}""y} }~""y~ ~""y ""y ""y ""y ""y ""y "y """"" """"" ""z"{""|""}""~"""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""" """""""" " " " "" " "" "" "" "" "" "" " " "  " "  " "  " "  """"" """"" """"""""""""" " "!"!"""""#"#"$"$"%"%"$"""" " " !"!"""#"#% $%"&"&"'"'"("(")")"*"*"+"+","," -"-" ."."/" /" 0"0"1" 1"&0"&'"'("()")* *+"+,",-"-."./"/1 01"23"24 45"56"67"78"89"9: :;";<"<="3="2W"2J"3K"3V"4X"4L"5M"5Y"6N"6Z"7["7O"8P"8\"9]"9Q":^":R";S";_"<`"<T"=a"=U">?">@ @A"AB"BC"CD"DE"EF FG"GH"HI"?I">J">c"?K"?b"@d"@L"AM"Ae"BN"Bf"CO"Cg"Dh"DP"EQ"Ei"FR"Fj"GS"Gk"HT"Hl"Im"IU"JK"JL LM"MN"NO"OP"PQ"QR RS"ST"TU"KU"VW"bn bc"cn WX"cd"dn XY"de"en YZ"ef"fn Z["fg"gn [\"gh"hn \]"hi"in ]^"ij"jn ^_"jk"kn _`"kl"ln `a"lm"mn Va"bm"Wo"Xo"Yo"Zo"[o"\o"]o"^o"_o"`o"ao"Vo"p"p~"p"p"p"p"p"p"p"p"p"p"r}"~"qr rs"~"qs st""qt tu""qu uv""qv vw""qw wx""qx xy""qy yz""qz z{""q{ {|""q| |}"q} """"" """"" ""r"s""t""u""v"""w"x""y""z"""{"}""|"""""" """"" ""~""""""""""""""""""""""""""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""" "" "" "" "" "" "" "" "" "" "" " """" "    "  "  " "" """""""" "" " """ "" """"""""""""" """"" """"" " " !"!" """"#" #" $"$"%" %"&"&"'"'"("(")")"("" " !"!" "#"#$"$%"%&"&'"') ()"*+"*, ,-"-."./"/0"01"12 23"34"45"+5"*O"*B"+C"+N",P",D"-E"-Q".F".R"/S"/G"0H"0T"1U"1I"2V"2J"3K"3W"4X"4L"5Y"5M"67"68 89"9:":;";<"<="=> >?"?@"@A"7A"6B"6["7C"7Z"8\"8D"9E"9]":F":^";G";_"<`"<H"=I"=a">J">b"?K"?c"@L"@d"Ae"AM"BC"BD DE"EF"FG"GH"HI"IJ JK"KL"LM"CM"NO"Zf Z["[f OP"[\"\f PQ"\]"]f QR"]^"^f RS"^_"_f ST"_`"`f TU"`a"af UV"ab"bf VW"bc"cf WX"cd"df XY"de"ef NY"Ze"Og"Pg"Qg"Rg"Sg"Tg"Ug"Vg"Wg"Xg"Yg"Ng"h"hv"hw"hx"hy"hz"h{"h|"h}"h~"h"h"ju"v"ij jk"vw"ik kl"wx"il lm"xy"im mn"yz"in no"z{"io op"{|"ip pq"|}"iq qr"}~"ir rs"~"is st""it tu"iu """"" """"" ""j"k""l""m""n"""o"p""q""r"""s"u""t"""""" """"" ""v""w"x"""y""z"{"""|"}""~"""""""""""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""" "" "" "" "" "" "" "" "" "" "" " """"" """""   " " " " " " " " """""""""""""""" " "  "  "  "  """"" """"""""""""""""""""" " " !"!" """" """""! !""#""$ $%"%&"&'"'("()")* *+"+,",-"#-""G"":"#;"#F"$H"$<"%="%I"&>"&J"'K"'?"(@"(L")M")A"*N"*B"+C"+O",P",D"-Q"-E"./".0 01"12"23"34"45"56 67"78"89"/9".:".S"/;"/R"0T"0<"1="1U"2>"2V"3?"3W"4X"4@"5A"5Y"6B"6Z"7C"7["8D"8\"9]"9E":;":< <="=>">?"?@"@A"AB BC"CD"DE";E"FG"R^ RS"S^ GH"ST"T^ HI"TU"U^ IJ"UV"V^ JK"VW"W^ KL"WX"X^ LM"XY"Y^ MN"YZ"Z^ NO"Z["[^ OP"[\"\^ PQ"\]"]^ FQ"R]"G_"H_"I_"J_"K_"L_"M_"N_"O_"P_"Q_"F_"`y"`n"`o"`p"`q"`r"`s"`t"`u"`v"`w"`x"bm"ny"ab bc"no"ac cd"op"ad de"pq"ae ef"qr"af fg"rs"ag gh"st"ah hi"tu"ai ij"uv"aj jk"vw"ak kl"wx"al lm"am xy"z"z{"{|"|}"}~ ~""""" "z"b"c"{"d"|"e"}"f"~""g"h""i""j"""k"m""l"""""" """"" "z"n"{"o"p"|"}"q"~"r"s"""t"u""v"""w"y"""x""""" """"" "" """"" """"""""""""""""""""""""""""" """"" """"""""""""""""""""""""""""" """"" """"" " "" "" "" "" "" "" "" "" "" "" """""""""""""""""""""""""""" "" "" "" "" "" "" "" "" "" "" " """"" """"" """"""""""""""" " " " " " " " " " " """" "" "  "  "    """"""""""""""""""""""""""""" """"" "" """ " !"!" "#"#$"$%"%"?"2"3">"@"4"5"A"6"B"C"7" 8" D"!E"!9""F"":"#;"#G"$H"$<"%I"%="&'"&( ()")*"*+"+,",-"-. ./"/0"01"'1"&2"&K"'3"'J"(L"(4")5")M"*6"*N"+7"+O",P",8"-9"-Q".:".R"/;"/S"0<"0T"1U"1="23"24 45"56"67"78"89"9: :;";<"<="3=">?"JV JK"KV ?@"KL"LV @A"LM"MV AB"MN"NV BC"NO"OV CD"OP"PV DE"PQ"QV EF"QR"RV FG"RS"SV GH"ST"TV HI"TU"UV >I"JU"?W"@W"AW"BW"CW"DW"EW"FW"GW"HW"IW">W"DATA,[0 H]0 DATAH]0 4       0&0$&'&'&('(')()(*)*)+*+* ,+,+!-, - ,".-!. -#/."/ .%1/#1 /$01%0 1$<2<232324343545465657676878 7989! 8:9:"!9;:;#":=;=%#;<=<$%=?WV>b?>c>VX@c>@d@XYAd@AeAYZBeABfBZ[CfBCgC[\DgCDhD\]EhDEiE]^FiEFjF^_GjFGkG_`HkGHlH`aIlHIm?bmIW?IaKnoJWKJVJopLVJLXLpqMXLMYMqrNYMNZNrsOZNO[OstP[OP\PtuQ\PQ]QuvR]QR^RvwS^RS_SwxT_ST`TxyU`TUaKWaUnKUyzonzpozqpzrqzsrztszutzvuzwvzxwzyxznymb{lm{kl{jk{ij{hi{gh{fg{ef{de{cd{bc{||||||||||||}~}~}}}}}}}}}}~~          ((  ! ! "!"!#"#"$#$#%$%$&%&%'&'&)')'()()4*4*+*+*,+,+ -,-, .- .- /. /. 0/ 0/ 10 1021 213232535345457ON6Z76[6NP8[68\8PQ9\89]9QR:]9:^:RS;^:;_;ST<_;<`<TU=`<=a=UV>a=>b>VW?b>?c?WX@c?@d@XYAd@Ae7ZeAO7AYCfgBOCBNBghDNBDPDhiEPDEQEijFQEFRFjkGRFGSGklHSGHTHlmITHIUImnJUIJVJnoKVJKWKopLWKLXLpqMXLMYCOYMfCMqrgfrhgrihrjirkjrlkrmlrnmronrporqprfqeZsdescdsbcsabs`as_`s^_s]^s\]s[\sZ[sttttttttttttuvuvwuwxuxyuyzuz{u{|u|}u}~u~uuvwvxwyxzy{z|{}|~}~            !! ! !," , "#"#  "$#$  #%$%  $&%& %'&'&('(')()(*)*)+*+*-+-+ ,-,-/GF.R/.S.FH0S.0T0HI1T01U1IJ2U12V2JK3V23W3KL4W34X4LM5X45Y5MN6Y56Z6NO7Z67[7OP8[78\8PQ9\89]/R]9G/9Q;^_:G;:F:_`<F:<H<`a=H<=I=ab>I=>J>bc?J>?K?cd@K?@L@deAL@AMAefBMABNBfgCNBCOCghDOCDPDhiEPDEQ;GQE^;Eij_^j`_ja`jbajcbjdcjedjfejgfjhgjihj^i]Rk\]k[\kZ[kYZkXYkWXkVWkUVkTUkSTkRSkllllll~l~}l}|l|{l{zlzlmynmnomopmpqmqrmrsmstmtumuvmvwmwxmxyynonpoqprqsrtsutvuwvxwyxz{z|{}|~}~           $$  ! !  "!"  !#"#  "%#%  #$%$  %'?>&J'&K&>@(K&(L(@A)L()M)AB*M)*N*BC+N*+O+CD,O+,P,DE-P,-Q-EF.Q-.R.FG/R./S/GH0S/0T0HI1T01U'JU1?'1I3VW2?32>2WX4>24@4XY5@45A5YZ6A56B6Z[7B67C7[\8C78D8\]9D89E9]^:E9:F:^_;F:;G;_`<G;<H<`a=H<=I3?I=V3=abWVbXWbYXbZYb[Zb\[b]\b^]b_^b`_ba`bVaUJcTUcSTcRScQRcPQcOPcNOcMNcLMcKLcJKc}|d|{d{zdzydyxdxwdwvdvudutdtsdsrdr}deqfefgeghehieijejkeklelmemnenoeopepqqf~~gfhgihjikjlkmlnmonpoqp~}rsr~tsutvuwvxwyxzy{z|{}|                    76BC68 C D 89!D !E!9:"E!"F":;#F"#G#;<$G#$H$<=%H$%I%=>&I%&J&>?'J&'K'?@(K'(L(@A)L()MBM)7)A+NO*7+*6*OP,6*,8,PQ-8,-9-QR.9-.:.RS/:./;/ST0;/0<0TU1<01=1UV2=12>2VW3>23?3WX4?34@4XY5@45A+7A5N+5YZONZPOZQPZRQZSRZTSZUTZVUZWVZXWZYXZNYMB[LM[KL[JK[IJ[HI[GH[FG[EF[DE[CD[BC[ut\ts\sr\rq\qp\po\on\nm\ml\lk\kj\ju\]i^]^_]_`]`a]ab]bc]cd]de]ef]fg]gh]hii^vwv_^xw`_yxa`zyba{zcb|{dc}|ed~}fe~gfhgihvujkjwvlkxwmlyxnmzyon{zpo|{qp}|rq~}sr~tsut                    /.:;.0;<01<=12=>23>?34?@45@A56AB67BC78 C D 89!D !E:E!/!9#FG"/#"."GH$."$0$HI%0$%1%IJ&1%&2&JK'2&'3'KL(3'(4(LM)4()5)MN*5)*6*NO+6*+7+OP,7+,8,PQ-8,-9#/9-F#-QRGFRHGRIHRJIRKJRLKRMLRNMRONRPORQPRFQE:SDESCDSBCSABS@AS?@S>?S=>S<=S;<S:;SmlTlkTkjTjiTihThgTgfTfeTedTdcTcbTbmTUaVUVWUWXUXYUYZUZ[U[\U\]U]^U^_U_`U`aazVxnzo{zn{WVzp|{o|XW{q}|p}YX|r~}q~ZY}s~r[Z~ts\[ut]\vu^]wv_^yw`_xya`xnmbcbondcpoedqpferqgfsrhgtsihutjivukjwvlkywmlxy                    '&23&(34()45)*56*+67+,78,-89-.9:./:;/0;<01<=2='1>?'&?@&(@A()AB)*BC*+CD + , DE!, !-!EF"-!"."FG#."#/#GH$/#$0$HI%0$%1'1%>%IJ?>J@?JA@JBAJCBJDCJEDJFEJGFJHGJIHJ>I=2K<=K;<K:;K9:K89K78K67K56K45K34K23KedLdcLcbLbaLa`L`_L_^L^]L]\L\[L[ZLZeLMYNMNOMOPMPQMQRMRSMSTMTUMUVMVWMWXMXYY|rN|pfrgsrfsONrhtsgtPOsiuthuQPtjvuivRQukwvjwSRvlxwkxTSwmyxlyUTxnzymzVUyo{zn{WVzq}{o}XW{p|}q|YX}p~feZ~[~Zgf~\[hg]\ih^]ji_^kj`_lka`mlbanmcbondcqoedpq*+ +, ! , - !" -  . "# .  / #$ /  0 $% 0  1 %&1 2&'23'(34()45*5)6778 89 !9:!":;"#;<#$<=$%=>%&>?&'?@'(@A())6AB76B87B98B:9B;:B<;B=<B>=B?>B@?BA@B6A5*C45C34C23C12C01C/0C./C-.C,-C+,C*+C]\D\[D[ZDZYDYXDXWDWVDVUDUTDTSDSRDR]DEQFEFGEGHEHIEIJEJKEKLELMEMNENOEOPEPQQtjFth^j_kj^kGFj`lk_lHGkaml`mIHlbnmanJImconboKJndpocpLKoeqpdqMLpfrqerNMqgsrfsONriusguPOshtuitQPuhv^]RvSwvRw_^vTxwSx`_wUyxTya`xVzyUzbayW{zV{cbzX|{W|dc{Y}|X}ed|Z~}Y~fe}[~Zgf~\[ig]\hi"##$$%%&&''(())**+ +, ! , -"-  ! ./    /0    01    12 233445566778 89 ! !. 9:/.:0/:10:21:32:43:54:65:76:87:98:.9-";,-;+,;*+;)*;();'(;&';%&;$%;#$;"#;UT<TS<SR<RQ<QP<PO<ON<NM<ML<LK<KJ<JU<=I>=>?=?@=@A=AB=BC=CD=DE=EF=FG=GH=HIIlb>l`VbWcbVc?>bXdcWd@?cYedXeA@dZfeYfBAe[gfZgCBf\hg[hDCg]ih\iEDh^ji]jFEi_kj^kGFjamk_mHGk`lmalIHm`xnVxUJnKonJoWVnLpoKpXWoMqpLqYXpNrqMrZYqOsrNs[ZrPtsOt\[sQutPu]\tRvuQv^]uSwvRw_^vTywSya_wUxyTx`ay{z{zz|z||}|}}~}~~~{{                           !   ! "   " #   #  $     $  %  %      & '       ' (       ( )       ) *       * +       + ,       , -     - .    . /    / 0    0 1      &  1 2 ' & 2 ( ' 2 ) ( 2 * ) 2 + * 2 , + 2 - , 2 . - 2 / . 2 0 / 2 1 0 2 & 1 %  3 $ % 3 # $ 3 " # 3 ! " 3  ! 3  3   3   3   3   3   3 M L 4 L K 4 K J 4 J I 4 I H 4 H G 4 G F 4 F E 4 E D 4 D C 4 C B 4 B M 4 5 A 6 5 6 7 5 7 8 5 8 9 5 9 : 5 : ; 5 ; < 5 < = 5 = > 5 > ? 5 ? @ 5 @ A A d Z 6 d X N Z O [ Z N [ 7 6 Z P \ [ O \ 8 7 [ Q ] \ P ] 9 8 \ R ^ ] Q ^ : 9 ] S _ ^ R _ ; : ^ T ` _ S ` < ; _ U a ` T a = < ` V b a U b > = a W c b V c ? > b Y e c W e @ ? c X d e Y d A @ e X p f N p M B f C g f B g O N f D h g C h P O g E i h D i Q P h F j i E j R Q i G k j F k S R j H l k G l T S k I m l H m U T l J n m I n V U m K o n J o W V n L q o K q Y W o M p q L p X Y q s r  s r r t  r t t u  t u u v  u v v w  v w w x  w x x y  x y y z  y z z {  z { { |  { | | }  | } s }  s }  ~   ~ ~  ~                                                                                                                                                                                  !   ! "   " #   # $   $ %     % &       & '       ' (       ( )            ) *   *  * ! * " ! * # " * $ # * % $ * & % * ' & * ( ' * ) ( *  )   +   +   +   +   +   +   +   +   +   +   +   + E D , D C , C B , B A , A @ , @ ? , ? > , > = , = < , < ; , ; : , : E , - 9 . - . / - / 0 - 0 1 - 1 2 - 2 3 - 3 4 - 4 5 - 5 6 - 6 7 - 7 8 - 8 9 9 \ R . \ P F R G S R F S / . R H T S G T 0 / S I U T H U 1 0 T J V U I V 2 1 U K W V J W 3 2 V L X W K X 4 3 W M Y X L Y 5 4 X N Z Y M Z 6 5 Y O [ Z N [ 7 6 Z Q ] [ O ] 8 7 [ P \ ] Q \ 9 8 ] P h ^ F h E : ^ ; _ ^ : _ G F ^ < ` _ ; ` H G _ = a ` < a I H ` > b a = b J I a ? c b > c K J b @ d c ? d L K c A e d @ e M L d B f e A f N M e C g f B g O N f D i g C i Q O g E h i D h P Q i k j  k j j l  j l l m  l m m n  m n n o  n o o p  o p p q  p q q r  q r r s  r s s t  s t t u  t u k u  k u w v  w v v x  v x x y  x y y z  y z z {  z { { |  { | | }  | } } ~  } ~ ~   ~       w  w                                                                                                                                                                                                  !    ! "   "   "   "   "   "   "   "   "   "  " ! "  !  #   #   #   #   #   #   #   #   #  #  #  # = < $ < ; $ ; : $ : 9 $ 9 8 $ 8 7 $ 7 6 $ 6 5 $ 5 4 $ 4 3 $ 3 2 $ 2 = $ % 1 & % & ' % ' ( % ( ) % ) * % * + % + , % , - % - . % . / % / 0 % 0 1 1 T J & T H > J ? K J > K ' & J @ L K ? L ( ' K A M L @ M ) ( L B N M A N * ) M C O N B O + * N D P O C P , + O E Q P D Q - , P F R Q E R . - Q G S R F S / . R I U S G U 0 / S H T U I T 1 0 U H ` V > ` = 2 V 3 W V 2 W ? > V 4 X W 3 X @ ? W 5 Y X 4 Y A @ X 6 Z Y 5 Z B A Y 7 [ Z 6 [ C B Z 8 \ [ 7 \ D C [ 9 ] \ 8 ] E D \ : ^ ] 9 ^ F E ] ; _ ^ : _ G F ^ < a _ ; a I G _ = ` a < ` H I a c { z b  c b b z | d  b d d | } e  d e e } ~ f  e f f ~  g  f g g  h  g h h i  h i i j  i j j k  j k k l  k l l m  l m c m { c m o n { o n z n p z n p | p q | p q } q r } q r ~ r s ~ r s  s t  s t t u  t u u v  u v v w  v w w x  w x x y  x y o { y  o y                                                                                                                                                                                                                                                      5 4  4 3  3 2  2 1  1 0  0 /  / .  . -  - ,  , +  + *  * 5   )        !  ! "  " #  # $  $ %  % &  & '  ' (  ( ) ) L B  L @ 6 B 7 C B 6 C   B 8 D C 7 D  C 9 E D 8 E ! D : F E 9 F " ! E ; G F : G # " F < H G ; H $ # G = I H < I % $ H > J I = J & % I ? K J > K ' & J A M K ? M ( ' K @ L M A L ) ( M @ X N 6 X 5 * N + O N * O 7 6 N , P O + P 8 7 O - Q P , Q 9 8 P . R Q - R : 9 Q / S R . S ; : R 0 T S / T < ; S 1 U T 0 U = < T 2 V U 1 V > = U 3 W V 2 W ? > V 4 Y W 3 Y A ? W 5 X Y 4 X @ A Y [ s r Z ~ [ Z  Z r t \  Z \ \ t u ]  \ ] ] u v ^  ] ^ ^ v w _  ^ _ _ w x `  _ ` ` x y a  ` a a y z b  a b b z { c  b c c { | d  c d d | } e  d e [ ~ e s [ e } g f s g f r f h r f h t h i t h i u i j u i j v j k v j k w k l w k l x l m x l m y m n y m n z n o z n o { o p { o p | p q | p q } g s } q  g q              ~           ~                                                                                                                                                                                                    - ,  , +  + *  * )  ) (  ( '  ' &  & %  % $  $ #  # "  " -   !                                ! ! D :  D 8 . : / ; : . ;   : 0 < ; / <   ; 1 = < 0 =   < 2 > = 1 >   = 3 ? > 2 ?   > 4 @ ? 3 @   ? 5 A @ 4 A   @ 6 B A 5 B   A 7 C B 6 C   B 9 E C 7 E  C 8 D E 9 D ! E 8 P F . P - " F # G F " G / . F $ H G # H 0 / G % I H $ I 1 0 H & J I % J 2 1 I ' K J & K 3 2 J ( L K ' L 4 3 K ) M L ( M 5 4 L * N M ) N 6 5 M + O N * O 7 6 N , Q O + Q 9 7 O - P Q , P 8 9 Q S k j R v S R w R j l T w R T x T l m U x T U y U m n V y U V z V n o W z V W { W o p X { W X | X p q Y | X Y } Y q r Z } Y Z ~ Z r s [ ~ Z [  [ s t \  [ \ \ t u ]  \ ] S v ] k S ] u _ ^ k _ ^ j ^ ` j ^ ` l ` a l ` a m a b m a b n b c n b c o c d o c d p d e p d e q e f q e f r f g r f g s g h s g h t h i t h i u _ k u i  _ i              v   ~  } ~ | } { | z { y z x y w x v w                                                                                                                                                                %$ $# #" "! !         %             <2<0&2'32&32(43'43)54(54*65)65+76*76,87+87-98,98.:9-:9/;:.;:1=;/=;0<=1<=0H>&H%>?>?'&>@?@('?A@A)(@BAB*)ACBC+*B DCD,+C!ED E-,D"FE!F.-E#GF"G/.F$IG#I1/G%HI$H01IKcbJnKJoJbdLoJLpLdeMpLMqMefNqMNrNfgOrNOsOghPsOPtPhiQtPQuQijRuQRvRjkSvRSwSklTwSTxTlmUxTUyKnyUcKUmWz{VcWVbV{|XbVXdX|}YdXYeY}~ZeYZfZ~[fZ[g[\g[\h\]h\]i]^i]^j^_j^_k_`k_`l`al`amWcmazWa{z|{}|~}~zynxywxvwuvtustrsqrpqopno          4*4(*+*+* ,+,+!-, - ,".-!.  -#/."/  .$0/#0  /%10$1  0&21%2 1'32&32)53'53(45)45(@6@67676878 7989! 8:9:"!9;:;#":<;<$#;=<=%$<>=>&%=?>?'&>A?A)'?@A@()AC[ZBfCBgBZ\DgBDhD\]EhDEiE]^FiEFjF^_GjFGkG_`HkGHlH`aIlHImIabJmIJnJbcKnJKoKcdLoKLpLdeMpLMqCfqM[CMeOrsN[ONZNstPZNP\PtuQ\PQ]QuvR]QR^RvwS^RS_SwxT_ST`TxyU`TUaUyzVaUVbVz{WbVWcW{|XcWXdX|}YdXYeO[eYrOY}~sr~ts~ut~vu~wv~xw~yx~zy~{z~|{~}|~r}qfpqopnomnlmkljkijhighfg           ,", "#"#"$#$#%$%$&%&%'&'&('(')()(*)*)+*+*!-+-+ ,-!, - 8.8 . /. /. 0/ 0/ 10 1021 2132324343545465657676979!7898 !9;SR:^;:_:RT<_:<`<TU=`<=a=UV>a=>b>VW?b>?c?WX@c?@d@XYAd@AeAYZBeABfBZ[CfBCgC[\DgCDhD\]EhDEi;^iES;E]GjkFSGFRFklHRFHTHlmITHIUImnJUIJVJnoKVJKWKopLWKLXLpqMXLMYMqrNYMNZNrsOZNO[OstP[OP\PtuQ\PQ]GS]QjGQuvkjvlkvmlvnmvonvpovqpvrqvsrvtsvutvjui^whiwghwfgwefwdewcdwbcwabw`aw_`w^_wxxxxxxxxxxxxyzyz{y{|y|}y}~y~yyyyyyz{z|{}|~}~          $$  ! ! "!"!#"#"%#%#$%$%0&0 &'&'&('(')()(*)*)+*+*,+,+ -,-, .- .- /. /. 1/ 1/ 01 013KJ2V32W2JL4W24X4LM5X45Y5MN6Y56Z6NO7Z67[7OP8[78\8PQ9\89]9QR:]9:^:RS;^:;_;ST<_;<`<TU=`<=a3Va=K3=U?bc>K?>J>cd@J>@L@deAL@AMAefBMABNBfgCNBCOCghDOCDPDhiEPDEQEijFQEFRFjkGRFGSGklHSGHTHlmITHIU?KUIb?ImncbndcnednfengfnhgnihnjinkjnlknmlnbmaVo`ao_`o^_o]^o\]o[\oZ[oYZoXYoWXoVWopppppppppp~p~pq}rqrsqstqtuquvqvwqwxqxyqyzqz{q{|q|}}rsrtsutvuwvxwyxzy{z|{}|~~          ((  ! !  "!"  !#"#  "$#$  #%$%  $&%& %'&'&)')'()()+CB*N+*O*BD,O*,P,DE-P,-Q-EF.Q-.R.FG/R./S/GH0S/0T0HI1T01U1IJ2U12V2JK3V23W3KL4W34X4LM5X45Y+NY5C+5M7Z[6C76B6[\8B68D8\]9D89E9]^:E9:F:^_;F:;G;_`<G;<H<`a=H<=I=ab>I=>J>bc?J>?K?cd@K?@L@deAL@AM7CMAZ7Aef[Zf\[f]\f^]f_^f`_fa`fbafcbfdcfedfZeYNgXYgWXgVWgUVgTUgSTgRSgQRgPQgOPgNOghh~h~}h}|h|{h{zhzyhyxhxwhwvhvhiujijkiklilmimninoiopipqiqrirsistituujkjlkmlnmonpoqprqsrtsutvwvxwyxzy{z|{}|~}~                    !!  !  !#;:"F#"G":<$G"$H$<=%H$%I%=>&I%&J&>?'J&'K'?@(K'(L(@A)L()M)AB*M)*N*BC+N*+O+CD,O+,P,DE-P,-Q#FQ-;#-E/RS.;/.:.ST0:.0<0TU1<01=1UV2=12>2VW3>23?3WX4?34@4XY5@45A5YZ6A56B6Z[7B67C7[\8C78D8\]9D89E/;E9R/9]^SR^TS^UT^VU^WV^XW^YX^ZY^[Z^\[^]\^R]QF_PQ_OP_NO_MN_LM_KL_JK_IJ_HI_GH_FG_yx`xw`wv`vu`ut`ts`sr`rq`qp`po`on`ny`ambabcacdadeaefafgaghahiaijajkaklalmmbz{zcb|{dc}|ed~}fe~gfhgihjikjlkmlzynon{zpo|{qp}|rq~}sr~tsutvuwvxwyx                    32>?24?@45@A56AB67BC78 C D 89!D !E!9:"E!"F":;#F"#G#;<$G#$H$<=%H$%I>I%3%='JK&3'&2&KL(2&(4(LM)4()5)MN*5)*6*NO+6*+7+OP,7+,8,PQ-8,-9-QR.9-.:.RS/:./;/ST0;/0<0TU1<01='3=1J'1UVKJVLKVMLVNMVONVPOVQPVRQVSRVTSVUTVJUI>WHIWGHWFGWEFWDEWCDWBCWABW@AW?@W>?WME52 2O2 . MECylinder.068`#L 872 H2 82 @2 h72 >2  G2 JT3^:Fw?Fw?N?DATA872 e DATA,h72 82 DATA82 8J5?5?ZZFw?>{ !Fw?{5?5Z>Fw !^烄Fw^55Fw^Fw݃>^ !55?ZFw?ޢ{Ӄ>Fw? !{5?5??ZZFw?>?{ !Fw?Ƀ?{5?5?Z>Fw? !^Fw?^55?Fw$?^Fw>?^ ! 55??Z.Fw??ޢ{>Fw?? !{Ӄ>Fw?Z2\Fw?ZL2\55?Z~CFw݃>ZΣFwZΣL纪55Z烄FwZLΣ>FwZΣ5?5Z~CFw?Z2\L纪Fw?>Z2\5?5?Z~C~CU&?V&?}{iiTc?fs>}{XTc?cs}{TU&?T&}{iTis>c}{X>TWsc}{>TS&X&}{Tc{s}{>TcEs>}{>XT]&N&?}{iTsc?}{T2s>c?}{XTp1}{>Fw?(?cK.Fw?(?QcK 55?(?HKFw>(?jKFw$(?jQK55(?KFw(?QjK>Fw(?jK5?5(?HKFw?Ƀ(?cQKFw?>(?cK5?5?(?HHK-?-? ?Q~)m?$1~> ?WQ~)m?0~ ?Q~-?- ?gQ~71~>)m ?WQ~0~)m ?Q~-- ?ggQ~)mJ1~ ?Q~)mv0~> ?WQ~--? ?gQ~^1~)m? ?Q~`0~>)m? ?WQ~J{'1 ?DATA,>2 @2 DATAP@2 5                     " """""""" " " "#"#" "" "" """"""""""" " " !"!"!"""""#""%"$%"#$"!&"%&" '"&'"("'(")"()"*")*"+"*+","+,"-",-"."-."/"./"$/"$0 %0 &0 '0 (0 )0 *0 +0 ,0 -0 .0 /0 1"1<" <"2"12"3"23"4"34"5"45"6"56"7"67"8"78"9"89":"9:" ;":;";<"<="=>#;>">?#:?"?@#9@"@A#8A"AB#7B"BC#6C"CD#5D"DE#4E"EF#3F"FG#2G"GH#1H"=H#>I!=I!?I!@I!AI!BI!CI!DI!EI!FI!GI!HI!DATA,G2 H2 DATAH2 4T         #     !!""##"%$"!&%! '& (')(*)+*,+-,.-/.#$/0$%0%&0&'0'(0()0)*0*+0+,0,-0-.0.//$0 1<2132435465768798:9 ;: <;;<=>:;>?9:?@89@A78AB67BC56CD45DE34EF23FG12GH<1H=I>=I?>I@?IA@IBAICBIDCIEDIFEIGFIHGI=HMEO2 2Xi2 52 MECylinder.069Rp P2 b2 pR2 Y2 Q2 hX2  @a2 JT3^:Fw?Fw?N?DATAP2 0g DATA,Q2 pR2 DATApR2 8J5?5?ZZFw?>{ !Fw?{5?5Z>Fw !^烄Fw^55Fw^Fw݃>^ !55?ZFw?ޢ{Ӄ>Fw? !{5?5??ZZFw?>?{ !Fw?Ƀ?{5?5?Z>Fw? !^Fw?^55?Fw$?^Fw>?^ ! 55??Z.Fw??ޢ{>Fw?? !{Ӄ>Fw?Z2\Fw?ZL2\55?Z~CFw݃>ZΣFwZΣL纪55Z烄FwZLΣ>FwZΣ5?5Z~CFw?Z2\L纪Fw?>Z2\5?5?Z~C~CU&?V&?}{iiTc?fs>}{XTc?cs}{TU&?T&}{iTis>c}{X>TWsc}{>TS&X&}{Tc{s}{>TcEs>}{>XT]&N&?}{iTsc?}{T2s>c?}{XTp1}{>Fw?(?cK.Fw?(?QcK 55?(?HKFw>(?jKFw$(?jQK55(?KFw(?QjK>Fw(?jK5?5(?HKFw?Ƀ(?cQKFw?>(?cK5?5?(?HHK-?-? ?Q~)m?$1~> ?WQ~)m?0~ ?Q~-?- ?gQ~71~>)m ?WQ~0~)m ?Q~-- ?ggQ~)mJ1~ ?Q~)mv0~> ?WQ~--? ?gQ~^1~)m? ?Q~`0~>)m? ?WQ~J{'1 ?DATA,hX2 Y2 DATAPY2 5                     " """""""" " " "#"#" "" "" """"""""""" " " !"!"!"""""#""%"$%"#$"!&"%&" '"&'"("'(")"()"*")*"+"*+","+,"-",-"."-."/"./"$/"$0 %0 &0 '0 (0 )0 *0 +0 ,0 -0 .0 /0 1"1<" <"2"12"3"23"4"34"5"45"6"56"7"67"8"78"9"89":"9:" ;":;";<"<="=>#;>">?#:?"?@#9@"@A#8A"AB#7B"BC#6C"CD#5D"DE#4E"EF#3F"FG#2G"GH#1H"=H#>I!=I!?I!@I!AI!BI!CI!DI!EI!FI!GI!HI!DATA,@a2 b2 DATAb2 4T         #     !!""##"%$"!&%! '& (')(*)+*,+-,.-/.#$/0$%0%&0&'0'(0()0)*0*+0+,0,-0-.0.//$0 1<2132435465768798:9 ;: <;;<=>:;>?9:?@89@A78AB67BC56CD45DE34EF23FG12GH<1H=I>=I?>I@?IA@IBAICBIDCIEDIFEIGFIHGI=HMEXi2 2v2 O2 MECylinder.070hPj2 t2 l2 xp2 j2  o2  xs2 $<4q?q?Q$>DATAj2 Xp DATA,j2  l2 DATA l2 8$Ҕ>=>{ !Ҕ> >{VY>XY>Z=Ҕ> !^Ҕ>^^Y\Y>Ҕ>^Ҕ=>^ !nYTY>>Z<Ҕ>>ޢ{=Ҕ>> !{TY>\Y>>ZZ=Ҕ>!g6<Ҕ>!;g6nYTY>!"K6Ҕ=!]6Ҕ!];6^Y\Y!""6Ҕ!;]6=Ҕ!]6VY>XY!K"6Ҕ> !g;6Ҕ>=!g6TY>\Y>!KK6y0?y0?.&.&q?/>'4 q?/'4y0?y0.&/>q /qy0y0q/q/>  y0x0?.&/q?'4/>q? '4DATA, o2 xp2 DATAxp2 5< """""""""""""""""" " " " " " " " " #" " """!"" """"""""""""""""""""""" " !"!"""#"#"DATA,xs2 t2 DATAt2 4     # "# !"  ! MEv2 22 Xi2 MECylinder.0718!y x2 ~2 y2 0|2 Px2 z2  }2   3.Ҕ>Ҕ>=DATA x2 b DATA,Px2 y2 DATAy2 8 TY>\Y>>/#/#=Ҕ>> 0<Ҕ>> 0nYTY>>/#Ҕ=> Ҕ> ^Y\Y>Ҕ> =Ҕ> VY>XY>/#Ҕ> >0 Ҕ>=>0 q{۳NDATA,z2 0|2 DATA 0|2 5######## # # # # # # # # # # # # # # # #DATA,}2 ~2 DATA~2 4            ME2 22 v2 MEdesnieviube.001R 82 2 2 2 2 p2 h2 P2  2 Ph>XHn&>&{?B|?DATA82 Pi DATA,h2 2 DATA`2 8xTԾ(Z?R?^?P=!pTԾ.Z?Y>^?PX9.Z?Y>@v`9(Z?R?@v0TԾѾ\V?0]pRxTԾIW?\V?^=!?P`9IW?\V?0@vl9Ѿ\V?Ԃxl9پaS?3Af9P<@j>ك}TԾP<@j>^ TԾپaS?0]-f9O9AIJX9OW?A0pTԾOW?A^=!}TԾO9A^OhwTԾz?v?^?P=!mTԾz? |y^?PTԾҒ:z?0]pRwTԾfpv?:z?^=!?PTԾv?0]-~TԾP}uy^ mTԾnpv?}^=!~TԾJy}^Ohwx۾z?v?@v0mx۾z? |y@vx۾Ғ:z?Ԃxwx۾fpv?:z?0@vx۾v?3A~x۾P}uyكmx۾npv?}0~x۾Jy}IJyz? |y@syz?v?@s.yҒ:z?=֭uyfpv?:z? /6syP}uyr#yv?B^?ynpv?} /ʌyJy}˄":v?pq?&=R~"@v?Ӗt&=" r?u?)!<"%)u?Ғ?" sq?zb""wԪt"^t]x[B~" r?]x)?Ͼ.Z?Y>@v?Ͼ(Z?R?@v0?ϾIW?\V?0@v?ϾѾ\V?Ԃx?ϾP<@j>ك?ϾپaS?3A?ϾOW?A0?ϾO9AIJ"vZ?T?"|Z?V"JW?^W?"^W?"(*#T?"VV"ޝSkZ"JW?kZ"qE?Qc"qE?,E"zB?p^"ZKp^"*W1E" W:c"POvYF"~B?vYF"qE?,E"qE?Qc"zB?p^"ZKp^"*W1E" W:c"~B?vYF"POvYF"A?*k KE,"A??C KEp"|??nfukW"=nfŤVX"nIeEC "Ij:M."|??dDu"`AdD ҩS+A??C KEpS+A?*k KE,S+=nfŤVXS+|??nfukWS+nIeEC S+Ij:M.S+|??dDuS+`AdD ҩS+.?8*HS+.?*ܸS+ X^ S+,? ˌ6KS+ "DS+?8*-?ocǵX*۽z{[*j+?z{Ms*TZjǸ]*g7c:*j+?8Mv*R8i/uR~-?oc pP~-?7 ,R~j+?z{u함W~۽z{ŤW~TZBT~g7 Hc*P~j+?8ukWT~R8 R.VR~*+?P~,+?x6W~(:ɽJ3R~)?J3W~XܽT~@ܽ@}6P~)?f7T~}Ͻf7R~np ?OP~pp ?0R~?RW~PkRW~ V)T~?0P~?W1T~wW1"m_S?P"h_S?>"$P?Mc>"nƾMc>"B[ξk>" KgP"ZeS"$$P?ZeS"S4O?D\K"N4O? >" L?X>"8~¾X>"Zʾ&>"*AiK"bN" L?N"*AiK}"bNu"Zʾ&>D"8~¾X>>z" L?X>+Nx"N4O? >s,6" L?N+"S4O?D\Ks"ZeS1u" KgPQ&"B[ξk>lz"h_S?>܋4"$P?Mc>և"$$P?ZeS*x"m_S?P܋5h_S?>6m_S?P6&$nƾMc>fs$P?Mc> KgPcQFB[ξk>GIZeSء!O$$P?ZeS?RN4O? >&M_$S4O?D\K&M8~¾X>pmT L?X>eR*AiKuǮ`Zʾ&>ѡᶈ.bNk L?NDATA,P2 2 DATA2 5h"""" " " "" """"" " " " "  "  "   " """"" "" "" "" "     " !"!"#""#"""%"$%"$"'"&'"&" &"!#""%"$'" )"()"!("#*"*+""+"%,",-"$-"'."./"&/")/"(*"+,"-."0"0"1"1"2"2"3"3" 4" 4"5" 5" 6"6" 7"7"01 23 45 67 06 12 35 47 )9 89 (8 *: :; +; ,< <= -= .> >? /? 9? 8: ;< => @A"BC"DE"FG"AG"@B#CE"DF"AH"HI"@I"BJ"JK"CK"EM"LM"DL"FO"NO"GN"HN"IJ"KM"LO"HQ PQ"IP JR RS"KS MU TU"LT OW VW"NV QV"PR"SU"TW"QX"XY"PY"R["Z["SZ"U]"\]"T\"W_"^_"V^"X^"Y["Z]"\_"X` `a"Ya [c bc"Zb ]d de"\e _g fg"^f `f"ac"bd"eg"`h"hi"ai"ck"jk"bj"dl"lm"em"go"no"fn"hn"ik"jl"mo"hq"pq"ip"kr"rs"js"lt"tu"mu"ow"vw"nv"qv"pr"st"uw"qy xy px r{ z{ sz t| |} u} w ~ v~ y~ x{ z| } y "x { "z | "}  "~ """"9 8 : ; < = > ? """"""""A @!B!C E D F G """""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" DATA,2 2 UVTex2 @Colp2 DATA 2 4    !#"%$'&& !#"%$'! )("#*+$%,-&'./ &/)#!(*%"+,'$-.1010323254 5 4 76 76060 61221353 5 47 4 7()98+*:;-,<=/.>?)/?9*(8:,+;<.-=>@AHICBJKDEMLGFONAGNHB@IJECKMFDLOIHQPKJRSLMUTNOWVHNVQJIPRMKSUOLTWPQXYSR[ZTU]\VW_^QV^XRPY[USZ]WT\_YX`aZ[cb\]de^_gfX^f`[Yac]Zbd_\ega`hibckjedlmfgon`fnhcaikdbjlgemoihqpjkrsmltunowvhnvqkiprljstomuwpqyxsr{zut|}vw~qv~yrpx{tsz|wu}xyz{}|~y~{x|z}98:;<=>??98:;<=>A@BCEDFGGA@BCEDFDATA@2 <:]>6o?|= w?Do=iv?Lf>l?<Vv>V?hn>j?bp>T?<(>aYY?X>bRQ?zb`>S?>6\?<e=hr?=\?>R[?\=x}v?<|= w?e=hr?\=x}v?Do=iv?<hn>6o?Lf>l?6e>j?<X>bRQ?Vv>V?bp>T?zb`>S?<=\?(>aYY?>6\?>R[?<Lf>l?Do=iv?$=}v?ze>zl?<bp>T?6e>j?re>?j?Wo>ZbT?<>6\?zb`>S?1`>S?>]?<\=x}v?>R[?b>,[?,=uv?<Do=iv?\=x}v?,=uv?$=}v?<6e>j?Lf>l?ze>zl?re>?j?<zb`>S?bp>T?Wo>ZbT?1`>S?<>R[?>6\?>]?b>,[?<ze>zl?$=}v?h|~=Ds?b>0:i?<Wo>ZbT?re>?j?>\>Nj?f>iT?<>]?1`>S?b>T?\ >5^?<,=uv?b>,[?VX>=]?p.=8w?<$=}v?,=uv?p.=8w?h|~=Ds?<re>?j?ze>zl?b>0:i?>\>Nj?<1`>S?Wo>ZbT?f>iT?b>T?<b>,[?>]?\ >5^?VX>=]?<b>0:i?h|~=Ds?=/r?~$`>Th?<f>iT?>\>Nj?Y>`i?jc>T?<\ >5^?b>T?b>FU? >,_?<p.=8w?VX>=]?z)>^?= x?<h|~=Ds?p.=8w?= x?=/r?<>\>Nj?b>0:i?~$`>Th?Y>`i?<b>T?f>iT?jc>T?b>FU?<VX>=]?\ >5^? >,_?z)>^?<:]>6o?2|]>p?=..x?|= w?<2|]>p?^>:fq?=vy?=..x?<Vv>V?v>V?n>ei?hn>V?Sz>V?Nr>Li?n>ei?<V>@P?bW>p9Q?2i>^>Y?( >lX?<bW>p9Q?X>bRQ?(>aYY?2i>^>Y?<=[?=z\?8(d=r?V=q?<=z\?=\?e=hr?8(d=r?<|= w?=..x?8(d=r?e=hr?<=..x?=vy?V=q?8(d=r?<2|]>p?:]>6o?hn>ei?<n>ei?Nr>Li?^>:fq?2|]>p?<Sz>V?v>V?bW>p9Q?V>@P?<v>V?Vv>V?X>bRQ?bW>p9Q?<( >lX?2i>^>Y?=z\?=[?<2i>^>Y?(>aYY?=\?=z\?<~$`>Th?=/r? =7lo?eT>\f?<jc>T?Y>`i?ZS>A,h?r]>V?< >,_?b>FU?_>V?:>_?<= x?z)>^?jy>`?4=w?<=/r?= x?4=w? =7lo?<Y>`i?~$`>Th?eT>\f?ZS>A,h?<b>FU?jc>T?r]>V?_>V?<z)>^? >,_?:>_?jy>`?<r>m?\=n?<>רn?>0m?<&>[a?_> m?>1m?>(\a?<x=Ca?& >>a?8H>~`?(=Ca?< >$n?*=!b?=4pb?: >n?<\=n? >$n?: >n?<>רn?<_> m?r>m?>0m?>1m?<& >>a?&>[a?>(\a?8H>~`?<*=!b?x=Ca?(=Ca?=4pb?<>0m?<>רn?>R~n?>йm?<>(\a?>1m?Z> m?]>a?<(=Ca?8H>~`?>a?=`b?<: >n?=4pb?=b?`>Um?<<>רn?: >n?`>Um?>R~n?<>1m?>0m?>йm?Z> m?<8H>~`?>(\a?]>a?>a?<=4pb?(=Ca?=`b?=b?<>йm?>R~n?&V>n?>\Xm?<]>a?Z> m?ʸ>m?|>a?<=`b?>a?bG>pa?A= jb?<`>Um?=b?=ސb?>m?<>R~n?`>Um?>m?&V>n?<Z> m?>йm?>\Xm?ʸ>m?<>a?]>a?|>a?bG>pa?<=b?=`b?A= jb?=ސb?<>\Xm?&V>n?>2m?u>l?<|>a?ʸ>m?n=>;l? >b?<A= jb?bG>pa?>Ob?>m?=ސb?f1>lc?,>l?<&V>n?>m?,>l?>2m?<ʸ>m?>\Xm?u>l?n=>;l?<bG>pa?|>a? >b?>Ob?<=ސb?A= jb?>lc?<u>l?>2m?>0!m?2>}l?< >b?n=>;l?>,l?>Nb?<>Ob?>r`b?<> /c?<,>l?f1>lc?t>{c?>l?<>2m?,>l?>l?>0!m?<n=>;l?u>l?2>}l?>,l?<>Ob? >b?>Nb?>r`b?<f1>lc?> /c?t>{c?<2>}l?>0!m?>ul?J>.k?<>Nb?>,l?>|?l?>nb?<<> /c?>r`b?h!> b?>c?<>l?t>{c?R_>pc?v>l?<>0!m?>l?v>l?>ul?<>,l?2>}l?J>.k?>|?l?<>r`b?>Nb?>nb?h!> b?<t>{c?<> /c?>c?R_>pc?<J>.k?>ul?J>[l?k>Jk?<>nb?>|?l?h>#l?>b?<>c?h!> b?D>(c?>c?<v>l?R_>pc?>c?!>Xl?<>ul?v>l?!>Xl?J>[l?<>|?l?J>.k?k>Jk?h>#l?<h!> b?>nb?>b?D>(c?<R_>pc?>c?>c?>c?<k>Jk?J>[l?~>k?>Pk?<>b?h>#l?S>ڪk?>Zc?<>c?D>(c?9>c?]>dBd?<!>Xl?>c? >:d? >:5l?<J>[l?!>Xl? >:5l?~>k?<h>#l?k>Jk?>Pk?S>ڪk?<D>(c?>b?>Zc?9>c?<>c?>c?]>dBd? >:d?< =7lo?ܴ=(n?r5>h?eT>\f?<ZS>A,h?a?>'g?zEI>4V?r]>V?<_>V?6S>GZ?RN>Na?:>_?<jy>`?i>d?,k=w?4=w?<4=w?,k=w?ܴ=(n? =7lo?<eT>\f?r5>h?a?>'g?ZS>A,h?<r]>V?zEI>4V?6S>GZ?_>V?<:>_?RN>Na?i>d?jy>`?<8i=7o?\=n?r>m??>dm?<M?Q ?N?Bʜ<]-3&^?& >>a?x=Ca?@="]?<=OY]?*=!b? >$n?6=Ȋn?<6=Ȋn? >$n?\=n?8i=7o?<ɑ??ǎ?\[^?&>[a?& >>a?!:>&^?<@="]?x=Ca?*=!b?=OY]?<@="]?=OY]?'=T\]?f>a?<:>[^?!:>&^?r*:>}"^?FC>#W?<?>dm?ڴ?>am?.?>\m?:2>Kyg?<6=Ȋn?8i=7o?6==o?=w?<=OY]?6=Ȋn?=w?'=T\]?<!:>&^?@="]?f>a?r*:>}"^?<ڴ?>am?:>[^?FC>#W?.?>\m?<8i=7o??>dm?:2>Kyg?6==o?<i>d?RN>Na?6>Βa? =\?<6S>GZ?zEI>4V?;I>fW?r9>ϭ]?<a?>'g?r5>h?|5> h?"E>em?<ܴ=(n?,k=w?D=pw?|=<$p?<,k=w?i>d? =\?D=pw?<RN>Na?6S>GZ?r9>ϭ]?6>Βa?<zEI>4V?a?>'g?"E>em?;I>fW?<r5>h?ܴ=(n?|=<$p?|5> h?<|5> h?|=<$p?xX= o?r4>g?<;I>fW?"E>em?'C>km?V;G>YW?<6>Βa?r9>ϭ]?*2:>h]?:r>a?<D=pw? =\?=d\?=w?<|=<$p?D=pw?=w?xX= o?<"E>em?|5> h?r4>g?'C>km?<r9>ϭ]?;I>fW?V;G>YW?*2:>h]?< =\?6>Βa?:r>a?=d\?<6==o?:2>Kyg?3>Vg?Xb=o?<.?>\m?FC>#W?zE>'W?›A>^m?<r*:>}"^?f>a?z>a?9>&]?<'=T\]?=w?䆽=cuw?TT=<]?<=w?6==o?Xb=o?䆽=cuw?<:2>Kyg?.?>\m?›A>^m?3>Vg?<FC>#W?r*:>}"^?9>&]?zE>'W?<f>a?'=T\]?TT=<]?z>a?<xX= o?Xb=o?3>Vg?r4>g?<'C>km?›A>^m?zE>'W?V;G>YW?<*2:>h]?9>&]?z>a?:r>a?<=d\?TT=<]?䆽=cuw?=w?<=w?䆽=cuw?Xb=o?xX= o?<r4>g?3>Vg?›A>^m?'C>km?<V;G>YW?zE>'W?9>&]?*2:>h]?<:r>a?z>a?TT=<]?=d\?<DATA p2 9ME2 23 2 MEleviube.006 2 3 h2 P2 3 2 2  `3 $h>XHn&>&{?B|?DATA2 Pi DATA,2 h2 DATA`h2 8xTԾ(Z?R?^?P=!pTԾ.Z?Y>^?PX9.Z?Y>@v`9(Z?R?@v0TԾѾ\V?0]pRxTԾIW?\V?^=!?P`9IW?\V?0@vl9Ѿ\V?Ԃxl9پaS?3Af9P<@j>ك}TԾP<@j>^ TԾپaS?0]-f9O9AIJX9OW?A0pTԾOW?A^=!}TԾO9A^OhwTԾz?v?^?P=!mTԾz? |y^?PTԾҒ:z?0]pRwTԾfpv?:z?^=!?PTԾv?0]-~TԾP}uy^ mTԾnpv?}^=!~TԾJy}^Ohwx۾z?v?@v0mx۾z? |y@vx۾Ғ:z?Ԃxwx۾fpv?:z?0@vx۾v?3A~x۾P}uyكmx۾npv?}0~x۾Jy}IJyz? |y@syz?v?@s.yҒ:z?=֭uyfpv?:z? /6syP}uyr#yv?B^?ynpv?} /ʌyJy}˄":v?pq?&=R~"@v?Ӗt&=" r?u?)!<"%)u?Ғ?" sq?zb""wԪt"^t]x[B~" r?]x)?Ͼ.Z?Y>@v?Ͼ(Z?R?@v0?ϾIW?\V?0@v?ϾѾ\V?Ԃx?ϾP<@j>ك?ϾپaS?3A?ϾOW?A0?ϾO9AIJ"vZ?T?"|Z?V"JW?^W?"^W?"(*#T?"VV"ޝSkZ"JW?kZ"qE?Qc"qE?,E"zB?p^"ZKp^"*W1E" W:c"POvYF"~B?vYF"qE?,E"qE?Qc"zB?p^"ZKp^"*W1E" W:c"~B?vYF"POvYF"A?*k KE,"A??C KEp"|??nfukW"=nfŤVX"nIeEC "Ij:M."|??dDu"`AdD ҩS+A??C KEpS+A?*k KE,S+=nfŤVXS+|??nfukWS+nIeEC S+Ij:M.S+|??dDuS+`AdD ҩS+.?8*HS+.?*ܸS+ X^ S+,? ˌ6KS+ "DS+?8*-?ocǵX*۽z{[*j+?z{Ms*TZjǸ]*g7c:*j+?8Mv*R8i/uR~-?oc pP~-?7 ,R~j+?z{u함W~۽z{ŤW~TZBT~g7 Hc*P~j+?8ukWT~R8 R.VR~*+?P~,+?x6W~(:ɽJ3R~)?J3W~XܽT~@ܽ@}6P~)?f7T~}Ͻf7R~np ?OP~pp ?0R~?RW~PkRW~ V)T~?0P~?W1T~wW1"m_S?P"h_S?>"$P?Mc>"nƾMc>"B[ξk>" KgP"ZeS"$$P?ZeS"S4O?D\K"N4O? >" L?X>"8~¾X>"Zʾ&>"*AiK"bN" L?N"*AiK}"bNu"Zʾ&>D"8~¾X>>z" L?X>+Nx"N4O? >s,6" L?N+"S4O?D\Ks"ZeS1u" KgPQ&"B[ξk>lz"h_S?>܋4"$P?Mc>և"$$P?ZeS*x"m_S?P܋5h_S?>6m_S?P6&$nƾMc>fs$P?Mc> KgPcQFB[ξk>GIZeSء!O$$P?ZeS?RN4O? >&M_$S4O?D\K&M8~¾X>pmT L?X>eR*AiKuǮ`Zʾ&>ѡᶈ.bNk L?NDATA,2 P2 DATAP2 5h"""" " " "" """"" " " " "  "  "   " """"" "" "" "" "     " !"!"#""#"""%"$%"$"'"&'"&" &"!#""%"$'" )"()"!("#*"*+""+"%,",-"$-"'."./"&/")/"(*"+,"-."0"0"1"1"2"2"3"3" 4" 4"5" 5" 6"6" 7"7"01 23 45 67 06 12 35 47 )9 89 (8 *: :; +; ,< <= -= .> >? /? 9? 8: ;< => @A"BC#DE"FG"AG"@B#CE"DF"AH"HI"@I"BJ"JK"CK"EM"LM"DL"FO"NO"GN"HN"IJ"KM"LO"HQ PQ"IP JR RS"KS MU TU"LT OW VW"NV QV"PR"SU"TW"QX"XY"PY"R["Z["SZ"U]"\]"T\"W_"^_"V^"X^"Y["Z]"\_"X` `a"Ya [c bc"Zb ]d de"\e _g fg"^f `f"ac"bd"eg"`h"hi"ai"ck"jk"bj"dl"lm"em"go"no"fn"hn"ik"jl"mo"hq"pq"ip"kr"rs"js"lt"tu"mu"ow"vw"nv"qv"pr"st"uw"qy xy px r{ z{ sz t| |} u} w ~ v~ y~ x{ z| } y "x { "z | "}  "~ """"9 8 : ; < = > ? """"""""A @!B!C!E D F G "#"""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" DATA,`3 3 Col3 DATA 3 4    !#"%$'&& !#"%$'! )("#*+$%,-&'./ &/)#!(*%"+,'$-.1010323254 5 4 76 76060 61221353 5 47 4 7()98+*:;-,<=/.>?)/?9*(8:,+;<.-=>@AHICBJKDEMLGFONAGNHB@IJECKMFDLOIHQPKJRSLMUTNOWVHNVQJIPRMKSUOLTWPQXYSR[ZTU]\VW_^QV^XRPY[USZ]WT\_YX`aZ[cb\]de^_gfX^f`[Yac]Zbd_\ega`hibckjedlmfgon`fnhcaikdbjlgemoihqpjkrsmltunowvhnvqkiprljstomuwpqyxsr{zut|}vw~qv~yrpx{tsz|wu}xyz{}|~y~{x|z}98:;<=>??98:;<=>A@BCEDFGGA@BCEDFDATA 3 9ME3 2 3 2 MEosnovaubeu 3 h3 3 I3 H3 PH3  ~3  Z:pԹpЄW?\m?ȴ?DATA3 ` DATA,H3 3 DATA*3 8 =$DgT y?,SioAaCݙ?6Y [Q?I Gc@+0-^ȭ?&ƴuQ6թ$㿰>3Nj{ ܾ4Bms]F*VMAq̾A:"ZL},c 0L},t>ZY1K?'"g@vT?Q>'"g@2Z?h+z>NBb >o=P?NBb;J?Ͽg*>H7\s>Čؿ2?Z[+?P3ٔ@*z՝dìDھX3Lt{J\jޣ&t{J\q+k"<+鯲\mUW1 >beB>CA>xۿi׬O?⦿G}>'Ih>V>}꯿g'?AX\PmX웿:1{urfj'Pq=Cڎ>ޱuQ;;@x:?¿i9"@WzڿI>Мo[ɿэn፟b.xkm†>,l#<5S;?,l#<"7?h:Ph!ᏼq_?%ICJJ(y??]"WHÚ>]"W'|+οl?}&/HW[,=ǤR8åο|$ E]辻ڿ~>v>Euf|?>ɿ@&iU>@0m#Pgw+ne?O]L.Z)/x"5B/?+NHJ=a\/<Lڇ J{ylq>wyۢJ{yln[̾FMJ{y󍽓 02>J{y3ͤ¿"-17@>=+Ͽľ7;ȿھ7 "տ!7ϐ>⿔(>rރ NbԖRxl*L},T>:.ϼ=?'"g@:>;B?NBbT>4U׿?jL^]Q0jrMU敝Y:4t{J\ zE@7>)(8>Eցrj6>W^?Q]d{h]]?ӾX}Ǿ pJJ{yt^NsT >J{yrGԿ7Jy_ǿx쾶7a?ܿ== !瓿ԒBxL}, F?l!Q>'"g@{K?-s>NBbi;?dпV[>LaDQ^P 䕿4dS惝~`\:t{J\ƾ9PwF>J-ܿ:Jׁk@?[,>R]3܄Zߕ/Z l>-dJ{y#>|J{yh>Ͽ崾7ÿ$8)7 =<7[#;<%?AyF?sJE&5qG7s a{ѽ?;&߿u/CF*-z=?n=k %p":'R=)Ο AܛVˎ`bW?4RW+%>Q]l4>YiE?Q]ྪþnጿ X,m*S1 X,eZ?bEa֮%Sm?,G^a֮dTUO4? *Q'/p> *Q>fk~7?Q]u\? X,H?6mYl>Q].Ⱦφ X,]E?`p>*w'&nP>Pqm*3? ~+=?ħ>95}>W?L{8?tͿ+l>nmQ>Կ? }ag"B?Vo_>sP?CLHJ>,7k@1?s1;e56?}ο s>AM&.U>lԿtH?+"9m^?j?!zJ#dM?RvE>}>75?UwAP? ^>ð(?OVx_A?ο݉>wisS>*տ ? _/W\?,i ?T7M1] ?gu N?3 3ki›>?ŊϿT>yտ@ ?'Nb2V[?2xp?PьX}K?BC>PыX.?^|KL?PьX>}6&?PыX ??̿H>PыX>#ҿ^ ?PыX-Y?7o ?PьXs ?WzYJ?PьX=?`EͿɔ>PыXZ>ҿ ?PыX#:>\/ߑ>rރ \6giտ>FGoOae6P樝i?(Jt{J\}cb@S>¥}>V߿2=EցrWI3*d"t X, ̿J{yז=+|=>J{yϛ.ӿW7\fɳƿ7?ctS!?Q]<BZ^۾V X,&?gX?s@rA#Ya>Lҿ<>L6 +/3!? rq+;?C9[!?aӿ >1x(N!?+wc8?PыXEc?TFѿ>PыXg ?lxĽ8?PыX?^j?PыX?п̡>PыX=Ͳi#;<ު?(Jpҽy/=?MG5qG7pց寕?;&߿u{H+Q]> qCkC?Q]tԾZ X,Nn+3 X,8?"wSa֮l?X$za֮\}32? *Q>L7Nh> *Q?>6ob5?Q]^]BA X,}\H?ba4>Q]ؾ݇ X,D?Dh >95F>1uh21?L{_]?]r?}>7?o~|M?OVxtZ?3yw+?PыX?կۮI?PьXiBX X,n??l 6?PыXsה>ῳѵ>rރ LdԓyPTw˪,L},!>.p;?'"g@>:@?NBbv>_+׿"?FGgyMt6P橝sWd6t{J\Y =F>Rv=>}oG>EցraybѮgv_ X,ϾƾQJ{yV; \>J{yօX,Կ@"7~ǿ7>*f 5?Q]FZgbA X, C>j/?s@rA#YT>=GԿ@>K6 +/Y ?uL?C9[i!>RTտf ?1x(o ?zI?PыXk!>'ҿ f ?PыX ?|3J?PыX‡>Q>#B-?Q]l_J['8F?Uր>R]II |틿V!1B?8 >95(G>󅉿)?L{]X?Vy@N>}>7A?ƍ2B?OVxkU?:c>PыXC/?-??PьX3D=` X,?{,?PыX=<]>s-K X,0? a=?PыXu?<ܿO =rރ G ԓqDJvL},VC? !>'"g@I?- >NBb19?пzc>FGǩd;6P橝Ya5At{J\MɾlUv>>Iܿr&Eցr8 IZy政 X,d.J{y,q>ZȼJ{y?>7ϿX7Ҧÿ'7AF?Y!Q>Q]IȾpօ X,@?Ϻ_>s@rA#Y$4?οiz>L6 +/JZ?iN ?C9[1x(%>W?~o$ ?PыX(;?@iͿg>PыXԊY?opf ?PыXH?`i6'>PыX=?̿e>PыXVپ\䆿 X,RbX?pw?PыXx U X,S?`q>PыX =+ſ#;<?g1Hy??a$k 5qG7Sѝ?;&߿ufPm?nE/R":'N*=뾙ſ AM඿D+,ˎ`U?!,}>Q]">𙇿P;?Q]S X,lIpn; X,?Sqa֮Dj?!Bva֮mQqz*? *QT J> *Q>`b-?Q]VY_cavI X,aF?%G,>Q]x } X,B?>95>Wg,*?L{RY?f>}>7?QC?OVxTV?7>PыX?*(_@?PьXDơ_ X,?x8,?PыX'] .YK X,~?>?PыXb1: U X,AT?] >PыX?6C6?gNJ^ ?sG?7Dr?;L@-?s^n6D?̍>?/>\_ ?rG?+7p^?hR6?hDJ-?8;-?W7@v?>?jA ?nxK?k+?jzH"?ş:?fbQ ߚ ?YOP4?vWЬm4% ?ǎDE?)@?⮂5K?3uf"?(B~P;?Xh( nIF ?l9e35?cF8Q ?%E?/Uc* ?w@c>?`B8?ߴ##?%3?MOK ?񌿧@?!K|aq?28?&L]\.?lq+?1/*vZH?)c>p`,:VS?|S>ZlDX?g'+?8Ae*|?? 8H?>P(S?` >^]U n?hu!?OW!?ݎ/\2?z)yT?ks>exaLY?^?m8L!q?~_q!?CBab"?F1?E7.jT?>[N=X?au ?]V{%?8␿.?$^BIҳ!?,?`kSzQ?v>qAmzU?m?>@c?!?`?Jl-?%?z -?bcP9Q?AhN>/v!T?%?>5R6L"?t *?h?mZ??!K|aM?.>MOУQ?E?ߴ##_b?z$Bi6? wH)":cvH?VK 8eo3= ڿ?wT&KsO?X\b!~?&s{jϾg?U](c z꿞}?—h>FԿ ̓?SF$z?]9BnHK?ӄHI׿?QGSU$`n쿏?5ÛJӾo:h?/)@kl \?]L˼Xp?;;U <`ݿ#?Kd,Q05Ŀ>?0h!qvNV7'?f C l|lHޗ?SLFjYCH d?/:u\?#1v*=I׿?iv ξoG? |n>?V3t<`ݿ?{H2\5Ŀ? *Q*N?w|OֽM?l@?_ioػU?r2uF$+w؇?tXsϐ̾K꾿?k|c׿9m?؅vFP⩉?׬tOjĿgE? 9V7}s?I~W?~S?y׿*Sz ?';|d?Ŀ'nU 0?מz2iAF?]ڹogW?mʿ,bK Q?̣ؿ%;H^t?WC=>Ҿqd?ɿNv,?4M&r*uV?s)2kg?9NFa}8?0?+' x+(-Ϳ]S׀ b'пCfпӨSaE:IRͿh5u˿Ĩ2ʿy.2m0TɿwΆ#x,Ϳ}? D=yп_6վʿ{JӾ;,mY˿\}už1*пM$'tAHͿ/}6yMϿ뢿]%],˿$4cPȿvG#uɿ1(3uFIFпG!Ծ{Ϳ!*8ʿzL<Ӿ?c S ˿|6ľ!^z0,ͿCfsr8f<P пq67bNzqLпGoҗ'3jSп:>%ҾC:ȿev% tPQ%3x˿ਿ^r7pɿے#7Ԫ4 pͿ_v#Lÿ S"HZ]3%iʷ6- 46jC,cyPwIxqƿ ξ쏁|ƿu淿(ݮGſI%Bԇޢs5¿g7Y]{x>ұ#ۿ}L>\5]7\#>4R",\>(A#_h~>(_NoB+>ZJF߿@O2)X κJ4xKBWVڒty9$R@0?F#J㿥6YZ=Fw? ࿜o{>=@Knq_>8Y  >ҬX'2>PJ߿1T> =H3ub# ͽFFx9N60(ⶏ :ᅡ=[=7@o࿥>Ő=@r>oό x>>F; }>Jz]1ʍS>RB忡'(>s5뿒 ZN<ǽSG㿂61/(Ct^#}$7OUb=}z`/ PDATA,PH3 I3 DATA84I3 5Z " "" """"" """ " " """"""""" "" #"(")"*"+"""!" "" #   $"%"'"&"(")" *"!+",-"./"0"01"1"2"23"3"4"45"5"67"8"89" 9":;"<=">?" @"@A A"B"BC C"D DE E F FG G %H HI 'I $J JK &K -7",6"/;".:"18 09 24 35 .="/<",>"-?"6@"7A":B";C"2D 3E 0F 1G ?I >H =K <J '? %> $< &= L"M"N"O"P"Q"!R"#S"$T"&U")V +W FX GY KZ J[ LQ MR NS OP MT LU QV RW NX XY OY UZ Z[ T[ \"]"^"_"`"a" b""c"%d"'e"(f *g Dh Ei Ij Hk \a ]b ^c _` ]d \e af bg ^h hi _i ej jk dk l"m"n"o"p" q" r" s"t u "v #w 4x 5y 8z 9{ P| S} `~ c lr mn op qs nt ou rv sw lx xy my pz z{ q{ u| w} t~ v | ~ f V "a Q """~ | ""Q a " """"""""""""" l"m"n"o"p"q"r"s"t u v w x y z { | } ~  """" L""M""N""O""P""Q""R""S""T""U""W X Y Z [ | } """""""" " """""""( ) * + @ A B C V W f g """"                         \""]""^""_""`""a""b""c""d""e""g  h  i  j  k  ~    "" " "!"!"""""# # $ $ % % & & ' ' ( ( ) ) * * + +                   ! " !# "$ #% &' $' ( %) * &+ ,","-"-"."."/"/"0"0"1"1"2"2"3"3"4 4 5 5 6 6 7 7 8 8 9 9 : : ; ; < < = = > > ? ? @"@"A"A"B"B"C"C"D D E E F F G G H H I I (J *J )K +K ,2 -. /0 13 .4 /5 26 37 ,8 89 -9 0: :; 1; 5< 7= 4> 6? >@ <A @B AC BD CE FH =H EI GI ?J FJ GK DK M LM"L LN"GN IO MO"NO"MP"PQ"LQ"QR"NR"OS"PS"RS"PT"TU"QU"UV"RV"SW"TW"VW"TX"XY"UY"YZ"VZ"W["X["Z["X] \]"Y\ \^"Z^ [_ ]_"^_"]a"`a"\`"`b"^b"_c"ac"bc"ad"de"`e"ef"bf"cg"dg"fg"h hi" i &j hj"ik"+k jk"hm"lm"il"jn"mn"lo"ko"no"mp"pq"lq"nr"pr"qs"os"rs"pt"tu"qu"rv"tv"uw"sw"vw"ty xy"ux vz yz"x{"w{ z{"y|"|}"x}"z~"|~"}"{"~"|""}"~""""""")"""&"B".":"="""""""""""""""""""""""""""""""""" " " " "  """""""""""""""""""" """""""" """"""""""""""""""""  " " " " """""""""""""""""""""""""""""""""" "A"7"-"?"'"""(""""" """"""""""""""""""""  " " " " """""""""""""""""""""""""""""""""""""""""""""""""" ""  """" " " "  " "  " "" " " " " "  "   "" "" """ """"""""""""" "" " """C";"/"<"$""!"+" ""*" ""%">","6"@"                                    DATA,~3 h3 DATA,h3 4:   "# -,67/.:;1810980 924235435./<=,-?>@A76BC;:2DDE32E30F01GF1GIH>?=<JK&=K'I?%>H$J<LQ!RMS#NPOMT$L&UV)QR!+WFXNGYXFOYGKZU&J[ZK$T[J\ab ]"c^`_]%d\e'(fa bg*hD^iEDh_EijI'ekHIjd%Hklr nmpo sq tnouv" rs #w4xl5yx4my58zp9{z8 q{9u|Pw#S}`~tc"vafVQ|~aQlrnmposqtnouvrswxlyxmyzp{zq{u|w}~tv~|LQRMSNPOMTLURWXNYXOYZU[ZT[|PS}|Q}  ()*+@ A@ ABCBC)V+Wf(g*fV   W     \ab]c^`_]d\ebgh^ih_ijekjdk~`c~ a !! " "!#!#"$"$#%#%&'&''$'$(()%)%g* *&+,2,2.-.-0/0/31314.4./5/5626237378,8,9898-9-9:0:0;:;:1;1;5<5<7=7=>4>4?6?6>@>@<A<A@B@BACACBDBDCEC E HF HF=H =H IE IE GI *J?J(? FJ*F(J+KG K)GDK+D)KMLGLNIOMIGNOLMPQNLQRMOSPONRSQPTURQUVPSWTSRVWUTXYVUYZTW[XWVZ[YX]\ZY\^X[_][Z^_\]a`^\`b]_ca_^bc`adeb`efacgdcbfg hi&jh+ ik&+kjihmlhjnmkilojkonlmpqmnrpolqsnosrqptuprvtsquwrswvutyxtvzywux{vw{zxy|}yz~|{x}z{~}||~}~)&)B.:=.:B&=?'('(A7-?7- A <$!+$!+C;/<;/C * %* @ ,6>,6@%>                      ME 3 24 3 MEresetka_desnaube.0 `3 T4 3 3 3 3  S4 Hy_9!>J"=3>W>DATA`3 Pi DATA,3 3 DATAK3 8T~𬽫4:a_ꞯP~b$?4`TwT~S 4dW~}fY+W~ /`XRR~`$?/`UQP~&?4eA R~&?7eA))𬽫4#[)S 4Xl)}έC) /EݣSy)`$?/>HEx)&?70b8@)b$?4>H)&?40bȿ^+tӡZ4<`^+h5U?3 ^+MzD( ^+훽nʓo <^+$c#?nʓێ :^+7O%?ۈ'^+&c#?Z4ێ [^+9O%? ;3ۈ'P"53"萬!3~%x1%pS~E /#?u %?ŕj/#?3u}%?389+e s7.m89+j6s-=%;9+6|9;9+P>69+9?>69+ ?!49+9?s7.q49+ ?p-(89+X/,;9+s69+.?"49+.?-,89+2<9/,79+J?V=/,79+=.,79+Z >.,79+4>.,69+&_>.,69+ń>|.,69+>].,69+k+>=.,59+4^>.,59+>-,59+>-,59+H?-,49+ ?-,;9+';E<:9+Z=񢣾:9+=0:9+D >n99+5>99+S_>죣99+>+89+B>j89+'k>89+P>褣79+z>'79+>e79+?69+ ?㥣89+0)&89+" 99+99+2?99+99+ 99+4l:9+ԊK:9+:9+62߾:9+Ӿ:9+Ǿ;9+8񼌻;9+69+.?169+.?@69+.?OǾ59+.?^Ӿ59+.?m߾59+.?|59+.?59+.?M59+.?T 59+.?\59+.?c49+.?k49+.?r! 49+.?z'&89+C3<(&89+5<" 99+[6989+J >89+ߨ >89+t > 89+ >c99+ >[99+1 >99+ >߾99+[ >Ӿ99+ >Ǿ:9+% >D:9+5 >ٯ79+4>(&79+4>X" 79+4>'89+24>89+\5>89+5> 89+#5>a89+15>`89+@5>89+.N5>߾89+X\5>8Ӿ99+j5>Ǿ99+x5>r99+ֆ5>69+2_>o(&69+?_>B" 79+[L_>79+Y_>79+e_>79+r_> 79+X_>`89+_>d89+ט_> 89+_>߾89+V_>UӾ89+_>Ǿ99+_>99+_>F69+˄>S(&69+-ф>*" 79+ք>79+܄>79+,>79+> 79+>]89++>h89+>89+>߾89+*>sӾ89+ >!Ǿ99+~>ϼ99+)>}69+>8(&69+>" 69+>79+u >79+j>79+_> 79+T>[79+J >m79+?%>#79+4*>߾79+)/>Ӿ89+4>GǾ89+9>89+>>69+/>(&69+3>! 69+*8>79+j<>79+@>79+D>z 79+)I>Y79+iM>q79+Q>079+U>߾79+(Z>Ӿ89+h^>lǾ89+b>+89+f>갯59+a>(&59+Ie>! 69+h>69+^l>69+o>69+rs>t 69+v>W79+z>u79+~>=79+>߾79+&>Ӿ79+>Ǿ89+;>Z89+Ə>!59+ғ>'&59+>! 59+|>69+R>69+'>69+>n 69+Ѥ>U69+>z69+{>J69+P>߾69+%>Ӿ79+>Ǿ79+е>79+>W59+>'&59+>! 59+%>69+E>69+e>{69+>g 69+>S69+>}69+>U69+>-߾69+$>Ӿ79+D>Ǿ79+c>79+>59+?'&59+?! 59+h?69+?69+?q69+?a 69+<?Q69+?69+?b69+\?B߾69+?#Ӿ79+?Ǿ79+|?㽻79+1?ı49+ ?'&49+a ?! 49+ ?}59+ ?q59+q ?f59+̖ ?Z 59+& ?O59+ ?59+ۗ ?n59+6 ?W߾59+ ?@Ӿ69+ ?)Ǿ69+F ?69+ ?49+.?z'&~Z49+ ?'&ZZ69+ ?~Z|69+.?1~49+a ?! 49+ ?}59+ ?q59+q ?f59+̖ ?Z 59+& ?O59+ ?59+ۗ ?n59+6 ?W߾59+ ?@Ӿ69+ ?)Ǿ69+F ?59+>'&ZzZ59+?'&Z59+?! 59+h?69+?69+?q69+?a 69+<?Q69+?69+?b69+\?B߾69+?#Ӿ79+?Ǿ79+|?㽻79+1?ıy79+>yZv59+>! 59+%>69+E>69+e>{69+>g 69+>S69+>}69+>U69+>-߾69+$>Ӿ79+D>Ǿ79+c>59+a>(&ZtZ59+ғ>'&Z59+>! 59+|>69+R>69+'>69+>n 69+Ѥ>U69+>z69+{>J69+P>߾69+%>Ӿ79+>Ǿ79+е>79+>Wt89+Ə>!tZq59+Ie>! 69+h>69+^l>69+o>69+rs>t 69+v>W79+z>u79+~>=79+>߾79+&>Ӿ79+>Ǿ89+;>Z69+/>(&Z69+>8(&ZoZ69+3>! -69+*8>-79+j<>-79+@>-79+D>z -79+)I>Y-79+iM>q-79+Q>0-79+U>߾-79+(Z>Ӿ-89+h^>lǾ-89+b>+-89+f>갯n89+>>nZl69+>" 69+>79+u >79+j>79+_> 79+T>[79+J >m79+?%>#79+4*>߾79+)/>Ӿ89+4>GǾ89+9>69+2_>o(&ZjZ69+˄>S(&Z69+-ф>*" <79+ք><79+܄><79+,><79+> <79+>]<89++>h<89+><89+>߾<89+*>sӾ<89+ >!Ǿ<99+~>ϼ<99+)>}i99+_>FiZf69+?_>B" 79+[L_>79+Y_>79+e_>79+r_> 79+X_>`89+_>d89+ט_> 89+_>߾89+V_>UӾ89+_>Ǿ99+_>79+j >(&ZdZ79+4>(&Z79+4>X" K79+4>'K89+24>K89+\5>K89+5> K89+#5>aK89+15>`K89+@5>K89+.N5>߾K89+X\5>8ӾK99+j5>ǾK99+x5>rK99+ֆ5>d:9+5 >ٯdZa79+!z >o" 89+ >989+J >89+ߨ >89+t > 89+ >c99+ >[99+1 >99+ >߾99+[ >Ӿ99+ >Ǿ:9+% >D79+V=(&Z_Z79+ =(&Z79+.=" Z89+P=MZ89+r=Z89+”=Z89+= Z89+=fZ99+=XZ99+=Z99+>=q߾Z99+`=ӾZ99+=ǾZ:9+=Z:9+=^:9+pFZ=m^Z\79+V=" 89+@W=_89+eW=!89+W=89+6W= 89+BX=h99+X=S99++X=99+Y=\߾99+ziY=Ӿ99+!Y=dǾ:9+Y=黻89+C3<(&Z89+0)&ZZZ89+5<" i99+[6ň 4k܊J61߾ӾǾ9񼋻 YZV.?0~.??.?NǾ.?]Ӿ.?l߾.?{.?.?L.?S .?[.?b.?j.?q! .?y'&~ZC<5YB<iCA<>ǾiE@<Ӿi?=p߾Z=Z=WZ=eZ= Z=Zr=ZP=LZ.=" Z =(&Z5 >دdZa% >C >ǾZ >Ӿ >߾0 > >Z >bs > ި >I > >8 z >n" j >(&ZdZՆ5>dx5>qKj5>ǾKW\5>7ӾK-N5>߾K@5>K15>_K#5>`K5> K[5>K14>K4>&K4>W" K4>(&Z_>EiZf_>_>ǾU_>TӾ_>߾֘_> _>cW_>_r_> e_>Y_>ZL_>?_>A" 2_>n(&ZjZ)>|i~>μ< > Ǿ<*>rӾ<>߾<><+>g<>\<> <,><܄><ք><-ф>)" <˄>R(&Z>>nZl9>4>FǾ)/>Ӿ4*>߾?%>"J >lT>Z_> j>u >>>" >7(&ZoZf>鰯nb>*-h^>kǾ-(Z>Ӿ-U>߾-Q>/-iM>p-)I>X-D>y -@>-j<>-*8>-3>! -/>(&ZƏ> tZq;>Y>Ǿ&>Ӿ>߾~><z>tv>Vrs>s o>^l>h>Ie>! a>(&ZtZ>Vtе>>Ǿ%>ӾP>߾{>I>yѤ>T>m '>R>|>>! ғ>'&Zc>>yZvD>Ǿ$>Ӿ>,߾>T>|>R>f e>zE>%>>! >'&ZzZ1?ñy|?⽻?Ǿ?"Ӿ\?A߾?a?<?P?` ?p?h??! ?'&Z ?~Z|F ? ?(Ǿ ??Ӿ6 ?V߾ۗ ?m ?& ?N̖ ?Y q ?e ?p ?|a ?!  ?'&ZZ.?y'&zGr ?'&C.?0QSX ?ʩ;Pa ?! D ?|Ek ?p߳Fbq ?eѲGm̖ ?Y űH& ?NIǻ ?Jۗ ?m뾧K|6 ?V߾L ??ӾM ?(Ǿ|N=F ?_O>'&8H>! ʲ=)%>=E>f>e>z1?>f @'>RǬAb>|B>T`C%>,߾0D$>ӾERD>ǾަvFc>ZGғ>'&7ƪa>(&F3;>! A8|>9cR>:T'>nx;\>m $f<~Ѥ>T٪U=>yD>{>IE2?P>߾@%>ӾA>Ǿ}A~е>EBc>VCdƏ> >Ie>! ȯ#4h>r5Ϭ^l>5o>6°rs>s [7v>V8z>t{9t~><9a:>߾ڤF;w&>Ӿ*<&>Ǿ( =;>Yנ=/>(&ȯ.Ƨ>7(&)k3>! cR/*8>%0Pj<>0:@>1<D>y 2Z)I>X13iM>p`4Q>/A;5^U>߾ˢ6(Z>ӾW6h^>kǾ7vb>*}8jf>鰯h9>>Ś3$>" B*>+u >+Ыj>,ϭ_> [-T>Z&.!J >l.v?%>"f/4*>߾ؠ0)/>ӾLX154>FǾĝ"2 9>A2˄>R(&mJ$02_>n(&o-ф>)" $ަք>]%܄>˨X&,>3 '> '>\}(Ͱ+>gT7) >뾰)>߾ ***>rӾhg+ > ǾǛ ,~>μ,,)>|-_>E'?_>A" ܪt¥ZL_>A Y_> _e_>H!Vr_> H!jW_>_"_>cߠ0#֘_> '#a_>߾m{$U_>TӾ %_>Ǿ%_>Kh&j >(&~h4>(&A*4>W" Τ4>&NA14>c[5>JV5> (g#5>`e[15>_@5>ҝrX-N5>߾W\5>7Ӿ9j5>Ǿnx5>qՆ5>+ 5 >د{ z >n" ; >8H¥I >̥ި >s > = >bl >Za0 >뾻~ >߾ߚAZ >Ӿ̷ >Ǿ&!% >CNV=(& x =(&b ֡.=" sP=L+*r=.v=`= =e^=WΝj=ٱ>=p߾Ol`=Ӿ&=Ǿ,=FB=fFlFZ=l ܿV=" T<W=^ǤeW= Ǥ W=M2W= zBX=g5X=RL'X=^ mY=[߾m6 viY=Ӿzf Y=cǾ Y=軻 43<(&穚O0)&[{5<" ,[6Ǿ?"kB t.?q! tHA.?jpI$.?bkJ.?[fK&.?S `LF.?LYM{.?PNƿ.?{ʰCO'.?l߾گ3P.?]ӾQ+.?NǾ R.??*R9񼋻aǾSxӾI61߾>ݳ2K܊J#ݮ4k +jňҢ@b2>Uwui" 8}DATA,3 3 DATA`W3 5H""""""""" " " " " " " " """"" " " """ " "" " "" """"""""""""""""""""""""! !  # "# " % $% $ & &' ' & !" #$ %' ( ") $* &+ #) !( '+ %* ,( ,- .- ./ /0 01 21 23 34 45 65 67 78 98 +9 :) :; ;< =< => ?> ?@ @A BA BC DC DE EF FG *G (H HI"IJ"JK"KL"ML"MN"NO"OP"PQ"QR"RS"TS"TU")U *V VW"WX"XY"YZ"Z["[\"]\"]^"^_"_`"`a"ba"bc"c+ 3& 2 , &9 - &8 . &7 / &6 0 &5 1 &4 N! "O "U !H "T !I "S !J "R !K "Q !L "P M! #@ $A $G :# F$ ;# E$ #< D$ =# C$ ># B$ ?# %\ '] c' %V b' %W 'a %X '` %Y '_ %Z '^ %[ q: qU"pq"op"no"nm"ml"kl"jk"ji"hi"hg"fg"ef"ed"dH",d ; q ~"p~ }~"o} |}"n| {|"{m z{"zl yz"yk xy"jx wx"iw vw"vh uv"ug tu"tf st"es rs"rd r- < """"""""""""""r". = " " " " " " " " " " " " " / > """""""""""""""0 ? " " " " " " " " " " " " " 1 @ """""""""""""""2 A " " " " " " " " " " " " " 3 B """""""""""""""4 C " " " " " " " " " " " " " 5 D """""""""""""""6 E    "   "   " " " " " " " " " " " 7 F """""""""""" "  " " 8 'G ' &'"& %&"% $%"$ #$"# "#"" !""! !"   " " " " "  "  9 'V"c")"()"c("+V"*+"*'",",)"-"-,".".-"/"/."0"/0" 1"01"!2"21""3"23"#4"34"$5"54"%6"56"&7"67"*7"8"89" 9"9:" :":;";";<"<"<="="=>">"?>"?"?@"@"@A"A"AB"B"BC"C"CD"D"DE"E"EF"F"FG" G"H"8H"I"HI"J"IJ"K"JK"L"KL"M"LM"N"MN"O"NO"P"PO"Q"PQ" R"QR" S"RS"SG"T"TU"U"VU"V"VW"W"WX"X"XY"Y"YZ"Z"Z["["[\"\"]\"]"]^"^"^_"_"_`"`"`a"a"ba"b"bc"c"d"dT"e"de"f"ef"g"fg"h"gh"i"hi"j"ij"k"jk"l"kl"m"lm"n"mn"o"no"co"q"pq"p"pr"r"rs"s"st"t"tu"u"vu"v"vw"w"wx"x"xy"y"yz"z"z{"{"{|"|"|}"}"}~"~"~"""q""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""r"""""""""""""""""""""""""""""""s""t""u""v""w""x""y""z""{""|""}""~"""H""d""e""f""g""h""i""j""k""l""m""n""o""p""q""U"("b""a""`""_""^""]""\""[""Z""Y""X""W"+""T""S""R""Q""P""O""N""M""L""K""J""I"" " "   "   "   "   "  " " " " " " """ "+" " " " " " " " "  "! !"" "!"(#"#""$"$"% %$"& &%"' &'"( ('") )("* )*"+ *+", ,+"- -,". -."/ ./"0 /0"1"10"1 "2"23"3 34"4 54"5 56"6 76"7 78"8 98"9 :9": :;"; ;<"< =<"= =>"> >?"?"@"2@"A @A"B AB"C BC"D CD"E ED"F EF"G FG"H GH"I HI"J IJ"K KJ"L KL"M"LM"?M"N"ON"O OP"P PQ"Q QR"R RS"S ST"T TU"U VU"V VW"W WX"X XY"Y ZY"Z Z["["\"\N"] \]"^ ]^"_ ^_"` _`"a `a"b ba"c bc"d cd"e de"f fe"g fg"h gh"i"hi"[i"j"jk"k kl"l lm"m nm"n no"o op"p pq"q qr"r rs"s ts"t tu"u vu"v vw"w"x"jx"y xy"z yz"{ z{"| |{"} |}"~ }~" ~" " " " " """w""" " " " " " " " " " " " "q"~""} "| "{ "z "y "x "w "v "u "t "s "r "p"""c""o "n "m "l "k "j "i "h "g "f "e "d "T"b""a "` "_ "^ "] "\ "[ "Z "Y "X "W "V "U"""G""S "R "Q "P "O "N "M "L "K "J "I "H "8"F""E "D "C "B "A "@ "? "> "= "< "; ": "9"""*""7 "6 "5 "4 "3 "2 "1 "0 "/ ". "- ", ")""#"""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " "  " "  " "  " "  "" """"""""""""""""""""""""""""""""""" " " !"!"!"""""#"#"$"$"%"$%"&"&%"'"&'"("'(")"()"*")*"+"*+","+,"-",-"."-."/"./"/#"1"01"0"02"2"23"3"34"4"45"5"56"6"67"7"78"8"89"9"9:":":;";";<"<"<="="=>">">?"?"@"1@"A"@A"B"AB"C"BC"D"CD"E"DE"F"EF"G"FG"H"GH"I"HI"J"IJ"K"JK"?K"wM"LM"L"LN"N"NO"O"OP"P"PQ"Q"QR"R"RS"S"ST"T~"TU"}U"UV"|V"VW"{W"XW"zX"XY"yY"YZ"xZ"Z["j["v\"\M"u]"\]"t^"]^"_s"^_"`r"_`"aq"`a"bp"ab"oc"bc"nd"cd"me"de"lf"ef"kg"fg"[g"[h"hi"ii"ij"hj"jk"gk"kl"fl"lm"me"mn"nd"no"co"op"bp"pq"qa"qr"r`"rs"_s"st"^t"tu"]u"uv"\v"vw"Nw"Zx"hx"Yy"xy"Xz"yz"W{"z{"V|"{|"U}"|}"T~"}~"S"~"R""Q""P""O""w"?""M""L""K""J""I""H""G""F""E""D""C""B""A""@""2">""=""<"";"":""9""8""7""6""5""4""3""" ""1""0""/"".""-"",""+""*"")""(""'""&""%""$"""""""!"" """"""""""""""""""""""""""""""""""" "" "" "" """"DATA,S4 T4 DATAtET4 4y               ! #"%$&' &"!$#'% !("#)$%*'&+23& (, 9+&,- 89&-. 78&./ 67&/0 56&01 45&12 34&ON!")U"H(!UT"IH!TS"JI!SR"KJ!RQ"LK!QP"ML!PO"NM!A@#$*G$:)#GF$;:#FE$<;#ED$=<#DC$>=#CB$?>#BA$@?#]\%'+c'V*%cb'WV%ba'XW%a`'YX%`_'ZY%_^'[Z%^]'\[%U):q(Hd,q:;pq~op~}no}|mn|{lm{zklzyjkyxijxwhiwvghvufguteftsdesr,dr-;<-r.<=./=>/0>?01?@12@A23AB34BC45CD56DE      67 EF7 8FG''&&%%$$##""!!     8 9'G*V9c+c)('V+*,)-,.-/.0/ 10 !21!"32"#43#$54$%65%&76&'*7 89  9: :;;<<==>>??@@AABBCCDDEEF FGH8IHJIKJLKMLNMONPOQP RQ  SR  GSTUUVVWWXXYYZZ[[\\]]^^__``aabbcdTedfegfhgihjikjlkmlnmoncoqpprrssttuuvvwwxxyyzz{{||}}~~qrrssttuuvvwwxxyyzz{{||}}~~dHedfegfhgihjikjlkmlnmonpoqpUqbc(ab`a_`^_]^\][\Z[YZXYWXVW+TUSTRSQRPQOPNOMNLMKLJKIJHI         + ! "!(#"$%$&%'&(')(*)+*,+-,.-/.0/10 1233445566778899::;;<<==>>?@2A@BACBDCEDFEGFHGIHJIKJLKML?MNOOPPQQRRSSTTUUVVWWXXYYZZ[\N]\^]_^`_a`bacbdcedfegfhgih[ijkkllmmnnooppqqrrssttuuvvwxjyxzy{z|{}|~}~wq~~}}||{{zzyyxxwwvvuuttssrrppqocnomnlmkljkijhighfgefdeTdcbbaa``__^^]]\\[[ZZYYXXWWVVUUTSGRSQRPQOPNOMNLMKLJKIJHI8HGFFEEDDCCBBAA@@??>>==<<;;::9987*67564534231201/0./-.,-),*+()##            !!""#$%$&%'&(')(*)+*,+-,.-/.#/1002233445566778899::;;<<==>>?@1A@BACBDCEDFEGFHGIHJIKJ?KwMLLNNOOPPQQRRS~ST}~TU|}UV{|VWz{WXyzXYxyYZjxZ[wv\Mvu]\ut^]ts_^sr`_rqa`qpbapocbondcnmedmlfelkgfkj[gi[hihiijghjkfgkleflmdemncdnobcopabpq`aqr_`rs^_st]^tu\]uvN\vw[ZxhZYyxYXzyXW{zWV|{VU}|UT~}TS~SRRQQPPOONwM?LMKLJKIJHIGHFGEFDECDBCAB@A2@?>>==<<;;::9988776655443321 01/0./-.,-+,*+)*()'(&'%&$%$"#!" !          ME4 25 3 MEresetka_levaube.0 ؛4 pC5 `4 4 4 04  B5 Hy_9!>J"=3>W>DATA؛4 m DATA,4 `4 DATAK`4 8T~𬽫4:a_ꞯP~b$?4`TwT~S 4dW~}fY+W~ /`XRR~`$?/`UQP~&?4eA R~&?7eA))𬽫4#[)S 4Xl)}έC) /EݣSy)`$?/>HEx)&?70b8@)b$?4>H)&?40bȿ^+tӡZ4<`^+h5U?3 ^+MzD( ^+훽nʓo <^+$c#?nʓێ :^+7O%?ۈ'^+&c#?Z4ێ [^+9O%? ;3ۈ'P"53"萬!3~%x1%pS~E /#?u %?ŕj/#?3u}%?389+e s7.m89+j6s-=%;9+6|9;9+P>69+9?>69+ ?!49+9?s7.q49+ ?p-(89+X/,;9+s69+.?"49+.?-,89+2<9/,79+J?V=/,79+=.,79+Z >.,79+4>.,69+&_>.,69+ń>|.,69+>].,69+k+>=.,59+4^>.,59+>-,59+>-,59+H?-,49+ ?-,;9+';E<:9+Z=񢣾:9+=0:9+D >n99+5>99+S_>죣99+>+89+B>j89+'k>89+P>褣79+z>'79+>e79+?69+ ?㥣89+0)&89+" 99+99+2?99+99+ 99+4l:9+ԊK:9+:9+62߾:9+Ӿ:9+Ǿ;9+8񼌻;9+69+.?169+.?@69+.?OǾ59+.?^Ӿ59+.?m߾59+.?|59+.?59+.?M59+.?T 59+.?\59+.?c49+.?k49+.?r! 49+.?z'&89+C3<(&89+5<" 99+[6989+J >89+ߨ >89+t > 89+ >c99+ >[99+1 >99+ >߾99+[ >Ӿ99+ >Ǿ:9+% >D:9+5 >ٯ79+4>(&79+4>X" 79+4>'89+24>89+\5>89+5> 89+#5>a89+15>`89+@5>89+.N5>߾89+X\5>8Ӿ99+j5>Ǿ99+x5>r99+ֆ5>69+2_>o(&69+?_>B" 79+[L_>79+Y_>79+e_>79+r_> 79+X_>`89+_>d89+ט_> 89+_>߾89+V_>UӾ89+_>Ǿ99+_>99+_>F69+˄>S(&69+-ф>*" 79+ք>79+܄>79+,>79+> 79+>]89++>h89+>89+>߾89+*>sӾ89+ >!Ǿ99+~>ϼ99+)>}69+>8(&69+>" 69+>79+u >79+j>79+_> 79+T>[79+J >m79+?%>#79+4*>߾79+)/>Ӿ89+4>GǾ89+9>89+>>69+/>(&69+3>! 69+*8>79+j<>79+@>79+D>z 79+)I>Y79+iM>q79+Q>079+U>߾79+(Z>Ӿ89+h^>lǾ89+b>+89+f>갯59+a>(&59+Ie>! 69+h>69+^l>69+o>69+rs>t 69+v>W79+z>u79+~>=79+>߾79+&>Ӿ79+>Ǿ89+;>Z89+Ə>!59+ғ>'&59+>! 59+|>69+R>69+'>69+>n 69+Ѥ>U69+>z69+{>J69+P>߾69+%>Ӿ79+>Ǿ79+е>79+>W59+>'&59+>! 59+%>69+E>69+e>{69+>g 69+>S69+>}69+>U69+>-߾69+$>Ӿ79+D>Ǿ79+c>79+>59+?'&59+?! 59+h?69+?69+?q69+?a 69+<?Q69+?69+?b69+\?B߾69+?#Ӿ79+?Ǿ79+|?㽻79+1?ı49+ ?'&49+a ?! 49+ ?}59+ ?q59+q ?f59+̖ ?Z 59+& ?O59+ ?59+ۗ ?n59+6 ?W߾59+ ?@Ӿ69+ ?)Ǿ69+F ?69+ ?49+.?z'&~Z49+ ?'&ZZ69+ ?~Z|69+.?1~49+a ?! 49+ ?}59+ ?q59+q ?f59+̖ ?Z 59+& ?O59+ ?59+ۗ ?n59+6 ?W߾59+ ?@Ӿ69+ ?)Ǿ69+F ?59+>'&ZzZ59+?'&Z59+?! 59+h?69+?69+?q69+?a 69+<?Q69+?69+?b69+\?B߾69+?#Ӿ79+?Ǿ79+|?㽻79+1?ıy79+>yZv59+>! 59+%>69+E>69+e>{69+>g 69+>S69+>}69+>U69+>-߾69+$>Ӿ79+D>Ǿ79+c>59+a>(&ZtZ59+ғ>'&Z59+>! 59+|>69+R>69+'>69+>n 69+Ѥ>U69+>z69+{>J69+P>߾69+%>Ӿ79+>Ǿ79+е>79+>Wt89+Ə>!tZq59+Ie>! 69+h>69+^l>69+o>69+rs>t 69+v>W79+z>u79+~>=79+>߾79+&>Ӿ79+>Ǿ89+;>Z69+/>(&Z69+>8(&ZoZ69+3>! -69+*8>-79+j<>-79+@>-79+D>z -79+)I>Y-79+iM>q-79+Q>0-79+U>߾-79+(Z>Ӿ-89+h^>lǾ-89+b>+-89+f>갯n89+>>nZl69+>" 69+>79+u >79+j>79+_> 79+T>[79+J >m79+?%>#79+4*>߾79+)/>Ӿ89+4>GǾ89+9>69+2_>o(&ZjZ69+˄>S(&Z69+-ф>*" <79+ք><79+܄><79+,><79+> <79+>]<89++>h<89+><89+>߾<89+*>sӾ<89+ >!Ǿ<99+~>ϼ<99+)>}i99+_>FiZf69+?_>B" 79+[L_>79+Y_>79+e_>79+r_> 79+X_>`89+_>d89+ט_> 89+_>߾89+V_>UӾ89+_>Ǿ99+_>79+j >(&ZdZ79+4>(&Z79+4>X" K79+4>'K89+24>K89+\5>K89+5> K89+#5>aK89+15>`K89+@5>K89+.N5>߾K89+X\5>8ӾK99+j5>ǾK99+x5>rK99+ֆ5>d:9+5 >ٯdZa79+!z >o" 89+ >989+J >89+ߨ >89+t > 89+ >c99+ >[99+1 >99+ >߾99+[ >Ӿ99+ >Ǿ:9+% >D79+V=(&Z_Z79+ =(&Z79+.=" Z89+P=MZ89+r=Z89+”=Z89+= Z89+=fZ99+=XZ99+=Z99+>=q߾Z99+`=ӾZ99+=ǾZ:9+=Z:9+=^:9+pFZ=m^Z\79+V=" 89+@W=_89+eW=!89+W=89+6W= 89+BX=h99+X=S99++X=99+Y=\߾99+ziY=Ӿ99+!Y=dǾ:9+Y=黻89+C3<(&Z89+0)&ZZZ89+5<" i99+[6ň 4k܊J61߾ӾǾ9񼋻 YZV.?0~.??.?NǾ.?]Ӿ.?l߾.?{.?.?L.?S .?[.?b.?j.?q! .?y'&~ZC<5YB<iCA<>ǾiE@<Ӿi?=p߾Z=Z=WZ=eZ= Z=Zr=ZP=LZ.=" Z =(&Z5 >دdZa% >C >ǾZ >Ӿ >߾0 > >Z >bs > ި >I > >8 z >n" j >(&ZdZՆ5>dx5>qKj5>ǾKW\5>7ӾK-N5>߾K@5>K15>_K#5>`K5> K[5>K14>K4>&K4>W" K4>(&Z_>EiZf_>_>ǾU_>TӾ_>߾֘_> _>cW_>_r_> e_>Y_>ZL_>?_>A" 2_>n(&ZjZ)>|i~>μ< > Ǿ<*>rӾ<>߾<><+>g<>\<> <,><܄><ք><-ф>)" <˄>R(&Z>>nZl9>4>FǾ)/>Ӿ4*>߾?%>"J >lT>Z_> j>u >>>" >7(&ZoZf>鰯nb>*-h^>kǾ-(Z>Ӿ-U>߾-Q>/-iM>p-)I>X-D>y -@>-j<>-*8>-3>! -/>(&ZƏ> tZq;>Y>Ǿ&>Ӿ>߾~><z>tv>Vrs>s o>^l>h>Ie>! a>(&ZtZ>Vtе>>Ǿ%>ӾP>߾{>I>yѤ>T>m '>R>|>>! ғ>'&Zc>>yZvD>Ǿ$>Ӿ>,߾>T>|>R>f e>zE>%>>! >'&ZzZ1?ñy|?⽻?Ǿ?"Ӿ\?A߾?a?<?P?` ?p?h??! ?'&Z ?~Z|F ? ?(Ǿ ??Ӿ6 ?V߾ۗ ?m ?& ?N̖ ?Y q ?e ?p ?|a ?!  ?'&ZZ.?y'&zGr ?'&C.?0QSX ?ʩ;Pa ?! D ?|Ek ?p߳Fbq ?eѲGm̖ ?Y űH& ?NIǻ ?Jۗ ?m뾧K|6 ?V߾L ??ӾM ?(Ǿ|N=F ?_O>'&8H>! ʲ=)%>=E>f>e>z1?>f @'>RǬAb>|B>T`C%>,߾0D$>ӾERD>ǾަvFc>ZGғ>'&7ƪa>(&F3;>! A8|>9cR>:T'>nx;\>m $f<~Ѥ>T٪U=>yD>{>IE2?P>߾@%>ӾA>Ǿ}A~е>EBc>VCdƏ> >Ie>! ȯ#4h>r5Ϭ^l>5o>6°rs>s [7v>V8z>t{9t~><9a:>߾ڤF;w&>Ӿ*<&>Ǿ( =;>Yנ=/>(&ȯ.Ƨ>7(&)k3>! cR/*8>%0Pj<>0:@>1<D>y 2Z)I>X13iM>p`4Q>/A;5^U>߾ˢ6(Z>ӾW6h^>kǾ7vb>*}8jf>鰯h9>>Ś3$>" B*>+u >+Ыj>,ϭ_> [-T>Z&.!J >l.v?%>"f/4*>߾ؠ0)/>ӾLX154>FǾĝ"2 9>A2˄>R(&mJ$02_>n(&o-ф>)" $ަք>]%܄>˨X&,>3 '> '>\}(Ͱ+>gT7) >뾰)>߾ ***>rӾhg+ > ǾǛ ,~>μ,,)>|-_>E'?_>A" ܪt¥ZL_>A Y_> _e_>H!Vr_> H!jW_>_"_>cߠ0#֘_> '#a_>߾m{$U_>TӾ %_>Ǿ%_>Kh&j >(&~h4>(&A*4>W" Τ4>&NA14>c[5>JV5> (g#5>`e[15>_@5>ҝrX-N5>߾W\5>7Ӿ9j5>Ǿnx5>qՆ5>+ 5 >د{ z >n" ; >8H¥I >̥ި >s > = >bl >Za0 >뾻~ >߾ߚAZ >Ӿ̷ >Ǿ&!% >CNV=(& x =(&b ֡.=" sP=L+*r=.v=`= =e^=WΝj=ٱ>=p߾Ol`=Ӿ&=Ǿ,=FB=fFlFZ=l ܿV=" T<W=^ǤeW= Ǥ W=M2W= zBX=g5X=RL'X=^ mY=[߾m6 viY=Ӿzf Y=cǾ Y=軻 43<(&穚O0)&[{5<" ,[6Ǿ?"kB t.?q! tHA.?jpI$.?bkJ.?[fK&.?S `LF.?LYM{.?PNƿ.?{ʰCO'.?l߾گ3P.?]ӾQ+.?NǾ R.??*R9񼋻aǾSxӾI61߾>ݳ2K܊J#ݮ4k +jňҢ@b2>Uwui" 8}DATA,04 4 DATA`W4 5H""""""""" " " " " " " " """"" " " """ " "" " "" """"""""""""""""""""""""! !  # "# " % $% $ & &' ' & !" #$ %' ( ") $* &+ #) !( '+ %* ,( ,- .- ./ /0 01 21 23 34 45 65 67 78 98 +9 :) :; ;< =< => ?> ?@ @A BA BC DC DE EF FG *G (H HI"IJ"JK"KL"ML"MN"NO"OP"PQ"QR"RS"TS"TU")U *V VW"WX"XY"YZ"Z["[\"]\"]^"^_"_`"`a"ba"bc"c+ 3& 2 , &9 - &8 . &7 / &6 0 &5 1 &4 N! "O "U !H "T !I "S !J "R !K "Q !L "P M! #@ $A $G :# F$ ;# E$ #< D$ =# C$ ># B$ ?# %\ '] c' %V b' %W 'a %X '` %Y '_ %Z '^ %[ q: qU"pq"op"no"nm"ml"kl"jk"ji"hi"hg"fg"ef"ed"dH",d ; q ~"p~ }~"o} |}"n| {|"{m z{"zl yz"yk xy"jx wx"iw vw"vh uv"ug tu"tf st"es rs"rd r- < """"""""""""""r". = " " " " " " " " " " " " " / > """""""""""""""0 ? " " " " " " " " " " " " " 1 @ """""""""""""""2 A " " " " " " " " " " " " " 3 B """""""""""""""4 C " " " " " " " " " " " " " 5 D """""""""""""""6 E    "   "   " " " " " " " " " " " 7 F """""""""""" "  " " 8 'G ' &'"& %&"% $%"$ #$"# "#"" !""! !"   " " " " "  "  9 'V"c")"()"c("+V"*+"*'",",)"-"-,".".-"/"/."0"/0" 1"01"!2"21""3"23"#4"34"$5"54"%6"56"&7"67"*7"8"89" 9"9:" :":;";";<"<"<="="=>">"?>"?"?@"@"@A"A"AB"B"BC"C"CD"D"DE"E"EF"F"FG" G"H"8H"I"HI"J"IJ"K"JK"L"KL"M"LM"N"MN"O"NO"P"PO"Q"PQ" R"QR" S"RS"SG"T"TU"U"VU"V"VW"W"WX"X"XY"Y"YZ"Z"Z["["[\"\"]\"]"]^"^"^_"_"_`"`"`a"a"ba"b"bc"c"d"dT"e"de"f"ef"g"fg"h"gh"i"hi"j"ij"k"jk"l"kl"m"lm"n"mn"o"no"co"q"pq"p"pr"r"rs"s"st"t"tu"u"vu"v"vw"w"wx"x"xy"y"yz"z"z{"{"{|"|"|}"}"}~"~"~"""q""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""r"""""""""""""""""""""""""""""""s""t""u""v""w""x""y""z""{""|""}""~"""H""d""e""f""g""h""i""j""k""l""m""n""o""p""q""U"("b""a""`""_""^""]""\""[""Z""Y""X""W"+""T""S""R""Q""P""O""N""M""L""K""J""I"" " "   "   "   "   "  " " " " " " """ "+" " " " " " " " "  "! !"" "!"(#"#""$"$"% %$"& &%"' &'"( ('") )("* )*"+ *+", ,+"- -,". -."/ ./"0 /0"1"10"1 "2"23"3 34"4 54"5 56"6 76"7 78"8 98"9 :9": :;"; ;<"< =<"= =>"> >?"?"@"2@"A @A"B AB"C BC"D CD"E ED"F EF"G FG"H GH"I HI"J IJ"K KJ"L KL"M"LM"?M"N"ON"O OP"P PQ"Q QR"R RS"S ST"T TU"U VU"V VW"W WX"X XY"Y ZY"Z Z["["\"\N"] \]"^ ]^"_ ^_"` _`"a `a"b ba"c bc"d cd"e de"f fe"g fg"h gh"i"hi"[i"j"jk"k kl"l lm"m nm"n no"o op"p pq"q qr"r rs"s ts"t tu"u vu"v vw"w"x"jx"y xy"z yz"{ z{"| |{"} |}"~ }~" ~" " " " " """w""" " " " " " " " " " " " "q"~""} "| "{ "z "y "x "w "v "u "t "s "r "p"""c""o "n "m "l "k "j "i "h "g "f "e "d "T"b""a "` "_ "^ "] "\ "[ "Z "Y "X "W "V "U"""G""S "R "Q "P "O "N "M "L "K "J "I "H "8"F""E "D "C "B "A "@ "? "> "= "< "; ": "9"""*""7 "6 "5 "4 "3 "2 "1 "0 "/ ". "- ", ")""#"""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " "  " "  " "  " "  "" """"""""""""""""""""""""""""""""""" " " !"!"!"""""#"#"$"$"%"$%"&"&%"'"&'"("'(")"()"*")*"+"*+","+,"-",-"."-."/"./"/#"1"01"0"02"2"23"3"34"4"45"5"56"6"67"7"78"8"89"9"9:":":;";";<"<"<="="=>">">?"?"@"1@"A"@A"B"AB"C"BC"D"CD"E"DE"F"EF"G"FG"H"GH"I"HI"J"IJ"K"JK"?K"wM"LM"L"LN"N"NO"O"OP"P"PQ"Q"QR"R"RS"S"ST"T~"TU"}U"UV"|V"VW"{W"XW"zX"XY"yY"YZ"xZ"Z["j["v\"\M"u]"\]"t^"]^"_s"^_"`r"_`"aq"`a"bp"ab"oc"bc"nd"cd"me"de"lf"ef"kg"fg"[g"[h"hi"ii"ij"hj"jk"gk"kl"fl"lm"me"mn"nd"no"co"op"bp"pq"qa"qr"r`"rs"_s"st"^t"tu"]u"uv"\v"vw"Nw"Zx"hx"Yy"xy"Xz"yz"W{"z{"V|"{|"U}"|}"T~"}~"S"~"R""Q""P""O""w"?""M""L""K""J""I""H""G""F""E""D""C""B""A""@""2">""=""<"";"":""9""8""7""6""5""4""3""" ""1""0""/"".""-"",""+""*"")""(""'""&""%""$"""""""!"" """"""""""""""""""""""""""""""""""" "" "" "" """"DATA,B5 pC5 DATAtEpC5 4y               ! #"%$&' &"!$#'% !("#)$%*'&+23& (, 9+&,- 89&-. 78&./ 67&/0 56&01 45&12 34&ON!")U"H(!UT"IH!TS"JI!SR"KJ!RQ"LK!QP"ML!PO"NM!A@#$*G$:)#GF$;:#FE$<;#ED$=<#DC$>=#CB$?>#BA$@?#]\%'+c'V*%cb'WV%ba'XW%a`'YX%`_'ZY%_^'[Z%^]'\[%U):q(Hd,q:;pq~op~}no}|mn|{lm{zklzyjkyxijxwhiwvghvufguteftsdesr,dr-;<-r.<=./=>/0>?01?@12@A23AB34BC45CD56DE      67 EF7 8FG''&&%%$$##""!!     8 9'G*V9c+c)('V+*,)-,.-/.0/ 10 !21!"32"#43#$54$%65%&76&'*7 89  9: :;;<<==>>??@@AABBCCDDEEF FGH8IHJIKJLKMLNMONPOQP RQ  SR  GSTUUVVWWXXYYZZ[[\\]]^^__``aabbcdTedfegfhgihjikjlkmlnmoncoqpprrssttuuvvwwxxyyzz{{||}}~~qrrssttuuvvwwxxyyzz{{||}}~~dHedfegfhgihjikjlkmlnmonpoqpUqbc(ab`a_`^_]^\][\Z[YZXYWXVW+TUSTRSQRPQOPNOMNLMKLJKIJHI         + ! "!(#"$%$&%'&(')(*)+*,+-,.-/.0/10 1233445566778899::;;<<==>>?@2A@BACBDCEDFEGFHGIHJIKJLKML?MNOOPPQQRRSSTTUUVVWWXXYYZZ[\N]\^]_^`_a`bacbdcedfegfhgih[ijkkllmmnnooppqqrrssttuuvvwxjyxzy{z|{}|~}~wq~~}}||{{zzyyxxwwvvuuttssrrppqocnomnlmkljkijhighfgefdeTdcbbaa``__^^]]\\[[ZZYYXXWWVVUUTSGRSQRPQOPNOMNLMKLJKIJHI8HGFFEEDDCCBBAA@@??>>==<<;;::9987*67564534231201/0./-.,-),*+()##            !!""#$%$&%'&(')(*)+*,+-,.-/.#/1002233445566778899::;;<<==>>?@1A@BACBDCEDFEGFHGIHJIKJ?KwMLLNNOOPPQQRRS~ST}~TU|}UV{|VWz{WXyzXYxyYZjxZ[wv\Mvu]\ut^]ts_^sr`_rqa`qpbapocbondcnmedmlfelkgfkj[gi[hihiijghjkfgkleflmdemncdnobcopabpq`aqr_`rs^_st]^tu\]uvN\vw[ZxhZYyxYXzyXW{zWV|{VU}|UT~}TS~SRRQQPPOONwM?LMKLJKIJHIGHFGEFDECDBCAB@A2@?>>==<<;;::9988776655443321 01/0./-.,-+,*+)*()'(&'%&$%$"#!" !          ME5 2(5 4 MEsocivoylinder.0x P5 (5 ؋5 @5 5 5  Г5 %H$}=$Ѽ%?3}=5}=$;DATAP5 xr DATA,5 ؋5 DATA؋5 8%=X7=?;{pG0=B7=?1;{p(<<?1+{p mܻ?{p j6?1{pd(< D?{p]G0=>Ľ?1{p =>Ľ?{p֠=C?1+{p>pj6?;1{pʠ=<?1+1+{p>elܻ?;{pxŜ=\Ľ?1{p =>Ľ?{p֠=C?1+{p>pj6?;1{pʠ=<?1+1+{p>elܻ?;{pxŜ=\'>,6?F(??DATA5 Pi DATA,ȷ5  5 DATA  5 8(?ʞd3?{>ʞd3?~?iL?#_a?@ۖ>iL?#_a?_~>iL?#_a?Z_~>|nBW?_~>\޾#_a?_~>ɞd3? ?iL?#_a?ZZ$?ɞd3?Z$?|nBW?$?\޾#_a??ʞU[$?ɞUJ[{>ʞUZ_~>ɞU^~?jL?. Z ?jL?.II!@ۖ>jL?.Z_~>jL?. I"_~>\޾.d_~>|3]G$?\޾.Z$?|3ZF@?}H)Z?dݾ;!(>}H[r>dݾ;)?ʞy$?ɞyZ{>ʞy_~>ɞy~?jL?t ?jL?tZZ@ۖ>jL?t_~>jL?tZ_~>\޾t_~>|av$?\޾t$?|avDATA,p5 Ƚ5 DATA`Ƚ5 5H ####### # # # ######## ## #### !!!!!!!!!!!!! ! # #!!## ! !!#!#"!"!####$!$!%!%! &!&! '!'!!! !! "!"#!!#$!%!$%!!&!'!&'!DATA,X5 5 DATA5 4!     ! !  "" "#"# #$#$%%$%$% &!!& '  ' '& '&MEp5 25 X5 MECylinderx4} 5 X5 85 5 5 x5  5 DY>EY>z_R>DATA5 x DATA,5 85 DATA85 8׽׽qL@YqL^@Y=qL^ !׽Ļ=qLZAY>qLޢ{`=AY>qL !{=Ļ=qLZZ8Y>=qL{ !@Y>lqL{=׽qLZ=:YqL !^`?YqL^׽˻׽|_R@Y|_RHYT=|_Rл׽=|_R>;Y>|_RU@=EY>|_RU=ֻ=|_R>>0Y>=|_RU@Y>>|_RUл=׽|_R>=;Y|_R@EY|_R|_R`>Y@M>^=9Y@M> !^=׽@M>Z@Y>h@M>{8Y>=@M>{ !=ƻ=@M>ZZ`=CY>@M> !{CY>@M>ޢ{׽ƻ=@M>Z@Y=@M>^ !@Y|@M>^׽׽@M>׽׽x_R>\@Y|x_R>\@Y=x_R>\׽ƻ=x_R>>\CY>x_R>U\`=CY>x_R>U\=ƻ=x_R>>>\8Y>=x_R>U\@Y>hx_R>U\=׽x_R>>\=9Yx_R>\`>Yx_R>\ ?x_R>6s ={?x_R>6s=躵x_R>e؛'s?= x_R>s?=< =x_R>Ɂsີ==x_R>ees =?=x_R>s@ ?=x_R>s𺵽=x_R>'es?0 =x_R>6s? x_R>6s𺵽𺵽x_R>''szzLP>UU^),ncLP>tY^),|c=LP>t^)zz=LP>UZ^)c,=LP>Y^)@c=,=LP>^)z=z=LP>ZZ^),=c=LP>^),=\cLP>Y^)z=zLP>ZU^)c=,LP>t^)`c,LP>Yt^)`c,z> !{c=,z>ޢ{z=zz>Z,=\cz>^ !,=c=z>^z=z=z>@c=,=z>^c,=z> !^zz=z>Z,|c=z>{,ncz>{ !zzz>ZZzz =ZZ,nc ={ !,|c= ={zz= =Zc,= = !^@c=,= =^z=z= =,=c= =^,=\c =^ !z=z =Zc=, =ޢ{`c, = !{`@Y3'>ePZ`?Y(2>e׽׽3'>޿޿PZ׽׽(2>޿޿=;Y3'>yePZ=:Y(2>ye=׽3'>"@޿PZ=׽(2>"@޿@Y>p3'>WPZ@Y>l(2>W谥8Y>=3'>WyPZ8Y>=(2>Wy==3'>"@"@PZ=Ļ=02>"@"@`=AY>3'>yWPZ`=CY>02>yWAY>3'>WPZCY>02>W׽=3'>޿"@PZ׽Ļ=02>޿"@@Y=3'>eyPZ@Y=(2>ey@Y3'>ePZ@Y(2>e谥ؚ2>[`D'>[=ؚ2>[>=`D'>[>0ս0=2>f0ս0=`D'>f >2> >`D'>=>2>>=>`D'>>0=0=2>ff0=0=`D'>ff>=ؚ2>>>=`D'>>>ؚ2>>`D'>0=0սؚ2>f0=0ս`D'>f=ؚ2>>[=`D'>>[0ս0սؚ2>0ս0ս`D'>ؚ2>[`D'>[KP'>[J:2>[ǽǽP'>ǽǽ:2>=GP'>>[=F:2>>[=ǽP'>f=ǽ:2>fP>P'>P>:2>H>=P'>>H>Ŀ=:2>>==P'>ff==:2>ff=M>P'>>=O>:2>>M>P'>O>:2>ǽ=P'>fǽ=:2>fP=P'>[>P=:2>[>PP'>[P:2>[pj@+2>d谥pj'>dPZpj=@+2>dypj='>dyPZ`ĽZ=H+2>޿"@`ĽV='>޿"@PZ kj>H+2>W kj>'>WPZ=kj>H+2>yW=kj>'>yWPZP=Z=H+2>"@"@P=V='>"@"@PZhj>=@+2>Wyhj>='>WyPZpj>@+2>W谥pj>'>WPZ`=JĽ@+2>"@޿`=NĽ'>"@޿PZ=cj@+2>yd=dj'>ydPZ`ĽSĽ@+2>޿޿`ĽWĽ'>޿޿PZgj@+2>dhj'>dPZDATA,x5 5 DATA5 5  "   "  "  "  "  "  "  "  " " " " " """""""" " " "$        ! !" "# #$ $%"%&"#&"&'""'"'("!("()" )")*"*"*+"+"+,",",-"-"-."."./"/"/0"0"%0"01 1<"%< /2 12".3 23"-4 34",5 45"+6 56"*7 67")8 78"(9 89"': 9:"&; :;";<"<="=>";>">?":?"?@"9@"@A"8A"AB"7B"BC"6C"CD"5D"DE"4E"EF"3F"FG"2G"GH"1H"=H"HI"IT =T"GJ"IJ FK"JK EL"KL DM"LM CN"MN BO"NO AP"OP @Q"PQ ?R"QR >S"RS ST TU"UV"SV"VW"RW"WX"QX"XY"PY"YZ"OZ"Z["N["[\"M\"\]"L]"]^"K^"^_"J_"_`"I`"U`"a "b"c"d$"e "f"g "h"i"j"k"l"m"n"o"p"q"r "s"t!"u"v""w"#x"ca"db"ea"fb"eg"fh"ig"jh"ik"jl"mk"nl"om"np"oq"rp"sq"rt"us"tv"uw"vx"cw"dx"yx y d c z wz {v y{ |z |u t} {} ~| ~s r } ~ q p  o n m l k j i h g f e b a  ~ } | { z y # # ## ## ## ## ## ## ## ## ## ## ##############DATA,5 X5 DATAX5 4         #$%&"#&'!"'( !() )**++,,--..//0$0%%01<0/21/.32.-43-,54,+65+*76*)87)(98(':9'&;:&%<;;<=>:;>?9:?@89@A78AB67BC56CD45DE34EF23FG12GH<1H==HITHGJIGFKJFELKEDMLDCNMCBONBAPOA@QP@?RQ?>SR>=TSSTUVRSVWQRWXPQXYOPYZNOZ[MN[\LM\]KL]^JK^_IJ_`TI`Uc ab$d ea fb ge hfig jhkiljmknlompnqor psqt! rusv"!twux#"vcwd$#xdxywczxv{yuwz|vt}{su|~tr}qs~rpoqpnmonlkmljikjhgihfegfbaebdca~}~|{}|zy{zyME5 2p5 MEPlane(5 6 P5 6 5  6  (6 5s4`;?p??d;?DATA5 b DATA,5 P5 DATA P5 8Ga?4qG?#$04QGa?6qG#T:Qሢhaˡ?3͟4>Ҥ"ꔤ>Ԥ?"4Wh?ډ[33h?ډ?{43 I3?? p4?郴A> wm14> w?41\˔#[>p`j(NW٤#[>t`j?;4NU٤>gS$ɓF>iS?FJ4m#[>t`j?- =>iS?' =+d??  =Ȇ#[>p`j =|>gS =+e? =Ȇ)> w?$ = X-> w = X\ꔤ>Ԥ?  =0}h?ډ? =HIhGa?4qG? =w8->Ҥ =Ђh?ډ =HIGa?6qG =w? =\ =MFa?:qG?S?w8-Fa?0qGS?w?S?\򠿢S?Mޔ>ϤS?Ђ蔤>פ?S?0}h?ډS?HIh?ډ?S?HIh?S?A\??S?\> wS?14li> w?S?1\li#[>j`jS?NW'[#[>z`j?S?NU'[>`SS?ɓF\>pS?S?m\#[>{`j??NU'[>qS??m\???\#[>i`j?NW'[>_S?ɓF\??A\> w??1\li> w?14li蔤>פ??W[h?ډ??3 I[Fa?;qG??Qx]ޔ>Ϥ?[h?ډ?3[Fa?/qG?Qx]??͟4_i?a_i@?PS?@?\?S?=tS?=t?S?sX>5hS?sX>5h?S?<>;QS?@>KQ?S?6??S?6?S?6ށk?S?"6ʁkS?xM>Z_S?xM>Z_?S?>=IS?>MI?S??WS?XWW?d?S?XWW3.g?S?y2k3gS?Ї͡kI>[S?YI>[?S?XYb>eFS?88pXf>uF?S?88}IpXk?a?q?v)'$k?Zq?v$ &+g?q?2P> &gq?ί>*>[q?}D**>[?q?}u*ɻ>hFq?J%%ͻ>rF?q?J`%? ^?I9p? ?b?I9MplS`?b?my^S`^?yN{>2T^? Zt^{>#@^?y!sd/>#@?b?y!+s(\> M>a?J(\>M_?xtp>a?tT_?/:T=(w_?@DT=Bw>a?>5_?>5>a?Fm@6(?|ݠ?3peZN*<3w?4NN*<3w?$ =\.|ݠ? =F|ݠ?S?FO*<9w?S?NZO*<:w??NZ|ݠ??peZZ':nt?S?i(4bk?S?v1g?S?Z.Z#g?q?=x+p5`?b?54txp>a?|ݠnkpU*<+wnnNbZU*<+w =\|ݠ =F)|ݠS?F)V*<&wS?NbZZV*<%w?NbZZ|ݠ?pZ-:YtS?q(4bkS?|1}gS?K.Z#gq?=+v5`^?j4tpe_?_DATA, 6  6 DATA 6 5""""""  "  "   " "" " """"" """ "" " """" " "" " """  !" !  """"# #"$"%"&"!& $& '" ' %' ()"*+"(.",.")/"-/"-0"01"/1")2"12",3"34".4"(5"45"+6"*7"67"25"'9"89"%8"9:" :"&<";<"$;"<="!="">"#?">?":="08 19 2: 3; 4< 5= 6> 7? (@ @A )A +C BC *B ,D -E .F @F DF /G AG EG @I HI AH CJ JK BK DL EM FN IN LN GO HO MO IP PQ"HQ JR RS"KS LT MU NV PV"TV"OW QW"UW"PY"XY"QX"RZ"Z["S["T\"U]"V^"Y^"\^"W_"X_"]_"Y`"`a"Xa"Zb"bc"[c"\d"]e"^f"`f"df"_g"ag"eg"`i hi"ah bj jk"ck dl em fn in ln go ho mo hp op np mp lp kp"jp"ip q"q" r" r"s"s"t t "u %u +v"-v"0w"6w"8x">x"Cy Ey Jz Mz R{"U{"Z|"]|"b}"e}"j~ m~ qr rs qt tu vw ux wx vy yz z{ {| |} }~ p~ "" " """  # $ *","3"7";"?"B D K L S"T"["\"c"d"k l !!!!!!!!!!!!!p DATA,(6 6 DATA 6 4            !#"!&&$' %'/10-/)21.,34.45(+67*(52)%89' '9:$&<;!=<&#?>" :=!198012:943;<4<=56>?75=:2)A@(*BC+(@F.,.FD)/GA-EG/AHI@BKJC@INFDFNLAGOHEMOGHQPIKSRJIPVNLNVTHOWQMUWOQXYPS[ZRPY^VTV^\QW_XU]_WXa`Y[cbZY`f^\^fdX_ga]eg_ahi`ckjb`infdfnlagohemoghpikpjipnlnphopmpo rqr qsr s rtqtq"utu%t0wv-w6+v>xu"x8%u8xw0x>6wCyv+yE-vJzyCzMEyR{zJ{UMzZ|{R|]U{b}|Z}e]|j~}b~me}m~p~jp    #$,3*7#?$;3;7?*B,DBKDLKSLTS[T\[c\dckdlkplpDNA1ЁP SDNANAMED*next*prev*first*lastxyzwxminxmaxyminymax*pointergroupvalpadname[32]typesubtypeflagsaveddatalentotallen*newid*libname[24]usicon_id*propertiesid*idblock*filedataname[240]filename[240]tot*parentcurvecurblocktypeshowkeyposcurvaladrcodetotelem*data*weightsvgroup[32]sliderminslidermax*refkeyelemstr[32]elemsizeblock*ipo*fromtotkeyslurph**scripts*flagactscripttotscript*line*formatblen*nameflagsnlineslines*curl*sellcurcselc*undo_bufundo_posundo_len*compiledsizeseekpassepartalphaangleclipstaclipendlensortho_scaledrawsizeshiftxshiftyYF_dofdistYF_apertureYF_bkhtypeYF_bkhbiasYF_bkhrotscriptlinkh*rectframenrframesoffsetsfrafie_imacyclokmulti_indexlayerpassmenunribufs*anim*rrsourcepad1lastframetpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfile*previewlastupdatelastusedanimspeedgen_xgen_ygen_type*vnodetexcomaptomaptonegblendtype*object*texuvname[32]projxprojyprojzmappingofs[3]size[3]texflagcolormodelrgbkdef_varcolfacnorfacvarfacdispfacwarpfacname[160]*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*instance_init)()(*callback)()versionaipotype*ima*cube[6]imat[4][4]obimat[3][3]stypeviewscalenotlaycuberesdepthrecalclastsizenoisesizeturbulbrightcontrastrfacgfacbfacfiltersizemg_Hmg_lacunaritymg_octavesmg_offsetmg_gaindist_amountns_outscalevn_w1vn_w2vn_w3vn_w4vn_mexpvn_distmvn_coltypenoisedepthnoisetypenoisebasisnoisebasis2imaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendcheckerdistnablaiuser*plugin*coba*envloc[3]rot[3]mat[4][4]min[3]max[3]*obmodetotexenergydistspotsizespotblendhaintatt1att2shadspotsizebiassoftbufsizesampbuffersfiltertypebufflagbuftyperay_sampray_sampyray_sampzray_samp_typearea_shapearea_sizearea_sizeyarea_sizeztexactshadhalostepYF_numphotonsYF_numsearchYF_phdepthYF_useqmcYF_bufsizeYF_padYF_causticblurYF_ltradiusYF_glowintYF_glowofsYF_glowtypeYF_pad2*mtex[10]specrspecgspecbmirrmirgmirbambrambbambgambemitangspectraray_mirroralpharefspeczoffsaddtranslucencyfresnel_mirfresnel_mir_ifresnel_trafresnel_tra_ifiltertx_limittx_falloffray_depthray_depth_traharseed1seed2mode_lflarecstarclinecringchasizeflaresizesubsizeflarebooststrand_stastrand_endstrand_easesbiasshad_alphapadfrgbselpr_typeuse_nodespr_backpr_lampseptexml_flagdiff_shaderspec_shaderroughnessrefracparam[4]rmsdarkness*ramp_col*ramp_specrampin_colrampin_specrampblend_colrampblend_specramp_showpad3rampfac_colrampfac_spec*nodetree*groupfrictionfhreflectfhdistxyfrictdynamodepad2sss_radius[3]sss_col[3]sss_errorsss_scalesss_iorsss_colfacsss_texfacsss_frontsss_backsss_flagsss_presetYF_arYF_agYF_abYF_dscaleYF_dpwrYF_dsmpYF_presetYF_djitname[256]scale*bbi1j1k1i2j2k2selcol1selcol2quat[4]expxexpyexpzradrad2s*mat*imatelemsdisp**mattotcolwiresizerendersizethreshvec[3][3]alfaweightradiush1h2f1f2f3hidevec[4]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsv*bp*beztcharidxkernnurb*bevobj*taperobj*textoncurve*path*keybevpathlenbevresolwidthext1ext2resolu_renresolv_renspacemodespacinglinedistshearfsizewordspaceulposulheightxofyoflinewidth*strfamily[24]*vfont*vfontb*vfonti*vfontbisepchartotboxactbox*tbselstartselend*strinfocurinfoname[128]maxrcttotrctvartypetotvertipoextraprtbitmaskslide_minslide_max*drivereffect*mface*mtface*tface*mvert*medge*dvert*mcol*msticky*texcomesh*mselect*oc*sumohandlevdataedatafdatatotedgetotfacetotselectcubemapsizesmoothreshsubdivsubdivrsubsurftype*mr*pv*tpageuv[4][2]col[4]transptileunwrapv1v2v3v4edcodecreasedef_nr*dwtotweightco[3]no[3]co[2]indexv[4]midchildrenstartpad[2]v[2]*verts*faces*colfaces*edges*vert_edge_map*vert_face_map*map_memlevelslevel_countcurrentnewlvledgelvlpinlvlrenderlvluse_col*edge_flags*edge_creases*vert_map*edge_map*old_faces*old_edges*errormodifiersubdivTyperenderLevels*emCache*mCachedefaxispad[6]startlengthrandomizeseed*start_cap*end_cap*curve_ob*offset_oboffset[3]scale[3]merge_distfit_typeoffset_typecountaxistolerancesplit_angle*texturestrengthdirectiondefgrp_name[32]midleveltexmapping*map_objectuvlayer_name[32]uvlayer_tmp*projectors[10]*imagenum_projectorsaspectxaspectypercentfaceCountfacrepeat*objectcenterstartxstartyheightnarrowspeeddamptimeoffslifetimedeformflagparentinv[4][4]cent[3]falloff*indexartotindexforceoperationpntswopntsuopntsvopntswtypeutypevtypewfufvfwdudvdw*defvec[8][3]dvec[3]max**obpartypepar1par2par3parsubstr[32]*track*proxy*proxy_group*proxy_from*action*poseconstraintChannelsnetworkdefbasemodifiersdloc[3]orig[3]dsize[3]drot[3]dquat[4]obmat[4][4]laycolbitstransflagipoflagtrackflagupflagnlaflagprotectflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactorrdampingsizefacdtdtxactcolempty_drawtypepad1[7]empty_drawsizepropsensorscontrollersactuatorsbbsize[3]actdefgameflaggameflag2softflaganisotropicFriction[3]constraintsnlastripshooks*pd*soft*dup_groupfluidsimFlagrestrictflagshapenrshapeflagpad4*fluidsimSettings*derivedDeform*derivedFinallastDataMaskcurindexactivedeflectforcefieldpdef_damppdef_rdamppdef_permf_strengthf_powermaxdistpdef_sbdamppdef_sbiftpdef_sbofttotpointtotspring*bpoint*bspringnodemassgravmediafrictrklimitphysics_speedgoalspringgoalfrictmingoalmaxgoaldefgoalvertgroupfuzzynessinspringinfrictefraintervallocalsolverflags**keystotpointkeysecondspringcolballballdampballstiffsbc_modeaeroedgeminloopsmaxloopschokepad5*scratchshow_advancedoptionsresolutionxyzpreviewresxyzrealsizeguiDisplayModerenderDisplayModeviscosityValueviscosityModeviscosityExponentgravxgravygravzanimStartanimEndgstarmaxRefineiniVelxiniVelyiniVelz*orgMesh*meshSurface*meshBBsurfdataPath[240]bbStart[3]bbSize[3]typeFlagsdomainNovecgenvolumeInitTypepartSlipValuegenerateTracersgenerateParticlessurfaceSmoothingsurfaceSubdivsunusedDNADummyparticleInfSizeparticleInfAlphafarFieldSize*meshSurfNormalsmistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposureexprangelinfaclogfacgravityactivityBoxRadiusskytypephysicsEnginemisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxaodistaodistfacaoenergyaobiasaomodeaosampaomixaocolor*aosphere*aotableshemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammaselcolsxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizeqtcodecname[128]codecaudio_codecvideo_bitrateaudio_bitrategop_sizerc_min_raterc_max_raterc_buffer_sizemux_packet_sizemux_ratemixratemainpad[3]*mat_override*light_overridelayflagpassflagpass_xor*avicodecdata*qtcodecdataffcodecdatacfrapsfrapefraimagesframaptothreadsframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1rt2stereomodedimensionspresetmaximsizexschyschxaspyaspxpartsypartswinposplanesimtypesubimtypequalityscemoderendererocresrpad[2]alphamodeosafrs_secedgeintsafetyborderdisprectlayersactlaygausspostmulpostgammaposthuepostsatdither_intensitybake_osabake_filterbake_modebake_flagGIqualityGIcacheGImethodGIphotonsGIdirectYF_AAYFexportxmlYF_nobumpYF_clamprgbyfpad1GIdepthGIcausdepthGIpixelspersampleGIphotoncountGImixphotonsGIphotonradiusYF_numprocsYF_raydepthYF_AApassesYF_AAsamplesGIshadowqualityGIrefinementGIpowerGIindirpowerYF_gammaYF_exposureYF_raybiasYF_AApixelsizeYF_AAthresholdbackbuf[160]pic[160]ftype[160]col[3]framename[64]*brushtoolcornertypeeditbutflagjointrilimitdegrstepturnextr_offsdoublimitsegmentsringsverticesunwrapperuvcalc_radiusuvcalc_cubesizeuvcalc_mapdiruvcalc_mapalignuvcalc_flagimapaintselect_threshclean_threshretopo_moderetopo_paint_toolline_divellipse_divretopo_hotspotmultires_subdiv_typepad4[2]dirairbrushview*sessiondrawbrushsmoothbrushpinchbrushinflatebrushgrabbrushlayerbrushflattenbrushbrush_typetexnrtexrepttexfadetexsepaveragingdraw_flagtablet_sizetablet_strengthsymm*camera*world*setbase*basactcursor[3]twcent[3]twmin[3]twmax[3]editbutsizeselectmodeproportionalprop_mode*ed*radioframing*toolsettingsaudiomarkersjumpframe*theDagdagisvaliddagflagssculptdatazoomblendximyimspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]zfacpad0persp*ob_centre*bgpic*localvd*ri*retopo_view_data*depthsob_centre_bone[32]localviewlayactscenelockaroundcamzoompivot_lastgridgridviewpixsizenearfarcamdxcamdygridlinesviewbutgridflagmodeselecttwtypetwmodetwflagtwdrawflagtwmat[4][4]clip[4][4]*clipbbafterdrawzbufxrayflag2gridsubdivsnap_target*properties_storageverthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinyrowbutv2d*editipoipokeyactname[32]constname[32]totipopinbutofschannellockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexfromshowgroupmodeltypescriptblockre_alignoldkeypresstab[7]chanshown*filelisttotfiletitle[24]dir[160]file[80]ofssortmaxnamelencollums*libfiledataretvalmenuact(*returnfunc)()(*returnfunc_event)()(*returnfunc_args)()*arg1*arg2*menup*pupmenuoopsvisiflagtree*treestoresearch_string[32]search_tsesearch_flagsdo_outlinevisstoreflagdeps_flags*cumapimanrcurtileimtypenrshowsparecentxcenty*info_str*info_spare*spare*texttopviewlinesfont_idlheightleftshowlinenrstabnumbercurrtab_setshowsyntaxunused_paddpix_per_linetxtscrolltxtbar*scriptredraws*idaspect*curfont*edittreetreetypetitle[28]fasesubfasemouse_move_redrawimafasemxmydirslidirsli_linesdirsli_sxdirsli_eydirsli_exdirsli_himaslifileselmenuitemimasli_sximasli_eyimasli_eximasli_hdssxdssydsexdseydesxdesydeexdeeyfssxfssyfsexfseydsdhfsdhfesxfesyfeexfeeyinfsxinfsyinfexinfeydnsxdnsydnwdnhfnsxfnsyfnwfnhfole[128]dor[128]file[128]dir[128]*firstdir*firstfiletopdirtotaldirshilitetopfiletotalfilesimage_sliderslider_heightslider_spacetopimatotalimacurimaxcurimay*first_sel_ima*hilite_imatotal_selectedima_redraw*cmapoutline[4]neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]textfield_hi[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeiconfile[80]back[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]lamp[4]active[4]group[4]group_active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]edge_seam[4]edge_sharp[4]edge_facesel[4]face[4]face_select[4]face_dot[4]normal[4]bone_solid[4]bone_pose[4]strip[4]strip_select[4]vertex_sizefacedot_sizebpad[2]syntaxl[4]syntaxn[4]syntaxb[4]syntaxv[4]syntaxc[4]movie[4]image[4]scene[4]audio[4]effect[4]plugin[4]transition[4]meta[4]bpad1[4]tuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsttimetnodebpad[4]spec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]yfexportdir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefviewzoomconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[256]themesundostepscurssizetb_leftmousetb_rightmouselight[3]tw_hotspottw_flagtw_handlesizetw_sizetextimeouttexcollectratememcachelimitframeserverportpad_rot_angleobcenter_diarvisizervibrightversemaster[160]verseuser[160]recent_filessmooth_viewtxvertbaseedgebaseareabase*sceneendxendysizexsizeyscenenrscreennrfullmainwinwinakthandler[8]*newvvec*v1*v2panelname[64]tabname[64]drawname[64]ofsxofsycontrolsnapold_ofsxold_ofsysortcounter*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanelssubvstr[4]subversionpadsminversionminsubversiondisplaymode*curscreen*curscenefileflagsglobalfname[80]*ibuf*se1*se2*se3nrdone*stripdataorxory*instance_private_data**current_private_data*newseqstartofsendofsstartstillendstillmachinestartdispenddispmulhandsize*strip*curelemfacf0facf1*seq1*seq2*seq3seqbase*sound*hdaudiolevelpancurposstrobe*effectdataanim_preseek*oldbasep*parseq*seqbasepmetastackedgeWidthforwardwipetypefMinifClampfBoostdDistdQualitybNoCompScalexIniScaleyIniScalexFinScaleyFinxInixFinyIniyFinrotInirotFin*frameMapglobalSpeedbuttypeuserjitstaendtotpartnormfacobfacrandfactexfacrandlifeforce[3]vectsizemaxlendefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstepomattimetexspeedtexflag2negvertgroup_vvgroupname[32]vgroupname_v[32]*keysminfacusedusedelemdxdylinkotypeold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]materialName[32]damptimerdelaypropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linksinvertfreq2axisfbuttonbuttonfhathatfprecisionstr[128]*mynewinputstotslinks**slinksvalotime*actblendinprioritystrideaxisstridelengthsndnrpad1[2]makecopycopymadepad2[1]trackvolume*melinVelocity[3]localflagforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]butstabutendminvisifacslowminloc[3]maxloc[3]minrot[3]maxrot[3]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]goaccellerationmaxspeedmaxrotspeedmaxtiltspeedrotdamptiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*lamprengobjectchildbaserollhead[3]tail[3]bone_mat[3][3]arm_head[3]arm_tail[3]arm_mat[4][4]xwidthzwidthease1ease2rad_headrad_tailbonebasechainbasepathflaglayer_protectedghostepghostsizeghosttypepathsizeghostsfghostefpathsfpathefconstflagikflagselectflag*bone*childiktree*b_bone_matschan_mat[4][4]pose_mat[4][4]pose_head[3]pose_tail[3]limitmin[3]limitmax[3]stiffness[3]ikstretch*customchanbaseproxy_layerstride_offset[3]cyclic_offset[3]reserved1autosnapactnractwidthtimeslidename[30]enforce*tariterationsrootbonesubtarget[32]orientweightgrabtarget[3]reserved2minmaxflagstickystuckcache[3]lockflagfollowflagzminzmaxvolmodeplaneorglengthbulgepivXpivYpivZaxXaxYaxZminLimit[6]maxLimit[6]extraFzchannel[32]no_rot_axisstride_axiscurmodactstartactendactoffsstridelenblendoutstridechannel[32]offs_bone[32]hasinputhasoutputdatatypesockettypenslimitstack_indexinternstack_index_extlocxlocyown_indexto_index*tosock*link*new_nodelastyoutputs*storageminiwidthcustom1custom2need_execexectotrbutrprvr*typeinfo*fromnode*tonode*fromsocknodeslinks**stackinitstacksizecur_indexalltypes*owntype(*timecursor)()(*stats_draw)()(*test_break)()cyclicmoviesamplesminspeedbokehhuesatt1t2t3fstrengthfalphakey[4]colname[32]bktyperotationpreviewgamcono_zbuffstopmaxblurbthreshshortymintablemaxtableext_in[2]ext_out[2]*curve*table*premultablecurrcliprcm[4]black[3]white[3]bwmul[3]offset[2]innerradiusratergb[3]cloneactive_rndpad[4]*layerstotlayermaxlayertotsizeTYPEcharucharshortushortintlongulongfloatdoublevoidLinkListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDPropertyDataIDPropertyIDLibraryFileDataIpoKeyBlockKeyScriptLinkTextLineTextPackedFileCameraPreviewImageImageUserImageanimRenderResultMTexObjectTexPluginTexCBDataColorBandEnvMapImBufTexMappingLampWaveMaterialbNodeTreeGroupVFontVFontDataMetaElemBoundBoxMetaBallBezTripleBPointNurbCharInfoTextBoxCurvePathIpoDriverIpoCurveMeshMFaceMTFaceTFaceMVertMEdgeMDeformVertMColMStickyMSelectOcInfoCustomDataMultiresPartialVisibilityMDeformWeightMultiresColMultiresColFaceMultiresFaceMultiresEdgeMultiresLevelMultiresMapNodeModifierDataSubsurfModifierDataLatticeModifierDataCurveModifierDataBuildModifierDataArrayModifierDataMirrorModifierDataEdgeSplitModifierDataDisplaceModifierDataUVProjectModifierDataDecimateModifierDataSmoothModifierDataCastModifierDataWaveModifierDataArmatureModifierDataHookModifierDataSoftbodyModifierDataBooleanModifierDataLatticebDeformGroupLBufbActionbPosePartDeflectSoftBodyFluidsimSettingsDerivedMeshObHookSBVertexBodyPointBodySpringSBScratchWorldRadioBaseAviCodecDataQuicktimeCodecDataFFMpegCodecDataAudioDataSceneRenderLayerRenderDataGameFramingTimeMarkerImagePaintSettingsBrushToolSettingsBrushDataSculptDataSculptSessionSceneDagForestBGpicView3DSpaceLinkScrAreaRenderInfoRetopoViewDataViewDepthsView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsTreeStoreTreeStoreElemSpaceImageCurveMappingSpaceNlaSpaceTextSpaceScriptScriptSpaceTimeSpaceNodeSpaceImaSelImaDirOneSelectableImaThemeUIThemeSpacebThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemStripPluginSeqSequencebSoundhdaudioMetaStackEditingWipeVarsGlowVarsTransformVarsSolidColorVarsSpeedControlVarsEffectBuildEffPartEffParticleWaveEffOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbJoystickSensorbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorFreeCamerabSamplebSoundListenerSpaceSoundGroupObjectBonebArmaturebPoseChannelbActionChannelSpaceActionbConstraintChannelbConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbMinMaxConstraintbSizeLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbDistanceLimitConstraintbRotationConstraintbStretchToConstraintbLocLimitConstraintbRotLimitConstraintbSizeLimitConstraintbRigidBodyJointConstraintbClampToConstraintbActionModifierbActionStripbNodeStackbNodeSocketbNodeLinkbNodebNodePreviewbNodeTypeNodeImageAnimNodeBlurDataNodeHueSatNodeImageFileNodeChromaNodeGeometryNodeVertexColNodeDefocusCurveMapPointCurveMapBrushCloneCustomDataLayerTLEN  L4(Thxh tx T8pDDlh8$88\,< @ @ 44DX`Dt<<<\h`4@t( <(,((0@XP Lt<$x$(h x  8x h (88,@0,HhH,(lDLP@< <@Lh48<8l(DlP<,4D4,,D,@,<4` <$t (@  ,<STRC                 !"#$ %&'( )*+, -./01 234* 56789 :;<=!!!>?@" ABC D!E!FGHIJK L#MNB -$OPQRSTUVWXYZ[\6 ]%^_& `abcdefghij'! k(l)mfnopqrstuvwx#y%z{|}~ *+,-   .)&/#&.0+'1QRfp,4dabc&6'-/02+34QR   * 6 ]465p  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI/J/KLMNOPQRS* 6T67UVWXYZ[\]^_`abcdefghijklmno ]8pq9-#y:::;rstuvwxyz{|}~<;r  65= >???>=@\A^B9;r  +++6C5 \D)8888A@@D+'+EEE>='+  *DF);r 65GHIJKLMNFOP QQQ\RS I GKTLTJMNOH'UVUWX Y YYJ W V X   ZR QQSGK[[[\[ !"B # $][ +^[ +%&_[ '()*` [ +++,+-+./0(123B4a[ 56b[ 7Bc [ ,89:;<=+>?@d [ +A'BBCDE?@e[ FGf[ H;Ig[ +HM;h[ +J;,8+>KLMNOP=@?QRi[ So\+;j [ +TUVWXYk[ l[ +Zm[\]^\_`abcdefg>h6Lnnn;iPjo#k+l+fmnopq+$+r+s+t+u6C;rpvqw - x  y  z {5|}~{T ]        rs7tuu vvv+$TUVWXYr ws(xycw8Qzt(FFF6     J{9 !"#$%&'()*+,-./0123456789:;<6*  ]|=>?@ABCDEFGHIJK}}}LMN+~ O PQRSTUVWXYZ [ \]\^ _`abcBdefghijk 5l7mnope~qrstcuvwxyz{|}~M \o\QQ\M9* %+{' }    >6T |  ] o\Q '&MD !"#$%&'()++*+,-./0?123456oS789:;<=>?@AjBCDEFG;H IJKLMN\ O#&PQRSTUVWXYZ[\]\^ _ `67abcdef('jgh#-ijkl^mjdn opqrstuv^mw\xyz{|}~     ^ d o ^'B&jg\1 jg^"Bj \Bj^^7j 6T6Q\1       k0  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO>P4QRSTUVWXYZ[\]^_`abcdefghijkl mnopqrstuvwxyz{|}~&   KL  ]      1f { p     ) 'c6(l      P B(c-R8* P    L7UKLMNOPQR,-   ! "# $ %&'o\5()*+,-./01P\P5*234o5+678"9:;o\ -<+=> 5?@ABCDE"FG;"H\Q -<IJK+ pLMNOP QRSTUQVW K+FXYZ+.+ [\|]^ o&_`+MakH5bPcdefg k&_`7U*hijkl3m+n7oo\8pq F"r -+ stuvwxyz {#y#| }6W~B^Qg\+ 7 h$ (h  ?Sh \$  {+q 6 xp ^pvdg6 - ++B++ +bo\+ +'akpL++b+o\/   +   L   o   o++o\+ +6pL+';IM {ak -   o      j G   z         6         ac toHK\p_c !" #$%&'()*q+ ,-./012 &345678;'B9 M:;<* =b>? -Q@ABCENDBphatch-0.2.7/images/source/stani/0000755000000000000000000000000011346363116016614 5ustar rootroot00000000000000phatch-0.2.7/images/source/stani/icons/0000755000000000000000000000000011346363116017727 5ustar rootroot00000000000000phatch-0.2.7/images/source/stani/icons/grid.svg0000644000000000000000000016703411346363116021410 0ustar rootroot00000000000000 image/svg+xml phatch-0.2.7/images/source/stani/icons/pencil.svg0000644000000000000000000001164411346363116021730 0ustar rootroot00000000000000 pen Stani Stani Stani image/svg+xml phatch-0.2.7/images/source/stani/icons/warm_up.svg0000644000000000000000000004354711346363116022137 0ustar rootroot00000000000000 image/svg+xml Igor Kekeljevic (http://www.admiror-ns.co.yu) Igor Kekeljevic (http://www.admiror-ns.co.yu) www.stani.be Icon specially designed for Phatch, a Photo Batch Processor. http://photobatch.stani.be phatch-0.2.7/images/source/stani/masks/0000755000000000000000000000000011346363116017732 5ustar rootroot00000000000000phatch-0.2.7/images/source/stani/masks/square_twisted.svg0000644000000000000000000001253511346363116023524 0ustar rootroot00000000000000 image/svg+xml Stani phatch-0.2.7/images/source/stani/masks/square_twisted_round.svg0000644000000000000000000001202511346363116024725 0ustar rootroot00000000000000 image/svg+xml Stani phatch-0.2.7/linux/0000755000000000000000000000000011346363116014070 5ustar rootroot00000000000000phatch-0.2.7/linux/phatch-inspector.desktop0000644000000000000000000000105011346363116020732 0ustar rootroot00000000000000[Desktop Entry] Version=1.0 Exec=phatch -n %U Icon=phatch-inspector Terminal=false Type=Application Categories=Graphics;Photography;GTK; StartupNotify=true MimeType=application/x-phatch;image/bmp;image/gif;image/jpeg;image/jpg;image/png;image/tiff;image/x-bmp;image/x-pcx;image/x-png;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sun-raster;image/x-tga;image/x-xbitmap;image/x-xpixmap;application/pcx; Name=Phatch Image Inspector GenericName=Image Inspector Comment=Easily inspect EXIF and IPTC metadata phatch-0.2.7/linux/phatch.10000644000000000000000000000342611346363116015426 0ustar rootroot00000000000000.TH PHATCH "1" "February 2009" "User Commands" .SH NAME Phatch \- Photo Batch Processor .SH DESCRIPTION \fBPhatch\fP is a simple photo batch processor. It handles all popular image formats and can duplicate (sub)folder hierarchies. It can also batch resize, rotate, rename, ... and more in minutes instead of hours or days if you do it manually. .SH SYNOPSIS .TP Phatch [actionlist] .TP Phatch [options] [actionlist] [image folders/files/urls] .TP Phatch \-\-inspect [image files/urls] .TP Phatch \-\-droplet [actionlist/recent] [image files/urls] .SH OPTIONS .TP \fB\-\-version\fR Show program's version number and exit. .TP \fB\-h\fR, \fB\-\-help\fR Show the command line options which are accepted by Phatch .TP \fB\-c\fR, \fB\-\-console\fR Run Phatch as console program without a gui .TP \fB\-d\fR, \fB\-\-droplet\fR Run Phatch as a gui droplet .TP \fB\-\-desktop\fR Save always on desktop .TP \fB\-f\fR, \fB\-\-force\fR Ignore errors .TP \fB\-\-fonts\fR Initialize fonts (only for installation scripts) .TP \fB\-i\fR, \fB\-\-interactive\fR Interactive .TP \fB\-k\fR, \fB\-\-keep\fR Keep existing images (don't overwrite) .TP \fB\-l LOCALE\fR Specify locale language (for example en or en_GB) .TP \fB\-n\fR, \fB\-\-inspect\fR Inspect metadata (requires exif & iptc plugin) .TP \fB\-\-no\-save\fR No save action required at the end .TP \fB\-r\fR, \fB\-\-recursive\fR Include all subfolders .TP \fB\-t\fR, \fB\-\-trust\fR Do not check images first .TP \fB\-\-unsafe\fR Allow Geek action and unsafe expressions .TP \fB\-v\fR, \fB\-\-verbose\fR Verbose .SH EXAMPLES .TP phatch action_list.phatch .TP phatch \-\-verbose \-\-recursive action_list.py image_file.png image_folder .TP phatch \-\-inspect image_file.jpg .TP phatch \-\-droplet recent .TP phatch \-l el .SH AUTHOR Stani (spe.stani.be (at) gmail.com) phatch-0.2.7/linux/phatch.desktop0000644000000000000000000000534711346363116016743 0ustar rootroot00000000000000[Desktop Entry] Version=1.0 Exec=phatch %U Icon=phatch Terminal=false Type=Application Categories=Graphics;Photography;GTK; StartupNotify=true MimeType=application/x-phatch;image/bmp;image/gif;image/jpeg;image/jpg;image/png;image/tiff;image/x-bmp;image/x-pcx;image/x-png;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sun-raster;image/x-tga;image/x-xbitmap;image/x-xpixmap;application/pcx; Name=Phatch PHoto bATCH Processor Name[ar]=Phatch معالج مجموعة الصور Name[ca]=Phatch Processador de fotografías Name[de]=Phatch Foto-Stapelverarbeiter Name[el]=Phatch Δεσμικός Επεξεργαστής & Μετονομαστής Εικόνων Name[es]=Phatch Procesador de fotografías por lotes Name[fi]=Phatch Kuvien eräprosessoija Name[fr]=Phatch Traiteur de photos par lot Name[gl]=Phatch Procesador de grupo de fotos Name[he]=Phatch מעבד תמונות באצווה Name[hu]=Phatch Kötegelt fotófeldolgozó és átnevező Name[it]=Phatch Processore Batch delle foto Name[nl]=Phatch Foto Batch Processor Name[pl]=Phatch Wsadowy Procesor Obrazu i Zmiany nazwy Name[pt]=Phatch Processador de Fotografias por Lotes Name[ru]=Phatch Пакетный обработчик фотографий Name[sl]=Phatch Serijsko Procesiranje Slik Name[sr]=Phatch Пакетска Обрада Слика Name[tr]=Phatch Toplu Fotoğraf İşlemcisi Name[uk]=Phatch Пакетна обробка фотографій Name[zh_CN]=Phatch 照片批量处理 & 命名 Name[zh_TW]=Phatch 照片批次處理器 GenericName=PHoto bATCH Processor GenericName[ar]=معالج مجموعة الصور GenericName[ca]=Processador de fotografías GenericName[de]=Foto-Stapelverarbeiter GenericName[el]=Δεσμικός Επεξεργαστής & Μετονομαστής Εικόνων GenericName[es]=Procesador de fotografías por lotes GenericName[fi]=Kuvien eräprosessoija GenericName[fr]=Traiteur de photos par lot GenericName[gl]=Procesador de grupo de fotos GenericName[he]=מעבד תמונות באצווה GenericName[hu]=Kötegelt fotófeldolgozó és átnevező GenericName[it]=Processore Batch delle foto GenericName[nl]=Foto Batch Processor GenericName[pl]=Wsadowy Procesor Obrazu i Zmiany nazwy GenericName[pt]=Processador de Fotografias por Lotes GenericName[ru]=Пакетный обработчик фотографий GenericName[sl]=Serijsko Procesiranje Slik GenericName[sr]=Пакетска Обрада Слика GenericName[tr]=Toplu Fotoğraf İşlemcisi GenericName[uk]=Пакетна обробка фотографій GenericName[zh_CN]=照片批量处理 & 命名 GenericName[zh_TW]=照片批次處理器 Comment=Easily batch process images and edit metadata Comment[nl]=Gemakkelijk massaal foto's en metadata bewerken phatch-0.2.7/linux/phatch.xml0000644000000000000000000000053511346363116016064 0ustar rootroot00000000000000 Phatch action list Phatch actielijst phatch-0.2.7/locale/0000755000000000000000000000000011346363116014170 5ustar rootroot00000000000000phatch-0.2.7/locale/ar/0000755000000000000000000000000011346363116014572 5ustar rootroot00000000000000phatch-0.2.7/locale/ar/LC_MESSAGES/0000755000000000000000000000000011346363116016357 5ustar rootroot00000000000000phatch-0.2.7/locale/ar/LC_MESSAGES/phatch.mo0000644000000000000000000002451111346363116020166 0ustar rootroot00000000000000  !%.!Tv    "5=DK^ry "<Z"y  (AT[djs      #),CK T ^jy * 1= Wc y  ' DOTZ a mz1+EJN^ oy~   "*.49BKRX _jqv{     #'5B FTdz$ $5-c y   /" R_ t+*'26K$  0 =$b       0 C *P {         $!-!=!N! `!m!!! !!&! !!"" ")"?""F"i"r" ""+" """ " # # # 6#A#[#o# x#1# # #%#-#R$ r$}$$$$$$ $ $ $O$ 9% D%O%$X%!}%S% %%&&1&8&A&-^&&&&&*&' ' ' '''0' 7'B'Q'l'u'|'''''' ' '' '' ( ((0( 5(A( J(U( ^(i( x(((((( (((((/(+)2) 7)B)7nY}%'8kg6MbO Vie -dL|ouC&Ex^5`pI~lF>;$r _\{/Xa@] (Bhw#qK2Gm4PSA<Qf"c9Tsy?,.:UH*D!N1 )0+ZR z[j3=WtJvAction ListsAdjust brightness from black to whiteAdjust from grey to black & whiteAlign HorizontalAlign VerticalAll FilesAmountAngleApply a transparency maskAsAuto ContrastBackgroundBackground ColorBackground OpacityBitsBlackBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBottomBottom Left CornerBottom Right CornerCanvasChecking imagesChoiceColorColor to AlphaColorizeColorize grayscale imageCommonConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCropCrossCutoffDepthDesaturateDescribe here the action list.DescriptionDo not check images firstDo you want to continue?Drops a reflectionEffectEqualizeErrorExamplesExecuting action listExpandFalseFileFile NameFill ColorFilterFitFlip or rotate 90 degreesFloatFontGapGrayscaleHighlightHorizontalHorizontal OffsetIgnore errorsImageInInclude all subfoldersIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert the colors of an imageLabelLeftMake the image smaller or biggerMarkMaskMaximumMedianMethodMinimumModeNo files or folder selected.NormalNothing to do.OffsetOrientationOverwrite existing imagesPerspectivePhoto Batch ProcessorPosterizeRankReflectionRenameRepeatResampleResolutionRightRotateRotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaveScaleShadowShadow BlurShadow ColorShear 2d or 3dSizeSliderSolarizeSpecify locale language (for example en or en_GB)SquareStringTextThe action list is empty.There is no action enabled.There should be a 'Save' action at the end.TileTopTop Left CornerTop Right CornerTransposeTrueUnable to open fileUnsaved Action ListVerboseVertical OffsetWatermarkWhiteWrite text at a given positionabortautomaticbackgroundbooleanbottomcenterdaydefaultdpifalsefilefilenamefilesizefilterfloatfolderfoldernameheighthourleftmiddleminutemodemonthmonthnamenononepathresolutionrightrootsecondsizeskipsmoothsubfoldertagtoptransformtruetypeweekdayweekdaynamewidthwithyearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-06-10 14:31+0000 Last-Translator: MaXeR Language-Team: Arabic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) قائمة العملتعديل سطوع من السود إلى البيضتعديل من الرمادي إلى الأبيض و الأسودصف أفقيصف عموديكل الملفّاتكميةالزّاويةتطبيق قناع الشفافيةكماتباين تلقائيالخلفيّةلون الخلفيةخلفية التعتيمبتّاتأسودضبابية، تحديد، نقش، تسوية، ...قيمة منطقيةالحدودتحتأسفل اليسارأسفل اليمينمساحة رسمالتحقق من الصورالخياراللونلون إلى ألفاتلوينتلوين الصورة تدرج الرماديمتداولتحد من نسبةتباينوضعيه التحويلحول وضعيه الالوان لصورهنسخ قيمة البكسل القصوىنسخ متوسط قيمة البكسلنسخ قيمة الحد الأدنى للبكسلالنسخ الأكثر شيوعا لقيمة بكسلنسخ القيمة rank'th بكسلنسخقصّرتقاطعقطعالعمقأزل التشبعهنا وصف الإجراءات القائمة.الوصفلا تقم بالتأكد من الصوره بالبدايةأتريد الاستمرار؟قطرات انعكاسالتأثيرمساواةخطأأمثلةتنفيذ لائحة العملتمديدخاطئالملفاسم الملفلون التعبئةالمرَشِّحملائمةالتوجيه أو تدوير 90 درجةعائمالخطفجوةدرجات الرماديأبرِزأفقيإزاحة عموديةتجاهل الأخطاءصورةداخلمع المجلدات الفرعيهعدد صحيحعدد صحيح+عدد صحيح+0تفاعليالصور غير موجودةعكسقلب ألوان الصورةعنوانيساروضع صورة أصغر أو أكبرعلامةقناعالحد الأقصىوسططريقةالحد الأدنىوضعلم تختر ملف أو مجلدعاديلا شيء لعملهإزاحةالإتجاهاكتب فوق الصور الموجودهمنظوريمعالج مجموعة الصورمُلصقرتبةانعكاسإعادة تسميةتكرارإعاده التشكيلدقّة العرضيمينتدويربالتناوب مع عشوائي الزاويةدائريمدوّرعبر أو تدوير الزواياتشغيل %s كواجه رسوميه dropletتشغيل %s من خلال سطر الاوامر بدون واجه رسوميهإشباعحفظقياسظلظل الضبابيةلون الظلجز 2d او 3dالحجممنزلقتشميساختر اللغه المحليه (ar او ar_JO على سبيل المثال)مربّعسلسلةالنصقائمة الإجراء فارغةلا يوجد إجراء مفعلينبغي أن يكون هناك 'حفظ' العمل في نهاية المطاف.إكساءفوقأعلى اليسارأعلى اليميننقلصحيحتفعيل فتح الملفغيرمحفوظة في قائمة العملبالتفاصيلإزاحة أفقيةعلامة مائيّةأبيضكتابة النص في موقف معينأوقفآليخلفيةمنطقيأسفلوسطاليومافتراضينقطة في البوصةخاطئملفاسم الملفحجم الملفمرشحعشريمجلدإسم المجلدارتفاعالساعةيسارمنتصفالدقيقةوضعالشهرإسم الشهرلالا شيءمسارالدقةيمينالجذرالثانيةالحجمتخطيناعممجلد فرعيوسمأعلىتحويلصحيحنوعأيام العطلة الأسبوعيةإسم أيام العطلة الأسبوعيةعرضمعالسنةنعمphatch-0.2.7/locale/ar/LC_MESSAGES/phatch.po0000644000000000000000000032063111346363116020173 0ustar rootroot00000000000000# Arabic translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-06-10 14:31+0000\n" "Last-Translator: MaXeR \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "أمثلة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "تشغيل %s من خلال سطر الاوامر بدون واجه رسوميه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "تشغيل %s كواجه رسوميه droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "تجاهل الأخطاء" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "تفاعلي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "اختر اللغه المحليه (ar او ar_JO على سبيل المثال)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "مع المجلدات الفرعيه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "لا تقم بالتأكد من الصوره بالبداية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "بالتفاصيل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "أوقف" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "تخطي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "الوصف" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "الملف" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "افتراضي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "اكتب فوق الصور الموجوده" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "صورة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "عنوان" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "وسم" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "قيمة منطقية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "سلسلة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "الخيار" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "اللون" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "دقّة العرض" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "اسم الملف" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "داخل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "عائم" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "كما" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "وضع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "إعاده التشكيل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "عدد صحيح" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "عدد صحيح+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "عدد صحيح+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "أفقي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "منزلق" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "خلفية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "يسار" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "يمين" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "فوق" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "تحت" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "الإتجاه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "إزاحة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "إزاحة عمودية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "إزاحة أفقية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "إكساء" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "قياس" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "علامة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "طريقة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "معالج مجموعة الصور" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "صحيح" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "خاطئ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "صحيح" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "خاطئ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "غيرمحفوظة في قائمة العمل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "قائمة العمل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "كل الملفّات" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "هنا وصف الإجراءات القائمة." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "ينبغي أن يكون هناك 'حفظ' العمل في نهاية المطاف." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "مع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "لا شيء لعمله" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "قائمة الإجراء فارغة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "لا يوجد إجراء مفعل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "التحقق من الصور" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "الصور غير موجودة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "لم تختر ملف أو مجلد" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "تفعيل فتح الملف" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "تنفيذ لائحة العمل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "اليوم" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "إسم المجلد" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "اسم الملف" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "حجم الملف" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "مجلد" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "الساعة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "الدقيقة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "الشهر" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "إسم الشهر" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "مسار" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "الجذر" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "الثانية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "مجلد فرعي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "نوع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "أيام العطلة الأسبوعية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "إسم أيام العطلة الأسبوعية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "السنة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "نقطة في البوصة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "ارتفاع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "وضع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "عرض" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "الحجم" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "يسار" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "وسط" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "يمين" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "أعلى" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "منتصف" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "أسفل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "ناعم" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "عادي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "لا شيء" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "الدقة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "عشري" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "منطقي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "آلي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "خطأ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "لا" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "نعم" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "ظل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "مرشح" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "الحدود" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "ظل الضبابية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "لون الخلفية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "لون الظل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "الخلفيّة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "التأثير" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "ضبابية، تحديد، نقش، تسوية، ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "المرَشِّح" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "تكرار" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "كمية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "تحويل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "مساحة رسم" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "صف أفقي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "صف عمودي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "لون إلى ألفا" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "علامة مائيّة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "أزل التشبع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "وضع صورة أصغر أو أكبر" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "تحد من نسبة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "نقل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "التوجيه أو تدوير 90 درجة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "إعادة تسمية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "ملف" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "تقاطع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "مدوّر" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "مربّع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "دائري" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "عبر أو تدوير الزوايا" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "أعلى اليسار" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "أعلى اليمين" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "أسفل اليسار" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "أسفل اليمين" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "أبرِز" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "وضعيه التحويل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "حول وضعيه الالوان لصوره" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "ملائمة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "تباين تلقائي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "قطع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "حفظ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "وسط" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "نسخ متوسط قيمة البكسل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "قناع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "تطبيق قناع الشفافية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "النص" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "كتابة النص في موقف معين" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "الخط" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "الحجم" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "تلوين" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "تلوين الصورة تدرج الرمادي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "أسود" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "أبيض" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "نسخ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "مُلصق" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "بتّات" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "رتبة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "نسخ القيمة rank'th بكسل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "تشميس" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "مساواة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "قصّر" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "تدوير" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "درجات الرمادي" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "الزّاوية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "بالتناوب مع عشوائي الزاوية" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "تمديد" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "خلفية التعتيم" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "عكس" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "قلب ألوان الصورة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "انعكاس" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "قطرات انعكاس" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "العمق" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "فجوة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "متداول" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "النسخ الأكثر شيوعا لقيمة بكسل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "الحد الأدنى" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "نسخ قيمة الحد الأدنى للبكسل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "لون التعبئة" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "منظوري" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "جز 2d او 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "تباين" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "تعديل من الرمادي إلى الأبيض و الأسود" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "الحد الأقصى" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "نسخ قيمة البكسل القصوى" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "إشباع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "تعديل سطوع من السود إلى البيض" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "أتريد الاستمرار؟" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "Colour" #~ msgstr "الألوان" #~ msgid "Filename" #~ msgstr "إسم الملف" #~ msgid "colours" #~ msgstr "الألوان" #~ msgid "Force Background Colour" #~ msgstr "قوة لون الخلفية" #~ msgid "Background Colour" #~ msgstr "لون الخلفية" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "تخفيض عدد بتات قناة اللون" #~ msgid "Copy the image file" #~ msgstr "نسخ ملف الصورة" #~ msgid "Scale down only" #~ msgstr "تقليص فقط" #~ msgid "Rename the image file" #~ msgstr "أعد تسمية ملف الصورة" #~ msgid "Save an image" #~ msgstr "أحفظ الصورة" #~ msgid "watermark" #~ msgstr "العلامة المائية" #~ msgid "By offset" #~ msgstr "يقابل بها" #~ msgid "march" #~ msgstr "مارس" #~ msgid "thursday" #~ msgstr "الخميس" #~ msgid "wednesday" #~ msgstr "الأربعاء" #~ msgid "monday" #~ msgstr "الإثنين" #~ msgid "tuesday" #~ msgstr "الثلاثاء" #~ msgid "september" #~ msgstr "سبتمبر" #~ msgid "saturday" #~ msgstr "السبت" #~ msgid "friday" #~ msgstr "الجمعة" #~ msgid "sunday" #~ msgstr "الأحد" #~ msgid "Do not create missing folders" #~ msgstr "لا تقم بإنشاء المجلدات الغير موجودة" #~ msgid "Fade all colours to gray" #~ msgstr "تبهيت كل الألوان إلى الرمادي" #~ msgid "border" #~ msgstr "حدود" #~ msgid "Height" #~ msgstr "الإرتفاع" #~ msgid "Width" #~ msgstr "العرض" #~ msgid "Shadow Colour" #~ msgstr "لون الظل" #~ msgid "april" #~ msgstr "نيسان - أبريل" #~ msgid "february" #~ msgstr "فبراير" #~ msgid "january" #~ msgstr "كانون الثاني - يناير" #~ msgid "may" #~ msgstr "مايو" #~ msgid "june" #~ msgstr "يونيو" #~ msgid "october" #~ msgstr "تشرين الأول - أكتوبر" #~ msgid "november" #~ msgstr "تشرين الثاني - نوفمبر" #~ msgid "december" #~ msgstr "كانون الأول - ديسمبر" #~ msgid "july" #~ msgstr "يوليو" #~ msgid "august" #~ msgstr "أغسطس" #~ msgid "new" #~ msgstr "جديد" phatch-0.2.7/locale/be/0000755000000000000000000000000011346363116014556 5ustar rootroot00000000000000phatch-0.2.7/locale/be/LC_MESSAGES/0000755000000000000000000000000011346363116016343 5ustar rootroot00000000000000phatch-0.2.7/locale/be/LC_MESSAGES/phatch.mo0000644000000000000000000000072711346363116020155 0ustar rootroot00000000000000$,89Project-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-02-16 12:35+0000 Last-Translator: FULL NAME Language-Team: Belarusian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) phatch-0.2.7/locale/be/LC_MESSAGES/phatch.po0000644000000000000000000030552611346363116020165 0ustar rootroot00000000000000# Belarusian translation for phatch # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-02-16 12:35+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Belarusian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" phatch-0.2.7/locale/bg/0000755000000000000000000000000011346363116014560 5ustar rootroot00000000000000phatch-0.2.7/locale/bg/LC_MESSAGES/0000755000000000000000000000000011346363116016345 5ustar rootroot00000000000000phatch-0.2.7/locale/bg/LC_MESSAGES/phatch.mo0000644000000000000000000010457111346363116020161 0ustar rootroot00000000000000 K\$$&$$ $$$%'%,% ;%I%P%X%_%z%%%%%%%%&&%&+&G& P&\&`& p&}&&& && &&' !'-'33'g'm' t' '' '%'!'('(!(0( 4( >((H(q((((&((((*(.)2A)t) {) )) )&)))")*%*,*?*S* g*r* y* **6*****++%+4+D+b+r+!+++++++ +",',F,d,,,(,-,$,#-)+-U-\-e-k- -B--,-./. H.V.([. ..$/7/-J/x/ /////////00%0+040 90C0K0R0V0f0v00000000000 1 1)1>;1.z1 111 111101+2D2.a2222 2 222'2 3'3/343&93`3f3 w3333 333333334 444"4'4*.4Y4w4.444"45"5?5N5W5_5f5{555555 55 56 6"'6*J68u6(6;67)7>@777 7&77178&8 +868=8[8v888888 888 8 9 991979?9Z9'r9 9999999 :%:+:F: M:[:k: ~: :: ::::':#: ;$+;P;U;\;e;D;>;<1 <><G<N<f<v<}<<<<H< =+%=3Q==A==='=>)>:>)J> t> >>>>>>>>2>? ? ?((?,Q? ~? ?????4??@A\@7@@@ @ @ @A AAA#A*A>AEALA eAqAyA}AAA AAAAAAAA AA AAAB BBBB$B-B4B;B@B FBPBXB[BlBqBBBB BBBBBBBC CC C%C)C -C7CM^M HN-SNNeNoNt`O OOO$PF'PinP P PQPBQ`QiQ~Q3Q Q Q QRR~)RBR RR@ S/NS ~S!SS3S'S#T1?TqTxTTfT.T,U(=UUfUQUIVFXVOVVqWrWWuXbXXYY:'YbYsY.ZGCZIZ.Z[ [*["[[O\(&]lO] ],]7],^C^ Z^g^v^0^5^;^0_ G_T_e_n__ __)_%_A`+J` v` `` `#``/` aD+a paa-avaKOb*bb.b& c3cJc5Mc_c8c<dXYd"dddde)-eWe[heHe ff!fe(f f+ff ff7fI0gzg g g.ggggg h h!h 0h;h=PhLhLh(i8iBiJ%jpjDj*jjkk=&k7dkkk6k-k#l6lQKlAlllGlHEmSm<mOn3on'nhn'4o\o"koKo)oUp Zpgpzpp;p=p=qZqsq6qq2q- r3;ror*~r*r)r3r2sGs3\s=sWs&t 7tDt+WtDt>t/u:7u ru4}uuu"u1v 3v>v Qv*\v"v2v&vIwPNw/wEw x"x1x6Lx|xyyHyyy'y"'z Jz?Wz z z8zz.|{E{Q{@C|W|| |[|X}m}/}:} }}~~3~ B~*O~5z~ ~~%?)e^] i }0G€A gLm"g !2G\cv *Ƀ >Q dqx ,EԄ  %2;R m$z  ̅݅$+ I V c n y-ֆ)݆*<27o- Շ )>/U ҈ #@& gtU95E6+PZTWA'|RK~HC^qZY+9\F;bL mFw=bGI@U: raH -o/yB&RIj0ESN_7*t[Ne VO,~$lQ&]^eJL5)X*<s} ; MDn{j2$v3\mzd7 _,CPXw% 1ukJ%=.8l8pq1?3]:<)nGg[o#M(|StcD0i2 `!yW .V?@>sfv4dixfh"-}"z6h>p'gTO(`4rk{xBa#KQ !Y/cuA"%s" is not a valid path.%(amount)d images done in %(duration)s%d issues were logged%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List Droplet...&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&Image Inspector Droplet...&License&New Ctrl-N&OK&Open... Ctrl-O&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&ViewA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAllow Geek action and unsafe expressionsAlways save on desktopAmountAngleApply a transparency maskApply with tiling, scaling and opacityAprilArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAuto ContrastBackgroundBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBottom Left CornerBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse FolderC&ontinueC&reditsCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCenterCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletCodeColorColorizeColorize grayscale imageConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCreditsCrop or expand the canvas without scalingCustomDecemberDepthDescribe here the action list.DescriptionDisable Safe Mode in the Tools menu if you trust this action list.Disable actionDisplays information about this application.Do not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEasily batch process images and edit metadataEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFalseFebruaryFileFile NameFile(s)FilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsFridayGPS Data (gpx)GapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHorizontalHorizontal OffsetIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagesInInclude all subfoldersInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJanuaryJulyJuneKeep existing images (don't overwrite)LabelLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMayMedianMessageMethodMiddleMinimumModeMondayMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNever run action lists from untrusted sources.No action list provided.No files or folder selected.No save action required at the endNormalNothing has been logged yet.Nothing to do.NovemberOctoberOffsetOne image done in %sOne issue was loggedOpacityOpenOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesPaste this command in a launcherPathPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Photo Batch ProcessorPlease (re)install it.Please check if this action list doesn't contain harmful code.Please upgrade your wxPython.PositionPosterizeProcess with recent Phatch action listQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRepeatReport a bug on launchpad.ResampleResample ImageResolutionRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save last changes toSaves an action listSaves an action list asScaleSee "%s" for more details.SelectSelect ObjectSelect RotationSelect action listSelectionSeptemberShadowShadow BlurShear 2d or 3dShow &Log... Ctrl-LShow LogShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSliderSolarizeSorry, no valid files foundSorry, the action list seems incompatible with %(name)s %(version)s.Sorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:SundayTextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This action list is unsafe:This requires also that the python-nautilus package is installed.ThursdayTileTools to handle the current action listTop Left CornerTop Right CornerTop Shear AngleTranslate Phatch in your native language.TranslationTransposeTresholdTrueTuesdayTypesUnable to open fileUnsaved Action ListUpUse the Image Inspector to list all the variables.VerboseVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite text at a given positionYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsantialiasapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscompressioncontourdaydefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfolderfoldernameframeheighthourignoreimagesintegerleftmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundpathplease install pyexiv2positive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagtoptransformtruetypeweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-03-09 14:15+0000 Last-Translator: stani Language-Team: Bulgarian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:41+0000 X-Generator: Launchpad (build Unknown) X-Poedit-Country: BULGARIA X-Poedit-Language: Bulgarian "%s" не е валиден път.Завършени са %(amount)d изображения за %(duration)s%d проблема бяха регистрирани%s Скорошни&ПрекъсванеОтносно Phatch... Ctrl-Shift-AДроплет Списък с действия...&ДобавянеДобавяне... Ctrl-+Потърсете помощПакетна обработка&Отказ&ЗатварянеСвиване Ctrl-Shift-EПродължаванеИзключване Ctrl-0&Документация... Ctrl-MНадолу Ctrl-DownДроплет Ctrl-D&РедактиранеВключване Ctrl-1&Изпълняване... Ctrl-ReturnРазгъване Ctrl-E&Форум... Ctrl-F&ПомощДроплет Инспектор на изображения...&Лиценз&Нов Ctrl-N&Добре&Отваряне... Ctrl-OИзход Ctrl-QПоследен Дроплет...Премахване Ctrl--Съобщение за грешка... Ctrl-B&Запазване Ctrl-SПоказване на описанието Ctrl-HПоказване на шаблон за приставка с действия&ИнструментиПревеждане на Phatch... Ctrl-T&Нагоре Ctrl-Up&ИзгледHTML ръководство ще се отвори във вашия уеб четец.ОтносноДействиеСписък на операциитеСписък с действияДобавянеДобавяне на действиеНастройване на яркостта от черно към бялоНастройване от сиво до черно и бялоНастройване на насищането от степени на сивото до високоХоризонтално ПодравняванеВертикално ПодравняванеВсичкиВсички файловеВсички файловеПозволяване на хакерски изпълнения и опасни изразиВинаги да се запазва на работния плотКоличествоЪгълПрилагане на маска на прозрачностПрилагане с изглед на плочки, мащабиране и плътностаприлХудожествено оформлениеКатоАсоцииране на изображенията със Списък с действия в %s...Асоцииране на изображенията с Инспектор на изображения в %s...Асоцииране на изображенията с последния Списък с действия в %s...августАвтоконтрастФонПрозрачност на фонаМасова обработка на изображения с PhatchИзвършва пакетна обработка с последния списък с действияБитовеЧерноЗамъгляване, Изостряне, Релеф, Заглаждане, ...Булева стойностКантДолу в лявоДолу в дясноФактор на долно деформиранеЯркостИзборОтваряне на папкаПродъл&жениеЗаслугиДействието %(a)s не може да се приложи върху изображението '%(i)s' в папка:Действието не може да се приложи %(a)s:ПлатноцентриранеПърво да се проверят изображениятаПроверявам изображениятаИзборИзберете файл(ове)Изберете папкаИзбор на списък с действия...Изберете изображениеИзберете папкаИзберете папка за дроплетаКодЦвятОцветяванеДобавяне на цветове към изображение в степени на сивотоЗапазване на пропорциятаКонтрастРежим на конвертиранеКонвертиране на цветовия режим на изображениеКопиране на максималната стойност на пикселКопиране на средната стойност на пикселКопира минималната стойност на пикселКопиране на подредената стойност на пикселКопиранеКопиране на списъка с действия като команда в системния буферКопиране на Инспектора на изображения като команда в системния буферКопиране на последния списък с действия като команда в системния буферЗаслугиИзрязване или разширяване на платното без мащабиранеОт потребителядекемвриДълбочинаОпиши тук списъкът с операциитеОписаниеАко вярвате на този списък с действия, изключете Безопасен режим от менюто Инструменти.Изключване на действиетоПоказва информация за това приложение.Да не се проверяват първо изображениятаЖелаете ли да продължите?ДокументацияНадолуСвиване и изрязване на изображението с фиксирано съотношение на странитеПлъзгане и пусканеПуснете файлове и/или папки върху този дроплет за да ги обработите. Дясно или двойно цъкане на мишката за да се върнете към нормалния изглед.Хвърляне на разсеяна сянка под изображениеХвърляне на отражениеЛесно групово редактиране на изображения и метаинформацияЕфектВключване на действиетоВъведете адрес на изображениеИзравняванеИзравняванеГрешкаПримериИзпълняванеИзпълняване на действиетоИзпълнява списъка с действияИзпълнявам списъка с операциитеРазширяванегрешнофевруариФайлИме на файлаФайл(ове)ФилтърНаместванеХоризонтално обръщанеВертикално обръщанеОбръщане или завъртане на 90 градусаЧисло с плаваща запетаяПапкаШрифтШрифтовепетъкинформация от GPS (gpx)МеждинаКъм документацията на PhatchКъм форума на PhatchОтиване на домашната страница на Phatch.Степени на сивотоХоризонталноХоризонтално отместванеАко рестартирате t %s, действието ще се появи в контекстното меню.Ако искате да изпратите приставка за Phatch,Игнориране на грешкитеИзображениеИнспектор на изображенияПът до изображениетоИзображенияВВключване на всички подпапкиОзначи шрифтовете (само за инсталационни скриптове)Инспектиране на EXIF & IPTC етикетиИнспектиране на EXIF & IPTC етикетиПроверка на метаданни (изисква приставка exif & iptc)Инспектиране с PhatchЦяло числоцяло число+цяло число+0ИнтерактивноНевалидни изображенияОбръщанеОбръщане на всички стойности на пиксела над прагаОбръщане на цветовете на изображениетоянуариюлиюниЗапазване на съществуващите изображения (без презапис)ЕтикетЛяв ъгъл на деформиранеБиблиотекиЛицензДневникПреглеждане на exif и iptc етикетиПрави изображението по-малко или голямомартПечатМаскаУвеличаване на контрастаМаксимуммайМедианаСъобщениеМетодпо средатаМинимумРежимпонеделникMonochrome (1-битови пиксели, черно-бял)Преместване на избраното действие надолуПреместване на избраното действие нагореНикога да не се изпълняват списъци с действия от недоверени източнициНе е наличен списък с действия.Няма избрани файлове или директорияНа края не се изисква действие запазванеНормалнаВсе още нищо не е записано в дневника.Няма зададени операцииноемвриоктомвриОтместванеЗавършено е едно изображение за %sЕдин проблем беше регистриранПлътностОтварянеОтваряне на списък с действияОтваря списък с действияНастройкиОриентацияПрезаписване на съществуващите изображенияПоставяне на тази команда в стартерПътПерспективаPhatch не може да се справи с %d файл(овете):Phatch не може да инсталира действието в %s:Phatch не успя да инсталира исканото допълнение.Дроплетът беше успешно създаден.Phatch направи опит да се премахне от Windows ExplorerПакетна обработка на снимкиМоля инсталирайте го.Моля, проверете дали това действие не съдържа опасен код.Моля надградете wxPython.ПозицияРедукция на ниватаОбработка със скорошните действия на PhatchИзход от приложението.RGBA (4x8 битови пиксели, RGB с маска на прозрачност)РадиусКласиранеОтражениеПремахванеПремахване на асоциацията от %s...Премахване на избраното действиеПремахване на избраното действиеПреименуванеПовтарянеСъобщаване за грешки на launchpad.ДискретизиранеОбработка на изображениетоРазделителна способностФактор на дясно деформиранеВъртенеЗавъртане на 180 градусаЗавъртане на 270 градусаЗавъртане на 90 градусаЗавъртане с произволен ъгълЗакръглянеЗакръглянеЗаоблени или пресечени ъглиИзпълняване на %s като ГПИ дроплетИзпълняване на %s като конзолна програма без ГПИНасищанесъботаЗапазванеЗапазване като... Ctrl-Shift-SЗапзване на списъка с действия като...Запазване на последните промени вЗапазва списък с действияЗапазва списъка с действия катоМащабВиж "%s" за повече подробностиИзбиранеИзбор на обектИзбор на завъртанеИзберете списък с действияИзборсептемвриСянкаЗамъгляване на сянкатаДеформиранe 2d или 3dПоказване на дневника... Ctrl-LПоказване на дневникПоказва всички параметри на действията.Показване на описание на списъка с действияПоказва файла на дневникаПоказва само етикетите на действията.РазмерПлъзгачПреосветяванеНе са открити валидни файловеСъжалявам, списъкът с действия изглежда е несъвместим с %(name)s %(version)s.Съжалявам, за този списък с действия трябва да инсталирате действието %s.ИзточникПосочете системния език (напр. en или en_GB)СпонсориКвадратНов списък с действияСпиране при грешкиСтрингПроучете приставките с действия в:неделяТекстСписъкът с операциите е празенДроплет командата за инспектора на изображения беше копирана в системния буфер.Няма активирани операцииНа края трябва да има действие 'Запис'.Следните добавки бяха успешно инсталирани: Този списък с действия е несигурен:Това изсиква да е инсталиран и пакетът python-nautilus.четвъртъкПлочкиИнструменти за работа с текущия списък с действияГоре в лявоГоре в дясноГорен ъгъл на деформиранеПреведете Phatch на родния си език.ПреводПреместванеПрагположителновторникТиповеНе мога да отворя файланезапазен списък на операцииНагореИзползвайте Инспектора на изображения за да видите всички променливи.Подробна информацияВертикално отместванеПреглед на кодаВъв вид на дроплет за да се плъзгат и пускат файловеПредупреждение: Пакетът не е инсталиран python-wxversion. Воден знаксрядаКакво искате да направите?БялоВъвеждане на нова приставка с действияВъвеждане на текст на избрано мястоМоже да използвате само файлове със следните разширенияМоже да го поставите като текст в свойствата на нов стартер.За да използвате тази функция трябва да инсталирате Win32 разширенията за Python.За да напишете приставка за Phatch, трябва само да знаете PIL,отказдействиязаглажданеприложениефонбикубичендвулинеензамъгляванебулева величинадоленразширете търсенето сицентраленизборцъкнете '+' за да добавите действиякомпресияконтурденпо подразбиранедетайлdpiподобряване на ръбоветедопълнително подобряване на ръбоветерелефГрешнофайлИме на файларазмер на файлфилтъроткриване на ръбовепапкаиме на папкарамкависочиначасигнориранеизображенияцяло числолявмета-информациясреденминутарежиммесецмесецнай-близък съседнене са намерени %s етикетипътмоля инсталирайте pyexiv2Положително цяло числоположително,не-нулево цяло числоpyexiv2 трябва да бъде инсталиранразделителна способностдесеносновна папкасекундаизострянеразмерпропусканеомекотяванедопълнително замъгляваненизподпапкаетикетгорентрансформиранеположителнотипден от седмицатаденширинасГрешка, свързана с версията на wxPythonгодинадаphatch-0.2.7/locale/bg/LC_MESSAGES/phatch.po0000644000000000000000000036625511346363116020175 0ustar rootroot00000000000000# Bulgarian translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-03-09 14:15+0000\n" "Last-Translator: stani \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: BULGARIA\n" "X-Poedit-Language: Bulgarian\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Инспектиране с Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Инспектиране на EXIF & IPTC етикети" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Примери" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Изпълняване на %s като конзолна програма без ГПИ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Изпълняване на %s като ГПИ дроплет" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Винаги да се запазва на работния плот" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Игнориране на грешките" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Означи шрифтовете (само за инсталационни скриптове)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Интерактивно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Запазване на съществуващите изображения (без презапис)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Посочете системния език (напр. en или en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Проверка на метаданни (изисква приставка exif & iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "На края не се изисква действие запазване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Включване на всички подпапки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Да не се проверяват първо изображенията" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "Позволяване на хакерски изпълнения и опасни изрази" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Подробна информация" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "Може да го поставите като текст в свойствата на нов стартер." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" "Съжалявам, за този списък с действия трябва да инсталирате действието %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "Дроплет командата за инспектора на изображения беше копирана в системния " "буфер." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Все още нищо не е записано в дневника." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Дневник" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "отказ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "пропускане" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "игнориране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "цъкнете '+' за да добавите действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Отваряне" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Отваряне на списък с действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Изпълняване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Изпълняване на действието" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Добавяне" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Добавяне на действие" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Премахване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Премахване на избраното действие" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Нагоре" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Преместване на избраното действие нагоре" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Надолу" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Преместване на избраното действие надолу" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Инспектор на изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Преглеждане на exif и iptc етикети" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Описание" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Показване на описание на списъка с действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Избор на списък с действия..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Запзване на списъка с действия като..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "приложение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "рамка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "HTML ръководство ще се отвори във вашия уеб четец." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Проучете приставките с действия в:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Ако искате да изпратите приставка за Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Плъзгане и пускане" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Пуснете файлове и/или папки върху този дроплет\n" "за да ги обработите.\n" "Дясно или двойно цъкане на мишката за да се\n" "върнете към нормалния изглед." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Запазване на последните промени в" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Изберете папка за дроплета" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Дроплетът беше успешно създаден." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Изберете списък с действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Изберете папка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Изберете файл(ове)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Изберете папка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Избор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Файл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Папка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "по подразбиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Преглед на кода" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "разширете търсенето си" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Път" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Нов\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Нов списък с действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Отваряне...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Отваря списък с действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Запазване\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Запазва списък с действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Запазване като...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Запазва списъка с действия като" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Копиране на списъка с действия като команда в системния буфер" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Поставяне на тази команда в стартер" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" "Копиране на последния списък с действия като команда в системния буфер" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Копиране на Инспектора на изображения като команда в системния буфер" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "Изход\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Изход от приложението." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "Добавяне...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "Премахване\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Премахване на избраното действие" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "Включване\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Включване на действието" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "Изключване\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Изключване на действието" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Нагоре\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "Надолу\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Редактиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "Дроплет\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Във вид на дроплет за да се плъзгат и пускат файлове" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "Показване на описанието\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Инструменти за работа с текущия списък с действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "Разгъване\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Показва всички параметри на действията." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "Свиване\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Показва само етикетите на действията." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Изглед" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Изпълняване...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Изпълнява списъка с действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Показване на дневника...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Показва файла на дневника" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Инструменти" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Отиване на домашната страница на Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Документация...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Към документацията на Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Форум...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Към форума на Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "Превеждане на Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Преведете Phatch на родния си език." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "Съобщение за грешка...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Съобщаване за грешки на launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "Относно Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Показва информация за това приложение." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Помощ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Показване на дневник" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "За да напишете приставка за Phatch, трябва само да знаете PIL," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "Показване на шаблон за приставка с действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Код" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "Потърсете помощ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&Добре" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Въвеждане на нова приставка с действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Прекъсване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Съобщение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "Продължаване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Настройки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Типове" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Отваряне на папка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Източник" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Файл(ове)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Спиране при грешки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Първо да се проверят изображенията" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Презаписване на съществуващите изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Отказ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "Пакетна обработка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Изображение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Етикет" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "етикет" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Булева стойност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Стринг" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Избор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Цвят" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Разделителна способност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Име на файла" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "В" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Число с плаваща запетая" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Като" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Режим" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Дискретизиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "бикубичен" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Цяло число" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "цяло число+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "цяло число+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Хоризонтално" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Плъзгач" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "pyexiv2 трябва да бъде инсталиран" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "януари" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "февруари" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "март" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "април" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "май" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "юни" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "юли" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "август" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "септември" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "октомври" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "ноември" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "декември" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "понеделник" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "вторник" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "сряда" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "четвъртък" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "петък" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "събота" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "неделя" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "фон" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Всички" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Избор на обект" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "Избор на завъртане" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "центриране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "От потребителя" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "по средата" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Ориентация" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Позиция" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Отместване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Хоризонтално отместване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Вертикално отместване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Плочки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Мащаб" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Печат" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Плътност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Метод" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "Лесно групово редактиране на изображения и метаинформация" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Пакетна обработка на снимки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "положително" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "грешно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "положително" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "Грешно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "незапазен списък на операции" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Списък на операциите" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Всички файлове" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Опиши тук списъкът с операциите" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "На края трябва да има действие 'Запис'." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "с" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s Скорошни" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Асоцииране на изображенията със Списък с действия в %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Асоцииране на изображенията с последния Списък с действия в %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Асоцииране на изображенията с Инспектор на изображения в %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Премахване на асоциацията от %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "Дроплет Списък с действия..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "Последен Дроплет..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "Дроплет Инспектор на изображения..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Извършва пакетна обработка с последния списък с действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Инспектиране на EXIF & IPTC етикети" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "Виж \"%s\" за повече подробности" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" "Съжалявам, списъкът с действия изглежда е несъвместим с %(name)s %(version)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "Този списък с действия е несигурен:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" "Ако вярвате на този списък с действия, изключете Безопасен режим от менюто " "Инструменти." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" "Никога да не се изпълняват списъци с действия от недоверени източници" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "Моля, проверете дали това действие не съдържа опасен код." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "\"%s\" не е валиден път." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Действие" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Няма зададени операции" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Списъкът с операциите е празен" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Няма активирани операции" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Проверявам изображенията" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch не може да се справи с %d файл(овете):" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Невалидни изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Не са открити валидни файлове" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "Продъл&жение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Няма избрани файлове или директория" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Не мога да отворя файла" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Действието не може да се приложи %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" "Действието %(a)s не може да се приложи върху изображението '%(i)s' в папка:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Изпълнявам списъка с операциите" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Завършено е едно изображение за %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "Завършени са %(amount)d изображения за %(duration)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Един проблем беше регистриран" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "%d проблема бяха регистрирани" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Избиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "ден" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "име на папка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "Име на файла" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "размер на файл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "папка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "час" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "минута" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "месец" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "месец" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "път" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "основна папка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "секунда" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "подпапка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "тип" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "ден от седмицата" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "ден" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "година" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "компресия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "височина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "режим" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "ширина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "размер" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" "Използвайте Инспектора на изображения за да видите всички променливи." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Може да използвате само файлове със следните разширения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "ляв" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "централен" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "десен" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "горен" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "среден" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "долен" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monochrome (1-битови пиксели, черно-бял)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8 битови пиксели, RGB с маска на прозрачност)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "замъгляване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "контур" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "детайл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "подобряване на ръбовете" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "допълнително подобряване на ръбовете" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "релеф" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "откриване на ръбове" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "омекотяване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "допълнително замъгляване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "изостряне" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "най-близък съсед" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "двулинеен" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "заглаждане" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Завъртане на 90 градуса" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Завъртане на 180 градуса" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Завъртане на 270 градуса" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Хоризонтално обръщане" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Вертикално обръщане" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Нормална" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "низ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "цяло число" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "Положително цяло число" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "положително,не-нулево цяло число" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "разделителна способност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "булева величина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "избор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Грешка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Предупреждение: Пакетът не е инсталиран python-wxversion.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Моля инсталирайте го." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Моля надградете wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Грешка, свързана с версията на wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "Заслуги" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Лиценз" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Затваряне" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Относно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Заслуги" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Документация" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Превод" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Художествено оформление" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Библиотеки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Спонсори" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Лиценз" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Всички файлове" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Изберете изображение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Въведете адрес на изображение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "моля инсталирайте pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "не са намерени %s етикети" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Добавяне" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "не" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "да" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Избор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Шрифтове" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Сянка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "филтър" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Хвърляне на разсеяна сянка под изображение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Кант" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Замъгляване на сянката" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Фон" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Ефект" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Замъгляване, Изостряне, Релеф, Заглаждане, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Филтър" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Повтаряне" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Количество" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "трансформиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Платно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Изрязване или разширяване на платното без мащабиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Хоризонтално Подравняване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Вертикално Подравняване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Воден знак" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Прилагане с изглед на плочки, мащабиране и плътност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Прави изображението по-малко или голямо" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Запазване на пропорцията" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Обработка на изображението" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Преместване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Обръщане или завъртане на 90 градуса" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Преименуване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "файл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Закръгляне" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Квадрат" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Закръгляне" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Заоблени или пресечени ъгли" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Радиус" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Горе в ляво" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Горе в дясно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Долу в ляво" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Долу в дясно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Режим на конвертиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Конвертиране на цветовия режим на изображение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Наместване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" "Свиване и изрязване на изображението с фиксирано съотношение на страните" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Автоконтраст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Увеличаване на контраста" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Запазване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Медиана" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Копиране на средната стойност на пиксел" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "мета-информация" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Маска" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Прилагане на маска на прозрачност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Текст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Въвеждане на текст на избрано място" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Шрифт" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Размер" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Оцветяване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Добавяне на цветове към изображение в степени на сивото" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Черно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Бяло" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Копиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Редукция на нивата" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Битове" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Класиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Копиране на подредената стойност на пиксел" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Преосветяване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Обръщане на всички стойности на пиксела над прага" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Праг" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Изравняване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Изравняване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Въртене" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Степени на сивото" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Ъгъл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Завъртане с произволен ъгъл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Разширяване" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Прозрачност на фона" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Обръщане" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Обръщане на цветовете на изображението" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "информация от GPS (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Отражение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Хвърляне на отражение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Дълбочина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Междина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Минимум" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Копира минималната стойност на пиксел" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Перспектива" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Деформиранe 2d или 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Ляв ъгъл на деформиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Горен ъгъл на деформиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Фактор на долно деформиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Фактор на дясно деформиране" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Контраст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Настройване от сиво до черно и бяло" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Максимум" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Копиране на максималната стойност на пиксел" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Насищане" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Настройване на насищането от степени на сивото до високо" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Яркост" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Настройване на яркостта от черно към бяло" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Следните добавки бяха успешно инсталирани:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch не успя да инсталира исканото допълнение." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch направи опит да се премахне от Windows Explorer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "За да използвате тази функция трябва да инсталирате Win32 разширенията за " "Python." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Списък с действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Не е наличен списък с действия." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Път до изображението" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Желаете ли да продължите?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Какво искате да направите?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Ако рестартирате t %s, действието ще се появи в контекстното меню." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch не може да инсталира действието в %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Това изсиква да е инсталиран и пакетът python-nautilus." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Масова обработка на изображения с Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Обработка със скорошните действия на Phatch" #~ msgid "new" #~ msgstr "нов" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-битови пиксели, цветен видео формат)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8 битови пиксели,истински цвят)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8-битови пиксели, разпределено с помощта на цветна палитра)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-битови пиксели, цветово разделяне)" #~ msgid "doesn't exist" #~ msgstr "не съществува" #~ msgid "is zero, but should be non-zero." #~ msgstr "е нула,а трябва да е не-нулево." #~ msgid "is negative, but should be positive" #~ msgstr "е негативен,а трябва да е положителен" #~ msgid "Filename" #~ msgstr "Име на файл" #~ msgid "colours" #~ msgstr "цветове" #~ msgid "border" #~ msgstr "кант" #~ msgid "Height" #~ msgstr "Височина" #~ msgid "Width" #~ msgstr "Ширина" #~ msgid "Shadow Colour" #~ msgstr "Цвят на Сянката" #~ msgid "Background Colour" #~ msgstr "Фонов Цвят" #~ msgid "Save an image" #~ msgstr "Запазване на изображение" #~ msgid "january" #~ msgstr "януари" #~ msgid "february" #~ msgstr "февруари" #~ msgid "saturday" #~ msgstr "събота" #~ msgid "friday" #~ msgstr "петък" #~ msgid "wednesday" #~ msgstr "сряда" #~ msgid "sunday" #~ msgstr "неделя" #~ msgid "thursday" #~ msgstr "четвъртък" #~ msgid "tuesday" #~ msgstr "вторник" #~ msgid "Do not create missing folders" #~ msgstr "Да не се създават липсващи папки" #~ msgid "Colour" #~ msgstr "Цвят" #~ msgid "watermark" #~ msgstr "воден знак" #~ msgid "april" #~ msgstr "април" #~ msgid "march" #~ msgstr "март" #~ msgid "may" #~ msgstr "май" #~ msgid "june" #~ msgstr "юни" #~ msgid "july" #~ msgstr "юли" #~ msgid "august" #~ msgstr "август" #~ msgid "september" #~ msgstr "септември" #~ msgid "october" #~ msgstr "октомври" #~ msgid "december" #~ msgstr "декември" #~ msgid "monday" #~ msgstr "понеделник" #~ msgid "november" #~ msgstr "ноември" #~ msgid "the file extension" #~ msgstr "файловото разширение" #~ msgid "does not exist." #~ msgstr "не съществува" #~ msgid "Save metadata" #~ msgstr "Запазване на мета-данните" #~ msgid "&Recent" #~ msgstr "Скорошни" #~ msgid "&Preview" #~ msgstr "&Преглед" #~ msgid "Phatch Version" #~ msgstr "Версия на Phatch" #~ msgid "&File" #~ msgstr "&Файл" #~ msgid "&Export..." #~ msgstr "&Изнасяне..." #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Запазване на метаданни (изисква приставка exif & iptc)" #~ msgid "Fade all colours to gray" #~ msgstr "Обезцветяване" #~ msgid "Crop or add border to all sides" #~ msgstr "Отрязване или добавяне на граница от всички страни" #~ msgid "Force Background Colour" #~ msgstr "Принудително задаване на фонов цвят" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Намаляване на битовете на цветен канал" #~ msgid "Copy the image file" #~ msgstr "Копиране на изображението" #~ msgid "Put colour under transparent image" #~ msgstr "Поставяне на цвят под прозрачно изображение" #~ msgid "Rename the image file" #~ msgstr "Преименуване на изображението" #~ msgid "Scale down only" #~ msgstr "Само свиване" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Степени на сивото (8-битови пиксели, черно-бял)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-битови целочислени пиксели)" #~ msgid "invalid syntax" #~ msgstr "невалиден синтаксис" #~ msgid "the integer value" #~ msgstr "стойността на цялото число" #~ msgid "is invalid." #~ msgstr "е невалидно." #~ msgid "a filename with a valid extension was expected." #~ msgstr "очакваше се име на файл с валидно разширение." #~ msgid "the filename" #~ msgstr "файлът" #~ msgid "All selected image types" #~ msgstr "Всички избрани типове изображения" #~ msgid "All default image types" #~ msgstr "Всички подразбиращи се типове изображения" #~ msgid "See Tools>Show Log for more details." #~ msgstr "За допълнителна информация вижте Инструменти>Показване на дневника" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Този списък с действия е направен с по-стара версия на %(name)s.\n" #~ "\n" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "" #~ "Командата на дроплета за този списък с действия беше копиран в системния " #~ "буфер." #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "тъй като Phatch автоматично ще създаде потребителския интерфейс." #~ msgid "please email" #~ msgstr "моля изпратете електронно писмо на" #~ msgid "Phatch could not create the droplet:" #~ msgstr "Този дроплет не може да бъде създаден:" #~ msgid "Only an image file is allowed." #~ msgstr "Допустим е само файл с изображение." #~ msgid "drag & drop any image here" #~ msgstr "плъзнете и пуснете изображение тук" #~ msgid "Open image file" #~ msgstr "Отваряне на изображение" #~ msgid "Open image url" #~ msgstr "Отваряне на адрес на изображение" #~ msgid "Copy cell text" #~ msgstr "Копиране на текста в клетката" #~ msgid "&Skip To Next Image" #~ msgstr "Пропускане към Следващо изображение" #~ msgid "&Ignore Error" #~ msgstr "Игнориране на грешката" #~ msgid "Create missing folders" #~ msgstr "Създаване на липсващите папки" #~ msgid "&Default Types" #~ msgstr "Типове по подразбиране" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "Инспектор на изображения (exif)\tCtrl-Space" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "Команден интерпретатор на Python...\tCtrl-P" #~ msgid "Open a python shell for introspection" #~ msgstr "Отваряне на команден интерпретатор на python за самоанализ" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Уеб сайт...\tCtrl-I" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "Създаване на приставка с действия...\tCtrl-W" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Създаване на нова приставка с действия за Phatch с PIL." #~ msgid "Resample Shadow" #~ msgstr "Дискретизиране на сянка" phatch-0.2.7/locale/bs/0000755000000000000000000000000011346363116014574 5ustar rootroot00000000000000phatch-0.2.7/locale/bs/LC_MESSAGES/0000755000000000000000000000000011346363116016361 5ustar rootroot00000000000000phatch-0.2.7/locale/bs/LC_MESSAGES/phatch.mo0000644000000000000000000000126411346363116020170 0ustar rootroot00000000000000T  ~BooleanDescriptionExamplesImageLabelStringProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-02-16 15:07+0000 Last-Translator: kenan3008 Language-Team: Bosnian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) Logička vrijednostOpisPrimjeriSlikaOznakaStringphatch-0.2.7/locale/bs/LC_MESSAGES/phatch.po0000644000000000000000000030557211346363116020204 0ustar rootroot00000000000000# Bosnian translation for phatch # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-02-16 15:07+0000\n" "Last-Translator: kenan3008 \n" "Language-Team: Bosnian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Primjeri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Opis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Slika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Oznaka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Logička vrijednost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "String" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" phatch-0.2.7/locale/ca/0000755000000000000000000000000011346363116014553 5ustar rootroot00000000000000phatch-0.2.7/locale/ca/LC_MESSAGES/0000755000000000000000000000000011346363116016340 5ustar rootroot00000000000000phatch-0.2.7/locale/ca/LC_MESSAGES/phatch.mo0000644000000000000000000006120311346363116020146 0ustar rootroot00000000000000 - """""# # #'#/#6#Q#b#r#########$$ '$3$7$ G$T$g$v$ $$ $$$ $%3 %>%D% K% X%d% h%%v%!%(%%%& & &&&&,&F&&f&&&&*&.&2&+' 2' @'K' ^'&''''"'''''( $(/( 6( D(N(6W((((((((()()!?)a)f)o)))) )")))*":*]*|*(*-*$**)+/+5+<+E+K+ j+v+,+++ ++(+ !,-,$,,, ,,--5-;-D-L-_-w-------------.. ...8.O. j. t..>... . // #///6/9/P/i/.//// / ///'0.0L0T0Y0^0d0 u0000 000000001 1111*%1P1n111111112" 2.262;2O2e2 m2y2 22 2"2*283(L3;u373334 44&>4e41{444 44445 5'5.5I5R5 a5 o5z55 5 5 555555'6 66A6J6O6h6666666 6 66 677'+7#S7 w7$7777>771878@8G8_8o8v8888H89+93J9A~999'99::)': Q: ]:g:p:u:}::::2::: :(;,.; [; e;o;;;;4;?;A9<7{<<< < < <<<<<==="=)=B=J=N=V=^=e= i=v======= === ========> >>> >&>.>1>B>G>^>o> >>>>>>>> >> >>> >>>> ? ???/?4?8? @@"A$A-A @A NA XAdAkAAAAAAAABB0BBBIB iB uBBB BBBB BB+CACHCcC rC2~CCCCCCC*C (D0IDzDDDDD DD%DE%"EHENE_E/cE1E7EEFFF).F2XFFFF'FFFFFG G(G/G DG NGHXG!GGGGGHH',HTHfHHH HHHHHH( I 3I TI uI$I!II5I5J(OJxJ-JJJJ J"J JK+KAKaK qKK2KKK$hLLLLL L#LLMMM'MCM aMkMpMwM ~MMMMMMMMMM NN!N?NWNnN NN:N3NO&O-OAOUO]ObOO#O6OOPPP &P1P DP<NP"PPPPPP P PPQQ;QAQGQ"PQsQzQQQQQQQ)QQQ"R(8RaRhR RRR R0RRRR S%S -S!9S&[SS S'S7S@S.4TPcTETTU!.UPU/lUU=UUU U V V)VIV iVwVV VVV VVVVVWW +W 8W!CW&eWAW WWWW%X-XGX"aXX XX X XXXXX* Y,4YaY*~YYY YJYZ,!Z NZ\Z"eZZZ!ZZZZIZ;[-Y[A[I[\\0!\R\n\\*\ \ \\\\\\]3]>9]x]]]:]/] "^0^9^K^Q^#n^6^D^\_Gk_ __ _ ______```#`,`H`P`T` \`j`q`u````` `````` ``a aaaa#a,a0a6a;a?a FaRaUapaua aa aaaaaaaa ab bbb #b.b3b 9b DbRbZb^b{bbqSX!jPp;A+g6VM+%(I 'Ue<gz1G)nB?=|C 3:0bKjm1d7HW4oex@ {UN(z9HL"0M:>Q!C7qf/#WP2GZI bD2cFp i 6^A~Z_TsrJKw |w#tN\u8{ YElo; _5x``<R-}%n\$@8 r*Yl&-~yRkB $kVca.4ST'i[fhDO&dh*s5vL]3?m)O9JQ>y,^=XE[a.}vF]/," tu&Abort&About Phatch... Ctrl-Shift-A&Action List Droplet...&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&Image Inspector Droplet...&License&New Ctrl-N&OK&Open... Ctrl-O&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&ViewA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAmountAngleApply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAuto ContrastBackgroundBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBottom Left CornerBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse FolderC&ontinueC&reditsCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletCodeColorizeColorize grayscale imageCommonConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCreditsCrop or expand the canvas without scalingCrossCutoffDecemberDepthDescribe here the action list.DescriptionDisable actionDisplays information about this application.Do not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFalseFebruaryFileFile(s)FilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsFridayGapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHorizontalHorizontal OffsetIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagesInInclude all subfoldersInspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJanuaryJulyJuneLabelLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMayMedianMessageMethodMinimumModeMondayMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo action list provided.No files or folder selected.NormalNothing has been logged yet.Nothing to do.NovemberOctoberOffsetOffset by distance and wrap aroundOpacityOpenOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesPaste this command in a launcherPathPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Photo Batch ProcessorPlease (re)install it.Please upgrade your wxPython.PosterizeProcess with recent Phatch action listQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRepeatReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save last changes toSaves an action listSaves an action list asScaleSelectSelect action listSelectionSeptemberShadowShadow BlurShear 2d or 3dShow &Log... Ctrl-LShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSliderSolarizeSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:SundayTextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This requires also that the python-nautilus package is installed.ThursdayTileTools to handle the current action listTop Left CornerTop Right CornerTop Shear AngleTranslate Phatch in your native language.TranslationTransposeTresholdTrueTuesdayTypesUnable to open fileUnsaved Action ListUpUse the Image Inspector to list all the variables.VerboseVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite text at a given positionYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsantialiasapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerleftmiddleminutemodemonthmonthnamenearestnono %s tags foundpathplease install pyexiv2positive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagtoptransformtruetypeweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-03-09 14:11+0000 Last-Translator: stani Language-Team: Catalan MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) &InterrompSobre Ph&atch... Ctrl-Shift-ADroplet de la llista d'&accions...&Afegeix&Afegeix... Ctrl-+Dem&ana Ajuda&Processa&Cancel·laTan&ca&Contrau Tot Ctrl-Shift-E&Continua de totes maneres&Desactiva Ctrl-0&Documentació... Ctrl-MA&vall Ctrl-Down&Droplet Ctrl-D&Edita&Activa Ctrl-1&Executa... Ctrl-Return&Expandeix Tot Ctrl-E&Fòrum... Ctrl-FA&judaDroplet &Inspector d'Imatges...&Llicència&Nou Ctrl-ND'ac&ord&Obre... Ctrl-OS&urt Ctrl-QDroplet &recent...Sup&rimeix Ctrl--Info&rma d'un Error... Ctrl-BDe&sa Ctrl-SMo&stra la descripció Ctrl-HMo&stra una pauta per al connector d'acció&Eines&Tradueix Phatch... Ctrl-TAm&unt Ctrl-Up&VisualitzaEl tutorial html s'obrirà al navegador d'internetQuant aAccióLlista d'accionsLlista d'accionsAfegeixAfegeix una accióAjusta la brillantor des del blanc i negreAjusta del gris al blanc i negreAjusta la saturació des de grisos a valors altsAliniació HoritzontalAliniació VerticalTotsTots els fitxersTots els fitxersQuantitatAngleAplica una màscara de transparènciaAplica en futurs errors Aplica amb mosaic, escalat i opacitatAbrilFeina artísticaComAssocia Imatges amb la llista d'accions a %s...Associa Imatges amb l'Inspector d'Imatges a %s...Associa Imatges amb la llista d'accions recents a %s...AgostContrast automàticFonsOpacitat del FonsProcés automatitzat d'imatges amb PhatchProcés automatitzat amb llistes d'accions recentsBitsNegreSagnaDifumina, Enfoca, Relleu, Suavitza, ...BooleàVoraCantonada inferior esquerraCantonada inferior dretaAngle Tallant InferiorBrillantorNavegaNavega per la CapetaC&ontinuaC&rèditsNo s'ha pogut aplicar l'acció %(a)s en la imatge '%(i)s' de la carpeta:No es pot aplicar l'acció %(a)s:LlençComprova primer les imatgesComprovant imatgesEleccióEscull el(s) fitxer(s)Escull una carpetaEscull un fitxer de llista d'accions...Escull una imatgeEscull una carpeta d'imatgesEscull la carpeta pel dropletCodiAcoloreixAcoloreix una imatge de grisosComúProporcions restringidesContrastMode de ConversióConverteix el mode de color d'una imatgeCopia el valor màxim del píxelCopia el valor mitjà del píxelCopia el valor mínim del píxelCopia el valor més comú del píxelCopia el valor de rang del píxelCopiaCopia la llista d'a&ccions com a ordre al portapapersCopia I&nspector d'Imatges com a ordre al portapapersCopia R&ecent com a ordre al portapapersCrèditsRetalla o expandeix el llenç sense escalarloCreuadaLímitDesembreProfunditatDescriu aquí la llista d'accions.DescripcióDesactiva l'accióMostra la informació d'aquesta aplicació.No comprovis les imatges primerVols continuar?DocumentacióAvallRedueix i escapça la imatge amb una relació fixaArrossega i DeixaDeixa anar qualsevol fitxer i/o carpeta al droplet de Phatch per processar automàticament l'element. Botó-dret o doble-clic per commutar a la vista normal.Deixa una ombra borrosa sota la fotoDeixa reflexionsEfecteActiva l'accióIntrodueix una url d'imatgeEqualitzaEqualitza l'histograma de la imatgeErrorExemplesExecutaExecuta l'accióExecuta la llista d'accionsExecutant la llista d'accionsExpandeixFalsFebrerFitxerFitxer(s)FiltreAjustaInverteix Esquerra DretaInverteix Dalt BaixInverteix o gira 90 grausFlotantCarpetaTipus de lletraTipus de lletraDivendresEspaiVes a la documentació de Phatch.Ves al Fòrum de PhatchVes a la web de PhatchEscala de grisosHoritzontalDesplaçament horitzontalSi reinicies %s, l'acció apareixerà al menú contextual.Si vols col·laborar amb un connector per a Phatch.Ignora els errorsImatgeInspector d'ImatgesRuta de les imatgesImatgesDinsInclou totes les subcarpetesInspecciona marques EXIF & IPTCInspecciona EXIF & marques IPTCInspecciona metadata (necessita exif & connector iptc)Inspecciona amb PhatchEnterEnter+Enter+0InteractiuImatges invàlidesInverteixInverteix tots els valors dels píxels per sobre del llindarInverteix els colors d'una imatge-GenerJuliolJunyEtiquetaAngle Tallant EsquerraBibliotequesLlicènciaRegistreCerca marques exif i iptcFa la imatge més petita o granMarçMarcaMàscaraMaximitza el contrast de la imatgeMàximMaigMitjàMissatgeMètodeMínimModeDillunsMonocrom (píxels d'1-bit, blanc i negre)Mou l'acció seleccionada avallMou l'acció seleccionada amuntNo s'ha donat una llista d'accionsNo hi ha arxius o carpetes seleccionadesNormalEncara no s'ha registrat res.Res per fer.NovembreOctubreDesplaçamentDesplaçament per distància i ajust del voltantOpacitatObreObre una llista d'accionsObre una llista d'accionsOpcionsOrientacióSobreescriu les imatges existentsEnganxa aquesta ordre a la llançadoraRutaPerspectivaPhatch no pot administrar %d imatge(s):Phatch no ha pogut instal·ar la llista d'accions a %s:Phatch no ha aconseguit instal·lar la característica demanada.Phatch ha creat satisfactòriament el droplet.Phatch s'ha intentat desinstal·lar a ell mateix des de l'explorador de Windows.Phatch n'afegirà una per tu, si us plau revisa els seus paràmetres.Processador Photo BatchSi us plau (re)instal·la'lSi us plau actualitza el wxPythonRedueix el nombre de colorsProcés amb llistes d'accions recents de PhatchSurt de l'aplicacióRGBA (píxels de 4x8-bit, RGB amb màscara de transparència)RadiRangReflexióSuprimeixTreu l'associació de %s...Suprimeix l'acció seleccionadaSuprimeix l'acció seleccionadaCanvia el nomRepeteixInforma d'un error a launchpadRemostrejaRemostreja la imatgeRemostreja MàscaraResolucióAngle Tallant DretGiraRota 180Rota 270Rota 90Rota amb un angle aleatoriArrodonimentArrodonidaCantonades arrodonides o creuadesExecuta %s com una interfície dropletExecuta %s com un programa de terminal sense interfície d'usuariSaturacióDissabteDesa&Anomena i desa... Ctrl-Shift-SAnomena i desa la llista d'accions...Desa els darrers canvis aDesa una llista d'accionsAnomena i desa la llista d'accionsEscalaSeleccionaSelecciona llista d'accionsSeleccióSeptembreOmbraOmbra borrosaTallant 2d o 3dMostra e&l Registre... Ctrl-LMostra tots els paràmetres de les accionsMostra la descripció de la llista d'accionsMostra el fitxer de registreMostra només les etiquetes de les accionsMidaBarra de desplaçamentSolaritzaHo sento, necessites instal·lar l'acció %s per aquesta llista d'accions.OrigenEspecifica l'idioma (per exemple ca o ca_ES)PatrocinadorsQuadradaComença una nova llista d'accionsPara en els errorsCadenaEstudia l'acció del connector a:DiumengeTextLa llista d'accions és buida.L'ordre del droplet per l'inspector d'imatges s'ha copiat al portapapers.No hi ha cap acció activada.Hi hauria d'haver una acció 'Desa' al final.Aquestes extensions han sigut satisfactòriament instal·lades: Això també necessita que el paquet python-nautilus estigui instal·lat.DijousMosaicEines per administrar la llista d'accions actualCantonada superior esquerraCantonada superior dretaAngle Tallant SuperiorTradueix Phatch a la teva llengua materna.TraduccióTransposaLlindarCertDimartsTipusNo s'ha pogut obrir el fitxerLlista d'accions no desadesAmuntUtilitza l'Inspector d'Imatges per llistar totes les variablesEscriu més informacióDesplaçament verticalMostra l'origenVisualitza el droplet per arrossegar i deixar anar fitxersAlerta: python-wxversion no està instal·lat. Marca d'aiguaDimecresQue vols fer ara?BlancEscriu un Connector d'AccióEscriu un text a la posició donadaNo pots utilitzar fitxers amb les següents extensionsPots enganxar-lo com a text a les propietats de la nova llançadora.Necessites instal·lar les extensions Win32 de Python per utilitzar aquesta característica.Només necessites saber PIL per poder escriure un connector per Phatch.interrompaccionsantialiasaplicaciófonsbicúbicbilinialdifuminabooleàbaixamplia la teva cercacentreeleccióclic '+' per afegir accionscontorndiadecimalpredeterminatdetallpppmillora la voramillora més la vorarelleufalsfitxernomdelfitxermida del fitxerfiltrecerca les voresflotantcarpetanomcarpetamarcalçadahoraignoraimatgesenteresquerramigminutmodemesnommesmés propernono s'han trobat %s marquesrutasi us plau instal·la pyexiv2enter positiupositiu, enter diferent a zeroresoluciódretaarrelsegonenfocamidasaltasuavitzasuavitza méscadenasubcarpetamarcadalttransformacerttipusdiasetmananomdiasetmanaampladaambError de versió de wxPythonanysíphatch-0.2.7/locale/ca/LC_MESSAGES/phatch.po0000644000000000000000000034253311346363116020161 0ustar rootroot00000000000000# Catalan translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-03-09 14:11+0000\n" "Last-Translator: stani \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Inspecciona amb Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Inspecciona marques EXIF & IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Exemples" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Executa %s com un programa de terminal sense interfície d'usuari" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Executa %s com una interfície droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignora els errors" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interactiu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Especifica l'idioma (per exemple ca o ca_ES)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Inspecciona metadata (necessita exif & connector iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Inclou totes les subcarpetes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "No comprovis les imatges primer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Escriu més informació" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "Pots enganxar-lo com a text a les propietats de la nova llançadora." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" "Ho sento, necessites instal·lar l'acció %s per aquesta llista d'accions." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "L'ordre del droplet per l'inspector d'imatges s'ha copiat al portapapers." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Encara no s'ha registrat res." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Registre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "interromp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "salta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "clic '+' per afegir accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Obre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Obre una llista d'accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Executa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Executa l'acció" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Afegeix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Afegeix una acció" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Suprimeix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Suprimeix l'acció seleccionada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Amunt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Mou l'acció seleccionada amunt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Avall" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Mou l'acció seleccionada avall" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Inspector d'Imatges" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Cerca marques exif i iptc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Descripció" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Mostra la descripció de la llista d'accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Escull un fitxer de llista d'accions..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Anomena i desa la llista d'accions..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "aplicació" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "marc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "El tutorial html s'obrirà al navegador d'internet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Estudia l'acció del connector a:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Si vols col·laborar amb un connector per a Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Arrossega i Deixa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Deixa anar qualsevol fitxer i/o carpeta al droplet de Phatch\n" "per processar automàticament l'element.\n" "Botó-dret o doble-clic per commutar a la vista normal." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch n'afegirà una per tu, si us plau revisa els seus paràmetres." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Desa els darrers canvis a" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Escull la carpeta pel droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch ha creat satisfactòriament el droplet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Selecciona llista d'accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Escull una carpeta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Escull el(s) fitxer(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Escull una carpeta d'imatges" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "imatges" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Navega" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Fitxer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Carpeta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "predeterminat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Mostra l'origen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "amplia la teva cerca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Ruta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Nou\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Comença una nova llista d'accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Obre...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Obre una llista d'accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "De&sa\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Desa una llista d'accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "&Anomena i desa...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Anomena i desa la llista d'accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Copia la llista d'a&ccions com a ordre al portapapers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Enganxa aquesta ordre a la llançadora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Copia R&ecent com a ordre al portapapers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Copia I&nspector d'Imatges com a ordre al portapapers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "S&urt\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Surt de l'aplicació" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Afegeix...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "Sup&rimeix\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Suprimeix l'acció seleccionada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Activa\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Activa l'acció" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Desactiva\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Desactiva l'acció" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "Am&unt\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "A&vall\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Edita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Droplet\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Visualitza el droplet per arrossegar i deixar anar fitxers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "Mo&stra la descripció\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Eines per administrar la llista d'accions actual" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Expandeix Tot\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Mostra tots els paràmetres de les accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Contrau Tot\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Mostra només les etiquetes de les accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Visualitza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Executa...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Executa la llista d'accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Mostra e&l Registre...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Mostra el fitxer de registre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Eines" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Ves a la web de Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Documentació...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Ves a la documentació de Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Fòrum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Ves al Fòrum de Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Tradueix Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Tradueix Phatch a la teva llengua materna." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "Info&rma d'un Error...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Informa d'un error a launchpad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "Sobre Ph&atch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Mostra la informació d'aquesta aplicació." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "A&juda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" "Només necessites saber PIL per poder escriure un connector per Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "Mo&stra una pauta per al connector d'acció" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Codi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "Dem&ana Ajuda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "D'ac&ord" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Escriu un Connector d'Acció" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Aplica en futurs errors " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Interromp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Missatge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Continua de totes maneres" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Opcions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Tipus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Navega per la Capeta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Origen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Fitxer(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Para en els errors" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Comprova primer les imatges" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Sobreescriu les imatges existents" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Cancel·la" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Processa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Imatge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "marca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Booleà" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Cadena" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Elecció" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Resolució" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "Dins" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Flotant" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Com" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Mode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Remostreja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicúbic" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Enter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Enter+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Enter+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horitzontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Barra de desplaçament" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Gener" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Febrer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Març" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "Abril" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Maig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Juny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Juliol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "Agost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Septembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Octubre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "Novembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "Desembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Dilluns" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Dimarts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Dimecres" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Dijous" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Divendres" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Dissabte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Diumenge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "fons" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Tots" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientació" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Desplaçament" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Desplaçament horitzontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Desplaçament vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Mosaic" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Escala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Marca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Opacitat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Mètode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Processador Photo Batch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Cert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Fals" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "cert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "fals" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Llista d'accions no desades" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Llista d'accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Tots els fitxers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Descriu aquí la llista d'accions." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Hi hauria d'haver una acció 'Desa' al final." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "amb" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Associa Imatges amb la llista d'accions a %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Associa Imatges amb la llista d'accions recents a %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Associa Imatges amb l'Inspector d'Imatges a %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Treu l'associació de %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "Droplet de la llista d'&accions..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "Droplet &recent..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "Droplet &Inspector d'Imatges..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Procés automatitzat amb llistes d'accions recents" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Inspecciona EXIF & marques IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Acció" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Res per fer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "La llista d'accions és buida." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "No hi ha cap acció activada." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Comprovant imatges" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch no pot administrar %d imatge(s):" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Imatges invàlides" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "C&ontinua" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "No hi ha arxius o carpetes seleccionades" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "No s'ha pogut obrir el fitxer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "No es pot aplicar l'acció %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" "No s'ha pogut aplicar l'acció %(a)s en la imatge '%(i)s' de la carpeta:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Executant la llista d'accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Selecciona" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "dia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "nomcarpeta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "nomdelfitxer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "mida del fitxer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "carpeta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "hora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "mes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "nommes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "ruta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "arrel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "segon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "subcarpeta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "tipus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "diasetmana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "nomdiasetmana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "any" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "ppp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "alçada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "mode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "amplada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "mida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Utilitza l'Inspector d'Imatges per llistar totes les variables" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "No pots utilitzar fitxers amb les següents extensions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "esquerra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "centre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "dreta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "dalt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "mig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "baix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monocrom (píxels d'1-bit, blanc i negre)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (píxels de 4x8-bit, RGB amb màscara de transparència)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "difumina" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "contorn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detall" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "millora la vora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "millora més la vora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "relleu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "cerca les vores" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "suavitza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "suavitza més" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "enfoca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "més proper" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilinial" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Rota 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Rota 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Rota 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Inverteix Esquerra Dreta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Inverteix Dalt Baix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "cadena" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "enter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "enter positiu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "positiu, enter diferent a zero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "resolució" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "flotant" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "booleà" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "elecció" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Error" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Alerta: python-wxversion no està instal·lat.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Si us plau (re)instal·la'l" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Si us plau actualitza el wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Error de versió de wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "C&rèdits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Llicència" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "Tan&ca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Quant a" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Crèdits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Documentació" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Traducció" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Feina artística" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Biblioteques" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Patrocinadors" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Llicència" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Imatges" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Tots els fitxers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Escull una imatge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Introdueix una url d'imatge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "si us plau instal·la pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "no s'han trobat %s marques" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Afegeix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "no" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "sí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Selecció" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Tipus de lletra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Ombra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filtre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Deixa una ombra borrosa sota la foto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Vora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Ombra borrosa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Fons" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Efecte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Difumina, Enfoca, Relleu, Suavitza, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filtre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Repeteix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Quantitat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transforma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Desplaçament per distància i ajust del voltant" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Llenç" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Retalla o expandeix el llenç sense escalarlo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Aliniació Horitzontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Aliniació Vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Marca d'aigua" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Aplica amb mosaic, escalat i opacitat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Fa la imatge més petita o gran" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Proporcions restringides" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Remostreja la imatge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Transposa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Inverteix o gira 90 graus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Canvia el nom" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "fitxer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Creuada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Arrodonida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Quadrada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Arrodoniment" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Cantonades arrodonides o creuades" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Radi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Cantonada superior esquerra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Cantonada superior dreta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Cantonada inferior esquerra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Cantonada inferior dreta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Mode de Conversió" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Converteix el mode de color d'una imatge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Ajusta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Redueix i escapça la imatge amb una relació fixa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Sagna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Contrast automàtic" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maximitza el contrast de la imatge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Límit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Desa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Mitjà" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Copia el valor mitjà del píxel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Màscara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Aplica una màscara de transparència" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Remostreja Màscara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Text" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Escriu un text a la posició donada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Tipus de lletra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Mida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Acoloreix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Acoloreix una imatge de grisos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Negre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Blanc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Copia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Redueix el nombre de colors" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Rang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Copia el valor de rang del píxel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solaritza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Inverteix tots els valors dels píxels per sobre del llindar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Llindar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Equalitza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Equalitza l'histograma de la imatge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Gira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Escala de grisos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Angle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Rota amb un angle aleatori" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Expandeix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Opacitat del Fons" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Inverteix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Inverteix els colors d'una imatge-" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Reflexió" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Deixa reflexions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Profunditat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Espai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Comú" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Copia el valor més comú del píxel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Mínim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Copia el valor mínim del píxel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspectiva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Tallant 2d o 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Angle Tallant Esquerra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Angle Tallant Superior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Angle Tallant Inferior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Angle Tallant Dret" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Contrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Ajusta del gris al blanc i negre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Màxim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Copia el valor màxim del píxel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Saturació" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Ajusta la saturació des de grisos a valors alts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Brillantor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Ajusta la brillantor des del blanc i negre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Aquestes extensions han sigut satisfactòriament instal·lades:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch no ha aconseguit instal·lar la característica demanada." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" "Phatch s'ha intentat desinstal·lar a ell mateix des de l'explorador de " "Windows." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "Necessites instal·lar les extensions Win32 de Python per utilitzar aquesta " "característica." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Llista d'accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "No s'ha donat una llista d'accions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Ruta de les imatges" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Vols continuar?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Que vols fer ara?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Si reinicies %s, l'acció apareixerà al menú contextual." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch no ha pogut instal·ar la llista d'accions a %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" "Això també necessita que el paquet python-nautilus estigui instal·lat." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Procés automatitzat d'imatges amb Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Procés amb llistes d'accions recents de Phatch" #~ msgid "doesn't exist" #~ msgstr "no existeix" #~ msgid "Colour" #~ msgstr "Color" #~ msgid "Filename" #~ msgstr "Nom del fitxer" #~ msgid "new" #~ msgstr "nou" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (píxels de 3x8-bit, format de color de vídeo)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (píxels d'enters de 32-bit)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (píxels de 3x8-bit, color verdader)" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Escala de grisos (píxels de 8-bit, blanc i negre)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (píxels de 8-bit, mapatge utilitzant una paleta de colors)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-bit píxels, separació de color)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (píxels de 32-bit de punt flotant)" #~ msgid "for integer" #~ msgstr "per l'enter" #~ msgid "for float" #~ msgstr "per flotant" #~ msgid "is zero, but should be non-zero." #~ msgstr "és zero, però hauria de ser diferent a zero" #~ msgid "is negative, but should be positive" #~ msgstr "és negatiu, però hauria de ser positiu" #~ msgid "for boolean" #~ msgstr "per booleà" #~ msgid "All selected image types" #~ msgstr "Tots els tipus d'imatges seleccionats" #~ msgid "&File" #~ msgstr "&Fitxer" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "Intèrpret d'ordres &Python...\tCtrl-P" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "Esc&riu un connector d'acció...\tCtrl-W" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Escriu un nou connector d'acció per Phatch amb PIL" #~ msgid "&Skip To Next Image" #~ msgstr "&Salta a la propera imatge" #~ msgid "&Ignore Error" #~ msgstr "&Ignora l'error" #~ msgid "&Default Types" #~ msgstr "Tipus pre&determinats" #~ msgid "Phatch Version" #~ msgstr "Phatch Versió" #~ msgid "please email" #~ msgstr "si us plau envia un correu electrònic" #~ msgid "By offset" #~ msgstr "Per desplaçament" #~ msgid "Force Background Colour" #~ msgstr "Força color de fons" #~ msgid "Shadow Colour" #~ msgstr "Color de l'ombra" #~ msgid "Background Colour" #~ msgstr "Color de fons" #~ msgid "Save an image" #~ msgstr "Desa la imatge" #~ msgid "does not exist." #~ msgstr "no existeix" #~ msgid "is invalid." #~ msgstr "és invàlid" #~ msgid "Fade all colours to gray" #~ msgstr "Convertir tots els colors a grisos" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Redueix el nombre de bits del canal de colors" #~ msgid "Crop or add border to all sides" #~ msgstr "Escapça o afegeix vores a tots els costats" #~ msgid "watermark" #~ msgstr "marca d'aigua" #~ msgid "colours" #~ msgstr "colors" #~ msgid "border" #~ msgstr "vora" #~ msgid "All default image types" #~ msgstr "Tots els tipus d'imatges predeterminades" #~ msgid "Put colour under transparent image" #~ msgstr "Posa color sota la imatge transparent" #~ msgid "wednesday" #~ msgstr "dimecres" #~ msgid "thursday" #~ msgstr "dijous" #~ msgid "monday" #~ msgstr "dilluns" #~ msgid "tuesday" #~ msgstr "dimarts" #~ msgid "september" #~ msgstr "setembre" #~ msgid "october" #~ msgstr "octubre" #~ msgid "november" #~ msgstr "novembre" #~ msgid "december" #~ msgstr "desembre" #~ msgid "july" #~ msgstr "juliol" #~ msgid "august" #~ msgstr "agost" #~ msgid "the file extension" #~ msgstr "l'extensió del fitxer" #~ msgid "the float value" #~ msgstr "el valor flotant" #~ msgid "invalid syntax" #~ msgstr "sintaxi invàlida" #~ msgid "the variable" #~ msgstr "la variable" #~ msgid "invalid literal" #~ msgstr "literal invàlid" #~ msgid "the integer value" #~ msgstr "el valor enter" #~ msgid "drag & drop any image here" #~ msgstr "arrossega i deixa aquí qualsevol imatge" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Veure Eines>Mostra Registre per més detalls" #~ msgid "february" #~ msgstr "febrer" #~ msgid "january" #~ msgstr "gener" #~ msgid "april" #~ msgstr "abril" #~ msgid "march" #~ msgstr "març" #~ msgid "may" #~ msgstr "maig" #~ msgid "june" #~ msgstr "juny" #~ msgid "Save metadata" #~ msgstr "Desa metadata" #~ msgid "the filename" #~ msgstr "el nom del fitxer" #~ msgid "a filename with a valid extension was expected." #~ msgstr "s'esperava un nom del fitxer amb una extensió vàlida." #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Aquesta llista d'accions ha estat feta amb una versió anterior de %(name)s.\n" #~ "\n" #~ msgid "saturday" #~ msgstr "dissabte" #~ msgid "friday" #~ msgstr "divendres" #~ msgid "sunday" #~ msgstr "diumenge" #~ msgid "Resample Shadow" #~ msgstr "Remostreja Ombra" #~ msgid "Rename the image file" #~ msgstr "Canvia el nom del fitxer de la imatge" #~ msgid "Copy the image file" #~ msgstr "Copia el fitxer d'imatge" #~ msgid "Open image file" #~ msgstr "Obre un fitxer d'imatge" #~ msgid "&Preview" #~ msgstr "Vista &prèvia" #~ msgid "Copy cell text" #~ msgstr "Copia el text de la cel·la" #~ msgid "Open image url" #~ msgstr "Obre una url d'imatge" #~ msgid "&Export..." #~ msgstr "&Exporta..." #~ msgid "&Recent" #~ msgstr "&Recent" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Desa metadata (necessita connectors exif & iptc)" #~ msgid "Scale down only" #~ msgstr "Escala a més petit només" #~ msgid "Only an image file is allowed." #~ msgstr "Només un arxiu d'imatge permès" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "" #~ "L'ordre del droplet per aquesta llista d'accions s'ha copiat al portapapers." #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch no ha pogut crear el droplet." #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "Processador & Reanomenador PHoto bATCH" #~ msgid "Height" #~ msgstr "Alçada" #~ msgid "Create missing folders" #~ msgstr "Crea les carpetesque faltin" #~ msgid "Do not create missing folders" #~ msgstr "No crear les carpetes que faltin" #~ msgid "Width" #~ msgstr "Amplada" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "ja que Phatch generarà la interfície d'usuari automàticament." #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Lloc Web&...\tCtrl-I" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "&Inspector d'Imatges (exif)\tCtrl-Space" #~ msgid "Open a python shell for introspection" #~ msgstr "Obre un intèrpret d'ordres Python per introspecció" phatch-0.2.7/locale/cs/0000755000000000000000000000000011346363116014575 5ustar rootroot00000000000000phatch-0.2.7/locale/cs/LC_MESSAGES/0000755000000000000000000000000011346363116016362 5ustar rootroot00000000000000phatch-0.2.7/locale/cs/LC_MESSAGES/phatch.mo0000644000000000000000000011457511346363116020203 0ustar rootroot00000000000000m )6666 777 77D7\7a7j77 7 77777778 8 8 ,888W8g888888888899%9 A9M9V9 v9 99999 999 99 :$: =:J:R: k::: :::::3:;; #; 0;<;@; H; V;%c;!;(;;;; ; < <,<?<R<g<#~<<<<<<&<==%=*(=.S=2=== = = == > >&@>g>l>r>x> }> > >">">>> > ?? ?!? 4?A?U? i?t? {? ? ??6??? @ @@#@*@1@Q@Z@j@}@@@@@@@!@ A$A)A /A;ADA]AeAmAvA}AA AA A"AABB">BaBB(B-B$BCC,C@CPCaCCC)CCCCCCCC D D DD J.QJ JJJ J JJJ:JKK1K.NK}KKK K KKK'KK L!L3L;L@L&EL3lLLLL LLLLL M M1M7MQR'RBR`RiR rR&|RR RR1RS SS*S DSOSdSkSSSS S SSSTT9TBT QT _TjTpTT T T TTTTTTT' U 1UXX1X YYY4YDYKYhYoYYYYY(YHY5Z+QZ3}ZZZAZ)[2[7[L['\[[[[ [[['[)[ \ *\4\=\B\J\P\g\\\\\\\]$],] ;]I] L]2X]]]]] ] ]]]] ](^,,^ Y^c^ h^ t^ ^^^^ ^^^*_-_43_?h_A_7_"`(`0` 4` >` J` T`_`g`p`u`}``````` ``````a a aa0a7a=aBaKaTa [afala sa~aaaaaaaaaaaaaa aaaab bbb'b>bObjb bbbbbbbb bbb bb"b c*c .c 8cEcJcOcWc _ckcqcvcccc&e:eTe te ee eee e#e ff+f>fGf\f efofffff f"fgg,g=gMgVgfg~gggg g"g ghh)h IhWhfh ihwhhhhhh*h i &iGiVi_i!vi iii i i ii8j GjRj Wj djqj yj jj!j,j3j&k=kPkUkfk(wk kkkk- l :lElKlRl plllll+l0l5mUm[m`m/vmm mm0m*n-n3n;nJnSnenzn(n5nnn oo"o (o3o DoPoboyo }o oo oo=op"p*p:pKpSpZp)app pppppp"pq+qGq cqmqrq xqqqqq qqqq qqq"r&1r$Xr%}r*r0r r4 s<?s>|sssss tt >tLt7Ttttt tttt ttuu/u5uFufuluVsu u$uuv.v GvSvMZvv1vv$v#w8w'wxx x-xBx^xgxx xxx xxx x x yyy$y+y :y GyQyYyhy ny |yyy&yy yyy@z5Dzzzzzzz/zz"z"{.5{ d{r{ {{ {{{{>{2|I|Y|b|v||||K||!}!7}4Y}} }}} }} ~7 ~E~ `~m~~ ~~.~8~+4KSWq *&/6?GM R/\ Ȁ>&$*Kv ȁЁ@ց8W ^h} ǂтق'&6] c q&}!'ƃ8%'*MEx ʄ/EV%k ΅5HQ Z#g φ  *2]}͇ &6E ` jv) 3#@d& ։( (:BQ `n Ċي !2M l!yʋ.+4 <H W c m$x>WE:K  ̍֍ ).)HWrʎ&5#Ei>Ə Ϗُ &4ETf*|$̐ Րߐ(?Zr ȑ >. m w Ē ݒ/4*_h n { œГ/6;<Bx?2.6; @M Vb j u ҕٕ!ߕ  (29@DWpx  ƖЖ   %0 9DKRZ jwz ݗ ' <HOV ^h q} "$ۘ  #* . ; IT]_uyp0b$J ndc&rqW-a8 ]RAfJKTX<F(k;1{a02v 'gvoZz{~@{Lz BFA?N_qi\~=UbM?g,PXkryP eD!+HvRPl'e> -/.bxc[Ek:t<`> =4O* s@eDSu um] !;Q6,LjE61\YIR#^5$4- VN m(&sT2*S)C}'l:7C$i%z%IoYGO"#[|pp5X.u.79c ZnhOj ^E\q]nUwsdCK}KT9Axo<7= /)*5Bd}__Q|t3fiag:|6Wlf""S%@[V D 3^Y+M!ZHN~r+U48`F81yt3)?>GxIWL2hBw;ymwV(, #jMG`hQJ&/09H"%s" can not be found."%s" is not a valid path.%d issues were logged%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List&Action List Droplet...&Add&Add Tag&Add Tag to All Images...&Add... Ctrl-+&All Types&Ask for Help&Batch&Browse Library&Cancel&Close&Collapse All Ctrl-Shift-E&Collapse Automatically&Continue Anyway&Copy Tag&Copy Value&Delete Tag&Delete Tag from All Images...&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Fonts&Forum... Ctrl-F&Help&Image Inspector (exif) Ctrl-I&Image Inspector Droplet...&Inspect...&License&Modify Value for All Images...&New Ctrl-N&No Types&OK&Open...&Open... Ctrl-O&Phatch&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Remove Image&Rename Tag for All Images...&Report a Bug... Ctrl-B&Safe Mode (recommended)&Save Ctrl-S&Select&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&Update&User&View&Website... Ctrl-WA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd TagAdd an actionAdd gps dataAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAll readable and writable typesAll readable typesAll selected typesAllow as last actionAlways save on desktopAlways show status dialog when doneAmountAngleAngle Apply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastAutomatic (use exif orientation)BackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlurBlur AngleBlur RadiusBlur SigmaBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBorder WidthBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse %sBrowse FolderC&ontinueC&reditsCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthCaptionCenterChangeChange value for all images to:CharcoalCharcoal RadiusCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletClipboardCodeColorColor ValueColorizeColorize grayscale imageColumnsCommandCommentsCommonConstrain ProportionsContourContour ColorContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCopy the original imageCorner Bottom LeftCorner Bottom RightCorner Top LeftCorner Top RightCould not open image with %s.CreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDetails DegreeDifferent for each sideDirectionDirection Disable Safe Mode in the Tools menu if you trust this action list.Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDoneDouble click to open or right click for more options.DownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDraw border inside or outsideDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqual for all sidesEqualizeEqualize the image histogramErrorExamplesExecuteExecute external commandExecute the actionExecute the action listExecuting action listExif timeExpandExplorerFalseFebruaryFileFile NameFile timeFile(s)FillFill ColorFilterFitFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsFor more information see the tutorials (Help>Documentation)Format %(format)s does not support overwriting "%(tag)s".FridayFrom (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GapGeek actions are not allowed in safe mode.GeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleGrayscale (8-bit pixels)HighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagemagickImagesInIn Phatch you need to open or create an action list first.Include all subfoldersInspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJPEG Size MaximumJanuaryJulyJuneKeep existing images (don't overwrite)LA (8-bit pixels, grayscale with transparency mask)LabelLeftLeft Shear AngleLibrariesLibrary Action ListsLicenseLogLook up exif and iptc tagsLossless JPEGMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMaximum one parameter "%s" is allowedMayMedianMessageMetadataMethodMiddleMinimumMinutesModeMondayMonochrome (1-bit pixels, black and white)MonthsMotion BlurMove the selected action downMove the selected action upNever run action lists from untrusted sources.No action list provided.No files or folder selected.NoneNormalNothing has been logged yet.Nothing to do.NovemberObjectOctoberOffsetOffset by distance and wrap aroundOneOne image done in %sOne issue was loggedOpacityOpenOpen &RecentOpen &Url...Open an action listOpens an actions listOptionsOrientationOutputOverwrite existing imagesPHoto bATCH ProcessorPNG OptimizePaintPaint RadiusPaste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch could not create the droplet: Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please check if this action list doesn't contain harmful code.Please delete "%s".Please install "%s" first.Please upgrade your wxPython.PolaroidPositionPosterizeProcess with recent Phatch action listProgram VersionProjectionQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReady!Reduce the number of bits of color channelReflectionRegenerate thumbnailRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename tag for all images to:Rename the original imageRepeatReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRightRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save TagsSave and convert to other typesSave last changes toSave only metadata (lossless)Saves an action listSaves an action list asScaleScan for new fonts on your systemSecondsSee "%s" for more details.SelectSelect Color BySelect ObjectSelect RotationSelect action listSelectionSeptemberShadowShadow BlurShadow ColorSharpenSharpen RadiusSharpen SigmaShear 2d or 3dShow &Log... Ctrl-LShow &ReportShow &Report... Ctrl+RShow Advanced OptionsShow LogShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.Show report of processed imagesSigmoidal ContrastSizeSketchSketch AngleSketch RadiusSketch SigmaSliderSolarizeSorry, "%s" is not a valid path.Sorry, %s.Sorry, no valid files foundSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:SundayTIFF CompressionTag (Exif, Iptc)Tag exists alreadyTextThe action list is empty.The action list only processes metadata.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This action list is unsafe:This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTime Shift (seconds)To (Exif, Iptc)Tools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTransform to a grayscale pencil drawingTranslate Phatch in your native language.TranslationTransposeTresholdTrueTuesdayTypesUnable to add tag <%s>Unable to change label.Unable to change tag <%s>Unable to delete tag <%s>Unable to open fileUnable to remove imageUnable to rename tag <%s>Unable to save tag <%s>Unsaved Action ListUnsharpUnsharp RadiusUnsharp SigmaUpUpdate JPEGUse the Image Inspector to list all the variables.UserUtilityValueVerboseVerify InputVerify OutputVerify ProgramVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWaveWave HeightWave LengthWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYCbCr (3x8-bit pixels, color video format)YearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsallantialiasapplicationautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcan not be emptycenterchoiceclick '+' to add actionscolorcompressioncontourdaydecimaldefaultdesktopdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameformatframeheighthourignoreimagesintegerleftloadingmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnoneorientationpathplease email: please install pyexiv2positive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth moresourcestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existtoptransformtransparencytruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-03-09 18:17+0000 Last-Translator: luisah Language-Team: Czech MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) "%s" nelze nalézt."%s" není platná cesta.%d problémů bylo zaznamenáno%s poslední&Přerušit&O Phatch... Ctrl-Shift-A&Seznam akcí&Droplet seznamu akcí...&Přidat&Přidat Tag&Přidat Tag do všech obrázků...&Přidat... Ctrl-+&Všechny typyPožádat o &pomoc&Spustit&Procházet knihovnu&Zrušit&Zavřít&Sbalit vše Ctrl-Shift-E&Automaticky sbalitPřesto pokračovat&Kopírovat Tag&Kopírovat hodnotu&Smazat Tag&Smazat Tag ze všech obrázků...&Zakázat Ctrl-0&Dokumentace... Ctrl-M&Dolů Ctrl-Down&Droplet Ctrl-D&Upravit&Povolit Ctrl-1&Spustit... Ctrl-Return&Rozbalit vše Ctrl-E&Export&Písma&Fórum... Ctrl-FNápo&věda&Inspektor obrázků (exif) Ctrl-IDroplet &inspektoru obrázků...&Prohlédnout...Licence&Změnit hodnotu pro všechny obrázky...&Nový Ctrl-N&Žádné typyOK&Otevřít...&Otevřít... Ctrl-O&PhatchU&končit Ctrl-Q&Poslední droplet...&Odstranit Ctrl--&Odstranit obrázek&Přejmenovat Tag pro všechny obrázky...Ohlásit chy&bu... Ctrl-B&Bezpečný režim (doporučeno)Uložit Ctrl-S&VýběrZobrazit &popis Ctrl-H&Zobrazit šablonu pro modul akce&NástrojePřeloži&t Phatch... Ctrl-T&Nahoru Ctrl-Up&Aktualizace&UživatelZo&brazit&Webová stránka... Ctrl-WHtml tutoríál bude otevřen ve webovém prohlížeči.O programuAkceSeznam akcíSeznam akcíPřidatPřidat TagPřidat akciPřidat GPS dataNastavit jas od černé po bílouPřevést odstíny šedi na černou a bílouNastavit sytost barev od odstínů šedi po vysokouZarovnání vodorovněZarovnání svisleVšeVšechny souboryVšechny souboryVšechny čitelné a zapisovatelné typyVšechyn typy které jdou čístVšechny vybrané typyPovolit jako poslední akciVždy uložit na plochuVždy zobrazit stavový dialog po dokončeníPřekrytíÚhelÚhel Aplikovat masku průhlednostiPlatí na budoucí chyby Otisknout do obrázku vodoznakDubenVzhledJakoAsociace obrázku se seznamem akcí v %s...Asociace obrázku s Inspektorem obráků v %s...Asociace obrázku s posledním seznamem akcí v %s...SrpenAutoAutomatický kontrastAutomaticky (použij orientaci uvedenou v exif)PozadíBarva pozadíPrůhlednost pozadíDávkové zpracování obrázků pomocí PhatcheDávkově zpracovat poslední seznam akcíBitůČernáRozpouštěníRozmazatÚhle rozmazáníPoloměr rozmazáníSigma rozmazáníRozmazat, Polaroid, Stín, Rozostřit...Rozostření, Zaostření, Reliéf, Rozmáznutí, ...Booleovská hodnotaOkrajBarva okrajeŠířka okrajeDolůVlevo doleLevý dolní rohVpravo dolePravý dolní rohSpodní úhel zkoseníJasProcházetProcházet %sProcházet adresářP&okračovatPo&děkováníNemohu aplikovat akci %(a)s na obrázek '%(i)s' v adresáři:Nemohu aplikovat akci %(a)s:PlátnoVýška plátnaŠířka plátnaTitulekStředZměnaZměnit hodnotu pro všechny obrázky na:UhelPoloměr uhluNejprve zkontrolovat obrázkyKontroluji obrázkyVýběrVybrat soubor(y)Vybrat složkuVybrat soubor se seznamem akcí...Vybrat obrázekVybrat adresář s obrázkyVyberte složku pro dropletSchránkaKódBarvaHodnota barvyObarvitObarvit šedý obrázekSloupcePříkazKomentářeBěžnéZachovat poměr stranObrysBarva obrysuKontrastPřevodní módKonvertovat barevný mód obrázkuZkopírovat maximální hodnotu pixeluZkopírovat střední hodnotu pixeluZkopírovat nejmenší hodnotu pixeluZkopírovat nejčastější hodnotu pixeluZkopírovat x-tou nejčastější hodnotu pixeluKopírovatZkopírovat seznam akcí jako příkaz do &schránkyZkopírovat inspektora &obrázků jako příkaz do schránkyZkopírovat &poslední seznam akcí jako příkaz do schránkyKopírovat původní obrázekLevý dolní rohPravý dolní rohLevý horní rohPravý horní rohNelze otevřít obrázek s %s.PoděkováníOřezatOříznout nebo zvětšit plátno bez změny měřítkaOřezat obrázekČtvercový výřezVlastníOdříznutíDnůProsinecSmazat Exif nebo Iptc tagySmazat TagyHloubkaSnížit sytostZde popište seznam akcí.PopisDetaily stupňůPro zdílně pro každou stranuSměrSměr Zakázat Bezpečný režim v menu Nástroje, pokud důvěřujete této akci v seznamu.Zakázat akciZobrazí informace o této aplikaci.Nejprve nekontroluj obrázkyChcete pokračovat?Přejete si ho přepsat?DokumentaceHotovoDvojité kliknutí pro otevření nebo pravé kliknutí pro více možností.DolůZmenšit a oříznout obrázek s pevným poměremTáhni & PusťNakreslit obrys kolem okrajů obrazuKreslit rámeček uvnitř nebo vněUpusťte libovolný počet souborů nebo složek na droplet pro jejich zpracování. Klikněte pravým nebo dvakrát levým pro přechod do normálního režimuVrhnout rozmazaný stín pod fotografiiVykreslí odraz podlahyEfektPovolit akciVložit url obrázkuStejně pro všechny stranyVyrovnatVyrovnat histogram obrázkuChybaPříkladyVykonatSpustit externí příkazProvést akciSpustit seznam akcíSpouštění seznamu akcíČas ExifZvětšitProhlížečNepravdaÚnorSouborNázev souboruČas souboruSoubor(y)VyplnitBarva výplněFiltrPřizpůsobitPřeklopitPřevrátit vodorovněPřevrátit svislePřevrátit nebo otočit o 90 stupňůDesetinné čísloAdresářPísmoPísmaVíce informací naleznete v tutoriálu (Nápověda>Dokumentace)Formát %(format)s nepodporuje přepsání "%(tag)s".Pátekz (Exif, Iptc)GPS data (gpx)GPS záznam (csv)MezeraGeek akce nejsou povoleny bezpečném režimu.GeotagPřejít na dokumentaci pro PhatchPřejít na fórum programu PhatchPřejít na domovskou stránku programu PhatchStupně šediStupně šedi (8-bit pixely)ZvýraznitSbohem, žádné problémy!VodorovnýHorizontální zarovnáníVodorovný posunHodinPokud restartujete %s, akce se objeví v kontextové nabídce.Pokud chcete přispětIgnorovat chybyObrázekInspektor obrázkůCesta k obrázkuObrázkový kouzelníkObrázkyVV programu Phatch musíte nejdříve otevřít nebo vytvořit seznam akcí.Zahrnout všechny podadresářeProcházejte EXIF a IPTC štítkyProcházejte EXIF a IPTC štítkyProhlédni metadata (vyžadován exif & iptc plugin)Zobrazit s PhatchemCelé čísloKladné celé čísloNezáporné celé čísloInteraktivníNeplatné obrázkyPřevrátitInvertovat hodnotu všech pixelů nad prahovou hodnotouPřevrátit barvy obrázkuJPEG kvalitaJPEG maximální velikostLedenČervenecČervenZachovat existující obrázky (nepřepisovat)LA (8-bit pixely, stupně šedi s transparentní maskou)PopisekNalevoLevý úhel zkoseníKnihovnyKnihovna seznamu akcíLicenceLogZobrazit exif a iptc tagyBezztrátový JPEGZmenšit nebo zvětšit obrázekBřezenOznačitMaskaNastavit automatický kontrastMaximumJe povolen maximálně jeden parametr "%s"KvětenMediánZprávaMetadataMetodaNastředMinimumMinutMódPondělíČernobílý (1-bit na pixel, černá a bílá)MěsícůRozmáznutí pohybemPosunout vybranou akci nížPosunout vybranou akci výšNikdy nespouštět akce seznamů z nedůvěryhodných zdrojů.Nebyl poskytnut žádný seznam akcí.Nevybrány žádné soubory nebo adresářŽádnéNormálníZatím nebylo nic logovánoNemám co dělat.ListopadObjektŘíjenPosunPosunout o vzdálenost a přesahující zalomit na druhou stranuJedenJeden obrázek hotov za %sByl zaznamenán jeden problémKrytíOtevřítOtevřít &nedávnýOtevřít &url...Otevřít seznam akcíOtevřít seznam akcíMožnostiOrientaceVýstupPřepsat existující obrázekPHoto bATCH ProcessorPNG optimalizaceMalovatPoloměr malbyVložte tento příkaz do spouštěčeCestaSkica tužkouPerspektivaPhatch neumí zacházet se soubory %d:Phatch nemohl vytvořit droplet: Phatch nemůže nainstalovat akci v %s:Phatchi se nepodařilo nainstalovat požadovanou funkci.Phatch úspěšně vytvořil droplet.Phatch se snažil odebrat z Průzkumníka.Phatch ji automaticky přidá, prosím zkontrolujte její nastavení.Phatch s %sPhoto Batch ProcessorProsím nainstalujte jej nebo jej přentalujte.Zkontrolujte prosím, zda-li seznam akcí neobsahuje škodlivý kód.Prosím smazat "%s".Prosím nejdříve nainstalujte "%s".Prosím, aktualizujte wxPython.PolaroidPozicePosterizovatZde popište seznam akcíVerze programuProjekceUkončit program.RGBA (4x8-bitů na pixel, RGB s maskou průhlednosti)PoloměrPořadíPřipraveno!Snížit počet bitů kanálu barevOdrazVytvořit náhled obrázkuOdstranitOdebrat asociaci s %s...Odstranit vybranou akciOdstranit vybranou akciPřejmenovatPřejmenovat TagPřejmenování taguPřejmenovat tag pro všechny obrázky na:Přejmenovat původní obrázekOpakovatOhlásit chybu na launchpadPřevzorkováníPřevzorkování obrázkuPřevzorkování maskyRozlišeníNapravoPravý úhel zkoseníOtočitOtočit o 180°Otočit o 270°Otočit o 90°Otočit o libovolný úhelZaobleníZakulacenýZaoblit nebo zašpičatit rohyŘádkySpusť %s jako gui dropletSpusť %s jako konsolový program bez guiSytostSobotaUložitUložit j&ako... Ctrl-Shift-SUložit seznam akcí jako...Uložit TagyUložit a převádět na jiné typyUložit poslední změny doUložit pouze metadata (bezztrátově)Uložit seznam akcíUložit seznam akcí jakoŠkálovatProhledat systém a zjistit nová písmaSekundProhlédnout "%s" pro více podrobnostívýběrVybrat barvu zVyberte objektZvolte rotaciVyberte seznam akcíVýběrZáříStínRozostření stínuBarva stínuZaostřitPoloměr zaostřeníSigma zaostřeníDeformovat plochu do prostoruZobrazit &log... Ctrl-LZobrazit &reportZobrazit &report... Ctrl+RZobrazit pokročilé možnostiZobrazit logZobrazit všechny parametry akcíZobrazit popis seznamu akcíZobrazit protokolZobrazit jen titulky akcíZobrazit report o zpracovávaných obrázcíchSigmoidální kontrastVelikostNáčrtÚhel skiciPoloměr skiciSigma skiciPosuvníkSolarizacePromiňte, "%s" není platná cesta.Omlouvám se %s.Omlouváme se, ale žádné správné soubory nebyly nalezeny.Omlouváme se, ale pro spuštění tohoto seznamu akcí je třeba nainstalovat akci %s.ZdrojZvolte jazyk lokalizace (pro češtinu cs, angličtinu en)SponzořiČtvercovýZačít nový seznam akcíZastavit při chyběŘetězecStudujte moduly akcí na:NeděleTIFF kompreseTag (Exif, lptc)Tag již existujeTextSeznam akcí je prázdnýSeznam akcí zpracovává pouze metadata.Příkazy dropletu pro zobrazení inspektora obrázků byly zkopírovány do schránky.Není povolena žádná akce.Na konci by měla být akce 'Uložit'.Tato rozšíření byla úspěšně nainstalována: Tento seznam akcí je nebezpečný:Takový soubor již existuje.Toto také vyžaduje nainstalovaný balíček python-nautilus.ČtvrtekDlaždiceČasový posun (sekundy)do (Exif, Iptc)Zobrazit popis seznamu akcíNahoruVlevo nahořeLevý horní rohVpravo nahořePravý horní rohHorní úhel zkoseníPřevézt do stupňů šedi kresby tužkouPřeložit Phatch do rodného jazykaPřekladPřehoditPráhPravdaÚterýTypyNelze přidat tag <%s>Nelze změnit jmenovku.Nelze změnit tag <%s>Nelze smazat štítek <%s>Nemohu otevřít souborNelze odstranit obrázekNelze přejmenovat štítek <%s>Nelze uložit štítek <%s>Neuložený seznam akcíRozostřitPoloměr rozostřeníSigma rozostřeníNahoruAktualizovat JPEGPro výpis všech proměnných použijte Inspektora obrázků.UživatelNástrojeHodnotaPodrobnéOvěřit vstupOvěřit výstupOvěřit programVertikální zarovnáníSvislý posunZobrazit zdrojZobrazit jako droplet k přetahování souborůUpozornění: python-wxversion není nainstalován. VodoznakVlnkaVýška vlnyDélka vlnyStředaCo se bude dít teď?BíláPsaní vlastního moduluZapsat TagZapsat novou hodnotu taguZapsat text na danou poziciYCbCr (3x8-bit pixelů, barevný video formát)RokůMůžete použít pouze soubory s následující příponouMůžete to vložit jako text do vlastností nového spouštěče.Pro tuto funkci je třeba nainstalovat Python Win32 Extensions.Je třeba znát PIL pro psaní pluginu pro Phatch,zrušitakcevšeantialiasingaplikaceautomatickypozadíbikubickébilineárnírozostřitbooleovská hodnotadolezobecněte zadánínemůže být prázdnéstředvolbaklikni na '+' pro přidání akceBarvakompresekonturadendesítkovévýchozíplochadetaildpizvýraznit konturyvíce zvýraznit konturyreliéfnepravdasoubornázev souboruvelikostfiltrhledat hranydesetinné čísloadresářnázev adresářeformátrámvýškahodinaignorovatobrázkycelé číslovlevonahrávámmetadatauprostředminutarežimměsícnázev měsícenejbližšínenenalezeny žádné %s tagyžádnéorientacecestaprosím email: prosím, nainstalujte pyexiv2kladné celé číslokladné, nenulové celé číslopotřebujete mít nainstalován pyexiv2rozlišenívpravokořensekundadoostřitvelikostpřeskočitvyhladitvyhladit vícezdrojřetězecadresářštítekpřípona souboru "%s" je špatnásoubor tohoto jména "%s" neexistujenahořetransformovatprůhlednostpravdatypupozorněnípracovní dennázev dnešířkasChyba verze wxPythonurokanophatch-0.2.7/locale/cs/LC_MESSAGES/phatch.po0000644000000000000000000035321311346363116020200 0ustar rootroot00000000000000# Czech translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-03-09 18:17+0000\n" "Last-Translator: luisah \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Zobrazit s Phatchem" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Procházejte EXIF a IPTC štítky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Příklady" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Spusť %s jako konsolový program bez gui" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Spusť %s jako gui droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Vždy uložit na plochu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignorovat chyby" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interaktivní" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Zachovat existující obrázky (nepřepisovat)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Zvolte jazyk lokalizace (pro češtinu cs, angličtinu en)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Prohlédni metadata (vyžadován exif & iptc plugin)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Zahrnout všechny podadresáře" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Nejprve nekontroluj obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Podrobné" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "Můžete to vložit jako text do vlastností nového spouštěče." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" "Omlouváme se, ale pro spuštění tohoto seznamu akcí je třeba nainstalovat " "akci %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "Příkazy dropletu pro zobrazení inspektora obrázků byly zkopírovány do " "schránky." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "V programu Phatch musíte nejdříve otevřít nebo vytvořit seznam akcí." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "Více informací naleznete v tutoriálu (Nápověda>Dokumentace)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "Sbohem, žádné problémy!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Zatím nebylo nic logováno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "zrušit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "přeskočit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignorovat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "klikni na '+' pro přidání akce" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "Otevřít &nedávný" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Otevřít" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Otevřít seznam akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Vykonat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Provést akci" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Přidat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Přidat akci" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Odstranit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Odstranit vybranou akci" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Nahoru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Posunout vybranou akci výš" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Dolů" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Posunout vybranou akci níž" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Inspektor obrázků" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Zobrazit exif a iptc tagy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Popis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Zobrazit popis seznamu akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "Knihovna seznamu akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Vybrat soubor se seznamem akcí..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Uložit seznam akcí jako..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Takový soubor již existuje." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Přejete si ho přepsat?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "aplikace" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "rám" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "akce" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Html tutoríál bude otevřen ve webovém prohlížeči." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Studujte moduly akcí na:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Pokud chcete přispět" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "prosím email: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "PHoto bATCH Processor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "Promiňte, \"%s\" není platná cesta." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Táhni & Pusť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Upusťte libovolný počet souborů nebo\n" "složek na droplet pro jejich zpracování.\n" "\n" "Klikněte pravým nebo dvakrát levým\n" "pro přechod do normálního režimu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch ji automaticky přidá, prosím zkontrolujte její nastavení." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "Seznam akcí zpracovává pouze metadata." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Uložit poslední změny do" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Vyberte složku pro droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch úspěšně vytvořil droplet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "Phatch nemohl vytvořit droplet: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Vyberte seznam akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "Prosím smazat \"%s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Vybrat složku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Vybrat soubor(y)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Vybrat adresář s obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "Všechny vybrané typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "Všechny čitelné a zapisovatelné typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "Všechyn typy které jdou číst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "&Všechny typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "&Žádné typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "Schránka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Procházet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "Procházet %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Soubor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Adresář" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "výchozí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Zobrazit zdroj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "zobecněte zadání" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Cesta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Otevřít..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "&Prohlédnout..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Nový\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Začít nový seznam akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Otevřít...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Otevřít seznam akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "Uložit\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Uložit seznam akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Uložit j&ako...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Uložit seznam akcí jako" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Zkopírovat seznam akcí jako příkaz do &schránky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Vložte tento příkaz do spouštěče" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Zkopírovat &poslední seznam akcí jako příkaz do schránky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Zkopírovat inspektora &obrázků jako příkaz do schránky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&Export" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "U&končit\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Ukončit program." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "&Seznam akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Přidat...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Odstranit\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Odstranit vybranou akci" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Povolit\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Povolit akci" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Zakázat\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Zakázat akci" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Nahoru\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Dolů\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Upravit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Droplet\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Zobrazit jako droplet k přetahování souborů" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "Zobrazit &popis\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Zobrazit popis seznamu akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Rozbalit vše\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Zobrazit všechny parametry akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Sbalit vše\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Zobrazit jen titulky akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "&Automaticky sbalit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "Zo&brazit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Spustit...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Spustit seznam akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "&Bezpečný režim (doporučeno)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "&Inspektor obrázků (exif)\tCtrl-I" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "&Uživatel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "&Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "&Procházet knihovnu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "Zobrazit &report...\tCtrl+R" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "Zobrazit report o zpracovávaných obrázcích" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Zobrazit &log...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Zobrazit protokol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "&Písma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "Prohledat systém a zjistit nová písma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "&Aktualizace" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Nástroje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "&Webová stránka...\tCtrl-W" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Přejít na domovskou stránku programu Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Dokumentace...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Přejít na dokumentaci pro Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Fórum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Přejít na fórum programu Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "Přeloži&t Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Přeložit Phatch do rodného jazyka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "Ohlásit chy&bu...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Ohlásit chybu na launchpad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&O Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Zobrazí informace o této aplikaci." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "Nápo&věda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "Hotovo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Zobrazit log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "Zobrazit &report" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "Připraveno!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "Dvojité kliknutí pro otevření nebo pravé kliknutí pro více možností." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "Prohlížeč" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Je třeba znát PIL pro psaní pluginu pro Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Zobrazit šablonu pro modul akce" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Kód" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "Požádat o &pomoc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Psaní vlastního modulu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Platí na budoucí chyby " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Přerušit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Zpráva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "Přesto pokračovat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Možnosti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Procházet adresář" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Zdroj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Soubor(y)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Zastavit při chybě" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Nejprve zkontrolovat obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Přepsat existující obrázek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "Vždy zobrazit stavový dialog po dokončení" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Zrušit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Spustit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Obrázek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Popisek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "štítek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Booleovská hodnota" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Řetězec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Výběr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Barva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Rozlišení" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Název souboru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "V" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Desetinné číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Jako" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Mód" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Převzorkování" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bikubické" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Celé číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Kladné celé číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Nezáporné celé číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Vodorovný" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Posuvník" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "potřebujete mít nainstalován pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Leden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Únor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Březen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "Duben" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Květen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Červen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Červenec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "Srpen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Září" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Říjen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "Listopad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "Prosinec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Pondělí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Úterý" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Středa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Čtvrtek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Pátek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Sobota" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Neděle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "Formát %(format)s nepodporuje přepsání \"%(tag)s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "pozadí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "zdroj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Vše" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Vyberte objekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "Zvolte rotaci" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "Střed" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Vlastní" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Nastřed" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Nalevo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Napravo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Nahoru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Dolů" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Vlevo dole" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Vpravo dole" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Vlevo nahoře" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Vpravo nahoře" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientace" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Pozice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Posun" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Vodorovný posun" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Svislý posun" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Horizontální zarovnání" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Vertikální zarovnání" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Dlaždice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Škálovat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Označit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Krytí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Metoda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Auto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Photo Batch Processor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Pravda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Nepravda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "pravda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "nepravda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Neuložený seznam akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Seznam akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Všechny soubory" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Zde popište seznam akcí." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Na konci by měla být akce 'Uložit'." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s poslední" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Asociace obrázku se seznamem akcí v %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Asociace obrázku s posledním seznamem akcí v %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Asociace obrázku s Inspektorem obráků v %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Odebrat asociaci s %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "&Droplet seznamu akcí..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "&Poslední droplet..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "Droplet &inspektoru obrázků..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Dávkově zpracovat poslední seznam akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Procházejte EXIF a IPTC štítky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "Prohlédnout \"%s\" pro více podrobností" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "Tento seznam akcí je nebezpečný:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" "Zakázat Bezpečný režim v menu Nástroje, pokud důvěřujete této akci v seznamu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "Nikdy nespouštět akce seznamů z nedůvěryhodných zdrojů." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "Zkontrolujte prosím, zda-li seznam akcí neobsahuje škodlivý kód." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "\"%s\" není platná cesta." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Akce" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "Geek akce nejsou povoleny bezpečném režimu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Nemám co dělat." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Seznam akcí je prázdný" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Není povolena žádná akce." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Kontroluji obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch neumí zacházet se soubory %d:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Neplatné obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Omlouváme se, ale žádné správné soubory nebyly nalezeny." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "P&okračovat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Nevybrány žádné soubory nebo adresář" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Nemohu otevřít soubor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Nemohu aplikovat akci %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Nemohu aplikovat akci %(a)s na obrázek '%(i)s' v adresáři:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Spouštění seznamu akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Jeden obrázek hotov za %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Byl zaznamenán jeden problém" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "%d problémů bylo zaznamenáno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "výběr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "Nelze změnit jmenovku." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "Nelze smazat štítek <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "Nelze přejmenovat štítek <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "Nelze uložit štítek <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "den" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "plocha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "název adresáře" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "název souboru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "velikost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "adresář" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "hodina" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minuta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "měsíc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "název měsíce" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "cesta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "kořen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "sekunda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "adresář" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "typ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "pracovní den" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "název dne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "rok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "komprese" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "výška" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "režim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "šířka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "formát" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "velikost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "průhlednost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "orientace" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Pro výpis všech proměnných použijte Inspektora obrázků." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Můžete použít pouze soubory s následující příponou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "vlevo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "střed" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "vpravo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "nahoře" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "uprostřed" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "dole" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Černobílý (1-bit na pixel, černá a bílá)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "Stupně šedi (8-bit pixely)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "LA (8-bit pixely, stupně šedi s transparentní maskou)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bitů na pixel, RGB s maskou průhlednosti)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "YCbCr (3x8-bit pixelů, barevný video formát)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "rozostřit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "kontura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "zvýraznit kontury" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "více zvýraznit kontury" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "reliéf" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "hledat hrany" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "vyhladit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "vyhladit více" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "doostřit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "nejbližší" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilineární" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialiasing" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Otočit o 90°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Otočit o 180°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Otočit o 270°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Převrátit vodorovně" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Převrátit svisle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normální" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "žádné" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "nemůže být prázdné" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "řetězec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "celé číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "kladné celé číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "kladné, nenulové celé číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "rozlišení" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "desetinné číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "booleovská hodnota" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "volba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "přípona souboru \"%s\" je špatná" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "soubor tohoto jména \"%s\" neexistuje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "\"%s\" nelze nalézt." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "Je povolen maximálně jeden parametr \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "automaticky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Žádné" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "Prosím nejdříve nainstalujte \"%s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "Nelze otevřít obrázek s %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Příkaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "Výstup" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Chyba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "&Výběr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Upozornění: python-wxversion není nainstalován.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Prosím nainstalujte jej nebo jej přentalujte." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Prosím, aktualizujte wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Chyba verze wxPythonu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "Verze programu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "Po&děkování" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "Licence" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Zavřít" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "O programu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Poděkování" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dokumentace" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Překlad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Vzhled" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Knihovny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Sponzoři" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licence" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Hodnota" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "upozornění" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "Přidat Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "vše" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "Tag již existuje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Všechny soubory" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "&Kopírovat hodnotu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "&Přidat Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "&Smazat Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "Otevřít &url..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "&Odstranit obrázek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "&Kopírovat Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "&Přidat Tag do všech obrázků..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "&Smazat Tag ze všech obrázků..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "&Přejmenovat Tag pro všechny obrázky..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "&Změnit hodnotu pro všechny obrázky..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "Nelze přidat tag <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "Nelze odstranit obrázek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "Přejmenovat tag pro všechny obrázky na:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "Změnit hodnotu pro všechny obrázky na:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "Nelze změnit tag <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "Omlouvám se %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Vybrat obrázek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Vložit url obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "prosím, nainstalujte pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "nenalezeny žádné %s tagy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Přidat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "desítkové" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "nahrávám" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "ne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "ano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Výběr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Písma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Stín" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filtr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Vrhnout rozmazaný stín pod fotografii" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Okraj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Rozostření stínu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Barva pozadí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Barva stínu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Pozadí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "Objekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Efekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Rozostření, Zaostření, Reliéf, Rozmáznutí, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filtr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Opakovat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Překrytí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transformovat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Posunout o vzdálenost a přesahující zalomit na druhou stranu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Plátno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Oříznout nebo zvětšit plátno bez změny měřítka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "Šířka plátna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Výška plátna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Zarovnání vodorovně" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Zarovnání svisle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "Barva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "Vybrat barvu z" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "Hodnota barvy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Vodoznak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Otisknout do obrázku vodoznak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Snížit sytost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Zmenšit nebo zvětšit obrázek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Zachovat poměr stran" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Převzorkování obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Přehodit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Převrátit nebo otočit o 90 stupňů" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Sloupce" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Řádky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Směr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Přejmenovat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "soubor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "Přejmenovat původní obrázek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Čtvercový výřez" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Zakulacený" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Čtvercový" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Zaoblení" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Zaoblit nebo zašpičatit rohy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Poloměr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Levý horní roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Pravý horní roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Levý dolní roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Pravý dolní roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Zvýraznit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Vyplnit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Převodní mód" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Konvertovat barevný mód obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Přizpůsobit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Zmenšit a oříznout obrázek s pevným poměrem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Rozpouštění" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Automatický kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Nastavit automatický kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Odříznutí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Uložit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "Uložit a převádět na jiné typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "PNG optimalizace" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "JPEG kvalita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "JPEG maximální velikost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "TIFF komprese" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Metadata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Medián" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Zkopírovat střední hodnotu pixelu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "Čas Exif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "Čas souboru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "metadata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "Změna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Sekund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Minut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Hodin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Dnů" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Měsíců" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Roků" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Maska" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Aplikovat masku průhlednosti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Převzorkování masky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Text" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Zapsat text na danou pozici" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Písmo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Velikost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Obarvit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Obarvit šedý obrázek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Černá" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Bílá" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopírovat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "Kopírovat původní obrázek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posterizovat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "Snížit počet bitů kanálu barev" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bitů" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Zapsat Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "Zapsat novou hodnotu tagu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Tag (Exif, lptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "Stejně pro všechny strany" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "Pro zdílně pro každou stranu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "Kreslit rámeček uvnitř nebo vně" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "Šířka okraje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Pořadí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Zkopírovat x-tou nejčastější hodnotu pixelu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solarizace" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Invertovat hodnotu všech pixelů nad prahovou hodnotou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Práh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Vyrovnat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Vyrovnat histogram obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "Automaticky (použij orientaci uvedenou v exif)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Ořezat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Otočit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "Překlopit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Stupně šedi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "Vytvořit náhled obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Úhel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Zobrazit pokročilé možnosti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "Aktualizovat JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Komentáře" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Úhel " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Směr " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "Nástroje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "Bezztrátový JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Ořezat obrázek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Otočit o libovolný úhel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Zvětšit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Průhlednost pozadí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Převrátit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Převrátit barvy obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Geotag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "Přidat GPS data" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "GPS data (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "GPS záznam (csv)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "Časový posun (sekundy)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Odraz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Vykreslí odraz podlahy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Hloubka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Mezera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Běžné" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Zkopírovat nejčastější hodnotu pixelu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Zkopírovat nejmenší hodnotu pixelu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Obrys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Nakreslit obrys kolem okrajů obrazu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Barva obrysu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Barva výplně" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "Levý horní roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "Pravý horní roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "Levý dolní roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "Pravý dolní roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "Uživatel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspektiva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Deformovat plochu do prostoru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "Projekce" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Levý úhel zkosení" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Horní úhel zkosení" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Spodní úhel zkosení" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Pravý úhel zkosení" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Převést odstíny šedi na černou a bílou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "Uložit Tagy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "Uložit pouze metadata (bezztrátově)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Jeden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Smazat Tagy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Smazat Exif nebo Iptc tagy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maximum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Zkopírovat maximální hodnotu pixelu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Sytost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Nastavit sytost barev od odstínů šedi po vysokou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Přejmenovat Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "Přejmenování tagu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "z (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "do (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Jas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Nastavit jas od černé po bílou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "Rozmazat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "Uhel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "Rozmáznutí pohybem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Skica tužkou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "Malovat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "Zaostřit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "Sigmoidální kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "Rozostřit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "Vlnka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Obrázkový kouzelník" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "Rozmazat, Polaroid, Stín, Rozostřit..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Barva okraje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "Titulek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "Poloměr uhlu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "Poloměr rozmazání" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "Sigma rozmazání" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "Úhle rozmazání" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "Poloměr malby" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "Poloměr zaostření" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "Sigma zaostření" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "Poloměr skici" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "Sigma skici" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "Úhel skici" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "Poloměr rozostření" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "Sigma rozostření" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "Výška vlny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "Délka vlny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Náčrt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "Převézt do stupňů šedi kresby tužkou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "Detaily stupňů" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "Spustit externí příkaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "Ověřit program" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "Ověřit vstup" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "Ověřit výstup" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "Povolit jako poslední akci" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Tato rozšíření byla úspěšně nainstalována:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatchi se nepodařilo nainstalovat požadovanou funkci." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch se snažil odebrat z Průzkumníka." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Pro tuto funkci je třeba nainstalovat Python Win32 Extensions." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Seznam akcí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Nebyl poskytnut žádný seznam akcí." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Cesta k obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Chcete pokračovat?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Co se bude dít teď?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Pokud restartujete %s, akce se objeví v kontextové nabídce." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch nemůže nainstalovat akci v %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Toto také vyžaduje nainstalovaný balíček python-nautilus." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Dávkové zpracování obrázků pomocí Phatche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "Phatch s %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Zde popište seznam akcí" #~ msgid "Do not create missing folders" #~ msgstr "Nevytvářet chybějící adresáře" #~ msgid "Colour" #~ msgstr "Barva" #~ msgid "Height" #~ msgstr "Výška" #~ msgid "Width" #~ msgstr "Šířka" #~ msgid "Background Colour" #~ msgstr "Barva pozadí" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Ulož metadata (vyžadován exif & iptc plugin)" #~ msgid "colours" #~ msgstr "barvy" #~ msgid "border" #~ msgstr "okraj" #~ msgid "Shadow Colour" #~ msgstr "Barva stínu" #~ msgid "Force Background Colour" #~ msgstr "Vynutit barvu pozadí" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Snížit počet bitů na barevný kanál" #~ msgid "Rename the image file" #~ msgstr "Přejmenovat soubor obrázku" #~ msgid "Save an image" #~ msgstr "Uložit obrázek" #~ msgid "watermark" #~ msgstr "vodoznak" #~ msgid "february" #~ msgstr "únor" #~ msgid "january" #~ msgstr "leden" #~ msgid "april" #~ msgstr "duben" #~ msgid "march" #~ msgstr "březen" #~ msgid "may" #~ msgstr "květen" #~ msgid "june" #~ msgstr "červen" #~ msgid "july" #~ msgstr "červenec" #~ msgid "august" #~ msgstr "srpen" #~ msgid "saturday" #~ msgstr "sobota" #~ msgid "friday" #~ msgstr "pátek" #~ msgid "thursday" #~ msgstr "čtvrtek" #~ msgid "wednesday" #~ msgstr "středa" #~ msgid "tuesday" #~ msgstr "úterý" #~ msgid "monday" #~ msgstr "pondělí" #~ msgid "september" #~ msgstr "září" #~ msgid "october" #~ msgstr "říjen" #~ msgid "november" #~ msgstr "listopad" #~ msgid "december" #~ msgstr "prosinec" #~ msgid "sunday" #~ msgstr "neděle" #~ msgid "new" #~ msgstr "nové" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-bit na pixel, pravé barvy)" #~ msgid "doesn't exist" #~ msgstr "neexistuje" #~ msgid "invalid syntax" #~ msgstr "neplatná syntaxe" #~ msgid "the variable" #~ msgstr "proměnná" #~ msgid "invalid literal" #~ msgstr "neplatný znak" #~ msgid "the integer value" #~ msgstr "celočíselná hodnota" #~ msgid "is zero, but should be non-zero." #~ msgstr "je nula, ale má být nenulové" #~ msgid "is negative, but should be positive" #~ msgstr "je záporné, ale má být kladné" #~ msgid "the file extension" #~ msgstr "přípona souboru" #~ msgid "is invalid." #~ msgstr "je neplatný" #~ msgid "the filename" #~ msgstr "jméno souboru" #~ msgid "does not exist." #~ msgstr "neexistuje" #~ msgid "Save metadata" #~ msgstr "Uložit metadata" #~ msgid "All selected image types" #~ msgstr "Všechny vybrané typy obrázků" #~ msgid "Copy the image file" #~ msgstr "Zkopírovat soubor obrázku" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-bit pixely, barevný videoformát)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8-bit pixely, mapováno pomocí barevné palety)" #~ msgid "&Recent" #~ msgstr "&Nedávné" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "protože Phatch vytváří uživatelské rozhraní automaticky." #~ msgid "Open image file" #~ msgstr "Otevřít obrázkový soubor" #~ msgid "&Preview" #~ msgstr "Ná&hled" #~ msgid "Open image url" #~ msgstr "Otevřít url obrázku" #~ msgid "Phatch Version" #~ msgstr "Phatch verze" #~ msgid "&Skip To Next Image" #~ msgstr "Přeskočit na další obrázek" #~ msgid "Create missing folders" #~ msgstr "Vytvořit chybějící adresáře" #~ msgid "&File" #~ msgstr "&Soubor" #~ msgid "&Export..." #~ msgstr "&Exportovat..." #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Tento seznam akcí byl vytvořen starší verzí %(name)s.\n" #~ "\n" #~ msgid "Filename" #~ msgstr "Název souboru" #~ msgid "Fade all colours to gray" #~ msgstr "Převést na odstíny šedi" #~ msgid "Put colour under transparent image" #~ msgstr "Vyplnit pozadí průhledného obrázku barvou" #~ msgid "for float" #~ msgstr "pro desetinná čísla" #~ msgid "for integer" #~ msgstr "pro celá čísla" #~ msgid "for boolean" #~ msgstr "pro boolovskou hodnotu" #~ msgid "drag & drop any image here" #~ msgstr "přetáhněte sem libovolný soubor" #~ msgid "Copy cell text" #~ msgstr "Kopírovat obsah buňky" #~ msgid "please email" #~ msgstr "prosíme, zašlete e-mail" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "Shell &Pythonu...\tCtrl-P" #~ msgid "Open a python shell for introspection" #~ msgstr "Otevřít shell pythonu pro zkoumání chodu" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Napsat novou akci pro Phatch pomocí PIL" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "&Napsat vlastní akci...\tCtrl-W" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Webové &stránky...\tCtrl-I" #~ msgid "a filename with a valid extension was expected." #~ msgstr "byl očekáván název souboru s platnou příponou" #~ msgid "All default image types" #~ msgstr "Všechny výchozí typy orázků" #~ msgid "Crop or add border to all sides" #~ msgstr "Přidat nebo oříznout okraj" #~ msgid "Scale down only" #~ msgstr "Pouze zmenšit" #~ msgid "Resample Shadow" #~ msgstr "Převzorkování stínu" #~ msgid "By offset" #~ msgstr "S odsazením" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Stupně šedé (8-bit na pixel, černá a bílá)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-bit pixely, oddělené barvy)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-bit celočíselné pixely)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32-bit desetinné pixely)" #~ msgid "the float value" #~ msgstr "desetinné číslo" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "Příkazy dropletu pro tento seznam akcí byly zkopírovány do schránky." #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "PHoto bATCH zpracování a přejmenování" #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch nemohl vytvořit droplet:" #~ msgid "Only an image file is allowed." #~ msgstr "Jsou povoleny jen obrázky." #~ msgid "&Ignore Error" #~ msgstr "&Ignorovat chybu" #~ msgid "&Default Types" #~ msgstr "&Základní typy" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Pro více informací čti Nástroje>Zobrazit log." #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "&Inspektor obrázků (exif)\tCtrl-Space" phatch-0.2.7/locale/da/0000755000000000000000000000000011346363116014554 5ustar rootroot00000000000000phatch-0.2.7/locale/da/LC_MESSAGES/0000755000000000000000000000000011346363116016341 5ustar rootroot00000000000000phatch-0.2.7/locale/da/LC_MESSAGES/phatch.mo0000644000000000000000000007112611346363116020154 0ustar rootroot00000000000000,< + + +'+E+]+b+ q++++++++++,,',:,K,Q,m, v,,, ,,,, ,, -$-+- G-S- Y-3d--- - -- -%-!-(.A.R.a. e. o.y.'.......&/@/F/N/*Q/.|/2// / / / 0)0:0M0R0X0"^000 00 00 000 0 1 1 1 1*1316:1q11 1 1111112262F2!]2 222222222222 3"343S3q3"33(3-3$444L4j4r4)w44444444 4 45,5C5]5v5 555 5$555 566 6=6C6L6T6g66 6 66666 66666677%7,71777>7P7T7t77 77 7 777>7.58 d8r8x8 8 88)88:89%9>9.[9999 9 999'9: !:.:6:;:&@:g:m: r:|: ::::: ::; ;;';%/;U;Y;`;h;q;x;;;;*;;;;<<6<;<B<_<n<w<~<<"<<<< <<<< = =&= B=c= h="t=*=8=;=77>o>>>>>!>?1?H?O?T? [?f?m?????? ??@ "@-@3@F@ M@ X@ c@m@@@@@@'@k@`A |AAAAAAAAB'B-B =B IBVB^B eBsBBB BB BB B BBBCC+C'4C#\C C$CCCCCC C#C>D]D1dDDDD DDDDDE EE!E;E+WE3EEAEFF!F'1FYFbF rF|FF)F F FF FG GGGG0GGG[G ^G2jGGGGGGG G,G H HH:H@HTH*sHH4HAH7I.SIII I I I IIIIIIIIIJJ !J-J5J9JAJIJQJXJ \JiJ{JJJJJ JJJ JJJJJJJJJKKKKK&K+K 1K;KCKFK WKcKhKKK KKKKKKKK KK KK"L %LFL JL TLaLfLkLsL {LLLLLLLKNbNjNNNNNN NNNOO)OBO QO[OkOOOOOO OOO OP P"P ?PLP'dP PP PP P1PQQ QQ,Q4Q"HQkQ*QQQQ Q QQ#R&RARGRNR VR#wR5RRRR+R, S3:SnSuS S"SSSSSSS!ST#T )T5T;TOThT{TT T TT TT TT=T /UPUXUgU$vUUUU UUUVV/V OV]VbVhV wVVVV V VVVV#V!W \*_\ \\\\\\4\]>]C]^]%}]/]]]]] ]^ ^)!^K^ k^y^^^/^^^ ^^ ^^__"_"=_`_f_n_t__ ___ _______'`,`5`T`o````````` `' a1a4aFa KaXaqaa aaa$ab b'b-9b=gb>bAb&ckBk JkTk1ekkkkkk#l &l 4lAl Wlclllqlylllll l5lm m$m+m2m9m Lm0Vm mmmmm!m)mn)n@Hn@n-nn n oo o'o0o 9oCoIoPoUofoko#poo ooooo ooooopp p p"p )p5p;p ApLp^pdpjpqpvp~ppp pppppp pppp pqq#q3q MqXq_qcqjq qq|qq qq qq"qqq qqr rrr "r.r5r9rOrSrCw!P)9\~h. LB 1?G_!{a6Yv<I9N+T/&eVv2LFRI:{H^n| nD=&lzy?E\M=XNUebJo`,4A}oiE7$ @~[r TQ3YF[7q%<-(K/D@X*xt};s#;8Q#j>tW dmR)mxBPO%w'gV( jdzu41khq.fcr6:Ki+" c8|5GZa032^pH0gb]ZOfJ5`y*u s]'"_>-p , $k UMlSWSCA"%s" can not be found.&Abort&About Phatch... Ctrl-Shift-A&Action List Droplet...&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&Image Inspector Droplet...&License&New Ctrl-N&OK&Open... Ctrl-O&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&View3D ObjectsA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAll selected typesAlso check if your hard disk not full. Always save on desktopAmountAngleAngle Apply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAuto ContrastAuto CropAutomatic (use exif orientation)BackgroundBackground ColorBackground OpacityBitsBlackBleedBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder WidthBothBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBox ColorBrightnessBrowseBrowse %sBrowse FolderC&reditsCameraCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthChange value for all images to:Check images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletClipboardCodeColorColor to AlphaColorizeColorize grayscale imageColumnsCommandCommentsCommonConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCopy the original imageCould not open image with %s.CreditsCropCrop or expand the canvas without scalingCrop the imageCrossCutoffDaysDecemberDepthDescribe here the action list.DescriptionDirection Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDoneDownDrag & DropDrops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExif and fileExif timeExpandFalseFebruaryFileFile NameFile(s)FilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsFridayFrom (Exif, Iptc)GapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleGrayscale (8-bit pixels)HighlightHorizontalHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage SizeImage pathsImagesImpossible to load data from action list.InIn Phatch you need to open or create an action list first.Include all subfoldersInspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJanuaryJulyJuneKeep existing images (don't overwrite)LabelLeftLeft PageLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsMake selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMaximum one parameter "%s" is allowedMayMedianMessageMetadataMethodMinimumMinutesModeMondayMonochrome (1-bit pixels, black and white)MonthsMove the selected action downMove the selected action upNo action list provided.No files or folder selected.NoneNormalNothing has been logged yet.Nothing to do.NovemberObjectOctoberOffsetOffset by distance and wrap aroundOneOpacityOpenOpen &Url...Open an action listOpens an actions listOptionsOrientationOverwrite existing imagesParameter "%s.*" is missingPaste this command in a launcherPathPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Photo Batch ProcessorPlease (re)install it.Please install "%s" first.Please upgrade your wxPython.PolaroidPut color under transparent imageQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReady!ReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename the original imageRepeatRepeat imagesReport a bug on launchpad.Resample ImageResolutionRightRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSafe mode protects you from the execution of possibly harmful scripts. Are you sure you want to disable it?Same Method for All CornersSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save and convert to other typesSave last changes toSaves an action listSaves an action list asScaleScale Down OnlyScale ImageScale MethodSecondsSelectSelect ObjectSelect RotationSelect Rotation for %sSelect action listSelectionSeparateSeptemberShadowShadow BlurShadow ColorSharpenShear 2d or 3dShow &Log... Ctrl-LShow Advanced OptionsShow LogShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.Show report of processed imagesSizeSketchSliderSolarizeSorry, %s.Sorry, unable to open these images:Sorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStarsStars ColorStart a new action listStop for errorsStringStudy the action plugins in:SundayTIFF CompressionTextThe action list is empty.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTo (Exif, Iptc)Tools to handle the current action listTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTranslate Phatch in your native language.TranslationTransparentTransparent BackgroundTransposeTresholdTrueTuesdayTypesUnable to open fileUnable to remove imageUnsaved Action ListUpUpdate JPEGUse the Image Inspector to list all the variables.UserUtilityValueVerboseVerticalVertical OffsetView SourceWarning: python-wxversion is not installed. WatermarkWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite text at a given positionYCbCr (3x8-bit pixels, color video format)YearsYou can only use files with the following extensionsYou need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,a filename with a valid extension was expectedabortactionsantialiasapplicationautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscolorcompressioncontourdaydecimaldefaultdesktopdetaildpiedge enhanceedge enhance morefalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameformatdescriptionframegammaheighthourignoreimagesintegerleftloadingmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundorientationpathplease install pyexiv2positive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existtoptransformtransparencytruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-02-05 16:51+0000 Last-Translator: AJenbo Language-Team: Danish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) "%s" blev ikke fundet.&Afbryd&Om Phatch... Ctrl-Shift-A&Handlingsliste Droplet...&Tilføj&Tilføj... Ctrl-+&Spørg efter hjælp%Batch&Annullér&Luk&Kollaps Alt Ctrl-Shift-E&Fortsæt alligevel&Deaktiver Ctrl-0&Dokumentation... Ctrl-M&Ned Ctrl-Down&Redigér&Aktiver Ctrl-1&Udfør... Ctrl-Return&Udvid Alt Ctrl-E&Forum... Ctrl-F&Hjælp%Image Inspektør Droplet...&Licens&New Ctrl-N&Ok&Open... Ctrl-O&Quit Ctrl-Q&Seneste Droplet...&Fjern Ctrl--&Rapporter en fejl... Ctrl-B&Save Ctrl-S&Vis Beskrivelse Ctrl-H&Hvis skabelon for handlingstilføjelse&Værktøjer&Oversæt Phatch... Ctrl-T&Op Ctrl-Up&Vis3D-objekterEn html tutorial vil åbne i din internetbrowser.OmHandlingAction listerHandlingslisteTilføjTilføj en handlingJuster lysstyrke fra sort til hvidJuster fra grå til sort & hvidJuster farvemætning fra gråtone til højForskyd vandretForskyd lodretAlleAlle FilerAlle filerAlle valgte typerTjek også om din harddisk er fuld Gem altid på skrivebordetAntalVinkelVinkel Påfør en gennemsigtighedsmaskeTilføj for fremtidige fejl Tilføj med fliselæg, skalering og uigennemsigtighedaprilKunstSomForbind Billeder med Handlingsliste i %s...Forbind Billede med Billedinspektør i %s...Forbind Billeder med Seneste Handlingsliste i %s...augustAutomatisk KontrastAutobeskærAutomatisk (brug exif-orientering)BaggrundBaggrundsfarveBaggrunduigennemsigtighedBitSortBlødSlør, Skærp, Relief, Jævn, ...BooleanRammeRammebreddeBeggeNederst til venstreNederste venstre hjørneNederst til højreNederste højre hjørneNedre SkærefaktorBoksfarveLysstyrkeGennemseGennemse %sGennemse Mappe&TakkelisteKameraKan ikke udføre handling %(a)s på billede '%(i)s' i mappe:Kan ikke udføre handling %(a)s:LærredLærredshøjdeLærredsbreddeSæt værdien på alle billeder til:Tjeck billeder førstKontrollerer billederValgVælg Fil(er)Vælg en mappeVælg en handlingsliste fil...Vælg et billedeVælg en billed mappeVælger folderen for droplettenUdklipsholderKodeFarveFarve til alfaFarvelægFarvelæg gråtonet billedeKolonnerKommandoKommentarerAlmindeligBevar proportionerKontrastOmdannelsestilstandOmdan farvetilstanden af et billedeKopierer den maximale pixelværdiKopierer middel pixelværdienKopierer den minimale pixel værdiKopierer den mest almindelige pixelværdiKopierKopier Handlingsliste som %Kommando til UdklipsholderenKopier Billedeinspektør som Handling til UdklipsholderenKopier S&eneste som Kommando til UdklipsholderenKopier det originale billedeKunne ikke åbne billedet med %s.ÆreBeskærBeskær eller udvid kanvas uden skaleringenBeskær billedetKrydsSkær afDagedecemberDybdeBeskriv handlingslisten herBeskrivelseRetning Deaktivér handlingViser information om dette program.Kontroller ikke billeder førstVil du fortsætte?Vil du overskrive den?DokumentationUdførtNedTræk & SlipKaster en sløret skygge under et fotoKaster en reflektionEffektAktivér handlingIndtast en billed-urlUdlignUdlign billedhistogrammetFejlEksemplerKørKør en handlingKør handlingslistenUdfører handlingslistenExif og filExif tidUdvidFalskfebruarfilFilnavnFilerFilterTilpasVend Venstre HøjreVend Op NedFlip eller rotér 90 graderFloatMappeSkrifttypeSkrifttyperfredagFra (Exif, Iptc)AfstandGå til Phatch dokumentationen.Gå til Phatch forummetGå til Phatch hjemmesiden.GråtoneGråskala (8-bit pixels)FremhævHorisontalVandret ForskudtTimerHvis du genstarter %s, vil handlingen opstå i kontekstmenuen.Hvis du vil tilføje et plugin til Phatch,Ignorer fejlBilledBillede InspektørBilledstørrelseBBillederDet var ikke muligt at få data fra handlingslisten.II Phatch skal du åbne eller oprette en handlingsliste først.Inkludér alle undermapperInspicer EXIF & IPTC mærkaterInspicer EXIF og & IPTC mærkaterGennemse metadata (kræver exif og iptc plugin)Inspicer med PhatchIntegerHel+Hel+0InteraktivForkerte billederSpejlvendInverter alle pixelværdier over tærskelSpejlvend farverne i et billedeJPEG-kvalitetjanuarjulijuniBevar eksisterende billedfiler (overskriv ikke)EtiketteVenstreVenstre sideVenstre SkærevinkelBibliotekerLicensLogVis exif og iptc tagsGør den valgte farve gennemsigtigGør billedet mindre eller størremartsMarkérMaskeMaximer billedekontrastenMaximumKun en parameter "%s" er tilladtmajMedianMeddelelseMetadataMetodeMinimumMinutterFunktionsmådemandagMonochrom (1bit pixels, sorte og hvide)MånederRyk den markerede handling nedRyk den valgte handling opIngen handlingsliste forsynet.Ingen filer eller mapper valgtIngenNormalIntet er blevet gemt endnu.Intet at gørenovemberObjektoktoberForskydningForskyd ved afstand og emballer omkringEnUigennemsigtighedÅbnÅbn &Url...Åben en handlings listeÅbner en handlingslisteValgmulighederOrienteringOverskriv nuværende billederParametren "%s.*" manglerIndsæt denne kommando i en launcherStiPerspektivPhatch kan ikke håndtere %d billede(r)Phatch kunne ikke installere handlingen i %s:Det lykkedes ikke Phatch at installere den anmodede funktion.Phatch prøvede at afinstallere den selv fra Windows Explorer.Phatch vil tilføje en for dig, check venligst dens instillinger.Photo Batch Processor(Gen)installer venligst.Vær venlig først at installere "%s".Opgrader venligst din wxPython.PolaroidLæg farve under gennemsigtigt billedeAfslut programmetRGBA (4x8-bit pixels, RGB med gennemsigtighed)RadiusRangKlar!ReflektionFjernFjern Forbindelse fra %s...Fjern den markerede handlingFjern den valgte handlingOmdøbOmdøb det originale billedeGentagGentag billederRapporter en fejl i launchpad.InterpolationOpløsningHøjreHøjre SkærefaktorRoterRotér 180Rotér 270Rotér 90Roter med vilkårlig vinkelAfrundAfrundetAfrundede og krysede hjørnerRækkerKør %s som en gui dropletKør %s som konsolprogram uden et grafisk interfaceSafe mode beskytter dig mod kørsel af potentielt skadelig kode. Er du sikker på at du vil deaktive den?Samme metode til alle hjørnerMætninglørdagGemSave &As... Ctrl-Shift-SGem Handlingsliste som...Gem og konverter til andre typerGem sidste ændringer tilGemmer en handlingslisteGem en handlingsliste somSkalérSkaler kun nedSkaler billedeSkaleringsmetodeSekunderVælgVælg objektVælg rotationVælg rotation for %sVælg handlingslisteValgSeparerseptemberSkyggeSkygge SløreSkyggefarveGør skarpereKlip 2d eller 3dHvis &Log... Ctrl-LVis avancerede indstillingerVis logVis alle parametrene for denne handlingVis beskrivelse af handlingslistenVis logfilHvis kun etiketter af handlingerne.Vis rapport over bearbejdede billederStørrelseSketchGliderSolarisérBeklager, %s.Beklager, disse billeder kunne ikke åbnesDesværre, you er nødt til at installere %s handling for denne handlingsliste.KildeVælg lokalt sprog (for eksempel en eller en_GB)SponsorerKvadratStjernerStjernefarveStart en ny handlingslisteStop for fejlStringStuder handlings pluginet i:SøndagTIFF-komprimeringTekstHandlingslisten er tomDer er ingen handling aktiveretDer skulle være en 'Save' action i slutningenDisse endelser er med held blevet installeret: Denne fil eksisterer allerede.Dette kræver også at python-naituilus pakken er installeret.torsdagFliselægTil (Exif, Iptc)Værktøjer til at håndtere denne handlingslisteØverst til venstreØverste venstre hjørneØverst til højreØverste højre hjørneØvre SkærevinkelOversæt Phatch til dit modersmål.OversættelseGennemsigtigGennemsigtig baggrundTransponereTærskelSandtirsdagTyperKunne ikke åbne filKunne ikke fjerne billedetListe over ikke gemte actionsOpOpdater jpegBrug Billedinspektøren til at liste alle variablerneBrugerVærktøjVærdiOrdrigLodretLodret ForskydningVis kildeAdvarsel: python-wxversion er ikke installeret. VandmærkeonsdagHvad vil du lave nu?HvidSkriv HandlingstilføjelseSkriv tekst ved en given positionYCbCr (3x8-bit pixels, video farveformat)ÅrDu kan bruge filer med følgende endelserDu skal installere Python Win32 Tilføjelsen for denne funktion.Du behøver kun at kende PIL for at skrive et plug for en Phatchet filnavn med gyldig extension var forventetafbrydHandlingerantialiasprogramautomatiskbaggrundbikubiskbilineærslørboolskbundudvig din søgenmidtvalgtryk '+' for at tilføje handlingerfarvekompressionkonturdagdecimalstandardskriveborddetaljedpikantforstærkningmere kantforstærkningfalskfilfilnavnfilstørrelsefilterfind kanterfloatmappefoldernavnformatbeskrivelserammegammahøjdetimeignorerbillederintegervenstreindlæsermetadatamidtminuttilstandmånedmånedsnavntættestnejingen %s mærkater fundetorienteringstiInstaller venligst pyexiv2positiv integerpositiv, ikke-nul integeropløsninghøjrerodsekundskærpstørrelseskipjævnjævn merestrengundermappetagfilextensionen "%s" er ikke gyldigfilnavnet "%s" eksisterer ikketopmodificergennemsigtighedsandtypeadvarselugedagugedagsnavnbreddemedwxPython Version Fejlårjaphatch-0.2.7/locale/da/LC_MESSAGES/phatch.po0000644000000000000000000034173411346363116020164 0ustar rootroot00000000000000# Danish translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-02-05 16:51+0000\n" "Last-Translator: AJenbo \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Inspicer med Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Inspicer EXIF & IPTC mærkater" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Eksempler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Kør %s som konsolprogram uden et grafisk interface" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Kør %s som en gui droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Gem altid på skrivebordet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignorer fejl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interaktiv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Bevar eksisterende billedfiler (overskriv ikke)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Vælg lokalt sprog (for eksempel en eller en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Gennemse metadata (kræver exif og iptc plugin)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Inkludér alle undermapper" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Kontroller ikke billeder først" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Ordrig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" "Desværre, you er nødt til at installere %s handling for denne handlingsliste." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "I Phatch skal du åbne eller oprette en handlingsliste først." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Intet er blevet gemt endnu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "afbryd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "skip" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignorer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "tryk '+' for at tilføje handlinger" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Åbn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Åben en handlings liste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Kør" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Kør en handling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Tilføj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Tilføj en handling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Fjern" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Fjern den markerede handling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Op" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Ryk den valgte handling op" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Ned" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Ryk den markerede handling ned" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Billede Inspektør" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Vis exif og iptc tags" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Beskrivelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Vis beskrivelse af handlingslisten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Vælg en handlingsliste fil..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Gem Handlingsliste som..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Denne fil eksisterer allerede." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Vil du overskrive den?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "program" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "ramme" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "Handlinger" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "En html tutorial vil åbne i din internetbrowser." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Studer handlings pluginet i:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Hvis du vil tilføje et plugin til Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Træk & Slip" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch vil tilføje en for dig, check venligst dens instillinger." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Gem sidste ændringer til" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" "Safe mode beskytter dig mod kørsel af potentielt skadelig kode.\n" "Er du sikker på at du vil deaktive den?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Vælger folderen for dropletten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "Det var ikke muligt at få data fra handlingslisten." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Vælg handlingsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "Tjek også om din harddisk er fuld\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Vælg en mappe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Vælg Fil(er)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Vælg en billed mappe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "Alle valgte typer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "billeder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "Udklipsholder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Gennemse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "Gennemse %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "fil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Mappe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "standard" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Vis kilde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "udvig din søgen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Sti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&New \tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Start en ny handlingsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Open...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Åbner en handlingsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Save\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Gemmer en handlingsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Save &As...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Gem en handlingsliste som" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Kopier Handlingsliste som %Kommando til Udklipsholderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Indsæt denne kommando i en launcher" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Kopier S&eneste som Kommando til Udklipsholderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Kopier Billedeinspektør som Handling til Udklipsholderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Quit\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Afslut programmet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Tilføj... \tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Fjern\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Fjern den valgte handling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Aktiver\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Aktivér handling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Deaktiver\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Deaktivér handling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Op\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Ned\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Redigér" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Vis Beskrivelse\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Værktøjer til at håndtere denne handlingsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Udvid Alt\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Vis alle parametrene for denne handling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Kollaps Alt\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Hvis kun etiketter af handlingerne." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Vis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Udfør...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Kør handlingslisten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "Vis rapport over bearbejdede billeder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Hvis &Log...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Vis logfil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Værktøjer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Gå til Phatch hjemmesiden." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Dokumentation...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Gå til Phatch dokumentationen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Gå til Phatch forummet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Oversæt Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Oversæt Phatch til dit modersmål." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Rapporter en fejl...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Rapporter en fejl i launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&Om Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Viser information om dette program." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Hjælp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "Udført" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Vis log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "Klar!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Du behøver kun at kende PIL for at skrive et plug for en Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Hvis skabelon for handlingstilføjelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Kode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Spørg efter hjælp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&Ok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Skriv Handlingstilføjelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Tilføj for fremtidige fejl " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Afbryd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Meddelelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Fortsæt alligevel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Valgmuligheder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Typer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Gennemse Mappe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Kilde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Filer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Stop for fejl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Tjeck billeder først" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Overskriv nuværende billeder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "Gentag billeder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Annullér" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "%Batch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Billed" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Etikette" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "String" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Valg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Farve" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Opløsning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Filnavn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "I" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Som" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Funktionsmåde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bikubisk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Hel+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Hel+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horisontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Glider" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "januar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "februar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "marts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "april" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "maj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "juni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "juli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "august" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "september" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "oktober" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "november" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "december" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "mandag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "tirsdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "onsdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "torsdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "fredag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "lørdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Søndag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "baggrund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Alle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Vælg objekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "Vælg rotation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Venstre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Højre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Nederst til venstre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Nederst til højre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Øverst til venstre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Øverst til højre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientering" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Forskydning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Vandret Forskudt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Lodret Forskydning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Fliselæg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Skalér" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Markér" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Uigennemsigtighed" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Metode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Photo Batch Processor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Sand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Falsk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "sand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "falsk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Liste over ikke gemte actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Action lister" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Alle Filer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Beskriv handlingslisten her" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Der skulle være en 'Save' action i slutningen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "med" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Forbind Billeder med Handlingsliste i %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Forbind Billeder med Seneste Handlingsliste i %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Forbind Billede med Billedinspektør i %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Fjern Forbindelse fra %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "&Handlingsliste Droplet..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "&Seneste Droplet..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "%Image Inspektør Droplet..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Inspicer EXIF og & IPTC mærkater" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Handling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Intet at gøre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Handlingslisten er tom" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Der er ingen handling aktiveret" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Kontrollerer billeder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch kan ikke håndtere %d billede(r)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Forkerte billeder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Ingen filer eller mapper valgt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Kunne ikke åbne fil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Kan ikke udføre handling %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Kan ikke udføre handling %(a)s på billede '%(i)s' i mappe:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Udfører handlingslisten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Vælg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "dag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "skrivebord" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "foldernavn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "filnavn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "filstørrelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "mappe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "time" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "måned" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "månedsnavn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "sti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "rod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "sekund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "undermappe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "type" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "ugedag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "ugedagsnavn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "år" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "kompression" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "gamma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "højde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "tilstand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "bredde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "formatbeskrivelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "størrelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "gennemsigtighed" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "orientering" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Brug Billedinspektøren til at liste alle variablerne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Du kan bruge filer med følgende endelser" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "venstre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "midt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "højre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "top" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "midt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "bund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monochrom (1bit pixels, sorte og hvide)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "Gråskala (8-bit pixels)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bit pixels, RGB med gennemsigtighed)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "YCbCr (3x8-bit pixels, video farveformat)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "slør" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "kontur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detalje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "kantforstærkning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "mere kantforstærkning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "find kanter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "jævn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "jævn mere" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "skærp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "tættest" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilineær" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Rotér 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Rotér 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Rotér 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Vend Venstre Højre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Vend Op Ned" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "streng" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "positiv integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "positiv, ikke-nul integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "opløsning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "boolsk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "valg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "filextensionen \"%s\" er ikke gyldig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "et filnavn med gyldig extension var forventet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "filnavnet \"%s\" eksisterer ikke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "\"%s\" blev ikke fundet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "Parametren \"%s.*\" mangler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "Kun en parameter \"%s\" er tilladt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "automatisk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Ingen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "Vær venlig først at installere \"%s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "Kunne ikke åbne billedet med %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Kommando" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Fejl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Advarsel: python-wxversion er ikke installeret.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "(Gen)installer venligst." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Opgrader venligst din wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPython Version Fejl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "&Takkeliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Luk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Om" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Ære" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dokumentation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Oversættelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Kunst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Biblioteker" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Sponsorer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Værdi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "advarsel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Billeder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Alle filer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "Åbn &Url..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "Kunne ikke fjerne billedet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "Sæt værdien på alle billeder til:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "Beklager, %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "Beklager, disse billeder kunne ikke åbnes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Vælg et billede" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Indtast en billed-url" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "Installer venligst pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "ingen %s mærkater fundet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Tilføj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "indlæser" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "nej" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "ja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Valg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Skrifttyper" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Skygge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Kaster en sløret skygge under et foto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Ramme" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Skygge Sløre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Baggrundsfarve" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Skyggefarve" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "Skaler billede" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "Separer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "Venstre side" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "Boksfarve" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "Kamera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "Gennemsigtig baggrund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Baggrund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "Gennemsigtig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "Autobeskær" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "Stjerner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "Stjernefarve" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "3D-objekter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "Objekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "Billedstørrelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "Vælg rotation for %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Effekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Slør, Skærp, Relief, Jævn, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Gentag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Antal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "modificer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Forskyd ved afstand og emballer omkring" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Lærred" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Beskær eller udvid kanvas uden skaleringen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "Lærredsbredde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Lærredshøjde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Forskyd vandret" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Forskyd lodret" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Farve til alfa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "farve" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Gør den valgte farve gennemsigtig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Vandmærke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Tilføj med fliselæg, skalering og uigennemsigtighed" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Gør billedet mindre eller større" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Bevar proportioner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Interpolation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "Skaler kun ned" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Transponere" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Flip eller rotér 90 grader" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Kolonner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Rækker" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "Begge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Lodret" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Omdøb" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "fil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "Omdøb det originale billede" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Kryds" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Afrundet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Kvadrat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Afrund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Afrundede og krysede hjørner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Radius" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "Samme metode til alle hjørner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Øverste venstre hjørne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Øverste højre hjørne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Nederste venstre hjørne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Nederste højre hjørne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Fremhæv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Læg farve under gennemsigtigt billede" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Omdannelsestilstand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Omdan farvetilstanden af et billede" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Tilpas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Blød" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Automatisk Kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maximer billedekontrasten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Skær af" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Gem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "Gem og konverter til andre typer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "JPEG-kvalitet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "TIFF-komprimering" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Metadata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Median" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Kopierer middel pixelværdien" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "Exif tid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "Exif og fil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "metadata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Sekunder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Minutter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Timer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Dage" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Måneder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "År" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Maske" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Påfør en gennemsigtighedsmaske" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Tekst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Skriv tekst ved en given position" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Skrifttype" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Størrelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Farvelæg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Farvelæg gråtonet billede" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Sort" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Hvid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "Kopier det originale billede" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "Rammebredde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Rang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solarisér" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Inverter alle pixelværdier over tærskel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Tærskel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Udlign" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Udlign billedhistogrammet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "Automatisk (brug exif-orientering)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Beskær" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Roter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Gråtone" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Vinkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Vis avancerede indstillinger" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "Opdater jpeg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Kommentarer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Vinkel " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Retning " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "Værktøj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Beskær billedet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Roter med vilkårlig vinkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Udvid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Baggrunduigennemsigtighed" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Spejlvend" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Spejlvend farverne i et billede" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Reflektion" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Kaster en reflektion" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Dybde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Afstand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "Skaleringsmetode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Almindelig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Kopierer den mest almindelige pixelværdi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Kopierer den minimale pixel værdi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "Bruger" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspektiv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Klip 2d eller 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Venstre Skærevinkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Øvre Skærevinkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Nedre Skærefaktor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Højre Skærefaktor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Juster fra grå til sort & hvid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "En" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maximum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Kopierer den maximale pixelværdi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Mætning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Juster farvemætning fra gråtone til høj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "Fra (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "Til (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Lysstyrke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Juster lysstyrke fra sort til hvid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "Gør skarpere" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Sketch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Disse endelser er med held blevet installeret:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Det lykkedes ikke Phatch at installere den anmodede funktion." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch prøvede at afinstallere den selv fra Windows Explorer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Du skal installere Python Win32 Tilføjelsen for denne funktion." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Handlingsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Ingen handlingsliste forsynet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Vil du fortsætte?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Hvad vil du lave nu?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Hvis du genstarter %s, vil handlingen opstå i kontekstmenuen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch kunne ikke installere handlingen i %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Dette kræver også at python-naituilus pakken er installeret." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "doesn't exist" #~ msgstr "eksistere ikke" #~ msgid "for integer" #~ msgstr "for integer" #~ msgid "for float" #~ msgstr "for float" #~ msgid "is zero, but should be non-zero." #~ msgstr "er nul, men burde være ikke-nul" #~ msgid "is negative, but should be positive" #~ msgstr "er negativ, men burde være positiv" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-bit pixels, farve video format)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-bit pixels, farveadskillelse)" #~ msgid "new" #~ msgstr "ny" #~ msgid "Colour" #~ msgstr "Farve" #~ msgid "Filename" #~ msgstr "Filnavn" #~ msgid "All selected image types" #~ msgstr "Alle valge billed typer" #~ msgid "All default image types" #~ msgstr "Alle standart billed typer" #~ msgid "please email" #~ msgstr "email venligst" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "da Phatch vil generere et bruger interface automatisk" #~ msgid "&File" #~ msgstr "&Fil" #~ msgid "&Skip To Next Image" #~ msgstr "&Gå videre til næste billede" #~ msgid "&Ignore Error" #~ msgstr "Ignorér fejl" #~ msgid "Phatch Version" #~ msgstr "Phatch Version" #~ msgid "Force Background Colour" #~ msgstr "Tving Baggrundsfarve" #~ msgid "Background Colour" #~ msgstr "Baggrundsfarve" #~ msgid "Save an image" #~ msgstr "Gem et billede" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-bit pixels, ægte farve)" #~ msgid "Create missing folders" #~ msgstr "Lav manglene mapper" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Gem metadata (kræver exif og iptc plugin" #~ msgid "colours" #~ msgstr "farver" #~ msgid "Do not create missing folders" #~ msgstr "Lav ikke manglende mapper" #~ msgid "Height" #~ msgstr "Højde" #~ msgid "Width" #~ msgstr "Bredde" #~ msgid "saturday" #~ msgstr "lørdag" #~ msgid "friday" #~ msgstr "fredag" #~ msgid "thursday" #~ msgstr "torsdag" #~ msgid "wednesday" #~ msgstr "onsdag" #~ msgid "sunday" #~ msgstr "søndag" #~ msgid "monday" #~ msgstr "mandag" #~ msgid "tuesday" #~ msgstr "tirsdag" #~ msgid "Put colour under transparent image" #~ msgstr "Put farve under transparant billede" #~ msgid "Rename the image file" #~ msgstr "Omdøb billedfilen" #~ msgid "Copy the image file" #~ msgstr "Kopier billedfilen" #~ msgid "Shadow Colour" #~ msgstr "Skygge Farve" #~ msgid "Scale down only" #~ msgstr "Skaler kun ned" #~ msgid "watermark" #~ msgstr "vandmærk" #~ msgid "january" #~ msgstr "januar" #~ msgid "february" #~ msgstr "februar" #~ msgid "march" #~ msgstr "marts" #~ msgid "april" #~ msgstr "april" #~ msgid "may" #~ msgstr "maj" #~ msgid "june" #~ msgstr "juni" #~ msgid "july" #~ msgstr "juli" #~ msgid "august" #~ msgstr "august" #~ msgid "september" #~ msgstr "september" #~ msgid "october" #~ msgstr "oktober" #~ msgid "november" #~ msgstr "november" #~ msgid "december" #~ msgstr "december" #~ msgid "the variable" #~ msgstr "variablen" #~ msgid "invalid syntax" #~ msgstr "ugyldig syntax" #~ msgid "the integer value" #~ msgstr "heltalsværdien" #~ msgid "the float value" #~ msgstr "den flydende værdi" #~ msgid "the file extension" #~ msgstr "filendelsen" #~ msgid "is invalid." #~ msgstr "er ugyldig" #~ msgid "a filename with a valid extension was expected." #~ msgstr "et filnavn med en gyldig endelse var ventet." #~ msgid "the filename" #~ msgstr "filnavnet" #~ msgid "does not exist." #~ msgstr "eksisterer ikke." #~ msgid "Save metadata" #~ msgstr "Gem metadata" #~ msgid "&Recent" #~ msgstr "&Seneste" #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch kunne ikke skabe dropletten:" #~ msgid "Only an image file is allowed." #~ msgstr "Kun en billedfil er tilladt." #~ msgid "Open image file" #~ msgstr "Åben billedfil" #~ msgid "Open image url" #~ msgstr "Åben billedeurl" #~ msgid "&Default Types" #~ msgstr "%Standard Typer" #~ msgid "border" #~ msgstr "grænse" #~ msgid "Crop or add border to all sides" #~ msgstr "Beskær eller tilføj rammer til alle sider" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Reducer antallet af bit af farvekanal" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Gråtone (8-bit pixels, sort og hvid)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8-bit picels, kortlagt ved brug af farvepalette)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-bit hele pixels)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32-bit flydende pixels)" #~ msgid "invalid literal" #~ msgstr "ugyldig ordret" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Se Værktøjer>Vis Log for flere detaljer." #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "PHoto bATCH Processor & Omdøber" #~ msgid "drag & drop any image here" #~ msgstr "træk og slip hvilketsomhelst billede her" #~ msgid "Copy cell text" #~ msgstr "Kopier celletekst" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Hjemme&side...\tCtrl-I" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "&Skriv et Handlingsplugin...\tCtrl-W" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Skriv et nyt handlings plugin for Phatch med PIL." #~ msgid "Fade all colours to gray" #~ msgstr "Falm alle farver til grå" #~ msgid "By offset" #~ msgstr "Af forskydning" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Denne handlingsliste var lavet af en ældre %(name)s version.\n" #~ "\n" #~ msgid "&Export..." #~ msgstr "&Eksportér..." #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "&Billedinspektør (exif)\tCtrl-Space" phatch-0.2.7/locale/de/0000755000000000000000000000000011346363116014560 5ustar rootroot00000000000000phatch-0.2.7/locale/de/LC_MESSAGES/0000755000000000000000000000000011346363116016345 5ustar rootroot00000000000000phatch-0.2.7/locale/de/LC_MESSAGES/phatch.mo0000644000000000000000000010256611346363116020163 0ustar rootroot00000000000000/ #.... . //./F/K/ Z/ e/s/z/////////00+0>0F0M0^0d00 0 00000 0000 1 $111 J1k1r1 11113111 1 12 2 2%"2!H2(j2222 2 22'23#3A3H3N3U3o3&3333*3.32!4T4[4 `4 n4 444 4&45 555"5"?5b5j5 q5~5 55 555 55 5 56 6666T6p6 w6 6666666677!)7 K7U7Z7`7o7x777+77777 7 8 8"8B8a88"888(8-9$<9a9i9)n99999999 99 9 : :B:]:,l:::: ::5:2;(7; `;!l;;;$.<S<-f<< <<<<<<<<=%===S=Z=c={=== === ========>>;>J>a>h>w>{>>>>> > > >> ?>?.O? ~??? ? ????0? @%@.B@q@@@ @ @@@'@@ AA'A;ACAHA&MAtAzAA AAAA A9A B )BJBPBUBZBrBzB~BBBBBBBBB*BBBC*CCC"`CCCCCCC"CCDD#D (D5DID_D gDsDD D DD D D"D*E8>E(wE;E7E6FKFZFpFFFF F&F!FG1+G]GdGiG pG{GGGGGGGGHH -H ;HFHLH_H fH qH |HHHHHHH'H I )I4I=IBI[IrIIIIIIII JJ %J /J9J @J LJYJaJpJ JJJ'J#J J$ K/K4K;KBK KKlK>K"KK1K#L,L3LKL[LbLLLLLLLLHL'M+CM3oMMMAMN$N')NQNUN^N nNxNNNN)N N NNOOOO(O?OSO[O^O tO2OOOOO O(O,P f wf=f ff&fg.gg+h3h:hKh ]hhhh h hhhhh i ii7i>iFi Li Vi`i hisi ziiiiii i i=i3jNjVjfjnjsj%zjj j j j jjkFk1`kkk k k kkk%kLl Ml%nl1llll l m m m**m Umvmmmmmm(m m nn &n3n :nDn_nJrn!n%no ooo:oBo FoQoYoaogooowooooo'o&oo0p/Hpxp(ppppp3p q!q AqKqSqoqq q q!qqq&r-r2r Br*Nr2yrJr,rF$sHks:s sst4tIt`t it>ut$ttt uuu !u+u Au#Ku!ouu u u%uuuv (v3v:vOv Vv cv pv|vv v!vvv,v$w DwOw Ww$aww)w"ww3 x AxKxTx lxwxxx xxx xxxyy!1ySy%fy'yy)yyy zz3"z Vz<wz8zz.z #{ -{9{W{ k{x{{{ {{{{{N |"\|0|5||}X} x} }6}} }} }}~~&~#6~ Z~ g~ q~{~~~~~~~ ~"45jo E1 !/ 6 BOXrx+9JFAO8 ʁԁ ݁   +9?Sho%t Ƃ͂!т )0 6 @M Tbq x  ƃ̓ԃڃ 0#B fqx   DŽ Ԅ " !&* 2<KRVns5U=ZpG,#):{z$.h %VXW1u$VFQ4" jNo< 3M`,26 C<{aS;5Aj3FR*_}H> Yc~?>DqNfH1s;48dL#%!0-?v7 ]d}ks(#&Eyu9+O` IKWhg"xC+g Jc^/m$7(P/8B2:b|A\w-y&%LS-YO Qk' [.*_'!r,0IbnXr i"ewf!o=mD.z&lZR6vql@E~*]TP|^iatM[   \) +KJx@'T)9  Un/p(GBte%(name)s Shell%(name)s actions%d issues were logged%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List Droplet...&Add&Add... Ctrl-+&All Types&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Fonts&Forum... Ctrl-F&Help&Image Inspector Droplet...&License&New Ctrl-N&No Types&OK&Open...&Open... Ctrl-O&Phatch&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Report a Bug... Ctrl-B&Safe Mode (recommended)&Save Ctrl-S&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&Update&User&ViewA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd TagAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAll selected typesAlso check if your hard disk not full. Always save on desktopAlways show status dialog when doneAmountAngleAngle Apply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastAutomatic (use exif orientation)BackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlurBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse %sBrowse FolderBulletBy OffsetC&reditsCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthCharcoalCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletClipboardCodeColorColor to AlphaColorizeColorize grayscale imageColumnsCommandCommand did not produce an output image: %sCommentsCommonConstrain ProportionsContourContour ColorContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDecemberDepthDesaturateDescribe here the action list.DescriptionDirectionDirection Disable Safe Mode in the Tools menu if you trust this action list.Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDoneDouble click to open or right click for more options.DownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDraw border inside or outsideDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEasily batch process images and edit metadataEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorExamplesExecuteExecute external commandExecute the actionExecute the action listExecuting action listExpandExplorerFade all colors to grayFalseFebruaryFileFile NameFile(s)FillFill ColorFilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsFor more information see the tutorials (Help>Documentation)Force Background ColorFridayGPS Data (gpx)GapGeekGeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHighlightHorizontalHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagemagickImagesInInclude all subfoldersInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LabelLeftLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsLossless JPEGLossless JPEG transformation does not work on a %s image:Make selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMayMedianMessageMethodMiddleMinimumMinutesMirrorModeMondayMonochrome (1-bit pixels, black and white)MonthsMove the selected action downMove the selected action upNo action list provided.No files or folder selected.No save action required at the endNormalNothing has been logged yet.Nothing to do.NovemberOctoberOffsetOffset by distance and wrap aroundOne image done in %sOne issue was loggedOpacityOpenOpen &RecentOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesPHoto bATCH ProcessorPNG OptimizePaste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch will generate the user interface automatically.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please delete "%s".Please upgrade your wxPython.PolaroidPosterizeProcess with recent Phatch action listPut color under transparent imageQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReady!ReflectionRegenerate thumbnailRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRepeatReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRightRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSame Method for All CornersSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save and convert to other typesSave last changes toSaves an action listSaves an action list asScaleSecondsSee "%s" for more details.SelectSelect ObjectSelect action listSelectionSeptemberShadowShadow BlurShadow ColorSharpenShear 2d or 3dShow &Log... Ctrl-LShow &ReportShow Advanced OptionsShow LogShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSketchSliderSolarizeSorry, "%s" is not a valid path.Sorry, no valid files foundSorry, you need to install the %s action for this action list.Sorry, your settings seem corrupt.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:SundayTIFF CompressionTagTag (Exif, Iptc)Tag exists alreadyTextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This action list is unsafe:This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTransformationTransformation Translate Phatch in your native language.TranslationTransposeTresholdTrueTuesdayTypesUnable to open fileUnable to remove imageUnsaved Action ListUnsharpUpUpdate Exif ThumbnailUpdate JPEGUse the Image Inspector to list all the variables.ValueVerboseVerticalVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWaveWave HeightWave LengthWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite text at a given positionYearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,a filename with a valid extension was expectedabortactionsantialiasapplicationautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcan not be emptycenterchoiceclick '+' to add actionscompressioncontourdaydecimaldefaultdetaildpidrag & drop any images hereedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerleftloadingmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundpathplease install pyexiv2positive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth moresourcestringsubfoldertagthe filename "%s" does not existtoptransformtruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-03-09 14:26+0000 Last-Translator: stani Language-Team: Stani MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) X-Poedit-Language: German X-Poedit-SourceCharset: utf-8 X-Poedit-SearchPath-0: /home/stani/sync/python/convert/trunk X-Poedit-Basepath: . X-Poedit-KeywordsList: _t %(name)s Shell%(name)s Aktionen%d Ereignisse wurden festgehalten%s Zuletzt&Abbrechen&über Phatch... Ctrl-Shift-A&Aktionslisten Droplet...&HinzufügenHinzufügen (&A)... Ctrl-+&Alle ArtenNach Hilfe fragenStapelverarbeitung (&B)A&bbrechenS&chließenAlle zusammen&klappen Ctrl-Shift-ETrotzdem &fortfahren&Deaktivieren Ctrl-0&Dokumentation... Ctrl-MNach u&nten Ctrl-Down&Droplet Ctrl-D&Bearbeiten&Aktivieren Ctrl-1&Ausführen... Ctrl-Return&Erweitere alle Ctrl-E&ExportierenSchri&ftarten&Forum... Ctrl-F&HilfeBildinspektor Droplet (&I)...&Lizenz&Neu Ctrl-NKei&ne Arten&OK&Öffnen ...&Öffnen... Ctrl-O&PhatchBeenden (&Q) Ctrl-QKürzlich verwendetes Droplet (&R)...Entfernen (&R) Ctrl--Einen Fehler be&richten... Ctrl-BAbgesicherter Modus (empfohlen)&Speichern Ctrl-SZeige Beschreibung (&S) Ctrl-HZeige Vorlage für AktionspluginWerkzeuge (&T)Phatch überse&tzen... Ctrl-TNach Oben (&U) Ctrl-UpAkt&ualisierenBen&utzer&AnsichtEine HTML-Anleitung wird sich im Internet-Browser öffnen.ÜberAktionAktionslisteAktions-ListeHinzufügenTag hinzufügenAktion hinzufügenHelligkeit von Schwarz nach Weiß anpassenVon Grau zu Schwarzweiß anpassenSättigung von Graustufen zu Hoch anpassenHorizontal Ausrichtenvertikal ausrichtenAlleAlle DateienAlle DateienAlle ausgewählten ArtenÜberprüfen Sie auch ob ihre Festplatte nicht voll ist. Immer auf der Arbeitsfläche speichernWenn fertig immer Status anzeigenMengeWinkelWinkel Transparenz-Maske anwendenFür zukünftige Fehler übernehmen Ausführen mit Kachelung, Skalierung und DeckkraftAprilGrafikenAlsVerknüpfe Bilder mit Aktionsliste in %s...Verknüpfe Bilder mit Bildinspektor in %s...Mit kürzlich verwendeter Aktionsliste assoziierte Bilder in %s...AugustautomatischAutokontrastAutomatisch (exif)HintergrundHintergrundfarbeHintergrund-DeckkraftVerarbeite die Bilder mittels Stapelverarbeitung in PhatchStapelverarbeitung mit den letzten AktionslistenBitsSchwarzBeschnittWeichzeichnenVerwischen, Polaroid, Schatten, Unschärfe...Weich- und Scharfzeichnen, Ausbuchten, Glätten, ...WahrheitswertUmrandungRahmenfarbeUntenUnten linksUntere linke EckeUnten rechtsUntere rechte EckeUnterer Scher-WinkelHelligkeitDurchsuchen%s durchsuchenOrdner durchsuchenAufzählungszeichenMit AbstandMitwi&rkendeDie gewählte Aktion %(a)s konnte nicht auf Bilder '%(i)s' angewendet werden. Ordner:Kann die Aktion %(a)s nicht anwenden:LeinwandLeinwandhöheLeinwandbreiteKohlezeichnungBilder zuerst überprüfenUntersuche BilderAuswahlWähle Datei(en)Wähle einen Bild OrdnerWähle eine Aktionslisten-Datei...Bild auswählenWählen einen BilderordnerWähle einen Ordner für das DropletZwischenablageQuelltextFarbeFarbe zu AlphaEinfärbenGraustufen-Bilder einfärbenSpaltenBefehlBefehl erzeugte kein Bild zur Ausgabe: %sKommentareAllgemeinSeitenverhältnis beibehaltenKonturFarbe der KonturKontrastKonvertierungsmodusKonvertiere den Farbmodus eines BildesKopiert den maximalen PixelwertKopiert den mittleren Pixel WertKopiert den minimalen PixelwertKopiere den am häufigsten verwendeten PixelwertKopiere den bewerteten PixelwertKopierenKopiere Aktionsliste als Kommando in die Zwischenablage (&C)Bildi&nspektor als Befehl in die Zwischenablage kopierenKopiere Letzes als Befehl in die Zwischenablage (&E)MitwirkendeFreistellenDie Leinwand ohne Bild-Skalierung beschneiden oder erweiternBild freistellenKreuzBenutzerdefiniertAbschneidenTageDezemberTiefeEntsättigenBeschreibung für die AktionslisteBeschreibungAusrichtungAusrichtung Deaktiviere sicheren Modus im Tools Menü, wenn du dieser Aktionsliste vertraust.Aktion deaktivierenZeigt Informationen über das Programm.Bilder vorher nicht prüfenMöchten Sie fortfahren?Überschreiben?DokumentationFertigDoppelklick zum Öffnen, Rechtsklick für mehr Optionen.Nach untenVerkleinere und beschneide Bilder mit fixem SeitenverhältnisDrag & DropKontur um Bildränder zeichnenRahmenlinie innen oder außen zeichnenZiehe beliebige Dateien und/oder Ordner in dieses Fenster, um sie in einem Stapel zu verarbeiten. Mit einem Rechts- oder Doppelklick kannst du in die Normalansicht wechseln.Zeichnet einen weichen Schatten unter das FotoSpiegelt eine ReflexionStapelweise Bilder bearbeiten leichtgemachtEffektAktiviere AktionBild-URL eingebenAbgleichenDas Bild-Histogramm abgleichenFehlerBeispieleAusführenExternen Befehl ausführenAktion ausführenFühre die Aktionsliste ausFühre die Aktionsliste ausErweiternDateimanagerUmwandeln in GraustufenFalschFebruarDateiDateinameDatei(en)FüllenFüllfarbeFilterEinpassenVertikal spiegelnHorizontal spiegelnSpiegeln oder um 90° drehenGleitkommazahlOrdnerSchriftartSchriftartenMehr Informationen bieten die Tutorials (Hilfe>Dokumentation)Hintergrundfarbe erzwingenFreitagGPS-Daten (gpx)AbstandGeekGeotagDie Dokumentation von Phatch öffnen.Das Phatch-Forum öffnenDie Webseite von Phatch öffnen.GraustufenHervorhebenHorizontalHorizontaler AbstandStundenFalls %s neugestartet wird, wird die Aktion im Kontextmenu erscheinen.Wenn du ein Plugin für Phatch beisteuern willst,Fehler ignorierenBildBildinspektorBilder-PfadeImagemagickBilderInAlle Unterverzeichnisse einschließenFonts für Fremdsprachen einbinden(nur für Installations-Skripte notwendig)Untersuche EXIF & IPTC ParameterEXIF- und IPTC-Bezeichner inspizierenMetadaten einlesen (benötigt exif & iptc Plugin)Untersuche mit PhatchIntegerpositiver IntegerGanzzahl+0InteraktivUngültige BilderInvertierenAlle Pixel über dem Grenzwert invertierenKehrt die Farben eines Bildes umJPEG-QualitätMaximale Dateigröße für JPEGToleranz für Dateigröße JPEGJanuarJuliJuniExistierende Bilder nicht überschreibenBeschriftungLinksLinker Scher-WinkelBibliothekenLizenzProtokollexif und iptc Tags ansehenverlustfreies JPEGVerlustfreie Transformierung zu JPEG funktioniert nicht bei einem %s-Bild:Ausgewählte Farbe zu TransparenzDas Bild kleiner oder größer machenMärzMarkierenMaskeKontrast des Bildes maximierenMaximumMaiMittelwertMeldungMethodeMitteMinimumMinutenSpiegelnModusMontagSchwarz/Weiß (1 bit)MonateMarkierte Aktion nach unten verschiebenMarkierte Aktion nach oben verschiebenKeine Aktions-Liste bestimmt.Es wurden keine Dateien oder Ordner ausgewählt.Speichern als Aktion am Ende nicht erforderlichNormalEs wurde bis jetzt nichts protokolliert.Nichts zu erledigen.NovemberOktoberAbstandAbstand durch Entfernung bestimmen und herumwickelnEin Bild in %s erzeugtEin Ereignis wurde festgehaltenDeckkraftÖffnenZu&letzt geöffnete DateienÖffne eine AktionslisteÖffnet eine AktionslisteEinstellungenAusrichtungÜberschreibe existierende BilderPHoto bATCH VerarbeiterPNG-OptimierungKopiere diesen Befehl in einen StarterPfadBleistiftskizzePerspektivePhatch kann %d Bild(er) nicht verarbeiten:Phatch konnte die Aktion in %s nicht installieren:Phatch hat es nicht geschafft die gewünschte Erweiterung zu installieren.Phatch hat das Droplet erfolgreich erstellt.Phatch hat versucht sich selbst aus dem Windows Explorer zu entfernen.Phatch wird nun eine hinzufügen. Bitte kontrolliere ihre Einstellungen!Phatch wird die Benutzeroberfläche automatisch erstellen.Phatch mit %sFoto StapelverarbeitungBitte installiere es (erneut).Bitte "%s" löschen.Bitte update wxPython.PolaroidTontrennungVerarbeiten mit einer kürzlich erstellten Phatch AktionslisteTransparentes Bild farbig unterlegenBeende das ProgrammFarbe mit Transparenz (4x8-bit)RadiusRangFertig!ReflexionThumbnail neu anlegenEntfernenEntferne die Verknüpfung von %s...Die ausgewählte Aktion entfernenEntferne die markierte Aktion.UmbenennenWiederholenEinen Fehler auf Launchpad berichten.Größe ändernBild neu berechnenNeuberechenen der MaskeAuflösungRechtsRechter Scher-WinkelDrehen180° Drehen270° Drehen90° DrehenVerdrehe mit zufälligen WinkelAbrundenAbgerundetAbgerundete oder gekreuzte KantenZeilenStarte %s als ein GUI DropletFühre %s als Konsolen-Programm ohne GUI ausGleiche Methode für alle EckenSättigungSamstagSpeichernSpeichern unter (&A)... Ctrl-Shift-SSpeichere Aktionsliste als...Speichern und Umwandeln in andere FormateLetzte Änderungen speichern unterSpeichert eine AktionslisteSpeichert eine Aktionsliste unter einem neuen NamenSkalierenSekundenSiehe "%s" für DetailsAuswählenObejkt auswählenAktionsliste auswählenAuswahlSpeptemberSchattenWeicher SchattenSchattenfarbeScharfzeichnen2D oder 3D abscherenZeige Protokoll (&L)... Ctrl-L&Bericht anzeigenErweiterte Einstellungen anzeigenProtokoll anzeigenZeige alle Einstellungen der AktionenZeige die Beschreibung der AktionslisteProtokolldatei anzeigenZeige nur die Beschriftungen der AktionenGrößeSkizzeSchiebereglerÜberbelichtenEntschuldigung, "%s" ist keine gültige Pfadangabe.Keine gültigen Dateien gefundenDu musst die Aktion %s für diese Aktionsliste installieren.Entschuldigung, ihre Einstellungen scheinen beschädigt.QuelleGib die Systemsprache an (z. B. en oder en_GB)SponsorenQuadratischStarte eine neue AktionslisteStoppen bei FehlernZeichenketteSieh dir die Aktionsplugins an:SonntagTIFF-KompressionsrateStichwortStichwort (Exif, Iptc)Tag existiert bereitsTextDie Aktionsliste ist leer.Der Droplet-Befehl für den Bildinspektor wurde in die Zwischenablage kopiert.Es wurde keine Aktion ausgewählt.Es sollte eine "Speichern"-Aktion am Ende geben.Diese Erweiterungen wurden erfolgreich installiert: Diese Aktionsliste ist unsicherDatei existiert bereits.Für diese Funktion ist es erforderlich, dass das python-nautilus Paket installiert ist.DonnerstagGekacheltWerkzeuge, um die aktuelle Aktionsliste zu verarbeitenObenOben linksObere linke EckeOben rechtsObere rechte EckeOberer Scher-WinkelTransformationTransformation Übersetze Phatch in deine Sprache.ÜbersetzungVersetzenGrenzwertWahrDienstagTypenKann Datei nicht öffnenBild kann nicht entfernt werdenNicht gespeicherte AktionslisteUnscharfmaskierungNach obenExif Thumbnail aktualisierenJPEG aktualisierenBildinspektor zum Auflisten aller Variablen benutzenWertDetails anzeigenVertikalVertikaler AbstandZeige QuelleDroplet-Ansicht aktivieren, um Dateien per Drag und Drop auszuwählenWarnung: python-wxversion ist nicht installiert. WasserzeichenWellenWellenhöheWellenlängeMittwochWas möchten Sie nun tun?WeißSchreibe AktionspluginText an einer bestimmten Position schreibenJahreEs können nur Dateien folgender Formate verwendet werdenDu kannst es als Text in die Eigenschaften eines neuen Starters einfügen.Du musstDu musst nur PIL können, um ein Plugin für Phatch zu schreiben.Ein Dateiname mit zulässiger Erweiterung wurde erwartetabbrechenAktionenAnti-AliasingAnwendungautomatischHintergrundbikubischbilinearverwischenWahrheitswertuntenErweitere die SucheDarf nicht leer seinmittigwahl'+' klicken um Aktionen hinzuzufügenKompressionkonturierenTagdezimalVorgabeDetaildpiBilder hierher ziehen und ablegenKanten verstärkenKanten mehr verstärkenausbuchtenfalschDateiDateinameDateigrößeFilterKanten findenGleitkommazahlOrdnerOrdnernameRahmenHöheStundeignorierenBilderIntegerlinksladeMetadatenmittigMinuteModusMonatMonatsnameNächsteneinkeine %s Tags gefundenPfadbitte pyexiv2 installierenPositiver Integerpositiver Integer größer als NullAuflösungrechtsWurzelSekundescharfzeichnenGrößeüberspringenglattmehr glättenQuelleZeichenketteUnterordnerStichwortDer Dateiname "%s" existiert nichtobentransformierenWahrTypWarnungWochentagWochentagsnameBreitemitwxPython VersionsfehlerJahrjaphatch-0.2.7/locale/de/LC_MESSAGES/phatch.po0000644000000000000000000035015111346363116020161 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-03-09 14:26+0000\n" "Last-Translator: stani \n" "Language-Team: Stani \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Language: German\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SearchPath-0: /home/stani/sync/python/convert/trunk\n" "X-Poedit-Basepath: .\n" "X-Poedit-KeywordsList: _t\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Untersuche mit Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Untersuche EXIF & IPTC Parameter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Beispiele" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Führe %s als Konsolen-Programm ohne GUI aus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Starte %s als ein GUI Droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Immer auf der Arbeitsfläche speichern" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Fehler ignorieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" "Fonts für Fremdsprachen einbinden(nur für Installations-Skripte notwendig)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interaktiv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Existierende Bilder nicht überschreiben" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Gib die Systemsprache an (z. B. en oder en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Metadaten einlesen (benötigt exif & iptc Plugin)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Speichern als Aktion am Ende nicht erforderlich" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Alle Unterverzeichnisse einschließen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Bilder vorher nicht prüfen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Details anzeigen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" "Du kannst es als Text in die Eigenschaften eines neuen Starters einfügen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Du musst die Aktion %s für diese Aktionsliste installieren." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "Der Droplet-Befehl für den Bildinspektor wurde in die Zwischenablage kopiert." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "Mehr Informationen bieten die Tutorials (Hilfe>Dokumentation)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Es wurde bis jetzt nichts protokolliert." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Protokoll" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "abbrechen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "überspringen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignorieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "'+' klicken um Aktionen hinzuzufügen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "Zu&letzt geöffnete Dateien" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Öffnen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Öffne eine Aktionsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Ausführen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Aktion ausführen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Hinzufügen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Aktion hinzufügen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Entfernen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Die ausgewählte Aktion entfernen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Nach oben" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Markierte Aktion nach oben verschieben" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Nach unten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Markierte Aktion nach unten verschieben" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Bildinspektor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "exif und iptc Tags ansehen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Beschreibung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Zeige die Beschreibung der Aktionsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Wähle eine Aktionslisten-Datei..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Speichere Aktionsliste als..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Datei existiert bereits." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Überschreiben?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "%(name)s Aktionen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "%(name)s Shell" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "Anwendung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "Rahmen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "Aktionen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Eine HTML-Anleitung wird sich im Internet-Browser öffnen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "Phatch wird die Benutzeroberfläche automatisch erstellen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Sieh dir die Aktionsplugins an:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Wenn du ein Plugin für Phatch beisteuern willst," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "PHoto bATCH Verarbeiter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "Entschuldigung, \"%s\" ist keine gültige Pfadangabe." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Drag & Drop" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Ziehe beliebige Dateien und/oder Ordner in dieses Fenster,\n" "um sie in einem Stapel zu verarbeiten.\n" "Mit einem Rechts- oder Doppelklick kannst du in die Normalansicht wechseln." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" "Phatch wird nun eine hinzufügen. Bitte kontrolliere ihre Einstellungen!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Letzte Änderungen speichern unter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Wähle einen Ordner für das Droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch hat das Droplet erfolgreich erstellt." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Aktionsliste auswählen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "Entschuldigung, ihre Einstellungen scheinen beschädigt." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "Bitte \"%s\" löschen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "Überprüfen Sie auch ob ihre Festplatte nicht voll ist.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Wähle einen Bild Ordner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Wähle Datei(en)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Wählen einen Bilderordner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "Alle ausgewählten Arten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "Bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "&Alle Arten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "Kei&ne Arten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "Zwischenablage" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Durchsuchen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "%s durchsuchen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Datei" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Ordner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "Vorgabe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Zeige Quelle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "Erweitere die Suche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Pfad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Öffnen ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Neu\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Starte eine neue Aktionsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Öffnen...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Öffnet eine Aktionsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Speichern\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Speichert eine Aktionsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Speichern unter (&A)...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Speichert eine Aktionsliste unter einem neuen Namen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Kopiere Aktionsliste als Kommando in die Zwischenablage (&C)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Kopiere diesen Befehl in einen Starter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Kopiere Letzes als Befehl in die Zwischenablage (&E)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Bildi&nspektor als Befehl in die Zwischenablage kopieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&Exportieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "Beenden (&Q)\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Beende das Programm" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "Hinzufügen (&A)...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "Entfernen (&R)\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Entferne die markierte Aktion." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Aktivieren\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Aktiviere Aktion" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Deaktivieren\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Aktion deaktivieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "Nach Oben (&U)\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "Nach u&nten\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Bearbeiten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Droplet\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Droplet-Ansicht aktivieren, um Dateien per Drag und Drop auszuwählen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "Zeige Beschreibung (&S)\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Werkzeuge, um die aktuelle Aktionsliste zu verarbeiten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Erweitere alle\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Zeige alle Einstellungen der Aktionen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "Alle zusammen&klappen\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Zeige nur die Beschriftungen der Aktionen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Ansicht" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Ausführen...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Führe die Aktionsliste aus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "Abgesicherter Modus (empfohlen)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "Ben&utzer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "&Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Zeige Protokoll (&L)...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Protokolldatei anzeigen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "Schri&ftarten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "Akt&ualisieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "Werkzeuge (&T)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Die Webseite von Phatch öffnen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Dokumentation...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Die Dokumentation von Phatch öffnen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Das Phatch-Forum öffnen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "Phatch überse&tzen...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Übersetze Phatch in deine Sprache." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "Einen Fehler be&richten...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Einen Fehler auf Launchpad berichten." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&über Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Zeigt Informationen über das Programm." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Hilfe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "Fertig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Protokoll anzeigen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "&Bericht anzeigen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "Fertig!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "Doppelklick zum Öffnen, Rechtsklick für mehr Optionen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "Dateimanager" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Du musst nur PIL können, um ein Plugin für Phatch zu schreiben." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "Zeige Vorlage für Aktionsplugin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Quelltext" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "Nach Hilfe fragen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Schreibe Aktionsplugin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Für zukünftige Fehler übernehmen " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Abbrechen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Meldung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "Trotzdem &fortfahren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Einstellungen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Typen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Ordner durchsuchen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Quelle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Datei(en)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Stoppen bei Fehlern" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Bilder zuerst überprüfen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Überschreibe existierende Bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "Wenn fertig immer Status anzeigen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "A&bbrechen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "Stapelverarbeitung (&B)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Bild" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Beschriftung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "Stichwort" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Wahrheitswert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Zeichenkette" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Auswahl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Farbe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Auflösung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Dateiname" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "In" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Gleitkommazahl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Als" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Modus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Größe ändern" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bikubisch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "positiver Integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Ganzzahl+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Schieberegler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Januar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Februar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "März" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "April" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Mai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Juni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Juli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "August" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Speptember" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Oktober" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "November" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "Dezember" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Montag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Dienstag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Mittwoch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Donnerstag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Freitag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Samstag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Sonntag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "Hintergrund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "Quelle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "Befehl erzeugte kein Bild zur Ausgabe: %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Alle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Obejkt auswählen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Benutzerdefiniert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Mitte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Links" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Rechts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Oben" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Unten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Unten links" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Unten rechts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Oben links" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Oben rechts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Ausrichtung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Abstand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Horizontaler Abstand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Vertikaler Abstand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "Mit Abstand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Gekachelt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Skalieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Markieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Deckkraft" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Methode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "automatisch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "Stapelweise Bilder bearbeiten leichtgemacht" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Foto Stapelverarbeitung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Wahr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Falsch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "Wahr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "falsch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Nicht gespeicherte Aktionsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Aktionsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Alle Dateien" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Beschreibung für die Aktionsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Es sollte eine \"Speichern\"-Aktion am Ende geben." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "mit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s Zuletzt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Verknüpfe Bilder mit Aktionsliste in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Mit kürzlich verwendeter Aktionsliste assoziierte Bilder in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Verknüpfe Bilder mit Bildinspektor in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Entferne die Verknüpfung von %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "&Aktionslisten Droplet..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "Kürzlich verwendetes Droplet (&R)..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "Bildinspektor Droplet (&I)..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Stapelverarbeitung mit den letzten Aktionslisten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "EXIF- und IPTC-Bezeichner inspizieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "Siehe \"%s\" für Details" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "Diese Aktionsliste ist unsicher" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" "Deaktiviere sicheren Modus im Tools Menü, wenn du dieser Aktionsliste " "vertraust." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Aktion" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Nichts zu erledigen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Die Aktionsliste ist leer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Es wurde keine Aktion ausgewählt." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Untersuche Bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch kann %d Bild(er) nicht verarbeiten:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Ungültige Bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Keine gültigen Dateien gefunden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Es wurden keine Dateien oder Ordner ausgewählt." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Kann Datei nicht öffnen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Kann die Aktion %(a)s nicht anwenden:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" "Die gewählte Aktion %(a)s konnte nicht auf Bilder '%(i)s' angewendet werden. " "Ordner:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Führe die Aktionsliste aus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Ein Bild in %s erzeugt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Ein Ereignis wurde festgehalten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "%d Ereignisse wurden festgehalten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Auswählen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "Ordnername" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "Dateiname" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "Dateigröße" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "Ordner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "Stunde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "Minute" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "Monat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "Monatsname" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "Pfad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "Wurzel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "Sekunde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "Unterordner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "Typ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "Wochentag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "Wochentagsname" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "Jahr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "Kompression" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "Höhe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "Modus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "Breite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "Größe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Bildinspektor zum Auflisten aller Variablen benutzen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Es können nur Dateien folgender Formate verwendet werden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "links" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "mittig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "rechts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "oben" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "mittig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "unten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Schwarz/Weiß (1 bit)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "Farbe mit Transparenz (4x8-bit)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "verwischen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "konturieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "Detail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "Kanten verstärken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "Kanten mehr verstärken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "ausbuchten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "Kanten finden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "glatt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "mehr glätten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "scharfzeichnen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "Nächste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilinear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "Anti-Aliasing" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "90° Drehen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "180° Drehen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "270° Drehen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Vertikal spiegeln" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Horizontal spiegeln" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "Darf nicht leer sein" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "Zeichenkette" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "Integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "Positiver Integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "positiver Integer größer als Null" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "Auflösung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "Gleitkommazahl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "Wahrheitswert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "wahl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "Ein Dateiname mit zulässiger Erweiterung wurde erwartet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "Der Dateiname \"%s\" existiert nicht" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "automatisch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Befehl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Fehler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Warnung: python-wxversion ist nicht installiert.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Bitte installiere es (erneut)." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Bitte update wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPython Versionsfehler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "Mitwi&rkende" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Lizenz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "S&chließen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Über" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Mitwirkende" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dokumentation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Übersetzung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Grafiken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Bibliotheken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Sponsoren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Lizenz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "Stichwort" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Wert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "Warnung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "Tag hinzufügen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "Tag existiert bereits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Alle Dateien" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "Bild kann nicht entfernt werden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Bild auswählen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Bild-URL eingeben" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "Bilder hierher ziehen und ablegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "bitte pyexiv2 installieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "keine %s Tags gefunden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Hinzufügen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "dezimal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "lade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "nein" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "ja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Auswahl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Schriftarten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Schatten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "Filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Zeichnet einen weichen Schatten unter das Foto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Umrandung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Weicher Schatten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Hintergrundfarbe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Schattenfarbe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "Hintergrundfarbe erzwingen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Hintergrund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Effekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Weich- und Scharfzeichnen, Ausbuchten, Glätten, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Wiederholen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Menge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transformieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Abstand durch Entfernung bestimmen und herumwickeln" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Leinwand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Die Leinwand ohne Bild-Skalierung beschneiden oder erweitern" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "Leinwandbreite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Leinwandhöhe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Horizontal Ausrichten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "vertikal ausrichten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Farbe zu Alpha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Ausgewählte Farbe zu Transparenz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Wasserzeichen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Ausführen mit Kachelung, Skalierung und Deckkraft" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Entsättigen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Umwandeln in Graustufen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Das Bild kleiner oder größer machen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Seitenverhältnis beibehalten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Bild neu berechnen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Versetzen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Spiegeln oder um 90° drehen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Spalten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Zeilen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Vertikal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "Spiegeln" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Ausrichtung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Umbenennen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "Datei" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Kreuz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Abgerundet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Quadratisch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Abrunden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Abgerundete oder gekreuzte Kanten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Radius" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "Gleiche Methode für alle Ecken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Obere linke Ecke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Obere rechte Ecke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Untere linke Ecke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Untere rechte Ecke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Hervorheben" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Transparentes Bild farbig unterlegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Füllen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Konvertierungsmodus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Konvertiere den Farbmodus eines Bildes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Einpassen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Verkleinere und beschneide Bilder mit fixem Seitenverhältnis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Beschnitt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Autokontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Kontrast des Bildes maximieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Abschneiden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Speichern" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "Speichern und Umwandeln in andere Formate" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "PNG-Optimierung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "JPEG-Qualität" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "Maximale Dateigröße für JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "Toleranz für Dateigröße JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "TIFF-Kompressionsrate" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Mittelwert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Kopiert den mittleren Pixel Wert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "Metadaten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Sekunden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Minuten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Stunden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Tage" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Monate" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Jahre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Maske" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Transparenz-Maske anwenden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Neuberechenen der Maske" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Text" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Text an einer bestimmten Position schreiben" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Schriftart" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Größe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Einfärben" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Graustufen-Bilder einfärben" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Schwarz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Weiß" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Tontrennung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Stichwort (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "Rahmenlinie innen oder außen zeichnen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Rang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Kopiere den bewerteten Pixelwert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Überbelichten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Alle Pixel über dem Grenzwert invertieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Grenzwert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Abgleichen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Das Bild-Histogramm abgleichen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "Automatisch (exif)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Freistellen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Drehen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Graustufen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "Thumbnail neu anlegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" "Verlustfreie Transformierung zu JPEG funktioniert nicht bei einem %s-Bild:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Transformation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Winkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Erweiterte Einstellungen anzeigen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "JPEG aktualisieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "Exif Thumbnail aktualisieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Kommentare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Transformation " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Winkel " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Ausrichtung " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "verlustfreies JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Bild freistellen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Verdrehe mit zufälligen Winkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Erweitern" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Hintergrund-Deckkraft" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Invertieren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Kehrt die Farben eines Bildes um" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Geotag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "GPS-Daten (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Reflexion" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Spiegelt eine Reflexion" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Tiefe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Abstand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Allgemein" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Kopiere den am häufigsten verwendeten Pixelwert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Kopiert den minimalen Pixelwert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Kontur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Kontur um Bildränder zeichnen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Farbe der Kontur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Füllfarbe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspektive" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "2D oder 3D abscheren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Linker Scher-Winkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Oberer Scher-Winkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Unterer Scher-Winkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Rechter Scher-Winkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Von Grau zu Schwarzweiß anpassen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maximum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Kopiert den maximalen Pixelwert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Sättigung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Sättigung von Graustufen zu Hoch anpassen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Helligkeit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Helligkeit von Schwarz nach Weiß anpassen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "Weichzeichnen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "Aufzählungszeichen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "Kohlezeichnung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Bleistiftskizze" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "Scharfzeichnen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "Unscharfmaskierung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "Wellen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Imagemagick" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "Verwischen, Polaroid, Schatten, Unschärfe..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Rahmenfarbe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "Wellenhöhe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "Wellenlänge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Skizze" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "Geek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "Externen Befehl ausführen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Diese Erweiterungen wurden erfolgreich installiert:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" "Phatch hat es nicht geschafft die gewünschte Erweiterung zu installieren." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" "Phatch hat versucht sich selbst aus dem Windows Explorer zu entfernen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Du musst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Aktions-Liste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Keine Aktions-Liste bestimmt." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Bilder-Pfade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Möchten Sie fortfahren?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Was möchten Sie nun tun?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" "Falls %s neugestartet wird, wird die Aktion im Kontextmenu erscheinen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch konnte die Aktion in %s nicht installieren:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" "Für diese Funktion ist es erforderlich, dass das python-nautilus Paket " "installiert ist." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Verarbeite die Bilder mittels Stapelverarbeitung in Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "Phatch mit %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Verarbeiten mit einer kürzlich erstellten Phatch Aktionsliste" #~ msgid "doesn't exist" #~ msgstr "existiert nicht" #~ msgid "Filename" #~ msgstr "Dateiname" #~ msgid "Width" #~ msgstr "Breite" #~ msgid "Height" #~ msgstr "Höhe" #~ msgid "Colour" #~ msgstr "Farbe" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Schreibe ein neues Aktionsplugin für Phatch in PIL." #~ msgid "&Skip To Next Image" #~ msgstr "Zum nächsten Bild springen" #~ msgid "&Ignore Error" #~ msgstr "Fehler &ignorieren" #~ msgid "Create missing folders" #~ msgstr "Erstelle fehlende Verzeichnisse" #~ msgid "Phatch Version" #~ msgstr "Phatch Version" #~ msgid "Background Colour" #~ msgstr "Hintergrundfarbe" #~ msgid "Shadow Colour" #~ msgstr "Schattenfarbe" #~ msgid "Force Background Colour" #~ msgstr "Hintergrundfarbe erzwingen" #~ msgid "Save an image" #~ msgstr "Speichere ein Bild" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "Schreibe Aktionsplugin...\tCtrl-W" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Python Kommandozeile...\tCtrl-P" #~ msgid "new" #~ msgstr "neu" #~ msgid "Open a python shell for introspection" #~ msgstr "Öffne eine Python Kommandozeile zum Selbsttest" #~ msgid "for float" #~ msgstr "Für Gleitkommazahl" #~ msgid "for boolean" #~ msgstr "Für Wahrheitswert" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "weil Phatch die Benutzeroberfläche automatisch generiert." #~ msgid "&File" #~ msgstr "&Datei" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (24 bit, Farbvideoformat)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "Farbe (24 bit)" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Graustufen (8 bit)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "Indiziert (8 bit)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (32 bit, mit Farbtrennung)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32 bit, Gleikomma-Pixel)" #~ msgid "for integer" #~ msgstr "für den Integer" #~ msgid "is zero, but should be non-zero." #~ msgstr "ist Null, sollte aber größer als Null sein." #~ msgid "is negative, but should be positive" #~ msgstr "ist negativ, sollte aber positiv sein" #~ msgid "does not exist." #~ msgstr "existiert nicht." #~ msgid "is invalid." #~ msgstr "ist ungültig." #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-Bit Ganzzahl-Pixel)" #~ msgid "All selected image types" #~ msgstr "Alle ausgewählten Bild-Typen" #~ msgid "All default image types" #~ msgstr "Alle gängigen Bild-Typen" #~ msgid "colours" #~ msgstr "Farben" #~ msgid "Crop or add border to all sides" #~ msgstr "Rahmen an allen Seiten abschneiden oder hinzufügen" #~ msgid "watermark" #~ msgstr "Wasserzeichen" #~ msgid "border" #~ msgstr "Rand" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Metadaten speichern (benötigt exif & iptc Plugin)" #~ msgid "Do not create missing folders" #~ msgstr "Fehlende Ordner nicht erstellen" #~ msgid "&Export..." #~ msgstr "&Exportieren..." #~ msgid "Put colour under transparent image" #~ msgstr "Farbe unter transparentes Bild setzen" #~ msgid "Copy the image file" #~ msgstr "Kopiere die Bild-Datei" #~ msgid "Rename the image file" #~ msgstr "Bild-Datei umbenennen" #~ msgid "february" #~ msgstr "Februar" #~ msgid "april" #~ msgstr "April" #~ msgid "march" #~ msgstr "März" #~ msgid "may" #~ msgstr "Mai" #~ msgid "june" #~ msgstr "Juni" #~ msgid "wednesday" #~ msgstr "Mittwoch" #~ msgid "thursday" #~ msgstr "Donnerstag" #~ msgid "monday" #~ msgstr "Montag" #~ msgid "tuesday" #~ msgstr "Dienstag" #~ msgid "september" #~ msgstr "September" #~ msgid "october" #~ msgstr "Oktober" #~ msgid "november" #~ msgstr "November" #~ msgid "december" #~ msgstr "Dezember" #~ msgid "july" #~ msgstr "Juli" #~ msgid "august" #~ msgstr "August" #~ msgid "saturday" #~ msgstr "Samstag" #~ msgid "friday" #~ msgstr "Freitag" #~ msgid "sunday" #~ msgstr "Sonntag" #~ msgid "invalid syntax" #~ msgstr "ungültige Syntax" #~ msgid "the variable" #~ msgstr "die Variable" #~ msgid "the file extension" #~ msgstr "die Dateinamenserweiterung" #~ msgid "the float value" #~ msgstr "der Fließkomma-Wert" #~ msgid "the filename" #~ msgstr "der Dateiname" #~ msgid "a filename with a valid extension was expected." #~ msgstr "ein Dateiname mit gültiger Erweiterung wurde erwartet." #~ msgid "invalid literal" #~ msgstr "ungültiges Zeichen" #~ msgid "the integer value" #~ msgstr "der ganzahlige Wert" #~ msgid "Save metadata" #~ msgstr "Metadaten speichern" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Diese Aktions-Liste wurde mit einer älteren %(name)s Version erstellt.\n" #~ "\n" #~ msgid "drag & drop any image here" #~ msgstr "ein Bild hierher ziehen und ablegen" #~ msgid "Open image file" #~ msgstr "Bild-Datei öffnen" #~ msgid "Copy cell text" #~ msgstr "Zellentext kopieren" #~ msgid "Open image url" #~ msgstr "Bild-URL öffnen" #~ msgid "&Preview" #~ msgstr "&Vorschau" #~ msgid "Fade all colours to gray" #~ msgstr "Alle Farben in Grau übergehen lassen" #~ msgid "Scale down only" #~ msgstr "Nur verkleinern" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Bitanzahl für den Farbkanal reduzieren" #~ msgid "Only an image file is allowed." #~ msgstr "Es ist nur eine Bilddatei erlaubt." #~ msgid "See Tools>Show Log for more details." #~ msgstr "Werkzeuge>Log anzeigen für weitere Details" #~ msgid "Resample Shadow" #~ msgstr "Neuberechen des Schattens" #~ msgid "january" #~ msgstr "Januar" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "" #~ "Der Droplet-Befehl für die Aktionsliste wurde in die Zwischenablage kopiert." #~ msgid "&Recent" #~ msgstr "Aktuell (&R)" #~ msgid "&Default Types" #~ msgstr "Standard Typen (&D)" #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch konnte das Droplet nicht erstellen:" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "&Bildinspektor (exif)\tCtrl-Space" #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "Foto-Stapelverarbeiter & Umbenenner" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Web&seite...\tCtrl-I" #~ msgid "please email" #~ msgstr "sende bitte ein E-Mail" phatch-0.2.7/locale/el/0000755000000000000000000000000011346363116014570 5ustar rootroot00000000000000phatch-0.2.7/locale/el/LC_MESSAGES/0000755000000000000000000000000011346363116016355 5ustar rootroot00000000000000phatch-0.2.7/locale/el/LC_MESSAGES/phatch.mo0000644000000000000000000007604111346363116020171 0ustar rootroot00000000000000l 0!1!8!V!n!s! !!!!!!!!! ""!"0"H"["l"r"" """ """" " # $#E#L# h#t#3z## # ## #%#!$('$P$a$p$ t$ ~$$$$$&$$$*%.,%2[% % %% %&%&& &"&6&>&E&X&l& && &&6&&&''&'-'<'L'j'z'!''''''' (" (0(O(m("(((((-($*)O))W))))) )),))* .*<*(A* j*v*$*+0+ 7+E+X+a+~+++++++++++++ ,,5,;,B,G,M,Q,q,, , ,,>,. - 8-F-L- \-h-o-r---.--. . . .).8.'?.g... .... ....///'/./6/*;/f/////// 0"030;0@0T0j0 r0~0 00 0"0*081(Q1;z171122 92&C2j21222 2222 3%3,333N3W3 f3 t333 3 3 333333'4 ;4F4K4d4{444444 44 44 5'5#E5 i5$w5555>5515)62696Q6a6h666H66+ 7357Ai77'7777) 8 38 ?8I8R8W8]8q882888 8(8,9 59?9[9a9u949?9A :7K::: : : ::::::::::;;;&;.;5; 9;F;X;_;e;j;s;|; ;;; ;;;;;;;;;;;; ;;;<<<.<?< Z<e<k<p<w<<<< << <<< <<<< <<<<<==> >=>&?8?#T? x???'??$?@%@9@V@ n@ @!@@@<@ 7ACARAbAzA)AA,AA-BVJBB*BBB^ CiC%rC%CC#CGC@;D=|D+D%D EE,EEE VE6aEECEE FWF^hFhF!0G RG]GE}GgG+H bKKK6K L)L9L)JLMtLTLNM]fMWM\NyNNN[NJ7O OTOOO PG PSP/fPKP?P/"QRQgQdpQQQQS-eSS+S#SSGT KTXTqT#T=T=T"U 3U @UMU ^UkU0~U$U<U VV-VHVeV;nV2V3VW1W#DWthWeWCX aX%nXXXX;X1Y5:YmpY%YZ $Z!EZgZ&~ZZ\Z6[N[(_[[ [[9[>[ 4\ A\<L\\\ \\\\O\U<]U]A]C*^n^U^^^F _P_c_4r_2___> `QI```J`b aqmaNab.bsb8c6>c6ucc^c,"dUOd dddd4d: eB[eee3e e#f'Afif"xfffff1f,gKgEfg@gog]hnh*hBh=h:/i?jiii4ijjj1j-PjP~jRj2"kNUkkkkkslclll? mLmgmKmmAmnOn^nWUobopm!p$pp pOpDqWqpq yq q8qEqr~rrrrNrZ8ss5s s4s6"tqYtxtxDu_uv,v?vTv evpvv vvv,v vv[vYw nwywwwww2wx $x 1x>xXx vxxxxxxxxxy y@yQy Zyey zyyyy+yy8y.-zG\zz zzz zzz{%{D{_{t{{{ { { {{ {{${||R<H"DW c$9{7wO{+orzq=,?|[G W;miX2Qg5Kr`YR(Mb$4"VP0^fXK}T#.o&tn~Vp`Yjye_ 6u(J~3n)CUPIA }e^% l l)hNw BLv5 E|usDp'aL\8=kN/>:/t!0&.gCd7 >v,ybk Zi\-!Q#h *1:a2B?'9*F S-3<qAZT4UMcmE_Hzx[S+fJ18@F;j]xGOd6]%Is@&Abort&About Phatch... Ctrl-Shift-A&Action List Droplet...&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&Image Inspector Droplet...&License&New Ctrl-N&OK&Open... Ctrl-O&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&ViewA html tutorial will open in your internet browser.AboutAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAmountAngleApply a transparency maskApply for future errors Apply with tiling, scaling and opacityArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...Auto ContrastBackgroundBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBottom Left CornerBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse FolderC&reditsCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletCodeColorizeColorize grayscale imageCommonConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCreditsCrop or expand the canvas without scalingCrossCutoffDepthDescribe here the action list.DescriptionDisable actionDisplays information about this application.Do not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFalseFileFile(s)FilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsGapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHorizontalHorizontal OffsetIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagesInInclude all subfoldersInspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageLabelLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsMake the image smaller or biggerMarkMaskMaximize image contrastMaximumMedianMessageMethodMinimumModeMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo action list provided.No files or folder selected.NormalNothing has been logged yet.Nothing to do.OffsetOffset by distance and wrap aroundOpacityOpenOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesPaste this command in a launcherPathPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Photo Batch ProcessorPlease (re)install it.Please upgrade your wxPython.PosterizeProcess with recent Phatch action listQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRepeatReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaveSave &As... Ctrl-Shift-SSave Action List As...Save last changes toSaves an action listSaves an action list asScaleSelectSelect action listSelectionShadowShadow BlurShear 2d or 3dShow &Log... Ctrl-LShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSliderSolarizeSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:TextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This requires also that the python-nautilus package is installed.TileTools to handle the current action listTop Left CornerTop Right CornerTop Shear AngleTranslate Phatch in your native language.TranslationTransposeTresholdTrueTypesUnable to open fileUnsaved Action ListUpUse the Image Inspector to list all the variables.VerboseVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWhat do you want to do now?WhiteWrite Action PluginWrite text at a given positionYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsantialiasapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerleftmiddleminutemodemonthmonthnamenearestnono %s tags foundpathplease install pyexiv2positive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagtoptransformtruetypeweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2008-06-07 14:38+0000 Last-Translator: Aristotelis Grammatikakis Language-Team: Greek MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) &Ματαίωση&Περί Phatch... Ctrl-Shift-AΣταγονίδιο Καταλόγου Ενεργειών...&Προσθήκη&Πρόσθεση... Ctrl-+&Αίτηση για Βοήθεια&Δέσμη&Ακύρωση&Κλείσιμο&Σύμπτυξη Όλων Ctrl-Shift-E&Συνέχεια&Απενεργοποίηση Ctrl-0&Τεκμηρίωση... Ctrl-M&Κάτω Ctrl-Down&Σταγονίδιο Ctrl-D&Επεξεργασία&Ενεργοποίηση Ctrl-1&Εκτέλεση... Ctrl-Return&Ανάπτυξη Όλων Ctrl-E&Φόρουμ... Ctrl-F&Βοήθεια&Σταγονίδιο Επιθεωρητή Εικόνων...&Άδεια&Νέο Ctrl-N&Εντάξει&Άνοιξε... Ctrl-O&Έξοδος Ctrl-Q&Πρόσφατο Σταγονίδιο...&Αφαίρεση Ctrl--&Αναφορά Μαμουνιού... Ctrl-B&Αποθήκευση Ctrl-S&Εμφάνιση Περιγραφής Ctrl-H&Εμφάνιση πατρόν για τα συμπληρώματα ενεργειώνΕργαλεία [&R]Μετάφραση του Phatch... Ctrl-T&Πάνω Ctrl-UpΕμφάνιση [&E]Μάθημα σε html θα ανοίξει στον διαδικτυακό περιηγητή.ΠερίΚατάλογοι ΕνεργειώνΚατάλογος ενεργειώνΠροσθήκηΠροσθήκη ενέργειαςΑλλαγή φωτεινότητας από μάυρο σε άσπροΜετατροπή από γκρίζο σε ασπρόμαυροΑλλαγή κορεσμού από γκρί σε υψηλόΟριζόντια ΕυθυγράμμισηΚάθετη ΕυθυγράμμισηΌλαΌλα τα ΑρχείαΌλα τα αρχείαΠοσότηταΓωνίαΤοποθέτηση μάσκας διαφάνειαςApply for future errors Με παράθεση, κλιμάκωση και διαφάνειαΓραφικάΩςΣυσχέτηση Εικόνων με Κατάλογο Ενεργειών στο %s...Συσχέτηση Εικόνων με τον Επιθεωρητή Εικόνων στο %s...Συσχέτηση Εικόνων με Πρόσφατο Κατάλογο Ενεργειών στο %s...Αυτόματη ΑντίθεσηΦόντοΔιαφάνεια ΦόντουΔεσμική επεξεργασία εικόνων με το PhatchΔεσμική επεξεργασία με πρόσφατους καταλόγους ενεργειώνΣτοιχείαΜαύροΔιάχυσηΘόλωση, Όξυνση, Ανάγλυφο, Εξομάλυνση, ...BooleanΠλαίσιοΚάτω αριστερή γωνίαΚάτω δεξιά γωνίαΚάτω Γωνία ΚλίσηςΦωτεινότηταΠεριήγησηΠεριήγηση Φακέλου&ΜνείαΔεν είναι εφικτή η ενέργεια %(a)s στην εικόνα '%(i)s' στον φάκελο:Δεν είναι εφικτή η ενέργεια %(a)s:ΚαμβάςΈλεγχος των εικόνων πρώταΕλέγχονται οι εικόνεςΕπιλογήΕπιλογή Αρχείου/ωνΕπιλογή φακέλουΕπιλογή Αρχείου Καταλόγου Ενεργειών...Επιλογή εικόναςΕπιλογή φάκελου εικόνωνΕπιλογή φακέλου για το σταγονίδιοΚώδικαςΕπιχρωματισμόςΕπιχρωμάτιση γκρίζας εικόναςΚοινόΠεριορισμός ΑναλογιώνΑντίθεσηΛειτουργία ΜετατροπήςΜετατροπή χρωματικής λειτουργίας εικόναςΑντιγραφή της μέγιστης τιμής εικονοστοιχείωνΑντιγραφή της μέσης τιμής εικονοστοιχείουΑντιγραφή της ελάχιστης τιμής των εικονοστοιχείωνΑντιγραφή της πιο συχνής τιμής εικονοστοιχείωνΑντιγραφή της καταταγμένης τιμής εικονοστοιχείωνΑντιγραφήΑντιγραφή του Καταλόγου Εικόνων ως &ΕντολήΑντιγραφή Επι&θεωρητή Εικόνων ως Εντολή στη ΜνήμηΑντιγραφή &Προσφάτων ως Εντολή στη ΜνήμηΜνείαΚοπή ή επέκταση του καμβά χωρίς αναδιαμόρφωσηΣταυρωμένηΌριοΒάθοςΠεριγράψτε τον κατάλογο ενεργειών εδώ.ΠεριγραφήΑπενεργοποίηση ενέργειαςΕμφάνιση πληροφοριών περί της εφαρμογής.Χωρίς τον έλεγχο των εικόνων πρώταΕπιθυμείτε να συνεχίσετε;ΤεκμηρίωσηΚάτωΣμίκρυνση και κοπή εικόνας με προκαθορισμένη αναλογίαΣύρσιμο και ΡίψηΡίξτε οποιοδήποτε αρχείο ή/και φάκελο στο σταγονίδιο του Phatch για να τα επεξεργαστείτε δεσμικά. Δεξί-πάτημα ή διπλό-πάτημα για επιστροφή στην κανονική μορφή.Δημιουργεί μια θολή σκιά κάτω από την εικόναΔημιουργία αντανάκλασηςΕφέΕνεργοποίηση ενέργειαςΕισαγωγή url εικόναςΕξισορρόπισηΕξισορροπία ιστογράμματος της εικόναςΣφάλμαΠαραδείγματαΕκτέλεσηΕκτέλεση ενέργειαςΕκτέλεση του καταλόγου ενεργειώνΕκτέλεση του καταλόγου ενεργειώνΑνάπτυξηΨευδέςΑρχείοΑρχείο(α)ΦίλτροΤαίριασμαΑντιστροφή Δεξιά-ΑριστεράΑντιστροφή Άνω-ΚάτωΑντιστροφή ή περιστροφή 90 μοιρώνΚινητόΦάκελοςΓραμματοσειράΓραμματοσειρέςΚενόΜεταφορά στη τεκμηρίωση του Phatch.Μεταφορά στο Φόρουμ του PhatchΠρος την ιστοσελίδα του Phatch.Γκρίζες σκιάσειςΟριζόντιαΟριζόντια ΜετάθεσηΑν γίνει επανεκκίνηση του %s, η ενέργεια θα εμφανιστεί στο μενού.αν θέλετε να συνεισφέρετε κάποιο συμπλήρωμα για το Phatch,Παράλειψη λαθώνΕικόναΕπιθεωρητής ΕικόναςΔιαδρομή εικόνωνΕικόνεςΜέσαΣυμπερίληψη όλων των υποφακέλωνΕπιθεώρηση ετικετών EXIF & IPTCΕπιθεώρηση EXIF & IPTC ετικετώνΕπιθεώρηση μεταδεδομένων (χρειάζεται τα πρόσθετα exif και iptc)Επιθεώρηση με το PhatchΑκέραιος αριθμόςΑκέραιος αριθμός+Ακέραιος αριθμός+0ΔιαδραστικάΜη αποδεκτές εικόνεςΑντιστροφήΑναστροφή όλων των εικονοστοιχείων πέρα του ορίουΧρωματική αντιστροφή εικόναςΕπιγραφήΑριστερή Γωνία ΚλίσηςΒιβλιοθήκεςΆδειαΙστορικόΑναζήτηση σε ετικέτες exif και iptcΜεγέθυνση ή σμίκρυνση της εικόναςΣημάδιΜάσκαΜεγιστοποίηση Αντίθεσης ΕικόναςΜέγιστοΜέση τιμήΜήνυμαΜέθοδοςΕλάχιστοΛειτουργίαΜονοχρωμία (1-bit εικονοστοιχεία, ασπρόμαυρο)Μετακίνηση επιλεγμένης ενέργειας προς τα κάτωΜετακίνηση επιλεγμένης ενέργειας προς τα πάνωΔεν παρέχθηκε κατάλογος ενεργειών .Κανένα αρχείο ή φάκελος επιλεγμένος.ΚανονικάΔεν έχει καταγραφεί στο ιστορικό ακόμα τίποτα.Καμμία ενέργεια.ΜετατόπισηΜετακίνηση με απόσταση και αναδίπλωσηΔιαφάνειαΆνοιγμαΆνοιγμα καταλόγου ενεργειώνΑνοίγει κατάλογο ενεργειώνΕπιλογέςΠροσανατολισμόςΑντικατάσταση υπαρχόντων εικόνωνΕπικόλληση της εντολής σε εκτελεστή αρχειώνΔιαδρομήΠροοπτικήΤο Phatch δεν μπορεί να χειριστεί %d εικόνες:Το Phatch δεν μπόρεσε να εγκαταστήσει την ενέργεια στο %s:Το Phatch δεν κατάφερε να εγκαταστήσει την αιτούμενη λειτουργία.Το Phatch επιτυχώς δημιούργησε το σταγονίδιο.Το Phatch προσπάθησε να απεγκαταστηθεί από τον Windows Explorer.Το Phatch θα προσθέσει μια αυτόματα. Παρακαλώ ελέξτε τις επιλογές.Δεσμικός Επεξεργαστής ΕικόνωνΧρειάζεται (επαν)εγκατάσταση.Παρακαλώ αναβαθμίστε το wxPython.ΑφισοποίησηΕπεξεργασία με πρόσφατο κατάλογο ενεργειών του PhatchΈξοδος από την εφαρμογή.RGBA (4x8-bit εικονοστοιχεία, RGB με μάσκα διαφάνειας)ΑκτίναΚατάταξηΑντανάκλασηΑφαίρεσηΑφαίρεση Συσχετισμού από %s...Αφαίρεση επιλεγμένης ενέργειαςΑφαίρεση της επιλεγμένης ενέργειας.ΜετονομασίαΕπανάληψηΑναφορά μαμουνιού στο launchpad.ΑναδειγματοληψίαΑναμόρφωση ΕικόναςΑναδημιουργία ΜάσκαςΑνάλυσηΔεξιά Γωνία ΚλίσηςΠεριστροφήΠεριστροφή 180Περιστροφή 270Περιστροφή 90Περιστροφή με τυχαία γωνίαΣτρογγυλοποίησηΣτρογγυλεμένηΣτρογγυλεμένες ή στραυρωμένες γωνίεςΛειτουργία %s ως γραφικό σταγονίδιοΛειτουργία %s χωρίς γραφικό περιβάλλον ως πρόγραμμα κονσόλαςΚορεσμόςΑποθήκευσηΑποθήκευση &Ως... Ctrl-Shift-SΑποθήκευση Καταλόγου Ενεργειών Ως...Αποθήκευση τελευταίων αλλαγών σεΑποθήκευση καταλόγου ενεργειώνΑποθήκευση καταλόγου ενεργειών ωςΚλιμάκωσηΕπιλογήΕπιλογή καταλόγου ενεργειώνΕπιλογήΣκιάΘόλωση ΣκιάςΚλίση 2/3διάστατηΕμφάνιση Ιστορικού... Ctrl-LΕμφάνιση όλων των παραμέτρων των ενεργειών.Εμφάνιση περιγραφής του καταλόγου ενεργειώνΕμφάνιση Αρχείου ΙστορικούΕμφάνιση μόνο των επιγραφών των ενεργειών.ΜέγεθοςΟλισθητήςΣολάρισμαΣυγνώμη, χρειάζεται η εγκατάσταση της ενέργειας %s για αυτόν τον κατάλογο ενεργειών.ΠροέλευσηΠροσδιορίστε την τοπική γλώσσα (για παράδειγμα en ή en_GB)ΧορηγοίΤετράγωνηΕκκίνηση νέου καταλόγου ενεργειώνΣτάση για λάθηΣτοιχειοσειράΜελετήστε τα συμπληρώματα ενεργειών στο:ΚείμενοΟ κατάλογος ενεργειών είναι άδειος.Η εντολή σταγονιδίου για τον επιθεωρητή εικόνων αντιγράφτηκε στην μνήμη.Δεν υπάρχει καμία ενέργεια ενεργοποιημένη.Πρέπει να υπάρχει η ενέργεια "Αποθήκευση" στο τέλος.Αυτές οι προεκτάσεις εγκαταστήθηκαν επιτυχώς: Χρειάζεται το πακέτο python-nautilus να είναι εγκατεστημένο.ΠαράθεσηΕργαλεία για τον χειρισμό του παρόντος καταλόγου ενεργειώνΠάνω αριστερή γωνίαΠάνω δεξιά γωνίαΠάνω Γωνία ΚλίσηςΜεταφράστε το Phatch στην τοπική σας διάλεκτο.ΜετάφρασηΑντιμετάθεσηΌριοΑληθέςΤύποιΑδύνατη η ανάγνωση του αρχείουΜη Αποθηκευμένος Κατάλογος ΕνεργειώνΠάνωΧρήση του Επιθεωρητή Εικόνων για την παρουσίαση όλων των μεταβλητών.ΑναλυτικάΚάθετη ΜετάθεσηΕμφάνιση ΠηγαίουΕμφάνιση ως σταγονίδιο για τη ρίψη αρχείωνΠροειδοποίηση: python-wxversion δεν είναι εγκατεστημένη ΥδατογράφημαΤι επιθυμείτε να κάνετε τώρα;ΛευκόΓράψτε Συμπλήρωμα ΕνέργειαςΓραφή κειμένου σε κάποια θέσηΕίναι μόνο δυνατή η χρήση αρχείων με τις παρακάτω προεκτάσειςΕίναι δυνατή η επικόλληση ως κείμενο στα στοιχεία νέου εκτελεστή.Χρειάζεται η εγκατάσταση του Python Win32 Extensions για αυτή τη λειτουργία.Για να γράψετε κάποιο συμπλήρωμα, αρκεί να ξέρετε PIL,ακύρωσηενέργειεςεξομάλυνσηεφαρμογήφόντοδικυβικόδιγραμμικάθόλωσηbooleanκάτωανάπτυξη της αναζήτησηςκέντροεπιλογήχρησιμοποιείστε το "+" για να προσθέσετε ενέργειεςπερίγραμμαημέραδεκαδικόςπροκαθορισμένηλεπτομέρειαdpiτονισμός άκρηςμεγαλύτερος τονισμός άκρηςανάγλυφοψευδέςαρχείοόνομα αρχείουμέγεθος αρχείουφίλτροεύρεση άκρωνμετακινούμενοφάκελοςόνομα φακέλουπλαίσιούψοςώραπαράβλεψηεικόνεςακέραιος αριθμόςαριστεράμέσολεπτόλειτουργίαμήναςόνομα μήνακοντινότεροόχιδεν βρέθηκαν %s ετικέτεςδιαδρομήπαρακαλώ εγκαταστήσατε το pyexiv2θετικός ακέραιος αριθμόςθετικός, μη μηδενικός ακέραιος αριθμόςανάλυσηδεξιάρίζαδευτερόλεπτοόξυνσημέγεθοςπαράλειψηλείανσηπερισσότερη λείανσηστοιχειοσειράυποφάκελοςετικέταπάνωμετατροπήαληθέςτύποςημέραόνομα ημέραςπλάτοςμεwxPython Λάθος Εκδόσεωςέτοςναιphatch-0.2.7/locale/el/LC_MESSAGES/phatch.po0000644000000000000000000036431411346363116020177 0ustar rootroot00000000000000# Greek translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2008-06-07 14:38+0000\n" "Last-Translator: Aristotelis Grammatikakis \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Επιθεώρηση με το Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Επιθεώρηση ετικετών EXIF & IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Παραδείγματα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Λειτουργία %s χωρίς γραφικό περιβάλλον ως πρόγραμμα κονσόλας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Λειτουργία %s ως γραφικό σταγονίδιο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Παράλειψη λαθών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Διαδραστικά" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Προσδιορίστε την τοπική γλώσσα (για παράδειγμα en ή en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Επιθεώρηση μεταδεδομένων (χρειάζεται τα πρόσθετα exif και iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Συμπερίληψη όλων των υποφακέλων" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Χωρίς τον έλεγχο των εικόνων πρώτα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Αναλυτικά" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "Είναι δυνατή η επικόλληση ως κείμενο στα στοιχεία νέου εκτελεστή." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" "Συγνώμη, χρειάζεται η εγκατάσταση της ενέργειας %s για αυτόν τον κατάλογο " "ενεργειών." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "Η εντολή σταγονιδίου για τον επιθεωρητή εικόνων αντιγράφτηκε στην μνήμη." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Δεν έχει καταγραφεί στο ιστορικό ακόμα τίποτα." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Ιστορικό" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "ακύρωση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "παράλειψη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "παράβλεψη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "χρησιμοποιείστε το \"+\" για να προσθέσετε ενέργειες" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Άνοιγμα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Άνοιγμα καταλόγου ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Εκτέλεση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Εκτέλεση ενέργειας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Προσθήκη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Προσθήκη ενέργειας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Αφαίρεση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Αφαίρεση επιλεγμένης ενέργειας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Πάνω" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Μετακίνηση επιλεγμένης ενέργειας προς τα πάνω" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Κάτω" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Μετακίνηση επιλεγμένης ενέργειας προς τα κάτω" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Επιθεωρητής Εικόνας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Αναζήτηση σε ετικέτες exif και iptc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Περιγραφή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Εμφάνιση περιγραφής του καταλόγου ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Επιλογή Αρχείου Καταλόγου Ενεργειών..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Αποθήκευση Καταλόγου Ενεργειών Ως..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "εφαρμογή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "πλαίσιο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "ενέργειες" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Μάθημα σε html θα ανοίξει στον διαδικτυακό περιηγητή." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Μελετήστε τα συμπληρώματα ενεργειών στο:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "αν θέλετε να συνεισφέρετε κάποιο συμπλήρωμα για το Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Σύρσιμο και Ρίψη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Ρίξτε οποιοδήποτε αρχείο ή/και φάκελο στο σταγονίδιο του Phatch\n" "για να τα επεξεργαστείτε δεσμικά.\n" "Δεξί-πάτημα ή διπλό-πάτημα για επιστροφή στην κανονική μορφή." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Το Phatch θα προσθέσει μια αυτόματα. Παρακαλώ ελέξτε τις επιλογές." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Αποθήκευση τελευταίων αλλαγών σε" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Επιλογή φακέλου για το σταγονίδιο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Το Phatch επιτυχώς δημιούργησε το σταγονίδιο." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Επιλογή καταλόγου ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Επιλογή φακέλου" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Επιλογή Αρχείου/ων" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Επιλογή φάκελου εικόνων" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "εικόνες" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Περιήγηση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Αρχείο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Φάκελος" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "προκαθορισμένη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Εμφάνιση Πηγαίου" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "ανάπτυξη της αναζήτησης" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Διαδρομή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Νέο\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Εκκίνηση νέου καταλόγου ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Άνοιξε...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Ανοίγει κατάλογο ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Αποθήκευση\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Αποθήκευση καταλόγου ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Αποθήκευση &Ως...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Αποθήκευση καταλόγου ενεργειών ως" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Αντιγραφή του Καταλόγου Εικόνων ως &Εντολή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Επικόλληση της εντολής σε εκτελεστή αρχειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Αντιγραφή &Προσφάτων ως Εντολή στη Μνήμη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Αντιγραφή Επι&θεωρητή Εικόνων ως Εντολή στη Μνήμη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Έξοδος\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Έξοδος από την εφαρμογή." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Πρόσθεση...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Αφαίρεση\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Αφαίρεση της επιλεγμένης ενέργειας." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Ενεργοποίηση\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Ενεργοποίηση ενέργειας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Απενεργοποίηση\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Απενεργοποίηση ενέργειας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Πάνω\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Κάτω\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Επεξεργασία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Σταγονίδιο\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Εμφάνιση ως σταγονίδιο για τη ρίψη αρχείων" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Εμφάνιση Περιγραφής\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Εργαλεία για τον χειρισμό του παρόντος καταλόγου ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Ανάπτυξη Όλων\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Εμφάνιση όλων των παραμέτρων των ενεργειών." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Σύμπτυξη Όλων\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Εμφάνιση μόνο των επιγραφών των ενεργειών." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "Εμφάνιση [&E]" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Εκτέλεση...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Εκτέλεση του καταλόγου ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Εμφάνιση Ιστορικού...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Εμφάνιση Αρχείου Ιστορικού" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "Εργαλεία [&R]" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Προς την ιστοσελίδα του Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Τεκμηρίωση...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Μεταφορά στη τεκμηρίωση του Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Φόρουμ...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Μεταφορά στο Φόρουμ του Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "Μετάφραση του Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Μεταφράστε το Phatch στην τοπική σας διάλεκτο." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Αναφορά Μαμουνιού...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Αναφορά μαμουνιού στο launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&Περί Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Εμφάνιση πληροφοριών περί της εφαρμογής." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Βοήθεια" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Για να γράψετε κάποιο συμπλήρωμα, αρκεί να ξέρετε PIL," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Εμφάνιση πατρόν για τα συμπληρώματα ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Κώδικας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Αίτηση για Βοήθεια" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&Εντάξει" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Γράψτε Συμπλήρωμα Ενέργειας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Apply for future errors " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Ματαίωση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Μήνυμα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Συνέχεια" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Επιλογές" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Τύποι" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Περιήγηση Φακέλου" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Προέλευση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Αρχείο(α)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Στάση για λάθη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Έλεγχος των εικόνων πρώτα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Αντικατάσταση υπαρχόντων εικόνων" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Ακύρωση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Δέσμη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Εικόνα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Επιγραφή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "ετικέτα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Στοιχειοσειρά" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Επιλογή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Ανάλυση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "Μέσα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Κινητό" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Ως" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Λειτουργία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Αναδειγματοληψία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "δικυβικό" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Ακέραιος αριθμός" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Ακέραιος αριθμός+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Ακέραιος αριθμός+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Οριζόντια" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Ολισθητής" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "φόντο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Όλα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Προσανατολισμός" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Μετατόπιση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Οριζόντια Μετάθεση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Κάθετη Μετάθεση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Παράθεση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Κλιμάκωση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Σημάδι" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Διαφάνεια" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Μέθοδος" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Δεσμικός Επεξεργαστής Εικόνων" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Αληθές" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Ψευδές" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "αληθές" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "ψευδές" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Μη Αποθηκευμένος Κατάλογος Ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Κατάλογοι Ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Όλα τα Αρχεία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Περιγράψτε τον κατάλογο ενεργειών εδώ." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Πρέπει να υπάρχει η ενέργεια \"Αποθήκευση\" στο τέλος." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "με" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Συσχέτηση Εικόνων με Κατάλογο Ενεργειών στο %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Συσχέτηση Εικόνων με Πρόσφατο Κατάλογο Ενεργειών στο %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Συσχέτηση Εικόνων με τον Επιθεωρητή Εικόνων στο %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Αφαίρεση Συσχετισμού από %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "Σταγονίδιο Καταλόγου Ενεργειών..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "&Πρόσφατο Σταγονίδιο..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "&Σταγονίδιο Επιθεωρητή Εικόνων..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Δεσμική επεξεργασία με πρόσφατους καταλόγους ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Επιθεώρηση EXIF & IPTC ετικετών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Καμμία ενέργεια." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Ο κατάλογος ενεργειών είναι άδειος." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Δεν υπάρχει καμία ενέργεια ενεργοποιημένη." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Ελέγχονται οι εικόνες" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Το Phatch δεν μπορεί να χειριστεί %d εικόνες:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Μη αποδεκτές εικόνες" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Κανένα αρχείο ή φάκελος επιλεγμένος." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Αδύνατη η ανάγνωση του αρχείου" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Δεν είναι εφικτή η ενέργεια %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Δεν είναι εφικτή η ενέργεια %(a)s στην εικόνα '%(i)s' στον φάκελο:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Εκτέλεση του καταλόγου ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Επιλογή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "ημέρα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "όνομα φακέλου" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "όνομα αρχείου" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "μέγεθος αρχείου" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "φάκελος" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "ώρα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "λεπτό" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "μήνας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "όνομα μήνα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "διαδρομή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "ρίζα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "δευτερόλεπτο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "υποφάκελος" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "τύπος" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "ημέρα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "όνομα ημέρας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "έτος" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "ύψος" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "λειτουργία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "πλάτος" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "μέγεθος" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Χρήση του Επιθεωρητή Εικόνων για την παρουσίαση όλων των μεταβλητών." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Είναι μόνο δυνατή η χρήση αρχείων με τις παρακάτω προεκτάσεις" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "αριστερά" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "κέντρο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "δεξιά" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "πάνω" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "μέσο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "κάτω" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Μονοχρωμία (1-bit εικονοστοιχεία, ασπρόμαυρο)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bit εικονοστοιχεία, RGB με μάσκα διαφάνειας)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "θόλωση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "περίγραμμα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "λεπτομέρεια" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "τονισμός άκρης" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "μεγαλύτερος τονισμός άκρης" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "ανάγλυφο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "εύρεση άκρων" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "λείανση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "περισσότερη λείανση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "όξυνση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "κοντινότερο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "διγραμμικά" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "εξομάλυνση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Περιστροφή 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Περιστροφή 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Περιστροφή 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Αντιστροφή Δεξιά-Αριστερά" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Αντιστροφή Άνω-Κάτω" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Κανονικά" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "στοιχειοσειρά" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "ακέραιος αριθμός" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "θετικός ακέραιος αριθμός" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "θετικός, μη μηδενικός ακέραιος αριθμός" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "ανάλυση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "μετακινούμενο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "επιλογή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Σφάλμα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Προειδοποίηση: python-wxversion δεν είναι εγκατεστημένη\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Χρειάζεται (επαν)εγκατάσταση." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Παρακαλώ αναβαθμίστε το wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPython Λάθος Εκδόσεως" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "&Μνεία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Άδεια" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Κλείσιμο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Περί" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Μνεία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Τεκμηρίωση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Μετάφραση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Γραφικά" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Βιβλιοθήκες" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Χορηγοί" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Άδεια" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Εικόνες" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Όλα τα αρχεία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Επιλογή εικόνας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Εισαγωγή url εικόνας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "παρακαλώ εγκαταστήσατε το pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "δεν βρέθηκαν %s ετικέτες" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Προσθήκη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "δεκαδικός" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "όχι" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "ναι" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Επιλογή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Γραμματοσειρές" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Σκιά" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "φίλτρο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Δημιουργεί μια θολή σκιά κάτω από την εικόνα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Πλαίσιο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Θόλωση Σκιάς" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Φόντο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Εφέ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Θόλωση, Όξυνση, Ανάγλυφο, Εξομάλυνση, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Φίλτρο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Επανάληψη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Ποσότητα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "μετατροπή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Μετακίνηση με απόσταση και αναδίπλωση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Καμβάς" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Κοπή ή επέκταση του καμβά χωρίς αναδιαμόρφωση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Οριζόντια Ευθυγράμμιση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Κάθετη Ευθυγράμμιση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Υδατογράφημα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Με παράθεση, κλιμάκωση και διαφάνεια" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Μεγέθυνση ή σμίκρυνση της εικόνας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Περιορισμός Αναλογιών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Αναμόρφωση Εικόνας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Αντιμετάθεση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Αντιστροφή ή περιστροφή 90 μοιρών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Μετονομασία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "αρχείο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Σταυρωμένη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Στρογγυλεμένη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Τετράγωνη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Στρογγυλοποίηση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Στρογγυλεμένες ή στραυρωμένες γωνίες" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Ακτίνα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Πάνω αριστερή γωνία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Πάνω δεξιά γωνία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Κάτω αριστερή γωνία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Κάτω δεξιά γωνία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Λειτουργία Μετατροπής" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Μετατροπή χρωματικής λειτουργίας εικόνας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Ταίριασμα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Σμίκρυνση και κοπή εικόνας με προκαθορισμένη αναλογία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Διάχυση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Αυτόματη Αντίθεση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Μεγιστοποίηση Αντίθεσης Εικόνας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Όριο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Αποθήκευση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Μέση τιμή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Αντιγραφή της μέσης τιμής εικονοστοιχείου" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Μάσκα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Τοποθέτηση μάσκας διαφάνειας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Αναδημιουργία Μάσκας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Κείμενο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Γραφή κειμένου σε κάποια θέση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Γραμματοσειρά" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Μέγεθος" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Επιχρωματισμός" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Επιχρωμάτιση γκρίζας εικόνας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Μαύρο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Λευκό" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Αντιγραφή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Αφισοποίηση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Στοιχεία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Κατάταξη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Αντιγραφή της καταταγμένης τιμής εικονοστοιχείων" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Σολάρισμα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Αναστροφή όλων των εικονοστοιχείων πέρα του ορίου" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Όριο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Εξισορρόπιση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Εξισορροπία ιστογράμματος της εικόνας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Περιστροφή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Γκρίζες σκιάσεις" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Γωνία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Περιστροφή με τυχαία γωνία" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Ανάπτυξη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Διαφάνεια Φόντου" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Αντιστροφή" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Χρωματική αντιστροφή εικόνας" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Αντανάκλαση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Δημιουργία αντανάκλασης" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Βάθος" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Κενό" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Κοινό" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Αντιγραφή της πιο συχνής τιμής εικονοστοιχείων" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Ελάχιστο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Αντιγραφή της ελάχιστης τιμής των εικονοστοιχείων" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Προοπτική" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Κλίση 2/3διάστατη" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Αριστερή Γωνία Κλίσης" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Πάνω Γωνία Κλίσης" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Κάτω Γωνία Κλίσης" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Δεξιά Γωνία Κλίσης" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Αντίθεση" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Μετατροπή από γκρίζο σε ασπρόμαυρο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Μέγιστο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Αντιγραφή της μέγιστης τιμής εικονοστοιχείων" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Κορεσμός" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Αλλαγή κορεσμού από γκρί σε υψηλό" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Φωτεινότητα" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Αλλαγή φωτεινότητας από μάυρο σε άσπρο" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Αυτές οι προεκτάσεις εγκαταστήθηκαν επιτυχώς:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Το Phatch δεν κατάφερε να εγκαταστήσει την αιτούμενη λειτουργία." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Το Phatch προσπάθησε να απεγκαταστηθεί από τον Windows Explorer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "Χρειάζεται η εγκατάσταση του Python Win32 Extensions για αυτή τη λειτουργία." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Κατάλογος ενεργειών" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Δεν παρέχθηκε κατάλογος ενεργειών ." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Διαδρομή εικόνων" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Επιθυμείτε να συνεχίσετε;" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Τι επιθυμείτε να κάνετε τώρα;" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Αν γίνει επανεκκίνηση του %s, η ενέργεια θα εμφανιστεί στο μενού." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Το Phatch δεν μπόρεσε να εγκαταστήσει την ενέργεια στο %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Χρειάζεται το πακέτο python-nautilus να είναι εγκατεστημένο." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Δεσμική επεξεργασία εικόνων με το Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Επεξεργασία με πρόσφατο κατάλογο ενεργειών του Phatch" #~ msgid "new" #~ msgstr "νέο" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-bit εικοστοιχεία, μορφή έγχρωμου βίντεο)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8-bit εικονοστοιχεία, σε παλέτα χρωμάτων)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-bit εικοστοιχεία, χρωματικός διαχωρισμός)" #~ msgid "doesn't exist" #~ msgstr "δεν υπάρχει" #~ msgid "is zero, but should be non-zero." #~ msgstr "είναι μηδενική αλλά θα έπρεπε να είναι μη μηδενική." #~ msgid "for boolean" #~ msgstr "για boolean" #~ msgid "Colour" #~ msgstr "Χρώμα" #~ msgid "Filename" #~ msgstr "Όνομα αρχείου" #~ msgid "All selected image types" #~ msgstr "Όλοι οι επιλεγμένοι τύποι εικόνων" #~ msgid "&File" #~ msgstr "&Αρχείο" #~ msgid "Phatch Version" #~ msgstr "Έκδοση Phatch" #~ msgid "Background Colour" #~ msgstr "Χρώμα Φόντου" #~ msgid "Save an image" #~ msgstr "Αποθήκευση εικόνας" #~ msgid "Shadow Colour" #~ msgstr "Χρώμα Σκιάς" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Κέλυφος Python...\tCtrl-P" #~ msgid "Height" #~ msgstr "Ύψος" #~ msgid "By offset" #~ msgstr "Μετάθεση" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-bit εικονοστοιχεία ακεραίου αριθμού)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-bit εικονοστοιχεία, πλήρες χρωματολόγιο)" #~ msgid "for integer" #~ msgstr "ακεραίου αριθμού" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "αφού το Phatch θα παράγει το γραφικό περιβάλλον αυτόματα." #~ msgid "please email" #~ msgstr "παρακαλώ επικοινωνήστε με τον" #~ msgid "&Skip To Next Image" #~ msgstr "&Μεταπήδηση στην Επόμενη Εικόνα" #~ msgid "Create missing folders" #~ msgstr "Δημιουργία μη υπαρχόντων φακέλων" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Γκρίζα Σκίαση (8-bit εικονοστοιχεία, ασπρόμαυρο)" #~ msgid "is negative, but should be positive" #~ msgstr "είναι αρνητική, αλλά θα έπρεπε να είναι θετική" #~ msgid "for float" #~ msgstr "προς μετακίνηση" #~ msgid "Open a python shell for introspection" #~ msgstr "Άνοιγμα κέλυφους python για έλεγχο" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "Γράψτε Συμπλήρωμα Ενέργειας...\tCtrl-W" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Γράψτε ένα νέο συμπλήρωμα ενέργειας για το Phatch με PIL." #~ msgid "&Ignore Error" #~ msgstr "&Αγνόηση Λάθους" #~ msgid "&Default Types" #~ msgstr "&Προσδιορισμένοι Τύποι" #~ msgid "Force Background Colour" #~ msgstr "Επέβαλλε το Χρώμα του Φόντου" #~ msgid "Width" #~ msgstr "Πλάτος" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32-bit εικονοστοιχεία δεκαδικού αριθμού)" #~ msgid "colours" #~ msgstr "χρώματα" #~ msgid "Fade all colours to gray" #~ msgstr "Ξεθώριασμα χρωμάτων στο γκρίζο" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Ελάττωση αριθμού στοιχείων του καναλιού χρώματος" #~ msgid "Resample Shadow" #~ msgstr "Αναδημιουργία Σκιάς" #~ msgid "january" #~ msgstr "Ιανουάριος" #~ msgid "monday" #~ msgstr "Δευτέρα" #~ msgid "tuesday" #~ msgstr "Τρίτη" #~ msgid "october" #~ msgstr "Οκτώβριος" #~ msgid "november" #~ msgstr "Νοέμβριος" #~ msgid "december" #~ msgstr "Δεκέμβριος" #~ msgid "saturday" #~ msgstr "Σάββατο" #~ msgid "friday" #~ msgstr "Παρασκευή" #~ msgid "thursday" #~ msgstr "Πέμπτη" #~ msgid "wednesday" #~ msgstr "Τετάρτη" #~ msgid "sunday" #~ msgstr "Κυριακή" #~ msgid "february" #~ msgstr "Φεβρουάριος" #~ msgid "april" #~ msgstr "Απρίλιος" #~ msgid "march" #~ msgstr "Μάρτιος" #~ msgid "september" #~ msgstr "Σεπτέμβριος" #~ msgid "may" #~ msgstr "Μάιος" #~ msgid "june" #~ msgstr "Ιούνιος" #~ msgid "july" #~ msgstr "Ιούλιος" #~ msgid "august" #~ msgstr "Αύγουστος" #~ msgid "the filename" #~ msgstr "το αρχείο" #~ msgid "does not exist." #~ msgstr "δεν υπάρχει." #~ msgid "Copy the image file" #~ msgstr "Αντιγραφή του αρχείου εικόνας" #~ msgid "Put colour under transparent image" #~ msgstr "Τοποθέτηση χρώματος κάτω από την διάφανη εικόνα" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Αποθήκευση μεταδεδομένων (χρειάζεται τα πρόσθετα exif και iptc)" #~ msgid "Scale down only" #~ msgstr "Σμίκρυνση μόνο" #~ msgid "Save metadata" #~ msgstr "Αποθήκευση μεταδεδομένων" #~ msgid "Only an image file is allowed." #~ msgstr "Μόνο μία εικόνα επιτρέπεται" #~ msgid "Open image file" #~ msgstr "Άνοιγμα αρχείου εικόνας" #~ msgid "&Preview" #~ msgstr "&Προεπισκόπηση" #~ msgid "Copy cell text" #~ msgstr "Αντιγραφή κειμένου κυψέλης" #~ msgid "Open image url" #~ msgstr "Άνοιγμα url εικόνας" #~ msgid "&Export..." #~ msgstr "&Εξαγωγή..." #~ msgid "invalid syntax" #~ msgstr "άκυρη σύνταξη" #~ msgid "the variable" #~ msgstr "η μεταβλητή" #~ msgid "the file extension" #~ msgstr "η προέκταση του αρχείου" #~ msgid "the float value" #~ msgstr "η τιμή του μεταβλητού αριθμού" #~ msgid "is invalid." #~ msgstr "είναι άκυρη" #~ msgid "invalid literal" #~ msgstr "άκυρος πραγματικός" #~ msgid "the integer value" #~ msgstr "η τιμή του ακεραίου αριθμού" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Αυτός ο κατάλογος ενεργειών δημιουργήθηκε με παλαίοτερη έκδοση του " #~ "%(name)s.\n" #~ "\n" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "" #~ "Η εντολή σταγονιδίου για αυτόν τον κατάλογο ενεργειών αντιγράφτηκε στην " #~ "μνήμη." #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "Δεσμικός Επεξεργαστής & Μετονομαστής Εικόνων" #~ msgid "Phatch could not create the droplet:" #~ msgstr "Το Phatch δεν μπόρεσε να δημιουργήσει το σταγονίδιο:" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "Επι&θεωρητής Εικόνων (exif)\tCtrl-Space" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "&Ιστοσελίδα...\tCtrl-I" #~ msgid "Do not create missing folders" #~ msgstr "Χωρίς τη δημιουργία απόντων φακέλων" #~ msgid "border" #~ msgstr "πλαίσιο" #~ msgid "Crop or add border to all sides" #~ msgstr "Κοπή ή τοποθέτηση πλαισίου σε όλες τις πλευρές" #~ msgid "Rename the image file" #~ msgstr "Μετoνομασία του αρχείου εικονας" #~ msgid "watermark" #~ msgstr "υδατογράφημα" #~ msgid "a filename with a valid extension was expected." #~ msgstr "αναμενόταν όνομα αρχείου με σωστή προέκταση" #~ msgid "All default image types" #~ msgstr "Όλοι οι προκαθορισμένοι τύποι εικόνων" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Δείτε Εργαλεία>Εμφάνιση Ιστορικού για περισσότερες λεπτομέρειες." #~ msgid "drag & drop any image here" #~ msgstr "Ρίψη εικόνων εδώ" #~ msgid "&Recent" #~ msgstr "&Πρόσφατα" phatch-0.2.7/locale/en/0000755000000000000000000000000011346363116014572 5ustar rootroot00000000000000phatch-0.2.7/locale/en/LC_MESSAGES/0000755000000000000000000000000011346363116016357 5ustar rootroot00000000000000phatch-0.2.7/locale/en/LC_MESSAGES/phatch.mo0000644000000000000000000000104111346363116020157 0ustar rootroot00000000000000$,89Project-Id-Version: Phatch Report-Msgid-Bugs-To: POT-Creation-Date: 2010-03-12 07:55+0100 PO-Revision-Date: 2010-03-12 07:55+0100 Last-Translator: Stani Language-Team: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Poedit-Language: English X-Poedit-SourceCharset: utf-8 X-Poedit-KeywordsList: _t;gettext X-Poedit-Basepath: . X-Poedit-SearchPath-0: /home/stani/sync/python/phatch/repo/trunk phatch-0.2.7/locale/en/LC_MESSAGES/phatch.pot0000644000000000000000000030625411346363116020364 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: Phatch\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-12 07:55+0100\n" "PO-Revision-Date: 2010-03-12 07:55+0100\n" "Last-Translator: Stani \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: English\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-KeywordsList: _t;gettext\n" "X-Poedit-Basepath: .\n" "X-Poedit-SearchPath-0: /home/stani/sync/python/phatch/repo/trunk\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:63 msgid "Examples" msgstr "" # %s refers to Phatch #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:69 #, python-format msgid "Run %s as console program without a gui" msgstr "" # %s refers to the program name #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:73 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:81 msgid "Ignore errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:85 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:89 msgid "Interactive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:93 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:98 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:102 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:106 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:110 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:114 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:118 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:122 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:83 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:85 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:87 #, python-format msgid "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:89 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:91 msgid "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:93 msgid "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:95 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:98 msgid "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:100 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:202 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:210 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:212 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:214 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:231 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:234 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:236 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:279 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:321 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:374 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:462 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:465 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:469 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:472 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:480 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:484 msgid "Description" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:541 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:560 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:592 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:604 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:650 #, python-format msgid "%(name)s actions" msgstr "" # This is avalailable from the Tools>Phatch Shell to open a python shell/console/terminal/... #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:733 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:736 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:777 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:779 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:780 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:790 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:806 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:873 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:189 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:885 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:906 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:907 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:953 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1003 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1015 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1026 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1029 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1085 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1127 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1149 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1150 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1151 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:73 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:140 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:153 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:235 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:237 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:239 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:255 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:262 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:260 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:266 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:268 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:273 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:282 msgid "File" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:283 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:342 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:473 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:412 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:450 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:499 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:646 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:667 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:648 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:669 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:704 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show &Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:46 msgid "Label" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:51 msgid "tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "Boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:59 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:73 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:60 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:63 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:68 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:68 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:68 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:68 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:69 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:69 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:69 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:69 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:69 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:70 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:70 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:70 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:72 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:72 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:72 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:201 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:341 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:349 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:409 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:414 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:452 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:600 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:708 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:55 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:55 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:61 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:63 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:65 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:67 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:84 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:181 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:186 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:365 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:379 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:366 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:380 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:407 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:424 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:425 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:431 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:441 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:470 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:500 msgid "Unable to open file" msgstr "" # %(a)s is the name of the action #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:586 #, python-format msgid "Can not apply action %(a)s:" msgstr "" # %(a)s is the name of the action and %(i)s is the filename of the image. #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:625 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:720 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:746 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:748 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:752 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:754 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:444 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:445 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:156 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:163 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:163 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:208 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:167 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:163 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:171 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:203 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:629 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:630 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:160 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:701 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1138 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1363 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:47 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:51 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:51 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:51 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:68 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:85 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:919 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:87 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:497 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:546 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:551 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:570 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:575 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:586 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:634 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:593 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:600 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:648 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:607 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:617 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:621 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:629 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:641 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:655 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:661 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:673 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:678 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:707 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:714 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:735 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:822 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:826 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:830 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:895 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:909 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1013 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:161 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:163 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:163 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:163 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:105 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" # Please do not translate %(recommended)s and %(minimal)s. These are version numbers. #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' (or at least 'python-wxgtk%(minimal)s')." msgstr "" # Please do not translate %(recommended)s and %(minimal)s. These are version numbers. #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:29 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:31 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:33 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:51 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:147 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:151 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:156 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:165 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:177 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:51 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:55 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:156 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:169 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:181 msgid "Process with recent Phatch action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:193 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:196 msgid "Inspect EXIF & IPTC tags" msgstr "" phatch-0.2.7/locale/en_GB/0000755000000000000000000000000011346363116015142 5ustar rootroot00000000000000phatch-0.2.7/locale/en_GB/LC_MESSAGES/0000755000000000000000000000000011346363116016727 5ustar rootroot00000000000000phatch-0.2.7/locale/en_GB/LC_MESSAGES/phatch.mo0000644000000000000000000004021411346363116020534 0ustar rootroot00000000000000?   &ARb{  $ 3@Y `lr x  %!(%4 8 BLSYs{*~.2  $ 7X]ciqx   ,<!Suz " / "N q v )~    ,  ! /!=!(B! k!$w!!! !!!!!!"","B"I"O"T"\"c"g"""""" " "" """ """"#+#3# <# F#R#a#'h#### ### ##$$$&$-$5$<$D$*I$t$$$$$$$"%$%,%1%E%[% c%o%% %"%*%(%& '&&1&X&1n&&& &&&&&''!' *'5'H' O' Z' e'o''''''' ''((/(D(\(b(i( |(( ( ((((>(() ))*):)A)F)`)|)))) ) ))))))*** *(+* T*^*z**4*** * * *+ +++!+(+<+C+J+c+k+o+w+++++++ +++++++++++++,,,,",',8, S,^,d,i,p,x,},, ,,,, ,,,,,,,,.... ...... //5/E/U/[/j///// // // //0 0&0,0 20 ?0K0 O0%]0!0(0000 0 01 11-151*81.c121 1 11 1222#2+222E2Y2 m2x2 2222222222! 3/3 43>3X3_3u3 ~3#3333" 4.434);4e4k4 q4}4,444 44(4 (5$45Y5l5 s55555555556 666 6$6>6D6K6P6V6 Z6 d6o6 666 6666666 6 777'%7M7l7r7 777 7777777778*828P8l88888"888899 9,9F9 K9"W9*z9(99 9&9:1+:]:d: i:t:{:::::: ::; ; ; ";,;E;K;S;n;); ;;;;;<<!<(< ;<E< L< X<f<k<r<>{<<<<<<<===;=@=P=a= q= }= ======== =(= >>:>@>4_>>> > > >>>>>>>>? ?#?+?/?7???F?M?S?X?a? h?s?y?????????????????? @@$@)@0@8@=@B@ I@U@\@`@ d@n@s@x@~@@@J<;kh !{',% Z.q?8#9P? =2>mUBl='XCTf|nr>-_+&VuIL ,5:d5O E<j12tD (x.}`#[*%o3) :]gN3A)H"R1c~7+!^-$G y60S49 s/;K0epb v/*Qi\6M4& zWwa @8("F$7Y&Abort&About Phatch... Ctrl-Shift-A&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&License&New Ctrl-N&Open... Ctrl-O&Quit Ctrl-Q&Remove Ctrl--&Save Ctrl-S&Show Description Ctrl-H&Tools&Up Ctrl-Up&ViewAboutAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAmountAngleApply a transparency maskArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...Auto ContrastBackgroundBackground OpacityBatch process images with PhatchBitsBlackBleedBooleanBorderBottom Left CornerBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse FolderC&reditsCanvasCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an imageChoose an image folderChoose the folder for the dropletCodeColorizeColorize grayscale imageCommonConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopyCreditsCrop or expand the canvas without scalingCrossDepthDescriptionDisable actionDisplays information about this application.Do not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDrops a blurred shadow under a photoDrops a reflectionEffectEnable actionEqualizeEqualize the image histogramErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFalseFileFile(s)FilterFitFlip or rotate 90 degreesFloatFolderFontFontsGapGrayscaleHorizontalHorizontal OffsetIgnore errorsImageImage InspectorImage pathsImagesInInspect EXIF & IPTC tagsInspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageLabelLeft Shear AngleLibrariesLicenseLogMake the image smaller or biggerMarkMaskMaximize image contrastMaximumMedianMessageMethodMinimumModeMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo action list provided.No files or folder selected.NormalNothing to do.OffsetOffset by distance and wrap aroundOpacityOpenOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesPathPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch successfully created the droplet.Photo Batch ProcessorPosterizeProcess with recent Phatch action listQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRepeatResampleResolutionRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaveSave &As... Ctrl-Shift-SSave last changes toSaves an action listSaves an action list asScaleSelectSelect action listSelectionShadowShadow BlurShow log fileSizeSliderSolarizeSorry, you need to install the %s action for this action list.SourceSponsorsSquareStart a new action listStop for errorsStringTextThe action list is empty.There is no action enabled.TileTop Left CornerTop Right CornerTop Shear AngleTranslationTransposeTresholdTrueTypesUnable to open fileUnsaved Action ListUpVerboseVertical OffsetView SourceView as a droplet to drag and drop filesWatermarkWhat do you want to do now?WhiteWrite text at a given positionYou can only use files with the following extensionsabortactionsantialiasapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscontourdaydecimaldefaultdetailembossfalsefilefilenamefilterfind edgesfloatfolderframeheighthourignoreimagesintegerleftmiddleminutemodemonthnearestnono %s tags foundpathpositive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringtagtoptransformtruetypewidthwithyearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-12-15 16:25+0000 Last-Translator: Edward Chidgey Language-Team: English (United Kingdom) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) &Abort&About Phatch... Ctrl-Shift-A&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&Licence&New Ctrl-N&Open... Ctrl-O&Quit Ctrl-Q&Remove Ctrl--&Save Ctrl-S&Show Description Ctrl-H&Tools&Up Ctrl-Up&ViewAboutAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from greyscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAmountAngleApply a transparency maskArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...Auto ContrastBackgroundBackground OpacityBatch process images with PhatchBitsBlackBleedBooleanBorderBottom Left CornerBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse FolderC&reditsCanvasCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an imageChoose an image folderChoose the folder for the dropletCodeColouriseColourise greyscale imageCommonConstrain ProportionsContrastConvert ModeConvert the colour mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopyCreditsCrop or expand the canvas without scalingCrossDepthDescriptionDisable actionDisplays information about this application.Do not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDrops a blurred shadow under a photoDrops a reflectionEffectEnable actionEqualiseEqualise the image histogramErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFalseFileFile(s)FilterFitFlip or rotate 90 degreesFloatFolderFontFontsGapGreyscaleHorizontalHorizontal OffsetIgnore errorsImageImage InspectorImage pathsImagesInInspect EXIF & IPTC tagsInspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colours of an imageLabelLeft Shear AngleLibrariesLicenceLogMake the image smaller or biggerMarkMaskMaximise image contrastMaximumMedianMessageMethodMinimumModeMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo action list provided.No files or folder selected.NormalNothing to do.OffsetOffset by distance and wrap aroundOpacityOpenOpen an action listOpens an action listOptionsOrientationOverwrite existing imagesPathPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch successfully created the droplet.Photo Batch ProcessorPosteriseProcess with recent Phatch action listQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRepeatResampleResolutionRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as a console program without a guiSaturationSaveSave &As... Ctrl-Shift-SSave last changes toSaves an action listSaves an action list asScaleSelectSelect action listSelectionShadowShadow BlurShow log fileSizeSliderSolariseSorry, you need to install the %s action for this action list.SourceSponsorsSquareStart a new action listStop for errorsStringTextThe action list is empty.There is no action enabled.TileTop Left CornerTop Right CornerTop Shear AngleTranslationTransposeThresholdTrueTypesUnable to open fileUnsaved Action ListUpVerboseVertical OffsetView SourceView as a droplet to drag and drop filesWatermarkWhat do you want to do now?WhiteWrite text at a given positionYou can only use files with the following extensionsabortactionsantialiasapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcentrechoiceclick '+' to add actionscontourdaydecimaldefaultdetailembossfalsefilefilenamefilterfind edgesfloatfolderframeheighthourignoreimagesintegerleftmiddleminutemodemonthnearestnono %s tags foundpathpositive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringtagtoptransformtruetypewidthwithyearyesphatch-0.2.7/locale/en_GB/LC_MESSAGES/phatch.po0000644000000000000000000032511211346363116020542 0ustar rootroot00000000000000# English (United Kingdom) translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-12-15 16:25+0000\n" "Last-Translator: Edward Chidgey \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Inspect with Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Inspect EXIF & IPTC tags" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Examples" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Run %s as a console program without a gui" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Run %s as a gui droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignore errors" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interactive" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Do not check images first" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Verbose" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Sorry, you need to install the %s action for this action list." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "abort" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "skip" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "click '+' to add actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Open" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Open an action list" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Execute" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Execute the action" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Add" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Add an action" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Remove" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Remove the selected action" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Move the selected action up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Move the selected action down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Image Inspector" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Description" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "application" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "frame" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Drag & Drop" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Save last changes to" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Choose the folder for the droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch successfully created the droplet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Select action list" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Choose a folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Choose File(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Choose an image folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "images" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Browse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "File" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "default" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "View Source" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "broaden your search" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Path" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&New\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Start a new action list" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Open...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Opens an action list" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Save\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Saves an action list" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Save &As...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Saves an action list as" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Quit\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Quit the application." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Add...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Remove\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Remove the selected action." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Enable\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Enable action" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Disable\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Disable action" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Up\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Down\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Edit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Droplet\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "View as a droplet to drag and drop files" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Show Description\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Expand All\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Collapse All\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&View" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Execute...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Execute the action list" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Show log file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Tools" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Documentation...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&About Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Displays information about this application." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Help" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Code" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Ask for Help" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Abort" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Message" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Continue Anyway" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Options" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Types" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Browse Folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Source" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "File(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Stop for errors" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Check images first" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Overwrite existing images" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Cancel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Batch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Label" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "String" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Choice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Resolution" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "In" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "As" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Mode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Resample" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicubic" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Integer+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Integer+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Slider" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "background" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "All" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Offset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Horizontal Offset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Vertical Offset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Tile" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Scale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Mark" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Opacity" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Method" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Photo Batch Processor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "True" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "False" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "true" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "false" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Unsaved Action List" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Action Lists" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "All Files" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "with" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Associate Images with Action List in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Associate Images with Recent Action Lists in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Associate Images with Image Inspector in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Remove Association from %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Nothing to do." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "The action list is empty." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "There is no action enabled." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Checking images" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch can not handle %d image(s):" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Invalid images" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "No files or folder selected." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Unable to open file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Executing action list" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Select" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "day" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "filename" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "hour" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minute" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "month" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "path" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "root" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "second" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "type" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "year" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "height" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "mode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "width" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "size" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "You can only use files with the following extensions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "left" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "centre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "right" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "top" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "middle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "bottom" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monochrome (1-bit pixels, black and white)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bit pixels, RGB with transparency mask)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "blur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "contour" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "emboss" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "find edges" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "smooth" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "smooth more" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "sharpen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "nearest" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilinear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Rotate 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Rotate 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Rotate 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "string" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "positive integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "positive, non-zero integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "resolution" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "choice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Error" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "C&redits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licence" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Close" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "About" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Credits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Documentation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Translation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Artwork" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Libraries" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Sponsors" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licence" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Images" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "All files" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Choose an image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "no %s tags found" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Add" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "no" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "yes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Selection" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Fonts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Shadow" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Drops a blurred shadow under a photo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Border" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Shadow Blur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Background" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Effect" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Repeat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Amount" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transform" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Offset by distance and wrap around" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Canvas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Crop or expand the canvas without scaling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Align Horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Align Vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Watermark" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Make the image smaller or bigger" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Constrain Proportions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Transpose" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Flip or rotate 90 degrees" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Rename" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Cross" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Rounded" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Square" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Round" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Rounded or crossed corners" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Radius" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Top Left Corner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Top Right Corner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Bottom Left Corner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Bottom Right Corner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Convert Mode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Convert the colour mode of an image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Fit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Downsize and crop image with fixed ratio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Bleed" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Auto Contrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maximise image contrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Save" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Median" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Copies the median pixel value" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Mask" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Apply a transparency mask" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Text" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Write text at a given position" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Font" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Size" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Colourise" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Colourise greyscale image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Black" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "White" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Copy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posterise" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Rank" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solarise" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Invert all pixel values above threshold" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Threshold" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Equalise" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Equalise the image histogram" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Rotate" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Greyscale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Angle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Rotate with random angle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Expand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Background Opacity" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Invert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Invert the colours of an image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Reflection" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Drops a reflection" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Depth" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Gap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Common" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Copies the most common pixel value" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Copies the minimum pixel value" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspective" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Left Shear Angle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Top Shear Angle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Bottom Shear Factor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Right Shear Factor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Contrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Adjust from grey to black & white" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maximum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Copies the maximum pixel value" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Saturation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Adjust saturation from greyscale to high" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Brightness" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Adjust brightness from black to white" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Action list" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "No action list provided." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Image paths" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Do you want to continue?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "What do you want to do now?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch could not install the action in %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Batch process images with Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Process with recent Phatch action list" #~ msgid "doesn't exist" #~ msgstr "doesn't exist" #~ msgid "for integer" #~ msgstr "for integer" #~ msgid "for float" #~ msgstr "for float" #~ msgid "is zero, but should be non-zero." #~ msgstr "is zero, but should be non-zero" #~ msgid "is negative, but should be positive" #~ msgstr "is negative, but should be positive" #~ msgid "for boolean" #~ msgstr "for boolean" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-bit pixels, true colour)" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-bit pixels, colour video format)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-bit integer pixels)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32-bit floating point pixels)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8-bit pixels, mapped using a colour palette)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-bit pixels, colour separation)" #~ msgid "Colour" #~ msgstr "Colour" #~ msgid "Filename" #~ msgstr "Filename" #~ msgid "colours" #~ msgstr "colours" #~ msgid "Fade all colours to gray" #~ msgstr "Fade all colours to grey" #~ msgid "border" #~ msgstr "border" #~ msgid "Shadow Colour" #~ msgstr "Shadow Colour" #~ msgid "Background Colour" #~ msgstr "Background Colour" #~ msgid "Force Background Colour" #~ msgstr "Force Background Colour" #~ msgid "Put colour under transparent image" #~ msgstr "Put colour under transparent image" #~ msgid "Copy the image file" #~ msgstr "Copy the image file" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Reduce the number of bits of colour channel" #~ msgid "Rename the image file" #~ msgstr "Rename the image file" #~ msgid "Save an image" #~ msgstr "Save an image" #~ msgid "watermark" #~ msgstr "watermark" #~ msgid "new" #~ msgstr "new" #~ msgid "Phatch Version" #~ msgstr "Phatch Version" #~ msgid "Height" #~ msgstr "Height" #~ msgid "Width" #~ msgstr "Width" #~ msgid "Scale down only" #~ msgstr "Scale down only" #~ msgid "does not exist." #~ msgstr "does not exist." #~ msgid "is invalid." #~ msgstr "is invalid." #~ msgid "Open image file" #~ msgstr "Open image file" #~ msgid "&Preview" #~ msgstr "&Preview" #~ msgid "&File" #~ msgstr "&File" #~ msgid "&Export..." #~ msgstr "&Export..." #~ msgid "Do not create missing folders" #~ msgstr "Do not create missing folders" #~ msgid "Crop or add border to all sides" #~ msgstr "Crop or add border to all sides" #~ msgid "By offset" #~ msgstr "By offset" #~ msgid "All selected image types" #~ msgstr "All selected image types" #~ msgid "All default image types" #~ msgstr "All default image types" #~ msgid "&Recent" #~ msgstr "&Recent" #~ msgid "Only an image file is allowed." #~ msgstr "Only an image file is allowed." #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch could not create the droplet:" #~ msgid "drag & drop any image here" #~ msgstr "drag & drop any image here" #~ msgid "&Skip To Next Image" #~ msgstr "&Skip To Next Image" #~ msgid "&Ignore Error" #~ msgstr "&Ignore Error" #~ msgid "Create missing folders" #~ msgstr "Create missing folders" #~ msgid "&Default Types" #~ msgstr "&Default Types" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Greyscale (8-bit pixels, black and white)" #~ msgid "the file extension" #~ msgstr "the file extension" #~ msgid "the float value" #~ msgstr "the float value" #~ msgid "invalid syntax" #~ msgstr "invalid syntax" #~ msgid "the integer value" #~ msgstr "the integer value" phatch-0.2.7/locale/eo/0000755000000000000000000000000011346363116014573 5ustar rootroot00000000000000phatch-0.2.7/locale/eo/LC_MESSAGES/0000755000000000000000000000000011346363116016360 5ustar rootroot00000000000000phatch-0.2.7/locale/eo/LC_MESSAGES/phatch.mo0000644000000000000000000000223411346363116020165 0ustar rootroot00000000000000\  8;03lA -21!HSAlways save on desktopExamplesIgnore errorsPhatch did not succeed to install the requested feature.Phatch tried to uninstall itself from the Windows Explorer.These extensions have been succesfully installed: You need to install the Python Win32 Extensions for this feature.Project-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-11-03 15:11+0000 Last-Translator: Michael Moroni Language-Team: Esperanto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) Konservi ĉiam en labortabloEkzemplojIgnori erarojnPhatch ne sukcesis instali la volitan trajto:Phatch klopodis malinstaliĝi el Internet ExplorerĈi tiuj kromprogramoj estis sukcese instalita: Poe ĉi tiu trajto bezonas, ke Python Win32 kromprogramo estas instalitaphatch-0.2.7/locale/eo/LC_MESSAGES/phatch.po0000644000000000000000000030616511346363116020202 0ustar rootroot00000000000000# Esperanto translation for phatch # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-11-03 15:11+0000\n" "Last-Translator: Michael Moroni \n" "Language-Team: Esperanto \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Ekzemploj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Konservi ĉiam en labortablo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignori erarojn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Ĉi tiuj kromprogramoj estis sukcese instalita:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch ne sukcesis instali la volitan trajto:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch klopodis malinstaliĝi el Internet Explorer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "Poe ĉi tiu trajto bezonas, ke Python Win32 kromprogramo estas instalita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" phatch-0.2.7/locale/es/0000755000000000000000000000000011346363116014577 5ustar rootroot00000000000000phatch-0.2.7/locale/es/LC_MESSAGES/0000755000000000000000000000000011346363116016364 5ustar rootroot00000000000000phatch-0.2.7/locale/es/LC_MESSAGES/phatch.mo0000644000000000000000000015147211346363116020202 0ustar rootroot000000000000002C<3HDID`D&zDCDDDE E%E,E JEWEoEtE}EE E EEEEEEFF )F 3F ?FKFjFzFFFFFFFFFGGG8GTG rG~GG G GGGGG GGH HH=HUH nH{HH HHHH HI III(I 0I3;IoIuI |I III I I%I!I(JG-JuJJJ J JJJJ(JK'1KYK#pKKKKKKK&L(L3.L9bLLL@L*L.M2BMuM|M M M M MMM M& N1N6N\^\u\\\ \ \\\ \\ \]]1]>7].v] ]]] ] ] ]])]^:^:=^x^ ^0^^^._3_G_O_ X_ b_n_}_'__ ____` `&`36`j`,p`` ``` ` ``` ` a a"a&a Aa9Oaaa aaaaa b%b;b?bFbNbWb^bebmbub|bbb*bb bbb.c4cMc(jc"ccccccccd" d0d4dId&^dddd d dd.d e#e +e7e>e.Xee e ee ee ef f f"&f%If*of8f(f;f78g6pgggg>g"h6hQhohxh hh&hh h!hi i19ikiriwi*~i iiiii j%j ,j 7jDjbj |j jj jjjjj j k kk$k4k ;k Fk Qk[k tkkkkkkk'kkl~l lllll ll m"m@mUmmmsm m m mm!mmmmn n#n5nEn\n onyn nn n nnn nnnn oo2oHo`oso|o'o#o o$o p-p@pEp Lp Yp gptppp p ppDpH%q8nq#q7q>r"Brer1lrrrr rrrrr ss,s=sAs[srss(s&ssss( tH6tHtEt#uH2u{u+u3uu:vNvtvVwApwww wwww'x7x;xDx Tx^xox x'xxx)x x yy -y 7yByKyPyXy"^yyyyyyyz)zAzUz]z lzzz}z zz zz2z{ {{{ { -{;{J{S{j{ z{({,{ {{ { { | |)| /|9| M|W|p|*||4|?|A5}7w}7}.}~~$~ (~ 2~>~ E~ O~Z~b~k~p~x~~~~~~~ ~~~~~~ +28=FO Vag ny   +KPXahot z ŀ܀ -8>CJRW\ cov }" 8ρ4:=6x ʂςԂ܂ ҄/I j !Ʌ (*:ex  ܆ "0,Cp ÇӇ  *%1&W-~ ,Lj   &7 ?Mbq/ω 6$"[ ~ Ê̊ъ = 8BJ]ow# ҋ7Y+ˌ&ތ 0>o/ 2ލ"!+%M(s-ʎ;ЎJ WjEo38<"_ fr *ƐՐ,1LQW _i ̑,*9BHXjpyђ+ 2 >J>Y 1ē"#8\ lG%Ք #/8,@mu ӕ)&!B dqy'֖( .:AW` r|'!'!0%R#x:@ޘ.Ne"͙  '=P Vdk,q ǚ ښ $ "4 M Z[hě0ٛ" -@Y hCs':/3c)9(bi${ $Şpajs '! I"Tw} Ơנ +4Nc}  ˡCӡ9-go0 !$$ ISfy$ أ=3[Ҥ /.LCO =å" :C~ ̦?զ" 8EZu{-F- 3=Oj Ѩ C2#v(é#$!FKS [emt|0Ҫت)*9G#'+ͫ!"(K [elt/Ҭ/ - 3T dr:ɭ !@#d {ͮ &!,)NDx.>J+9v ܰ?7L h !1ɱ /M)`<DzͲӲ-ڲ (/Nm 1 &@H Z {! ۴ # -7@+\ ӵ<ٵIs`%Զ !4V$h&ӷ! (7L[(s ¸θ%!E gr zɹ۹3!=Ni˺.,A,]'ŻͻԻ! + C'Mu+OMIN-<ƽG7K.Ⱦ Ѿ۾$*(1Zb$޿- .8go"u1RRJp'D(.E;t"Iw/FG (52;Niz5# ; GT g r~ .&"&%<b(& .B Ij&} ?  "4EXay22 / CNho"~)'5;;AA}VBFY;   %/ 8BJPbx &  %-3;Naiz  3+0)\)  !' /<A] w !  &-4C-L#z>A<?\   16 s;]VC-  fuyabc<YlqF)f08*+/o!%u x g,mSP ^$ANkBI)1$3Zr^4Fi={W:\q*j+m>T,M8 :3 6 X)0N?l|ODn"(o4/<ziwHa{G!vWi-SZE@9bM-c&_2GG~*1[g.xPw8V*6}'!+YkRE5@m&s~}oHb[(B!7td`g 7}2?-&zK96.`FStqD eaj $ r% 2jvUDu>1R\hL59(]t;U') Ipp' /^Av:Q%Js1;hMO'#CkXn% {VK4h~<>Ol,#e /|pIH 3.$z, _J#]T L #QX (w?R W+@Ac|ZLnYxQC"_057=K"e0B\N[2Jf.dE&TryUP`"yd="%s" can not be found."%s" is not a valid path.%(amount)d images done in %(duration)s%(mode)s has been converted to %(mode_copy)s to save as %(format)s.%(name)s Shell%(name)s actions%d issues were logged%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List&Action List Droplet...&Add&Add Tag&Add Tag to All Images...&Add... Ctrl-+&All Types&Ask for Help&Batch&Browse Library&Cancel&Close&Collapse All Ctrl-Shift-E&Collapse Automatically&Continue Anyway&Copy Tag&Copy Value&Delete Tag&Delete Tag from All Images...&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Fonts&Forum... Ctrl-F&Help&Image Inspector (exif) Ctrl-I&Image Inspector Droplet...&Insert Tag in Action List...&Inspect...&License&Modify Value for All Images...&New Ctrl-N&No Types&OK&Open...&Open... Ctrl-O&Phatch&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Remove Image&Rename Tag for All Images...&Report a Bug... Ctrl-B&Safe Mode (recommended)&Save Ctrl-S&Select&Show Description Ctrl-H&Show template for action plugin&Skip to Next Action&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&Update&User&View&Website... Ctrl-W3D Edge3D ObjectsA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd TagAdd an actionAdd gps dataAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAfterwards you can drag&drop images on the Phatch window to batch them.Align HorizontalAlign VerticalAllAll FilesAll filesAll readable and writable typesAll readable typesAll selected typesAllow Geek action and unsafe expressionsAllow as last actionAlso check if your hard disk not full. Always save on desktopAlways show status dialog when doneAmountAngleAngle Apply a transparency highlightApply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilAre you sure you want to delete this tag from "%s"?Are you sure you want to delete this tag from all images?ArtworkAsAs an example try out the polaroid action list from the library.Associate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastAuto CropAutomatic (use exif orientation)BackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlenderBlender %s is required.BlurBlur AngleBlur RadiusBlur ReflectionBlur SigmaBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBorder WidthBothBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBottom StretchedBox ColorBox DepthBrightnessBrowseBrowse %sBrowse FolderBrowse action lists, masks, highlights and fontsBulletBy OffsetC&ontinueC&reditsCMYK (4x8-bit pixels, color separation)CameraCamera DistanceCamera Horizontal RotationCamera Lens AngleCamera RollCamera Vertical RotationCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthCaptionCenterChangeChange value for all images to:CharcoalCharcoal RadiusCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletClipboardCodeColorColor ValueColor to AlphaColorizeColorize grayscale imageColumn Line WidthColumnsCommandCommand did not produce an output image: %sCommentsCommonConstrain ProportionsContourContour ColorContrastContrast FactorContrast TresholdConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCopy the original imageCorner Bottom LeftCorner Bottom RightCorner Top LeftCorner Top RightCould not open image with %s.Cover ColorCreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDe&veloper Documentation... Ctrl-PDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDetails DegreeDifferent for each sideDirectionDirection Disable Safe Mode in the Tools menu if you trust this action list.Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDoneDouble click to open or right click for more options.DownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDraw border inside or outsideDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEasily batch process images and edit metadataEffectEnable actionEnter an image urlEqual for all sidesEqualizeEqualize the image histogramErrorError: wxPython %(recommended)s (or at least %(minimal)s) can not be found, but is required.ExamplesExecuteExecute external commandExecute the actionExecute the action listExecuting action listExif and fileExif timeExif_Photo_UserCommentExpandExpanding one action collapses the others.ExplorerFade all colors to grayFalseFebruaryFileFile NameFile timeFile(s)FillFill ColorFill FolderFill ImageFill TypeFilterFitFit ImageFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFloor ColorFloor OpacityFloor ReflectionFolderFontFontsFor more information see the tutorials (Help>Documentation)Force Background ColorFormat %(format)s does not support overwriting "%(tag)s".FridayFrom (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GapGeekGeek actions are not allowed in safe mode.GeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GradientGradient BottomGradient TopGrayscaleGrayscale (8-bit pixels)GridHighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage SizeImage pathsImagemagickImagesImpossible to load data from action list.Impossible to write tag "%s"InIn Phatch you need to open or create an action list first.Include all subfoldersInclude imageInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LA (8-bit pixels, grayscale with transparency mask)LabelLearn to develop Phatch with Python and PIL.LeftLeft PageLeft Shear AngleLeft StretchedLetterboxLibrariesLibrary Action ListsLicenseLid RotationLine ColorLine OpacityLogLook up exif and iptc tagsLossless JPEGLossless JPEG transformation does not work on a %s image:Make n x m matrix of imageMake selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMaximum one parameter "%s" is allowedMayMedianMessageMetadataMethodMiddleMinimumMinutesMirrorMistModeMondayMonochrome (1-bit pixels, black and white)MonthsMotion BlurMove the selected action downMove the selected action upNever run action lists from untrusted sources.No action list provided.No files or folder selected.No images have been processed to report.No save action required at the endNoneNormalNothing has been logged yet.Nothing to do.NovemberObjectOctoberOffsetOffset by distance and wrap aroundOneOne image done in %sOne issue was loggedOnly palette images have transparency.OpacityOpenOpen &Library... Ctrl-Shift-OOpen &RecentOpen &Url...Open an action listOpens a ready-made actionlist from the libraryOpens an actions listOptionsOrientationOutputOverwrite existing imagesP (8-bit pixels, mapped using a color palette)PHoto bATCH ProcessorPNG OptimizePage MappingPaintPaint RadiusParameter "%s.*" is missingPaste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch could not create the droplet: Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch will generate the user interface automatically.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please check if this action list doesn't contain harmful code.Please delete "%s".Please install "%s" first.Please upgrade your wxPython.PolaroidPositionPosterizePreserve TimestampProcess with recent Phatch action listProgram VersionProjectionPut color under transparent imageQuit the application.RGB (3x8-bit pixels, true color)RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReady!Reduce the number of bits of color channelReflectionRegenerate thumbnailRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename tag for all images to:Rename the original imageRender HeightRender WidthRepeatRepeat imagesReport a bug on launchpad.ResampleResample HighlightResample ImageResample MaskResolutionRightRight Shear FactorRight StretchedRotateRotate 180Rotate 270Rotate 90Rotate with random angleRotate, flip, grayscale and cropRoundRoundedRounded or crossed cornersRow Line WidthRowsRun %s as a gui dropletRun %s as console program without a guiSafe mode protects you from the execution of possibly harmful scripts. Are you sure you want to disable it?Same Method for All CornersSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save TagsSave and convert to other typesSave last changes toSave only metadata (lossless)Saves an action listSaves an action list asScaleScale Down OnlyScale ImageScale MethodScale ModelScale ReflectionScan for new fonts on your systemSecondsSee "%s" for more details.SelectSelect Color BySelect ObjectSelect ProjectionSelect RotationSelect Rotation for %sSelect action listSelectionSeparateSeptemberShadowShadow BlurShadow ColorSharpenSharpen RadiusSharpen SigmaShear 2d or 3dShift time values of tagsShow &Log... Ctrl-LShow &ReportShow &Report... Ctrl+RShow Advanced OptionsShow Background OptionsShow Floor OptionsShow LogShow Type OptionsShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.Show report of processed imagesSigmoidal ContrastSizeSketchSketch AngleSketch RadiusSketch SigmaSkip To Next &ImageSliderSolarizeSorry, "%s" is not a valid path.Sorry, %s.Sorry, no valid files foundSorry, the action list seems incompatible with %(name)s %(version)s.Sorry, the values of these options will be lost in %(name)s %(version)s:Sorry, time shift can only handle dates before 2038-1-19Sorry, unable to open these images:Sorry, you have the wrong version of Blender installed.Sorry, you need to install the %s action for this action list.Sorry, your settings seem corrupt.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStarsStars ColorStart a new action listStop for errorsStringStudy the action plugins in:SundaySymmetrical tile textureTIFF CompressionTagTag "%s" is not writable.Tag "%s" is read only.Tag (Exif, Iptc)Tag exists alreadyTag should start with "Exif_" or "Iptc_"Tag should start with Exif_* or Iptc_*TamogenTextThe action list is empty.The action list only processes metadata.The droplet command for recent action lists was copied to the clipboard.The droplet command for the image inspector was copied to the clipboard.The droplet command for this action list was copied to the clipboard.The following name(s) are invalid: The tag "%s" is not valid. It should follow the syntax: Exif_* or Iptc_*There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This action list is unsafe:This action list was made by a different %(name)s version.This application is known to be compatible with wxPython version(s) %(recommended)s (or at least %(minimal)s), but you have %(version)s installed.This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' (or at least 'python-wxgtk%(minimal)s').This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTime ShiftTime Shift (seconds)To (Exif, Iptc)Tone altering mosaic generatorTools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTop StretchedTransform to a grayscale pencil drawingTransformationTransformation Translate Phatch in your native language.TranslationTransparentTransparent BackgroundTransposeTransverseTresholdTrueTuesdayTypesUnable extract variables from fileUnable to add tag <%s>Unable to change label.Unable to change tag <%s>Unable to delete tag <%s>Unable to open fileUnable to remove imageUnable to rename tag <%s>Unable to save tag <%s>Unsaved Action ListUnsharpUnsharp RadiusUnsharp SigmaUpUpdate Exif ThumbnailUpdate JPEGUpdate Orientation TagUse FloorUse exif datetimeUse the Image Inspector to list all the variables.UserUtilityValueVerboseVerify InputVerify OutputVerify ProgramVerticalVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWaveWave HeightWave LengthWednesdayWhat do you want to do now?WhiteWrap BothWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYCbCr (3x8-bit pixels, color video format)YearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,You only need to know PIL to write a plugin for Phatch.a filename with a valid extension was expectedabortactionsallantialiasapplicationaspectautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcan not be emptycenterchoiceclick '+' to add actionscolorcompressioncontourdaydecimaldefaultdesktopdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameformatformatdescriptionframegammaheighthourignoreimagesintegerinterlaceinvalid literal "%s" for booleaninvalid literal "%s" for floatinvalid literal "%s" for integerinvalid syntax "%s" for integerleftloadingmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnoneorientationpathplease email: please install pyexiv2pluginpositive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth moresourcestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existthe float value "%s" is negative, but should be positivethe float value "%s" is zero, but should be non-zerothe integer value "%s" is negative, but should be positivethe integer value "%s" is zero, but should be non-zerotoptransformtransparencytruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-03-09 14:12+0000 Last-Translator: stani Language-Team: Spanish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) "%s" no se encuentró.«%s» no es una ruta segura.%(amount)d imágenes procesadas en %(duration)s%(mode)s ha sido convertido a %(mode_copy)s para guardar como %(format)s.Terminal de %(name)sAcciones de %(name)sSe han registrado %d problemasReciente %s&Cancelar&Acerca de Phatch... Ctrl-Shift-ALista de &AccionesDroplet de Lista de &Acciones...&Añadir&Añadir etiqueta&Añadir etiqueta a todas las imágenes...&Añadir... Ctrl-+Todos los Tipos&Pedir ayuda&Lote&Hojear librerías&Cancelar&Cerrar&Contraer todo Ctrl-Shift-E&Contraer automáticamente&Continuar de todos modos&Copiar etiqueta&Copiar valor&Eliminar etiqueta&Eliminar etiqueta de todas las imágenes...&Desactivar Ctrl-0&Documentación... Ctrl-M&Abajo Ctrl-Down&Gota Ctrl-D&Editar&Activar Ctrl-1&Ejecutar... Ctrl-Return&Expandir todo Ctrl-E&ExportarTipogra&fías&Foro... Ctrl-F&AyudaInspector de &imágenes (exif) Ctrl-IDroplet del &Inspector de Imágenes...&Insertar etiqueta en la lista de acciones...&Inspeccionar...&Licencia&Modificar valor para todas las imágenes...&Nuevo Ctrl-N&Ningún Tipo&De acuerdo&Abrir...&Abrir... Ctrl-O&Phatch&Salir Ctrl-QDroplet &Reciente...&Quitar Ctrl--&Eliminar imagen&Renombrar etiqueta para todas las imágenes...&Reportar un Error... Ctrl-B&Modo Seguro (Recomendado)&Guardar Ctrl-S&Seleccionar&Mostrar descripción Ctrl-H&Mostrar la plantilla para los complementos de acción&Saltar hacia la siguiente acción&Herramientas&Traducir Phatch... Ctrl-T&Arriba Ctrl-UpAct&ualizar&Usuario&VerSitio &Web... Ctrl-WBorde 3DObjetos 3DUn tutorial de html va a abrirse en su navegador de internet.Acerca deAcciónListas de accionesLista de accionesAñadirAñadir etiquetaAñadir una acciónAñadir datos gpsAjustar brillo desde negro a blancoAjustar de gris a blanco y negroAjustar la saturación desde la escala de grises a altaLuego puede arrastrar y soltar imágenes en la ventana de Phatch para añadirlas al lote.Alinear horizontalmenteAlinear verticalmenteTodoTodos los archivosTodos los archivosTodos los tipos de lectura y escrituraTodos los tipos de lecturaTodos los tipos seleccionadosPermitir acciones tontas y expresiones insegurasPermitir como última acciónTambién verifique si su disco no está lleno. Guardar siempre en el escritorioMostrar siempre el diálogo de estado al finalizarCantidadÁnguloÁngulo Aplicar un resaltado transparenteAplicar una máscara de transparenciaAplicar para los futuros errores Aplicar con mosaico, escalado y transparenciaAbril¿Está seguro de que desea eliminar esta etiqueta de "%s"?¿Está seguro de que desea eliminar esta etiqueta de todas las imágenes?Trabajo artísticoComoPuede usar como ejemplo la lista de acción Polaroid de la librería.Asociar imágenes con la lista de acciones en %s...Asociar Imágenes con el Inspector de Imágenes en %s...Asociar imágenes con la lista de acciones reciente en %s...AgostoAutomáticoContraste automáticoAutorecortarAutomático (usar la orientación en exif)FondoColor de fondoTransparencia del fondoProceso automatizado de imágenes con PhatchProceso por lotes con lista de acciones recientesBitsNegroSangrarMezcladorSe requiere Blender %sDifuminarAngulo del desenfoqueRadio del desenfoqueReflección DifuminadaSigma del difuminadoDifuminar, Polaroid, sombrear, desenfocar...Difuminar, Enfocar, Relieve, Suavizar, ...BooleanoBordeColor del BordeEspesor del bordeAmbosInferiorInferior izquierdaEsquina inferior izquierdaInferior derechaEsquina inferior derechaÁngulo cortante inferiorEstirar en el fondoColor del RecuadroProfundidad del RecuadroBrilloExaminar…Examinar %sBuscar carpetaHojear las listas de acciones, máscaras, resaltados y fuentesViñetaCompensar porC&ontinuarC&réditosCMYK (pixeles a 4x8-bits, separación de colores)CámaraDistacia de la cámaraRotación horizontal de la cámaraÁngulo de los Lentes de la CámaraGiro de cámaraRotación vertical de la cámaraNo se puede aplicar la acción %(a)s a la imagen '%(i)s' en la carpeta:No se puede aplicar la acción %(a)s:LienzoAlto del lienzoAncho del lienzoSubtituladoCentradoCambiarCambiar el valor para todas las imágenes a:CarbónRadio del carbónPrimero revisar imágenesComprobando imágenesElecciónElegir archivo(s)Seleccione una carpetaElegir un archivo de lista de acciones...Elegir una imagenElegir carpeta de imágenesEscoje la carpeta para el dropletPortapapelesCódigoColorValor del colorColor a transparenciaColorearColorear una imagen en escala de grisesAncho de línea de la columnaColumnasComandoEl comando no produjo ninguna imagen: %sComentariosComúnMantener proporcionesContornoColor de contornoContrasteCondición del contrasteUmbral del contrasteModo de conversiónConvertir a modo de color de una imagenCopiar el valor máximo del pixelCopiar el valor de la mediana del pixelCopiar el valor mínimo del pixelCopiar el valor del pixel más comúnCopiar el valor de rango del píxelCopiarCopiar la lista de a&cciones como orden en el portapapelesCopiar I&nspector de imágenes como una orden en el portapapelesCopiar R&eciente como orden en el portapapelesCopiar imagen originalEsquina Inferior IzquierdaEsquina Inferior DerechaEsquina Superior IzquierdaEsquina Superior DerechaNo se puede abrir la imagen con %sColor de cubiertaCréditosRecortarCortar o expandir el lienzo sin escalarRecortar la imagenCrucePersonalizadoCierreDíasDocumentación del desarrollador... . Ctrl-PDiciembreEliminar etiquetas Exif o IptcEliminar EtiquetasProfundidadDesaturarDescriba aquí la lista de acciones.DescripciónNivel de detallesDiferente para cada ladoOrientaciónOrientación Desactive el modo seguro en el menú «Herramientas» si confía en esta lista de acciones.Desactiva la acciónMuestra información acerca de esta aplicación.No verificar primero las imágenes¿Desea continuar?¿Desea sobreescribirlo?DocumentaciónFinalizadoHacer doble click o click con el botón derecho para más opciones.AbajoReducir y cortar imagen con escala fijaArrastrar y soltarDibuja un contorno alrededor de las fronteras de la imagenDibujar el borde en el interior o en el extriorSuelte cualquier archivo o carpeta aquí para procesarlos. Haga doble clic o clic con el botón secundario para volver a la vista normal.Deja una sombra borrosa debajo de la fotoTirar reflexiónProcesa imágenes y edita metadatos por lotes fácilmenteEfectoActiva la acciónIngresar la dirección de una imagenIgual para todos los ladosBalancearEcualizar el histograma de la imagenErrorError: wxPython %(recommended)s (o al menos %(minimal)s) no se ha encontrado y se necesita para ejecutar Phatch.EjemplosEjecutarEjecutar un comando externoEjecutar la acciónEjecutar la lista de accionesEjecutando la lista de accionesExif y archivoTiempo EXIFComentario_Fotografico_ExifExtenderExpandir una opción contrae las otras.ExploradorDifuminar todos los colores a grisFalsoFebreroArchivoNombre de archivoTiempo del archivoArchivo(s)RellenarColor de rellenoCarpeta de rellenoImagen de rellenoTipo de rellenoFiltrarAjustarAjustar imagenReflejarVoltear izquierda derechaVoltear arriba abajoVoltear o girar 90 gradosFlotanteColor del PisoOpacidad del PisoReflejar PisoCarpetaTipo de letraFuentesPara más información vea los tutoriales en (Ayuda>Documentación)Forzar color de fondoFormatear %(format)s no soporta sobreescritura "%(tag)s".ViernesDesde (Exif, Iptc)Datos GPS (gpx)Informe GPS (csv)BrechaGeekNo se permite acciones tontas en modo protegido.GeoetiquetaIr a la documentación de Phatch.Ir al foro de PhatchIr a la página principal de Phatch.GradienteGradiente InferiorGradiente SuperiorEscala de grisesEscala de Grises (pixeles de 8 bits)RejillaResaltar¡Hurra, sin problemas!HorizontalJustificación horizontalDesplazamiento horizontalHorasSi reinicia %s, la acción aparecerá en el menú contextual.Si desea contribuir con un complemento para Phatch,Ignorar erroresImagenInspector de imágenesTamaño de la imagenRuta de las imágenesImagemagickImágenesImposible cargar datos de la lista de acciones.Imposible escribir marca "%s"EnEn Phatch es necesario abrir o crear una lista de acciones primero.Incluir todos los subdirectoriosIncluir imagenInicializar tipografías (sólo para scripts de instalación)Examinar etiquetas EXIF e IPTCExaminar etiquetas EXIF & IPTCExaminar metadatos (requiere los complementos iptc y exif)Examinar con PhatchEnteroEntero+Entero+0InteractivoImágenes no válidasInvertirInvertir todos los valores de los pixeles por encima del umbralInvertir los colores de una imagenCalidad JPEGTamaño máximo JPEGTolerancia de tamaño JPEGEneroJulioJunioMantener imágenes existentes (no reemplazar)LA (pixeles de 8 bits, escala de grises con máscara de transparencia)EtiquetaAprenda a desarrollar Phatch con Python y PILIzquierdaPágina izquierdaÁngulo cortante izquierdoEstirar a la izquierdaBuzónLibreríasLibrería de listas de accionesLicenciaRotacion de cubiertaColor de la líneaOpacidad de la líneaRegistroBuscar etiquetas exif e iptcJPEG sin pérdidaLa conversión a un JPEG sin pérdida no funciona en una imagen %s:Crear una matriz n x m de la imagenHacer transparente el color seleccionadoAgrandar o achicar la imagenMarzoMarcaMáscaraMaximizar el contraste de la imagenMáximoSe admite máximo un parámetro "%s"MayoMedianaMensajeMetadatosMétodoCentroMínimoMinutosReflejarEmpañarModoLunesMonocromático (pixeles a 1-bit, blanco y negro)MesesDesenfoque por movimientoMover la acción seleccionada hacia abajoMover la acción seleccionada hacia arribaNunca ejecutar listas de acciones de orígenes inseguros.No se ha dado una lista de accionesNo ha seleccionado archivos o carpetas.No se han procesado imágenes para reportarNo se requiere guardar al finalNingunaNormalTodavía no se ha registrado nada.Nada pendiente.NoviembreObjetoOctubreDesplazamientoDesplazamiento por distancia y ajuste alrededorUnoUna imagen procesada en %sSe ha registrado un problemaSólo las imágenes paleta tienen transparenciaTransparenciaAbrirAbrir &Librería... Ctrl-Shift-OAbrir &RecienteAbrir &Url...Abrir una lista de accionesAbre una lista de acciones ya elaborada desde la libreríaAbre una lista de accionesOpcionesOrientaciónSalidaSobrescribir imágenes existentesP (pixeles a 8-bits, asignados utilizando una paleta de colores)Procesador PHoto bATCHOptimizar PNGMapeo de páginaPintarRadio de la pinturaFalta parámetro "%s.*"Pegar esta orden en un lanzadorRutaLápizPerspectivaPhatch no puede manejar %d imagen(es):Phatch no pudo crear el droplet: Phatch no pudo instalar la acción en %s:Phatch no ha tenido éxito al instalar la característica solicitadaPhath ha creado satisfactoriamente el droplet.Phatch trató de desinstalarse desde el Explorador de Windows.Phatch agregará una para usted, por favor, compruebe sus configuraciones.Phatch generará la interfaz de usuario automáticamente.Phatch con %sProcesador de fotos por lotesPor favor, (re)instálelo.Por favor revise si esta acción no contiene código malicioso.Por favor borre "%s"Favor instalar primero "%s"Favor de actualizar su wxPython.PolaroidPosiciónPosterizarPreservar el estampado del tiempoProcesar con lista de acciones reciente de PhatchVersión del programaProyecciónPoner un color debajo de la imagen transparenteSale del programa.RGB (pixeles a 3x8-bits, color verdadero)RGBA (pixeles a 4x8-bits, RGB con máscara de transparencia)RadioRangoListo!Reducir el número de bits del canal de colorReflexiónActualizar miniaturaQuitarQuitar la asociación de %s...Quitar la acción seleccionadaQuitar la acción seleccionada.RenombrarRenombrar etiquetaRenombrar una etiquetaRenombrar la etiqueta para todas las imágenes a:Renombrar imagen originalAlto de la ReproducciónAncho de la ReproducciónRepetirRepetir imágenesInforma de un error a launchpad.RemuestreoRemuestrear resaltadoCambiar tamaño de la imagenCambiar el tamaño de la máscaraResoluciónDerechaÁngulo cortante derechoEstirar a la derechaGirarGirar 180Girar 270Girar 90Rotar con ángulo aleatorioGirar, voltear, escalar a grises y recortarRedondoRedondeadoEsquinas redondas o dobladasAncho de línea de la filaFilasEjecutar %s como un droplet con interfaz gráfica de usuarioEjecutar %s como un programa de terminal sin interfaz gráfica de usuarioEl modo seguro le protege de la ejecución de scripts posiblemente dañinos. ¿Está seguro que desea desactivarlo?Mismo método para todas las esquinasSaturaciónSábadoGuardarGuardar &como... Ctrl-Shift-SGuardar lista de acciones como...Guardar etiquetasGuardar y convertir a otros formatosGuardar los últimos cambios aGuardar sólo metadatos (sin pérdida)Guarda una lista de accionesGuarda una lista de acciones comoEscalarSólo reducirEscalar imagenMétodo del escaladoEscalar ModeloEscala de la reflexiónBuscar nuevas tipografías en su sistemaSegundosVer "%s" para más detalles.SeleccionarSeleccionar color porSeleccionar ObjetoSeleccionar ProyecciónSeleccionar rotaciónSeleccione la rotación para %sSeleccionar las lista de accionesSelecciónSepararSeptiembreSombraSombra borrosaColor de la sombraEnfocarRadio del enfoqueSigma del enfoqueCortar en 2d o 3dIntercambiar los valores de tiempo de las etiquetasMostrar ®istro... Ctrl-LMostrar Info&rmeMostrar info&rme... Ctrl+RMostrar opciones avanzadasMostrar Opciones del FondoMostrar Opciones del PisoMostrar bitácoraMostrar opciones de tiposMostrar todos los parámetros de las acciones.Mostrar descripción de la lista de accionesMostrar archivo de registroMostrar sólo las etiquetas de las acciones.Mostrar informe de imágenes procesadasContraste SigmoideTamañoBocetoÁngulo del bocetoRadio del bocetoSigma del boceto&Saltar hacia la siguiente imagenBarra de desplazamientoSolarizarDisculpe, "%s" no es una ruta correcta.Lo siento, %s.No se ha encontrado ningún archivo válidoLo sentimos, la lista de acciones parece incompatible con %(name)s %(version)s.Disculpe, los valores de estas opciones se perderán en %(name)s %(version)s:Disculpe, el cambio de fecha solo puede manejar fechas antes de 2038-1-19Lo sentimos, sin poder abrir estas imágenes:Disculpe, tiene instalada la versión incorrecta de Blender.Lo siento, necesita instalar la acción %s para esta lista de acciones.Lo sentioms, la configuración parece estar corrompida.OrigenEspecificar el idioma (por ejemplo es o es_ES)PatrocinadoresCuadradoEstrellasColor de las EstrellasComenzar una nueva lista de accionesDetener en erroresCadenaEstudiar los complementos de acción en:DomingoTextura de mosaico simétricaCompresión TIFFEtiquetaMarca "%s" no es de escritura.La etiqueta "%s" es de sólo lecturaEtiqueta (Exif, Iptc)La etiqueta ya existeMarca debe comenzar con "Exif_" o con "lptc_"La Marca debe comenzar con Exif_* o con lptc_*TamogenTextoLa lista de acciones está vacía.La lista de acciones solamente procesa metadatos.El comando gotero para la lista de acciones recientes fue copiado al portapapeles.La orden del droplet para el inspector de imágenes se ha copiado al portapapeles.El comando gotero para esta lista de acciones fue copiado al portapapeles.Los siguientes nombres son inválidos: La marca "%s" es inválida. Debe seguir la sintaxis: Exif_* o lptc_*No hay acciones habilitadas.Debería haber una acción 'Guardar' al final.Estas extensiones han sido satisfactoriamente instaladas: Esta lista de acciones es inseguraEsta lista de acciones fue creada por una versión diferente de %(name)s.Esta aplicación es compatible con la versión(es) %(recommended)s de wxPython (o al menos la %(minimal)s). pero tiene la versión %(version)s instalada.Esta aplicación requiere de 'python-wxversion' y 'python-wxgtk%(recommended)s' (o al menos 'python-wxgtk%(minimal)s').Este archivo ya existe.Esto también necesita que el paquete python-nautilus esté instalado.JuevesMosaicoTime ShiftCambio de tiempo (segundos)A (Exif, Iptc)Generador de mosaicos de tonos alteradosHerramientas para manejar la lista de acciones actualSuperiorSuperior izquierdaEsquina superior izquierdaSuperior derechaEsquina superior derechaÁngulo cortante superiorEstirar en el topeTransformar a un dibujo pincelado en escala de grisesTransformaciónTransformación Traducir Phatch a su idioma nativo.TraducciónTransparenteFondo TransparenteTransponerTransversarUmbralVerdaderoMartesTiposNo permitir extraer variables desde el ficheroNo es posible añadir la etiqueta <%s>No es posible cambiar la etiqueta.No es posible cambiar la etiqueta <%s>No es posible borrar la etiqueta <%s>No es posible abrir el archivoNo es posible quitar la imagenNo es posible renombrar la etiqueta <%s>No es posible guardar la etiqueta <%s>Lista de acciones no guardadaDesenfocarRadio del desenfoqueSigma de desenfoqueArribaActualizar la miniatura del ExifActualizar la JPEGActualizar la etiqueta de orientaciónUsar PisoUsar fecha EXIFUsar el inspector de imágenes para listar todas las variables.UsuarioHerramientaValorDetalladoVerificar EntradaVerificar SalidaVerificar ProgramaVerticalJustificación verticalDesplazamiento verticalVer código fuenteVer como una gota para arrastrar y soltar archivosAdvertencia: python-wxversion no está instalado. Marca de aguaOndaAltura de la ondaLongitud de la ondaMiércoles¿Qué desea hacer ahora?BlancoEnvolver ambosEscribir un complemento de acciónEscribir etiquetaEscribir un nuevo valor para una etiquetaEscribir texto en determinada posiciónYCbCr (pixeles a 3x8-bits, color en formato de video)AñosSolo puede utilizar archivos con las siguientes extensionesPuede pegarlo como texto en las propiedades de un nuevo lanzador.Necesitas instalar las extensiones Win32 de Python para utilizar esta característica.Sólo necesita saber PIL para escribir un complemento para Phatch.Solamente necesita saber PIL para escribir un complemento para Phatch.se esperaba un nombre de archivo con una extensión válidaCancelaraccionestodosanti-aliasaplicaciónaspectoautomáticofondobicúbicobilinealdifuminarlógicoabajoAmpliar búsquedano puede estar vacíocentroelecciónHaga clic en '+' para añadir accionescolorcompresióncontornodíadecimalpredeterminadoescritoriodetallepppmejorar el bordemejorar más el borderelievefalsoarchivonombre del archivotamaño de archivofiltrarencontrar bordesflotantecarpetanombre del directorioformatoDescripción del formatomarcogammaaltohoraignorarimágenesenteroentrelazarla literal "%s" no es válida como función lógicala literal "%s" no es válida para flotantela literal "%s" no es válida como enterosintaxis no válida como entero para "%s"izquierdacargandometadatosmediominutomodomesnombre del mesel más cercanonono se han encontrado etiquetas %sningunoorientaciónrutaPor favor, enviar email a: favor de instalar pyexiv2complementoentero positivopositivo, entero distinto a ceropyexiv2 tiene que estar instaladoresoluciónderecharaízsegundoenfocartamañoomitirsuavizarsuavizar másfuentecadenasub-directorioetiquetala extensión para archivo "%s" no es válidael nombre de archivo "%s" no existeel valor flotante "%s" es negativo, pero debería ser positivoel valor flotante "%s" es cero, pero debería ser distinto a ceroel valor entero "%s" es negativo, pero debería ser positivoel valor entero "%s" es cero, pero debería ser distinto a cerosuperiortransformartransparenciaverdaderotipoadvertenciadía de la semananombre del día de la semanaanchoconError de versión de wxPythonañosíphatch-0.2.7/locale/es/LC_MESSAGES/phatch.po0000644000000000000000000036565111346363116020213 0ustar rootroot00000000000000# Spanish translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-03-09 14:12+0000\n" "Last-Translator: stani \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Examinar con Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Examinar etiquetas EXIF e IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Ejemplos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" "Ejecutar %s como un programa de terminal sin interfaz gráfica de usuario" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Ejecutar %s como un droplet con interfaz gráfica de usuario" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Guardar siempre en el escritorio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignorar errores" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Inicializar tipografías (sólo para scripts de instalación)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interactivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Mantener imágenes existentes (no reemplazar)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Especificar el idioma (por ejemplo es o es_ES)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Examinar metadatos (requiere los complementos iptc y exif)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "No se requiere guardar al final" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Incluir todos los subdirectorios" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "No verificar primero las imágenes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "Permitir acciones tontas y expresiones inseguras" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Detallado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "Puede pegarlo como texto en las propiedades de un nuevo lanzador." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" "Lo siento, necesita instalar la acción %s para esta lista de acciones." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" "Disculpe, los valores de estas opciones se perderán en %(name)s %(version)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" "El comando gotero para esta lista de acciones fue copiado al portapapeles." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" "El comando gotero para la lista de acciones recientes fue copiado al " "portapapeles." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "La orden del droplet para el inspector de imágenes se ha copiado al " "portapapeles." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "En Phatch es necesario abrir o crear una lista de acciones primero." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "Puede usar como ejemplo la lista de acción Polaroid de la librería." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" "Luego puede arrastrar y soltar imágenes en la ventana de Phatch para " "añadirlas al lote." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "Para más información vea los tutoriales en (Ayuda>Documentación)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "No se han procesado imágenes para reportar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "¡Hurra, sin problemas!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Todavía no se ha registrado nada." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Registro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "Cancelar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "omitir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignorar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" "Esta lista de acciones fue creada por una versión diferente de %(name)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "Haga clic en '+' para añadir acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "Abrir &Reciente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Abrir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Abrir una lista de acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Ejecutar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Ejecutar la acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Añadir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Añadir una acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Quitar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Quitar la acción seleccionada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Arriba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Mover la acción seleccionada hacia arriba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Abajo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Mover la acción seleccionada hacia abajo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Inspector de imágenes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Buscar etiquetas exif e iptc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Descripción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Mostrar descripción de la lista de acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "Librería de listas de acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Elegir un archivo de lista de acciones..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Guardar lista de acciones como..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Este archivo ya existe." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "¿Desea sobreescribirlo?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "Acciones de %(name)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "Terminal de %(name)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "aplicación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "marco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Un tutorial de html va a abrirse en su navegador de internet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" "Solamente necesita saber PIL para escribir un complemento para Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "Phatch generará la interfaz de usuario automáticamente." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Estudiar los complementos de acción en:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Si desea contribuir con un complemento para Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "Por favor, enviar email a: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "Procesador PHoto bATCH" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "Disculpe, \"%s\" no es una ruta correcta." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Arrastrar y soltar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Suelte cualquier archivo o carpeta aquí para procesarlos.\n" "Haga doble clic o clic con el botón secundario para volver\n" "a la vista normal." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" "Phatch agregará una para usted, por favor, compruebe sus configuraciones." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "La lista de acciones solamente procesa metadatos." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Guardar los últimos cambios a" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" "El modo seguro le protege de la ejecución de scripts posiblemente dañinos.\n" "¿Está seguro que desea desactivarlo?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Escoje la carpeta para el droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phath ha creado satisfactoriamente el droplet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "Phatch no pudo crear el droplet: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "Imposible cargar datos de la lista de acciones." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Seleccionar las lista de acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "Lo sentioms, la configuración parece estar corrompida." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "Por favor borre \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "También verifique si su disco no está lleno.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Seleccione una carpeta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Elegir archivo(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Elegir carpeta de imágenes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "Todos los tipos seleccionados" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "Todos los tipos de lectura y escritura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "Todos los tipos de lectura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "imágenes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "Todos los Tipos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "&Ningún Tipo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "Portapapeles" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Examinar…" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "Examinar %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Archivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Carpeta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "predeterminado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Ver código fuente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "Ampliar búsqueda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Ruta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Abrir..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "&Inspeccionar..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "&Insertar etiqueta en la lista de acciones..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Nuevo\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Comenzar una nueva lista de acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Abrir...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Abre una lista de acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "Abrir &Librería...\tCtrl-Shift-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "Abre una lista de acciones ya elaborada desde la librería" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Guardar\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Guarda una lista de acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Guardar &como...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Guarda una lista de acciones como" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Copiar la lista de a&cciones como orden en el portapapeles" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Pegar esta orden en un lanzador" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Copiar R&eciente como orden en el portapapeles" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Copiar I&nspector de imágenes como una orden en el portapapeles" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&Exportar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Salir\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Sale del programa." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "Lista de &Acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Añadir...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Quitar\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Quitar la acción seleccionada." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Activar\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Activa la acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Desactivar\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Desactiva la acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Arriba\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Abajo\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Editar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Gota\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Ver como una gota para arrastrar y soltar archivos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Mostrar descripción\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Herramientas para manejar la lista de acciones actual" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Expandir todo\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Mostrar todos los parámetros de las acciones." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Contraer todo\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Mostrar sólo las etiquetas de las acciones." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "&Contraer automáticamente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "Expandir una opción contrae las otras." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Ver" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Ejecutar...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Ejecutar la lista de acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "&Modo Seguro (Recomendado)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "Inspector de &imágenes (exif)\tCtrl-I" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "&Usuario" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "Hojear las listas de acciones, máscaras, resaltados y fuentes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "&Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "&Hojear librerías" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "Mostrar info&rme...\tCtrl+R" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "Mostrar informe de imágenes procesadas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Mostrar ®istro...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Mostrar archivo de registro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "Tipogra&fías" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "Buscar nuevas tipografías en su sistema" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "Act&ualizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Herramientas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "Sitio &Web...\tCtrl-W" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Ir a la página principal de Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Documentación...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Ir a la documentación de Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Foro...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Ir al foro de Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Traducir Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Traducir Phatch a su idioma nativo." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Reportar un Error...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Informa de un error a launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "Documentación del desarrollador... .\tCtrl-P" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "Aprenda a desarrollar Phatch con Python y PIL" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&Acerca de Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Muestra información acerca de esta aplicación." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Ayuda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "Finalizado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Mostrar bitácora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "Mostrar Info&rme" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "Listo!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "Hacer doble click o click con el botón derecho para más opciones." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "Explorador" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Sólo necesita saber PIL para escribir un complemento para Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Mostrar la plantilla para los complementos de acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Código" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Pedir ayuda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&De acuerdo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Escribir un complemento de acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Aplicar para los futuros errores " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Cancelar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "&Saltar hacia la siguiente acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "&Saltar hacia la siguiente imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Mensaje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Continuar de todos modos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Opciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Tipos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Buscar carpeta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Origen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Archivo(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Detener en errores" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Primero revisar imágenes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Sobrescribir imágenes existentes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "Mostrar siempre el diálogo de estado al finalizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "Repetir imágenes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Cancelar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Lote" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Booleano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Cadena" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Elección" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Color" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Resolución" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Nombre de archivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "En" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Flotante" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Como" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Modo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Remuestreo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicúbico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Entero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Entero+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Entero+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Barra de desplazamiento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "pyexiv2 tiene que estar instalado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" "%(mode)s ha sido convertido a %(mode_copy)s para guardar como %(format)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Enero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Febrero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Marzo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "Abril" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Mayo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Junio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Julio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "Agosto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Septiembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Octubre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "Noviembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "Diciembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Lunes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Martes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Miércoles" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Jueves" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Viernes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Sábado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Domingo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "Sólo las imágenes paleta tienen transparencia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "No permitir extraer variables desde el fichero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "La etiqueta \"%s\" es de sólo lectura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "Imposible escribir marca \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "Marca \"%s\" no es de escritura." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "Formatear %(format)s no soporta sobreescritura \"%(tag)s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "fondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "fuente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" "El comando no produjo ninguna imagen:\n" "%s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Todo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "Seleccionar Proyección" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Seleccionar Objeto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "Seleccionar rotación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "Centrado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Personalizado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Centro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Izquierda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Derecha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Superior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Inferior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Inferior izquierda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Inferior derecha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Superior izquierda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Superior derecha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Posición" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Desplazamiento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Desplazamiento horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Desplazamiento vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Justificación horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Justificación vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "Compensar por" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Mosaico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Escalar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Marca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Transparencia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Método" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Automático" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "Procesa imágenes y edita metadatos por lotes fácilmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Procesador de fotos por lotes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Verdadero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Falso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "verdadero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "falso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Lista de acciones no guardada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Listas de acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Todos los archivos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Describa aquí la lista de acciones." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Debería haber una acción 'Guardar' al final." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "con" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "Reciente %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Asociar imágenes con la lista de acciones en %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Asociar imágenes con la lista de acciones reciente en %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Asociar Imágenes con el Inspector de Imágenes en %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Quitar la asociación de %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "Droplet de Lista de &Acciones..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "Droplet &Reciente..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "Droplet del &Inspector de Imágenes..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Proceso por lotes con lista de acciones recientes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Examinar etiquetas EXIF & IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "Ver \"%s\" para más detalles." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" "Lo sentimos, la lista de acciones parece incompatible con %(name)s " "%(version)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "Esta lista de acciones es insegura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" "Desactive el modo seguro en el menú «Herramientas» si confía en esta lista " "de acciones." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "Nunca ejecutar listas de acciones de orígenes inseguros." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "Por favor revise si esta acción no contiene código malicioso." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "«%s» no es una ruta segura." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "No se permite acciones tontas en modo protegido." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Nada pendiente." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "La lista de acciones está vacía." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "No hay acciones habilitadas." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Comprobando imágenes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch no puede manejar %d imagen(es):" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Imágenes no válidas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "No se ha encontrado ningún archivo válido" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "C&ontinuar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "No ha seleccionado archivos o carpetas." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "No es posible abrir el archivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "No se puede aplicar la acción %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" "No se puede aplicar la acción %(a)s a la imagen '%(i)s' en la carpeta:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Ejecutando la lista de acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Una imagen procesada en %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "%(amount)d imágenes procesadas en %(duration)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Se ha registrado un problema" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "Se han registrado %d problemas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Seleccionar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" "La marca \"%s\" es inválida.\n" "Debe seguir la sintaxis: Exif_* o lptc_*" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "No es posible cambiar la etiqueta." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "No es posible borrar la etiqueta <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "No es posible renombrar la etiqueta <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "No es posible guardar la etiqueta <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "día" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "escritorio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "nombre del directorio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "nombre del archivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "tamaño de archivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "carpeta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "hora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minuto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "mes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "nombre del mes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "ruta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "raíz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "segundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "sub-directorio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "tipo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "día de la semana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "nombre del día de la semana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "año" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "aspecto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "compresión" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "ppp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "gamma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "alto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "entrelazar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "modo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "ancho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "formato" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "Descripción del formato" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "tamaño" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "transparencia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "orientación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Usar el inspector de imágenes para listar todas las variables." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Solo puede utilizar archivos con las siguientes extensiones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "izquierda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "centro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "derecha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "superior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "medio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "abajo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monocromático (pixeles a 1-bit, blanco y negro)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "Escala de Grises (pixeles de 8 bits)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" "LA (pixeles de 8 bits, escala de grises con máscara de transparencia)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "RGB (pixeles a 3x8-bits, color verdadero)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (pixeles a 4x8-bits, RGB con máscara de transparencia)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "CMYK (pixeles a 4x8-bits, separación de colores)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "P (pixeles a 8-bits, asignados utilizando una paleta de colores)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "YCbCr (pixeles a 3x8-bits, color en formato de video)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "difuminar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "contorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detalle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "mejorar el borde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "mejorar más el borde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "relieve" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "encontrar bordes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "suavizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "suavizar más" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "enfocar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "el más cercano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilineal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "anti-alias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Girar 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Girar 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Girar 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Voltear izquierda derecha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Voltear arriba abajo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "ninguno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "no puede estar vacío" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "sintaxis no válida como entero para \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "cadena" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "entero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "la literal \"%s\" no es válida como entero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "entero positivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "el valor entero \"%s\" es negativo, pero debería ser positivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "positivo, entero distinto a cero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "el valor entero \"%s\" es cero, pero debería ser distinto a cero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "resolución" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "flotante" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "la literal \"%s\" no es válida para flotante" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "el valor flotante \"%s\" es negativo, pero debería ser positivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "el valor flotante \"%s\" es cero, pero debería ser distinto a cero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "lógico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "la literal \"%s\" no es válida como función lógica" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "elección" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "la extensión para archivo \"%s\" no es válida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "se esperaba un nombre de archivo con una extensión válida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "el nombre de archivo \"%s\" no existe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "\"%s\" no se encuentró." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "Falta parámetro \"%s.*\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "Se admite máximo un parámetro \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "automático" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Ninguna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "Marca debe comenzar con \"Exif_\" o con \"lptc_\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "Favor instalar primero \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "No se puede abrir la imagen con %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Comando" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "Salida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Error" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "Los siguientes nombres son inválidos: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "&Seleccionar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Advertencia: python-wxversion no está instalado.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" "Error: wxPython %(recommended)s (o al menos %(minimal)s) no se ha encontrado " "y se necesita para ejecutar Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Por favor, (re)instálelo." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" "Esta aplicación requiere de 'python-wxversion' y 'python-" "wxgtk%(recommended)s' (o al menos 'python-wxgtk%(minimal)s')." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" "Esta aplicación es compatible con\n" "la versión(es) %(recommended)s de wxPython (o al menos la %(minimal)s).\n" "pero tiene la versión %(version)s instalada." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Favor de actualizar su wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Error de versión de wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "Versión del programa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "C&réditos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licencia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Cerrar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Acerca de" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Créditos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Documentación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Traducción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Trabajo artístico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Librerías" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Patrocinadores" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licencia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "Etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "Comentario_Fotografico_Exif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Valor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "advertencia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "Añadir etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "todos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "¿Está seguro de que desea eliminar esta etiqueta de \"%s\"?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" "¿Está seguro de que desea eliminar esta etiqueta de todas las imágenes?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "La Marca debe comenzar con Exif_* o con lptc_*" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "La etiqueta ya existe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Imágenes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Todos los archivos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "&Copiar valor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "&Añadir etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "&Eliminar etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "Abrir &Url..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "&Eliminar imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "&Copiar etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "&Añadir etiqueta a todas las imágenes..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "&Eliminar etiqueta de todas las imágenes..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "&Renombrar etiqueta para todas las imágenes..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "&Modificar valor para todas las imágenes..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "No es posible añadir la etiqueta <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "No es posible quitar la imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "Renombrar la etiqueta para todas las imágenes a:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "Cambiar el valor para todas las imágenes a:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "No es posible cambiar la etiqueta <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "Lo siento, %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "Lo sentimos, sin poder abrir estas imágenes:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Elegir una imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Ingresar la dirección de una imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "favor de instalar pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "no se han encontrado etiquetas %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Añadir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "cargando" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "no" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "sí" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Selección" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Fuentes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Sombra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filtrar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Deja una sombra borrosa debajo de la foto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Borde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Sombra borrosa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Color de fondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Color de la sombra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "Forzar color de fondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "Ajustar imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "Buzón" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "Escalar imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "Escalar Modelo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "Envolver ambos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "Separar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "Color de cubierta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "Mapeo de página" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "Página izquierda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "Color del Recuadro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "Profundidad del Recuadro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "Rotacion de cubierta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "Cámara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "Rotación horizontal de la cámara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "Rotación vertical de la cámara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "Giro de cámara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "Ángulo de los Lentes de la Cámara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "Distacia de la cámara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "Mostrar Opciones del Piso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "Usar Piso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "Color del Piso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "Reflejar Piso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "Opacidad del Piso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "Fondo Transparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "Mostrar Opciones del Fondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Fondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "Gradiente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "Transparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "Gradiente Superior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "Gradiente Inferior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "Autorecortar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "Estrellas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "Color de las Estrellas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "Empañar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "Mezclador" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "complemento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "Objetos 3D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "Disculpe, tiene instalada la versión incorrecta de Blender." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "Se requiere Blender %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "Ancho de la Reproducción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "Alto de la Reproducción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "Objeto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "Tamaño de la imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "Seleccione la rotación para %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Efecto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Difuminar, Enfocar, Relieve, Suavizar, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filtrar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Repetir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Cantidad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transformar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Desplazamiento por distancia y ajuste alrededor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Lienzo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Cortar o expandir el lienzo sin escalar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "Ancho del lienzo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Alto del lienzo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Alinear horizontalmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Alinear verticalmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Color a transparencia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "color" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Hacer transparente el color seleccionado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "Seleccionar color por" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "Valor del color" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Marca de agua" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Aplicar con mosaico, escalado y transparencia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Desaturar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Difuminar todos los colores a gris" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Agrandar o achicar la imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Mantener proporciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Cambiar tamaño de la imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "Sólo reducir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Transponer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Voltear o girar 90 grados" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "Rejilla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "Crear una matriz n x m de la imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Columnas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Filas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "Ancho de línea de la columna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "Ancho de línea de la fila" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "Color de la línea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "Opacidad de la línea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "Ambos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "Reflejar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "Textura de mosaico simétrica" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Orientación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Renombrar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "archivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "Renombrar imagen original" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Cruce" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Redondeado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Cuadrado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Redondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Esquinas redondas o dobladas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Radio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "Mismo método para todas las esquinas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Esquina superior izquierda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Esquina superior derecha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Esquina inferior izquierda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Esquina inferior derecha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Resaltar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "Aplicar un resaltado transparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "Remuestrear resaltado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Poner un color debajo de la imagen transparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Rellenar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Modo de conversión" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Convertir a modo de color de una imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Ajustar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Reducir y cortar imagen con escala fija" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Sangrar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Contraste automático" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maximizar el contraste de la imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Cierre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Guardar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "Guardar y convertir a otros formatos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "Mostrar opciones de tipos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "Optimizar PNG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "Calidad JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "Tamaño máximo JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "Tolerancia de tamaño JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "Compresión TIFF" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Metadatos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Mediana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Copiar el valor de la mediana del pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "Tiempo EXIF" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "Tiempo del archivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "Exif y archivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "Time Shift" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "metadatos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "Intercambiar los valores de tiempo de las etiquetas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "Cambiar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "Usar fecha EXIF" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Segundos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Minutos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Horas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Días" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Meses" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Años" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" "Disculpe, el cambio de fecha solo puede manejar fechas antes de 2038-1-19" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Máscara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Aplicar una máscara de transparencia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Cambiar el tamaño de la máscara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Texto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Escribir texto en determinada posición" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Tipo de letra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Tamaño" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Colorear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Colorear una imagen en escala de grises" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Negro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Blanco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Copiar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "Copiar imagen original" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posterizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "Reducir el número de bits del canal de color" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Escribir etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "Escribir un nuevo valor para una etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Etiqueta (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "Igual para todos los lados" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "Diferente para cada lado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "Dibujar el borde en el interior o en el extrior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "Espesor del borde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Rango" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Copiar el valor de rango del píxel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solarizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Invertir todos los valores de los pixeles por encima del umbral" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Umbral" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Balancear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Ecualizar el histograma de la imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "Automático (usar la orientación en exif)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Recortar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Girar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "Reflejar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Escala de grises" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "Actualizar miniatura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "Transversar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "La conversión a un JPEG sin pérdida no funciona en una imagen %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Transformación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Ángulo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "Preservar el estampado del tiempo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Mostrar opciones avanzadas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "Actualizar la JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "Actualizar la miniatura del Exif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "Actualizar la etiqueta de orientación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Comentarios" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Transformación " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Ángulo " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Orientación " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "Herramienta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "JPEG sin pérdida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "Girar, voltear, escalar a grises y recortar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Recortar la imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "Tamogen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "Generador de mosaicos de tonos alterados" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "Tipo de relleno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "Imagen de relleno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "Carpeta de relleno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Rotar con ángulo aleatorio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Extender" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Transparencia del fondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Invertir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Invertir los colores de una imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Geoetiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "Añadir datos gps" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "Datos GPS (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "Informe GPS (csv)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "Cambio de tiempo (segundos)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Reflexión" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Tirar reflexión" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Profundidad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Brecha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "Reflección Difuminada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "Escala de la reflexión" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "Método del escalado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Común" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Copiar el valor del pixel más común" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Mínimo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Copiar el valor mínimo del pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Contorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Dibuja un contorno alrededor de las fronteras de la imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Color de contorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Color de relleno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "Incluir imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "Estirar en el tope" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "Estirar en el fondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "Estirar a la izquierda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "Estirar a la derecha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "Esquina Superior Izquierda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "Esquina Superior Derecha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "Esquina Inferior Izquierda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "Esquina Inferior Derecha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "Usuario" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspectiva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Cortar en 2d o 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "Proyección" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Ángulo cortante izquierdo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Ángulo cortante superior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Ángulo cortante inferior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Ángulo cortante derecho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Contraste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Ajustar de gris a blanco y negro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "Guardar etiquetas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "Guardar sólo metadatos (sin pérdida)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Uno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Eliminar Etiquetas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Eliminar etiquetas Exif o Iptc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Máximo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Copiar el valor máximo del pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Saturación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Ajustar la saturación desde la escala de grises a alta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Renombrar etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "Renombrar una etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "Desde (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "A (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Brillo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Ajustar brillo desde negro a blanco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "Borde 3D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "Difuminar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "Viñeta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "Carbón" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "Desenfoque por movimiento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Lápiz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "Pintar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "Enfocar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "Contraste Sigmoide" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "Desenfocar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "Onda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Imagemagick" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "Difuminar, Polaroid, sombrear, desenfocar..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Color del Borde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "Subtitulado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "Radio del carbón" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "Condición del contraste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "Umbral del contraste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "Radio del desenfoque" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "Sigma del difuminado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "Angulo del desenfoque" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "Radio de la pintura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "Radio del enfoque" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "Sigma del enfoque" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "Radio del boceto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "Sigma del boceto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "Ángulo del boceto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "Radio del desenfoque" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "Sigma de desenfoque" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "Altura de la onda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "Longitud de la onda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Boceto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "Transformar a un dibujo pincelado en escala de grises" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "Nivel de detalles" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "Geek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "Ejecutar un comando externo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "Verificar Programa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "Verificar Entrada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "Verificar Salida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "Permitir como última acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Estas extensiones han sido satisfactoriamente instaladas:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch no ha tenido éxito al instalar la característica solicitada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch trató de desinstalarse desde el Explorador de Windows." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "Necesitas instalar las extensiones Win32 de Python para utilizar esta " "característica." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Lista de acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "No se ha dado una lista de acciones" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Ruta de las imágenes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "¿Desea continuar?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "¿Qué desea hacer ahora?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Si reinicia %s, la acción aparecerá en el menú contextual." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch no pudo instalar la acción en %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Esto también necesita que el paquete python-nautilus esté instalado." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Proceso automatizado de imágenes con Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "Phatch con %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Procesar con lista de acciones reciente de Phatch" #~ msgid "for integer" #~ msgstr "para entero" #~ msgid "for float" #~ msgstr "para flotante" #~ msgid "is negative, but should be positive" #~ msgstr "es negativo, pero debería ser positivo" #~ msgid "for boolean" #~ msgstr "para booleano" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (pixeles 3x8-bit, color verdadero)" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (pixeles 3x8-bits, formato de video a color)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (pixeles 8-bits, mapeado usando una paleta de colores)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (Pixeles 4x8-bits, separación de colores)" #~ msgid "new" #~ msgstr "nuevo" #~ msgid "Colour" #~ msgstr "Color" #~ msgid "is zero, but should be non-zero." #~ msgstr "es cero, pero no debería serlo" #~ msgid "Open a python shell for introspection" #~ msgstr "Abra un intérprete de python para la introspección" #~ msgid "&Skip To Next Image" #~ msgstr "Saltar a la siguiente imagen" #~ msgid "&Ignore Error" #~ msgstr "&Ignorar Error" #~ msgid "&File" #~ msgstr "&Archivo" #~ msgid "Shadow Colour" #~ msgstr "Color de la sombra" #~ msgid "Background Colour" #~ msgstr "Color de fondo" #~ msgid "Force Background Colour" #~ msgstr "Forzar color de fondo" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Intérprete de Python...\tCtrl-P" #~ msgid "Create missing folders" #~ msgstr "Crear carpetas perdidas" #~ msgid "&Default Types" #~ msgstr "&Tipos por defecto" #~ msgid "Height" #~ msgstr "Alto" #~ msgid "Width" #~ msgstr "Ancho" #~ msgid "Phatch Version" #~ msgstr "Versión de Phatch" #~ msgid "Save an image" #~ msgstr "Guardar una imagen" #~ msgid "By offset" #~ msgstr "Por desplazamiento" #~ msgid "colours" #~ msgstr "colores" #~ msgid "border" #~ msgstr "borde" #~ msgid "watermark" #~ msgstr "marca de agua" #~ msgid "february" #~ msgstr "febrero" #~ msgid "march" #~ msgstr "marzo" #~ msgid "april" #~ msgstr "abril" #~ msgid "may" #~ msgstr "mayo" #~ msgid "wednesday" #~ msgstr "miércoles" #~ msgid "monday" #~ msgstr "lunes" #~ msgid "tuesday" #~ msgstr "martes" #~ msgid "september" #~ msgstr "septiembre" #~ msgid "october" #~ msgstr "octubre" #~ msgid "november" #~ msgstr "noviembre" #~ msgid "december" #~ msgstr "diciembre" #~ msgid "june" #~ msgstr "junio" #~ msgid "july" #~ msgstr "julio" #~ msgid "august" #~ msgstr "agosto" #~ msgid "saturday" #~ msgstr "sábado" #~ msgid "thursday" #~ msgstr "jueves" #~ msgid "sunday" #~ msgstr "domingo" #~ msgid "friday" #~ msgstr "viernes" #~ msgid "is invalid." #~ msgstr "no es válido" #~ msgid "the filename" #~ msgstr "el nombre del archivo" #~ msgid "does not exist." #~ msgstr "no existe" #~ msgid "Crop or add border to all sides" #~ msgstr "Cortar o agregar borde a todos los lados" #~ msgid "Fade all colours to gray" #~ msgstr "Convertir todos los colores a gris" #~ msgid "Put colour under transparent image" #~ msgstr "Agregar color debajo de imagen transparente" #~ msgid "january" #~ msgstr "enero" #~ msgid "the variable" #~ msgstr "la variable" #~ msgid "the file extension" #~ msgstr "la extensión del archivo" #~ msgid "a filename with a valid extension was expected." #~ msgstr "se esperaba un archivo con extensión válida" #~ msgid "invalid syntax" #~ msgstr "sintaxis inválida" #~ msgid "invalid literal" #~ msgstr "literal inválido" #~ msgid "the integer value" #~ msgstr "el valor entero" #~ msgid "Scale down only" #~ msgstr "Solo reducir" #~ msgid "Resample Shadow" #~ msgstr "Remuestrea Sombra" #~ msgid "the float value" #~ msgstr "el valor flotante" #~ msgid "&Recent" #~ msgstr "&Reciente" #~ msgid "&Export..." #~ msgstr "&Exportar..." #~ msgid "Only an image file is allowed." #~ msgstr "Sólo una imagen es permitida." #~ msgid "Open image file" #~ msgstr "Abrir archivo de imagen" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "" #~ "La orden del droplet para esta lista de acciones se ha copiado en el " #~ "portapapeles." #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Reducir el número de bits en el canal del color" #~ msgid "doesn't exist" #~ msgstr "no existe" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "como Phatch generará automáticamente la interfaz de usuario." #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "&Inspector de Imágenes (exif)\tCtrl-Space" #~ msgid "drag & drop any image here" #~ msgstr "arrastre cualquier imagen hasta aquí" #~ msgid "Filename" #~ msgstr "Nombre de archivo" #~ msgid "Do not create missing folders" #~ msgstr "No crear carpetas que falten" #~ msgid "Copy the image file" #~ msgstr "Copiar el archivo de la imagen" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Guardar metadatos (requiere los complementos iptc y exif)" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Escribir un nuevo complemento de acción para Phatch con PIL." #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "&Escribir complemento de acción...\tCtrl-W" phatch-0.2.7/locale/eu/0000755000000000000000000000000011346363116014601 5ustar rootroot00000000000000phatch-0.2.7/locale/eu/LC_MESSAGES/0000755000000000000000000000000011346363116016366 5ustar rootroot00000000000000phatch-0.2.7/locale/eu/LC_MESSAGES/phatch.mo0000644000000000000000000000240311346363116020171 0ustar rootroot00000000000000 t( 10?p &' ?&A Y0e1:  Always save on desktopExamplesIgnore errorsInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect with PhatchInteractiveKeep existing images (don't overwrite)Run %s as a gui dropletRun %s as console program without a guiProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-01-01 01:29+0000 Last-Translator: Cross Language-Team: Basque MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:41+0000 X-Generator: Launchpad (build Unknown) Siempre guardar en el escritorioEjemplosIgnorar erroresInicializar fuentes (sólo para la instalación de los scripts)Inspeccionar las etiquetas EXIF y IPTCInspeccionar con PhatchInteractivoMantener imágenes existentes (no sobreescribir)Arrancar %s como un añadido al Interfaz GráficoArrancar %s como programa en consola sin Interfaz Gráficaphatch-0.2.7/locale/eu/LC_MESSAGES/phatch.po0000644000000000000000000030623511346363116020206 0ustar rootroot00000000000000# Basque translation for phatch # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-01-01 01:29+0000\n" "Last-Translator: Cross \n" "Language-Team: Basque \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Inspeccionar con Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Inspeccionar las etiquetas EXIF y IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Ejemplos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Arrancar %s como programa en consola sin Interfaz Gráfica" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Arrancar %s como un añadido al Interfaz Gráfico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Siempre guardar en el escritorio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignorar errores" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Inicializar fuentes (sólo para la instalación de los scripts)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interactivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Mantener imágenes existentes (no sobreescribir)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" phatch-0.2.7/locale/fa/0000755000000000000000000000000011346363116014556 5ustar rootroot00000000000000phatch-0.2.7/locale/fa/LC_MESSAGES/0000755000000000000000000000000011346363116016343 5ustar rootroot00000000000000phatch-0.2.7/locale/fa/LC_MESSAGES/phatch.mo0000644000000000000000000001025711346363116020154 0ustar rootroot00000000000000[    /6? EQjqw        7 < C H S Z e p u {                          % * 1 6 = A E O T Y a g l p   ( 3 > P q |      ,   0 B R _ h s |  $  2   *18 AN&a    # , 6BK T _j s     & : ER [f oz:T492R+ YK[I.C)/ E'WN<D;O@7U!38 ZM&6VH=GJ%A*L FP50?B"Q XS,1- #>$(AllAll FilesAmountAngleAsAuto ContrastBackgroundBlackBorderBrightnessChoiceChoose a folderCommonContrastDepthDescriptionDo you want to continue?EffectErrorExamplesFalseFileFilterFloatFolderFontHorizontalIgnore errorsImageImagesInInclude all subfoldersInteractiveLabelMedianMethodModeNormalOpacityOpenOverwrite existing imagesPathRadiusRankReflectionRenameResolutionSaturationSaveScaleShadowSizeSquareTextTrueVerboseWhitebackgroundbottomcenterchoicedaydefaultfalsefilefilenamefilterfolderheighthourleftminutemodemonthnopathrightrootsecondsizestringtagtoptransformtruetypeweekdaywidthyearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-08-11 20:46+0000 Last-Translator: Artin Language-Team: Persian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) همههمه‌ی پرونده‌هامقدارزاویهبه‌عنوانسایه روشنِ خودکارزمینهسیاهحاشیهروشناییانتخابانتخاب پوشهمشترککنتراستعمقشرحآیا مایل به ادامه هستید؟جلوهبروز خطانمونه‌هانادرست‌پروندهصافیشناورپوشهقلمافقینادیده‌گرفتن خطاهاتصویرتصاویردردربرگرفتن تمام زیر شاخه‌هاتعاملی‌برچسب‌میانهروشسبکعادیشفافیتباز کردن‌رونویسی تصاویر موجودمسیرشعاعرتبهبازتابتغییر نام‌تفکیک‌پذیریاشباعذخیره کردنمقیاس‌سایهاندازه‌مربعمتن‌درست‌مفصلسفیدزمینهپایینمرکزانتخابروزپیش‌فرضنادرستپروندهنام پروندهصافیپوشهارتفاعساعتچپدقیقهحالتماهخیرمسیرراستکاربر ارشدثانیهاندازهرشتهبرچسببالاتبدیلدرستنوعروز هفتهعرضسالبلهphatch-0.2.7/locale/fa/LC_MESSAGES/phatch.po0000644000000000000000000031173511346363116020164 0ustar rootroot00000000000000# Persian translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-08-11 20:46+0000\n" "Last-Translator: Artin \n" "Language-Team: Persian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "نمونه‌ها" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "نادیده‌گرفتن خطاها" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "تعاملی‌" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "دربرگرفتن تمام زیر شاخه‌ها" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "مفصل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "باز کردن‌" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "شرح" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "انتخاب پوشه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "پرونده" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "پوشه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "پیش‌فرض" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "مسیر" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "رونویسی تصاویر موجود" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "تصویر" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "برچسب‌" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "برچسب" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "انتخاب" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "تفکیک‌پذیری" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "در" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "شناور" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "به‌عنوان" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "سبک" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "افقی" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "زمینه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "همه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "مقیاس‌" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "شفافیت" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "روش" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "درست‌" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "نادرست‌" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "درست" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "نادرست" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "همه‌ی پرونده‌ها" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "روز" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "نام پرونده" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "پوشه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "ساعت" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "دقیقه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "ماه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "مسیر" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "کاربر ارشد" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "ثانیه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "نوع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "روز هفته" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "سال" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "ارتفاع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "حالت" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "عرض" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "اندازه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "چپ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "مرکز" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "راست" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "بالا" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "پایین" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "عادی" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "رشته" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "انتخاب" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "بروز خطا" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "تصاویر" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "خیر" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "بله" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "سایه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "صافی" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "حاشیه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "زمینه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "جلوه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "صافی" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "مقدار" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "تبدیل" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "تغییر نام‌" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "پرونده" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "مربع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "شعاع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "سایه روشنِ خودکار" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "ذخیره کردن" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "میانه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "متن‌" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "قلم" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "اندازه‌" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "سیاه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "سفید" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "رتبه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "زاویه" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "بازتاب" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "عمق" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "مشترک" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "کنتراست" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "اشباع" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "روشنایی" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "آیا مایل به ادامه هستید؟" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "Colour" #~ msgstr "رنگ" #~ msgid "Filename" #~ msgstr "نام پرونده" #~ msgid "Height" #~ msgstr "ارتفاع" #~ msgid "border" #~ msgstr "حاشیه" #~ msgid "Width" #~ msgstr "عرض" #~ msgid "february" #~ msgstr "فوریه" #~ msgid "january" #~ msgstr "ژانویه" #~ msgid "april" #~ msgstr "آوریل" #~ msgid "march" #~ msgstr "مارس" #~ msgid "october" #~ msgstr "اکتبر" #~ msgid "august" #~ msgstr "اوت" #~ msgid "september" #~ msgstr "سپتامبر" #~ msgid "saturday" #~ msgstr "شنبه" #~ msgid "friday" #~ msgstr "جمعه" #~ msgid "thursday" #~ msgstr "پنج‌شنبه" #~ msgid "wednesday" #~ msgstr "چهار‌شنبه" #~ msgid "monday" #~ msgstr "دوشنبه" #~ msgid "tuesday" #~ msgstr "سه‌شنبه" #~ msgid "november" #~ msgstr "نوامبر" #~ msgid "december" #~ msgstr "دسامبر" #~ msgid "sunday" #~ msgstr "یک‌شنبه" #~ msgid "new" #~ msgstr "جدید" #~ msgid "doesn't exist" #~ msgstr "وجود ندارد" #~ msgid "is invalid." #~ msgstr "بی‌ اعتبار است." phatch-0.2.7/locale/fi/0000755000000000000000000000000011346363116014566 5ustar rootroot00000000000000phatch-0.2.7/locale/fi/LC_MESSAGES/0000755000000000000000000000000011346363116016353 5ustar rootroot00000000000000phatch-0.2.7/locale/fi/LC_MESSAGES/phatch.mo0000644000000000000000000010505311346363116020163 0ustar rootroot00000000000000jl;&3&33 3334(4-464P4 _4m4t44444 4 4 4455)595?5N5f5y5555555 56 66 $616D6 S6a66 666666667 737N7T7 [7 h7t7x7 7%7!7(7788 #8 -878>8D8K8&e8838989*9.392b999 9 9 999&9&:+:1:7:?: D: P:"[:"~::: : ::: :: :;; *; 4; >;I;0P;; ; ;;';6;< < '< 5<B<J<Q<X<x<<<<<<<<<==$= *=6=E=N=g=o=+w===== ==== >">:>Y>w>">>>(>??)?=?L?R?Y?`?e?n? ?? ?? ??? ? @ @,@G@a@z@ @@@(@ @!@A$$AIA\A cAqAAAAAAAAABB /B =BGBNBfBlBuB zB BBB B B B BBBBBBBC C#C4C;C@CFC]CdCvCCCCCCCCCD D D(D ADKD ^DiDDD.D DDD D DE E #E01EbE{E.EEEE E EFF'F@F ^FkF}FFFF&F3FFG G G$G,G0G KG9YGG GGGGGG%H*H.H5H=HFHMHTH\HdHkHpHuH*|HHHHHI"IAIFIMIjIyIIII"IIIIII I JJ$J:J BJNJUJ.oJ JJ JJ J J"J(K)K?KVKtK}K KKK!KK K1 L>LELJL*QL |LLLLLLL L MM 5M CMPMWMrM{M MMMM M M MM MNNN8N=N'UN}N NNNNN NN O*O?OWO]O mOzOOOOO O OO O OOO PP%P?P SP`PwPPP'P#P PQ"Q5Q:Q AQ NQ \QiQpQyQQ1QQQQQQR R#R4R8RIR\RdRiRR+R3RRS"S 'S2SGSWSvSzSS SSS'SSS)T /T ;TETNTST[TaTxTTTTTT U!U5U=U LUZU]U sUUUUUUUUU U UV V V !V+VGVMV aVkVV*VVAVWW$W (W 4W >WIWNWVW]WqWWWW WWWWWWW WWWXX XXX &X1X7X >XIXOXVX[XbXiXqXvX~XXXXX XXXXXXXXXY 1Yl]lell lllllll mmm0m9mBm KmXm gmsm {mm mmmm mmm!m n "n0nBnIn Rn]n rn|nnnnn nnno o *o8o GoSoro{ooooo.oopp .p 8pDpJp hp'tp$p!p<p q =q JqXqgqwq q1qq qqqr r'r0r9Nrrrr rrrrr/r%sDs askstszss2ssss s sst t tt!t &t*0t [t$et%tt%t$t u &u!1uSu luvu~u u)uuuu uuu v v3v GvQvZv cv6v vvvv v v(v#(wLwcwywwwwww%wwx43xhxnxsx){x x xxxxyy0yJy)dyyyyy yyy zz.z 6z Bz NzYz*vzz z$zz#z+{4{R{c{l{"u{"{{${+{ |!9|[|b||||||||||| | }},}&@} g}}}}} }}% ~2~P~(e~~~~ ~ ~ ~ ~~)~9T\ck   $'C4k ˀـ'/ 4> OYj)# ށ  "5!P!r+Ȃ#4E]u{Ń ݃+ ?IO ^ lx  ˄"/?RF  ˅҅ څ $@ HT \f m{  Æ І݆  %. 4AG PZ`inw ͇*  3>DJ R_dj q |B>E0AvĉɉЉ ى $7824 <)Ky&V_q yhtEdH!P$/2':d]<<Jw N@g}S Et$o4bQpM k>X^@ZuxPH\:6QGvC2pY,sf?g/U  gB*a!>7.hIl}h?GCAb 90Fc9 E0ALv-3D&>R(, *e.iF(qj=3? 7[WB#_MeAF\W%^NC+`P;w%"SkUVDW=5=m-r^iZ1&I"O~ Tjc4|N'HeY'nd~TxX38#R#VnafU1cz! rm_/Klj]b(]@9O*G6oTM + )%$LaB K :6s JX5LI[u;SO-[+.YQ8Z5i`D;\{J{`|zf")R1,0%(amount)d images done in %(duration)s%(name)s actions%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List Droplet...&Add&Add Tag&Add Tag to All Images...&Add... Ctrl-+&Ask for Help&Batch&Browse Library&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Copy Tag&Copy Value&Delete Tag&Delete Tag from All Images...&Disable Ctrl-0&Documentation... Ctrl-M&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Forum... Ctrl-F&Help&Image Inspector Droplet...&Insert Tag in Action List...&License&Modify Value for All Images...&New Ctrl-N&OK&Open...&Open... Ctrl-O&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Remove Image&Rename Tag for All Images...&Report a Bug... Ctrl-B&Save Ctrl-S&Select&Show Description Ctrl-H&Tools&Translate Phatch... Ctrl-T&User&View&Website... Ctrl-W3D Edge3D ObjectsA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd TagAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAmountAngleAngle Apply a transparency maskApply with tiling, scaling and opacityAprilAre you sure you want to delete this tag from "%s"?Are you sure you want to delete this tag from all images?ArtworkAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastAutomatic (use exif orientation)BackgroundBackground ColorBackground OpacityBatch process with recent action listsBitsBlackBleedBlenderBlurBlur RadiusBlur SigmaBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBorder WidthBothBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBox ColorBox DepthBrightnessBrowseBrowse action lists, masks, highlights and fontsBulletBy OffsetC&ontinueC&reditsCMYK (4x8-bit pixels, color separation)Can not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthCaptionCenterChangeChange value for all images to:CharcoalCharcoal RadiusCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderCodeColorColor ValueColor to AlphaColorizeColorize grayscale imageColumnsCommandCommand did not produce an output image: %sCommentsCommonConstrain ProportionsContourContour ColorContrastContrast FactorContrast TresholdConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDetails DegreeDifferent for each sideDirectionDirection Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDoneDownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDraw border inside or outsideDrops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqual for all sidesEqualizeEqualize the image histogramErrorExamplesExecuteExecute external commandExecute the actionExecute the action listExecuting action listExif and fileExif timeExpandFade all colors to grayFalseFebruaryFileFile NameFile timeFile(s)FillFill ColorFill FolderFill ImageFill TypeFilterFitFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFloor ColorFloor ReflectionFolderFontFontsForce Background ColorFridayFrom (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GapGeekGeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GradientGradient BottomGradient TopGrayscaleGrayscale (8-bit pixels)HighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetHoursIf you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagemagickImagesInclude all subfoldersInclude imageInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LA (8-bit pixels, grayscale with transparency mask)LabelLeftLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsLossless JPEGLossless JPEG transformation does not work on a %s image:Make selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMaximum one parameter "%s" is allowedMayMedianMessageMetadataMethodMiddleMinimumMinutesMirrorMistModeMondayMonochrome (1-bit pixels, black and white)MonthsMove the selected action downMove the selected action upNo action list provided.No files or folder selected.No save action required at the endNoneNormalNothing has been logged yet.Nothing to do.NovemberObjectOctoberOffsetOffset by distance and wrap aroundOneOne image done in %sOne issue was loggedOpacityOpenOpen &RecentOpen &Url...Open an action listOpens an actions listOptionsOrientationOutputOverwrite existing imagesP (8-bit pixels, mapped using a color palette)PNG OptimizePaintPaint RadiusPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch successfully created the droplet.Photo Batch ProcessorPlease (re)install it.Please upgrade your wxPython.PolaroidPositionPosterizePreserve TimestampProgram VersionPut color under transparent imageQuit the application.RGB (3x8-bit pixels, true color)RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReady!Reduce the number of bits of color channelReflectionRegenerate thumbnailRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename tag for all images to:Render HeightRender WidthRepeatReport a bug on launchpad.ResampleResample ImageResolutionRightRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRotate, flip, grayscale and cropRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSame Method for All CornersSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save TagsSave and convert to other typesSave only metadata (lossless)Saves an action listSaves an action list asScaleScale Down OnlyScale MethodScale ReflectionSecondsSelectSelect Color BySelect action listSelectionSeptemberShadowShadow BlurShadow ColorSharpenSharpen RadiusSharpen SigmaShear 2d or 3dShift time values of tagsShow &Log... Ctrl-LShow &ReportShow &Report... Ctrl+RShow Advanced OptionsShow LogShow Type OptionsShow all the parameters of the actions.Show description of the action listShow log fileShow report of processed imagesSigmoidal ContrastSizeSketchSketch AngleSketch RadiusSketch SigmaSliderSolarizeSorry, no valid files foundSourceSpecify locale language (for example en or en_GB)SponsorsSquareStarsStart a new action listStringSundaySymmetrical tile textureTIFF CompressionTagTag (Exif, Iptc)Tag exists alreadyTamogenTextThe action list is empty.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This file exists already.ThursdayTileTime ShiftTime Shift (seconds)To (Exif, Iptc)Tone altering mosaic generatorTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTransform to a grayscale pencil drawingTransformationTransformation Translate Phatch in your native language.TranslationTransposeTresholdTrueTuesdayTypesUnable to add tag <%s>Unable to change label.Unable to change tag <%s>Unable to delete tag <%s>Unable to open fileUnable to remove imageUnable to rename tag <%s>Unable to save tag <%s>Unsaved Action ListUnsharpUnsharp RadiusUnsharp SigmaUpUpdate Exif ThumbnailUpdate JPEGUpdate Orientation TagUse exif datetimeUtilityValueVerboseVerticalVertical JustificationVertical OffsetView SourceWatermarkWaveWave HeightWave LengthWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYCbCr (3x8-bit pixels, color video format)YearsYou need to install the Python Win32 Extensions for this feature.abortactionsallapplicationautomaticbackgroundblurbooleanbottombroaden your searchcan not be emptycenterchoiceclick '+' to add actionscompressioncontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerleftloadingmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnonepathplease install pyexiv2positive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsourcestringsubfoldertagthe filename "%s" does not existthe float value "%s" is negative, but should be positivethe float value "%s" is zero, but should be non-zerothe integer value "%s" is negative, but should be positivethe integer value "%s" is zero, but should be non-zerotoptransformtruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-10-07 17:23+0000 Last-Translator: stani Language-Team: Finnish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) %(amount)d kuvaa tehty ajassa %(duration)s%(name)s toiminnot%s Viimeaikainen&Keskeytä&Lisätietoja Phatchista... Ctrl-Shift-A&Toimintalistapudoke...&Lisää&Lisää tunniste&Lisää tunniste kaikkiin kuviin...&Lisää... Ctrl-+&Pyydä apua&Eräajo&Selaa kirjastoa&Peru&Sulje&Sulje kaikki Ctrl-Shift-E&Jatka joka tapauksessa&Kopioi tunniste&Kopioi arvo&Poista tunniste&Poista tunniste kaikista kuvista...A&seta pois päältä Ctrl-0&Dokumentaatio... Ctrl-M&Pudoke Ctrl-D&Muokkaa&Aseta päälle Ctrl-1&Suorita... Ctrl-Return&Laajenna kaikki Ctrl-E&Vienti&Foorumi... Ctrl-F&Ohje&Kuvientarkastelijapudoke...&Lisää tunniste toimintolistaan...&Lisenssi&Muokkaa kaikkien kuvien arvoa...&Uusi Ctrl-N&OK&Avaa...&Avaa... Ctrl-O&Poistu Ctrl-Q&Viimeaikainen pudoke...&Poista Ctrl--&Poista kuva&Rename Tag for All Images...&Raportoi bugi... Ctrl-B&Tallenna Ctrl-S&Valitse&Näytä kuvaus Ctrl-H&Työkalut&Käännä Phatchia... Ctrl-T&Käyttäjä&Näytä&WWW-sivu... Ctrl-W3D-särmä3D-kappaleetHTML-tutoriaali avautuu nettiselaimeesiTietojaToimintoToimintalistatToimintalistaLisääLisää tunnisteLisää toimintoSäädä kirkkaus mustasta valkoiseenSäädä harmaasta mustaan & valkoiseenMuuta värikylläisyys harmaasävystä suureksiJärjestä vaakasuunnassaJärjestä pystysuunnassaKaikkiKaikki tiedostotKaikki tiedostotMääräKulmaKulma Käytä läpinäkyvyysmaskiaSuorita laatoituksen, skaalauksen sekä läpikuultavuuden kanssahuhtikuuOletko varma, että haluat poistaa tämän tunnisteen "%s":sta?Oletko varma, että haluat poistaa tämän tunnisteen kaikista kuvista?KuvamateriaaliLiitä kuvat toimintalistaan %s...Liitä kuvat kuvien tarkastelijaan %s...Liitä kuvat viimeaikaisiin toimintalistoihin %s...elokuuAutomaattinenAutomaattinen KontrastiAutomaattinen (käytä exif-suuntaa)TaustaTaustaväriTaustan PeittävyysEräaja viimeisimpiä toimintalistoja käyttäenBittiäMustaValumaBlenderSumennaSumennuksen sädeSumennuksen sigmaSumenna, Polaroid, Varjo, Epäterävöitä...Sumennus, Terävöitys, Korkokuva, Pehmennys, ...TotuusarvoReunusReunan väriReunan leveysMolemmatAlaAlavasenVasen AlanurkkaAlaoikeaOikea AlanurkkaAlaväännön määräLaatikon väriLaatikon syvyysKirkkausSelaaSelaa toimintolistoja, maskeja, korostuksia ja fonttejaLuotiSiirtymän mukaan&JatkaTe&kijätCMYK (4x8-bitin pikselit, värit erotettu)Ei voida suorittaa toimintoa %(a)s '%(i)s' kansion kuville:Ei voida suorittaa toimintoa %(a)s:KangasKanvassin korkeusKanvassin leveysKuvatekstiKeskelläMuutaMuuta kaikkien kuvien arvo arvoksi:HiiliHiilen sädeTarkista kuvat ensinTarkastaa kuviaValintaValitse tiedosto(t)Valitse kansioValitse toimintolistatiedosto...Valitse kuvaValitse tiedostokansioKoodiVäriVäriarvoVäri läpinäkyvyydeksiVäritäVäritä harmaasävykuvaSarakkeitaKomentoKomento ei tuottanut kuvaa: %sHuomautuksetYleinenSäilytä kuvasuhdeÄäriviivaReunan väriKontrastiKontrastin määräKontrastin kynnysarvoMuuta tilaMuuta kuvan väritilaKopioi pikselin maksimiarvonKopioi mediaanipikselin arvoKopioi pikselien minimiarvonKopioi yleisimmän pikseliarvonKopioi sijoitetun pikselin arvonKopioiKopioi toimintolista &komentona leikepöydälleTekijätRajaaRajaa tai laajenna kangasta skaalaamattaRajaa kuvaRistiMukautettuLeikkausarvoPäivätjoulukuuPoista Exif tai Iptc -tunnisteetPoista tunnisteetSyvyysVähennä kylläisyyttäKuvaa toimintalista täälläKuvausYksityiskohtien määräErikseen kultakin sivultaSuuntaSuunta Asettaa toiminnon pois päältäNäyttää tietoja tästä sovelluksesta.Älä tarkista kuvia ensinHaluatko jatkaa?Haluatko ylikirjoittaa sen?DokumentaatioValmisAlasPienennä ja rajaa kuva kiinteällä suhteellaVedä ja pudotaPiirrä ääriviivat kuvan reunojen ympärillePiirrä reuna sisä- tai ulkopuolelleLisää sumennetun varjon kuvan alleTekee heijastuksenTehosteAseta toiminto päälleSyötä kuvan osoiteYhtä lailla kaikilta sivuillaTasoitaTasoita kuvan histogrammiVirheEsimerkkejäSuoritaSuorita ulkoinen komentoSuorita toimintoSuorita toimintolistaSuorittaa toimintolistaaExif ja tiedostoExif-aikaLaajennaMuuttaa värit harmaiksiEpätosihelmikuuTiedostoTiedostonimiTiedoston aikaTiedosto(t)TäytäTäyttöväriTäyttökansioTäyttökuvaTäytön tyyppiSuodinSovitaKäännäKäännä vasen-oikeaKäännä ylä-alaKäännä tai kallista 90 astettaLiukulukuLattian väriLattian heijastusKansioKirjasinKirjasimetPakota taustan väriperjantaiMistä (Exif, Iptc)GPS-tieto (gpx)GPS-raportti (csv)VäliNörttiGeotunnisteMene Phatchin dokumentaatioon.Mene Phatchin foorumiinMene Phatchin kotisivulle.LiukuväriAlaliukuväriYläliukuväriHarmaasävyHarmaasävy (8-bitin pikselit)KorostusHiphei, ei ongelmia!VaakasuuntainenVaakasuuntainen tasausVaakasiirtymäTunnitMikäli haluat lahjoittaa lisäosan Phatchiin,Jätä virheet huomiottaKuvaKuvien tarkastelijaKuvapolutImagemagickKuvatSisällytä kaikki alakansiotLiitä kuvaAlusta fontit (vain asennusskripteille)Tarkastele EXIF- ja IPTC-tunnisteitaTarkasta EXIF- ja IPTC-tunnisteetTarkastele metatietoja (vaatii exif- ja iptc-liitännäiset)Tarkastele Phatch-ohjelmallaKokonaislukuKokonaisluku+Kokonaisluku+0InteraktiivinenVirheellisiä kuviaKäännäKäännä kaikki rajan ylittävien pikselien arvoKäännä kuvan väritJPEG-laatuJPEG-maksimikokoJPEG-koon suvaitsevaisuustammikuuheinäkuukesäkuuSäilytä alkuperäiset kuvatLA (8-bitin pikselit, harmaasävy ja läpinäkyvyysmaski)NimikeVasenVasemman väännön kulmaKirjastotLisenssiLokiEtsi exif ja iptc-tunnisteetHäviötön JPEGHäviötön JPEG-muunnos ei toimi "%s" kuvalle:Tekee väristä läpinäkyvänSuurenna tai pienennä kuvaamaaliskuuMerkitseMaskiMaksimoi kuvan kontrastiMaksimiEnimmillään vain yksi "%s" parametri on sallittutoukokuuMediaaniViestiMetatietoMenetelmäKeskiMinimiMinuutitPeilikuvaSumuTilamaanantaiMusta-valko (1-bitti, valkoinen tai musta)KuukaudetSiirrä valittua toimintoa alaspäinSiirrä valittua toimintoa ylöspäinToimintalistaa ei ole annettu.Ei tiedostoja tai kansiota valittuna.Tallenna-toiminta ei tarvita lopussaEi mikäänTavallinenMitään ei ole lokitettu vielä.Ei mitään tehtävää.marraskuuKappalelokakuuSiirtymäSiirrä annettu määrä ja taita ympäriYksiKuva valmis ajassa %sYksi ongelma lokitettiinPeittävyysAvaaAvaa &viimeaikainenAvaa &Url...Avaa toimintolistaAvaa toimintolistanAsetuksetSuuntausUlostuloYlikirjoita olemassaolevat kuvatP (8-bitin pikselit, mapattu käyttäen väripalettia)Optimoi PNGMaalaaMaalauksen sädePolkuKynäluonnosPerspektiiviPhatch ei voi käsitellä %d kuvaa/kuviaPhatch loi pudokkeen onnistuneesti.Kuvien eräprosessoijaAsenna se (uudelleen)Päivitä wxPython.PolaroidSijaintiVärien vähennysSäilytä aikaleimaSovelluksen versioAseta väri läpinäkyvän kuvan allePoistu sovelluksestaRGB (3x8-bitin pikselit, väri)RGBA 4x8-bitin pikselit, RGB ja läpinäkyvyysmaski)SädeSijaValmis!Vähennä värikanavan bittien määrääHeijastusGeneroi esikatselukuva uudelleenPoistaPoista liitos %s:sta...Poista valittu toimintoPoista valittu toimintoNimeä uudelleenNimeä tunniste uudelleenNimeä tunniste uudelleenNimeä tunniste kaikille kuville muotoon:Hahmonnuksen korkeusHahmonnuksen leveysToistaRaportoi bugi LaunchpadissaToista otosKoosta kuva uudelleenErottelutarkkuusOikeaOikean väännön määräKierräKierrä 180Kierrä 270Kierrä 90Kierrä satunnaiseen kulmaanKierto, kääntö, harmaasävy ja leikkausPyöreäPyöristettyPyöristetyt tai ristimäiset kulmatRivejäAja %s käyttöliittymädroplettinaAja %s konsolissa ilman käyttöliittymääSama metodi kaikille kulmilleVärikylläisyyslauantaiTallennaTallenna &nimellä... Ctrl-Shift-STallenna toimintolista nimellä...Tallenna tunnisteetTallenna ja muuta toisiksi tyypeiksiTallenna ainoastaan metatieto (häviötön)Tallentaa toimintolistanTallentaa toimintolistan nimelläSkaalaSkaalaa ainoastaan alaspäinSkaalausmetodiSkaalaa heijastustaSekunnitValitseVärin valintaValitse toimintolistaValintasyyskuuVarjoVarjon sumennusVarjon väriTerävöitäTerävöinnin sädeTerävöinnin sigmaVäännä kaksi- tai kolmiulotteisestiSiirrä tunnisteiden aika-arvojaNäytä &Loki... Ctrl-L&Näytä raporttiNäytä &Raportti... Ctrl+RNäytä lisäasetuksetNäytä lokiNäytä tyyppivaihtoehdotNäytä kaikki toimintojen parametritNäytä toimintolistan kuvausNäytä lokitiedostoNäytä raportti prosessoiduista kuvistaSigmakontrastiKokoLuonnosPiirron kulmaPiirron sädePiirron sigmaLiukusäädinValotaValitettavasti sopivia kuvia ei löytynytLähdeMäärittele paikallinen kieli (esimerkiksi en tai en_GB)TukijatNeliöTähdetLuo uusi toimintolistaMerkkijonosunnuntaiSymmetrinen laattatekstuuriTIFF-pakkausTunnisteTunniste (Exif, Iptc)Tunniste on jo olemassaTamogenTekstiToimintolista on tyhjäYhtään toimintoa ei ole päällä.Lopussa tulisi olla 'Tallenna' toimintoSeuraavat laajennukset on asennettu onnistuneesti: Tiedosto on jo olemassa.torstaiLaatoitusAikasiirtymäAikasiirtymä (sekunteina)Mihin (Exif, Iptc)Sävyjä muuntava mosaiikkigeneraattoriYläYlävasenVasen YlänurkkaYläoikeaOikea YlänurkkaYläväännön kulmaMuuta harmaasävyiseksi lyijykynätyöksiMuunnosMuunnos Käännä Phatch omalle kielellesi.KäännösTransponoiRaja-arvoTositiistaiTyypitEi voida lisätä tunnistetta <%s>Otsikkoa ei voida vaihtaa.Ei voida muuttaa tunnistetta <%s>Tunnistetta <%s> ei voida poistaaTiedostoa ei kyetä avaamaanKuvaa ei voida poistaaTunnistetta <%s> ei voida nimetä uudelleenTunnistetta <%s> ei voida tallentaaTallentamaton toimintalistaEpäterävöitäEpäterävöinnin sädeEpäterävöinnin sigmaYlösPäivitä Exif-esikatselukuvaaPäivitä JPEGPäivitä suuntatunnistettaKäytä exif-aikaleimaaApuohjelmaArvoKattavaPystysuuntainenPystysuuntainen tasausPystysiirtymäNäytä lähdekoodiVesileimaAaltoAallon korkeusAallon pituuskeskiviikkoMitä haluat tehdä nyt?ValkoinenKirjoita toimintolaajennusosaKirjoita tunnisteKirjoita tunnisteeseen uusi arvoKirjoita teksti annettuun paikkaanYCbCr (3x8-bitin pikselit, värivideoformaatti)VuodetSinun tulee asentaa Python Win32-laajennokset käyttääksesi tätä ominaisuutta.keskeytätoiminnotkaikkisovellusautomaattinentaustasumennatotuusarvoalalaajenna hakuasiei voi olla tyhjäkeskivalintaklikkaa '+' lisätäksesi toimintojapakkausääriviivapäivädesimaalioletusyksityiskohtadpireunanparannusreunanparannus, enemmänkorkokuvaepätositiedostotiedostonimitiedostokokosuodinlöydä reunatliukulukukansiokansion nimikehyskorkeustuntihylkääkuvatkokonaislukuvasenladataanmetatietokeskiminuuttitilakuukausikuukauden nimilähinei%s tunnisteita ei löytynytei mikäänpolkuasenna pyexiv2positiivinen kokonaislukupositiivinen, nollasta eroava kokonaislukupyexiv2 pitää olla asennettunaresoluutiooikeajuurisekuntiterävöitäkokoohitalähdemerkkijonoalikansiotunnistetiedostoa "%s" ei ole olemassaliukuluku "%s" on negatiivinen vaikka sen tulisi olla positiivinenliukuluku "%s" on nolla vaikka sen tulisi olla nollasta eroavakokonaisluku "%s" on negatiivinen vaikka sen tulisi olla positiivinenkokonaisluku "%s" on nolla vaikka sen tulisi olla nollasta eroavaylämuunnatosityyppivaroitusviikonpäiväviikonpäivän nimileveyskanssawxPython versiovirhevuosikylläphatch-0.2.7/locale/fi/LC_MESSAGES/phatch.po0000644000000000000000000033617111346363116020175 0ustar rootroot00000000000000# Finnish translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-10-07 17:23+0000\n" "Last-Translator: stani \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Tarkastele Phatch-ohjelmalla" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Tarkastele EXIF- ja IPTC-tunnisteita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Esimerkkejä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Aja %s konsolissa ilman käyttöliittymää" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Aja %s käyttöliittymädroplettina" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Jätä virheet huomiotta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Alusta fontit (vain asennusskripteille)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interaktiivinen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Säilytä alkuperäiset kuvat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Määrittele paikallinen kieli (esimerkiksi en tai en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Tarkastele metatietoja (vaatii exif- ja iptc-liitännäiset)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Tallenna-toiminta ei tarvita lopussa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Sisällytä kaikki alakansiot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Älä tarkista kuvia ensin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Kattava" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "Hiphei, ei ongelmia!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Mitään ei ole lokitettu vielä." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Loki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "keskeytä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "ohita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "hylkää" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "klikkaa '+' lisätäksesi toimintoja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "Avaa &viimeaikainen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Avaa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Avaa toimintolista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Suorita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Suorita toiminto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Lisää" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Lisää toiminto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Poista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Poista valittu toiminto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Ylös" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Siirrä valittua toimintoa ylöspäin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Alas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Siirrä valittua toimintoa alaspäin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Kuvien tarkastelija" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Etsi exif ja iptc-tunnisteet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Kuvaus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Näytä toimintolistan kuvaus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Valitse toimintolistatiedosto..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Tallenna toimintolista nimellä..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Tiedosto on jo olemassa." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Haluatko ylikirjoittaa sen?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "%(name)s toiminnot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "sovellus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "kehys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "toiminnot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "HTML-tutoriaali avautuu nettiselaimeesi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Mikäli haluat lahjoittaa lisäosan Phatchiin," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Vedä ja pudota" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch loi pudokkeen onnistuneesti." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Valitse toimintolista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Valitse kansio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Valitse tiedosto(t)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Valitse tiedostokansio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "kuvat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Selaa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Tiedosto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Kansio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "oletus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Näytä lähdekoodi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "laajenna hakuasi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Polku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Avaa..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "&Lisää tunniste toimintolistaan..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Uusi\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Luo uusi toimintolista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Avaa...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Avaa toimintolistan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Tallenna\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Tallentaa toimintolistan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Tallenna &nimellä...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Tallentaa toimintolistan nimellä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Kopioi toimintolista &komentona leikepöydälle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&Vienti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Poistu\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Poistu sovelluksesta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Lisää...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Poista\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Poista valittu toiminto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Aseta päälle\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Aseta toiminto päälle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "A&seta pois päältä\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Asettaa toiminnon pois päältä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Muokkaa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Pudoke\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Näytä kuvaus\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Laajenna kaikki\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Näytä kaikki toimintojen parametrit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Sulje kaikki\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Näytä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Suorita...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Suorita toimintolista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "&Käyttäjä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "Selaa toimintolistoja, maskeja, korostuksia ja fontteja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "&Selaa kirjastoa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "Näytä &Raportti...\tCtrl+R" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "Näytä raportti prosessoiduista kuvista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Näytä &Loki...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Näytä lokitiedosto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Työkalut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "&WWW-sivu...\tCtrl-W" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Mene Phatchin kotisivulle." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Dokumentaatio...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Mene Phatchin dokumentaatioon." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Foorumi...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Mene Phatchin foorumiin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Käännä Phatchia...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Käännä Phatch omalle kielellesi." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Raportoi bugi...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Raportoi bugi Launchpadissa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&Lisätietoja Phatchista...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Näyttää tietoja tästä sovelluksesta." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Ohje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "Valmis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Näytä loki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "&Näytä raportti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "Valmis!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Koodi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Pyydä apua" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Kirjoita toimintolaajennusosa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Keskeytä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Viesti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Jatka joka tapauksessa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Asetukset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Tyypit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Lähde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Tiedosto(t)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Tarkista kuvat ensin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Ylikirjoita olemassaolevat kuvat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Peru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Eräajo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Kuva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Nimike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "tunniste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Totuusarvo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Merkkijono" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Valinta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Väri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Erottelutarkkuus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Tiedostonimi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Liukuluku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Tila" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Toista otos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Kokonaisluku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Kokonaisluku+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Kokonaisluku+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Vaakasuuntainen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Liukusäädin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "pyexiv2 pitää olla asennettuna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "tammikuu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "helmikuu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "maaliskuu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "huhtikuu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "toukokuu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "kesäkuu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "heinäkuu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "elokuu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "syyskuu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "lokakuu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "marraskuu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "joulukuu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "maanantai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "tiistai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "keskiviikko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "torstai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "perjantai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "lauantai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "sunnuntai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "tausta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "lähde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" "Komento ei tuottanut kuvaa:\n" "%s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Kaikki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "Keskellä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Mukautettu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Keski" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Vasen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Oikea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Ylä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Ala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Alavasen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Alaoikea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Ylävasen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Yläoikea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Suuntaus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Sijainti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Siirtymä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Vaakasiirtymä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Pystysiirtymä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Vaakasuuntainen tasaus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Pystysuuntainen tasaus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "Siirtymän mukaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Laatoitus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Skaala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Merkitse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Peittävyys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Menetelmä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Automaattinen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Kuvien eräprosessoija" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Tosi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Epätosi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "tosi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "epätosi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Tallentamaton toimintalista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Toimintalistat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Kaikki tiedostot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Kuvaa toimintalista täällä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Lopussa tulisi olla 'Tallenna' toiminto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "kanssa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s Viimeaikainen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Liitä kuvat toimintalistaan %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Liitä kuvat viimeaikaisiin toimintalistoihin %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Liitä kuvat kuvien tarkastelijaan %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Poista liitos %s:sta..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "&Toimintalistapudoke..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "&Viimeaikainen pudoke..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "&Kuvientarkastelijapudoke..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Eräaja viimeisimpiä toimintalistoja käyttäen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Tarkasta EXIF- ja IPTC-tunnisteet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Toiminto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Ei mitään tehtävää." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Toimintolista on tyhjä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Yhtään toimintoa ei ole päällä." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Tarkastaa kuvia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch ei voi käsitellä %d kuvaa/kuvia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Virheellisiä kuvia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Valitettavasti sopivia kuvia ei löytynyt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "&Jatka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Ei tiedostoja tai kansiota valittuna." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Tiedostoa ei kyetä avaamaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Ei voida suorittaa toimintoa %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Ei voida suorittaa toimintoa %(a)s '%(i)s' kansion kuville:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Suorittaa toimintolistaa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Kuva valmis ajassa %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "%(amount)d kuvaa tehty ajassa %(duration)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Yksi ongelma lokitettiin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Valitse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "Otsikkoa ei voida vaihtaa." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "Tunnistetta <%s> ei voida poistaa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "Tunnistetta <%s> ei voida nimetä uudelleen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "Tunnistetta <%s> ei voida tallentaa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "päivä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "kansion nimi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "tiedostonimi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "tiedostokoko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "kansio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "tunti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minuutti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "kuukausi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "kuukauden nimi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "polku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "juuri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "sekunti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "alikansio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "tyyppi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "viikonpäivä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "viikonpäivän nimi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "vuosi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "pakkaus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "korkeus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "tila" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "leveys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "koko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "vasen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "keski" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "oikea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "ylä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "keski" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "ala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Musta-valko (1-bitti, valkoinen tai musta)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "Harmaasävy (8-bitin pikselit)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "LA (8-bitin pikselit, harmaasävy ja läpinäkyvyysmaski)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "RGB (3x8-bitin pikselit, väri)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA 4x8-bitin pikselit, RGB ja läpinäkyvyysmaski)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "CMYK (4x8-bitin pikselit, värit erotettu)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "P (8-bitin pikselit, mapattu käyttäen väripalettia)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "YCbCr (3x8-bitin pikselit, värivideoformaatti)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "sumenna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "ääriviiva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "yksityiskohta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "reunanparannus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "reunanparannus, enemmän" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "korkokuva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "löydä reunat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "terävöitä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "lähin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Kierrä 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Kierrä 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Kierrä 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Käännä vasen-oikea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Käännä ylä-ala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Tavallinen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "ei mikään" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "ei voi olla tyhjä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "merkkijono" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "kokonaisluku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "positiivinen kokonaisluku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" "kokonaisluku \"%s\" on negatiivinen vaikka sen tulisi olla positiivinen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "positiivinen, nollasta eroava kokonaisluku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "kokonaisluku \"%s\" on nolla vaikka sen tulisi olla nollasta eroava" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "resoluutio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "liukuluku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "liukuluku \"%s\" on negatiivinen vaikka sen tulisi olla positiivinen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "liukuluku \"%s\" on nolla vaikka sen tulisi olla nollasta eroava" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "totuusarvo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "valinta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "tiedostoa \"%s\" ei ole olemassa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "Enimmillään vain yksi \"%s\" parametri on sallittu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "automaattinen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Ei mikään" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Komento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "Ulostulo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Virhe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "&Valitse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Asenna se (uudelleen)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Päivitä wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPython versiovirhe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "Sovelluksen versio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "Te&kijät" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Lisenssi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Sulje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Tietoja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Tekijät" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dokumentaatio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Käännös" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Kuvamateriaali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Kirjastot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Tukijat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Lisenssi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "Tunniste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Arvo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "varoitus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "Lisää tunniste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "kaikki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "Oletko varma, että haluat poistaa tämän tunnisteen \"%s\":sta?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "Oletko varma, että haluat poistaa tämän tunnisteen kaikista kuvista?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "Tunniste on jo olemassa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Kuvat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Kaikki tiedostot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "&Kopioi arvo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "&Lisää tunniste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "&Poista tunniste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "Avaa &Url..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "&Poista kuva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "&Kopioi tunniste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "&Lisää tunniste kaikkiin kuviin..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "&Poista tunniste kaikista kuvista..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "&Rename Tag for All Images..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "&Muokkaa kaikkien kuvien arvoa..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "Ei voida lisätä tunnistetta <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "Kuvaa ei voida poistaa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "Nimeä tunniste kaikille kuville muotoon:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "Muuta kaikkien kuvien arvo arvoksi:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "Ei voida muuttaa tunnistetta <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Valitse kuva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Syötä kuvan osoite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "asenna pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "%s tunnisteita ei löytynyt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Lisää" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "desimaali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "ladataan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "ei" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "kyllä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Valinta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Kirjasimet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Varjo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "suodin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Lisää sumennetun varjon kuvan alle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Reunus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Varjon sumennus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Taustaväri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Varjon väri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "Pakota taustan väri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "Laatikon väri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "Laatikon syvyys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "Lattian väri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "Lattian heijastus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Tausta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "Liukuväri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "Yläliukuväri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "Alaliukuväri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "Tähdet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "Sumu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "Blender" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "3D-kappaleet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "Hahmonnuksen leveys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "Hahmonnuksen korkeus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "Kappale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Tehoste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Sumennus, Terävöitys, Korkokuva, Pehmennys, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Suodin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Toista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Määrä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "muunna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Siirrä annettu määrä ja taita ympäri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Kangas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Rajaa tai laajenna kangasta skaalaamatta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "Kanvassin leveys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Kanvassin korkeus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Järjestä vaakasuunnassa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Järjestä pystysuunnassa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Väri läpinäkyvyydeksi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Tekee väristä läpinäkyvän" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "Värin valinta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "Väriarvo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Vesileima" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Suorita laatoituksen, skaalauksen sekä läpikuultavuuden kanssa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Vähennä kylläisyyttä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Muuttaa värit harmaiksi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Suurenna tai pienennä kuvaa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Säilytä kuvasuhde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Koosta kuva uudelleen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "Skaalaa ainoastaan alaspäin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Transponoi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Käännä tai kallista 90 astetta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Sarakkeita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Rivejä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "Molemmat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Pystysuuntainen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "Peilikuva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "Symmetrinen laattatekstuuri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Suunta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Nimeä uudelleen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "tiedosto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Risti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Pyöristetty" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Neliö" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Pyöreä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Pyöristetyt tai ristimäiset kulmat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Säde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "Sama metodi kaikille kulmille" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Vasen Ylänurkka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Oikea Ylänurkka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Vasen Alanurkka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Oikea Alanurkka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Korostus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Aseta väri läpinäkyvän kuvan alle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Täytä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Muuta tila" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Muuta kuvan väritila" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Sovita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Pienennä ja rajaa kuva kiinteällä suhteella" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Valuma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Automaattinen Kontrasti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maksimoi kuvan kontrasti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Leikkausarvo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Tallenna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "Tallenna ja muuta toisiksi tyypeiksi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "Näytä tyyppivaihtoehdot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "Optimoi PNG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "JPEG-laatu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "JPEG-maksimikoko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "JPEG-koon suvaitsevaisuus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "TIFF-pakkaus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Metatieto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Mediaani" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Kopioi mediaanipikselin arvo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "Exif-aika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "Tiedoston aika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "Exif ja tiedosto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "Aikasiirtymä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "metatieto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "Siirrä tunnisteiden aika-arvoja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "Muuta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "Käytä exif-aikaleimaa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Sekunnit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Minuutit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Tunnit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Päivät" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Kuukaudet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Vuodet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Maski" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Käytä läpinäkyvyysmaskia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Teksti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Kirjoita teksti annettuun paikkaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Kirjasin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Koko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Väritä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Väritä harmaasävykuva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Musta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Valkoinen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopioi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Värien vähennys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "Vähennä värikanavan bittien määrää" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bittiä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Kirjoita tunniste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "Kirjoita tunnisteeseen uusi arvo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Tunniste (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "Yhtä lailla kaikilta sivuilla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "Erikseen kultakin sivulta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "Piirrä reuna sisä- tai ulkopuolelle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "Reunan leveys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Sija" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Kopioi sijoitetun pikselin arvon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Valota" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Käännä kaikki rajan ylittävien pikselien arvo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Raja-arvo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Tasoita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Tasoita kuvan histogrammi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "Automaattinen (käytä exif-suuntaa)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Rajaa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Kierrä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "Käännä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Harmaasävy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "Generoi esikatselukuva uudelleen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "Häviötön JPEG-muunnos ei toimi \"%s\" kuvalle:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Muunnos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Kulma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "Säilytä aikaleima" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Näytä lisäasetukset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "Päivitä JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "Päivitä Exif-esikatselukuvaa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "Päivitä suuntatunnistetta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Huomautukset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Muunnos " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Kulma " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Suunta " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "Apuohjelma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "Häviötön JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "Kierto, kääntö, harmaasävy ja leikkaus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Rajaa kuva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "Tamogen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "Sävyjä muuntava mosaiikkigeneraattori" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "Täytön tyyppi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "Täyttökuva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "Täyttökansio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Kierrä satunnaiseen kulmaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Laajenna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Taustan Peittävyys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Käännä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Käännä kuvan värit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Geotunniste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "GPS-tieto (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "GPS-raportti (csv)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "Aikasiirtymä (sekunteina)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Heijastus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Tekee heijastuksen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Syvyys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Väli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "Skaalaa heijastusta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "Skaalausmetodi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Yleinen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Kopioi yleisimmän pikseliarvon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Kopioi pikselien minimiarvon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Ääriviiva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Piirrä ääriviivat kuvan reunojen ympärille" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Reunan väri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Täyttöväri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "Liitä kuva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspektiivi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Väännä kaksi- tai kolmiulotteisesti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Vasemman väännön kulma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Yläväännön kulma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Alaväännön määrä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Oikean väännön määrä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Kontrasti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Säädä harmaasta mustaan & valkoiseen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "Tallenna tunnisteet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "Tallenna ainoastaan metatieto (häviötön)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Yksi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Poista tunnisteet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Poista Exif tai Iptc -tunnisteet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maksimi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Kopioi pikselin maksimiarvon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Värikylläisyys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Muuta värikylläisyys harmaasävystä suureksi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Nimeä tunniste uudelleen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "Nimeä tunniste uudelleen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "Mistä (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "Mihin (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Kirkkaus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Säädä kirkkaus mustasta valkoiseen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "3D-särmä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "Sumenna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "Luoti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "Hiili" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Kynäluonnos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "Maalaa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "Terävöitä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "Sigmakontrasti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "Epäterävöitä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "Aalto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Imagemagick" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "Sumenna, Polaroid, Varjo, Epäterävöitä..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Reunan väri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "Kuvateksti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "Hiilen säde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "Kontrastin määrä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "Kontrastin kynnysarvo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "Sumennuksen säde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "Sumennuksen sigma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "Maalauksen säde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "Terävöinnin säde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "Terävöinnin sigma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "Piirron säde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "Piirron sigma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "Piirron kulma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "Epäterävöinnin säde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "Epäterävöinnin sigma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "Aallon korkeus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "Aallon pituus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Luonnos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "Muuta harmaasävyiseksi lyijykynätyöksi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "Yksityiskohtien määrä" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "Nörtti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "Suorita ulkoinen komento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Seuraavat laajennukset on asennettu onnistuneesti:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "Sinun tulee asentaa Python Win32-laajennokset käyttääksesi tätä ominaisuutta." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Toimintalista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Toimintalistaa ei ole annettu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Kuvapolut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Haluatko jatkaa?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Mitä haluat tehdä nyt?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "is negative, but should be positive" #~ msgstr "negatiivinen, pitäisi olla positiivinen" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Harmaasävy (8-bittiset pikselit, musta ja valkoinen)" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Tallenna metatiedot (vaatii exif- ja iptc-liitännäiset)" #~ msgid "Do not create missing folders" #~ msgstr "Älä luo puuttuvia kansioita" #~ msgid "Colour" #~ msgstr "Värit" #~ msgid "Filename" #~ msgstr "Tiedostonimi" #~ msgid "colours" #~ msgstr "Värit" #~ msgid "Crop or add border to all sides" #~ msgstr "Rajaa tai lisää reunus kaikille sivuille" #~ msgid "border" #~ msgstr "reunus" #~ msgid "Height" #~ msgstr "Korkeus" #~ msgid "Width" #~ msgstr "Leveys" #~ msgid "Force Background Colour" #~ msgstr "Pakota Taustan Väri" #~ msgid "Shadow Colour" #~ msgstr "Varjon Väri" #~ msgid "Background Colour" #~ msgstr "Taustaväri" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Vähennä bittien määrää värikanavassa" #~ msgid "Copy the image file" #~ msgstr "Kopioi kuvatiedosto" #~ msgid "Put colour under transparent image" #~ msgstr "Aseta väri läpinäkyvän kuvan taustalle" #~ msgid "Rename the image file" #~ msgstr "Nimeä kuvatiedosto uudelleen" #~ msgid "Save an image" #~ msgstr "Tallenna kuva" #~ msgid "watermark" #~ msgstr "vesileima" #~ msgid "By offset" #~ msgstr "Siirtymän verran" phatch-0.2.7/locale/fil/0000755000000000000000000000000011346363116014742 5ustar rootroot00000000000000phatch-0.2.7/locale/fil/LC_MESSAGES/0000755000000000000000000000000011346363116016527 5ustar rootroot00000000000000phatch-0.2.7/locale/fil/LC_MESSAGES/phatch.mo0000644000000000000000000007442211346363116020344 0ustar rootroot00000000000000<)&)) )**-*2*;*U* d*r*y*** * * ****++#+)+8+K+\+b+k+ +++++ ++ ++, ,),1, J,k,,, ,,3,,, , -- -%!-(G-p--- - -#------.3 .9T...*...2.&/-/ 2/ @/K/\/a/"g/// // // // // / 0'06>0u0 0 0000001131C1Z1_1e1t1}11+1111 1"1 2?2]2"|22222)22 3333"3+3 D3P3 V3a3 33 33,3334 24@4(E4 n4z44$5 ?5M5`5\f5555556646:6C6 H6R6Z6a6e6j6z66666666666 77787O7 j7t7 7777.7 788 8 "8.85888O8h8.8888 8 888'9-9K9S9X9&]999 999 9999 :.:4:9:>:%F:l:p:w::::::::*:::;;7;"T;w;|;;;;;;;;;; ;<<2< :<F<.`< << <"<(<7<1=H= f=p=!== =1=>>*>E>L>j>>> > >>>>? ? ? &?1?7? >? I? T?^?d?l???'? ????? @@?@T@l@r@ z@ @@ @ @@@'@#@ A$.ASAXAlAsA |AA>AA1AB$B+BCBSBZBwB~BBBBBBHBC+;CgCCDD"D'2DZD^DgD wDD'DDD)D E EE"E'E/E5ELEfEzEEE2EEEEF F(F,FF sF }FFFF FFF*F*G40G7eG.GGG G G G GH HHH#H*H>HEHLHeHmHqHyHHH HHHHHHHH HHH HHHI III !IBI aIIIIIIII IIIIIIIJ!JTU%U *U8U@UQUVU.[UU UUUUUUUVV'VBV&QV=xVV V V-VW;W TW`WuW(WWWWWWX$ X0X3DXxX X"XX*X(X Y)2Y.\Y!YY YYYYYZ ZZ Z&ZFZZZ`Z(sZZZ ZZ4Z+[C[^[ z[[C[[([ \%\\\ \l\ `] n]y],]$] ]"] ^^^^ .^9^ @^ L^W^s^#^^^^^^^^__'_,_"3_V_q_ ______3_"`=`E`!]` ` ``"``"`6a;aSa[a da naza a9a&aab b0b BbNb Ub ablb pb?~b%b bc c c c.)cXc]cdclcuc|c c ccc&c cccd"*d0Md~dddd ddddd eee+eKeje |e'e6e eee/f+3fP_ff(f fg6gQg#ig2ggg)gg g h =h^hrhh3hhhi i #i 1iIM:<%Fy4&[i1\7c {x^+ 5s!D*/8('2zw)!k#J E>V=aQ|Z8 |62y]j(I@obp,RZSCGvp h7jl -":'E%cD?*1`NKMgJ5T.~"AX.OrU_#fbk+Lnu{;_ 0wRGq9lNq]x$S di-,QX&$Kt/3PPo%(amount)d images done in %(duration)s%d issues were logged%s Recent&Abort&About Phatch... Ctrl-Shift-A&Add&Add Tag&Add Tag to All Images...&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Continue Anyway&Copy Tag&Copy Value&Delete Tag&Delete Tag from All Images...&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Expand All Ctrl-E&Forum... Ctrl-F&Help&License&Modify Value for All Images...&New Ctrl-N&OK&Open...&Open... Ctrl-O&Phatch&Quit Ctrl-Q&Remove Ctrl--&Remove Image&Rename Tag for All Images...&Report a Bug... Ctrl-B&Save Ctrl-S&Select&Show Description Ctrl-H&Show template for action plugin&Skip to Next Action&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&ViewA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAlways show status dialog when doneAmountAngleAngle Apply a transparency maskApply for future errors AprilAre you sure you want to delete this tag from "%s"?Are you sure you want to delete this tag from all images?ArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastBackgroundBackground ColorBitsBlackBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBrightnessBrowseBrowse FolderC&reditsCMYK (4x8-bit pixels, color separation)Can not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:Canvas HeightCanvas WidthChange value for all images to:Check images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderCodeColorColor to AlphaColorizeColorize grayscale imageColumnsCommand did not produce an output image: %sCommentsCommonConstrain ProportionsConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDetails DegreeDirection Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDraw border inside or outsideDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoEnable actionEnter an image urlErrorError: wxPython %(recommended)s (or at least %(minimal)s) can not be found, but is required.ExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFade all colors to grayFalseFebruaryFileFile NameFile(s)FilterFitFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsForce Background ColorFridayFrom (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GeekGeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.HighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetHoursIf you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagemagickImagesInInclude all subfoldersInspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJanuaryJulyJuneKeep existing images (don't overwrite)LabelLeftLibrariesLicenseLogLossless JPEGLossless JPEG transformation does not work on a %s image:Make selected color transparentMake the image smaller or biggerMarchMarkMaskMaximumMaximum one parameter "%s" is allowedMayMedianMessageMetadataMethodMiddleMinimumMinutesModeMondayMonochrome (1-bit pixels, black and white)MonthsMove the selected action downMove the selected action upNo action list provided.No files or folder selected.No save action required at the endNoneNormalNothing has been logged yet.Nothing to do.NovemberOctoberOneOne image done in %sOne issue was loggedOpacityOpenOpen &Url...Open an action listOpens an actions listOptionsOrientationOverwrite existing imagesP (8-bit pixels, mapped using a color palette)PNG OptimizePathPerspectivePhatch can not handle %d image(s):Phatch successfully created the droplet.Phatch will add one for you, please check its settings.Please (re)install it.Please upgrade your wxPython.PosterizePreserve TimestampPut color under transparent imageQuit the application.RGB (3x8-bit pixels, true color)RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReduce the number of bits of color channelRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename tag for all images to:RepeatReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRightRotateRotate 180Rotate 270Rotate 90RoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save TagsSave and convert to other typesSaves an action listSaves an action list asScaleSecondsSelectionSeptemberShadowShadow BlurShadow ColorShow &Log... Ctrl-LShow Type OptionsShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSkip To Next &ImageSliderSolarizeSorry, %s.Sorry, no valid files foundSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:SundayTIFF CompressionTagTag (Exif, Iptc)Tag exists alreadyTextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.This application is known to be compatible with wxPython version(s) %(recommended)s (or at least %(minimal)s), but you have %(version)s installed.This file exists already.ThursdayTileTo (Exif, Iptc)Tools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTransform to a grayscale pencil drawingTransformationTransformation Translate Phatch in your native language.TranslationTransposeTresholdTrueTuesdayTypesUnable to add tag <%s>Unable to change tag <%s>Unable to open fileUnable to remove imageUnsaved Action ListUpUse the Image Inspector to list all the variables.ValueVerticalVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYCbCr (3x8-bit pixels, color video format)YearsYou can only use files with the following extensionsYou only need to know PIL to write a plugin for Phatch,a filename with a valid extension was expectedabortactionsantialiasapplicationautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerinvalid literal "%s" for booleaninvalid literal "%s" for floatinvalid literal "%s" for integerinvalid syntax "%s" for integerleftmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnonepathplease install pyexiv2positive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existthe float value "%s" is negative, but should be positivethe float value "%s" is zero, but should be non-zerothe integer value "%s" is negative, but should be positivethe integer value "%s" is zero, but should be non-zerotoptransformtruetypeweekdayweekdaynamewidthwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-09-21 17:02+0000 Last-Translator: stani Language-Team: Filipino MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) %(amount)d larawan ang natapos sa loob ng %(duration)s%d mga suliranin ang naitala%s Bago(&A)ItigilTungkol sa Phatch (&A)... Ctrl-Shift-AM&agdagdagMagdagdag ng Tag (&A)Ilagay ang Tag sa Lahat ng Larawan... (&A)M&agdagdag... Ctrl-+(&A)Humhingi ng Tulong&Batch(&C)Kanselahin(&C)Isara(&C)Magpatuloy LamangKopyahin ang Tag (&C)Kopyahin ang Halaga (&C)Tanggalin ang Tag (&D)Tanggalin ang Tag sa Lahat ng Larawan... (&D)(&D)Huwag Isagawa Ctrl-0&Dokumentasyon... Ctrl-M(&D)Baba Ctrl-Down&Droplet Ctrl-D&Edit(&E)Isagawa Ctrl-1(&E)Paluwangin Lahat Ctrl-E&Forum... Ctrl-F(&H)TulongPahintu&lotPalitan ang Nilalaman sa Lahat ng Larawan... (&M)(&N)Bago Ctrl-N&OKBuksan (&O)...(&O)Buksan... Ctrl-O&Phatch(&Q)Tapusin Ctrl-Q(&R)Alisin Ctrl--Tanggalin ang Larawan (&R)Palitan ang Pangalan ng Tag sa Lahat ng Larawan... (&R)(&R)Mag-ulat ng Bug... Ctrl-B(&S)Ikubli Ctrl-SPiliin (&S)Ipakita ang Pag&sasalarawan Ctrl-HIpakita ang hulma ng kilo&s pluginTumalon sa Susunod na Aksyon (&S)Mga Kagami&tanIsalinwika ang Pha&tch... Ctrl-T(&U)Taas Ctrl-Up(&V)IpakitaBubuksan sa inyong browser ang isang gabay na HTMLPatungkolAksyonTalaan ng mga AksyonTalaan ng mga aksyonMagdagdagMagdagdag ng kilosAyusin ang liwanag mula itim hanggang putiAyusin ang katingkaran mula grayscale pataasIhanay PahalangIhanay PatayoLahatLahat ng FileLahat ng fileLaging ipakita ang status dialog sa pagtataposDamiAnguloAngulo Maglagay ng transparency maskGamitin sa mga pagkakamali sa hinaharap AbrilSigurado bang nais niyong tanggalin ang tag na ito mula sa "%s"?Sigurado bang nais ninyong tanggalin ang tag na ito mula sa lahat ng mga larawan?Mga Gawang SiningBilangIugnay ang mga Larawan sa Talaan ng mga Aksyon sa %s...Iugnay ang mga Larawan sa Tagasuri ng mga Larawan sa %s...Iugnay ang mga Larawan sa Bagong Talaan ng mga Aksyon sa %s...AgostoAutoAuto ContrastLikuranKulay sa LikuranBitsItimPalabuin, Patulisin, Paumbokin, Pakinisin, ...BooleanHanggananKulay ng HanggananIbabaDulong Kaliwa sa IbabaKaliwang-Ibabang KantoDulong Kanan sa IbabaKanang-Ibabang KantoLiwanagMagtingin-tinginMagtingin-tingin sa FolderMga Kapu&rihanCMYK (4x8-bit pixel, color separation)Hindi magawa ang aksyong %(a)s sa larawang '%(i)s' sa folder:Hindi magawa ang aksyong %(a)s:Taas ng LonaLapad ng LonaPalitan ang nilalaman sa lahat ng larawan sa:Suriin muna ang mga larawanSinusuri ang mga larawanPagpipilianPumili ng (mga) FilePumili ng folderPumili ng File ng Talaan ng mga Kilos...Pumili ng larawanPumili ng folder ng mga larawanCodeKulayGawing Alpha ang KulayKulayanKulayan ang isang larawang grayscaleMga hanay na pababaAng kautusan ay hindi nakagawa ng isang larawan: %sMga PunaKaraniwanPanatilihin ang Pagkakabagay-bagayMode PampabagoPalitan ang mode ng kulay ng isang larawanKinokopya ang pinakamalaking pixel valueKinokopya ang median pixel valueKinokopya ang pinakamaliit na pixel valueKinokopya ang mga pinakakaraniwang pixel valueKinokopya ang rank'th pixel valueKopyahinMga KapurihanPutulinPutulin o palakihin ang lonaPutulin ang larawanKrusPasadyaPagputolMga ArawDesyembreBurahin ang mga Exif o Iptc tagBurahin ang mga TagLalimTanggalan ng KulayIsalarawan dito ang talaan ng mga aksyonPagsasalarawanDami ng mga DetalyeDireksyon Huwag isagawa ang kilosNagpapakita ng impormasyon tunkol sa programang ito.Huwag nang suriin ang mga larawan sa simulaNais niyo bang magpatuloy?Nais niyo ba itong palitan?DokumentasyonBabaPaliitin at putulin ang larawan nang hindi nagbabago ang katumbasanHilahin & IhulogGumuhit ng hangganan sa loob at sa labasMaglaglag ng mga file at/o folder dito sa Phatch para maaksyunan ang mga ito. Mag-right-click o double-click para lumipat sa normal view.Maglagay ng anino sa likod ng larawanIsagawa ang kilosIlagay ang url ng larawanPagkakamaliPagkakamali: wxPython %(recommended)s (or at least %(minimal)s) ay kinakailangan ngunit hindi ito natagpuan.Mga halimbawaPatakbuhinGawin ang pagkilosIsagawa ang nilalaman ng talaan ng mga kilosIsinasagawa ang mga naitalang aksyonPalawakinPawiin lahat ng kulay tungong grayMaliPebreroFilePangalan ng File(Mga) FilePanalaPagkasyahinBaliktarinBaliktarin Pakaliwa PakananBaliktarin Paibabaw PailalimBaliktarin o paikutin ng 90 degreesFloatFolderFontMga FontPilitin ang Kulay sa LikuranBiyernesMula (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GeekGeotagPumunta sa dokumentasyon ng PhatchPumunta sa forum ng PhatchPumunta sa hompage ng Phatch.HighlightAyos, walang isyu!PahalangKapantayan sa mga GilidLayong PahalangMga OrasKung nais niyong magbigay ng plugin para sa Phatch,Huwag pansinin ang mga pagkakamaliLarawanTagasuri ng mga LarawanMga landas patungo sa mga larawanImagemagickMga LarawanSa loobIsama ang mga nakapaloob na folderSuriin ang mga EXIF & IPTC tagSuriin ang mga EXIF & IPTC tagSuriin ang metadata (kailangan ang exif & iptc plugin)Suriin gamit ang PhatchIntegerInteger+Integer+0InteractiveMga di-angkop na larawanBaliktarinBaliktarin lahat ng mga pixel value sa labas ng thresholdPagbaliktarin ang mga kulay ng larawanEneroHulyoHunyoItago ang mga lumang larawan (huwag i-overwrite)PalatandaanKaliwaMga AklatanPahintulotLogLossless JPEGAng pagbagagong lossless JPEG ay hindi gumagana sa larawang %s:Tanggalin ang kulay at gawing tagusanPalakihin o paliitin ang larawanMarsoMarkaMaskarahanPinakamalakiIsang parameter na "%s" lamang ang pinapayaganMayoMedianMensaheMetadataParaanGitnaPinakamaliitMga SandaliModeLunesMonochrome (1-bit pixel, itim at puti)Mga BuwanIbaba ang nahirang na kilosItaas ang nahirang na kilosWalang aksyon na ibinigay.Walang piniling mga file o folder.Hindi kinakailangan ang save action sa katapusanWalaNormalWala pang nailalagay sa log.Walang gagawin.NobyembreOktubreIsaIsang larawan ang natapos sa %sIsang suliranin ang naitalaOpacityBuksanBuksan ang &Url...Magbukas ng talaan ng mga kilosBuksan ang talaan ng mga kilosMga MapagpipilianPagkakaikotPangibabawan ang mga umiiral na larawanP (8-bit pixels, minapa gamit ang isang color palette)PNG OptimizeLandasPananawHindi mababago ng Phatch ang (mga) larawang %d:Matagumpay na nagawa ng Phatch ang droplet.Magdadagdag ng isa ang Phatch para sa inyo, suriin lamang ang mga kaayusan nito.Paki-(re)install lamang ito.Paki-upgrade lamang ang inyong wxPython.PosterizePanatilihin ang TimestampMaglagay ng kulay sa likuran ng transparent na larawanPahintuin ang programa.RGB (3x8-bit pixel, tunay na kulay)RGBA (4x8-bit pixel, RGB na may transparency mask)RadiusRanggoBawasan ang dami ng bits sa color channelAlisinAlisin ang pagkakaugnay sa %s...Alisin ang nahirang na kilosAlisin ang nahirang na pagkilos.Ibahin ang pangalanPalitan ng Pangalan ang TagPalitan ang pangalan ng tagPalitan ang pangalan ng tag sa lahat ng larawan sa:UlitinMag-ulat ng bug sa launchpad.ResampleI-resample ang LarawanResample MaskResolutionKananPaikutinPaikutin 180Paikutin 270Paikutin 90BilogBiluganBilugan o krus na mga kantoMga hanay na pahalangPatakbuhin ang %s bilang gui dropletPatakbuhin ang %s sa console at walang guiKatingkaranSabadoIkubliIkubli Bil&ang... Ctrl-Shift-SIkubli ang Talaan ng mga Kilos Bilang...I-save ang mga TagI-save at isalin sa ibang uriNagkukubli ng talaan ng mga kilosNagkukubli ng talaan ng mga kilos bilangBaguhin ang LakiMga SaglitNapiliSetyembreAninoLabo ng AninoKulay ng AninoIpakita ang &Log... Ctrl-LIpakita ang iba't-ibang uriIpakita lahat ng parameter ng lahat ng mga kilos.Ipakita ang pagsasalarawan ng mga kilosIpakita ang log fileIpakita lamang ang mga pananda ng mga kilos.LakiTumalon sa Susunod na Larawan (&I)SliderSolarizePaumanhin, %s.Paumanhin, walang mga larawang natagpuanPaumanhin, kailangan ninyong ilagay ang aksyong %s sa talaang ito.PinagmulanTukuyin ang lokal na wika (halimbawa, en o en_GB)Mga PadrinoKuwadradoMagsimula ng bagong talaan ng mga kilosHuminto sa mga pagkakamaliStringPag-aralan ang mga kilos plugin sa:LinggoTIFF CompressionTagTag (Exif, Iptc)Mayroon nang tag na ganitoTextAng talaan ng mga aksyon ay walang nilalaman.Ang droplet command para sa image inspector ay kinopya sa clipboard.Walang aksyon na pinili.Kailangan ng aksyong 'Save' sa hulihan.Ang programang ito ay kilalang naaayon sa wxPython %(recommended)s (o %(minimal)s), ngunit ang mayroon kayo ay %(version)s.Mayroon nang file na ganito.HuwebesTisaTungong (Exif, Iptc)Mga kagamitang pantulong sa pagsasagawa ng mga pagkilosTuktokDulong Kaliwa sa ItaasKaliwang-Itaas na KantoDulong Kanan sa ItaasKanang-Itaas na KantoGawing isang guhit na grayscalePagbabagoPagbabago Isalin ang Phatch sa inyong wika.SalinwikaTransposeTresholdTotooMartesMga KlaseHindi mailagay ang tag na <%s>Hindi mapalitan ang tag na <%s>Hindi mabuksan ang fileHindi matanggal ang larawanHindi naka-save na Talaan ng mga AksyonTaasGamitin ang Tagasuri ng mga Larawan upang itala ang lahat ng mga variable.HalagaPatayoKapantayan sa Taas at IbabaLayong PatayoTignan ang PinagmulanTignan bilang droplet at maghulog ng mga fileBabala: ang python-wxversion ay hindi naka-install. WatermarkMiyerkulesAno na ang nais ninyong gawin?PutiSumulat ng Kilos PluginIsulat ang TagLagyan ng bagong halaga ang tagSumulat ng text sa napiling puwestoYCbCr (3x8-bit pixel, color video format)Mga TaonAng mga file na may sumusunod na extension lamang ang maaari niyong gamitinKailangang marunong kayong mag-PIL para makasulat ng mga plugin para sa Phatch.isang pangalan ng file na may katanggap-tanggap na extension ang inasahanitigilmga kilosantialiasprogramaautomaticlikuranbicubicbilinearpalabuinbooleanilalimPalawakin ang inyong paghahanapgitnanapiliI-click ang '+' upang magdagdag ng mga aksyontabasinarawdecimaldefaultlagyan ng detalyedpipalitawin ang mga kantolalong palitawin ang mga kantopaumbokinmalifilepangalan ng filelaki ng filepanalahanapin ang mga kantofloatfolderpangalan ng folderkwadrotaasorashuwag pansininmga larawanintegerdi-tinatanggap ang "%s" bilang booleandi-tinatanggap ang "%s" bilang floatdi-tinatanggap ang "%s" bilang integerdi-tanggap ang paggamit ng "%s" para sa integerkaliwametadatapagitansandalimodebuwanpangalan ng buwanpinakamalapithindiwalang natagpuang %s tagwalalandaspaki-install lamang ang pyexiv2positibong integerposibito, integer na hindi zerokailangang i-install ang pyexiv2resolutionkananrootsaglitpatalasinlakihakbanganpakinisinlalong pakinisinstringsubfoldertagdi-tinatanggap ang file extension na "%s"walang file na may pangalang "%s"ang float na "%s" ay negatibo, ngunit ito dapat ay positiboang float na "%s" ay zero, ngunit hindi dapat ito zeroang integer na "%s" ay negetibo, ngunit ito dapat ay positiboang integer na "%s" ay zero, ngunit hindi dapat ito zeroibabawibahin ang anyototoouriaraw ng linggopangalan ng arawlapadPagkakamali sa Bersyon ng wxPythontaonoophatch-0.2.7/locale/fil/LC_MESSAGES/phatch.po0000644000000000000000000033754711346363116020361 0ustar rootroot00000000000000# Filipino translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-09-21 17:02+0000\n" "Last-Translator: stani \n" "Language-Team: Filipino \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Suriin gamit ang Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Suriin ang mga EXIF & IPTC tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Mga halimbawa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Patakbuhin ang %s sa console at walang gui" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Patakbuhin ang %s bilang gui droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Huwag pansinin ang mga pagkakamali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interactive" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Itago ang mga lumang larawan (huwag i-overwrite)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Tukuyin ang lokal na wika (halimbawa, en o en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Suriin ang metadata (kailangan ang exif & iptc plugin)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Hindi kinakailangan ang save action sa katapusan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Isama ang mga nakapaloob na folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Huwag nang suriin ang mga larawan sa simula" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Paumanhin, kailangan ninyong ilagay ang aksyong %s sa talaang ito." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "Ang droplet command para sa image inspector ay kinopya sa clipboard." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "Ayos, walang isyu!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Wala pang nailalagay sa log." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "itigil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "hakbangan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "huwag pansinin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "I-click ang '+' upang magdagdag ng mga aksyon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Buksan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Magbukas ng talaan ng mga kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Patakbuhin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Gawin ang pagkilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Magdagdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Magdagdag ng kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Alisin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Alisin ang nahirang na kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Taas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Itaas ang nahirang na kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Baba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Ibaba ang nahirang na kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Tagasuri ng mga Larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Pagsasalarawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Ipakita ang pagsasalarawan ng mga kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Pumili ng File ng Talaan ng mga Kilos..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Ikubli ang Talaan ng mga Kilos Bilang..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Mayroon nang file na ganito." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Nais niyo ba itong palitan?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "programa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "kwadro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "mga kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Bubuksan sa inyong browser ang isang gabay na HTML" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Pag-aralan ang mga kilos plugin sa:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Kung nais niyong magbigay ng plugin para sa Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Hilahin & Ihulog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Maglaglag ng mga file at/o folder dito sa Phatch\n" "para maaksyunan ang mga ito.\n" "Mag-right-click o double-click para lumipat sa normal view." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" "Magdadagdag ng isa ang Phatch para sa inyo, suriin lamang ang mga kaayusan " "nito." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Matagumpay na nagawa ng Phatch ang droplet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Pumili ng folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Pumili ng (mga) File" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Pumili ng folder ng mga larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "mga larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Magtingin-tingin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "File" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "default" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Tignan ang Pinagmulan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "Palawakin ang inyong paghahanap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Landas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "Buksan (&O)..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "(&N)Bago\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Magsimula ng bagong talaan ng mga kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "(&O)Buksan...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Buksan ang talaan ng mga kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "(&S)Ikubli\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Nagkukubli ng talaan ng mga kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Ikubli Bil&ang...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Nagkukubli ng talaan ng mga kilos bilang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "(&Q)Tapusin\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Pahintuin ang programa." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "M&agdagdag...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "(&R)Alisin\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Alisin ang nahirang na pagkilos." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "(&E)Isagawa\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Isagawa ang kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "(&D)Huwag Isagawa\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Huwag isagawa ang kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "(&U)Taas\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "(&D)Baba\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Edit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Droplet\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Tignan bilang droplet at maghulog ng mga file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "Ipakita ang Pag&sasalarawan\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Mga kagamitang pantulong sa pagsasagawa ng mga pagkilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "(&E)Paluwangin Lahat\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Ipakita lahat ng parameter ng lahat ng mga kilos." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Ipakita lamang ang mga pananda ng mga kilos." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "(&V)Ipakita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Isagawa ang nilalaman ng talaan ng mga kilos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "&Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Ipakita ang &Log...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Ipakita ang log file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "Mga Kagami&tan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Pumunta sa hompage ng Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Dokumentasyon...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Pumunta sa dokumentasyon ng Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Pumunta sa forum ng Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "Isalinwika ang Pha&tch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Isalin ang Phatch sa inyong wika." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "(&R)Mag-ulat ng Bug...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Mag-ulat ng bug sa launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "Tungkol sa Phatch (&A)...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Nagpapakita ng impormasyon tunkol sa programang ito." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "(&H)Tulong" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" "Kailangang marunong kayong mag-PIL para makasulat ng mga plugin para sa " "Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "Ipakita ang hulma ng kilo&s plugin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Code" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "(&A)Humhingi ng Tulong" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Sumulat ng Kilos Plugin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Gamitin sa mga pagkakamali sa hinaharap " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "(&A)Itigil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "Tumalon sa Susunod na Aksyon (&S)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "Tumalon sa Susunod na Larawan (&I)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Mensahe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "(&C)Magpatuloy Lamang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Mga Mapagpipilian" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Mga Klase" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Magtingin-tingin sa Folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Pinagmulan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "(Mga) File" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Huminto sa mga pagkakamali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Suriin muna ang mga larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Pangibabawan ang mga umiiral na larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "Laging ipakita ang status dialog sa pagtatapos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "(&C)Kanselahin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Batch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Palatandaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "String" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Pagpipilian" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Kulay" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Resolution" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Pangalan ng File" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "Sa loob" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Bilang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Mode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Resample" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicubic" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Integer+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Integer+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Pahalang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Slider" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "kailangang i-install ang pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Enero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Pebrero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Marso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "Abril" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Mayo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Hunyo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Hulyo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "Agosto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Setyembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Oktubre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "Nobyembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "Desyembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Lunes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Martes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Miyerkules" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Huwebes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Biyernes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Sabado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Linggo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "likuran" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" "Ang kautusan ay hindi nakagawa ng isang larawan:\n" "%s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Lahat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Pasadya" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Gitna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Kaliwa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Kanan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Tuktok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Ibaba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Dulong Kaliwa sa Ibaba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Dulong Kanan sa Ibaba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Dulong Kaliwa sa Itaas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Dulong Kanan sa Itaas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Pagkakaikot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Layong Pahalang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Layong Patayo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Kapantayan sa mga Gilid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Kapantayan sa Taas at Ibaba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Tisa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Baguhin ang Laki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Marka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Opacity" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Paraan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Auto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Totoo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Mali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "totoo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "mali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Hindi naka-save na Talaan ng mga Aksyon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Talaan ng mga Aksyon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Lahat ng File" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Isalarawan dito ang talaan ng mga aksyon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Kailangan ng aksyong 'Save' sa hulihan." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s Bago" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Iugnay ang mga Larawan sa Talaan ng mga Aksyon sa %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Iugnay ang mga Larawan sa Bagong Talaan ng mga Aksyon sa %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Iugnay ang mga Larawan sa Tagasuri ng mga Larawan sa %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Alisin ang pagkakaugnay sa %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Suriin ang mga EXIF & IPTC tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Aksyon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Walang gagawin." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Ang talaan ng mga aksyon ay walang nilalaman." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Walang aksyon na pinili." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Sinusuri ang mga larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Hindi mababago ng Phatch ang (mga) larawang %d:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Mga di-angkop na larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Paumanhin, walang mga larawang natagpuan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Walang piniling mga file o folder." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Hindi mabuksan ang file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Hindi magawa ang aksyong %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Hindi magawa ang aksyong %(a)s sa larawang '%(i)s' sa folder:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Isinasagawa ang mga naitalang aksyon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Isang larawan ang natapos sa %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "%(amount)d larawan ang natapos sa loob ng %(duration)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Isang suliranin ang naitala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "%d mga suliranin ang naitala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "araw" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "pangalan ng folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "pangalan ng file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "laki ng file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "oras" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "sandali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "buwan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "pangalan ng buwan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "landas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "root" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "saglit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "subfolder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "uri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "araw ng linggo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "pangalan ng araw" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "taon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "taas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "mode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "lapad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "laki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" "Gamitin ang Tagasuri ng mga Larawan upang itala ang lahat ng mga variable." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" "Ang mga file na may sumusunod na extension lamang ang maaari niyong gamitin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "kaliwa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "gitna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "kanan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "ibabaw" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "pagitan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "ilalim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monochrome (1-bit pixel, itim at puti)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "RGB (3x8-bit pixel, tunay na kulay)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bit pixel, RGB na may transparency mask)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "CMYK (4x8-bit pixel, color separation)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "P (8-bit pixels, minapa gamit ang isang color palette)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "YCbCr (3x8-bit pixel, color video format)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "palabuin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "tabasin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "lagyan ng detalye" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "palitawin ang mga kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "lalong palitawin ang mga kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "paumbokin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "hanapin ang mga kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "pakinisin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "lalong pakinisin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "patalasin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "pinakamalapit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilinear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Paikutin 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Paikutin 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Paikutin 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Baliktarin Pakaliwa Pakanan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Baliktarin Paibabaw Pailalim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "wala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "di-tanggap ang paggamit ng \"%s\" para sa integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "string" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "di-tinatanggap ang \"%s\" bilang integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "positibong integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "ang integer na \"%s\" ay negetibo, ngunit ito dapat ay positibo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "posibito, integer na hindi zero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "ang integer na \"%s\" ay zero, ngunit hindi dapat ito zero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "resolution" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "di-tinatanggap ang \"%s\" bilang float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "ang float na \"%s\" ay negatibo, ngunit ito dapat ay positibo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "ang float na \"%s\" ay zero, ngunit hindi dapat ito zero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "di-tinatanggap ang \"%s\" bilang boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "napili" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "di-tinatanggap ang file extension na \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" "isang pangalan ng file na may katanggap-tanggap na extension ang inasahan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "walang file na may pangalang \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "Isang parameter na \"%s\" lamang ang pinapayagan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "automatic" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Wala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Pagkakamali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "Piliin (&S)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Babala: ang python-wxversion ay hindi naka-install.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" "Pagkakamali: wxPython %(recommended)s (or at least %(minimal)s) ay " "kinakailangan ngunit hindi ito natagpuan." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Paki-(re)install lamang ito." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" "Ang programang ito ay kilalang naaayon sa\n" "wxPython %(recommended)s (o %(minimal)s),\n" "ngunit ang mayroon kayo ay %(version)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Paki-upgrade lamang ang inyong wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Pagkakamali sa Bersyon ng wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "Mga Kapu&rihan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "Pahintu&lot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "(&C)Isara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Patungkol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Mga Kapurihan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dokumentasyon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Salinwika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Mga Gawang Sining" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Mga Aklatan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Mga Padrino" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Pahintulot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Halaga" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "Sigurado bang nais niyong tanggalin ang tag na ito mula sa \"%s\"?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" "Sigurado bang nais ninyong tanggalin ang tag na ito mula sa lahat ng mga " "larawan?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "Mayroon nang tag na ganito" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Mga Larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Lahat ng file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "Kopyahin ang Halaga (&C)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "Magdagdag ng Tag (&A)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "Tanggalin ang Tag (&D)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "Buksan ang &Url..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "Tanggalin ang Larawan (&R)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "Kopyahin ang Tag (&C)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "Ilagay ang Tag sa Lahat ng Larawan... (&A)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "Tanggalin ang Tag sa Lahat ng Larawan... (&D)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "Palitan ang Pangalan ng Tag sa Lahat ng Larawan... (&R)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "Palitan ang Nilalaman sa Lahat ng Larawan... (&M)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "Hindi mailagay ang tag na <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "Hindi matanggal ang larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "Palitan ang pangalan ng tag sa lahat ng larawan sa:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "Palitan ang nilalaman sa lahat ng larawan sa:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "Hindi mapalitan ang tag na <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "Paumanhin, %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Pumili ng larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Ilagay ang url ng larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "paki-install lamang ang pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "walang natagpuang %s tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "M&agdagdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "hindi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "oo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Napili" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Mga Font" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Anino" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "panala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Maglagay ng anino sa likod ng larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Hangganan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Labo ng Anino" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Kulay sa Likuran" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Kulay ng Anino" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "Pilitin ang Kulay sa Likuran" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Likuran" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Palabuin, Patulisin, Paumbokin, Pakinisin, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Panala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Ulitin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Dami" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "ibahin ang anyo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Putulin o palakihin ang lona" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "Lapad ng Lona" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Taas ng Lona" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Ihanay Pahalang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Ihanay Patayo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Gawing Alpha ang Kulay" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Tanggalin ang kulay at gawing tagusan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Watermark" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Tanggalan ng Kulay" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Pawiin lahat ng kulay tungong gray" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Palakihin o paliitin ang larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Panatilihin ang Pagkakabagay-bagay" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "I-resample ang Larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Transpose" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Baliktarin o paikutin ng 90 degrees" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Mga hanay na pababa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Mga hanay na pahalang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Patayo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Ibahin ang pangalan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Krus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Bilugan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Kuwadrado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Bilog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Bilugan o krus na mga kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Radius" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Kaliwang-Itaas na Kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Kanang-Itaas na Kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Kaliwang-Ibabang Kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Kanang-Ibabang Kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Highlight" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Maglagay ng kulay sa likuran ng transparent na larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Mode Pampabago" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Palitan ang mode ng kulay ng isang larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Pagkasyahin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Paliitin at putulin ang larawan nang hindi nagbabago ang katumbasan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Auto Contrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Pagputol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Ikubli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "I-save at isalin sa ibang uri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "Ipakita ang iba't-ibang uri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "PNG Optimize" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "TIFF Compression" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Metadata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Median" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Kinokopya ang median pixel value" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "metadata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Mga Saglit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Mga Sandali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Mga Oras" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Mga Araw" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Mga Buwan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Mga Taon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Maskarahan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Maglagay ng transparency mask" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Resample Mask" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Text" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Sumulat ng text sa napiling puwesto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Font" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Laki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Kulayan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Kulayan ang isang larawang grayscale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Itim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Puti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopyahin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posterize" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "Bawasan ang dami ng bits sa color channel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Isulat ang Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "Lagyan ng bagong halaga ang tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Tag (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "Gumuhit ng hangganan sa loob at sa labas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Ranggo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Kinokopya ang rank'th pixel value" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solarize" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Baliktarin lahat ng mga pixel value sa labas ng threshold" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Treshold" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Putulin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Paikutin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "Baliktarin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "Ang pagbagagong lossless JPEG ay hindi gumagana sa larawang %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Pagbabago" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Angulo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "Panatilihin ang Timestamp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Mga Puna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Pagbabago " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Angulo " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Direksyon " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "Lossless JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Putulin ang larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Palawakin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Baliktarin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Pagbaliktarin ang mga kulay ng larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Geotag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "GPS Data (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "GPS Report (csv)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Lalim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Karaniwan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Kinokopya ang mga pinakakaraniwang pixel value" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Pinakamaliit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Kinokopya ang pinakamaliit na pixel value" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Pananaw" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "I-save ang mga Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Isa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Burahin ang mga Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Burahin ang mga Exif o Iptc tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Pinakamalaki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Kinokopya ang pinakamalaking pixel value" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Katingkaran" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Ayusin ang katingkaran mula grayscale pataas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Palitan ng Pangalan ang Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "Palitan ang pangalan ng tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "Mula (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "Tungong (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Liwanag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Ayusin ang liwanag mula itim hanggang puti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Imagemagick" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Kulay ng Hangganan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "Gawing isang guhit na grayscale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "Dami ng mga Detalye" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "Geek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Talaan ng mga aksyon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Walang aksyon na ibinigay." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Mga landas patungo sa mga larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Nais niyo bang magpatuloy?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Ano na ang nais ninyong gawin?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "new" #~ msgstr "bago" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-bit pixels, kulay pang-video)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-bit pixels, tunay na kulay)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8-bit pixels, inimapang mga kulay)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-bit pixels, pinaghiwa-hiwalay na kulay)" #~ msgid "doesn't exist" #~ msgstr "hindi umiiral" #~ msgid "for integer" #~ msgstr "para integer" #~ msgid "for float" #~ msgstr "para float" #~ msgid "is zero, but should be non-zero." #~ msgstr "ay sero ngunit hindi dapat sero." #~ msgid "Colour" #~ msgstr "Kulay" #~ msgid "Height" #~ msgstr "Taas" #~ msgid "Width" #~ msgstr "Lapad" #~ msgid "for boolean" #~ msgstr "para boolean" #~ msgid "does not exist." #~ msgstr "hindi umiiral" #~ msgid "is invalid." #~ msgstr "ay hindi maaari." #~ msgid "please email" #~ msgstr "magpadala ng emai" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "dahil mag-isang gagawin ng Phatch ang user interface." #~ msgid "&Default Types" #~ msgstr "&Default Type" #~ msgid "Open a python shell for introspection" #~ msgstr "Magbukas ng python shell para sa malalim na pagsusuri" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Python Shell...\tCtrl-P" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Web&site...\tCtrl-I" #~ msgid "Force Background Colour" #~ msgstr "Ipilit ang Kulay sa Likuran" #~ msgid "Shadow Colour" #~ msgstr "Kulay ng Anino" #~ msgid "All default image types" #~ msgstr "Lahat ng mga default type na larawan" #~ msgid "Background Colour" #~ msgstr "Kulay sa Likuran" #~ msgid "All selected image types" #~ msgstr "Lahat ng mga larawan ng nasabing klase" #~ msgid "Phatch Version" #~ msgstr "Bersyon ng Phatch" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "(&W)Sumulat ng Kilos Plugin...\tCtrl-W" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Magsulat ng bagong kilos plugin para sa Phatch gamit ang PIL." #~ msgid "By offset" #~ msgstr "Ayon sa layo" #~ msgid "&Ignore Error" #~ msgstr "Huwag Pans&inin ang Pagkakamali" #~ msgid "&File" #~ msgstr "&File" #~ msgid "Filename" #~ msgstr "Pangalan ng File" #~ msgid "Save an image" #~ msgstr "Ikubli ang larawan" #~ msgid "is negative, but should be positive" #~ msgstr "ay negatibo ngunit dapat ay positibo" #~ msgid "&Skip To Next Image" #~ msgstr "Humakbang Tungo sa &Susunod na Larawan" #~ msgid "Create missing folders" #~ msgstr "Likhain ang mga folder na hindi natagpuan" phatch-0.2.7/locale/fr/0000755000000000000000000000000011346363116014577 5ustar rootroot00000000000000phatch-0.2.7/locale/fr/LC_MESSAGES/0000755000000000000000000000000011346363116016364 5ustar rootroot00000000000000phatch-0.2.7/locale/fr/LC_MESSAGES/phatch.mo0000644000000000000000000012511511346363116020175 0ustar rootroot00000000000000T*888&8C9U9d9 u999 99999 9 99:::%:@:X: i:u:::::::::; ;;$;C;_; };; ; ;;;;; ;;;; <!<)< B<c<j< <<<<<< <3<== = =&=*= 2=%@=!f=(==== = == >>(/>'X>>>>>>>>&?+?31?9e???@?*?.@2E@x@@ @ @ @@@ @&A*A/A5A;ACA[A `A"lA"AAA A AAA AA BB'B ;BFB MB WBeB lB vBB'BB6BB C C C-C5CM.SM MMM M M MM)MMN:NUN lN0zNNN.NO$O,O 5O ?OKOZO'aOO OOOO&OO,O P %P/P @P JPTP\P`P {P9PP PQ QQQ,Q%4QZQ^QeQmQvQ}QQQQQQQ*QQ QQR$R=R"ZR}RRRRRRRR"RRRSSS ;SHS.\SSS SSS.S TT T%T ATbT gT uT"T*T8T(U;1U7mU6UUUV>VWVkVVVV V&VV V!W$W :W1[WWWW*W WWWWX2X 9X DXQX kX yXXXXX X XXXX X Y YY2Y8Y@Y[Y`Y'xY YYYYYYYZ+Z1Z AZNZ!_ZZZZZ ZZZ ZZ [[ [ #[0[8[G[V[ j[w[[['[#[ [$\,\L\_\d\k\r\ {\ \\D\7]>@]"]]1]]]]] ^^ ^=^D^]^n^r^^^^^H^E_#d__+_3_``A```a'a9a=aFa Va`aqa'aaa)a a a bbb"b*b"0bSbkbbbbbb b2b!c&c.c4c |3|'}#@}d} m}3w}}} } }}%} ~~0~ H~ S~!^~ ~~ ~ ~~/~(~!8 Q_>h9-&'N(D)nt 6fNW`&ׂ  3J_sz 'փE Pjs $؄$ "2 R_ vE.,@FZl |8 ȆD3RAd#'ʇA4 JX` it8!Lj . ;1Fx  ‰"ʉF-Dr 6݊0#+:CJRZbhm+s./,44a)͌܌ 75; Ta(h? !-46S%Վ &)-P@~'9G!:iАN; R1s -Ñ ,=%T:z ƒ#Β !'Gfoœ ֓#4 P\c ޔ "74 lw ~!%(ҕ!<K^w=˖$Ԗ & 6W r} —ԗ:Y)i,-Ԙ(+?F N Y*c J:CA,5&/C#Z~ ֛ H/Nx.ǜ 3>K>>X/%<#Pt" ͟؟ޟ."&Ah(& נ> V bmt{ġס40 PZ`q (̢4M2ELƣj;~¤ʤϤ ޤ !)26Lck)q  ťѥإ"4=BJSel~æʦ!Ѧ  +:>[ am$t!çҧ  (/6> FSZ `m(v#9è6?4<t ǩԩ٩ ީ"'BI swuF:LgjP P6i'DRy3/pcWc>|8@C.%R /qLMg#qn0}3 m$F2~+>47 +Bni!Y- w.TSGI|8l&{K91TX "][coI>Vd @HM^u5Fz]:Z`eRE?!X_ly^e2*O)V`Nkp?GB%%T\Jzyvm3 bt5UPJ{HYB)xh6 1,;po^-U <a(CH.Oh$hD[6ffK;A+K_])<JSN0&0Z*bZtuQgS`4zQr9b (=,<rsm'" V?j7!\k_@;nCvi |dLAdeWWIkGwU5E"~ *OA8o:ExrM4q#v },{QfX &'$-D#l1}Y=2=aa~/(7x9[N\jt s"%s" can not be found."%s" is not a valid path.%(amount)d images done in %(duration)s%(mode)s has been converted to %(mode_copy)s to save as %(format)s.%(name)s Shell%(name)s actions%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List&Action List Droplet...&Add&Add Tag&Add... Ctrl-+&All Types&Ask for Help&Batch&Browse Library&Cancel&Close&Collapse All Ctrl-Shift-E&Collapse Automatically&Continue Anyway&Copy Value&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Fonts&Forum... Ctrl-F&Help&Image Inspector (exif) Ctrl-I&Image Inspector Droplet...&Insert Tag in Action List...&Inspect...&License&New Ctrl-N&No Types&OK&Open...&Open... Ctrl-O&Phatch&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Select&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&Update&User&View&Website... Ctrl-W3D Edge3D ObjectsA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd TagAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAll readable and writable typesAll readable typesAll selected typesAllow Geek action and unsafe expressionsAlso check if your hard disk not full. Always save on desktopAmountAngleAngle Apply a transparency highlightApply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilAre you sure you want to delete this tag from "%s"?Are you sure you want to delete this tag from all images?ArtworkAsAs an example try out the polaroid action list from the library.Associate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastAutomatic (use exif orientation)BackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlenderBlender %s is required.BlurBlur RadiusBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBorder WidthBothBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse %sBrowse FolderBulletBy OffsetC&ontinueC&reditsCMYK (4x8-bit pixels, color separation)CameraCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthCaptionCenterChangeCharcoalCharcoal RadiusCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletClipboardCodeColorColor ValueColor to AlphaColorizeColorize grayscale imageColumnsCommandCommand did not produce an output image: %sCommentsCommonConstrain ProportionsContourContour ColorContrastContrast FactorContrast TresholdConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCopy the original imageCould not open image with %s.CreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDe&veloper Documentation... Ctrl-PDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDetails DegreeDirectionDirection Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDoneDouble click to open or right click for more options.DownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDraw border inside or outsideDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEasily batch process images and edit metadataEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorError: wxPython %(recommended)s (or at least %(minimal)s) can not be found, but is required.ExamplesExecuteExecute external commandExecute the actionExecute the action listExecuting action listExpandExplorerFalseFebruaryFileFile NameFile(s)Fill ColorFill FolderFill ImageFill TypeFilterFitFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsFor more information see the tutorials (Help>Documentation)Force Background ColorFridayFrom (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GradientGrayscaleGrayscale (8-bit pixels)HighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage SizeImage pathsImagemagickImagesImpossible to load data from action list.Impossible to write tag "%s"InIn Phatch you need to open or create an action list first.Include all subfoldersInclude imageInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJanuaryJulyJuneKeep existing images (don't overwrite)LabelLearn to develop Phatch with Python and PIL.LeftLeft PageLeft Shear AngleLetterboxLibrariesLicenseLogLook up exif and iptc tagsLossless JPEGLossless JPEG transformation does not work on a %s image:Make selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMaximum one parameter "%s" is allowedMayMedianMessageMetadataMethodMiddleMinimumMinutesMirrorMistModeMondayMonochrome (1-bit pixels, black and white)MonthsMotion BlurMove the selected action downMove the selected action upNo action list provided.No files or folder selected.No save action required at the endNoneNormalNothing has been logged yet.Nothing to do.NovemberObjectOctoberOffsetOffset by distance and wrap aroundOneOne image done in %sOpacityOpenOpen &Library... Ctrl-Shift-OOpen &RecentOpen an action listOpens a ready-made actionlist from the libraryOpens an actions listOptionsOrientationOutputOverwrite existing imagesP (8-bit pixels, mapped using a color palette)PNG OptimizePaintPaint RadiusParameter "%s.*" is missingPaste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch will generate the user interface automatically.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please check if this action list doesn't contain harmful code.Please delete "%s".Please install "%s" first.Please upgrade your wxPython.PolaroidPositionPosterizeProcess with recent Phatch action listProgram VersionProjectionPut color under transparent imageQuit the application.RGB (3x8-bit pixels, true color)RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReady!Reduce the number of bits of color channelReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename the original imageRender HeightRender WidthRepeatReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRightRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save last changes toSaves an action listSaves an action list asScaleScale Down OnlyScale MethodScale ReflectionScan for new fonts on your systemSecondsSee "%s" for more details.SelectSelect Color BySelect ObjectSelect Rotation for %sSelect action listSelectionSeparateSeptemberShadowShadow BlurShadow ColorSharpenSharpen RadiusShear 2d or 3dShow &Log... Ctrl-LShow &ReportShow &Report... Ctrl+RShow Advanced OptionsShow LogShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.Show report of processed imagesSigmoidal ContrastSizeSketchSliderSolarizeSorry, "%s" is not a valid path.Sorry, %s.Sorry, no valid files foundSorry, the action list seems incompatible with %(name)s %(version)s.Sorry, you have the wrong version of Blender installed.Sorry, you need to install the %s action for this action list.Sorry, your settings seem corrupt.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStarsStart a new action listStop for errorsStringStudy the action plugins in:SundaySymmetrical tile textureTIFF CompressionTagTag "%s" is not writable.Tag "%s" is read only.Tag exists alreadyTextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.The droplet command for this action list was copied to the clipboard.The following name(s) are invalid: There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This application is known to be compatible with wxPython version(s) %(recommended)s (or at least %(minimal)s), but you have %(version)s installed.This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTo (Exif, Iptc)Tools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTransform to a grayscale pencil drawingTransformationTransformation Translate Phatch in your native language.TranslationTransparentTransposeTresholdTrueTuesdayTypesUnable extract variables from fileUnable to change label.Unable to delete tag <%s>Unable to open fileUnable to rename tag <%s>Unable to save tag <%s>Unsaved Action ListUpUpdate JPEGUse the Image Inspector to list all the variables.UserUtilityValueVerboseVerify InputVerify OutputVerticalVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWaveWave HeightWave LengthWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite text at a given positionYearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,You only need to know PIL to write a plugin for Phatch.a filename with a valid extension was expectedabortactionsallantialiasapplicationaspectautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcan not be emptycenterchoiceclick '+' to add actionscolorcompressioncontourdaydecimaldefaultdesktopdetaildpidrag & drop any images hereedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframegammaheighthourignoreimagesintegerinvalid syntax "%s" for integerleftmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnoneorientationpathplease email: please install pyexiv2pluginpositive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth moresourcestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existthe float value "%s" is negative, but should be positivethe float value "%s" is zero, but should be non-zerothe integer value "%s" is negative, but should be positivethe integer value "%s" is zero, but should be non-zerotoptransformtransparencytruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-03-10 00:36+0000 Last-Translator: kompilesoft Language-Team: nightlybuild MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) Impossible de trouver "%s"."%s" n'est pas un chemin valide%(amount)d images traitées en %(duration)s%(mode)s a été convertie en %(mode_copy)s et sauvegarder en %(format)s.%(name)s Shell%(name)s actions%s Récent&Abandonner&À Propos de Phatch... Ctrl-Shift-AListe d'actionsDroplet de liste d'action...Ajou&ter&Ajouter un tag&Ajouter... Ctrl-+&Tous les formats&Demander de l'aide&Lot&Parcourir la bibliothèqueAnnu&ler&Quitter&Plier Tout Ctrl-Shift-E&Replier Automatiquement&Continuer quand même&Copier la valeur&Désactiver Ctrl-0&Documentation... Ctrl-M&Bas Ctrl-Down&Droplet Ctrl-D&ÉditerActiv&er Ctrl-1&Exécutez... Ctrl-ReturnTout développer Ctrl-E&Exporter&Polices&Forum... Ctrl-F&Aide&Analyseur d'image (exif) Ctrl-I&Appliquette d'inspection d'images...&Insérer un tag dasn la Liste d'Actions...&Analyse...&Licence&Nouveau Ctrl-N&Aucun format&Ok&Ouvrir...&Ouvrir... Ctrl-O&Phatch&Quitter Ctrl-QAppliquette &Récente...Enleve&r Ctrl--&Signaler un bug... Ctrl-BEnregi&strer Ctrl-S&SélectionnerVoir la de&scription Ctrl-H&Affiche le modèle pour le module actionOu&tils&Traduire Phatch... Ctrl-THaut Ctrl-Up&Actualiser&UtilisateurAfficha&ge&Site Web... Ctrl-WBord 3DObjets 3DUn tutoriel HTML va s'ouvrir et s'afficher dans votre navigateur webÀ propos deActionListes d'actionsListe d'actionsAjouterAjouter une étiquetteAjouter une actionAjuster la clarté depuis le noir et blancAjuster du vert vers le noir et blancAjuster la saturation du niveau de gris vers le hautAlignement horizontalAlignement verticalTousTous les FichiersTous fichiersTous les formats lisibles et enregistrablesTous les formats lisiblesTous les formats sélectionnésPermettre action Geek et expressions non sécuritairesVérifiez également que votre disque dur n'est pas plein. Toujours sauvegarder sur le bureauQuantitéAngleAngle Appliquer une brillance transparenteApplique un masque de transparenceAppliquer aux futures erreurs Appliquer avec tiling, l'échelle et l'opacitéAvrilEtes-vous sûr de vouloir supprimer ce tag de "%s"?Etes-vous sûr de vouloir supprimer ce tag de toutes les images?GraphismeTypeComme exemple, veuillez essayer la liste d'actions Polaroïd de la bibliothèque.Associer les Images avec la Liste d'Action dans %s....Associer les Images avec l'Inspecteur d'Image dans %s...Associer les Images avec les Listes d'Action Récentes dans %s....AoûtAutoContraste automatiqueAutomatique (Utiliser l'orientation EXIF)Arrière-planCouleur du fondOpacité de l'arrière-planTraiter en lot les images avec PhatchTraiter un lot avec les listes d'action récentesOctetsNoirDépassement dans la margeBlenderBlender %s est requis.FlouRayon du flouFlou, Polaroid, Ombre, Accentuation...Flouter, Durcir, Estamper, Adoucir, ...BooléenBordCouleur de la bordureLargeur de la bordureLes deuxBasEn bas à gaucheCoin en bas à gaucheEn bas à droiteCoin en bas à droiteFacteur (coefficient) de coupe du basLuminositéRechercherParcourir %sParcourir le dossierPucePar Offset&ContinuerC&réditsCMJN (4x8-bit pixels, separation des couleurs)Appareil photoImpossible d'appliquer l'action %(a)s sur l'image '%(i)s' dans le dossier:impossible de réaliser l'action %(a)s:ToileHauteur du canevaslargeur du canevasLégendeCentrerChangerFusainRayon du fusainVérifier les images en premierVérification des imagesChoixSéléctionnez un ou plusieurs fichiersChoisir un dossierChoisir une liste d'actions...Choisir une imageChoisissez un dossier d'imagesChosir le dossier pour l'icone de traitementPresse-papiersCodeCouleurValeur de la couleurCouleur vers alphaColorierColorier une image en niveaux de grisColonnesCommandeLa commande suivante n'a pas produit de fichier: %sCommentairesCommunConserver les proportionsContourCouleur de contourContrasteFacteur de contrasteSeuil de contrasteMode de conversionConvertir le mode couleur d'une imageCopiez la valeur maximum du pixelCopiez la valeur du pixel médianCopiez la valeur du pixel minimumCopie la valeur de pixel la plus couranteCopiez la valeur de rang du pixelCopierCopier la liste d'actions comme &Commande vers le Presse PapierCopier I&nspecteur d'Image comme Instruction sur la PlanchetteCopier R&écent comme Instruction sur la PlanchetteCopier l'image originaleImpossible d'ouvrir l'image sans %sCréditsDécouperMassicoter et étendre la toile sans redimensionnerDécouper l'imageCroixPersonaliséRaccourcirJoursDocumentation De&velopppeur... Ctrl-PDécembreSupprimer les tag Exif ou IptcSupprimer des libellésProfondeurDésaturerDécrivez la liste d'actions ici.DescriptionNiveau de détailDirectionDirection Désactiver l'actionAffiche les informations sur cette application.Ne pas vérifier les images initialementVoulez vous continuer?Voulez-vous l'écraser ?DocumentationTerminéDouble cliquer pour ouvrir ou clique droit pour plus d'optionsEn basréduire et massicoter une image d'après un rapport fixeGlisser-déposerDessiner un contour autour du bord de l'imageDessiner les contours dedans ou dehorsDéplacez les fichiers ou les dossiers sur le droplet de Phatch pour les traiter par lot. Cliquez-droit ou double-cliquez pout revenir à la vue standard.Ajouter une ombre estompée à une photoLancer une réflectionTraiter par lots les images et modifier les métadonnées facilementEffetActiver l'actionEntrer une URL de l'imageÉgaliserEgaliser (mettre au même niveau) l'histogramme imageErreurErreur : wxPython %(recommended)s (ou au moins %(minimal)s) n'est pas installé, mais est nécessaire.ExemplesExecuterExécuter une commande externeExecuter l'actionExécuter la liste des actionsListe d'actions en cours de traitementÉtendreExplorateurFauxFévrierFichierNom du FichierFichier(s)Couleur de remplissageDossier de remplissageImage de remplissageType de remplissageFiltreRemplirRetournerMiroir verticalMiroir HorizontalInverser ou faire tourner de 90 degrésNombre en virgule flottanteDossierPolicesPolicesPour plus d'informations, voyez les didacticiels (Aide>Documentation)Forcer la couleur de fondVendrediDe (Exif, IPTC)Données GPS (gpx)Rapport GPS (csv)intervalleConsulter la documentation de PhatchAller dans le forum PhatchAller à la page d'accueil de PhatchDégradéNiveaux de grisNiveaux de gris (pixels 8-bits)SurbrillanceSuper, pas de soucis !HorizontalJustification horizontaleDécalage horizontalHeuresSi vous redémarrez %s, la tâche apparaîtra dans le menu contextuelSi vous voulez proposer un module pour Phatch,Ignorer les erreursImageInspecteur d'ImagesTaille de l'imageChemins d'ImageImagemagickImagesImpossible de charger les données de la liste d'actionsImpossible d'écrire le tag "%s"DansEn Phatch vous devez ouvrir ou créer une liste d'action avant tout.Inclure tous les sous-dossiersInclure une imageInitialiser les polices (seulement pour le script d'installation)Inspecter les données EXIF et IPTCInspecter les libellés EXIF & IPTCInspecter les métadonnées (nécessite les greffons exif & iptc)Inspecter avec PhatchNombre entierEntier+Entier+0InteractifImages invalidesInverserInverser la valeur de tous les pixels au dessus du seuilInverser les couleurs d'une imageQualité JPEGJanvierJuilletJuinGarder les images existantes (ne pas écraser)ÉtiquetteApprendre à developper Phatch avec Python et PILGauchePage gaucheAngle de coupe gaucheLetterboxBibliothèquesLicenceJournalchercher les données EXIF et IPTCJPEG sans PerteLa transformation JPEG sans perte ne fonctionne pas sur une image %s :Rendre transparente la couleur sélectionnéeAgrandir ou réduire l'imageMarsÉtiquetteMasqueMaximiser (mettre au maximun) le constraste de l'imageMaximumAu maximum un seul paramètre "%s" est autoriséMaiMédianeMessageMéta-donnéesMéthodeMilieuMinimumMinutesMirroirBrumeModeLundiMonochrome (1-bit par pixel, noir et blanc)MoisFlou de mouvementDéplacer l'action séléctionnée vers le basDéplacer l'action séléctionnée vers le hautAucune liste d'actions fournieAucun fichier ou dossier n'est sélectionnéAucun enregistrement nécessaire en fin de processusAucunNormalRien n'a été enregistré pour l'instantRien à faire.NovembreObjetOctobreDécalageDécaler par une distance et reporter de l'autre côtéUn(e)Une image modifié en %sTransparenceOuvrirOuvrir la &bibliothèque... Ctrl-Shift-O&Récemment ouvertOuvrir une liste d'actionsOuvre une liste d'actions préconfigurée dans la bibliothèqueOuvre une liste d'actionsOptionsOrientationSortieÉcraser les images existantesP (8-bit pixels, Indexation selon palette chromatique)Optimiser les PNGPeindreRayon de peintureIl manque le paramètre "%s.*"Coller cette commande dans le lanceurChemin d'accèsCroquis au crayonPerspectivePhatch ne peut pas gérer %d image(s):Phatch n'a pas pu installer l'action dans %s:Phatch n'a pas réussi à installed la fonctionalité demandée.Phatch a creé le droplet avec succès.Phatch a essayé de se désinstaller de Windows Explorer.Phatch en ajoutera une pour vous, merci de vérifier ses paramétrages.Phatch générera l'interface utilisateur automatiquement.Phatch avec %sTraitement de photos par lotMerci de le (ré)installer.Merci de vérifier que cette liste d'action ne contient pas de code malfaisantVeuillez effacer "%s".Veuillez installer "%s" d'abord.Merci de mettre à jour votre version de wxPythonPolaroidPositionPostérizerTraiter avec la list d'action récente PhatchVersion du logicielProjectionMettre la couleurs sous l'image transparenteQuitter l'application.RVB (3x8-bit pixels, couleurs vraies)RGBA (4x8-bits par pixel, RGB avec masque de transparence)RayonClassementPrêt !Réduit le nombre de bit des canauxRéflexionEnleverSupprimer l'Association de %s....Enlever l'action sélectionnéeEfface l'action sélectionnéeRenommerRenommer le libelléRenommer un libelléRenommer l'image originaleHauteur du renduLargeur du renduRépéterRapporter une erreur sur launchpad.Ré-échantillonnageRééchantillonner l'imageRééchantilloner le masqueRésolutionDroiteFacteur de coupe de droiteTournerRotation de 180°Rotation de 270°Rotation de 90°Tourner avec un angle aléatoireArrondirArrondiCoins arrondis ou en croixLignesLancer %s sous forme d'appliquetteLancer %s en ligne de commande sans interface graphiqueSaturationSamediSauvegarderEnregistrer &sous... Ctrl-Shift-SEnregistrer la liste d'action sous...Sauvegarder les derniers changement versEnregistre une liste d'actionsEnregistre la liste d'action sousRedimensionnerRéduit uniquementMéthode d'interpolationEchelle de ReflectionRecherche de nouvelles polices installées sur votre systèmeSecondesRegardez "%s" pour plus de détails.SélectionnerSélectionner la couleur selonSelectionner unSelectionnez la Rotation pour %sChoisir la liste d'actionsSélectionSéparerSeptembreOmbreOmbre estompéeCouleur de l'ombreNettetéRayon de NettetéCouper en 2d ou 3dVoir les &journaux... Ctrl-LAfficher le &RapportAffichier le &Rapport... Ctrl+RAfficher les options avancéesVoir le JournalAffiche tous les paramètres des actions.Affiche la description de la liste d'actionsAfficher le journalAfficher les intitulés d'actions uniquement.Afficher le rapport des images traitéesContraste sigmoidalTailleCroquisGlissièreSolariserDésolé, "%s" n'est pas un chemin valide.Désolé, %s.Désolé, aucun fichier valideDésolé, la liste d'action semble incompatible avec %(name)s %(version)s.Désolé, la version installée de Blender n'est pas bonneDésolé, il faut installer l'action %s pour cette liste d'actions.Désolé, vos paramètres semblent corrompusSourceSpécifier la langue locale (par example fr ou fr_FR)SponsorsCarréÉtoilesDémarrer une nouvelle liste d'actionsArrêt pour erreursChaîne de caractèresÉtudie les modules d'actions dans:DimancheTexture symétriqueCompression TIFFLibelléLe tag "%s" n'est pas modifiableLe tag "%s" est en lecture seuleCe tag existe déjàTexteLa liste d'actions est vide.L'instruction pour l'inspecteur des images est copié sur la planchette.La commande appuyette de cette liste d'actions est copiée sur la planchette..Le(s) nom(s) suivant(s) est[sont] invalides : Il n'y a aucune action activée.Il doit y avoir une action 'Enregistrer' à la fin.Les extensions suivantes ont été installées avec succés: Cette application est connue pour être compatible avec les versions %(recommended)s de wxPython (ou au minimum %(minimal)s), mais vous ne disposez que de la version %(version)s.Ce fichier existe déjà.Ceci nécessite que le package python-nautilus soit installé.JeudiTuileVers (Exif, IPTC)Outils pour manipuler la liste d'action en courHautEn haut à gaucheCoin en haut à gaucheEn haut à droiteCoin en haut à droiteAngle de coupe hautTransforme en dessin crayonné grisTransformationTransformation Traduire Phatch dans votre langue.TraductionTransparentTransposerSeuilVraiMardiTypesImpossible d'extraire les variables du fichierImpossible de changer le libellé.Impossible d'effacer l'étiquette <%s>Impossible d'ouvrir le fichierImpossible de renommer l'étiquette <%s>Impossible de sauver l'étiquette <%s>Liste d'actions non sauvegardéeEn hautMettre à jour le JPEGUtilisez l'inpecteur d'image pour lister toutes les variables.UtilisateurUtilitaireValeurBavardVérifiez l'EntréeVérifiez la SortieVerticalJustification verticaleDécalage verticalAfficher la SourceVoir en tant que droplet pour déplacer des fichiersAttention: python-wxversion n'est pas installé filigraneVagueHauteur de vagueLongueur de vagueMercrediQue voulez vous faire maintenantBlancÉcrire un module ActionEcrire un texte à une position donnéeeAnnéesVous ne pouvez utiliser que les extensions suivantesVous pouvez le coller comme texte dans les propriétés d'un nouveau lanceur.Vous devez installer les extensions win32 python pour cette fonction.Vous n'avez besoin que de connaître PIL pour écrire un plugin pour Phatch,Vous avez simplement besoin de connaître PIL pour écrire un module complémentaire (plugin) pour Phatch.un nom de fichier avec une extension valide était attendueAbandonactionstousanticrénelageapplicationaspectautomatiquearrière planbicubiquebilinéaireflouterbooléenbasélargir la recherchene peut pas être videcentréchoixcliquez sur '+' pour ajouter des actionscouleurcompressioncontourjourdécimalpar défautbureaudétailpppglisser et déposer des images iciValoriser les bordsValoriser plus les bordsEstamperfauxfichierfilenameTaille de fichierfiltretrouver les bordsflottantdossierNom de dossierfenêtregammahauteurheureignorerimagesentiersyntaxe invalide "%s" pour entiergauchemétadonnéesmileuminutemodemoisNom de moisle plus prochenonpas d'étiquette %s trouvéeaucunorientationcheminMerci de nous contacter par email : Installer pyexiv2 s'il vous plaitgreffonentier positifentier positif non nulpyexiv2 doit être installérésolutiondroiteracineSecondeDurcirtailleignoreradouciradoucir plussourcetextesous-dossierlibelléL'extension de fichier "%s" est invalideLe nom de fichier "%s" n'existe pasla valeur "%s" est négative, mais devrait être positiveLa valeur "%s" est nulle, mais devrait être non-nullela valeur entière "%s" est négative, mais doit être positivela valeur entière "%s" est nulle, mais doit être non nulleau dessustransformertransparencevraitypeavertissementjour de la semaineNom de Jours de la semainelargeuravecErreur de version wxPythonannéeouiphatch-0.2.7/locale/fr/LC_MESSAGES/phatch.po0000644000000000000000000036073111346363116020205 0ustar rootroot00000000000000# French translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-03-10 00:36+0000\n" "Last-Translator: kompilesoft \n" "Language-Team: nightlybuild \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Inspecter avec Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Inspecter les données EXIF et IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Exemples" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Lancer %s en ligne de commande sans interface graphique" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Lancer %s sous forme d'appliquette" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Toujours sauvegarder sur le bureau" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignorer les erreurs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Initialiser les polices (seulement pour le script d'installation)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interactif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Garder les images existantes (ne pas écraser)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Spécifier la langue locale (par example fr ou fr_FR)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Inspecter les métadonnées (nécessite les greffons exif & iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Aucun enregistrement nécessaire en fin de processus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Inclure tous les sous-dossiers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Ne pas vérifier les images initialement" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "Permettre action Geek et expressions non sécuritaires" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Bavard" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" "Vous pouvez le coller comme texte dans les propriétés d'un nouveau lanceur." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Désolé, il faut installer l'action %s pour cette liste d'actions." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" "La commande appuyette de cette liste d'actions est copiée sur la planchette.." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "L'instruction pour l'inspecteur des images est copié sur la planchette." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "En Phatch vous devez ouvrir ou créer une liste d'action avant tout." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" "Comme exemple, veuillez essayer la liste d'actions Polaroïd de la " "bibliothèque." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" "Pour plus d'informations, voyez les didacticiels (Aide>Documentation)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "Super, pas de soucis !" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Rien n'a été enregistré pour l'instant" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Journal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "Abandon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "ignorer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignorer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "cliquez sur '+' pour ajouter des actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "&Récemment ouvert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Ouvrir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Ouvrir une liste d'actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Executer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Executer l'action" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Ajouter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Ajouter une action" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Enlever" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Enlever l'action sélectionnée" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "En haut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Déplacer l'action séléctionnée vers le haut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "En bas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Déplacer l'action séléctionnée vers le bas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Inspecteur d'Images" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "chercher les données EXIF et IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Description" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Affiche la description de la liste d'actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Choisir une liste d'actions..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Enregistrer la liste d'action sous..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Ce fichier existe déjà." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Voulez-vous l'écraser ?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "%(name)s actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "%(name)s Shell" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "application" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "fenêtre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Un tutoriel HTML va s'ouvrir et s'afficher dans votre navigateur web" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" "Vous avez simplement besoin de connaître PIL pour écrire un module " "complémentaire (plugin) pour Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "Phatch générera l'interface utilisateur automatiquement." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Étudie les modules d'actions dans:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Si vous voulez proposer un module pour Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "Merci de nous contacter par email : " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "Désolé, \"%s\" n'est pas un chemin valide." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Glisser-déposer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Déplacez les fichiers ou les dossiers sur le droplet de Phatch\n" "pour les traiter par lot.\n" "Cliquez-droit ou double-cliquez pout revenir à la vue standard." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" "Phatch en ajoutera une pour vous, merci de vérifier ses paramétrages." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Sauvegarder les derniers changement vers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Chosir le dossier pour l'icone de traitement" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch a creé le droplet avec succès." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "Impossible de charger les données de la liste d'actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Choisir la liste d'actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "Désolé, vos paramètres semblent corrompus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "Veuillez effacer \"%s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "Vérifiez également que votre disque dur n'est pas plein.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Choisir un dossier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Séléctionnez un ou plusieurs fichiers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Choisissez un dossier d'images" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "Tous les formats sélectionnés" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "Tous les formats lisibles et enregistrables" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "Tous les formats lisibles" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "images" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "&Tous les formats" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "&Aucun format" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "Presse-papiers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Rechercher" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "Parcourir %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Fichier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Dossier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "par défaut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Afficher la Source" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "élargir la recherche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Chemin d'accès" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Ouvrir..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "&Analyse..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "&Insérer un tag dasn la Liste d'Actions..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Nouveau\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Démarrer une nouvelle liste d'actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Ouvrir...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Ouvre une liste d'actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "Ouvrir la &bibliothèque...\tCtrl-Shift-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "Ouvre une liste d'actions préconfigurée dans la bibliothèque" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "Enregi&strer\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Enregistre une liste d'actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Enregistrer &sous...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Enregistre la liste d'action sous" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Copier la liste d'actions comme &Commande vers le Presse Papier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Coller cette commande dans le lanceur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Copier R&écent comme Instruction sur la Planchette" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Copier I&nspecteur d'Image comme Instruction sur la Planchette" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&Exporter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Quitter\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Quitter l'application." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "Liste d'actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Ajouter...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "Enleve&r\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Efface l'action sélectionnée" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "Activ&er\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Activer l'action" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Désactiver\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Désactiver l'action" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "Haut\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Bas\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Éditer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Droplet\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Voir en tant que droplet pour déplacer des fichiers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "Voir la de&scription\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Outils pour manipuler la liste d'action en cour" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "Tout développer\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Affiche tous les paramètres des actions." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Plier Tout\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Afficher les intitulés d'actions uniquement." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "&Replier Automatiquement" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "Afficha&ge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Exécutez...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Exécuter la liste des actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "&Analyseur d'image (exif)\tCtrl-I" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "&Utilisateur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "&Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "&Parcourir la bibliothèque" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "Affichier le &Rapport...\tCtrl+R" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "Afficher le rapport des images traitées" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Voir les &journaux...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Afficher le journal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "&Polices" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "Recherche de nouvelles polices installées sur votre système" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "&Actualiser" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "Ou&tils" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "&Site Web...\tCtrl-W" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Aller à la page d'accueil de Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Documentation...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Consulter la documentation de Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Aller dans le forum Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Traduire Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Traduire Phatch dans votre langue." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Signaler un bug...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Rapporter une erreur sur launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "Documentation De&velopppeur...\tCtrl-P" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "Apprendre à developper Phatch avec Python et PIL" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&À Propos de Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Affiche les informations sur cette application." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Aide" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "Terminé" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Voir le Journal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "Afficher le &Rapport" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "Prêt !" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "Double cliquer pour ouvrir ou clique droit pour plus d'options" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "Explorateur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" "Vous n'avez besoin que de connaître PIL pour écrire un plugin pour Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Affiche le modèle pour le module action" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Code" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Demander de l'aide" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&Ok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Écrire un module Action" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Appliquer aux futures erreurs " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Abandonner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Message" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Continuer quand même" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Options" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Types" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Parcourir le dossier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Source" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Fichier(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Arrêt pour erreurs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Vérifier les images en premier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Écraser les images existantes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "Annu&ler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Lot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Étiquette" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "libellé" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Booléen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Chaîne de caractères" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Choix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Couleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Résolution" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Nom du Fichier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "Dans" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Nombre en virgule flottante" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Type" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Mode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Ré-échantillonnage" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicubique" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Nombre entier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Entier+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Entier+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Glissière" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "pyexiv2 doit être installé" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" "%(mode)s a été convertie en %(mode_copy)s et sauvegarder en %(format)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Janvier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Février" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Mars" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "Avril" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Mai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Juin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Juillet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "Août" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Septembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Octobre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "Novembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "Décembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Lundi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Mardi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Mercredi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Jeudi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Vendredi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Samedi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Dimanche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "Impossible d'extraire les variables du fichier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "Le tag \"%s\" est en lecture seule" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "Impossible d'écrire le tag \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "Le tag \"%s\" n'est pas modifiable" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "arrière plan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "source" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "La commande suivante n'a pas produit de fichier: %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Tous" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Selectionner un" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "Centrer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Personalisé" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Milieu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Gauche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Droite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Haut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Bas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "En bas à gauche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "En bas à droite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "En haut à gauche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "En haut à droite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Position" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Décalage" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Décalage horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Décalage vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Justification horizontale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Justification verticale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "Par Offset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Tuile" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Redimensionner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Étiquette" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Transparence" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Méthode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Auto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "Traiter par lots les images et modifier les métadonnées facilement" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Traitement de photos par lot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Vrai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Faux" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "vrai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "faux" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Liste d'actions non sauvegardée" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Listes d'actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Tous les Fichiers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Décrivez la liste d'actions ici." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Il doit y avoir une action 'Enregistrer' à la fin." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "avec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s Récent" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Associer les Images avec la Liste d'Action dans %s...." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Associer les Images avec les Listes d'Action Récentes dans %s...." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Associer les Images avec l'Inspecteur d'Image dans %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Supprimer l'Association de %s...." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "Droplet de liste d'action..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "Appliquette &Récente..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "&Appliquette d'inspection d'images..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Traiter un lot avec les listes d'action récentes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Inspecter les libellés EXIF & IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "Regardez \"%s\" pour plus de détails." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" "Désolé, la liste d'action semble incompatible avec %(name)s %(version)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" "Merci de vérifier que cette liste d'action ne contient pas de code malfaisant" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "\"%s\" n'est pas un chemin valide" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Action" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Rien à faire." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "La liste d'actions est vide." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Il n'y a aucune action activée." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Vérification des images" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch ne peut pas gérer %d image(s):" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Images invalides" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Désolé, aucun fichier valide" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "&Continuer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Aucun fichier ou dossier n'est sélectionné" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Impossible d'ouvrir le fichier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "impossible de réaliser l'action %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" "Impossible d'appliquer l'action %(a)s sur l'image '%(i)s' dans le dossier:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Liste d'actions en cours de traitement" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Une image modifié en %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "%(amount)d images traitées en %(duration)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Sélectionner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "Impossible de changer le libellé." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "Impossible d'effacer l'étiquette <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "Impossible de renommer l'étiquette <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "Impossible de sauver l'étiquette <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "jour" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "bureau" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "Nom de dossier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "filename" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "Taille de fichier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "dossier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "heure" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minute" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "mois" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "Nom de mois" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "chemin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "racine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "Seconde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "sous-dossier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "type" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "jour de la semaine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "Nom de Jours de la semaine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "année" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "aspect" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "compression" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "ppp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "gamma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "hauteur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "mode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "largeur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "taille" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "transparence" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "orientation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Utilisez l'inpecteur d'image pour lister toutes les variables." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Vous ne pouvez utiliser que les extensions suivantes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "gauche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "centré" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "droite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "au dessus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "mileu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "bas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monochrome (1-bit par pixel, noir et blanc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "Niveaux de gris (pixels 8-bits)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "RVB (3x8-bit pixels, couleurs vraies)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bits par pixel, RGB avec masque de transparence)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "CMJN (4x8-bit pixels, separation des couleurs)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "P (8-bit pixels, Indexation selon palette chromatique)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "flouter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "contour" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "détail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "Valoriser les bords" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "Valoriser plus les bords" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "Estamper" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "trouver les bords" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "adoucir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "adoucir plus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "Durcir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "le plus proche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilinéaire" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "anticrénelage" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Rotation de 90°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Rotation de 180°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Rotation de 270°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Miroir vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Miroir Horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "aucun" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "ne peut pas être vide" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "syntaxe invalide \"%s\" pour entier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "texte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "entier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "entier positif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "la valeur entière \"%s\" est négative, mais doit être positive" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "entier positif non nul" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "la valeur entière \"%s\" est nulle, mais doit être non nulle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "résolution" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "flottant" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "la valeur \"%s\" est négative, mais devrait être positive" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "La valeur \"%s\" est nulle, mais devrait être non-nulle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "booléen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "choix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "L'extension de fichier \"%s\" est invalide" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "un nom de fichier avec une extension valide était attendue" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "Le nom de fichier \"%s\" n'existe pas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "Impossible de trouver \"%s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "Il manque le paramètre \"%s.*\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "Au maximum un seul paramètre \"%s\" est autorisé" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "automatique" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Aucun" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "Veuillez installer \"%s\" d'abord." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "Impossible d'ouvrir l'image sans %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Commande" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "Sortie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Erreur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "Le(s) nom(s) suivant(s) est[sont] invalides : " #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "&Sélectionner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Attention: python-wxversion n'est pas installé\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" "Erreur : wxPython %(recommended)s (ou au moins %(minimal)s) n'est pas " "installé, mais est nécessaire." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Merci de le (ré)installer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" "Cette application est connue pour être compatible avec les versions " "%(recommended)s de wxPython (ou au minimum %(minimal)s),\n" "mais vous ne disposez que de la version %(version)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Merci de mettre à jour votre version de wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Erreur de version wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "Version du logiciel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "C&rédits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licence" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Quitter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "À propos de" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Crédits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Documentation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Traduction" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Graphisme" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Bibliothèques" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Sponsors" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licence" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "Libellé" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Valeur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "avertissement" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "Ajouter une étiquette" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "tous" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "Etes-vous sûr de vouloir supprimer ce tag de \"%s\"?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "Etes-vous sûr de vouloir supprimer ce tag de toutes les images?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "Ce tag existe déjà" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Images" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Tous fichiers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "&Copier la valeur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "&Ajouter un tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "Désolé, %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Choisir une image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Entrer une URL de l'image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "glisser et déposer des images ici" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "Installer pyexiv2 s'il vous plait" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "pas d'étiquette %s trouvée" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "Ajou&ter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "décimal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "non" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "oui" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Sélection" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Polices" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Ombre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filtre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Ajouter une ombre estompée à une photo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Bord" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Ombre estompée" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Couleur du fond" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Couleur de l'ombre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "Forcer la couleur de fond" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "Letterbox" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "Séparer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "Page gauche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "Appareil photo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Arrière-plan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "Dégradé" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "Transparent" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "Étoiles" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "Brume" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "Blender" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "greffon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "Objets 3D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "Désolé, la version installée de Blender n'est pas bonne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "Blender %s est requis." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "Largeur du rendu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "Hauteur du rendu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "Objet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "Taille de l'image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "Selectionnez la Rotation pour %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Effet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Flouter, Durcir, Estamper, Adoucir, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filtre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Répéter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Quantité" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transformer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Décaler par une distance et reporter de l'autre côté" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Toile" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Massicoter et étendre la toile sans redimensionner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "largeur du canevas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Hauteur du canevas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Alignement horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Alignement vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Couleur vers alpha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "couleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Rendre transparente la couleur sélectionnée" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "Sélectionner la couleur selon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "Valeur de la couleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "filigrane" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Appliquer avec tiling, l'échelle et l'opacité" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Désaturer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Agrandir ou réduire l'image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Conserver les proportions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Rééchantillonner l'image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "Réduit uniquement" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Transposer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Inverser ou faire tourner de 90 degrés" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Colonnes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Lignes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "Les deux" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "Mirroir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "Texture symétrique" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Direction" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Renommer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "fichier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "Renommer l'image originale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Croix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Arrondi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Carré" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Arrondir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Coins arrondis ou en croix" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Rayon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Coin en haut à gauche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Coin en haut à droite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Coin en bas à gauche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Coin en bas à droite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Surbrillance" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "Appliquer une brillance transparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Mettre la couleurs sous l'image transparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Mode de conversion" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Convertir le mode couleur d'une image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Remplir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "réduire et massicoter une image d'après un rapport fixe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Dépassement dans la marge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Contraste automatique" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maximiser (mettre au maximun) le constraste de l'image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Raccourcir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Sauvegarder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "Optimiser les PNG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "Qualité JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "Compression TIFF" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Méta-données" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Médiane" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Copiez la valeur du pixel médian" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "métadonnées" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "Changer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Secondes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Minutes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Heures" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Jours" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Mois" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Années" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Masque" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Applique un masque de transparence" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Rééchantilloner le masque" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Texte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Ecrire un texte à une position donnéee" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Polices" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Taille" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Colorier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Colorier une image en niveaux de gris" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Noir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Blanc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Copier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "Copier l'image originale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Postérizer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "Réduit le nombre de bit des canaux" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Octets" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "Dessiner les contours dedans ou dehors" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "Largeur de la bordure" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Classement" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Copiez la valeur de rang du pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solariser" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Inverser la valeur de tous les pixels au dessus du seuil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Seuil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Égaliser" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Egaliser (mettre au même niveau) l'histogramme image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "Automatique (Utiliser l'orientation EXIF)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Découper" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Tourner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "Retourner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Niveaux de gris" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" "La transformation JPEG sans perte ne fonctionne pas sur une image %s :" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Transformation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Angle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Afficher les options avancées" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "Mettre à jour le JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Commentaires" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Transformation " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Angle " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Direction " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "Utilitaire" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "JPEG sans Perte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Découper l'image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "Type de remplissage" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "Image de remplissage" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "Dossier de remplissage" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Tourner avec un angle aléatoire" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Étendre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Opacité de l'arrière-plan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Inverser" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Inverser les couleurs d'une image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "Données GPS (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "Rapport GPS (csv)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Réflexion" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Lancer une réflection" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Profondeur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "intervalle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "Echelle de Reflection" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "Méthode d'interpolation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Commun" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Copie la valeur de pixel la plus courante" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Copiez la valeur du pixel minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Contour" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Dessiner un contour autour du bord de l'image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Couleur de contour" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Couleur de remplissage" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "Inclure une image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "Utilisateur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspective" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Couper en 2d ou 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "Projection" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Angle de coupe gauche" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Angle de coupe haut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Facteur (coefficient) de coupe du bas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Facteur de coupe de droite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Contraste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Ajuster du vert vers le noir et blanc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Un(e)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Supprimer des libellés" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Supprimer les tag Exif ou Iptc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maximum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Copiez la valeur maximum du pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Saturation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Ajuster la saturation du niveau de gris vers le haut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Renommer le libellé" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "Renommer un libellé" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "De (Exif, IPTC)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "Vers (Exif, IPTC)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Luminosité" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Ajuster la clarté depuis le noir et blanc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "Bord 3D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "Flou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "Puce" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "Fusain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "Flou de mouvement" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Croquis au crayon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "Peindre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "Netteté" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "Contraste sigmoidal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "Vague" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Imagemagick" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "Flou, Polaroid, Ombre, Accentuation..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Couleur de la bordure" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "Légende" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "Rayon du fusain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "Facteur de contraste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "Seuil de contraste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "Rayon du flou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "Rayon de peinture" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "Rayon de Netteté" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "Hauteur de vague" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "Longueur de vague" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Croquis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "Transforme en dessin crayonné gris" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "Niveau de détail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "Exécuter une commande externe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "Vérifiez l'Entrée" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "Vérifiez la Sortie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Les extensions suivantes ont été installées avec succés:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch n'a pas réussi à installed la fonctionalité demandée." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch a essayé de se désinstaller de Windows Explorer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "Vous devez installer les extensions win32 python pour cette fonction." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Liste d'actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Aucune liste d'actions fournie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Chemins d'Image" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Voulez vous continuer?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Que voulez vous faire maintenant" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Si vous redémarrez %s, la tâche apparaîtra dans le menu contextuel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch n'a pas pu installer l'action dans %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Ceci nécessite que le package python-nautilus soit installé." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Traiter en lot les images avec Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "Phatch avec %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Traiter avec la list d'action récente Phatch" #~ msgid "doesn't exist" #~ msgstr "n'existe pas" #~ msgid "is negative, but should be positive" #~ msgstr "est négatif, mais devrait être positif" #~ msgid "for boolean" #~ msgstr "pour booléen" #~ msgid "new" #~ msgstr "nouveau" #~ msgid "Colour" #~ msgstr "Couleur" #~ msgid "Filename" #~ msgstr "Nom de Fichier" #~ msgid "All selected image types" #~ msgstr "Tous les types d'images sélectionnés" #~ msgid "please email" #~ msgstr "veuillez envoyer un email à" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "comme Phatch génèrera automatiquement l'interface utilisateur." #~ msgid "Height" #~ msgstr "Hauteur" #~ msgid "Width" #~ msgstr "Largeur" #~ msgid "for integer" #~ msgstr "pour entier" #~ msgid "for float" #~ msgstr "pour flottant" #~ msgid "is zero, but should be non-zero." #~ msgstr "est nulle, mais ne devrait pas l'être." #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-bits par pixel, vraies couleurs)" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Echelle de gris (8-bits par pixel, noir et blanc)" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-bits par pixel, format vidéo couleur)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (pixels sur entier 32-bits)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (pixels sur 32-bits à virgule flottante)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8-bits par pixel, mappé en utilisant une palette de couleurs)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-bits par pixel, séparation des couleurs)" #~ msgid "All default image types" #~ msgstr "Tout les types d'images par défaut" #~ msgid "&File" #~ msgstr "&Fichier" #~ msgid "Open a python shell for introspection" #~ msgstr "Ouvrir une console python pour inspection" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Écrire un nouveau module action pour Phatch avec PIL." #~ msgid "&Ignore Error" #~ msgstr "&Ignorer l'erreur" #~ msgid "&Skip To Next Image" #~ msgstr "&Afficher l'image suivante" #~ msgid "Create missing folders" #~ msgstr "Créer les dossiers manquants" #~ msgid "&Default Types" #~ msgstr "&Types par défaut" #~ msgid "Phatch Version" #~ msgstr "Version de Phatch" #~ msgid "Background Colour" #~ msgstr "Couleur d'arrière-plan" #~ msgid "Force Background Colour" #~ msgstr "Imposer la couleur d'arrière-plan" #~ msgid "Shadow Colour" #~ msgstr "Couleur de l'ombre" #~ msgid "Save an image" #~ msgstr "Enregistrer une image" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "Shell &Python...\tCtrl-P" #~ msgid "By offset" #~ msgstr "Par déplacement" #~ msgid "does not exist." #~ msgstr "n'existe pas" #~ msgid "is invalid." #~ msgstr "est invalide" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "&Site web...\tCtrl-I" #~ msgid "colours" #~ msgstr "Couleurs" #~ msgid "border" #~ msgstr "bordure" #~ msgid "Put colour under transparent image" #~ msgstr "Mettre la couleur sous une image transparente" #~ msgid "Rename the image file" #~ msgstr "Renomer le fichier image" #~ msgid "Copy the image file" #~ msgstr "Copier le fichier image" #~ msgid "september" #~ msgstr "septembre" #~ msgid "october" #~ msgstr "octobre" #~ msgid "december" #~ msgstr "décembre" #~ msgid "may" #~ msgstr "mai" #~ msgid "june" #~ msgstr "juin" #~ msgid "july" #~ msgstr "juillet" #~ msgid "august" #~ msgstr "août" #~ msgid "friday" #~ msgstr "vendredi" #~ msgid "sunday" #~ msgstr "dimanche" #~ msgid "the file extension" #~ msgstr "Extension de fichier" #~ msgid "the filename" #~ msgstr "Le nom de fichier" #~ msgid "a filename with a valid extension was expected." #~ msgstr "Un nom de fichier avec un ne extension valide est attendue" #~ msgid "invalid syntax" #~ msgstr "Syntaxe invalide" #~ msgid "Save metadata" #~ msgstr "Sauvez les méta données" #~ msgid "Open image file" #~ msgstr "Ouvrir le fichier image" #~ msgid "&Preview" #~ msgstr "&Preview" #~ msgid "Open image url" #~ msgstr "Entrer une URL de l'image" #~ msgid "Crop or add border to all sides" #~ msgstr "massicoter ou ajouter des bordures à tous les côtés" #~ msgid "Fade all colours to gray" #~ msgstr "pâlir toutes les couleurs vers le gris" #~ msgid "watermark" #~ msgstr "Ajouter un filigrane" #~ msgid "the variable" #~ msgstr "la variable" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Cette liste d'actions a été faite avec une version %(name)s plus vieille.\n" #~ "\n" #~ msgid "drag & drop any image here" #~ msgstr "Glisser et Déposer n'importe quelle image ici" #~ msgid "Copy cell text" #~ msgstr "Copier le texte de la cellule" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Regardez les outils>Montrez le Log pour plus de details." #~ msgid "&Export..." #~ msgstr "&Exporter..." #~ msgid "invalid literal" #~ msgstr "Littéralement invalide" #~ msgid "&Recent" #~ msgstr "&Récent" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Enregistrer les métadonnées (nécessite les greffons exif & iptc)" #~ msgid "Scale down only" #~ msgstr "Uniquement réduire l'echelle" #~ msgid "thursday" #~ msgstr "Jeudi" #~ msgid "wednesday" #~ msgstr "Mercredi" #~ msgid "february" #~ msgstr "Février" #~ msgid "january" #~ msgstr "Janvier" #~ msgid "april" #~ msgstr "Avril" #~ msgid "march" #~ msgstr "Mars" #~ msgid "monday" #~ msgstr "Lundi" #~ msgid "tuesday" #~ msgstr "Mardi" #~ msgid "november" #~ msgstr "Novembre" #~ msgid "saturday" #~ msgstr "Samedi" #~ msgid "the float value" #~ msgstr "Valeur numérique à virgule" #~ msgid "the integer value" #~ msgstr "Valeur numérique entière" #~ msgid "Resample Shadow" #~ msgstr "Réechantilloner l'Ombre" #~ msgid "Only an image file is allowed." #~ msgstr "Seul les fichiers images sont permis" #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "PHoto bATCH Traiteur et Renomeur de lot" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "" #~ "L'instruction pour le droplet de cette liste d'actions est copiée sur la " #~ "planchette." #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch ne pouvait pas creér le droplet." #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "&Ajouter une action...\tCtrl-W" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Réduire le nombre d'octets du cannal couleur" #~ msgid "Do not create missing folders" #~ msgstr "Ne pas créer les dossiers manquants" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "&Inspecteur d'Image (exif)\tCtrl-Space" phatch-0.2.7/locale/fy/0000755000000000000000000000000011346363116014606 5ustar rootroot00000000000000phatch-0.2.7/locale/fy/LC_MESSAGES/0000755000000000000000000000000011346363116016373 5ustar rootroot00000000000000phatch-0.2.7/locale/fy/LC_MESSAGES/phatch.mo0000644000000000000000000001105411346363116020200 0ustar rootroot00000000000000Qm,!(,=LS V dotz " (0$Y~   . = E N X 'd             ) 8 C '[      1      ( 0 5 < A E O ( * ; P c j m        $00L }    $ 3=$@1e # '!!=_gov}   ">G OY_nu |-    M3BEK@'/*D":7&6F,18J.?O4IQH;+L% N->PG # 0 A)(9 C!<=2$5 Adjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAmountAsAuto ContrastBackgroundBitsBleedBooleanBorderChoiceConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the minimum pixel valueCopyCutoffDescriptionDo not check images firstDownsize and crop image with fixed ratioDrops a blurred shadow under a photoEqualizeExamplesFileFitFlip or rotate 90 degreesFloatGrayscaleHorizontalHorizontal OffsetIgnore errorsImageInInclude all subfoldersInspect metadata (requires exif & iptc plugin)IntegerInteger+Integer+0InteractiveInvert all pixel values above thresholdLabelMake the image smaller or biggerMaximize image contrastMethodMinimumModeOffsetOpacityOverwrite existing imagesPosterizeRadiusRenameResampleResample ImageResolutionRun %s as a gui dropletRun %s as console program without a guiSaturationScaleShadowShadow BlurSizeSliderSolarizeSpecify locale language (for example en or en_GB)StringTransposeTresholdVerboseVertical OffsetbicubicdefaultfilefiltersizetagtransformProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2008-06-02 10:34+0000 Last-Translator: Wander Nauta Language-Team: Frisian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) Fan griis nei swart & wyt ferrinne litteLit sêding ferrinne fan griis nei kleurigHorizontaal útlijneFertikaal útlijneOantalAsAutomatysk kontrastEftergrûnBitsÂfbloedzjeBooleaanskRâneKeuzeProporsjes behâldeKontrastKleurmoadusKleurmoadus feroarjeDe minimum pixelwaarde kopiearjeKopiearjeMarzjeBeskriuwingKontrolear ofbyldings earstOfbylding mei fêste ration ferlyste as útsnijeEen skaad ûnder de foto meitsjeEgaliseareFoarbyldenTriemPassend meitsjeSpiegelje as 90 graden draaieDriuwende-kommaGriiswaardenHorizontaalHorizontale offsetNegear flatersOfbyldingYnYnklusief alle ûnderlizzenda mappenMetadata ynspekteare (fereist exif & iptc plugin)Geheel getalPositief geheel getalPositief geheel getal grutter dan 0YnteraktiefAlle pixelwaarden boppe drempel omkeareKaartsjeMeitsje it byld lytser as grutterAfbyldingskontrast maksimaliseareMethodeMinimumMoadusOffsetDekkingBesteande ofbyldings oerskrieuweWaarden beperkjeRadiusOmneameHersampeljeMethodeResolúsjeFier %s ût as in grafyske dropletFier %s ût as in terminalprogramma sûnder grafyske omjouwingSêdingOp grutteSkaadSkaadwazigheidGrutteSkowerSolarisaireLokale taal opjaan (bijfoarbeald en as en_US)TermTransponeareDrempelBreedsprakigVertikale offsetbicubischstanderttriemfiltergruttetrefwurdtransformearephatch-0.2.7/locale/fy/LC_MESSAGES/phatch.po0000644000000000000000000031235211346363116020210 0ustar rootroot00000000000000# Frisian translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2008-06-02 10:34+0000\n" "Last-Translator: Wander Nauta \n" "Language-Team: Frisian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Foarbylden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Fier %s ût as in terminalprogramma sûnder grafyske omjouwing" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Fier %s ût as in grafyske droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Negear flaters" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Ynteraktief" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Lokale taal opjaan (bijfoarbeald en as en_US)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Metadata ynspekteare (fereist exif & iptc plugin)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Ynklusief alle ûnderlizzenda mappen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Kontrolear ofbyldings earst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Breedsprakig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Beskriuwing" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Triem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "standert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Besteande ofbyldings oerskrieuwe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Ofbylding" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Kaartsje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "trefwurd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Booleaansk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Term" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Keuze" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Resolúsje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "Yn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Driuwende-komma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "As" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Moadus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Hersampelje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicubisch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Geheel getal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Positief geheel getal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Positief geheel getal grutter dan 0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horizontaal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Skower" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Offset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Horizontale offset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Vertikale offset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Op grutte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Dekking" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Methode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "grutte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Skaad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Een skaad ûnder de foto meitsje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Râne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Skaadwazigheid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Eftergrûn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Oantal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transformeare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Horizontaal útlijne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Fertikaal útlijne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Meitsje it byld lytser as grutter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Proporsjes behâlde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Methode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Transponeare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Spiegelje as 90 graden draaie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Omneame" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "triem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Radius" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Kleurmoadus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Kleurmoadus feroarje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Passend meitsje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Ofbylding mei fêste ration ferlyste as útsnije" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Âfbloedzje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Automatysk kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Afbyldingskontrast maksimaliseare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Marzje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Grutte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopiearje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Waarden beperkje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solarisaire" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Alle pixelwaarden boppe drempel omkeare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Drempel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Egaliseare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Griiswaarden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "De minimum pixelwaarde kopiearje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Fan griis nei swart & wyt ferrinne litte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Sêding" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Lit sêding ferrinne fan griis nei kleurig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Sla metaynformaasje op (fereist exif & iptc plugin)" #~ msgid "Do not create missing folders" #~ msgstr "Meitsje gjin lege mappen oan" #~ msgid "Colour" #~ msgstr "Kleur" #~ msgid "Filename" #~ msgstr "Triemnamme" #~ msgid "colours" #~ msgstr "kleuren" #~ msgid "Fade all colours to gray" #~ msgstr "Alle kleuren nei griis oerrinne litte" #~ msgid "Crop or add border to all sides" #~ msgstr "Râne oan alle kanten tafoege" #~ msgid "border" #~ msgstr "râne" #~ msgid "Height" #~ msgstr "Hichte" #~ msgid "Width" #~ msgstr "Breedte" #~ msgid "Force Background Colour" #~ msgstr "Achtergrûnkleur forseare" #~ msgid "Shadow Colour" #~ msgstr "Skaadkleur" #~ msgid "Background Colour" #~ msgstr "Achtergrûnkleur" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "It oantal kleurbits ferminderje" #~ msgid "Copy the image file" #~ msgstr "Ofbyldingstriem kopierje" #~ msgid "Scale down only" #~ msgstr "Allinnich ferlyste" #~ msgid "Put colour under transparent image" #~ msgstr "In kleur ûnder in transparante ofbylding stoppe" #~ msgid "Rename the image file" #~ msgstr "Byldtriem omneame" phatch-0.2.7/locale/ga/0000755000000000000000000000000011346363116014557 5ustar rootroot00000000000000phatch-0.2.7/locale/ga/LC_MESSAGES/0000755000000000000000000000000011346363116016344 5ustar rootroot00000000000000phatch-0.2.7/locale/ga/LC_MESSAGES/phatch.mo0000644000000000000000000000154711346363116020157 0ustar rootroot00000000000000 | !) 0<BGM P\bjn %-5=M U`   BooleanChoiceDescriptionErrorFileImageInInteractiveLabelVerbosetagProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2008-06-02 10:27+0000 Last-Translator: Galvin Language-Team: Irish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:41+0000 X-Generator: Launchpad (build Unknown) BooleRoghnúCuntasEarráidComhaidÍomháIsteachIdirghníomhachLipéadBriathrachGiobalphatch-0.2.7/locale/ga/LC_MESSAGES/phatch.po0000644000000000000000000030576311346363116020171 0ustar rootroot00000000000000# Irish translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2008-06-02 10:27+0000\n" "Last-Translator: Galvin \n" "Language-Team: Irish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Idirghníomhach" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Briathrach" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Cuntas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Comhaid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Íomhá" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Lipéad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "Giobal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boole" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Roghnú" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "Isteach" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Earráid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "Colour" #~ msgstr "Dath" #~ msgid "Filename" #~ msgstr "Ainm Comhaid" phatch-0.2.7/locale/gl/0000755000000000000000000000000011346363116014572 5ustar rootroot00000000000000phatch-0.2.7/locale/gl/LC_MESSAGES/0000755000000000000000000000000011346363116016357 5ustar rootroot00000000000000phatch-0.2.7/locale/gl/LC_MESSAGES/phatch.mo0000644000000000000000000005742311346363116020176 0ustar rootroot00000000000000l 0!1!8!V!n!s! !!!!!!!!! ""!"0"H"["l"r"" """ """" " # $#E#L# h#t#3z## # ## #%#!$('$P$a$p$ t$ ~$$$$$&$$$*%.,%2[% % %% %&%&& &"&6&>&E&X&l& && &&6&&&''&'-'<'L'j'z'!''''''' (" (0(O(m("(((((-($*)O))W))))) )),))* .*<*(A* j*v*$*+0+ 7+E+X+a+~+++++++++++++ ,,5,;,B,G,M,Q,q,, , ,,>,. - 8-F-L- \-h-o-r---.--. . . .).8.'?.g... .... ....///'/./6/*;/f/////// 0"030;0@0T0j0 r0~0 00 0"0*081(Q1;z171122 92&C2j21222 2222 3%3,333N3W3 f3 t333 3 3 333333'4 ;4F4K4d4{444444 44 44 5'5#E5 i5$w5555>5515)62696Q6a6h666H66+ 7357Ai77'7777) 8 38 ?8I8R8W8]8q882888 8(8,9 59?9[9a9u949?9A :7K::: : : ::::::::::;;;&;.;5; 9;F;X;_;e;j;s;|; ;;; ;;;;;;;;;;;; ;;;<<<.<?< Z<e<k<p<w<<<< << <<< <<<< <<<<<==>>>>>>? ??'?A?^?q?? ??????@&@/@ 8@E@N@ _@l@@@@@+@ AA+A;A7@AxA~AAAA%A#A3 B>BUBjBoBB BBB"B)BC#C-(C.VC5CCCC)C1DFDKDQD,ZDDDDDD DDD E@E$PEuE{EEEEE)EFF&1FXF`F#hFFF FF#FF!G#*GNGgGG9G6G)G (H)2H\HaH hH uH HH)H HII!I0(IYIkI%IJ*J1JCJ ]JgJJJJJJJJJJK KKK2KGK`KgKpKvK }K(KKKK KL5L*PL {LLLLLLLL#L3MRMeMlMtM }MMM2MMMM NN'N0N+ON{NNNNNNNNN0N#O*O#IO'mOOOO O*O OP P)PEP NP[P zPP P#P*P>P-=Q9kQLQQR%*R PR1[RR:RRR RRS S;SVS_S+gS SSS SSSSST-THT PT[TzT.T TTT"TU3U!PUrUyUU UUUUU(U'V:V,SVVV VGVV)V!W0W8WWWhW$nWW!WMW" X0,X7]X?XX2XY+YEY#^Y Y YYYYYYY3Y Z(Z ?Z+IZ2uZ ZZZZ"Z1[?F[G[A[\\ "\ ,\8\ >\H\ Q\]\f\m\\\\\\\ \\\\\\] ]]#]6]=]M]S]\]m]s]x]}]]]]]]]] ] ]]]]] ^^ 9^E^M^R^Z^c^k^r^ {^^ ^^^ ^^^ ^^^^^ __R<H"DW c$9{7wO{+orzq=,?|[G W;miX2Qg5Kr`YR(Mb$4"VP0^fXK}T#.o&tn~Vp`Yjye_ 6u(J~3n)CUPIA }e^% l l)hNw BLv5 E|usDp'aL\8=kN/>:/t!0&.gCd7 >v,ybk Zi\-!Q#h *1:a2B?'9*F S-3<qAZT4UMcmE_Hzx[S+fJ18@F;j]xGOd6]%Is@&Abort&About Phatch... Ctrl-Shift-A&Action List Droplet...&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&Image Inspector Droplet...&License&New Ctrl-N&OK&Open... Ctrl-O&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&ViewA html tutorial will open in your internet browser.AboutAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAmountAngleApply a transparency maskApply for future errors Apply with tiling, scaling and opacityArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...Auto ContrastBackgroundBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBottom Left CornerBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse FolderC&reditsCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletCodeColorizeColorize grayscale imageCommonConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCreditsCrop or expand the canvas without scalingCrossCutoffDepthDescribe here the action list.DescriptionDisable actionDisplays information about this application.Do not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFalseFileFile(s)FilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsGapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHorizontalHorizontal OffsetIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagesInInclude all subfoldersInspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageLabelLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsMake the image smaller or biggerMarkMaskMaximize image contrastMaximumMedianMessageMethodMinimumModeMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo action list provided.No files or folder selected.NormalNothing has been logged yet.Nothing to do.OffsetOffset by distance and wrap aroundOpacityOpenOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesPaste this command in a launcherPathPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Photo Batch ProcessorPlease (re)install it.Please upgrade your wxPython.PosterizeProcess with recent Phatch action listQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRepeatReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaveSave &As... Ctrl-Shift-SSave Action List As...Save last changes toSaves an action listSaves an action list asScaleSelectSelect action listSelectionShadowShadow BlurShear 2d or 3dShow &Log... Ctrl-LShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSliderSolarizeSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:TextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This requires also that the python-nautilus package is installed.TileTools to handle the current action listTop Left CornerTop Right CornerTop Shear AngleTranslate Phatch in your native language.TranslationTransposeTresholdTrueTypesUnable to open fileUnsaved Action ListUpUse the Image Inspector to list all the variables.VerboseVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWhat do you want to do now?WhiteWrite Action PluginWrite text at a given positionYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsantialiasapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerleftmiddleminutemodemonthmonthnamenearestnono %s tags foundpathplease install pyexiv2positive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagtoptransformtruetypeweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2008-08-13 15:31+0000 Last-Translator: Marcos Language-Team: Galician MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:41+0000 X-Generator: Launchpad (build Unknown) &Abortar&About Phatch... Ctrl-Shift-ADroplet de Lista de &Accions...&Engadir&Engadir... Ctrl-+&Procurar axuda&Batch&Cancelar&Pechar&Afundir All Ctrl-Shift-E&Continuar de todas maneiras&Desactivar Ctrl-0&Documentacion... Ctrl-M&Abaixo Ctrl-Down&Gota Ctrl-D&Editar&Activar Ctrl-1&Executar... Ctrl-Return&Expandir todo Ctrl-E&Forum... Ctrl-F&Axuda&Información do Inspector de Imaxe...&Licenza&Novo Ctrl-N&Aceptar&Abrir... Ctrl-O&Sair Ctrl-Q&Recente información...&Eliminar Ctrl--&Remitir un erro... Ctrl-B&Gravar Ctrl-S&Ver Descricion Ctrl-H&Mostra a plantilla para modulos de acción&Ferramentas&Traducir Phatch... Ctrl-T&Enriba Ctrl-Up&VerUn tutorial html abrirase no seun navegador de internetSobreListas de acciónsLista de acciónsEngadirEngadir unha acciónAxustar o brillo dende negro a brancoAxustar dende gris a branco e negroAxusta saturacion dende escala de grises ata o altoAliñamento HorizontalAliñamento VerticalTodoTódolos arquivosTódolos arquivosCantidadeÁnguloAplicar a máscara transparenteAplicar para futuros erros Aplicar con azulexo, escalado e opacidadeDeseño GráficoComaAsociar Imaxes coa Lista de Accións en %s...Asociar Imaxes co Inspector de Imaxes en %s...Asociar Imaxes coa Lista de Accións Recente en %s...Contraste AutomáticoFondoOpacidade do fondoProceso automatizado de imaxes con PhatchLote de procesos con listado de accións recentesBitsNegroSangradoEmborrallar, Agudizar, Relevo, Suavizar, ...BooleanoBordeEsquiña Inferior EsquerdaEsquiña Inferior DereitaCortar o inferiorLuminosidadeExaminarProcurar CartafolC&reditosNon se pode aplicar a acción %(a)s na imaxe '%(i)s' no cartafolNon se pode aplicar a acción %(a)s:LenzoRevisar imaxes primeiroComprobando imaxesEscollaEscoller arquivo(s)Escolla un cartafolEscolla un Arquivo na Lista de Acción...Escoller unha imaxeElexir un cartafol de imaxesEscolle o cartafol para a informaciónCódigoColorarColorar a imaxe de escala de grisesComúnProporcións obligadasContrasteConvertir o modoConvertir o modo de cor dunha imaxeCopia o máximo valor do pixelCopia a mediana do valor do pixelCopia o valor do pixel mais pequenoCopia o valor mais comunCopia o grao do valor do pixelCopiarCopiar o listado de accións coma &Comando ao portapapeisCopiar I&nspector de Imaxe como Comando no portapapeisCopiar R&ecente como Comando no ClipboardCréditosRecortar ou expandir o lenxo sen escalaloCruzLimiteProfundidadeDescribe aqui a lista de acciónDescriciónDesactivar acciónAmosa información sobre esta aplicaciónNon verificar primeiro as imaxesDesexa continuar?DocumentaciónAbaixoEscalar e recortar imaxe co tamaño seleccionadoArrastar e SoltarSoltar os arquivos e/ou cartafoles nesta Phatch droplet para procesalos Clic co botón dereito ou dobre clic para amosar a vista normalDeixa una sombra borrosa baixo a fotoBaixar o reflexoEfectoAcción permitidaInsertar una url de imaxeBalancearBalancear o histograma da imaxeErroExemplosExecutarExecute a acciónExecutar a lista de acciónsExecutando a lista de acciónsExpandirFalsoArquivoArquivoFiltroAxustartrocar esquerda dereitatrocar enriba abaixotrocar ou rotar 90 graosFlotarCartafolFonteFontesEspacio libreIr a páxina de documentación de PhatchIr ó Forum de PhatchIr a páxina web de PhatchEscala de grisesHorizontalDesprazamento horizontalSi reinicia %s, a acción verase no menú contextual.si desexa contribuir un plugin para PhatchIgnorar errosImaxerevisión de imaxecamiños da imaxeImaxeEnincluir todos os subcartafolesRevisar etiquetas EXIF & IPTCRevisión EXIF & IPTC etiquetasInspeccionar metadatos (require plugin exif & iptc)Revisar con PhatchEnteroEntero+Entero+0InteractivoImaxes non válidasInverterInvertir todos os valores dos pixel sobre o umbralInverter cores da imaxeEtiquetaCortar o angulo esquerdoBibliotecasLicenzaRexistroProcurar exif e etiquetas iptcFacer a imaxe máis pequena ou máis grandeMarcaMáscaraMaximzar o contraste da imaxeMáximoMedianaMensaxeMétodoMínimoModoMonocromático (pixeles 1-bit, a branco e negro)Mover a acción elexida cara abaixoMover a acción elexida enribaNon se insertou listado de acciónsNon hay arquivos ou cartafoles elexidosNormalNada foi rexistrado indaNada que facerCompensaciónCompensar por distancia e cercania arredorOpacidadeAbrirAbrir unha lista de acciónAbre unha lista de acciónsOpciónsOrientaciónSobrescribir imaxes existentesCopiar este comando nun lanzadorCamiñoPerspectivaPhatch non pode manexar %d imaxe(s)Phatch non puido instalar a acción no %s:Phatch non tivo exito ao instalar a característica solicidadaPhatch creou a información de xeito correctoPhatch tentou desinstalarse dende o Explorador de WindowsPhatch engadirá unha para vostede, pregámoslle comprobe as configuraciónsprocesador de grupo de fotosPregámoslle (re)instáleoPregámoslle actualice o seu wxPythonPosterizarProceso con listas de accións de Phatch recentesAsir da aplicaciónRGBA (Pixeles 4x8-bits, RGB con máscara de transparencia)RaioClasificaciónReflexiónEliminarQuitar Asociación de %s...Eliminar a acción elexidaEliminar a acción elexidaRenomearRepetirRemitir un erro na plataforma de lanzamentoRemuestreoResample ImaxeRemuestreo de mascaraResoluciónCortar o dereitoXirarRotar a imaxe 180 graosRotar a imaxe 270 graosRotar a imaxa 90 graosxirar cun angulo aleatorioRedondoRedondeadoEsquinas dobradas our cruzadasExecutar %s coma gota guiExecutar %s coma programa de consola sen a guiSaturaciónGravarGravar &Coma... Ctrl-Shift-SGravar a lista de acción coma ...Gravar os últimos cambios aGravar unha lista de acciónGravar unha lista de acción comaEscalaEscollerEscoller listado de acciónsSelecciónSombraSombra borrosacortar 2º ou 3ºAmosar &Log... Ctrl-LAmosar tódolos parámetros das acciónsAmosar descrición da lista de acciónsVer ficheiro de rexistroMostrar sólo las etiquetas de las acciones.TamañoBarra de desprazamentoSolarizarSentímolo, necesitas instalar a %s acción para esta lista de acciónsOrixeEscolle a lingua (por exeplo gl ou gl_ES)PatrocinadoresCadradoComezar unha lista de acciónsParado por errosCadeaEstudio da acción nos plugin dentroTextoA lista de accións está valeiraA información do comando para o inspector de imaxe foi copiado o portapapeisEsta non é una acción habilitadaTería que ter unha acción de 'Gravar' ó finalEstas extensións foron instaladas satisfactoriamente Requirese tamén que o paquete python-nautilus estea instalado.MosaicoFerramentas para manexar a lista de acción actualEsquiña Superior EsquerdaEsquiña Superior DereitaCortar o angulo superiorTraducir Phatch no seu idioma natalTraduciónTrasponerumbralCertoTiposNon se pode abrir o arquivoLista de accións sen gravarEnribaUse a imaxe inspector pra listar todas as variablesDetalladoDesprazamento verticalVer fonteVer coma gota para coller e deixar arquivosAdvertencia: python-wxversion non está instalado Marca de augaQué queres facer agora?BrancoEscribir plugin de acciónEscribir texto nuna posición dadaSó podes usar arquivos cas seguintes extensiónspodes pegalo coma texto dentro das propiedades do novo lanzadorTes que instalar as Extensións Win32 de Python para usar esta funciónTan só necesita coñecer PIL para escribir un plugin para Phatchcancelaracciónsantialiasaplicaciónfondobicúbicobilinealemborrallarbooleanoabaixoampliar a procuracentroescollaclick '+' para engadir acciónscontornodíadecimalpor defectodetalledpiaumentar o bordeaumentar o borderelevofalsoarquivonome do arquivotamaño do arquivofiltroprocurar bordesfloatcartafolnome do cartafolmarcoaltohoraignorarimaxesenteiroesquerdamediominutomodomesdia do meso máis pretononno %s etiquetas atopadascamiñopregámoslle instalepyexiv2enteiro positivopositivo, enteiro non ceroresolucióndereitarootsegundoagudizartamañosaltarsuavizarsuavizar máscadeasubcartafoletiquetaenribatransformarcertotipodia da semananome do dia da semanalarguraconwxPython Erro de versiónanosiphatch-0.2.7/locale/gl/LC_MESSAGES/phatch.po0000644000000000000000000034167311346363116020204 0ustar rootroot00000000000000# Galician translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2008-08-13 15:31+0000\n" "Last-Translator: Marcos \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Revisar con Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Revisar etiquetas EXIF & IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Exemplos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Executar %s coma programa de consola sen a gui" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Executar %s coma gota gui" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignorar erros" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interactivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Escolle a lingua (por exeplo gl ou gl_ES)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Inspeccionar metadatos (require plugin exif & iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "incluir todos os subcartafoles" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Non verificar primeiro as imaxes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Detallado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "podes pegalo coma texto dentro das propiedades do novo lanzador" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Sentímolo, necesitas instalar a %s acción para esta lista de accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "A información do comando para o inspector de imaxe foi copiado o portapapeis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Nada foi rexistrado inda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Rexistro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "cancelar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "saltar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignorar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "click '+' para engadir accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Abrir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Abrir unha lista de acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Executar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Execute a acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Engadir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Engadir unha acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Eliminar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Eliminar a acción elexida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Enriba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Mover a acción elexida enriba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Abaixo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Mover a acción elexida cara abaixo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "revisión de imaxe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Procurar exif e etiquetas iptc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Descrición" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Amosar descrición da lista de accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Escolla un Arquivo na Lista de Acción..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Gravar a lista de acción coma ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "aplicación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "marco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Un tutorial html abrirase no seun navegador de internet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Estudio da acción nos plugin dentro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "si desexa contribuir un plugin para Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Arrastar e Soltar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Soltar os arquivos e/ou cartafoles nesta Phatch droplet\n" "para procesalos\n" "Clic co botón dereito ou dobre clic para amosar a vista normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" "Phatch engadirá unha para vostede, pregámoslle comprobe as configuracións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Gravar os últimos cambios a" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Escolle o cartafol para a información" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch creou a información de xeito correcto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Escoller listado de accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Escolla un cartafol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Escoller arquivo(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Elexir un cartafol de imaxes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "imaxes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Examinar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Cartafol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "por defecto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Ver fonte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "ampliar a procura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Camiño" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Novo\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Comezar unha lista de accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Abrir...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Abre unha lista de accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Gravar\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Gravar unha lista de acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Gravar &Coma...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Gravar unha lista de acción coma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Copiar o listado de accións coma &Comando ao portapapeis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Copiar este comando nun lanzador" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Copiar R&ecente como Comando no Clipboard" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Copiar I&nspector de Imaxe como Comando no portapapeis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Sair\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Asir da aplicación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Engadir...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Eliminar\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Eliminar a acción elexida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Activar\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Acción permitida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Desactivar\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Desactivar acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Enriba\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Abaixo\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Editar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Gota\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Ver coma gota para coller e deixar arquivos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Ver Descricion\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Ferramentas para manexar a lista de acción actual" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Expandir todo\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Amosar tódolos parámetros das accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Afundir All\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Mostrar sólo las etiquetas de las acciones." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Ver" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Executar...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Executar a lista de accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Amosar &Log...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Ver ficheiro de rexistro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Ferramentas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Ir a páxina web de Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Documentacion...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Ir a páxina de documentación de Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Ir ó Forum de Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Traducir Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Traducir Phatch no seu idioma natal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Remitir un erro...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Remitir un erro na plataforma de lanzamento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&About Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Amosa información sobre esta aplicación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Axuda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Tan só necesita coñecer PIL para escribir un plugin para Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Mostra a plantilla para modulos de acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Código" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Procurar axuda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&Aceptar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Escribir plugin de acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Aplicar para futuros erros " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Abortar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Mensaxe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Continuar de todas maneiras" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Opcións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Tipos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Procurar Cartafol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Orixe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Parado por erros" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Revisar imaxes primeiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Sobrescribir imaxes existentes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Cancelar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Batch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Imaxe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Booleano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Cadea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Escolla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Resolución" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "En" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Flotar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Coma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Modo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Remuestreo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicúbico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Entero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Entero+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Entero+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Barra de desprazamento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "fondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Todo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Compensación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Desprazamento horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Desprazamento vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Mosaico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Escala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Marca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Opacidade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Método" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "procesador de grupo de fotos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Certo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Falso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "certo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "falso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Lista de accións sen gravar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Listas de accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Tódolos arquivos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Describe aqui a lista de acción" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Tería que ter unha acción de 'Gravar' ó final" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "con" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Asociar Imaxes coa Lista de Accións en %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Asociar Imaxes coa Lista de Accións Recente en %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Asociar Imaxes co Inspector de Imaxes en %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Quitar Asociación de %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "Droplet de Lista de &Accions..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "&Recente información..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "&Información do Inspector de Imaxe..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Lote de procesos con listado de accións recentes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Revisión EXIF & IPTC etiquetas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Nada que facer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "A lista de accións está valeira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Esta non é una acción habilitada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Comprobando imaxes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch non pode manexar %d imaxe(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Imaxes non válidas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Non hay arquivos ou cartafoles elexidos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Non se pode abrir o arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Non se pode aplicar a acción %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Non se pode aplicar a acción %(a)s na imaxe '%(i)s' no cartafol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Executando a lista de accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Escoller" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "día" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "nome do cartafol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "nome do arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "tamaño do arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "cartafol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "hora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minuto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "mes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "dia do mes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "camiño" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "root" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "segundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "subcartafol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "tipo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "dia da semana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "nome do dia da semana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "ano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "alto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "modo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "largura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "tamaño" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Use a imaxe inspector pra listar todas as variables" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Só podes usar arquivos cas seguintes extensións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "esquerda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "centro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "dereita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "enriba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "medio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "abaixo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monocromático (pixeles 1-bit, a branco e negro)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (Pixeles 4x8-bits, RGB con máscara de transparencia)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "emborrallar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "contorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detalle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "aumentar o borde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "aumentar o borde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "relevo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "procurar bordes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "suavizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "suavizar más" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "agudizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "o máis preto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilineal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Rotar a imaxa 90 graos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Rotar a imaxe 180 graos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Rotar a imaxe 270 graos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "trocar esquerda dereita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "trocar enriba abaixo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "cadea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "enteiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "enteiro positivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "positivo, enteiro non cero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "resolución" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "booleano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "escolla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Erro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Advertencia: python-wxversion non está instalado\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Pregámoslle (re)instáleo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Pregámoslle actualice o seu wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPython Erro de versión" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "C&reditos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licenza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Pechar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Sobre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Créditos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Documentación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Tradución" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Deseño Gráfico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Bibliotecas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Patrocinadores" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licenza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Imaxe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Tódolos arquivos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Escoller unha imaxe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Insertar una url de imaxe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "pregámoslle instalepyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "no %s etiquetas atopadas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Engadir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "non" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "si" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Selección" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Fontes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Sombra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filtro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Deixa una sombra borrosa baixo a foto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Borde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Sombra borrosa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Fondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Efecto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Emborrallar, Agudizar, Relevo, Suavizar, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filtro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Repetir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Cantidade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transformar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Compensar por distancia e cercania arredor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Lenzo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Recortar ou expandir o lenxo sen escalalo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Aliñamento Horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Aliñamento Vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Marca de auga" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Aplicar con azulexo, escalado e opacidade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Facer a imaxe máis pequena ou máis grande" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Proporcións obligadas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Resample Imaxe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Trasponer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "trocar ou rotar 90 graos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Renomear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Cruz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Redondeado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Cadrado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Redondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Esquinas dobradas our cruzadas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Raio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Esquiña Superior Esquerda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Esquiña Superior Dereita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Esquiña Inferior Esquerda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Esquiña Inferior Dereita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Convertir o modo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Convertir o modo de cor dunha imaxe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Axustar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Escalar e recortar imaxe co tamaño seleccionado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Sangrado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Contraste Automático" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maximzar o contraste da imaxe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Limite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Gravar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Mediana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Copia a mediana do valor do pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Máscara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Aplicar a máscara transparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Remuestreo de mascara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Texto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Escribir texto nuna posición dada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Fonte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Tamaño" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Colorar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Colorar a imaxe de escala de grises" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Negro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Branco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Copiar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posterizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Clasificación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Copia o grao do valor do pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solarizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Invertir todos os valores dos pixel sobre o umbral" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "umbral" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Balancear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Balancear o histograma da imaxe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Xirar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Escala de grises" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Ángulo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "xirar cun angulo aleatorio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Expandir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Opacidade do fondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Inverter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Inverter cores da imaxe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Reflexión" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Baixar o reflexo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Profundidade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Espacio libre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Común" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Copia o valor mais comun" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Mínimo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Copia o valor do pixel mais pequeno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspectiva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "cortar 2º ou 3º" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Cortar o angulo esquerdo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Cortar o angulo superior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Cortar o inferior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Cortar o dereito" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Contraste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Axustar dende gris a branco e negro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Máximo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Copia o máximo valor do pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Saturación" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Axusta saturacion dende escala de grises ata o alto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Luminosidade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Axustar o brillo dende negro a branco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Estas extensións foron instaladas satisfactoriamente\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch non tivo exito ao instalar a característica solicidada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch tentou desinstalarse dende o Explorador de Windows" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "Tes que instalar as Extensións Win32 de Python para usar esta función" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Lista de accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Non se insertou listado de accións" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "camiños da imaxe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Desexa continuar?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Qué queres facer agora?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Si reinicia %s, a acción verase no menú contextual." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch non puido instalar a acción no %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Requirese tamén que o paquete python-nautilus estea instalado." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Proceso automatizado de imaxes con Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Proceso con listas de accións de Phatch recentes" #~ msgid "new" #~ msgstr "novo" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Escala de grises (pixeles 8-bit, a branco e negro)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (Pixeles 4x8-bits, separación de cores)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (pixeles 8-bits, mapeado usando unha paleta de cores)" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (pixeles 3x8-bits, formato de video a cor)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (pixeles enteiros 32-bits)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (pixeles de punto flotante 32-bits)" #~ msgid "doesn't exist" #~ msgstr "non existe" #~ msgid "for integer" #~ msgstr "para enteiro" #~ msgid "is negative, but should be positive" #~ msgstr "é negativo mais tería que ser positivo" #~ msgid "is zero, but should be non-zero." #~ msgstr "é cero mais non debería de selo" #~ msgid "for float" #~ msgstr "para float" #~ msgid "for boolean" #~ msgstr "para booleano" #~ msgid "Colour" #~ msgstr "Cor" #~ msgid "Filename" #~ msgstr "Nome do arquivo" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (pixeles 3x8-bit, cor verdadeira)" #~ msgid "All selected image types" #~ msgstr "Todos os tipos de imaxes elexidos" #~ msgid "All default image types" #~ msgstr "Todos os tipos de imaxes" #~ msgid "Open a python shell for introspection" #~ msgstr "Abra un intérprete de python para a introspección" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Intérprete de Python...\tCtrl-P" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "&Escribir plugin de acción...\tCtrl-W" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Escribir un plugin de acción para Phatch con PIL" #~ msgid "Create missing folders" #~ msgstr "Crear cartafoles perdidos" #~ msgid "&Default Types" #~ msgstr "&Tipos por defecto" #~ msgid "Force Background Colour" #~ msgstr "Forzar a cor de sombra" #~ msgid "Shadow Colour" #~ msgstr "cor de sombra" #~ msgid "Background Colour" #~ msgstr "cor de fondo" #~ msgid "Width" #~ msgstr "Largura" #~ msgid "please email" #~ msgstr "Pregámoslle envíe un e-mail" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "como Phatch xenerará automáticamente a interfaz de usuario" #~ msgid "Height" #~ msgstr "Alto" #~ msgid "&Skip To Next Image" #~ msgstr "&Sltar á seguinte imaxe" #~ msgid "&Ignore Error" #~ msgstr "&Ignorar Erro" #~ msgid "Save an image" #~ msgstr "Gravar unha imaxe" #~ msgid "&File" #~ msgstr "&Arquivo" #~ msgid "Phatch Version" #~ msgstr "Version do Phatch" #~ msgid "By offset" #~ msgstr "por offset" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Gravar metadatos (require plugin exif & iptc)" #~ msgid "Do not create missing folders" #~ msgstr "Non crear cartafoles faltantes" #~ msgid "colours" #~ msgstr "cores" #~ msgid "Fade all colours to gray" #~ msgstr "Converter todas as cores a gris" #~ msgid "border" #~ msgstr "borde" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Reducir o numero de bits co canle de cor" #~ msgid "Put colour under transparent image" #~ msgstr "Poñer a cor baixo a imaxe transparente" #~ msgid "Rename the image file" #~ msgstr "Renomear o arquivo de imaxe" #~ msgid "Copy the image file" #~ msgstr "Copiar o arquivo de imaxe" #~ msgid "Crop or add border to all sides" #~ msgstr "Recurta ou engade bordes para tódalas caras" #~ msgid "Scale down only" #~ msgstr "Escalar só o inferior" #~ msgid "Resample Shadow" #~ msgstr "Remuestrear a sombra" #~ msgid "watermark" #~ msgstr "marca de auga" #~ msgid "january" #~ msgstr "xaneiro" #~ msgid "april" #~ msgstr "abril" #~ msgid "march" #~ msgstr "marzo" #~ msgid "november" #~ msgstr "novembro" #~ msgid "september" #~ msgstr "septiembre" #~ msgid "october" #~ msgstr "outubro" #~ msgid "may" #~ msgstr "maio" #~ msgid "june" #~ msgstr "Xuño" #~ msgid "july" #~ msgstr "xullo" #~ msgid "august" #~ msgstr "agosto" #~ msgid "saturday" #~ msgstr "sábado" #~ msgid "friday" #~ msgstr "venres" #~ msgid "thursday" #~ msgstr "xoves" #~ msgid "wednesday" #~ msgstr "mércores" #~ msgid "sunday" #~ msgstr "domingo" #~ msgid "monday" #~ msgstr "luns" #~ msgid "tuesday" #~ msgstr "martes" #~ msgid "december" #~ msgstr "decembro" #~ msgid "invalid syntax" #~ msgstr "sintaxe non válida" #~ msgid "the variable" #~ msgstr "a variable" #~ msgid "invalid literal" #~ msgstr "literalmente inválido" #~ msgid "the integer value" #~ msgstr "o valor enteiro" #~ msgid "the file extension" #~ msgstr "a extensión do arquivo" #~ msgid "the filename" #~ msgstr "o nome do arquivo" #~ msgid "a filename with a valid extension was expected." #~ msgstr "agardábase un nome de arquivo con extensión válida" #~ msgid "does not exist." #~ msgstr "non existe" #~ msgid "is invalid." #~ msgstr "non é válido" #~ msgid "february" #~ msgstr "febreiro" #~ msgid "the float value" #~ msgstr "o valor flotante" #~ msgid "Save metadata" #~ msgstr "Gravar metadata" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Ver Ferramentas> amosar rexistro para mais detalles" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Esta lista de accións fíxose dende unha anterior %(name)s version.\n" #~ "\n" #~ msgid "&Recent" #~ msgstr "&Recente" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "" #~ "O comando de información para esta lista de accións copiouse ao portapapeis" #~ msgid "Only an image file is allowed." #~ msgstr "So un arquivo de imaxe está permitido" #~ msgid "drag & drop any image here" #~ msgstr "coller e soltar unha imaxe aquí" #~ msgid "Open image file" #~ msgstr "Abrir o ficheiro de imaxe" #~ msgid "&Preview" #~ msgstr "&Previsualización" #~ msgid "Copy cell text" #~ msgstr "Copiar texto da celda" #~ msgid "Open image url" #~ msgstr "Abrir url da imaxe" #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "PHoto bATCH Procesador & Renomeador" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "Inspector de &Imaxe (exif)\tCtrl-Space" #~ msgid "&Export..." #~ msgstr "&Exportar..." #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch non puido crear a información" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Web&site...\tCtrl-I" phatch-0.2.7/locale/he/0000755000000000000000000000000011346363116014564 5ustar rootroot00000000000000phatch-0.2.7/locale/he/LC_MESSAGES/0000755000000000000000000000000011346363116016351 5ustar rootroot00000000000000phatch-0.2.7/locale/he/LC_MESSAGES/phatch.mo0000644000000000000000000005234111346363116020162 0ustar rootroot00000000000000Q ,018V[cj  ' 6C \} 3   %!!(Cl}  &*.%2T   "   $ 8 L W ^ l s         !! ! )!6!U!s!"!!!!!! !,!&" ?"M" R"$^""" """""""##3#:#@#E#M#Q#a#q######### # $$. $ O$]$c$ s$$$$$$.$%%!% *% 4%@%O%'V%~%%% %%%% %& &&'&/&6&>&E&M&*R&}&&&&&&&'''2':'T' Y'"e'*'8'7'$(:(Q(&o((1(( ((()0)L)S)Z)u)~) ) ))) ) ) ))))*"*':* b*m*r******* *+ ++'/+#W+ {+$++>++1++,4,;,S,c,j,,,,+,3,A"-d-'i----)- --.. . .4.27.j.r. .,. .....4/AO/7/// / ////0 00&0-0F0N0R0Z0b0i0 m0z000000 000 000000001111 1#1+1.1?1D1[1 l1w1}111111 11 111 1111 1111222 3!3 3 3 34444 E4Q4c4{44 4 4 444 4550+5 \5f5 w5>5 555 66)#6%M6As666666 7 7 73?7 s77777I7!:8\8c8:y8 88288 9(9&>9 e9 999999 9:*:E: W:x: :0::::=:E&;4l;9;; ;;;-; -<*8<!c< << <2<<<<"=/8= h=s==='= ====> >(>E>&`>> >> > >">!>%?6? J?U?1k?? ??? ?@& @"1@T@Ss@ @@@%A>AUAtA<A'A A"A B *B 7B BB(cB B B5BB B BBCCHC.eC0C(C/CD'D 0D=DDD cDD"DDD6D> EKJEVE"E8FIFJhFFMF G(G7G>G%XG#~G GG!GGG H)H:HYHbHqH H"H H H-H0H6&I ]IhIqI*I)I I.J6J=J \JgJlJ|J1J0JJ+KBK_KKK0KK K'L,L DL1QLL"L(LBL6M@RM M@M(M&N"/N RN sN~NN N(N'N NDN 6OAOUO2kOO"OOO'OJP]jPHP Q Q )Q4Q;Q OQZQiQpQQ Q)QQQ QQ QR$R:R UR`RgR pR~RRR RR RRR R RS SSS&S-S 6SDSZS_S}SSSSSS S ST T TT 1T>TPTYT bTmTtT{TTTT TTTe<MV; s9}-Q&CAi/[>\I&G"Nu84M'g0b^-KD?=3d"!5G,#X(7:$08w ZJ|=)q2a*+   xCvk_`,@QE; TYND3oI+@HLz%E~:p11B6B6(?SL!4PA rRK/9OP f *FnJcW%F]>U2.<t#mhH{)y '$.lj7O5&Abort&About Phatch... Ctrl-Shift-A&Add&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Down Ctrl-Down&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&License&OK&Open... Ctrl-O&Quit Ctrl-Q&Remove Ctrl--&Save Ctrl-S&Show Description Ctrl-H&Show template for action plugin&Tools&Up Ctrl-Up&ViewA html tutorial will open in your internet browser.AboutAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAmountAngleApply a transparency maskApply with tiling, scaling and opacityArtworkAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...Auto ContrastBackgroundBackground OpacityBatch process images with PhatchBitsBlackBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBottom Left CornerBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse FolderCanvasCheck images firstChecking imagesChoiceChoose a folderChoose an Action List File...Choose an imageChoose an image folderCodeColorizeColorize grayscale imageCommonContrastConvert ModeCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopyCreditsCrossDepthDescribe here the action list.DescriptionDisplays information about this application.Do you want to continue?DocumentationDownDrag & DropDrops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqualize the image histogramErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFalseFileFile(s)FitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsGapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHorizontalHorizontal OffsetIf you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagesInInclude all subfoldersInspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageLabelLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsMake the image smaller or biggerMarkMaskMaximize image contrastMaximumMedianMessageMethodMinimumModeMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo action list provided.No files or folder selected.NormalOffsetOpacityOpenOpen an action listOpens an actions listOptionsOverwrite existing imagesPathPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch will add one for you, please check its settings.Photo Batch ProcessorPlease (re)install it.Please upgrade your wxPython.Process with recent Phatch action listQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRepeatReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaveSave &As... Ctrl-Shift-SSave Action List As...Save last changes toSaves an action listSaves an action list asSelectSelect action listSelectionShadowShadow BlurShow &Log... Ctrl-LShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:TextThe action list is empty.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This requires also that the python-nautilus package is installed.TileTools to handle the current action listTop Left CornerTop Right CornerTop Shear AngleTranslate Phatch in your native language.TranslationTresholdTrueTypesUnable to open fileUnsaved Action ListUpUse the Image Inspector to list all the variables.VerboseVertical OffsetView SourceWarning: python-wxversion is not installed. WatermarkWhat do you want to do now?WhiteWrite Action PluginWrite text at a given positionYou can only use files with the following extensionsYou need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsapplicationbackgroundbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerleftmiddleminutemodemonthmonthnamenearestnono %s tags foundpathplease install pyexiv2positive integerresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagtoptransformtruetypeweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-06-13 13:49+0000 Last-Translator: Vyacheslav S. Language-Team: Hebrew MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) &ביטולאודות Phatch... Ctrl-Shift-Aהו&סף&ביטולס&גורכווץ הכל Ctrl-Shift-Eהמשך בכל זאתמטה Ctrl-Downע&ריכהאפשור Ctrl-1הרצה... Ctrl-Returnהרחב הכל Ctrl-Eפורום... Ctrl-F&עזרה&רישיון&אישורפתיחה... Ctrl-Oיציאה Ctrl-Qהסר Ctrl--שמירה Ctrl-Sהצג תיאור Ctrl-Hהצג תבנית עבור תוספת פעולה&כליםמעלה Ctrl-Upהצג (&V)הסבר HTML ייפתח בדפדפן האינטרנט שלך.אודותרשימות של פעולותרשימת פעולותהוספההוסף פעולההתאם בהירות משחור ללבןהתאם מאפור לשחור-לבןשנוי רוויה מגווני אפור לרוויה גבוההיישור אופקייישור אנכיהכלכל הקבציםכל הקבציםכמותזוויתהפעל מסיכת שקיפותהפעל עם ריצוף, מתיחה ואטימותאומנותשייך תמונות לרשימת פעולות ב%s...שייך תמונות לבוחן התמונות ב%s...שייך תמונות לרשימות פעולות אחרונות ב %s...ניגודיות אוטומטיתרקעאטימות הרקעעיבוד תמונות באצווה באמצעות Phatchסיביותשחורטשטוש, חידוד, תבליט, החלקה,...בוליאניגבולהפינה השמאלית התחתונההפינה הימנית התחתונהמקדם גזירה תחתונהבהירותעיוןעיון בספרייהמשטח ציורבדוק תמונות קודםבודק תמונותבחירהבחר ספרייהבחר קובץ רשימת פעולות...בחר תמונהבחר ספריית תמונותקודמתן צבעמתן צבע לתמונה בגווני אפורנפוץניגודיותמצב המרהמעתיק את הפיקסל בעל הערך המקסימלימעתיק את ערכו של הפיקסל בעל ערך החציוןמעתיק את ערך הפיקסל המינימלימעתיק את ערך הפיקסל הנפוץ ביותרהעתקתודותצלבעומקתאר כאן את רשימת הפעולות.תיאורמציג מידע אודות היישום.האם ברצונך להמשיך?תיעודלמטהגרירהמוסיף צל מטושטש מתחת לתמונהמטיל השתקפותאפקטמאפשר את הפעולההכנס נתיב URL לתמונההשווה את היסטוגרמת התמונהשגיאהדוגמאותהפעלהפעל את הפעולהמריץ את רשימת הפעולותמבצע רשימת פעולותהרחבשקרקובץקובץ/ קבציםהתאמההיפוך ימין-שמאלהיפוך מעלה-מטההפוך או סובב ב90 מעלותמספר עשרוניספרייהגופןגופניםמרווחמעבר לתיעוד של Phatch.מעבר לפורום של Phatchפתיחת דף הבית של Phatch.גווני אפוראופקיהסטה אופקיתאם ברצונך לתרום תוספת לPhatch,התעלם משגיאותתמונהבוחן התמונותנתיבי התמונותתמונותבתוךכלול את כל תת הספריותבחינת תגיות EXIF ו-IPTCבחן תגיות EXIF ו-IPTCבחן מידע אודות התמונה (metadata) (דורש תוסף EXIF ו-IPTC)בחינה באמצעות Phatchמספר שלםמספר שלם אי שלילימספר טבעי (שלם חיובי)אינטראקטיביתמונות לא חוקיותהיפוך צבעיםהפוך את כל ערכי הפיקסלים מתחת לסףהפוך את הצבעים בתמונהתוויתזווית גזירה שמאליתספריותרישיוןתיעודבדוק תגיות EXIF ו-IPTCהקטן או הגדל את התמונהסימוןמסיכההבאת ניגודיות תמונה למקסימוםמקסימוםחציוןהודעהשיטהמינימוםמצבחד צבעי (פיקסלים של סיבית אחת, שחור ולבן)הזז את הפעולה שנבחרה למטההזז את הפעולה שנבחרה למעלהלא סופקה רשימת פעולות.לא נבחרו אף קבצים וספריות.רגילהיסטאטימותפתחפתח רשימת פעולותפותח רשימת פעולותאפשרויותדרוס תמונות קיימותנתיבפרספקטיבהPhatch אינה יכולה לטפל ב%d תמונות:Phatch לא הצליחה להתקין את הפעולה ב %s:Phatch לא הצליחה להתקין את התכונות המבוקשות.Phatch תוסיף כזו בשבילך, אנא בדוק את האפשרויות שלה.מעבד תמונות באצווהאנא התקן אותו (מחדש, אם יש צורך).אנא שדרג את wxPython.עיבוד באמצעות רשימת פעולות אחרונה של Phatchסוגר את היישום.RGBA (פיקסלים של 4x8 סיביות, RGB עם מסיכת שקיפות)רדיוסהשתקפותהסרהסך שיוך מ %s ...הסר את הפעולה שנבחרההסרת הפעולה שנבחרה.שנה שםחזרהדווח על באג בLaunchpad.לדגום מחדשדגימת תמונה מחדשדגום מסיכה מחדשרזולוציהמקדם גזירה ימניתסובבסיבוב 180סיבוב 270סיבוב 90סובב בזווית אקראיתעיגולמעוגלפינות מעוגלות או מוצלבותהרץ את %s כ-droplet עם ממשק גרפיהרץ את %s כתוכנית ללא ממשק גרפירוויהשמורשמור בשם... Ctrl-Shift-Sשמור רשימת פעולות בשם...שמור שינויים אחרונים לשומר רשימת פעולותשומר רשימת פעולות בשם חדשבחרבחר רשימת פעולותבחירהצלטשטוש צלהצג תיעוד... Ctrl-Lהצגת כל הפרמטרים של הפעולה.הצג תיאור של רשימת הפעולותהצגת קבצי מעקבהצג רק תוויות של פעולות.גודלצר לי, אך יש להתקין את הפעולה %s לצורך רשימת פעולות זו.מקורציין שפה (לדוגמא en, he או he_IL)נותני חסותריבועהתחל רשימת פעולות חדשעצור בשגיאותמחרוזתבחן את תוספי הפעולות בנתיב:טקסטרשימת הפעולות ריקהאף פעולה אינה מאופשרת.צריכה להיות פעולת 'שמור' בסוף הרשימה.ההרחבות הבאות הותקנו בהצלחה: יש צורך כי גם החבילה python-nautilus תותקן.ריצוףכלים לטיפול ברשימת הפעולות הנוכחיתהפינה השמאלית העליונההפינה הימנית העליונהזווית גזירה עליונהתרגם את Phatch לשפתך.תרגוםסףאמתסוגיםלא ניתן לפתוח את הקובץרשימת פעולות לא שמורהלמעלההשתמש בבוחן התמונות להצגת כל המשתנים.פרטניהסטה אנכיתצפייה במקוראזהרה: python-wxversion אינו מותקן. סימן מיםמה ברצונך לבצע כעת?לבןכתוב תוספת פעולהכתוב טקסט במיקום נתוןניתן להשתמש רק בקבצים בעלי הסיומות הבאותעליך להתקין את הרחבות Win32 לPython כדי להשתמש בתכונה זו.צריך להכיר רק את PIL כדי לכתוב תוספת לPhatch,ביטולפעולותיישוםרקעבי-ליניאריטשטושבוליאנימטההרחב את החיפושמרכזבחירהלחץ על '+' להוספת פעולותמתאריוםעשרוניברירת מחדלפרטיםנקודות לאינץ' (DPI)חידוד קצוותחידוד קצוות רבתבליטשקרקובץשם קובץגודל קובץמצא קצוותמספר ממשיספרייהשם ספרייהמסגרתגובהשעההתעלםתמונותשלםשמאלמרכזדקהמצבחודששם חודשהקרוב ביותרלאלא נמצאו תגיות %sנתיבאנא התקן את pyexiv2מספר שלם חיובירזולוציהימיןספריית עלשנייהחידודגודלדילוגהחלקההחלקה רבהמחרוזתתת ספרייהתגיתמעלההתמרהאמתסוגיום בשבועשם היום בשבוערוחבעםשגיאה בגירסת wxPythonשנהכןphatch-0.2.7/locale/he/LC_MESSAGES/phatch.po0000644000000000000000000033743111346363116020173 0ustar rootroot00000000000000# Hebrew translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-06-13 13:49+0000\n" "Last-Translator: Vyacheslav S. \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "בחינה באמצעות Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "בחינת תגיות EXIF ו-IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "דוגמאות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "הרץ את %s כתוכנית ללא ממשק גרפי" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "הרץ את %s כ-droplet עם ממשק גרפי" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "התעלם משגיאות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "אינטראקטיבי" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "ציין שפה (לדוגמא en, he או he_IL)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "בחן מידע אודות התמונה (metadata) (דורש תוסף EXIF ו-IPTC)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "כלול את כל תת הספריות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "פרטני" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "צר לי, אך יש להתקין את הפעולה %s לצורך רשימת פעולות זו." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "תיעוד" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "ביטול" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "דילוג" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "התעלם" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "לחץ על '+' להוספת פעולות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "פתח" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "פתח רשימת פעולות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "הפעל" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "הפעל את הפעולה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "הוספה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "הוסף פעולה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "הסר" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "הסר את הפעולה שנבחרה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "למעלה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "הזז את הפעולה שנבחרה למעלה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "למטה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "הזז את הפעולה שנבחרה למטה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "בוחן התמונות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "בדוק תגיות EXIF ו-IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "תיאור" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "הצג תיאור של רשימת הפעולות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "בחר קובץ רשימת פעולות..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "שמור רשימת פעולות בשם..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "יישום" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "מסגרת" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "פעולות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "הסבר HTML ייפתח בדפדפן האינטרנט שלך." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "בחן את תוספי הפעולות בנתיב:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "אם ברצונך לתרום תוספת לPhatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "גרירה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch תוסיף כזו בשבילך, אנא בדוק את האפשרויות שלה." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "שמור שינויים אחרונים ל" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "בחר רשימת פעולות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "בחר ספרייה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "בחר ספריית תמונות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "תמונות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "עיון" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "קובץ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "ספרייה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "ברירת מחדל" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "צפייה במקור" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "הרחב את החיפוש" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "נתיב" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "התחל רשימת פעולות חדש" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "פתיחה...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "פותח רשימת פעולות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "שמירה\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "שומר רשימת פעולות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "שמור בשם...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "שומר רשימת פעולות בשם חדש" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "יציאה\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "סוגר את היישום." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "הסר\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "הסרת הפעולה שנבחרה." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "אפשור\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "מאפשר את הפעולה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "מעלה\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "מטה\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "ע&ריכה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "הצג תיאור\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "כלים לטיפול ברשימת הפעולות הנוכחית" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "הרחב הכל\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "הצגת כל הפרמטרים של הפעולה." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "כווץ הכל\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "הצג רק תוויות של פעולות." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "הצג (&V)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "הרצה...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "מריץ את רשימת הפעולות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "הצג תיעוד...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "הצגת קבצי מעקב" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&כלים" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "פתיחת דף הבית של Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "מעבר לתיעוד של Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "פורום...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "מעבר לפורום של Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "תרגם את Phatch לשפתך." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "דווח על באג בLaunchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "אודות Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "מציג מידע אודות היישום." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&עזרה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "צריך להכיר רק את PIL כדי לכתוב תוספת לPhatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "הצג תבנית עבור תוספת פעולה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "קוד" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&אישור" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "כתוב תוספת פעולה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&ביטול" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "הודעה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "המשך בכל זאת" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "אפשרויות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "סוגים" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "עיון בספרייה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "מקור" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "קובץ/ קבצים" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "עצור בשגיאות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "בדוק תמונות קודם" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "דרוס תמונות קיימות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&ביטול" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "תמונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "תווית" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "תגית" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "בוליאני" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "מחרוזת" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "בחירה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "רזולוציה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "בתוך" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "מספר עשרוני" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "מצב" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "לדגום מחדש" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "מספר שלם" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "מספר שלם אי שלילי" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "מספר טבעי (שלם חיובי)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "אופקי" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "רקע" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "הכל" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "היסט" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "הסטה אופקית" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "הסטה אנכית" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "ריצוף" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "סימון" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "אטימות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "שיטה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "מעבד תמונות באצווה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "אמת" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "שקר" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "אמת" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "שקר" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "רשימת פעולות לא שמורה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "רשימות של פעולות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "כל הקבצים" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "תאר כאן את רשימת הפעולות." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "צריכה להיות פעולת 'שמור' בסוף הרשימה." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "עם" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "שייך תמונות לרשימת פעולות ב%s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "שייך תמונות לרשימות פעולות אחרונות ב %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "שייך תמונות לבוחן התמונות ב%s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "הסך שיוך מ %s ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "בחן תגיות EXIF ו-IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "רשימת הפעולות ריקה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "אף פעולה אינה מאופשרת." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "בודק תמונות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch אינה יכולה לטפל ב%d תמונות:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "תמונות לא חוקיות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "לא נבחרו אף קבצים וספריות." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "לא ניתן לפתוח את הקובץ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "מבצע רשימת פעולות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "בחר" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "יום" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "שם ספרייה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "שם קובץ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "גודל קובץ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "ספרייה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "שעה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "דקה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "חודש" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "שם חודש" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "נתיב" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "ספריית על" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "שנייה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "תת ספרייה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "סוג" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "יום בשבוע" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "שם היום בשבוע" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "שנה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "נקודות לאינץ' (DPI)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "גובה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "מצב" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "רוחב" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "גודל" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "השתמש בבוחן התמונות להצגת כל המשתנים." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "ניתן להשתמש רק בקבצים בעלי הסיומות הבאות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "שמאל" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "מרכז" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "ימין" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "מעלה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "מרכז" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "מטה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "חד צבעי (פיקסלים של סיבית אחת, שחור ולבן)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (פיקסלים של 4x8 סיביות, RGB עם מסיכת שקיפות)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "טשטוש" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "מתאר" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "פרטים" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "חידוד קצוות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "חידוד קצוות רב" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "תבליט" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "מצא קצוות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "החלקה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "החלקה רבה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "חידוד" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "הקרוב ביותר" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "בי-ליניארי" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "סיבוב 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "סיבוב 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "סיבוב 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "היפוך ימין-שמאל" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "היפוך מעלה-מטה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "רגיל" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "מחרוזת" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "שלם" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "מספר שלם חיובי" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "רזולוציה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "מספר ממשי" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "בוליאני" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "בחירה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "שגיאה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "אזהרה: python-wxversion אינו מותקן.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "אנא התקן אותו (מחדש, אם יש צורך)." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "אנא שדרג את wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "שגיאה בגירסת wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&רישיון" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "ס&גור" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "אודות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "תודות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "תיעוד" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "תרגום" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "אומנות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "ספריות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "נותני חסות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "רישיון" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "תמונות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "כל הקבצים" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "בחר תמונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "הכנס נתיב URL לתמונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "אנא התקן את pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "לא נמצאו תגיות %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "הו&סף" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "עשרוני" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "לא" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "כן" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "בחירה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "גופנים" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "צל" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "מוסיף צל מטושטש מתחת לתמונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "גבול" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "טשטוש צל" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "רקע" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "אפקט" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "טשטוש, חידוד, תבליט, החלקה,..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "חזרה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "כמות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "התמרה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "משטח ציור" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "יישור אופקי" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "יישור אנכי" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "סימן מים" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "הפעל עם ריצוף, מתיחה ואטימות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "הקטן או הגדל את התמונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "דגימת תמונה מחדש" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "הפוך או סובב ב90 מעלות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "שנה שם" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "קובץ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "צלב" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "מעוגל" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "ריבוע" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "עיגול" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "פינות מעוגלות או מוצלבות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "רדיוס" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "הפינה השמאלית העליונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "הפינה הימנית העליונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "הפינה השמאלית התחתונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "הפינה הימנית התחתונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "מצב המרה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "התאמה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "ניגודיות אוטומטית" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "הבאת ניגודיות תמונה למקסימום" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "שמור" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "חציון" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "מעתיק את ערכו של הפיקסל בעל ערך החציון" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "מסיכה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "הפעל מסיכת שקיפות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "דגום מסיכה מחדש" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "טקסט" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "כתוב טקסט במיקום נתון" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "גופן" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "גודל" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "מתן צבע" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "מתן צבע לתמונה בגווני אפור" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "שחור" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "לבן" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "העתק" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "סיביות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "הפוך את כל ערכי הפיקסלים מתחת לסף" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "סף" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "השווה את היסטוגרמת התמונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "סובב" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "גווני אפור" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "זווית" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "סובב בזווית אקראית" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "הרחב" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "אטימות הרקע" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "היפוך צבעים" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "הפוך את הצבעים בתמונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "השתקפות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "מטיל השתקפות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "עומק" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "מרווח" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "נפוץ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "מעתיק את ערך הפיקסל הנפוץ ביותר" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "מינימום" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "מעתיק את ערך הפיקסל המינימלי" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "פרספקטיבה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "זווית גזירה שמאלית" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "זווית גזירה עליונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "מקדם גזירה תחתונה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "מקדם גזירה ימנית" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "ניגודיות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "התאם מאפור לשחור-לבן" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "מקסימום" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "מעתיק את הפיקסל בעל הערך המקסימלי" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "רוויה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "שנוי רוויה מגווני אפור לרוויה גבוהה" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "בהירות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "התאם בהירות משחור ללבן" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "ההרחבות הבאות הותקנו בהצלחה:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch לא הצליחה להתקין את התכונות המבוקשות." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "עליך להתקין את הרחבות Win32 לPython כדי להשתמש בתכונה זו." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "רשימת פעולות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "לא סופקה רשימת פעולות." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "נתיבי התמונות" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "האם ברצונך להמשיך?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "מה ברצונך לבצע כעת?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch לא הצליחה להתקין את הפעולה ב %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "יש צורך כי גם החבילה python-nautilus תותקן." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "עיבוד תמונות באצווה באמצעות Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "עיבוד באמצעות רשימת פעולות אחרונה של Phatch" #~ msgid "Do not create missing folders" #~ msgstr "אל תיצור ספריות חסרות" #~ msgid "Colour" #~ msgstr "צבע" #~ msgid "Filename" #~ msgstr "שם קובץ" #~ msgid "colours" #~ msgstr "צבעים" #~ msgid "Fade all colours to gray" #~ msgstr "הדהיית כל הצבעים לאפור" #~ msgid "border" #~ msgstr "גבול" #~ msgid "Crop or add border to all sides" #~ msgstr "חיתוך או הוספת גבול לכל הצדדים" #~ msgid "Width" #~ msgstr "רוחב" #~ msgid "Height" #~ msgstr "גובה" #~ msgid "Background Colour" #~ msgstr "צבע רקע" #~ msgid "Shadow Colour" #~ msgstr "צבע הצל" #~ msgid "Force Background Colour" #~ msgstr "כפיית צבע הרקע" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "הקטן את מספר הסיביות של ערוץ הצבע" #~ msgid "Copy the image file" #~ msgstr "העתק את קובץ התמונה" #~ msgid "Rename the image file" #~ msgstr "שינוי שם קובץ התמונה" #~ msgid "Resample Shadow" #~ msgstr "דגימת צל מחדש" #~ msgid "Save an image" #~ msgstr "שמור תמונה" #~ msgid "By offset" #~ msgstr "בהסטה של" #~ msgid "watermark" #~ msgstr "סימן מים" #~ msgid "january" #~ msgstr "ינואר" #~ msgid "february" #~ msgstr "פברואר" #~ msgid "march" #~ msgstr "מרץ" #~ msgid "april" #~ msgstr "אפריל" #~ msgid "may" #~ msgstr "מאי" #~ msgid "june" #~ msgstr "יוני" #~ msgid "july" #~ msgstr "יולי" #~ msgid "august" #~ msgstr "אוגוסט" #~ msgid "september" #~ msgstr "ספטמבר" #~ msgid "october" #~ msgstr "אוקטובר" #~ msgid "november" #~ msgstr "נובמבר" #~ msgid "december" #~ msgstr "דצמבר" #~ msgid "monday" #~ msgstr "יום שני" #~ msgid "tuesday" #~ msgstr "יום שלישי" #~ msgid "wednesday" #~ msgstr "יום רביעי" #~ msgid "thursday" #~ msgstr "יום חמישי" #~ msgid "friday" #~ msgstr "יום שישי" #~ msgid "saturday" #~ msgstr "שבת" #~ msgid "sunday" #~ msgstr "יום ראשון" #~ msgid "new" #~ msgstr "חדש" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "גווני אפור (פיקסלים של 8 סיביות, שחור ולבן)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (פיקסלים של 3x8 סיביות, צבע אמיתי)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (פיקסלים של 4x8 סיביות, הפרדת צבעים להדפסה)" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (פיקסלים של 3x8 סיביות, פורמט צבע של וידיאו)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (פיקסלים של 8 סיביות, מתוך פלטה של 256 צבעים)" #~ msgid "the variable" #~ msgstr "המשתנה" #~ msgid "doesn't exist" #~ msgstr "לא קיים" #~ msgid "invalid syntax" #~ msgstr "תחביר לא חוקי" #~ msgid "for integer" #~ msgstr "למספר שלם" #~ msgid "the file extension" #~ msgstr "סיומת הקובץ" #~ msgid "the float value" #~ msgstr "הערך הממשי" #~ msgid "for float" #~ msgstr "למספר ממשי" #~ msgid "the integer value" #~ msgstr "הערך השלם" #~ msgid "the filename" #~ msgstr "שם הקובץ" #~ msgid "a filename with a valid extension was expected." #~ msgstr "דרוש שם קובץ בעל סיומת חוקית." #~ msgid "does not exist." #~ msgstr "לא קיים." #~ msgid "All selected image types" #~ msgstr "כל סוגי התמונות שנבחרו" #~ msgid "All default image types" #~ msgstr "כל סוגי התמונות בברירת המחדל" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "כיוון שPhatch תיצור את ממשק המשתמש באופן אוטומטי." #~ msgid "Only an image file is allowed." #~ msgstr "רק קבצי תמונה מותרים." #~ msgid "drag & drop any image here" #~ msgstr "גרור תמונה לכאן" #~ msgid "Open image file" #~ msgstr "פתח קובץ תמונה" #~ msgid "&Preview" #~ msgstr "&תצוגה מקדימה" #~ msgid "Copy cell text" #~ msgstr "העתק את הטקסט בתא" #~ msgid "Phatch Version" #~ msgstr "גירסת Phatch" #~ msgid "Create missing folders" #~ msgstr "צור ספריות חסרות" #~ msgid "&File" #~ msgstr "&קובץ" #~ msgid "&Export..." #~ msgstr "ייצוא..." #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "כתוב תוספת פעולה לPhatch באמצעות PIL." #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "שמור מידע אודות התמונה (metadata) (דורש תוסף EXIF ו-IPTC)" #~ msgid "is invalid." #~ msgstr "אינה חוקית." #~ msgid "please email" #~ msgstr "שלח בבקשה דואר אלקטרוני לכתובת" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "בוחן התמונות (exif)\tCtrl-Space" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "דף הבית...\tCtrl-I" phatch-0.2.7/locale/hi/0000755000000000000000000000000011346363116014570 5ustar rootroot00000000000000phatch-0.2.7/locale/hi/LC_MESSAGES/0000755000000000000000000000000011346363116016355 5ustar rootroot00000000000000phatch-0.2.7/locale/hi/LC_MESSAGES/phatch.mo0000644000000000000000000021231111346363116020161 0ustar rootroot00000000000000+t?2CCC&CC!DeDtDD DDD DDDDDE &E 1E?EFEVE^EeEEE E E EEEEF#F3F9FHF`FsF{FFFFFF FFG 'G 3G=GAGJGZG bGoGG GGGG GGH H=HRHYH uHHHHHH H3HHH H III !I%/I!UI(wIGIIIJ J J J@JSJ(fJJ'JJ#JKKKK:KTK&tKK3K9KLL@L*[L.L2LLL L M M -M8MIM \M&}MMMMMMM M MM N" N"/NRNZN aN nN{NN NN NNNN N N O O O O0*O[O bO lOvO'OOOOO OO6PGPcP jP xPPPPPPPPPPP QQ;QKQ!bQ QQQ QQQQQQ+QRR"R8R @RNRWRgR yR"RRRR"S(SGS(LS-uS$SSSSTT(T FTRTZT)_TTTTTT"TTT TU UU 2U>UMU eU oUBzUU,UUV,V IVWV5\VV(V V!VV W$WW-WW W XX0X9XVX\\XXXXXXY $Y 2Y\.\ ]]] %] 0] <]H])O]y]]:]] ]0]*^C^.`^^^^ ^ ^^^'^_ &_3_E_Y_a_f_&k_3__,__ _`` (` 2`<`Q` Y`f`j` `9`` `aaaa6a%>adahaoawaaaaaaaaa*aa aab..b]bvb(b"bbbbcc c'c/c"6cYc]crc&cccc c cc.d6dLd Td`dgd.d d dd dd de e -e"9e/\e%e*e8e(f;?f7{f6fffg>&gegygggg gg&gh h!#hEh [h1|hhhh*h hh ii1iLihi oi ziii i ii ii jj&j 5j CjNjTjgjwj ~j j jj jjjjkk'kkFkk kkkkl l!lAlVltllll l l ll!lmm2m9m ImWmimymm mm mm m mmm mnn.n BnOnfn|nnnn'n#n o$oAoaotoyo o o oooo o ooDpHYp8p#p7p>7q"vqq1qqqq qq rr#r@rGr`rqrurrrr(r&rs"s's(AsHjsHsEs#BtHftt+t3t+u:GuutvvAvvv vvw$w'Cwkwowxw www w'www)x 2x >xJx ax kxvxxxx"xxxxxy,yCy]yuyyy yyy yy yy2z9z>zFzLz Tz azoz~zzz z(z,z {{ { +{ 7{A{]{ c{m{ {{{*{{4{?)|Ai|7|7|.}J}P}X} \} f}r} y} }}}}}}}}}}}} ~~~~%~-~5~<~ @~M~_~f~l~q~z~~ ~~~ ~~~~~~~~~~ ~ ~ >_  (C alrw~  " 84<:q6  $*/FKO<EOk)-6W6݅FC[CuՆA`H+0*AlF+!5%Nt(6<)Db{1OŊP"f9Ƌڋ !;CP_"Ɍa5N?čۍ+i;Ž:׎&>\!q܏))&Pc)}FI/8h/45d ĒJ6/&fR@X!Fzc% 8 B+M(yaEJ3]S qq'?O4_ę%:dAA Q ^h.Л++"ERh2#,8eu&,&ٝ,-&J q"ɞ%d2 ݟ >')fMr:k%ӡ T)~+0D 0=/WF#Σ/L"o  פ? 4A]Qť5ۥ'G"c1DզMChSSJTE|:a&&ê##G2z&=ȫ=DTg }Fά#"(2M[1ϭ  5'MHD>'R -!&O@vC@(j5} 4Դ a%t"/2&b<<ƶ#$=bvx0?O_o Ѹ /E-X,#ù,$+;(gҺ@s~3L_p x,0C$t3ͽ.+> Zh{7( W=S#cd.M |w608&i7=<-Cq*0\-0!*' 7IA4 &)$A?" +YEk:R"uW # 0= S` | :7%]=] r~aSjO-!7,Jw1~*E!!C=S-6 = KMO&m %BQ \)c$PkPob~#LdTB9<M5r45 47kl1 F)p 94'\2u33? `..Y79q"(;,&@S9@.>)^//,7(;` -@6G,~D :6Jq&Y6=5t9[@&]3&2k,H.;(j=6 % 8Ee|1(5-&)T-~5;3>r6OM,^CX+( Ta&q5,0,B\[@&]G3saM  $ME-,&%A g/q;3]']@S,5WCq\tJhR6j7 #/pC #)#)3#]#2[ gz4 -_@;9;;R<<LLU<.%$ J8T$3,@OT"+?k=+"P "?8X"<46M o`hTTcR %  5 ? _ {         , -F t       %  + D Z ,m ? #    7 Q "g   #  "    *  : ,G t   > ; D4Dy - =^ u# ' --K.y (  .,;hx" @>b>=S^3 " #45j}#  fbzG{x`JrET@#<"6~4%\ (!K\%~nw-a8H pZ;(qaM(I9=PsT)Y}F3| W"q@{A0 lRGm@?[s&y! q<'##AhMd7rCr0/u1_6"c}CvnB) c >YJEf4,NZkz `tf>xPh;j]5J>g+6X PQCuLyl jY H L<R'5" U918 *I.o[mS|$i&z +^vT I27#S$\|apwe47^xVMk$VLH.&B3RyK!}bWiiVv-onND! :t UjD5)1?_Xl*EgdOO3m0;S [tX]o`$/s Q:{bAk'9u=,*W:De?& *8+NQFegw2,FB Op=U~/d^h]G(%-+K%_ 2).'cZ"%s" can not be found."%s" is not a valid path.%(amount)d images done in %(duration)s%(mode)s has been converted to %(mode_copy)s to save as %(format)s.%(name)s Shell%(name)s actions%d issues were logged%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List&Action List Droplet...&Add&Add Tag&Add Tag to All Images...&Add... Ctrl-+&All Types&Ask for Help&Batch&Browse Library&Cancel&Close&Collapse All Ctrl-Shift-E&Collapse Automatically&Continue Anyway&Copy Tag&Copy Value&Delete Tag&Delete Tag from All Images...&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Fonts&Forum... Ctrl-F&Help&Image Inspector (exif) Ctrl-I&Image Inspector Droplet...&Insert Tag in Action List...&Inspect...&License&Modify Value for All Images...&New Ctrl-N&No Types&OK&Open...&Open... Ctrl-O&Phatch&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Remove Image&Rename Tag for All Images...&Report a Bug... Ctrl-B&Safe Mode (recommended)&Save Ctrl-S&Select&Show Description Ctrl-H&Show template for action plugin&Skip to Next Action&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&Update&User&View&Website... Ctrl-W3D Edge3D ObjectsA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd TagAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAfterwards you can drag&drop images on the Phatch window to batch them.Align HorizontalAlign VerticalAllAll FilesAll filesAll readable and writable typesAll readable typesAll selected typesAllow Geek action and unsafe expressionsAllow as last actionAlso check if your hard disk not full. Always save on desktopAlways show status dialog when doneAmountAngleAngle Apply a transparency highlightApply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilAre you sure you want to delete this tag from "%s"?Are you sure you want to delete this tag from all images?ArtworkAsAs an example try out the polaroid action list from the library.Associate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastAuto CropAutomatic (use exif orientation)BackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlenderBlender %s is required.BlurBlur AngleBlur RadiusBlur ReflectionBlur SigmaBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBorder WidthBothBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBottom StretchedBox ColorBox DepthBrightnessBrowseBrowse %sBrowse FolderBrowse action lists, masks, highlights and fontsBulletBy OffsetC&ontinueC&reditsCMYK (4x8-bit pixels, color separation)CameraCamera DistanceCamera Horizontal RotationCamera Lens AngleCamera RollCamera Vertical RotationCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthCaptionCenterChangeChange value for all images to:CharcoalCharcoal RadiusCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletClipboardCodeColorColor ValueColor to AlphaColorizeColorize grayscale imageColumnsCommandCommand did not produce an output image: %sCommentsCommonConstrain ProportionsContourContour ColorContrastContrast FactorContrast TresholdConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCopy the original imageCorner Bottom LeftCorner Bottom RightCorner Top LeftCorner Top RightCould not open image with %s.Cover ColorCreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDe&veloper Documentation... Ctrl-PDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDetails DegreeDifferent for each sideDirectionDirection Disable Safe Mode in the Tools menu if you trust this action list.Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDoneDouble click to open or right click for more options.DownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDraw border inside or outsideDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEasily batch process images and edit metadataEffectEnable actionEnter an image urlEqual for all sidesEqualizeEqualize the image histogramErrorError: wxPython %(recommended)s (or at least %(minimal)s) can not be found, but is required.ExamplesExecuteExecute external commandExecute the actionExecute the action listExecuting action listExif and fileExif timeExif_Photo_UserCommentExpandExpanding one action collapses the others.ExplorerFade all colors to grayFalseFebruaryFileFile NameFile timeFile(s)FillFill ColorFill FolderFill ImageFill TypeFilterFitFit ImageFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFloor ColorFloor OpacityFloor ReflectionFolderFontFontsFor more information see the tutorials (Help>Documentation)Force Background ColorFormat %(format)s does not support overwriting "%(tag)s".FridayFrom (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GapGeekGeek actions are not allowed in safe mode.GeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GradientGradient BottomGradient TopGrayscaleGrayscale (8-bit pixels)HighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage SizeImage pathsImagemagickImagesImpossible to load data from action list.Impossible to write tag "%s"InIn Phatch you need to open or create an action list first.Include all subfoldersInclude imageInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LA (8-bit pixels, grayscale with transparency mask)LabelLearn to develop Phatch with Python and PIL.LeftLeft PageLeft Shear AngleLeft StretchedLetterboxLibrariesLibrary Action ListsLicenseLid RotationLogLook up exif and iptc tagsLossless JPEGLossless JPEG transformation does not work on a %s image:Make selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMaximum one parameter "%s" is allowedMayMedianMessageMetadataMethodMiddleMinimumMinutesMirrorMistModeMondayMonochrome (1-bit pixels, black and white)MonthsMotion BlurMove the selected action downMove the selected action upNever run action lists from untrusted sources.No action list provided.No files or folder selected.No images have been processed to report.No save action required at the endNoneNormalNothing has been logged yet.Nothing to do.NovemberObjectOctoberOffsetOffset by distance and wrap aroundOneOne image done in %sOne issue was loggedOnly palette images have transparency.OpacityOpenOpen &Library... Ctrl-Shift-OOpen &RecentOpen &Url...Open an action listOpens a ready-made actionlist from the libraryOpens an actions listOptionsOrientationOutputOverwrite existing imagesP (8-bit pixels, mapped using a color palette)PNG OptimizePage MappingPaintPaint RadiusParameter "%s.*" is missingPaste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch chooses the lossless "Save Tags" action.Phatch could not create the droplet: Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch will generate the user interface automatically.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please check if this action list doesn't contain harmful code.Please delete "%s".Please install "%s" first.Please upgrade your wxPython.PolaroidPositionPosterizePreserve TimestampProcess with recent Phatch action listProgram VersionProjectionPut color under transparent imageQuit the application.RGB (3x8-bit pixels, true color)RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReady!Reduce the number of bits of color channelReflectionRegenerate thumbnailRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename tag for all images to:Rename the original imageRender HeightRender WidthRepeatRepeat imagesReport a bug on launchpad.ResampleResample HighlightResample ImageResample MaskResolutionRightRight Shear FactorRight StretchedRotateRotate 180Rotate 270Rotate 90Rotate with random angleRotate, flip, grayscale and cropRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSafe mode protects you from the execution of possibly harmful scripts. Are you sure you want to disable it?Same Method for All CornersSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save TagsSave and convert to other typesSave last changes toSave only metadata (lossless)Saves an action listSaves an action list asScaleScale Down OnlyScale ImageScale MethodScale ModelScale ReflectionScan for new fonts on your systemSecondsSee "%s" for more details.SelectSelect Color BySelect ObjectSelect ProjectionSelect RotationSelect Rotation for %sSelect action listSelectionSeparateSeptemberShadowShadow BlurShadow ColorSharpenSharpen RadiusSharpen SigmaShear 2d or 3dShift time values of tagsShow &Log... Ctrl-LShow &ReportShow &Report... Ctrl+RShow Advanced OptionsShow Background OptionsShow Floor OptionsShow LogShow Type OptionsShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.Show report of processed imagesSigmoidal ContrastSizeSketchSketch AngleSketch RadiusSketch SigmaSkip To Next &ImageSliderSolarizeSorry, "%s" is not a valid path.Sorry, %s.Sorry, no valid files foundSorry, the action list seems incompatible with %(name)s %(version)s.Sorry, the values of these options will be lost in %(name)s %(version)s:Sorry, time shift can only handle dates before 2038-1-19Sorry, unable to open these images:Sorry, you have the wrong version of Blender installed.Sorry, you need to install the %s action for this action list.Sorry, your settings seem corrupt.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStarsStars ColorStart a new action listStop for errorsStringStudy the action plugins in:SundaySymmetrical tile textureTIFF CompressionTagTag "%s" is not writable.Tag "%s" is read only.Tag (Exif, Iptc)Tag exists alreadyTag should start with "Exif_" or "Iptc_"Tag should start with Exif_* or Iptc_*TamogenTextThe action list is empty.The action list only processes metadata.The droplet command for recent action lists was copied to the clipboard.The droplet command for the image inspector was copied to the clipboard.The droplet command for this action list was copied to the clipboard.The following name(s) are invalid: The tag "%s" is not valid. It should follow the syntax: Exif_* or Iptc_*There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This action list is unsafe:This action list was made by a different %(name)s version.This application is known to be compatible with wxPython version(s) %(recommended)s (or at least %(minimal)s), but you have %(version)s installed.This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' (or at least 'python-wxgtk%(minimal)s').This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTime ShiftTime Shift (seconds)To (Exif, Iptc)Tone altering mosaic generatorTools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTop StretchedTransform to a grayscale pencil drawingTransformationTransformation Translate Phatch in your native language.TranslationTransparentTransparent BackgroundTransposeTransverseTresholdTrueTuesdayTypesUnable extract variables from fileUnable to add tag <%s>Unable to change label.Unable to change tag <%s>Unable to delete tag <%s>Unable to open fileUnable to remove imageUnable to rename tag <%s>Unable to save tag <%s>Unsaved Action ListUnsharpUnsharp RadiusUnsharp SigmaUpUpdate Exif ThumbnailUpdate JPEGUpdate Orientation TagUse FloorUse exif datetimeUse the Image Inspector to list all the variables.UserUtilityValueVerboseVerify InputVerify OutputVerify ProgramVerticalVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWaveWave HeightWave LengthWednesdayWhat do you want to do now?WhiteWrap BothWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYCbCr (3x8-bit pixels, color video format)YearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,You only need to know PIL to write a plugin for Phatch.a filename with a valid extension was expectedabortactionsallantialiasapplicationaspectautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcan not be emptycenterchoiceclick '+' to add actionscolorcompressioncontourdaydecimaldefaultdesktopdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameformatformatdescriptionframegammaheighthourignoreimagesintegerinterlaceinvalid literal "%s" for booleaninvalid literal "%s" for floatinvalid literal "%s" for integerinvalid syntax "%s" for integerleftloadingmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnoneorientationpathplease email: please install pyexiv2pluginpositive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth moresourcestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existthe float value "%s" is negative, but should be positivethe float value "%s" is zero, but should be non-zerothe integer value "%s" is negative, but should be positivethe integer value "%s" is zero, but should be non-zerotoptransformtransparencytruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-10-24 04:00+0000 Last-Translator: nipunreddevil Language-Team: Hindi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) "%s" नही मिला"%s" एक वैध रास्ता नहीं है%(amount)d चित्र %(duration)s में हो गयें%(mode)s बदल कर %(mode_copy)s बन गया, %(format)s में संचय करेगा%(name)s शैल%(name)s कार्य%d विवाद लिखे गये%s हाल ही में प्रयुक्त&अंत करनाPhatch के बारे में&A... Ctrl-Shift-Aकार्य सूची&A&कार्य वाही सूची ड्र्पलेट...जोड़ें (&A)&A टैग जोडे&A टैग सभी चित्रों पर जोडे...जोडें&A... Ctrl-+&A सब प्रकार&A मदद मांगेबैच (&B)लाइब्रेरी ब्राउज़ करें &Bरद्द करें (&C)बंद करें (&C)सभी को संक्षिप्त करें&C Ctrl-Shift-E&Cस्वत: संक्षिप्त&C वैसे भी जारी रखें&C टैग की नकल करें&C नकल माप&D टैग हटाये&D टैग सभी चित्रों से हटाये...अयोग्य बनाये&D Ctrl-0प्रलेखन&D... Ctrl-Mनीचे&D Ctrl-Downछोटी बिंदु&D Ctrl-Dसंपादन (&E)समर्थ बनाये&E Ctrl-1निष्पादित करे&E... Ctrl-Returnसभी का विस्तार करें&E Ctrl-Eनिर्यात (&E)फ़ॉन्ट्स (&F)फोरम&F... Ctrl-Fसहायता (&H)छवि निरीक्षक&I(exif) Ctrl-I&चित्र चित्र निरीषक ड्र्पलेट...&I टैग कार्य वाही सूची में जोडे...&I निरीषण करे...&L&M सभी चित्रों को बदले...नया &N Ctrl-N&N प्रकार नहीठीक (&O)खोलें... (&O)&O खोले... Ctrl-O&Phatchत्यागे&Q Ctrl-Q&हाल ही में प्रयुक्त ड्र्पलेट...हटाये&R Ctrl--&R चित्र हटाये&R सभी चित्रों के लिये टैग का नाम बदले...बग रिपोर्ट करें&R... Ctrl-Bसुरक्षित मोड (अनुशंसित)&S&S संचय Ctrl-Sचुनें (&S)विवरण दिखाएँ&S Ctrl-Hकार्य वाही प्लगिन के लिये टेम्पलेट देखे&Sछोड़ें ,अगली कार्रवाईऔज़ार (&T)&T Phatch का अनुवाद करें... Ctrl-Tऊपर&U Ctrl-Upअद्यतन (&U)उपयोक्ता (&U)देखें (&V)वेबसाइट&W... Ctrl-W३ड किनारा3D वस्तुhtml मदद खोलेपरिचयकार्यकार्य वाही सूचीकार्य वाही सूचीजोड़ेंटैग जोड़ेंकार्य वाही जोडेचमकीलापन काले से सफेद करेंग्रेस्केल से सफेद काला करेंसंतृप्ति को बढायेआप तस्वीरें बैच करने के लिये उन्हें बाद में के Phatch खिड़की पर छोड़ खींच सकते हैंक्षैतिज में लगानाउर्ध्वाधर में लगानासभीसभी फ़ाइलेंसभी फ़ाइलेंसब लिखने व पढने योग्य प्रकारसब पढने योग्य प्रकारसब चुने प्रकारखतरनाक प्रक्रिया को समर्थ करेंअंतिम कर्म के लिये मान्यदेखे कहीं हार्ड दिस्क भरी तो नहीं हमेशा डेस्कटाप पर संचय करेहमेशा दर्जा संवाद दिखाये जब समाप्त होमात्राकोणकोण पारदर्शी उभारेंपारदर्शी मास्कभविष्य त्रुटियों के लिए लागू करें टाइल,स्केल,अपारदशर्ता करेअप्रैलक्या "%s" टैग को हटाये?क्या टैग को सभी चित्रो से हटाये?कलाकारीजैसेएक उदाहरण के रूप में बाहर पुस्तकालय से polaroid कार्य सूची की कोशिश करो.कार्य वाही सूची के साथ चित्र संघ करे यहां %s...चित्र का चित्र निरीषक के साथ संघ करे यहां %s...हाल ही में प्रयुक्त कार्य वाही सूची के साथ चित्र संघ करे यहां %s...अगस्तस्वतःस्वचालित कंट्रास्टस्वत काटेस्वतः(exif)पृष्ठभूमिपृष्ठभूमि रंगपृष्ठभूमि अपारदशर्ताPhatch के साथ छवियों की बैच प्रक्रिया करेंहाल ही में प्रयुक्त कार्य वाही सूची से समूह प्रक्रिया करेंबिट्सकालाखूनब्लैण्डरब्लैण्डर %s चाहियेधुंधला करेंधुंधला कोणधुंधला त्रिज्याधुंधला परावर्तनधुंधला सिगमाधुंधला ,पोलारायड,छाया,अस्पष्ट...धुंधला ,तेज,गाडना, ...बूलियनकिनाराकिनारे का रंगकिनारे की चौड़ाईदोनोंनिचलानीचे बांयीं ओरनिचला बायाँ कोनानीचे दाहिनी ओरनिचला दायाँ कोनानिचला शीयरनीचे से खींचेंबक्से का रंगबक्से का कदचमकीलापनब्राउज़ करेंब्राउज़ करें %sफोल्डर देखेब्राउज़ करें कार्य सूची, मास्क, फ़ॉन्टगोलीपैमाने सेजारी रखें (&o)C&प्रत्ययCMYKकैमराकैमरा दूरीकैमरा क्षैतिज परिक्रमणकैमरा लेन्स कोणकैमरा रोलकैमरा कार्यक्षेत्र परिक्रमणफोल्डर के '%(i)s' चित्र पर %(a)s कार्य वाही नही संभवकार्य वाही नही संभव %(a)s:कैनवासकैनवास कदकैनवास चौडापनकैप्शनमध्यबदलेंसभी चित्रों के लिये संक्खया रखे:कोयलाचारकोल त्रिज्यापहले चित्र चेक करेचित्रों का मिलान हो रहा हैपसंदफाइल चुनेकोई फ़ोल्डर चुनेंकार्य वाही सूची फाइल चुने...कोई छवि चुनेंचित्र फोल्डर चुनेड्रापलेट के लिये फोल्डर चुनेक्लिपबोर्डकोडरंगरंग मापरंग से अल्फारंगीन करेंग्रेस्केल चित्र को रंगेकॉलमआज्ञाकमांड ने नतीजे का चित्र नहीं बनाया %sटिप्पणीसामान्यप्रपोरशन सीमित करेंपरिरेखापरिरेखा रंगकंट्रास्टपरिरेखा मापनपरिरेखा थ्रेशोल्डतरेका बदलेचित्र के रंग का तरेका बदलेअधिकतम पिक्सल माप की नकल करेंमेडियन पिक्सल की नकल करेंसबसे न्यूनतम पिक्सल की नकल करेंसबसे सामान्य पिक्सल की नकल करेंश्रेणी की पिक्सल की नकल करेंनक़ल करेंक्लिपबोर्डपरनकलबनाएं कमान के रूप में कार्य सूची की &Cछवि इंस्पेक्टर की प्रतिलिपि क्लिपबोर्ड में कमान के रूप मेंहाल की कमान नकल के रूप में क्लिपबोर्ड में डाले &eअसली चित्र की नकल करेंनीचे बांयीं ओरनीचे दाहिनी ओरऊपरी बायाँ ओरऊपर दाहिना ओर%s. से चित्र खोलने में असमर्थऊपरी रंगश्रेयछाँट कर काँटेंकैनवास को काटे या बढायेचित्र को छाँट कर काँटेंआरपारमनपसंदन्यूनतमदिन&vडेवलपर दस्तावेज़ीकरण... Ctrl-Pदिसम्बरExif Iptc टैग हटायेटैग हटायेगहराईविसंतृप्त करेंकार्य वाही सूची का वर्णन करेंविवरणजानकारीहर दिशा के लिये अलगदिशाराह यदि आपको इस कार्रवाई की सूची पर विश्वास है सुरक्षित उपकरण मेनू में विधि अक्षम करे.कार्रवाई अक्षम करनाइस अनुप्रयोग के बारे में जानकारी प्रदर्शित करेंचित्रों का पहले निरीषण ना करेक्या आप जारी रखना चाहते हैं?क्या पुनः लिखना चाहते हैं?दस्तावेज़ीकरणसम्पन्नडबल क्लिक करें और विकल्प के लिए.नीचेचित्र को छोटा करेखीचें व छोड़ेंचित्र के किनारो पर बनायेकिनारा भीतर या बाहर बनायेPhatch की छोटी बिंदु पर किसी भी फ़ाइलों और / या फ़ोल्डर्स छोड़े उनकी बैच प्रक्रिया के लिए दायाँ क्लिक करें या डबल क्लिक सामान्य देखने के लिए स्विच करने केफोटो पर धुंधली छाया डालेपरावर्तन बनायेमेटाडाटा को बदले,चित्रों की समूह प्रक्रिया करेंप्रभावसक्षम करें कार्रवाईचित्र url डालेहर दिशा के लिये समानइक्वलाइज़चित्र के हिस्टोग्र्म इक्वलाइज़ करेंत्रुटिगलती wxPython %(recommended)s या कम से कम %(minimal)s जरूरी,नही मिलेउदाहरणचलाएँबाहरी कमांड चलायेकार्य को चलायेकार्रवाई की सूची चलाएँकार्य वाही सूची चलायेंइक्ङफ,फ़ाइलइक्ङफ समयExif_फोटो टिपणणीविस्तारएक कार्रवाई के विस्तार से दूसरे संक्षिप्त होएक्सप्लोररसभी रंग हल्के करेंअसत्यफरवरीफ़ाइलफाइल नामफ़ाइल समयफाइलभरेंभराव रंगफोल्डर भरेंचित्र भरेंभरने की विधिफ़िल्टरअनुरूपचित्र को फिट करेंपलटेंबायाँ दायाँ पलटेनीचे ऊपर पलटे९० डिग्री घुमायेफ्लोटजमीन रंगजमीन अपारदशर्ताजमीन प्रतिबिंबफ़ोल्डरफ़ॉन्टफ़ॉन्ट्सअधिक जानकारी के लिए देखें ट्यूटोरियल (सहायता> दस्तावेज़ीकरण)ष्ठभूमि रंग दबाव से डालेप्रारूप %(format)s %(tag)s" के ऊपर लिखने का समर्थन नहीं करताशुक्रवारसे(Exif, Iptc)GPS गणनाGPS रिपोर्टअंतरबुद्घिमानसुरक्षित मोड में geek कार्रवाई की अनुमति नहीं हैभूमि टैगPhatch प्रलेखन पर जाएँPhatch मंच पर जाएँPhatch मुखपृष्ठ पर जाएँप्रवणतानिचला ग्रेडियन्टऊपरी ग्रेडियन्टग्रेस्केल८ रंगउभारेंविवाद नहींक्षैतिजक्षैतिज जस्टिफिकेशनक्षैतिज पैमानाघंटेयदि आप %s पुनः आरंभ करे, कार्रवाई के संदर्भ मेनू में प्रकट होगा.अगर फैच के लिये प्लगिन लिखना चाहेगल्तियों पर घ्यान ना देचित्रचित्र निरीषकचित्र आकारचित्र पथचित्र जादूचित्रकार्रवाई के लिए सूची से डेटा लोड असंभव"%s" टैग लिखना असंभवभीतरPhatch में आप एक क्रिया की सूची पहले बनाये या खोलेसभी सबफोल्डर को रखेंचित्र को शामिल करेफान्ट चालू करेEXIF IPTC टैग का निरीषण करेEXIF & IPTC टैग का निरीषण करेमेटाडाटा का निरीषण करेफैच से निरीषण करेपूर्णांकपूर्णांक+पूर्णांक+०अंतःक्रियात्मकचित्र मान्य नही हैउलटेंथ्रेशोल्ड के ऊपर सारी पिक्सेल पलटेचित्र के रंग उलटेंJPEG गुणJPEG अधिकतम जगहJPEG आकार सहनशीलताजनवरीजुलाईजूनवर्तमान चित्र को सिथ्र रखेंग्रेस्केल पारदर्शीलेबलजानें पायथन और पायथन इमेजिंग लाइब्रेरी के साथ Phatch विकसित करने के लिएबायाँबायाँ पृष्ठबायाँ शीयर कोणबायें से खींचेंडाक डब्बालाइब्रेरियाँपुस्तकालय कार्य सूचियाँलाइसेंसडब्बा घुमायेलॉगiptc,exif टैग देखेJPEG बिना नुकसान के%s पर बिना नुकसान के रूपांतरण असंभववर्तमान रंग पारदर्शी करेंचित्र छोटा या बडा करेंमार्चचिह्नितमास्कचित्र कंट्रास्ट को अधिकतम करेंअधिकतमअधिकतम एक पैरामीटर"%s" की अनुमति हैमईमेडियनसंदेशमेटाडाटाविधिमध्यन्यूनतममिनटप्रतिबिंबधुंधप्रकारसोमवार१ रंगमहीनेगति धुंधलाचुने कार्य को नीचे करेचुने कार्य को ऊपर करेकभी अविश्वस्त स्रोतों से कार्रवाई की सूची न चलाये.कार्य वाही सूची नहीं दीकोइ फ़ाइल अथवा फोल्डर पसंद नहीं करीछवियों के लिए रिपोर्ट संसाधित नही की गयी हैसंचय कर्म को सिथ्र रखने की जरूरत नहींकुछ नहींसामान्यअभी तक कुछ लॉग नहीं किया गया हैकरने को कु‌छ नहींनवम्बरवस्तुअक्तूबरपैमानाऑफसेट करके समेटेएक%s में १ चित्र हो गया१ विवाद लिखा गयाकेवल पैलेट चित्र पारदर्शीअपारदर्शिताखोलेंलाइब्रेरी &Lखोलें... Ctrl-Shift-Oहाल ही का खोलें (&R)&Url खोले...कार्य वाही सूची खोलेलाइब्रेरी से एक के लिए तैयार कार्रवाई की सूची खोलेक्रिया की सूची खोलता हैविकल्पदिशाआउटपुटमौजूदा छवियाँ अधिलेखित करेंPPNG बेहतर करेपृष्ठ का मिलानपेंटपेंट त्रिज्या"%s.*" पैरामीटर उपसिथ्त नहींइस कमान को एक लांचर में चिपकाएँपथपेंसिल से बनायेपरिप्रेक्ष्यफैच %d चित्रों को नही संभाल सकताPhatch दोषरहित "सहेजें टैग कार्रवाई" चुनता हैफैच ड्रापलेट बनाने में असमर्थ Phatch %s में कार्रवाई स्थापित नहीं कर सका :Phatch अनुरोध की गयी सुविधा स्थापित करने में असमर्थफैच ड्रापलेट बनाने में समर्थPhatch ने खुद को Windows Explorer से हटाने की कोशिश कीPhatch तुम्हारे लिए एक जोड़ेगा, कृपया अपनी सेटिंग्स की जाँच करेगाफैच खुद इन्टरफेस बनायेगा%s से फैचफोटो की समूह प्रक्रियादोबारा इन्सटाल करेंकृपया जाँच करें कि कार्रवाई की सूची हानिकारक कोड को शामिल नहीं करता"%s" हटायेपहले "%s" इन्सटाल करेंनया wxPython इन्सटाल करेंपोलारायडस्थानपोस्टराइजसमय के चिंह को बचायेहाल ही में Phatch कार्य सूची के साथ प्रक्रियाअनुप्रयोग संक्खयाप्रोजेक्शनपारदर्शी चित्र में रंग भरेआवेदन छोड़ोलाल हरा नीलालाल हरा नीला पारदर्शीत्रिज्याश्रेणीतैयाररंग के बिट्स कम करेंपरावर्तनपुनः थम्भनेल बनायेहटाएँयहां का संघ हटाये %s...चुने कार्य को हचायेचयनित कार्रवाई निकालें.पुनः नाम देंटैग को पुनः नाम देटैग को पुनः नाम देसभी चित्रों के लिये टैग का नाम रखे:चित्र को पुनः नाम देंरेंडर कदरेंडर चौडापनदोहराएँछवियाँ दोहराएँlaunchpad पर बग रिपोर्ट करेंपुनः सैम्पल करनापुनः सैम्पल कर के उभारेंचित्र पुनः सैम्पल करेमास्क को पुनः सैम्पल करेरिसॉल्यूशनदायाँदाहिना शीयरदायें से खींचेंघुमाएँ१८० डिग्री घुमाये२७० डिग्री घुमाये९० डिग्री घुमायेकिसी भी कोण से घुमाएंघुमाये,ग्रेस्केल,काटेगोलगोलाकारगोल या कटे किनारेपंक्तियाँ%s को gui ड्र्पलेट में चलाये%s को कन्सोल में चलायेसुरक्षित मोड संभवतः हानिकारक लिपियों के निष्पादन से बचाता है क्या आप सुनिश्चित हैं कि आप इसे अक्षम करना चाहते हैं?सभी किनारो के लिये १ तरीकासंतृप्तिशनिवारसंचित करोएसा संचित करें &A ... Ctrl-Shift-Sकार्य वाही सूची का शंचय करे...टैग संचित करेंसंचित करके दूसरे प्रकारो में बदलोबदलाव यहां संचय करेंमेटाडाटा संचित करेंकार्य सूची संचित करेंएक कार्य सूची के रूप में संचित करेंआकार बदलनाकेवल छोटा करेंचित्र का आकार बदलेंपैमाने की विधिआकार माडलपैमाने पर परावर्तनआपके सिस्टम पर नया फोंट के लिए स्कैन करेंसेकेंड"%s" देखे अधिक जानकारी के लियेचुनेंरंग चुनेवस्तु छांटेप्रोजेक्शन छांटेपरिक्रमण चुनेंपरिक्रमण के लिए %s चुनेंकार्य वाही सूची चुनेचुनावपृथकसितंबरछायाधुंधली छायाछाया रंगसुस्पष्टसुस्पष्ट त्रिज्यासुस्पष्ट सिगमा२ड या ३ड को शीयर करेंटैगौं का समय बदलेलॉग दिखाएँ &L... Ctrl-Lरिपोर्ट दिखाएँ (&R)रिपोर्ट दिखाएँ &R... Ctrl+Rविकल्प देखेपृष्ठभूमि विकल्प देखेजमीन के विकल्प देखेकाग देखेलिखने के विकल्प देखेकार्रवाई की सभी मानकों दिखाएँकार्य वाही सूची का विवरण देखेलॉग फ़ाइल दिखाएँकेवल कार्यों के लेबल देखेसंसाधित छवियों की रिपोर्ट दिखाएँसिगमोडल परिरेखाआकारस्केचरेखा चित्र कोणरेखा चित्र त्रिज्यारेखा चित्र सिगमा&I अगली छवि तक छोड़ेस्लाइडरसोलराइज़क्षमा करें, "%s" एक वैध रास्ता नहीं है.माफ करे,%s.कोइ मान्य फ़ाइल नही मिली%(name)s %(version)sक्षमा करें, इन विकल्पों का मूल्य %(name)s %(version)s में खो जाएगाषमा करें, समय बदलाव 2038/1/19 से पहले की तिथियाँ संभाल सकता हैंमाफ करे,चित्रों को खोलने में असमर्थब्लैण्डर का गलत रूपकार्य वाही सूची के लिये %s कार्य इन्सटाल करेंक्षमा करें, अपनी सेटिंग्स भ्रष्ट हैं.स्रोतभाषा बतायेंप्रायोजकसमचतुर्भुजतारेतारों का रंगएक नई कार्रवाई सूची शुरू करेंगलती के लिये रुकेवाक्याँशकार्य प्लगिन पढेरविवारसममित टाइल रुपTIFF आकार कम करेंटैग"%s" टैग लिखना असंभव"%s" टैग केवल लिखने योग्यटैग(Exif, Iptc)टैग पहले से उपसिथ्तटैग "Exif_" या "Iptc_" से प्रारंभ होना चाहियेटैग "Exif_" या "Iptc_" से प्रारंभ होना चाहियेटेमोजेनटेक्स्ट्कार्य वाही सूची खाली हैंकार्य सूची केवल मेटाडेटा पर प्रक्रियाओं कर सकता हैंहाल कार्य सूची के लिए छोटी बूंद कमान क्लिपबोर्ड में कॉपी किया थाछवि निरीक्षक के लिए छोटी बूंद कमान क्लिपबोर्ड में कॉपी किया था.इस कार्रवाई की सूची के लिए छोटी बूंद कमान क्लिपबोर्ड में कॉपी किया था.यह नाम मान्य नहीं है "%s" टैग अमान्य Exif_* या Iptc_* का अनुसण करेकोइ करने योग्य कार्य नहींअंत में संचय प्रक्रिया होनी चाहियेयह विस्तार सफलतापूर्वक स्थापित किया गया है यह क्रिया सूची असुरक्षित है:इस कार्रवाई की सूची में एक अलग संस्करण %(name)s से बनाया गया थायह प्रोग्राम 'python-wxgtk%(recommended)s' या कम से कम 'python-wxgtk%(minimal)s' के साथ ताल में हैं पर यहा %(version)s इन्सटालीड हैंइस प्रोग्राम के लिये 'python-wxversion','python-wxgtk%(recommended)s' या कम से कम 'python-wxgtk%(minimal)s' जरूरीफाइल पहले से उपसिथ्तयह जरूरी है कि python-nautilus संकुल अधिष्ठापित हैगुरुवारटाइलसमय बदलेसमय में बगलावको(Exif, Iptc)मोसायक बनाना वालावर्तमान कार्य सूची को संभालने के लिए उपकरणऊपरीऊपरी बायाँ ओरऊपरी बायाँ कोनाऊपर दाहिना ओरऊपरी दायाँ कोनाऊपरी शीयर कोणऊपर से खींचेंग्रेस्केल में बदलेरूपांतरणरूपांतरण Phatch का अनुवाद अपनी मूल भाषा में करेंअनुवादपारदर्शीपारदर्शी पृष्ठभूमिटृनसपोसपलटेंथ्रेशोल्डसत्यमंगलवारप्रकारफाइल से वेरियेबल निकालने में असमर्थटैग <%s> जोडने में असमर्थलेबल बदलने में असमर्थटैग <%s> बदलने में असमर्थटैग <%s> हटाने में असमर्थफ़ाइल खोलने में असमर्थचित्र हटाने में असमर्थटैग <%s> का नाम बदलने में असमर्थटैग <%s> को संचय करने में असमर्थअसंचित कार्य वाही सूचीअस्पष्टअस्पष्ट त्रिज्याअस्पष्ट सिगमाऊपरExif थम्भनेल बनाये पुनःJPEG पुनः बनायेंदिशा टैग पुनः बनायेजमीन प्रयोग करेंइक्ङफ दिन समय प्रयोग करेचित्र निरीषक से वेरियेबल देखेउपयोगकर्ताउपयोगितामूल्यवाचालइन्पुट जांचेनतीजा जांचेप्रोग्राम जांचेउर्ध्वाधरउर्ध्वाधर जस्टिफिकेशनउर्ध्वाधर पैमानस्त्रोत देखेखींचें और ड्रॉप फ़ाइलें एक छोटी बिंदु के रूप में देखेचेतावनी python-wxversion इन्सटालीड नहीं जलचिह्नलहरलहर कदलहर चौडापनबुद्धवारअब क्या करना चाहते है?सफ़ेददोनों लपेटेंकार्य वाही प्लगिन लिखेटैग लिखेटैग में नया माप लिखेजगह पर टेक्स्ट् लिखेYCbCrवर्षकेवल इनही इकस्टेनशन वाली फाइल प्रयोग करेंटेक्सट की तरह नये लान्चर में चिपकायेइस सुविधा के लिए पायथन Win32 एक्सटेंशन्स स्थापित करने की आवश्यकताप्लगिन लिखने के लिये कवल PIL जरूरीप्लगिन लिखने के लिये कवल PIL जरूरीमान्य फाइल इकस्टेनशन की उम्मीदरद्द करेंकार्यसभीइन्टी अलीयसअनुप्रयोगइसपेक्टस्वचालितपृष्ठभूमिदो बक्सेद्विरेखीयघुंघलाबूलियननीचेखोज बडायेखाली नही छोड सकतेकेंद्रविकल्पclick '+' to add actionsरंगकम करनारूप-रेखादिनसंक्खया बिंदूमूलभूतडेस्कटॉपविस्तारडीपीआईकिनारे को सुघारेकिनारे को ज्यादा सुघारेउभार कर लिखेंअसत्यफ़ाइलफ़ाइलनामफाइल आकारफ़िल्टरकिनारे ढूंढेफ्लोटफ़ोल्डरफोल्डर का नामफॉर्मेटफारमेट विवरणफ्रेमगामाऊँचाईघंटानज़र अंदाज़ करेंछवियाँपूर्णांकइन्टरलेस"%s" बूलियन के लिये अमान्य"%s" फ्लोट के लिये अमान्य"%s" पूर्णांक के लिये अमान्य"%s" पूर्णांक के लिये अमान्यबायाँप्रस्तरमेटाडाटाबिचलामिनटप्रकारमहीनामहीने का नामसबसे पासनहीं%s टैग नही मिलेकुछ नहींदिशापथemail करे pyexiv2 इन्सटाल करेप्लगइन० से बडा पूर्णांक० से बडा पूर्णांकpyexiv2 को इन्सटाल करेसंकल्पदायाँरूटसेकेंडसुस्पष्ट करेंंआकारछोडेंनर्मज्यादा नर्म करेंस्रोतस्ट्रिंगभीतरी फोल्डरटैग"%s" फाइल इकस्टेनशन अमान्य"%s" फाइल नाम उपसिथ्त नहीं"%s" ० से कम फ्लोट है,० से बडा होना चाहिये"%s" ० है,० नही होना चाहिये"%s" ० से बडा पूर्णांक होना चाहिये"%s" ० है,० से बडा पूर्णांक होना चाहियेऊपरपरिवर्तन करेपारदशर्तासत्यप्रकारचेतावनीसप्ताह का दिनसप्ताह के दिन का नामचौड़ाईके साथwxPython ग लत वर्शनवर्षहाँphatch-0.2.7/locale/hi/LC_MESSAGES/phatch.po0000644000000000000000000041465211346363116020200 0ustar rootroot00000000000000# Hindi translation for phatch # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-10-24 04:00+0000\n" "Last-Translator: nipunreddevil \n" "Language-Team: Hindi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "फैच से निरीषण करे" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "EXIF IPTC टैग का निरीषण करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "उदाहरण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "%s को कन्सोल में चलाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "%s को gui ड्र्पलेट में चलाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "हमेशा डेस्कटाप पर संचय करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "गल्तियों पर घ्यान ना दे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "फान्ट चालू करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "अंतःक्रियात्मक" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "वर्तमान चित्र को सिथ्र रखें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "भाषा बतायें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "मेटाडाटा का निरीषण करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "संचय कर्म को सिथ्र रखने की जरूरत नहीं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "सभी सबफोल्डर को रखें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "चित्रों का पहले निरीषण ना करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "खतरनाक प्रक्रिया को समर्थ करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "वाचाल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "टेक्सट की तरह नये लान्चर में चिपकाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "कार्य वाही सूची के लिये %s कार्य इन्सटाल करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "क्षमा करें, इन विकल्पों का मूल्य %(name)s %(version)s में खो जाएगा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" "इस कार्रवाई की सूची के लिए छोटी बूंद कमान क्लिपबोर्ड में कॉपी किया था." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "हाल कार्य सूची के लिए छोटी बूंद कमान क्लिपबोर्ड में कॉपी किया था" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "छवि निरीक्षक के लिए छोटी बूंद कमान क्लिपबोर्ड में कॉपी किया था." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "Phatch में आप एक क्रिया की सूची पहले बनाये या खोले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" "एक उदाहरण के रूप में बाहर पुस्तकालय से polaroid कार्य सूची की कोशिश करो." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" "आप तस्वीरें बैच करने के लिये उन्हें बाद में के Phatch खिड़की पर छोड़ खींच " "सकते हैं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "अधिक जानकारी के लिए देखें ट्यूटोरियल (सहायता> दस्तावेज़ीकरण)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "छवियों के लिए रिपोर्ट संसाधित नही की गयी है" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "विवाद नहीं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "अभी तक कुछ लॉग नहीं किया गया है" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "लॉग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "रद्द करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "छोडें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "नज़र अंदाज़ करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "इस कार्रवाई की सूची में एक अलग संस्करण %(name)s से बनाया गया था" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "click '+' to add actions" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "हाल ही का खोलें (&R)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "खोलें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "कार्य वाही सूची खोले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "चलाएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "कार्य को चलाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "जोड़ें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "कार्य वाही जोडे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "हटाएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "चुने कार्य को हचाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "ऊपर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "चुने कार्य को ऊपर करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "नीचे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "चुने कार्य को नीचे करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "चित्र निरीषक" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "iptc,exif टैग देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "विवरण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "कार्य वाही सूची का विवरण देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "पुस्तकालय कार्य सूचियाँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "कार्य वाही सूची फाइल चुने..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "कार्य वाही सूची का शंचय करे..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "फाइल पहले से उपसिथ्त" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "क्या पुनः लिखना चाहते हैं?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "%(name)s कार्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "%(name)s शैल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "अनुप्रयोग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "फ्रेम" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "कार्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "html मदद खोले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "प्लगिन लिखने के लिये कवल PIL जरूरी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "फैच खुद इन्टरफेस बनायेगा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "कार्य प्लगिन पढे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "अगर फैच के लिये प्लगिन लिखना चाहे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "email करे " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "क्षमा करें, \"%s\" एक वैध रास्ता नहीं है." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "खीचें व छोड़ें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Phatch की छोटी बिंदु पर किसी भी फ़ाइलों और / या फ़ोल्डर्स छोड़े\n" "उनकी बैच प्रक्रिया के लिए\n" "दायाँ क्लिक करें या डबल क्लिक सामान्य देखने के लिए स्विच करने के" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch तुम्हारे लिए एक जोड़ेगा, कृपया अपनी सेटिंग्स की जाँच करेगा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "कार्य सूची केवल मेटाडेटा पर प्रक्रियाओं कर सकता हैं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "Phatch दोषरहित \"सहेजें टैग कार्रवाई\" चुनता है" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "बदलाव यहां संचय करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" "सुरक्षित मोड संभवतः हानिकारक लिपियों के निष्पादन से बचाता है\n" "क्या आप सुनिश्चित हैं कि आप इसे अक्षम करना चाहते हैं?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "ड्रापलेट के लिये फोल्डर चुने" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "फैच ड्रापलेट बनाने में समर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "फैच ड्रापलेट बनाने में असमर्थ " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "कार्रवाई के लिए सूची से डेटा लोड असंभव" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "कार्य वाही सूची चुने" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "क्षमा करें, अपनी सेटिंग्स भ्रष्ट हैं." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "\"%s\" हटाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "देखे कहीं हार्ड दिस्क भरी तो नहीं\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "कोई फ़ोल्डर चुनें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "फाइल चुने" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "चित्र फोल्डर चुने" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "सब चुने प्रकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "सब लिखने व पढने योग्य प्रकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "सब पढने योग्य प्रकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "छवियाँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "&A सब प्रकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "&N प्रकार नही" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "क्लिपबोर्ड" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "ब्राउज़ करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "ब्राउज़ करें %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "फ़ाइल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "फ़ोल्डर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "मूलभूत" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "स्त्रोत देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "खोज बडाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "पथ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "खोलें... (&O)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "&I निरीषण करे..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "&I टैग कार्य वाही सूची में जोडे..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "नया &N\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "एक नई कार्रवाई सूची शुरू करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&O खोले...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "क्रिया की सूची खोलता है" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "लाइब्रेरी &Lखोलें...\tCtrl-Shift-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "लाइब्रेरी से एक के लिए तैयार कार्रवाई की सूची खोले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&S संचय\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "कार्य सूची संचित करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "एसा संचित करें &A ...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "एक कार्य सूची के रूप में संचित करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "क्लिपबोर्डपरनकलबनाएं कमान के रूप में कार्य सूची की &C" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "इस कमान को एक लांचर में चिपकाएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "हाल की कमान नकल के रूप में क्लिपबोर्ड में डाले &e" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "छवि इंस्पेक्टर की प्रतिलिपि क्लिपबोर्ड में कमान के रूप में" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "निर्यात (&E)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "त्यागे&Q\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "आवेदन छोड़ो" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "कार्य सूची&A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "जोडें&A...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "हटाये&R\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "चयनित कार्रवाई निकालें." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "समर्थ बनाये&E\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "सक्षम करें कार्रवाई" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "अयोग्य बनाये&D\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "कार्रवाई अक्षम करना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "ऊपर&U\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "नीचे&D\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "संपादन (&E)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "छोटी बिंदु&D\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "खींचें और ड्रॉप फ़ाइलें एक छोटी बिंदु के रूप में देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "विवरण दिखाएँ&S\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "वर्तमान कार्य सूची को संभालने के लिए उपकरण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "सभी का विस्तार करें&E\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "कार्रवाई की सभी मानकों दिखाएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "सभी को संक्षिप्त करें&C\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "केवल कार्यों के लेबल देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "&Cस्वत: संक्षिप्त" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "एक कार्रवाई के विस्तार से दूसरे संक्षिप्त हो" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "देखें (&V)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "निष्पादित करे&E...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "कार्रवाई की सूची चलाएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "सुरक्षित मोड (अनुशंसित)&S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "छवि निरीक्षक&I(exif)\tCtrl-I" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "उपयोक्ता (&U)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "ब्राउज़ करें कार्य सूची, मास्क, फ़ॉन्ट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "&Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "लाइब्रेरी ब्राउज़ करें &B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "रिपोर्ट दिखाएँ &R...\tCtrl+R" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "संसाधित छवियों की रिपोर्ट दिखाएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "लॉग दिखाएँ &L...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "लॉग फ़ाइल दिखाएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "फ़ॉन्ट्स (&F)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "आपके सिस्टम पर नया फोंट के लिए स्कैन करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "अद्यतन (&U)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "औज़ार (&T)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "वेबसाइट&W...\tCtrl-W" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Phatch मुखपृष्ठ पर जाएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "प्रलेखन&D...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Phatch प्रलेखन पर जाएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "फोरम&F...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Phatch मंच पर जाएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&T Phatch का अनुवाद करें...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Phatch का अनुवाद अपनी मूल भाषा में करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "बग रिपोर्ट करें&R...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "launchpad पर बग रिपोर्ट करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "&vडेवलपर दस्तावेज़ीकरण...\tCtrl-P" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" "जानें पायथन और पायथन इमेजिंग लाइब्रेरी के साथ Phatch विकसित करने के लिए" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "Phatch के बारे में&A...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "इस अनुप्रयोग के बारे में जानकारी प्रदर्शित करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "सहायता (&H)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "सम्पन्न" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "काग देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "रिपोर्ट दिखाएँ (&R)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "तैयार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "डबल क्लिक करें और विकल्प के लिए." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "एक्सप्लोरर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "प्लगिन लिखने के लिये कवल PIL जरूरी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "कार्य वाही प्लगिन के लिये टेम्पलेट देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "कोड" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&A मदद मांगे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "ठीक (&O)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "कार्य वाही प्लगिन लिखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "भविष्य त्रुटियों के लिए लागू करें " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&अंत करना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "&Sछोड़ें ,अगली कार्रवाई" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "&I अगली छवि तक छोड़े" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "संदेश" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&C वैसे भी जारी रखें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "विकल्प" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "प्रकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "फोल्डर देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "स्रोत" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "फाइल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "गलती के लिये रुके" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "पहले चित्र चेक करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "मौजूदा छवियाँ अधिलेखित करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "हमेशा दर्जा संवाद दिखाये जब समाप्त हो" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "छवियाँ दोहराएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "रद्द करें (&C)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "बैच (&B)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "चित्र" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "लेबल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "टैग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "बूलियन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "वाक्याँश" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "पसंद" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "रिसॉल्यूशन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "फाइल नाम" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "भीतर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "फ्लोट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "जैसे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "प्रकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "पुनः सैम्पल करना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "दो बक्से" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "पूर्णांक" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "पूर्णांक+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "पूर्णांक+०" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "क्षैतिज" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "स्लाइडर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "pyexiv2 को इन्सटाल करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "%(mode)s बदल कर %(mode_copy)s बन गया, %(format)s में संचय करेगा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "जनवरी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "फरवरी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "मार्च" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "अप्रैल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "मई" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "जून" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "जुलाई" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "अगस्त" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "सितंबर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "अक्तूबर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "नवम्बर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "दिसम्बर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "सोमवार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "मंगलवार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "बुद्धवार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "गुरुवार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "शुक्रवार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "शनिवार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "रविवार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "केवल पैलेट चित्र पारदर्शी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "फाइल से वेरियेबल निकालने में असमर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "\"%s\" टैग केवल लिखने योग्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "\"%s\" टैग लिखना असंभव" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "\"%s\" टैग लिखना असंभव" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "प्रारूप %(format)s %(tag)s\" के ऊपर लिखने का समर्थन नहीं करता" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "पृष्ठभूमि" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "स्रोत" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" "कमांड ने नतीजे का चित्र नहीं बनाया\n" "%s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "सभी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "प्रोजेक्शन छांटे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "वस्तु छांटे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "परिक्रमण चुनें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "मध्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "मनपसंद" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "मध्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "बायाँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "दायाँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "ऊपरी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "निचला" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "नीचे बांयीं ओर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "नीचे दाहिनी ओर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "ऊपरी बायाँ ओर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "ऊपर दाहिना ओर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "दिशा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "स्थान" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "पैमाना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "क्षैतिज पैमाना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "उर्ध्वाधर पैमान" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "क्षैतिज जस्टिफिकेशन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "उर्ध्वाधर जस्टिफिकेशन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "पैमाने से" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "टाइल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "आकार बदलना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "चिह्नित" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "अपारदर्शिता" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "विधि" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "स्वतः" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "मेटाडाटा को बदले,चित्रों की समूह प्रक्रिया करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "फोटो की समूह प्रक्रिया" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "सत्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "असत्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "सत्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "असत्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "असंचित कार्य वाही सूची" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "कार्य वाही सूची" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "सभी फ़ाइलें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "कार्य वाही सूची का वर्णन करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "अंत में संचय प्रक्रिया होनी चाहिये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "के साथ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s हाल ही में प्रयुक्त" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "कार्य वाही सूची के साथ चित्र संघ करे यहां %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "हाल ही में प्रयुक्त कार्य वाही सूची के साथ चित्र संघ करे यहां %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "चित्र का चित्र निरीषक के साथ संघ करे यहां %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "यहां का संघ हटाये %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "&कार्य वाही सूची ड्र्पलेट..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "&हाल ही में प्रयुक्त ड्र्पलेट..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "&चित्र चित्र निरीषक ड्र्पलेट..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "हाल ही में प्रयुक्त कार्य वाही सूची से समूह प्रक्रिया करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "EXIF & IPTC टैग का निरीषण करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "\"%s\" देखे अधिक जानकारी के लिये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "%(name)s %(version)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "यह क्रिया सूची असुरक्षित है:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" "यदि आपको इस कार्रवाई की सूची पर विश्वास है सुरक्षित उपकरण मेनू में विधि " "अक्षम करे." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "कभी अविश्वस्त स्रोतों से कार्रवाई की सूची न चलाये." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "कृपया जाँच करें कि कार्रवाई की सूची हानिकारक कोड को शामिल नहीं करता" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "\"%s\" एक वैध रास्ता नहीं है" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "कार्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "सुरक्षित मोड में geek कार्रवाई की अनुमति नहीं है" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "करने को कु‌छ नहीं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "कार्य वाही सूची खाली हैं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "कोइ करने योग्य कार्य नहीं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "चित्रों का मिलान हो रहा है" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "फैच %d चित्रों को नही संभाल सकता" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "चित्र मान्य नही है" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "कोइ मान्य फ़ाइल नही मिली" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "जारी रखें (&o)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "कोइ फ़ाइल अथवा फोल्डर पसंद नहीं करी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "फ़ाइल खोलने में असमर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "कार्य वाही नही संभव %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "फोल्डर के '%(i)s' चित्र पर %(a)s कार्य वाही नही संभव" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "कार्य वाही सूची चलायें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "%s में १ चित्र हो गया" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "%(amount)d चित्र %(duration)s में हो गयें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "१ विवाद लिखा गया" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "%d विवाद लिखे गये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "चुनें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" "\"%s\" टैग अमान्य\n" "Exif_* या Iptc_* का अनुसण करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "लेबल बदलने में असमर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "टैग <%s> हटाने में असमर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "टैग <%s> का नाम बदलने में असमर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "टैग <%s> को संचय करने में असमर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "दिन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "डेस्कटॉप" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "फोल्डर का नाम" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "फ़ाइलनाम" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "फाइल आकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "फ़ोल्डर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "घंटा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "मिनट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "महीना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "महीने का नाम" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "पथ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "रूट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "सेकेंड" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "भीतरी फोल्डर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "प्रकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "सप्ताह का दिन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "सप्ताह के दिन का नाम" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "वर्ष" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "इसपेक्ट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "कम करना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "डीपीआई" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "गामा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "ऊँचाई" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "इन्टरलेस" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "प्रकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "चौड़ाई" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "फॉर्मेट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "फारमेट विवरण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "आकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "पारदशर्ता" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "दिशा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "चित्र निरीषक से वेरियेबल देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "केवल इनही इकस्टेनशन वाली फाइल प्रयोग करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "बायाँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "केंद्र" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "दायाँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "ऊपर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "बिचला" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "नीचे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "१ रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "८ रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "ग्रेस्केल पारदर्शी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "लाल हरा नीला" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "लाल हरा नीला पारदर्शी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "CMYK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "P" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "YCbCr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "घुंघला" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "रूप-रेखा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "विस्तार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "किनारे को सुघारे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "किनारे को ज्यादा सुघारे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "उभार कर लिखें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "किनारे ढूंढे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "नर्म" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "ज्यादा नर्म करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "सुस्पष्ट करेंं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "सबसे पास" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "द्विरेखीय" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "इन्टी अलीयस" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "९० डिग्री घुमाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "१८० डिग्री घुमाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "२७० डिग्री घुमाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "बायाँ दायाँ पलटे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "नीचे ऊपर पलटे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "सामान्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "कुछ नहीं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "खाली नही छोड सकते" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "\"%s\" पूर्णांक के लिये अमान्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "स्ट्रिंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "पूर्णांक" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "\"%s\" पूर्णांक के लिये अमान्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "० से बडा पूर्णांक" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "\"%s\" ० से बडा पूर्णांक होना चाहिये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "० से बडा पूर्णांक" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "\"%s\" ० है,० से बडा पूर्णांक होना चाहिये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "संकल्प" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "फ्लोट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "\"%s\" फ्लोट के लिये अमान्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "\"%s\" ० से कम फ्लोट है,० से बडा होना चाहिये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "\"%s\" ० है,० नही होना चाहिये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "बूलियन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "\"%s\" बूलियन के लिये अमान्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "विकल्प" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "\"%s\" फाइल इकस्टेनशन अमान्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "मान्य फाइल इकस्टेनशन की उम्मीद" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "\"%s\" फाइल नाम उपसिथ्त नहीं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "\"%s\" नही मिला" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "\"%s.*\" पैरामीटर उपसिथ्त नहीं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "अधिकतम एक पैरामीटर\"%s\" की अनुमति है" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "स्वचालित" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "कुछ नहीं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "टैग \"Exif_\" या \"Iptc_\" से प्रारंभ होना चाहिये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "पहले \"%s\" इन्सटाल करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "%s. से चित्र खोलने में असमर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "आज्ञा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "आउटपुट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "त्रुटि" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "यह नाम मान्य नहीं है " #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "चुनें (&S)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "चेतावनी python-wxversion इन्सटालीड नहीं\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "गलती wxPython %(recommended)s या कम से कम %(minimal)s जरूरी,नही मिले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "दोबारा इन्सटाल करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" "इस प्रोग्राम के लिये 'python-wxversion','python-wxgtk%(recommended)s' या कम " "से कम 'python-wxgtk%(minimal)s' जरूरी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" "यह प्रोग्राम \n" "'python-wxgtk%(recommended)s' या कम से कम 'python-wxgtk%(minimal)s' के साथ " "ताल में हैं\n" "पर यहा %(version)s इन्सटालीड हैं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "नया wxPython इन्सटाल करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPython ग लत वर्शन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "अनुप्रयोग संक्खया" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "C&प्रत्यय" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "बंद करें (&C)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "परिचय" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "श्रेय" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "दस्तावेज़ीकरण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "अनुवाद" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "कलाकारी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "लाइब्रेरियाँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "प्रायोजक" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "लाइसेंस" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "टैग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "Exif_फोटो टिपणणी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "मूल्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "चेतावनी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "टैग जोड़ें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "सभी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "क्या \"%s\" टैग को हटाये?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "क्या टैग को सभी चित्रो से हटाये?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "टैग \"Exif_\" या \"Iptc_\" से प्रारंभ होना चाहिये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "टैग पहले से उपसिथ्त" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "चित्र" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "सभी फ़ाइलें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "&C नकल माप" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "&A टैग जोडे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "&D टैग हटाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "&Url खोले..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "&R चित्र हटाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "&C टैग की नकल करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "&A टैग सभी चित्रों पर जोडे..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "&D टैग सभी चित्रों से हटाये..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "&R सभी चित्रों के लिये टैग का नाम बदले..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "&M सभी चित्रों को बदले..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "टैग <%s> जोडने में असमर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "चित्र हटाने में असमर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "सभी चित्रों के लिये टैग का नाम रखे:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "सभी चित्रों के लिये संक्खया रखे:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "टैग <%s> बदलने में असमर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "माफ करे,%s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "माफ करे,चित्रों को खोलने में असमर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "कोई छवि चुनें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "चित्र url डाले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "pyexiv2 इन्सटाल करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "%s टैग नही मिले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "जोड़ें (&A)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "संक्खया बिंदू" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "प्रस्तर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "नहीं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "हाँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "चुनाव" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "फ़ॉन्ट्स" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "छाया" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "फ़िल्टर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "फोटो पर धुंधली छाया डाले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "किनारा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "धुंधली छाया" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "पृष्ठभूमि रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "छाया रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "ष्ठभूमि रंग दबाव से डाले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "चित्र को फिट करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "डाक डब्बा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "चित्र का आकार बदलें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "आकार माडल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "दोनों लपेटें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "पृथक" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "ऊपरी रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "पृष्ठ का मिलान" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "बायाँ पृष्ठ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "बक्से का रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "बक्से का कद" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "डब्बा घुमाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "कैमरा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "कैमरा क्षैतिज परिक्रमण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "कैमरा कार्यक्षेत्र परिक्रमण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "कैमरा रोल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "कैमरा लेन्स कोण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "कैमरा दूरी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "जमीन के विकल्प देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "जमीन प्रयोग करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "जमीन रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "जमीन प्रतिबिंब" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "जमीन अपारदशर्ता" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "पारदर्शी पृष्ठभूमि" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "पृष्ठभूमि विकल्प देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "पृष्ठभूमि" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "प्रवणता" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "पारदर्शी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "ऊपरी ग्रेडियन्ट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "निचला ग्रेडियन्ट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "स्वत काटे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "तारे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "तारों का रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "धुंध" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "ब्लैण्डर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "प्लगइन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "3D वस्तु" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "ब्लैण्डर का गलत रूप" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "ब्लैण्डर %s चाहिये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "रेंडर चौडापन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "रेंडर कद" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "वस्तु" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "चित्र आकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "परिक्रमण के लिए %s चुनें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "प्रभाव" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "धुंधला ,तेज,गाडना, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "फ़िल्टर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "दोहराएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "मात्रा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "परिवर्तन करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "ऑफसेट करके समेटे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "कैनवास" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "कैनवास को काटे या बढाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "कैनवास चौडापन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "कैनवास कद" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "क्षैतिज में लगाना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "उर्ध्वाधर में लगाना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "रंग से अल्फा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "वर्तमान रंग पारदर्शी करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "रंग चुने" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "रंग माप" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "जलचिह्न" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "टाइल,स्केल,अपारदशर्ता करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "विसंतृप्त करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "सभी रंग हल्के करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "चित्र छोटा या बडा करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "प्रपोरशन सीमित करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "चित्र पुनः सैम्पल करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "केवल छोटा करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "टृनसपोस" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "९० डिग्री घुमाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "कॉलम" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "पंक्तियाँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "दोनों" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "उर्ध्वाधर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "प्रतिबिंब" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "सममित टाइल रुप" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "दिशा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "पुनः नाम दें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "फ़ाइल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "चित्र को पुनः नाम दें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "आरपार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "गोलाकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "समचतुर्भुज" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "गोल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "गोल या कटे किनारे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "त्रिज्या" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "सभी किनारो के लिये १ तरीका" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "ऊपरी बायाँ कोना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "ऊपरी दायाँ कोना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "निचला बायाँ कोना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "निचला दायाँ कोना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "उभारें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "पारदर्शी उभारें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "पुनः सैम्पल कर के उभारें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "पारदर्शी चित्र में रंग भरे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "भरें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "तरेका बदले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "चित्र के रंग का तरेका बदले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "अनुरूप" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "चित्र को छोटा करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "खून" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "स्वचालित कंट्रास्ट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "चित्र कंट्रास्ट को अधिकतम करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "न्यूनतम" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "संचित करो" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "संचित करके दूसरे प्रकारो में बदलो" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "लिखने के विकल्प देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "PNG बेहतर करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "JPEG गुण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "JPEG अधिकतम जगह" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "JPEG आकार सहनशीलता" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "TIFF आकार कम करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "मेटाडाटा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "मेडियन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "मेडियन पिक्सल की नकल करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "इक्ङफ समय" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "फ़ाइल समय" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "इक्ङफ,फ़ाइल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "समय बदले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "मेटाडाटा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "टैगौं का समय बदले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "बदलें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "इक्ङफ दिन समय प्रयोग करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "सेकेंड" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "मिनट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "घंटे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "दिन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "महीने" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "वर्ष" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "षमा करें, समय बदलाव 2038/1/19 से पहले की तिथियाँ संभाल सकता हैं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "मास्क" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "पारदर्शी मास्क" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "मास्क को पुनः सैम्पल करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "टेक्स्ट्" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "जगह पर टेक्स्ट् लिखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "फ़ॉन्ट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "आकार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "रंगीन करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "ग्रेस्केल चित्र को रंगे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "काला" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "सफ़ेद" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "नक़ल करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "असली चित्र की नकल करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "पोस्टराइज" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "रंग के बिट्स कम करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "बिट्स" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "टैग लिखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "टैग में नया माप लिखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "टैग(Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "हर दिशा के लिये समान" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "हर दिशा के लिये अलग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "किनारा भीतर या बाहर बनाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "किनारे की चौड़ाई" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "श्रेणी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "श्रेणी की पिक्सल की नकल करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "सोलराइज़" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "थ्रेशोल्ड के ऊपर सारी पिक्सेल पलटे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "थ्रेशोल्ड" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "इक्वलाइज़" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "चित्र के हिस्टोग्र्म इक्वलाइज़ करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "स्वतः(exif)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "छाँट कर काँटें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "घुमाएँ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "पलटें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "ग्रेस्केल" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "पुनः थम्भनेल बनाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "पलटें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "%s पर बिना नुकसान के रूपांतरण असंभव" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "रूपांतरण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "कोण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "समय के चिंह को बचाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "विकल्प देखे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "JPEG पुनः बनायें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "Exif थम्भनेल बनाये पुनः" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "दिशा टैग पुनः बनाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "टिप्पणी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "रूपांतरण " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "कोण " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "राह " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "उपयोगिता" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "JPEG बिना नुकसान के" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "घुमाये,ग्रेस्केल,काटे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "चित्र को छाँट कर काँटें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "टेमोजेन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "मोसायक बनाना वाला" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "भरने की विधि" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "चित्र भरें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "फोल्डर भरें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "किसी भी कोण से घुमाएं" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "विस्तार" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "पृष्ठभूमि अपारदशर्ता" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "उलटें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "चित्र के रंग उलटें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "भूमि टैग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "GPS गणना" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "GPS रिपोर्ट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "समय में बगलाव" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "परावर्तन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "परावर्तन बनाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "गहराई" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "अंतर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "धुंधला परावर्तन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "पैमाने पर परावर्तन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "पैमाने की विधि" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "सामान्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "सबसे सामान्य पिक्सल की नकल करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "न्यूनतम" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "सबसे न्यूनतम पिक्सल की नकल करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "परिरेखा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "चित्र के किनारो पर बनाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "परिरेखा रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "भराव रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "चित्र को शामिल करे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "ऊपर से खींचें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "नीचे से खींचें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "बायें से खींचें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "दायें से खींचें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "ऊपरी बायाँ ओर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "ऊपर दाहिना ओर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "नीचे बांयीं ओर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "नीचे दाहिनी ओर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "उपयोगकर्ता" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "परिप्रेक्ष्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "२ड या ३ड को शीयर करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "प्रोजेक्शन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "बायाँ शीयर कोण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "ऊपरी शीयर कोण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "निचला शीयर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "दाहिना शीयर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "कंट्रास्ट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "ग्रेस्केल से सफेद काला करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "टैग संचित करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "मेटाडाटा संचित करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "एक" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "टैग हटाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Exif Iptc टैग हटाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "अधिकतम" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "अधिकतम पिक्सल माप की नकल करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "संतृप्ति" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "संतृप्ति को बढाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "टैग को पुनः नाम दे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "टैग को पुनः नाम दे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "से(Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "को(Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "चमकीलापन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "चमकीलापन काले से सफेद करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "३ड किनारा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "धुंधला करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "गोली" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "कोयला" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "गति धुंधला" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "पेंसिल से बनाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "पेंट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "पोलारायड" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "सुस्पष्ट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "सिगमोडल परिरेखा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "अस्पष्ट" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "लहर" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "चित्र जादू" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "धुंधला ,पोलारायड,छाया,अस्पष्ट..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "किनारे का रंग" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "कैप्शन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "चारकोल त्रिज्या" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "परिरेखा मापन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "परिरेखा थ्रेशोल्ड" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "धुंधला त्रिज्या" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "धुंधला सिगमा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "धुंधला कोण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "पेंट त्रिज्या" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "सुस्पष्ट त्रिज्या" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "सुस्पष्ट सिगमा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "रेखा चित्र त्रिज्या" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "रेखा चित्र सिगमा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "रेखा चित्र कोण" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "अस्पष्ट त्रिज्या" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "अस्पष्ट सिगमा" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "लहर कद" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "लहर चौडापन" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "स्केच" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "ग्रेस्केल में बदले" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "जानकारी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "बुद्घिमान" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "बाहरी कमांड चलाये" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "प्रोग्राम जांचे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "इन्पुट जांचे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "नतीजा जांचे" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "अंतिम कर्म के लिये मान्य" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "यह विस्तार सफलतापूर्वक स्थापित किया गया है\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch अनुरोध की गयी सुविधा स्थापित करने में असमर्थ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch ने खुद को Windows Explorer से हटाने की कोशिश की" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "इस सुविधा के लिए पायथन Win32 एक्सटेंशन्स स्थापित करने की आवश्यकता" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "कार्य वाही सूची" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "कार्य वाही सूची नहीं दी" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "चित्र पथ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "क्या आप जारी रखना चाहते हैं?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "अब क्या करना चाहते है?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "यदि आप %s पुनः आरंभ करे, कार्रवाई के संदर्भ मेनू में प्रकट होगा." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch %s में कार्रवाई स्थापित नहीं कर सका :" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "यह जरूरी है कि python-nautilus संकुल अधिष्ठापित है" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Phatch के साथ छवियों की बैच प्रक्रिया करें" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "%s से फैच" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "हाल ही में Phatch कार्य सूची के साथ प्रक्रिया" phatch-0.2.7/locale/hr/0000755000000000000000000000000011346363116014601 5ustar rootroot00000000000000phatch-0.2.7/locale/hr/LC_MESSAGES/0000755000000000000000000000000011346363116016366 5ustar rootroot00000000000000phatch-0.2.7/locale/hr/LC_MESSAGES/phatch.mo0000644000000000000000000000073211346363116020174 0ustar rootroot00000000000000$,89Project-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2008-06-02 10:28+0000 Last-Translator: stani Language-Team: Croatian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:41+0000 X-Generator: Launchpad (build Unknown) phatch-0.2.7/locale/hr/LC_MESSAGES/phatch.po0000644000000000000000000030552711346363116020211 0ustar rootroot00000000000000# Croatian translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2008-06-02 10:28+0000\n" "Last-Translator: stani \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" phatch-0.2.7/locale/hu/0000755000000000000000000000000011346363116014604 5ustar rootroot00000000000000phatch-0.2.7/locale/hu/LC_MESSAGES/0000755000000000000000000000000011346363116016371 5ustar rootroot00000000000000phatch-0.2.7/locale/hu/LC_MESSAGES/phatch.mo0000644000000000000000000007077011346363116020210 0ustar rootroot00000000000000!0,1,K,R,p,u, ,,,,,,,,, --#-2-J-]-e-v-|- ---- --- --- .1.F.M. i.u. {.3... . ... .%.! /B/S/b/ f/ p/z/#//////0 00*02?0r0y0 ~0 0 000 0&0 111 181 =1"I1"l111 1 111 11 11 22 2 $2.2'72_26f22222222233!3?3O3 f3p3u3 {3333333333 34 4"4=4\4z4"44(4-4$5=5E5J5P5U5 ^5j5 p5{5 5 5 55,556 *686(=6 f6r6$67,7 37A7T7]7z77777777778 888 8'8.82878G8W8q8w8~8888888889 9 9 #9.9G9Y9._9 999 9 9 999909':.@:o::: : :::: :::;;;&#;J;P; U;_;g;k;; ;;;;;;;;< <<<"<*<1<6<;<*B<m< t<<<<<<<<=(=1=8=@=G=K=S= X=e=y== === == == = >">8:>;s>7>>> ?#?A?J? S?&]?? ?? ?1?@@ @@&@D@_@{@ @@@@@ @ @@@ @ @ A A&A,A4AOATA'lA AAAAAAABB%B 5BABIBPB `BnB~B BB BB B BBBBC' C#1C UC$cCCCCCC CC7C>DVD1]DDDD DDDDDDEEE4E+PE3|EEEE'EEEF F"F3FBF)RF |F F FFFFFFFF2FGG$G*G2G;GRG bG(nG,G GG GGGG HH6H*UHH4HAH7H5I;ICI GI QI]I dI nIyIIIIIIIII IIIIIIIJJ JJJ!J*J 1J]K]T] k]w]}]]]]]]] ]^ ^&^ 8^C^ ]^j^~^^^^+^^^ ^^^^%_&6_]_e_l_!r___ __________$_``'*`(R`{`"` ``` ````a a a a'a:aRa laxaaaaa(a a a a"b1+b?]b3b bbbc c)c 1c.?c nc|ccc"ccc c cd# d$Dd idsddd dd d ddddee%e De Pe[e{e"eAe eeef!f!Afcfxf fff f f fffg -g 7g CgNgUg dgogxggg)g#gh!-hOhUh\huh }h h%h1hFh3i/:i jiti |iii ii"iiiiij4.j3cj jjj#jj jj k k k (k$4kYkbk kkvk{kkkkkk7k l ll !l +l6lJl]l8rl.lllllm m m&m!>m)`mm2mCm4n 9n EnOn Vnanin rn~nn nn nnn nnn nnn nno ooo!o'o,o 4o>o Do Ro_o eopovo|oooooooooooo o oooo o p &p0p$Cp hp ppp ppppppppp!pq9q-Wqq q qqqq qq qqqqq-O5d;K**aw y'1v%$ ?I6I#[~cRrWn8T.YZ0T J`` &j"j7 5g Mhx"CLi+2 sp|;2^wo _PR@Aeu6^tfodYJ kHQeUaHLtKUx}l<]{pD/:,F v$%z&N'-\ySAu#gmB: |OD[{m XE4X9]3q1(ME f k.4=zW}>!>F3V,8cS(~\iC)+Q/s0)_hnPGVGblB? <=97!@qr NbZ"%s" is not a valid path.&Abort&About Phatch... Ctrl-Shift-A&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Forum... Ctrl-F&Help&License&New Ctrl-N&OK&Open...&Open... Ctrl-O&Quit Ctrl-Q&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Select&Show Description Ctrl-H&Show template for action plugin&Skip to Next Action&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&View3D ObjectsA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd TagAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAlign HorizontalAlign VerticalAllAll FilesAll filesAlways save on desktopAlways show status dialog when doneAmountAngleAngle Apply a transparency maskApply for future errors AprilArtworkAsAssociate Images with Action List in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastAuto CropBackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBlenderBlender %s is required.BlurBlur RadiusBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBorder WidthBothBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBrightnessBrowseBrowse FolderC&ontinueC&reditsCMYK (4x8-bit pixels, color separation)CameraCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCaptionChangeCharcoalCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderClipboardCodeColorColor ValueColor to AlphaColorizeColorize grayscale imageColumnsCommandCommentsCommonConstrain ProportionsContourContour ColorContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCreditsCropCrossDaysDecemberDelete TagsDepthDesaturateDescribe here the action list.DescriptionDirectionDirection Disable actionDisplays information about this application.Do not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFade all colors to grayFalseFebruaryFileFile NameFile(s)FillFill ColorFilterFitFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsFridayGPS Data (gpx)GPS Report (csv)GapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GradientGrayscaleHighlightHorizontalHorizontal JustificationHorizontal OffsetHoursIf you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage SizeImage pathsImagemagickImagesInInclude all subfoldersInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert the colors of an imageJPEG QualityJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LabelLeftLibrariesLicenseLogLook up exif and iptc tagsMake selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMayMedianMessageMetadataMethodMinimumMinutesMirrorMistModeMondayMonochrome (1-bit pixels, black and white)MonthsMotion BlurMove the selected action downMove the selected action upNo action list provided.No files or folder selected.NoneNormalNothing has been logged yet.Nothing to do.NovemberObjectOctoberOffsetOneOpacityOpenOpen &Url...Open an action listOpens an actions listOptionsOrientationOutputOverwrite existing imagesPNG OptimizePaintPaste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch did not succeed to install the requested feature.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please upgrade your wxPython.PolaroidPositionPosterizeProcess with recent Phatch action listProgram VersionProjectionQuit the application.RGB (3x8-bit pixels, true color)RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRepeatReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRightRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save last changes toSaves an action listSaves an action list asScaleScale Down OnlyScale ImageSecondsSelectSelect Color BySelect ObjectSelect RotationSelect action listSelectionSeparateSeptemberShadowShadow BlurShadow ColorSharpenShow &Log... Ctrl-LShow Advanced OptionsShow LogShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSketchSkip To Next &ImageSliderSolarizeSorry, %s.Sorry, no valid files foundSorry, you have the wrong version of Blender installed.Sorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStarsStars ColorStart a new action listStop for errorsStringStudy the action plugins in:SundayTIFF CompressionTextThe action list is empty.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: ThursdayTileTime Shift (seconds)Tools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTransformationTransformation Translate Phatch in your native language.TranslationTransparentTransposeTrueTuesdayTypesUnable to open fileUnsaved Action ListUnsharpUpUse the Image Inspector to list all the variables.UserUtilityValueVerboseVerticalVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWaveWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYCbCr (3x8-bit pixels, color video format)YearsYou can only use files with the following extensionsYou need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsallantialiasapplicationaspectautomaticbackgroundbicubicbilinearblurbooleanbottomcenterchoiceclick '+' to add actionscolorcompressioncontourdaydecimaldefaultdesktopdetaildpiembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframegammaheighthourignoreimagesintegerleftloadingmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnonepathplease install pyexiv2pluginpositive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsourcestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existthe integer value "%s" is negative, but should be positivethe integer value "%s" is zero, but should be non-zerotoptransformtransparencytruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: Phatch 0.0.bzr157-1 Report-Msgid-Bugs-To: POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-03-08 18:46+0000 Last-Translator: hunludvig Language-Team: Hungarian MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) "%s" nem rvnyes elrsi t.&Mgsem&A Phatch-rl... Ctrl-Shift-A&Hozzads&Hozzads... Ctrl-+&Segtsg krse&Ktegelt&Mgsem&Bezrs&Mindet sszecsuk Ctrl-Shift-E&Folytats mindenkppen&Kikapcsol Ctrl-0&Dokumentci... Ctrl-M&Lefel Ctrl-Down&Bedob Ctrl-DS&zerkeszts&Bekapcsol Ctrl-1&Vgrehajt... Ctrl-ReturnMind kinyitja Ctrl-E&kivitel&Forum... Ctrl-F&Sg&Licensz&j Ctrl-N&OK&Megnyits...&Megnyits... Ctrl-O&Kilps Ctrl-Q&Eltvolts Ctrl--Hiba &bejelentse... Ctrl-BM&ents Ctrl-S&Kijells&Lers megjelentse Ctrl-HMutasson elnzetet a parancslista beplhz&lps a kvetkez mveletre&Eszkzk&Phatch fordtsa... Ctrl-TFel&fel Ctrl-Up&NzetTrbeli objektumokA HTML tmutat meg fog nylni a bngszjben.NvjegyMveletParancslistkFeladatlistaHozzadsj cmkeParancs hozzadsaFnyessg igaztsa feketrl fehrreIgazts szrkrl feketre s fehrreVzszintes igaztsFggleges igaztsMindsszes FjlMinden fjlMindig az asztalra mentsenPrbeszdablak mutatsa, ha kszMennyisgSzgSzg tltszsgi maszt alkalmazsaUgyanez a vlaszts a tbbihez prilisGrafikaMintKpek egyeztetse a Feladatlistval %s...Kpek egyeztetse az Aktulis Feladatlistkkal %s...AugusztusAutomatikusAutomatikus kontrasztAutomatikus vgsHttrHttrsznHttr ttetszsgKtegelt kpfeldolgozs a Phatch-elKtegelt feldolgozs a lista alapjnBitekFeketeBlenderBlender %s szksges.ElmossElmoss sugaraElmoss, Polaroid, rnyk, tompts...Homlyosts, lests, dombort, finomt, ...rtkKeretKeretsznKeretvastagsgMindkettLeLe balraBal als sarokLe jobbraJobb als sarokFnyerTallzsMappa bngszseF&olytats&SzerzCMYK (4x8-bit pixel, color separation)KameraNem lehet vgrehajtani a parancsot ( %(a)s ) a kpen ( '%(i)s' ) az albbi mappban:Nem lehet vgrehajtani a parancsot %(a)s:VszonFeliratMdostsRajzsznKpek ellenrzse utnKpek ellenrzseVlasztsVlassza ki a fjlokatKnyvtr vlasztsaVlassza ki a parancslista fjlt...Kp kivlasztsaVlassza ki a kpek mappjtVglapKdSznSzn rtkSznbl alfaSznezsSzrksrnyalat kp sznezseOszlopokParancsMegjegyzsekltalnosArnyok megtartsaKontrKontr sznKontrasztSznmlysgSznmlysg talaktsaMsolja a maximum pixel-rtketA kzprtk msolsaMsolja a minimum pixel-rtketAz ltalnos pixel-rtk msolsaMsolsPar&ancslista msolsa a vgnapra, mint parancs&Kpfelgyel msolsa a vglapra parancskntJ&elenlegi parancs msolsa a vglapraSzerzkVgsKeresztNapDecemberCmkk TrlseMlysgTeltettsg cskkentserja le itt a parancsok listjt.LersIrnyIrny Parancs kikapcsolsaInformcik errl az alkalmazsrlNe ellenrizze a kpeketSzeretn folytatni?DokumentciLeKpcskkents s vgs fix arnybanFogd & viddHzzon fjlokat vagy mappkat erre a Phatch bedobra a ktegelt feldolgozshoz. Jobb kattintssal vagy dupla kattintssal kapcsolhat norml nzetre.Elmosott rnykot tesz a kp alVisszaverds eldobsaEffektParancs engedlyezserja be egy kp URL-jtEgyenltsA kp hisztogramjt egyenltse kiHibaPldkFuttatsParancs vgrehajtsaParancslista vgrehajtsaParancslista vgrehajtsaNyjtsSzrkernyalatosba vltsHamisFebrurFjlFjlnvFjl(ok)KitltsKitlts sznnelSzrIgaztMegfordtsVzszintes tkrzsFggleges tkrzsElforgats vagy tkrzsLebegMappaBetkszletBetkszletekPntekGPS Data (gpx)GPS Report (csv)HzagA Phatch dokumentcijnak megtekintseA Phatch frumnak megtekintseA Phatch weboldalnak megltogatsaSzntmenetSzrkernyalatosKiemeltVzszintesVzszintes igaztsVzszintes eltolsraHa beplt akar a Phatch-hoz kzztenni,Hibk elutastsaKpKpfelgyelKpmretKpek elrsi tvonalaImagemagickKpekInAlmappkban is keresFontok inicializlsaEXIF s IPTC vizsglatMetaadatok vizsglataVizsglat a Phatch-alEgszPozitv egszPozitv egsz, nem nullaInteraktvrvnytelen kpekInvertlsKp szneinek invertlsaJPEG minsgJPEG mrete maximumJPEG mrettrsejanurJliusJniusTartsa meg az eredeti fjlt (ne rja fell)CmkeBalKnyvtrakLicenszNaplExif s iptc tag-ek keresseA kivlasztott szn tltszv tteleA kpet nagyobb vagy kisebb alaktjaMrciusVzjelMaszkKp kontrasztjnak maximalizlsaMaximumMjusKzprtkzenetMetaadatMdszerMinimumPercTkrzsKdMdHtfMonokromatikus (1-bit, fekete fehr)HnapElmoss elmozdtssalA kivlasztott parancs lefel mozgatsaA kivlasztott parancs felfel mozgatsaNincs elrhet feladatlistaNincs fjl vagy mappa kivlasztva.Egyik semNormlA napl mg res.Nincs teend.NovemberObjektumOktberEltolsEgytltszsgMegnyits&Url megnyitsa...Parancslista megnyitsaMegnyit egy parancslisttBelltsokTjolsKimenetLtez kpek fellrsaPNG optimalizlsFestmnyIllesze be ezt a parancsot egy futtatbaElrsi tCeruzavzlatPerspektvaA Phatch nem tud kezelni %d kpet:A Phatch nem tudta telepteni a kvnt jellemzt.A Phatch megprblta magt uninstalllni a Windows Explorerbl.A Phatch ltrehoz egyet, ellenrizze a belltsait.Phatch %sKtegelt kpfeldolgozKrem teleptse.Krem frisstse a wxPythont.PolaroidPozciPoszterizlsFeldolgozs az aktulis Phatch parancslistvalProgramverziVetletKilps a programbl.RGB (3x8-bit pixel, true color)RGBA (4x8-bit, RGB tltszsggal)SugrSorVisszaverdsEltvoltsTrsts megszntetse (%s)...A kivlasztott parancs eltvoltsaEltvoltja a kivlasztott parancsottnevezsTag tnevezseIsmtlsHiba bejelentse a Launchpad-ontmretezsKp tmretezsej maszkolsFelbontsJobbForgats180 fokos forgats270 fokos forgats90 fokos forgatsForgats vletlenszer szggelLekerektsKerektettLekerektett vagy vgott sarkakSorok%s futtatsa mint grafikus droplet%s futtatsa paranccsori programknt, felhasznli fellet nlklTeltettsgSzombatMentsMents &msknt... Ctrl-Shift-SParancslista mentse msknt...Legutbbi mdostsok mentse ideParancslista mentseParancslista mentse msknttmretezsCsak kicsinytsKp tmretezseMsodpercKivlasztsSznvlasztsObjektum kivlasztsaForgats kivlasztsaParancslista kivlasztsaKijellsElvlasztsSzeptemberrnykrnyk elmossrnyksznlests&Napl megjelentse... Ctrl-LA halad opcik megjelentseA napl megtekintseMegjelenti a parancs sszes paramtert.Megjelenti a parancslista lerstMegjelenti a napltCsak a parancsok cmkjt mutatjaMretVzlatUgrs a kvetkez &kpreCsszkaSugarastsBocsi, %s.Bocsi, nem talltam rvnyes fjlokatSajnos rossz verzij Blender kerlt teleptsre.Bocsi, jra be kell lltanod a %s mveletet a vgrehajtsi listhoz!ForrsHelyi nyelv megjellse (pldul en vagy en_GB)TmogatkNgyzetCsillagokCsillagok sznej parancslistaHibra lellSzvegA beplket itt veheti szemgyre:VasrnapTIFF tmrtsSzvegA parancslista res.Nincs engedlyezett parancs.Lteznie kell egy 'Ments' parancsnak a lista vgn.Ezek a kiterjesztsek lettek sikeresen teleptve: CstrtkMozaikIdeltols (msodperc)Eszkzk a parancslista kezelshezFelFel balraBal fels sarokFel jobbraJobb fels saroktalaktstalakts A Phatch lefordtsa az n nyelvre.FordtstltsztalaktsIgazKeddTpusokNem lehet megnyitni a fjltNem mentett parancslistaTomptsFelHasznld a Kpfelgyelt az sszes vltoz listzshozFelhasznlSegdprogramrtkRszletesFgglegesFggleges igaztsFggleges eltolsForrs megjelentseBedob megjelentse fjlok fogd s vidd feldolgozshozFigyelem: a python-wxversion nincs teleptve. VzjelHullmSzerdaMit szeretne tenni?FehrParancslista rsaTag rsaj rtk rsa a tag-beSzveg rsa a megadott pozciraYCbCr (3x8-bit pixel, color video format)vCsak az albbi kiterjeszts fjlokat hasznlhatodTeleptened kell a Python Win32 Kiegsztt ehhez a szolgltatshozCsak a PIL-re van szksge Phatch beplk rshoz,megszaktsparancsoksszesfinomtottprogramnzpontautomatikushttrkbsbilineriselmosslogikai rtkalulkzpvlasztsj mvelet: '+'szntmrtskontrnapdecimlisalaprtelmezettasztalrszletdpidomborthamisfjlfjlnvfjlmretszrlek keresselebegpontosmappamappa nevekeretgammamagassgrakihagyskpekegszbalbetltsmetaadatkzppercmdhnaphnap nevekzeltsnemNem tallhat a %s tagsemmielrsi tkrem teleptse a pyexiv2-tbvtmnypozitv egsz szmpozitv, nullnl nagyobb egsz szma pyexiv2 installlsa szksgesfelbontsjobbrootmsodperclestsmretkihagyssimaforrsszvegalmappatagrvnytelen fjlkiterjeszts "%s"a fjlnv "%s" nem tallhata %s vltoz rtke negatv, de pozitvnak kellene lenniea %s vltoz rtke nulla, ms rtk szksgestetejetalaktstltszsgigaztpusfigyelmeztetshtkznapNapszlessgezzelwxPython verzi hibavigenphatch-0.2.7/locale/hu/LC_MESSAGES/phatch.po0000644000000000000000000034043611346363116020212 0ustar rootroot00000000000000# ree , 2007. # # msgid "" msgstr "" "Project-Id-Version: Phatch 0.0.bzr157-1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-03-08 18:46+0000\n" "Last-Translator: hunludvig \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-2\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Vizsglat a Phatch-al" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "EXIF s IPTC vizsglat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Pldk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "%s futtatsa paranccsori programknt, felhasznli fellet nlkl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "%s futtatsa mint grafikus droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Mindig az asztalra mentsen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Hibk elutastsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Fontok inicializlsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interaktv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Tartsa meg az eredeti fjlt (ne rja fell)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Helyi nyelv megjellse (pldul en vagy en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Metaadatok vizsglata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Almappkban is keres" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Ne ellenrizze a kpeket" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Rszletes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" "Bocsi, jra be kell lltanod a %s mveletet a vgrehajtsi listhoz!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "A napl mg res." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Napl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "megszakts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "kihagys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "kihagys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "j mvelet: '+'" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Megnyits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Parancslista megnyitsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Futtats" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Parancs vgrehajtsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Hozzads" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Parancs hozzadsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Eltvolts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "A kivlasztott parancs eltvoltsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Fel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "A kivlasztott parancs felfel mozgatsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Le" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "A kivlasztott parancs lefel mozgatsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Kpfelgyel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Exif s iptc tag-ek keresse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Lers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Megjelenti a parancslista lerst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Vlassza ki a parancslista fjlt..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Parancslista mentse msknt..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "program" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "keret" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "parancsok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "A HTML tmutat meg fog nylni a bngszjben." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "A beplket itt veheti szemgyre:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Ha beplt akar a Phatch-hoz kzztenni," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Fogd & vidd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Hzzon fjlokat vagy mappkat erre a Phatch bedobra\n" "a ktegelt feldolgozshoz.\n" "Jobb kattintssal vagy dupla kattintssal kapcsolhat norml nzetre." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "A Phatch ltrehoz egyet, ellenrizze a belltsait." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Legutbbi mdostsok mentse ide" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Parancslista kivlasztsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Knyvtr vlasztsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Vlassza ki a fjlokat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Vlassza ki a kpek mappjt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "kpek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "Vglap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Tallzs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Fjl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Mappa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "alaprtelmezett" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Forrs megjelentse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Elrsi t" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Megnyits..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&j\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "j parancslista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Megnyits...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Megnyit egy parancslistt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "M&ents\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Parancslista mentse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Ments &msknt...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Parancslista mentse msknt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Par&ancslista msolsa a vgnapra, mint parancs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Illesze be ezt a parancsot egy futtatba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "J&elenlegi parancs msolsa a vglapra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "&Kpfelgyel msolsa a vglapra parancsknt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&kivitel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Kilps\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Kilps a programbl." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Hozzads...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Eltvolts\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Eltvoltja a kivlasztott parancsot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Bekapcsol\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Parancs engedlyezse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Kikapcsol\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Parancs kikapcsolsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "Fel&fel\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Lefel\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "S&zerkeszts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Bedob\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Bedob megjelentse fjlok fogd s vidd feldolgozshoz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Lers megjelentse\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Eszkzk a parancslista kezelshez" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "Mind kinyitja\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Megjelenti a parancs sszes paramtert." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Mindet sszecsuk\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Csak a parancsok cmkjt mutatja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Nzet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Vgrehajt...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Parancslista vgrehajtsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "&Napl megjelentse...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Megjelenti a naplt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Eszkzk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "A Phatch weboldalnak megltogatsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Dokumentci...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "A Phatch dokumentcijnak megtekintse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "A Phatch frumnak megtekintse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Phatch fordtsa...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "A Phatch lefordtsa az n nyelvre." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "Hiba &bejelentse...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Hiba bejelentse a Launchpad-on" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&A Phatch-rl...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Informcik errl az alkalmazsrl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Sg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "A napl megtekintse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Csak a PIL-re van szksge Phatch beplk rshoz," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "Mutasson elnzetet a parancslista beplhz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Kd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Segtsg krse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Parancslista rsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Ugyanez a vlaszts a tbbihez " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Mgsem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "&lps a kvetkez mveletre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "Ugrs a kvetkez &kpre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "zenet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Folytats mindenkppen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Belltsok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Tpusok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Mappa bngszse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Forrs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Fjl(ok)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Hibra lell" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Kpek ellenrzse utn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Ltez kpek fellrsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "Prbeszdablak mutatsa, ha ksz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Mgsem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Ktegelt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Kp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Cmke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "rtk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Szveg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Vlaszts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Szn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Felbonts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Fjlnv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "In" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Lebeg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Mint" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Md" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "tmretezs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "kbs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Egsz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Pozitv egsz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Pozitv egsz, nem nulla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Vzszintes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Csszka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "a pyexiv2 installlsa szksges" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "janur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Februr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Mrcius" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "prilis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Mjus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Jnius" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Jlius" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "Augusztus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Szeptember" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Oktber" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "November" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "December" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Htf" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Kedd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Szerda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Cstrtk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Pntek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Szombat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Vasrnap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "httr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "forrs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Mind" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Objektum kivlasztsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "Forgats kivlasztsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Bal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Jobb" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Fel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Le" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Le balra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Le jobbra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Fel balra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Fel jobbra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Tjols" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Pozci" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Eltols" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Vzszintes eltols" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Fggleges eltols" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Vzszintes igazts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Fggleges igazts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Mozaik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "tmretezs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Vzjel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "tltszsg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Mdszer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Automatikus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Ktegelt kpfeldolgoz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Igaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Hamis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "igaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "hamis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Nem mentett parancslista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Parancslistk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "sszes Fjl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "rja le itt a parancsok listjt." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Lteznie kell egy 'Ments' parancsnak a lista vgn." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "ezzel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Kpek egyeztetse a Feladatlistval %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Kpek egyeztetse az Aktulis Feladatlistkkal %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Trsts megszntetse (%s)..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Ktegelt feldolgozs a lista alapjn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "\"%s\" nem rvnyes elrsi t." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Mvelet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Nincs teend." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "A parancslista res." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Nincs engedlyezett parancs." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Kpek ellenrzse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "A Phatch nem tud kezelni %d kpet:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "rvnytelen kpek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Bocsi, nem talltam rvnyes fjlokat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "F&olytats" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Nincs fjl vagy mappa kivlasztva." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Nem lehet megnyitni a fjlt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Nem lehet vgrehajtani a parancsot %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" "Nem lehet vgrehajtani a parancsot ( %(a)s ) a kpen ( '%(i)s' ) az albbi " "mappban:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Parancslista vgrehajtsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Kivlaszts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "nap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "asztal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "mappa neve" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "fjlnv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "fjlmret" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "mappa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "ra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "perc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "hnap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "hnap neve" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "elrsi t" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "root" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "msodperc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "almappa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "tpus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "htkznap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "Nap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "v" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "nzpont" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "tmrts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "gamma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "magassg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "md" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "szlessg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "mret" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "tltszsg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Hasznld a Kpfelgyelt az sszes vltoz listzshoz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Csak az albbi kiterjeszts fjlokat hasznlhatod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "bal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "kzp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "jobb" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "teteje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "kzp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "alul" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monokromatikus (1-bit, fekete fehr)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "RGB (3x8-bit pixel, true color)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bit, RGB tltszsggal)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "CMYK (4x8-bit pixel, color separation)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "YCbCr (3x8-bit pixel, color video format)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "elmoss" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "kontr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "rszlet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "dombort" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "lek keresse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "sima" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "lests" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "kzelts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilineris" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "finomtott" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "90 fokos forgats" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "180 fokos forgats" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "270 fokos forgats" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Vzszintes tkrzs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Fggleges tkrzs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Norml" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "semmi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "szveg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "egsz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "pozitv egsz szm" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "a %s vltoz rtke negatv, de pozitvnak kellene lennie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "pozitv, nullnl nagyobb egsz szm" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "a %s vltoz rtke nulla, ms rtk szksges" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "felbonts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "lebegpontos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "logikai rtk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "vlaszts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "rvnytelen fjlkiterjeszts \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "a fjlnv \"%s\" nem tallhat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "automatikus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Egyik sem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Parancs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "Kimenet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Hiba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "&Kijells" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Figyelem: a python-wxversion nincs teleptve.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Krem teleptse." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Krem frisstse a wxPythont." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPython verzi hiba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "Programverzi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "&Szerz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licensz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Bezrs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Nvjegy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Szerzk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dokumentci" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Fordts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Grafika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Knyvtrak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Tmogatk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licensz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "rtk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "figyelmeztets" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "j cmke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "sszes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Kpek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Minden fjl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "&Url megnyitsa..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "Bocsi, %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Kp kivlasztsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "rja be egy kp URL-jt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "krem teleptse a pyexiv2-t" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "Nem tallhat a %s tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Hozzads" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimlis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "betlts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "nem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "igen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Kijells" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Betkszletek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "rnyk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "szr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Elmosott rnykot tesz a kp al" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Keret" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "rnyk elmoss" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Httrszn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "rnykszn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "Kp tmretezse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "Elvlaszts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "Kamera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Httr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "Szntmenet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "tltsz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "Automatikus vgs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "Csillagok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "Csillagok szne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "Kd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "Blender" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "bvtmny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "Trbeli objektumok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "Sajnos rossz verzij Blender kerlt teleptsre." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "Blender %s szksges." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "Objektum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "Kpmret" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Effekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Homlyosts, lests, dombort, finomt, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Szr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Ismtls" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Mennyisg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "talakts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Vszon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Vzszintes igazts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Fggleges igazts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Sznbl alfa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "szn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "A kivlasztott szn tltszv ttele" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "Sznvlaszts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "Szn rtk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Vzjel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Teltettsg cskkentse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Szrkernyalatosba vlts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "A kpet nagyobb vagy kisebb alaktja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Arnyok megtartsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Kp tmretezse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "Csak kicsinyts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "talakts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Elforgats vagy tkrzs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Oszlopok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Sorok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "Mindkett" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Fggleges" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "Tkrzs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Irny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "tnevezs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "fjl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Kereszt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Kerektett" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Ngyzet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Lekerekts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Lekerektett vagy vgott sarkak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Sugr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Bal fels sarok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Jobb fels sarok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Bal als sarok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Jobb als sarok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Kiemelt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Kitlts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Sznmlysg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Sznmlysg talaktsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Igazt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Kpcskkents s vgs fix arnyban" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Automatikus kontraszt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Kp kontrasztjnak maximalizlsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Ments" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "PNG optimalizls" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "JPEG minsg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "JPEG mrete maximum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "JPEG mrettrse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "TIFF tmrts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Metaadat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Kzprtk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "A kzprtk msolsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "metaadat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "Mdosts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Msodperc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Perc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "ra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Nap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Hnap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "v" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Maszk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "tltszsgi maszt alkalmazsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "j maszkols" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Szveg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Szveg rsa a megadott pozcira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Betkszlet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Mret" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Sznezs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Szrksrnyalat kp sznezse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Fekete" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Fehr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Msols" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Poszterizls" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bitek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Tag rsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "j rtk rsa a tag-be" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "Keretvastagsg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Sor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Sugarasts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Egyenlts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "A kp hisztogramjt egyenltse ki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Vgs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Forgats" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "Megfordts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Szrkernyalatos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "talakts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Szg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "A halad opcik megjelentse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Megjegyzsek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "talakts " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Szg " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Irny " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "Segdprogram" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Forgats vletlenszer szggel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Nyjts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Httr ttetszsg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Invertls" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Kp szneinek invertlsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "GPS Data (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "GPS Report (csv)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "Ideltols (msodperc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Visszaverds" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Visszaverds eldobsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Mlysg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Hzag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "ltalnos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Az ltalnos pixel-rtk msolsa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Msolja a minimum pixel-rtket" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Kontr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Kontr szn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Kitlts sznnel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "Felhasznl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspektva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "Vetlet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Kontraszt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Igazts szrkrl feketre s fehrre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Egy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Cmkk Trlse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maximum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Msolja a maximum pixel-rtket" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Teltettsg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Tag tnevezse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Fnyer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Fnyessg igaztsa feketrl fehrre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "Elmoss" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "Rajzszn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "Elmoss elmozdtssal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Ceruzavzlat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "Festmny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "lests" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "Tompts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "Hullm" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Imagemagick" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "Elmoss, Polaroid, rnyk, tompts..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Keretszn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "Felirat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "Elmoss sugara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Vzlat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Ezek a kiterjesztsek lettek sikeresen teleptve:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "A Phatch nem tudta telepteni a kvnt jellemzt." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "A Phatch megprblta magt uninstalllni a Windows Explorerbl." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Teleptened kell a Python Win32 Kiegsztt ehhez a szolgltatshoz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Feladatlista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Nincs elrhet feladatlista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Kpek elrsi tvonala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Szeretn folytatni?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Mit szeretne tenni?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Ktegelt kpfeldolgozs a Phatch-el" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "Phatch %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Feldolgozs az aktulis Phatch parancslistval" #~ msgid "new" #~ msgstr "j" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-bites pixelek, vals sznek)" #~ msgid "doesn't exist" #~ msgstr "nem ltezik" #~ msgid "&Default Types" #~ msgstr "&Alaprtelmezett tpusok" #~ msgid "&File" #~ msgstr "&Fjl" #~ msgid "&Ignore Error" #~ msgstr "&Hiba figyelmen kvl hagysa" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Python konzol...\tCtrl-P" #~ msgid "&Skip To Next Image" #~ msgstr "&Ugrs a kvetkez kpre" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "&Bepl rsa...\tCtrl-W" #~ msgid "All default image types" #~ msgstr "Minden ltalnos kptpus" #~ msgid "All selected image types" #~ msgstr "Minden kivlasztott kptpus" #~ msgid "Background Colour" #~ msgstr "Httrszn" #~ msgid "By offset" #~ msgstr "Eltols" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-bit kppont, szn sztvlaszts)" #~ msgid "Colour" #~ msgstr "Szn" #~ msgid "Create missing folders" #~ msgstr "Hinyz mappk ltrehozsa" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32-bit, lebegpontos)" #~ msgid "Filename" #~ msgstr "Fjlnv" #~ msgid "Force Background Colour" #~ msgstr "Httrszn knyszertse" #~ msgid "Height" #~ msgstr "Magassg" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-bit, egsz szm)" #~ msgid "Open a python shell for introspection" #~ msgstr "Python konzol megnyitsa a nyomonkvetshez" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8-bit, indexelt paletta)" #~ msgid "Phatch Version" #~ msgstr "Phatch verzi" #~ msgid "Save an image" #~ msgstr "Kp mentse" #~ msgid "Shadow Colour" #~ msgstr "rnyk szn" #~ msgid "Width" #~ msgstr "Szlessg" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Egy j parancslista bepl rsa a Phatch-hoz PIL-lel." #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-bit, sznes video formtum)" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "s a Phatch automatikusan ellltja a felhasznli felletet hozz." #~ msgid "for boolean" #~ msgstr "logikai rtk" #~ msgid "for float" #~ msgstr "lebegpontos szm" #~ msgid "for integer" #~ msgstr "egsz szm" #~ msgid "is negative, but should be positive" #~ msgstr "rtke negatv, de pozitv kell legyen" #~ msgid "is zero, but should be non-zero." #~ msgstr "rtke nulla, de nem lehet nulla" #~ msgid "please email" #~ msgstr "krem kldjn e-mailt" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Mtaadat mentse (szksg van exif s iptc kiegsztkre)" #~ msgid "Do not create missing folders" #~ msgstr "Ne ksztse el a hinyz mappkat" #~ msgid "colours" #~ msgstr "sznek" #~ msgid "Fade all colours to gray" #~ msgstr "Minden szn faktsa szrkre" #~ msgid "Crop or add border to all sides" #~ msgstr "Keret hozzadsa vagy levgsa minden oldalrl" #~ msgid "border" #~ msgstr "keret" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "A szncsatornk bitjeinek a szmnak a cskkentse" #~ msgid "Copy the image file" #~ msgstr "A kpfjl msolsa" #~ msgid "Put colour under transparent image" #~ msgstr "Szn alraksa tltsz kphez" #~ msgid "Rename the image file" #~ msgstr "tnevezi a kpfjlt" #~ msgid "watermark" #~ msgstr "vzjel" #~ msgid "april" #~ msgstr "prilis" #~ msgid "february" #~ msgstr "februr" #~ msgid "january" #~ msgstr "janur" #~ msgid "march" #~ msgstr "mrcius" #~ msgid "may" #~ msgstr "mjus" #~ msgid "june" #~ msgstr "jnius" #~ msgid "thursday" #~ msgstr "cstrtk" #~ msgid "wednesday" #~ msgstr "szerda" #~ msgid "monday" #~ msgstr "htf" #~ msgid "tuesday" #~ msgstr "kedd" #~ msgid "september" #~ msgstr "szeptember" #~ msgid "october" #~ msgstr "oktber" #~ msgid "november" #~ msgstr "november" #~ msgid "december" #~ msgstr "december" #~ msgid "july" #~ msgstr "jlius" #~ msgid "august" #~ msgstr "augusztus" #~ msgid "saturday" #~ msgstr "szombat" #~ msgid "friday" #~ msgstr "pntek" #~ msgid "sunday" #~ msgstr "vasrnap" #~ msgid "invalid syntax" #~ msgstr "rvnytelen szintaxis" #~ msgid "the variable" #~ msgstr "a vltoz" #~ msgid "the float value" #~ msgstr "a lebegpontos szm rtke" #~ msgid "the integer value" #~ msgstr "az egsz szm" #~ msgid "the file extension" #~ msgstr "a fjl kiterjesztse" #~ msgid "the filename" #~ msgstr "a fjlnv" #~ msgid "is invalid." #~ msgstr "rvnytelen" #~ msgid "Save metadata" #~ msgstr "Mtaadat mentse" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Lsd az Eszkzk>Napl megtekintse ment a rszletekrt" #~ msgid "Only an image file is allowed." #~ msgstr "Csak kpfjlok vannak megengedve" #~ msgid "drag & drop any image here" #~ msgstr "Hzd & dobj ide egy kpet" #~ msgid "&Preview" #~ msgstr "&Elnzet" #~ msgid "Open image file" #~ msgstr "Kpfjl megnyitsa" #~ msgid "Copy cell text" #~ msgstr "Cellaszveg msolsa" #~ msgid "Open image url" #~ msgstr "Kp URL megnyitsa" #~ msgid "&Export..." #~ msgstr "E&xportls..." #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Webol&dal...\tCtrl-I" #~ msgid "does not exist." #~ msgstr "nem ltezik" #~ msgid "Scale down only" #~ msgstr "Csak lefel mretez" phatch-0.2.7/locale/hy/0000755000000000000000000000000011346363116014610 5ustar rootroot00000000000000phatch-0.2.7/locale/hy/LC_MESSAGES/0000755000000000000000000000000011346363116016375 5ustar rootroot00000000000000phatch-0.2.7/locale/hy/LC_MESSAGES/phatch.mo0000644000000000000000000000077711346363116020214 0ustar rootroot00000000000000,<PQZExamplesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2008-05-07 11:20+0000 Last-Translator: Artin Language-Team: Armenian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:41+0000 X-Generator: Launchpad (build Unknown) Օրինակներphatch-0.2.7/locale/hy/LC_MESSAGES/phatch.po0000644000000000000000000030553211346363116020214 0ustar rootroot00000000000000# Armenian translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2008-05-07 11:20+0000\n" "Last-Translator: Artin \n" "Language-Team: Armenian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Օրինակներ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" phatch-0.2.7/locale/id/0000755000000000000000000000000011346363116014564 5ustar rootroot00000000000000phatch-0.2.7/locale/id/LC_MESSAGES/0000755000000000000000000000000011346363116016351 5ustar rootroot00000000000000phatch-0.2.7/locale/id/LC_MESSAGES/phatch.mo0000644000000000000000000000235111346363116020156 0ustar rootroot00000000000000 t,.[d} ,A')( >9I D   &HelpAlways save on desktopDisplays information about this application.ExamplesInspect EXIF & IPTC tagsInspect with PhatchInteractiveLearn to develop Phatch with Python and PIL.Report a bug on launchpad.You need to install the Python Win32 Extensions for this feature.Project-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-09-23 17:47+0000 Last-Translator: Tjawi Language-Team: Indonesian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:41+0000 X-Generator: Launchpad (build Unknown) &BantuanSelalu simpan di DesktopTunjukan informasi mengenai aplikasi ini.ContohPeriksa label EXIF & IPTCPeriksa dengan PhatchInteraktifBelanjar untuk mengembangkan Phatch dengan Python dan PILLaporkan kendala pada Launchpad.Anda perlu meng-install Python Win32 Extensions untuk fasilitas ini.phatch-0.2.7/locale/id/LC_MESSAGES/phatch.po0000644000000000000000000030616011346363116020166 0ustar rootroot00000000000000# Indonesian translation for phatch # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-09-23 17:47+0000\n" "Last-Translator: Tjawi \n" "Language-Team: Indonesian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Periksa dengan Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Periksa label EXIF & IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Contoh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Selalu simpan di Desktop" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interaktif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Laporkan kendala pada Launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "Belanjar untuk mengembangkan Phatch dengan Python dan PIL" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Tunjukan informasi mengenai aplikasi ini." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Bantuan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Anda perlu meng-install Python Win32 Extensions untuk fasilitas ini." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" phatch-0.2.7/locale/it/0000755000000000000000000000000011346363116014604 5ustar rootroot00000000000000phatch-0.2.7/locale/it/LC_MESSAGES/0000755000000000000000000000000011346363116016371 5ustar rootroot00000000000000phatch-0.2.7/locale/it/LC_MESSAGES/phatch.mo0000644000000000000000000012732711346363116020211 0ustar rootroot00000000000000,<<0<&J<q< <<<<<<< < <= ===7= H= R= ^=j=========>>!>2>8> T>`>i> > >>>>> >>> >??7? P?]?e? ~???? ????? ?3 @>@D@ K@ X@d@h@ p@%~@!@(@@AA A A'AGAZA(mAA'AA#ABBB"B$Q.cQ QQQ Q Q QQ)Q R'R:*ReR |R0RRR.R S4SZZ [([1[ :[D[&W[~[ [![[1[\ \\*\ A\L\a\h\\\\ \ \\\ \ ]&]/] >] L]W]]]p] w] ] ]] ]]]]]]'^k?^^ ^^^^^ __/_M_b_z_ _ _ __!____` ` `2`B`Y` l`v` `` ` ``````aaa'0a#Xa |a$aaaaaaa a b+bDGbHb#b7b>1c"pcc1cccc ccddd:dAdRdVdpddd(d&dde(e#Cege+e3eeeAf[fdfif'yffff fff'fg g)0g Zg fgrg g ggggg"ggg h&h@hThkhhhhhh hh hh2iDiIiQiWi _i liziiii i(i,i j%j *j 6j BjLjhjnj jjjj4j?jA?k7k7k.k l&l .l 8lDl Kl Ul`lhlqlvl~lllllll llllllmm mm1m8m>mCmLmUm \mgmmm tmmmmmmmmmmmmmmm mmmmn nnn/n6nGnbn nnnnnnnn nnn nn"n o"o &o 0o=oBoGoOo Wocoionoooo.qKq)jq)q q q)q q r*rHr \r jrxrrrrrr rr*rs0sJs[s ksussss sss*s tt) t Jt Xtetitrtt tttt,tt u 4u BuMu'luu uu u uu uv v:v Ov\vcv vvvvv%v v-v'w?wUw [w hw#uwww/ww0xFx,_x xxx x%x0xy8$yD]y yy:y*y0z6Kzz zz z,zzzz/ {.;{j{n{ s{~{{ {{{'{,{|'|-|>|Q|Z|`|t||| | || || } } !}+} ;}F}V}s}}M}&}~ ~)~ 8~C~\~ c~n~~~~~!~~$$IQX _m|%- (2G[+nـ! <7B*zہ*&QY)`‚˂ # 2> W a]lʃ-܃! ,=Ra<g1ڄ**9'΅H RZi †ɆІ׆# B NYa  ׇ")9BZo  ˆF̈-6FObAf"҉  6$@ eq8' !;T fr0{ ͋5Ћ%76n0Ռ ",*Wwƍ͍.ԍ  5>T\e}'' ""EL T^gn-ޏ#">A"$+%"HXai q%}'đ1',K `m0֒ ޒ!'8@-Z '6֓( 46?k,7ؔK5\ CՕ,$Fk t ~/̖ 6%4:ov{- ӗۗ4=M]{ Ҙ   / >L*e ę ʙ/r" Ěʚ %4Z!wқ# -7L`w œ̜ Ӝݜ*@Wp '.Н&*< grz ͞#ܞRIS.1̟;!:\0c"%. @Ji/-8;!t!+7$AFZ 3ã): R2s'Ť  ,38A*F'q %' #'D$lĦ ܦ( ?<|  ҧܧ & 0G x Ѩب(,*W/\GCԩD9]0 ȪӪ ڪ    (17I_fm  ƫ Ϋثܫ / 6BH Q_gmuy Ŭάݬ 6= Mn  ˭ѭ׭ *?W \ frw| ήӮ[nC~?t:}x@-nG:]M,i <.}ikG!Sm_8!80|r$(R4BS5q=qpb2!} l"05%/dNe&+xd4.Mk?hJ4bOPvU_Y5WRFB\J[P3w'w^ji X:L9-q&yT6bfoK <Zs3s6@ Hu.Wa yQ'*S7 HO(pK1"]{YfV,UW|I l{m7v/'gzc- 7@=O,#"N&y2jLau>T )Tz_>n\~6`s#J|cZIepf(1D/? $ Iv~lA1FQ9rQxoCYd*^k++AXmerVMED taN^`XULg2);;P] 0hF9tE R`)c=Ew {*8 K$oB%A\ V;HuCZgGD[#h>%zj<3"%s" can not be found."%s" is not a valid path.%(amount)d images done in %(duration)s%d issues were logged%s Recent&Abort&About Phatch... Ctrl-Shift-A&Add&Add Tag&Add Tag to All Images...&Add... Ctrl-+&All Types&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Copy Tag&Copy Value&Delete Tag&Delete Tag from All Images...&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Fonts&Forum... Ctrl-F&Help&Image Inspector Droplet...&Inspect...&License&Modify Value for All Images...&New Ctrl-N&No Types&OK&Open...&Open... Ctrl-O&Phatch&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Remove Image&Rename Tag for All Images...&Report a Bug... Ctrl-B&Safe Mode (recommended)&Save Ctrl-S&Select&Show Description Ctrl-H&Show template for action plugin&Skip to Next Action&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&Update&User&View3D Edge3D ObjectsA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd TagAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAll readable and writable typesAll readable typesAll selected typesAllow Geek action and unsafe expressionsAllow as last actionAlso check if your hard disk not full. Always save on desktopAlways show status dialog when doneAmountAngleAngle Apply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilAre you sure you want to delete this tag from "%s"?Are you sure you want to delete this tag from all images?ArtworkAsAs an example try out the polaroid action list from the library.Associate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastAuto CropAutomatic (use exif orientation)BackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlenderBlender %s is required.BlurBlur RadiusBlur ReflectionBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBorder WidthBothBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse %sBrowse FolderBulletBy OffsetC&ontinueC&reditsCameraCamera DistanceCamera Horizontal RotationCamera RollCamera Vertical RotationCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthCaptionCenterChangeCharcoalCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletClipboardCodeColorColor ValueColor to AlphaColorizeColorize grayscale imageColumnsCommandCommand did not produce an output image: %sCommentsCommonConstrain ProportionsContourContour ColorContrastContrast FactorContrast TresholdConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy R&ecent as Command to ClipboardCopy the original imageCorner Bottom LeftCorner Bottom RightCorner Top LeftCorner Top RightCould not open image with %s.CreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDifferent for each sideDirectionDirection Disable Safe Mode in the Tools menu if you trust this action list.Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDoneDouble click to open or right click for more options.DownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDraw border inside or outsideDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEasily batch process images and edit metadataEffectEnable actionEnter an image urlEqual for all sidesEqualizeEqualize the image histogramErrorExamplesExecuteExecute external commandExecute the actionExecute the action listExecuting action listExif and fileExif timeExpandFade all colors to grayFalseFebruaryFileFile NameFile timeFile(s)FillFill ColorFill FolderFill ImageFill TypeFilterFitFit ImageFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFloor ColorFloor OpacityFolderFontFontsFor more information see the tutorials (Help>Documentation)Force Background ColorFridayFrom (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GapGeek actions are not allowed in safe mode.GeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GradientGrayscaleGrayscale (8-bit pixels)HighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage SizeImage pathsImagemagickImagesImpossible to load data from action list.Impossible to write tag "%s"InIn Phatch you need to open or create an action list first.Include all subfoldersInclude imageInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LabelLeftLeft Shear AngleLibrariesLibrary Action ListsLicenseLogLook up exif and iptc tagsLossless JPEGMake selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMaximum one parameter "%s" is allowedMayMedianMessageMetadataMethodMiddleMinimumMinutesMirrorMistModeMondayMonochrome (1-bit pixels, black and white)MonthsMotion BlurMove the selected action downMove the selected action upNever run action lists from untrusted sources.No action list provided.No files or folder selected.No images have been processed to report.No save action required at the endNoneNormalNothing has been logged yet.Nothing to do.NovemberObjectOctoberOffsetOffset by distance and wrap aroundOneOne image done in %sOne issue was loggedOnly palette images have transparency.OpacityOpenOpen &Library... Ctrl-Shift-OOpen &RecentOpen &Url...Open an action listOpens a ready-made actionlist from the libraryOpens an actions listOptionsOrientationOutputOverwrite existing imagesPNG OptimizePage MappingPaintParameter "%s.*" is missingPaste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch chooses the lossless "Save Tags" action.Phatch could not create the droplet: Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch will generate the user interface automatically.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please check if this action list doesn't contain harmful code.Please install "%s" first.Please upgrade your wxPython.PolaroidPositionPosterizePreserve TimestampProcess with recent Phatch action listProgram VersionProjectionPut color under transparent imageQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReady!Reduce the number of bits of color channelReflectionRegenerate thumbnailRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename the original imageRepeatRepeat imagesReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRightRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRotate, flip, grayscale and cropRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSafe mode protects you from the execution of possibly harmful scripts. Are you sure you want to disable it?Same Method for All CornersSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save TagsSave last changes toSave only metadata (lossless)Saves an action listSaves an action list asScaleScale ImageScale MethodScale ModelScale ReflectionScan for new fonts on your systemSecondsSee "%s" for more details.SelectSelect Color BySelect ObjectSelect ProjectionSelect RotationSelect Rotation for %sSelect action listSelectionSeparateSeptemberShadowShadow BlurShadow ColorSharpenShear 2d or 3dShow &Log... Ctrl-LShow Advanced OptionsShow Background OptionsShow Floor OptionsShow LogShow Type OptionsShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.Show report of processed imagesSizeSketchSkip To Next &ImageSliderSolarizeSorry, "%s" is not a valid path.Sorry, %s.Sorry, no valid files foundSorry, the action list seems incompatible with %(name)s %(version)s.Sorry, the values of these options will be lost in %(name)s %(version)s:Sorry, unable to open these images:Sorry, you have the wrong version of Blender installed.Sorry, you need to install the %s action for this action list.Sorry, your settings seem corrupt.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStarsStars ColorStart a new action listStop for errorsStringStudy the action plugins in:SundayTIFF CompressionTagTag "%s" is not writable.Tag "%s" is read only.Tag (Exif, Iptc)Tag exists alreadyTag should start with "Exif_" or "Iptc_"Tag should start with Exif_* or Iptc_*TextThe action list is empty.The action list only processes metadata.The following name(s) are invalid: There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This action list is unsafe:This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTo (Exif, Iptc)Tools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTransform to a grayscale pencil drawingTransformationTransformation Translate Phatch in your native language.TranslationTransparentTransparent BackgroundTransposeTransverseTresholdTrueTuesdayTypesUnable extract variables from fileUnable to add tag <%s>Unable to change label.Unable to change tag <%s>Unable to delete tag <%s>Unable to open fileUnable to remove imageUnable to rename tag <%s>Unable to save tag <%s>Unsaved Action ListUnsharpUpUpdate Exif ThumbnailUpdate JPEGUpdate Orientation TagUse FloorUse exif datetimeUse the Image Inspector to list all the variables.UserUtilityValueVerboseVerify InputVerify OutputVerify ProgramVerticalVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWaveWave HeightWave LengthWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,You only need to know PIL to write a plugin for Phatch.a filename with a valid extension was expectedabortactionsantialiasapplicationaspectautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcan not be emptycenterchoiceclick '+' to add actionscolorcompressioncontourdaydecimaldefaultdesktopdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframegammaheighthourignoreimagesintegerleftloadingmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnoneorientationpathplease install pyexiv2pluginpositive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth moresourcestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existtoptransformtransparencytruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-02-24 16:33+0000 Last-Translator: Giovanni Colombarini Language-Team: Italian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) "%s" non può essere trovato"%s" non è un percorso valido%(amount)d immagini fatte in %(duration)s%d problemi sono stati registrati nel log%s Recenti&Interrompi& Informazioni su Phatch ... Ctrl-Shift-A&Aggiungi&Aggiungi etichetta&Aggiungi etichetta a tutte le immagini...&Aggiungi... Ctrl-+&Tutti i tipi&Chiedi aiuto&Batch&Annulla&Chiudi&Comprimi tutto Ctrl-Shift-E&Continua comunque&Copia etichetta&Copia Valore&Elimina etichetta&Elimina etichetta da tutte le immagini...&Disabilita Ctrl-0&Documentazione... Ctrl-M&Basso Ctrl-Down&Droplet Ctrl-D&Modifica&Abilita Ctrl-1&Esegui... Ctrl-Return&Espandi Tutto Ctrl-E&Esporta&Caratteri&Forum... Ctrl-F&GuidaDroplet dell'ispezionatore di &Immagini...&Ispeziona...&Licenza&Modifica Valore per Tutte le Immagini...&Nuovo Ctrl-N&Nessun tipo&OK&Apri...&Apri... Ctrl-O&Phatch&Esci Ctrl-Q&Goccia Recente...&Rimuovi Ctrl--&Elimina immagine&Rinomina etichetta per tutte le immagini...&Riporta un Bug... Ctrl-B&Modalità sicura (raccomandata)&Salva Ctrl-S&SelezionaVi&sualizza Descrizione Ctrl-H&Mostra il modello per il plugin azione&Salta all'azione successiva&Strumenti&Traduci Phatch... Ctrl-T&Su Ctrl-Up&Aggiorna&Utente&VisualizzaBordo 3dOggetti 3DUn tutorial html sarà aperto nel vostro browser internet.InformazioniAzioneLista delle azioniLista azioniAggiungiAggiungi etichettaAggiungi un'azioneAggiusta luminosità da nero a biancoRegola da grigio a bianco & neroAggiusta saturazione da scala di grigi in poiAllinea orizzontalmenteAllinea verticalmenteTuttoTutti i fileTutti i fileTutti i tipi leggibili e scrivibiliTutti i tipi leggibiliTutti i tipi selezionatiPermetti azioni avanzate e espressioni insicureConsenti come ultima azioneVerificare anche che l'hard disk non sia pieno. Salva sempre sul desktopMostra sempre la finestra di stato alla fineQuantitàAngoloAngolo Applica una maschera trasparenteApplica per gli errori futuri Applica con segmentazione, scalatura ed opacitàAprileSei sicuro di voler cancellare questa etichetta da "%s"?Sei sicuro di voler eliminare questa etichetta da tutte le immagini?Opera d'arteComePer esempio prova la lista azioni polaroid della libreria.Associa Immagini con Lista Azioni in %s...Associa Immagini con Ispettore Immagini in %s...Associa Immagini con le Liste Azioni Recenti in %s...AgostoAutomaticoContrasto AutomaticoAutoritaglioAutomatico (leggi l'orientamento dagli Exif)SfondoColore di sfondoOpacità SfondoPrecessare le immagini in modo batch con PhatchProcessi batch con una lista di azioni recenteBitNeroSanguinareBlenderÈ richiesto Blender %s.SfocaturaRaggio sfocaturaSfoca riflessoSfoca, Polaroid, Ombre, Ammorbidisci...Sfocatura, Contrasto, Rilievo, Smussatura...BooleanoBordiColore Del BordoSpessore del bordoEntrambiBassoIn Basso a SinistraAngolo in basso a sinistraIn Basso A DestraAngolo in basso a destraFattore di inclinazione in bassoLuminositàCercaSfoglia %sSfoglia cartellaPunti elencoPer OffsetC&ontinua&RiconoscimentiFotocameraDistanza cameraRotazione camera orizzontaleAvvolgimento cameraRotazione camera verticaleImpossibile applicare l'azione di %(a)s sull'immagine '%(i)s' nella cartella:Impossibile processare l'azione %(a)s:TelaAltezza TelaLarghezza TelaDidascaliaCentrato orizzontalmenteCambiaCarboncinoControlla prima le immaginiControllo delle immaginiSceltaScegli i file(s)Scegli una cartellaScegli un file di lista azioni...Scegli un'immagineScegli una cartella di immaginiScegliere la cartella per la dropletAppuntiCodiceColoreValore ColoreColore ad alfaColoraColora una immagine in scala di grigiColonneComandoIl comando non produce immagini di output: %sCommentiComuneMantieni le proporzioniContornoColore contornoContrastoFattore di contrastoSoglia di contrastoModalità ConvertiConverti il modo del colore di una immagineCopia il valore massimo dipixelCopia il valore medio di pixelCopia il valore minimo di pixelCopia il più comune valore pixelCopia il valore di rank'th pixelCopiaCopia la lista delle azioni come &Comando negli appuntiCopia i r&ecenti come comandi agli appuntiCopia l'immagine originaleAngolo in basso a sinistraAngolo in basso a destraAngolo in alto a sinistraAngolo in alto a destraNon è possibile aprire l'immagine con %s.CreditiTagliaRitaglia o espandi la tela senza scalarlaTaglia l'immagineIncrocioPersonalizzatoBloccaGiorniDicembreCancellare tag Exif o IptcCancella etichetteProfonditàDesaturaDescrivi qui la lista delle azioni.DescrizioneDiverso per ciascun latoDirezioneDirezione Disabilitare la modalità protetta nel menu strumenti se ci si fida di questa lista di azioniDisabilita azioneMostra le informazioni su questa applicazioneNon controllare prima le immaginiVuoi continuare?Vuoi sovrascriverlo?DocumentazioneFattoDoppio click per aprire o pulsante destro per altre opzioni.GiuMinimizza e taglia immagine con proporzione fissaTrascinaDisegna un contorno ai bordi dell'immagineDisegna un bordo all'interno o all'esternoTrascina i file e/o le cartelle su questa icona di Phatch per avviare la modifica. Clic con il pulsante destro o doppio clic per la visuale normale.Crea una ombra sfocata sotto l'immagineGenera un riflessoEffettua facilmente modifiche in serie su immagini e modifica i metadatiEffettoAbilita azioneDigita un url immagineUguale per tutti i latiEqualizzaEqualizza l'istogramma immagineErroreEsempiEseguiEsegui un comando esternoEsegui l'azioneEsegui la lista delle azioniEsecuzione della lista delle azioniExif e filetempo exifAllargaSfuma al grigio tutti i coloriFalsoFebbraioFileNome del filetempo fileFile(s)RiempimentoColore di riempimentoCartella di riempimentoImmagine di riempimentoTipo di riempimentoFiltroAdattaAdatta immagineRiflettiSpecchia sinista-destraSpecchia sopra-sottoCapovolgi o ruota di 90 gradiFloatColore PianoOpacità PianoCartellaCarattereCaratteriPer maggiori informazioni consultare i tutorial (Aiuto>Documentazione)Forza il colore di sfondoVenerdìDa (Exif, Iptc)Dati GPSRapporto GPS (csv)GapIn modalità protetta non è possibile effettuare azioni avanzateGeotagVai alla documentazione di Phatch.Vai al forum di PhatchVai alla homepage di Phatch.GradienteScala di grigiScala di grigi (8-bit)EvidenziaEvviva, nessun problema riscontrato!OrizzontaleGiustificato orizzontalmenteProiezione orizzontaleOrese riavvii %s, l'azione apparirà nel menù contestuale.Se vuoi aggiungere un plugin per Patch,Ignora erroriImmagineIspezionatore di immaginiDimensione dell'immaginePercorso immaginiImagemagickImmaginiImpossibile caricare dati dalla lista di azioni.Impossibile scrivere il tag "%s"InIn Phatch devi prima apire o creare una lista azioni.Includi tutte le sottocartelleIncludi immagineInizializza font (solo per gli script di installazione)Ispezionare tag EXIF e IPTCIspeziona tag EXIF e IPTCIspeziona metadata (richiede plugin exif & iptc)Ispezionare con PhatchInteroIntero+Intero+0InterattivoImmagini invalideInvertiInverti tutti i valori pixel sopra la sogliaInverti i colori di un'immagineJPEG - QualitàJPEG - Dimensione MassimaJPEG - Tolleranza DimensioneGennaioLuglioGiugnoTieni l'immagine esistente (non sovrascrivere)EtichettaSinistraAngolo inclinazione a sinistraLibrerieLibreria Lista AzioniLicenzaRegistroMostra dati exif e iptcJPEG senza perditaRendi trasparente il colore selezionatoIngrandisci o rimpicciolisci l'immagineMarzoContrassegnaMascheraMassimizza contrasto immagineMassimoÈ permesso un solo parametro "%s"MaggioMedianoMessaggioMetadatiMetodoCentrato verticalmenteMinimoMinutiSpecchiaNebbiaModoLunedìMonocromatico (pixel da 1 bit, bianco e nero)MesiSfocatura in movimentoMuovi l'azione selezionata in bassoMuovi l'azione selezionata in altoNon usare mai liste di azioni provenienti da fonti non sicure.Nessuna lista azioni fornita.Nessun file o cartella selezionatoNessuna immagine è stata processataNon è richiesta l'azione "salva" alla fineNessunoNormaleNon è ancora stato registrato nulla.Niente da fare.NovembreOggettoOttobreSpostamentoSlitta per distanza e avvolgi intornoUnoUn'immagine completata in %sUn problema è stato registrato nel logSolo le immagini con palette hanno le trasparenzeOpacitàApriApri &Libreria... Ctrl-Shift-OApri azione &RecenteApri &Url...Apri una lista delle azioniApri una lista di azioni già pronte in libreriaApri una lista delle azioniOpzioniOrientamentoOutputSovrascrivi le immagini esistentiOttimizzazione PNGMappatura paginaDisegnaManca il parametro "%s.*"Incolla questo comando nel programma di avvioPercorsoSchizzo a matitaProspettivaPhatch non può gestire %d immagine(i):Phatch ha scelto l'azione "Salva Etichette" (lossless)Phatch non ha potuto creare la droplet: Phatch non è riuscito ad installare l'azione in %s:Patch non è riuscito ad installare la funzionalità richiesta.Phatch ha creato con successo la gocciolina.Phatch ha provato a disinstallarsi da Windows Explorer.Phatch ne aggiungerà uno per te, per favore controlla le sue impostazioni.Phatch genererà automaticamente l'interfaccia utentePhatch con %sProcessore Batch delle fotoPer favore reinstallalo.Controllare che questa lista di azioni non contenga codice dannoso.Occorre installare "%s" prima di continuare.Per favore aggiorna il tuo wxPython.PolaroidPosizionePosterizzaPreserva TimestampProcessa con una lista di azioni Phatch recenteVersione del programmaProiezioneInserisci il colore sotto la trasparenza dell'immagineChiude il programma.RGBA (pixel da 4X8, RGB con maschera di trasparenza)RaggioRankPronto!Riduci il numero di bit del canale dei coloriRiflessioneRigenera le anteprimeRimuoviRimuovi associazione da %s...Rimuovi l'azione selezionataRimuovi l'azione selezionata.RinominaRinomina il tagRinomina un tagRinomina l'immagine originaleRipetiImmagini ripetuteRiporta un bug su launchpad.RicampionaRicampiona l'immagineRicampiona MascheraRisoluzioneDestraFattore di inclinazione a destraRuotaRuota di 180°Ruota di 270°Ruota di 90°Ruota con angolo casualeRuota, specchia, scala di grigi e ritagliaRotondoArrotondatoAngoli arrotondati o incrociatiRigheEseguire %s come una droplet GUIAvvia %s come console senza interfaccia graficaLa modalità protetta impedisce l'esecuzione di script potenzialmente dannosi. Sei sicuro di volerla disabilitare?Stesso metodo per tutti gli angoliSaturazioneSabatoSalvaS&alva come... Ctrl-Shift-SSalva lista delle azioni come...Salva etichetteSalva le ultime modifiche inSalva solo i metadati (senza perdita)Salva una lista delle azioniSalva una lista delle azioni comeScalaRiscala immagineMetodo scalaturaModello in scalaScala riflessoRicerca nuovi fonts sul tuo sistemaSecondiVedi "%s" per maggiori dettagliSelezionaSeleziona Colore PerSelezionare oggettoSelezionare proiezioneSelezionare rotazioneSeleziona la Rotazione per %sSeleziona lista azioniSelezioneSeparaSettembreOmbraSfocatura ombraColore ombreggiaturaAumenta contrastoInclina 2d o 3dMostra &Log... Ctrl-LMosta opzioni avanzateMostra Opzioni di SfondoMostra Opzioni PianiMostra LogMostra Opzioni dei TipiMostra tutti i paramentri delle azioni.Mostra la descrizione della lista delle azioniMostra il file di logMostra solo le etichette delle azioni.Mostra il report delle immagini processateDimensioneSchizzoSalta all'&Immagine successivaCursoreSovraesponi"%s" non è un percorso valido.Spiacenti, %s.Non sono stati trovati files validiMi spiace, la lista di azioni sembra essere incopatibile con %(name)s %(version)s.Spiacenti, i valori di queste opzioni saranno persi %(name)s %(version)s:Spiacenti, impossibile aprire queste immagini:La versione di Blender installata non è correttaScusa, devi installare l'azione %s per questa lista azioni.Le impostazioni sono danneggiate.SourceSpecifica lingua locale (per esempio en o en_GB)SponsorQuadroStelleColore delle stelleAvvia una nuova lista delle azioniInterrompi in caso di erroreStringaEsaminare il plugin azione in:DomenicaCompressione TIFFEtichettaIl tag "%s" non è scrivibile.il tag "%s" è in sola letturaEtichetta (Exif, Iptc)L'etichetta esiste giàIl Tag dovrebbe iniziare con "Exif_" or "Iptc_"Il Tag dovrebbe iniziare con Exif_* or Iptc_*TestoLa lista delle azioni è vuota.Questa lista di azioni riguarda esclusivamente metadati.I nomi elencati non sono validi: Non c'è nessuna azione attivata.Ci deve essere un'azione 'Salva' alla fine.Queste estensioni sono state installate con successo: Questa lista di azioni non è sicuraQuesto file esiste già.Questo richiede anche che il pacchetto python-nautilus sia installato.GiovedìSovrapponiA (Exif,Iptc)Strumenti per gestire la lista delle azioni attualeAltoIn Alto a SinistraAngolo in alto a sinistrain Alto a DestraAngolo in alto a destraAngolo inclinazione verso l'altoTrasforma in un disegno a matita in scala di grigiTrasformazioneTrasformazione Traduci phatch nella tua lingua nativa.TraduzioneTrasparenteSfondo trasparenteTrasponiTrasversaleSogliaVeroMartedìTipiImpossibile estrarre le variabili dal fileImpossibile aggiungere l'etichetta <%s>Impossibile cambiare l'etichettaImpossibile cambiare l'etichetta <%s>Impossibile cancellare l'etichetta <%s>Impossibile aprire il fileImpossibile eliminare l'immagineImpossibile rinominare l'etichetta <%s>Impossibile salvare l'etichetta <%s>Lista delle azioni non salvataRiduci contrastoUpAggiorna Anteprime ExifAggiorna JPEGAggiorna le informazioni di orientamentoUsa PianoUsa la data e l'ora dagli exifUsa l'Ispezionatore d'Immagini per elencare tutte le variabili.UtenteAccessoriValoreProlissoVerifica IngressoVerifica UscitaVerifica ProgrammaVerticaleGiustificato verticalmenteProiezione verticaleVisualizza sorgenteVedi come icona per trascinare i filesAttenzione: python-wxversion non è installato. FiligranaOndaAltezza delle ondeLunghezza delle ondeMercoledìCosa vuoi fare adesso?BiancoScrivi un plugin azioneScrivi EtichettaAssegna un nuovo valore ad una etichettaScrivi il testo in una determinata posizioneAnniPuoi usare solo file con le seguenti estensioniLei può incollarlo come testo nelle proprietà di un nuovo lanciatore.Devi installare l'estensione Python Win32 per questa funzionalità.Hai solo bisogno di conoscere PIL per compilare un plugin per Patch,Ti basta conoscere PIL per scrivere un plugin per Phatch.era atteso un nome di file con estensione validainterrompiazioniantialiasapplicazioneaspettoautomaticosfondobicubicobilinearesfocaturabooleanobassoamplia la ricercanon può essere vuotocentrosceltaclicca '+' per aggungere azionicolorecompressionecontornogiornodecimalepredefinitodesktopdettagliodpimigliora bordimigliora bordorilievofalsofilenome del filedimensione del filefiltrotrova bordifloatcartellanome cartellacornicegammaaltezzaoraignoraimmaginiinterosinistracaricamentometadatamezzominutomodomesenomemeseIl più vicinononessun'etichetta %s trovatanessunoorientamentopercorsoper favore installa pyexiv2pluginintero positivopositivo, intero diverso da zeropyexiv2 deve essere installatorisoluzionedestraamministratoresecondoaffilatodimensionesaltacurvosmussa maggiormentesorgentestringasottocartellaetichettal'estensione del file "%s" non è correttail file "%s" non esistealtotrasformatrasparenzaverotipoavvisogiornosettimananomegiornosettimanalarghezzaconErrore versione wxPythonannosìphatch-0.2.7/locale/it/LC_MESSAGES/phatch.po0000644000000000000000000035704211346363116020213 0ustar rootroot00000000000000# Italian translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-02-24 16:33+0000\n" "Last-Translator: Giovanni Colombarini \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Ispezionare con Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Ispezionare tag EXIF e IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Esempi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Avvia %s come console senza interfaccia grafica" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Eseguire %s come una droplet GUI" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Salva sempre sul desktop" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignora errori" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Inizializza font (solo per gli script di installazione)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interattivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Tieni l'immagine esistente (non sovrascrivere)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Specifica lingua locale (per esempio en o en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Ispeziona metadata (richiede plugin exif & iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Non è richiesta l'azione \"salva\" alla fine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Includi tutte le sottocartelle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Non controllare prima le immagini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "Permetti azioni avanzate e espressioni insicure" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Prolisso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" "Lei può incollarlo come testo nelle proprietà di un nuovo lanciatore." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Scusa, devi installare l'azione %s per questa lista azioni." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" "Spiacenti, i valori di queste opzioni saranno persi %(name)s %(version)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "In Phatch devi prima apire o creare una lista azioni." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "Per esempio prova la lista azioni polaroid della libreria." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" "Per maggiori informazioni consultare i tutorial (Aiuto>Documentazione)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "Nessuna immagine è stata processata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "Evviva, nessun problema riscontrato!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Non è ancora stato registrato nulla." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Registro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "interrompi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "salta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "clicca '+' per aggungere azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "Apri azione &Recente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Apri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Apri una lista delle azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Esegui" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Esegui l'azione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Aggiungi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Aggiungi un'azione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Rimuovi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Rimuovi l'azione selezionata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Muovi l'azione selezionata in alto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Giu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Muovi l'azione selezionata in basso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Ispezionatore di immagini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Mostra dati exif e iptc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Descrizione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Mostra la descrizione della lista delle azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "Libreria Lista Azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Scegli un file di lista azioni..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Salva lista delle azioni come..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Questo file esiste già." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Vuoi sovrascriverlo?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "applicazione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "cornice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Un tutorial html sarà aperto nel vostro browser internet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "Ti basta conoscere PIL per scrivere un plugin per Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "Phatch genererà automaticamente l'interfaccia utente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Esaminare il plugin azione in:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Se vuoi aggiungere un plugin per Patch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "\"%s\" non è un percorso valido." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Trascina" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Trascina i file e/o le cartelle su questa icona di Phatch\n" "per avviare la modifica.\n" "Clic con il pulsante destro o doppio clic per la visuale normale." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" "Phatch ne aggiungerà uno per te, per favore controlla le sue impostazioni." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "Questa lista di azioni riguarda esclusivamente metadati." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "Phatch ha scelto l'azione \"Salva Etichette\" (lossless)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Salva le ultime modifiche in" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" "La modalità protetta impedisce l'esecuzione di script potenzialmente " "dannosi.\n" "Sei sicuro di volerla disabilitare?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Scegliere la cartella per la droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch ha creato con successo la gocciolina." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "Phatch non ha potuto creare la droplet: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "Impossibile caricare dati dalla lista di azioni." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Seleziona lista azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "Le impostazioni sono danneggiate." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "Verificare anche che l'hard disk non sia pieno.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Scegli una cartella" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Scegli i file(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Scegli una cartella di immagini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "Tutti i tipi selezionati" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "Tutti i tipi leggibili e scrivibili" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "Tutti i tipi leggibili" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "immagini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "&Tutti i tipi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "&Nessun tipo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "Appunti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Cerca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "Sfoglia %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "File" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Cartella" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "predefinito" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Visualizza sorgente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "amplia la ricerca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Percorso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Apri..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "&Ispeziona..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Nuovo\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Avvia una nuova lista delle azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Apri...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Apri una lista delle azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "Apri &Libreria...\tCtrl-Shift-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "Apri una lista di azioni già pronte in libreria" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Salva\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Salva una lista delle azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "S&alva come...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Salva una lista delle azioni come" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Copia la lista delle azioni come &Comando negli appunti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Incolla questo comando nel programma di avvio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Copia i r&ecenti come comandi agli appunti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&Esporta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Esci\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Chiude il programma." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Aggiungi...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Rimuovi\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Rimuovi l'azione selezionata." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Abilita\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Abilita azione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Disabilita\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Disabilita azione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Su\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Basso\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Modifica" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Droplet\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Vedi come icona per trascinare i files" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "Vi&sualizza Descrizione\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Strumenti per gestire la lista delle azioni attuale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Espandi Tutto\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Mostra tutti i paramentri delle azioni." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Comprimi tutto\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Mostra solo le etichette delle azioni." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Visualizza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Esegui...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Esegui la lista delle azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "&Modalità sicura (raccomandata)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "&Utente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "&Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "Mostra il report delle immagini processate" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Mostra &Log...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Mostra il file di log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "&Caratteri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "Ricerca nuovi fonts sul tuo sistema" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "&Aggiorna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Strumenti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Vai alla homepage di Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Documentazione...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Vai alla documentazione di Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Vai al forum di Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Traduci Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Traduci phatch nella tua lingua nativa." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Riporta un Bug...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Riporta un bug su launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "& Informazioni su Phatch ...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Mostra le informazioni su questa applicazione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Guida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "Fatto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Mostra Log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "Pronto!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "Doppio click per aprire o pulsante destro per altre opzioni." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Hai solo bisogno di conoscere PIL per compilare un plugin per Patch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Mostra il modello per il plugin azione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Codice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Chiedi aiuto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Scrivi un plugin azione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Applica per gli errori futuri " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Interrompi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "&Salta all'azione successiva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "Salta all'&Immagine successiva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Messaggio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Continua comunque" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Opzioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Tipi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Sfoglia cartella" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Source" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "File(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Interrompi in caso di errore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Controlla prima le immagini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Sovrascrivi le immagini esistenti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "Mostra sempre la finestra di stato alla fine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "Immagini ripetute" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Annulla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Batch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Etichetta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "etichetta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Booleano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Stringa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Scelta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Colore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Risoluzione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Nome del file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "In" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Come" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Modo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Ricampiona" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicubico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Intero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Intero+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Intero+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Orizzontale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Cursore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "pyexiv2 deve essere installato" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Gennaio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Febbraio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Marzo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "Aprile" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Maggio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Giugno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Luglio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "Agosto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Settembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Ottobre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "Novembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "Dicembre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Lunedì" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Martedì" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Mercoledì" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Giovedì" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Venerdì" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Sabato" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Domenica" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "Solo le immagini con palette hanno le trasparenze" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "Impossibile estrarre le variabili dal file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "il tag \"%s\" è in sola lettura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "Impossibile scrivere il tag \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "Il tag \"%s\" non è scrivibile." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "sfondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "sorgente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" "Il comando non produce immagini di output:\n" "%s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Tutto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "Selezionare proiezione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Selezionare oggetto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "Selezionare rotazione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "Centrato orizzontalmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Personalizzato" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Centrato verticalmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Sinistra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Destra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Alto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Basso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "In Basso a Sinistra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "In Basso A Destra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "In Alto a Sinistra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "in Alto a Destra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientamento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Posizione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Spostamento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Proiezione orizzontale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Proiezione verticale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Giustificato orizzontalmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Giustificato verticalmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "Per Offset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Sovrapponi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Scala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Contrassegna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Opacità" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Metodo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Automatico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" "Effettua facilmente modifiche in serie su immagini e modifica i metadati" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Processore Batch delle foto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Vero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Falso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "vero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "falso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Lista delle azioni non salvata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Lista delle azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Tutti i file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Descrivi qui la lista delle azioni." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Ci deve essere un'azione 'Salva' alla fine." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "con" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s Recenti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Associa Immagini con Lista Azioni in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Associa Immagini con le Liste Azioni Recenti in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Associa Immagini con Ispettore Immagini in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Rimuovi associazione da %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "&Goccia Recente..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "Droplet dell'ispezionatore di &Immagini..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Processi batch con una lista di azioni recente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Ispeziona tag EXIF e IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "Vedi \"%s\" per maggiori dettagli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" "Mi spiace, la lista di azioni sembra essere incopatibile con %(name)s " "%(version)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "Questa lista di azioni non è sicura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" "Disabilitare la modalità protetta nel menu strumenti se ci si fida di questa " "lista di azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "Non usare mai liste di azioni provenienti da fonti non sicure." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "Controllare che questa lista di azioni non contenga codice dannoso." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "\"%s\" non è un percorso valido" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Azione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "In modalità protetta non è possibile effettuare azioni avanzate" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Niente da fare." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "La lista delle azioni è vuota." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Non c'è nessuna azione attivata." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Controllo delle immagini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch non può gestire %d immagine(i):" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Immagini invalide" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Non sono stati trovati files validi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "C&ontinua" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Nessun file o cartella selezionato" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Impossibile aprire il file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Impossibile processare l'azione %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" "Impossibile applicare l'azione di %(a)s sull'immagine '%(i)s' nella cartella:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Esecuzione della lista delle azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Un'immagine completata in %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "%(amount)d immagini fatte in %(duration)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Un problema è stato registrato nel log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "%d problemi sono stati registrati nel log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Seleziona" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "Impossibile cambiare l'etichetta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "Impossibile cancellare l'etichetta <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "Impossibile rinominare l'etichetta <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "Impossibile salvare l'etichetta <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "giorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "desktop" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "nome cartella" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "nome del file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "dimensione del file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "cartella" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "ora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minuto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "mese" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "nomemese" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "percorso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "amministratore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "secondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "sottocartella" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "tipo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "giornosettimana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "nomegiornosettimana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "anno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "aspetto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "compressione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "gamma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "altezza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "modo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "larghezza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "dimensione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "trasparenza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "orientamento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Usa l'Ispezionatore d'Immagini per elencare tutte le variabili." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Puoi usare solo file con le seguenti estensioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "sinistra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "centro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "destra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "alto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "mezzo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "basso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monocromatico (pixel da 1 bit, bianco e nero)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "Scala di grigi (8-bit)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (pixel da 4X8, RGB con maschera di trasparenza)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "sfocatura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "contorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "dettaglio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "migliora bordi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "migliora bordo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "rilievo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "trova bordi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "curvo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "smussa maggiormente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "affilato" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "Il più vicino" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilineare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Ruota di 90°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Ruota di 180°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Ruota di 270°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Specchia sinista-destra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Specchia sopra-sotto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "nessuno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "non può essere vuoto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "stringa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "intero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "intero positivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "positivo, intero diverso da zero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "risoluzione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "booleano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "scelta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "l'estensione del file \"%s\" non è corretta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "era atteso un nome di file con estensione valida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "il file \"%s\" non esiste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "\"%s\" non può essere trovato" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "Manca il parametro \"%s.*\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "È permesso un solo parametro \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "automatico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Nessuno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "Il Tag dovrebbe iniziare con \"Exif_\" or \"Iptc_\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "Occorre installare \"%s\" prima di continuare." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "Non è possibile aprire l'immagine con %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Comando" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "Output" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Errore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "I nomi elencati non sono validi: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "&Seleziona" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Attenzione: python-wxversion non è installato.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Per favore reinstallalo." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Per favore aggiorna il tuo wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Errore versione wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "Versione del programma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "&Riconoscimenti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licenza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Chiudi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Informazioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Crediti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Documentazione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Traduzione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Opera d'arte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Librerie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Sponsor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licenza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "Etichetta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Valore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "avviso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "Aggiungi etichetta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "Sei sicuro di voler cancellare questa etichetta da \"%s\"?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "Sei sicuro di voler eliminare questa etichetta da tutte le immagini?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "Il Tag dovrebbe iniziare con Exif_* or Iptc_*" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "L'etichetta esiste già" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Immagini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Tutti i file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "&Copia Valore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "&Aggiungi etichetta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "&Elimina etichetta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "Apri &Url..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "&Elimina immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "&Copia etichetta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "&Aggiungi etichetta a tutte le immagini..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "&Elimina etichetta da tutte le immagini..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "&Rinomina etichetta per tutte le immagini..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "&Modifica Valore per Tutte le Immagini..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "Impossibile aggiungere l'etichetta <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "Impossibile eliminare l'immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "Impossibile cambiare l'etichetta <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "Spiacenti, %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "Spiacenti, impossibile aprire queste immagini:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Scegli un'immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Digita un url immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "per favore installa pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "nessun'etichetta %s trovata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Aggiungi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "caricamento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "no" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "sì" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Selezione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Caratteri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Ombra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filtro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Crea una ombra sfocata sotto l'immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Bordi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Sfocatura ombra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Colore di sfondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Colore ombreggiatura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "Forza il colore di sfondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "Adatta immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "Riscala immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "Modello in scala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "Separa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "Mappatura pagina" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "Fotocamera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "Rotazione camera orizzontale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "Rotazione camera verticale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "Avvolgimento camera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "Distanza camera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "Mostra Opzioni Piani" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "Usa Piano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "Colore Piano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "Opacità Piano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "Sfondo trasparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "Mostra Opzioni di Sfondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Sfondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "Gradiente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "Trasparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "Autoritaglio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "Stelle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "Colore delle stelle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "Nebbia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "Blender" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "plugin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "Oggetti 3D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "La versione di Blender installata non è corretta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "È richiesto Blender %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "Oggetto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "Dimensione dell'immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "Seleziona la Rotazione per %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Effetto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Sfocatura, Contrasto, Rilievo, Smussatura..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filtro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Ripeti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Quantità" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "trasforma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Slitta per distanza e avvolgi intorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Tela" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Ritaglia o espandi la tela senza scalarla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "Larghezza Tela" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Altezza Tela" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Allinea orizzontalmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Allinea verticalmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Colore ad alfa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "colore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Rendi trasparente il colore selezionato" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "Seleziona Colore Per" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "Valore Colore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Filigrana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Applica con segmentazione, scalatura ed opacità" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Desatura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Sfuma al grigio tutti i colori" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Ingrandisci o rimpicciolisci l'immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Mantieni le proporzioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Ricampiona l'immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Trasponi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Capovolgi o ruota di 90 gradi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Colonne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Righe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "Entrambi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Verticale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "Specchia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Direzione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Rinomina" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "Rinomina l'immagine originale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Incrocio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Arrotondato" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Quadro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Rotondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Angoli arrotondati o incrociati" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Raggio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "Stesso metodo per tutti gli angoli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Angolo in alto a sinistra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Angolo in alto a destra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Angolo in basso a sinistra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Angolo in basso a destra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Evidenzia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Inserisci il colore sotto la trasparenza dell'immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Riempimento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Modalità Converti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Converti il modo del colore di una immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Adatta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Minimizza e taglia immagine con proporzione fissa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Sanguinare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Contrasto Automatico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Massimizza contrasto immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Blocca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Salva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "Mostra Opzioni dei Tipi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "Ottimizzazione PNG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "JPEG - Qualità" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "JPEG - Dimensione Massima" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "JPEG - Tolleranza Dimensione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "Compressione TIFF" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Metadati" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Mediano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Copia il valore medio di pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "tempo exif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "tempo file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "Exif e file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "metadata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "Cambia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "Usa la data e l'ora dagli exif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Secondi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Minuti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Ore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Giorni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Mesi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Anni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Maschera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Applica una maschera trasparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Ricampiona Maschera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Testo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Scrivi il testo in una determinata posizione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Carattere" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Dimensione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Colora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Colora una immagine in scala di grigi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Nero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Bianco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Copia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "Copia l'immagine originale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posterizza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "Riduci il numero di bit del canale dei colori" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Scrivi Etichetta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "Assegna un nuovo valore ad una etichetta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Etichetta (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "Uguale per tutti i lati" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "Diverso per ciascun lato" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "Disegna un bordo all'interno o all'esterno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "Spessore del bordo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Rank" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Copia il valore di rank'th pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Sovraesponi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Inverti tutti i valori pixel sopra la soglia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Soglia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Equalizza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Equalizza l'istogramma immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "Automatico (leggi l'orientamento dagli Exif)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Taglia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Ruota" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "Rifletti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Scala di grigi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "Rigenera le anteprime" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "Trasversale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Trasformazione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Angolo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "Preserva Timestamp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Mosta opzioni avanzate" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "Aggiorna JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "Aggiorna Anteprime Exif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "Aggiorna le informazioni di orientamento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Commenti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Trasformazione " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Angolo " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Direzione " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "Accessori" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "JPEG senza perdita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "Ruota, specchia, scala di grigi e ritaglia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Taglia l'immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "Tipo di riempimento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "Immagine di riempimento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "Cartella di riempimento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Ruota con angolo casuale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Allarga" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Opacità Sfondo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Inverti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Inverti i colori di un'immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Geotag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "Dati GPS" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "Rapporto GPS (csv)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Riflessione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Genera un riflesso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Profondità" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Gap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "Sfoca riflesso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "Scala riflesso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "Metodo scalatura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Comune" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Copia il più comune valore pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Copia il valore minimo di pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Contorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Disegna un contorno ai bordi dell'immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Colore contorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Colore di riempimento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "Includi immagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "Angolo in alto a sinistra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "Angolo in alto a destra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "Angolo in basso a sinistra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "Angolo in basso a destra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "Utente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Prospettiva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Inclina 2d o 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "Proiezione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Angolo inclinazione a sinistra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Angolo inclinazione verso l'alto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Fattore di inclinazione in basso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Fattore di inclinazione a destra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Contrasto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Regola da grigio a bianco & nero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "Salva etichette" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "Salva solo i metadati (senza perdita)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Uno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Cancella etichette" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Cancellare tag Exif o Iptc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Massimo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Copia il valore massimo dipixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Saturazione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Aggiusta saturazione da scala di grigi in poi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Rinomina il tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "Rinomina un tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "Da (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "A (Exif,Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Luminosità" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Aggiusta luminosità da nero a bianco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "Bordo 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "Sfocatura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "Punti elenco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "Carboncino" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "Sfocatura in movimento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Schizzo a matita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "Disegna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "Aumenta contrasto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "Riduci contrasto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "Onda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Imagemagick" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "Sfoca, Polaroid, Ombre, Ammorbidisci..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Colore Del Bordo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "Didascalia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "Fattore di contrasto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "Soglia di contrasto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "Raggio sfocatura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "Altezza delle onde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "Lunghezza delle onde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Schizzo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "Trasforma in un disegno a matita in scala di grigi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "Esegui un comando esterno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "Verifica Programma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "Verifica Ingresso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "Verifica Uscita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "Consenti come ultima azione" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Queste estensioni sono state installate con successo:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Patch non è riuscito ad installare la funzionalità richiesta." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch ha provato a disinstallarsi da Windows Explorer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Devi installare l'estensione Python Win32 per questa funzionalità." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Lista azioni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Nessuna lista azioni fornita." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Percorso immagini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Vuoi continuare?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Cosa vuoi fare adesso?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "se riavvii %s, l'azione apparirà nel menù contestuale." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch non è riuscito ad installare l'azione in %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" "Questo richiede anche che il pacchetto python-nautilus sia installato." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Precessare le immagini in modo batch con Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "Phatch con %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Processa con una lista di azioni Phatch recente" #~ msgid "doesn't exist" #~ msgstr "non esiste" #~ msgid "for integer" #~ msgstr "per intero" #~ msgid "is negative, but should be positive" #~ msgstr "è negativo, ma deve essere positivo" #~ msgid "for boolean" #~ msgstr "per booleano" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (pixel da 3X8 bit, colore vero)" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Scala di grigi (pixel di 8 bit, bianco e nero)" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (pixel da 3X8 bit, formato video a colori)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (pixel da 32 bit interi)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (pixel da 32 bit in virgola mobile)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (pixel da 8-bit, mappati usando una tavolozza di colori)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (pixel da 4X8 bit, separazione di colore)" #~ msgid "new" #~ msgstr "nuovo" #~ msgid "Colour" #~ msgstr "Colore" #~ msgid "Filename" #~ msgstr "Nome del File" #~ msgid "All selected image types" #~ msgstr "Tutti i tipi di immagine selezionati" #~ msgid "All default image types" #~ msgstr "Tutti i tipi predefiniti di immagine" #~ msgid "please email" #~ msgstr "per favore manda un'e-mail" #~ msgid "Open a python shell for introspection" #~ msgstr "Apri una shell di Python per introspezione" #~ msgid "&Skip To Next Image" #~ msgstr "&Salta alla prossima immagine" #~ msgid "&Ignore Error" #~ msgstr "&Ignora errore" #~ msgid "&Default Types" #~ msgstr "Tipi &predefiniti" #~ msgid "Force Background Colour" #~ msgstr "Forza il colore di background" #~ msgid "Shadow Colour" #~ msgstr "Colore dell'ombra" #~ msgid "Background Colour" #~ msgstr "Colore di sfondo" #~ msgid "Save an image" #~ msgstr "Salva un'immagine" #~ msgid "Width" #~ msgstr "Larghezza" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "come Phatch genererà l'interfaccia utente automaticamente." #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Scrivi un nuovo plugin azione per Phatch con PIL." #~ msgid "Phatch Version" #~ msgstr "Versione di Phatch" #~ msgid "Create missing folders" #~ msgstr "Crea cartelle mancanti" #~ msgid "Height" #~ msgstr "Altezza" #~ msgid "colours" #~ msgstr "colori" #~ msgid "Fade all colours to gray" #~ msgstr "Sfuma tutti i colori verso il grigio" #~ msgid "Rename the image file" #~ msgstr "Rinomina il file di immagine" #~ msgid "Do not create missing folders" #~ msgstr "Non creare cartelle mancanti" #~ msgid "border" #~ msgstr "bordo" #~ msgid "february" #~ msgstr "febbraio" #~ msgid "january" #~ msgstr "gennaio" #~ msgid "march" #~ msgstr "marzo" #~ msgid "april" #~ msgstr "aprile" #~ msgid "monday" #~ msgstr "lunedi" #~ msgid "september" #~ msgstr "settembre" #~ msgid "october" #~ msgstr "ottobre" #~ msgid "november" #~ msgstr "novembre" #~ msgid "december" #~ msgstr "dicembre" #~ msgid "may" #~ msgstr "maggio" #~ msgid "june" #~ msgstr "giugno" #~ msgid "july" #~ msgstr "luglio" #~ msgid "august" #~ msgstr "agosto" #~ msgid "saturday" #~ msgstr "sabato" #~ msgid "friday" #~ msgstr "venerdi" #~ msgid "thursday" #~ msgstr "giovedi" #~ msgid "wednesday" #~ msgstr "mercoledi" #~ msgid "sunday" #~ msgstr "domenica" #~ msgid "tuesday" #~ msgstr "martedi" #~ msgid "the file extension" #~ msgstr "estensione del file" #~ msgid "invalid syntax" #~ msgstr "sintassi non valida" #~ msgid "the variable" #~ msgstr "la variabile" #~ msgid "the integer value" #~ msgstr "il valore intero" #~ msgid "the filename" #~ msgstr "il nomefile" #~ msgid "the float value" #~ msgstr "il valore float" #~ msgid "for float" #~ msgstr "per float" #~ msgid "does not exist." #~ msgstr "non esiste." #~ msgid "is invalid." #~ msgstr "non è valido." #~ msgid "&Recent" #~ msgstr "&Recente" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Questa lista azioni è stata creata da una vecchia %(name)s versione.\n" #~ "\n" #~ msgid "Only an image file is allowed." #~ msgstr "Solo un file di immagine è permessa." #~ msgid "drag & drop any image here" #~ msgstr "clicca & trascina qualsiasi immagine qui" #~ msgid "Open image file" #~ msgstr "Apri file immagine" #~ msgid "&Preview" #~ msgstr "&Anteprima" #~ msgid "Copy cell text" #~ msgstr "Copia cella testo" #~ msgid "Open image url" #~ msgstr "Apri url immagine" #~ msgid "&Export..." #~ msgstr "&Esporta..." #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Riduci il numero di bit nel canale del colore" #~ msgid "Resample Shadow" #~ msgstr "Ricampiona ombra" #~ msgid "Scale down only" #~ msgstr "Scala solo verso il basso" #~ msgid "By offset" #~ msgstr "Da offset" #~ msgid "Save metadata" #~ msgstr "Salva metadata" #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch non può creare la gocciolina:" #~ msgid "Copy the image file" #~ msgstr "Copia il file dell'immagine" #~ msgid "Put colour under transparent image" #~ msgstr "Metti i colori sotto una immagine trasparente" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Vedere Strumenti->mostra Log per maggiori dettagli" #~ msgid "Crop or add border to all sides" #~ msgstr "Taglia o aggiungi bordi a tutti i lati" #~ msgid "invalid literal" #~ msgstr "lettera invalida" #~ msgid "is zero, but should be non-zero." #~ msgstr "è zero, ma deve essere diverso da zero." #~ msgid "a filename with a valid extension was expected." #~ msgstr "un nomefile con un una estensione valida." #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "PHoto bATCH: Esegue azioni e rinomina" #~ msgid "&File" #~ msgstr "&File" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "Scrivi azione & Plugin ...\tCtrl-W" #~ msgid "watermark" #~ msgstr "filagrana" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "&sito web...\tCtrl-I" phatch-0.2.7/locale/ja/0000755000000000000000000000000011346363116014562 5ustar rootroot00000000000000phatch-0.2.7/locale/ja/LC_MESSAGES/0000755000000000000000000000000011346363116016347 5ustar rootroot00000000000000phatch-0.2.7/locale/ja/LC_MESSAGES/phatch.mo0000644000000000000000000000072511346363116020157 0ustar rootroot00000000000000$,89Project-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2008-05-06 01:50+0000 Last-Translator: FULL NAME Language-Team: Japanese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:41+0000 X-Generator: Launchpad (build Unknown) phatch-0.2.7/locale/ja/LC_MESSAGES/phatch.po0000644000000000000000000030552211346363116020165 0ustar rootroot00000000000000# Japanese translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2008-05-06 01:50+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" phatch-0.2.7/locale/ka/0000755000000000000000000000000011346363116014563 5ustar rootroot00000000000000phatch-0.2.7/locale/ka/LC_MESSAGES/0000755000000000000000000000000011346363116016350 5ustar rootroot00000000000000phatch-0.2.7/locale/ka/LC_MESSAGES/phatch.mo0000644000000000000000000000722011346363116020155 0ustar rootroot000000000000000C()0 3AIPW `"m    .4< E O[ahmt } 1 #*/ 3='":J7]Z y  =  ( '+ FS =  z   !     7 !V 1x   ! X [ $t  ! @ .G Z gt& !.%+#)- ,$'  "*0 /(AmountAsAuto ContrastBooleanBorderChoiceContrastConvert ModeConvert the color mode of an imageDescriptionExamplesFileFlip or rotate 90 degreesFloatGrayscaleHorizontalHorizontal OffsetIgnore errorsImageInspect metadata (requires exif & iptc plugin)IntegerInteger+Integer+0InteractiveLabelMethodModeOffsetResampleResolutionSaturationShadowSizeSliderSolarizeSpecify locale language (for example en or en_GB)StringTransposeTresholdVerboseVertical OffsetbicubicdefaultfiltersizetagtransformProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2008-04-14 21:58+0000 Last-Translator: David Machakhelidze Language-Team: Georgian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) რაოდენობაროგორცავტოკონტრასტილოგიკური მნიშნველობაჩარჩოარჩევაკონტრასტიკონვერტაციის რეჟიმისურათის ფერთა რეჟიმის კონვერტაციააღწერილობამაგალითებიფაილიჩემობრუნება 90 გრადუსითმოლივლივემუქის გრადაციაჰორიზონტალურიჰორიზონტალური წანაცვლებაშეცდომების იგნორირებასურათიმეტაინფორმაციის ინსპექტირება (საჭიროა exif და iptc მოდული)მთელიმთელი+მთელი+0ინტერაქტივიწარწერამეთოდირეჟიმიოფსეტიგარჩევადობის შეცვლაგარჩევადობაფერთა ინტენსივობაჩრდილიზომამცოცავისოლარიზაციამიუთითეთ ლოკალური ენა (მაგ. en ან en_GB)სტრიქონიტრანსპოზიციაზღვარიდაწვრილებითვერტიკალური წანაცვლებაბიკუბიკურიძირითადიფილტრიზომატეგიგარდაქმნაphatch-0.2.7/locale/ka/LC_MESSAGES/phatch.po0000644000000000000000000031210011346363116020154 0ustar rootroot00000000000000# Georgian translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2008-04-14 21:58+0000\n" "Last-Translator: David Machakhelidze \n" "Language-Team: Georgian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "მაგალითები" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "შეცდომების იგნორირება" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "ინტერაქტივი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "მიუთითეთ ლოკალური ენა (მაგ. en ან en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "მეტაინფორმაციის ინსპექტირება (საჭიროა exif და iptc მოდული)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "დაწვრილებით" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "აღწერილობა" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "ფაილი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "ძირითადი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "სურათი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "წარწერა" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "ტეგი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "ლოგიკური მნიშნველობა" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "სტრიქონი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "არჩევა" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "გარჩევადობა" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "მოლივლივე" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "როგორც" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "რეჟიმი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "გარჩევადობის შეცვლა" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "ბიკუბიკური" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "მთელი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "მთელი+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "მთელი+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "ჰორიზონტალური" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "მცოცავი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "ოფსეტი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "ჰორიზონტალური წანაცვლება" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "ვერტიკალური წანაცვლება" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "მეთოდი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "ზომა" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "ჩრდილი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "ფილტრი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "ჩარჩო" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "რაოდენობა" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "გარდაქმნა" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "ტრანსპოზიცია" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "ჩემობრუნება 90 გრადუსით" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "კონვერტაციის რეჟიმი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "სურათის ფერთა რეჟიმის კონვერტაცია" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "ავტოკონტრასტი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "ზომა" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "სოლარიზაცია" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "ზღვარი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "მუქის გრადაცია" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "კონტრასტი" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "ფერთა ინტენსივობა" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "მეტაინფორმაციის შენახვა (საჭიროა exif და iptc მოდულები)" #~ msgid "Colour" #~ msgstr "ფერი" #~ msgid "Filename" #~ msgstr "ფაილის სახელი" #~ msgid "colours" #~ msgstr "ფერები" #~ msgid "Height" #~ msgstr "სიმაღლე" #~ msgid "Width" #~ msgstr "სიგანე" #~ msgid "Shadow Colour" #~ msgstr "ჩრდილის ფერი" #~ msgid "Background Colour" #~ msgstr "ფონის ფერი" phatch-0.2.7/locale/ko/0000755000000000000000000000000011346363116014601 5ustar rootroot00000000000000phatch-0.2.7/locale/ko/LC_MESSAGES/0000755000000000000000000000000011346363116016366 5ustar rootroot00000000000000phatch-0.2.7/locale/ko/LC_MESSAGES/phatch.mo0000644000000000000000000000543611346363116020202 0ustar rootroot00000000000000)    (*2=p- 0.L{ &"'1#+U L V d;r0725-h: /' @W   3 / %$ J *g >  !        %s RecentAction ListsAll FilesAllow Geek action and unsafe expressionsAlways save on desktopAssociate Images with Action List in %s...Associate Images with Recent Action Lists in %s...Describe here the action list.Do not check images firstEasily batch process images and edit metadataExamplesFalseIgnore errorsImage InspectorInclude all subfoldersInitialize fonts (only for installation scripts)Inspect metadata (requires exif & iptc plugin)Inspect with PhatchInteractiveKeep existing images (don't overwrite)No save action required at the endPhoto Batch ProcessorRun %s as console program without a guiSpecify locale language (for example en or en_GB)There should be a 'Save' action at the end.TrueUnsaved Action ListVerbosefalsetrueProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-12-10 22:26+0000 Last-Translator: stani Language-Team: Korean MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:41+0000 X-Generator: Launchpad (build Unknown) 최근 %s액션 목록모든 파일안전하지 않은 표현식과 특이한 액션을 허용항상 바탕화면에 저장%s의 액션 목록과 이미지 연결하기...%s의 최근 액션 목록과 이미지 연결하기...여기에 액션 리스트 설명을 적습니다.처음부터 이미지를 확인하지 않음쉬운 배치 이미지 처리 와 메타 데이타 편집예제거짓오류 무시하기이미지 검사 도구모든 하위 폴더 포함글꼴 초기화 (설치 스크립트에서만)메타 데이타 요소 검사 (EXIF & IPTC 플러그인 필요)Phatch로 요소 보기인터액티브현재 이미지 유지하기 (덮어쓰지 않음)종료 시 저장 액션이 필요하지 않음사진 및 이미지 일괄 처리기콘솔에서 %s 실행하기언어 선택하기 (예: ko 또는 ko_KR)마지막엔 '저장' 액션이 반드시 있어야 합니다.참저장되지 않은 액션 목록더 자세한 정보 보기거짓참phatch-0.2.7/locale/ko/LC_MESSAGES/phatch.po0000644000000000000000000030740711346363116020210 0ustar rootroot00000000000000# Korean translation for phatch # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-12-10 22:26+0000\n" "Last-Translator: stani \n" "Language-Team: Korean \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Phatch로 요소 보기" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "예제" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "콘솔에서 %s 실행하기" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "항상 바탕화면에 저장" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "오류 무시하기" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "글꼴 초기화 (설치 스크립트에서만)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "인터액티브" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "현재 이미지 유지하기 (덮어쓰지 않음)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "언어 선택하기 (예: ko 또는 ko_KR)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "메타 데이타 요소 검사 (EXIF & IPTC 플러그인 필요)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "종료 시 저장 액션이 필요하지 않음" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "모든 하위 폴더 포함" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "처음부터 이미지를 확인하지 않음" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "안전하지 않은 표현식과 특이한 액션을 허용" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "더 자세한 정보 보기" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "이미지 검사 도구" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "쉬운 배치 이미지 처리 와 메타 데이타 편집" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "사진 및 이미지 일괄 처리기" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "참" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "거짓" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "참" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "거짓" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "저장되지 않은 액션 목록" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "액션 목록" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "모든 파일" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "여기에 액션 리스트 설명을 적습니다." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "마지막엔 '저장' 액션이 반드시 있어야 합니다." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "최근 %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "%s의 액션 목록과 이미지 연결하기..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "%s의 최근 액션 목록과 이미지 연결하기..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" phatch-0.2.7/locale/ms/0000755000000000000000000000000011346363116014607 5ustar rootroot00000000000000phatch-0.2.7/locale/ms/LC_MESSAGES/0000755000000000000000000000000011346363116016374 5ustar rootroot00000000000000phatch-0.2.7/locale/ms/LC_MESSAGES/phatch.mo0000644000000000000000000001750011346363116020203 0ustar rootroot00000000000000\ !(FKSZk  * 0;@FN U`gp   .7=FNU[`hosy}    !-4:BFKPX_gnv*{   "-4;B ]h o z     ) DPU[^ n,z  "*29=CHQX^dkpw~  .37  '8OUfovz   ( 1;CK_ g r       %-38=EJPVr    #+28?F)Jt{    ,5 ; EOXa%h) ,7=C H V)c$  & -8<B GQY_hos{  "7=}1 qW6@|N Zt?alm*5bi{cY/`T,jF_!$=#z+GfEkeyrPo HBhSM'-s8:V4xu%Apv&97O<Q\L(w]>I;JRC0 3~d[gU )2nK X.^"D&Abort&About Phatch... Ctrl-Shift-A&Add&Cancel&Close&Continue Anyway&Documentation... Ctrl-M&Edit&Forum... Ctrl-F&Help&License&OK&Report a Bug... Ctrl-B&Translate Phatch... Ctrl-T&ViewAboutAddAlign HorizontalAlign VerticalAllAll FilesAll filesAngleBackgroundBitsBlackBooleanBorderBrightnessBrowseC&reditsCheck images firstChoiceChoose File(s)Choose an imageCodeContrastCopyCreditsCrossDepthDescriptionDo you want to continue?DocumentationDownDrag & DropEffectEnter an image urlEqualizeErrorExamplesExecuteExpandFalseFileFile(s)FilterFitFloatGapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHorizontalHorizontal OffsetImageImagesInIntegerInteger+Integer+0InteractiveInvertLabelLicenseLogMarkMaskMaximumMedianMessageMethodMinimumModeMonochrome (1-bit pixels, black and white)NormalOffsetOpacityOpenOptionsOrientationPathPerspectivePlease (re)install it.Please upgrade your wxPython.RadiusReflectionRemoveRenameRepeatReport a bug on launchpad.ResolutionRotateRotate 180Rotate 270Rotate 90SaturationSaveSave last changes toScaleSelectSelectionShadowShow &Log... Ctrl-LShow log fileSizeSourceSponsorsSquareTextTileTranslate Phatch in your native language.TranslationTrueTypesUpVertical OffsetView SourceWarning: python-wxversion is not installed. WatermarkWhat do you want to do now?Whiteabortbackgroundbilinearbooleanbottombroaden your searchcenterchoicedaydecimaldefaultdetaildpifalsefilefilesizefilterfloatframeheighthourignoreimagesintegerleftminutemodemonthmonthnamenono %s tags foundpathplease install pyexiv2positive integerrightsecondsizetagtoptruetypewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2008-12-04 15:37+0000 Last-Translator: Ahmed Noor Kader Mustajir Md Eusoff Language-Team: Malay MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) Henti P&aksaPerih&al Phatch... Ctrl-Shift-AT&ambah&Batal&Tutup&Teruskan SahajaDoku&mentasi... Ctrl-M&Edit&Forum... Ctrl-F&Bantuan&Lesen&OKLapo&r Pepijat... Ctrl-B&Terjemah Phatch... Ctrl-T&PaparPerihalTambahJajaran MengufukJajaran MenegakSemuaSemua failSemua failSudutLatar belakangBitHitamBooleanSempadanKecerahanLungsurK&reditSemak gambar dahuluPilihanPilih failPilih gambarKodKontrasSalinKreditSilangKedalamanKeteranganAnda mahu teruskan?DokumentasiBawahSeret & LepasKesanMasukkan url gambarMenyamakanRalatContohLaksanakanKembangSalahFailFailPenapisMuatApungJarakPergi ke dokumentasi PhatchPergi ke forum PhatchPergi ke Laman PhatchSkala kelabuMengufukOfset mengufukImejGambarDalamIntegerInteger+Integer+0InteraktifSongsangLabelLesenLogTandaTopenganMaksimaMedianMesejKaedahMinimaModMonokrom (1 -bit piksel, hitam dan putih)NormalOfsetKelegapanBukaPilihanOrientasiLaluanPerspektifSila pasang semula.Sila tingkatkan wxPython andaRadiusPantulanBuangNamakan semulaUlangLapor pepijat di LaunchpadResolusiPutarPutar 180Putar 270Putar 90KetepuanSimpanSimpan perubahan yang terakhir kepadaSkalaPilihPilihanBayangTunjukkan &Log... Ctrl-LTunjukkan fail logSaizSumberPenajaSegiempat SamaTeksJubinTerjemah Phatch kepada bahasa ibunda andaTerjemahanBenarJenisNaikOfset MenegakLihat SumberAmaran: python-wxversion tidak dipasang. Tera AirApa yang anda mahu lakukan sekarang?Putihhenti paksalatar belakangbilinearbooleanbawahLuaskan pencarian andaTengahpilihanharidecimalpiawaiterperincidpisalahfailsaiz failpenapisapungkerangkatinggijamabaikangambarintegerkiriminitmodbulanNama bulantidaktiada %s tag ditemuilaluansila pasang pyexiv2integer positifkanansaatsaiztagatasbenarjenislebardenganVersi wxPython ralattahunyaphatch-0.2.7/locale/ms/LC_MESSAGES/phatch.po0000644000000000000000000031560311346363116020213 0ustar rootroot00000000000000# Malay translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2008-12-04 15:37+0000\n" "Last-Translator: Ahmed Noor Kader Mustajir Md Eusoff \n" "Language-Team: Malay \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Contoh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interaktif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "henti paksa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "abaikan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Buka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Laksanakan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Tambah" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Buang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Naik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Bawah" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Keterangan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "kerangka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Seret & Lepas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Simpan perubahan yang terakhir kepada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Pilih fail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "gambar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Lungsur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Fail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "piawai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Lihat Sumber" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "Luaskan pencarian anda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Laluan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Edit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Papar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Tunjukkan &Log...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Tunjukkan fail log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Pergi ke Laman Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "Doku&mentasi...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Pergi ke dokumentasi Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Pergi ke forum Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Terjemah Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Terjemah Phatch kepada bahasa ibunda anda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "Lapo&r Pepijat...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Lapor pepijat di Launchpad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "Perih&al Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Bantuan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Kod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "Henti P&aksa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Mesej" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Teruskan Sahaja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Pilihan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Jenis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Sumber" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Fail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Semak gambar dahulu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Batal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Imej" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Label" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Pilihan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Resolusi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "Dalam" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Apung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Mod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Integer+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Integer+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Mengufuk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "latar belakang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Semua" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientasi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Ofset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Ofset mengufuk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Ofset Menegak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Jubin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Skala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Tanda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Kelegapan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Kaedah" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Benar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Salah" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "benar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "salah" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Semua fail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "dengan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Pilih" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "hari" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "saiz fail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "jam" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "bulan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "Nama bulan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "laluan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "saat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "jenis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "tahun" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "tinggi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "mod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "lebar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "saiz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "kiri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "Tengah" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "kanan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "atas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "bawah" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monokrom (1 -bit piksel, hitam dan putih)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "terperinci" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilinear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Putar 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Putar 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Putar 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "integer positif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "apung" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "pilihan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Ralat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Amaran: python-wxversion tidak dipasang.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Sila pasang semula." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Sila tingkatkan wxPython anda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Versi wxPython ralat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "K&redit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Lesen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Tutup" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Perihal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Kredit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dokumentasi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Terjemahan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Penaja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Lesen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Gambar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Semua fail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Pilih gambar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Masukkan url gambar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "sila pasang pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "tiada %s tag ditemui" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "T&ambah" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "tidak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "ya" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Pilihan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Bayang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "penapis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Sempadan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Latar belakang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Kesan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Penapis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Ulang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Jajaran Mengufuk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Jajaran Menegak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Tera Air" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Namakan semula" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "fail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Silang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Segiempat Sama" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Radius" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Muat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Simpan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Median" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Topengan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Teks" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Saiz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Hitam" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Putih" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Salin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Menyamakan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Putar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Skala kelabu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Sudut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Kembang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Songsang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Pantulan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Kedalaman" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Jarak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minima" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspektif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Kontras" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maksima" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Ketepuan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Kecerahan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Anda mahu teruskan?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Apa yang anda mahu lakukan sekarang?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "Colour" #~ msgstr "Warna" #~ msgid "Filename" #~ msgstr "Namafail" #~ msgid "colours" #~ msgstr "Warna" #~ msgid "border" #~ msgstr "sempadan" #~ msgid "Height" #~ msgstr "Tinggi" #~ msgid "Width" #~ msgstr "Lebar" #~ msgid "Copy the image file" #~ msgstr "Salin fail gambar" #~ msgid "Rename the image file" #~ msgstr "Namakan semula fail gambar" #~ msgid "Save an image" #~ msgstr "Simpan gambar" #~ msgid "watermark" #~ msgstr "Tera Air" #~ msgid "april" #~ msgstr "april" #~ msgid "february" #~ msgstr "februari" #~ msgid "january" #~ msgstr "januari" #~ msgid "march" #~ msgstr "mac" #~ msgid "may" #~ msgstr "mei" #~ msgid "june" #~ msgstr "jun" #~ msgid "thursday" #~ msgstr "khamis" #~ msgid "wednesday" #~ msgstr "rabu" #~ msgid "monday" #~ msgstr "isnin" #~ msgid "tuesday" #~ msgstr "selasa" #~ msgid "september" #~ msgstr "september" #~ msgid "october" #~ msgstr "oktober" #~ msgid "november" #~ msgstr "november" #~ msgid "december" #~ msgstr "disember" #~ msgid "july" #~ msgstr "julai" #~ msgid "august" #~ msgstr "ogos" #~ msgid "saturday" #~ msgstr "sabtu" #~ msgid "friday" #~ msgstr "jumaat" #~ msgid "sunday" #~ msgstr "ahad" #~ msgid "new" #~ msgstr "baru" #~ msgid "doesn't exist" #~ msgstr "tidak wujud" #~ msgid "the variable" #~ msgstr "pemboleubah" #~ msgid "the float value" #~ msgstr "nilai apung" #~ msgid "the integer value" #~ msgstr "nilai integer" #~ msgid "the filename" #~ msgstr "Nama fail" #~ msgid "does not exist." #~ msgstr "tidak wujud" #~ msgid "Save metadata" #~ msgstr "simpan metadata" #~ msgid "&Recent" #~ msgstr "Te&rkini" #~ msgid "please email" #~ msgstr "Sila email" #~ msgid "drag & drop any image here" #~ msgstr "seret & lepas mana gambar disini" #~ msgid "Only an image file is allowed." #~ msgstr "Cuma fail gambar sahaja yang dibenarkan" #~ msgid "Open image file" #~ msgstr "Buka fail gambar" #~ msgid "Copy cell text" #~ msgstr "Salin teks sel" #~ msgid "Open image url" #~ msgstr "Buka url gambar" #~ msgid "Phatch Version" #~ msgstr "Versi Phatch" #~ msgid "&Skip To Next Image" #~ msgstr "Langkau Ke Gambar &Seterusnya" #~ msgid "&Ignore Error" #~ msgstr "Aba&ikan Ralat" #~ msgid "&File" #~ msgstr "&Fail" #~ msgid "&Export..." #~ msgstr "&Eksport..." #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "Cangkerang &Python...\tCtrl-P" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "&Laman Web...\tCtrl-I" phatch-0.2.7/locale/nb/0000755000000000000000000000000011346363116014567 5ustar rootroot00000000000000phatch-0.2.7/locale/nb/LC_MESSAGES/0000755000000000000000000000000011346363116016354 5ustar rootroot00000000000000phatch-0.2.7/locale/nb/LC_MESSAGES/phatch.mo0000644000000000000000000003375211346363116020172 0ustar rootroot00000000000000[ xy  %! $.5;U*X.2  ""EMTg {6 ;R[t{ ""&INT[a ,( $&K^en"(/4 8 BM>_ .AU] f p|'  !)07?*Do * /";*^8; 1:A FQXv      '4 \ g l   #    1 !!!!4!+P!3|!A!!!" """+"0"D"X"2[""" " """4"A#X# ^#i#q#z################ ### # $$$$#$+$0$7$>$C$ I$S$[$^$c$t$ $$$$$$$$ $$ $$$ $$$$ %%%%"%&%&&&&'#'!9'['n' '''"''0'2'A#(e(y(((( ($( ( (() ) )<')"d)))) ) ))) ))****3*#F*$j*"* *$*** +++ 4+%@+f+++6+ +%+,,,",;, @,J,P,a,v,|,,,,, ,, ,, , , , --C%-i-----$-$-5-4.H.P. X. b.m.~.)... .... /%/,/3/;/%A/g//%/// //0 0!0)0G0 K0-V0-080<0 (1351i1 p1 z1111 111 11 1 1 22+20292'W2=2222222# 3 .3 93 E30O3 3333303*3:'4b4k4|444444404 55(5 95C5"H54k5@5555 5 6 666$6)62686A6J6N6V6\6`6 h6v6 }6 66 66666666666 6 677 77 ;7G7N7R7Y7 h7 s7}7 77 777777777777CQx');R^BnXq(8le<i }2fUJ9Ikp+s4$uL`a#\ 3:=.V7Ob,6WgM?0@ >Tov G!c]t|[FHzDdKymYj~&N{Z1rASEh5w _/*- %"P&About Phatch... Ctrl-Shift-A&HelpAction ListsAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAlign HorizontalAlign VerticalAll FilesAmountAngleApply a transparency maskAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...Auto ContrastBackgroundBackground OpacityBitsBlackBleedBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBottom Left CornerBottom Right CornerBrightnessBrowseCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an image folderColorizeColorize grayscale imageCommonConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopyCrossCutoffDepthDescribe here the action list.DescriptionDisplays information about this application.Do not check images firstDo you want to continue?DownDownsize and crop image with fixed ratioDrag & DropDrops a blurred shadow under a photoDrops a reflectionEffectEqualizeEqualize the image histogramErrorExamplesExecuteExecute the actionExecuting action listExpandFalseFileFilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontGapGrayscaleHorizontalHorizontal OffsetIf you restart %s, the action will appear in the context menu.Ignore errorsImageImage InspectorInInclude all subfoldersInspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageLabelMake the image smaller or biggerMarkMaskMaximize image contrastMaximumMedianMethodMinimumModeMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo files or folder selected.NormalNothing to do.OffsetOpacityOpenOpen an action listOrientationOverwrite existing imagesPathPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch tried to uninstall itself from the Windows Explorer.PosterizeRGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRenameRepeatResampleResolutionRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaveSave Action List As...ScaleShadowShadow BlurShow description of the action listSizeSliderSolarizeSpecify locale language (for example en or en_GB)SquareStringTextThe action list is empty.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This requires also that the python-nautilus package is installed.TileTop Left CornerTop Right CornerTransposeTresholdTrueUnable to open fileUnsaved Action ListUpUse the Image Inspector to list all the variables.VerboseVertical OffsetView SourceWatermarkWhiteWrite text at a given positionYou can only use files with the following extensionsYou need to install the Python Win32 Extensions for this feature.abortbackgroundbicubicbilinearblurbooleanbottomcenterchoicecontourdaydefaultdetaildpiembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameheighthourignoreimagesintegerleftmiddleminutemodemonthmonthnamenearestnopathpositive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagtoptransformtruetypeweekdayweekdaynamewidthwithyearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2008-09-07 18:17+0000 Last-Translator: Rune C. Akselsen Language-Team: Norwegian Bokmal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) &Om Phatch... Ctrl-Shift-A&HjelpHandlingslisteTilføyTilføy handlingJuster lysstyrke fra svart til hvitJuster fra grå til svart og hvitJuster horisontaltJuster vertikaltAlle FilerMengdeVinkelLegg på et gjennomsiktighetsmaskeSomKnytt bildene sammen med handlingslisten i %s...Knytt bildene sammen med bildeinspektøren i %s...Knytt bildene sammen med den nylig brukte handlingslisten i %s...Automatisk kontrastBakgrunnBakgrunnens gjennomsiktighetBitsSvartBlødningUklarhet, Sliper, Preger, Glatt, ...Bolsk verdiKantlinjeNede til venstreNede til høyreLysstyrkeBla igjennomKan ikke utføre handlingen %(a)s på bildet %(i)s i mappen:Kan ikke utføre handlingen %(a)s:RammeKontrollerer bilderValgVelge file(r)Velg en mappeVelg handlingsliste...Velge bilde katalogFargeleggFargelegg gråskala bildeFellesLås proposjoneneKontrastKonverteringsmodusKonverter fargemodusen til et bildeKopierer den maksimale pikselverdienKopierer medianverdien for pikslerKopierer den minste pixelverdienKopierer den vanligste pikselverdienKopierKryssAvskjæringDybdeBeskriv her handlingslisten.BeskrivelseViser informasjon om dette programmetIkke sjekk bildene førstVil du fortsette?NedNedskaler og beskjær bildet med en låste proposjonerDra og slippLager en uskarp skygge under et bildeDropp refleksjonenEffektJevn utUtlign bildets histogramFeilEksemplerKjørKjør handlingenUtfører handlingeneUtvidUsannFilFilterTilpassSnu Venstre HøyreSnu Topp BunnSnu eller roter 90 graderDesimaltallKatalogSkrifttypeMellomromGråtonerHorisontalHorisontal forskyvelseHvis du starter %s om igjen, så vil handlingen dukke opp i menyen.Ignorér feilmeldingerBildeBildeinspektørInnInkludér alle subfoldereInspiser med EXIF & IPTC merkelapperInspiser EXIF & IPTC merkelapperUndersøk bildedataene (exif & iptc instikket kreves)Inspiser med PhatchHeltallHetall+heltall+0InteraktivFeil type bilderInverterInverter alle pikselverdier over terkelenInverter fargene i bildetEtikettGjør bilde mindre eller størreMerkMaskeMaksimer bildekontratenStørst muligMedianMetodeLavesteModusMonokrome (1-bit piksel, svart/hvitt)Flytt den valgte handlingen nedFlytt den valgte handlingen oppIngen filer eller kataloger er valgt.NormalIngenting å gjøre.ForskyvningGjennomsiktighetÅpneÅpne handlingslisteRetningOverskriv eksisterende bilderStiPerspektivPhatch klarer ikke å håndtere %d bilde(ne):Phatch kunne ikke installere handlingen i %s:Phatch klarte ikke å installere den ønskede funksjonenPhatch prøvde å avinstallere seg selv fra Windows ExplorerPlakateffektRGBA (4x8-bit piksler, RGB med gjennomsiktig maske)RadiusRamgeringRefleksjonFjernFjern tilknytningen fra %s...Fjern valgt handlingGi nytt navnGjentaResampleOpplønsingRotérRotér 180Rotér 270Rotér 90Roter med tilfeldig vinklingRundAvrundetRunde eller kryssede hjørnerKjør %s som et lite vindu på skjermenKjør %s som et konsollprogram uten grafisk brukergrensesnittMetningLagreLagre handlingsliste som...SkalerSkyggeUskarphet ved skyggeVis beskrivelsen av handlingslistenStørrelseGlidebryterSolariserVelg lokalt språk (for eksempel nb eller nb_NO)FirkantetStrengTekstOppgavelisten er tom.Ingen handlinger er aktivert.Det burde være en lagringshendelse på slutten.Disse filendelsene har blitt installert: Dette krever også at python-nautilus-pakken er installertFlisleggOppe til venstreOppe til høyreSnu omTerskelSannKlarer ikke å åpne filIkke lagret handlingslisteOppBruk bildeinspektøren til å gi alle variableneUtdypendeVertikal forskyvelseSe på kildekodeVannmerkeHvitSkriv tekst på en gitt plasseringDu kan bre bruke filer med de følgende filendelseneDu må installere Python Win32 utvidelsene for denne funksjonen.avbrytbakgrunnbicubicbilineærUskarphetbooleannederstsentervalgKonturerdøgnstandardDetaljerdpiPregingusannfilfilnavnfilstørrelsefilterFinn kantenedesimaltallmappemappenavnhøydetimeignorerbilderheltallvenstremidtenminuttmodusmånedmånedsnavnnærmesteneistipositivt heltallpositivt, heltall og ikke null.oppløsninghøyrerotsekundGjør skarperestørrelsehopp overglattGlatt ut merstrengundermappetaggøverstomformesanntypeukedagnavn på ukedagbreddemedårjaphatch-0.2.7/locale/nb/LC_MESSAGES/phatch.po0000644000000000000000000032507611346363116020200 0ustar rootroot00000000000000# Norwegian Bokmal translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2008-09-07 18:17+0000\n" "Last-Translator: Rune C. Akselsen \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Inspiser med Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Inspiser med EXIF & IPTC merkelapper" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Eksempler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Kjør %s som et konsollprogram uten grafisk brukergrensesnitt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Kjør %s som et lite vindu på skjermen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignorér feilmeldinger" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interaktiv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Velg lokalt språk (for eksempel nb eller nb_NO)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Undersøk bildedataene (exif & iptc instikket kreves)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Inkludér alle subfoldere" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Ikke sjekk bildene først" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Utdypende" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "avbryt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "hopp over" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignorer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Åpne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Åpne handlingsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Kjør" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Kjør handlingen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Tilføy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Tilføy handling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Fjern" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Fjern valgt handling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Opp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Flytt den valgte handlingen opp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Ned" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Flytt den valgte handlingen ned" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Bildeinspektør" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Beskrivelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Vis beskrivelsen av handlingslisten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Velg handlingsliste..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Lagre handlingsliste som..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Dra og slipp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Velg en mappe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Velge file(r)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Velge bilde katalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Bla igjennom" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Fil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Katalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "standard" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Se på kildekode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Sti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&Om Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Viser informasjon om dette programmet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Hjelp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Overskriv eksisterende bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Bilde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Etikett" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "tagg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Bolsk verdi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Streng" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Valg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Opplønsing" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "Inn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Desimaltall" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Som" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Modus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Resample" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicubic" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Heltall" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Hetall+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "heltall+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horisontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Glidebryter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "bakgrunn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Retning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Forskyvning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Horisontal forskyvelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Vertikal forskyvelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Flislegg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Skaler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Merk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Gjennomsiktighet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Metode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Sann" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Usann" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "sann" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "usann" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Ikke lagret handlingsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Handlingsliste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Alle Filer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Beskriv her handlingslisten." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Det burde være en lagringshendelse på slutten." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "med" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Knytt bildene sammen med handlingslisten i %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Knytt bildene sammen med den nylig brukte handlingslisten i %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Knytt bildene sammen med bildeinspektøren i %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Fjern tilknytningen fra %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Inspiser EXIF & IPTC merkelapper" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Ingenting å gjøre." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Oppgavelisten er tom." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Ingen handlinger er aktivert." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Kontrollerer bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch klarer ikke å håndtere %d bilde(ne):" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Feil type bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Ingen filer eller kataloger er valgt." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Klarer ikke å åpne fil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Kan ikke utføre handlingen %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Kan ikke utføre handlingen %(a)s på bildet %(i)s i mappen:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Utfører handlingene" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "døgn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "mappenavn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "filnavn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "filstørrelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "mappe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "time" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minutt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "måned" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "månedsnavn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "sti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "rot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "sekund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "undermappe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "type" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "ukedag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "navn på ukedag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "år" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "høyde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "modus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "bredde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "størrelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Bruk bildeinspektøren til å gi alle variablene" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Du kan bre bruke filer med de følgende filendelsene" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "venstre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "senter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "høyre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "øverst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "midten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "nederst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monokrome (1-bit piksel, svart/hvitt)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bit piksler, RGB med gjennomsiktig maske)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "Uskarphet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "Konturer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "Detaljer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "Preging" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "Finn kantene" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "glatt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "Glatt ut mer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "Gjør skarpere" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "nærmeste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilineær" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Rotér 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Rotér 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Rotér 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Snu Venstre Høyre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Snu Topp Bunn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "streng" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "heltall" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "positivt heltall" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "positivt, heltall og ikke null." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "oppløsning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "desimaltall" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "valg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Feil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "nei" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "ja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Skygge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Lager en uskarp skygge under et bilde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Kantlinje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Uskarphet ved skygge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Bakgrunn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Effekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Uklarhet, Sliper, Preger, Glatt, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Gjenta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Mengde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "omforme" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Ramme" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Juster horisontalt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Juster vertikalt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Vannmerke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Gjør bilde mindre eller større" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Lås proposjonene" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Snu om" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Snu eller roter 90 grader" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Gi nytt navn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "fil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Kryss" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Avrundet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Firkantet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Rund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Runde eller kryssede hjørner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Radius" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Oppe til venstre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Oppe til høyre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Nede til venstre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Nede til høyre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Konverteringsmodus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Konverter fargemodusen til et bilde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Tilpass" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Nedskaler og beskjær bildet med en låste proposjoner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Blødning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Automatisk kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maksimer bildekontraten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Avskjæring" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Lagre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Median" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Kopierer medianverdien for piksler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Maske" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Legg på et gjennomsiktighetsmaske" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Tekst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Skriv tekst på en gitt plassering" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Skrifttype" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Størrelse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Fargelegg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Fargelegg gråskala bilde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Svart" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Hvit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Plakateffekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Ramgering" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solariser" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Inverter alle pikselverdier over terkelen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Terskel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Jevn ut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Utlign bildets histogram" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Rotér" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Gråtoner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Vinkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Roter med tilfeldig vinkling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Utvid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Bakgrunnens gjennomsiktighet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Inverter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Inverter fargene i bildet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Refleksjon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Dropp refleksjonen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Dybde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Mellomrom" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Felles" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Kopierer den vanligste pikselverdien" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Laveste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Kopierer den minste pixelverdien" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspektiv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Juster fra grå til svart og hvit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Størst mulig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Kopierer den maksimale pikselverdien" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Metning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Lysstyrke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Juster lysstyrke fra svart til hvit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Disse filendelsene har blitt installert:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch klarte ikke å installere den ønskede funksjonen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch prøvde å avinstallere seg selv fra Windows Explorer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Du må installere Python Win32 utvidelsene for denne funksjonen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Vil du fortsette?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Hvis du starter %s om igjen, så vil handlingen dukke opp i menyen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch kunne ikke installere handlingen i %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Dette krever også at python-nautilus-pakken er installert" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "new" #~ msgstr "ny" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-bit piksler, farge video format)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-bit heltall piksler)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-bit piksler, farge)" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Gråskala (8-bit pikseler, svart/hvitt)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-bit piksler, farger adskilt)" #~ msgid "doesn't exist" #~ msgstr "eksiterer ikke" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32-bit desimaltall punkt piksler)" #~ msgid "is zero, but should be non-zero." #~ msgstr "er null, men skulle ikke vært det." #~ msgid "is negative, but should be positive" #~ msgstr "er negativt, skulle være positivt." #~ msgid "for boolean" #~ msgstr "for boolean" #~ msgid "Colour" #~ msgstr "Farge" #~ msgid "Filename" #~ msgstr "Filnavn" #~ msgid "All selected image types" #~ msgstr "Alle valgt bildetyper" #~ msgid "All default image types" #~ msgstr "Standard bildetype" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8-bit piksler, bruker farge palett)" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Lagre metadata (krever exif & iptc plugin)" #~ msgid "Do not create missing folders" #~ msgstr "Ikke lag manglende foldere" #~ msgid "colours" #~ msgstr "Farger" #~ msgid "Height" #~ msgstr "Høyde" #~ msgid "border" #~ msgstr "kantlinje" #~ msgid "Width" #~ msgstr "Bredde" #~ msgid "Shadow Colour" #~ msgstr "Skyggefarge" #~ msgid "Background Colour" #~ msgstr "Bakgrunnsfarge" #~ msgid "Force Background Colour" #~ msgstr "Tvungen bakgrunnsfarge" #~ msgid "Put colour under transparent image" #~ msgstr "Plasser farge under gjennomsiktig bilde" #~ msgid "Rename the image file" #~ msgstr "Gi nytt navn til bildefilen" #~ msgid "Copy the image file" #~ msgstr "Kopier bildefilen" #~ msgid "Scale down only" #~ msgstr "Kun nedskalering" #~ msgid "Save an image" #~ msgstr "Lagre et bilde" #~ msgid "watermark" #~ msgstr "vannmerke" #~ msgid "By offset" #~ msgstr "Med utjevning" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Skriv et nytt handlingsinnstikk for Phatch med PIL" #~ msgid "Fade all colours to gray" #~ msgstr "Ton alle farger til grått" #~ msgid "april" #~ msgstr "april" #~ msgid "february" #~ msgstr "februar" #~ msgid "january" #~ msgstr "januar" #~ msgid "march" #~ msgstr "mars" #~ msgid "may" #~ msgstr "mai" #~ msgid "september" #~ msgstr "september" #~ msgid "june" #~ msgstr "juni" #~ msgid "august" #~ msgstr "august" #~ msgid "july" #~ msgstr "juli" #~ msgid "saturday" #~ msgstr "lørdag" #~ msgid "thursday" #~ msgstr "torsdag" #~ msgid "wednesday" #~ msgstr "onsdag" #~ msgid "sunday" #~ msgstr "søndag" #~ msgid "friday" #~ msgstr "fredag" #~ msgid "monday" #~ msgstr "mandag" #~ msgid "tuesday" #~ msgstr "tirsdag" #~ msgid "october" #~ msgstr "oktober" #~ msgid "november" #~ msgstr "november" #~ msgid "december" #~ msgstr "desember" #~ msgid "Crop or add border to all sides" #~ msgstr "Beskjær eller legg til rammer på alle sidene" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Reduser antallet biter i fargekanalen" #~ msgid "invalid syntax" #~ msgstr "Ugyldig syntaks" #~ msgid "the variable" #~ msgstr "Variabelen" #~ msgid "the file extension" #~ msgstr "filendelsen" #~ msgid "the filename" #~ msgstr "filnavnet" #~ msgid "a filename with a valid extension was expected." #~ msgstr "et filnavn med en gyldig filendelse var ventet." #~ msgid "is invalid." #~ msgstr "er ugyldig" #~ msgid "does not exist." #~ msgstr "eksisterer ikke." phatch-0.2.7/locale/nl/0000755000000000000000000000000011346363116014601 5ustar rootroot00000000000000phatch-0.2.7/locale/nl/LC_MESSAGES/0000755000000000000000000000000011346363116016366 5ustar rootroot00000000000000phatch-0.2.7/locale/nl/LC_MESSAGES/phatch.mo0000644000000000000000000014706411346363116020206 0ustar rootroot000000000000009O3DDE&ECAEEEE EEE EEFFF7F FF QF_FfFvF~FFFF F F FF GG3GCGSGYGhGGGGGGGGG HH'H GH SH]HaHjHzH HHH HHHH II#I ].=^ l^z^^ ^ ^ ^^)^^_:_?_ V_0d___.__`` ` )`5`D`'K`s` ``````&`3`1a,7ada iasaa a aaa a a aaa b9bPbkb bbbbbb%bcc ccc%c,c4ch!i5iPiniwi ii&ii i!ij j18jjjqjvj*}j jjjjjk$k +k 6kCkak {k kk kkkkk k k ll#l3l :l El PlZl slllllll'lkm}m mmmmm mm n!n?nTnlnrn n n nnn!nnnoo 'o5oGoWono oo oo o ooo ooo p p-pDpZprppp'p#p p$pq?qRqWq ^q kq yqqqq q qqDqH7r8r#r7r>s"Tsws1~ssss sssstt%t>tOtStmttt(t&ttuu(uHHuHuEu# vHDvv+v3v w:%w`wtwhxAxxx xxxy'!yIyMyVy fypyy y'yyy)y z z(z ?z IzTz]zbzjz"pzzzzzz {!{;{S{g{o{ ~{{{ {{ {{2{||$|*| 2| ?|M|\|e||| |(||,| |} } } }'}C} I}S} g}q}}*}}4}?~AO~7~7~.06> B LX _ it|  "& BOahns|  Ȁ΀Ԁۀ ! @a Łց ہ*E cnty  " 84>:s6   &,1HM3Q)E,=M g q{  Ƈ'Շ -4 LW`}Ĉ)Ո+= MWi ʼnˉ% 5-? m { ŠՊ(*C_ o{$#   & 1;P X:d Œ ̌ڌ%)+-US׍%EY)r// 4@E%K q'"ݏ5C ]j?n+0ڐ6 B K Wd{ !!ّ#$ *4<S \ jx +.ɒ   ! )4 FRez “ ʓ>ד  + 5%Bh o} 7Δ&-4 <G N,Y וݕ (A^gl r~ Ȗٖ* "3G NZcr  ė *&1 X.b3*Ř 1A!R t #љ י$9J Q\ z Vɚ +2$^! ś=˛ .?T!r!=_5y"Ɲ  *c/ Ğמ! 84C x% ʟ ן  % 9CWi ʠ Π ٠;!D< ȡ5͡ *C _iy  â ע@+U  ̣ أ%' 366#m6ݤ0J `m'  Υ*٥(-<Qhpu4z>,! '4G W an Ƨ7,$C$h *Ȩ *2 :DIO$W|&&8!6'X#ͪ$).EE^! ݫ)9N Ua$i-Ѭ ! B F T,`?&ͭ+1 .RIBˮ8 GU j>ʯ!ޯ&7(Lu $"̰9) 0> Efu "!۱ ('P l yȲвز  1BR,rʳٳ*߳; }F!Ĵ  :#G!kٵ )!C-e Ҷ / 8 EOW h uǷ &> P](n#)̸".6=BI(O x  &EN'>v,>;!)].Ļ˻ ӻ 6=Wgk'Ƽ%"&9N`KJ!FJh<Ѿ/>B[wwA #51S  $ "# F P\ u 5%5[s"  *9Rb;}  0C7U7  * B&P(w-<GCYD?6"Ybi n x  # . 4?FJ S ]ho s  &:BHOS [ h u"&'' -6=DJ PZim  ! ",3< DP X bm} $!:4:O4    ,10'PP@iI"eY3mmITq4,)v).'  Ch~aB[g 6A< (#HDD% CB kw\Z$O;<M  d"sx !Uh8f H Xa:EKlb^!czr9%bbVyy%>}?<J MjY(*W7\,XKwp+^z5i|5F>49z3R{& K&}q20E=7\=/Y+'2VfcGIL2"]#i: 2.`Bl ]g eZS$1rokM?>NLy0S~1{E]38W5S5`o#GC"kW}puo / D;[Qjxn`-q.t1p8, rU1($AZ- 9sH-QX6tg'udJ4~tG37:L/Rx|[j^OU6 deT|PlV!,8*!a_N0cu6FNh$JT *?9O * 7F#_@nvm+{/A;(@w&.)Q)4Rn_+&=-%vfs"%s" can not be found."%s" is not a valid path.%(amount)d images done in %(duration)s%(mode)s has been converted to %(mode_copy)s to save as %(format)s.%(name)s Shell%(name)s actions%d issues were logged%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List&Action List Droplet...&Add&Add Tag&Add Tag to All Images...&Add... Ctrl-+&All Types&Ask for Help&Batch&Browse Library&Cancel&Close&Collapse All Ctrl-Shift-E&Collapse Automatically&Continue Anyway&Copy Tag&Copy Value&Delete Tag&Delete Tag from All Images...&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Fonts&Forum... Ctrl-F&Help&Image Inspector (exif) Ctrl-I&Image Inspector Droplet...&Insert Tag in Action List...&Inspect...&License&Modify Value for All Images...&New Ctrl-N&No Types&OK&Open...&Open... Ctrl-O&Phatch&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Remove Image&Rename Tag for All Images...&Report a Bug... Ctrl-B&Safe Mode (recommended)&Save Ctrl-S&Select&Show Description Ctrl-H&Show template for action plugin&Skip to Next Action&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&Update&User&View&Website... Ctrl-W3D Edge3D ObjectsA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd TagAdd an actionAdd gps dataAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAfterwards you can drag&drop images on the Phatch window to batch them.Align HorizontalAlign VerticalAllAll FilesAll filesAll readable and writable typesAll readable typesAll selected typesAllow Geek action and unsafe expressionsAllow as last actionAlso check if your hard disk not full. Always save on desktopAlways show status dialog when doneAmountAngleAngle Apply a transparency highlightApply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilAre you sure you want to delete this tag from "%s"?Are you sure you want to delete this tag from all images?ArtworkAsAs an example try out the polaroid action list from the library.Associate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastAuto CropAutomatic (use exif orientation)BackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlenderBlender %s is required.BlurBlur AngleBlur RadiusBlur ReflectionBlur SigmaBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBorder WidthBothBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBottom StretchedBox ColorBox DepthBrightenBrightnessBrowseBrowse %sBrowse FolderBrowse action lists, masks, highlights and fontsBulletBy OffsetC&ontinueC&reditsCMYK (4x8-bit pixels, color separation)CameraCamera DistanceCamera Horizontal RotationCamera Lens AngleCamera RollCamera Vertical RotationCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthCaptionCenterChangeChange value for all images to:CharcoalCharcoal RadiusCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletClipboardCodeColorColor ValueColor to AlphaColorizeColorize grayscale imageColorize midtones of an imageColumn Line WidthColumnsCommandCommand did not produce an output image: %sCommentsCommonConstrain ProportionsContourContour ColorContrastContrast FactorContrast TresholdConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCopy the original imageCorner Bottom LeftCorner Bottom RightCorner Top LeftCorner Top RightCould not open image with %s.Cover ColorCreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDe&veloper Documentation... Ctrl-PDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDetails DegreeDifferent for each sideDirectionDirection Disable Safe Mode in the Tools menu if you trust this action list.Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDoneDouble click to open or right click for more options.DownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDraw border inside or outsideDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEasily batch process images and edit metadataEffectEnable actionEnter an image urlEqual for all sidesEqualizeEqualize the image histogramErrorError: wxPython %(recommended)s (or at least %(minimal)s) can not be found, but is required.ExamplesExecuteExecute external commandExecute the actionExecute the action listExecuting action listExif and fileExif timeExif_Photo_UserCommentExpandExpanding one action collapses the others.ExplorerFade all colors to grayFalseFebruaryFileFile NameFile timeFile(s)FillFill ColorFill FolderFill ImageFill TypeFilterFitFit ImageFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFloor ColorFloor OpacityFloor ReflectionFolderFontFontsFor more information see the tutorials (Help>Documentation)Force Background ColorFormat %(format)s does not support overwriting "%(tag)s".FridayFrom (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GapGeekGeek actions are not allowed in safe mode.GeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GradientGradient BottomGradient TopGrayscaleGrayscale (8-bit pixels)GridHighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage SizeImage pathsImagemagickImagesImpossible to load data from action list.Impossible to write tag "%s"InIn Phatch you need to open or create an action list first.Include all subfoldersInclude imageInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LA (8-bit pixels, grayscale with transparency mask)LabelLearn to develop Phatch with Python and PIL.LeftLeft PageLeft Shear AngleLeft StretchedLetterboxLibrariesLibrary Action ListsLicenseLid RotationLine ColorLine OpacityLogLook up exif and iptc tagsLossless JPEGLossless JPEG transformation does not work on a %s image:Make n x m matrix of imageMake selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMaximum one parameter "%s" is allowedMayMedianMessageMetadataMethodMiddleMidtoneMinimumMinutesMirrorMistModeMondayMonochrome (1-bit pixels, black and white)MonthsMotion BlurMove the selected action downMove the selected action upNever run action lists from untrusted sources.No action list provided.No files or folder selected.No images have been processed to report.No save action required at the endNoneNormalNothing has been logged yet.Nothing to do.NovemberObjectOctoberOffsetOffset by distance and wrap aroundOneOne image done in %sOne issue was loggedOnly palette images have transparency.OpacityOpenOpen &Library... Ctrl-Shift-OOpen &RecentOpen &Url...Open an action listOpens a ready-made actionlist from the libraryOpens an actions listOptionsOrientationOutputOverwrite existing imagesP (8-bit pixels, mapped using a color palette)PHoto bATCH ProcessorPNG OptimizePage MappingPaintPaint RadiusParameter "%s.*" is missingPaste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch chooses the lossless "Save Tags" action.Phatch could not create the droplet: Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch will generate the user interface automatically.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please check if this action list doesn't contain harmful code.Please delete "%s".Please install "%s" first.Please upgrade your wxPython.PolaroidPositionPosterizePreserve TimestampProcess with recent Phatch action listProgram VersionProjectionPut color under transparent imageQuit the application.RGB (3x8-bit pixels, true color)RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReady!Reduce the number of bits of color channelReflectionRegenerate thumbnailRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename tag for all images to:Rename the original imageRender HeightRender WidthRepeatRepeat imagesReport a bug on launchpad.ResampleResample HighlightResample ImageResample MaskResolutionRightRight Shear FactorRight StretchedRotateRotate 180Rotate 270Rotate 90Rotate with random angleRotate, flip, grayscale and cropRoundRoundedRounded or crossed cornersRow Line WidthRowsRun %s as a gui dropletRun %s as console program without a guiSafe mode protects you from the execution of possibly harmful scripts. Are you sure you want to disable it?Same Method for All CornersSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save TagsSave and convert to other typesSave last changes toSave only metadata (lossless)Saves an action listSaves an action list asScaleScale Down OnlyScale ImageScale MethodScale ModelScale ReflectionScale to Keep SizeScan for new fonts on your systemSecondsSee "%s" for more details.SelectSelect Color BySelect ObjectSelect ProjectionSelect RotationSelect Rotation for %sSelect action listSelectionSeparateSeptemberShadowShadow BlurShadow ColorSharpenSharpen RadiusSharpen SigmaShear 2d or 3dShift time values of tagsShow &Log... Ctrl-LShow &ReportShow &Report... Ctrl+RShow Advanced OptionsShow Background OptionsShow Floor OptionsShow LogShow Type OptionsShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.Show report of processed imagesSigmoidal ContrastSizeSketchSketch AngleSketch RadiusSketch SigmaSkip To Next &ImageSliderSolarizeSorry, "%s" is not a valid path.Sorry, %s.Sorry, no valid files foundSorry, the action list seems incompatible with %(name)s %(version)s.Sorry, the values of these options will be lost in %(name)s %(version)s:Sorry, time shift can only handle dates before 2038-1-19Sorry, unable to open these images:Sorry, you have the wrong version of Blender installed.Sorry, you need to install the %s action for this action list.Sorry, your settings seem corrupt.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStarsStars ColorStart a new action listStop for errorsStringStudy the action plugins in:SundaySymmetrical tile textureTIFF CompressionTagTag "%s" is not writable.Tag "%s" is read only.Tag (Exif, Iptc)Tag exists alreadyTag should start with "Exif_" or "Iptc_"Tag should start with Exif_* or Iptc_*TamogenTextThe action list is empty.The action list only processes metadata.The droplet command for recent action lists was copied to the clipboard.The droplet command for the image inspector was copied to the clipboard.The droplet command for this action list was copied to the clipboard.The following name(s) are invalid: The tag "%s" is not valid. It should follow the syntax: Exif_* or Iptc_*There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This action list is unsafe:This action list was made by a different %(name)s version.This application is known to be compatible with wxPython version(s) %(recommended)s (or at least %(minimal)s), but you have %(version)s installed.This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' (or at least 'python-wxgtk%(minimal)s').This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTime ShiftTime Shift (seconds)To (Exif, Iptc)Tone altering mosaic generatorTools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTop StretchedTransform to a grayscale pencil drawingTransformationTransformation Translate Phatch in your native language.TranslationTransparentTransparent BackgroundTransposeTransverseTresholdTrueTuesdayTypesUnable extract variables from fileUnable to add tag <%s>Unable to change label.Unable to change tag <%s>Unable to delete tag <%s>Unable to open fileUnable to remove imageUnable to rename tag <%s>Unable to save tag <%s>Unsaved Action ListUnsharpUnsharp RadiusUnsharp SigmaUpUpdate Exif ThumbnailUpdate JPEGUpdate Orientation TagUse FloorUse exif datetimeUse the Image Inspector to list all the variables.UserUtilityValueVerboseVerify InputVerify OutputVerify ProgramVerticalVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarm UpWarning: python-wxversion is not installed. WatermarkWaveWave HeightWave LengthWednesdayWhat do you want to do now?WhiteWrap BothWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYCbCr (3x8-bit pixels, color video format)YearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,You only need to know PIL to write a plugin for Phatch.a filename with a valid extension was expectedabortactionsallantialiasapplicationaspectautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcan not be emptycenterchoiceclick '+' to add actionscolorcompressioncontourdaydecimaldefaultdesktopdetaildpidrag & drop any images hereedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameformatformatdescriptionframegammaheighthourignoreimagesintegerinterlaceinvalid literal "%s" for booleaninvalid literal "%s" for floatinvalid literal "%s" for integerinvalid syntax "%s" for integerleftloadingmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnoneorientationpathplease email: please install pyexiv2pluginpositive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth moresourcestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existthe float value "%s" is negative, but should be positivethe float value "%s" is zero, but should be non-zerothe integer value "%s" is negative, but should be positivethe integer value "%s" is zero, but should be non-zerotoptransformtransparencytruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-03-09 14:04+0000 Last-Translator: stani Language-Team: Stani MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) X-Poedit-Language: Dutch X-Poedit-SourceCharset: utf-8 X-Poedit-SearchPath-0: /home/stani/sync/python/phatch/trunk X-Poedit-Basepath: . X-Poedit-KeywordsList: _t "%s" kan niet gevonden worden"%s" is geen geldig pad.%(amount)d beelden gedaan in %(duration)s%(mode)s is omgezet naar %(mode_copy)s om op te slaan als %(format)s.%(name)s Console%(name)s acties%d problemen waren gelogd%s Recent&Afbreken&Over Phatch... Ctrl-Shift-A&Actielijst&Actielijst Vangnet...&Toevoegen&Tag ToevoegenT&ag Toevoegen aan Alle Afbeeldingen...&Toevoegen... Ctrl-+&Alle Types&Vraag om Hulp&Batch&Bibliotheek Doorzoeken&Annuleren&SluitenAlles &invouwen Ctrl-Shift-E&Automatisch invouwen&Ga toch verderTag &KopiërenWaarde &KopiërenTag verwij&derenTag Verwij&deren van Alle Afbeeldingen...&Deactiveren Ctrl-0&Documentatie... Ctrl-MOm&laag Ctrl-Down&Vangnet Ctrl-DB&ewerken&Activeren Ctrl-1&Uitvoeren... Ctrl-ReturnAlles &uitvouwen Ctrl-E&Exporteren&Lettertypen&Forum... Ctrl-F&HelpBeeld&inspecteur (exif) Ctrl-I&Beeldinspecteur Vangnet...Tag in Actielijst &invoeren...&Inspecteren...&Licentie&Waarden Veranderen voor Alle Afbeeldingen...&Nieuw Ctrl-N&Geen Types&OK&Openen...&Openen... Ctrl-O&PhatchA&fsluiten Ctrl-Q&Recent Vangnet...&Verwijderen Ctrl--Afbeelding &VerwijderenTag He&rnoemen voor Alle Afbeeldingen...&Meld een fout... Ctrl-B&Veilige modus (aanbevolen)Op&slaan Ctrl-S&Selecteren&Omschrijving weergeven Ctrl-H&Sjabloon voor actieplugin weergevenNaar de volgende actie ver&springenHulp&middelen&Vertaal Phatch... Ctrl-TOm&hoog Ctrl-Up&Bijwerken&GebruikerWeerga&ve&Webpagina... Ctrl-W3D Rand3D ObjectenEen html handleiding zal in Uw internet toepassing openen.OverActieActielijstenActielijstToevoegenTag ToevoegenEen actie toevoegenGps gegevens toevoegenPas helderheid aan van zwart naar witVan grijs naar zwart & wit laten verlopenLaat verzadiging verlopen van grijs naar hoogDaarna kan U gewoon afbeeldingen op het Phatch venster verslepen om ze te bewerken.Horizontaal UitlijnenVerticaal UitlijnenAllesAlle bestandenAlle bestandenAlle lees -en schrijfbare typesAlle leesbare typesAlle geselecteerde typesGeek actie en onveilige formules toestaanAls laatste actie toelatenControleer ook of Uw harde schijf niet vol is. Altijd op bureaublad bewarenAltijd status dialoogvenster tonen op het eindeHoeveelheidHoekHoek Een transparante oplichting toevoegenPas een transparantie masker toePas toe voor toekomstige fouten Plaats een doorschijnend watermerkaprilBent u zeker dat u deze tag wil verwijderen van "%s"?Bent u zeker dat u deze tag van alle afbeeldingen wilt verwijderen?IllustratiesAlsProbeer bijvoorbeeld de polaroid actielijst van de bibliotheek.Beelden met Actielijst Associëren in %s...Beelden met Beeldinspecteur Associëren in %s...Beelden met Recente Actie Lijsten Associëren in %s...augustusAutomatischAutocontrastAutomatisch UitsnijdenAutomatisch (exif oriëntatie)AchtergrondAchtergrondkleurOndoorzichtigheid van AchtergrondVerwerk massaal foto's met PhatchMet recente actie lijsten verwerkenBitsZwartAfsnijdenBlenderBlender %s is vereist.VervagenHoekvervagingVervaagstraalWeerspiegeling VervagenVervaagsigmaVervagen, Polaroid, Schaduw, Ontscherpen...Vervagen, Verscherpen, Reliëf, Verzachten,...BooleaansRandRandkleurRanddikteBeideBenedenLinksonderLinkerbenedenhoekRechtsonderRechterbenedenhoekSchuine Factor OnderBeneden UitgerektDooskleurDoosdikteLichter MakenHelderheidBladerenKies %sMap bladerenActielijsten, maskers, oplichtbeelden en lettertypes verkennenEmbleemDoor Afstand&DoorgaanMedewe&rkersCMYK (4x8-bit pixels, kleurscheiding)CameraCameraafstandHorizontale cameradraaiingCameralenshoekCamera tollenVerticale cameradraaiingKan niet actie %(a)s toepassen op beeld '%(i)s' in map:Kan niet actie %(a)s toepassen:CanvasHoogteBreedteBijschriftMiddenVeranderenVerander waarde voor alle afbeeldingen naar:HoutskoolHoutskoolstraalControleer eerst afbeeldingenAfbeeldingen controlerenKeuzeKies Bestand(en)Kies een mapKies een actielijstbestand...Kies een beeldKies een afbeeldingenmapKies de map voor het vangnetKlembordCodeKleurKleurwaardeKleur naar AlfaVerkleurenGrijswaarden verkleurenMiddentonen verkleurenKolomlijnbreedteKolommenOpdrachtOpdracht heeft geen beeld geproduceerd: %sOpmerkingenMeest voorkomendProporties BehoudenOmtrekOmtrekkleurContrastContrastfactorContrastdrempelKleurmodusKleurmodus veranderenDe maximum pixelwaarde kopiërenDe mediaan pixelwaarde kopiërenDe minimum pixelwaarde kopiërenDe meest voorkomende pixelwaarde kopiërenDe gerankschikte pixelwaarde kopiërenKopiërenKopieer A&ctielijst als Opdracht naar KlembordKopieer Beeldi&nspecteur als Opdracht naar KlembordKopieer R&ecent als Opdracht naar KlembordOrigineel bestand kopiërenLinkerbenedenhoekRechterbenedenhoekLinkerbovenhoekRechterbovenhoekKon afbeelding niet openen met %sOmslagkleurMedewerkersUitsnijdenHet canvas uitsnijden of uitbreidenAfbeelding uitsnijdenKruisAangepastMargeDagenOnt&wikkelaarsdocumentatie... Ctrl-PdecemberExif of Iptc tags verwijderenTags VerwijderenDiepteVerzadigenOmschrijf hier de actielijst.OmschrijvingDetailshoeveelheidVerschillend voor elke randRichtingRichting Schakel de Veilige Modus uit in het Hulpmiddelen menu als U deze actielijst vertrouwt.Actie deactiverenGeeft informatie over deze toepassing weer.Afbeeldingen niet vooraf controlerenWilt U verdergaan?Wilt u dit bestand overschrijven?DocumentatieKlaarDubbel klik om te openen of rechtermuisklik voor meer opties.OmlaagBeeld met vaste ratio verkleinen en uitsnijdenSlepen-en-neerzettenOmtrek tekenen rond beeldrandEen rand binnen of buiten tekenenSleep bestanden en/of mappen naar dit Phatch vangnet om ze in serie te bewerken. Klik met de rechter muistoets of dubbelklik om terug te keren naar de normale weergave.Een schaduw onder een foto werpenEen weerspiegeling werpenGemakkelijk fotos massaal bewerken inclusief metadataEffectActie activerenGeef een url van een afbeelding opGelijk voor alle randenEgaliserenHet beeldhistogram egaliserenFoutFout: wxPython %(recommended)s (of minstens %(minimal)s) kan niet gevonden worden, maar is vereist.VoorbeeldenUitvoerenExterne opdracht uitvoerenDe actie uitvoerenDe actielijst uitvoerenUitvoeren van actielijstExif en bestandExiftijdExif_Photo_UserCommentUitbreidenHet uitvouwen van een actie doet de andere invouwen.VerkennerAlle kleuren in grijswaarden omzettenNeefebruariBestandBestandsnaamBestandstijdBestand(en)VullenVulkleurMapAfbeeldingSoort VullingFilterPassend makenBeeld Passend MakenSpiegelenSpiegel horizontaalSpiegel VerticaalSpiegelen of 90 graden draaienKommagetalBodemkleurVloer OndoorzichtigheidBodemweerspiegelingMapLettertypeLettertypesVoor meer informatie zie de handleiding (Help>Documentatie)Achtergrondkleur AfdwingenFormaat %(format)s ondersteunt niet het overschrijven van "%(tag)s".vrijdagVan (Exif, Iptc)GPS Data (gpx)GPS Rapport (csv)TussenruimteGeekGeek acties zijn niet toegelaten in de veilige modus.GeotagGa naar de Phatch documentatie.Ga naar het Phatch forumGa naar de Phatch homepage.GradiëntGradiënt OnderGradiënt BovenGrijswaardenGrijswaarden (8-bit pixels)RasterOplichtenHoera, geen fouten!HorizontaalHorizontale UitlijningHorizontale InsprongUrenAls U %s herstart, zal de actie verschijnen in het context menu.Als u een plugin voor Phatch wil bijdragen,Fouten negerenAfbeeldingBeeldinspecteurAfbeeldingsgrootteBeeldlocatiesImagemagickAfbeeldingenOnmogelijk om de actielijst te laden.Onmogelijk om tag "%s" weg te schrijvenInIn Phatch moet U eerst een actielijst openen of maken.Inclusief alle onderliggende mappenAfbeelding toevoegenLettertypes instellen (alleen voor installatiescripts)Inspecteer EXIF & IPTC tagsInspecteer EXIF & IPTC tagsInspecteer metadata (exif & iptc plugin vereist)Inspecteer met PhatchGeheel getalPositief geheel getalPositief geheel getal niet gelijk aan 0InteractiefOngeldige afbeeldingenInverterenAlle pixelwaarden boven drempel inverterenInverteert de kleuren van een afbeeldingJPEG KwaliteitJPEG Maximum GrootteJPEG TolerantiegroottejanuarijulijuniBestaande afbeeldingen behouden (niet overschrijven)LA (8-bit pixels, grijswaarden met doorzichtigheidheidsmasker)LabelLeer Phatch te ontwikkelen met Python en PILLinksLinkerpaginaSchuine Hoek LinksLinks UitgerektZijrandenBibliothekenActielijst BibliotheekLicentieDraaiing van KlepLijnkleurLijnondoorzichtheidLogboekExif en iptc tags raadplegenVerliesloos JPEGVerliesloze JPEG bewerking werkt niet met een %s beeld:Een n x m matrix makenMaak geselecteerde kleur transparantMaak de afbeelding kleiner of grotermaartMerktekenMaskerBeeldcontrast maximaliserenMaximumMaximum één parameter "%s" is toegelatenmeiMediaanMeldingMetadataMethodeMiddenMiddentoonMinimumMinutenSpiegelenMistModusmaandagMonochroom (1-bit pixels, zwart/wit)MaandenBewegingsvervagingGeselecteerde actie omlaag verplaatsenGeselecteerde actie omhoog verplaatsenVoer nooit actielijsten uit van onbetrouwbare oorsprong.Geen actielijst gegevenGeen bestand of map geselecteerd.Er zijn geen beelden om te rapporteren.Geen bewaaractie op het einde nodigGeenNormaalEr is nog niets vastgelegd.Er valt niets te doen.novemberObjectoktoberAfstandDoor afstand verplaatsen en omvouwenEénEen beeld gedaan in %sEén probleem was gelogdAlleen afbeeldingen met kleurenpalet hebben een transparantie masker.OndoorzichtheidOpenenOpen &Bibliotheek... Ctrl-Shift-OOpen &Recent&Url Openen...Een actielijst openenEen reeds klaargemaakte actielijst openenOpent een actielijstOptiesOriëntatieUitvoerBestaande afbeeldingen overschrijvenP (8-bit pixels, geïndexeerd met kleurpalet)Massale fotobewerkerPNG OptimaliserenPagina'sSchilderenSchilderstraalParameter "%s.*" is nodigPlak deze opdracht in een starterPadPotloodschetsPerspectiefPhatch kan %d afbeelding(en) niet verwerken:Phatch kiest de "Bewaar Tags" actie (zonder kwaliteitsverlies).Phatch kan het vangnet niet creëren: Phatch kon de actie niet installeren in %s:Phatch is er niet in geslaagd dit te installeren.Phatch heeft succesvol het vangnet aangemaakt.Phatch heeft geprobeerd zichzelf te verwijderen van de Windows Verkenner.Phatch zal er voor u een toevoegen. Controleer diens instellingen.Phatch zal de gebruikersinterface automatisch genereren.Phatch met %sFoto Batch ProcessorGelieve dit te (her)installeren.Controleer aub of deze actielijst geen gevaarlijke code bevat.Verwijder aub "%s".Gelieve "%s" eerst te installerenUpgrade uw wxPython.PolaroidPositieWaarden beperkenTijdstempel BehoudenMet recente Phatch actie lijst verwerkenProgrammaversieProjectiePlaats kleur onder transparant beeldSluit de toepassing af.RGB (3x8-bit pixels, ware kleuren)RGBA (4x8-bit pixels, RGB met doorzichtigheidheidsmasker)RadiusRangschikkingKlaar!Het aantal kleurbits verminderenWeerspiegelingMiniatuur hergenererenVerwijderenVerwijder Associaties van %s...De geselecteerde actie verwijderenVerwijder de geselecteerde actie.HernoemenTag HernoemenEen tag hernoemenHernoem tag voor alle afbeeldingen naar:Origineel bestand hernoemenRenderhoogteRenderbreedteHerhaalHerhaal afbeeldingenMeld een fout op launchpad.MethodeMethodeMethodeMethodeResolutieRechtsSchuine Factor RechtsRechts UitgerektDraaienDraai 180 gradenDraai 270 gradenDraai 90 gradenDraai met een willekeurige hoekDraaien, spiegelen, vergrijzen en uitsnijdenAfrondenAfgerondAfgeronde of kruishoekenRijlijnbreedteRijen%s als een Grafische schil vangnet starten%s als een terminalprogramma zonder grafische schil startenDe Veilige Modus beschermt U tegen de de uitvoering van mogelijk gevaarlijke code. Bent U zeker dat U deze wilt uitschakelen?Dezelfde Methode voor Alle HoekenVerzadigingzaterdagOpslaanOpslaan &als... Ctrl-Shift-SActielijst opslaan als...Tags OpslaanBewaren en andere types converterenDe laatste wijzigingen opslaan inAlleen metadata opslaanSlaat een actielijst opSlaat een actielijst op alsSchalenAlleen kleiner schalenAfbeelding schalenVerschaalmethodeVorm SchalenWeerspiegeling VerschalenSchalen om Afmetingen te BehoudenVoor nieuwe lettertypen op Uw computer zoekenSecondenZie "%s" voor meer detailsSelecteerKleur Kiezen VanObject SelecterenProjectie KiezenKies draaiingDraaiing kiezen voor %sKies een actielijstSelectieAfzonderlijkseptemberSchaduwSchaduwwazigheidSchaduwkleurVerscherpenVerscherpstraalSigmaSchuin in 2d of 3dTijd verschuiven in metadata&Logboek weergeven... Ctrl-L&Rapport tonen&Rapport tonen... Ctrl+RGeavanceerde opties tonenAchtergrondopties TonenVloeropties TonenToon LogboekTypeopties TonenAlle parameters van de acties weergeven.De actielijstomschrijving weergevenLogbestand tonenAlleen de labels van de acties weergeven.Rapport van bewerkte beelden tonenSigmoïdaal ContrastGrootteSchetsHoekStraalSigmaNaar de volgende &afbeelding verspringenSchuifbalkSolarisatieSorry, "%s" is geen geldig pad.Sorry, %s.Sorry, geen geldige bestanden gevondenSorry, deze actielijst lijkt niet geschikt voor %(name)s %(version)s.Sorr, de waarden van deze opties zullen verloren gaan in %(name)s %(version)s:Sorry, time shift kan enkel data verwerken van voor 19/1/2038.Sorry, onmogelijk om deze beelden te openen:Sorry, U heeft de verkeerde versie van Blender geïnstalleerd.Sorry, U moet de %s actie installeren voor deze actielijst.Sorry, uw instellingen lijken beschadigd.BronLokale taal opgeven (bijvoorbeeld nl of nl_NL)SponsersHoekigSterrenSterrenkleurBegin een nieuwe actielijstStop bij foutenTekenreeksBestudeer de actie-plugins in:zondagSymmetrische tegeltextuurTIFF CompressieTagTag "%s" is niet schrijfbaar.Tag "%s" is alleen leesbaar.Tag (Exif, Iptc)Tag bestaat alTag moet starten met "Exif_" of "Iptc_"Tag moet starten met Exif_* of Iptc_*TamogenTekstDe actielijst is leeg.De actielijst verwerkt enkel metadata.De vangnetopdracht voor recente actielijsten is gekopiëerd naar het klembord.De vangnetopdracht voor de beeldinspecteur is naar het klembord gekopieerd.De vangnetopdracht voor deze actielijst was gekopiëerd naar het klembord.De volgende namen zijn ongeldig: De tag "%s" is niet geldig. Het moet deze syntax volgen.: Exif_* of Iptc_*Er is geen actie geactiveerd.Er hoort zich een 'Opslaan'-actie aan het einde te bevinden.Deze extensies zijn succesvol geïnstalleerd: Deze actielijst is onveilig:Deze actielijst was gemaakt met een verschillende %(name)s versie.Dit programma is compatibel met wxPython versie(s) %(recommended)s (of minstens %(minimal)s), maar U heeft %(version)s.Dit programma vereist 'python-wxversion' en 'python-wxgtk%(recommended)s' (of op zijn minst 'python-wxgtk%(minimal)s').Dit bestand bestaat al.Dit vereist ook dat het pakket python-nautilus is geïnstalleerd.donderdagNaast elkaarTijdsverschuivingTijdsverschuivingNaar (Exif, Iptc)Mosaic door kleurtoonvariatieHulpmiddelen om de huidige actielijst te bewerkenBovenLinksbovenLinkerbovenhoekRechtsbovenRechterbovenhoekShuine Hoek BovenBoven UitgerektNaar een zwart wit tekening omzettenTransformatieBewerking Vertaal Phatch naar uw moedertaal.VertalingTransparantDoorzichtige AchtergrondTransponerenTransverserenDrempelJadinsdagTypenNiet in staat om variabelen te onttrekken aan bestandKan tag <%s> niet toevoegenKan het label niet veranderen.Kan tag <%s> niet wijzigenOnmogelijk om tag <%s> te verwijderenKan bestand niet openenKan afbeelding niet verwijderenKan de tag <%s> niet hernoemen.Onmogelijk om tag <%s> op te slaanNiet-opgeslagen actielijstOntscherpenStraalSigmaOmhoogExif Miniatuur BijwerkenJPEG BijwerkenOriëntatietag BijwerkenVloer GebruikenGebruik exif tijd en datumGebruik de Beeldinspecteur om alle variabelen op te sommen.GebruikerHulpmiddelWaardeVerbaalInvoer nakijkenUitvoer nakijkenProgramma nakijkenVerticaalVerticale UitlijningVerticale InsprongBroncode BekijkenWeergeven als vangnet om er bestanden naartoe te slepenOpwarmenWaarschuwing: python-wxversion is niet geïnstalleerd. WatermerkGolvenGolfhoogteGolflengtewoensdagWat wilt U nu doen?WitOver beide spreidenSchrijf een actiepluginTag SchrijvenSchrijf een nieuwe waarde naar een tagPlaats een tekst op een bepaalde positieYCbCr (3x8-bit pixels, kleurenvideo-indeling)JarenU kan enkel de bestanden gebruiken met de volgende extensiesU kan het als tekst in de eigenschappen van een nieuwe starter plakken.Sorry, U moet hiervoor eerst de Python Win32 Extensies installeren.U hoeft alleen PIL te kennen om een plugin voor Phatch te schrijven,U moet enkel PIL kennen om een plugin voor Phatch te schrijven.een bestandsnaam met een geldige extensie was verwachtafbrekenactiesalleantialiastoepassingaspectautomatischachtergrondbicubischbilineairvervagenbooleaansbenedenverbreed uw zoekopdrachtkan niet leeg zijnmiddenkeuzedruk op '+' om acties toe te voegenkleurcompressieomtrekdagdecimaalstandaardbureaubladdetaildpiafbeeldingen naar hier verslepenranden verscherpenranden meer verscherpenreliëfneebestandbestandsnaambestandsgroottefilterranden vindenreëel getalmapmapnaamformaatformaatbeschrijvingvenstergammahoogteuurnegerenafbeeldingengeheel getalinterlaceongeldige invoer "%s" voor booleanongeldige invoer "%s" voor reeel getalongeldige invoer "%s" voor geheel getalongeldige syntax "%s" voor geheel getallinksaan het ladenmetadatamiddenminuutmodusmaandmaandnaammeest dichtbijneegeen %s tags gevondengeenoriëntatiepademail aub: gelieve pyexiv2 te installerenpluginpositief geheel getalpositief, niet-nul geheel getalpyexiv2 moet geinstalleerd wordenresolutierechtshoofdmapsecondeverscherpengrootteoverslaanverzachtenmeer verzachtenbrontekenreekssubmaptagde bestandsextensie "%s" is ongeldigde bestandsnaam "%s" bestaat nietde reeele waarde "%s" is negatief, maar moet positief zijnde reeele waarde "%s" is nul, maar mag niet nul zijnhet gehele getal "%s" is negatief, maar moet positief zijnhet geheel getal "%s" is nul, maar mag niet nul zijnboventransformatiedoorzichtigheidjatypewaarschuwingweekdagweekdagnaambreedtemetwxPython versiefoutjaarjaphatch-0.2.7/locale/nl/LC_MESSAGES/phatch.po0000644000000000000000000036626711346363116020221 0ustar rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-03-09 14:04+0000\n" "Last-Translator: stani \n" "Language-Team: Stani \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Language: Dutch\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SearchPath-0: /home/stani/sync/python/phatch/trunk\n" "X-Poedit-Basepath: .\n" "X-Poedit-KeywordsList: _t\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Inspecteer met Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Inspecteer EXIF & IPTC tags" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Voorbeelden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "%s als een terminalprogramma zonder grafische schil starten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "%s als een Grafische schil vangnet starten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Altijd op bureaublad bewaren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Fouten negeren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Lettertypes instellen (alleen voor installatiescripts)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interactief" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Bestaande afbeeldingen behouden (niet overschrijven)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Lokale taal opgeven (bijvoorbeeld nl of nl_NL)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Inspecteer metadata (exif & iptc plugin vereist)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Geen bewaaractie op het einde nodig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Inclusief alle onderliggende mappen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Afbeeldingen niet vooraf controleren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "Geek actie en onveilige formules toestaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Verbaal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" "U kan het als tekst in de eigenschappen van een nieuwe starter plakken." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Sorry, U moet de %s actie installeren voor deze actielijst." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" "Sorr, de waarden van deze opties zullen verloren gaan in %(name)s " "%(version)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" "De vangnetopdracht voor deze actielijst was gekopiëerd naar het klembord." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" "De vangnetopdracht voor recente actielijsten is gekopiëerd naar het klembord." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "De vangnetopdracht voor de beeldinspecteur is naar het klembord gekopieerd." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "In Phatch moet U eerst een actielijst openen of maken." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "Probeer bijvoorbeeld de polaroid actielijst van de bibliotheek." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" "Daarna kan U gewoon afbeeldingen op het Phatch venster verslepen om ze te " "bewerken." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "Voor meer informatie zie de handleiding (Help>Documentatie)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "Er zijn geen beelden om te rapporteren." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "Hoera, geen fouten!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Er is nog niets vastgelegd." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Logboek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "afbreken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "overslaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "negeren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "Deze actielijst was gemaakt met een verschillende %(name)s versie." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "druk op '+' om acties toe te voegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "Open &Recent" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Openen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Een actielijst openen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Uitvoeren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "De actie uitvoeren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Toevoegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Een actie toevoegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Verwijderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "De geselecteerde actie verwijderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Omhoog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Geselecteerde actie omhoog verplaatsen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Omlaag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Geselecteerde actie omlaag verplaatsen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Beeldinspecteur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Exif en iptc tags raadplegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Omschrijving" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "De actielijstomschrijving weergeven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "Actielijst Bibliotheek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Kies een actielijstbestand..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Actielijst opslaan als..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Dit bestand bestaat al." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Wilt u dit bestand overschrijven?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "%(name)s acties" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "%(name)s Console" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "toepassing" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "venster" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "acties" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Een html handleiding zal in Uw internet toepassing openen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "U moet enkel PIL kennen om een plugin voor Phatch te schrijven." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "Phatch zal de gebruikersinterface automatisch genereren." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Bestudeer de actie-plugins in:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Als u een plugin voor Phatch wil bijdragen," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "email aub: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "Massale fotobewerker" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "Sorry, \"%s\" is geen geldig pad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Slepen-en-neerzetten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Sleep bestanden en/of mappen naar dit Phatch vangnet\n" "om ze in serie te bewerken.\n" "Klik met de rechter muistoets of dubbelklik om terug te keren naar de " "normale weergave." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch zal er voor u een toevoegen. Controleer diens instellingen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "De actielijst verwerkt enkel metadata." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "Phatch kiest de \"Bewaar Tags\" actie (zonder kwaliteitsverlies)." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "De laatste wijzigingen opslaan in" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" "De Veilige Modus beschermt U tegen de de uitvoering van mogelijk gevaarlijke " "code.\n" "Bent U zeker dat U deze wilt uitschakelen?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Kies de map voor het vangnet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch heeft succesvol het vangnet aangemaakt." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "Phatch kan het vangnet niet creëren: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "Onmogelijk om de actielijst te laden." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Kies een actielijst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "Sorry, uw instellingen lijken beschadigd." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "Verwijder aub \"%s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "Controleer ook of Uw harde schijf niet vol is.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Kies een map" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Kies Bestand(en)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Kies een afbeeldingenmap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "Alle geselecteerde types" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "Alle lees -en schrijfbare types" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "Alle leesbare types" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "afbeeldingen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "&Alle Types" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "&Geen Types" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "Klembord" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Bladeren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "Kies %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Bestand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Map" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "standaard" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Broncode Bekijken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "verbreed uw zoekopdracht" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Pad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Openen..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "&Inspecteren..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "Tag in Actielijst &invoeren..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Nieuw\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Begin een nieuwe actielijst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Openen...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Opent een actielijst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "Open &Bibliotheek...\tCtrl-Shift-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "Een reeds klaargemaakte actielijst openen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "Op&slaan\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Slaat een actielijst op" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Opslaan &als...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Slaat een actielijst op als" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Kopieer A&ctielijst als Opdracht naar Klembord" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Plak deze opdracht in een starter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Kopieer R&ecent als Opdracht naar Klembord" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Kopieer Beeldi&nspecteur als Opdracht naar Klembord" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&Exporteren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "A&fsluiten\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Sluit de toepassing af." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "&Actielijst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Toevoegen...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Verwijderen\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Verwijder de geselecteerde actie." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Activeren\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Actie activeren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Deactiveren\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Actie deactiveren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "Om&hoog\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "Om&laag\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "B&ewerken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Vangnet\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Weergeven als vangnet om er bestanden naartoe te slepen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Omschrijving weergeven\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Hulpmiddelen om de huidige actielijst te bewerken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "Alles &uitvouwen\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Alle parameters van de acties weergeven." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "Alles &invouwen\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Alleen de labels van de acties weergeven." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "&Automatisch invouwen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "Het uitvouwen van een actie doet de andere invouwen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "Weerga&ve" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Uitvoeren...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "De actielijst uitvoeren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "&Veilige modus (aanbevolen)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "Beeld&inspecteur (exif)\tCtrl-I" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "&Gebruiker" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "Actielijsten, maskers, oplichtbeelden en lettertypes verkennen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "&Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "&Bibliotheek Doorzoeken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "&Rapport tonen...\tCtrl+R" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "Rapport van bewerkte beelden tonen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "&Logboek weergeven...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Logbestand tonen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "&Lettertypen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "Voor nieuwe lettertypen op Uw computer zoeken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "&Bijwerken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "Hulp&middelen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "&Webpagina...\tCtrl-W" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Ga naar de Phatch homepage." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Documentatie...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Ga naar de Phatch documentatie." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Ga naar het Phatch forum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Vertaal Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Vertaal Phatch naar uw moedertaal." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Meld een fout...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Meld een fout op launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "Ont&wikkelaarsdocumentatie...\tCtrl-P" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "Leer Phatch te ontwikkelen met Python en PIL" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&Over Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Geeft informatie over deze toepassing weer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Help" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "Klaar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Toon Logboek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "&Rapport tonen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "Klaar!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "Dubbel klik om te openen of rechtermuisklik voor meer opties." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "Verkenner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "U hoeft alleen PIL te kennen om een plugin voor Phatch te schrijven," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Sjabloon voor actieplugin weergeven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Code" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Vraag om Hulp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Schrijf een actieplugin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Pas toe voor toekomstige fouten " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Afbreken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "Naar de volgende actie ver&springen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "Naar de volgende &afbeelding verspringen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Melding" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Ga toch verder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Opties" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Typen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Map bladeren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Bron" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Bestand(en)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Stop bij fouten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Controleer eerst afbeeldingen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Bestaande afbeeldingen overschrijven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "Altijd status dialoogvenster tonen op het einde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "Herhaal afbeeldingen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Annuleren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Batch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Afbeelding" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Label" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Booleaans" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Tekenreeks" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Keuze" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Kleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Resolutie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Bestandsnaam" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "In" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Kommagetal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Als" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Modus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Methode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicubisch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Geheel getal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Positief geheel getal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Positief geheel getal niet gelijk aan 0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horizontaal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Schuifbalk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "pyexiv2 moet geinstalleerd worden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" "%(mode)s is omgezet naar %(mode_copy)s om op te slaan als %(format)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "januari" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "februari" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "maart" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "april" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "mei" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "juni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "juli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "augustus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "september" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "oktober" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "november" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "december" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "maandag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "dinsdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "woensdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "donderdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "vrijdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "zaterdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "zondag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" "Alleen afbeeldingen met kleurenpalet hebben een transparantie masker." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "Niet in staat om variabelen te onttrekken aan bestand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "Tag \"%s\" is alleen leesbaar." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "Onmogelijk om tag \"%s\" weg te schrijven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "Tag \"%s\" is niet schrijfbaar." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" "Formaat %(format)s ondersteunt niet het overschrijven van \"%(tag)s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "achtergrond" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "bron" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" "Opdracht heeft geen beeld geproduceerd:\n" "%s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Alles" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "Projectie Kiezen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Object Selecteren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "Kies draaiing" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "Midden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Aangepast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Midden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Links" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Rechts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Boven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Beneden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Linksonder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Rechtsonder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Linksboven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Rechtsboven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Oriëntatie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Positie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Afstand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Horizontale Insprong" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Verticale Insprong" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Horizontale Uitlijning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Verticale Uitlijning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "Door Afstand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Naast elkaar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Schalen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Merkteken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Ondoorzichtheid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Methode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Automatisch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "Gemakkelijk fotos massaal bewerken inclusief metadata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Foto Batch Processor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Ja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Nee" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "ja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "nee" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Niet-opgeslagen actielijst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Actielijsten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Alle bestanden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Omschrijf hier de actielijst." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Er hoort zich een 'Opslaan'-actie aan het einde te bevinden." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "met" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s Recent" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Beelden met Actielijst Associëren in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Beelden met Recente Actie Lijsten Associëren in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Beelden met Beeldinspecteur Associëren in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Verwijder Associaties van %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "&Actielijst Vangnet..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "&Recent Vangnet..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "&Beeldinspecteur Vangnet..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Met recente actie lijsten verwerken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Inspecteer EXIF & IPTC tags" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "Zie \"%s\" voor meer details" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" "Sorry, deze actielijst lijkt niet geschikt voor %(name)s %(version)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "Deze actielijst is onveilig:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" "Schakel de Veilige Modus uit in het Hulpmiddelen menu als U deze actielijst " "vertrouwt." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "Voer nooit actielijsten uit van onbetrouwbare oorsprong." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "Controleer aub of deze actielijst geen gevaarlijke code bevat." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "\"%s\" is geen geldig pad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Actie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "Geek acties zijn niet toegelaten in de veilige modus." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Er valt niets te doen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "De actielijst is leeg." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Er is geen actie geactiveerd." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Afbeeldingen controleren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch kan %d afbeelding(en) niet verwerken:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Ongeldige afbeeldingen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Sorry, geen geldige bestanden gevonden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "&Doorgaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Geen bestand of map geselecteerd." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Kan bestand niet openen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Kan niet actie %(a)s toepassen:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Kan niet actie %(a)s toepassen op beeld '%(i)s' in map:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Uitvoeren van actielijst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Een beeld gedaan in %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "%(amount)d beelden gedaan in %(duration)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Eén probleem was gelogd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "%d problemen waren gelogd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Selecteer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" "De tag \"%s\" is niet geldig.\n" "Het moet deze syntax volgen.: Exif_* of Iptc_*" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "Kan het label niet veranderen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "Onmogelijk om tag <%s> te verwijderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "Kan de tag <%s> niet hernoemen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "Onmogelijk om tag <%s> op te slaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "dag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "bureaublad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "mapnaam" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "bestandsnaam" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "bestandsgrootte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "map" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "uur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minuut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "maand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "maandnaam" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "pad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "hoofdmap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "seconde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "submap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "type" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "weekdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "weekdagnaam" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "jaar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "aspect" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "compressie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "gamma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "hoogte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "interlace" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "modus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "breedte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "formaat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "formaatbeschrijving" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "grootte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "doorzichtigheid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "oriëntatie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Gebruik de Beeldinspecteur om alle variabelen op te sommen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "U kan enkel de bestanden gebruiken met de volgende extensies" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "links" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "midden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "rechts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "boven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "midden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "beneden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monochroom (1-bit pixels, zwart/wit)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "Grijswaarden (8-bit pixels)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "LA (8-bit pixels, grijswaarden met doorzichtigheidheidsmasker)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "RGB (3x8-bit pixels, ware kleuren)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bit pixels, RGB met doorzichtigheidheidsmasker)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "CMYK (4x8-bit pixels, kleurscheiding)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "P (8-bit pixels, geïndexeerd met kleurpalet)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "YCbCr (3x8-bit pixels, kleurenvideo-indeling)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "vervagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "omtrek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "randen verscherpen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "randen meer verscherpen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "reliëf" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "randen vinden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "verzachten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "meer verzachten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "verscherpen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "meest dichtbij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilineair" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Draai 90 graden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Draai 180 graden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Draai 270 graden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Spiegel horizontaal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Spiegel Verticaal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normaal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "geen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "kan niet leeg zijn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "ongeldige syntax \"%s\" voor geheel getal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "tekenreeks" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "geheel getal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "ongeldige invoer \"%s\" voor geheel getal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "positief geheel getal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "het gehele getal \"%s\" is negatief, maar moet positief zijn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "positief, niet-nul geheel getal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "het geheel getal \"%s\" is nul, maar mag niet nul zijn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "resolutie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "reëel getal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "ongeldige invoer \"%s\" voor reeel getal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "de reeele waarde \"%s\" is negatief, maar moet positief zijn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "de reeele waarde \"%s\" is nul, maar mag niet nul zijn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "booleaans" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "ongeldige invoer \"%s\" voor boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "keuze" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "de bestandsextensie \"%s\" is ongeldig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "een bestandsnaam met een geldige extensie was verwacht" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "de bestandsnaam \"%s\" bestaat niet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "\"%s\" kan niet gevonden worden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "Parameter \"%s.*\" is nodig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "Maximum één parameter \"%s\" is toegelaten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "automatisch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Geen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "Tag moet starten met \"Exif_\" of \"Iptc_\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "Gelieve \"%s\" eerst te installeren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "Kon afbeelding niet openen met %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Opdracht" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "Uitvoer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Fout" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "De volgende namen zijn ongeldig: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "&Selecteren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Waarschuwing: python-wxversion is niet geïnstalleerd.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" "Fout: wxPython %(recommended)s (of minstens %(minimal)s) kan niet gevonden " "worden, maar is vereist." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Gelieve dit te (her)installeren." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" "Dit programma vereist 'python-wxversion' en 'python-wxgtk%(recommended)s' " "(of op zijn minst 'python-wxgtk%(minimal)s')." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" "Dit programma is compatibel met\n" "wxPython versie(s) %(recommended)s (of minstens %(minimal)s),\n" "maar U heeft %(version)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Upgrade uw wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPython versiefout" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "Programmaversie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "Medewe&rkers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licentie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Sluiten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Over" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Medewerkers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Documentatie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Vertaling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Illustraties" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Bibliotheken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Sponsers" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licentie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "Exif_Photo_UserComment" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Waarde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "waarschuwing" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "Tag Toevoegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "alle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "Bent u zeker dat u deze tag wil verwijderen van \"%s\"?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "Bent u zeker dat u deze tag van alle afbeeldingen wilt verwijderen?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "Tag moet starten met Exif_* of Iptc_*" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "Tag bestaat al" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Afbeeldingen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Alle bestanden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "Waarde &Kopiëren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "&Tag Toevoegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "Tag verwij&deren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "&Url Openen..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "Afbeelding &Verwijderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "Tag &Kopiëren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "T&ag Toevoegen aan Alle Afbeeldingen..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "Tag Verwij&deren van Alle Afbeeldingen..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "Tag He&rnoemen voor Alle Afbeeldingen..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "&Waarden Veranderen voor Alle Afbeeldingen..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "Kan tag <%s> niet toevoegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "Kan afbeelding niet verwijderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "Hernoem tag voor alle afbeeldingen naar:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "Verander waarde voor alle afbeeldingen naar:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "Kan tag <%s> niet wijzigen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "Sorry, %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "Sorry, onmogelijk om deze beelden te openen:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Kies een beeld" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Geef een url van een afbeelding op" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "afbeeldingen naar hier verslepen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "gelieve pyexiv2 te installeren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "geen %s tags gevonden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Toevoegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimaal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "aan het laden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "nee" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "ja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Selectie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Lettertypes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Schaduw" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Een schaduw onder een foto werpen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Rand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Schaduwwazigheid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Achtergrondkleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Schaduwkleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "Achtergrondkleur Afdwingen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "Beeld Passend Maken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "Zijranden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "Afbeelding schalen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "Vorm Schalen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "Over beide spreiden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "Afzonderlijk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "Omslagkleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "Pagina's" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "Linkerpagina" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "Dooskleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "Doosdikte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "Draaiing van Klep" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "Camera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "Horizontale cameradraaiing" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "Verticale cameradraaiing" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "Camera tollen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "Cameralenshoek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "Cameraafstand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "Vloeropties Tonen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "Vloer Gebruiken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "Bodemkleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "Bodemweerspiegeling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "Vloer Ondoorzichtigheid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "Doorzichtige Achtergrond" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "Achtergrondopties Tonen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Achtergrond" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "Gradiënt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "Transparant" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "Gradiënt Boven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "Gradiënt Onder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "Automatisch Uitsnijden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "Sterren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "Sterrenkleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "Mist" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "Blender" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "plugin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "3D Objecten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "Sorry, U heeft de verkeerde versie van Blender geïnstalleerd." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "Blender %s is vereist." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "Renderbreedte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "Renderhoogte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "Object" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "Afbeeldingsgrootte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "Draaiing kiezen voor %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Effect" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Vervagen, Verscherpen, Reliëf, Verzachten,..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Herhaal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Hoeveelheid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transformatie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Door afstand verplaatsen en omvouwen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Canvas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Het canvas uitsnijden of uitbreiden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "Breedte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Hoogte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Horizontaal Uitlijnen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Verticaal Uitlijnen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Kleur naar Alfa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "kleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Maak geselecteerde kleur transparant" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "Kleur Kiezen Van" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "Kleurwaarde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Watermerk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Plaats een doorschijnend watermerk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Verzadigen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Alle kleuren in grijswaarden omzetten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Maak de afbeelding kleiner of groter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Proporties Behouden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Methode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "Alleen kleiner schalen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Transponeren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Spiegelen of 90 graden draaien" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "Raster" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "Een n x m matrix maken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Kolommen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Rijen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "Schalen om Afmetingen te Behouden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "Kolomlijnbreedte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "Rijlijnbreedte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "Lijnkleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "Lijnondoorzichtheid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "Beide" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Verticaal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "Spiegelen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "Symmetrische tegeltextuur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Richting" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Hernoemen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "bestand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "Origineel bestand hernoemen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Kruis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Afgerond" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Hoekig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Afronden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Afgeronde of kruishoeken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Radius" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "Dezelfde Methode voor Alle Hoeken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Linkerbovenhoek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Rechterbovenhoek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Linkerbenedenhoek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Rechterbenedenhoek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Oplichten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "Een transparante oplichting toevoegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "Methode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Plaats kleur onder transparant beeld" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Vullen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Kleurmodus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Kleurmodus veranderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Passend maken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Beeld met vaste ratio verkleinen en uitsnijden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Afsnijden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Autocontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Beeldcontrast maximaliseren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Marge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Opslaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "Bewaren en andere types converteren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "Typeopties Tonen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "PNG Optimaliseren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "JPEG Kwaliteit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "JPEG Maximum Grootte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "JPEG Tolerantiegrootte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "TIFF Compressie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Metadata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Mediaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "De mediaan pixelwaarde kopiëren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "Exiftijd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "Bestandstijd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "Exif en bestand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "Tijdsverschuiving" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "metadata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "Tijd verschuiven in metadata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "Veranderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "Gebruik exif tijd en datum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Seconden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Minuten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Uren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Dagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Maanden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Jaren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "Sorry, time shift kan enkel data verwerken van voor 19/1/2038." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Masker" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Pas een transparantie masker toe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Methode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Tekst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Plaats een tekst op een bepaalde positie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Lettertype" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Grootte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Verkleuren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Grijswaarden verkleuren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Zwart" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Wit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopiëren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "Origineel bestand kopiëren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Waarden beperken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "Het aantal kleurbits verminderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Tag Schrijven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "Schrijf een nieuwe waarde naar een tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Tag (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "Gelijk voor alle randen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "Verschillend voor elke rand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "Een rand binnen of buiten tekenen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "Randdikte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Rangschikking" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "De gerankschikte pixelwaarde kopiëren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solarisatie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Alle pixelwaarden boven drempel inverteren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Drempel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Egaliseren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Het beeldhistogram egaliseren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "Automatisch (exif oriëntatie)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Uitsnijden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Draaien" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "Spiegelen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Grijswaarden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "Miniatuur hergenereren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "Transverseren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "Verliesloze JPEG bewerking werkt niet met een %s beeld:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Transformatie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Hoek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "Tijdstempel Behouden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Geavanceerde opties tonen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "JPEG Bijwerken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "Exif Miniatuur Bijwerken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "Oriëntatietag Bijwerken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Opmerkingen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Bewerking " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Hoek " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Richting " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "Hulpmiddel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "Verliesloos JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "Draaien, spiegelen, vergrijzen en uitsnijden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Afbeelding uitsnijden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "Tamogen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "Mosaic door kleurtoonvariatie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "Soort Vulling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "Afbeelding" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "Map" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Draai met een willekeurige hoek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Uitbreiden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Ondoorzichtigheid van Achtergrond" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Inverteren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Inverteert de kleuren van een afbeelding" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Geotag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "Gps gegevens toevoegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "GPS Data (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "GPS Rapport (csv)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "Tijdsverschuiving" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Weerspiegeling" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Een weerspiegeling werpen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Diepte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Tussenruimte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "Weerspiegeling Vervagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "Weerspiegeling Verschalen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "Verschaalmethode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Meest voorkomend" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "De meest voorkomende pixelwaarde kopiëren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "De minimum pixelwaarde kopiëren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Omtrek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Omtrek tekenen rond beeldrand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Omtrekkleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Vulkleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "Afbeelding toevoegen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "Boven Uitgerekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "Beneden Uitgerekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "Links Uitgerekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "Rechts Uitgerekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "Linkerbovenhoek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "Rechterbovenhoek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "Linkerbenedenhoek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "Rechterbenedenhoek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "Gebruiker" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspectief" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Schuin in 2d of 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "Projectie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Schuine Hoek Links" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Shuine Hoek Boven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Schuine Factor Onder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Schuine Factor Rechts" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Contrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Van grijs naar zwart & wit laten verlopen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "Tags Opslaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "Alleen metadata opslaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "Opwarmen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "Middentonen verkleuren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "Middentoon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "Lichter Maken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Eén" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Tags Verwijderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Exif of Iptc tags verwijderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maximum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "De maximum pixelwaarde kopiëren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Verzadiging" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Laat verzadiging verlopen van grijs naar hoog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Tag Hernoemen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "Een tag hernoemen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "Van (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "Naar (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Helderheid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Pas helderheid aan van zwart naar wit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "3D Rand" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "Vervagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "Embleem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "Houtskool" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "Bewegingsvervaging" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Potloodschets" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "Schilderen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "Verscherpen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "Sigmoïdaal Contrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "Ontscherpen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "Golven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Imagemagick" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "Vervagen, Polaroid, Schaduw, Ontscherpen..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Randkleur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "Bijschrift" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "Houtskoolstraal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "Contrastfactor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "Contrastdrempel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "Vervaagstraal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "Vervaagsigma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "Hoekvervaging" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "Schilderstraal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "Verscherpstraal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "Sigma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "Straal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "Sigma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "Hoek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "Straal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "Sigma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "Golfhoogte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "Golflengte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Schets" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "Naar een zwart wit tekening omzetten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "Detailshoeveelheid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "Geek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "Externe opdracht uitvoeren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "Programma nakijken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "Invoer nakijken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "Uitvoer nakijken" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "Als laatste actie toelaten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Deze extensies zijn succesvol geïnstalleerd:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch is er niet in geslaagd dit te installeren." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" "Phatch heeft geprobeerd zichzelf te verwijderen van de Windows Verkenner." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Sorry, U moet hiervoor eerst de Python Win32 Extensies installeren." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Actielijst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Geen actielijst gegeven" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Beeldlocaties" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Wilt U verdergaan?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Wat wilt U nu doen?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Als U %s herstart, zal de actie verschijnen in het context menu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch kon de actie niet installeren in %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Dit vereist ook dat het pakket python-nautilus is geïnstalleerd." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Verwerk massaal foto's met Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "Phatch met %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Met recente Phatch actie lijst verwerken" #~ msgid "new" #~ msgstr "nieuw" #~ msgid "doesn't exist" #~ msgstr "bestaat niet" #~ msgid "for integer" #~ msgstr "voor geheel getal" #~ msgid "for float" #~ msgstr "voor reëel getal" #~ msgid "Create missing folders" #~ msgstr "Maak ontbrekende mappen aan" #~ msgid "&File" #~ msgstr "&Bestand" #~ msgid "Filename" #~ msgstr "Bestandsnaam" #~ msgid "Width" #~ msgstr "Breedte" #~ msgid "Height" #~ msgstr "Hoogte" #~ msgid "By offset" #~ msgstr "Door afstand" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-bit integer pixels)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32-bit zwevende komma pixels)" #~ msgid "is zero, but should be non-zero." #~ msgstr "is nul, maar hoort niet-nul te zijn." #~ msgid "is negative, but should be positive" #~ msgstr "is negatief, maar hoort positief te zijn" #~ msgid "All selected image types" #~ msgstr "Alle geselecteerde afbeeldingstypen" #~ msgid "All default image types" #~ msgstr "Alle standaard afbeeldingstypen" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "omdat Phatch automatisch de gebruikersomgeving zal genereren." #~ msgid "please email" #~ msgstr "email ons" #~ msgid "Open a python shell for introspection" #~ msgstr "Open een python shell voor introspectie" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Python shell...\tCtrl-P" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "&Schrijf een actieplugin...\tCtrl-W" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Schrijf een nieuwe actieplugin voor Phatch met PIL." #~ msgid "&Skip To Next Image" #~ msgstr "&Naar volgende afbeelding" #~ msgid "&Ignore Error" #~ msgstr "&Fout negeren" #~ msgid "&Default Types" #~ msgstr "&Standaardtypen" #~ msgid "Phatch Version" #~ msgstr "Phatch-versie" #~ msgid "Save an image" #~ msgstr "Een afbeelding opslaan" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Grijswaarden (8-bit pixels,zwart/wit)" #~ msgid "for boolean" #~ msgstr "voor booleaanse" #~ msgid "is invalid." #~ msgstr "is ongeldig." #~ msgid "does not exist." #~ msgstr "bestaat niet." #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Web&site...\tCtrl-I" #~ msgid "border" #~ msgstr "rand" #~ msgid "Crop or add border to all sides" #~ msgstr "Rand aan alle zijden afsnijden of toevoegen" #~ msgid "Copy the image file" #~ msgstr "Het beeldbestand kopiëren" #~ msgid "Rename the image file" #~ msgstr "Het beeldbestand hernoemen" #~ msgid "Resample Shadow" #~ msgstr "Methode" #~ msgid "watermark" #~ msgstr "watermerk" #~ msgid "january" #~ msgstr "januari" #~ msgid "february" #~ msgstr "februari" #~ msgid "march" #~ msgstr "maart" #~ msgid "april" #~ msgstr "april" #~ msgid "may" #~ msgstr "mei" #~ msgid "june" #~ msgstr "juni" #~ msgid "july" #~ msgstr "juli" #~ msgid "august" #~ msgstr "augustus" #~ msgid "september" #~ msgstr "september" #~ msgid "october" #~ msgstr "oktober" #~ msgid "november" #~ msgstr "november" #~ msgid "december" #~ msgstr "december" #~ msgid "monday" #~ msgstr "maandag" #~ msgid "tuesday" #~ msgstr "dinsdag" #~ msgid "wednesday" #~ msgstr "woensdag" #~ msgid "thursday" #~ msgstr "donderdag" #~ msgid "friday" #~ msgstr "vrijdag" #~ msgid "saturday" #~ msgstr "zaterdag" #~ msgid "sunday" #~ msgstr "zondag" #~ msgid "the variable" #~ msgstr "de variabele" #~ msgid "invalid syntax" #~ msgstr "ongeldige syntax" #~ msgid "invalid literal" #~ msgstr "ongeldige waarde" #~ msgid "the integer value" #~ msgstr "de waarde van het gehele getal" #~ msgid "the float value" #~ msgstr "de waarde van het reële getal" #~ msgid "the file extension" #~ msgstr "de bestandsextensie" #~ msgid "a filename with a valid extension was expected." #~ msgstr "een bestandsnaam met een geldige extensie was verwacht." #~ msgid "the filename" #~ msgstr "de bestandsnaam" #~ msgid "Save metadata" #~ msgstr "Metadata opslaan" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Deze actielijst is door een oudere %(name)s versie gemaakt.\n" #~ "\n" #~ msgid "drag & drop any image here" #~ msgstr "versleep een beeld naar hier" #~ msgid "&Preview" #~ msgstr "&Voorvertoning" #~ msgid "Open image file" #~ msgstr "Een beeldbestand openen" #~ msgid "Open image url" #~ msgstr "Een url van een afbeelding openen" #~ msgid "Copy cell text" #~ msgstr "Celtekst kopiëren" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Bewaar metadata (exif & iptc plugin vereist)" #~ msgid "Do not create missing folders" #~ msgstr "Maak ontbrekende mappen niet aan" #~ msgid "&Recent" #~ msgstr "&Recent" #~ msgid "&Export..." #~ msgstr "&Exporteren..." #~ msgid "Scale down only" #~ msgstr "Alleen verkleinen" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Zie Hulpmiddelen>Logboek Weergeven voor meer details." #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "" #~ "De vangnetopdracht voor deze actielijst is naar het klembord gekopieerd." #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "Foto Batch Bewerker & Hernoemer" #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch kon het vangnet niet aanmaken:" #~ msgid "Only an image file is allowed." #~ msgstr "Alleen een beeldbestand is toegestaan." #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "Beeld&inspecteur (exif)\tCtrl-Space" #~ msgid "JPG Quality" #~ msgstr "JPG Kwaliteit" #~ msgid "colors" #~ msgstr "kleuren" #~ msgid "Auto crop" #~ msgstr "Automatisch uitsnijden" #~ msgid "Crop Border" #~ msgstr "Uitsnijrand" #~ msgid "Contour color" #~ msgstr "Omtrekkleur" #~ msgid "JPG Size Maximum" #~ msgstr "JPG Maximumgrootte" #~ msgid "PNG Size Tolerance" #~ msgstr "PNG Tolerantiegrootte" #, python-format #~ msgid "" #~ "Sorry, the action list seems incompatible with\n" #~ "the current version (%(version)s) of %(name)s." #~ msgstr "" #~ "Sorry, de actielijst lijkt niet compatibel met\n" #~ "de huidige versie (%(version)s) van %(name)s." #, python-format #~ msgid "" #~ "Sorry, the values of these options will be lost in\n" #~ "the current version (%(version)s) of %(name)s." #~ msgstr "" #~ "Sorry, de waarden van deze opties zullen verloren geraken in\n" #~ "de huidige versie (%(version)s) van %(name)s." #, python-format #~ msgid "" #~ "Phatch needs 'python-wxversion' and 'python-wxgtk%(recommended)s' (or at " #~ "least 'python-wxgtk%(minimal)s')." #~ msgstr "" #~ "Phatch heeft 'python-wxversion' en 'python-wxgtk%(recommended)s' nodig (of " #~ "minstens 'python-wxgtk%(minimal)s')." #~ msgid "Sorry" #~ msgstr "Sorry" #~ msgid "is not a valid path" #~ msgstr "is geen geldig pad" #~ msgid "the current version (%(version)s) of %(name)s." #~ msgstr "de huidige versie (%(version)s) van %(name)s." #~ msgid "Shell" #~ msgstr "Shell" #~ msgid "or at least" #~ msgstr "of minstens" #~ msgid "can not be found, but is required" #~ msgstr "kan niet worden gevonden, maar is vereist" #~ msgid "and" #~ msgstr "en" #~ msgid "but you have" #~ msgstr "maar u heeft" #~ msgid "installed" #~ msgstr "geïnstalleerd" #~ msgid "Outline" #~ msgstr "Omtrek" #~ msgid "Starting..." #~ msgstr "Bezig met starten..." phatch-0.2.7/locale/pa/0000755000000000000000000000000011346363116014570 5ustar rootroot00000000000000phatch-0.2.7/locale/pa/LC_MESSAGES/0000755000000000000000000000000011346363116016355 5ustar rootroot00000000000000phatch-0.2.7/locale/pa/LC_MESSAGES/phatch.mo0000644000000000000000000000171711346363116020167 0ustar rootroot00000000000000 t  ",5 ;GLTY^%>\ u      ActionAll FilesC&ontinueExamplesFalseInteractiveTrueVerbosetruewithProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-09-22 05:26+0000 Last-Translator: fundoosunny Language-Team: Punjabi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) ਕਾਰਵਾਈਸਾਰੀਆਂ ਫਾਇਲਾਂਜਾਰੀ ਰੱਖੋ(&o)ਉਦਾਹਰਨਾਂਗਲਤਦਿਲਖਿੱਚਵਾਂਸੱਚਵਿਸਥਾਰਸੱਚਨਾਲphatch-0.2.7/locale/pa/LC_MESSAGES/phatch.po0000644000000000000000000030603411346363116020172 0ustar rootroot00000000000000# Punjabi translation for phatch # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-09-22 05:26+0000\n" "Last-Translator: fundoosunny \n" "Language-Team: Punjabi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "ਉਦਾਹਰਨਾਂ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "ਦਿਲਖਿੱਚਵਾਂ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "ਵਿਸਥਾਰ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "ਸੱਚ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "ਗਲਤ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "ਸੱਚ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "ਸਾਰੀਆਂ ਫਾਇਲਾਂ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "ਨਾਲ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "ਕਾਰਵਾਈ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "ਜਾਰੀ ਰੱਖੋ(&o)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" phatch-0.2.7/locale/pl/0000755000000000000000000000000011346363116014603 5ustar rootroot00000000000000phatch-0.2.7/locale/pl/LC_MESSAGES/0000755000000000000000000000000011346363116016370 5ustar rootroot00000000000000phatch-0.2.7/locale/pl/LC_MESSAGES/phatch.mo0000644000000000000000000010740011346363116020176 0ustar rootroot00000000000000R<%11&1C162L2S2q222 22222222 3&363F3L3[3s3333333 33333 44"414 I4V4 o444 444443455 5 )555 95%G5!m5(5G566 6 $6 .6(86a6x66666&6666*6.)72X77 7 7 777 7&7!8&8,828 78"C8"f888 8 888 88 888 99 $9 .9<9C9'L96t99999999:::&:6:T:d:!{: ::: :::::::;;%; -;;; D;"Q;t;;;";;<(<-@<$n<<<<<<<<)=*=9=?=F=M=R=[= t== == == = =B=,>,;>h>>> >>>(> >!?'?$??? ?? @@&@C@I@R@Z@s@@@@@@@@@ @@A AAAA"A2ABA\AbAiAnA;tAA9ABBB)B:B>B*CBnBuBBB B BB BB C>C.PC CCC CCCCC C0C,DED.bDDDD D DDD'D E (E5EGE[EcEhE&mEE,EEE EEEEF .FOFUFZF_FwFFFFFFFFFFFF*FF F G(G.DGsGG"GGGGGH HH"H?HCHXHmHuH zHHHH HH.H II !IBI GI UI"aI*I8I(I;J7MJ6JJJ>J(KFKOK XK&bK!KK K1KLL L*'L RL]LdLLLL L LLLLMM ,M :MEMKM^M eM pM {MMMMMMM'Mk NxN NNNNNNNO'O?OEO!UOwOOOO OOO O OO O PPP-PGP[PqP'zP#P P$PPQQ%Q.Q>JQQ1QQQQQQRR%R6R:RTRkR|RRHRR+S3,S`S|SASSS SST'T>TBTKT [TeTvT'TTT)T T U UUU#U)UAU[UoUUUUU U2UUV VVV#V 3V(?V,hV VV VVVV VVW&W4,W?aWAW7W7XSXYX aX kX wXXXXXXXXXXX XXXYYYY Y(Y:YAYGYLYUY^Y eYpYvY }YYYYYYYYYYYYY YYYYYZZZ-Z4ZEZ`Z ~ZZZZZZZZ ZZZ ZZ"ZZ [ [[[[ '[3[9[>[U[Z[^[#\-]PG]] ]]]]] ^^$^=^E^N^j^|^^^^^^^^ _ _(_9_)@_ j_ t__ _____ _%_``!*` L`X`x` ` `` `J` aa a a,a 2a$?a%da3ama,b=bPbYbib2ybbbbb!b*b@'c hcrcc%c-c0c d d7dPd Ud`d"wd(dddddd-d6eUe ]eie{eeeeeeee e ff!f 5fCf)Sf=}f fffffgg,gFgMg]gmg gggggggg h$h6h >h HhSh[hnh uhhhh%h"h$i&&i"Mipi,wi1i(iij0jFj\jsjj2jjjj jj jjk"k +k7kQkVkuk ~kKkk!k!l(lAl Zlglnl1vll(ll"m mmmmm mnn %n0n8nVnenzn n n$nnnn nn nooo"o +o 9o!Go iouo}ooKoo8o&p.p=pLpcphp2{pp pp"p"q5qDq]qeq{qBq(qqqrr'r".rQr Srtr3rrr.r$s6sHs[s os|ss4ss sst3t0z4ozz&zAz&{C{L{ T{2a{,{{ {;{.|7|=|!E|g|o|u||| |||!|}-#}Q}g}x}}}#}} } } }} ~ ~"'~J~#Q~=u~t~*( S]dk '2ZbÀ ؀   !5Wr Ё'+3 9)E<o 1 $ =K ]gw#$Ƀ߃%K !W,y4#ۄ;S\ dq/ȅ΅߅50fw# †Ȇφֆۆ& (;%d9ԇ   % /=E[-n/ ̈׈܈#)Ml=qQJ5LAĊ͊ӊ  /5QY`}   ҋ  (.CV^m s~ČɌҌ  !4OW*r͍Ӎ   0 : HS&\   ӎߎ>I8mK}SX 6R(L#~3@eE O2dWOaDz)8=,'&  73HOH@2Eb9LDsCrj).<FoBt_b*ue?BZGalBK d^:^)`Y/L"5/V-,f`\.NSJ-=Y/(yk J;Q#iN=Z+,Mn$AvX ?Q1x6RM.(6qKuFF:UJ1+Pw*Qt%CTv$D00G'4@4w5 M0<yc  '2qWj[ A l{|%$I!G]P"hoh[3gEn4c_>~> s|r< p  \%-!;"{9NHUx&8!pf;}m1+#g*7VIRCA z57Pi :9]T&k?"%s" is not a valid path.%(amount)d images done in %(duration)s%(mode)s has been converted to %(mode_copy)s to save as %(format)s.%d issues were logged&Abort&About Phatch... Ctrl-Shift-A&Action List Droplet...&Add&Add... Ctrl-+&Ask for Help&Batch&Browse Library&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Fonts&Forum... Ctrl-F&Help&Image Inspector Droplet...&License&New Ctrl-N&OK&Open...&Open... Ctrl-O&Phatch&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&Update&User&View3D EdgeA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAfterwards you can drag&drop images on the Phatch window to batch them.Align HorizontalAlign VerticalAllAll FilesAll filesAllow Geek action and unsafe expressionsAlways save on desktopAmountAngleAngle Apply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAuto ContrastAuto CropBackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlurBlur RadiusBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBorder WidthBothBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse %sBrowse FolderBulletC&reditsCMYK (4x8-bit pixels, color separation)Can not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCaptionCenterChangeCharcoalCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletClipboardCodeColorColor ValueColor to AlphaColorizeColorize grayscale imageColumnsCommandCommentsCommonConstrain ProportionsContourContour ColorContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCopy the original imageCorner Bottom LeftCorner Bottom RightCorner Top LeftCorner Top RightCreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDifferent for each sideDirectionDirection Disable Safe Mode in the Tools menu if you trust this action list.Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDoneDownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqual for all sidesEqualizeEqualize the image histogramErrorExamplesExecuteExecute external commandExecute the actionExecute the action listExecuting action listExpandExplorerFade all colors to grayFalseFebruaryFileFile NameFile(s)FillFill ColorFilterFitFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsFor more information see the tutorials (Help>Documentation)Force Background ColorFormat %(format)s does not support overwriting "%(tag)s".FridayFrom (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GapGeekGeek actions are not allowed in safe mode.GeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHighlightHooray, no issues!HorizontalHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagesImpossible to write tag "%s"InInclude all subfoldersInclude imageInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LabelLearn to develop Phatch with Python and PIL.LeftLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsMake selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMayMedianMessageMetadataMethodMiddleMinimumMinutesMirrorModeMondayMonochrome (1-bit pixels, black and white)MonthsMotion BlurMove the selected action downMove the selected action upNever run action lists from untrusted sources.No action list provided.No files or folder selected.No save action required at the endNoneNormalNothing has been logged yet.Nothing to do.NovemberOctoberOffsetOffset by distance and wrap aroundOneOne image done in %sOne issue was loggedOpacityOpenOpen &RecentOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesP (8-bit pixels, mapped using a color palette)PNG OptimizePaintPaste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch will generate the user interface automatically.Photo Batch ProcessorPlease (re)install it.Please check if this action list doesn't contain harmful code.Please upgrade your wxPython.PolaroidPositionPosterizeProcess with recent Phatch action listPut color under transparent imageQuit the application.RGB (3x8-bit pixels, true color)RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReady!Reduce the number of bits of color channelReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename the original imageRepeatReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRightRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSafe mode protects you from the execution of possibly harmful scripts. Are you sure you want to disable it?Same Method for All CornersSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save and convert to other typesSave last changes toSaves an action listSaves an action list asScaleScale Down OnlyScan for new fonts on your systemSecondsSee "%s" for more details.SelectSelect Color BySelect ObjectSelect RotationSelect action listSelectionSeptemberShadowShadow BlurShadow ColorSharpenShear 2d or 3dShift time values of tagsShow &Log... Ctrl-LShow Advanced OptionsShow LogShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.Show report of processed imagesSizeSliderSolarizeSorry, no valid files foundSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:SundayTIFF CompressionTagTag "%s" is not writable.Tag "%s" is read only.Tag (Exif, Iptc)TextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This action list is unsafe:This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTime ShiftTime Shift (seconds)To (Exif, Iptc)Tools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTransform to a grayscale pencil drawingTransformationTransformation Translate Phatch in your native language.TranslationTransposeTresholdTrueTuesdayTypesUnable to change label.Unable to delete tag <%s>Unable to open fileUnable to rename tag <%s>Unable to save tag <%s>Unsaved Action ListUnsharpUpUpdate JPEGUse the Image Inspector to list all the variables.UserUtilityValueVerboseVerticalVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWaveWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,You only need to know PIL to write a plugin for Phatch.abortactionsantialiasapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscolorcompressioncontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerleftmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnonepathplease email: please install pyexiv2pluginpositive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth moresourcestringsubfoldertagthe file extension "%s" is invalidtoptransformtruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-03-07 21:53+0000 Last-Translator: Tomasz Puton Language-Team: Polish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) "%s" nie jest poprawną ścieżką.%(amount)d zdjęć przerobiono w %(duration)s%(mode)s został zamieniony na %(mode_copy)s do zapisania w formacie %(format)s.Zarejestrowano %d błędy.&Przerwij&O Phatchu... Ctrl-Shift-A&Interfejs listy akcji...&Dodaj&Dodaj... Ctrl-+&Poproś o pomoc&WsadowePrzeglądaj &bibliotekę&Anuluj&ZamknijZwiń wszystko Ctrl-Shift-EKontynuuj mimo to&Wyłącz Ctrl-0&Dokumentacja... Ctrl-M&Na dół Ctrl-Down&Interfejs Ctrl-D&Edytuj&Włącz Ctrl-1&Wykonaj... Ctrl-ReturnRozwiń wszystko Ctrl-E&Eksportuj&Czcionki&Forum... Ctrl-F&Pomoc&Graficzny interfejs Inspektora Obrazu...&Licencja&Nowy Ctrl-N&OK&Otwórz...&Otwórz... Ctrl-O$Phatch&Zakończ Ctrl-Q&Ostatni Interfejs...&Usuń Ctrl--&Zgłoś błąd w programie... Ctrl-B&Zapisz Ctrl-S&Pokaż opis Ctrl-H&Pokaż szablon dla wtyczki akcji&Narzędzia&Przetłumacz Phatcha... Ctrl-T&Do góry Ctrl-Up&Uaktualnij&Użytkownik&WidokKrawędź 3DInstrukcja w formie html otworzy się w Twojej przeglądarce internetowej.O programieAkcjaListy akcjiLista akcjiDodajDodaj akcjęDopasuj jasność od czerni do bieliDopasuj z szarości do czerni i bieliDopasuj nasycenie z szarości do wysokich wartościPóźniej będziesz mógł przeciągać i upuszczać zdjęcia w oknie Phatch'a, by przetworzyć je zbiorowo.Dopasuj w pionieDopasuj w poziomieWszystkoWszystkie plikiWszystkie plikiZezwól na opcje dla geek'a i ryzykowne wyrażeniaZawsze zapisuj na pulpicieIlośćKątKąt Zastosuj maskę przezroczystościZastosuj do przyszłych błędów. Zastosuj z kafelkowaniem, zmianą rozmiaru i przezroczystościąKwiecieńSzata graficznaJakoSkojarz obrazy z listą akcji w %s...Skojarz obrazy z Inspektorem Obrazów w %s...Skojarz obrazy z ostatnimi listami akcji w %s...SierpieńAutomatyczna regulacja kontrastuAutomatyczne przycięcieTłoKolor tłaPrzezroczystość tłaUruchom process wsadowy z PhatchemProces wsadowy z ostatnimi listami akcjiBityCzarnySpadyRozmyciePromień rozmyciaRozmycie, Polaroid, Cień, Antywyostrzenie...Rozmycie, Wyostrzenie, Płaskorzeźba, Wygładzanie...BooleanObramowanieKolor obramowaniaSzerokość obramowaniaObieDółLewy dolny rógLewy dolny rógPrawy dolny rógPrawy dolny rógKąt dolnego odkształceniaJasnośćPrzeglądajPrzeglądaj %sPrzeglądaj katalogWypunktowanieP&odziękowaniaCMYK (4x8-bit pixels, separacja kolorów)Nie można wykonać akcji %(a)s na obrazie %(i)s' w katalogu:Nie można wykonać akcji %(a)s:Obszar roboczyPodpisŚrodekZmieńMalowanie węglemNajpierw sprawdź obrazyTrwa sprawdzanie obrazówWybórWybierz plik(i)Wybierz katalogWybierz plik listy akcji...Wybierz obrazWybierz katalog z obrazamiWybierz katalog na interfejsSchowekKodKolorWartość KoloruKolor jako kanał alfaKolorujKoloruj obraz w odcieniach szarościKolumnyPolecenieKomentarzeCzęsteZachowaj proporcjeKonturKolor konturuKontrastTryb konwersjiKonwertuj tryb koloru obrazuKopiuje maksymalną wartość pikseliKopiuje medianę wartości pikseliKopiuje minimalną wartość pikselaKopiuje najczęstsze wartości pikseliKopiuje wartości pikseli z rangąKopiujKopiuj listę akcji do schowka jako &KomendaKopiuj I&nspektora Obrazu do schowka jako KomendaKopiuj O&statnie do schowka jako KomendaSkopiuj oryginalne zdjęcieLewy Dolny NarożnikPrawy Dolny NarożnikLewy Górny NarożnikPrawy Górny NarożnikPodziękowaniaPrzytnijPrzytnij lub poszerz obszar roboczy bez skalowaniaPrzytnij obrazKrzyżWłasnyOdcięcieDniGrudzieńUsuń znaczniki Exif lub IptcUsuń znacznikiGłębiaBlaknięcieOpisz listę akcji tutaj.OpisOdmiennie dla każdej ze stronKierunekKierunek Wyłącz Tryb Bezpieczny w menu Narzędzia, jesli ufasz tej liście zadań.Wyłącz akcjęPokaż informacje o tym programieNie sprawdzaj zdjęć na wstępieCzy chcesz kontynuować?Czy chcesz go nadpisać?DokumentacjaGotoweW dółZmniejsz i przytnij obraz ze stałymi proporcjamiPrzeciągnij i upuśćRysuje kontur dookoła krawędzi obrazkaUpuść tutaj pliki i/lub katalogi by przetworzyć je wsadowo Kliknij prawym klawiszem myszy albo podwójnie lewym by przełączyć się do normalnego widokuDodaje rozmyty cień pod obrazkiemRzuca odbicieEfektWłącz akcjęWpisz adres obrazuRówno dla każdej stronyWyrównajWyrównaj histogram obrazuBłądPrzykładyWykonajWykonaj polecenie zewnętrzneWykonaj akcjęWykonaj listę akcjiWykonuję listę akcjiRozszerzanieEksploratorWygaś kolory ku odcieniom szarościFałszLutyPlikNazwa plikuPlik(i)WypełnienieKolor WypełnieniaFiltrDopasujOdwróćOdbij poziomoOdbij pionowoPrzerzuć lub obróć o 90 stopniRzeczywistaKatalogCzcionkaCzcionkiPrzejrzyj samouczek jeśli szukasz więcej informacji (Pomoc->Dokumentacja)Wymuś kolor tłaFormat %(format)s nie pozwala na nadpisywanie "%(tag)s".PiątekZ (Exif, Iptc)Dane GPS (gpx)Podsumowanie GPS (csv)LukaManiak komputerowyAkcje geek'a nie są dozwole w trybie bezpiecznym.Znacznik geograficznyPrzejdź do dokumentacji PhatchaPrzejdź do forum PhatchaPrzejdź do strony domowej PhatchaOdcienie szarościPodświetlenieHurrra, zero problemów!PoziomaPrzesunięcie poziomeGodzinyGdy uruchomisz %s ponownie, akcja pojawi się w menu kontekstowym.Jeśli chcesz dodać wtyczkę do PhatchaIgnoruj błędyObrazInspektor ObrazuŚcieżki obrazuObrazyNie można zapisać znacznika "%s"WUwzględnij wszystkie podfolderyDołącz obrazInicjacja czcionki (tylko dla instalacji skryptów)Sprawdź znaczniki EXIF i IPTCSprawdź znaczniki EXIF i IPTCSprawdź metadane (wymaga wtyczki exif & iptc)Sprawdź PhatchemLiczba całkowitaLiczba całkowita+Liczba całkowita+0InteraktywnyNieprawidłowe obrazyOdwróćOdwróć wartości wszystkich pikseli powyżej proguOdwróć kolory obrazkaJakość JPEGMaksymalny Rozmiar pliku JPEGTolerancja rozmiaru pliku JPEGStyczeńLipiecCzerwiecZatrzymaj istniejące obrazy (nie nadpisuj)EtykietaNaucz się korzystać z Phatch'a za pomocą Python'a i PIL'a.LewaKąt odkształcenia w lewoBibliotekiLicencjaDziennikPrzejrzyj znaczniki EXIF i IPTCDodaje przezroczystość do koloruPowiększ lub zmniejsz obrazMarzecZnakMaskaMaksymalizuj kontrast obrazuMaksimumMajMedianaWiadomośćMetadaneMetodaŚrodekMinimumMinutyOdbicie lustrzaneTrybPoniedziałekJednokolorowy (1 bit na piksel, czarno-biały)MiesiąceRozmycie "w ruchu"Przesuń wybraną akcje w dółPrzesuń wybraną akcję do góryNigdy nie uruchamiaj akcji z niezaufanych źródeł.Nie ma przygotowanej listy akcji.Nie wybrano żadnych plików ani katalogu.Nie zapisuj po skończeniu pracyBrakNormalnyNiczego dotychczas nie wprowadzono do dziennika.Nic do zrobieniaListopadPaździernikPrzesunięcieOdsunięcie zależne od dystansu i zasięguJedenJeden obraz przerobiony w %sZarejestrowano jeden błądPrzezroczystośćOtwórzOtwórz pop&rzednieOtwórz listę akcjiOtwiera listę akcjiOpcjeOrientacjaNadpisz istniejące obrazyP (8-bit pixels, zamapowano używając palety kolorów)Zoptymalizuj PNGRysowanieWklej tą komendę do programu uruchamiającegoŚcieżkaSzkic ołówkiemPerspektywaPhatch nie jest w stanie obrobić %d obraz(ów)Phatch nie mógł zainstalować akcji w %s:Phatchowi nie udało się zainstalować wybranych funkcji.Phatch poprawnie stworzył interfejs.Phatch próbował odinstalować się z Eksploratora Windows.Phatch doda jeden za ciebie, proszę sprawdź jego ustawienia.Phatch utworzy interfejs użytkownika automatycznie.Wsadowy Procesor ZdjęćProszę zainstaluj to lub przeinstalujSprawdź proszę czy ta lista akcji nie zawiera szkodliwego kodu.Proszę zakualizuj wxPython.PolaroidPozycjaPosteryzacjaPrzetwórz obrazy z ostatnią listą akcji PhatchaDodaje kolor do przeźroczystego tła obrazuOpuść programRGB (3x8-bit pixels, true color)RGBA (4x8 bitów na piksel, RGB z maską przezroczystości)PromieńRangaGotowe!Zredukuj liczbę bitów na kanałOdbicieUsuńUsuń skojarzenia z %s...Usuń wybraną akcjeUsuń wybraną akcjęZmień nazwęZmień nazwę znacznikaZmień nazwę znacznikaZmień nazwę oryginalnego obrazuPowtórzZgłoś błąd w programie poprzez launchpad.Ponownie próbkowanieZresampluj obrazZresampluj maskęRozdzielczośćPrawoPrawy współczynnik odkształceniaObróćObrót o 180Obrót o 270Obrót o 90Obróć o przypadkowy kątZaokrągloneZaokrągloneZaokrąglone lub skrzyżowane rogiRzędyUruchom %s w interfejsie graficznymUruchom %s jako program w konsoli bez interfejsu graficznego.Tryb bezpieczny chroni Cię przed wykonaniem potencjalnie niebezpiecznych skryptów. Na pewno chcesz go wyłączyć?Ta sama Metoda dla Wszystkich NarożnikówNasycenieSobotaZapiszZ&apisz jako... Ctrl-Shift-SZapamiętaj listę akcji jako...Zapisz i zamień na inne typyZapisz ostatnie zmiany doZapisuje listę akcjiZapisuje listę akcji jakoSkalujTylko skalowanie w dółWyszukaj nowe czcionki w swoim systemieSekundyZajrzyj do "%s" po szczegóły.ZaznaczWybierz Kolor Za PomocąWybierz ObiektWybierz RotacjęWybierz listę akcjiZaznaczenieWrzesieńCieńRozmycie cieniaKolor cieniaWyostrzenieOdkształć w 2d lub 3dZmiana wrtości czasu znacznikówPokaż &Dziennik... Ctrl-LPokaż zaawansowane opcjePokaż logPokaż wszystkie parametry akcjiPokaż opis listy akcjiPokaż plik dziennikaPokaż tylko etykiety akcji.Pokaż raport o przetworzonych obrazachRozmiarSuwakSolaryzacjaNiestety, nie znaleziono ważnych plikówNiestety, musisz zainstalować akcję %s dla tej listy akcjiŹródłoWybierz twój język (na przykład en albo en_GB)SponsorzyKwadratowyZacznij nową listę akcjiZatrzymaj się w przypadku błędówCiąg znakówZbadaj wtyczki w:NiedzielaKompresjia TIFFZnacznikZnacznik "%s" nie jest zapisywalny.Znacznik "%s" jest tylko do odczytu.Znacznik (Exif, Iptc)TekstLista zadań do wykonania jest pusta.Komenda interfejsu dla inspektora obrazu została skopiowana to do schowka.Nie jest włączona żadna akcja.Powinna być akcja 'Zapisz' na końcu listy.The rozszerzenia zostały poprawnie zainstalowane: Uważaj z użyciem tej listy akcji:Ten plik już istnieje.Wymagany jest także zainstalowany dodatek python-nautilus.CzwartekKafelkiZmiana czasuZmiana czasu (sekundy)Do (Exif, Iptc)Narzędzia obsługujące aktualną listę akcjiGóraLewy górny rógLewy górny rógPrawy górny rógPrawy górny rógKąt odkształcenia w prawoPrzekształć na skalę szarości za pomocą ołówkaPrzekształceniePrzekształcenie Przetłumacz Phatch na swój językTłumaczenieZamieńPrógPrawdaWtorekTypyNiemożliwą zmiana etykiety.Niemożliwym usunięcie znacznika <%s>Nie można otworzyć plikuNiemożliwą zmiana nazwy znacznika <%s>Niemożliwym zapisanie znacznika <%s>Niezapamiętana lista akcjiAntywyostrzenieW góręUaktualnij plik JPEGUżyj Inspektora Obrazu by wyświetlić wszystkie zmienneUżytkownikNarzędzieWartośćDokłady opisPionowaPrzesunięcie pionowePodgląd źródłaPrzedstaw jako interfejs by przciągać plikiUwaga: python-wxversion nie jest zainstalowana Znak wodnyFalaŚrodaCo chcesz teraz zrobić?BiałyNapisz wtyczkę akcjiZapisz znacznikZapisz nową wartość do znacznikaNapisz tekst w podanym miejscuLataMożesz tylko użyć plików z następującymi rozszerzeniamiMożesz wkleić to jako tekst we właściwości nowego programu uruchamiającego.Musisz zainstalować rozszerzenia Python Win32 by uruchomić tą funkcję.Musisz znać PIL żeby napisać wtyczkę dla Phatcha,Wystarczy jedynie znać PILa, by napisać wtyczkę do Phatch'a.przerwijakcjewygładzanie krawędziaplikacjatłodwusześciennadwuliniowerozmyciewartość logicznadółrozszerz swoje wyszukiwanieśrodekwybórkliknij '+' aby dodać akcjekolorkompresjakonturdzieńdziesiętnedomyślniedetaldpiwzmacnianie krawędzimocniejsze wzmacnianie krawędzipłaskorzeźbafałszpliknazwa plikurozmiar plikufiltrwykrywanie krawędziliczba rzeczywistakatalognazwa kataloguramkawysokośćgodzinaignorujobrazyliczba całkowitalewometadaneśrodekminutatrybmiesiącnazwa miesiącanajbliższynienie znaleziono znaczników %sżadenścieżkawyślij maila do: proszę zainstaluj pyexiv2wtyczkadodatnia liczba całkowitadodatnia liczba całkowita, nierówna zerupyexiv2 musi być zainstalowanyrozdzielczośćprawoużytkownik głównysekundawyostrzanierozmiarpomińwygładzaniemocniejsze wygładzanieźródłociąg znakówpodkatalogznacznikrozszerzenie "%s" nie jest prawidłowegóraprzekształćprawdatypostrzeżeniedzień tygodnianazwa dnia tygodniaszerokośćzBłąd wersji wxPythonroktakphatch-0.2.7/locale/pl/LC_MESSAGES/phatch.po0000644000000000000000000035240511346363116020210 0ustar rootroot00000000000000# Polish translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-03-07 21:53+0000\n" "Last-Translator: Tomasz Puton \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Sprawdź Phatchem" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Sprawdź znaczniki EXIF i IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Przykłady" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Uruchom %s jako program w konsoli bez interfejsu graficznego." #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Uruchom %s w interfejsie graficznym" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Zawsze zapisuj na pulpicie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignoruj błędy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Inicjacja czcionki (tylko dla instalacji skryptów)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interaktywny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Zatrzymaj istniejące obrazy (nie nadpisuj)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Wybierz twój język (na przykład en albo en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Sprawdź metadane (wymaga wtyczki exif & iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Nie zapisuj po skończeniu pracy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Uwzględnij wszystkie podfoldery" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Nie sprawdzaj zdjęć na wstępie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "Zezwól na opcje dla geek'a i ryzykowne wyrażenia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Dokłady opis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" "Możesz wkleić to jako tekst we właściwości nowego programu uruchamiającego." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Niestety, musisz zainstalować akcję %s dla tej listy akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "Komenda interfejsu dla inspektora obrazu została skopiowana to do schowka." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" "Później będziesz mógł przeciągać i upuszczać zdjęcia w oknie Phatch'a, by " "przetworzyć je zbiorowo." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" "Przejrzyj samouczek jeśli szukasz więcej informacji (Pomoc->Dokumentacja)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "Hurrra, zero problemów!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Niczego dotychczas nie wprowadzono do dziennika." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Dziennik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "przerwij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "pomiń" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignoruj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "kliknij '+' aby dodać akcje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "Otwórz pop&rzednie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Otwórz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Otwórz listę akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Wykonaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Wykonaj akcję" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Dodaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Dodaj akcję" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Usuń" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Usuń wybraną akcje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "W górę" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Przesuń wybraną akcję do góry" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "W dół" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Przesuń wybraną akcje w dół" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Inspektor Obrazu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Przejrzyj znaczniki EXIF i IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Opis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Pokaż opis listy akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Wybierz plik listy akcji..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Zapamiętaj listę akcji jako..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Ten plik już istnieje." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Czy chcesz go nadpisać?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "aplikacja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "ramka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "akcje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" "Instrukcja w formie html otworzy się w Twojej przeglądarce internetowej." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "Wystarczy jedynie znać PILa, by napisać wtyczkę do Phatch'a." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "Phatch utworzy interfejs użytkownika automatycznie." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Zbadaj wtyczki w:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Jeśli chcesz dodać wtyczkę do Phatcha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "wyślij maila do: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Przeciągnij i upuść" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Upuść tutaj pliki i/lub katalogi\n" "by przetworzyć je wsadowo\n" "Kliknij prawym klawiszem myszy albo podwójnie lewym by przełączyć się do " "normalnego widoku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch doda jeden za ciebie, proszę sprawdź jego ustawienia." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Zapisz ostatnie zmiany do" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" "Tryb bezpieczny chroni Cię przed wykonaniem potencjalnie niebezpiecznych " "skryptów.\n" "Na pewno chcesz go wyłączyć?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Wybierz katalog na interfejs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch poprawnie stworzył interfejs." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Wybierz listę akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Wybierz katalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Wybierz plik(i)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Wybierz katalog z obrazami" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "obrazy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "Schowek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Przeglądaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "Przeglądaj %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Plik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Katalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "domyślnie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Podgląd źródła" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "rozszerz swoje wyszukiwanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Ścieżka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Otwórz..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Nowy\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Zacznij nową listę akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Otwórz...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Otwiera listę akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Zapisz\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Zapisuje listę akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Z&apisz jako...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Zapisuje listę akcji jako" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Kopiuj listę akcji do schowka jako &Komenda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Wklej tą komendę do programu uruchamiającego" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Kopiuj O&statnie do schowka jako Komenda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Kopiuj I&nspektora Obrazu do schowka jako Komenda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&Eksportuj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Zakończ\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Opuść program" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Dodaj...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Usuń\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Usuń wybraną akcję" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Włącz\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Włącz akcję" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Wyłącz\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Wyłącz akcję" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Do góry\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Na dół\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Edytuj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Interfejs\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Przedstaw jako interfejs by przciągać pliki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Pokaż opis\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Narzędzia obsługujące aktualną listę akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "Rozwiń wszystko\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Pokaż wszystkie parametry akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "Zwiń wszystko\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Pokaż tylko etykiety akcji." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Widok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Wykonaj...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Wykonaj listę akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "&Użytkownik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "$Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "Przeglądaj &bibliotekę" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "Pokaż raport o przetworzonych obrazach" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Pokaż &Dziennik...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Pokaż plik dziennika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "&Czcionki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "Wyszukaj nowe czcionki w swoim systemie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "&Uaktualnij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Narzędzia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Przejdź do strony domowej Phatcha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Dokumentacja...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Przejdź do dokumentacji Phatcha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Przejdź do forum Phatcha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Przetłumacz Phatcha...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Przetłumacz Phatch na swój język" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Zgłoś błąd w programie...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Zgłoś błąd w programie poprzez launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "Naucz się korzystać z Phatch'a za pomocą Python'a i PIL'a." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&O Phatchu...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Pokaż informacje o tym programie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Pomoc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "Gotowe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Pokaż log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "Gotowe!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "Eksplorator" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Musisz znać PIL żeby napisać wtyczkę dla Phatcha," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Pokaż szablon dla wtyczki akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Kod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Poproś o pomoc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Napisz wtyczkę akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Zastosuj do przyszłych błędów. " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Przerwij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Wiadomość" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "Kontynuuj mimo to" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Opcje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Przeglądaj katalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Źródło" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Plik(i)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Zatrzymaj się w przypadku błędów" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Najpierw sprawdź obrazy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Nadpisz istniejące obrazy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Anuluj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Wsadowe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Obraz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Etykieta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "znacznik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Ciąg znaków" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Wybór" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Kolor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Rozdzielczość" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Nazwa pliku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "W" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Rzeczywista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Jako" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Tryb" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Ponownie próbkowanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "dwusześcienna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Liczba całkowita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Liczba całkowita+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Liczba całkowita+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Pozioma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Suwak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "pyexiv2 musi być zainstalowany" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" "%(mode)s został zamieniony na %(mode_copy)s do zapisania w formacie " "%(format)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Styczeń" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Luty" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Marzec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "Kwiecień" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Maj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Czerwiec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Lipiec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "Sierpień" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Wrzesień" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Październik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "Listopad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "Grudzień" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Poniedziałek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Wtorek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Środa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Czwartek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Piątek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Sobota" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Niedziela" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "Znacznik \"%s\" jest tylko do odczytu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "Nie można zapisać znacznika \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "Znacznik \"%s\" nie jest zapisywalny." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "Format %(format)s nie pozwala na nadpisywanie \"%(tag)s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "tło" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "źródło" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Wszystko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Wybierz Obiekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "Wybierz Rotację" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "Środek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Własny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Środek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Lewa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Prawo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Góra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Dół" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Lewy dolny róg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Prawy dolny róg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Lewy górny róg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Prawy górny róg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientacja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Pozycja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Przesunięcie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Przesunięcie poziome" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Przesunięcie pionowe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Kafelki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Skaluj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Znak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Przezroczystość" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Metoda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Wsadowy Procesor Zdjęć" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Prawda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Fałsz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "prawda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "fałsz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Niezapamiętana lista akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Listy akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Wszystkie pliki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Opisz listę akcji tutaj." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Powinna być akcja 'Zapisz' na końcu listy." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "z" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Skojarz obrazy z listą akcji w %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Skojarz obrazy z ostatnimi listami akcji w %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Skojarz obrazy z Inspektorem Obrazów w %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Usuń skojarzenia z %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "&Interfejs listy akcji..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "&Ostatni Interfejs..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "&Graficzny interfejs Inspektora Obrazu..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Proces wsadowy z ostatnimi listami akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Sprawdź znaczniki EXIF i IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "Zajrzyj do \"%s\" po szczegóły." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "Uważaj z użyciem tej listy akcji:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" "Wyłącz Tryb Bezpieczny w menu Narzędzia, jesli ufasz tej liście zadań." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "Nigdy nie uruchamiaj akcji z niezaufanych źródeł." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "Sprawdź proszę czy ta lista akcji nie zawiera szkodliwego kodu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "\"%s\" nie jest poprawną ścieżką." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Akcja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "Akcje geek'a nie są dozwole w trybie bezpiecznym." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Nic do zrobienia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Lista zadań do wykonania jest pusta." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Nie jest włączona żadna akcja." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Trwa sprawdzanie obrazów" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch nie jest w stanie obrobić %d obraz(ów)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Nieprawidłowe obrazy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Niestety, nie znaleziono ważnych plików" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Nie wybrano żadnych plików ani katalogu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Nie można otworzyć pliku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Nie można wykonać akcji %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Nie można wykonać akcji %(a)s na obrazie %(i)s' w katalogu:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Wykonuję listę akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Jeden obraz przerobiony w %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "%(amount)d zdjęć przerobiono w %(duration)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Zarejestrowano jeden błąd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "Zarejestrowano %d błędy." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Zaznacz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "Niemożliwą zmiana etykiety." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "Niemożliwym usunięcie znacznika <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "Niemożliwą zmiana nazwy znacznika <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "Niemożliwym zapisanie znacznika <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "dzień" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "nazwa katalogu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "nazwa pliku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "rozmiar pliku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "katalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "godzina" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minuta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "miesiąc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "nazwa miesiąca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "ścieżka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "użytkownik główny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "sekunda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "podkatalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "typ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "dzień tygodnia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "nazwa dnia tygodnia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "rok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "kompresja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "wysokość" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "tryb" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "szerokość" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "rozmiar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Użyj Inspektora Obrazu by wyświetlić wszystkie zmienne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Możesz tylko użyć plików z następującymi rozszerzeniami" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "lewo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "środek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "prawo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "góra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "środek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "dół" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Jednokolorowy (1 bit na piksel, czarno-biały)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "RGB (3x8-bit pixels, true color)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8 bitów na piksel, RGB z maską przezroczystości)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "CMYK (4x8-bit pixels, separacja kolorów)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "P (8-bit pixels, zamapowano używając palety kolorów)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "rozmycie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "kontur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "wzmacnianie krawędzi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "mocniejsze wzmacnianie krawędzi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "płaskorzeźba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "wykrywanie krawędzi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "wygładzanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "mocniejsze wygładzanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "wyostrzanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "najbliższy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "dwuliniowe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "wygładzanie krawędzi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Obrót o 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Obrót o 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Obrót o 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Odbij poziomo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Odbij pionowo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normalny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "żaden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "ciąg znaków" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "liczba całkowita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "dodatnia liczba całkowita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "dodatnia liczba całkowita, nierówna zeru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "rozdzielczość" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "liczba rzeczywista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "wartość logiczna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "wybór" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "rozszerzenie \"%s\" nie jest prawidłowe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Brak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Polecenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Błąd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Uwaga: python-wxversion nie jest zainstalowana\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Proszę zainstaluj to lub przeinstaluj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Proszę zakualizuj wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Błąd wersji wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "P&odziękowania" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licencja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Zamknij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "O programie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Podziękowania" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dokumentacja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Tłumaczenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Szata graficzna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Biblioteki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Sponsorzy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licencja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "Znacznik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Wartość" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "ostrzeżenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Obrazy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Wszystkie pliki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Wybierz obraz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Wpisz adres obrazu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "proszę zainstaluj pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "nie znaleziono znaczników %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Dodaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "dziesiętne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "nie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "tak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Zaznaczenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Czcionki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Cień" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filtr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Dodaje rozmyty cień pod obrazkiem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Obramowanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Rozmycie cienia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Kolor tła" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Kolor cienia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "Wymuś kolor tła" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Tło" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "Automatyczne przycięcie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "wtyczka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Efekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Rozmycie, Wyostrzenie, Płaskorzeźba, Wygładzanie..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filtr" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Powtórz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Ilość" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "przekształć" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Odsunięcie zależne od dystansu i zasięgu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Obszar roboczy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Przytnij lub poszerz obszar roboczy bez skalowania" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Dopasuj w pionie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Dopasuj w poziomie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Kolor jako kanał alfa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "kolor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Dodaje przezroczystość do koloru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "Wybierz Kolor Za Pomocą" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "Wartość Koloru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Znak wodny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Zastosuj z kafelkowaniem, zmianą rozmiaru i przezroczystością" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Blaknięcie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Wygaś kolory ku odcieniom szarości" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Powiększ lub zmniejsz obraz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Zachowaj proporcje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Zresampluj obraz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "Tylko skalowanie w dół" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Zamień" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Przerzuć lub obróć o 90 stopni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Kolumny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Rzędy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "Obie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Pionowa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "Odbicie lustrzane" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Kierunek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Zmień nazwę" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "plik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "Zmień nazwę oryginalnego obrazu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Krzyż" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Zaokrąglone" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Kwadratowy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Zaokrąglone" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Zaokrąglone lub skrzyżowane rogi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Promień" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "Ta sama Metoda dla Wszystkich Narożników" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Lewy górny róg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Prawy górny róg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Lewy dolny róg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Prawy dolny róg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Podświetlenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Dodaje kolor do przeźroczystego tła obrazu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Wypełnienie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Tryb konwersji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Konwertuj tryb koloru obrazu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Dopasuj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Zmniejsz i przytnij obraz ze stałymi proporcjami" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Spady" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Automatyczna regulacja kontrastu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maksymalizuj kontrast obrazu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Odcięcie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Zapisz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "Zapisz i zamień na inne typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "Zoptymalizuj PNG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "Jakość JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "Maksymalny Rozmiar pliku JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "Tolerancja rozmiaru pliku JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "Kompresjia TIFF" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Metadane" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Mediana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Kopiuje medianę wartości pikseli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "Zmiana czasu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "metadane" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "Zmiana wrtości czasu znaczników" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "Zmień" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Sekundy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Minuty" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Godziny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Dni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Miesiące" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Lata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Maska" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Zastosuj maskę przezroczystości" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Zresampluj maskę" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Tekst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Napisz tekst w podanym miejscu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Czcionka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Rozmiar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Koloruj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Koloruj obraz w odcieniach szarości" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Czarny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Biały" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopiuj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "Skopiuj oryginalne zdjęcie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posteryzacja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "Zredukuj liczbę bitów na kanał" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bity" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Zapisz znacznik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "Zapisz nową wartość do znacznika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Znacznik (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "Równo dla każdej strony" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "Odmiennie dla każdej ze stron" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "Szerokość obramowania" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Ranga" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Kopiuje wartości pikseli z rangą" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solaryzacja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Odwróć wartości wszystkich pikseli powyżej progu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Próg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Wyrównaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Wyrównaj histogram obrazu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Przytnij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Obróć" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "Odwróć" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Odcienie szarości" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Przekształcenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Kąt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Pokaż zaawansowane opcje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "Uaktualnij plik JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Komentarze" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Przekształcenie " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Kąt " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Kierunek " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "Narzędzie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Przytnij obraz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Obróć o przypadkowy kąt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Rozszerzanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Przezroczystość tła" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Odwróć" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Odwróć kolory obrazka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Znacznik geograficzny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "Dane GPS (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "Podsumowanie GPS (csv)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "Zmiana czasu (sekundy)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Odbicie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Rzuca odbicie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Głębia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Luka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Częste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Kopiuje najczęstsze wartości pikseli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Kopiuje minimalną wartość piksela" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Kontur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Rysuje kontur dookoła krawędzi obrazka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Kolor konturu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Kolor Wypełnienia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "Dołącz obraz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "Lewy Górny Narożnik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "Prawy Górny Narożnik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "Lewy Dolny Narożnik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "Prawy Dolny Narożnik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "Użytkownik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspektywa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Odkształć w 2d lub 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Kąt odkształcenia w lewo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Kąt odkształcenia w prawo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Kąt dolnego odkształcenia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Prawy współczynnik odkształcenia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Dopasuj z szarości do czerni i bieli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Jeden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Usuń znaczniki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Usuń znaczniki Exif lub Iptc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maksimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Kopiuje maksymalną wartość pikseli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Nasycenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Dopasuj nasycenie z szarości do wysokich wartości" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Zmień nazwę znacznika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "Zmień nazwę znacznika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "Z (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "Do (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Jasność" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Dopasuj jasność od czerni do bieli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "Krawędź 3D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "Rozmycie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "Wypunktowanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "Malowanie węglem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "Rozmycie \"w ruchu\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Szkic ołówkiem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "Rysowanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "Wyostrzenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "Antywyostrzenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "Fala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "Rozmycie, Polaroid, Cień, Antywyostrzenie..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Kolor obramowania" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "Podpis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "Promień rozmycia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "Przekształć na skalę szarości za pomocą ołówka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "Maniak komputerowy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "Wykonaj polecenie zewnętrzne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "The rozszerzenia zostały poprawnie zainstalowane:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatchowi nie udało się zainstalować wybranych funkcji." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch próbował odinstalować się z Eksploratora Windows." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "Musisz zainstalować rozszerzenia Python Win32 by uruchomić tą funkcję." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Lista akcji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Nie ma przygotowanej listy akcji." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Ścieżki obrazu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Czy chcesz kontynuować?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Co chcesz teraz zrobić?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Gdy uruchomisz %s ponownie, akcja pojawi się w menu kontekstowym." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch nie mógł zainstalować akcji w %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Wymagany jest także zainstalowany dodatek python-nautilus." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Uruchom process wsadowy z Phatchem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Przetwórz obrazy z ostatnią listą akcji Phatcha" #~ msgid "new" #~ msgstr "nowy" #~ msgid "doesn't exist" #~ msgstr "nie istnieje" #~ msgid "for integer" #~ msgstr "jako liczba całkowita" #~ msgid "Do not create missing folders" #~ msgstr "Nie twórz brakujących katalogów" #~ msgid "Colour" #~ msgstr "Kolor" #~ msgid "Filename" #~ msgstr "Nazwa pliku" #~ msgid "colours" #~ msgstr "kolory" #~ msgid "Width" #~ msgstr "Szerokość" #~ msgid "Height" #~ msgstr "Wysokość" #~ msgid "Background Colour" #~ msgstr "Kolor tła" #~ msgid "january" #~ msgstr "styczeń" #~ msgid "february" #~ msgstr "luty" #~ msgid "march" #~ msgstr "marzec" #~ msgid "april" #~ msgstr "kwiecień" #~ msgid "may" #~ msgstr "maj" #~ msgid "june" #~ msgstr "czerwiec" #~ msgid "july" #~ msgstr "lipiec" #~ msgid "august" #~ msgstr "sierpień" #~ msgid "september" #~ msgstr "wrzesień" #~ msgid "october" #~ msgstr "październik" #~ msgid "november" #~ msgstr "listopad" #~ msgid "december" #~ msgstr "grudzień" #~ msgid "monday" #~ msgstr "poniedziałek" #~ msgid "tuesday" #~ msgstr "wtorek" #~ msgid "wednesday" #~ msgstr "środa" #~ msgid "thursday" #~ msgstr "czwartek" #~ msgid "friday" #~ msgstr "piątek" #~ msgid "saturday" #~ msgstr "sobota" #~ msgid "sunday" #~ msgstr "niedziela" #~ msgid "the file extension" #~ msgstr "rozszerzenie pliku" #~ msgid "does not exist." #~ msgstr "nie istnieje." #~ msgid "drag & drop any image here" #~ msgstr "przeciągnij i upuść tutaj obraz" #~ msgid "&Preview" #~ msgstr "&Podgląd" #~ msgid "Open image file" #~ msgstr "Otwórz plik obrazu" #~ msgid "Open image url" #~ msgstr "Otwórz plik z adresu" #~ msgid "&Ignore Error" #~ msgstr "&Ignoruj błędy" #~ msgid "&File" #~ msgstr "&Plik" #~ msgid "border" #~ msgstr "obramowanie" #~ msgid "Shadow Colour" #~ msgstr "Kolor cienia" #~ msgid "Force Background Colour" #~ msgstr "Wymuś kolor tła" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Zmniejsz ilość bitów w kanale koloru" #~ msgid "Rename the image file" #~ msgstr "Zmień nazwę pliku obrazu" #~ msgid "Scale down only" #~ msgstr "Zeskaluj tylko w dół" #~ msgid "the integer value" #~ msgstr "wartość całkowita" #~ msgid "All selected image types" #~ msgstr "Wszystkie wybrane typy obrazów" #~ msgid "&Recent" #~ msgstr "&Ostatnie" #~ msgid "Copy cell text" #~ msgstr "Kopiuj komórkę tekstu" #~ msgid "Phatch Version" #~ msgstr "Wersja Phatcha" #~ msgid "&Skip To Next Image" #~ msgstr "&Skocz do następnego obrazu" #~ msgid "Put colour under transparent image" #~ msgstr "Dodaj kolor pod przezroczysty obraz" #~ msgid "&Export..." #~ msgstr "&Eksportuj..." #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch nie mógł stworzyć interfejsu:" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Zapisz metadane (wymaga wtyczki exif & iptc)" #~ msgid "Fade all colours to gray" #~ msgstr "Konwertuj na odcienie szarości" #~ msgid "Crop or add border to all sides" #~ msgstr "Przytnij lub dodaj ramkę ze wszystkich stron" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "&Inspektor Obrazu (exif)\tCtrl-Space" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Strona internetowa...\tCtrl-I" #~ msgid "the filename" #~ msgstr "nazwa pliku" #~ msgid "Resample Shadow" #~ msgstr "Zresampluj cień" #~ msgid "By offset" #~ msgstr "Według przesunięcia" #~ msgid "invalid syntax" #~ msgstr "nieprawidłowa składnia" #~ msgid "the variable" #~ msgstr "zmienna" #~ msgid "the float value" #~ msgstr "wartość rzeczywista" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Ta lista akcji była stworzona za pomocą starszej wersji %(name)s\n" #~ "\n" #~ msgid "Only an image file is allowed." #~ msgstr "Dozwolony jest tylko plik z obrazem." #~ msgid "Open a python shell for introspection" #~ msgstr "Otwórz powłokę pythona do testowania" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Powłoka Pythona...\tCtrl-P" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Napisz wtyczkę akcji dla Patcha używając PIL:" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "Napisz wtyczkę akcji...\tCtrl-W" #~ msgid "Copy the image file" #~ msgstr "Kopiuj plik obrazka" #~ msgid "Save an image" #~ msgstr "Zapisz obraz" #~ msgid "watermark" #~ msgstr "znak wodny" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Skala szarości (8 bitów na piksel, czarno-biały)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8 bitów na piksel, mapowane z użyciem palety kolorów)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32 bitowe piksele zmiennoprzecinkowe)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32 bitowe całkowite piksele)" #~ msgid "invalid literal" #~ msgstr "nieprawidłowy literał" #~ msgid "for float" #~ msgstr "dla liczby rzeczywistej" #~ msgid "for boolean" #~ msgstr "dla wartości logicznej" #~ msgid "is zero, but should be non-zero." #~ msgstr "jest zero, a powinno być różne od zera" #~ msgid "is negative, but should be positive" #~ msgstr "jest ujemne, a powinna być dodatnie" #~ msgid "a filename with a valid extension was expected." #~ msgstr "był oczekiwany plik z prawidłowym rozszerzeniem" #~ msgid "is invalid." #~ msgstr "jest nieprawidłowe." #~ msgid "Save metadata" #~ msgstr "Zapisz metadane" #~ msgid "All default image types" #~ msgstr "Wszystkie domyślne typy obrazów" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Aby zobaczyć więcej szczegółów wybierz Narzędzia>Pokaż dziennik" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "" #~ "Komenda interfejsu dla tej listy akcji została skopiowana do schowka." #~ msgid "please email" #~ msgstr "proszę napisz e-mail" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "Phatch wygeneruje interfejs użytkownika automatycznie." #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "Wsadowy Procesor Obrazu i Zmiany nazwy" #~ msgid "Create missing folders" #~ msgstr "Stwórz brakujące katalogi" #~ msgid "&Default Types" #~ msgstr "&Domyślne typy" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8 bitów na piksel, rozdzielenie koloru)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8 bitów na piksel, 'true colour')" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8 bitów na piksel, format kolorów video)" phatch-0.2.7/locale/pt/0000755000000000000000000000000011346363116014613 5ustar rootroot00000000000000phatch-0.2.7/locale/pt/LC_MESSAGES/0000755000000000000000000000000011346363116016400 5ustar rootroot00000000000000phatch-0.2.7/locale/pt/LC_MESSAGES/phatch.mo0000644000000000000000000005057011346363116020213 0ustar rootroot00000000000000r < .3 BPW_f  , 2 ; G K [ h w     3 !$! +! 8!D! H!!V!(x!!!! ! !!!!" "&"."1" 8" F"Q"b" u""""""" "" """##&#-#<#L#j#z#!####### $" $0$"O$r$w$$$$$$ $ $$,$ %$% =%K%(P% y%% %%%%%%%%%&&&$& )&3&;&B&F&L&S&X&^&e&i&&& & &&&.& '%'+'2'5'L'.i'''' ' '''''(/(7(<(A( G(Q(Y( ](~(((((((((((((*())4)P)i)))))))))))* ** 6*W* \*8h*(*;*7+>+U+s+|+1+++ ++++, ,',B,K, Z,e, l, w, ,,,,,', ,,- -%-<-Q-f-~--- -- - -- --'-#. <.$J.o.t.{..>..1./!/(/@/P/W/t/{///3/A/,050':0b0r0)0 00000000213181@1 P1(\1,1 1 111124 2?B2A27223 3 3!3)32373?3F3Z3a3h3333333 3333333 333 4444 4'4.464;4B4I4N4 T4^4f4i4n444 44444444 444 455 5 5 5&5+5B5G5K566 7'7 <7I7 O7Y7`7|777777778)8;8 B8 L8Y8]8 n8{8888 88899 9G9M9U9h9 z99'9199 :":':::M:U:"]:::::::: ::$;-;2;8;A;J;b;y;; ; ;;;; ;;;. <9<O<!o<<<$<<< <<#=%=!D=f= m=w=|== =#= = ==)=">3>E>T>'[>>>>> >>>>>>?9?B? H?R?[? l?x???? ?? ? ?"??@1@ E@P@h@+n@ @@@@@!@5@2AIAYAjA |AAA)AAAAAB BBB&BCBJBPBYBwBBBBBBBB B0BBBC$2C*WCCCCCC C CCCDD (D!5DWDwD D:D"D1DKEgE"E EE=EFF F F(FGFgFpFxF FF FF F FFFG GG+3G _GkGsGzG G"GGGHH &H2HFH dHoHxH HH*H(HH*IBIJI \I2fIJII-IJ(J"1JTJdJ kJJJJJ0J@K EK RK5]KKK%K KK K LL#LLg'It ,N3 S`_ 80!KE|<C>WT6l0 GQ#7.\ ?(^JOf ?Yh849dXh6F<[S u[e;HbxlKZ)/TM"'gP&Abort&About Phatch... Ctrl-Shift-A&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&License&New Ctrl-N&OK&Open... Ctrl-O&Quit Ctrl-Q&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Show Description Ctrl-H&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&ViewA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd an actionAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAmountAngleApply a transparency maskApply for future errors AprilArtworkAsAugustAuto ContrastBackgroundBackground ColorBackground OpacityBatch process images with PhatchBitsBlackBooleanBorderBottom Left CornerBottom Right CornerBrightnessBrowseC&ontinueC&reditsCanvasCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletCodeColorizeColorize grayscale imageCommonConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the minimum pixel valueCopies the most common pixel valueCopyCreditsCrossDaysDecemberDepthDescribe here the action list.DescriptionDirectionDisable actionDisplays information about this application.Do not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrag & DropEffectEnable actionEnter an image urlEqualizeErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFalseFebruaryFileFile NameFile(s)FilterFitFloatFolderFontFontsFridayGapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHorizontalHorizontal OffsetHoursIf you want to contribute a plugin for Phatch,Ignore errorsImageImagesInInclude all subfoldersInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJanuaryJulyJuneLabelLibrariesLicenseLogMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMayMedianMessageMethodMinimumMinutesModeMondayMonochrome (1-bit pixels, black and white)MonthsMove the selected action downMove the selected action upNo action list provided.No files or folder selected.NormalNothing has been logged yet.Nothing to do.NovemberOctoberOffsetOpacityOpenOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesPaste this command in a launcherPathPerspectivePhatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Please (re)install it.Please upgrade your wxPython.PositionQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove the selected actionRemove the selected action.RenameRepeatReport a bug on launchpad.ResampleResample ImageResolutionRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRun %s as a gui dropletRun %s as console program without a guiSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save last changes toSaves an action listSaves an action list asScaleSecondsSelectSelect ObjectSelect action listSelectionSeptemberShadowShadow ColorShow &Log... Ctrl-LShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSliderSolarizeSorry, no valid files foundSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:SundayTextThe action list is empty.There is no action enabled.These extensions have been succesfully installed: This requires also that the python-nautilus package is installed.ThursdayTileTools to handle the current action listTop Left CornerTop Right CornerTranslate Phatch in your native language.TranslationTresholdTrueTuesdayTypesUnable to open fileUnsaved Action ListUpUse the Image Inspector to list all the variables.UserVerboseVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWednesdayWhat do you want to do now?WhiteWrite text at a given positionYearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscontourdaydecimaldefaultdetaildpiedge enhanceedge enhance morefalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerleftmiddleminutemodemonthmonthnamenearestnopathplease install pyexiv2positive integerpositive, non-zero integerresolutionrightrootsecondsizeskipsmoothstringsubfoldertagtoptransformtruetypeweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-11-12 00:06+0000 Last-Translator: VCarvalho Language-Team: Portuguese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) &Abortar&Sobre Phatch... Ctrl-Shift-A&Adicionar&Adicionar... Ctrl-+&Pedir ajuda&Lote&CancelarFechar&Colapsar Tudo Ctrl-Shift-E&Continuar na mesma&Desabilitar Ctrl-0&Documentação... Ctrl-M&Descer Ctrl-Down&Droplet Ctrl-D&Editar&Habilitar Ctrl-1&Executar... Ctrl-Return&Expandir Tudo Ctrl-E&Fórum... Ctrl-FA&juda&Licença&Novo Ctrl-N&OK&Abrir... Ctrl-O&Sair Ctrl-Q&Remover Ctrl--Reportar um &Bug... Ctrl-B&Gravar Ctrl-S&Mostrar Descrição Ctrl-HFerramen&tas&Traduzir Phatch... Ctrl-TS&ubir Ctrl-Up&VerUm tutorial HTML será aberto no seu browser da Internet.SobreAcçãoListas de acçõesLista de AcçõesAdicionarAdicionar uma acçãoAjustar de cinzento para preto & brancoAjustar saturação de escala de cinzas para cimaAlinhar HorizontalmenteAlinhar VerticalmenteTudoTodos os FicheirosTodos os FicheirosQuantiaÂnguloAplicar máscara de transparênciaApply for future errors AbrilParte artísticaComoAgostoContraste AutomáticoFundoCor de FundoOpacidade do Plano de Fundoprocessar lote de imagens com PhatchBitsPretoBooleanoContornoCanto Inferior EsquerdoCanto Inferior DireitoBrilhoExplorarC&ontinuarC&réditosTelaVerificar imagens primeiroA verificar imagensSelecçãoSeleccione ficheiro(s)Seleccione uma pastaSeleccione un Ficheiro de Lista de Acções...Seleccione uma imagemSeleccione uma pasta de imagensSeleccione a pasta para o dropletCódigoColorirColorir imagem de escala de cinzentoComumRestringir proporçõesContrasteModo de conversãoConvertir o modo de cor duma imagenCopia o mínimo valor do pixelCopia o valor do pixel mais comumCopiarCréditosCruzDiasDezembroProfundidadeDescreva aquí a lista de acções.DescriçãoDirecçãoDesabilitar acçãoMostrar informações sobre este programaNão verificar primeiro as imagensDeseja continuar?DocumentaçãoDescerReduzir e cortar imagen com rácio fixoArrastar e LargarEfeitoHabilitar acçãoIntroduza o URL de uma imagemEqualizarErroExemplosExecutarExecutar a acçaoExecutar a lista de acçõesA executar lista de acçõesExpandirFalsoFevereiroFicheiroNome do FicheiroFicheiro(s)FiltrarAjustarNúmero FlutuantePastaTipo de LetraTipos de LetraSexta-feiraEspaçamentoIr para a documentação de PhatchIr para o Fórum de PhatchIr para a homepage de PhatchEscala de cinzentosHorizontalDeslocamento horizontalHorasSe quiser contribuir um plugin para Phatch,Ignorar errosImagemImagensDentroIncluir todas as sub-pastasInspeccionar tags EXIF & IPTCInspeccionar metadata (requeridos exif & plugin iptc)Inspeccione com PhatchNúmero inteiroNúmero inteiro+Número inteiro+0Interactivoimagens inválidasInverterInverter todos os pixeis encima do limiteInverter as cores duma imagemJaneiroJulhoJunhoEtiquetaBibliotecasLicençaRegistoFazer maior o menor a imagemMarçoMarcaMáscaraMaximizar contraste da imagemMáximoMaioMedianaMensagemMétodoMínimoMinutosModoSegunda-feiraMonocromático (pixels de 1-bit, preto e branco)MesesDescer a acção seleccionadaSubir a acção seleccionadaNenhuma lista de acções fornecida.Não ha ficheiros nem pastas seleccionadosNormalNada foi registrado ainda.Nada para ser feito.NovembroOutubroDeslocamentoOpacidadeAbrirAbrir uma lista de acçõesAbrir uma lista de acçõesOpçõesOrientaçãoSobre-escrever imagens existentesColar este comando no lançadorCaminhoPerspectivaPhatch não teve sucesso ao instalar o recurso solicitado.Phatch criou com sucesso o dropletPhatch tentou desinstalar-se do Windows Explorer.Phatch vai adicionar um para você, por favor verifique as configurações.Por favor, (re) instalá-lo.Por favor, Actualize seu wxPython.PosiçãoSair do programa.RGBA (pixels de 4x8 bits, RGB com máscara de transparência)RaioClassificaçãoReflexãoRemoverRemover a acção seleccionadaRemover a acção seleccionada.RenomearRepetirReportar um Bug nom LauchpadReamostragemReamostragem da ImagemResoluçãoRodarRodar 180Rodar 270Rodar 90Rodar com ângulo aleatórioRondaArredondadoCorrer %s como um "droplet"Correr %s como programa de consola, sem GUISaturaçãoSábadoGravarGravar &Como... Ctrl-Shift-SGravar Lista de Acções Como...Gravar as últimas alterações emGravar uma lista de acçõesGravar lista de acções comoEscalaSegundosSeleccionarSeleccionar ObjectoSeleccionar lista de acçõesSelecçãoSetembroSombraCor da sombraMostrar Registo... Ctrl-LMostrar todos os parâmetros das acções.Mostrar descrição da lista de acçõesMostrar ficheiro de registoMostrar somente as etiquetas das acções.TamanhoBotão DeslizanteEnsolararLamento, não foram encontrados ficheiros válidosDesculpe, mas e preciso instalar a acção %s para esta lista de acções.OrigemIndicar linguagem local (Exemplo pt ou pt_PT)PatrocinadoresQuadradoIniciar uma nova lista de acçõesParar por errosCadeiaEstude os plugin de acções em:DomingoTextoA lista de acções está vaziaNemhuma acção activadaEstas extensões foram instaladas com sucesso: Isso requer que o pacote python-nautilus também seja instalado.Quinta-feiraEm mosaicoFerramentas para lidar com a lista de acções actualCanto Superior EsquerdoCanto Superior DireitoTraduzir Phatch em seu idioma nativo.TraduçãoLimiteVerdadeiroTerça-feiraTiposNão foi possível abrir o ficheiroLista de acções sem gravarSubirUsar o Inspector de Imagens para listar todas as variáveis.UtilizadorDescritivoDeslocamento verticalVer Código FonteVista como droplet para arrastar e soltar ficheirosAviso: python-wxversion não está instalado. Marca de ÁguaQuarta-feiraO que quer fazer agora?BrancoEscrever texto na posição dadaAnosSó pode utilizar ficheiros com as seguintes extensõesPode colá-lo como texto nas propriedades de um novo lançador.é preciso instalar as Extensões Win32 de Python para esse recurso.Só precisa saber PIL para escrever um plugin para Phatch,abortaracçõesaplicaçãofundobi-cúbicobilinearborrãobooleanoInferiorampliar sua pesquisaCentroescolhaclique '+' para adicionar acçõesconarnarDiadecimalpré-definidodetalhepppreforçar bordareforçar borda maisfalsoficheiroNome de FicheiroTamanho do ficheirofiltrarlocalizar bordasflutuantepastanome da pastamolduraalturaHoraignorarimagensinteiroEsquerdaMeioMinutomodoMêsNome do Mêsmais próximonãocaminhofavor instalar pyexiv2inteiro positivointeiro positivo, diferente de zeroresoluçãoDireitaraizSegundotamanhopassar à frentesuavizarcadeiasubpastatagTopotransformarverdadeirotipoDia da semanaNome do dia da semanalarguracomErro na versão de wxPythonAnosimphatch-0.2.7/locale/pt/LC_MESSAGES/phatch.po0000644000000000000000000033451011346363116020215 0ustar rootroot00000000000000# Portuguese translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-11-12 00:06+0000\n" "Last-Translator: VCarvalho \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Inspeccione com Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Exemplos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Correr %s como programa de consola, sem GUI" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Correr %s como um \"droplet\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignorar erros" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interactivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Indicar linguagem local (Exemplo pt ou pt_PT)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Inspeccionar metadata (requeridos exif & plugin iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Incluir todas as sub-pastas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Não verificar primeiro as imagens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Descritivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "Pode colá-lo como texto nas propriedades de um novo lançador." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" "Desculpe, mas e preciso instalar a acção %s para esta lista de acções." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Nada foi registrado ainda." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Registo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "abortar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "passar à frente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignorar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "clique '+' para adicionar acções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Abrir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Abrir uma lista de acções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Executar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Executar a acçao" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Adicionar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Adicionar uma acção" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Remover" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Remover a acção seleccionada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Subir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Subir a acção seleccionada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Descer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Descer a acção seleccionada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Descrição" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Mostrar descrição da lista de acções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Seleccione un Ficheiro de Lista de Acções..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Gravar Lista de Acções Como..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "aplicação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "moldura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "acções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Um tutorial HTML será aberto no seu browser da Internet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Estude os plugin de acções em:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Se quiser contribuir um plugin para Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Arrastar e Largar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" "Phatch vai adicionar um para você, por favor verifique as configurações." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Gravar as últimas alterações em" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Seleccione a pasta para o droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch criou com sucesso o droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Seleccionar lista de acções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Seleccione uma pasta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Seleccione ficheiro(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Seleccione uma pasta de imagens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "imagens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Explorar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Ficheiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Pasta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "pré-definido" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Ver Código Fonte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "ampliar sua pesquisa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Caminho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Novo\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Iniciar uma nova lista de acções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Abrir...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Abrir uma lista de acções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Gravar\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Gravar uma lista de acções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Gravar &Como...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Gravar lista de acções como" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Colar este comando no lançador" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Sair\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Sair do programa." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Adicionar...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Remover\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Remover a acção seleccionada." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Habilitar\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Habilitar acção" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Desabilitar\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Desabilitar acção" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "S&ubir\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Descer\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Editar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Droplet\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Vista como droplet para arrastar e soltar ficheiros" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Mostrar Descrição\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Ferramentas para lidar com a lista de acções actual" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Expandir Tudo\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Mostrar todos os parâmetros das acções." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Colapsar Tudo\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Mostrar somente as etiquetas das acções." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Ver" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Executar...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Executar a lista de acções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Mostrar Registo...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Mostrar ficheiro de registo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "Ferramen&tas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Ir para a homepage de Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Documentação...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Ir para a documentação de Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Fórum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Ir para o Fórum de Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Traduzir Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Traduzir Phatch em seu idioma nativo." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "Reportar um &Bug...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Reportar um Bug nom Lauchpad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&Sobre Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Mostrar informações sobre este programa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "A&juda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Só precisa saber PIL para escrever um plugin para Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Código" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Pedir ajuda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Apply for future errors " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Abortar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Mensagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Continuar na mesma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Opções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Tipos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Origem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Ficheiro(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Parar por erros" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Verificar imagens primeiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Sobre-escrever imagens existentes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Cancelar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Lote" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Booleano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Cadeia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Selecção" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Resolução" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Nome do Ficheiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "Dentro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Número Flutuante" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Como" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Modo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Reamostragem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bi-cúbico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Número inteiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Número inteiro+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Número inteiro+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Botão Deslizante" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Janeiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Fevereiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Março" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "Abril" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Maio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Junho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Julho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "Agosto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Setembro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Outubro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "Novembro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "Dezembro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Segunda-feira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Terça-feira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Quarta-feira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Quinta-feira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Sexta-feira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Sábado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Domingo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "fundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Tudo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Seleccionar Objecto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Posição" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Deslocamento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Deslocamento horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Deslocamento vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Em mosaico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Escala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Marca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Opacidade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Método" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Verdadeiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Falso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "verdadeiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "falso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Lista de acções sem gravar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Listas de acções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Todos os Ficheiros" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Descreva aquí a lista de acções." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "com" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Inspeccionar tags EXIF & IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Acção" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Nada para ser feito." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "A lista de acções está vazia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Nemhuma acção activada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "A verificar imagens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "imagens inválidas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Lamento, não foram encontrados ficheiros válidos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "C&ontinuar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Não ha ficheiros nem pastas seleccionados" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Não foi possível abrir o ficheiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "A executar lista de acções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Seleccionar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "Dia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "nome da pasta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "Nome de Ficheiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "Tamanho do ficheiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "pasta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "Hora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "Minuto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "Mês" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "Nome do Mês" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "caminho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "raiz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "Segundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "subpasta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "tipo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "Dia da semana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "Nome do dia da semana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "Ano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "ppp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "altura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "modo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "largura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "tamanho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Usar o Inspector de Imagens para listar todas as variáveis." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Só pode utilizar ficheiros com as seguintes extensões" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "Esquerda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "Centro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "Direita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "Topo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "Meio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "Inferior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monocromático (pixels de 1-bit, preto e branco)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (pixels de 4x8 bits, RGB com máscara de transparência)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "borrão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "conarnar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detalhe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "reforçar borda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "reforçar borda mais" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "localizar bordas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "suavizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "mais próximo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilinear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Rodar 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Rodar 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Rodar 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "cadeia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "inteiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "inteiro positivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "inteiro positivo, diferente de zero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "resolução" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "flutuante" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "booleano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "escolha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Erro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Aviso: python-wxversion não está instalado.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Por favor, (re) instalá-lo." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Por favor, Actualize seu wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Erro na versão de wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "C&réditos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licença" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "Fechar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Sobre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Créditos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Documentação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Tradução" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Parte artística" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Bibliotecas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Patrocinadores" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licença" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Imagens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Todos os Ficheiros" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Seleccione uma imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Introduza o URL de uma imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "favor instalar pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Adicionar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "não" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "sim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Selecção" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Tipos de Letra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Sombra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filtrar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Contorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Cor de Fundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Cor da sombra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Fundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Efeito" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filtrar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Repetir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Quantia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transformar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Tela" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Alinhar Horizontalmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Alinhar Verticalmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Marca de Água" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Fazer maior o menor a imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Restringir proporções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Reamostragem da Imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Direcção" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Renomear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "ficheiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Cruz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Arredondado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Quadrado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Ronda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Raio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Canto Superior Esquerdo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Canto Superior Direito" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Canto Inferior Esquerdo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Canto Inferior Direito" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Modo de conversão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Convertir o modo de cor duma imagen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Ajustar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Reduzir e cortar imagen com rácio fixo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Contraste Automático" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maximizar contraste da imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Gravar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Mediana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Segundos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Minutos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Horas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Dias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Meses" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Anos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Máscara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Aplicar máscara de transparência" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Texto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Escrever texto na posição dada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Tipo de Letra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Tamanho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Colorir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Colorir imagem de escala de cinzento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Preto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Branco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Copiar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Classificação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Ensolarar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Inverter todos os pixeis encima do limite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Limite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Equalizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Rodar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Escala de cinzentos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Ângulo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Rodar com ângulo aleatório" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Expandir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Opacidade do Plano de Fundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Inverter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Inverter as cores duma imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Reflexão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Profundidade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Espaçamento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Comum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Copia o valor do pixel mais comum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Mínimo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Copia o mínimo valor do pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "Utilizador" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspectiva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Contraste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Ajustar de cinzento para preto & branco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Máximo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Saturação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Ajustar saturação de escala de cinzas para cima" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Brilho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Estas extensões foram instaladas com sucesso:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch não teve sucesso ao instalar o recurso solicitado." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch tentou desinstalar-se do Windows Explorer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "é preciso instalar as Extensões Win32 de Python para esse recurso." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Lista de Acções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Nenhuma lista de acções fornecida." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Deseja continuar?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "O que quer fazer agora?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Isso requer que o pacote python-nautilus também seja instalado." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "processar lote de imagens com Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "Do not create missing folders" #~ msgstr "Não criar pastas em falta" #~ msgid "Colour" #~ msgstr "Cor" #~ msgid "Filename" #~ msgstr "Nome de Ficheiro" #~ msgid "colours" #~ msgstr "cores" #~ msgid "border" #~ msgstr "contorno" #~ msgid "Height" #~ msgstr "Altura" #~ msgid "Width" #~ msgstr "Largura" #~ msgid "Force Background Colour" #~ msgstr "Forçar cor do fundo" #~ msgid "Shadow Colour" #~ msgstr "Cor da sombra" #~ msgid "Background Colour" #~ msgstr "Cor de fundo" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Reduzir número de bits do canal de cores" #~ msgid "Copy the image file" #~ msgstr "Copiar o ficheiro da imagem" #~ msgid "Scale down only" #~ msgstr "Reducir escala somente" #~ msgid "Put colour under transparent image" #~ msgstr "Pôr cor debaixo de imagem transparente" #~ msgid "Rename the image file" #~ msgstr "Renomear o ficheiro de imagem" #~ msgid "Save an image" #~ msgstr "Gravar uma imagem" #~ msgid "watermark" #~ msgstr "Marca de água" #~ msgid "april" #~ msgstr "Abril" #~ msgid "february" #~ msgstr "Fevereiro" #~ msgid "january" #~ msgstr "Janeiro" #~ msgid "march" #~ msgstr "Março" #~ msgid "may" #~ msgstr "Maio" #~ msgid "june" #~ msgstr "Junho" #~ msgid "wednesday" #~ msgstr "Quarta Feira" #~ msgid "thursday" #~ msgstr "Quinta Feira" #~ msgid "monday" #~ msgstr "Segunda Feira" #~ msgid "tuesday" #~ msgstr "Terça Feira" #~ msgid "september" #~ msgstr "Setembro" #~ msgid "october" #~ msgstr "Outubro" #~ msgid "november" #~ msgstr "Novembro" #~ msgid "december" #~ msgstr "Dezembro" #~ msgid "july" #~ msgstr "Julho" #~ msgid "august" #~ msgstr "Agosto" #~ msgid "saturday" #~ msgstr "Sábado" #~ msgid "friday" #~ msgstr "Sexta Feira" #~ msgid "sunday" #~ msgstr "Domingo" #~ msgid "new" #~ msgstr "novo" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (pixels de 3x8 bits, cor formato vídeo)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (pixels de 3x8 bits, cor verdadeira)" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Escala de cinzento (pixels de 8-bits, preto e branco)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (pixels de 8-bits, mapeados utilizando uma paleta cor)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (pixels de 4x8 bits, separação de cor)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (pixels de flutuantes de 32 bits)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (pixels de inteiros de 32-bits)" #~ msgid "doesn't exist" #~ msgstr "não existe" #~ msgid "the variable" #~ msgstr "a variável" #~ msgid "for integer" #~ msgstr "para inteiro" #~ msgid "the float value" #~ msgstr "o valor flutuante" #~ msgid "for float" #~ msgstr "para flutuante" #~ msgid "for boolean" #~ msgstr "para booleano" #~ msgid "the integer value" #~ msgstr "o valor inteiro" #~ msgid "is zero, but should be non-zero." #~ msgstr "é zero, mas deve ser diferente de zero." #~ msgid "is negative, but should be positive" #~ msgstr "e negativo, mas deve ser positivo" #~ msgid "the file extension" #~ msgstr "a extensão do ficheiro" #~ msgid "the filename" #~ msgstr "O nome do ficheiro" #~ msgid "a filename with a valid extension was expected." #~ msgstr "um ficheiro com uma extensão válida era esperado." #~ msgid "does not exist." #~ msgstr "não existe." #~ msgid "is invalid." #~ msgstr "é inválido." #~ msgid "Save metadata" #~ msgstr "Gravar metadata" #~ msgid "All selected image types" #~ msgstr "Todos os tipos de imagens seleccionados" #~ msgid "All default image types" #~ msgstr "Todos os tipos por defeito" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Veja Ferramentas>Mostrar Log para obter mais detalhes." #~ msgid "&Recent" #~ msgstr "&Recentes" #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch não conseguiu criar o droplet:" #~ msgid "Only an image file is allowed." #~ msgstr "Apenas um ficheiro de imagem é permitido." #~ msgid "drag & drop any image here" #~ msgstr "Arrastar e Largar qualquer imagem aquí" #~ msgid "Open image file" #~ msgstr "Abrir ficheiro de imagem" #~ msgid "Copy cell text" #~ msgstr "Copiar texto da célula" #~ msgid "Open image url" #~ msgstr "Abrir URL de imagem" #~ msgid "Phatch Version" #~ msgstr "Versão de Phatch" #~ msgid "&Skip To Next Image" #~ msgstr "Passar à próxima imagem" #~ msgid "&Ignore Error" #~ msgstr "&Ignorar Erro" #~ msgid "Create missing folders" #~ msgstr "Criar pastas em falta" #~ msgid "&Default Types" #~ msgstr "Tipos por &Defeito" #~ msgid "&File" #~ msgstr "&Ficheiro" #~ msgid "&Export..." #~ msgstr "&Exportar..." #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "&Inspector de Imagens (exif)\tCtrl-Space" #~ msgid "Open a python shell for introspection" #~ msgstr "Abrir uma consola python para introspecção" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Python Shell...\tCtrl-P" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Web&site...\tCtrl-I" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Escrever um novo Plugin de Acção para Phatch com PIL" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "Escrever Plugin de Acção...\tCtrl-W" phatch-0.2.7/locale/pt_BR/0000755000000000000000000000000011346363116015176 5ustar rootroot00000000000000phatch-0.2.7/locale/pt_BR/LC_MESSAGES/0000755000000000000000000000000011346363116016763 5ustar rootroot00000000000000phatch-0.2.7/locale/pt_BR/LC_MESSAGES/phatch.mo0000644000000000000000000014431611346363116020600 0ustar rootroot00000000000000'1BBB&BCB%C6C LCVC]C {CCCCCC C CCCDDD1DID ZD dD pD|DDDDDDDDE$E,E3EDEJEiEE EEE E EEEE F F F3F BFPFnFF FFF FFG G &G2G:G@GFGYG aG3lGGG G GGG G%G!H((HGQHHHH H HHHI(I@I'UI}I#IIIIIIJ&%JLJ3RJ9JJJ@J* K.7K2fKKK K K K KKK L&.LULZL`LfLnLL L LL L"L"LM M M M,M1M 8MDM WMdMxMM M M MM M M0M N N N')NQNXNhNN NN6NN O O "O/O7O>OEOeOnO~OOOOOOOO! P .P8P=P CPOP^PgPPP+PPPPP PPQQ #Q"0QSQrQQ"QQ(Q-R$.RSRkR~RRRR RRR)RS#S)S0S7S"V-QVV VVVVVVVVVW$WZ.Z [[#[ 3[ >[ J[V[)][[[:[[ [0\8\Q\.n\\\\ \ \\\'\] 4]A]S]g]o]t]&y]3]],]^ ^^'^ 6^ @^J^_^g^ k^9y^^ ^^^^__%$_J_N_U_]_f_m_t_|_____*__ ___.`C`\`(y`"``````a aa"a?aCaXa&maaaa a aa.ab2b :bFbMb.gb b bb bb bc c c"c/Bc%rc*c8c(c;%d7ad6dddd> eKe_ezeee ee&ee e! f+f Af1bffff*f ffffg2gNg Ug `gmgg g gg gggg h h )h4h:hMh]h dh oh zhh hhhhhh'ik,ii iiiii ij'jlTlllll'l#l l$lm9mLmQm Xm emsmmm m mmDm8$n#]n7n>n"no1"oTo]odo jovooooooooop(p9p(Lp&upppp(pHpH5qE~q#qHq1r+Mr3yrr:rsAs`sis nsyss'ssss sss t'tDtSt)ct t tt t ttttt"tu'u?uYusuuuuuuu u v v "v.v EvOv2avvvvv v vvvvv w(w,>w kwuw zw w www ww www*xIx4Ox?xAx7y7>y.vyyyy y yy y yyyyyzz"z3z:zAzZz `zlztzxzzzzz zzzzzzzz zzz z{{!{'{-{4{9{@{G{ O{ Y{z{ {{{{{{{{| ||||/| 4|@|E|T|k|r||| |||||||| ||} }}"} =}8^}4}:}6~>~ B~ L~Y~^~c~k~ s~~~~~~~N m*G 2=Ffx 'ځ !+3Pj 'Ђ#+:S jt|"!#ك ) A N[ _iz („! 0<Ys  ̅ ׅ  ,FLSd u %"Ȇ5]!Ç#Շ//_6{4ˈ  %"B"e60ʼn<38N=0-9% ,8G ^j y$+Nj',BUi3}*܌  +CTkʍٍ8! 2 =-Hv~ЎE*Gry%Տݏ"8)Pz"#Ԑ !?G0O  ʑݑ$'%Ek!>H;;wד'  !+12dt {*ɔ ! )5H a kcvڕ.3Ki xI ͖%ؖ):Y$#53i p~ !!;U dr({.ә ٙ !6F^t{š ݚ  %+@2s9 ›Λޛ7 D Kl  Ϝ"ݜ  &1H`Bf7   .:6ByBޞ8 F c2П؟  7Jj|-Ǡ;109js šѡ8%OuŢ*͢  %-5>E J-X #"@ߣ .9-h"Ǥ  *AD\;w !å =Wn w"2  !6X` q&}F$*D;%3Eڨ1 R`vIݩ 3 < FQ0e "ت = KPX)` Ϋ &-To ˬج "*A U ` l x!. ԭ  @3et"ڮ  4 T$`'%ӯ3Ea)z ˰ְ&B ^hqz  α6Rl ('ղ'*<g{ճ' 2&OYE*:HU9ص1޵(1B` q#|Ƕض'ܶ!2)C,m-Ƿ_[UZ$ A1"s'0%BXBq ͺܺ2 >CUm~6( A LYl u /'ּ#"A d#$Ľ !7Y_x 9ľ 2DUhq20 $3 GTt{ (4-?2>rDIG@9   "*3H\c!k  %8?O _j} $+$*#Os |   18I!h   (""EEJ:?Q Vb q| {#>_3uv[@,@2z ]x|Ja': iRvGk.co;['6^7 b$a0l((04  xANhfHQ/^wtMl%eQwguf3-b'n/=&IM tP_#)F9D]]}xiB<<{ro!\ EQpp-1>6PidY:/,?tD2~A"$+EH#b?cSj~Ie!7&:X XuzqEC=GRK53{  }%lv<c Lw -yUsAyMVoL+S*sqmFd jT~?"9VJhmGf&m*g)8k g` n.yJV07h|P"Cd82  eZ 9 ;!S[YO )N8$OsnjDWX1r1pY>Z;rU@O_|F T}IT.6WH4NZ 4q`(K\z5%U^BCW=R+,k*K L5`Ba\"%s" can not be found."%s" is not a valid path.%(amount)d images done in %(duration)s%(mode)s has been converted to %(mode_copy)s to save as %(format)s.%(name)s actions%d issues were logged%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List&Action List Droplet...&Add&Add Tag&Add Tag to All Images...&Add... Ctrl-+&All Types&Ask for Help&Batch&Browse Library&Cancel&Close&Collapse All Ctrl-Shift-E&Collapse Automatically&Continue Anyway&Copy Tag&Copy Value&Delete Tag&Delete Tag from All Images...&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Fonts&Forum... Ctrl-F&Help&Image Inspector (exif) Ctrl-I&Image Inspector Droplet...&Insert Tag in Action List...&Inspect...&License&Modify Value for All Images...&New Ctrl-N&No Types&OK&Open...&Open... Ctrl-O&Phatch&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Remove Image&Rename Tag for All Images...&Report a Bug... Ctrl-B&Safe Mode (recommended)&Save Ctrl-S&Select&Show Description Ctrl-H&Show template for action plugin&Skip to Next Action&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&Update&User&View&Website... Ctrl-W3D Edge3D ObjectsA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd TagAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAfterwards you can drag&drop images on the Phatch window to batch them.Align HorizontalAlign VerticalAllAll FilesAll filesAll readable and writable typesAll readable typesAll selected typesAllow Geek action and unsafe expressionsAllow as last actionAlso check if your hard disk not full. Always save on desktopAlways show status dialog when doneAmountAngleAngle Apply a transparency highlightApply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilAre you sure you want to delete this tag from "%s"?Are you sure you want to delete this tag from all images?ArtworkAsAs an example try out the polaroid action list from the library.Associate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastAuto CropAutomatic (use exif orientation)BackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlenderBlender %s is required.BlurBlur AngleBlur RadiusBlur ReflectionBlur SigmaBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBorder WidthBothBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBottom StretchedBox ColorBox DepthBrightnessBrowseBrowse %sBrowse FolderBrowse action lists, masks, highlights and fontsBy OffsetC&ontinueC&reditsCMYK (4x8-bit pixels, color separation)CameraCamera DistanceCamera Horizontal RotationCamera Lens AngleCamera RollCamera Vertical RotationCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthCaptionCenterChangeChange value for all images to:CharcoalCharcoal RadiusCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletClipboardCodeColorColor ValueColor to AlphaColorizeColorize grayscale imageColumnsCommandCommand did not produce an output image: %sCommentsCommonConstrain ProportionsContourContour ColorContrastContrast FactorContrast TresholdConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCopy the original imageCorner Bottom LeftCorner Bottom RightCorner Top LeftCorner Top RightCould not open image with %s.Cover ColorCreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDe&veloper Documentation... Ctrl-PDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDetails DegreeDifferent for each sideDirectionDirection Disable Safe Mode in the Tools menu if you trust this action list.Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDoneDouble click to open or right click for more options.DownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDraw border inside or outsideDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEasily batch process images and edit metadataEffectEnable actionEnter an image urlEqual for all sidesEqualizeEqualize the image histogramErrorExamplesExecuteExecute external commandExecute the actionExecute the action listExecuting action listExif and fileExif timeExpandExpanding one action collapses the others.Fade all colors to grayFalseFebruaryFileFile NameFile timeFile(s)FillFill ColorFill FolderFill ImageFill TypeFilterFitFit ImageFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFloor ColorFloor OpacityFloor ReflectionFolderFontFontsFor more information see the tutorials (Help>Documentation)Force Background ColorFormat %(format)s does not support overwriting "%(tag)s".FridayFrom (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GapGeekGeek actions are not allowed in safe mode.GeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GradientGradient BottomGradient TopGrayscaleGrayscale (8-bit pixels)HighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage SizeImage pathsImagemagickImagesImpossible to load data from action list.Impossible to write tag "%s"InIn Phatch you need to open or create an action list first.Include all subfoldersInclude imageInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LA (8-bit pixels, grayscale with transparency mask)LabelLearn to develop Phatch with Python and PIL.LeftLeft PageLeft Shear AngleLeft StretchedLetterboxLibrariesLibrary Action ListsLicenseLogLossless JPEGLossless JPEG transformation does not work on a %s image:Make selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMaximum one parameter "%s" is allowedMayMedianMessageMetadataMethodMiddleMinimumMinutesMirrorMistModeMondayMonochrome (1-bit pixels, black and white)MonthsMotion BlurMove the selected action downMove the selected action upNever run action lists from untrusted sources.No action list provided.No files or folder selected.No images have been processed to report.No save action required at the endNoneNormalNothing has been logged yet.Nothing to do.NovemberObjectOctoberOffsetOffset by distance and wrap aroundOneOne image done in %sOne issue was loggedOnly palette images have transparency.OpacityOpenOpen &Library... Ctrl-Shift-OOpen &RecentOpen &Url...Open an action listOpens a ready-made actionlist from the libraryOpens an actions listOptionsOrientationOutputOverwrite existing imagesP (8-bit pixels, mapped using a color palette)PNG OptimizePage MappingPaintPaint RadiusParameter "%s.*" is missingPaste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch chooses the lossless "Save Tags" action.Phatch could not create the droplet: Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch will generate the user interface automatically.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please check if this action list doesn't contain harmful code.Please delete "%s".Please install "%s" first.Please upgrade your wxPython.PolaroidPositionPosterizePreserve TimestampProcess with recent Phatch action listProgram VersionProjectionPut color under transparent imageQuit the application.RGB (3x8-bit pixels, true color)RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReady!Reduce the number of bits of color channelReflectionRegenerate thumbnailRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename tag for all images to:Rename the original imageRender HeightRender WidthRepeatRepeat imagesReport a bug on launchpad.ResampleResample HighlightResample ImageResample MaskResolutionRightRight Shear FactorRight StretchedRotateRotate 180Rotate 270Rotate 90Rotate with random angleRotate, flip, grayscale and cropRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSafe mode protects you from the execution of possibly harmful scripts. Are you sure you want to disable it?Same Method for All CornersSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save TagsSave and convert to other typesSave last changes toSave only metadata (lossless)Saves an action listSaves an action list asScaleScale Down OnlyScale ImageScale MethodScale ModelScale ReflectionScan for new fonts on your systemSecondsSee "%s" for more details.SelectSelect Color BySelect ObjectSelect ProjectionSelect RotationSelect Rotation for %sSelect action listSelectionSeparateSeptemberShadowShadow BlurShadow ColorSharpenSharpen RadiusShear 2d or 3dShift time values of tagsShow &Log... Ctrl-LShow &ReportShow &Report... Ctrl+RShow Advanced OptionsShow Background OptionsShow Floor OptionsShow LogShow Type OptionsShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.Show report of processed imagesSigmoidal ContrastSizeSketchSketch AngleSketch RadiusSkip To Next &ImageSliderSolarizeSorry, "%s" is not a valid path.Sorry, %s.Sorry, no valid files foundSorry, the action list seems incompatible with %(name)s %(version)s.Sorry, time shift can only handle dates before 2038-1-19Sorry, unable to open these images:Sorry, you have the wrong version of Blender installed.Sorry, you need to install the %s action for this action list.Sorry, your settings seem corrupt.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStarsStars ColorStart a new action listStop for errorsStringStudy the action plugins in:SundaySymmetrical tile textureTIFF CompressionTagTag "%s" is not writable.Tag "%s" is read only.Tag (Exif, Iptc)Tag exists alreadyTag should start with "Exif_" or "Iptc_"Tag should start with Exif_* or Iptc_*TamogenTextThe action list is empty.The action list only processes metadata.The droplet command for recent action lists was copied to the clipboard.The droplet command for the image inspector was copied to the clipboard.The droplet command for this action list was copied to the clipboard.The following name(s) are invalid: The tag "%s" is not valid. It should follow the syntax: Exif_* or Iptc_*There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This action list is unsafe:This action list was made by a different %(name)s version.This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTime ShiftTime Shift (seconds)To (Exif, Iptc)Tools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTop StretchedTransform to a grayscale pencil drawingTransformationTransformation Translate Phatch in your native language.TranslationTransparentTransparent BackgroundTransposeTransverseTresholdTrueTuesdayTypesUnable extract variables from fileUnable to add tag <%s>Unable to change label.Unable to change tag <%s>Unable to delete tag <%s>Unable to open fileUnable to remove imageUnable to rename tag <%s>Unable to save tag <%s>Unsaved Action ListUnsharpUnsharp RadiusUnsharp SigmaUpUpdate Exif ThumbnailUpdate JPEGUpdate Orientation TagUse FloorUse exif datetimeUse the Image Inspector to list all the variables.UserUtilityValueVerboseVerify InputVerify OutputVerify ProgramVerticalVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWaveWave HeightWave LengthWednesdayWhat do you want to do now?WhiteWrap BothWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYCbCr (3x8-bit pixels, color video format)YearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,You only need to know PIL to write a plugin for Phatch.a filename with a valid extension was expectedabortactionsallantialiasapplicationaspectautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcan not be emptycenterchoiceclick '+' to add actionscolorcompressioncontourdaydecimaldefaultdesktopdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameformatformatdescriptionframegammaheighthourignoreimagesintegerinterlaceinvalid literal "%s" for booleaninvalid literal "%s" for floatinvalid literal "%s" for integerinvalid syntax "%s" for integerleftloadingmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnoneorientationpathplease email: please install pyexiv2pluginpositive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth moresourcestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existthe float value "%s" is negative, but should be positivethe float value "%s" is zero, but should be non-zerothe integer value "%s" is negative, but should be positivethe integer value "%s" is zero, but should be non-zerotoptransformtransparencytruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-02-21 21:49+0000 Last-Translator: Mihailov Language-Team: Brazilian Portuguese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:41+0000 X-Generator: Launchpad (build Unknown) "%s" não pode ser encontrado."%s" não é um caminho válido.%(amount)d imagens prontas em %(duration)s%(mode)s foi convertido para %(mode_copy)s para salvar como %(format)s.acções %(name)s%d problemas foram registrados%s Recente&Abortar&sobre o Phatch... Ctrl-Shift-A&Lista de AçõesDroplet de Lista de &Ações...&Adicionar&Adicionar Tag&Adicionar Tag para todas as Imagens...&Adicionar... Ctrl-+&Todos os Tipos&Ajuda&Lote&Navegar Bibliotecas&Cancelar&Fechar&Recolher todos Ctrl-Shift-E&Recolher Automaticamente&Continuar assim mesmo&Copiar Tag&Copiar Valor&Deletar Tag&Deletar as Tags de todas as imagens...&Desabilitar Ctrl-0&Documentação... Ctrl-MPara Baixo Ctrl-Down&Droplet Ctrl-D&Editar&Ativar Ctrl-1&Executar... Ctrl-Return&Expandir todos Ctrl-E&Exportar&Fontes&Forum... Ctrl-F&Ajuda&Inspetor de Imagens (exif) Ctrl-IDroplet de &Inspetor de Imagem...&Inserir Tag na Lista de ações...&Inspecionar...&Licença&Modificar valor para todas as imagens...&nova Ctrl-N&Nenhum Tipo&OK&Abrir...&Abrir... Ctrl-O&PhatchSair Ctrl-QDroplet &Recente...&Remover Ctrl--&Remover Imagem&Renomear as Tags de todas as Imagens...&Reportar um Bug... Ctrl-B&Modo Seguro (recommended)&Salvar Ctrl-S&Selecionar&Mostrar Descrições Ctrl-H&Mostrar modelo de ação&Saltar para a Próxima Ação&Ferramentas&Traduzir Phatch... Ctrl-TPara Cima Ctrl-Up&Atualizar&Usuário&Visualização&Website... Ctrl-WCantos 3DObjetos 3DUm tutorial html irá abrir no seu navegadorSobreAçãoLista de açõesLista de açõesAdicionarAdicionar TagAdicionar uma açãoAjustar brilho do preto para o brancoAjustar do cinxa para Preto/BrancoAjustar saturação da escala de cinza para o máximoDepois você pode arrastar e soltar as imagens na janela do Phatch para executá-los em lote.Alinhamento HorizontalAlinhamento VerticalTodosTodos os arquivosTodos os arquivosTodos os tipos de leitura e escritaTodos os tipos de leituraTodos os tipos selecionadosPermitir Ação Geek e expressões não segurasPermitir como ultima açãoCheque também se seu disco rígido não está cheio. Salvar sempre no desktopSempre mostrar uma janela de status quando terminadoQuantidadeÂnguloÂngulo Aplicar um destaque de transparênciaAplicar máscara de transparênciaAplicar para futuros erros Aplicar com lado a lado, redimensionamento e opacidadeabrilVocê realmente deseja deletar esta tag de "%s"?Você realmente deseja deletar esta tag de todas as imagens?ArteComoPor exemplo, você pode experimentar a lista de ações polaraid da BibliotecaAssociar Imagens com a Lista de Ações em %s...Associar Imagens com Image Inspector em %s...Associar Imagens com a Lista de Ações recentes em %s...agostoAutomáticoAuto ContrasteAuto corte (Auto Crop)AutomáticoPlano de FundoCor de FundoOpacidade do Plano de FundoProcessar em lote imagens com PhatchProcessar lote com lista de ações recenteBitsPretoSangriaBlenderBlender %s é requerido.BlurÂngulo de DesfocagemRaio de DesfocagemReflexão embassadaSigma de DesfocagemBorrar, Polariod, Sombra, Cortar Pontas(Unsharp)...Borrar, Aguçar, Por Relevo, Suavizar, ...BoleanoBordaCor da BordaEspessura da BordaAmbosInferiorInferior EsquerdaCanto Inferior EsquerdoInferior direitaCanto Inferior DireitoFator de corte inferiorEstender à baseCaixa de CoresCaixa de ProfundidadeBrilhoProcurarNavegar por %sProcurar pastaNaveguar listas de ação, máscaras, destaques e fontesPor DeslocamentoC&ontinuarC&réditosCMYK (pixels de 4x8 bits, separação de cor)CâmeraDistância da câmeraRotação Horizontal de CâmeraÂngulo da Lente da CâmeraRolagem da câmeraRotação Vertical de CâmeraNão foi possível aplicar a ação %(a)s na imagem '%(i)s' da pasta:Não foi possível aplicar a ação %(a)s:CanvasAltura da TelaLargura da TelaLegendaCentroAlterarMudar valor de todas as imagens para:CarvãoTamanho do carvãoChecar imagens primeiroVerificar imagensEscolhaSelecione os arquivosSelecione um diretórioEscolha um arquivo de lista de ações...Escolha uma imagemSelecione um diretório de imagensEscolha o diretório para o dropletÁrea de transferênciaCódigoCoresValor da CorCor para AlfaColorirColorir imagem em escala de cinzaColunasComandoO comando não produziu uma imagem de saída: %sComentáriosComumManter ProporçõesContornoCor do ContornoContrasteFator de ContrasteContraste MínimoModo de ConversãoConverte o modo de cor em uma imagemCopia o valor maximo do pixelCopia a média dos valores dos pixelsCopie o valor de pixel mínimoCopia o valor de pixel mais comumCopiarCopiar lista de ações e Comandos para area de transferênciaCopiar o I&nspetor de Imagens como Comandos para área de transferênciaCopiar R&ecentes como Comandos para área de transferênciaCopiar a imagem originalCanto Inferior EsquerdoCanto Inferior DireitoCanto Superior EsquerdoCanto Superior DireitoNão foi possível abrir imagem com %s.Cobrir CorCréditosCortarCortar ou expandir tela(Canvas) sem redimencionarCortar a imagemCruzarPersonalizadoLimiteDiasDocumentação do De&senvolvedor... Ctrl-PdezembroDeletar tags Exif ou IptcDeletar TagsProfundidadeDesaturarDescreva aqui a lista de ações.DescriçãoNível de DetalhesDiferente para cada ladoDireçãoDireção Desabilite Modo de Segurança dentro do menu de Ferramentas se você confia nesta lista de ações.Disabilitar açãoApresenta informações sobre este aplicativo.Não checar as imagensVocê deseja continuar?Você deseja sobrescrevê-lo?DocumentaçãoConcluídoDuplo clique para abrir ou cliquie com botão direito para mais opções.Para BaixoReduzir e cortar imagem com raio fixoArrastar & SoltarDesenhar um contorno nos cantos da imagemDesenhar bordas dentro ou foraSoltar os arquivos e / ou pastas neste Phatch droplet para processá-los em lotes. Clique com o botão direito ou dê duplo clique para trocar para a visão normal.Cria uma sombra desfocada sob a fotoCriar reflexãoFacilmente processa imagem em lotes e edita metadadosEfeitoAtivar açãoInsira o endereço da imagemIgual para todos os ladosEqualizarEqualizar historiograma da imagemErroExemplosExecutarExecutar comando externoExecutar açãoExecutar lista de açõesExecutar ações da listaArquivo e ExifTempo de ExifExpandirExpandir uma ação e recolher os outrosEnfraquecer todas as cores para o cinza (Fade)FalsofevereiroArquivoNome do arquivoTempo de arquivoArquivo(s)PreencherCor de PreenchimentoPreencher PastaImagem de PreenchimentoTipo de PreenchimentoFiltroAjustarAjustar ImagemGirarGirar HorizontalmenteGirar VerticalmenteVirar ou deslocar 90 grausFlutuanteCor do chãoOpacidade do ChãoReflexão no ChãoDiretórioFonteFontesPara mais informações veja os tutoriais (Ajuda>Documentação)Forçar cor de fundoFormato %(format)s não suporta sobreescrever "%(tag)s".Sexta-feiraDe (Exif, Iptc)Dados GPS (gpx)Relatório GPS (csv)GapGeekAções Geek não são permitidas em modo de segurançaGeotagIr para documentação do hPatchIr para o forum do PhatchIr para a Phatch homepage.GradienteGradiente à baseGradiente ao TopoTons de cinzaEscala de Cinza (pixels de 8 bits)DestaquesLegal, não tem problemas !HorizontalHorizontal JustificadoDeslocamento HorizontalHorasSe você reiniciar %s, a ação irá aparecer no menu de contexto.Se você quiser contribuir com um plugin para o Phatch,Ignorar errosImagemInspetor de ImagensTamanho da ImagemCaminho da iamgemImagemagickImagensFoi impossível carregar os dados da lista de ações.Impossível gravar a tag "%s"EmNo Phatch você deve abrir ou criar uma lista de ações primeiro.Incluir todos os subdiretóriosIncluir imagemInicializar fontes (apenas para scripts de instalação)Inspecionar tags EXIF & IPTCInspecionar tags EXIF & IPTCInspecionar metadados (requere plugin exif & iptc)Inspecionar com o PhatchInteiroInteiro+Inteiro+0InterativoImagens inválidasInverterInverter todos os valores do pixel até o valor mínimoInverter as cores de uma imagemQualidade do JPEGTamanho Máximo de JPEGTolerância do Tamanho de JPEGjaneirojulhojunhoManter imagens existentes (não sobrescrever)LA (8-bit pixels, grayscale com máscara de transparência)RótuloAprenda a desenvolver o Phatch com Python e PIL.EsquerdaPágina à EsquerdaÂngulo de corte esquerdoEstender à esquerdaCaixa de textoBibliotecasBiblioteca de Listas de AçãoLicençaRegistroJPEG de Baixa PerdaTransformação Lossless JPEG não funciona na %s imagemDeixar transparente a cor selecionadaFazer imagem menou ou maiormarçoMarcaMáscaraMaximizar contraste da ImagemMáximoNo máximo um parâmetro é permitido "%s"maioMedianoMensagemMetadadosMétodoMeioMínimoMinutosEspelharNévoaModoSegunda-feiraMonocromático (1-bit pixels, preto e branco)MesesMotion BlurMover ação selecionada para baixoMover ação selecionada para cimaNunca execute uma lista de ações de uma fonte não confiável.Nenhuma ação na lista.Não existem aquivos no diretório selecionadoNão tem imagens já processadas para relato.Não requer ação salvar no finalNenhumNormalNão tem nada para relatar.Nada a fazer.novembroObjetooutubroDeslocamentoDeslocamento por distância e envolvimentoUmUma imagem pronta em %sUm problema foi registradoApenas imagens com paleta de cor RGB possuem transparênciaOpacidadeAbrirAbrir &Biblioteca... Ctrl-Shift-OAbrir &RecenteAbrir &Url...Abrir lista de açõesAbrir uma lista de ação previamente preparada da bibliotecaAbrir lista de açõesOpçõesOrientaçãoSaídaSobrescrever as imagens existentesP (8-bit pixels, mapeado usando uma paleta de cor)PNG OtimizadoMapear PáginaPintarRaio da pinturaParâmetro "%s.*" está faltandoCole este comando em um lançadorCaminhoDesenho a LápisPerspectivaPhatch não pode manipular imagens %d:O Phatch escolherá o modo de baixa perda para a ação "Salvar Tags".O Phatch não pode criar o droplet: O Patch não pode instalar a ação em %s:O Phatch não conseguiu instalar com sucesso a função requisitada.O Phatch criou o droplet com sucesso.O Phatch tentou desinstalar-se do Windows Explorer.O Phatch vai adicionar um para você, verifique suas configurações.O Phatch vai criar seu interface automaticamente.Phatch com %sPhoto Batch ProcessorPor favor, (re) instalá-lo.Por favor verifique se esta lista de ações não contém código nicivo.Por favor delete "%s".Por favor instale "%s" primeiro.Por favor atualize o wxPythonPolaroidPosiçãoPosterizarPreservar TimestampProcessar com lista de ações do Phatch recenteVersão do programaProjeçãoColocar cor em imagem transparenteSair da aplicaçãoRGB (3x8-bit pixels, true color)RGBA (pixels de 4x8 bits, RGB com máscara de transparência)RaioRankingPronto!Reduzir o número de bits do canal de corReflexãoRegenerar miniaturaRemoverRemover Associação de %s...Remover ação selecionadaRemover ações selecionadasRenomearRenomear TagRenomear uma TagRenomear tag de todas as imagens para:Renomear a imagem originalRenderizar AlturaRenderizar LarguraRepetirRepetir imagensReportar um erro de traduçãoNova amostraReamostragem de destaqueReajustar ImagemReamostrar MáscaraResoluçãoDireitaFator de corte direitoEstender à direitaRotacionarGirar 180°Girar 270°Girar 90°Rotacionar com ângulo aleatórioRotacionar, inverter, escala de cinza e cortarArrendondarArredondadoCantos arredondados ou cruzadosLinhasExecutar %s como um gui dropletExecutar %s como um programa de console (sem interface gráfica)O modo seguro o protege da execução de possíveis scripts perigosos. Deseja realmente desativá-lo?Mesmo método para todos os cantosSaturaçãoSábadoSalvarSalvar Como... Ctrl-Shift-SSalvar lista de ações como...Salvar TagsSalvar e converter para outros tiposSalvar as últimas configurações paraSalvar somente metadata (Baixa perda)Salvar lista de açõesSalvar lista de ações comoEscalaReduzir apenasRedimensionar imagemMétodo de EscalaModelo de RedimensionamentoReflexão redimensionadaPesquisar por novas fontes em seu sistemaSegundosVeja "%s" para mais detalhes.SelecionarSelecionar Cor porSelecionar ObjetoSelecionar ProjeçãoSelecionar RotaçãoSelecione Rotação para %sSelecionar lista de açõesSeleçãoSeparadosetembroSombraDesfocamento da sombraCor da SombraNitidezRaio de NitidezCortar 2d ou 3dDeslocar valor do tempo das tagsExibir Log... Ctrl-LMostrar &RelatórioMostrar &Relatório... Ctrl+RMostrar Opções AvançadasMostrar Opções do FundoMostrar opções do chãoMostrar LogMostrar Tipos de OpçõesMostrar todos os parâmetros das açõesMostrar descrição de ações da listaMostrar arquivo de logMostrar somente os rótulos das açõesMostrar relatório das imagens processadasContraste SigmoidalTamanhoDesenhoÂngulo do desenho a lápisRaio do lápisSaltar para a Próxima &ImagemControleDeslizanteCom solDesculpe, "%s" não é caminho válido.Desculpe, %s.Desculpe, não foram encontrados arquivos válidosDesculpe, a lista de ações parece ser incompatível com %(name)s %(version)s.Desculpe, o deslocar tempo somente manipula datas antes de 19/01/2038Desculpe, impossível abrir essas imagens:Desculpe, você tem instalada a versão errada do Blender.Desculpe, você precisa instalar a ação %s para esta lista de ações.Desculpe, suas configurações parecem estar corrompidas.FonteEspecifique a linguagem (por exemplo pt ou pt_BR)PatrocinadoresQuadradoEstrelasCor das EstrelasIniciar nova lista de açõesParar para errosExpressãoPesquisar por plugins de ação em:DomingoTextura lado-a-lado simétricaCompressão TIFFTagTag "%s" não tem permissão de escritaTag "%s" é somente leitura.Tag (Exif, Iptc)A Tag já existeTaqs devem iniciar com "Exif_" ou "Iptc_"A Tag deve ser iniciada com Exif_* ou Iptc_*TamogenTextoA lista de acões está vazio.A lista de ação processa somente metadados.O comando de droplet para a lista de ação recente foi copiado para a área de transferência.O comando de droplet para o inspetor de imagens foi copiado para a área de transferência.O comando de droplet para esta lista de ação foi copiado para a área de transferência.Os seguintes nomes são inválidos: A Tag "%s" não é válida Deve seguir o sintax: Exif_* ou Iptc_*Não existe nenhuma ação ativadaDeve haver uma ação 'Salvar' ao finalEstas extensões foram instaladas com sucesso: Esta lista de ações não é segura:Esta lista de ação foi feita por uma versão diferente %(name)s.Este arquivo já existe.Isso requer que o pacote python-nautilus também esteja instalado.Quarta-feiraLado a ladoDeslocar tempoDeslocar tempo (em segundos)Para (Exif, Iptc)Ferramentas para lidar com a lista de ação atualTopoSuperior esquerdaCanto Superior EsquerdoSuperior direitaCanto Superior DireitoÂngulo de corte superiorEstender ao topoTranformar para um desenho a lápis em escala de cinzaTransformaçãoTransformação Traduzir o Phatch para sua lingua nativaTraduçãoTransparenteFundo TransparenteSobreporatravessadoRuídoVerdadeiroTerça-feiraTiposNão foi possivel extrair variáveis do arquivoNão foi possível adicionar a tag <%s>Não foi possivel mudar label.Não foi possível mudar a tag <%s>Não foi possivel deletar tag <%s>Arquivo indisponível para abrirImpossível remover imagemNão foi possivel renomear tag <%s>Não foi possível salvar a tag <%s>Lista de ações não salvaDiminuir nitidezRaio do Unsharp(corte de pontas)Fator de Unsharp(corte de pontas)AcimaAtualizar Miniatura ExifAtualizar JPEGAtualizar Tag de OrientaçãoUsar chãoUsar data tipo exifUse o Inspetor de Imagem para listar todas as variáveis.UsuárioUtilitárioValorInformações detalhadasVerificar EntradaVerificar SaídaVerificar ProgramaVerticalVertical JustificadoDeslocamento VerticalVisualizar FonteVer como um droplet para arastar e soltar arquivosAviso: o python-wxversion não está instalado. Marca d'águaOndaAltura da OndaComprimento da OndaQuarta-feiraO que você deseja fazer agora?BrancoEnvolver ambosEscrever um plugin de açãoEscrever TagEscrever novo valor na tagEscrever texto na posição especificadaYCbCr (pixels de 3x8 bits, formato de cor de vídeo)AnosVocê pode apenas utilizar arquivos com as seguintes extensõesVocê pode colar seu texto nas propriedades do novo lançador.Você precisa instalar o Python Win32 Extensions para esta função.Você precisa conhecer somente PIL para escrever um plugin para o Phatch,Você precisa somente conhecer PIL para escrever plugins para o Phatch.era esperado um nome de arquivo com uma extensão válidaabortaraçõestodosantialiasaplicaçãoaspectoautomáticofundobicúbicobilinearborrarboleanoinferiorampliar sua pesquisanão pode ser vaziocentroescolhaClique '+' para adicionar açõescorcompressãocontornodiadecimalPadrãoárea de trabalhodetalhesdpiAprimorar bordasaumentar mais a bordarelevofalsoArquivonome de arquivotamanho do arquivofiltroProcurar bordasPonto flutuantediretórioNome do diretórioformatardescrição do formatoquadrogamaalturahoraignorarimagensinteirointerlaçarliteral inválido para boleanos "%s"literal inválido para ponto flutuante "%s"literal inválido para inteiros "%s"sintaxe inválida "%s" para inteiroesquerdacarregandometadadosmeiominutomodomêsmês do anomais próximonãonenhuma tag %s foi encontradanenhumorientaçãocaminhoenvie por email para: Por favor instale pyexiv2plugininteiro positivoNúmero inteiro maior que zeroÉ necessário instalar o pyexiv2resoluçãodireitaraizSegundoRealçarTamanhopularsuavesuavizar maisfontetextosubdiretórioetiquetaa extensão de arquivo "%s" é inválidao nome de arquivo "%s" não existeo valor de ponto flutuante "%s" é negativo, mas deveria ser positivoO valor de ponto flutuante "%s" é zero, mas deveria ser diferente de zeroo valor inteiro "%s" é negativo, mas poderia ser positivoO valor inteiro "%s" é zero, mas deveria ser diferente de zerotopotransformartransparênciaverdadeirotipoavisodia da semanadia da semanalarguracomwxPython Version Erroranosimphatch-0.2.7/locale/pt_BR/LC_MESSAGES/phatch.po0000644000000000000000000035706311346363116020610 0ustar rootroot00000000000000# Brazilian Portuguese translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-02-21 21:49+0000\n" "Last-Translator: Mihailov \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Inspecionar com o Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Inspecionar tags EXIF & IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Exemplos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Executar %s como um programa de console (sem interface gráfica)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Executar %s como um gui droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Salvar sempre no desktop" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignorar erros" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Inicializar fontes (apenas para scripts de instalação)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interativo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Manter imagens existentes (não sobrescrever)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Especifique a linguagem (por exemplo pt ou pt_BR)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Inspecionar metadados (requere plugin exif & iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Não requer ação salvar no final" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Incluir todos os subdiretórios" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Não checar as imagens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "Permitir Ação Geek e expressões não seguras" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Informações detalhadas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "Você pode colar seu texto nas propriedades do novo lançador." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Desculpe, você precisa instalar a ação %s para esta lista de ações." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" "O comando de droplet para esta lista de ação foi copiado para a área de " "transferência." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" "O comando de droplet para a lista de ação recente foi copiado para a área de " "transferência." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "O comando de droplet para o inspetor de imagens foi copiado para a área de " "transferência." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "No Phatch você deve abrir ou criar uma lista de ações primeiro." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" "Por exemplo, você pode experimentar a lista de ações polaraid da Biblioteca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" "Depois você pode arrastar e soltar as imagens na janela do Phatch para " "executá-los em lote." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "Para mais informações veja os tutoriais (Ajuda>Documentação)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "Não tem imagens já processadas para relato." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "Legal, não tem problemas !" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Não tem nada para relatar." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Registro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "abortar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "pular" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignorar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "Esta lista de ação foi feita por uma versão diferente %(name)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "Clique '+' para adicionar ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "Abrir &Recente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Abrir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Abrir lista de ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Executar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Executar ação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Adicionar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Adicionar uma ação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Remover" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Remover ação selecionada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Acima" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Mover ação selecionada para cima" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Para Baixo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Mover ação selecionada para baixo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Inspetor de Imagens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Descrição" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Mostrar descrição de ações da lista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "Biblioteca de Listas de Ação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Escolha um arquivo de lista de ações..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Salvar lista de ações como..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Este arquivo já existe." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Você deseja sobrescrevê-lo?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "acções %(name)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "aplicação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "quadro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Um tutorial html irá abrir no seu navegador" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" "Você precisa somente conhecer PIL para escrever plugins para o Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "O Phatch vai criar seu interface automaticamente." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Pesquisar por plugins de ação em:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Se você quiser contribuir com um plugin para o Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "envie por email para: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "Desculpe, \"%s\" não é caminho válido." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Arrastar & Soltar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Soltar os arquivos e / ou pastas neste Phatch droplet\n" "para processá-los em lotes.\n" "Clique com o botão direito ou dê duplo clique para trocar para a visão " "normal." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "O Phatch vai adicionar um para você, verifique suas configurações." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "A lista de ação processa somente metadados." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" "O Phatch escolherá o modo de baixa perda para a ação \"Salvar Tags\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Salvar as últimas configurações para" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" "O modo seguro o protege da execução de possíveis scripts perigosos.\n" "Deseja realmente desativá-lo?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Escolha o diretório para o droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "O Phatch criou o droplet com sucesso." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "O Phatch não pode criar o droplet: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "Foi impossível carregar os dados da lista de ações." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Selecionar lista de ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "Desculpe, suas configurações parecem estar corrompidas." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "Por favor delete \"%s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "Cheque também se seu disco rígido não está cheio.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Selecione um diretório" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Selecione os arquivos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Selecione um diretório de imagens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "Todos os tipos selecionados" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "Todos os tipos de leitura e escrita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "Todos os tipos de leitura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "imagens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "&Todos os Tipos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "&Nenhum Tipo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "Área de transferência" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Procurar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "Navegar por %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Diretório" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "Padrão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Visualizar Fonte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "ampliar sua pesquisa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Caminho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Abrir..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "&Inspecionar..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "&Inserir Tag na Lista de ações..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&nova\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Iniciar nova lista de ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Abrir...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Abrir lista de ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "Abrir &Biblioteca...\tCtrl-Shift-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "Abrir uma lista de ação previamente preparada da biblioteca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Salvar\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Salvar lista de ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Salvar Como...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Salvar lista de ações como" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Copiar lista de ações e Comandos para area de transferência" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Cole este comando em um lançador" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Copiar R&ecentes como Comandos para área de transferência" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" "Copiar o I&nspetor de Imagens como Comandos para área de transferência" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&Exportar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "Sair\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Sair da aplicação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "&Lista de Ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Adicionar...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Remover\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Remover ações selecionadas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Ativar\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Ativar ação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Desabilitar\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Disabilitar ação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "Para Cima\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "Para Baixo\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Editar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Droplet\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Ver como um droplet para arastar e soltar arquivos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Mostrar Descrições\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Ferramentas para lidar com a lista de ação atual" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Expandir todos\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Mostrar todos os parâmetros das ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Recolher todos\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Mostrar somente os rótulos das ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "&Recolher Automaticamente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "Expandir uma ação e recolher os outros" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Visualização" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Executar...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Executar lista de ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "&Modo Seguro (recommended)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "&Inspetor de Imagens (exif)\tCtrl-I" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "&Usuário" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "Naveguar listas de ação, máscaras, destaques e fontes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "&Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "&Navegar Bibliotecas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "Mostrar &Relatório...\tCtrl+R" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "Mostrar relatório das imagens processadas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Exibir Log...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Mostrar arquivo de log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "&Fontes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "Pesquisar por novas fontes em seu sistema" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "&Atualizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Ferramentas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "&Website...\tCtrl-W" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Ir para a Phatch homepage." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Documentação...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Ir para documentação do hPatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Ir para o forum do Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Traduzir Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Traduzir o Phatch para sua lingua nativa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Reportar um Bug...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Reportar um erro de tradução" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "Documentação do De&senvolvedor...\tCtrl-P" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "Aprenda a desenvolver o Phatch com Python e PIL." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&sobre o Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Apresenta informações sobre este aplicativo." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Ajuda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "Concluído" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Mostrar Log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "Mostrar &Relatório" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "Pronto!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" "Duplo clique para abrir ou cliquie com botão direito para mais opções." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" "Você precisa conhecer somente PIL para escrever um plugin para o Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Mostrar modelo de ação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Código" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Ajuda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Escrever um plugin de ação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Aplicar para futuros erros " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Abortar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "&Saltar para a Próxima Ação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "Saltar para a Próxima &Imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Mensagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Continuar assim mesmo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Opções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Tipos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Procurar pasta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Fonte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Arquivo(s)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Parar para erros" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Checar imagens primeiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Sobrescrever as imagens existentes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "Sempre mostrar uma janela de status quando terminado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "Repetir imagens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Cancelar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Lote" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Rótulo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "etiqueta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boleano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Expressão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Escolha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Cores" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Resolução" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Nome do arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "Em" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Flutuante" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Como" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Modo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Nova amostra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicúbico" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Inteiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Inteiro+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Inteiro+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "ControleDeslizante" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "É necessário instalar o pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" "%(mode)s foi convertido para %(mode_copy)s para salvar como %(format)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "janeiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "fevereiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "março" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "abril" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "maio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "junho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "julho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "agosto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "setembro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "outubro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "novembro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "dezembro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Segunda-feira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Terça-feira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Quarta-feira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Quarta-feira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Sexta-feira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Sábado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Domingo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "Apenas imagens com paleta de cor RGB possuem transparência" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "Não foi possivel extrair variáveis do arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "Tag \"%s\" é somente leitura." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "Impossível gravar a tag \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "Tag \"%s\" não tem permissão de escrita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "Formato %(format)s não suporta sobreescrever \"%(tag)s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "fundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "fonte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" "O comando não produziu uma imagem de saída:\n" "%s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Todos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "Selecionar Projeção" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Selecionar Objeto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "Selecionar Rotação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "Centro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Personalizado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Meio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Esquerda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Direita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Topo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Inferior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Inferior Esquerda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Inferior direita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Superior esquerda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Superior direita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Posição" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Deslocamento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Deslocamento Horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Deslocamento Vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Horizontal Justificado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Vertical Justificado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "Por Deslocamento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Lado a lado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Escala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Marca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Opacidade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Método" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Automático" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "Facilmente processa imagem em lotes e edita metadados" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Photo Batch Processor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Verdadeiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Falso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "verdadeiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "falso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Lista de ações não salva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Lista de ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Todos os arquivos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Descreva aqui a lista de ações." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Deve haver uma ação 'Salvar' ao final" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "com" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s Recente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Associar Imagens com a Lista de Ações em %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Associar Imagens com a Lista de Ações recentes em %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Associar Imagens com Image Inspector em %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Remover Associação de %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "Droplet de Lista de &Ações..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "Droplet &Recente..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "Droplet de &Inspetor de Imagem..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Processar lote com lista de ações recente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Inspecionar tags EXIF & IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "Veja \"%s\" para mais detalhes." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" "Desculpe, a lista de ações parece ser incompatível com %(name)s %(version)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "Esta lista de ações não é segura:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" "Desabilite Modo de Segurança dentro do menu de Ferramentas se você confia " "nesta lista de ações." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "Nunca execute uma lista de ações de uma fonte não confiável." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "Por favor verifique se esta lista de ações não contém código nicivo." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "\"%s\" não é um caminho válido." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Ação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "Ações Geek não são permitidas em modo de segurança" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Nada a fazer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "A lista de acões está vazio." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Não existe nenhuma ação ativada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Verificar imagens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch não pode manipular imagens %d:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Imagens inválidas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Desculpe, não foram encontrados arquivos válidos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "C&ontinuar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Não existem aquivos no diretório selecionado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Arquivo indisponível para abrir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Não foi possível aplicar a ação %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Não foi possível aplicar a ação %(a)s na imagem '%(i)s' da pasta:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Executar ações da lista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Uma imagem pronta em %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "%(amount)d imagens prontas em %(duration)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Um problema foi registrado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "%d problemas foram registrados" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Selecionar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" "A Tag \"%s\" não é válida\n" "Deve seguir o sintax: Exif_* ou Iptc_*" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "Não foi possivel mudar label." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "Não foi possivel deletar tag <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "Não foi possivel renomear tag <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "Não foi possível salvar a tag <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "dia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "área de trabalho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "Nome do diretório" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "nome de arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "tamanho do arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "diretório" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "hora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minuto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "mês" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "mês do ano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "caminho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "raiz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "Segundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "subdiretório" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "tipo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "dia da semana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "dia da semana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "ano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "aspecto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "compressão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "gama" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "altura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "interlaçar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "modo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "largura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "formatar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "descrição do formato" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "Tamanho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "transparência" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "orientação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Use o Inspetor de Imagem para listar todas as variáveis." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Você pode apenas utilizar arquivos com as seguintes extensões" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "esquerda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "centro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "direita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "topo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "meio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "inferior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monocromático (1-bit pixels, preto e branco)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "Escala de Cinza (pixels de 8 bits)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "LA (8-bit pixels, grayscale com máscara de transparência)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "RGB (3x8-bit pixels, true color)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (pixels de 4x8 bits, RGB com máscara de transparência)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "CMYK (pixels de 4x8 bits, separação de cor)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "P (8-bit pixels, mapeado usando uma paleta de cor)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "YCbCr (pixels de 3x8 bits, formato de cor de vídeo)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "borrar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "contorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detalhes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "Aprimorar bordas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "aumentar mais a borda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "relevo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "Procurar bordas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "suave" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "suavizar mais" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "Realçar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "mais próximo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilinear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Girar 90°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Girar 180°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Girar 270°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Girar Horizontalmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Girar Verticalmente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "nenhum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "não pode ser vazio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "sintaxe inválida \"%s\" para inteiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "texto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "inteiro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "literal inválido para inteiros \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "inteiro positivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "o valor inteiro \"%s\" é negativo, mas poderia ser positivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "Número inteiro maior que zero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "O valor inteiro \"%s\" é zero, mas deveria ser diferente de zero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "resolução" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "Ponto flutuante" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "literal inválido para ponto flutuante \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" "o valor de ponto flutuante \"%s\" é negativo, mas deveria ser positivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" "O valor de ponto flutuante \"%s\" é zero, mas deveria ser diferente de zero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "boleano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "literal inválido para boleanos \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "escolha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "a extensão de arquivo \"%s\" é inválida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "era esperado um nome de arquivo com uma extensão válida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "o nome de arquivo \"%s\" não existe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "\"%s\" não pode ser encontrado." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "Parâmetro \"%s.*\" está faltando" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "No máximo um parâmetro é permitido \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "automático" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Nenhum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "Taqs devem iniciar com \"Exif_\" ou \"Iptc_\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "Por favor instale \"%s\" primeiro." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "Não foi possível abrir imagem com %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Comando" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "Saída" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Erro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "Os seguintes nomes são inválidos: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "&Selecionar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Aviso: o python-wxversion não está instalado.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Por favor, (re) instalá-lo." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Por favor atualize o wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPython Version Error" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "Versão do programa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "C&réditos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licença" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Fechar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Sobre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Créditos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Documentação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Tradução" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Arte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Bibliotecas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Patrocinadores" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licença" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Valor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "aviso" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "Adicionar Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "todos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "Você realmente deseja deletar esta tag de \"%s\"?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "Você realmente deseja deletar esta tag de todas as imagens?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "A Tag deve ser iniciada com Exif_* ou Iptc_*" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "A Tag já existe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Imagens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Todos os arquivos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "&Copiar Valor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "&Adicionar Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "&Deletar Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "Abrir &Url..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "&Remover Imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "&Copiar Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "&Adicionar Tag para todas as Imagens..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "&Deletar as Tags de todas as imagens..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "&Renomear as Tags de todas as Imagens..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "&Modificar valor para todas as imagens..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "Não foi possível adicionar a tag <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "Impossível remover imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "Renomear tag de todas as imagens para:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "Mudar valor de todas as imagens para:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "Não foi possível mudar a tag <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "Desculpe, %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "Desculpe, impossível abrir essas imagens:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Escolha uma imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Insira o endereço da imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "Por favor instale pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "nenhuma tag %s foi encontrada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Adicionar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "carregando" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "não" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "sim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Seleção" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Fontes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Sombra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filtro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Cria uma sombra desfocada sob a foto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Borda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Desfocamento da sombra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Cor de Fundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Cor da Sombra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "Forçar cor de fundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "Ajustar Imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "Caixa de texto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "Redimensionar imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "Modelo de Redimensionamento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "Envolver ambos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "Separado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "Cobrir Cor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "Mapear Página" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "Página à Esquerda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "Caixa de Cores" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "Caixa de Profundidade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "Câmera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "Rotação Horizontal de Câmera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "Rotação Vertical de Câmera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "Rolagem da câmera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "Ângulo da Lente da Câmera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "Distância da câmera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "Mostrar opções do chão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "Usar chão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "Cor do chão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "Reflexão no Chão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "Opacidade do Chão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "Fundo Transparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "Mostrar Opções do Fundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Plano de Fundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "Gradiente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "Transparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "Gradiente ao Topo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "Gradiente à base" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "Auto corte (Auto Crop)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "Estrelas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "Cor das Estrelas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "Névoa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "Blender" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "plugin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "Objetos 3D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "Desculpe, você tem instalada a versão errada do Blender." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "Blender %s é requerido." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "Renderizar Largura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "Renderizar Altura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "Objeto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "Tamanho da Imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "Selecione Rotação para %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Efeito" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Borrar, Aguçar, Por Relevo, Suavizar, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filtro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Repetir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Quantidade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transformar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Deslocamento por distância e envolvimento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Canvas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Cortar ou expandir tela(Canvas) sem redimencionar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "Largura da Tela" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Altura da Tela" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Alinhamento Horizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Alinhamento Vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Cor para Alfa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "cor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Deixar transparente a cor selecionada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "Selecionar Cor por" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "Valor da Cor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Marca d'água" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Aplicar com lado a lado, redimensionamento e opacidade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Desaturar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Enfraquecer todas as cores para o cinza (Fade)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Fazer imagem menou ou maior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Manter Proporções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Reajustar Imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "Reduzir apenas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Sobrepor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Virar ou deslocar 90 graus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Colunas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Linhas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "Ambos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "Espelhar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "Textura lado-a-lado simétrica" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Direção" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Renomear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "Arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "Renomear a imagem original" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Cruzar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Arredondado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Quadrado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Arrendondar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Cantos arredondados ou cruzados" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Raio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "Mesmo método para todos os cantos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Canto Superior Esquerdo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Canto Superior Direito" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Canto Inferior Esquerdo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Canto Inferior Direito" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Destaques" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "Aplicar um destaque de transparência" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "Reamostragem de destaque" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Colocar cor em imagem transparente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Preencher" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Modo de Conversão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Converte o modo de cor em uma imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Ajustar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Reduzir e cortar imagem com raio fixo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Sangria" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Auto Contraste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maximizar contraste da Imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Limite" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Salvar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "Salvar e converter para outros tipos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "Mostrar Tipos de Opções" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "PNG Otimizado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "Qualidade do JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "Tamanho Máximo de JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "Tolerância do Tamanho de JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "Compressão TIFF" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Metadados" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Mediano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Copia a média dos valores dos pixels" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "Tempo de Exif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "Tempo de arquivo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "Arquivo e Exif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "Deslocar tempo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "metadados" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "Deslocar valor do tempo das tags" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "Alterar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "Usar data tipo exif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Segundos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Minutos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Horas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Dias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Meses" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Anos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" "Desculpe, o deslocar tempo somente manipula datas antes de 19/01/2038" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Máscara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Aplicar máscara de transparência" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Reamostrar Máscara" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Texto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Escrever texto na posição especificada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Fonte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Tamanho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Colorir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Colorir imagem em escala de cinza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Preto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Branco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Copiar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "Copiar a imagem original" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posterizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "Reduzir o número de bits do canal de cor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bits" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Escrever Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "Escrever novo valor na tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Tag (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "Igual para todos os lados" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "Diferente para cada lado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "Desenhar bordas dentro ou fora" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "Espessura da Borda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Ranking" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Com sol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Inverter todos os valores do pixel até o valor mínimo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Ruído" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Equalizar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Equalizar historiograma da imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "Automático" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Cortar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Rotacionar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "Girar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Tons de cinza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "Regenerar miniatura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "atravessado" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "Transformação Lossless JPEG não funciona na %s imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Transformação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Ângulo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "Preservar Timestamp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Mostrar Opções Avançadas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "Atualizar JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "Atualizar Miniatura Exif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "Atualizar Tag de Orientação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Comentários" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Transformação " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Ângulo " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Direção " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "Utilitário" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "JPEG de Baixa Perda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "Rotacionar, inverter, escala de cinza e cortar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Cortar a imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "Tamogen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "Tipo de Preenchimento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "Imagem de Preenchimento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "Preencher Pasta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Rotacionar com ângulo aleatório" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Expandir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Opacidade do Plano de Fundo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Inverter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Inverter as cores de uma imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Geotag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "Dados GPS (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "Relatório GPS (csv)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "Deslocar tempo (em segundos)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Reflexão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Criar reflexão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Profundidade" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Gap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "Reflexão embassada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "Reflexão redimensionada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "Método de Escala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Comum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Copia o valor de pixel mais comum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Mínimo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Copie o valor de pixel mínimo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Contorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Desenhar um contorno nos cantos da imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Cor do Contorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Cor de Preenchimento" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "Incluir imagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "Estender ao topo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "Estender à base" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "Estender à esquerda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "Estender à direita" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "Canto Superior Esquerdo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "Canto Superior Direito" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "Canto Inferior Esquerdo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "Canto Inferior Direito" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "Usuário" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspectiva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Cortar 2d ou 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "Projeção" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Ângulo de corte esquerdo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Ângulo de corte superior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Fator de corte inferior" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Fator de corte direito" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Contraste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Ajustar do cinxa para Preto/Branco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "Salvar Tags" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "Salvar somente metadata (Baixa perda)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Um" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Deletar Tags" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Deletar tags Exif ou Iptc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Máximo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Copia o valor maximo do pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Saturação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Ajustar saturação da escala de cinza para o máximo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Renomear Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "Renomear uma Tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "De (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "Para (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Brilho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Ajustar brilho do preto para o branco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "Cantos 3D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "Blur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "Carvão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "Motion Blur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Desenho a Lápis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "Pintar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "Nitidez" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "Contraste Sigmoidal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "Diminuir nitidez" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "Onda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Imagemagick" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "Borrar, Polariod, Sombra, Cortar Pontas(Unsharp)..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Cor da Borda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "Legenda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "Tamanho do carvão" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "Fator de Contraste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "Contraste Mínimo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "Raio de Desfocagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "Sigma de Desfocagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "Ângulo de Desfocagem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "Raio da pintura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "Raio de Nitidez" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "Raio do lápis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "Ângulo do desenho a lápis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "Raio do Unsharp(corte de pontas)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "Fator de Unsharp(corte de pontas)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "Altura da Onda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "Comprimento da Onda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Desenho" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "Tranformar para um desenho a lápis em escala de cinza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "Nível de Detalhes" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "Geek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "Executar comando externo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "Verificar Programa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "Verificar Entrada" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "Verificar Saída" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "Permitir como ultima ação" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Estas extensões foram instaladas com sucesso:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "O Phatch não conseguiu instalar com sucesso a função requisitada." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "O Phatch tentou desinstalar-se do Windows Explorer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Você precisa instalar o Python Win32 Extensions para esta função." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Lista de ações" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Nenhuma ação na lista." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Caminho da iamgem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Você deseja continuar?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "O que você deseja fazer agora?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Se você reiniciar %s, a ação irá aparecer no menu de contexto." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "O Patch não pode instalar a ação em %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Isso requer que o pacote python-nautilus também esteja instalado." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Processar em lote imagens com Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "Phatch com %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Processar com lista de ações do Phatch recente" #~ msgid "new" #~ msgstr "novo" #~ msgid "doesn't exist" #~ msgstr "não existe" #~ msgid "Colour" #~ msgstr "Cor" #~ msgid "Filename" #~ msgstr "Nome do Arquivo" #~ msgid "colours" #~ msgstr "Cores" #~ msgid "Crop or add border to all sides" #~ msgstr "Crop ou adicione borda para todos lados" #~ msgid "border" #~ msgstr "borda" #~ msgid "Height" #~ msgstr "Altura" #~ msgid "Width" #~ msgstr "Largura" #~ msgid "Force Background Colour" #~ msgstr "Forçar Cor de Fundo" #~ msgid "Shadow Colour" #~ msgstr "Cor da Sombra" #~ msgid "Background Colour" #~ msgstr "Cor de Fundo" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Reduza o número de bits de cor do canal" #~ msgid "Rename the image file" #~ msgstr "renomear o arquivo da imagem" #~ msgid "Copy the image file" #~ msgstr "Copiar a imagem do arquivo" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Salvar metadados (requer os plugins exif & iptc)" #~ msgid "Do not create missing folders" #~ msgstr "Não criar as pastas não encontradas" #~ msgid "Fade all colours to gray" #~ msgstr "Transformar as cores em tons de cinza" #~ msgid "Save an image" #~ msgstr "Salvar uma imagem" #~ msgid "watermark" #~ msgstr "marca d'água" #~ msgid "february" #~ msgstr "fevereiro" #~ msgid "january" #~ msgstr "janeiro" #~ msgid "april" #~ msgstr "abril" #~ msgid "march" #~ msgstr "março" #~ msgid "may" #~ msgstr "maio" #~ msgid "june" #~ msgstr "junho" #~ msgid "july" #~ msgstr "julho" #~ msgid "august" #~ msgstr "agosto" #~ msgid "saturday" #~ msgstr "sábado" #~ msgid "friday" #~ msgstr "sexta-feira" #~ msgid "thursday" #~ msgstr "quinta-feira" #~ msgid "wednesday" #~ msgstr "quarta-feira" #~ msgid "monday" #~ msgstr "segunda-feira" #~ msgid "tuesday" #~ msgstr "terça-feira" #~ msgid "september" #~ msgstr "setembro" #~ msgid "october" #~ msgstr "outubro" #~ msgid "november" #~ msgstr "novembro" #~ msgid "december" #~ msgstr "dezembro" #~ msgid "sunday" #~ msgstr "domingo" #~ msgid "the filename" #~ msgstr "Nome do arquivo" #~ msgid "does not exist." #~ msgstr "não existe." #~ msgid "Save metadata" #~ msgstr "Salvar dados" #~ msgid "All selected image types" #~ msgstr "Selecionar todos os tipos de imagem" #~ msgid "All default image types" #~ msgstr "Todos os tiopos de imagem" #~ msgid "&Recent" #~ msgstr "&Recente" #~ msgid "&Preview" #~ msgstr "&Visualizar" #~ msgid "Open image file" #~ msgstr "Abrir arquivo da imagem" #~ msgid "Open image url" #~ msgstr "Abrir endereço da imagem" #~ msgid "Phatch Version" #~ msgstr "Phatch Version" #~ msgid "&Skip To Next Image" #~ msgstr "Pró&xima Imagem" #~ msgid "&Ignore Error" #~ msgstr "&Ignorar Erro" #~ msgid "&Default Types" #~ msgstr "&Tipo padrão" #~ msgid "&Export..." #~ msgstr "&Exportar..." #~ msgid "&File" #~ msgstr "&Arquivo" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Python Shell...\tCtrl-P" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Web&site...\tCtrl-I" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "&Escrever um plugin de ação...\tCtrl-W" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-bit pixels, true colour)" #~ msgid "the file extension" #~ msgstr "Extensão do arquivo" phatch-0.2.7/locale/ro/0000755000000000000000000000000011346363116014610 5ustar rootroot00000000000000phatch-0.2.7/locale/ro/LC_MESSAGES/0000755000000000000000000000000011346363116016375 5ustar rootroot00000000000000phatch-0.2.7/locale/ro/LC_MESSAGES/phatch.mo0000644000000000000000000002715311346363116020211 0ustar rootroot00000000000000 @AHM \jqy    & *!8(Z   0DKReu| ""( GSb|( $8 ]ktz  . BPVY.p  '! %F^em*r "'JRWk7  1MT] lw}' '#G k$y18R+n'$ 4,@m7    "'07=DJQX`elqy        $ ( < L ] v ~    # 0  !!0! A!$K!p! s!!!! !!!!! !!! "#"+"%B"h""""("%"" "# %#/#E#b#.f# ##'A$i$ |$$$$$$$$$ $$% %% '%1%2C%v%%%%:%%% % &&;#&_& ~&&#& &&&& &&'*1'&\'''+' ''''(2(=7( u((((( ((( ()) .)9)@)1^)5) ))) **!!*"C*f*!*** *2***+(+$-+R+!n+4+/++ ,, ",,,L,i,m,v, ,0,,<,- - *-5-:-B-K-S-W-^-d-m-q-v- ~----- --------&- .&...6. :.D. H. T.^.b.>3`4PL)jRn#X z_S D8Kvw|0r6B~f[=bu(&e7Vl;c.p5Mm%AO\g@i^F'I UN$?hH]-2s,W QE+"!}C* dJ9 /<:YG1oxyqkTZ{ta&Abort&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Disable Ctrl-0&Edit&Enable Ctrl-1&Expand All Ctrl-E&Help&New Ctrl-N&OK&Open... Ctrl-O&Quit Ctrl-Q&Remove Ctrl--&Show Description Ctrl-H&Tools&ViewAction ListsAddAdd an actionAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAll FilesAmountApply for future errors AsAuto ContrastBackgroundBackground OpacityBitsBleedBooleanBorderBottom Left CornerBottom Right CornerBrowseCanvasCheck images firstChecking imagesChoiceChoose File(s)Choose an Action List File...Choose an image folderCodeContrastConvert ModeConvert the color mode of an imageCopies the minimum pixel valueCopyDepthDescribe here the action list.DescriptionDisable actionDo not check images firstDownDownsize and crop image with fixed ratioDrag & DropDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoEnable actionEqualizeErrorExamplesExecuteExecute the actionExecute the action listExecuting action listFalseFileFitFloatFolderGapGrayscaleHorizontalHorizontal OffsetIf you want to contribute a plugin for Phatch,Ignore errorsImageInInclude all subfoldersInspect metadata (requires exif & iptc plugin)IntegerInteger+Integer+0InteractiveInvalid imagesInvert all pixel values above thresholdInvert the colors of an imageLabelLogMake the image smaller or biggerMaximize image contrastMethodMinimumModeMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo files or folder selected.Nothing has been logged yet.Nothing to do.OffsetOffset by distance and wrap aroundOpacityOpenOpen an action listOpens an actions listOverwrite existing imagesPathPhatch will add one for you, please check its settings.PosterizeQuit the application.RadiusRankReflectionRemoveRemove the selected actionRemove the selected action.RenameResampleResample ImageResolutionRoundRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSave Action List As...Saves an action list asScaleShadowShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSliderSolarizeSpecify locale language (for example en or en_GB)SquareStart a new action listStop for errorsStringStudy the action plugins in:The action list is empty.There is no action enabled.There should be a 'Save' action at the end.Tools to handle the current action listTop Left CornerTop Right CornerTresholdTrueUnable to open fileUnsaved Action ListUpVerboseVertical OffsetView SourceWarning: python-wxversion is not installed. Write Action PluginYou only need to know PIL to write a plugin for Phatch,actionsantialiasapplicationbackgroundbicubicbilinearbooleanbottomcenterchoicedefaultdpifalsefilefilenamefilterfloatfolderframeheightimagesintegerleftmiddlemodenearestpositive integerpositive, non-zero integerresolutionrightsizestringtagtoptransformtruetypewidthProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-08-19 11:43+0000 Last-Translator: stani Language-Team: Romanian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) &Anulează&Adaugă&Adauga... Ctrl-+&Cere Ajutor&Lot&Anulează&Dezactiveaza Ctrl-0&Editează&Activeaza Ctrl-1&Extinde Toate Ctrl-E&Ajutor&Nou Ctrl-N&OK&Deschide... Ctrl-O&Renunta Ctrl-Q&Inlatura Ctrl--&Arata Descrierea Ctrl-H&Unelte&AfiseazaLista de acţiuniAdaugaAdaugă o acţiuneAjustează de la gri la alb & negruAjustează saturaţia de la scara gri la înalteAliniază OrizontalAliniază VerticalToate fişierileCantitateAplica pentru erori viitoare CaAuto ContrastFundalOpacitatea FundaluluiBiţiSângereazăBooleanMargineColţul Stânga-JosColţul Dreapta-JosExploreazăPânzăVerifica imaginile intaiVerific pozeAlegereAlege fisierul(erele):Alege o un Fisier Lista de Actiuni...Alege un director de imaginiCodContrastMod de ConversieSchimbă tipul de culori al unei imaginiCopiază valoarea minimă a pixelilorCopiazăAdâncimeDescrie aici lista de acţiuni.DescriereDezactiveaza actiuneaNu verifica imaginile intâiJosRedu şi taie imaginea utilizând aspect fixatDrag & Drop"Arunca" orice fisiere si/sau directoare pe acest droplet Phatch pentru a le procesa in grup. Da click-dreapta sau dublu-click pentru a reveni la modul normal.Pune o umbră inceţoşată sub o pozăActiveaza actiuneaEgalizeazăEroareExempleExecutăExecută actiuneaRuleaza lista de actiuniExecut lista de actiuniFalsFişierPotriveşteFlotantDirectorSpaţiuScară de gri-uriOrizontalDecalaj orizontalDaca vrei sa contribui cu un plugin pentru Phatch,Ignoră erorileImagineÎnInclude toate sub-directoareleInspectează metadata (necesită plugin-urile exif & iptc)ÎntregÎntreg+Întreg+0InteractivImagini invalideInversează valorile tuturor pixelilor de deasupra praguluiInversează culorile de o pozaEtichetăJurnalFă imaginea mai mică sau mai mareMaximizează contrastul imaginiiMetodăMinimModMonocromaticMuta actiunea selectata in josMuta actiunea selectata in susNu e nici un fisier sau director selectat.Nimic nu a fost inregistrat pana acum.Nimic de făcut.DecalajDecalează prin distanţă si impacheteazăOpacitateDeschideDeschide o lista de actiuniDeschide o lista de actiuniSuprascrie imaginile existenteCalePhatch va adauga una pentru tine, te rog verifica-i setarile.PosterizeazăInchide aplicatia.RazăRangReflexieIndeparteazaIndeparteaza actiunea selectataInlatura actiunea selectata.RedenumeșteRe-eşantioneazăRe-eşantionează imagineaRezoluțieRotundColţuri rotunjite sau drepteDeschide %s ca un droplet cu interfaţă graficăDeschide %s ca un program fără interfaţă graficăSaturațieSalveaza Lista de Actiuni Ca...Salveaza o lista de actiuni caScaleazăUmbrăArata toti parametrii actiunilor.Arata descrierea listei de actiuniAfiseaza fisierul jurnalArata doar etichetele actiunilor.MărimeGlisorSolarizeazăSpecifică limba locală (de exemplu en sau en_GB)PătratIncepi o lista noua de actiuniOpreste la eroriŞirStudiaza plugin-urile de actiuni in:Lista de acţiuni e goală.Nu este nici o actiune activată.Ar trebui ca o actiune 'Salveaza" sa fie la sfarsit.Unelte de manevrare a listei curente de actiuniColţul Stânga-SusColţul Dreapta-SusPragAdevăratNu s-a putut deschide fişierulListă de acţiuni nesalvataSusDetaliatDecalaj verticalVezi SursaAvertisment: python-wxversion nu este instalat. Scrie Plugin de ActiuniTrebuie sa stii doar PIL pentru a scrie un plugin de Phatch,actiuniantialiasaplicaţiefondbicubicbiliniarbooleanjoscentruAlegeimplicitdpifalsfișiernume fişierfiltrufloatdosarcadruînălţimeimaginiîntregstângamijlocmodcel mai apropiatîntreg pozitivpozitiv, numar întreg diferit de zerorezoluţiedreaptamărimesiretichetăsustransformăadevărattiplăţimephatch-0.2.7/locale/ro/LC_MESSAGES/phatch.po0000644000000000000000000032142211346363116020210 0ustar rootroot00000000000000# Romanian translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-08-19 11:43+0000\n" "Last-Translator: stani \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Exemple" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Deschide %s ca un program fără interfaţă grafică" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Deschide %s ca un droplet cu interfaţă grafică" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignoră erorile" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interactiv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Specifică limba locală (de exemplu en sau en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Inspectează metadata (necesită plugin-urile exif & iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Include toate sub-directoarele" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Nu verifica imaginile intâi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Detaliat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Nimic nu a fost inregistrat pana acum." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Jurnal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Deschide" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Deschide o lista de actiuni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Execută" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Execută actiunea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Adauga" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Adaugă o acţiune" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Indeparteaza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Indeparteaza actiunea selectata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Sus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Muta actiunea selectata in sus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Jos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Muta actiunea selectata in jos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Descriere" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Arata descrierea listei de actiuni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Alege o un Fisier Lista de Actiuni..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Salveaza Lista de Actiuni Ca..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "aplicaţie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "cadru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "actiuni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Studiaza plugin-urile de actiuni in:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Daca vrei sa contribui cu un plugin pentru Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Drag & Drop" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "\"Arunca\" orice fisiere si/sau directoare pe acest droplet Phatch\n" "pentru a le procesa in grup.\n" "Da click-dreapta sau dublu-click pentru a reveni la modul normal." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch va adauga una pentru tine, te rog verifica-i setarile." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Alege fisierul(erele):" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Alege un director de imagini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "imagini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Explorează" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Fişier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Director" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "implicit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Vezi Sursa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Cale" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Nou\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Incepi o lista noua de actiuni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Deschide...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Deschide o lista de actiuni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Salveaza o lista de actiuni ca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Renunta\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Inchide aplicatia." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Adauga...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Inlatura\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Inlatura actiunea selectata." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Activeaza\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Activeaza actiunea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Dezactiveaza\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Dezactiveaza actiunea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Editează" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Arata Descrierea\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Unelte de manevrare a listei curente de actiuni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Extinde Toate\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Arata toti parametrii actiunilor." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Arata doar etichetele actiunilor." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Afiseaza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Ruleaza lista de actiuni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Afiseaza fisierul jurnal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Unelte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Ajutor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Trebuie sa stii doar PIL pentru a scrie un plugin de Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Cod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Cere Ajutor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Scrie Plugin de Actiuni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Aplica pentru erori viitoare " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Anulează" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Opreste la erori" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Verifica imaginile intai" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Suprascrie imaginile existente" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Anulează" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Lot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Imagine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Etichetă" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "etichetă" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Şir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Alegere" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Rezoluție" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "În" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Flotant" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Ca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Mod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Re-eşantionează" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicubic" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Întreg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Întreg+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Întreg+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Orizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Glisor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "fond" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Decalaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Decalaj orizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Decalaj vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Scalează" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Opacitate" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Metodă" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Adevărat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Fals" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "adevărat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "fals" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Listă de acţiuni nesalvata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Lista de acţiuni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Toate fişierile" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Descrie aici lista de acţiuni." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Ar trebui ca o actiune 'Salveaza\" sa fie la sfarsit." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Nimic de făcut." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Lista de acţiuni e goală." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Nu este nici o actiune activată." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Verific poze" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Imagini invalide" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Nu e nici un fisier sau director selectat." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Nu s-a putut deschide fişierul" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Execut lista de actiuni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "nume fişier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "dosar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "tip" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "înălţime" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "mod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "lăţime" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "mărime" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "stânga" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "centru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "dreapta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "sus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "mijloc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "jos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monocromatic" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "cel mai apropiat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "biliniar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "sir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "întreg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "întreg pozitiv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "pozitiv, numar întreg diferit de zero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "rezoluţie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "Alege" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Eroare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Avertisment: python-wxversion nu este instalat.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Adaugă" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Umbră" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filtru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Pune o umbră inceţoşată sub o poză" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Margine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Fundal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Cantitate" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transformă" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Decalează prin distanţă si impachetează" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Pânză" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Aliniază Orizontal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Aliniază Vertical" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Fă imaginea mai mică sau mai mare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Re-eşantionează imaginea" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Redenumește" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "fișier" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Pătrat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Rotund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Colţuri rotunjite sau drepte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Rază" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Colţul Stânga-Sus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Colţul Dreapta-Sus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Colţul Stânga-Jos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Colţul Dreapta-Jos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Mod de Conversie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Schimbă tipul de culori al unei imagini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Potriveşte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Redu şi taie imaginea utilizând aspect fixat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Sângerează" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Auto Contrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maximizează contrastul imaginii" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Mărime" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Copiază" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posterizează" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Biţi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Rang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solarizează" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Inversează valorile tuturor pixelilor de deasupra pragului" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Prag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Egalizează" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Scară de gri-uri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Opacitatea Fundalului" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Inversează culorile de o poza" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Reflexie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Adâncime" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Spaţiu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Copiază valoarea minimă a pixelilor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Contrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Ajustează de la gri la alb & negru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Saturație" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Ajustează saturaţia de la scara gri la înalte" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "is negative, but should be positive" #~ msgstr "Este negativ, dar ar trebui sa fie pozitiv." #~ msgid "doesn't exist" #~ msgstr "nu exista" #~ msgid "for integer" #~ msgstr "pentru numar intreg" #~ msgid "for float" #~ msgstr "pentru float" #~ msgid "is zero, but should be non-zero." #~ msgstr "este zero, dar ar trebui sa fie diferit de zero." #~ msgid "for boolean" #~ msgstr "pentru boolean" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x-bit pixeli, true colour)" #~ msgid "new" #~ msgstr "nou" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-bit pixeli, separare de culori)" #~ msgid "Filename" #~ msgstr "Numele Fișierului" #~ msgid "All selected image types" #~ msgstr "Toate tipurile de imagini selectate" #~ msgid "All default image types" #~ msgstr "Toate tipurile de imagini implicite" #~ msgid "please email" #~ msgstr "te rog da un email" #~ msgid "&File" #~ msgstr "&Fişier" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "deoarece Phatch va genera automat interfata grafica." #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Consola de Python...\tCtrl-P" #~ msgid "Create missing folders" #~ msgstr "Creeaza directoarele absente" #~ msgid "&Default Types" #~ msgstr "&Tipuri Implicite" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-bit pixeli, format video color)" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Salvează metadata (necesita plugin-urile exif & iptc)" #~ msgid "Do not create missing folders" #~ msgstr "Nu creea directoarele absente" #~ msgid "colours" #~ msgstr "culori" #~ msgid "border" #~ msgstr "border" #~ msgid "Colour" #~ msgstr "Culoare" #~ msgid "Fade all colours to gray" #~ msgstr "Toate culorile la gri" #~ msgid "Crop or add border to all sides" #~ msgstr "Redimensionează sau adaugă margine tuturor părţilor" #~ msgid "Height" #~ msgstr "Înălțime" #~ msgid "Width" #~ msgstr "Lățime" #~ msgid "Force Background Colour" #~ msgstr "Forţează Culoarea de Fundal" #~ msgid "Shadow Colour" #~ msgstr "Culoare Umbră" #~ msgid "Copy the image file" #~ msgstr "Copiază fişierul imagine" #~ msgid "Put colour under transparent image" #~ msgstr "Aşază culoare sub imaginea transparenta" #~ msgid "Rename the image file" #~ msgstr "Redenumeşte fişierul imagine" #~ msgid "Background Colour" #~ msgstr "Culoare fundal" phatch-0.2.7/locale/ru/0000755000000000000000000000000011346363116014616 5ustar rootroot00000000000000phatch-0.2.7/locale/ru/LC_MESSAGES/0000755000000000000000000000000011346363116016403 5ustar rootroot00000000000000phatch-0.2.7/locale/ru/LC_MESSAGES/phatch.mo0000644000000000000000000012316511346363116020217 0ustar rootroot00000000000000 | ++++ ,,, (,6,=,M,U,\,w,,,,,,,,,-- -1-7-V- t-- ---- --- --- .5.<. X.d.l.r.3x.. . .. .%.!/(%/GN//// / //(/ 0!0(0.0M0g0&0000@0*1.+12Z111 1 111 1&12#2)2"/2R2Z2 a2n2 u22 222 22 2 226233O3V3^3e3l33333333!3 4&4+414@4I4b4i44 44 4"444 5"*5M5l5(q5-5$555)5$63696@6G6L6U6n6t6 66,6667 +797(>7 g7!s77$8<8O8 V8d8w888\89 99$9<9R9Y9q9w99 99 9999999999;9;:B:Q:U:\:|:: : :: ::: ;>;.P; ;;; ;;);;:;< 5<0C<t<<.<<<< < ==#='*=R= p=}=====&==== =>>>#>>> ^>>>>>>>>>>>>>>>>*> ?'?E?a?z?(?"???@@@'@".@Q@f@n@s@ @@.@@@ @ A %A2A 7A"CA%fA*A8A(A;B7UB6BBBBCC2C ;C&EClC1CCC CCCC D'D.D5DPDYDlD {D DDDD D D DDDDDE'.EkVE EEEEE F F5FMFSF[FbF uF FF F FFFFFF'G#*G NG$\GGGG G>G"GH1 HRH[HbHzHHHHHHHHH( IH6IHIEIJ+*J3VJJKA7KyKK'KKKK KKKK)L 0L OIOQOZO_OgOnOOOOO OOOOOOO OOOOP PP P%P+P 2P=PCPJPOPVP]PeP PPPPPPP PPPPPPQQ.QIQ gQrQxQ}QQQQQ QQQ QQ QQ QQQQ RRRR4R9R=RST#T>TWTiT#T$T,TT U%U'CUkU#UUU UU"UV?V ]VkVV6V6VVW*WAWGWZWtWW-WWW)W/!X QX$_XXXXXkX5YKYiYY!YQYX ZNeZkZ. [*O[z[[["[?[>\G\\\:e\>\=\]] {]+]]s]_/^k^p^ l_y___ _%_M_dI`` ``X`)Danaaaa aa" b4.bcbrb bbbob?=c }cccc.c-c d"d@dAZd'd9d7d6eNeUe$^ee3ee%e ff5f6FfO}fIfOgGggkgMhihfhphWXiii[i'6j^jmjjjj(jj7j!k#2kFVk^k'k&$lKldlCmllBlmJn8Rn n!n)nn0n .ov;ooo#o<o95p1op9pppq q q)q AqNq,_q(q4q/q r %r 0r|=rrrr r8 s%Cs<isss1st.#t,Rt trtOt!Mu ou!|u$u uLuvy v3v#vgv(Zw+w~w,.x [x fx rx%x/xx[x<Nyy3y6y zz"zZ+z zz&zz.z{ ({85{?n{C{{{ |P|k|||'||| ||'| } )}4}ZK}}C}E};?~={~D~a~`Oo.  =6Y4,O=,́H )JgJ~4ɂCHB0Yvm :;C*W\*9O %DW.f22ȇR)|/̈# (;dw9Љ! ,=E\\=#<K*^:;Č0Q1 .ߍ *&<(c*/H?NP=ߏ *;ERW$|c74O D֒)) ='HLpD~ɔ5H`~Dߕ$0QhwWޗ"8$R*w; #.AP+Y8ǙM^*o('ÚhJT 5› ,06F>}hŜk.{^u 0E`g . 7 D M Zgp۠"*BQ$e  ơߡ w_y ٢   '2Pn1uL1%/:U5Ƥ ۤ (5JYm ~) ѥޥ 6C"Fiphuw^*c!GUn[i|DAR3'OR`\c<VPFte4#CQX6`B/#kxMIoz7~;;+r2} e--]8{wPYT *<SW7)@jygKrH'5s"6 y$a8 OublUL?z9,ZmLNIGi4{k%abF@h.>+v0f=!Aq |JX?~(: (>3ZdSTt.lHVfj]q" o_C xm D1W9d,\vE:0M[_^% ps gEBn}QKN/p1&Y=)$ &J52 %(name)s actions&Abort&About Phatch... Ctrl-Shift-A&Action List&Add&Add... Ctrl-+&Ask for Help&Batch&Browse Library&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Fonts&Forum... Ctrl-F&Help&Image Inspector (exif) Ctrl-I&Insert Tag in Action List...&Inspect...&License&New Ctrl-N&OK&Open...&Open... Ctrl-O&Quit Ctrl-Q&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Select&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&Update&User&ViewA html tutorial will open in your internet browser.AboutAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAfterwards you can drag&drop images on the Phatch window to batch them.Align HorizontalAlign VerticalAllAll FilesAll filesAll selected typesAllow Geek action and unsafe expressionsAlways save on desktopAmountAngleApply a transparency highlightApply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilArtworkAsAs an example try out the polaroid action list from the library.Associate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastBackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder WidthBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse %sBrowse FolderC&reditsCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCaptionCenterChangeCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletClipboardCodeColorColor to AlphaColorizeColorize grayscale imageCommonConstrain ProportionsContourContour ColorContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDecemberDelete Exif or Iptc tagsDepthDescribe here the action list.DescriptionDisable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorError: wxPython %(recommended)s (or at least %(minimal)s) can not be found, but is required.ExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFade all colors to grayFalseFebruaryFileFile NameFile(s)Fill ColorFilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsFor more information see the tutorials (Help>Documentation)FridayGPS Data (gpx)GapGeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagesImpossible to load data from action list.InIn Phatch you need to open or create an action list first.Include all subfoldersInclude imageInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LabelLeftLeft Shear AngleLibrariesLibrary Action ListsLicenseLogLook up exif and iptc tagsMake selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMayMedianMessageMetadataMethodMiddleMinimumMinutesModeMondayMonochrome (1-bit pixels, black and white)MonthsMove the selected action downMove the selected action upNo action list provided.No files or folder selected.No images have been processed to report.No save action required at the endNormalNothing has been logged yet.Nothing to do.NovemberOctoberOffsetOffset by distance and wrap aroundOne image done in %sOpacityOpenOpen &Library... Ctrl-Shift-OOpen &RecentOpen an action listOpens a ready-made actionlist from the libraryOpens an actions listOptionsOrientationOverwrite existing imagesPNG OptimizePathPerspectivePhatch can not handle %d image(s):Phatch could not create the droplet: Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch will generate the user interface automatically.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please delete "%s".Please upgrade your wxPython.PositionPosterizeProcess with recent Phatch action listQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRepeatReport a bug on launchpad.ResampleResample HighlightResample ImageResample MaskResolutionRightRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSafe mode protects you from the execution of possibly harmful scripts. Are you sure you want to disable it?SaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save last changes toSaves an action listSaves an action list asScaleSecondsSelectSelect action listSelectionSeptemberShadowShadow BlurShadow ColorShear 2d or 3dShow &Log... Ctrl-LShow &Report... Ctrl+RShow Advanced OptionsShow LogShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSliderSolarizeSorry, "%s" is not a valid path.Sorry, you need to install the %s action for this action list.Sorry, your settings seem corrupt.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:SundayTIFF CompressionTag "%s" is read only.Tag (Exif, Iptc)TextThe action list is empty.The action list only processes metadata.The droplet command for recent action lists was copied to the clipboard.The droplet command for the image inspector was copied to the clipboard.The droplet command for this action list was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This application is known to be compatible with wxPython version(s) %(recommended)s (or at least %(minimal)s), but you have %(version)s installed.This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTransformationTranslate Phatch in your native language.TranslationTransposeTresholdTrueTuesdayTypesUnable to open fileUnsaved Action ListUpUse the Image Inspector to list all the variables.ValueVerboseVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,You only need to know PIL to write a plugin for Phatch.abortactionsantialiasapplicationautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscolorcompressioncontourdaydecimaldefaultdetaildpiedge enhanceembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerinvalid literal "%s" for floatinvalid literal "%s" for integerleftmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundpathplease email: please install pyexiv2positive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth moresourcestringsubfoldertagthe filename "%s" does not existtoptransformtruetypeweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-01-17 13:48+0000 Last-Translator: Sergey Ivanov Language-Team: Russian Ubuntu Translators MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) Language: ru %(name)s действия&Прервать&О Phatch... Ctrl-Shift-A&Список задач&Добавить&Добавить... Ctrl-+Попро&сить о помощи&Пакетная обработкаПросмотреть &БиблиотекуО&тменитьЗ&акрыть&Свернуть все Ctrl-Shift-E&Всё равно продолжитьВ&ыключить Ctrl-0&Документация... Ctrl-M&Ниже Ctrl-Down&Дроплет Ctrl-D&Правка&Включить Ctrl-1&Выполнить... Ctrl-Return&Раскрыть все Ctrl-E&Экспортировать&Шрифты&Форум... Ctrl-F&СправкаEXIF &инспектор изображений Ctrl-I&Вставтиь тэг в список задач...И&следовать...&Лицензия&Создать Ctrl-N&ОК&Открыть...&Открыть... Ctrl-OВ&ыход Ctrl-Q&Удалить Ctrl--&Сообщить об ошибке... Ctrl-B&Сохранить Ctrl-S&Выбрать&Показать описание Ctrl-H&Показать шаблон действияС&ервис&Перевести Phatch... Ctrl-TВы&ше Ctrl-UpОбновить&Пользователь&ВидУрок по созданию действий сейчас откроется в веб-браузере.О программеСписки действийСписок действийДобавитьДобавить действиеСкорректировать яркость от черного к беломуРастянуть градации серого до черного или белогоСкорректировать насыщенность изображенияПотом вы сможете в окно Phatch перетащить изображения в пакетВыровнять по горизонталиВыровнять по вертикалиВсеВсе файлыВсе файлыВсе выбранные типыПозволить не безопасные выроженияВсегда сохранять на рабочем столеКоличествоУголПрименить прозрачное выделениеПрименить маску полупрозрачностиПрименить для будущих ошибок В виде мозаики, с масштабированием и прозрачностьюАпрельГрафическое оформлениеКакВ качестве примера попробуй список задач «Polaroid» из библиотеки.Ассоциировать изображения со Списком Действий в %s...Ассоциировать изображения с Инспектором Изображений в %s...Ассоциировать изображения со Списком Недавних Действий в %s...АвгустАвтоматическиАвтоконтрастФонЦвет заднего фонаНепрозрачность фонаОбработать все изображения при помощи PhatchМассовая обработка с помощью списка недавних действийРазрядовЧерныйВыпуск под обрезРазмывание, повышение резкости, тиснение и пр, ...Логическая переменнаяОбрамлениеШирина границыПо нижнему краюВнизу слеваНижний левый уголВнизу справаНижний правый уголКоэффициент искажения внизуЯркостьПросмотретьОбзор %sУказать папку&БлагодарностиНевозможно применить действие %(a)s к изображению '%(i)s' в папке:Невозможно применить действие %(a)s:ХолстПодписьПо центруИзменитьСначала проверить снимкиПроверяются изображенияВыборВыберите файл(ы)Укажите папкуВыберите файл со списком действий...Выберите изображениеВыберите папку с изображениямиВыберите каталог для дроплетаБуфер обменаКодЦветЦвет в прозрачностьТонированиеТонирование ч/б изображенийОбщее значениеСохранять пропорцииКонтурЦвет контураКонтрастСмена цветового пространстваКонвертировать цветовой режим изображенияКопирует максимальное значение пикселяСкопировать усредненное значение пикселовКопирует минимальное значение пикселаСкопировать наиболее часто встречащееся значение пикселаСкопировать взвешенные значения пикселовКопированиеСкопировать список действий как &команду в буфер обменаКопировать &Инспектор Изображений как Команду в Буфер обменаКопировать &Недавнее как Команду в Буфер обменаБлагодарностиОбрезкаОбрезать или расширить холст без масштабированияОбрезать изображениеКрестомНастраиваемыйОтрезатьДнейДекабрьУдалить Exif или Iptc тегиГлубинаОпишите здесь список действийОписаниеВыключить действиеПоказать информацию об этой программеНе выполнять предварительную проверку изображенийВы хотите продолжить?Хотите перезаписать?ДокументацияНижеУменьшить и кадрировать изображениеПеретаскиваниеНарисовать контур на углах картинкиПеретащите файлы или папки на этот дроплет Phatch для их пакетной обработки Переключение в нормальный вид по правому или двойному клику.Поместить размытую тень под изображениеДобавить зеркальное отражениеЭффектВключить действиеВведите URL изображенияВыравниваниеВыровнять цветовой балансОшибкаОшибка: wxPython %(recommended)s (как минимум %(minimal)s) не найден, но необходим.ПримерыВыполнитьВыполнить действиеВыполнить все действия из спискаВыполняются действия из спискаРасширить под новый размерПреобразовать в оттенки серогоНеправильноФевральФайлИмя файлаФайл(ы)Цвет заливкиФильтрПодгонкаОтразить по горизонталиОтразить по вертикалиОтразить или повернуть на 90°Число с плавающей запятойПапкаШрифтШрифтыС полным описание вы можете ознакомиться в документации (Help>Documentation)ПятницаИнформация GPS (gpx)ПромежутокГеотэгПерейти к документации для PhatchПерейти на форум PhatchПерейти на домашнюю страницу PhatchГрадации серогоВыделитьУра, проблем не обнаружено!По горизонталиВыравнять по горизонталиСмещение по горизонталиЧасовЕсли вы перезапустите %s, действие появится в контекстном меню.Если хотите добавить своё расширения в Phatch,Пропускать ошибкиСнимокПроверка картинкиПути до изображенияСнимкиНе могу прочесть содержимое списка задач.ВЧтобы использовать Phatch, вам надо открыть или создать список задач.Включая все вложенные папкиВставлять картинкуИниициировать шрифты (только для установочных скриптов)Проверить EXIF и IPTC тэгиПроверить EXIF & IPTC тэгиПросмотреть метаданные (необходимо расширение для поддержки EXIF и IPTC)Проверить используя PhatchЦелоеЦелое+Целое+0Интерактивный режимНекорректные изображенияИнвертированиеИнвертировать значения всех пикселов выше порогаИнвертировать цвета изображенияКачество JPEGМаксимальный объём JPEG файлаПогрешность в объёме JPEG файлаЯнварьИюльИюньСохранять существующие файлы (не перезаписывать)МеткаПо левому краюЛевый угол искаженияБиблиотекиБиблиотека списков задачЛицензияЖурналПросмотреть метаданные Exif и IPTCСделать выбранный цвет прозрачнымУменьшить или увеличить изображениеМартФайл знакаМаскаМаксимизировать контрастность изображенияМаксимумМайУсредненное значениеСообщениеМетаданныеСпособПо серединеМинимальное значениеМинутРежимПонедельникМонохромный (1-разрядные пикселы, ч/б изображение)МесяцевПереместить выбранное действие внизПереместить выбранное действие вверхСписок действий не предоставленНи один файл или папка не выбраны.В отчет не попало ни одно изображениеНет необходимости в действии сохранить в самом концеОбычныйЖурнал регистрации еще не содержит записейНет выполняемых действийНоябрьОктябрьСмещениеСместить и завернуть изображениеОдно изображение готово в «%s»НепрозрачностьОткрытьОткрыть &Библиотеку... Ctrl-Shift-OПо&следние файлыОткрыть список действийОткрыть готовый список задач из библиотекиОткрыть список действийПараметрыПоложениеПерезаписать существующие изображенияОптимизировать PNGМестоположениеПерспективаPhatch не может обрабатывать %d изображений:Phatch не смог создать дроплет: Phatch не может установить действие в %s:Патч не смог установить ето дополнение.Phatch удачно создал дроплет.Phatch попытался деинсталлировать себя из Windows ExplorerPhatch автоматически добавит его. Просмотрите параметры программы.Phatch автоматически сгенирирует пользовательский интерфейс.Phatch с %sПакетный обработчик фотографийУстановите, пожалуйста (ещё раз).Пожалуйста, удалите "%s".Пожалуйста, установите более новую версию wxPython.ПозицияПостеризацияОбработать с помощью списка недавних действий PhatchЗавершить работу с приложениемRGBA (4x8-разрядное, RGB с полупрозрачной маской)РадиусВзвешенное значениеОтражениеУдалитьУдалить Ассоциацию из %s...Удалить выбранное действиеУдалить выбранное действиеПереименованиеПовторовДоложить об ошибке в програмном коде на launchpadСмена разрешенияРесемплировать выделениеИнтерполяцияИнтерполяция маскиРазрешениеПо правому краюПравый угол искаженияПовернутьПовернуть на 180°Повернуть на 270°Повернуть на 90°Повернуть на произвольный уголЗакругление угловЗакругленныйЗакруглить или перекрестить углыЗапустить %s как дроплет с графическим интерфейсомЗапустить %s в консоли без графического интерфейсаБезопасный режим предотвращает выполнение возможно не безопасных скриптов. Ты уверен, что хочешь отменить безопасный режим?НасыщенностьСубботаСохранитьСохранить &как... Ctrl-Shift-SСохранить список действий как...Сохранить последние изменения вСохранить список действийСохранить список действий под другим именемМасштабСекундВыберитеВыберите список действийВыделениеСентябрьТеньРазмывание тениЦвет тениИскривление в 2D или 3DПоказать &журнал... Ctrl-LПоказачть &рапорт... Ctrl+RДополнительные параметрыПоказать журналПоказывать все параметры всех действийПоказать описание списка действийПоказать файл журнала выполненных действийПоказывать только метки действийРазмерПолзунокСоляризацияПростите, но "%s" не верно указаный путьИзвините, вам необходимо установить %s действие для данного списка действий.Простите, но ваши настройки кажется повреждены.ИсточникУкажите язык системного окружения (например, en или en_GB)СпонсорыКвадратныйСоздать новый список действийОстанавливаться при ошибкахСтрокаИзучите расширения действий из папкиВоскресеньеСжатие TIFFTag "%s" только для чтенияТэг (Exif, Iptc)ТекстСписок действий пуст.Список задач лишь обработает мета данные.Команда запуска выполненных списков действий скопирована в буфер обменаКоманда запуска инспектора изображений была скопирована в буфер обменаКоманда выполнения этого списка действий скопирована в буфер обменаНи одно действие не включено.В конце должно присутствовать действие «Сохранить».Ети дополнения были инсталлированы: Это приложение свместимо с версиями wxPython %(recommended)s (как минимум %(minimal)s), но у вас установлена версия %(version)s.Такой файл уже существует.Это также требует установки пакета python-nautilus.ЧетвергМозаикаУтилиты для поддержки текущего списка действийПо верхнему краюСверху слеваВерхний левый уголСверху справаВерхний правый уголВерхний угол искаженияПреобразованиеПеревести Phatch на ваш родной языкПереводТранспозицияПорогПравильноВторникТипыНе удалось открыть файлНесохраненный список действийВышеИспользуйте Инспектор Изображений для получения списка всех переменныхЗначениеПодробноВыравнять по вертикалиСмещение по вертикалиПросмотреть исходникПереключится в режим дроплета для перетаскивания файловПредупреждение: python-wxversion не установлен. Водяной знакСредаЧто вы хотите сделать сейчас?БелыйНаписать новое действиеВписать тэгВписать новое значение к тэгуВставить текст в заданной позицииГодаВы можете использовать файлы со следующими расширениямиМожно вставить как текст в свойства при повторном запуске.Вам необходимо установить Расширения Python Win32 для работы этой опции.Для создания расширения Phatch вам нужно знать лишь PIL,Тебе всего лишь надо знать «PIL» для создание модулей расширений для Phatch.ПрерватьдействияразгладитьприложениеавтоматическифонБикубическаяБилинейнаяразмазатьбулевоснизуРасширьте область поискапо центрувыборЩелчок по + добавляет действияЦветсжатиеКонтурденьдесятичноепо умолчаниюуровень деталиdpiувеличение краяВыделениенетДействия с файламиимя файларазмер файлаФильтрынайти краяс плавающей запятойпапкаимя папкирамкавысотачасигнорироватьизображенияцелоезначение числа с плавающей запятой не может быть указано как «%s»значение целого числа не может быть указано как «%s»влевометаданныепо серединеминутарежиммесяцназвание месяцаБлижайший соседнетНи одного тэга %s не найденопутьпожалуйсто отправь по электронной почте: Необходимо установить pyexiv2положительное целоеположительное, не нулевое целоеНеобходимо установить «pyexiv2»разрешениевправокорневой каталогсекундауточнитьразмерПропуститьгладкийещё гладчеисточникстрокаподкаталогтэгфайл «%s» не существуетсверхуТрансформациидатипдень неделиимя дня неделиширинасОшибка версии wxPythonгоддаphatch-0.2.7/locale/ru/LC_MESSAGES/phatch.po0000644000000000000000000037577411346363116020241 0ustar rootroot00000000000000# Russian translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # Koptev Oleg , 2009 msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-01-17 13:48+0000\n" "Last-Translator: Sergey Ivanov \n" "Language-Team: Russian Ubuntu Translators\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: ru\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Проверить используя Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Проверить EXIF и IPTC тэги" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Примеры" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Запустить %s в консоли без графического интерфейса" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Запустить %s как дроплет с графическим интерфейсом" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Всегда сохранять на рабочем столе" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Пропускать ошибки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Иниициировать шрифты (только для установочных скриптов)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Интерактивный режим" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Сохранять существующие файлы (не перезаписывать)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Укажите язык системного окружения (например, en или en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" "Просмотреть метаданные (необходимо расширение для поддержки EXIF и IPTC)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Нет необходимости в действии сохранить в самом конце" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Включая все вложенные папки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Не выполнять предварительную проверку изображений" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "Позволить не безопасные вырожения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Подробно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "Можно вставить как текст в свойства при повторном запуске." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" "Извините, вам необходимо установить %s действие для данного списка действий." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "Команда выполнения этого списка действий скопирована в буфер обмена" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" "Команда запуска выполненных списков действий скопирована в буфер обмена" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "Команда запуска инспектора изображений была скопирована в буфер обмена" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" "Чтобы использовать Phatch, вам надо открыть или создать список задач." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "В качестве примера попробуй список задач «Polaroid» из библиотеки." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "Потом вы сможете в окно Phatch перетащить изображения в пакет" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" "С полным описание вы можете ознакомиться в документации (Help>Documentation)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "В отчет не попало ни одно изображение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "Ура, проблем не обнаружено!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Журнал регистрации еще не содержит записей" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Журнал" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "Прервать" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "Пропустить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "игнорировать" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "Щелчок по + добавляет действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "По&следние файлы" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Открыть" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Открыть список действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Выполнить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Выполнить действие" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Добавить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Добавить действие" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Удалить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Удалить выбранное действие" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Выше" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Переместить выбранное действие вверх" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Ниже" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Переместить выбранное действие вниз" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Проверка картинки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Просмотреть метаданные Exif и IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Описание" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Показать описание списка действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "Библиотека списков задач" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Выберите файл со списком действий..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Сохранить список действий как..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Такой файл уже существует." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Хотите перезаписать?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "%(name)s действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "приложение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "рамка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Урок по созданию действий сейчас откроется в веб-браузере." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" "Тебе всего лишь надо знать «PIL» для создание модулей расширений для Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "Phatch автоматически сгенирирует пользовательский интерфейс." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Изучите расширения действий из папки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Если хотите добавить своё расширения в Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "пожалуйсто отправь по электронной почте: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "Простите, но \"%s\" не верно указаный путь" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Перетаскивание" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Перетащите файлы или папки на этот дроплет Phatch\n" "для их пакетной обработки\n" "Переключение в нормальный вид по правому или двойному клику." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch автоматически добавит его. Просмотрите параметры программы." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "Список задач лишь обработает мета данные." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Сохранить последние изменения в" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" "Безопасный режим предотвращает выполнение возможно не безопасных скриптов.\n" "Ты уверен, что хочешь отменить безопасный режим?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Выберите каталог для дроплета" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch удачно создал дроплет." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "Phatch не смог создать дроплет: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "Не могу прочесть содержимое списка задач." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Выберите список действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "Простите, но ваши настройки кажется повреждены." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "Пожалуйста, удалите \"%s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Укажите папку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Выберите файл(ы)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Выберите папку с изображениями" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "Все выбранные типы" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "Буфер обмена" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Просмотреть" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "Обзор %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Файл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Папка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "по умолчанию" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Просмотреть исходник" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "Расширьте область поиска" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Местоположение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Открыть..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "И&следовать..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "&Вставтиь тэг в список задач..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Создать\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Создать новый список действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Открыть...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Открыть список действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "Открыть &Библиотеку...\tCtrl-Shift-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "Открыть готовый список задач из библиотеки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Сохранить\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Сохранить список действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Сохранить &как...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Сохранить список действий под другим именем" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Скопировать список действий как &команду в буфер обмена" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Копировать &Недавнее как Команду в Буфер обмена" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Копировать &Инспектор Изображений как Команду в Буфер обмена" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&Экспортировать" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "В&ыход\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Завершить работу с приложением" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "&Список задач" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Добавить...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Удалить\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Удалить выбранное действие" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Включить\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Включить действие" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "В&ыключить\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Выключить действие" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "Вы&ше\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Ниже\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Правка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Дроплет\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Переключится в режим дроплета для перетаскивания файлов" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Показать описание\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Утилиты для поддержки текущего списка действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Раскрыть все\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Показывать все параметры всех действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Свернуть все\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Показывать только метки действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Вид" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Выполнить...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Выполнить все действия из списка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "EXIF &инспектор изображений\tCtrl-I" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "&Пользователь" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "Просмотреть &Библиотеку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "Показачть &рапорт...\tCtrl+R" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Показать &журнал...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Показать файл журнала выполненных действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "&Шрифты" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "Обновить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "С&ервис" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Перейти на домашнюю страницу Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Документация...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Перейти к документации для Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Форум...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Перейти на форум Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Перевести Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Перевести Phatch на ваш родной язык" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Сообщить об ошибке...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Доложить об ошибке в програмном коде на launchpad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&О Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Показать информацию об этой программе" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Справка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Показать журнал" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Для создания расширения Phatch вам нужно знать лишь PIL," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Показать шаблон действия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Код" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "Попро&сить о помощи" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&ОК" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Написать новое действие" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Применить для будущих ошибок " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Прервать" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Сообщение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Всё равно продолжить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Параметры" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Типы" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Указать папку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Источник" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Файл(ы)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Останавливаться при ошибках" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Сначала проверить снимки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Перезаписать существующие изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "О&тменить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Пакетная обработка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Снимок" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Метка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "тэг" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Логическая переменная" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Строка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Выбор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Цвет" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Разрешение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Имя файла" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "В" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Число с плавающей запятой" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Как" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Режим" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Смена разрешения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "Бикубическая" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Целое" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Целое+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Целое+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "По горизонтали" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Ползунок" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "Необходимо установить «pyexiv2»" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Январь" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Февраль" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Март" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "Апрель" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Май" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Июнь" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Июль" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "Август" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Сентябрь" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Октябрь" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "Ноябрь" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "Декабрь" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Понедельник" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Вторник" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Среда" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Четверг" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Пятница" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Суббота" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Воскресенье" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "Tag \"%s\" только для чтения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "фон" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "источник" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Все" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "По центру" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Настраиваемый" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "По середине" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "По левому краю" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "По правому краю" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "По верхнему краю" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "По нижнему краю" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Внизу слева" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Внизу справа" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Сверху слева" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Сверху справа" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Положение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Позиция" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Смещение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Смещение по горизонтали" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Смещение по вертикали" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Выравнять по горизонтали" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Выравнять по вертикали" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Мозаика" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Масштаб" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Файл знака" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Непрозрачность" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Способ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Автоматически" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Пакетный обработчик фотографий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Правильно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Неправильно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "да" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "нет" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Несохраненный список действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Списки действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Все файлы" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Опишите здесь список действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "В конце должно присутствовать действие «Сохранить»." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "с" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Ассоциировать изображения со Списком Действий в %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Ассоциировать изображения со Списком Недавних Действий в %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Ассоциировать изображения с Инспектором Изображений в %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Удалить Ассоциацию из %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Массовая обработка с помощью списка недавних действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Проверить EXIF & IPTC тэги" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Нет выполняемых действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Список действий пуст." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Ни одно действие не включено." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Проверяются изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch не может обрабатывать %d изображений:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Некорректные изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Ни один файл или папка не выбраны." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Не удалось открыть файл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Невозможно применить действие %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Невозможно применить действие %(a)s к изображению '%(i)s' в папке:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Выполняются действия из списка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Одно изображение готово в «%s»" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Выберите" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "день" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "имя папки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "имя файла" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "размер файла" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "папка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "час" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "минута" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "месяц" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "название месяца" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "путь" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "корневой каталог" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "секунда" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "подкаталог" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "тип" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "день недели" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "имя дня недели" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "год" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "сжатие" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "высота" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "режим" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "ширина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "размер" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" "Используйте Инспектор Изображений для получения списка всех переменных" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Вы можете использовать файлы со следующими расширениями" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "влево" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "по центру" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "вправо" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "сверху" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "по середине" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "снизу" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Монохромный (1-разрядные пикселы, ч/б изображение)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-разрядное, RGB с полупрозрачной маской)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "размазать" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "Контур" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "уровень детали" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "увеличение края" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "Выделение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "найти края" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "гладкий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "ещё гладче" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "уточнить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "Ближайший сосед" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "Билинейная" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "разгладить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Повернуть на 90°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Повернуть на 180°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Повернуть на 270°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Отразить по горизонтали" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Отразить по вертикали" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Обычный" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "строка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "целое" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "значение целого числа не может быть указано как «%s»" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "положительное целое" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "положительное, не нулевое целое" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "разрешение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "с плавающей запятой" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "значение числа с плавающей запятой не может быть указано как «%s»" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "булево" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "выбор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "файл «%s» не существует" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "автоматически" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Ошибка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "&Выбрать" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Предупреждение: python-wxversion не установлен.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" "Ошибка: wxPython %(recommended)s (как минимум %(minimal)s) не найден, но " "необходим." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Установите, пожалуйста (ещё раз)." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" "Это приложение свместимо с версиями\n" "wxPython %(recommended)s (как минимум %(minimal)s),\n" "но у вас установлена версия %(version)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Пожалуйста, установите более новую версию wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Ошибка версии wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "&Благодарности" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Лицензия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "З&акрыть" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "О программе" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Благодарности" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Документация" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Перевод" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Графическое оформление" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Библиотеки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Спонсоры" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Лицензия" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Значение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Снимки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Все файлы" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Выберите изображение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Введите URL изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "Необходимо установить pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "Ни одного тэга %s не найдено" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Добавить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "десятичное" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "нет" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "да" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Выделение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Шрифты" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Тень" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "Фильтры" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Поместить размытую тень под изображение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Обрамление" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Размывание тени" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Цвет заднего фона" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Цвет тени" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Фон" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Эффект" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Размывание, повышение резкости, тиснение и пр, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Фильтр" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Повторов" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Количество" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "Трансформации" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Сместить и завернуть изображение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Холст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Обрезать или расширить холст без масштабирования" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Выровнять по горизонтали" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Выровнять по вертикали" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Цвет в прозрачность" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "Цвет" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Сделать выбранный цвет прозрачным" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Водяной знак" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "В виде мозаики, с масштабированием и прозрачностью" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Преобразовать в оттенки серого" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Уменьшить или увеличить изображение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Сохранять пропорции" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Интерполяция" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Транспозиция" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Отразить или повернуть на 90°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Переименование" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "Действия с файлами" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Крестом" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Закругленный" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Квадратный" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Закругление углов" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Закруглить или перекрестить углы" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Радиус" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Верхний левый угол" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Верхний правый угол" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Нижний левый угол" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Нижний правый угол" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Выделить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "Применить прозрачное выделение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "Ресемплировать выделение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Смена цветового пространства" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Конвертировать цветовой режим изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Подгонка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Уменьшить и кадрировать изображение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Выпуск под обрез" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Автоконтраст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Максимизировать контрастность изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Отрезать" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Сохранить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "Оптимизировать PNG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "Качество JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "Максимальный объём JPEG файла" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "Погрешность в объёме JPEG файла" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "Сжатие TIFF" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Метаданные" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Усредненное значение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Скопировать усредненное значение пикселов" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "метаданные" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "Изменить" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Секунд" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Минут" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Часов" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Дней" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Месяцев" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Года" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Маска" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Применить маску полупрозрачности" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Интерполяция маски" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Текст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Вставить текст в заданной позиции" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Шрифт" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Размер" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Тонирование" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Тонирование ч/б изображений" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Черный" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Белый" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Копирование" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Постеризация" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Разрядов" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Вписать тэг" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "Вписать новое значение к тэгу" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Тэг (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "Ширина границы" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Взвешенное значение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Скопировать взвешенные значения пикселов" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Соляризация" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Инвертировать значения всех пикселов выше порога" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Порог" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Выравнивание" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Выровнять цветовой баланс" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Обрезка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Повернуть" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Градации серого" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Преобразование" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Угол" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Дополнительные параметры" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Обрезать изображение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Повернуть на произвольный угол" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Расширить под новый размер" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Непрозрачность фона" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Инвертирование" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Инвертировать цвета изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Геотэг" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "Информация GPS (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Отражение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Добавить зеркальное отражение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Глубина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Промежуток" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Общее значение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Скопировать наиболее часто встречащееся значение пиксела" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Минимальное значение" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Копирует минимальное значение пиксела" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Контур" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Нарисовать контур на углах картинки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Цвет контура" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Цвет заливки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "Вставлять картинку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Перспектива" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Искривление в 2D или 3D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Левый угол искажения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Верхний угол искажения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Коэффициент искажения внизу" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Правый угол искажения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Контраст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Растянуть градации серого до черного или белого" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Удалить Exif или Iptc теги" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Максимум" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Копирует максимальное значение пикселя" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Насыщенность" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Скорректировать насыщенность изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Яркость" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Скорректировать яркость от черного к белому" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "Подпись" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Ети дополнения были инсталлированы:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Патч не смог установить ето дополнение." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch попытался деинсталлировать себя из Windows Explorer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "Вам необходимо установить Расширения Python Win32 для работы этой опции." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Список действий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Список действий не предоставлен" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Пути до изображения" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Вы хотите продолжить?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Что вы хотите сделать сейчас?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Если вы перезапустите %s, действие появится в контекстном меню." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch не может установить действие в %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Это также требует установки пакета python-nautilus." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Обработать все изображения при помощи Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "Phatch с %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Обработать с помощью списка недавних действий Phatch" #~ msgid "doesn't exist" #~ msgstr "не существует" #~ msgid "Colour" #~ msgstr "Цвет" #~ msgid "Filename" #~ msgstr "Имя файла" #~ msgid "All selected image types" #~ msgstr "Все выбранные типы файлов" #~ msgid "All default image types" #~ msgstr "Все типы файлов по умолчанию" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "поскольку Phatch сам создаст пользовательский интерфейс." #~ msgid "please email" #~ msgstr "напишите по адресу" #~ msgid "&File" #~ msgstr "&Файл" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "&Написать новое действие...\tCtrl-W" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Написать новое действие для Phatch при помощи PIL." #~ msgid "&Skip To Next Image" #~ msgstr "П&ерейти к следующему снимку" #~ msgid "&Ignore Error" #~ msgstr "Про&игнорировать ошибку" #~ msgid "Create missing folders" #~ msgstr "Создать отсутствующие папки" #~ msgid "Phatch Version" #~ msgstr "Phatch" #~ msgid "Height" #~ msgstr "Высота" #~ msgid "Shadow Colour" #~ msgstr "Цвет тени" #~ msgid "Background Colour" #~ msgstr "Цвет фона" #~ msgid "Width" #~ msgstr "Ширина" #~ msgid "does not exist." #~ msgstr "не существует." #~ msgid "is invalid." #~ msgstr "не действителен." #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Сохранить метаданные (требует расширения Exif и IPTC)" #~ msgid "colours" #~ msgstr "Действия с цветами" #~ msgid "Fade all colours to gray" #~ msgstr "Убрать цветность изображения" #~ msgid "border" #~ msgstr "Действия с краями" #~ msgid "Crop or add border to all sides" #~ msgstr "Обрезать или добавить край ко всем сторонам" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Понизить разрядность цветовых каналов" #~ msgid "Copy the image file" #~ msgstr "Скопировать файл изображения" #~ msgid "Put colour under transparent image" #~ msgstr "Поместить цвет под прозрачное изображение" #~ msgid "Rename the image file" #~ msgstr "Переименовать файл изображения" #~ msgid "Resample Shadow" #~ msgstr "Интерполяция тени" #~ msgid "Save an image" #~ msgstr "Сохранить изображение" #~ msgid "watermark" #~ msgstr "Водяной знак" #~ msgid "january" #~ msgstr "Январь" #~ msgid "february" #~ msgstr "Февраль" #~ msgid "march" #~ msgstr "Март" #~ msgid "april" #~ msgstr "Апрель" #~ msgid "may" #~ msgstr "Май" #~ msgid "june" #~ msgstr "Июнь" #~ msgid "july" #~ msgstr "Июль" #~ msgid "august" #~ msgstr "Август" #~ msgid "september" #~ msgstr "Сентябрь" #~ msgid "october" #~ msgstr "Октябрь" #~ msgid "november" #~ msgstr "Ноябрь" #~ msgid "december" #~ msgstr "Декабрь" #~ msgid "monday" #~ msgstr "Понедельник" #~ msgid "tuesday" #~ msgstr "Вторник" #~ msgid "wednesday" #~ msgstr "Среда" #~ msgid "thursday" #~ msgstr "Четверг" #~ msgid "friday" #~ msgstr "Пятница" #~ msgid "saturday" #~ msgstr "Суббота" #~ msgid "sunday" #~ msgstr "Воскресенье" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Градации серого (8-разрядное, ч/б изображение)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-разрядное, полноцветное изображение)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-разрядное, цветоделенное изображение)" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-разрядное, формат цветного видео)" #~ msgid "Save metadata" #~ msgstr "Сохранить метаданные" #~ msgid "&Recent" #~ msgstr "&Недавние" #~ msgid "drag & drop any image here" #~ msgstr "Перетащите сюда изображение" #~ msgid "Open image file" #~ msgstr "Открыть файл изображения" #~ msgid "Open image url" #~ msgstr "Открыть изображение по URL" #~ msgid "Copy cell text" #~ msgstr "Скопировать текст ячейки" #~ msgid "&Export..." #~ msgstr "&Экспортировать..." #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Оболочка Python...\tCtrl-P" #~ msgid "Open a python shell for introspection" #~ msgstr "Открыть оболочку Python для наблюдения" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "&Веб-сайт...\tCtrl-I" #~ msgid "Do not create missing folders" #~ msgstr "Не создавать отсутствующие каталоги" #~ msgid "Force Background Colour" #~ msgstr "Принудительный цвет фона" #~ msgid "Scale down only" #~ msgstr "Только уменьшать" #~ msgid "By offset" #~ msgstr "По смещению" #~ msgid "new" #~ msgstr "новая" #~ msgid "for integer" #~ msgstr "для целого числа" #~ msgid "&Default Types" #~ msgstr "&Типы по умолчанию" #~ msgid "invalid syntax" #~ msgstr "Неверный синтаксис" #~ msgid "the variable" #~ msgstr "Переменная" #~ msgid "invalid literal" #~ msgstr "Неправильный символ" #~ msgid "the file extension" #~ msgstr "расширение файла" #~ msgid "the filename" #~ msgstr "имя файла" #~ msgid "the integer value" #~ msgstr "целочисленное значение" #~ msgid "is zero, but should be non-zero." #~ msgstr "ноль, но должен быть не ноль" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-битные целые пиксели)" #~ msgid "is negative, but should be positive" #~ msgstr "отрицательное, а должно быть положительным" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32-битные пиксели с плавающей точкой)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8-бит пиксели, отмеченные при помощи цветовой палитры)" #~ msgid "a filename with a valid extension was expected." #~ msgstr "предполагалось имя файла с корректным расширением." #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "" #~ "Команда дроплета для этого списка действий была скопирована в буфер обмена." #~ msgid "Only an image file is allowed." #~ msgstr "Разрешены только файлы изображений." #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch не смог создать дроплет:" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Этот список операций был создан предыдущей версией %(name)s.\n" #~ "\n" #~ msgid "for float" #~ msgstr "для значений с плавающей запятой" #~ msgid "for boolean" #~ msgstr "для булевых" #~ msgid "the float value" #~ msgstr "для значений с плавающей запятой" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "&Инспектор изображений (exif)\tCtrl-Space" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Подробнее см. «Сервис → Показать журнал»" phatch-0.2.7/locale/sk/0000755000000000000000000000000011346363116014605 5ustar rootroot00000000000000phatch-0.2.7/locale/sk/LC_MESSAGES/0000755000000000000000000000000011346363116016372 5ustar rootroot00000000000000phatch-0.2.7/locale/sk/LC_MESSAGES/phatch.mo0000644000000000000000000013305311346363116020203 0ustar rootroot00000000000000|.p>q>>&>C> ? #?-?4? R?_?w?|? ? ???????? @@*@C@S@c@i@x@@@@@@@@A A A#A'A0A@A HAUAhA wAAA AAA ABB!B =BIBQBWB]BpB xB3BBB B BBB B%B!C(?ChCyCC C CCC(CC'D,D#CDgDnDtD{DDD&DDE E* E.7E2fEEE E E E EEE F&.FUFZF`FfFnFF F FF F"F"FG G G G,G1G 8GDG WGdGxGG G G GG G G0G H HH'&HNHUHeHH HH6HH I I I,I4I;IBIKI[InI~IIIIII!I JJJ J,J;JDJ]JeJ+mJJJJJ JJJJ K" K0KOKmK"KKK(K-K$*LOLgLzLLLL LLL)LMM%M,M3M"8M[MdM }MM MM MMM M MBNDN,SNNNN NN5NO(O GO!SOuOO$P:P-MP{P PPPPPPPPP Q Q8Q NQ \QfQ*mQQQQQQ Q QQQ QQR RRR#R3RMR SR _RmR~RRR;RR9RS$S6SESVSZS*_SSSSSSS S TT ,T6T ITTTmTT>T.T TUU U "U .U:U)AUkUUU U0UUU.VFVZVbV kV uVVV'VV VVVWWW&"W3IW}W,WW WWW W WWX XX!X YEYMYUY\YaYfY*mYY YYY.YZ-Z"JZmZrZyZZZZZZ"ZZZ[[["[ @[ M[Z[.n[[[ [[[.[ \ $\1\7\ S\t\ y\ \"\%\*\8](@];i]7]6]^#^9^>P^^^^^^ ^^& _2_ B_!M_o_ _1____*_ `!`6`=`[`v`` ` `` ` `` ``aa2a Aa OaZa`asaa a a aa aaaa bb'*bRb nbybbbb bbbbc)cAcGc Wc cc pc|c!ccccc cc dd0d CdMd Vd`d gd sddddd dddde*e3e'Ee#me e$eeeeefff 'f2fDNf8f7f>g"Cgfg1mgggggggghh!h2h6hPhghxh}hHh#hi+ i3LiiiAiij jj&j'6j^jbjkj {jjj j'jjj)j %k 1k=k Tk^kgklktk"zkkkkkkl)l1l4l JlVl mlwl2lllll l llm m!m 1m(=m,fm mm m m mmm mm nn'n*Fnqn4wn?nAn7.o7fo.oooo o o oppppp%p9pJpQpXpqp wpppppppp pppppppp pq q qq%q,q1q8q?q Gqhq qqqqqqqqq qr r rr "r.r3rBrYr`rqrr rrrrrrrr rrr rs"s +s8Ls4s:s6s,t 0t :tGtLtQtYt atmtstxtttt;vRv.kv?vv v ww)w8wRw[w nw|www w wwwwx&x8xPx`xoxxxxxxxx x#x y-y 6y CyQy Uybyvy~yyyyyy zz&z%>zdz zz zzz zz{ {6{ K{V{\{ k{y{{ {!{){&{|*|@|H|X|%h||*||;|(},A}n}v}{}$}} }'} ~~~.~4M~:~~ ~ ~~'~ %3.B+q  )%4O  ǀ ـ %3B FSc8x Ɓ(ԁ4KTAm#ӂۂ $4Rgo$ʃ   , :D\d*l  Ƅӄ܄ &,"S&v(0ƅ 4<8<uц  : HU]| #҇#ۇ-IO^{Oֈ'-B XfLm9&*/Z! B>O Ջ  />Up  / Ō!Ҍ $, 4B IW ny'ȍ ΍܍  BS5jƎ؎/#!@%b  ۏ  3::)uΐ 2%;ac5ˑ9BX` i s <ݒ 7?D.I9x3  + 5?Ybrz2%ݔ"&,4:Y,a  ȕЕؕݕ.$"7"Z?}',': ?!Ik{$ŗ#4GX.o ˘Ә6*=OV%n ("ߙ(:+"f1B8 7C-YC˛$ߛ# , 8F-a *Ԝ"+ 6 >I)Q{ ם 'G[ oy Ԟ  , ?IZk{. ɟ ӟ"ݟ)#!M ozƠ#נ%=To v *ȡ 5DVh  ʢ ע#1C`ʣ#&9,W ! Ȥ Ҥ ߤ8L&Qs9ťK5K6 ǦӦۦ !6>Zi qŧʧK!/Q&p4$̨? L U _k4ɩ ѩݩ  $18jy- ˪ *1#Qu'%߫  .K\Bq ¬ʬҬ ٬!3.C6r ǭԭۭ  ##5Y.y5BF&CmC3 )4: B OZ b l x̰հ ܰ    $07>BTksw~ȱб߱  #+9(e' Dz Ҳܲ  - 5AG [| "ó     '1@F OZ#bBA@"?cƵ˵ ϵ۵  "&2 8x$fX _"0f-P.U7o4R6Q&7a~'> Yz;CuZQ u,aWl05~9@{luB4 YAp!m`?*op_z])U}3  d&9 Pf2zYkyhVdn9B _hAGDX=3+q6V#-J=Uw<%KEm&!^Rb xH.XFetL kwo\N@H/g<?h(#1^$*IW[sGiieb:1g%O!`+/  HGPNCES}cl{Ej> 3#'4c {ON2;:Jv0[L;nKK \>TM"5}^reMOJp"[iR6m$nZx@ALq87`Ba+/S- vTIrrSD8vcwgM](*)bjstD=Q]y5%T)tdVF.\Wkqy<,|~,IZ1C's|F? j:(|"%s" can not be found."%s" is not a valid path.%(amount)d images done in %(duration)s%(mode)s has been converted to %(mode_copy)s to save as %(format)s.%d issues were logged%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List&Action List Droplet...&Add&Add... Ctrl-+&All Types&Ask for Help&Batch&Browse Library&Cancel&Close&Collapse All Ctrl-Shift-E&Collapse Automatically&Continue Anyway&Copy Value&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Fonts&Forum... Ctrl-F&Help&Image Inspector (exif) Ctrl-I&Image Inspector Droplet...&License&New Ctrl-N&No Types&OK&Open...&Open... Ctrl-O&Phatch&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Remove Image&Report a Bug... Ctrl-B&Safe Mode (recommended)&Save Ctrl-S&Select&Show Description Ctrl-H&Show template for action plugin&Skip to Next Action&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&Update&User&View&Website... Ctrl-W3D Edge3D ObjectsA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd TagAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAll readable typesAll selected typesAllow Geek action and unsafe expressionsAllow as last actionAlso check if your hard disk not full. Always save on desktopAlways show status dialog when doneAmountAngleAngle Apply a transparency highlightApply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastAuto CropAutomatic (use exif orientation)BackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlenderBlender %s is required.BlurBlur AngleBlur RadiusBlur ReflectionBlur SigmaBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBorder WidthBothBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBottom StretchedBox ColorBox DepthBrightnessBrowseBrowse %sBrowse FolderBrowse action lists, masks, highlights and fontsBulletC&ontinueC&reditsCMYK (4x8-bit pixels, color separation)CameraCamera DistanceCamera Horizontal RotationCamera Lens AngleCamera RollCamera Vertical RotationCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthCaptionCenterChangeCharcoalCharcoal RadiusCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletClipboardCodeColorColor ValueColor to AlphaColorizeColorize grayscale imageColumnsCommandCommand did not produce an output image: %sCommentsCommonConstrain ProportionsContourContour ColorContrastContrast FactorContrast TresholdConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCopy the original imageCorner Bottom LeftCorner Bottom RightCorner Top LeftCorner Top RightCould not open image with %s.Cover ColorCreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDe&veloper Documentation... Ctrl-PDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDetails DegreeDifferent for each sideDirectionDirection Disable Safe Mode in the Tools menu if you trust this action list.Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDoneDouble click to open or right click for more options.DownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDraw border inside or outsideDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEasily batch process images and edit metadataEffectEnable actionEnter an image urlEqual for all sidesEqualizeEqualize the image histogramErrorExamplesExecuteExecute external commandExecute the actionExecute the action listExecuting action listExif and fileExif timeExpandExpanding one action collapses the others.ExplorerFade all colors to grayFalseFebruaryFileFile NameFile timeFile(s)FillFill ColorFilterFitFit ImageFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFloor ColorFloor OpacityFloor ReflectionFolderFontFontsFor more information see the tutorials (Help>Documentation)Force Background ColorFormat %(format)s does not support overwriting "%(tag)s".FridayFrom (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GapGeekGeek actions are not allowed in safe mode.GeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GradientGradient BottomGradient TopGrayscaleGrayscale (8-bit pixels)HighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage SizeImage pathsImagemagickImagesImpossible to load data from action list.Impossible to write tag "%s"InInclude all subfoldersInclude imageInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LA (8-bit pixels, grayscale with transparency mask)LabelLearn to develop Phatch with Python and PIL.LeftLeft PageLeft Shear AngleLeft StretchedLetterboxLibrariesLibrary Action ListsLicenseLid RotationLogLook up exif and iptc tagsLossless JPEGLossless JPEG transformation does not work on a %s image:Make selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMaximum one parameter "%s" is allowedMayMedianMessageMetadataMethodMiddleMinimumMinutesMirrorMistModeMondayMonochrome (1-bit pixels, black and white)MonthsMotion BlurMove the selected action downMove the selected action upNever run action lists from untrusted sources.No action list provided.No files or folder selected.No save action required at the endNoneNormalNothing has been logged yet.Nothing to do.NovemberObjectOctoberOffsetOffset by distance and wrap aroundOneOne image done in %sOne issue was loggedOpacityOpenOpen &Library... Ctrl-Shift-OOpen &RecentOpen &Url...Open an action listOpens a ready-made actionlist from the libraryOpens an actions listOptionsOrientationOutputOverwrite existing imagesP (8-bit pixels, mapped using a color palette)PNG OptimizePage MappingPaintParameter "%s.*" is missingPaste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch could not create the droplet: Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch will generate the user interface automatically.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please check if this action list doesn't contain harmful code.Please delete "%s".Please install "%s" first.Please upgrade your wxPython.PolaroidPositionPosterizePreserve TimestampProcess with recent Phatch action listProgram VersionProjectionPut color under transparent imageQuit the application.RGB (3x8-bit pixels, true color)RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReady!Reduce the number of bits of color channelReflectionRegenerate thumbnailRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename the original imageRender HeightRender WidthRepeatRepeat imagesReport a bug on launchpad.ResampleResample HighlightResample ImageResample MaskResolutionRightRight Shear FactorRight StretchedRotateRotate 180Rotate 270Rotate 90Rotate with random angleRotate, flip, grayscale and cropRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSame Method for All CornersSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save TagsSave and convert to other typesSave last changes toSave only metadata (lossless)Saves an action listSaves an action list asScaleScale Down OnlyScale ImageScale MethodScale ModelScale ReflectionScan for new fonts on your systemSecondsSee "%s" for more details.SelectSelect Color BySelect ObjectSelect ProjectionSelect RotationSelect Rotation for %sSelect action listSelectionSeparateSeptemberShadowShadow BlurShadow ColorSharpenShear 2d or 3dShift time values of tagsShow &Log... Ctrl-LShow &ReportShow &Report... Ctrl+RShow Advanced OptionsShow Background OptionsShow Floor OptionsShow LogShow Type OptionsShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.Show report of processed imagesSigmoidal ContrastSizeSketchSkip To Next &ImageSliderSolarizeSorry, %s.Sorry, no valid files foundSorry, the action list seems incompatible with %(name)s %(version)s.Sorry, time shift can only handle dates before 2038-1-19Sorry, you have the wrong version of Blender installed.Sorry, you need to install the %s action for this action list.Sorry, your settings seem corrupt.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStarsStart a new action listStop for errorsStringStudy the action plugins in:SundaySymmetrical tile textureTIFF CompressionTagTag "%s" is not writable.Tag "%s" is read only.Tag (Exif, Iptc)TextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.The following name(s) are invalid: There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This action list is unsafe:This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTime ShiftTime Shift (seconds)To (Exif, Iptc)Tools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTop StretchedTransform to a grayscale pencil drawingTransformationTransformation Translate Phatch in your native language.TranslationTransparentTransparent BackgroundTransposeTresholdTrueTuesdayTypesUnable extract variables from fileUnable to change label.Unable to delete tag <%s>Unable to open fileUnable to rename tag <%s>Unable to save tag <%s>Unsaved Action ListUnsharpUpUpdate Exif ThumbnailUpdate JPEGUpdate Orientation TagUse FloorUse exif datetimeUse the Image Inspector to list all the variables.UserUtilityValueVerboseVerify InputVerify OutputVerify ProgramVerticalVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWaveWave HeightWave LengthWednesdayWhat do you want to do now?WhiteWrap BothWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYCbCr (3x8-bit pixels, color video format)YearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,You only need to know PIL to write a plugin for Phatch.a filename with a valid extension was expectedabortactionsallantialiasapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcan not be emptycenterchoiceclick '+' to add actionscolorcompressioncontourdaydecimaldefaultdesktopdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerinvalid literal "%s" for booleaninvalid literal "%s" for floatinvalid literal "%s" for integerinvalid syntax "%s" for integerleftloadingmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnoneorientationpathplease email: please install pyexiv2pluginpositive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth moresourcestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existthe float value "%s" is negative, but should be positivethe float value "%s" is zero, but should be non-zerothe integer value "%s" is negative, but should be positivethe integer value "%s" is zero, but should be non-zerotoptransformtransparencytruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-12-27 17:39+0000 Last-Translator: Gabriel Čenkei Language-Team: Slovak MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) "%s" sa nedá nájsť."%s" je neplatná cesta.%(amount)d obrázkov hotových za %(duration)s%(mode)s bol zmenený na %(mode_copy)s uložiť ako %(format)s.%d chýb bolo zaznamenaných%s nedávne&Prerušiť&O Phatch... Ctrl-Shift-AZoznam &AkciíDroplet zoznam &akcií...&Pridať&Pridať... Ctrl-+&Všetky typyPožiadať o &pomocSpustiť&Preskúmať knižnicu&Zrušiť&Zavrieť&Zbaliť všetko Ctrl-Shift-EZ&baliť automatickyNapriek tomu pokračovať&Kopírovať hodnotuZaká&zať Ctrl-0Dokumentácia... Ctrl-M&Dole Ctrl-DownDroplet Ctrl-DUpraviť&Povoliť Ctrl-1&Spustiť... Ctrl-Return&Rozbaliť všetko Ctrl-E&Export&Písma&Fórum... Ctrl-FNápoveda&Inšpektor obrázkov (exif) Ctrl-IDroplet &Inšpektor obrázkov...LicenciaNový Ctrl-NŽiad&ne typy&OK&Otvoriť...Otv&oriť... Ctrl-O&PhatchU&končiť Ctrl-QPosledný d&roplet...&Odstrániť Ctrl--&Odstrániť obrázokNahlásiť chy&bu... Ctrl-B&Bezpečný Mód (doporučený)&Uložiť Ctrl-S&VybraťZobraziť &popis Ctrl-H&Zobraziť šablónu pre plugin akciePreskočiť na ďalšiu &akciu&NástrojePreložiť Pha&tch... Ctrl-T&Hore Ctrl-Up&Aktualizovať&UžívateľskáZo&braziť&Webová stránka... Ctrl-W3D Okraj3D objektyHtml tutoriál sa otvorí v internetovom prehliadači.O programeAkciaZoznamy akciíZoznam akciíPridaťPridať značkuPridať akciuNastaví jas z čiernej do bielejPreviesť odtiene šedej do čiernobielejNastaviť sýtosť zo šedej do sýtejZarovnať HorizontálneZarovnať VertikálneVšetkoVšetky súboryVšetky súboryVšetky typy ktoré sa dajú čítaťVšetky vybrané typyPovoliť Geek akcie a nebezpečné výrazyPovoliť ako poslednú akciuSkontrolujte taktiež, či Váš pevný disk nie je plný. Vždy uložiť na plochuPo dokončení vždy zobraziť stavové oknoHodnotaUholUhol Použiť transparentné zvýraznenieAplikuje priehľadnú maskuPlatí pre budúce chyby Aplikuje dlaždicovo, mierkou a krytímAprílVzhľadakoAsociovať obrázky so zoznamom akcií v %s...Asociovať obrázky s Inšpektorom obrázkov v %s...Asociovať obrázky s poslednými zoznamami akcií v %s...AugustAutomatickéAuto KontrastAutomatické orezanieAutomaticky (použi orientáciu z exif)PozadieFarba pozadiaKrytie pozadiaDávkové spracovanie obrázkov pomocou PhatchDávkovo spracovať posledný zoznam akciíBitovČiernaSpadávkaBlenderVyžaduje sa Blender %s.RozmazaťUhol rozmazaniaPolomer rozmazaniaRozostriť odrazSigma rozmazaniaRozmazať, Polaroid, Tieň, Rozostriť...Rozostrenie, Doostrenie, Slepotlač, Vyhladenie, ...BooleanOkrajFarba okrajuŠírka okrajovObidveDoleVľavo doleĽavý dolný rohVpravo dolePravý dolný rohFaktor spodného skoseniaRoztiahnuť naspoduFarba krabiceHĺbka krabiceJasPrechádzaťPrechádzať %sPrechádzať zložkuPreskúmať zoznamy akcií, masky, zvýraznenia a písmaGuľkaP&okračovaťPoďa&kovanieCMYK (4x8-bit pixely, separácia farieb)KameraVzdialenosť kameryVodorovné otočenie kameryUhol objektívu kameryKinofilmZvislé otočenie kameryNemôžu sa aplikovať akcie %(a)s na obrázky '%(i)s' v zložke:Nemôže sa aplikovať akcia %(a)s:PlátnoVýška plátnaŠířka plátnaNadpisNa stredZmeniťKresba uhlíkomPolomer uhlíkuNajprv skontrolovať obrázkyKontrolujem obrázkyZvoliťVybrať súbor(y)Vyberte priečinokVybrať súbor so zoznamom akcií...Vybrať obrázokVybrať priečinok s obrázkamiVybrať priečinok pre dropletSchránkaKódFarbaKvalita farbyFarby do alfyVyfarbiťOfarbí šedý obrázokStĺpcePríkazPríkaz nevytvoril výstupný obrázok: %sPoznámkyBežnéZachovať pomer stránObrysFarba obrysuKontrastFaktor kontrastuPrah kontrastuZmeniť režimZmeniť farebný režim obrázkuSkopírovať maximálnu hodnotu pixeluKopíruje stredné hodnoty pixelovSkopírovať minimálnu hodnotu pixeluKopíruje najbežnejšie hodnoty pixelovSkopírovať n-tú najčastejšiu hodnotu pixeluKopírovaťSkopírovať zoznam akcií ako príkaz do &schránkySkopírovať inšpektora &obrázkov ako príkaz do schránkyKopírovať posledný zoznam akcií ako príkaz do schránkyKopírovať pôvodný obrázokĽavý dolný rohPravý dolný rohĽavý horný rohPravý horný rohObrázok s %s sa nedá otvoriť.Farba obálkyPoďakovanieOrezaťOreže alebo rozšíri plátnoOrezať obrázokKrížVlastnéOdstrihnutieDniDokumentácia &vývojára... Ctrl-PDecemberOdstrániť Exif alebo Iptc značkyOdstrániť značkyHĺbkaZnížiť sýtosťTu popíšte zoznam akcií.PopisMiera detailovOdlišné pre každú stranuSmerSmer Ak dôverujete tomuto zoznamu akcií, vypnite Bezpečný Mód v menu Nástroje.Zakázať akciuZobrazí informácie o tejto aplikáciiNekontrolovať obrázky najprvChcete pokračovať?Chcete ho prepísať?DokumentáciaHotovoDvojklikom otvoriť alebo kliknúť pravým tlačítkom pre viac možností.DoleZmenšiť a orezať obrázok pri zachovaní pomeru stránŤahaj & pusťVykreslí obrys okolo okrajov obrázkuVykresliť ohraničenie vnútri alebo mimoPustite ľubovoľný počet súborov alebo priečinkov na tento Phatch droplet pre dávkové spracovanie. Kliknite raz pravým tlačítkom alebo dvakrát ľavým pre prechod do normálneho režimu.Pridá rozostrený tieň pod fotoPridá odrazJednoduché dávkové spracovanie obrázkov a úprava metadátEfektPovoliť akciuVložiť url obrázkuRovnaké pre všetky stranyVyvážiťVyváži histogram obrázkuChybaPríkladyVykonaťVykonať externý príkazSpustiť akciuSpustiť zoznam akciíVykonáva sa zoznam akciíExif aj súborČas ExifRozšíriťPri rozbalení jednej akcie sa ostatné zbalia.PrieskumníkZoslabiť všetky farby do šedejNieFebruárSúborNázov súboruČas súboruSúboryVýplňFarba výplneFilterPrispôsobiťPrispôsobiť obrázokPreklopiťPreklopiť vodorovnePreklopiť zvislePreklopiť alebo otočiť o 90 stupňovFloatFarba podlahyKrytie podlahyOdraz podlahyPriečinokFontPísmaPre viac informácií si pozrite návody (Nápoveda>Dokumentácia)Vnútiť farbu pozadiaFormát %(format)s nepodporuje prepísanie "%(tag)s".PiatokZ (Exif, Iptc)GPS dáta (gpx)GPS záznam (csv)MedzeraGeekV bezpečnom móde nie sú dovolené Geek akcieGeotagPrejsť k dokumentácii pre Phatch.Prejsť na fórum programu PhatchPrejsť na domovskú stránku Phatch.PrechodSpodok prechoduVrch prechoduOdtiene šedejOdtiene šedej (8-bit pixely)ZvýraznenieHurá, bez problémov!VodorovneVodorovné zarovnanieHorizontálny posunHodinyAk reštartujete %s, akcia sa objaví v kontextovej ponukeAk chcete prispieť plugin-om pre Phatch,Ignorovať chybyObrázokInšpektor obrázkovVeľkosť obrázkuCesta k obrázkomImagemagickObrázkyDáta zo zoznamu akcií nie je možné načítať.Nie je možné zapísať značku "%s"VVrátane všetkých podzložiekVrátane obrázkuInicializovať písma (iba pre inštalačné skripty)Prezrieť EXIF a IPTC značkyKontroluj EXIF & IPTC tagySkontrolovať metadáta (je potrebný exif a iptc plugin)Skontroluj s PhatchomIntegerInteger+Integer+0InteraktívneNeplatné obrázkyInvertovaťInvertovať hodnoty všetkých pixelov nad prahovou hodnotouInvertuje farby obrázkuKvalita JPEGJPEG maximálna veľkosťJPEG tolerancia veľkostiJanuárJúlJúnZachovať existujúce obrázky (neprepisovať)LA (8-bit pixely, odtiene šedej s transparentnou maskou)PopisNaučte sa vyvíjať Phatch pomocou Python-u a PIL.VľavoĽavá stranaUhol ľavého skoseniaRoztiahnuť vľavoSchránkaKnižniceKnižnica zoznamov akciíLicenciaOtočenie krytuZáznamZobraziť exif a iptc značkyBezstratový JPEGBezstratový JPEG prevod nefunguje pre %s obrázkyUrobiť vybranú farbu transparentnouZväčší alebo zmenší obrázokMarecZnačkaMaskaMaximalizuje kontrast obrázkuMaximumPovolený je maximálne jeden parameter "%s"MájMediánSprávaMetaúdajeSpôsobUprostredMinimumMinútyZrkadloHmlaRežimPondelokČiernobiely (1-bit na pixel, čierna a biela)MesiaceRozostriť pohybomPresunúť zvolenú akciu nižšiePresunúť zvolenú akciu vyššieNikdy nespúšťajte zoznam akcií z nedôveryhodných zdrojov.Nebol poskytnutý žiaden zoznam akciíNie je zvolený žiadny súbor alebo zložkaNa koniec sa nevyžaduje akcia uložiťNičNormálneZatiaľ nebolo nič zaznamenané.Nevykonať ničNovemberObjektOktóberPosunPosunúť o vzdialenosť a rozbaliťJednuJeden obraz dokončený v %sJedna chyba bola zaznamenanáKrytieOtvoriťOtvoriť Kn&ižnicu... Ctrl-Shift-OOtvoriť &nedávneOtvoriť &url...Otvoriť zoznam akciíOtvoriť pripravený zoznam akcií z knižniceOtvoriť zoznam akciíMožnostiOrientáciaVýstupPrepísať existujúce obrázkyP (8-bit pixely, mapované použitím farebnej palety)Optimalizovať PNGMapovať stránkuMaľbaChýba parameter "%s.*"Vložte tento príkaz do spúšťačaCestaSkica ceruzkouPerspektívaPhatch nemôže spracovať %d obrázkov:Phatch nemohol vytvoriť droplet: Phatch nemôže nainštalovať akciu %s:Phatchu sa nepodarilo nainštalovať požadovanú funkciu.Phatch úspešne vytvoril droplet.Phatch sa pokúsil odinštalovať z PrieskumníkaPhatch ju automaticky pridá, skontrolujte prosím jej nastavenia.Phatch vygeneruje užívateľské rozhranie automaticky.Phatch s %sPhoto Batch ProcessorNainštalujte alebo reinštalujte ho prosím.Skontrolujte prosím, či zoznam akcií neobsahuje škodlivý kód.Please delete "%s".Nainštalujte najskôr "%s" prosím.Aktualizujte wxPython prosím.PolaroidUmiestneniePosterizáciaZachovať časovú značkuSpracovať s nedávnym zoznamom akcií PhatchVerzia programuProjekciaVložiť farbu pod transparentný obrázokUkončiť program.RGB (3x8-bit pixely, verné farby)RGBA (4x8-bit, RGB s maskou priehľadnosti)PolomerHodnotenieHotovo!Znížiť počet bitov na farebný kanálOdrazObnoviť náhľadOdstrániťOdstráň asociáciu z %s...Odstrániť vybranú akciuOdstrániť zvolenú akciu.PremenovaťPremenovať menovkuPremenovať značkuPrejmenovať pôvodný obrázokVýška vykresleniaŠírka vykresleniaOpakovaťOpakovať obrázkyNahlásiť chybu na launchpad.PrevzorkovaťPrevzorkovať zvýrazneniePrevzorkovať obrázokPrevzorkovať maskuRozlíšenieVpravoFaktor pravého skoseniaRoztiahnuť vpravoOtočenieOtočiť o 180°Otočiť o 270°Otočiť o 90°Otočí pod akýmkoľvek uhlomOtočiť, preklopiť, odtiene šedej a orezaťZaoblenieZaoblenýZaoblené alebo prekrížené rohyRiadkySpustiť %s ako gui dropletSpustiť %s ako program z konzoly bez guiRovnaká metóda pre všetky rohySaturationSobotaUložiťUložiť &ako... Ctrl-Shift-SUložiť zoznam akcií ako...Uložiť značkyUložiť a prevádzať na iné typyUložiť posledné zmeny doUložiť iba metadáta (bezstratové)Uložiť zoznam akciíUložiť zoznam akcií akoMierkaIba zmenšiťRoztiahnuť obrázokSpôsob mierkyRoztiahnuť modelMierka odrazuPrehľadať systém a zistiť nové písmaSekundyPozri "%s" pre viac detailov.VýberVybrať farbu podľaVyberte objektVybrať projekciuVybrať otočenieZvoľte otočenie pre %sVyberte zoznam akciíVýberOddeleneSeptemberTieňRozostrenie tieňaFarba tieňaZaostriťZkosí 2d alebo 3dPosunúť časové hodnoty značiekZobraziť &Log... Ctrl-LZobraziť &Výpis&Zobraziť správu... Ctrl+RZobraziť pokročilé možnostiZobraziť možnosti pozadiaZobraziť možnosti podlahyZobraziť záznamZobraziť voľby pre typZobraziť všetky parametry akcií.Zobraziť popis zoznamu akciíZobraziť protokolZobraziť iba titulky akcií.Zobraziť správu o spracovaných obrázkochEsovitý kontrastVeľkosťSkicaPreskočiť na ďalší &obrázokPosuvníkSolarizáciaĽutujem, %s.Je nám ľúto, neboli nájdené žiadne platné súboryĽutujem, zoznam akcií sa zdá byť nekompatibilný s %(name)s %(version)s.Ľutujem, časový posun dokáže spracovať len dátumy skoršie ako 19. 1. 2038Ľutujem, máte inštalovanú nesprávnu verziu Blenderu.Ľutujem, pre spustenie tohoto zoznamu akcií potrebujete nainštalovať %sĽutujem, Vaše nastavenia sa zdajú byť porušené.ZdrojUpresniť locale pre jazyk (napríklad en alebo en_GB)SponzoriŠtvorcovýHviezdyZačať nový zoznam akciíPri chybe zastaviťReťazecPreštudujte si pluginy akcií v:NedeľaVytvorí symetrickú vzorkuTIFF kompresiaZnačkaTag "%s" nie je zapisovateľný.Tag "%s" je len na čítanie.Značka (Exif, Iptc)TextZoznam akcií je prázdyPríkazy dropletu pre inšpektor obrázkov boli skopírované do schránky.Nasledovné názvy sú neplatné Nie je povolená žiadna akciaNa konci by mala byť akcia 'Uložiť'Tieto rozšírenia sa úspešne sa nainštalovali: Tento zoznam akcií je nebezpečný:Tento súbor už existuje.Toto taktiež vyžaduje nainštalovaný balík python-nautilus.ŠtvrtokDlaždicePosun časuČasový posun (sekundy)Do (Exif, Iptc)Nástroje k spracovaniu súčasných zoznamov akciíNavrchuVľavo horeĽavý horný rohVpravo horePravý horný rohUhol horného skoseniaRoztiahnuť navrchuPreviesť do kresby ceruzkou, v odtieňoch šedejTransformáciaTransformácia Preložiť Phatch do Vášho rodného jazyka.PrekladPriesvitnéTransparentné pozadieTransponovaťPrahÁnoUtorokTypyNedajú sa vytiahnuť premenné zo súboruNie je možné zmeniť menovku.Nie je možné zmazať značku <%s>Nedokážem otvoriť súborNie je možné premenovať značku <%s>Nie je možné uložiť značku <%s>Neuložený zoznam akciíRozostriťHoreObnoviť Exif NáhľadObnoviť JPEGObnoviť značku orientáciePoužiť podlahuPoužiť exif dátumPre zobrazenie všetkých premenných použi Inšpektor obrázkov.PoužívateľPomocouHodnotaSlovneOveriť vstupOveriť výstupOveriť programZvisleZvislé zarovnanieVertikálny posunZobraziť zdrojZobraziť ako droplet k preťahovaniu súborovUpozornenie: python-wxversion nie je nainštalovaný. VodoznakVlnenieVýška vlnyDĺžka vlnyStredaČo chcete teraz urobiť?BielaObaliť obojeNapísať vlastný pluginNapísať značkuNapísať novú hodnotu pre značkuZapíše text na danú pozíciuYCbCr (3x8-bit pixely, farebný video formát)RokyMôžete použiť iba súbory s nasledovnou príponouMôžete to vložiť ako text do vlastností nového spúšťača.Pre túto funkciu je potrebné nainštalovať Python Win32 Extensions.Pre napísanie pluginu pre Phatch je potrebná jedine znalosť PIL,Pre napísanie pluginu pre Phatch je potrebná jedine znalosť PIL.očakával sa názov súboru so správnou príponouprerušiťakcievšetkoantialiasingaplikáciapozadiebikubickybilineárnyrozostriťbooleovská hodnotadolezovšeobecnite hľadanienemôže byť prázdnev stredevoľbaklikni na '+' pre pridanie akciefarbakompresiaobrysdeňdesiatkovépredvolenáplochadetaildpizvýrazniť hranyviac zvýrazniť hranyreliéfniesúbornázov súboruveľkosť súborufilterdetekcia hrándesatinné číslozložkanázov zložkyrámvýškahodínignorovaťobrázkycelé čísloneplatný literál "%s" pre booleanneplatný literál "%s" pre reálne číslonapltný literál "%s" pre celé čísloneplatná syntax "%s" pre celé číslovľavonahrávammetaúdajeuprostredminútrežimmesiacnázov mesiacanajbližšínienenašli sa žiadne %s tagyžiadnyorientáciacestapošlite email na: nainštalujte si prosím pyexiv2zásuvný modulkladné celé číslokladné, nenulové celé číslopotrebujete nainštalovať pyexiv2rozlíšenievpravorootsekundydoostriťveľkosťpreskočiťvyhladiťviac vyhladiťzdrojreťazecpodzložkaznačkaprípona súboru "%s" je nesprávnasúbor "%s" neexistujehodnota reálneho čísla "%s" je záporná, mala by byť kladnáhodnota reálneho čísla "%s" je nulová, mala by byť nenulováhodnota celého čísla "%s" je záporná, mala by byť kladná.hodnota celého čísla "%s" je nulová, mala by byť nenulováhoretransformovaťpriehľadnosťánotypupozorneniepracovný deňnázov pracovného dňašírkasChyba wxPython verzierokánophatch-0.2.7/locale/sk/LC_MESSAGES/phatch.po0000644000000000000000000036066211346363116020216 0ustar rootroot00000000000000# Slovak translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-12-27 17:39+0000\n" "Last-Translator: Gabriel Čenkei \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Skontroluj s Phatchom" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Prezrieť EXIF a IPTC značky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Príklady" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Spustiť %s ako program z konzoly bez gui" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Spustiť %s ako gui droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Vždy uložiť na plochu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignorovať chyby" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Inicializovať písma (iba pre inštalačné skripty)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interaktívne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Zachovať existujúce obrázky (neprepisovať)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Upresniť locale pre jazyk (napríklad en alebo en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Skontrolovať metadáta (je potrebný exif a iptc plugin)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Na koniec sa nevyžaduje akcia uložiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Vrátane všetkých podzložiek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Nekontrolovať obrázky najprv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "Povoliť Geek akcie a nebezpečné výrazy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Slovne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "Môžete to vložiť ako text do vlastností nového spúšťača." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" "Ľutujem, pre spustenie tohoto zoznamu akcií potrebujete nainštalovať %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "Príkazy dropletu pre inšpektor obrázkov boli skopírované do schránky." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "Pre viac informácií si pozrite návody (Nápoveda>Dokumentácia)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "Hurá, bez problémov!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Zatiaľ nebolo nič zaznamenané." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Záznam" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "prerušiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "preskočiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignorovať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "klikni na '+' pre pridanie akcie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "Otvoriť &nedávne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Otvoriť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Otvoriť zoznam akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Vykonať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Spustiť akciu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Pridať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Pridať akciu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Odstrániť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Odstrániť vybranú akciu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Hore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Presunúť zvolenú akciu vyššie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Dole" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Presunúť zvolenú akciu nižšie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Inšpektor obrázkov" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Zobraziť exif a iptc značky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Popis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Zobraziť popis zoznamu akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "Knižnica zoznamov akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Vybrať súbor so zoznamom akcií..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Uložiť zoznam akcií ako..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Tento súbor už existuje." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Chcete ho prepísať?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "aplikácia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "rám" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "akcie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Html tutoriál sa otvorí v internetovom prehliadači." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "Pre napísanie pluginu pre Phatch je potrebná jedine znalosť PIL." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "Phatch vygeneruje užívateľské rozhranie automaticky." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Preštudujte si pluginy akcií v:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Ak chcete prispieť plugin-om pre Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "pošlite email na: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Ťahaj & pusť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Pustite ľubovoľný počet súborov alebo priečinkov na tento Phatch droplet\n" "pre dávkové spracovanie.\n" "Kliknite raz pravým tlačítkom alebo dvakrát ľavým pre prechod do normálneho " "režimu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch ju automaticky pridá, skontrolujte prosím jej nastavenia." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Uložiť posledné zmeny do" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Vybrať priečinok pre droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch úspešne vytvoril droplet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "Phatch nemohol vytvoriť droplet: " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "Dáta zo zoznamu akcií nie je možné načítať." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Vyberte zoznam akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "Ľutujem, Vaše nastavenia sa zdajú byť porušené." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "Please delete \"%s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "Skontrolujte taktiež, či Váš pevný disk nie je plný.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Vyberte priečinok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Vybrať súbor(y)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Vybrať priečinok s obrázkami" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "Všetky vybrané typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "Všetky typy ktoré sa dajú čítať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "&Všetky typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "Žiad&ne typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "Schránka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Prechádzať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "Prechádzať %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Súbor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Priečinok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "predvolená" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Zobraziť zdroj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "zovšeobecnite hľadanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Cesta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Otvoriť..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "Nový\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Začať nový zoznam akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "Otv&oriť...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Otvoriť zoznam akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "Otvoriť Kn&ižnicu...\tCtrl-Shift-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "Otvoriť pripravený zoznam akcií z knižnice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Uložiť\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Uložiť zoznam akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Uložiť &ako...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Uložiť zoznam akcií ako" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Skopírovať zoznam akcií ako príkaz do &schránky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Vložte tento príkaz do spúšťača" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Kopírovať posledný zoznam akcií ako príkaz do schránky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Skopírovať inšpektora &obrázkov ako príkaz do schránky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&Export" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "U&končiť\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Ukončiť program." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "Zoznam &Akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Pridať...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Odstrániť\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Odstrániť zvolenú akciu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Povoliť\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Povoliť akciu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "Zaká&zať\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Zakázať akciu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Hore\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Dole\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "Upraviť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "Droplet\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Zobraziť ako droplet k preťahovaniu súborov" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "Zobraziť &popis\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Nástroje k spracovaniu súčasných zoznamov akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Rozbaliť všetko\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Zobraziť všetky parametry akcií." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Zbaliť všetko\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Zobraziť iba titulky akcií." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "Z&baliť automaticky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "Pri rozbalení jednej akcie sa ostatné zbalia." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "Zo&braziť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Spustiť...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Spustiť zoznam akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "&Bezpečný Mód (doporučený)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "&Inšpektor obrázkov (exif)\tCtrl-I" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "&Užívateľská" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "Preskúmať zoznamy akcií, masky, zvýraznenia a písma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "&Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "&Preskúmať knižnicu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "&Zobraziť správu...\tCtrl+R" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "Zobraziť správu o spracovaných obrázkoch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Zobraziť &Log...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Zobraziť protokol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "&Písma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "Prehľadať systém a zistiť nové písma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "&Aktualizovať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Nástroje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "&Webová stránka...\tCtrl-W" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Prejsť na domovskú stránku Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "Dokumentácia...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Prejsť k dokumentácii pre Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Fórum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Prejsť na fórum programu Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "Preložiť Pha&tch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Preložiť Phatch do Vášho rodného jazyka." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "Nahlásiť chy&bu...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Nahlásiť chybu na launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "Dokumentácia &vývojára...\tCtrl-P" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "Naučte sa vyvíjať Phatch pomocou Python-u a PIL." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&O Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Zobrazí informácie o tejto aplikácii" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "Nápoveda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "Hotovo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Zobraziť záznam" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "Zobraziť &Výpis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "Hotovo!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "Dvojklikom otvoriť alebo kliknúť pravým tlačítkom pre viac možností." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "Prieskumník" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Pre napísanie pluginu pre Phatch je potrebná jedine znalosť PIL," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Zobraziť šablónu pre plugin akcie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Kód" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "Požiadať o &pomoc" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Napísať vlastný plugin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Platí pre budúce chyby " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Prerušiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "Preskočiť na ďalšiu &akciu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "Preskočiť na ďalší &obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Správa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "Napriek tomu pokračovať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Možnosti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Prechádzať zložku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Zdroj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Súbory" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Pri chybe zastaviť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Najprv skontrolovať obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Prepísať existujúce obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "Po dokončení vždy zobraziť stavové okno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "Opakovať obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Zrušiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "Spustiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Popis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "značka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Reťazec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Zvoliť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Farba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Rozlíšenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Názov súboru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "V" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "ako" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Režim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Prevzorkovať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bikubicky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Integer+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Integer+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Vodorovne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Posuvník" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "potrebujete nainštalovať pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "%(mode)s bol zmenený na %(mode_copy)s uložiť ako %(format)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Január" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Február" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Marec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "Apríl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Máj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Jún" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Júl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "August" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "September" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Október" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "November" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "December" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Pondelok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Utorok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Streda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Štvrtok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Piatok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Sobota" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Nedeľa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "Nedajú sa vytiahnuť premenné zo súboru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "Tag \"%s\" je len na čítanie." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "Nie je možné zapísať značku \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "Tag \"%s\" nie je zapisovateľný." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "Formát %(format)s nepodporuje prepísanie \"%(tag)s\"." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "pozadie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "zdroj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" "Príkaz nevytvoril výstupný obrázok:\n" "%s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Všetko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "Vybrať projekciu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "Vyberte objekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "Vybrať otočenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "Na stred" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Vlastné" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Uprostred" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Vľavo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Vpravo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Navrchu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Dole" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Vľavo dole" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Vpravo dole" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Vľavo hore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Vpravo hore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Orientácia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Umiestnenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Posun" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Horizontálny posun" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Vertikálny posun" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Vodorovné zarovnanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Zvislé zarovnanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Dlaždice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Mierka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Značka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Krytie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Spôsob" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Automatické" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "Jednoduché dávkové spracovanie obrázkov a úprava metadát" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Photo Batch Processor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Áno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Nie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "áno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "nie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Neuložený zoznam akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Zoznamy akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Všetky súbory" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Tu popíšte zoznam akcií." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Na konci by mala byť akcia 'Uložiť'" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s nedávne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Asociovať obrázky so zoznamom akcií v %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Asociovať obrázky s poslednými zoznamami akcií v %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Asociovať obrázky s Inšpektorom obrázkov v %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Odstráň asociáciu z %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "Droplet zoznam &akcií..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "Posledný d&roplet..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "Droplet &Inšpektor obrázkov..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Dávkovo spracovať posledný zoznam akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Kontroluj EXIF & IPTC tagy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "Pozri \"%s\" pre viac detailov." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" "Ľutujem, zoznam akcií sa zdá byť nekompatibilný s %(name)s %(version)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "Tento zoznam akcií je nebezpečný:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" "Ak dôverujete tomuto zoznamu akcií, vypnite Bezpečný Mód v menu Nástroje." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "Nikdy nespúšťajte zoznam akcií z nedôveryhodných zdrojov." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "Skontrolujte prosím, či zoznam akcií neobsahuje škodlivý kód." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "\"%s\" je neplatná cesta." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Akcia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "V bezpečnom móde nie sú dovolené Geek akcie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Nevykonať nič" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Zoznam akcií je prázdy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Nie je povolená žiadna akcia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Kontrolujem obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch nemôže spracovať %d obrázkov:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Neplatné obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Je nám ľúto, neboli nájdené žiadne platné súbory" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "P&okračovať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Nie je zvolený žiadny súbor alebo zložka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Nedokážem otvoriť súbor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Nemôže sa aplikovať akcia %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Nemôžu sa aplikovať akcie %(a)s na obrázky '%(i)s' v zložke:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Vykonáva sa zoznam akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Jeden obraz dokončený v %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "%(amount)d obrázkov hotových za %(duration)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Jedna chyba bola zaznamenaná" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "%d chýb bolo zaznamenaných" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Výber" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "Nie je možné zmeniť menovku." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "Nie je možné zmazať značku <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "Nie je možné premenovať značku <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "Nie je možné uložiť značku <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "deň" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "plocha" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "názov zložky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "názov súboru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "veľkosť súboru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "zložka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "hodín" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minút" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "mesiac" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "názov mesiaca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "cesta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "root" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "sekundy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "podzložka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "typ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "pracovný deň" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "názov pracovného dňa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "rok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "kompresia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "výška" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "režim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "šírka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "veľkosť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "priehľadnosť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "orientácia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Pre zobrazenie všetkých premenných použi Inšpektor obrázkov." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Môžete použiť iba súbory s nasledovnou príponou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "vľavo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "v strede" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "vpravo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "hore" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "uprostred" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "dole" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Čiernobiely (1-bit na pixel, čierna a biela)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "Odtiene šedej (8-bit pixely)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "LA (8-bit pixely, odtiene šedej s transparentnou maskou)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "RGB (3x8-bit pixely, verné farby)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bit, RGB s maskou priehľadnosti)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "CMYK (4x8-bit pixely, separácia farieb)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "P (8-bit pixely, mapované použitím farebnej palety)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "YCbCr (3x8-bit pixely, farebný video formát)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "rozostriť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "obrys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detail" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "zvýrazniť hrany" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "viac zvýrazniť hrany" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "reliéf" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "detekcia hrán" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "vyhladiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "viac vyhladiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "doostriť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "najbližší" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilineárny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialiasing" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Otočiť o 90°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Otočiť o 180°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Otočiť o 270°" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Preklopiť vodorovne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Preklopiť zvisle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normálne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "žiadny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "nemôže byť prázdne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "neplatná syntax \"%s\" pre celé číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "reťazec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "celé číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "napltný literál \"%s\" pre celé číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "kladné celé číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "hodnota celého čísla \"%s\" je záporná, mala by byť kladná." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "kladné, nenulové celé číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "hodnota celého čísla \"%s\" je nulová, mala by byť nenulová" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "rozlíšenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "desatinné číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "neplatný literál \"%s\" pre reálne číslo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "hodnota reálneho čísla \"%s\" je záporná, mala by byť kladná" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "hodnota reálneho čísla \"%s\" je nulová, mala by byť nenulová" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "booleovská hodnota" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "neplatný literál \"%s\" pre boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "voľba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "prípona súboru \"%s\" je nesprávna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "očakával sa názov súboru so správnou príponou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "súbor \"%s\" neexistuje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "\"%s\" sa nedá nájsť." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "Chýba parameter \"%s.*\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "Povolený je maximálne jeden parameter \"%s\"" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Nič" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "Nainštalujte najskôr \"%s\" prosím." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "Obrázok s %s sa nedá otvoriť." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Príkaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "Výstup" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Chyba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "Nasledovné názvy sú neplatné " #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "&Vybrať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Upozornenie: python-wxversion nie je nainštalovaný.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Nainštalujte alebo reinštalujte ho prosím." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Aktualizujte wxPython prosím." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Chyba wxPython verzie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "Verzia programu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "Poďa&kovanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "Licencia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Zavrieť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "O programe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Poďakovanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dokumentácia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Preklad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Vzhľad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Knižnice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Sponzori" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licencia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "Značka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Hodnota" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "upozornenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "Pridať značku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "všetko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Všetky súbory" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "&Kopírovať hodnotu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "Otvoriť &url..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "&Odstrániť obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "Ľutujem, %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Vybrať obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Vložiť url obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "nainštalujte si prosím pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "nenašli sa žiadne %s tagy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Pridať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "desiatkové" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "nahrávam" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "nie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "áno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Výber" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Písma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Tieň" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Pridá rozostrený tieň pod foto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Okraj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Rozostrenie tieňa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Farba pozadia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Farba tieňa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "Vnútiť farbu pozadia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "Prispôsobiť obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "Schránka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "Roztiahnuť obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "Roztiahnuť model" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "Obaliť oboje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "Oddelene" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "Farba obálky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "Mapovať stránku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "Ľavá strana" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "Farba krabice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "Hĺbka krabice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "Otočenie krytu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "Kamera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "Vodorovné otočenie kamery" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "Zvislé otočenie kamery" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "Kinofilm" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "Uhol objektívu kamery" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "Vzdialenosť kamery" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "Zobraziť možnosti podlahy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "Použiť podlahu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "Farba podlahy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "Odraz podlahy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "Krytie podlahy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "Transparentné pozadie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "Zobraziť možnosti pozadia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Pozadie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "Prechod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "Priesvitné" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "Vrch prechodu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "Spodok prechodu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "Automatické orezanie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "Hviezdy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "Hmla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "Blender" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "zásuvný modul" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "3D objekty" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "Ľutujem, máte inštalovanú nesprávnu verziu Blenderu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "Vyžaduje sa Blender %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "Šírka vykreslenia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "Výška vykreslenia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "Objekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "Veľkosť obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "Zvoľte otočenie pre %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Efekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Rozostrenie, Doostrenie, Slepotlač, Vyhladenie, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Opakovať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Hodnota" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transformovať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Posunúť o vzdialenosť a rozbaliť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Plátno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Oreže alebo rozšíri plátno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "Šířka plátna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Výška plátna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Zarovnať Horizontálne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Zarovnať Vertikálne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Farby do alfy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "farba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Urobiť vybranú farbu transparentnou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "Vybrať farbu podľa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "Kvalita farby" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Vodoznak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Aplikuje dlaždicovo, mierkou a krytím" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Znížiť sýtosť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Zoslabiť všetky farby do šedej" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Zväčší alebo zmenší obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Zachovať pomer strán" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Prevzorkovať obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "Iba zmenšiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Transponovať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Preklopiť alebo otočiť o 90 stupňov" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Stĺpce" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Riadky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "Obidve" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Zvisle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "Zrkadlo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "Vytvorí symetrickú vzorku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Smer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Premenovať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "súbor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "Prejmenovať pôvodný obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Kríž" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Zaoblený" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Štvorcový" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Zaoblenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Zaoblené alebo prekrížené rohy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Polomer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "Rovnaká metóda pre všetky rohy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Ľavý horný roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Pravý horný roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Ľavý dolný roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Pravý dolný roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Zvýraznenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "Použiť transparentné zvýraznenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "Prevzorkovať zvýraznenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Vložiť farbu pod transparentný obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Výplň" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Zmeniť režim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Zmeniť farebný režim obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Prispôsobiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Zmenšiť a orezať obrázok pri zachovaní pomeru strán" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Spadávka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Auto Kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maximalizuje kontrast obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Odstrihnutie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Uložiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "Uložiť a prevádzať na iné typy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "Zobraziť voľby pre typ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "Optimalizovať PNG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "Kvalita JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "JPEG maximálna veľkosť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "JPEG tolerancia veľkosti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "TIFF kompresia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Metaúdaje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Medián" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Kopíruje stredné hodnoty pixelov" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "Čas Exif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "Čas súboru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "Exif aj súbor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "Posun času" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "metaúdaje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "Posunúť časové hodnoty značiek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "Zmeniť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "Použiť exif dátum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Sekundy" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Minúty" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Hodiny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Dni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Mesiace" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Roky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" "Ľutujem, časový posun dokáže spracovať len dátumy skoršie ako 19. 1. 2038" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Maska" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Aplikuje priehľadnú masku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Prevzorkovať masku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Text" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Zapíše text na danú pozíciu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Font" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Veľkosť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Vyfarbiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Ofarbí šedý obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Čierna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Biela" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopírovať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "Kopírovať pôvodný obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posterizácia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "Znížiť počet bitov na farebný kanál" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bitov" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Napísať značku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "Napísať novú hodnotu pre značku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Značka (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "Rovnaké pre všetky strany" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "Odlišné pre každú stranu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "Vykresliť ohraničenie vnútri alebo mimo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "Šírka okrajov" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Hodnotenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Skopírovať n-tú najčastejšiu hodnotu pixelu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solarizácia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Invertovať hodnoty všetkých pixelov nad prahovou hodnotou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Prah" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Vyvážiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Vyváži histogram obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "Automaticky (použi orientáciu z exif)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Orezať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Otočenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "Preklopiť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Odtiene šedej" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "Obnoviť náhľad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "Bezstratový JPEG prevod nefunguje pre %s obrázky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Transformácia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Uhol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "Zachovať časovú značku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Zobraziť pokročilé možnosti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "Obnoviť JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "Obnoviť Exif Náhľad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "Obnoviť značku orientácie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Poznámky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Transformácia " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Uhol " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Smer " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "Pomocou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "Bezstratový JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "Otočiť, preklopiť, odtiene šedej a orezať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Orezať obrázok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Otočí pod akýmkoľvek uhlom" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Rozšíriť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Krytie pozadia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Invertovať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Invertuje farby obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Geotag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "GPS dáta (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "GPS záznam (csv)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "Časový posun (sekundy)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Odraz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Pridá odraz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Hĺbka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Medzera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "Rozostriť odraz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "Mierka odrazu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "Spôsob mierky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Bežné" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Kopíruje najbežnejšie hodnoty pixelov" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Skopírovať minimálnu hodnotu pixelu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Obrys" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Vykreslí obrys okolo okrajov obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Farba obrysu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Farba výplne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "Vrátane obrázku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "Roztiahnuť navrchu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "Roztiahnuť naspodu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "Roztiahnuť vľavo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "Roztiahnuť vpravo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "Ľavý horný roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "Pravý horný roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "Ľavý dolný roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "Pravý dolný roh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "Používateľ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspektíva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Zkosí 2d alebo 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "Projekcia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Uhol ľavého skosenia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Uhol horného skosenia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Faktor spodného skosenia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Faktor pravého skosenia" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Previesť odtiene šedej do čiernobielej" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "Uložiť značky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "Uložiť iba metadáta (bezstratové)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Jednu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Odstrániť značky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Odstrániť Exif alebo Iptc značky" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maximum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Skopírovať maximálnu hodnotu pixelu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Saturation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Nastaviť sýtosť zo šedej do sýtej" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Premenovať menovku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "Premenovať značku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "Z (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "Do (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Jas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Nastaví jas z čiernej do bielej" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "3D Okraj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "Rozmazať" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "Guľka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "Kresba uhlíkom" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "Rozostriť pohybom" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Skica ceruzkou" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "Maľba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "Zaostriť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "Esovitý kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "Rozostriť" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "Vlnenie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Imagemagick" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "Rozmazať, Polaroid, Tieň, Rozostriť..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Farba okraju" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "Nadpis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "Polomer uhlíku" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "Faktor kontrastu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "Prah kontrastu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "Polomer rozmazania" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "Sigma rozmazania" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "Uhol rozmazania" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "Výška vlny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "Dĺžka vlny" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Skica" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "Previesť do kresby ceruzkou, v odtieňoch šedej" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "Miera detailov" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "Geek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "Vykonať externý príkaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "Overiť program" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "Overiť vstup" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "Overiť výstup" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "Povoliť ako poslednú akciu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Tieto rozšírenia sa úspešne sa nainštalovali:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatchu sa nepodarilo nainštalovať požadovanú funkciu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch sa pokúsil odinštalovať z Prieskumníka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Pre túto funkciu je potrebné nainštalovať Python Win32 Extensions." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Zoznam akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Nebol poskytnutý žiaden zoznam akcií" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Cesta k obrázkom" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Chcete pokračovať?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Čo chcete teraz urobiť?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Ak reštartujete %s, akcia sa objaví v kontextovej ponuke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch nemôže nainštalovať akciu %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Toto taktiež vyžaduje nainštalovaný balík python-nautilus." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Dávkové spracovanie obrázkov pomocou Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "Phatch s %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Spracovať s nedávnym zoznamom akcií Phatch" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Uložiť metadáta (je potrebný exif a iptc plugin)" #~ msgid "Do not create missing folders" #~ msgstr "Nevytvárať chýbajúce zložky" #~ msgid "Colour" #~ msgstr "Farba" #~ msgid "Filename" #~ msgstr "Názov súboru" #~ msgid "colours" #~ msgstr "farby" #~ msgid "Fade all colours to gray" #~ msgstr "Previesť všetky farby na odtiene šedej" #~ msgid "Crop or add border to all sides" #~ msgstr "Orezať alebo pridať okraj všetkým stranám" #~ msgid "border" #~ msgstr "okraj" #~ msgid "Height" #~ msgstr "Výška" #~ msgid "Force Background Colour" #~ msgstr "Vynútiť farbu pozadia" #~ msgid "Shadow Colour" #~ msgstr "Farba tieňa" #~ msgid "Background Colour" #~ msgstr "Farba pozadia" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Zníži počet bitov na farebný kanál" #~ msgid "Copy the image file" #~ msgstr "Kopíruje súbor obrázku" #~ msgid "Scale down only" #~ msgstr "Iba zmenšiť" #~ msgid "Put colour under transparent image" #~ msgstr "Umiestňuje farbu pod priehľadný obrázok" #~ msgid "Rename the image file" #~ msgstr "Premenuje súbor obrázku" #~ msgid "Resample Shadow" #~ msgstr "Prevzorkovanie tieňa" #~ msgid "Save an image" #~ msgstr "Uloží obrázok" #~ msgid "watermark" #~ msgstr "vodoznak" #~ msgid "By offset" #~ msgstr "Posunom" #~ msgid "april" #~ msgstr "apríl" #~ msgid "february" #~ msgstr "február" #~ msgid "january" #~ msgstr "január" #~ msgid "march" #~ msgstr "marec" #~ msgid "may" #~ msgstr "máj" #~ msgid "june" #~ msgstr "jún" #~ msgid "wednesday" #~ msgstr "streda" #~ msgid "thursday" #~ msgstr "štvrtok" #~ msgid "monday" #~ msgstr "pondelok" #~ msgid "tuesday" #~ msgstr "utorok" #~ msgid "september" #~ msgstr "september" #~ msgid "october" #~ msgstr "október" #~ msgid "november" #~ msgstr "november" #~ msgid "december" #~ msgstr "december" #~ msgid "july" #~ msgstr "júl" #~ msgid "august" #~ msgstr "august" #~ msgid "saturday" #~ msgstr "sobota" #~ msgid "friday" #~ msgstr "piatok" #~ msgid "sunday" #~ msgstr "nedeľa" #~ msgid "new" #~ msgstr "nové" #~ msgid "the variable" #~ msgstr "premenná" #~ msgid "Save metadata" #~ msgstr "Uložiť metadáta" #~ msgid "All selected image types" #~ msgstr "Všetky vybrané typy obrázkov" #~ msgid "All default image types" #~ msgstr "Všetky východzie typy obrázkov" #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch nemohol vytvoriť droplet:" #~ msgid "Open image url" #~ msgstr "Otvoriť url obrázku" #~ msgid "&Ignore Error" #~ msgstr "&Ignorovať chybu" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "&Inšpektor obrázkov (exif)\tCtrl-Space" #~ msgid "the file extension" #~ msgstr "prípona súboru" #~ msgid "a filename with a valid extension was expected." #~ msgstr "očakával sa názov súboru s platnou príponou." #~ msgid "is invalid." #~ msgstr "je neplatná" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Pre podrobnejšie informácie pozri Nástroje>Zobraziť Log." #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Tento zoznam akcií bol vytvorený staršou verziou %(name)s\n" #~ "\n" #~ msgid "&Recent" #~ msgstr "&Nedávne" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "" #~ "Príkazy dropletu pre tento zoznam akcií boli skopírované do schránky." #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "pretože Phatch vygeneruje užívateľské rozhranie automaticky." #~ msgid "Only an image file is allowed." #~ msgstr "Povolené sú len obrázky." #~ msgid "drag & drop any image here" #~ msgstr "pretiahni sem ľubovoľný obrázok" #~ msgid "Copy cell text" #~ msgstr "Kopírovať obsah bunky" #~ msgid "&Default Types" #~ msgstr "Zákla&dné typy" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-bit pixely, farebný video formát)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-bit celočíselné pixely)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32-bit desatinné pixely)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-bit, reálne farby)" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Odtiene šedej (8-bit na pixel, čierna a biela)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8-bit na pixel, mapované pomocou farebnej palety)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-bit pixely, oddelené farby)" #~ msgid "invalid syntax" #~ msgstr "neplatná syntax" #~ msgid "invalid literal" #~ msgstr "neplatný znak" #~ msgid "the float value" #~ msgstr "desetinné číslo" #~ msgid "the filename" #~ msgstr "meno súboru" #~ msgid "for float" #~ msgstr "pre desatinné čísla" #~ msgid "for boolean" #~ msgstr "pre boolovskou hodnotu" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Napísať nový plugin akcie pre Phatch pomocou PIL." #~ msgid "Open a python shell for introspection" #~ msgstr "Otvorí shell pythonu pre skúmanie chodu" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "Shell &Pythonu...\tCtrl-P" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Webové &stránky...\tCtrl-I" #~ msgid "&File" #~ msgstr "Súbor" #~ msgid "&Export..." #~ msgstr "&Exportovať..." #~ msgid "Create missing folders" #~ msgstr "Vytvoriť chýbajúce zložky" #~ msgid "&Skip To Next Image" #~ msgstr "Preskočiť na ďalší obrázok" #~ msgid "doesn't exist" #~ msgstr "neexistuje." #~ msgid "the integer value" #~ msgstr "celočíselná hodnota" #~ msgid "is zero, but should be non-zero." #~ msgstr "je nula, ale má byť nenulové" #~ msgid "is negative, but should be positive" #~ msgstr "je záporné, ale má byť kladné" #~ msgid "for integer" #~ msgstr "pre celé čísla" #~ msgid "does not exist." #~ msgstr "neexistuje." #~ msgid "please email" #~ msgstr "pošlite prosím email" #~ msgid "Open image file" #~ msgstr "Otvoriť obrázkový súbor" #~ msgid "&Preview" #~ msgstr "Ná&hľad" #~ msgid "Phatch Version" #~ msgstr "Phatch verzia" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "&Napísať vlastnú akciu...\tCtrl-W" #~ msgid "Width" #~ msgstr "Šírka" phatch-0.2.7/locale/sl/0000755000000000000000000000000011346363116014606 5ustar rootroot00000000000000phatch-0.2.7/locale/sl/LC_MESSAGES/0000755000000000000000000000000011346363116016373 5ustar rootroot00000000000000phatch-0.2.7/locale/sl/LC_MESSAGES/phatch.mo0000644000000000000000000005637611346363116020220 0ustar rootroot00000000000000t @!A!H!f!~!! !!!!!!!! ""+"1"@"X"k"|""" """ """" ## 4#U#\# x##3## # ## #%#!$(7$`$q$$ $ $$$$$&$%%*%.<%2k% % %% %&%&&&"#&F&N&U&h&|& && &&6&& ''&'6'='L'\'z''!''''''( ("(@(_(}("(((((- )$:)_))g))))) )),) *%* >*L*(Q* z**$+-+@+ G+U+h+q+++++++++++,, ,,+,E,K,R,W,],a,,, , ,,>,.- H-V-\- l-x-----.--.. #. -.9.H.'O.w.&... .... /%/*///G/O/V/^/e/m/*r///// 0010@0"G0j0r0w000 00 00 0"1*$18O1(1;171%2;2R2 p2&z221222 233%3@3\3c3j333 3 333 3 3 33 44424'J4 r4}444444445 55 %515@5'T5#|5 5$5555>5'61.6`6i6p666666H6$7+@73l7A77'78808)@8 j8 v88888882888 9(9,?9 l9v999949?:A@:7::: : : :::::;;";);0;I;Q;U;];e;l; p;};;;;;;; ;;; ;;;;;;;< <<<< #<-<5<8<I<N<e<v< <<<<<<<< << <<< <<<= ====6=;=?=>>?#?*?;? N? X?b?i?????????@#@4@ <@]@ f@r@z@ @@@@@@&A'A/A HAUA9]A A A AA A#AA'B;BNBaB eB rB BBB"B:BC C&C*6C/aCCCC%C*CDD D)#DMD^DeDvDDDDDD?D E-E2EHEXE_EoE EEEEEEE FF%F.F>F![F }F F&F FG.G2>G)qGG:GGGGG HH$ HEH_H xHH/HHH"]I IIIIIIIII IIJ)J2J;JDJMJ TJ^JsJ J JJJJJJJ K"K )K3KHCK*KKKK KK KKL.L6MLL LLL LLL/LM%-MSMZM nMyMMMMMMMM M N NNN*#NNNnNN&NN$NN O#O 5O@OFOYO lO vOOOO O O&O-P%=P9cP9PP!P Q5Q+MQ yQ-QQQQQQQR R$R+R KRVRlR RRR R R RRR RS"S3TNT`T{TTTTTT T4U8U->U lUvU~UUUUUUBU0V.MV0|V7V V.VW/WAWXWtW {WWWWWWW3WXX$X59X'oX XXXX!X6X>3Y4rYEYYY YZZ Z "Z-Z6ZGZNZ _ZiZpZZZ ZZZZ ZZZZZ ZZ[['[B[I[X[^[f[j[q[ w[[ [[[[ [ [[[[[[* \ 8\D\J\P\X\`\ i\s\ z\\ \\\ \\\ \\\\\\\R=H"DX!d%{7xP|,przr>-@|[H W;:iX2Rg6KsaYS(Mb $5#VP1^gYL}T#/o&tn ~Wq`Zjzf` 7v)K3o*DUQIA ~e_& m l)iNwCMnv5 F}usEp(bL]9=kO/>:0u"0'.hCe8 ?w,ycl [j\.!Q$h *1;a3B?'9+F S-4<qBZU4VNcmE_I{x\T+fJ28@G<k^yGOd6]%JtA&Abort&About Phatch... Ctrl-Shift-A&Action List Droplet...&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&Image Inspector Droplet...&License&New Ctrl-N&OK&Open... Ctrl-O&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&ViewA html tutorial will open in your internet browser.AboutAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAmountAngleApply a transparency maskApply for future errors Apply with tiling, scaling and opacityArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...Auto ContrastBackgroundBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBottom Left CornerBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse FolderC&reditsCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletCodeColorizeColorize grayscale imageCommonConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCreditsCrop or expand the canvas without scalingCrossCutoffDepthDescribe here the action list.DescriptionDisable actionDisplays information about this application.Do not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFalseFileFile(s)FilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsGapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHorizontalHorizontal OffsetIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagesInInclude all subfoldersInspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageKeep existing images (don't overwrite)LabelLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsMake the image smaller or biggerMarkMaskMaximize image contrastMaximumMedianMessageMethodMinimumModeMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo action list provided.No files or folder selected.NormalNothing has been logged yet.Nothing to do.OffsetOffset by distance and wrap aroundOpacityOpenOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesPaste this command in a launcherPathPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Photo Batch ProcessorPlease (re)install it.Please upgrade your wxPython.PosterizeProcess with recent Phatch action listQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRepeatReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaveSave &As... Ctrl-Shift-SSave Action List As...Save last changes toSaves an action listSaves an action list asScaleSelectSelect action listSelectionShadowShadow BlurShear 2d or 3dShow &Log... Ctrl-LShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSliderSolarizeSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:TextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This requires also that the python-nautilus package is installed.TileTools to handle the current action listTop Left CornerTop Right CornerTop Shear AngleTranslate Phatch in your native language.TranslationTransposeTresholdTrueTypesUnable to open fileUnsaved Action ListUpUse the Image Inspector to list all the variables.VerboseVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWhat do you want to do now?WhiteWrite Action PluginWrite text at a given positionYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsantialiasapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerleftmiddleminutemodemonthmonthnamenearestnono %s tags foundpathplease install pyexiv2positive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagtoptransformtruetypeweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-06-26 12:52+0000 Last-Translator: rokkralj Language-Team: Slovenian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) &PrekiniO Phatch-u... Ctrl-Shift-AOdlagalnik seznama &akcij...Dod&ajDod&aj... Ctrl-+&Zaprosi za pomoč&SerijskoPrekliči&ZapriSkrči vse Ctrl-Shift-E&Vseeno nadaljujO&nemogoči Ctrl-0&Dokumentacija... Ctrl-M&Dol Ctrl-DownO&dlagalnik Ctrl-D&Uredi&Omogoči Ctrl-1Izvedi... Ctrl-ReturnRazširi vs&e Ctrl-E&Forum... Ctrl-F&PomočOdlagalnik &inšpektorja slik...&Licenca&Nov Ctrl-N&V redu&Odpri... Ctrl-OIz&hod Ctrl-QNedavni odlagalnik...Odst&rani Ctrl--O&bjavi hrošča... Ctrl-B&Shrani Ctrl-SPokaži opi&s Ctrl-HPokaži pre&dlogo za akcijski vtičnik&OrodjaPrevedi Phatch... Ctrl-T&Gor Ctrl-Up&PogledHTML učna ura se bo odprla v vašem spletnem brskalniku.O ProgramuSeznami nalogSeznam akcijDodajDodaj nalogoPrilagodi svetlost iz črne na beloPrilagodi iz sive v črno-beloPrilagodi nasičenost iz sive na visokoPoravnaj vodoravnoPoravnaj navpičnoVseVse datotekeVse datotekeKoličinaKotUporabi masko prosojnostiUporabi za sledeče napake Uporabi s tlakovanjem, spremembo velikosti in prosojnostjoSlikeKotPoveži slike s seznamom akcij v %s...Poveži slike z inšpektorjem slik v %s...Poveži slike s nedavnim seznamom akcij v %s...Samodejni kontrastOzadjeProsojnost ozadjaSerijsko procesiraj slike z Phatch-omSerijsko obdelaj z nedavnim seznamom akcijBitiČrnaPrelivatiZamegli, izostri, bočenje, omehčaj, ...Boolova vrednostObrobaSpodnji levi kotSpodnji desni kotSpodnji faktor striženjaSvetlostBrskajBrskaj direktorijZaslugeNe morem uporabiti akcije %(a)s na sliki '%(i)s' v direktoriju:Ne morem uporabiti akcije %(a)s:PanoNajprej preveri slikePreverjam slikeIzbiraIzberi datotekeIzbor direktorijaIzberi datoteko seznama nalog...Izberite slikoIzberi imenik s slikamiIzberi direktorij za odlagalnikKodaObarvajObarvaj sivinsko slikoPogostoOhrani razmerjeKontrastSpremeni načinSpremeni barvni način slikeKopira maksimalno vrednost pikslaKopira sredinsko vrednost pikslaKopira minimalno vrednost pikslaKopira najbolj pogosto vrednost pikslaKopira rangirano vrednost pikslaKopirajShrani seznam akcij kot &ukaze na odložiščeKopraj i&nšpektorja slik kot ukaz na odložiščeKopraj n&azadnje kot ukaz na odložiščeZaslugePoreži ali povečaj platno brez spremembe velikosti slikeKrižOdsekGlobinaTu opiši seznam nalogOpisOnemogoči nalogoPrikaže informacije o tem programu.Ne preverjaj slik najprejAli želite nadaljevati?DokumentacijaDolZmanjšaj ali obreži sliko z fiksnim razmerjemPotegni in spustiOdvrzi datoteke ali imenike na ta Phatch odlagalnik za njihovo skupinsko procesiranje. Desno klikni ali dvoklikni za preklop v običajni pogled.Pod sliko postavi zamegljeno sencoSpusti odsevUčinekOmogoči nalogoVnesite URL slikeIzenačiIzenači histogram slikeNapakaPrimeriIzvediIzvedi nalogoIzvedi seznam akcijIzvršujem seznam nalogRazširiNe veljaDatotekaDatotekeFilterPrilagodiZrcali levo na desnoZrcali vrh na dnoZrcali ali rotiraj za 90 stopinjPlavajočeImenikPisavaPisaveVrzelPojdi na Phatch dokumentacijo.Pojdi na Phatch forumPojdi na domačo stran Phatch-a.SivineVodoravnoVodoravni zamikČe ponovno zaženete %s, se bo akcija pojavila v kontekstualnem meniju.Če želiš prispevati vtičnik za Phatch.Spreglej napakeSlikaInšpektor slikPoti do slikSlikeNavznoterVključi vse podmapeRazišči EXIF in IPTC značkeRayišči EXIF in IPTC značkeRazišlči meta-podatke (zahteva exif in iptc dodatek)Razišči s Phatch-emCelo številoCelo število+Celo število+0InteraktivnoNeveljavne slikeObrniInvertiraj vse vrednosti pikslov nad vrednostjoObrni barve slikeOhrani obstoječe slike (ne prepisuj)OznakaLevi kot striženjaKnjižniceLicencaDnevnikPoglej EXIF in IPTC značkeSliko povečaj ali pomanjšajOznačiMaskaMaksimiziraj kontrast slikeMaksimumSredinskoSporočiloPostopekMinimumNačinEnobarvno (1 bit na piksel, črno in belo)Premakni izbrano nalogo navzdolPremakni izbrano nalogo navzgorNi seznama akcij.Nobena datoteka ali imenik ni izbrana.NavadnoNič še ni bilo zapisano v dnevnik.Ni dejanja za izvedbo.OdmikOdmakni za vrednost in ovij naokoliProsojnostOdpriOdpri seznam nalogOdpri seznam nalogMožnostiUsmerjenostPrepiši obstoječe slikePrilepi ukaz na zaganjalecPotPerspektivaPhatch ne more obdelati %d slik:Phatch ni uspel namestiti akcije v %s:Phatch ni uspel namestit željene posebnosti.Phatch je uspešno kreiral odlagalnikPhatch se je poskusil odstraniti iz Windows Raziskovalca.Phatch jo bo dodal zate, prosim preveri njene nastavitve.Serijsko Procesiranje SlikProsim da ga (ponovno) namestite.prosim nadgradite vaš wxPython.Zmanjšaj število barvProcesiraj z nedavnim Phatch seznamom akcijZapri programRGBA (4x8 bitno piksel, RGB s prosojno masko)RadijRangOdsevOdstraniOdstrani povezavo iz %s...Odstrani izbrano nalogoOdstrani izbrano nalogoPreimenujPonoviObjavi hrošča na launchpad-u.PrevzorčiPonovno vzorči slikoPonovno ovrednoti maskoLočljivostDesni faktor striženjaZasukajObrni za 180Obrni za 270Obrni za 90Zasukaj z naključnim kotomOkrogloZaobljenoZaobljeni ali križani roboviZaženi %s kot odlagalnikZaženi %s kot program brez uporabniškega vmesnikaNasičenostShraniShrani &kot... Ctrl-Shift-SShrani seznam nalog kot...Shrani zadnje spremembe vShrani seznam nalogShrani seznam nalog kotSpreminjanje velikostiIzberiIzberi seznam akcijIzborSencaSenčna meglicaStriži 2D ali 3DPokaži dnevnik... Ctrl-LPokaži vse parametre nalogPrikaži opis seznama nalogPokaži dnevniško datotekoPokaže le oznake nalogVelikostDrsnikSolarizirajŽal, za ta seznam akcij morate namestiti akcijo %s.IzvorDoloči lokalni jezik (naprimer sl ali sl_SI)DonatorjiKvadratZačni nov seznam nalogZaustavi se ob napakahNizPreuči vtičnike nalog v:BesediloSeznam nalog je prazen.Ukaz odlagalnika inšpektorja slik je bil skopiran v odložišče.Nobena naloga ni omogočena.Na koncu seznama bi morala biti 'Save' akcija.Sledeči dodatki so bili uspešno nameščeni: To zahteva da je nameščen tudi paket python-nautilus.TlakovanoOrodja za upravljanje trenutnega seznama nalogZgornji levi kotZgornji desni kotZgornji kot striženjaPrevedi Phatch v svoj jezikPrevodSpremeni redMejaVeljaVrsteNe morem odpreti datotekeNeshranjen seznam nalogGorUporabi inšpektorja slik za izpis vseh spremenjivkPreveč zgovornoNavpični zamikPokaži izvorno kodoPokaži kot odlagalnik datotek za 'povleci in odvrzi'Pozor: python-wxversion ni nameščen. Vodni žigKaj želiš storiti sedaj?BelaNapiši vtičnik nalogePiši besedilo na podani lokacijiUporabite lahko samo datoteke s sledečimi končnicamiKot besedilo ga lahko prilepite v lastnosti novega zaganjalca.Za to posebnost potrebujete Win32 dodatek za Python.Vse kar moraš znati je PIL, če hočeš napisati vtičnik za Phatch.prekininalogeprekrivanjeprogramozadjebikubičnobilinearniomehčajboolova vrednostna dnorazširi iskanjev sredinoizbirakliknite '+' za dodajanje akcijobrisdandecimalnoprivzetodetajldpipojačaj robpojačaj rob boljbočenjene veljadatotekaime datotekevelikostdatotekefilterpoišči robovevrednost plavajoče vejiceimenikimedirektorijaokvirvišinauraprezrislikecelo številolevov sredinominutanačinmesecimemesecanajbližjineznačke %s nisem našelpotprosim namestite pyexiv2pozitivno celo številopozitivno celo število, različno od ničločljivostdesnokorensekundaizostrivelikostpreskočigladkobolj gladkonizpoddirektorijznačkana vrhpreoblikujveljavrstadanvtednuimednevaširinazwxPython napaka različiceletodaphatch-0.2.7/locale/sl/LC_MESSAGES/phatch.po0000644000000000000000000034047311346363116020215 0ustar rootroot00000000000000# Slovenian translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-06-26 12:52+0000\n" "Last-Translator: rokkralj \n" "Language-Team: Slovenian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Razišči s Phatch-em" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Razišči EXIF in IPTC značke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Primeri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Zaženi %s kot program brez uporabniškega vmesnika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Zaženi %s kot odlagalnik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Spreglej napake" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interaktivno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Ohrani obstoječe slike (ne prepisuj)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Določi lokalni jezik (naprimer sl ali sl_SI)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Razišlči meta-podatke (zahteva exif in iptc dodatek)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Vključi vse podmape" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Ne preverjaj slik najprej" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Preveč zgovorno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "Kot besedilo ga lahko prilepite v lastnosti novega zaganjalca." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Žal, za ta seznam akcij morate namestiti akcijo %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "Ukaz odlagalnika inšpektorja slik je bil skopiran v odložišče." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Nič še ni bilo zapisano v dnevnik." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Dnevnik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "prekini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "preskoči" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "prezri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "kliknite '+' za dodajanje akcij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Odpri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Odpri seznam nalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Izvedi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Izvedi nalogo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Dodaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Dodaj nalogo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Odstrani" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Odstrani izbrano nalogo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Gor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Premakni izbrano nalogo navzgor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Dol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Premakni izbrano nalogo navzdol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Inšpektor slik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Poglej EXIF in IPTC značke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Opis" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Prikaži opis seznama nalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Izberi datoteko seznama nalog..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Shrani seznam nalog kot..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "program" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "okvir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "naloge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "HTML učna ura se bo odprla v vašem spletnem brskalniku." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Preuči vtičnike nalog v:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Če želiš prispevati vtičnik za Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Potegni in spusti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Odvrzi datoteke ali imenike na ta Phatch odlagalnik\n" "za njihovo skupinsko procesiranje.\n" "Desno klikni ali dvoklikni za preklop v običajni pogled." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch jo bo dodal zate, prosim preveri njene nastavitve." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Shrani zadnje spremembe v" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Izberi direktorij za odlagalnik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch je uspešno kreiral odlagalnik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Izberi seznam akcij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Izbor direktorija" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Izberi datoteke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Izberi imenik s slikami" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Brskaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Datoteka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Imenik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "privzeto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Pokaži izvorno kodo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "razširi iskanje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Pot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Nov\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Začni nov seznam nalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Odpri...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Odpri seznam nalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Shrani\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Shrani seznam nalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Shrani &kot...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Shrani seznam nalog kot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Shrani seznam akcij kot &ukaze na odložišče" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Prilepi ukaz na zaganjalec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Kopraj n&azadnje kot ukaz na odložišče" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Kopraj i&nšpektorja slik kot ukaz na odložišče" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "Iz&hod\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Zapri program" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "Dod&aj...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "Odst&rani\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Odstrani izbrano nalogo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Omogoči\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Omogoči nalogo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "O&nemogoči\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Onemogoči nalogo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Gor\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Dol\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Uredi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "O&dlagalnik\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Pokaži kot odlagalnik datotek za 'povleci in odvrzi'" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "Pokaži opi&s\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Orodja za upravljanje trenutnega seznama nalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "Razširi vs&e\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Pokaži vse parametre nalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "Skrči vse\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Pokaže le oznake nalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Pogled" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "Izvedi...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Izvedi seznam akcij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Pokaži dnevnik... \tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Pokaži dnevniško datoteko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Orodja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Pojdi na domačo stran Phatch-a." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Dokumentacija...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Pojdi na Phatch dokumentacijo." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Pojdi na Phatch forum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "Prevedi Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Prevedi Phatch v svoj jezik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "O&bjavi hrošča... \tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Objavi hrošča na launchpad-u." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "O Phatch-u... \tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Prikaže informacije o tem programu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Pomoč" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Vse kar moraš znati je PIL, če hočeš napisati vtičnik za Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "Pokaži pre&dlogo za akcijski vtičnik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Koda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Zaprosi za pomoč" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&V redu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Napiši vtičnik naloge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Uporabi za sledeče napake " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Prekini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Sporočilo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Vseeno nadaljuj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Možnosti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Vrste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Brskaj direktorij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Izvor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Datoteke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Zaustavi se ob napakah" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Najprej preveri slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Prepiši obstoječe slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "Prekliči" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Serijsko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Slika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Oznaka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "značka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boolova vrednost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Niz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Izbira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Ločljivost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "Navznoter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Plavajoče" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Kot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Način" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Prevzorči" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bikubično" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Celo število" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Celo število+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Celo število+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Vodoravno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Drsnik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "ozadje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Vse" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Usmerjenost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Odmik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Vodoravni zamik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Navpični zamik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Tlakovano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Spreminjanje velikosti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Označi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Prosojnost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Postopek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Serijsko Procesiranje Slik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Velja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Ne velja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "velja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "ne velja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Neshranjen seznam nalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Seznami nalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Vse datoteke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Tu opiši seznam nalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Na koncu seznama bi morala biti 'Save' akcija." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "z" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Poveži slike s seznamom akcij v %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Poveži slike s nedavnim seznamom akcij v %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Poveži slike z inšpektorjem slik v %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Odstrani povezavo iz %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "Odlagalnik seznama &akcij..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "Nedavni odlagalnik..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "Odlagalnik &inšpektorja slik..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Serijsko obdelaj z nedavnim seznamom akcij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Rayišči EXIF in IPTC značke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Ni dejanja za izvedbo." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Seznam nalog je prazen." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Nobena naloga ni omogočena." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Preverjam slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch ne more obdelati %d slik:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Neveljavne slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Nobena datoteka ali imenik ni izbrana." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Ne morem odpreti datoteke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Ne morem uporabiti akcije %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Ne morem uporabiti akcije %(a)s na sliki '%(i)s' v direktoriju:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Izvršujem seznam nalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Izberi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "dan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "imedirektorija" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "ime datoteke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "velikostdatoteke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "imenik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "ura" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minuta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "mesec" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "imemeseca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "pot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "koren" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "sekunda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "poddirektorij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "vrsta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "danvtednu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "imedneva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "leto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "višina" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "način" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "širina" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "velikost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Uporabi inšpektorja slik za izpis vseh spremenjivk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Uporabite lahko samo datoteke s sledečimi končnicami" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "levo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "v sredino" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "desno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "na vrh" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "v sredino" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "na dno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Enobarvno (1 bit na piksel, črno in belo)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8 bitno piksel, RGB s prosojno masko)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "omehčaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "obris" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detajl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "pojačaj rob" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "pojačaj rob bolj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "bočenje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "poišči robove" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "gladko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "bolj gladko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "izostri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "najbližji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilinearni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "prekrivanje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Obrni za 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Obrni za 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Obrni za 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Zrcali levo na desno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Zrcali vrh na dno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Navadno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "niz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "celo število" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "pozitivno celo število" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "pozitivno celo število, različno od nič" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "ločljivost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "vrednost plavajoče vejice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "boolova vrednost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "izbira" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Napaka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Pozor: python-wxversion ni nameščen.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Prosim da ga (ponovno) namestite." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "prosim nadgradite vaš wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPython napaka različice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "Zasluge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licenca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Zapri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "O Programu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Zasluge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dokumentacija" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Prevod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Knjižnice" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Donatorji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licenca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Vse datoteke" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Izberite sliko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Vnesite URL slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "prosim namestite pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "značke %s nisem našel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "Dod&aj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimalno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "ne" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "da" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Izbor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Pisave" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Senca" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Pod sliko postavi zamegljeno senco" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Obroba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Senčna meglica" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Ozadje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Učinek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Zamegli, izostri, bočenje, omehčaj, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Ponovi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Količina" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "preoblikuj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Odmakni za vrednost in ovij naokoli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Pano" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Poreži ali povečaj platno brez spremembe velikosti slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Poravnaj vodoravno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Poravnaj navpično" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Vodni žig" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Uporabi s tlakovanjem, spremembo velikosti in prosojnostjo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Sliko povečaj ali pomanjšaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Ohrani razmerje" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Ponovno vzorči sliko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Spremeni red" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Zrcali ali rotiraj za 90 stopinj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Preimenuj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "datoteka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Križ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Zaobljeno" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Kvadrat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Okroglo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Zaobljeni ali križani robovi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Radij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Zgornji levi kot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Zgornji desni kot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Spodnji levi kot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Spodnji desni kot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Spremeni način" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Spremeni barvni način slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Prilagodi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Zmanjšaj ali obreži sliko z fiksnim razmerjem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Prelivati" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Samodejni kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maksimiziraj kontrast slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Odsek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Shrani" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Sredinsko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Kopira sredinsko vrednost piksla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Maska" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Uporabi masko prosojnosti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Ponovno ovrednoti masko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Besedilo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Piši besedilo na podani lokaciji" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Pisava" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Velikost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Obarvaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Obarvaj sivinsko sliko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Črna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Bela" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopiraj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Zmanjšaj število barv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Biti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Rang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Kopira rangirano vrednost piksla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solariziraj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Invertiraj vse vrednosti pikslov nad vrednostjo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Meja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Izenači" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Izenači histogram slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Zasukaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Sivine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Kot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Zasukaj z naključnim kotom" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Razširi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Prosojnost ozadja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Obrni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Obrni barve slike" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Odsev" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Spusti odsev" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Globina" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Vrzel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Pogosto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Kopira najbolj pogosto vrednost piksla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Kopira minimalno vrednost piksla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspektiva" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Striži 2D ali 3D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Levi kot striženja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Zgornji kot striženja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Spodnji faktor striženja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Desni faktor striženja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Prilagodi iz sive v črno-belo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maksimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Kopira maksimalno vrednost piksla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Nasičenost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Prilagodi nasičenost iz sive na visoko" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Svetlost" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Prilagodi svetlost iz črne na belo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Sledeči dodatki so bili uspešno nameščeni:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch ni uspel namestit željene posebnosti." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch se je poskusil odstraniti iz Windows Raziskovalca." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Za to posebnost potrebujete Win32 dodatek za Python." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Seznam akcij" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Ni seznama akcij." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Poti do slik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Ali želite nadaljevati?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Kaj želiš storiti sedaj?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" "Če ponovno zaženete %s, se bo akcija pojavila v kontekstualnem meniju." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch ni uspel namestiti akcije v %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "To zahteva da je nameščen tudi paket python-nautilus." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Serijsko procesiraj slike z Phatch-om" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Procesiraj z nedavnim Phatch seznamom akcij" #~ msgid "new" #~ msgstr "nova" #~ msgid "doesn't exist" #~ msgstr "ne obstaja" #~ msgid "for integer" #~ msgstr "za celo število" #~ msgid "is zero, but should be non-zero." #~ msgstr "je nič, vendar mora biti različno od nič." #~ msgid "for float" #~ msgstr "za vrednost plavajoče vejice" #~ msgid "is negative, but should be positive" #~ msgstr "je negativno, vendar morala biti pozitivno" #~ msgid "for boolean" #~ msgstr "za boolovo vrednost" #~ msgid "Colour" #~ msgstr "Barva" #~ msgid "Filename" #~ msgstr "Ime datoteke" #~ msgid "All default image types" #~ msgstr "Običajne vrste slik" #~ msgid "All selected image types" #~ msgstr "Vse izbrane vrste slik" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "Phatch bo ustvaril uporabniški vmesnik samodejno." #~ msgid "please email" #~ msgstr "prosim pošlji elektronsko pošto" #~ msgid "&File" #~ msgstr "&Datoteka" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Napiši nov vtičnik nalog za Phatch s PIL-om." #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Shrani meta-podatke (zahteva exif in iptc vtičnik)" #~ msgid "Do not create missing folders" #~ msgstr "Ne ustvari manjkajočih map" #~ msgid "colours" #~ msgstr "Barve" #~ msgid "Fade all colours to gray" #~ msgstr "Spremeni barve v sivine" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "Napiši akcijski vtičnik... \tCtrl-W" #~ msgid "Open a python shell for introspection" #~ msgstr "Odpri python lupino za vpogled" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Python lupina...\tCtrl-P" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Spletna stran...\tCtrl-I" #~ msgid "border" #~ msgstr "obroba" #~ msgid "Height" #~ msgstr "Višina" #~ msgid "Crop or add border to all sides" #~ msgstr "Odreži ali dodaj obrobo na vseh straneh" #~ msgid "Width" #~ msgstr "Širina" #~ msgid "Shadow Colour" #~ msgstr "Barva sence" #~ msgid "Force Background Colour" #~ msgstr "Vsili barvo ozadja" #~ msgid "Background Colour" #~ msgstr "Barva ozadja" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Zmanjšaj število bitov na barvnem kanalu" #~ msgid "Put colour under transparent image" #~ msgstr "Dodaj barvo pod prosojno sliko" #~ msgid "Rename the image file" #~ msgstr "Preimenuj datoteko slike" #~ msgid "Copy the image file" #~ msgstr "Kopiraj datoteko slike" #~ msgid "Scale down only" #~ msgstr "Samo zmanjšaj" #~ msgid "Save an image" #~ msgstr "Shrani sliko" #~ msgid "watermark" #~ msgstr "vodni žig" #~ msgid "By offset" #~ msgstr "Z zamikom" #~ msgid "april" #~ msgstr "april" #~ msgid "february" #~ msgstr "februar" #~ msgid "january" #~ msgstr "januar" #~ msgid "march" #~ msgstr "marec" #~ msgid "Resample Shadow" #~ msgstr "Ponovno ovrednoti senco" #~ msgid "may" #~ msgstr "maj" #~ msgid "wednesday" #~ msgstr "sreda" #~ msgid "monday" #~ msgstr "pondeljek" #~ msgid "tuesday" #~ msgstr "torek" #~ msgid "september" #~ msgstr "september" #~ msgid "october" #~ msgstr "oktober" #~ msgid "november" #~ msgstr "november" #~ msgid "december" #~ msgstr "december" #~ msgid "june" #~ msgstr "junij" #~ msgid "july" #~ msgstr "julij" #~ msgid "august" #~ msgstr "avgust" #~ msgid "saturday" #~ msgstr "sobota" #~ msgid "friday" #~ msgstr "petek" #~ msgid "thursday" #~ msgstr "četrtek" #~ msgid "sunday" #~ msgstr "nedelja" #~ msgid "the variable" #~ msgstr "spremenljivka" #~ msgid "the file extension" #~ msgstr "končnica imena datoteke" #~ msgid "the float value" #~ msgstr "vrednost s plavajočo vejico" #~ msgid "the filename" #~ msgstr "ime datoteke" #~ msgid "a filename with a valid extension was expected." #~ msgstr "pročakovana je bila datoteka z veljavno končnico" #~ msgid "does not exist." #~ msgstr "ne obstaja" #~ msgid "is invalid." #~ msgstr "je nepraviln." #~ msgid "invalid syntax" #~ msgstr "nepravilna sintaksa" #~ msgid "the integer value" #~ msgstr "vrednost celega števila" #~ msgid "invalid literal" #~ msgstr "napačni dobesedni navedek" #~ msgid "Save metadata" #~ msgstr "Shrani meta-podatke" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Za podrobnosti poglej Orodja->Pokaži dnevnik." #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Ta seznam akcij je bil narejen s starejšo verzijo %(name)s.\n" #~ "\n" #~ msgid "&Recent" #~ msgstr "Nedavno" #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "PHoto bATCH (Serijski Foto) Processor in Preimenovalec" #~ msgid "Only an image file is allowed." #~ msgstr "Dovoljena je samo slikovna datoteka." #~ msgid "drag & drop any image here" #~ msgstr "sem potegnite in spustite katerokoli sliko" #~ msgid "&Preview" #~ msgstr "&Predogled" #~ msgid "Copy cell text" #~ msgstr "Kopiraj besedilo celice" #~ msgid "Open image url" #~ msgstr "Odpri URL slike" #~ msgid "Open image file" #~ msgstr "Odpri datoteko slike" #~ msgid "Phatch Version" #~ msgstr "Phatch različica" #~ msgid "Create missing folders" #~ msgstr "Ustvari manjkajoče direktorije" #~ msgid "&Default Types" #~ msgstr "&Privzeti tipi" #~ msgid "&Skip To Next Image" #~ msgstr "Preskoči na na&slednjo sliko" #~ msgid "&Ignore Error" #~ msgstr "Napako &ignoriraj" #~ msgid "&Export..." #~ msgstr "&Izvozi ..." #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Sivinsko (8 bitni piksel, črno in belo)" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8 bitni piksel, barvni video format)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32 bitni piksel s plavajočo vejico)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8 bitni piksel, polnobarvno)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8 bitni piksel, mapiranje z uporabo barvne palete)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8 bitni piksel, barvna separacija)" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "Ukaz odlagalnika za ta seznam akcij je bil skopiran v odložišče." #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch ni mogel kreirati odlagalnika" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32 bitni celoštevilčni piksel)" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "&Inšpektor slik (EXIF)\tCtrl-Space" phatch-0.2.7/locale/sr/0000755000000000000000000000000011346363116014614 5ustar rootroot00000000000000phatch-0.2.7/locale/sr/LC_MESSAGES/0000755000000000000000000000000011346363116016401 5ustar rootroot00000000000000phatch-0.2.7/locale/sr/LC_MESSAGES/phatch.mo0000644000000000000000000012160111346363116020206 0ustar rootroot00000000000000.".&.. .//%/=/B/K/e/ t/////// /// 0&060F0L0[0s0000000 1 11 1-1@1 O1]1{1 11 1111 22$23,2`2 f2 s222 2%2!2(2 33*3 .3 83B3Y3`3f3m333&33339'4a4i4*l4.42445 5 55/5 B5&c5555"55555 55 566 -686 ?6 M6W6'`66666 6 66707@7G7V7f777!777 77778+8I8P8f8n8 w8"8888"9&9E9(J9-s9$999)99 ::: :): B:N: T:_: ~: : ::,::: ;;(!; J;!V;x;;$<=<P< W<e<x<<<<<<<<<<==$= )=3=;= @= K= W=b=i=m=}============>1> L> V>`> s>~>>>>.> ?%?+? ;? G?S?Z?]? t???.???@ @ @"@1@'8@`@~@@@@@&@@@@ @A AA *A98ArA AAAAAA%A B BBB#B*B2B9B>B*EBpBBBB"BC C'C6C?CGC"NCqCuCCCCCCC CC.D 3DTD YD gD"sD*D8D(D;#E7_EEEEE EE&F!/FQF gF1FFF*F FFG!G&KeK1lKKKKKKKKLLL'L:LBLGLHaLL+L3L&MA@MMMMM'MMMM NNN'/NWN)gN N NNNNNNNN O&O:OQOkOOO OO2OOOOPP .P(:P,cP P PPPP PPP*Q4GQ?|QAQ7Q.6ReRkR sR }R R RRRRRRRRRRR SS#S'S/S7S>S BSOSaShSnSsS|SS SSS SSSSSSS SS T8TXT]TfTmTtTyT TTTTTTTTTT UU!U&U-U5U:U?U FURU YUcU"gU U8U4U:V6TVV VVVV VVVVVVV8X-XXYY,.Y [YgY3YYYY(YZZ+Z KZlZ6ZZ%Z[[ 0[<[W[t[[ [2[8[ \:0\k\|\\\\\\6]&<]c]v]0].] ] ^#^5^E^YT^^^ ^ ^^ _G$_;l_G_*_&`B`I`a`:y``` `6`.a5>aQta aUaj'bbbGbOb\@c cc%ccc)d6:dFqd ddd;de 'e2e9e@eRemee*eee)ef ,f;7fmsf7f g&g@g:Zg"gg g#gh)'hQh;kh8hhhh ii2i QiJ^i iiiii-jABj=j?jEkCHk kHkNkE1lwl lGllllm$m*5m`m zmm"mm m m#mFn-Jn*xnnn6nn;o:Vo&o@p%p q,qLqfq0yq qq qq(q!r 8r9Errrrrr rr%s&s >s Ks Xsys9ssss s*t 0t;t Mt!Zt@|t/tNtw JwUw8Xwww+wUwAx\xdxvxxx xFxy$,y(Qy zyyyNyyy yz2zAz0Yz/zRz; {2I{|{{ {0{{A{&|-| >| K|V|e| t| ||F|;|; }8\}G}C}!~81~j~~~~/~ ~,~5P i$v$ .I0] :̀EOM2UЁY&(.-؂ .$MS: ܃>Q<9 2 *=*hɅ6 5-c#x܆ ,)$:$_# ȇՇ/ +'gS,  "0<m3[")<fy%"Њ* ) <G]qA$ҋ</4;d6׌ * +BOXa @Vg z(Ď)ˎ  )"Cf u+f8CLC.ԐW[l}#F.B"aG̒J -:I R ] j4w8:8 2Y,?7!1S\6rc -+>#jWDG [(f*×4ۗ8IIGYۘu5bc r ÚԚ )#0#Tx /›כ ")"C fq! ˜؜! - 8EL ]h1y/?۝?[dy Ӟ%؞ 2#ICm.  +< MZpw A0fj}lqUǢ΢  4A(F o|{~U.cw -4,wv$0e| AFGu-hvnBV 7@5/M]<kNq&K HSZ(4<jTC 62g3DR^yE #xH`(0>5 pLc$o;'oW:t2.?r)#\aqhOf6b9"# I'"[ lC,d }GVP!j%~7 !P ).83%:_x=EA[m&kJy,X>* !Q^-Z"{%N)Q'euFUaWm \$ssb=`n&_Y/dlti@zYzSr?RTX]f8p}|;J K+ *9iO*1D+L I1+(BgM%(amount)d images done in %(duration)s%d issues were logged%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List Droplet...&Add&Add Tag&Add Tag to All Images...&Add... Ctrl-+&Ask for Help&Batch&Browse Library&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Copy Tag&Delete Tag from All Images...&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&Image Inspector Droplet...&Insert Tag in Action List...&License&Modify Value for All Images...&New Ctrl-N&OK&Open... Ctrl-O&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Remove Image&Rename Tag for All Images...&Report a Bug... Ctrl-B&Save Ctrl-S&Show Description Ctrl-H&Show template for action plugin&Skip to Next Action&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&View3D EdgeA html tutorial will open in your internet browser.AboutAction ListsAction listAddAdd TagAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAlways save on desktopAmountAngleAngle Apply a transparency highlightApply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilAre you sure you want to delete this tag from "%s"?Are you sure you want to delete this tag from all images?ArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastBackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBothBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse FolderBy OffsetC&reditsCMYK (4x8-bit pixels, color separation)Can not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthChange value for all images to:Check images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletCodeColorColor ValueColor to AlphaColorizeColorize grayscale imageColumnsCommand did not produce an output image: %sCommonConstrain ProportionsContourContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDirectionDirection Disable actionDisplays information about this application.Do not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDraw border inside or outsideDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFade all colors to grayFalseFebruaryFileFile NameFile(s)FillFill ColorFill FolderFill ImageFilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsForce Background ColorFridayFrom (Exif, Iptc)GapGeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagemagickImagesInInclude all subfoldersInclude imageInspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LabelLeftLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsLossless JPEGLossless JPEG transformation does not work on a %s image:Make selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMaximum one parameter "%s" is allowedMayMedianMessageMethodMiddleMinimumMirrorModeMondayMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo action list provided.No files or folder selected.No save action required at the endNormalNothing has been logged yet.Nothing to do.NovemberOctoberOffsetOffset by distance and wrap aroundOneOne image done in %sOne issue was loggedOpacityOpenOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesP (8-bit pixels, mapped using a color palette)Paste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Photo Batch ProcessorPlease (re)install it.Please upgrade your wxPython.PolaroidPosterizePreserve TimestampProcess with recent Phatch action listPut color under transparent imageQuit the application.RGB (3x8-bit pixels, true color)RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReduce the number of bits of color channelReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename tag for all images to:RepeatReport a bug on launchpad.ResampleResample HighlightResample ImageResample MaskResolutionRightRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSame Method for All CornersSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save TagsSave last changes toSave only metadata (lossless)Saves an action listSaves an action list asScaleScale MethodScale ReflectionSelectSelect Color BySelect action listSelectionSeptemberShadowShadow BlurShadow ColorShear 2d or 3dShift time values of tagsShow &Log... Ctrl-LShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSketchSkip To Next &ImageSliderSolarizeSorry, %s.Sorry, no valid files foundSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:SundayTIFF CompressionTagTag (Exif, Iptc)Tag exists alreadyTamogenTextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTo (Exif, Iptc)Tone altering mosaic generatorTools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTransform to a grayscale pencil drawingTransformation Translate Phatch in your native language.TranslationTransposeTresholdTrueTuesdayTypesUnable to add tag <%s>Unable to change label.Unable to change tag <%s>Unable to delete tag <%s>Unable to open fileUnable to remove imageUnable to rename tag <%s>Unable to save tag <%s>Unsaved Action ListUpUpdate JPEGUpdate Orientation TagUse the Image Inspector to list all the variables.ValueVerboseVerticalVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYCbCr (3x8-bit pixels, color video format)You can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,a filename with a valid extension was expectedabortactionsantialiasapplicationautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcan not be emptycenterchoiceclick '+' to add actionscompressioncontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerinvalid literal "%s" for booleaninvalid literal "%s" for floatinvalid literal "%s" for integerinvalid syntax "%s" for integerleftmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnonepathplease install pyexiv2positive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existthe float value "%s" is negative, but should be positivethe float value "%s" is zero, but should be non-zerothe integer value "%s" is negative, but should be positivethe integer value "%s" is zero, but should be non-zerotoptransformtruetypeweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-11-06 20:59+0000 Last-Translator: Saša Pavić Language-Team: Serbian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) %(amount)d слика завршена за %(duration)s%d проблем је евидентиран%s Скорашњи&Прекини&О Phatch-у... Ctrl-Shift-AДроплет &Акционе Листе...&Додај&Додај ознаку&Додај ознаку свим сликама...&Додај... Ctrl-+&Затражи подршку&Batch&Прегледај библиотеку&&Затвори&Скупи Све Ctrl-Shift-E&Свеједно Настави&Копирај Ознаку&Обриши ознаку са свих слика...&Онемогућити Ctrl-0&Документација... Ctrl-M&Доле Ctrl-Down&Дроплет Ctrl-DУр&еди&Омогућити Ctrl-1&Изврши... Ctrl-Return&Прошири Све Ctrl-E&Форум... Ctrl-F&ПомоћДроплет &Инспектора Слика...&Убаци Ознаку у Листу Команди...&ЛиценцеПромени &вредност за све слике...&Нови Ctrl-N&Потврди&Отвори... Ctrl-O&Излаз Ctrl-QП&рошли Дроплет...&Уклони Ctrl--&Обриши Слику&Промени ознаку за све слике...&Пријави Грешку... Ctrl-B&Сними Ctrl-S&Прикажи Опис Ctrl-H&Прикажи образац за акцију&Пређи на следећу команду&Алати&Преведи Phatch... Ctrl-T&Горе Ctrl-Up&Прикажи3Д ИвицаУпутство ће се отворити у Интернет претраживачу.О програмуАкционе листеАкцијеДодајДодај ОзнакуДодај акцијуПодеси осветљеност од тамне ка светлојПодешавање од сиве ка црно-белојПодеси засићеност од слабијих ка вишимПоређај по хоризонталиПоређај по вертикалиСвеСве датотекеСве датотекеУвек сачувај на радној површиниКоличинаУгаоУгао Примени прозирно наглашавањеПримени провидност маскеПријава за будуће грешке Примени поплочавање, скалирање и прозирностАприлЖелите ли стварно да обришете ову ознаку са "%s"?Да ли стварно желите да обришете ову ознаку са свих слика?ГрафикаКаоПовезивање Слика са Листом Акција у %s...Повезивање Слика са Инспектором Слика у %s...Повезивање Слика са Претходном Листом Акција у %s...АвгустАутоматскиАутоматски контрастПозадинаБоја ПозадинеНепрозирност ПозадинеПакетна обрада слика са ФечомBatch процес са претходном листом акцијаБитоваЦрнаПреклапањеМрња, Оштрина, Рељеф, Глаткоћа, ...BooleanИвицаОбаДноДоле левоДоњи леви угаоДоле десноДоњи десни угаоДоњи Фактор ЗакривљењаОсветљеностПрегледајПретражи директоријумПомерај&ZaslužniCMYK (4x8-битни пиксели, дељење боје)Немогуће применити акцију %(a)s на слику '%(i)s' у директоријуму:Немогуће применити акцију %(a)s:ПлатноВисина платнаШирина платнаПромени вредност за све слике у:Провери слике првоПроверавам сликеИзборИзабери Датотеку(е)Одабери фасциклуИзабери Листу Акција...Изабери сликуИзабери директоријум са сликамаИзаберите директоријум за dropletКôдБојаВредност бојеБоја у алфуОбојеностОбоји сиву сликуКолонеНаредба није направила излазну слику:\n %sОпштеОграничи РазмеруКонтураКонтрастРежим ПретварањаПромени режим боја сликеУмножи максималну вредност пикселаУмножава средњу вредност пикселаУмножава најмању вредност пикселаУмножава најопштију вредност пикселаУмножава рангирану вредност пикселаУмножиСними Листу Акција као &Команду на ClipboardУпамти И&нспектор Слика као Команду у ClipboardУпамти П&редходне као команде за ClipboardЗаслугеИсециИсеци или прошири платно без скалирањаСеци сликуУнакрсноПрилагођеноГраницаДецембарОбриши Exif или Iptc ознакеОбриши ознакеДубинаОбезбојиОпиши листу акцијаОписПравацПравац Онемогућити акцијуПрикажи информације о овој апликацијиНе проверавај слике првоЖелите ли да наставите?ДокументацијаДолеСмањи и исеци слику сразмерноПревуци & ПустиОпцртавање ивица слике контуромИсцртај ивице споља или изнутраПревуците било које документе или директоријуме на овај Phatch droplet да примените batch процедуру на њих. Десним кликом или дуплим кликом промените на нормални приказ.Постави замућену сенку испод сликеПоставља рефлексијуЕфекатОмогућити акцијуУнети url сликеИзједначиИзједначи хистограм сликеГрешкаПримериИзвршиИзврши акцијуИзвршава листу акцијаИзвршавање акцијаРашириПостепено утопи све боје у сивуНетачноФебруарДатотекаИме датотекеДатотека(е)ПопуниИспуни бојомИспуни ДиректпријумИспуни СликуФилтерУклопиОкрени Лево ДесноОкрени Горе ДолеИзврни или ротирај за 90 степениFloatДиректоријумФонтПисмаФорсирај боју позадинеПетакИз (Exif, Iptc)РазмакГеографска ознакаОтвара документацију програма Phatch.Отвара форум програма PhatchОтвара страницу на интернету програма Phatch.Сиве нијансеНаглашавањеУра, нема проблема!ХоризонталноХоризонтално поравнавањеХоризонтални померајУколико поново покренете %s, акција ће се појавити у контекстуалном менију.Уколико желите да креирате додатке за Феч,Занемарите грешкеСликаИнспектор СликаПутања до сликеImagemagickСликеУУкључите све поддиректуријумеКористи СликуInspect EXIF & IPTCПровера EXIF & IPTC таговаНадгледај метаподатке (захтева exif & iptc додатак)Испитај у ФечуIntegerИнтеграл+Интеграл+0ИнтерактивноНеисправне сликеИзврниИзокрени ведности пиксела изнад прагаИзврни бојеJPEG Највећа ВеличинаJPEG Величина одступањаЈануарЈулЈунСачувај постојеће слике (не пиши преко њих)ЕтикетаЛевоЛеви Угао ИскривиБиблиотекеЛиценцаДневник радаПретражи exif и iptc параметреJPEG без губитака квалитетаJPEG преображај без губитака не ради на %s слициНаправи изабрану боју прозирномНаправи мању или већу сликуМартОзначи саМаскаМаксимизуј контраст сликеМаксимумСамо један параметар "%s" је дозвољенМајМедијанаПорукаМетодСрединаМинимумОдразРежимПонедељакЈеднобојно (1 бит по пикселу, црно-бело)Премести изабрану акцију нанижеПремести изабрану акцију навишеНије обезбеђена акциона листа.Нисте изабрали фајл нити директоријум.Без акције снимања потребне на крајуНормалнoЈош ништа није уписано у запис.Не ради ништаНовембарОктобарПомерајПомерај по дужини и у кругЈеданЈедна слика завршена у %sЈедан проблем је евидентиранНепровидностОтвориОтвори листу акцијаОтвара листу акцијаОпцијеОрјентацијаПресними постојеће сликеP (8-битни пиксели, мапирано палетом боја)Копирај ову команду у launcherПутањаСкица оловкомПерспективаФеч не може прхватити %d слику(е):Феч није могао инсталирати акцију у %s:Феч није успео да инсталира жељени додатак.Phatch је успешно креирао droplet.Phatch је покушао да се деинсталира из Windows Explorer-а.Феч ће додати једну за вас, проверите подешавања.Пакетска Обрада СликаПотребно (ре)инсталирати.Молимо надоградите wxPython.ПолароидПлакатСачувај временску ознакуОбради са прошлом Фечовом акционом листомСтави боју испод прозирне сликеИзлаз из програмаRGB (3x8-битни пиксели, истинита боја)RGBA (4x8 бита по пикселу, RGB са прозирном маском)ПолупречникРангСмањи број бита канала са бојомРефлексијаУклониУклањање Повезаности из %s...Уклони изабрану акцијуУклони означену акцијуПромени имеПреименуј ОзнакуПреименуј ознакуПромени ознаку за све слике у:ПоновиПријављивање грешке на launchpad.ПреузоркујИзмени наглашавањеПреузоркуј СликуПреузоркуј МаскуРезолуцијаДесноДесни Фактор ЗакривљењаОкренутиОкрени за 180 степениОкрени за 270 степениОкрени за 90 степениОкрени насумичноКружноЗаобљеностЗаобљени или прави угловиРедовиПокрените %s као дроплетПокрените %s као конзолни програм без графичког окружењаИсти метод за све угловеЗасићеностСуботаСачувајСними &Као... Ctrl-Shift-SСачувај Листу Акција Као...Сачувај ознакеСачувајте последње измене уСачувај само метаподатке (без губитака квалитета)Снима листу акцијаСнима листу акција каоСкалиранаМетод СкалирањаСкалирај РефлексијуИзаберитеИзабери боју путемИзаберите листу акцијаИзборСептембарСенкаМутна СенкаБоја СенкеИскриви у 2d или 3dПромени временске вредности ознакаПриказ &Записа... Ctrl-LПриказује сва подешавања акције.Прикажи опис листе акцијаПрикажи датотеку са евиденцијомПриказује само називе акција.ВеличинаСкицаПређи на Следећу &СликуКлизачОсветљавањеЖао ми је, %sЖао ми је, није пронађена исправна датотекаПотребно је инсталирати %s акцију за ову листу акција.ИзворОдреди локални језик (нпр. en или en_GB)СпонзориКвадратноНова листа акцијаЗаустави при грешкамаStringПроучавајте додатке у:НедељаTIFF КомпресијаОзнакаОзнака (Exif, Iptc)Ознака већ постојиТамогенТекстАкциона листа је празнаДроплет наредба за Инспектор Слика је снимљена на clipboard.Није омогућена ниједна акција.На крају је потребна акција 'Сачувај'Ови додатци су успешно инсталирани: Ова датотека већ постоји.Ово захтева и да python-nautilus пакет буде инсталиран.ЧетвртакПоплочајУ (Exif, Iptc)Мозаични генераторАлат за рад са тренутном листом акцијаВрхГоре левоГорњи леви угаоГоре десноГорњи десни угаоГорњи Угао ИскривиПреобрази у цртеж оловком сивих тоноваПреображај Превођење програма Phatch на матерњи језик.ПреводПромениПрагТачноУторакТиповиНије могуће додати ознаку <%s>Није могуће променити етикету.Није могуће променити ознаку <%s>Није могуће обрисати ознаку<%s>Немогуће отворити датотекуНемогуће уклонити сликуНије могуће преименовати ознаку<%s>Није могуће сачувати ознаку<%s>Несачуване АкцијеГореАжурирај JPEGАжурирај Орјентациону ОзнакуИскористи Инспектора Слика да излиста све променљиве.ВредностОпширноУсправноВертикално поравнавањеВертикални померајПогледај ИзворПриказати као дроплет за превлачење докуменатаУпозорење: python-wxversion није инсталиран. Водени жигСредаШта желите да урадите?БелаКреирај Акције ДодаткеУпиши ОзнакуУпиши нову вредност у ознакуУпиши текст на задату позицијуYCbCr (3x8-битни пиксели, боја видео формата)Можеш само користити овај тип датотекеТекст се може копирати у подешавања новог launcher-а.За ову могућност програма је потребно инсталирати Python Win32 Extensions.Потребно је познавање PIL-а да би писали додатке за Phatch,очекивано је име датотеке са исправним типом датотекепрекидакцијеантиалиаспрограмаутоматскипозадинабикубнобилинеарнозамућенологичка вредностднопроширите претрагуне може бити празносрединаизборкликни '+' да додате акцијукомпресијаконтурадандецималподразумеванидетаљтпипојачај ивицупојачај ивицу вишерељефнетачнодатотекаиме датотекевеличина датотекефилтернађи ивицеfloatдиректоријумИме директоријумаоквирвисиначасзанемарисликеинтегралпогрешан литерал "%s" за booleanпогрешан литерал "%s" за floatнеисправна вредност "%s" за цео бројнеисправна синтакса "%s" за цео бројлевометаподациу срединиминутрежиммесециме месецаприближноНе%s тагови нису нађениништапутањамолим вас инсталирајте pyexiv2позитивни интегралпозитивни, интеграл различит од нулеpyexiv2 мора бити инсталиранрезолуцијадесноосновасекундаизоштривеличинапрескочиугладиуглади вишенизподдиректоријумознакаознака типа датотеке "%s" је погрешнаиме датотеке "%s" не постојиврердност float "%s" је негативна, требала би бити позитивнаврердност float "%s" је нула, требала би бити различита од нулевредност броја "%s" је негативна, а требала би бити позитивнавредност броја "%s" је нула, а требала би бити неки број сем нулеврхтрансформишитачноврстадан у недељииме дана у недељиширинасаПогрешна верзија wxPythonгодинаДаphatch-0.2.7/locale/sr/LC_MESSAGES/phatch.po0000644000000000000000000036302211346363116020216 0ustar rootroot00000000000000# Serbian translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-11-06 20:59+0000\n" "Last-Translator: Saša Pavić \n" "Language-Team: Serbian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Испитај у Фечу" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Inspect EXIF & IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Примери" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Покрените %s као конзолни програм без графичког окружења" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Покрените %s као дроплет" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Увек сачувај на радној површини" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Занемарите грешке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Интерактивно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Сачувај постојеће слике (не пиши преко њих)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Одреди локални језик (нпр. en или en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Надгледај метаподатке (захтева exif & iptc додатак)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Без акције снимања потребне на крају" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Укључите све поддиректуријуме" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Не проверавај слике прво" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Опширно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "Текст се може копирати у подешавања новог launcher-а." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Потребно је инсталирати %s акцију за ову листу акција." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "Дроплет наредба за Инспектор Слика је снимљена на clipboard." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "Ура, нема проблема!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Још ништа није уписано у запис." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Дневник рада" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "прекид" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "прескочи" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "занемари" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "кликни '+' да додате акцију" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Отвори" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Отвори листу акција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Изврши" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Изврши акцију" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Додај" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Додај акцију" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Уклони" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Уклони изабрану акцију" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Горе" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Премести изабрану акцију навише" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Доле" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Премести изабрану акцију наниже" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Инспектор Слика" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Претражи exif и iptc параметре" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Опис" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Прикажи опис листе акција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Изабери Листу Акција..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Сачувај Листу Акција Као..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Ова датотека већ постоји." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "програм" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "оквир" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "акције" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Упутство ће се отворити у Интернет претраживачу." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Проучавајте додатке у:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Уколико желите да креирате додатке за Феч," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Превуци & Пусти" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Превуците било које документе или директоријуме на овај Phatch droplet\n" "да примените batch процедуру на њих.\n" "Десним кликом или дуплим кликом промените на нормални приказ." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Феч ће додати једну за вас, проверите подешавања." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Сачувајте последње измене у" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Изаберите директоријум за droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch је успешно креирао droplet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Изаберите листу акција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Одабери фасциклу" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Изабери Датотеку(е)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Изабери директоријум са сликама" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "слике" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Прегледај" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Датотека" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Директоријум" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "подразумевани" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Погледај Извор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "проширите претрагу" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Путања" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "&Убаци Ознаку у Листу Команди..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Нови\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Нова листа акција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Отвори...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Отвара листу акција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Сними\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Снима листу акција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Сними &Као...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Снима листу акција као" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "Сними Листу Акција као &Команду на Clipboard" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Копирај ову команду у launcher" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "Упамти П&редходне као команде за Clipboard" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Упамти И&нспектор Слика као Команду у Clipboard" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Излаз\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Излаз из програма" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Додај...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Уклони\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Уклони означену акцију" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Омогућити\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Омогућити акцију" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Онемогућити\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Онемогућити акцију" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Горе\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Доле\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "Ур&еди" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Дроплет\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Приказати као дроплет за превлачење докумената" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Прикажи Опис\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Алат за рад са тренутном листом акција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Прошири Све\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Приказује сва подешавања акције." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Скупи Све\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Приказује само називе акција." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Прикажи" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Изврши...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Извршава листу акција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "&Прегледај библиотеку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Приказ &Записа...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Прикажи датотеку са евиденцијом" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Алати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Отвара страницу на интернету програма Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Документација...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Отвара документацију програма Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Форум...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Отвара форум програма Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Преведи Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Превођење програма Phatch на матерњи језик." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Пријави Грешку...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Пријављивање грешке на launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&О Phatch-у...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Прикажи информације о овој апликацији" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Помоћ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Потребно је познавање PIL-а да би писали додатке за Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Прикажи образац за акцију" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Кôд" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Затражи подршку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&Потврди" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Креирај Акције Додатке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Пријава за будуће грешке " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Прекини" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "&Пређи на следећу команду" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "Пређи на Следећу &Слику" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Порука" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Свеједно Настави" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Опције" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Типови" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Претражи директоријум" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Извор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Датотека(е)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Заустави при грешкама" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Провери слике прво" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Пресними постојеће слике" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Batch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Слика" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Етикета" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "ознака" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "String" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Избор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Боја" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Резолуција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Име датотеке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "У" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Као" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Режим" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Преузоркуј" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "бикубно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Интеграл+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Интеграл+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Хоризонтално" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Клизач" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "pyexiv2 мора бити инсталиран" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Јануар" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Фебруар" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Март" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "Април" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Мај" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Јун" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Јул" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "Август" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Септембар" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Октобар" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "Новембар" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "Децембар" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Понедељак" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Уторак" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Среда" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Четвртак" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Петак" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Субота" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Недеља" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "позадина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" "Наредба није направила излазну слику:\\n\n" "%s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Све" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Прилагођено" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Средина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Лево" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Десно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Врх" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Дно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Доле лево" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Доле десно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Горе лево" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Горе десно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Орјентација" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Померај" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Хоризонтални померај" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Вертикални померај" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Хоризонтално поравнавање" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Вертикално поравнавање" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "Померај" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Поплочај" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Скалирана" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Означи са" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Непровидност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Метод" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Аутоматски" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Пакетска Обрада Слика" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Тачно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Нетачно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "тачно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "нетачно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Несачуване Акције" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Акционе листе" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Све датотеке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Опиши листу акција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "На крају је потребна акција 'Сачувај'" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "са" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s Скорашњи" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Повезивање Слика са Листом Акција у %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Повезивање Слика са Претходном Листом Акција у %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Повезивање Слика са Инспектором Слика у %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Уклањање Повезаности из %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "Дроплет &Акционе Листе..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "П&рошли Дроплет..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "Дроплет &Инспектора Слика..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Batch процес са претходном листом акција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Провера EXIF & IPTC тагова" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Не ради ништа" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Акциона листа је празна" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Није омогућена ниједна акција." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Проверавам слике" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Феч не може прхватити %d слику(е):" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Неисправне слике" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Жао ми је, није пронађена исправна датотека" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Нисте изабрали фајл нити директоријум." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Немогуће отворити датотеку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Немогуће применити акцију %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Немогуће применити акцију %(a)s на слику '%(i)s' у директоријуму:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Извршавање акција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "Једна слика завршена у %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "%(amount)d слика завршена за %(duration)s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Један проблем је евидентиран" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "%d проблем је евидентиран" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Изаберите" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "Није могуће променити етикету." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "Није могуће обрисати ознаку<%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "Није могуће преименовати ознаку<%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "Није могуће сачувати ознаку<%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "дан" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "Име директоријума" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "име датотеке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "величина датотеке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "директоријум" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "час" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "минут" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "месец" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "име месеца" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "путања" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "основа" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "секунда" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "поддиректоријум" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "врста" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "дан у недељи" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "име дана у недељи" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "година" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "компресија" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "тпи" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "висина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "режим" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "ширина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "величина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Искористи Инспектора Слика да излиста све променљиве." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Можеш само користити овај тип датотеке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "лево" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "средина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "десно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "врх" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "у средини" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "дно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Једнобојно (1 бит по пикселу, црно-бело)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "RGB (3x8-битни пиксели, истинита боја)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8 бита по пикселу, RGB са прозирном маском)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "CMYK (4x8-битни пиксели, дељење боје)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "P (8-битни пиксели, мапирано палетом боја)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "YCbCr (3x8-битни пиксели, боја видео формата)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "замућено" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "контура" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "детаљ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "појачај ивицу" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "појачај ивицу више" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "рељеф" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "нађи ивице" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "углади" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "углади више" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "изоштри" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "приближно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "билинеарно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "антиалиас" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Окрени за 90 степени" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Окрени за 180 степени" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Окрени за 270 степени" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Окрени Лево Десно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Окрени Горе Доле" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Нормалнo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "ништа" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "не може бити празно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "неисправна синтакса \"%s\" за цео број" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "низ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "интеграл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "неисправна вредност \"%s\" за цео број" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "позитивни интеграл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "вредност броја \"%s\" је негативна, а требала би бити позитивна" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "позитивни, интеграл различит од нуле" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "вредност броја \"%s\" је нула, а требала би бити неки број сем нуле" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "резолуција" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "погрешан литерал \"%s\" за float" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "врердност float \"%s\" је негативна, требала би бити позитивна" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "врердност float \"%s\" је нула, требала би бити различита од нуле" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "логичка вредност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "погрешан литерал \"%s\" за boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "избор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "ознака типа датотеке \"%s\" је погрешна" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "очекивано је име датотеке са исправним типом датотеке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "име датотеке \"%s\" не постоји" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "Само један параметар \"%s\" је дозвољен" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "аутоматски" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Грешка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Упозорење: python-wxversion није инсталиран.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Потребно (ре)инсталирати." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Молимо надоградите wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Погрешна верзија wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "&Zaslužni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Лиценце" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Затвори" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "О програму" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Заслуге" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Документација" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Превод" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Графика" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Библиотеке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Спонзори" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Лиценца" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "Ознака" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Вредност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "Додај Ознаку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "Желите ли стварно да обришете ову ознаку са \"%s\"?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "Да ли стварно желите да обришете ову ознаку са свих слика?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "Ознака већ постоји" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Слике" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Све датотеке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "&Додај ознаку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "&Обриши Слику" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "&Копирај Ознаку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "&Додај ознаку свим сликама..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "&Обриши ознаку са свих слика..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "&Промени ознаку за све слике..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "Промени &вредност за све слике..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "Није могуће додати ознаку <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "Немогуће уклонити слику" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "Промени ознаку за све слике у:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "Промени вредност за све слике у:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "Није могуће променити ознаку <%s>" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "Жао ми је, %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Изабери слику" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Унети url слике" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "молим вас инсталирајте pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "%s тагови нису нађени" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Додај" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "децимал" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "Не" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "Да" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Избор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Писма" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Сенка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "филтер" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Постави замућену сенку испод слике" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Ивица" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Мутна Сенка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Боја Позадине" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Боја Сенке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "Форсирај боју позадине" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Позадина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Ефекат" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Мрња, Оштрина, Рељеф, Глаткоћа, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Филтер" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Понови" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Количина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "трансформиши" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Померај по дужини и у круг" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Платно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Исеци или прошири платно без скалирања" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "Ширина платна" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Висина платна" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Поређај по хоризонтали" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Поређај по вертикали" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Боја у алфу" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Направи изабрану боју прозирном" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "Изабери боју путем" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "Вредност боје" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Водени жиг" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Примени поплочавање, скалирање и прозирност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Обезбоји" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Постепено утопи све боје у сиву" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Направи мању или већу слику" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Ограничи Размеру" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Преузоркуј Слику" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Промени" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Изврни или ротирај за 90 степени" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Колоне" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Редови" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "Оба" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Усправно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "Одраз" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Правац" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Промени име" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "датотека" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Унакрсно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Заобљеност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Квадратно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Кружно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Заобљени или прави углови" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Полупречник" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "Исти метод за све углове" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Горњи леви угао" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Горњи десни угао" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Доњи леви угао" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Доњи десни угао" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Наглашавање" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "Примени прозирно наглашавање" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "Измени наглашавање" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Стави боју испод прозирне слике" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Попуни" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Режим Претварања" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Промени режим боја слике" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Уклопи" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Смањи и исеци слику сразмерно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Преклапање" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Аутоматски контраст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Максимизуј контраст слике" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Граница" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Сачувај" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "JPEG Највећа Величина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "JPEG Величина одступања" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "TIFF Компресија" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Медијана" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Умножава средњу вредност пиксела" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "метаподаци" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "Промени временске вредности ознака" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Маска" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Примени провидност маске" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Преузоркуј Маску" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Текст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Упиши текст на задату позицију" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Фонт" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Величина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Обојеност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Обоји сиву слику" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Црна" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Бела" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Умножи" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Плакат" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "Смањи број бита канала са бојом" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Битова" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Упиши Ознаку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "Упиши нову вредност у ознаку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Ознака (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "Исцртај ивице споља или изнутра" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Ранг" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Умножава рангирану вредност пиксела" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Осветљавање" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Изокрени ведности пиксела изнад прага" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Праг" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Изједначи" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Изједначи хистограм слике" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Исеци" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Окренути" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Сиве нијансе" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "JPEG преображај без губитака не ради на %s слици" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Угао" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "Сачувај временску ознаку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "Ажурирај JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "Ажурирај Орјентациону Ознаку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Преображај " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Угао " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Правац " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "JPEG без губитака квалитета" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Сеци слику" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "Тамоген" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "Мозаични генератор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "Испуни Слику" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "Испуни Директпријум" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Окрени насумично" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Рашири" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Непрозирност Позадине" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Изврни" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Изврни боје" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Географска ознака" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Рефлексија" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Поставља рефлексију" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Дубина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Размак" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "Скалирај Рефлексију" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "Метод Скалирања" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Опште" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Умножава најопштију вредност пиксела" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Минимум" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Умножава најмању вредност пиксела" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Контура" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Опцртавање ивица слике контуром" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Испуни бојом" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "Користи Слику" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Перспектива" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Искриви у 2d или 3d" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Леви Угао Искриви" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Горњи Угао Искриви" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Доњи Фактор Закривљења" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Десни Фактор Закривљења" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Контраст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Подешавање од сиве ка црно-белој" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "Сачувај ознаке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "Сачувај само метаподатке (без губитака квалитета)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Један" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Обриши ознаке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Обриши Exif или Iptc ознаке" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Максимум" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Умножи максималну вредност пиксела" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Засићеност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Подеси засићеност од слабијих ка вишим" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Преименуј Ознаку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "Преименуј ознаку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "Из (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "У (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Осветљеност" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Подеси осветљеност од тамне ка светлој" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "3Д Ивица" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Скица оловком" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Полароид" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Imagemagick" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Скица" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "Преобрази у цртеж оловком сивих тонова" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Ови додатци су успешно инсталирани:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Феч није успео да инсталира жељени додатак." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch је покушао да се деинсталира из Windows Explorer-а." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "За ову могућност програма је потребно инсталирати Python Win32 Extensions." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Акције" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Није обезбеђена акциона листа." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Путања до слике" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Желите ли да наставите?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Шта желите да урадите?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" "Уколико поново покренете %s, акција ће се појавити у контекстуалном менију." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Феч није могао инсталирати акцију у %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Ово захтева и да python-nautilus пакет буде инсталиран." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Пакетна обрада слика са Фечом" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Обради са прошлом Фечовом акционом листом" #~ msgid "Colour" #~ msgstr "У боји" #~ msgid "Filename" #~ msgstr "Име датотеке" #~ msgid "colours" #~ msgstr "боје" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Сачувај метаподатке (захтева exif & iptc додатак)" #~ msgid "Crop or add border to all sides" #~ msgstr "Исеци или додај ивицу" #~ msgid "border" #~ msgstr "ивица" #~ msgid "Height" #~ msgstr "Висина" #~ msgid "Width" #~ msgstr "Ширина" #~ msgid "Force Background Colour" #~ msgstr "Присили Боју Позадине" #~ msgid "Shadow Colour" #~ msgstr "Боја Сенке" #~ msgid "Background Colour" #~ msgstr "Боја Позадине" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Смањи број бита у каналу боја" #~ msgid "Fade all colours to gray" #~ msgstr "Промени све боје у сиву" #~ msgid "Put colour under transparent image" #~ msgstr "Постави боју испод провидне слике" #~ msgid "Copy the image file" #~ msgstr "Умножи слику" #~ msgid "Scale down only" #~ msgstr "Скалирај наниже" #~ msgid "Rename the image file" #~ msgstr "Промени име слике" #~ msgid "Resample Shadow" #~ msgstr "Преузоркуј Сенку" #~ msgid "Save an image" #~ msgstr "Сачувај слику" #~ msgid "watermark" #~ msgstr "водени жиг" #~ msgid "By offset" #~ msgstr "По померају" #~ msgid "february" #~ msgstr "фебруар" #~ msgid "january" #~ msgstr "јануар" #~ msgid "april" #~ msgstr "април" #~ msgid "march" #~ msgstr "март" #~ msgid "september" #~ msgstr "септембар" #~ msgid "may" #~ msgstr "мај" #~ msgid "june" #~ msgstr "јун" #~ msgid "july" #~ msgstr "јул" #~ msgid "august" #~ msgstr "август" #~ msgid "saturday" #~ msgstr "субота" #~ msgid "friday" #~ msgstr "петак" #~ msgid "thursday" #~ msgstr "четвртак" #~ msgid "wednesday" #~ msgstr "среда" #~ msgid "sunday" #~ msgstr "недеља" #~ msgid "monday" #~ msgstr "понедељак" #~ msgid "tuesday" #~ msgstr "уторак" #~ msgid "october" #~ msgstr "октобар" #~ msgid "november" #~ msgstr "новембар" #~ msgid "december" #~ msgstr "децембар" #~ msgid "new" #~ msgstr "ново" #~ msgid "doesn't exist" #~ msgstr "не постоји" #~ msgid "invalid syntax" #~ msgstr "погрешна синтакса" #~ msgid "&File" #~ msgstr "&Датотека" #~ msgid "&Export..." #~ msgstr "&Извези..." #~ msgid "Do not create missing folders" #~ msgstr "Не креирај фасцикле који недостају" #~ msgid "the variable" #~ msgstr "променљива" #~ msgid "invalid literal" #~ msgstr "неисправна ниска" #~ msgid "is negative, but should be positive" #~ msgstr "је негативно, морао би бити позитиван" #~ msgid "the file extension" #~ msgstr "тип датотеке" #~ msgid "a filename with a valid extension was expected." #~ msgstr "очекивана је датотека са исправним типом." #~ msgid "does not exist." #~ msgstr "не постоји" #~ msgid "is invalid." #~ msgstr "је неисправан." #~ msgid "Save metadata" #~ msgstr "Сачувај метаподатке" #~ msgid "All selected image types" #~ msgstr "Сви изабрани типови слика" #~ msgid "All default image types" #~ msgstr "Сви подразумевани типови слика" #~ msgid "&Recent" #~ msgstr "&Прошли" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Види Алати>Прикажи Дневник за више информација." #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "пошто Феч аутоматски генерише кориснички интерфејс." #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "PHoto bATCH Processor & Renamer" #~ msgid "please email" #~ msgstr "пошаљите е-пошту" #~ msgid "Only an image file is allowed." #~ msgstr "Само су слике дозвољене" #~ msgid "drag & drop any image here" #~ msgstr "превуци & пусти било коју слику овде" #~ msgid "Create missing folders" #~ msgstr "Креирајте директоријуме који недостају" phatch-0.2.7/locale/sv/0000755000000000000000000000000011346363116014620 5ustar rootroot00000000000000phatch-0.2.7/locale/sv/LC_MESSAGES/0000755000000000000000000000000011346363116016405 5ustar rootroot00000000000000phatch-0.2.7/locale/sv/LC_MESSAGES/phatch.mo0000644000000000000000000005045011346363116020215 0ustar rootroot00000000000000t \()?Fdi x   ' 3 7 G T c {     3  ! !! !!%/!!U!(w!! ! !(!!!!" ""*".A"2p"" " """ "# #"#6#>#E#X# l#w# ~##6####$$$($8$V$f$}$$$$$$$ $"$%"%B%G%O%T%c%i%p%y%% %%,%%&& 6&D&(I& r&~&-&& &&&&' ''$':'A'G'P' U'_'g'l's'w'''''''''' ( (( -(;(A(Q(X(:[((0((.(&):)B) K) U)a)p)'w)))))&)) )*** 2*S*Y*^*c*{************+"3+V+]+z+++++++ ++++ ,,(, -,"9,8\,;,7, --6- T-!^-1--- ---- ...2. ;.F. M. X. c.m.....'. ..//!/8/M/e/k/ r/ |// ///#/ /////>0X01_000000000H0E?11+111112)2 @2L2U2Z2b2h2|2222 2(2 2 22343AK37333 3 3333444#4*414J4R4V4^4f4m4 q4~4444444 444 44444445 555"5'5 -575?5B5G5^5o5 55555555 555 555 5556 666666;6?6777 88-8B8X8`8h8z88 888888 89 99-9=9 X9f999 993999 : :'":&J:1q:: : :(:$: ;;; ;3;)7;)a;2;;;;;;" </<5<*;<f<w<|<< <<< <<<!=6===W=k= o= }== ====== =>>>.>"M>p>> >>>>>>>> >>#? 7?X?l? ??)???-?@"@4@=@X@\@ d@o@@ @@@@@@@@@@@AAAA A(AGA]A wA AAAA AAA?AB62B!iB2BBBBB BB C-C?C_CgClC+qCC CCCC CCCD D"D*D.D 5D@DFDNDTD#\DDDD(DEE$E9EBEJEQEbEsEzEEEEEEE E)F82FAkFCFF G*G HG%TG/zGG G GGGGH H!H 5H ?HKHRHdHvHHHHHH>H&I/I7IV/c$=o>'w-pUzYm:m_.e9PrNDt4ssW;JBh'GFxGL0QfRb5-ICT,A; VS0a*  E +\ <R#4D ]HOg=<oXa51OXj3[9ZS [g8Fbp{nKZ$%)TKiN%d issues were logged&Abort&About Phatch... Ctrl-Shift-A&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Continue Anyway&Documentation... Ctrl-M&Down Ctrl-Down&Edit&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&License&New Ctrl-N&OK&Open... Ctrl-O&Quit Ctrl-Q&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Show Description Ctrl-H&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&ViewA html tutorial will open in your internet browser.AboutAction ListsAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAllAll FilesAll filesAllow Geek action and unsafe expressionsAlways save on desktopAmountAngleAprilArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAuto ContrastBackgroundBackground ColorBackground OpacityBatch process images with PhatchBitsBlackBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBottom Left CornerBottom Right CornerBrightnessBrowseBrowse FolderC&reditsCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderCodeColorColorizeColorize grayscale imageCommonConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the minimum pixel valueCopies the most common pixel valueCopyCreditsCropCrop the imageCrossCustomDecemberDepthDescribe here the action list.DescriptionDisable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDrops a reflectionEasily batch process images and edit metadataEffectEnable actionEqualizeEqualize the image histogramErrorExamplesExecuteExecute the actionExecuting action listExpandFalseFebruaryFileFile NameFile(s)FillFilterFitFlip or rotate 90 degreesFloatFolderFontFontsFridayGapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHorizontalHorizontal OffsetIgnore errorsImageImage InspectorImagesInIn Phatch you need to open or create an action list first.Include all subfoldersInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJanuaryJulyJuneKeep existing images (don't overwrite)LabelLibrariesLicenseLogMake selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMayMedianMessageMethodMinimumModeMondayMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo files or folder selected.No save action required at the endNormalNothing has been logged yet.Nothing to do.NovemberOctoberOffsetOne issue was loggedOpacityOpenOpen &RecentOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesPathPerspectivePhatch can not handle %d image(s):Phatch did not succeed to install the requested feature.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Photo Batch ProcessorPlease (re)install it.Please upgrade your wxPython.PosterizePut color under transparent imageRGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRenameRepeatReport a bug on launchpad.ResampleResolutionRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Saves an action listSaves an action list asScaleSelectSelectionSeptemberShadowShadow BlurShow &Log... Ctrl-LShow LogShow description of the action listShow log fileSizeSliderSolarizeSorry, no valid files foundSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringSundayTextThe action list is empty.The droplet command for recent action lists was copied to the clipboard.The droplet command for this action list was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.This file exists already.ThursdayTileTop Left CornerTop Right CornerTranslate Phatch in your native language.TranslationTresholdTrueTuesdayTypesUnable to open fileUnsaved Action ListUpVerboseVertical OffsetView SourceView as a droplet to drag and drop filesWatermarkWednesdayWhat do you want to do now?WhiteYou can only use files with the following extensionsYou need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerleftmetadatamiddleminutemodemonthmonthnamenearestnopathplease install pyexiv2positive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth moresourcestringsubfoldertagtoptransformtruetypeweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-01-22 08:06+0000 Last-Translator: Albert Cervin Language-Team: Swedish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) %d fel loggades&Avbryt&Om Phatch... Ctrl-Shift-ALägg &till&Lägg till... Ctrl-+&Fråga efter hjälp&Behanda i bakgrundenA&vbrytS&täng&Fortsätt ändå&Dokumentation... Ctrl-M&Ned Ctrl-DownR&edigera&Kör... Ctrl-Return&Expandera alla Ctrl-E&Forum... Ctrl-F&Hjälp&Licens&Nytt Ctrl-N&OK&Öppna... Ctrl-O&Avsluta Ctrl-Q&Ta bort Ctrl--&Rapportera bugg... Ctrl-B&Spara Ctrl-S&Visa beskrivning Ctrl-HVerk&tyg&Översätt Phatch... Ctrl-T&Upp Ctrl-Up&VisaEn html guide kommer att öppnas i din webbläsare.OmÅtgärdslistorLägg tillLägg till en åtgärdAnpassa ljusstyrka från svart till vitJustera från grått till svart & vittAnpassa mättnadsgraden från gråskala till högAllaAlla FilerAlla filerTillåt nördtilltag och osäkra värdenSpara alltid till (mappen) SkrivbordMängdVinkelaprilGrafisk utformningsomKoppla bilder till åtgärdslista i %s...Koppla bilder till bildinspektör i %s...Koppla bilder till senaste åtgärdslistor i %s...augustiAutomatisk kontrastBakgrundBakgrundsfärgBakgrundsogenomskinlighetBehandla bilder i grupp med PhatchBitarSvartOskärpa, skärpa, relief, utjämning, ...Boolesk variabelKantNedre vänstra hörnetNedre högra hörnetLjusstyrkaBläddraBläddra i mapp&Tack tillKan ej genomföra åtgärd %(a)s på bild '%(i)s' i katalog:Kan ej genomföra åtgärd %(a)s:RitytaKontrollera bilder förstKontrollerar bilderValVälj Fil(er)Välj en mappVälj en åtgärdslistfil...Välj en bildVälj en bildmappKodFärgFärgaFärglägg bild i gråskalaGemensammaBehåll propotionerKontrastKonvertingslägeKonvertera en bilds färglägeKopierar det minimala pixelvärdetKopierar vanligast pixelvärdeKopieraTack tillBeskärBeskär bildenKryssAnpassaddecemberDjupBeskriv åtgärdslistan här.BeskrivningInaktivera åtgärdVisar information om detta program.Kontrollera inte bilderna förstVill du fortsätta?Vill du skriva över den?DokumentationNerKrymp och beskär bild med bestämd ratioDrag och släppLägger till en reflektionMassbehandla bilder och ändra metadata lättEffektAktivera åtgärdUtjämnaUtjämna bildens histogramFelExempelVerkställVerkställer aktivitetUtför åtgärdernaExpanderaFalskfebruariFilFilnamnFil(er)FyllFiltreraPassaVänd eller rotera 90 graderFlyttalMappTypsnittTypsnittfredagMellanrumGå till Phatch dokumentation.Gå till Phatch forumGå till Phatch hemsidan.GråskalaHorisontellHorisontellt avståndIgnorera felmeddelandenBildBildgranskareBilderII Phatch måste du öppna eller skapa en åtgärdslista först.Inkludera alla undermapparFörbereder typsnitt (endast för installationsscript)Inspektera bilddata EXIF och IPTCInspektera metadata (kräver exif och iptc plugin)Inspektera med PhatchHeltalHeltal+Heltal+0InteraktivOgiltiga bilderInverteraInvertera alla pixelvärden ovan gränsvärdeInvertera färgerna på en bildjanuarijulijuniBehåll existerande bilder (skriv ej över)EtikettBibliotekLicensLoggGör vald färg transparentGör bilden mindre eller störremarsMarkeraMaskMaximera bildkontrastenMaximalmajMedianMeddelandeMetodMinimumLägemåndagMonokrom (1-bits pixlar, svartvitt)Flytta vald åtgärd nedåtFlytta vald åtgärd uppåtInga filer eller mappar valda.Sparåtgärd behövs inte som sista stegNormalIngenting har loggats ännu.Ingenting att göra.novemberoktoberOffsetEtt fel loggadesOgenomskinlighetÖppnaÖppna s&enasteÖppna en aktivitetslistaÖppnar en åtgärdslistaInställningarRiktningSkriv över befintliga bilderSökvägPerspektivPhatch kunde inte hantera %d st bild(er):Phatch misslyckades med att installera önskad funktion.Phatch försökte avinstallera sig själv från Windows Explorer.Phatch lägger till en för dig, v.g. kontrollera inställningarna.Massbehandling av bilderVar god, (åter)installera det.Var god, uppgradera wxPython.PosteriseraLägg färg under transparenta bilderRGBA (4x8-bit pixlar, RGB med transparent mask)RadiePlaceringReflektionTa bortTa bort kopplingar från %s...Ta bort vald åtgärdByt namnUpprepaRapportera en bugg på launchpad.Sampla omUpplösningRoteraRotera 180 graderRotera 270 graderRotera 90 graderRotera till slumpmässig vinkelRundaRundadMjuka eller korsade hörnorKör %s som en dropletKör %s textbaserat i terminalen utan ett grafiskt gränssnittMättnadlördagSaveSpara &Som... Ctrl-Shift-SSpara åtgärdslista som...Spara en aktivitetslistaSpara en aktivitetslista somSkalaMarkeraMarkeringseptemberSkuggaSkuggoskärpaVisa &logg... Ctrl-LVisa LoggVisa beskrivning av åtgärdslistanVisa loggfilStorlekRullningslistSolariseraInga giltiga filer funna, tyvärr.Ledsen, Du måste installera %s-åtgärden för denna åtgärdslista.KällkodAnge lokal språkkod (till exemple sv eller sv_SE)SponsorerKvadratiskPåbörja en ny åtgärdslistaStanna vid felSträngsöndagTextÅtgärdslistan är tom.Droplet-kommandot för tidigare åtgärdslistor placerades i urklipp.Droplet-kommandot för denna åtgärdslista placerades i urklipp.Det finns inga valda åtgärder.Avsluta med en 'Spara'.Filen finns redan.torsdagSida vid sidaÖvre vänstra hörnetÖvre högra hörnetÖversätt Phatch till ditt språkÖversättningTröskelvärdeSanntisdagTyperKan ej öppna filenÄnnu ej sparad åtgärdslistaUppUtförligtVertikalt avståndVisa källaVälj som en ikon varpå du drar och släpper bildfilernaVattenstämpelonsdagVad vill du göra nu?VittDu kan endast använda följande filformatDen här funktionen kräver att du installerar Python Win32 Extensions.Du behöver bara kunna PIL för att skriva plugins till Phatch,avbrytåtgärderprogrambakgrundbikubiskbilinjäroskärpabooleskbottenUtöka sökningcentreravalklicka på '+' för att lägga till åtgärderkonturdagdecimalstandardvärdedetaljpunkter/tumkantskärpamer kantskärparelieffalsktfilfilnamnfilstorlekfilterhitta kanterflyttalmappKatalognamnramhöjdtimmeignorerabilderheltalvänstermetadatamittenminutlägemånadmånadsnamnnärmastenejsökvägvar god installera pyexiv2positivt heltalpositivt heltal skiljt från 0upplösninghögerrotsekundskärpastorlekhoppa överutjämnautjämna ytterligarekällasträngUnderkatalogetikettöversttransformerasanttypveckodagveckodagsnamnbreddmedwxPyton är i fel versionårjaphatch-0.2.7/locale/sv/LC_MESSAGES/phatch.po0000644000000000000000000033067611346363116020233 0ustar rootroot00000000000000# Swedish translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-01-22 08:06+0000\n" "Last-Translator: Albert Cervin \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Inspektera med Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Inspektera bilddata EXIF och IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Exempel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Kör %s textbaserat i terminalen utan ett grafiskt gränssnitt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Kör %s som en droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Spara alltid till (mappen) Skrivbord" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ignorera felmeddelanden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Förbereder typsnitt (endast för installationsscript)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interaktiv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Behåll existerande bilder (skriv ej över)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Ange lokal språkkod (till exemple sv eller sv_SE)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Inspektera metadata (kräver exif och iptc plugin)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Sparåtgärd behövs inte som sista steg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Inkludera alla undermappar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Kontrollera inte bilderna först" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "Tillåt nördtilltag och osäkra värden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Utförligt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Ledsen, Du måste installera %s-åtgärden för denna åtgärdslista." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "Droplet-kommandot för denna åtgärdslista placerades i urklipp." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "Droplet-kommandot för tidigare åtgärdslistor placerades i urklipp." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "I Phatch måste du öppna eller skapa en åtgärdslista först." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Ingenting har loggats ännu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Logg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "avbryt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "hoppa över" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ignorera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "klicka på '+' för att lägga till åtgärder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "Öppna s&enaste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Öppna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Öppna en aktivitetslista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Verkställ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Verkställer aktivitet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Lägg till" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Lägg till en åtgärd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Ta bort" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Ta bort vald åtgärd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Upp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Flytta vald åtgärd uppåt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Ner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Flytta vald åtgärd nedåt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Bildgranskare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Beskrivning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Visa beskrivning av åtgärdslistan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Välj en åtgärdslistfil..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Spara åtgärdslista som..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Filen finns redan." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Vill du skriva över den?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "program" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "ram" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "åtgärder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "En html guide kommer att öppnas i din webbläsare." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Drag och släpp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch lägger till en för dig, v.g. kontrollera inställningarna." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Välj en mapp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Välj Fil(er)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Välj en bildmapp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Bläddra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Fil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Mapp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "standardvärde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Visa källa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "Utöka sökning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Sökväg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Nytt\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Påbörja en ny åtgärdslista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Öppna...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Öppnar en åtgärdslista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Spara\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Spara en aktivitetslista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Spara &Som...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Spara en aktivitetslista som" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Avsluta\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Lägg till...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Ta bort\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Aktivera åtgärd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Inaktivera åtgärd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Upp \tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Ned \tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "R&edigera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Välj som en ikon varpå du drar och släpper bildfilerna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Visa beskrivning\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Expandera alla\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Visa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Kör...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "Visa &logg...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Visa loggfil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "Verk&tyg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Gå till Phatch hemsidan." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Dokumentation...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Gå till Phatch dokumentation." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Gå till Phatch forum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Översätt Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Översätt Phatch till ditt språk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Rapportera bugg...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Rapportera en bugg på launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&Om Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Visar information om detta program." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Hjälp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Visa Logg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Du behöver bara kunna PIL för att skriva plugins till Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Kod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Fråga efter hjälp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Avbryt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Meddelande" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Fortsätt ändå" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Inställningar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Typer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Bläddra i mapp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Källkod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Fil(er)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Stanna vid fel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Kontrollera bilder först" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Skriv över befintliga bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "A&vbryt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Behanda i bakgrunden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Bild" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Etikett" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "etikett" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boolesk variabel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Sträng" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Val" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Färg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Upplösning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Filnamn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "I" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Flyttal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "som" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Läge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Sampla om" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bikubisk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Heltal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Heltal+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Heltal+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Horisontell" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Rullningslist" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "januari" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "februari" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "mars" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "april" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "maj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "juni" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "juli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "augusti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "september" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "oktober" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "november" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "december" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "måndag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "tisdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "onsdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "torsdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "fredag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "lördag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "söndag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "bakgrund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "källa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Alla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Anpassad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Riktning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Offset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Horisontellt avstånd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Vertikalt avstånd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Sida vid sida" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Skala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Markera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Ogenomskinlighet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Metod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "Massbehandla bilder och ändra metadata lätt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Massbehandling av bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Sann" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Falsk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "sant" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "falskt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Ännu ej sparad åtgärdslista" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Åtgärdslistor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Alla Filer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Beskriv åtgärdslistan här." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Avsluta med en 'Spara'." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "med" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Koppla bilder till åtgärdslista i %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Koppla bilder till senaste åtgärdslistor i %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Koppla bilder till bildinspektör i %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Ta bort kopplingar från %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Ingenting att göra." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Åtgärdslistan är tom." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Det finns inga valda åtgärder." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Kontrollerar bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch kunde inte hantera %d st bild(er):" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Ogiltiga bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Inga giltiga filer funna, tyvärr." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Inga filer eller mappar valda." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Kan ej öppna filen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Kan ej genomföra åtgärd %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Kan ej genomföra åtgärd %(a)s på bild '%(i)s' i katalog:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Utför åtgärderna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Ett fel loggades" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "%d fel loggades" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Markera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "dag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "Katalognamn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "filnamn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "filstorlek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "mapp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "timme" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "minut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "månad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "månadsnamn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "sökväg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "rot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "sekund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "Underkatalog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "typ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "veckodag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "veckodagsnamn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "år" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "punkter/tum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "höjd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "läge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "bredd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "storlek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Du kan endast använda följande filformat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "vänster" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "centrera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "höger" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "överst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "mitten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "botten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monokrom (1-bits pixlar, svartvitt)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bit pixlar, RGB med transparent mask)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "oskärpa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "kontur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detalj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "kantskärpa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "mer kantskärpa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "relief" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "hitta kanter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "utjämna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "utjämna ytterligare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "skärpa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "närmaste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilinjär" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Rotera 90 grader" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Rotera 180 grader" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Rotera 270 grader" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "sträng" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "heltal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "positivt heltal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "positivt heltal skiljt från 0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "upplösning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "flyttal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "boolesk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "val" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Fel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Var god, (åter)installera det." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Var god, uppgradera wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPyton är i fel version" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "&Tack till" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Licens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "S&täng" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Om" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Tack till" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dokumentation" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Översättning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Grafisk utformning" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Bibliotek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Sponsorer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Licens" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Alla filer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Välj en bild" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "var god installera pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "Lägg &till" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "decimal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "nej" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "ja" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Markering" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Typsnitt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Skugga" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filter" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Kant" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Skuggoskärpa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Bakgrundsfärg" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Bakgrund" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Effekt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Oskärpa, skärpa, relief, utjämning, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filtrera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Upprepa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Mängd" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "transformera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Rityta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Gör vald färg transparent" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Vattenstämpel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Gör bilden mindre eller större" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Behåll propotioner" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Vänd eller rotera 90 grader" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Byt namn" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "fil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Kryss" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Rundad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Kvadratisk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Runda" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Mjuka eller korsade hörnor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Radie" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Övre vänstra hörnet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Övre högra hörnet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Nedre vänstra hörnet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Nedre högra hörnet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Lägg färg under transparenta bilder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Fyll" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Konvertingsläge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Konvertera en bilds färgläge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Passa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Krymp och beskär bild med bestämd ratio" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Automatisk kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Maximera bildkontrasten" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Save" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Median" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "metadata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Mask" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Text" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Typsnitt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Storlek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Färga" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Färglägg bild i gråskala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Svart" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Vitt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopiera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posterisera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bitar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Placering" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solarisera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Invertera alla pixelvärden ovan gränsvärde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Tröskelvärde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Utjämna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Utjämna bildens histogram" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Beskär" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Rotera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Gråskala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Vinkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Beskär bilden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Rotera till slumpmässig vinkel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Expandera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Bakgrundsogenomskinlighet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Invertera" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Invertera färgerna på en bild" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Reflektion" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Lägger till en reflektion" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Djup" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Mellanrum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Gemensamma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Kopierar vanligast pixelvärde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Minimum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Kopierar det minimala pixelvärdet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspektiv" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Kontrast" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Justera från grått till svart & vitt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Maximal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Mättnad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Anpassa mättnadsgraden från gråskala till hög" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Ljusstyrka" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Anpassa ljusstyrka från svart till vit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch misslyckades med att installera önskad funktion." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch försökte avinstallera sig själv från Windows Explorer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "Den här funktionen kräver att du installerar Python Win32 Extensions." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Vill du fortsätta?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Vad vill du göra nu?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Behandla bilder i grupp med Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "doesn't exist" #~ msgstr "finns inte" #~ msgid "for integer" #~ msgstr "för heltal" #~ msgid "is zero, but should be non-zero." #~ msgstr "är lika med noll, vilket det ej får vara." #~ msgid "is negative, but should be positive" #~ msgstr "är negativt, men förväntas vara positivt" #~ msgid "for boolean" #~ msgstr "för boolesk" #~ msgid "Colour" #~ msgstr "Färg" #~ msgid "Filename" #~ msgstr "Filnamn" #~ msgid "All selected image types" #~ msgstr "Alla valda bildformat" #~ msgid "All default image types" #~ msgstr "Alla vanliga bildformat" #~ msgid "&Skip To Next Image" #~ msgstr "Hoppa till nästa bild" #~ msgid "&Ignore Error" #~ msgstr "&Ignorera fel" #~ msgid "Background Colour" #~ msgstr "Bakgrundsfärg" #~ msgid "Save an image" #~ msgstr "Spara en bild" #~ msgid "new" #~ msgstr "ny" #~ msgid "Create missing folders" #~ msgstr "Skapa saknade mappar" #~ msgid "Height" #~ msgstr "Höjd" #~ msgid "does not exist." #~ msgstr "existerar inte." #~ msgid "&File" #~ msgstr "&Fil" #~ msgid "Width" #~ msgstr "Bredd" #~ msgid "is invalid." #~ msgstr "är ogiltig." #~ msgid "Phatch Version" #~ msgstr "Phatch version" #~ msgid "please email" #~ msgstr "var god, maila" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Spara metadata (kräver exif och iptc plugin)" #~ msgid "Do not create missing folders" #~ msgstr "Skapa inte saknade mappar" #~ msgid "colours" #~ msgstr "färger" #~ msgid "Fade all colours to gray" #~ msgstr "Tona ut alla färger till gråskala" #~ msgid "border" #~ msgstr "kant" #~ msgid "Force Background Colour" #~ msgstr "Tvinga bakgrundsfärg" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Minska antalet bitar i varje färgkanal" #~ msgid "Rename the image file" #~ msgstr "Byt namn på bildfilen" #~ msgid "Copy the image file" #~ msgstr "Kopiera bildfilen" #~ msgid "Shadow Colour" #~ msgstr "Skuggfärg" #~ msgid "Crop or add border to all sides" #~ msgstr "Beskär eller lägg till kant till alla sidor" #~ msgid "watermark" #~ msgstr "Vattenstämpel" #~ msgid "april" #~ msgstr "april" #~ msgid "february" #~ msgstr "februari" #~ msgid "january" #~ msgstr "januari" #~ msgid "march" #~ msgstr "mars" #~ msgid "may" #~ msgstr "maj" #~ msgid "september" #~ msgstr "september" #~ msgid "october" #~ msgstr "oktober" #~ msgid "november" #~ msgstr "november" #~ msgid "december" #~ msgstr "december" #~ msgid "june" #~ msgstr "juni" #~ msgid "july" #~ msgstr "juli" #~ msgid "august" #~ msgstr "augusti" #~ msgid "saturday" #~ msgstr "lördag" #~ msgid "friday" #~ msgstr "fredag" #~ msgid "thursday" #~ msgstr "torsdag" #~ msgid "wednesday" #~ msgstr "onsdag" #~ msgid "sunday" #~ msgstr "söndag" #~ msgid "monday" #~ msgstr "måndag" #~ msgid "tuesday" #~ msgstr "tisdag" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Gråskala (8-bits pixlar, svartvitt)" #~ msgid "the variable" #~ msgstr "variabeln" #~ msgid "the file extension" #~ msgstr "filformatet" #~ msgid "the filename" #~ msgstr "filnamnet" #~ msgid "invalid syntax" #~ msgstr "ogiltigt syntax" #~ msgid "Save metadata" #~ msgstr "Spara metadata" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "eftersom Phatch automatiskt genererar användargränssnittet." #~ msgid "Open image file" #~ msgstr "Öppna bildfil" #~ msgid "&Preview" #~ msgstr "&Förhandsgranska" #~ msgid "Copy cell text" #~ msgstr "Kopiera celltext" #~ msgid "Open image url" #~ msgstr "Öppna bildadress" #~ msgid "&Default Types" #~ msgstr "&Standardtyper" #~ msgid "&Export..." #~ msgstr "&Exportera..." #~ msgid "Web&site...\tCtrl-I" #~ msgstr "Web&site...\tCtrl-I" phatch-0.2.7/locale/te/0000755000000000000000000000000011346363116014600 5ustar rootroot00000000000000phatch-0.2.7/locale/te/LC_MESSAGES/0000755000000000000000000000000011346363116016365 5ustar rootroot00000000000000phatch-0.2.7/locale/te/LC_MESSAGES/phatch.mo0000644000000000000000000000101511346363116020166 0ustar rootroot00000000000000,<PQZExamplesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2008-12-12 00:05+0000 Last-Translator: Shrikant Sharat Language-Team: Telugu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) ఉదాహరణలుphatch-0.2.7/locale/te/LC_MESSAGES/phatch.po0000644000000000000000000030554611346363116020211 0ustar rootroot00000000000000# Telugu translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2008-12-12 00:05+0000\n" "Last-Translator: Shrikant Sharat \n" "Language-Team: Telugu \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "ఉదాహరణలు" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" phatch-0.2.7/locale/tl/0000755000000000000000000000000011346363116014607 5ustar rootroot00000000000000phatch-0.2.7/locale/tl/LC_MESSAGES/0000755000000000000000000000000011346363116016374 5ustar rootroot00000000000000phatch-0.2.7/locale/tl/LC_MESSAGES/phatch.mo0000644000000000000000000003576511346363116020220 0ustar rootroot00000000000000 [hi p~   3! ' 4@ D%R(x   '.A U` gu6~!?O!f ""$GL)T~  ($$I\bks  $*:AXq.  #+ /PU]el*t%*>T\v*{(; " @1J|    ' GRWp #   > _ 1f         +!3?!As!!! !!!!"2" F",R" """""4"A#7U### # #########$$$$#$ '$4$F$M$R$ Y$d$k$q$x$}$$$$$$$$$$$$$$ %%!%&%-%5%:%?% F%R%Y%]%a%f%l%%%% ,'8' O'Z' q' }''' '2'?' !(,(G( ^(h(/|(&((((( ))")1*) \)j)r)w) )))))))8)5*P*U*r****+*** +7+<+!D+ f+t+'+++3++ ,9, B,DP,,,8,,", - &-4-);-'e- - - ---%- .. .#. *.4.L.$a......"... ../#4/:X//// / / /#/0 00 0;0 A0N0V0 ]0&j0000&0 11"1()1$R1w1$1 1-1+1H2]2&q2 2)2 222 3 33 $3 13 >3J3R3Z3*v3?3333* 4#74*[444 44444 555>5 ]51h5 5 5)5 5566-&66T6=6?6 7!7 77B7J7&b77A77.7 8"8A8F8%a8:8Q8U9j9 q9 |99999999919 ::::%:): A:b:i:n:u:::::: ::::::: :::;-;@; `;k;q;v;};;; ;;;;;;;";;;_Vx/4C`uM01AD{$:hZOEBNkp%I6s-<,tPb+^c2g F7q3@T"d[Rm#wi9HGX * 'Ln;(e!l]K=z|fyojv.S\r&WJ~?Q85aY )U> }&Abort&Ask for Help&Close&Continue Anyway&License&New Ctrl-N&OK&Open... Ctrl-O&Save Ctrl-S&Show template for action pluginA html tutorial will open in your internet browser.AboutAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAmountAngleApply for future errors ArtworkBackgroundBlackBooleanBorderBottom Left CornerBottom Right CornerBrightnessBrowseBrowse FolderC&reditsCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletCodeColorizeColorize grayscale imageCommonConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopyCreditsCrop or expand the canvas without scalingCrossDepthDescribe here the action list.DescriptionDo not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrops a blurred shadow under a photoEnter an image urlErrorExamplesExecuteExecute the actionExecuting action listExpandFileFile(s)FilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFolderFontFontsGapHorizontalIgnore errorsImageImage InspectorImagesInclude all subfoldersInspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvertInvert the colors of an imageLabelLicenseLogMake the image smaller or biggerMarkMaximumMessageMethodMinimumMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo action list provided.No files or folder selected.NormalNothing to do.OpenOpen an action listOpens an actions listOptionsOverwrite existing imagesPathPhatch could not install the action in %s:Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Please (re)install it.Please upgrade your wxPython.PosterizeRGBA (4x8-bit pixels, RGB with transparency mask)RemoveRemove the selected actionRenameRepeatResolutionRotateRotate 180Rotate 270Rotate 90RoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaveSave &As... Ctrl-Shift-SSave Action List As...Saves an action listSaves an action list asScaleSelectSelect action listShadowShadow BlurShow description of the action listSizeSliderSolarizeSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:TextThe action list is empty.There should be a 'Save' action at the end.These extensions have been succesfully installed: This requires also that the python-nautilus package is installed.Top Left CornerTop Right CornerTranslationTypesUnable to open fileUnsaved Action ListUpUse the Image Inspector to list all the variables.View SourceWarning: python-wxversion is not installed. WatermarkWhat do you want to do now?WhiteWrite Action PluginWrite text at a given positionYou can only use files with the following extensionsYou need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsantialiasbackgroundbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscontourdaydefaultdetaildpiedge enhanceedge enhance moreembossfilefilterfind edgesfolderframeheighthourignoreimagesintegerleftmiddleminutemodemonthnearestnono %s tags foundplease install pyexiv2positive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringtagtoptypewidthwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-09-05 01:44+0000 Last-Translator: stani Language-Team: Tagalog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:41+0000 X-Generator: Launchpad (build Unknown) Itigil (&A)Humingi ng Tulong (&a)Isara (&c)Magpalulog Lamang (&C)Pahintu&lot&Bago Ctrl-N&OK&Buksan... Ctrl-O&Itago Ctrl-SIpakita ang hulma ng para &sa plugin ng mga gawainIsang pagtuturong html ang bubuksan sa inyong internet browser.Tungkol saMga Listahan ng mga GawainListahan ng mga GawainMagdagdagMagdagdag ng gawainPaliwanagin ang larawan mula itim hanggang putiGawing higit na matinkad ang mga kulayIhanay ng PahalangIhanay ng PatayoLahatLahat ng Mga FileLahat ng fileDamiAngguloIsagawa kung may pagkakamali sa hinaharap Gawang-siningLikuranItimBooleanHanggananKaliwang-ibabang KantoKanang-ibabang KantoLiwanagMagtingin-tinginTignan ang Nilalaman ng FolderPagkilala (&r)Hindi maisagawa ang %(a)s sa larawang '%(i)s' sa folder.Hindi maisagawa ang %(a)s:LonaUsisain muna ang mga larawanInuusisa ang mga larawanPiniliPumili ng (mga) FilePumili ng folderPumili ng file ng Listahan ng mga Gawain...Pumili ng larawanPumili ng folder ng mga larawanPumili ng folder para sa dropletCodeKulayanKulayan ang larawang walang kulayPangkaraniwanPalitan ang ModePalitan ang color mode ng isang larawanKopyahin ang pinakamalaking halaga ng pixelKinokopya ang pinaka mailiit na halaga ng mga pixelKopyahin ang pangkaraniwang halaga ng pixelKopyahinMga PagkilalaPutulin o palakihin ang lona nang hindi binabago ang laki ng larawanKrusLalimIsalarawan dito ang mga laman ng listahan ng mga gawain.PagsasalarawanHuwag nang usisain ang mga larawanNais niyo bang magpatuloy?DokumentasyonBumabaPaliitin ang larawan at putulin ang sobraNaglalagay ng anino sa likod ng larawanMagbigay ng isang url ng larawanPagkakamaliMga HalimbawaIsagawaIsagawa ang gawainIsinasagawa ang mga laman ng listahanPalawakinFile(Mga) FilePanalaIpagkasyaBaliktarin Kaliwa-KananBaliktarin Taas-BabaBaliktarin o paikutin nang 90 degreeFolderFontMga FontPuwangPahalangHuwag pansinin ang mga pagkakamaliLarawanTagausisa ng LarawanMga LarawanIsama lahat ng mga subfolderUsisain ang mga EXIF & IPTC tagUsisain ang mga EXIF & IPTC tagSuriin ang metadata (kinakailangan ang exif & iptc plugin)Usisain gamit ang PhatchIntegerInteger+Integer+0InteractiveBaliktarinBaliktarin ang mga kulay ng larawanPangalanPahintulotLogPaliitin o palakihin ang larawanTatakPinakamalakiMensaheParaanPinakamaliitMonochrome (1-bit pixel, itim at puti)Ibaba ang napiling gawainIakyat ang napiling gawainWalang ibinigay na gawain.Walang hinirang na mga file at folder.KaraniwanWalang gagawin.BuksanMagbukas ng isang listahan ng mga gawainNagbubukas ng listahan ng mga gawainMga MapagpipilianPatungan ang mga nagawa nang larawanPagdaraananNabigaong iluklok ng Phatch ang gawain sa %s:Matagumpay na nagawa ng Phatch ang droplet.Sinubukan ng Phat na tanggalin ang sarili niya mula sa Windows Explorer.Iluklok (muli) ito.Kumuhal lamang ng mas bagong wxPython.PosterizeRGBA (4x8-bit pixel, RGB na may ningnang)TanggalinTanggalin ang napiling gawainPalitan ang pangalanUlitinResolusyonPaikutinPaikutin 180Paikutin 270Paikutin 90MabilogBiluganMga bilugan o krus na kantoPatakbuhin ang %s bilang isang GUI dropletPatakbuhin ang %s bilang programa sa console at nang walang GUITinkadItagoItago Bil&ang... Ctrl-Shift-SItago ang Listahan ng mga Gawain Bilang...Nagtatago ng listahan ng mga gawainNagtatago ng listahan ng mga gawain bilangBaguhin ang LakiPumiliPumili ng listahan ng mga gawainAninoLinaw ng AninoIpakita ang pagsasalarawan ng listahan ng mga gawainLakiSliderSolarizePaumanhin. Kailangan ninyong iluklok ang gawaing %s para dito.PinagmulanIbigay ang katutobong wika (halimbawa tl o en_PH)Mga PatronParisukatMagsimula ng bagon listahan ng mga gawainTumigil kung may mga pagkakamaliStringPag-aralan ang mga plugin sa:TekstoWalang nilalaman ang listahan ng mga gagawin.Kinakailangang mayroong gawaing 'Itago' sa pinakahuli.Ang mga sumusunod na ekstensyon ay matagumpay na nailuklok: Kailangan din nito na ang python-nautilus package ay nailuklok.Kaliwang-itaas na KantoKanang-itaas na KantoPagsasalinMga UriHindi mabuksan ang fileListahan ng mga Gawaing Hindi NakatagoUmakyatGamitin ang Tatausisa ng Larawan upang mailista ang mga variable.Tignan ang PinagmulanBabala: python-wxversion ay hindi nakaluklok. WatermarkAno na ang nais ninyong gawin?PutiGumawa ng Plugin ng GawainMaglagay ng teksto sa naturang bahagiMaaari niyo lamang gamitin ang mga file na may ekstensyongKinakailangan ninyong iluklok ang Python Win32 Extensions para sa katangiang ito.Kinakailangan lamang na marunong kayo sa PIL upang makagawa ng plugin para sa Phatch,itigilmga gawainantialiaslikuranbilinearlabobooleanilalimpalawakin ang inyong paghahanapgitnanapiliI-click ang '+' upang makapagdagdag ng mga gawainguhitarawdefaultdetalyedpipalinawin ang mga gilidhigit na palinawin ang mga gilidembossfilepanalahanapin ang mga gilidfolderkuwadrotaasoraspabayaanmga larawanintegerkaliwapagitansandalimodebuwanpinakamalapithindiwalang %s tag na natagpuaniluklok lamang ang pyexiv2positibong integerpositibo, integer na hindi zeroresolusyonkananugatsaglithasainlakilaktawangawing pinogawing mas pinostringtagtuktokurilapadPagkakamali sa Bersyon ng wxPythontaonoophatch-0.2.7/locale/tl/LC_MESSAGES/phatch.po0000644000000000000000000033015611346363116020213 0ustar rootroot00000000000000# Tagalog translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-09-05 01:44+0000\n" "Last-Translator: stani \n" "Language-Team: Tagalog \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:37+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Usisain gamit ang Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Usisain ang mga EXIF & IPTC tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Mga Halimbawa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Patakbuhin ang %s bilang programa sa console at nang walang GUI" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Patakbuhin ang %s bilang isang GUI droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Huwag pansinin ang mga pagkakamali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Interactive" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Ibigay ang katutobong wika (halimbawa tl o en_PH)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Suriin ang metadata (kinakailangan ang exif & iptc plugin)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Isama lahat ng mga subfolder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Huwag nang usisain ang mga larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Paumanhin. Kailangan ninyong iluklok ang gawaing %s para dito." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Log" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "itigil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "laktawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "pabayaan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "I-click ang '+' upang makapagdagdag ng mga gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Buksan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Magbukas ng isang listahan ng mga gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Isagawa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Isagawa ang gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Magdagdag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Magdagdag ng gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Tanggalin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Tanggalin ang napiling gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Umakyat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Iakyat ang napiling gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Bumaba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Ibaba ang napiling gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Tagausisa ng Larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Pagsasalarawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Ipakita ang pagsasalarawan ng listahan ng mga gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Pumili ng file ng Listahan ng mga Gawain..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Itago ang Listahan ng mga Gawain Bilang..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "kuwadro" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "mga gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Isang pagtuturong html ang bubuksan sa inyong internet browser." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Pag-aralan ang mga plugin sa:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Pumili ng folder para sa droplet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Matagumpay na nagawa ng Phatch ang droplet." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Pumili ng listahan ng mga gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Pumili ng folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Pumili ng (mga) File" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Pumili ng folder ng mga larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "mga larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Magtingin-tingin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "File" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "default" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Tignan ang Pinagmulan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "palawakin ang inyong paghahanap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Pagdaraanan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Bago\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Magsimula ng bagon listahan ng mga gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Buksan...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Nagbubukas ng listahan ng mga gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Itago\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Nagtatago ng listahan ng mga gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "Itago Bil&ang...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Nagtatago ng listahan ng mga gawain bilang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" "Kinakailangan lamang na marunong kayo sa PIL upang makagawa ng plugin para " "sa Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "Ipakita ang hulma ng para &sa plugin ng mga gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Code" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "Humingi ng Tulong (&a)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&OK" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Gumawa ng Plugin ng Gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Isagawa kung may pagkakamali sa hinaharap " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "Itigil (&A)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Mensahe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "Magpalulog Lamang (&C)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Mga Mapagpipilian" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Mga Uri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Tignan ang Nilalaman ng Folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Pinagmulan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "(Mga) File" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Tumigil kung may mga pagkakamali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Usisain muna ang mga larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Patungan ang mga nagawa nang larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Pangalan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "String" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Pinili" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Resolusyon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Integer+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Integer+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Pahalang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Slider" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "likuran" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Lahat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Baguhin ang Laki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Tatak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Paraan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Listahan ng mga Gawaing Hindi Nakatago" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Mga Listahan ng mga Gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Lahat ng Mga File" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Isalarawan dito ang mga laman ng listahan ng mga gawain." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Kinakailangang mayroong gawaing 'Itago' sa pinakahuli." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Usisain ang mga EXIF & IPTC tag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Walang gagawin." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "Walang nilalaman ang listahan ng mga gagawin." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Inuusisa ang mga larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Walang hinirang na mga file at folder." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Hindi mabuksan ang file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Hindi maisagawa ang %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Hindi maisagawa ang %(a)s sa larawang '%(i)s' sa folder." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Isinasagawa ang mga laman ng listahan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Pumili" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "araw" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "folder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "oras" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "sandali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "buwan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "ugat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "saglit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "uri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "taon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "taas" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "mode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "lapad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "laki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Gamitin ang Tatausisa ng Larawan upang mailista ang mga variable." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Maaari niyo lamang gamitin ang mga file na may ekstensyong" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "kaliwa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "gitna" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "kanan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "tuktok" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "pagitan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "ilalim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Monochrome (1-bit pixel, itim at puti)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bit pixel, RGB na may ningnang)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "labo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "guhit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detalye" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "palinawin ang mga gilid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "higit na palinawin ang mga gilid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "emboss" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "hanapin ang mga gilid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "gawing pino" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "gawing mas pino" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "hasain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "pinakamalapit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "bilinear" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Paikutin 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Paikutin 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Paikutin 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Baliktarin Kaliwa-Kanan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Baliktarin Taas-Baba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Karaniwan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "string" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "positibong integer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "positibo, integer na hindi zero" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "resolusyon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "boolean" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "napili" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Pagkakamali" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Babala: python-wxversion ay hindi nakaluklok.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Iluklok (muli) ito." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Kumuhal lamang ng mas bagong wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Pagkakamali sa Bersyon ng wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "Pagkilala (&r)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "Pahintu&lot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "Isara (&c)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Tungkol sa" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Mga Pagkilala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dokumentasyon" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Pagsasalin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Gawang-sining" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Mga Patron" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Pahintulot" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Mga Larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Lahat ng file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Pumili ng larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Magbigay ng isang url ng larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "iluklok lamang ang pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "walang %s tag na natagpuan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "hindi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "oo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Mga Font" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Anino" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "panala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Naglalagay ng anino sa likod ng larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Hangganan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Linaw ng Anino" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Likuran" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Panala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Ulitin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Dami" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Lona" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Putulin o palakihin ang lona nang hindi binabago ang laki ng larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Ihanay ng Pahalang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Ihanay ng Patayo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Watermark" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Paliitin o palakihin ang larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Baliktarin o paikutin nang 90 degree" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Palitan ang pangalan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "file" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Krus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Bilugan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Parisukat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Mabilog" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Mga bilugan o krus na kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Kaliwang-itaas na Kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Kanang-itaas na Kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Kaliwang-ibabang Kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Kanang-ibabang Kanto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Palitan ang Mode" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Palitan ang color mode ng isang larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Ipagkasya" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Paliitin ang larawan at putulin ang sobra" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Itago" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Teksto" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Maglagay ng teksto sa naturang bahagi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Font" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Laki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Kulayan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Kulayan ang larawang walang kulay" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Itim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Puti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopyahin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posterize" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Solarize" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Paikutin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Anggulo" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Palawakin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Baliktarin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Baliktarin ang mga kulay ng larawan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Lalim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Puwang" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Pangkaraniwan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Kopyahin ang pangkaraniwang halaga ng pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Pinakamaliit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Kinokopya ang pinaka mailiit na halaga ng mga pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Pinakamalaki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Kopyahin ang pinakamalaking halaga ng pixel" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Tinkad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Gawing higit na matinkad ang mga kulay" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Liwanag" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Paliwanagin ang larawan mula itim hanggang puti" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Ang mga sumusunod na ekstensyon ay matagumpay na nailuklok:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" "Sinubukan ng Phat na tanggalin ang sarili niya mula sa Windows Explorer." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" "Kinakailangan ninyong iluklok ang Python Win32 Extensions para sa katangiang " "ito." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Listahan ng mga Gawain" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Walang ibinigay na gawain." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Nais niyo bang magpatuloy?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Ano na ang nais ninyong gawin?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Nabigaong iluklok ng Phatch ang gawain sa %s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Kailangan din nito na ang python-nautilus package ay nailuklok." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Ikubli ang metadata (kinakailangan ang exif & iptc plugin)" #~ msgid "Do not create missing folders" #~ msgstr "Huwag gumawa ng bago para sa mga nawawalang folder" #~ msgid "Colour" #~ msgstr "Kulay" #~ msgid "Filename" #~ msgstr "Pangalan ng file" #~ msgid "colours" #~ msgstr "mga kulay" #~ msgid "Height" #~ msgstr "Taas" #~ msgid "Crop or add border to all sides" #~ msgstr "Maglagay ng hangganan sa mga gilid at putulin ang sobra" #~ msgid "Width" #~ msgstr "Lapad" #~ msgid "border" #~ msgstr "hangganan" #~ msgid "Background Colour" #~ msgstr "Kulay sa Likuran" #~ msgid "Shadow Colour" #~ msgstr "Kulay ng Anino" #~ msgid "Force Background Colour" #~ msgstr "Ipilit ang Kulay sa Likuran" #~ msgid "Rename the image file" #~ msgstr "Palitan ang pangalan ng file ng larawan" #~ msgid "Copy the image file" #~ msgstr "Kopyahin ang file ng larawan" #~ msgid "Scale down only" #~ msgstr "Paliitin lamang" #~ msgid "Save an image" #~ msgstr "Magtago ng larawan" #~ msgid "watermark" #~ msgstr "watermark" #~ msgid "january" #~ msgstr "enero" #~ msgid "april" #~ msgstr "abril" #~ msgid "february" #~ msgstr "pebrero" #~ msgid "march" #~ msgstr "marso" #~ msgid "september" #~ msgstr "setyembre" #~ msgid "october" #~ msgstr "oktubre" #~ msgid "november" #~ msgstr "nobyembre" #~ msgid "may" #~ msgstr "mayo" #~ msgid "june" #~ msgstr "hunyo" #~ msgid "july" #~ msgstr "hulyo" #~ msgid "august" #~ msgstr "agosto" #~ msgid "saturday" #~ msgstr "labado" #~ msgid "friday" #~ msgstr "biyernes" #~ msgid "thursday" #~ msgstr "huwebes" #~ msgid "wednesday" #~ msgstr "miyerkules" #~ msgid "sunday" #~ msgstr "linggo" #~ msgid "monday" #~ msgstr "lunes" #~ msgid "tuesday" #~ msgstr "martes" #~ msgid "december" #~ msgstr "desyembre" #~ msgid "new" #~ msgstr "bago" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Grayscale (8-bit pixels, itim at puti)" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-bit pixel, kulay pang-video)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-bit integer pixel)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32-bit floating point pixel)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-bit pixel, tunay na kulay)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-bit pixel, hiwa-hiwalay na kulay)" #~ msgid "doesn't exist" #~ msgstr "hindi umiiral" #~ msgid "invalid syntax" #~ msgstr "maling paggamit" #~ msgid "the variable" #~ msgstr "ang variable" #~ msgid "the integer value" #~ msgstr "ang halaga ng integer" #~ msgid "is zero, but should be non-zero." #~ msgstr "ay zero, ngunit hindi dapat zero" #~ msgid "is negative, but should be positive" #~ msgstr "ay negatibo, ngunit dapat ay positibo" #~ msgid "the file extension" #~ msgstr "ang ekstensyon ng file" #~ msgid "is invalid." #~ msgstr "ay hindi maaari." #~ msgid "does not exist." #~ msgstr "ay hindi umiiral." #~ msgid "Save metadata" #~ msgstr "Itago ang metadata" #~ msgid "All default image types" #~ msgstr "Lahat ng mga larawan sa pangunahing uri" #~ msgid "All selected image types" #~ msgstr "Lahat ng mga larawan sa napiling uri" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Ang listahan ng mga gawaing ito ay ginawa ng isang lumang bersyon ng " #~ "%(name)s.\n" #~ "\n" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "dahil mag-isa nang gagawin ng Phatch ang user interface." #~ msgid "Phatch could not create the droplet:" #~ msgstr "Nabigong gawin ng Phatch ang droplet:" #~ msgid "Only an image file is allowed." #~ msgstr "File lamang ng larawan ang pinahihintulutan." #~ msgid "drag & drop any image here" #~ msgstr "humila & magbagsak ng kahit-anong larawan dito" #~ msgid "Open image file" #~ msgstr "Magbukas ng file ng larawan" #~ msgid "Open image url" #~ msgstr "Magbukas ng url ng larawan" #~ msgid "Phatch Version" #~ msgstr "Bersyon ng Phatch" #~ msgid "&Skip To Next Image" #~ msgstr "Lumaktaw Tungo sa &Susunod na Larawan" #~ msgid "&Ignore Error" #~ msgstr "Pabayaan ang Pagkakamal&i" #~ msgid "Create missing folders" #~ msgstr "Gumawa kung may mga nawawalang na folder" #~ msgid "&Default Types" #~ msgstr "Mga Pangunahing Uri (&D)" phatch-0.2.7/locale/tr/0000755000000000000000000000000011346363116014615 5ustar rootroot00000000000000phatch-0.2.7/locale/tr/LC_MESSAGES/0000755000000000000000000000000011346363116016402 5ustar rootroot00000000000000phatch-0.2.7/locale/tr/LC_MESSAGES/phatch.mo0000644000000000000000000011724611346363116020221 0ustar rootroot00000000000000L_|(5&5 6/6@6 V6`6g666666 666677#7 47 >7 J7V7u77777777788898W8`8 88888 888 88 9 $91999 R9s999 9999399: : :%:): 1:%?:!e:(:G:: ;; ; &;0;#G;k;r;x;;;;&;;3<99<s<{<@~<*<.<2=L=S= X= f= p= === =&=> >>> > *>"5>"X>{>> >>> >> >>> >? ?0?H? O? Y?c?'l?6??? ? ? @@1@:@J@]@m@t@@@@@!@@@ AA A)ABAJA+RA~AAAA AAAA A"AB4BRB"qBBB(B-B$C4CGHGPG UG `G lG wGGGGGGGGGGG;GH6H=HOH^HoHsHxHHHH H HH HII.I>4I.sI III I IIII I0 J>JWJ.tJJJJ J JJJ'JK :KGKYKmKuKzK&KKK KKKK K9K5L ULvL|LLLL%LLLLLLLLLM MM*MDMKMiMMM"MMMMNNN'N".NQNUNjNNN N NNNN NN.N -O:O @O MOnO sO O"O*O8O(P;=P7yPPPPP QQ Q'Q&:Q!aQQ Q1QQQ*Q #R.RCRJRhRRR R RRRRRSS )S 7SBSHS[S bS mS xSS SSSSSS'T*T FTQTZT_TxT TTTTTUUU /UWW1W*X3X:XRXbXiXXXXXXXXXXHYOY+kY3YY^ZAxZZZ ZZZZ'[?[C[L[ \[f[w['[[[)[ [ \ \\"\'\/\5\L\d\~\\\\\\ ]] ].]1] G]S]2j]]]]]]] ](],^ E^O^ T^ `^ l^v^^^ ^^^*^_4_?T_A_7_.`=`C` K` U` a` k`v`~````````` ````aaa a'a9a@aFaKaTa]a daoaua |aaaaaaa aa ab0b5b=bFbMbTbYb _bibqbtbbbbbbb bbcc cccc &c2c 9cCc"Gc jc8c4c:c64dkd odyd~ddd ddddddd.jffffff!fg!g 'g4gSgcgrgyggggggg g gh4hIh]h mhwhhhhhhh! i-i+5i ainiui}iiiiii2ijj.j4j(Ojxj j!jj j jj8j -k7k?kOk_k dkpk$kk5kfk ^l klxl l ll/lllllm.4m4cmmAm@m!n1n@6n;wn2nAn(o1o:oNo']oo oo.o+opppp/p Hp;ip8pppq qq!q)q8qAqQq iqtq{qBqqq qq&r?5rurrrrr0r ss&sAs[sbsts$ssssss s t t#t CtMt.Stttt tt tttt u$(u Mu%nu1u#uu.u2v.Rvv v-v vvvvvvw%w4w=w"Lw owzww ww"www x 3x@x)Ixsx$x'xx0qyyyy!yyyzZz tz~zzzz"z z"z{"{){ /{ ;{F{ L{X{ h{ t{{{{{{{ {{{{C{>|V|[|t|||||||| }%}-}J}P} _}k}Gp};}}~ ~ ~ ,~8~A~I~a~:t~ ~#~5~*< E O Zgx5}! '#KOfu |C0H MX)^-Ɓ́Ӂ܁ %=@`!!!,381>pt Ѓ &/,O|(̈́ ф ߄$)39(m<HӅ *F+b &†*"'.Jy ~'ه0B\6v$ۈ ";KPi r  $׉߉2 #9->g" Ɋ ӊ݊#(&:#a(%̋2 L-VŒɌ ٌ .&Cj*ō+24gx~Ҏڎ&e$JՏ1܏ :L(Qzːߐ;!>/`'AKX Œޒ'0NS\ lv3ӓ* % 1;AHNU"mΔ'!<[d{˕C,29AG VbGr(  =C Yd-˗AЗR?e@1 )3<ENVev +ƙ  (.2Dajs y   ƚ Кۚ#)$G(l  ɛӛڛ!.Pm}  ǜ לC#Wg4G< ANUZa i s}O.b _-n ;<dlz ,Nh'&@}3j+as{{|FyWiH`LagzaW*%RT+G8<5; rDA&(kJYfShYWJCU4;@=/^.{11t=)$>VA<tj \4lB]h&Hy y|Vb u|D2TGCjL0OtX$M=Le?" vI7?: EXE 8rQ!J5b~9o$S 3KEx#]6eXZ3Upms7I-7>PnK+w0 orOdx5v"coB[9n\M>K[/A0G%kup"!g')P 2l[-NcB(_: ~#6v%Ck9}Dq**!8uQ ,?\)M:m4dH^R,IS(_s1f^zZi'qcf ~#.RepwqUFZ@x]mQg }V`T/iP26 YF`wN%(amount)d images done in %(duration)s%(name)s Shell%(name)s actions%d issues were logged%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List Droplet...&Add&Add Tag&Add Tag to All Images...&Add... Ctrl-+&Ask for Help&Batch&Browse Library&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Copy Tag&Copy Value&Delete Tag&Delete Tag from All Images...&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Export&Forum... Ctrl-F&Help&Image Inspector Droplet...&Insert Tag in Action List...&License&Modify Value for All Images...&New Ctrl-N&OK&Open...&Open... Ctrl-O&Phatch&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Remove Image&Rename Tag for All Images...&Report a Bug... Ctrl-B&Save Ctrl-S&Select&Show Description Ctrl-H&Show template for action plugin&Skip to Next Action&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&User&View3D EdgeA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd TagAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAfterwards you can drag&drop images on the Phatch window to batch them.Align HorizontalAlign VerticalAllAll FilesAll filesAlways save on desktopAlways show status dialog when doneAmountAngleAngle Apply a transparency highlightApply a transparency maskApply for future errors Apply with tiling, scaling and opacityAprilAre you sure you want to delete this tag from "%s"?Are you sure you want to delete this tag from all images?ArtworkAsAs an example try out the polaroid action list from the library.Associate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...AugustAutoAuto ContrastAuto CropAutomatic (use exif orientation)BackgroundBackground ColorBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlurBlur RadiusBlur SigmaBlur, Polaroid, Shadow, Unsharp...Blur, Sharpen, Emboss, Smooth, ...BooleanBorderBorder ColorBothBottomBottom LeftBottom Left CornerBottom RightBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse FolderBrowse action lists, masks, highlights and fontsBulletBy OffsetC&ontinueC&reditsCMYK (4x8-bit pixels, color separation)Can not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCanvas HeightCanvas WidthCaptionChange value for all images to:CharcoalCharcoal RadiusCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletCodeColorColor ValueColor to AlphaColorizeColorize grayscale imageColumnsCommandCommand did not produce an output image: %sCommentsCommonConstrain ProportionsContourContour ColorContrastContrast FactorContrast TresholdConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCreditsCropCrop or expand the canvas without scalingCrop the imageCrossCustomCutoffDaysDecemberDelete Exif or Iptc tagsDelete TagsDepthDesaturateDescribe here the action list.DescriptionDetails DegreeDirectionDirection Disable actionDisplays information about this application.Do not check images firstDo you want to continue?Do you want to overwrite it?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDraw border inside or outsideDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorError: wxPython %(recommended)s (or at least %(minimal)s) can not be found, but is required.ExamplesExecuteExecute external commandExecute the actionExecute the action listExecuting action listExpandFade all colors to grayFalseFebruaryFileFile NameFile(s)FillFill ColorFill FolderFill ImageFill TypeFilterFitFlipFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsFor more information see the tutorials (Help>Documentation)Force Background ColorFridayFrom (Exif, Iptc)GPS Data (gpx)GPS Report (csv)GapGeekGeotagGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHighlightHooray, no issues!HorizontalHorizontal JustificationHorizontal OffsetHoursIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagemagickImagesInInclude all subfoldersInclude imageInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageJPEG QualityJPEG Size MaximumJPEG Size ToleranceJanuaryJulyJuneKeep existing images (don't overwrite)LeftLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsLossless JPEGLossless JPEG transformation does not work on a %s image:Make selected color transparentMake the image smaller or biggerMarchMarkMaskMaximize image contrastMaximumMaximum one parameter "%s" is allowedMayMedianMessageMetadataMethodMiddleMinimumMinutesMirrorModeMondayMonochrome (1-bit pixels, black and white)MonthsMove the selected action downMove the selected action upNo action list provided.No files or folder selected.No save action required at the endNoneNormalNothing has been logged yet.Nothing to do.NovemberOctoberOffsetOffset by distance and wrap aroundOneOne image done in %sOne issue was loggedOpacityOpenOpen &RecentOpen &Url...Open an action listOpens an actions listOptionsOrientationOverwrite existing imagesP (8-bit pixels, mapped using a color palette)PNG OptimizePaintPaint RadiusPaste this command in a launcherPathPencil SketchPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please upgrade your wxPython.PolaroidPositionPosterizePreserve TimestampProcess with recent Phatch action listPut color under transparent imageQuit the application.RGB (3x8-bit pixels, true color)RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReduce the number of bits of color channelReflectionRegenerate thumbnailRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRename TagRename a tagRename tag for all images to:RepeatReport a bug on launchpad.ResampleResample HighlightResample ImageResample MaskResolutionRightRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRotate, flip, grayscale and cropRoundRoundedRounded or crossed cornersRowsRun %s as a gui dropletRun %s as console program without a guiSame Method for All CornersSaturationSaturdaySaveSave &As... Ctrl-Shift-SSave Action List As...Save TagsSave and convert to other typesSave last changes toSave only metadata (lossless)Saves an action listSaves an action list asScaleScale Down OnlyScale MethodScale ReflectionSecondsSee "%s" for more details.SelectSelect Color BySelect action listSelectionSeptemberShadowShadow BlurShadow ColorSharpenSharpen RadiusSharpen SigmaShear 2d or 3dShift time values of tagsShow &Log... Ctrl-LShow Advanced OptionsShow Type OptionsShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.Sigmoidal ContrastSizeSketchSketch AngleSketch RadiusSketch SigmaSkip To Next &ImageSliderSolarizeSorry, %s.Sorry, no valid files foundSorry, the values of these options will be lost in %(name)s %(version)s:Sorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:SundaySymmetrical tile textureTIFF CompressionTagTag (Exif, Iptc)Tag exists alreadyTamogenTextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This application is known to be compatible with wxPython version(s) %(recommended)s (or at least %(minimal)s), but you have %(version)s installed.This file exists already.This requires also that the python-nautilus package is installed.ThursdayTileTime ShiftTime Shift (seconds)To (Exif, Iptc)Tone altering mosaic generatorTools to handle the current action listTopTop LeftTop Left CornerTop RightTop Right CornerTop Shear AngleTransform to a grayscale pencil drawingTransformationTransformation Translate Phatch in your native language.TranslationTransposeTransverseTresholdTrueTuesdayTypesUnable to add tag <%s>Unable to change label.Unable to change tag <%s>Unable to delete tag <%s>Unable to open fileUnable to remove imageUnable to rename tag <%s>Unable to save tag <%s>Unsaved Action ListUnsharpUnsharp RadiusUnsharp SigmaUpUpdate Exif ThumbnailUpdate JPEGUpdate Orientation TagUse the Image Inspector to list all the variables.UtilityValueVerboseVerticalVertical JustificationVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWaveWave HeightWave LengthWednesdayWhat do you want to do now?WhiteWrite Action PluginWrite TagWrite new value to a tagWrite text at a given positionYCbCr (3x8-bit pixels, color video format)YearsYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,a filename with a valid extension was expectedabortactionsantialiasapplicationautomaticbackgroundbicubicbilinearblurbooleanbottombroaden your searchcan not be emptycenterchoiceclick '+' to add actionscompressioncontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerinvalid literal "%s" for booleaninvalid literal "%s" for floatinvalid literal "%s" for integerinvalid syntax "%s" for integerleftloadingmetadatamiddleminutemodemonthmonthnamenearestnono %s tags foundnonepathplease install pyexiv2positive integerpositive, non-zero integerpyexiv2 needs to be installedresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagthe file extension "%s" is invalidthe filename "%s" does not existthe float value "%s" is negative, but should be positivethe float value "%s" is zero, but should be non-zerothe integer value "%s" is negative, but should be positivethe integer value "%s" is zero, but should be non-zerotoptransformtruetypewarningweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2010-03-09 14:14+0000 Last-Translator: stani Language-Team: Turkish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) %(duration)s sürede %(amount)d resim işlendi%(name)s Kabuğu%(name)s işlemleri%d sorun kaydedildi%s Son&DurdurPhatch h&akkında... Ctrl-Shift-A&İşlem Listesi Kutucuğu...&EkleEtiket &EkleTüm Resimlere Etiket &Ekle...&Ekle... Ctrl-+&Yardım İste&TopluKütüphaneye &Gözat&İptal&KapatHepsini &Daralt Ctrl-Shift-EYine de &Devam EtEtiketi &KopyalaDeğeri &KopyalaEtiketi &SilTüm Resimlerden Etiketi &Sil...&Etkisizleştir Ctrl-0&Belgeleme... Ctrl-M&Aşağı Ctrl-Down&kutucuk Ctrl-D&Düzenle&Etkinleştir Ctrl-1&Yürüt... Ctrl-ReturnHepsini &Genişlet Ctrl-E&Dışarıya Aktar&Forum... Ctrl-F&Yardım&Resim İnceleyici Kutucuğu...İşlem Listesine Etiket &Ekle...&LisansTüm Resimleri için Değeri &Değiştir...&Yeni Ctrl-N&Tamam&Aç...&Aç... Ctrl-O&Phatch&Çıkış Ctrl-Q%Son Kutucuk...&Kaldır Ctrl--Resmi &KaldırTüm Resimleri için Etiketi &Yeniden Adlandır...&Hata Raporu... Ctrl-B&Kaydet Ctrl-S&SeçAçıklama &Göster Ctrl-Hİşlem eklentisi için şablon &gösterBir Sonraki İşleme &Geç&AraçlarPhatch'ı &Tercüme Et ... Ctrl-T&Yukarı Ctrl-Up&Kullanıcı&Görüntüle3D Kenarİnternet tarayıcınızda bir html kılavuz açılacak.Hakkındaİşlemİşlem Listesiİşlem ListesiEkleEtiket EkleBir işlem ekleParlaklığı siyahtan beyaza ayarlaGriyi siyah & beyaza ayarlaDoygunluğu gri tonlamalıdan yüksek değere çıkarDaha sonra, toplu işlem yapabilmek için resimleri Phatch penceresine sürükleyip bırakabilirsiniz.Yatay HizalaDikey hizalaTümüTüm DosyalarTüm dosyalarHer zaman Masaüstü'ne kaydetBittiğinde her zaman durum diyaloğunu gösterMiktarAçıAçı Şeffaflık vurgusu uygulaŞeffaflık maskesi uygulaBundan sonraki hatalar için de uygula Döşeme, ölçeklendirme ve geçirgenlik ile uygulaNisan"%s" dosyasından bu etiketi silmek istediğinizden emin misiniz?Bu etiketi tüm resimlerden silmek istediğinizden emin misiniz?Sanatsal işlerGibiÖrnek olarak, kütüphaneden polaroid işlem listesini deneyin.Resimleri %s içindeki İşlem Listesi ile ilişkilendir...Associate Images with Recent Action Lists in %s...Resimleri %s içindeki Son İşlem Listeleri ile ilişkilendir...AğustosOtomatikOtomatik ParlaklıkOto Kırp(mak)Otomatik (exif yönelimi kullanılarak)ArkaplanZemin RengiArka Plan GeçirgenliğiPhatch ile resim dosyalrını topluca işleyinSon işlem listeleriyle toplu işlem uygulaBitSiyahAkmakBulanıklaştırBulanıklık YarıçapıBulanıklaştırma Sigma değeriBulanıklaştırma, Polaroid, Gölgelendirme, Yumuşatma...Bulanıklaştır, Keskinleştir, Kabartma yap, Düzle...Mantıksal Değer (boolean)KenarKenarlık RengiHer ikisi deAltSol AltAlt Sol KöşeSağ AltAlt Sağ KöşeAlt Kaydırma FaktörüParlaklıkGözatDizinlere Gözatİşlem listelerine, maskelere, vurgulara ve yazıtiplerine gözatİmliKaydırmaya (ofset) GöreD&evam etK&atkıda BulunanlarCMYK (4x8-bit piksel, renk ayırımı)%(a)s işlemlerini şu dosyadaki '%(i)s' resmine uygulayamadı:İşlem uygulanamıyor %(a)s:TuvalÇerçeve YüksekliğiÇerçeve GenişliğiResim YazısıTüm resimlerin değerlerini şuna değiştirin:KarakalemKarakalem YarıçapıÖnce resimleri kontrol etResimler kontrol ediliyorSeçimDosya(lar) SeçinBir dizin seçinBir İşlem Listesi Dosyası Seç...Bir resim seçinBir resim klasörü seçinKutucuk için klasör seçinKodRenkRenk DeğeriRenkten AlfayaRenklendirGri tonlamalı resmi renklendirSütunlarKomutKomut bir resim çıktısı oluşturamadı: %sYorumlarOrtakOranları SınırlaDış ÇizgiDış çizgi rengiKarşıtlıkKontrast FaktörüKontrast EşiğiDönüştürme ModuResmin renk halini değiştirEn büyük piksel değerini kopyalarMedyan piksel değerini kopyalarEn düşük piksel değerini kopyalarEn çok görülen ortak piksel değerini kopyalarrank'inci piksel değerini kopyalarKopyaİşlem listesini &Komut olarak Panoya kopyalaResim İ&nceleyicisini Komut olarak Panoya KopyalaS&on Yapılanları Komut olarak Panoya kopyalaKatkıda bulunanlarKırp(mak)Tuvali öçeklendirmeden kırp veya genişletResmi kırpÇarpıÖzel tanımlıKesmeGünAralıkExif veya Iptc etiketlerini silEtiketleri silDerinlikSolgunlaştırBurada işlem listesini tarif edinAçıklamaAyrıntı DerecesiYönDoğrultu İşlemi etkisizleştirBu uygulama hakkında bilgi verir.Önce resimleri kontrol etmeDevam etmek istiyor musunuz?Üzerine yazmak istiyor musunuz?DökümanlarAşağıResmi sabit orantıyla küçült ve kırpSürükle & BırakResim kenarlarına dış çizgi çizİçeriye veya dışarıya sınır çizHerhangi bir dosya/klasörü toplu işlemek için bu Phatch kutucuğuna sürükleyip bırakın. Normal görünüme dönmek için sağa veya çift tıklayın.Fotoğrafın altına bulanık bir gölge uygularYansıma uygularEtkiİşlemi etkinleştirBir resim url bağlantısı girinEşitleResim hstogramını eşitleHataHata: wxPython %(recommended)s (veya en azından %(minimal)s) bulunamıyor, ancak gerekli.ÖrneklerYürütHarici komut çalıştırİlemi yürütİşlem listesini yürütİşlem listesini yerine getiriyorGenişletTüm renkleri griye solgunlaştırYanlışŞubatDosyaDosya İsmiDosya(lar)DolguRenk DoldurDolgu KlasörüDolgu resmiDolgu tipiFiltreUydurÇevirSağ ile solu ters çevirÜst ile altı ters çevir90 derece çevirGerçel SayıDizinFontFontlarDaha fazla bilgi için kılavuzlara bakın (Yardım>Dokümantasyon)Arka plan rengini zorlaCuma(Exif, Iptc) değerindenGPS Verisi (gpx)GPS Raporu (csv)BoşlukBilgisayar delisiYer etiketi (geotag)Phatch dökümanlarına git.Phatch forum sayfasına gitPhatch ana sayfasına git.Gri tonlamaVurgulaYaşasınnn, hiç sorun yok!YatayYatay HizalamaYatay DengeSaat%s yeniden başlatırsanız, işlem içerik menüsünde görünecektir.Eğer Phatch için eklenti katkısında bulunmak istersenizHataları yoksayResimResim İnceleyicisiResim DiziniImagemagickResimleriçindeTüm altdizinleri içerResim içeri aktarYazıtiplerini başlat (yalnızca kurulum betikleri için)EXIF ve IPTC etiketlerini inceleEXIF & IPTC etiketlerini inceleÜstveriyi incele (EXIF ve IPTC eklentisi gerektirir)Phatch ile inceleTamsayıTamsayı+Tamsayı+0EtkileşimliHatalı resimlerTersEşiğin üzerinde Ters tüm piksel değerleri tersleBir resmin renklerini ters çevirJPEG KalitesiEn Fazla JPEG BoyutuJPEG Boyutu ToleransıOcakTemmuzHaziranVarolan resimleri koru (üzerine yazma)SolSol Kaydırma AçısıKütüphanelerLisansKayıtlarExif ve iptc etiketlerine bakKayıpsız JPEGBir %s resmi üzerinde kayıpsız JPEG dönüştürmesi çalışmazSeçilen rengi şeffaflaştırResmi daha küçük veya daha büyük hale getirMartİşaretleMaskeResim kontrastını en fazla haline getirEn FazlaEn fazla bir "%s" parametresi kullanılabilirMayısMedyanMesajÜstveriYöntemOrtaEn azDakikaAyna GörüntüsüKipPazartesiTekrenkli (1-bit piksel, siyah beyaz)AySeçili işlemi aşağı taşıSeçili işlemi yukarı taşıHiçbir işlem listesi verilmedi.Dosya yada dizin seçmediniz.Sonunda kaydet işlemi gerekmiyorHiçbiriNormalHenüz hiçbir kayıt alınmadı.Hiçbirşey yapılmadı.KasımEkimOfsetUzaklığa göre kaydır (ofset) ve metni sardırBir%s içinde bir resim yapıldıBir sorun kaydedildiGeçirgenlikAç&Son Kullanılanı Aç&Url Bağlantısı Aç...Bir işlem listesi açBir işlem listesi açarSeçeneklerYönelimMevcut görüntülerin üzerineP (8-bit piksel, bir renk paleti eşlenmiş)PNG OptimizasyonuBoyaBoya YarıçapıBu komutu bir başlatıcıya yapıştırYolKalemle EskizPerspektifPhatch %d resim(ler)ini işleyemiyorPhatch %s içindeki işlemi yükleyemedi:Phatch istenilen özelliği yüklemeyi başaramadıPhatch kutucuğu başarıyla oluşturdu.Phatch kendini Windows Gezgini'nden kaldırmaya çalıştı.Phatch sizin için bir tane ekleyecek, lütfen ayarlarını kontol edin.%s ile PhatchToplu Fotoğraf İşlemcisiLütfen (tekrar) yükleyin.Lütfen wxPyhyon sürümünü güncelleyin.PolaroidKonumPosterleştirZaman damgasını koruSon Phatch işlem listesi ile işleyinŞeffaf görüntünün altına renk uygulaUygulamadan çık.RGB (3x8-bit piksel, gerçek renk)RGBA (4x8-bit piksel, şeffaflık maskeli RGB)ÇapSıralamaRenk kanalındaki bit sayısını azaltYansımaKüçük resmi yeniden oluşturKaldır%s'den İlişkiyi kaldır...Seçilen işlemi kaldırSeçili işlemi kaldır.Yeniden adlandırEtiketi Yeniden AdlandırEtiketi yeniden adlandırTüm resimler için etiket ismini şununla değiştir:TekrarlaLaunchpad'e bir hata raporu gönder.Tekrar örneklem alVurguyu yeniden örneklendirResmi tekrar örnekleMaskeyi yeniden örnekleÇözünürlükSağSağ Kaydırma FaktörüDöndürDöndür 180Döndür 270Döndür 90Rasgele açıyla döndürDöndür, çevir, gri tonla ve kırpYuvarlaYuvarlatılmışYuvarlatılmış veya çapraz taranmış köşelerSatırlar%s'yi kullanıcı arayüzü kutucuğu olarak çalıştır%s programını grafik arayüzü olmadan konsolda çalıştırTüm köşeler için aynı yöntemDoygunlukCumartesiKaydet&Farklı Kaydet... Ctrl-Shift-Sİşlem listesini Farklı Kaydet...Etiketleri KaydetKaydet ve diğer türlere dönüştürSon değişiklikleri şuraya kaydetYalnızca üstveriyi kaydet (kayıpsız)Bir işlem listesini kaydederBir işlem listesini farklı kaydederÖlçekYalnızca Aşağı BoyutlandırÖlçeklenirme YöntemiYansımayı ÖlçeklendirSaniyelerDaha fazla ayrıntı için "%s"'ye bakınız.SeçŞuna göre Renk SeçEylem listesi seçinSeçimEylülGölgeBulanık gölgeGölge RengiKeskinleştirKeskinleştirme YarıçapıKeskinleştirme Sigma değeri2d veya 3d KaydırmaEtiketlerin zaman değerini kaydırın&Kayıtları Göster... Ctrl-LGelişmiş Seçenekleri GösterTür seçeneklerini gösterİşlemlerin tüm parametrelerini göster.İşlem listesinin açıklamasını gösterLog dosyasını gösterYalnızca işlemlerin tanım etiketlerini göster.Sigma KontrastıBoyutEskizEskiz AçısıEskiz YarıçapıEskiz Sigma değeriBir Sonraki &Resime GeçSürgüGüneş ışığıÜzgünüm, %s.Üzgünüm, geçerli dosya bulunamadıÜzgünüm, bu seçenekler için girilen değerler, %(name)s %(version)s sürümünde kaybolacaktır.Özür dilerim, bu işlem listesi için %s işlemini yüklemeniz gerekiyorKaynakYerel dili belirtin (örneğin tr, en veya en_GB)SponsorlarKareYeni işlem listesi başlatHatalar için durDiziŞuradaki işlem eklentilerini çalış:PazarSimetrik döşeme dokusuTIFF SıkıştırmasıEtiketEtiket (Exif, Iptc)Etiket zaten mevcutTamogenMetinİşlem listesi boşResim inceleyicisi için kutucuk komutu panoya kopyalandı.Hiçbir işlem etkinleştirilmediSonunda bir 'Kaydet' işlemi olması gerekiyor.Şu eklentiler başarıyla yüklendi: Bu uygulama wxPython %(recommended)s sürümü (veya en azından %(minimal)s) ile uyumludur ancak sizde %(version)s sürümü kuruludur.Bu dosya zaten mevcut.Bu aynı zamanda python-nautilus paketinin de kurulu olmasını gerektirir.PerşembeDöşeZaman KaydırmaZaman Kaydırma (saniye)(Exif, Iptc) değerineDeğişen tonlamalı mozaik oluşturucuMevcut işlem listesini uygulamak için araçlarÜstSol ÜstSol Üst KöşeSağ ÜstÜst Sağ KöşeÜst Kaydırma AçısıGri tonlamalı bir karakalem çizimine dönüştürDönüştürmeDönüştürme Phatch'ı kendi anadilinize tercüme edin.ÇeviriSırasınıÇaprazlaEşikDoğruSalıTipler<%s> etiketi eklenemediTanım etiketi değiştirilemiyor.<%s> etiketi değiştirilemiyor<%s> etiketi kaldırılamadıDosya açılamadıResim kaldırılamıyor<%s> etiketi yeniden adlandırılamadı<%s> etiketi kaydedilemediKaydedilmemiş İşlem ListesiYumuşatYumuşatma YarıçapıYumuşatma Sigma değeriYukarıExif Küçük Resmini güncelleJPEG GüncelleYönelim Etiketini GüncelleTüm değişkenleri listelemek için Resim İnceleycisini kullanınAraçDeğerAyırmaDikeyDikey HizalamaDikey DengeKaynağ İnceleDosyaları sürükleyip bırakmak için bir kutucuk olarak görüntüleUyarı: python-wxversion kurulu değil. FiligranDalgaDalga YüksekliğiDalga UzunluğuÇarşambaŞimdi ne yapmak istersiniz?Beyazİşlem eklentisi yazEtiket yazYeni değeri bir etikete yazVerili bir konuma metin yazYCbCr (3x8-bit piksel, renkli video formatı)YılYalnızca şu uzantılara sahip olan dosyaları kullanabilirsinizBunu yeni bir başlatıcının özelliklerine metin olarak yapıştırabilirsiniz.Bu özellik için Python Win32 uzantılarını yüklemelisiniz.Phatch eklentisi yazmak için yalnızca PIL bilmeniz yeterlidir.geçerli uzantıya sahip bir dosya beklenmekteydivazgeçeylemlerantialiasuygulamaotomatikarkaplanbicubicçiftdoğrusalbulanıklaştırmantıksal değer (boolean)altaramanızı genişletinboş olamazortaseçimişlem eklemek için '+' düğmesine basınsıkıştırmadış çizgigünondalıkvarsayılandetaydpikenar geliştirmedaha fazla kenar geliştirmekabartmayanlışdosyadosya ismidosya boyutufiltrekenarları bulgerçel sayıdizindizin ismiçerçeveyüksekliksaatyoksayresimlertamsayıboolean için geçersiz "%s" dizisigerçel sayı için geçersiz "%s" dizisitamsayı için geçersiz "%s" dizisitamsayı için geçersiz "%s" sözdizimisolyükleniyorüstveriortadakikakipayay ismien yakınhayırhiç %s etiketi bulunamadıhiçbiriyollütfen pyexiv2 yükleyinpozitif tamsayıpozitif, sıfır olmayan tamsayıpyexiv2 kurulması gerekiyorçözünürlüksağkök dizinisaniyekeskinleştirboyutatladüzledaha fazla düzlekarakter dizesialt dizinetiketdosya uzantısı "%s" geçersiz"%s" dosya ismi bulunmuyorgerçel sayı değeri "%s" negatif, ancak pozitif olması gerekiyor"%s" gerçel sayı değeri sıfır, ancak sıfır olmayan bir değer olması gerekiyor.tamsayı değeri "%s" negatif, ancak pozitif olmalıtamsayı değeri "%s" sıfır, ancak sıfır olmayan bir değer olmalıüstdönüştürdoğrutüruyarıgünlergün ismigenişlikilewxPython Versiyonu Hatalıyılevetphatch-0.2.7/locale/tr/LC_MESSAGES/phatch.po0000644000000000000000000034206711346363116020225 0ustar rootroot00000000000000# Turkish translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2010-03-09 14:14+0000\n" "Last-Translator: stani \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Phatch ile incele" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "EXIF ve IPTC etiketlerini incele" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Örnekler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "%s programını grafik arayüzü olmadan konsolda çalıştır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "%s'yi kullanıcı arayüzü kutucuğu olarak çalıştır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Her zaman Masaüstü'ne kaydet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Hataları yoksay" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "Yazıtiplerini başlat (yalnızca kurulum betikleri için)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Etkileşimli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Varolan resimleri koru (üzerine yazma)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Yerel dili belirtin (örneğin tr, en veya en_GB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Üstveriyi incele (EXIF ve IPTC eklentisi gerektirir)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Sonunda kaydet işlemi gerekmiyor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Tüm altdizinleri içer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Önce resimleri kontrol etme" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Ayırma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" "Bunu yeni bir başlatıcının özelliklerine metin olarak yapıştırabilirsiniz." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Özür dilerim, bu işlem listesi için %s işlemini yüklemeniz gerekiyor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" "Üzgünüm, bu seçenekler için girilen değerler, %(name)s %(version)s sürümünde " "kaybolacaktır." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "Resim inceleyicisi için kutucuk komutu panoya kopyalandı." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "Örnek olarak, kütüphaneden polaroid işlem listesini deneyin." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" "Daha sonra, toplu işlem yapabilmek için resimleri Phatch penceresine " "sürükleyip bırakabilirsiniz." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "Daha fazla bilgi için kılavuzlara bakın (Yardım>Dokümantasyon)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "Yaşasınnn, hiç sorun yok!" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Henüz hiçbir kayıt alınmadı." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Kayıtlar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "vazgeç" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "atla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "yoksay" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "işlem eklemek için '+' düğmesine basın" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "&Son Kullanılanı Aç" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Aç" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Bir işlem listesi aç" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Yürüt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "İlemi yürüt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Ekle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Bir işlem ekle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Kaldır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Seçilen işlemi kaldır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Yukarı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Seçili işlemi yukarı taşı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Aşağı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Seçili işlemi aşağı taşı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Resim İnceleyicisi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "Exif ve iptc etiketlerine bak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Açıklama" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "İşlem listesinin açıklamasını göster" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Bir İşlem Listesi Dosyası Seç..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "İşlem listesini Farklı Kaydet..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "Bu dosya zaten mevcut." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "Üzerine yazmak istiyor musunuz?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "%(name)s işlemleri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "%(name)s Kabuğu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "uygulama" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "çerçeve" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "eylemler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "İnternet tarayıcınızda bir html kılavuz açılacak." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Şuradaki işlem eklentilerini çalış:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Eğer Phatch için eklenti katkısında bulunmak isterseniz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Sürükle & Bırak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Herhangi bir dosya/klasörü toplu işlemek için\n" "bu Phatch kutucuğuna sürükleyip bırakın.\n" "Normal görünüme dönmek için sağa veya çift tıklayın." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch sizin için bir tane ekleyecek, lütfen ayarlarını kontol edin." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Son değişiklikleri şuraya kaydet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Kutucuk için klasör seçin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch kutucuğu başarıyla oluşturdu." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Eylem listesi seçin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Bir dizin seçin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Dosya(lar) Seçin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Bir resim klasörü seçin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "resimler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Gözat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Dosya" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Dizin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "varsayılan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Kaynağ İncele" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "aramanızı genişletin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Yol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "&Aç..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "İşlem Listesine Etiket &Ekle..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Yeni\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Yeni işlem listesi başlat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Aç...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Bir işlem listesi açar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Kaydet\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Bir işlem listesini kaydeder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "&Farklı Kaydet...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Bir işlem listesini farklı kaydeder" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "İşlem listesini &Komut olarak Panoya kopyala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Bu komutu bir başlatıcıya yapıştır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "S&on Yapılanları Komut olarak Panoya kopyala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "Resim İ&nceleyicisini Komut olarak Panoya Kopyala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "&Dışarıya Aktar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Çıkış\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Uygulamadan çık." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Ekle...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Kaldır\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Seçili işlemi kaldır." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Etkinleştir\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "İşlemi etkinleştir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Etkisizleştir\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "İşlemi etkisizleştir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Yukarı\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Aşağı\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Düzenle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&kutucuk\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "Dosyaları sürükleyip bırakmak için bir kutucuk olarak görüntüle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "Açıklama &Göster\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Mevcut işlem listesini uygulamak için araçlar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "Hepsini &Genişlet\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "İşlemlerin tüm parametrelerini göster." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "Hepsini &Daralt\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Yalnızca işlemlerin tanım etiketlerini göster." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Görüntüle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Yürüt...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "İşlem listesini yürüt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "&Kullanıcı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "İşlem listelerine, maskelere, vurgulara ve yazıtiplerine gözat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "&Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "Kütüphaneye &Gözat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "&Kayıtları Göster...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Log dosyasını göster" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Araçlar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "Phatch ana sayfasına git." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Belgeleme...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "Phatch dökümanlarına git." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Forum...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Phatch forum sayfasına git" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "Phatch'ı &Tercüme Et ...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Phatch'ı kendi anadilinize tercüme edin." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Hata Raporu...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Launchpad'e bir hata raporu gönder." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "Phatch h&akkında...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Bu uygulama hakkında bilgi verir." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Yardım" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Phatch eklentisi yazmak için yalnızca PIL bilmeniz yeterlidir." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "İşlem eklentisi için şablon &göster" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Kod" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Yardım İste" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&Tamam" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "İşlem eklentisi yaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Bundan sonraki hatalar için de uygula " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Durdur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "Bir Sonraki İşleme &Geç" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "Bir Sonraki &Resime Geç" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Mesaj" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "Yine de &Devam Et" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Seçenekler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Tipler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Dizinlere Gözat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Kaynak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Dosya(lar)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Hatalar için dur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Önce resimleri kontrol et" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Mevcut görüntülerin üzerine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "Bittiğinde her zaman durum diyaloğunu göster" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&İptal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Toplu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Resim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "etiket" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Mantıksal Değer (boolean)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Dizi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Seçim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "Renk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "Çözünürlük" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "Dosya İsmi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "içinde" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Gerçel Sayı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Gibi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Kip" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Tekrar örneklem al" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "bicubic" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Tamsayı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Tamsayı+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Tamsayı+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Yatay" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Sürgü" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "pyexiv2 kurulması gerekiyor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "Ocak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "Şubat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "Mart" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "Nisan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "Mayıs" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "Haziran" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "Temmuz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "Ağustos" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "Eylül" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "Ekim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "Kasım" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "Aralık" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "Pazartesi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "Salı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "Çarşamba" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "Perşembe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "Cuma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "Cumartesi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "Pazar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "arkaplan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" "Komut bir resim çıktısı oluşturamadı:\n" "%s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Tümü" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "Özel tanımlı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "Orta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "Sol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "Sağ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "Üst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "Alt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "Sol Alt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "Sağ Alt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "Sol Üst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "Sağ Üst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Yönelim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "Konum" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Ofset" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Yatay Denge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Dikey Denge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "Yatay Hizalama" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "Dikey Hizalama" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "Kaydırmaya (ofset) Göre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Döşe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Ölçek" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "İşaretle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Geçirgenlik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Yöntem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "Otomatik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Toplu Fotoğraf İşlemcisi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Doğru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Yanlış" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "doğru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "yanlış" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Kaydedilmemiş İşlem Listesi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "İşlem Listesi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Tüm Dosyalar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Burada işlem listesini tarif edin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "Sonunda bir 'Kaydet' işlemi olması gerekiyor." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "ile" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s Son" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Resimleri %s içindeki İşlem Listesi ile ilişkilendir..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Resimleri %s içindeki Son İşlem Listeleri ile ilişkilendir..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Associate Images with Recent Action Lists in %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "%s'den İlişkiyi kaldır..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "&İşlem Listesi Kutucuğu..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "%Son Kutucuk..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "&Resim İnceleyici Kutucuğu..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Son işlem listeleriyle toplu işlem uygula" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "EXIF & IPTC etiketlerini incele" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "Daha fazla ayrıntı için \"%s\"'ye bakınız." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "İşlem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Hiçbirşey yapılmadı." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "İşlem listesi boş" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Hiçbir işlem etkinleştirilmedi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Resimler kontrol ediliyor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch %d resim(ler)ini işleyemiyor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Hatalı resimler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Üzgünüm, geçerli dosya bulunamadı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "D&evam et" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Dosya yada dizin seçmediniz." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Dosya açılamadı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "İşlem uygulanamıyor %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "%(a)s işlemlerini şu dosyadaki '%(i)s' resmine uygulayamadı:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "İşlem listesini yerine getiriyor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "%s içinde bir resim yapıldı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "%(duration)s sürede %(amount)d resim işlendi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "Bir sorun kaydedildi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "%d sorun kaydedildi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Seç" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "Tanım etiketi değiştirilemiyor." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "<%s> etiketi kaldırılamadı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "<%s> etiketi yeniden adlandırılamadı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "<%s> etiketi kaydedilemedi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "gün" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "dizin ismi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "dosya ismi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "dosya boyutu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "dizin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "saat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "dakika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "ay" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "ay ismi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "yol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "kök dizini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "saniye" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "alt dizin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "tür" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "günler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "gün ismi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "yıl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "sıkıştırma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "yükseklik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "kip" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "genişlik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "boyut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Tüm değişkenleri listelemek için Resim İnceleycisini kullanın" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Yalnızca şu uzantılara sahip olan dosyaları kullanabilirsiniz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "sol" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "orta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "sağ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "üst" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "orta" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "alt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Tekrenkli (1-bit piksel, siyah beyaz)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "RGB (3x8-bit piksel, gerçek renk)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-bit piksel, şeffaflık maskeli RGB)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "CMYK (4x8-bit piksel, renk ayırımı)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "P (8-bit piksel, bir renk paleti eşlenmiş)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "YCbCr (3x8-bit piksel, renkli video formatı)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "bulanıklaştır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "dış çizgi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "detay" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "kenar geliştirme" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "daha fazla kenar geliştirme" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "kabartma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "kenarları bul" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "düzle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "daha fazla düzle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "keskinleştir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "en yakın" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "çiftdoğrusal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "antialias" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Döndür 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Döndür 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Döndür 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Sağ ile solu ters çevir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Üst ile altı ters çevir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Normal" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "hiçbiri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "boş olamaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "tamsayı için geçersiz \"%s\" sözdizimi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "karakter dizesi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "tamsayı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "tamsayı için geçersiz \"%s\" dizisi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "pozitif tamsayı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "tamsayı değeri \"%s\" negatif, ancak pozitif olmalı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "pozitif, sıfır olmayan tamsayı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "tamsayı değeri \"%s\" sıfır, ancak sıfır olmayan bir değer olmalı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "çözünürlük" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "gerçel sayı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "gerçel sayı için geçersiz \"%s\" dizisi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "gerçel sayı değeri \"%s\" negatif, ancak pozitif olması gerekiyor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" "\"%s\" gerçel sayı değeri sıfır, ancak sıfır olmayan bir değer olması " "gerekiyor." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "mantıksal değer (boolean)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "boolean için geçersiz \"%s\" dizisi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "seçim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "dosya uzantısı \"%s\" geçersiz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "geçerli uzantıya sahip bir dosya beklenmekteydi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "\"%s\" dosya ismi bulunmuyor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "En fazla bir \"%s\" parametresi kullanılabilir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "otomatik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "Hiçbiri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "Komut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Hata" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "&Seç" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Uyarı: python-wxversion kurulu değil.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" "Hata: wxPython %(recommended)s (veya en azından %(minimal)s) bulunamıyor, " "ancak gerekli." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Lütfen (tekrar) yükleyin." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" "Bu uygulama wxPython %(recommended)s sürümü\n" "(veya en azından %(minimal)s) ile uyumludur\n" "ancak sizde %(version)s sürümü kuruludur." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Lütfen wxPyhyon sürümünü güncelleyin." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPython Versiyonu Hatalı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "K&atkıda Bulunanlar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Lisans" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Kapat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Hakkında" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Katkıda bulunanlar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Dökümanlar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Çeviri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Sanatsal işler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Kütüphaneler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Sponsorlar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Lisans" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "Etiket" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "Değer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "uyarı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "Etiket Ekle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "\"%s\" dosyasından bu etiketi silmek istediğinizden emin misiniz?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "Bu etiketi tüm resimlerden silmek istediğinizden emin misiniz?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "Etiket zaten mevcut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Resimler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Tüm dosyalar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "Değeri &Kopyala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "Etiket &Ekle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "Etiketi &Sil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "&Url Bağlantısı Aç..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "Resmi &Kaldır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "Etiketi &Kopyala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "Tüm Resimlere Etiket &Ekle..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "Tüm Resimlerden Etiketi &Sil..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "Tüm Resimleri için Etiketi &Yeniden Adlandır..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "Tüm Resimleri için Değeri &Değiştir..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "<%s> etiketi eklenemedi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "Resim kaldırılamıyor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "Tüm resimler için etiket ismini şununla değiştir:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "Tüm resimlerin değerlerini şuna değiştirin:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "<%s> etiketi değiştirilemiyor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "Üzgünüm, %s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Bir resim seçin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Bir resim url bağlantısı girin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "lütfen pyexiv2 yükleyin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "hiç %s etiketi bulunamadı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Ekle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "ondalık" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "yükleniyor" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "hayır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "evet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Seçim" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Fontlar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Gölge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "filtre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Fotoğrafın altına bulanık bir gölge uygular" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Kenar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Bulanık gölge" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "Zemin Rengi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "Gölge Rengi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "Arka plan rengini zorla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Arkaplan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "Oto Kırp(mak)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Etki" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Bulanıklaştır, Keskinleştir, Kabartma yap, Düzle..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Filtre" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Tekrarla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Miktar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "dönüştür" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Uzaklığa göre kaydır (ofset) ve metni sardır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Tuval" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Tuvali öçeklendirmeden kırp veya genişlet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "Çerçeve Genişliği" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "Çerçeve Yüksekliği" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Yatay Hizala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Dikey hizala" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "Renkten Alfaya" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "Seçilen rengi şeffaflaştır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "Şuna göre Renk Seç" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "Renk Değeri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Filigran" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Döşeme, ölçeklendirme ve geçirgenlik ile uygula" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "Solgunlaştır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "Tüm renkleri griye solgunlaştır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Resmi daha küçük veya daha büyük hale getir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Oranları Sınırla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Resmi tekrar örnekle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "Yalnızca Aşağı Boyutlandır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Sırasını" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "90 derece çevir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "Sütunlar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "Satırlar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "Her ikisi de" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "Dikey" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "Ayna Görüntüsü" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "Simetrik döşeme dokusu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "Yön" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Yeniden adlandır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "dosya" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Çarpı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Yuvarlatılmış" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Kare" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Yuvarla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Yuvarlatılmış veya çapraz taranmış köşeler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Çap" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "Tüm köşeler için aynı yöntem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Sol Üst Köşe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Üst Sağ Köşe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Alt Sol Köşe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Alt Sağ Köşe" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Vurgula" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "Şeffaflık vurgusu uygula" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "Vurguyu yeniden örneklendir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "Şeffaf görüntünün altına renk uygula" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "Dolgu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Dönüştürme Modu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Resmin renk halini değiştir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Uydur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Resmi sabit orantıyla küçült ve kırp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Akmak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Otomatik Parlaklık" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Resim kontrastını en fazla haline getir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Kesme" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Kaydet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "Kaydet ve diğer türlere dönüştür" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "Tür seçeneklerini göster" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "PNG Optimizasyonu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "JPEG Kalitesi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "En Fazla JPEG Boyutu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "JPEG Boyutu Toleransı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "TIFF Sıkıştırması" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "Üstveri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Medyan" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Medyan piksel değerini kopyalar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "Zaman Kaydırma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "üstveri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "Etiketlerin zaman değerini kaydırın" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "Saniyeler" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "Dakika" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "Saat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "Gün" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "Ay" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "Yıl" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Maske" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Şeffaflık maskesi uygula" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Maskeyi yeniden örnekle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Metin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Verili bir konuma metin yaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Font" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Boyut" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Renklendir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Gri tonlamalı resmi renklendir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Siyah" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Beyaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Kopya" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Posterleştir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "Renk kanalındaki bit sayısını azalt" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Bit" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "Etiket yaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "Yeni değeri bir etikete yaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "Etiket (Exif, Iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "İçeriye veya dışarıya sınır çiz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Sıralama" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "rank'inci piksel değerini kopyalar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Güneş ışığı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Eşiğin üzerinde Ters tüm piksel değerleri tersle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Eşik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Eşitle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Resim hstogramını eşitle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "Otomatik (exif yönelimi kullanılarak)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "Kırp(mak)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Döndür" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "Çevir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Gri tonlama" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "Küçük resmi yeniden oluştur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "Çaprazla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "Bir %s resmi üzerinde kayıpsız JPEG dönüştürmesi çalışmaz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Dönüştürme" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Açı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "Zaman damgasını koru" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "Gelişmiş Seçenekleri Göster" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "JPEG Güncelle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "Exif Küçük Resmini güncelle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "Yönelim Etiketini Güncelle" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "Yorumlar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Dönüştürme " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "Açı " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "Doğrultu " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "Araç" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "Kayıpsız JPEG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "Döndür, çevir, gri tonla ve kırp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "Resmi kırp" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "Tamogen" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "Değişen tonlamalı mozaik oluşturucu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "Dolgu tipi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "Dolgu resmi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "Dolgu Klasörü" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Rasgele açıyla döndür" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Genişlet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Arka Plan Geçirgenliği" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Ters" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Bir resmin renklerini ters çevir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "Yer etiketi (geotag)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "GPS Verisi (gpx)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "GPS Raporu (csv)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "Zaman Kaydırma (saniye)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Yansıma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Yansıma uygular" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Derinlik" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Boşluk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "Yansımayı Ölçeklendir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "Ölçeklenirme Yöntemi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Ortak" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "En çok görülen ortak piksel değerini kopyalar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "En az" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "En düşük piksel değerini kopyalar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Dış Çizgi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Resim kenarlarına dış çizgi çiz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "Dış çizgi rengi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "Renk Doldur" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "Resim içeri aktar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Perspektif" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "2d veya 3d Kaydırma" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Sol Kaydırma Açısı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Üst Kaydırma Açısı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Alt Kaydırma Faktörü" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Sağ Kaydırma Faktörü" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Karşıtlık" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Griyi siyah & beyaza ayarla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "Etiketleri Kaydet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "Yalnızca üstveriyi kaydet (kayıpsız)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "Bir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "Etiketleri sil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "Exif veya Iptc etiketlerini sil" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "En Fazla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "En büyük piksel değerini kopyalar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Doygunluk" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Doygunluğu gri tonlamalıdan yüksek değere çıkar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "Etiketi Yeniden Adlandır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "Etiketi yeniden adlandır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "(Exif, Iptc) değerinden" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "(Exif, Iptc) değerine" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Parlaklık" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Parlaklığı siyahtan beyaza ayarla" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "3D Kenar" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "Bulanıklaştır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "İmli" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "Karakalem" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "Kalemle Eskiz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "Boya" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "Polaroid" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "Keskinleştir" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "Sigma Kontrastı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "Yumuşat" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "Dalga" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "Imagemagick" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "Bulanıklaştırma, Polaroid, Gölgelendirme, Yumuşatma..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "Kenarlık Rengi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "Resim Yazısı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "Karakalem Yarıçapı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "Kontrast Faktörü" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "Kontrast Eşiği" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "Bulanıklık Yarıçapı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "Bulanıklaştırma Sigma değeri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "Boya Yarıçapı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "Keskinleştirme Yarıçapı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "Keskinleştirme Sigma değeri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "Eskiz Yarıçapı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "Eskiz Sigma değeri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "Eskiz Açısı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "Yumuşatma Yarıçapı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "Yumuşatma Sigma değeri" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "Dalga Yüksekliği" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "Dalga Uzunluğu" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "Eskiz" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "Gri tonlamalı bir karakalem çizimine dönüştür" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "Ayrıntı Derecesi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "Bilgisayar delisi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "Harici komut çalıştır" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Şu eklentiler başarıyla yüklendi:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch istenilen özelliği yüklemeyi başaramadı" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch kendini Windows Gezgini'nden kaldırmaya çalıştı." #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Bu özellik için Python Win32 uzantılarını yüklemelisiniz." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "İşlem Listesi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Hiçbir işlem listesi verilmedi." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Resim Dizini" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Devam etmek istiyor musunuz?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Şimdi ne yapmak istersiniz?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "%s yeniden başlatırsanız, işlem içerik menüsünde görünecektir." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch %s içindeki işlemi yükleyemedi:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" "Bu aynı zamanda python-nautilus paketinin de kurulu olmasını gerektirir." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Phatch ile resim dosyalrını topluca işleyin" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "%s ile Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Son Phatch işlem listesi ile işleyin" #~ msgid "Do not create missing folders" #~ msgstr "kayıp dizinleri oluşturma" #~ msgid "Colour" #~ msgstr "Renk" #~ msgid "Filename" #~ msgstr "Dosya ismi" #~ msgid "colours" #~ msgstr "renkler" #~ msgid "Height" #~ msgstr "Yükseklik" #~ msgid "Width" #~ msgstr "Genişlik" #~ msgid "Shadow Colour" #~ msgstr "Gölge Rengi" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Metadata kaydet (exif & iptc eklentisi gerekir)" #~ msgid "Fade all colours to gray" #~ msgstr "Tüm renkler soluktan griye" #~ msgid "border" #~ msgstr "kenarlık" #~ msgid "Force Background Colour" #~ msgstr "Güçlü Aralan Rengi" #~ msgid "Background Colour" #~ msgstr "Artalan Rengi" phatch-0.2.7/locale/uk/0000755000000000000000000000000011346363116014607 5ustar rootroot00000000000000phatch-0.2.7/locale/uk/LC_MESSAGES/0000755000000000000000000000000011346363116016374 5ustar rootroot00000000000000phatch-0.2.7/locale/uk/LC_MESSAGES/phatch.mo0000644000000000000000000007761511346363116020220 0ustar rootroot00000000000000D 3l8#9#H# Y#c#j# #### #####$$!$:$J$Z$`$o$$$$$$ $$$ $%%%% =%J% c%%% %%3%%% % && &%%&!K&(m&&&& & &(&&''':'T'&t'''*'.'2( 3( A(L( _(&(((("((((() %)0) 7)E)6N)))))))))**!6*X*]*f***** *"***+"9+\+{+(+-+$++),.,4,;,A, `,l,,{,,, ,,(, -!#-E-$--- ..'.0.M.\S....../ /// /(///3/C/S/m/s/z////// / / //> 0.K0 z000 0000 000.1>1R1Z1 c1 m1y11'11&112 22%2)2 D2e2j2o2222222*222303"M3p3w333"333334 44 24 ?4`4 e4"q4*484(4;!57]55555 5&5 6166h6o6 t666666667 7 7 /7 =7H7[7 b7 m7 x777777'7 888-8D8Y8n8888 88 8888'8#9 ;9$I9n9s9z99>9919: :':?:O:V:s:x:H::+:3#;W;s;A<H<'M<u<<<<<)< < < ====%=9=M=2P=== =(=,= =>#>)>=>4\>?>A>7?K?Q? Y? c? o?z??????????????? @@ @'@-@2@;@D@ K@V@\@ c@n@t@{@@@@@@@@@ @@@@@@@A "A-A3A8A?AGALAQA XAdA kAuAyA }A AAAA AAAAAAACCCCCC$D 9DGD$_D DDD%D$DD#E@ETEmEE E#EEE4 FBFTF gFuFF#FFFF(G!AG;cGG&GG GnHoHHHH HHOH=-I]kI.I*I#J*JMWM^MO~MIMN !N .N[;NN NN N$NO +O6O VO`dO8O O: P%DP jPuPP.P%P5P14QfQ#mQ[QQ#Q "R/R!@RKbRCR;RG.S;vS=SSZTh^TPT UW%U }UUU+UUU@U9:V$tVVVpV,WLGWW@XX YY',YTYBeYYYAZRZcZ&{Z&ZZZZ ZZ [([6;[2r[M[+[\ (\ 3\@\%Q\w\+\\\\+]b;]@]#]^!^":^]^r^&u^%^(^,^]_-v__ _ __>_`]3`:`X` %a 2aSaha ya$aDaa b8bGbXbgb bb bGb3b5!cWc,wc4cc7c$dBd:Sddd$d&deeA2eteCeee?e63f>jf5fGfr'g g2g7g,h?hA[hhPh ii0iAi0Ri&i'ii i8i3j-Fj'tjj%j"jkk2kNk9ikkk)k+kq!lll&l.l/m$Am)fmm m$m mmmn3#nWn6un-n(n0o 4oAoRoQnogo(pI7ppp+p/p q$q 5q,@qmq(qArKar8rrMssWt ]t"~t&ttt>t:uKu`u{u uu,u.u vo v{v'vvOvJ.wyw#w w$wBwm(x{x]y\pyyyyy zz%z8zIz iztzz z/z zzz { ,{9{={,Y{{{{{{ {{-|.|7| K| V| c|p|||||| | ||}&}0+}\}0e}"}6}%}~ '~4~C~ Z~g~|~~ ~~~ ~~~ - JW$Z&IhX)PE5[! (yACa+B_=@m`mBr3uh{!t3>r^S*JR.Dd+"Tt~wQ;7:YTX-",GF[s2H/W4%=6O <i$9o|0N.jxxWcw,DgMqe5M}QF\/p^'`kSRCUJA0?q;1: K9\jz ba KN~l}i4I)(c#ZLY'V{ 812>v]Ou6g&d-|7%vH] < k  fnyE Z*Pp@8lnGVeof$bUs?z _L#%(name)s Shell%(name)s actions%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List&Action List Droplet...&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&Image Inspector Droplet...&License&New Ctrl-N&OK&Open... Ctrl-O&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&ViewA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAllow Geek action and unsafe expressionsAlways save on desktopAmountAngleApply a transparency highlightApply a transparency maskApply for future errors Apply with tiling, scaling and opacityArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...Auto ContrastBackgroundBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBottom Left CornerBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse FolderC&reditsCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletCodeColorizeColorize grayscale imageCommonConstrain ProportionsContourContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCreditsCrop or expand the canvas without scalingCrossCutoffDepthDescribe here the action list.DescriptionDisable actionDisplays information about this application.Do not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDraw a contour around image edgesDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorError: wxPython %(recommended)s (or at least %(minimal)s) can not be found, but is required.ExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFalseFileFile(s)Fill FolderFilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsGapGo to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHighlightHorizontalHorizontal OffsetIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagesInInclude all subfoldersInclude imageInspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageKeep existing images (don't overwrite)LabelLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsMake the image smaller or biggerMarkMaskMaximize image contrastMaximumMedianMessageMethodMinimumModeMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNo action list provided.No files or folder selected.No save action required at the endNormalNothing has been logged yet.Nothing to do.OffsetOffset by distance and wrap aroundOpacityOpenOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesPNG OptimizePaste this command in a launcherPathPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Phatch with %sPhoto Batch ProcessorPlease (re)install it.Please upgrade your wxPython.PosterizeProcess with recent Phatch action listQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRepeatReport a bug on launchpad.ResampleResample HighlightResample ImageResample MaskResolutionRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaveSave &As... Ctrl-Shift-SSave Action List As...Save last changes toSaves an action listSaves an action list asScaleSelectSelect action listSelectionShadowShadow BlurShear 2d or 3dShow &Log... Ctrl-LShow LogShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSliderSolarizeSorry, no valid files foundSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:TextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This action list is unsafe:This application is known to be compatible with wxPython version(s) %(recommended)s (or at least %(minimal)s), but you have %(version)s installed.This requires also that the python-nautilus package is installed.TileTools to handle the current action listTop Left CornerTop Right CornerTop Shear AngleTransformationTransformation Translate Phatch in your native language.TranslationTransparentTransposeTresholdTrueTypesUnable to open fileUnsaved Action ListUpUse the Image Inspector to list all the variables.VerboseVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWhat do you want to do now?WhiteWrite Action PluginWrite text at a given positionYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsantialiasapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerleftmiddleminutemodemonthmonthnamenearestnono %s tags foundpathplease install pyexiv2positive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagtoptransformtransparencytruetypeweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-10-02 22:29+0000 Last-Translator: Сергій Дубик Language-Team: Ukrainian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) %(name)s оболонка%(name)s дії%s свіжий&Перервати&Про Phatch... Ctrl-Shift-A&Перелік дій&Хмарка списку дій...&Додати&Додати... Ctrl-+&Попросити допомоги&Пакет&Скасувати&Закрити&Згорнути все Ctrl-Shift-E&Всеодно продовжити&Відключити Ctrl-0&Документація... Ctrl-M&Вниз Ctrl-Down&Хмаринка Ctrl-D&Редагувати&Застосувати Ctrl-1&Виконати... Ctrl-Return&Розгорнути все Ctrl-E&Форум... Ctrl-F&Довідка&Хмарка оглядача зображень...&Ліцензія&Новий Ctrl-N&Гаразд&Відкрити... Ctrl-O&Вийти Ctrl-Q&Нещодавня хмарка...&Видалити Ctrl--&Повідомити про помилку програми... Ctrl-B&Зберегти Ctrl-S&Показати опис Ctrl-H&Показати шаблон для плагіна дії&Інструменти&Перекласти Phatch... Ctrl-T&Вверх Ctrl-Up&ВиглядКерівництво користувача відкриється у вашому оглядачі InternetПро програмуДіяПереліки дійПерелік дійДодатиДодати діюПідсилити яскравість від чорного до білогоВстановити з сірого в чорно-білийВстановити більшу насиченість з відтіннків сірогоВирівняти по горизонталіВирівняти по вертикаліВсеУсі файлиУсі файлиДозволити продвинуті дії та небезпечні виразиЗавжди зберігати на стільницюКількістьКутЗастосувати підсвічування прозоростіЗастосувати маску прозоростіПриміняти до майбутніх помилок Примінити з мозаїкою, маштабуванням та непрозорістюОформленняЯкАсоціювати зображення з переліком дій у %s...Асоціювати зображення з оглядачем зображень в %s...Асоціювати зображення з останнім переліком дій у %s...АвтоконтрастТлоНепрозорість тлаПакетна обробка зображень за допомогою PhatchПакетна обробка зі списком останніх дійБітиЧорнийЛинятиРозмиття, загострення, гофрування, вирівнювання...БульовеРамкаНижній лівий кутНижній правий кутКут нижньої обрізкиЯскравістьОглядПереглянути теку&АвториНе можу застосувати дію %(a)s до зображення '%(i)s' у теці:Не можливо застосувати дію %(a)s:КанваСпочатку перевірити зображенняПеревірка зображеньВибірВибрати файл(и)Вибрати текуВибрати файл списку дій...Виберіть зображенняВибрати теку із зображеннямиВиберіть теку для хмаринкиКодЗробити кольоровимЗробити кольоровим зображення у відтінках сірогоЗагальнеОбмежити пропорціїКонтурКонтрастРежим конвертаціїКонвертувати кольорову схему зображенняКопіює максимальне значення пікселюКопіює середнє значення пікселюКопіювати мінімальне значення пікселяКопіює середнє значення пікселюКопіює оціночне значення пікселюКопіювати&Копіювати список дій до буферу обміну як команду&Копіювати оглядач зображень як команду до буферу обміну&Копіювати останню команду до буферу обмінуАвториОбрізати або розширити канву без масштабуванняХрестВідрізатиГлибинаОпишіть тут перелік дійОписБлокувати діюПоказує інформацію про цю програмуНе вибирати першими зображенняБажаєте продовжити?ДокументаціяВнизЗменшити і обрізати зображення з фіксованим співвідношеннямПеретягуванняМалювати контур навколо країв зображенняКиньте будь-які файли та/або теки на цю хмаринку Phatch для їх пакетної обробки. Клацніть правою кнопкою або двічі, щоб переключитися до нормального виглядуКидає розмиту тінь під фотографієюВіддзеркалюєЕфектДозволити діюВведіть url зображенняЗрівнятиВрівноважити гістограму зображенняПомилкаПомилка: wxPython %(recommended)s (щонайменше %(minimal)s) не знайдено, але він обов'язковий.ПрикладиВиконатиВиконати діюВиконати перелік дійВиконання списку дійРозкритиНевірноФайлФайл(и)Заповнити текуФільтрПідігнатиПоміняти місцями ліво і правоПоміняти місцями верх і низВіддзеркалити або повернути на 90 градусівЧисло з плаваючою комоюТекаШрифтШрифтиПроміжокДо документації Phatch.Іти на ворум PhatchНа домашню сторінку PhatchВідтінки сірогоПідсвітитиГоризонтальноГоризонтальне зміщенняПісля перезапуску %s, дія з'явится у контекстному меню.Якщо ви хочете сприяти плагіну Phatch,Ігнорувати помилкиЗображенняОглядач зображеньШляхи до зображеньЗображенняУВключати усі підтекиВключити зображенняОглянути теґи EXIF та IPTCПеревірити EXIF та IPTC тегиОглянути метаданні (необхідні додатки для exif та iptc)Оглянути з допомогою PhatchЦілеЦіле+Ціле+0ІнтерактивнийНе вірні формати файлів зображеньІнвертуватиІнвертувати всі значення пікселів вище початковихІнвертувати кольори зображенняЗберегти існуючі зображення (не перезаписувати)НадписКут лівої обрізкиБібліотекиЛіцензіяЖурналзнайти exif та iptc тигиЗробити зображення меньше або більшеПозначитиМаскаЗбільшити контраст зображенняМаксимумСереднєПовідомленняМетодМінімумРежимМонохромне (1-бітні пікселі, чорно-біле)Пересунути вибрану дію внизПересунути вибрану дію вверхНемає списку дій.Не вибрано файл або текуНемає в кінці дії «Зберегти»ЗвичайнийЩе нічого не запротокольованоНемає що робити.ЗміщенняЗмістити на відстань і огорнутиНепрозорістьВідкритиВідкрити список дійВидкриває список дійНалаштуванняОрієнтаціяЗаписати поверх існуючих зображеньОптимізація PNGВставити цю команду в модуль запускуШляхПерспективаPhatch не може опрацвати %d зображенняPhatch не може встановити дію в%s:Phatch не вдалося встановити функціюPhatch успішно створив хмаринкуPhatch намагався видалити себе з Windows ExplorerPhatch додасть для вас одну, будь-ласка перевірте її налаштуванняPhatch з %sПакетна обробка фотографійБудь-ласка (пере)встановіть цеБудь-ласка оновіть wxPython.Зробити плакатОбробити з останнім списком дій PhatchВийти з програмиRGBA (4x8-бітні пікселі, RGB із маскою прозорості)РадіусДати оцінкуВідбиттяВидалитиПрибрати асоціацію від %s...Вилучити вибрану діюВилучити вибрану дію.ПерейменуватиПовторПовідомити про помилку в launchpad.ПрорідитиПрорідити підсвічуванняПрорідити зображенняПрорідити маскуроздільна здатністьКут правої обрізкиПовернутиПовернути на 180Повернути на 270Повернути на 90Повернути під випадковим кутомОкруглийЗакругленийОкруглі або прямі кутиЗапустити %s як хмаринкуЗапустити %s без графічного інтерфейсу (як консольну програму)НасиченістьЗберегти&Зберегти як... Ctrl-Shift-SЗберегти перелік дій як...Зберегти останні зміни доЗберігає список дійЗберігає список дій якМасштабуватиВибірВиберіть список дійВибірТіньРозмита тіньЗдвинути 2D або 3D&Показати файл журналу... Ctrl-LПоказати журналПоказувати усі параметри дій.Показати опис списку дійПоказати файл журналуПоказувати лише назви дій.РозмірПовзунокСонячне світлоВибачте, не знайдено фалйв, що підтримуютьсяВибачте, Вам треба встановити дію %s для цього списку дій.ДжерелоВкажіть мову локалі (наприклад ua або ua_UK)СпонсориКвадратнийПочати новий список дійЗупинитися у разі помилокСтрокаВчити плагіни дій в:ТекстУ переліку відсутні дії.Команду хмаринки до оглядача зображень було скопійовано до буферу обміну.Немає підключених дійУ кінці повинна бути дія «Зберегти»Ці розширення були успвшно встановлені: Цей перелік дій не є безпечним:Відомо, що ця програма сумісна з wxPython версії %(recommended)s (щонайменше %(minimal)s), але ви маєте інстальовану %(version)s.Це вимагає встановленного пакету python-nautilusМозаїкаІнструменти для підтримки поточного списку дійВерхній лівий кутВерхній правий кутКут верхньої обрізкиПеретворенняПеретворення Перекласти Phatch на Вашу рідну мову.ПерекладПрозорістьТранспонуватиПочатковийВірноТипиНеможливо відкрити файлНезбережений перелік дійВгоруВикористовуйте оглядач зображень, щоб подивитися всі змінніБагатослівнийВертикальне зміщенняПерегляд джерелаУ вигляд хмаринки для перетягування файлівПопередження: python-wxversion не інстальовано. Водяний знакЩо ви хочете робитиБілийЗаписати плагін діїПисати текст у встановленій позиціїВи можете використовувати файли тільки з цими розширеннямиВи можете вставити це як текст у властивості нового модулю запуску.Вам треба встановити Python Win32 Extensions для цієї функціїВам необхідно знати PIL щоб написати плагін для Phatch,припинитидіїАнтіаліаспрограматлобікубічнебілінійнерозмиттялогічне значеннязнизурозширений пошукпо центрувибірклацнути "+" щоб додати діїконтурденьдесятковийза замовчуваннямдетальdpiпідсилити країпідсилити краї сильнішегофруватине вірнофайлім'я файларозмір файлуфільтрзнайти країчисло з плаваючою точкоютеканазва_текирамкависотагодинаігноруватизображенняціле числоліворучпосерединіхвилинарежиммісяцьназва місяцянайближчийнініяких %s тегів не знайденошляхбудь-ласка встановіть pyexiv2додатне ціле числоне нулоьве додатне ціле числороздільна здатністьправоручосновасекундазагостиритирозмірпропуститизгладитизгладити більшерядокпідтекатегзверхуперетворенняпрозорістьвірнотипдень тижняназва дня тижняшириназНевірна версія wxPythonріктакphatch-0.2.7/locale/uk/LC_MESSAGES/phatch.po0000644000000000000000000036310011346363116020206 0ustar rootroot00000000000000# Ukrainian translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-10-02 22:29+0000\n" "Last-Translator: Сергій Дубик \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "Оглянути з допомогою Phatch" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "Оглянути теґи EXIF та IPTC" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "Приклади" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "Запустити %s без графічного інтерфейсу (як консольну програму)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "Запустити %s як хмаринку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "Завжди зберігати на стільницю" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "Ігнорувати помилки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "Інтерактивний" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "Зберегти існуючі зображення (не перезаписувати)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "Вкажіть мову локалі (наприклад ua або ua_UK)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "Оглянути метаданні (необхідні додатки для exif та iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "Немає в кінці дії «Зберегти»" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "Включати усі підтеки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "Не вибирати першими зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "Дозволити продвинуті дії та небезпечні вирази" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "Багатослівний" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "Ви можете вставити це як текст у властивості нового модулю запуску." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "Вибачте, Вам треба встановити дію %s для цього списку дій." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" "Команду хмаринки до оглядача зображень було скопійовано до буферу обміну." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "Ще нічого не запротокольовано" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "Журнал" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "припинити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "пропустити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "ігнорувати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "клацнути \"+\" щоб додати дії" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "Відкрити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "Відкрити список дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "Виконати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "Виконати дію" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "Додати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "Додати дію" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "Видалити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "Вилучити вибрану дію" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "Вгору" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "Пересунути вибрану дію вверх" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "Вниз" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "Пересунути вибрану дію вниз" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "Оглядач зображень" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "знайти exif та iptc тиги" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "Опис" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "Показати опис списку дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "Вибрати файл списку дій..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "Зберегти перелік дій як..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "%(name)s дії" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "%(name)s оболонка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "програма" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "рамка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "дії" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "Керівництво користувача відкриється у вашому оглядачі Internet" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "Вчити плагіни дій в:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "Якщо ви хочете сприяти плагіну Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "Перетягування" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "Киньте будь-які файли та/або теки на цю\n" "хмаринку Phatch для їх пакетної обробки.\n" "Клацніть правою кнопкою або двічі, щоб\n" "переключитися до нормального вигляду" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch додасть для вас одну, будь-ласка перевірте її налаштування" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "Зберегти останні зміни до" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "Виберіть теку для хмаринки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch успішно створив хмаринку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "Виберіть список дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "Вибрати теку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "Вибрати файл(и)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "Вибрати теку із зображеннями" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "Огляд" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "Файл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "Тека" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "за замовчуванням" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "Перегляд джерела" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "розширений пошук" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "Шлях" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "&Новий\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "Почати новий список дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "&Відкрити...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "Видкриває список дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "&Зберегти\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "Зберігає список дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "&Зберегти як...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "Зберігає список дій як" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "&Копіювати список дій до буферу обміну як команду" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "Вставити цю команду в модуль запуску" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "&Копіювати останню команду до буферу обміну" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "&Копіювати оглядач зображень як команду до буферу обміну" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "&Вийти\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "Вийти з програми" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "&Перелік дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "&Додати...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "&Видалити\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "Вилучити вибрану дію." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "&Застосувати\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "Дозволити дію" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "&Відключити\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "Блокувати дію" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "&Вверх\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "&Вниз\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "&Редагувати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "&Хмаринка\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "У вигляд хмаринки для перетягування файлів" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "&Показати опис\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "Інструменти для підтримки поточного списку дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "&Розгорнути все\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "Показувати усі параметри дій." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "&Згорнути все\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "Показувати лише назви дій." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "&Вигляд" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "&Виконати...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "Виконати перелік дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "&Показати файл журналу...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "Показати файл журналу" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "&Інструменти" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "На домашню сторінку Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "&Документація...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "До документації Phatch." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "&Форум...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "Іти на ворум Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "&Перекласти Phatch...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "Перекласти Phatch на Вашу рідну мову." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&Повідомити про помилку програми...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "Повідомити про помилку в launchpad." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&Про Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "Показує інформацію про цю програму" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&Довідка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "Показати журнал" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "Вам необхідно знати PIL щоб написати плагін для Phatch," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "&Показати шаблон для плагіна дії" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "Код" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "&Попросити допомоги" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "&Гаразд" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "Записати плагін дії" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "Приміняти до майбутніх помилок " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "&Перервати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "Повідомлення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "&Всеодно продовжити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "Налаштування" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "Типи" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "Переглянути теку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "Джерело" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "Файл(и)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "Зупинитися у разі помилок" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "Спочатку перевірити зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "Записати поверх існуючих зображень" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "&Скасувати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "&Пакет" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "Зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "Надпис" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "тег" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "Бульове" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "Строка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "Вибір" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "роздільна здатність" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "У" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "Число з плаваючою комою" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "Як" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "Режим" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "Прорідити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "бікубічне" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "Ціле" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "Ціле+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "Ціле+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "Горизонтально" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "Повзунок" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "тло" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "Все" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "Орієнтація" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "Зміщення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "Горизонтальне зміщення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "Вертикальне зміщення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "Мозаїка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "Масштабувати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "Позначити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "Непрозорість" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "Метод" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "Пакетна обробка фотографій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "Вірно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "Невірно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "вірно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "не вірно" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "Незбережений перелік дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "Переліки дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "Усі файли" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "Опишіть тут перелік дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "У кінці повинна бути дія «Зберегти»" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "з" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s свіжий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "Асоціювати зображення з переліком дій у %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "Асоціювати зображення з останнім переліком дій у %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "Асоціювати зображення з оглядачем зображень в %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "Прибрати асоціацію від %s..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "&Хмарка списку дій..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "&Нещодавня хмарка..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "&Хмарка оглядача зображень..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "Пакетна обробка зі списком останніх дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "Перевірити EXIF та IPTC теги" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "Цей перелік дій не є безпечним:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "Дія" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "Немає що робити." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "У переліку відсутні дії." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "Немає підключених дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "Перевірка зображень" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch не може опрацвати %d зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "Не вірні формати файлів зображень" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "Вибачте, не знайдено фалйв, що підтримуються" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "Не вибрано файл або теку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "Неможливо відкрити файл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "Не можливо застосувати дію %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "Не можу застосувати дію %(a)s до зображення '%(i)s' у теці:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "Виконання списку дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "Вибір" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "день" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "назва_теки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "ім'я файла" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "розмір файлу" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "тека" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "година" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "хвилина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "місяць" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "назва місяця" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "шлях" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "основа" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "секунда" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "підтека" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "тип" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "день тижня" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "назва дня тижня" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "рік" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "висота" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "режим" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "ширина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "розмір" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "прозорість" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "Використовуйте оглядач зображень, щоб подивитися всі змінні" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "Ви можете використовувати файли тільки з цими розширеннями" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "ліворуч" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "по центру" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "праворуч" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "зверху" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "посередині" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "знизу" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "Монохромне (1-бітні пікселі, чорно-біле)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA (4x8-бітні пікселі, RGB із маскою прозорості)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "розмиття" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "контур" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "деталь" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "підсилити краї" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "підсилити краї сильніше" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "гофрувати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "знайти краї" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "згладити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "згладити більше" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "загостирити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "найближчий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "білінійне" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "Антіаліас" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "Повернути на 90" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "Повернути на 180" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "Повернути на 270" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "Поміняти місцями ліво і право" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "Поміняти місцями верх і низ" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "Звичайний" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "рядок" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "ціле число" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "додатне ціле число" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "не нулоьве додатне ціле число" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "роздільна здатність" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "число з плаваючою точкою" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "логічне значення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "вибір" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "Помилка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "Попередження: python-wxversion не інстальовано.\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" "Помилка: wxPython %(recommended)s (щонайменше %(minimal)s) не знайдено, але " "він обов'язковий." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "Будь-ласка (пере)встановіть це" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" "Відомо, що ця програма сумісна з wxPython версії\n" "%(recommended)s (щонайменше %(minimal)s),\n" "але ви маєте інстальовану %(version)s." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "Будь-ласка оновіть wxPython." #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "Невірна версія wxPython" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "&Автори" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "&Ліцензія" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "&Закрити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "Про програму" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "Автори" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "Документація" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "Переклад" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "Оформлення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "Бібліотеки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "Спонсори" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "Ліцензія" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "Зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "Усі файли" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "Виберіть зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "Введіть url зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "будь-ласка встановіть pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "ніяких %s тегів не знайдено" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "&Додати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "десятковий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "ні" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "так" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "Вибір" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "Шрифти" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "Тінь" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "фільтр" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "Кидає розмиту тінь під фотографією" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "Рамка" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "Розмита тінь" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "Тло" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "Прозорість" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "Ефект" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "Розмиття, загострення, гофрування, вирівнювання..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "Фільтр" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "Повтор" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "Кількість" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "перетворення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "Змістити на відстань і огорнути" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "Канва" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "Обрізати або розширити канву без масштабування" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "Вирівняти по горизонталі" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "Вирівняти по вертикалі" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "Водяний знак" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "Примінити з мозаїкою, маштабуванням та непрозорістю" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "Зробити зображення меньше або більше" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "Обмежити пропорції" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "Прорідити зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "Транспонувати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "Віддзеркалити або повернути на 90 градусів" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "Перейменувати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "файл" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "Хрест" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "Закруглений" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "Квадратний" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "Округлий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "Округлі або прямі кути" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "Радіус" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "Верхній лівий кут" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "Верхній правий кут" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "Нижній лівий кут" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "Нижній правий кут" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "Підсвітити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "Застосувати підсвічування прозорості" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "Прорідити підсвічування" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "Режим конвертації" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "Конвертувати кольорову схему зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "Підігнати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "Зменшити і обрізати зображення з фіксованим співвідношенням" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "Линяти" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "Автоконтраст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "Збільшити контраст зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "Відрізати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "Зберегти" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "Оптимізація PNG" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "Середнє" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "Копіює середнє значення пікселю" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "Маска" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "Застосувати маску прозорості" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "Прорідити маску" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "Текст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "Писати текст у встановленій позиції" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "Шрифт" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "Розмір" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "Зробити кольоровим" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "Зробити кольоровим зображення у відтінках сірого" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "Чорний" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "Білий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "Копіювати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "Зробити плакат" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "Біти" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "Дати оцінку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "Копіює оціночне значення пікселю" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "Сонячне світло" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "Інвертувати всі значення пікселів вище початкових" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "Початковий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "Зрівняти" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "Врівноважити гістограму зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "Повернути" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "Відтінки сірого" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "Перетворення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "Кут" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "Перетворення " #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "Заповнити теку" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "Повернути під випадковим кутом" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "Розкрити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "Непрозорість тла" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "Інвертувати" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "Інвертувати кольори зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "Відбиття" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "Віддзеркалює" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "Глибина" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "Проміжок" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "Загальне" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "Копіює середнє значення пікселю" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "Мінімум" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "Копіювати мінімальне значення пікселя" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "Контур" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "Малювати контур навколо країв зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "Включити зображення" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "Перспектива" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "Здвинути 2D або 3D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "Кут лівої обрізки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "Кут верхньої обрізки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "Кут нижньої обрізки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "Кут правої обрізки" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "Контраст" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "Встановити з сірого в чорно-білий" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "Максимум" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "Копіює максимальне значення пікселю" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "Насиченість" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "Встановити більшу насиченість з відтіннків сірого" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "Яскравість" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "Підсилити яскравість від чорного до білого" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "Ці розширення були успвшно встановлені:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch не вдалося встановити функцію" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch намагався видалити себе з Windows Explorer" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "Вам треба встановити Python Win32 Extensions для цієї функції" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "Перелік дій" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "Немає списку дій." #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "Шляхи до зображень" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "Бажаєте продовжити?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "Що ви хочете робити" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "Після перезапуску %s, дія з'явится у контекстному меню." #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch не може встановити дію в%s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "Це вимагає встановленного пакету python-nautilus" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "Пакетна обробка зображень за допомогою Phatch" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "Phatch з %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "Обробити з останнім списком дій Phatch" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "Зберегти метаданні (необхідні exif & iptc плагіни)" #~ msgid "Do not create missing folders" #~ msgstr "Не створювати відсутні теки" #~ msgid "Colour" #~ msgstr "Колір" #~ msgid "Filename" #~ msgstr "Ім'я файлу" #~ msgid "colours" #~ msgstr "кольори" #~ msgid "Fade all colours to gray" #~ msgstr "Змістити кольори до сірого" #~ msgid "border" #~ msgstr "рамка" #~ msgid "Height" #~ msgstr "Висота" #~ msgid "Crop or add border to all sides" #~ msgstr "Обрізати або додати рамку з усіх боків" #~ msgid "Width" #~ msgstr "Ширина" #~ msgid "Shadow Colour" #~ msgstr "Колір тіні" #~ msgid "Force Background Colour" #~ msgstr "Встановити колір тла" #~ msgid "Background Colour" #~ msgstr "Колір тла" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "Зменшити кількість біт кольору каналу" #~ msgid "Put colour under transparent image" #~ msgstr "Встановити колір під прозорим зображенням" #~ msgid "Copy the image file" #~ msgstr "Капіювати файл зображення" #~ msgid "Rename the image file" #~ msgstr "Перейменувати файл зображення" #~ msgid "Save an image" #~ msgstr "Зберегти як зображення" #~ msgid "watermark" #~ msgstr "водяний знак" #~ msgid "By offset" #~ msgstr "За зміщенням" #~ msgid "february" #~ msgstr "лютий" #~ msgid "january" #~ msgstr "січень" #~ msgid "april" #~ msgstr "квітень" #~ msgid "may" #~ msgstr "травень" #~ msgid "march" #~ msgstr "березень" #~ msgid "september" #~ msgstr "вересень" #~ msgid "october" #~ msgstr "жовтень" #~ msgid "june" #~ msgstr "червень" #~ msgid "july" #~ msgstr "липень" #~ msgid "august" #~ msgstr "серпень" #~ msgid "saturday" #~ msgstr "субота" #~ msgid "friday" #~ msgstr "п'ятниця" #~ msgid "thursday" #~ msgstr "четвер" #~ msgid "wednesday" #~ msgstr "середа" #~ msgid "sunday" #~ msgstr "неділя" #~ msgid "monday" #~ msgstr "понеділок" #~ msgid "tuesday" #~ msgstr "вівторок" #~ msgid "november" #~ msgstr "листопад" #~ msgid "december" #~ msgstr "грудень" #~ msgid "new" #~ msgstr "новий" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr (3x8-бітні пікселі, формат кольорового відео)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB (3x8-бітів пікселі, без втрати кольору)" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "Відтінки сірого (8-бітні пікселі, чорно-біле)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P (8-бітні пікселі, відображення з використанням палітри кольорів)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK (4x8-бітні пікселі, розподіл кольорів)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F (32-бітні пікселі з числом з плаваючою точкою)" #~ msgid "invalid syntax" #~ msgstr "невірний синтаксис" #~ msgid "doesn't exist" #~ msgstr "не існує" #~ msgid "the variable" #~ msgstr "змінна" #~ msgid "invalid literal" #~ msgstr "невірний літерал" #~ msgid "is negative, but should be positive" #~ msgstr "від'ємне, але повинно бути додатним" #~ msgid "for integer" #~ msgstr "для цілого числа" #~ msgid "the float value" #~ msgstr "число з плаваючою точкою" #~ msgid "for float" #~ msgstr "для числа з плаваючою точкою" #~ msgid "for boolean" #~ msgstr "для логічного значення" #~ msgid "the integer value" #~ msgstr "цілочислене значення" #~ msgid "is zero, but should be non-zero." #~ msgstr "нульове, але повинено бути не нульовим" #~ msgid "the file extension" #~ msgstr "розширення файлу" #~ msgid "the filename" #~ msgstr "ім'я файлу" #~ msgid "a filename with a valid extension was expected." #~ msgstr "очікувалося ім'я файлу з вірним розширенням" #~ msgid "does not exist." #~ msgstr "не існує" #~ msgid "is invalid." #~ msgstr "не вірний." #~ msgid "Save metadata" #~ msgstr "Зберегти метаданні" #~ msgid "All selected image types" #~ msgstr "Всі вибрані типи зображень" #~ msgid "All default image types" #~ msgstr "Всі типи зображень за замовчуванням" #~ msgid "See Tools>Show Log for more details." #~ msgstr "Дивися Інструменти>Показати лог для додаткових деталей" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "як Phatch автоматично згенерує інтерфейс користувача." #~ msgid "please email" #~ msgstr "будь-ласка напишіть email" #~ msgid "Open image file" #~ msgstr "Відкрити файл зображення" #~ msgid "&Preview" #~ msgstr "&Перегляд" #~ msgid "Copy cell text" #~ msgstr "Копіювати текст клітинки" #~ msgid "Open image url" #~ msgstr "Відкрити url зображення" #~ msgid "Phatch Version" #~ msgstr "Версія Phatch" #~ msgid "&Ignore Error" #~ msgstr "&Ігнорувати помилку" #~ msgid "Create missing folders" #~ msgstr "Створити відсутні теки" #~ msgid "&Export..." #~ msgstr "&Експортувати..." #~ msgid "&File" #~ msgstr "&Файл" #~ msgid "Scale down only" #~ msgstr "Тілки зменшити маштаб" #~ msgid "Resample Shadow" #~ msgstr "Прорідити Тінь" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "" #~ "Команду хмаринки для цього списку дій було скопійовано до буферу обміну" #~ msgid "&Recent" #~ msgstr "&Останній" #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "PHoto bATCH оброблювач та перейменувач зображень" #~ msgid "Only an image file is allowed." #~ msgstr "Дозволені тільки файли зображень" #~ msgid "drag & drop any image here" #~ msgstr "перетягніть сюди будь-яке зобження" #~ msgid "&Skip To Next Image" #~ msgstr "&Перервати та йти до наступного зображення" #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch не може створити хмаринку" #~ msgid "&Default Types" #~ msgstr "&Типи за замовчуванням" #~ msgid "Open a python shell for introspection" #~ msgstr "Відкрити командний рядок python для самодіагностики" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Командний рядок Pythonl...\tCtrl-P" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "&Оглядач зображень(exif)\tCtrl-Space" #~ msgid "Web&site...\tCtrl-I" #~ msgstr "&Веб-сайт...\tCtrl-I" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "Записати новий плагін дій Phatch за допомогою PIL." #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "&Записати плагін дій...\tCtrl-W" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "Цей список дій було зроблено у більш старій %(name)s версії\n" #~ "\n" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I (32-бітні цілочислені пікселі)" phatch-0.2.7/locale/zh_CN/0000755000000000000000000000000011346363116015171 5ustar rootroot00000000000000phatch-0.2.7/locale/zh_CN/LC_MESSAGES/0000755000000000000000000000000011346363116016756 5ustar rootroot00000000000000phatch-0.2.7/locale/zh_CN/LC_MESSAGES/phatch.mo0000644000000000000000000006001411346363116020563 0ustar rootroot00000000000000 -"" """""" "# ###5#F#V#o#########$ $$$ +$8$K$Z$ r$$ $$$ $$3$"%(% /% <%H% L%%Z%!%(%%%% % %(&,&C&J&P&j&&&&&*&.&2' I' W'b' u'&''''"'''(('( ;(F( M( [(e(6n((((((())/)?)!V)x)}))))) )"))*2*"Q*t**(*-*$*+)+F+L+S+Y+ x+B++,+,, 6,D,(I, r,~,$-%-8- ?-M-`-i-------------..#.=.C.J.O.U.*Y.... . ..>..475 U5&_551555 555 6%6A6H6O6j6s6 6 666 6 6 666667'/7 W7b7g777777778 88 %818@8T8']8#8 8$88888> 9L91S999999999H:I:+e:3::A:#;'(;P;`;q;); ; ;;;;;;;2<3<;< K<(W<,< <<<<<4 =?A=A=7==> > > >*>2>;>@>H>O>c>j>q>>>>>>> >>>>>>>> >? ? ??$?+?0?7?>?F?K?R?Y?^? d?n?v?y????? ???????@ @@ @%@)@ -@7@<@A@ I@U@[@`@w@|@@0B NB XB!cBB BBB B B BBC)C;CPCeC }CCCCC C"C DD ,D7DLD"^DDDDDD DDE -E98ErEyE E EE EEEE E F F F !F-.F\FoFvF}F&F$FFF(F+G.?GnG~GGG0GGGG#G H*H 1H ;HEHUH\HcH sH ~H?HHHH II I#I!9I [IhIII II I I I IIJ*J@JVJoJJ7J:J=K CK$MKrKyKKKK]K L$L7LMLcLjL$qLLL!#MEMXM _MlM }MMMMMMMMMMMMN N N "N/NDN KNUN\NcN$jNNNNN N NBN&;O bOoOvO OO OO,OOP.%PTPiP pP zPP PP$PPPP Q QQQ%QAQTQ[QbQ {Q QQQ QQ#QQQ-R2RKRgR}RRRRR RRRRSSS=S\ScS#jS)S+S"S4T7{AS#@;sh1!YR0D \KdF#4eCu se :`}^zV{[VvL Mx x%pP^w6}[Gnq9"a4tb?/'jX"><~t,|Uh%,Tg? $! &mX_c06UPd)k]bjAQ(f)o7rIY1=o(K =M<zi.Z;TBW]y\GH_-+ vq"%s" is not a valid path.%s Recent&Abort&About Phatch... Ctrl-Shift-A&Action List Droplet...&Add&Add... Ctrl-+&Ask for Help&Batch&Cancel&Close&Collapse All Ctrl-Shift-E&Continue Anyway&Disable Ctrl-0&Documentation... Ctrl-M&Down Ctrl-Down&Droplet Ctrl-D&Edit&Enable Ctrl-1&Execute... Ctrl-Return&Expand All Ctrl-E&Forum... Ctrl-F&Help&Image Inspector Droplet...&License&New Ctrl-N&OK&Open... Ctrl-O&Quit Ctrl-Q&Recent Droplet...&Remove Ctrl--&Report a Bug... Ctrl-B&Save Ctrl-S&Show Description Ctrl-H&Show template for action plugin&Tools&Translate Phatch... Ctrl-T&Up Ctrl-Up&ViewA html tutorial will open in your internet browser.AboutActionAction ListsAction listAddAdd an actionAdjust brightness from black to whiteAdjust from grey to black & whiteAdjust saturation from grayscale to highAlign HorizontalAlign VerticalAllAll FilesAll filesAllow Geek action and unsafe expressionsAlways save on desktopAmountAngleApply a transparency maskApply for future errors Apply with tiling, scaling and opacityArtworkAsAssociate Images with Action List in %s...Associate Images with Image Inspector in %s...Associate Images with Recent Action Lists in %s...Auto ContrastBackgroundBackground OpacityBatch process images with PhatchBatch process with recent action listsBitsBlackBleedBlur, Sharpen, Emboss, Smooth, ...BooleanBorderBottom Left CornerBottom Right CornerBottom Shear FactorBrightnessBrowseBrowse FolderC&ontinueC&reditsCan not apply action %(a)s on image '%(i)s' in folder:Can not apply action %(a)s:CanvasCheck images firstChecking imagesChoiceChoose File(s)Choose a folderChoose an Action List File...Choose an imageChoose an image folderChoose the folder for the dropletCodeColorizeColorize grayscale imageCommonConstrain ProportionsContrastConvert ModeConvert the color mode of an imageCopies the maximum pixel valueCopies the median pixel valueCopies the minimum pixel valueCopies the most common pixel valueCopies the rank'th pixel valueCopyCopy Actionlist as &Command to ClipboardCopy Image I&nspector as Command to ClipboardCopy R&ecent as Command to ClipboardCreditsCrop or expand the canvas without scalingCrossCutoffDepthDescribe here the action list.DescriptionDisable Safe Mode in the Tools menu if you trust this action list.Disable actionDisplays information about this application.Do not check images firstDo you want to continue?DocumentationDownDownsize and crop image with fixed ratioDrag & DropDrop any files and/or folders on this Phatch droplet to batch process them. Right-click or double-click to switch to normal view.Drops a blurred shadow under a photoDrops a reflectionEffectEnable actionEnter an image urlEqualizeEqualize the image histogramErrorExamplesExecuteExecute the actionExecute the action listExecuting action listExpandFalseFileFile(s)FilterFitFlip Left RightFlip Top BottomFlip or rotate 90 degreesFloatFolderFontFontsGapGeek actions are not allowed in safe mode.Go to the Phatch documentation.Go to the Phatch forumGo to the Phatch homepage.GrayscaleHorizontalHorizontal OffsetIf you restart %s, the action will appear in the context menu.If you want to contribute a plugin for Phatch,Ignore errorsImageImage InspectorImage pathsImagesInInclude all subfoldersInitialize fonts (only for installation scripts)Inspect EXIF & IPTC tagsInspect EXIF & IPTC tagsInspect metadata (requires exif & iptc plugin)Inspect with PhatchIntegerInteger+Integer+0InteractiveInvalid imagesInvertInvert all pixel values above thresholdInvert the colors of an imageKeep existing images (don't overwrite)LabelLeft Shear AngleLibrariesLicenseLogLook up exif and iptc tagsMake the image smaller or biggerMarkMaskMaximize image contrastMaximumMedianMessageMethodMinimumModeMonochrome (1-bit pixels, black and white)Move the selected action downMove the selected action upNever run action lists from untrusted sources.No action list provided.No files or folder selected.No save action required at the endNormalNothing has been logged yet.Nothing to do.OffsetOffset by distance and wrap aroundOpacityOpenOpen an action listOpens an actions listOptionsOrientationOverwrite existing imagesPaste this command in a launcherPathPerspectivePhatch can not handle %d image(s):Phatch could not install the action in %s:Phatch did not succeed to install the requested feature.Phatch successfully created the droplet.Phatch tried to uninstall itself from the Windows Explorer.Phatch will add one for you, please check its settings.Photo Batch ProcessorPlease (re)install it.Please check if this action list doesn't contain harmful code.Please upgrade your wxPython.PosterizeProcess with recent Phatch action listQuit the application.RGBA (4x8-bit pixels, RGB with transparency mask)RadiusRankReflectionRemoveRemove Association from %s...Remove the selected actionRemove the selected action.RenameRepeatReport a bug on launchpad.ResampleResample ImageResample MaskResolutionRight Shear FactorRotateRotate 180Rotate 270Rotate 90Rotate with random angleRoundRoundedRounded or crossed cornersRun %s as a gui dropletRun %s as console program without a guiSaturationSaveSave &As... Ctrl-Shift-SSave Action List As...Save last changes toSaves an action listSaves an action list asScaleSee "%s" for more details.SelectSelect action listSelectionShadowShadow BlurShear 2d or 3dShow &Log... Ctrl-LShow LogShow all the parameters of the actions.Show description of the action listShow log fileShow only the labels of the actions.SizeSliderSolarizeSorry, no valid files foundSorry, you need to install the %s action for this action list.SourceSpecify locale language (for example en or en_GB)SponsorsSquareStart a new action listStop for errorsStringStudy the action plugins in:TextThe action list is empty.The droplet command for the image inspector was copied to the clipboard.There is no action enabled.There should be a 'Save' action at the end.These extensions have been succesfully installed: This action list is unsafe:This requires also that the python-nautilus package is installed.TileTools to handle the current action listTop Left CornerTop Right CornerTop Shear AngleTranslate Phatch in your native language.TranslationTransposeTresholdTrueTypesUnable to open fileUnsaved Action ListUpUse the Image Inspector to list all the variables.VerboseVertical OffsetView SourceView as a droplet to drag and drop filesWarning: python-wxversion is not installed. WatermarkWhat do you want to do now?WhiteWrite Action PluginWrite text at a given positionYou can only use files with the following extensionsYou can paste it as text into the properties of a new launcher.You need to install the Python Win32 Extensions for this feature.You only need to know PIL to write a plugin for Phatch,abortactionsantialiasapplicationbackgroundbicubicbilinearblurbooleanbottombroaden your searchcenterchoiceclick '+' to add actionscontourdaydecimaldefaultdetaildpiedge enhanceedge enhance moreembossfalsefilefilenamefilesizefilterfind edgesfloatfolderfoldernameframeheighthourignoreimagesintegerleftmiddleminutemodemonthmonthnamenearestnono %s tags foundpathplease install pyexiv2positive integerpositive, non-zero integerresolutionrightrootsecondsharpensizeskipsmoothsmooth morestringsubfoldertagtoptransformtruetypeweekdayweekdaynamewidthwithwxPython Version ErroryearyesProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-10-28 23:23+0000 Last-Translator: Qianqian Fang Language-Team: Simplified Chinese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) "%s" 是一个无效路径。%s Recent终止(&A)关于 Phatch(&A)... Ctrl-Shift-A动作列表拖放控件(&A)...添加(&A)添加(&A)... Ctrl-+请求帮助(&A)批处理(&B)取消(&C)关闭(&C)全部折叠(&C) Ctrl-Shift-E仍然继续(&C)禁用(&D) Ctrl-0文档(&D)... Ctrl-M下移(&D) Ctrl-Down拖放控件(&D) Ctrl-D编辑(&E)启用(&E) Ctrl-1执行(&E)... Ctrl-Return全部展开(&E) Ctrl-E论坛(&F)... Ctrl-F帮助(&H)图像检查器拖放控件(&I)...许可(&L)新建(&N) Ctrl-N确定(&O)打开(&O)... Ctrl-O退出(&Q) Ctrl-Q最近使用的拖放控件(&R)...移除(&R) Ctrl--报告 Bug(&R)... Ctrl-B保存(&S) Ctrl-S显示描述(&S) Ctrl-H显示动作插件模板(&S)工具(&T)翻译 Phatch(&T)... Ctrl-T上移(&U) Ctrl-Up查看(&V)将在您的网页浏览器中打开一个 HTML 教程。关于动作动作列表动作列表添加添加动作从黑到白调节亮度调整灰度到黑白调整灰度饱和度水平对齐垂直对齐所有全部文件所有文件允许高级操作以及不安全的表达式总是保存桌面总量角度应用透明遮罩应用到将会出现的错误 应用平铺、缩放及不透明度美工作为在 %s 中关联图像与动作列表...在 %s 中关联图像与图像检查器...在 %s 中关联图像与最近动作列表...自动对比度背景背景不透明度使用 Phatch 批处理图像使用最近使用的动作列表批处理图像位数黑色出血模糊, 锐化, 浮雕, 平滑, ...布尔型边框左下角右下角下剪切因子亮度浏览浏览文件夹继续(&O)贡献者(&R)无法应用动作 %(a)s 至图片“%(i)s”,位于目录:无法应用动作 %(a)s:画布首先检查图像验证图像选择选择文件选择一个文件夹选择一个动作列表文件...选择图像选择一个图像文件夹选择拖放控件的文件夹代码彩色化彩色化灰度图片常见值限制比例对比度模式转换转换图像的色彩模式复制最大像素值复制中间像素值复制最小像素值复制最常见像素值复制排名高的像素值复制将动作列表以命令行形式复制到剪贴板(&C)将图像检查器以命令行形式复制到剪贴板(&N)将最近使用动作以命令行形式复制到剪贴板(&E)贡献者裁剪或扩大画布(不缩放)斜角裁剪深度在此描述动作列表描述如果你确信该动作脚本,请从“工具”菜单中关闭安全模式后再执行。禁用动作显示本应用程序相关信息。不首先检查图像您希望继续吗?文档下移用固定比例缩小并裁剪图像拖放拖放任何图像文件或目录至本 Phatch 拖放控件, 即可执行批处理。 右击或双击即可切换至常规视图。在图像下面放置模糊阴影放置一个倒影效果启用动作输入图像 URL均衡化均衡图像直方图错误示例执行执行此动作执行动作列表执行动作列表扩展否文件文件滤镜适合窗口左右翻转上下翻转翻转或旋转90度浮动文件夹字体字体间隔安全模式不允许高级操作。访问 Phatch 文档。访问 Phatch 论坛。访问 Phatch 主页。灰度水平方向水平偏移如果您重新启动 %s,此动作将显示在快捷菜单中。如果您想为 Phatch 贡献插件,忽视错误图像图像检查器图片路径图像输出目录包含全部子文件夹初始化字体(仅在安装脚本中执行)检查 EXIF & IPTC 标签检查 EXIF & IPTC 标签检查元数据(需要 exif & iptc 插件)使用 Phatch 检查整数整数+整数+0交互无效图像反相反转所有高于阈值的像素值反转图片的色彩保留已有图片(不覆写)标签左剪切角程序库许可日志查找 exif 及 iptc 标签调整图像大小标记遮罩最大化图像对比度最大值中间值消息模式最小值模式单色(1 位每像素,黑白)将选中的动作下移将选中的动作上移永远不运行来源不明的动作脚本。未提供动作列表。未选择文件或目录。完成后无须保存常规没有任何记录。没什么要做。偏移使用距离和范围偏移不透明度打开打开一个动作列表打开动作列表选项方向覆盖已存在的图像文件将此命令粘贴至启动器路径透视Phatch 无法处理 %d 幅图像:Phatch 无法安装位于 %s 的动作:Phatch 未能成功安装请求的功能。Phatch 成功创建拖放控件。Phatch 试图将自身从 Windows Explorer 卸载。Phatch 将为您添加一个,请检查它的设置。照片批量处理器请重新安装它。请检查该动作脚本是否包含危险操作。请升级您的 wxPython。色调分离使用最近使用的 Phatch 动作列表处理退出应用程序。RGBA(32 位每像素,含透明蒙板的 RGB 模式)半径排名倒影移除从 %s 移除关联...移除选中的动作移除选中的动作。重命名重复将到 Bug 报告至 Launchpad重采样图像重新采样重新采样遮罩分辨率右剪切因子旋转旋转 180 度旋转 270 度旋转 90 度旋转任意角度边角圆角圆角或斜角以图形拖放控件运行 %s以非图形界面的控制台方式运行 %s饱和度保存另存为(&A)... Ctrl-Shift-S将动作列表保存为...将最终修改保存至保存动作列表将动作列表另存为显示比例详情参见 “%s”选择选择动作列表选区阴影阴影模糊剪切构造二维或三维显示日志(&L)... Ctrl-L显示日志显示动作的全部参数。显示此动作列表的说明显示日志文件仅显示动作标签。大小滑块曝光过度抱歉,没有找到有效文件抱歉,您需要安装 %s 动作才能使用此动作列表。源指定本地语言(如:en 或 zh_CN)发起人正方形开启新动作列表遇到错误停止字符串在此学习动作插件:文本动作列表为空。图像检查器的拖放控件命令已复制到剪贴板。未启用任何动作。末尾应有一个“保存”动作。下列扩展已成功安装: 该动作脚本包含不安全操作:此请求及 python-nautilus 包已成功安装。平铺用以操作当前动作列表的工具左上角右上角上剪切角将 Phatch 翻译成您的母语翻译变换阈值是类型无法打开文件没有保存的动作列表上移使用图像检查器列出所有变量。详细垂直偏移查看源文件采用供拖放文件的拖放控件视图警告:python-wxversion 未安装。 水印您现在想要做什么?白色编写动作插件在指定位置写入文本您只能使用包含下列扩展名的文件您可以将它以文本形式粘贴至新启动器的属性。您需要为此功能安装 Python Win32 扩展。您只需懂得 PIL 就能为 Phatch 编写插件,放弃动作抗锯齿应用程序背景双三次的双线性模糊布尔值底部放宽您的搜索中间选择点击“+”添加动作轮廓日十进制默认值细节dpi增强边缘进一步增强边缘浮雕否文件文件名文件尺寸滤镜查找边缘浮点数文件夹文件夹名框架高度小时忽略图像整数左侧中部分钟模式月月份名称最邻近否未找到 %s 标签路径请安装 pyexiv2正整数非零正整数分辨率右侧root秒锐化大小跳过平滑进一步平滑字符串子文件夹标签顶部变换是类型工作日工作日名称宽度和wxPython 版本错误年是phatch-0.2.7/locale/zh_CN/LC_MESSAGES/phatch.po0000644000000000000000000033776211346363116020607 0ustar rootroot00000000000000# Simplified Chinese translation for phatch # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-10-28 23:23+0000\n" "Last-Translator: Qianqian Fang \n" "Language-Team: Simplified Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "使用 Phatch 检查" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "检查 EXIF & IPTC 标签" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "示例" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "以非图形界面的控制台方式运行 %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "以图形拖放控件运行 %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "总是保存桌面" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "忽视错误" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "初始化字体(仅在安装脚本中执行)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "交互" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "保留已有图片(不覆写)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "指定本地语言(如:en 或 zh_CN)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "检查元数据(需要 exif & iptc 插件)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "完成后无须保存" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "包含全部子文件夹" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "不首先检查图像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "允许高级操作以及不安全的表达式" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "详细" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "您可以将它以文本形式粘贴至新启动器的属性。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "抱歉,您需要安装 %s 动作才能使用此动作列表。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "图像检查器的拖放控件命令已复制到剪贴板。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "没有任何记录。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "日志" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "放弃" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "跳过" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "忽略" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "点击“+”添加动作" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "打开" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "打开一个动作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "执行" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "执行此动作" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "添加" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "添加动作" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "移除" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "移除选中的动作" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "上移" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "将选中的动作上移" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "下移" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "将选中的动作下移" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "图像检查器" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "查找 exif 及 iptc 标签" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "描述" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "显示此动作列表的说明" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "选择一个动作列表文件..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "将动作列表保存为..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "应用程序" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "框架" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "动作" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "将在您的网页浏览器中打开一个 HTML 教程。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "在此学习动作插件:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "如果您想为 Phatch 贡献插件," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "拖放" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" "拖放任何图像文件或目录至本 Phatch 拖放控件,\n" "即可执行批处理。\n" "右击或双击即可切换至常规视图。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "Phatch 将为您添加一个,请检查它的设置。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "将最终修改保存至" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "选择拖放控件的文件夹" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "Phatch 成功创建拖放控件。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "选择动作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "选择一个文件夹" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "选择文件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "选择一个图像文件夹" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "图像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "浏览" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "文件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "文件夹" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "默认值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "查看源文件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "放宽您的搜索" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "路径" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "新建(&N)\tCtrl-N" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "开启新动作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "打开(&O)...\tCtrl-O" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "打开动作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "保存(&S)\tCtrl-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "保存动作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "另存为(&A)...\tCtrl-Shift-S" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "将动作列表另存为" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "将动作列表以命令行形式复制到剪贴板(&C)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "将此命令粘贴至启动器" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "将最近使用动作以命令行形式复制到剪贴板(&E)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "将图像检查器以命令行形式复制到剪贴板(&N)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "退出(&Q)\tCtrl-Q" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "退出应用程序。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "添加(&A)...\tCtrl-+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "移除(&R)\tCtrl--" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "移除选中的动作。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "启用(&E)\tCtrl-1" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "启用动作" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "禁用(&D)\tCtrl-0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "禁用动作" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "上移(&U)\tCtrl-Up" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "下移(&D)\tCtrl-Down" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "编辑(&E)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "拖放控件(&D)\tCtrl-D" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "采用供拖放文件的拖放控件视图" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "显示描述(&S)\tCtrl-H" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "用以操作当前动作列表的工具" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "全部展开(&E)\tCtrl-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "显示动作的全部参数。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "全部折叠(&C)\tCtrl-Shift-E" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "仅显示动作标签。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "查看(&V)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "执行(&E)...\tCtrl-Return" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "执行动作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "显示日志(&L)...\tCtrl-L" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "显示日志文件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "工具(&T)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "访问 Phatch 主页。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "文档(&D)...\tCtrl-M" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "访问 Phatch 文档。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "论坛(&F)...\tCtrl-F" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "访问 Phatch 论坛。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "翻译 Phatch(&T)...\tCtrl-T" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "将 Phatch 翻译成您的母语" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "报告 Bug(&R)...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "将到 Bug 报告至 Launchpad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "关于 Phatch(&A)...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "显示本应用程序相关信息。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "帮助(&H)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "显示日志" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "您只需懂得 PIL 就能为 Phatch 编写插件," #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "显示动作插件模板(&S)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "代码" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "请求帮助(&A)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "确定(&O)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "编写动作插件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "应用到将会出现的错误 " #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "终止(&A)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "消息" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "仍然继续(&C)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "选项" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "类型" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "浏览文件夹" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "源" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "文件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "遇到错误停止" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "首先检查图像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "覆盖已存在的图像文件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "取消(&C)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "批处理(&B)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "图像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "标签" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "标签" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "布尔型" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "字符串" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "选择" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "分辨率" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "输出目录" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "浮动" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "作为" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "模式" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "重采样" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "双三次的" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "整数" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "整数+" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "整数+0" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "水平方向" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "滑块" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "背景" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "所有" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "方向" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "偏移" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "水平偏移" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "垂直偏移" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "平铺" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "显示比例" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "标记" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "不透明度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "模式" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "照片批量处理器" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "是" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "否" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "是" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "否" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "没有保存的动作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "动作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "全部文件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "在此描述动作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "末尾应有一个“保存”动作。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "和" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "%s Recent" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "在 %s 中关联图像与动作列表..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "在 %s 中关联图像与最近动作列表..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "在 %s 中关联图像与图像检查器..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "从 %s 移除关联..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "动作列表拖放控件(&A)..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "最近使用的拖放控件(&R)..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "图像检查器拖放控件(&I)..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "使用最近使用的动作列表批处理图像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "检查 EXIF & IPTC 标签" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "详情参见 “%s”" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "该动作脚本包含不安全操作:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "如果你确信该动作脚本,请从“工具”菜单中关闭安全模式后再执行。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "永远不运行来源不明的动作脚本。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "请检查该动作脚本是否包含危险操作。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "\"%s\" 是一个无效路径。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "动作" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "安全模式不允许高级操作。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "没什么要做。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "动作列表为空。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "未启用任何动作。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "验证图像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "Phatch 无法处理 %d 幅图像:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "无效图像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "抱歉,没有找到有效文件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "继续(&O)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "未选择文件或目录。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "无法打开文件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "无法应用动作 %(a)s:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "无法应用动作 %(a)s 至图片“%(i)s”,位于目录:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "执行动作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "选择" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "日" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "文件夹名" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "文件名" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "文件尺寸" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "文件夹" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "小时" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "分钟" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "月" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "月份名称" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "路径" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "root" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "秒" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "子文件夹" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "类型" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "工作日" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "工作日名称" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "年" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "dpi" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "高度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "模式" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "宽度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "大小" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "使用图像检查器列出所有变量。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "您只能使用包含下列扩展名的文件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "左侧" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "中间" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "右侧" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "顶部" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "中部" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "底部" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "单色(1 位每像素,黑白)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "RGBA(32 位每像素,含透明蒙板的 RGB 模式)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "模糊" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "轮廓" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "细节" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "增强边缘" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "进一步增强边缘" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "浮雕" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "查找边缘" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "平滑" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "进一步平滑" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "锐化" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "最邻近" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "双线性" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "抗锯齿" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "旋转 90 度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "旋转 180 度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "旋转 270 度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "左右翻转" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "上下翻转" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "常规" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "字符串" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "整数" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "正整数" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "非零正整数" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "分辨率" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "浮点数" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "布尔值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "选择" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "错误" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "警告:python-wxversion 未安装。\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "请重新安装它。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "请升级您的 wxPython。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "wxPython 版本错误" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "贡献者(&R)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "许可(&L)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "关闭(&C)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "关于" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "贡献者" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "文档" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "翻译" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "美工" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "程序库" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "发起人" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "许可" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "图像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "所有文件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "选择图像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "输入图像 URL" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "请安装 pyexiv2" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "未找到 %s 标签" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "添加(&A)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "十进制" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "否" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "是" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "选区" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "字体" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "阴影" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "滤镜" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "在图像下面放置模糊阴影" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "边框" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "阴影模糊" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "背景" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "效果" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "模糊, 锐化, 浮雕, 平滑, ..." #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "滤镜" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "重复" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "总量" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "变换" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "使用距离和范围偏移" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "画布" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "裁剪或扩大画布(不缩放)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "水平对齐" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "垂直对齐" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "水印" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "应用平铺、缩放及不透明度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "调整图像大小" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "限制比例" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "图像重新采样" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "变换" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "翻转或旋转90度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "重命名" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "文件" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "斜角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "圆角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "正方形" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "边角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "圆角或斜角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "半径" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "左上角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "右上角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "左下角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "右下角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "模式转换" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "转换图像的色彩模式" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "适合窗口" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "用固定比例缩小并裁剪图像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "出血" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "自动对比度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "最大化图像对比度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "裁剪" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "保存" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "中间值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "复制中间像素值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "遮罩" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "应用透明遮罩" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "重新采样遮罩" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "文本" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "在指定位置写入文本" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "字体" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "大小" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "彩色化" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "彩色化灰度图片" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "黑色" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "白色" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "复制" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "色调分离" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "位数" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "排名" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "复制排名高的像素值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "曝光过度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "反转所有高于阈值的像素值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "阈值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "均衡化" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "均衡图像直方图" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "旋转" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "灰度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "角度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "旋转任意角度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "扩展" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "背景不透明度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "反相" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "反转图片的色彩" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "倒影" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "放置一个倒影" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "深度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "间隔" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "常见值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "复制最常见像素值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "最小值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "复制最小像素值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "透视" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "剪切构造二维或三维" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "左剪切角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "上剪切角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "下剪切因子" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "右剪切因子" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "对比度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "调整灰度到黑白" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "最大值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "复制最大像素值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "饱和度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "调整灰度饱和度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "亮度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "从黑到白调节亮度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" "下列扩展已成功安装:\n" "\n" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "Phatch 未能成功安装请求的功能。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "Phatch 试图将自身从 Windows Explorer 卸载。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "您需要为此功能安装 Python Win32 扩展。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "动作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "未提供动作列表。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "图片路径" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "您希望继续吗?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "您现在想要做什么?" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "如果您重新启动 %s,此动作将显示在快捷菜单中。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "Phatch 无法安装位于 %s 的动作:" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "此请求及 python-nautilus 包已成功安装。" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "使用 Phatch 批处理图像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "使用最近使用的 Phatch 动作列表处理" #~ msgid "doesn't exist" #~ msgstr "不存在" #~ msgid "new" #~ msgstr "新建" #~ msgid "Filename" #~ msgstr "文件名" #~ msgid "colours" #~ msgstr "色彩" #~ msgid "Fade all colours to gray" #~ msgstr "去色" #~ msgid "Crop or add border to all sides" #~ msgstr "裁剪或添加边框到所有的边" #~ msgid "border" #~ msgstr "边框" #~ msgid "Force Background Colour" #~ msgstr "强制背景色" #~ msgid "Shadow Colour" #~ msgstr "阴影颜色" #~ msgid "Background Colour" #~ msgstr "背景色" #~ msgid "Height" #~ msgstr "高度" #~ msgid "Width" #~ msgstr "宽度" #~ msgid "Reduce the number of bits of colour channel" #~ msgstr "减少颜色通道的位数" #~ msgid "Copy the image file" #~ msgstr "复制图像文件" #~ msgid "Rename the image file" #~ msgstr "重命名图像文件" #~ msgid "watermark" #~ msgstr "水印" #~ msgid "Resample Shadow" #~ msgstr "重新取样阴影" #~ msgid "february" #~ msgstr "二月" #~ msgid "april" #~ msgstr "四月" #~ msgid "january" #~ msgstr "一月" #~ msgid "march" #~ msgstr "三月" #~ msgid "monday" #~ msgstr "星期一" #~ msgid "tuesday" #~ msgstr "星期二" #~ msgid "september" #~ msgstr "九月" #~ msgid "october" #~ msgstr "十月" #~ msgid "november" #~ msgstr "十一月" #~ msgid "december" #~ msgstr "十二月" #~ msgid "may" #~ msgstr "五月" #~ msgid "june" #~ msgstr "六月" #~ msgid "july" #~ msgstr "七月" #~ msgid "august" #~ msgstr "八月" #~ msgid "saturday" #~ msgstr "星期六" #~ msgid "friday" #~ msgstr "星期五" #~ msgid "thursday" #~ msgstr "星期四" #~ msgid "wednesday" #~ msgstr "星期三" #~ msgid "sunday" #~ msgstr "星期日" #~ msgid "the integer value" #~ msgstr "整数值" #~ msgid "is zero, but should be non-zero." #~ msgstr "为零, 应为非零数" #~ msgid "is negative, but should be positive" #~ msgstr "为负数, 应当为正数" #~ msgid "the file extension" #~ msgstr "文件扩展名" #~ msgid "the float value" #~ msgstr "浮点数值" #~ msgid "a filename with a valid extension was expected." #~ msgstr "文件名应当具有一个有效的扩展名。" #~ msgid "is invalid." #~ msgstr "是无效的。" #~ msgid "the filename" #~ msgstr "文件名" #~ msgid "does not exist." #~ msgstr "不存在。" #~ msgid "See Tools>Show Log for more details." #~ msgstr "查看 工具>显示日志 获取更多细节。" #, python-format #~ msgid "" #~ "This action list was made by an older %(name)s version.\n" #~ "\n" #~ msgstr "" #~ "此动作列表由较早的 %(name)s 版本创建。\n" #~ "\n" #~ msgid "&Recent" #~ msgstr "最近使用(&R)" #~ msgid "as Phatch will generate the user interface automatically." #~ msgstr "因为 Phatch 将自动生成用户界面。" #~ msgid "Save metadata (requires exif & iptc plugin)" #~ msgstr "保存元数据(需要 exif & iptc 插件)" #~ msgid "Do not create missing folders" #~ msgstr "不创建缺失的文件夹" #~ msgid "Scale down only" #~ msgstr "仅按比例缩小" #~ msgid "Put colour under transparent image" #~ msgstr "在透明图像下面填充色彩" #~ msgid "Save an image" #~ msgstr "保存一幅图像" #~ msgid "By offset" #~ msgstr "基于偏移" #~ msgid "YCbCr (3x8-bit pixels, colour video format)" #~ msgstr "YCbCr(3x8 位每像素,彩色视频格式)" #~ msgid "RGB (3x8-bit pixels, true colour)" #~ msgstr "RGB(24 位每像素,真彩色)" #~ msgid "Grayscale (8-bit pixels, black and white)" #~ msgstr "灰度(8 位每像素,黑白)" #~ msgid "P (8-bit pixels, mapped using a colour palette)" #~ msgstr "P(8 位每像素,使用调色板映射)" #~ msgid "CMYK (4x8-bit pixels, colour separation)" #~ msgstr "CMYK(4x8 位每像素,分色)" #~ msgid "I (32-bit integer pixels)" #~ msgstr "I(32 位整数每像素)" #~ msgid "F (32-bit floating point pixels)" #~ msgstr "F(32 位浮点数每像素)" #~ msgid "invalid syntax" #~ msgstr "无效语法" #~ msgid "the variable" #~ msgstr "变量" #~ msgid "Save metadata" #~ msgstr "保存元数据" #~ msgid "All selected image types" #~ msgstr "所有选中的图像类型" #~ msgid "All default image types" #~ msgstr "所有默认的图像类型" #~ msgid "please email" #~ msgstr "请发 email 至" #~ msgid "PHoto bATCH Processor & Renamer" #~ msgstr "照片批量处理 & 命名" #~ msgid "Only an image file is allowed." #~ msgstr "仅允许图像文件。" #~ msgid "drag & drop any image here" #~ msgstr "拖放图像至此" #~ msgid "&Preview" #~ msgstr "预览(&P)" #~ msgid "Open image url" #~ msgstr "打开图像 URL" #~ msgid "Open image file" #~ msgstr "打开图像文件" #~ msgid "Phatch Version" #~ msgstr "Phatch 版本" #~ msgid "&Skip To Next Image" #~ msgstr "跳至下一幅图像(&S)" #~ msgid "&Ignore Error" #~ msgstr "忽略错误(&I)" #~ msgid "Create missing folders" #~ msgstr "创建缺失文件夹" #~ msgid "&Default Types" #~ msgstr "默认类型(&D)" #~ msgid "&File" #~ msgstr "文件(&F)" #~ msgid "&Export..." #~ msgstr "导出(&E)..." #~ msgid "Web&site...\tCtrl-I" #~ msgstr "网站(&S)...\tCtrl-I" #~ msgid "&Write Action Plugin...\tCtrl-W" #~ msgstr "编写动作插件(&W)...\tCtrl-W" #~ msgid "Write a new action plugin for Phatch with PIL." #~ msgstr "使用 PIL 为 Phatch 编写新动作插件" #~ msgid "Colour" #~ msgstr "颜色" #~ msgid "The droplet command for this actionlist was copied to the clipboard." #~ msgstr "此动作列表的拖放控件命令已复制到剪贴板。" #~ msgid "Phatch could not create the droplet:" #~ msgstr "Phatch 无法创建以下拖放控件:" #~ msgid "&Image Inspector (exif)\tCtrl-Space" #~ msgstr "图像检查器 (exif) (&I)\tCtrl-Space" #~ msgid "for float" #~ msgstr "提供给浮点数值" #~ msgid "for boolean" #~ msgstr "提供给布尔值" #~ msgid "for integer" #~ msgstr "提供给整数值" #~ msgid "Copy cell text" #~ msgstr "复制单元格文本" #~ msgid "&Python Shell...\tCtrl-P" #~ msgstr "&Python Shell...\tCtrl-P" #~ msgid "invalid literal" #~ msgstr "无效字符" #~ msgid "Open a python shell for introspection" #~ msgstr "打开 python shell 进行自检" phatch-0.2.7/locale/zh_TW/0000755000000000000000000000000011346363116015223 5ustar rootroot00000000000000phatch-0.2.7/locale/zh_TW/LC_MESSAGES/0000755000000000000000000000000011346363116017010 5ustar rootroot00000000000000phatch-0.2.7/locale/zh_TW/LC_MESSAGES/phatch.mo0000644000000000000000000001533011346363116020616 0ustar rootroot00000000000000    5 %B !h             # 6. e u |      , $DKT]sz   .6 >HW^|   '. 3>ELg p ~'  %*:)Ku~  '07 >IPU\aglqx}  f     ")<CJ] d nx:   !=Vlsz      *)T[l|     +AHO Vcj   -  & 0 :DK R \f      $ + 8E LVfmqu|   4jEG)!cQ_FgTm~Z,Sy83NRBM9:( .LD[Uko ? dnuC+5AWh}i |e]q1Yl\'z b6>wJ-^@`/2{PHs70X*&IvKpV"%f#=<$xa;rOt&About Phatch... Ctrl-Shift-A&Help&Report a Bug... Ctrl-BAction ListsAdjust brightness from black to whiteAdjust from grey to black & whiteAlign HorizontalAlign VerticalAll FilesAmountAngleAsBackgroundBackground OpacityBitsBlackBooleanBorderBottom Left CornerBottom Right CornerBrightnessCan not apply action %(a)s on image '%(i)s' in folder:Checking imagesChoiceColorizeCommonContrastConvert ModeCopies the minimum pixel valueCopyDepthDescriptionDisplays information about this application.Do not check images firstDrops a blurred shadow under a photoEffectEqualizeExamplesExecuting action listExpandFalseFileFitFlip or rotate 90 degreesFloatFontGapGrayscaleHorizontalHorizontal OffsetIgnore errorsImageInInclude all subfoldersInspect metadata (requires exif & iptc plugin)IntegerInteger+0Invalid imagesInvertInvert the colors of an imageLabelMake the image smaller or biggerMarkMaskMaximumMedianMethodMinimumModeOffsetOpacityOrientationOverwrite existing imagesPerspectivePhoto Batch ProcessorRadiusRankReflectionRenameRepeatReport a bug on launchpad.ResampleResample MaskResolutionRotateRotate with random angleRoundedRun %s as console program without a guiSaturationSaveScaleShadowShadow BlurSizeSliderSolarizeSquareStringTextTop Left CornerTop Right CornerTranslate Phatch in your native language.TresholdTrueUnable to open fileUnsaved Action ListVerboseVertical OffsetWatermarkWhiteWrite text at a given positionabortbackgrounddaydefaultdpifalsefilefilenamefilesizefilterfolderfoldernameheighthourminutemodemonthpathrootsecondsizeskipsubfoldertagtransformtruetypeweekdaywidthyearProject-Id-Version: phatch Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2010-03-09 04:12+0100 PO-Revision-Date: 2009-08-19 11:44+0000 Last-Translator: stani Language-Team: Traditional Chinese MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Launchpad-Export-Date: 2010-03-10 10:40+0000 X-Generator: Launchpad (build Unknown) &關於Phatch... Ctrl-Shift-A&說明&回報Bug... Ctrl-B動作列表由暗到亮地調整亮度由灰階調整成純黑白水平校正垂直校正所有檔案數量角度當作背景背景不透明度位元黑色邏輯值(Boolean)外框左下角右下角亮度無法套用%(a)s的動作到資料夾'%(i)s' 中的影像檢查影像中選擇色彩化註解對比轉換模式複製最小值像素複製深度描述顯示這個程式的資訊不要優先檢查影像影像陰影模糊化效果均化範例執行列表中的動作擴張假檔案符合視窗旋轉90度浮點數字型間隔灰階水平的水平偏移忽略錯誤影像在包含所有子目錄檢查metadata (需要plugin: exif & iptc)整數0以上的整數無效的影像反转反轉影像的顏色標籤調整影像大小標記遮罩最大值中間數方法最小值模式偏移不透明度方向覆蓋現有的影像透視效果照片批次處理器半徑排名反射重新命名重複回報Bug到launchpad重新採樣重採樣遮罩解析度旋轉隨機旋轉圓形取消圖形介面,以文字模式執行 %s飽和度儲存比例陰影模糊化陰影大小滑動桿曝光度正方形字串文字左上角右上角翻譯Phatch到你的語言門檻值真無法開啟檔案未儲存的動作列表詳細垂直偏移浮水印白色在特定地方輸入文字取消背景日預設解析度假檔案檔案名稱檔案大小濾鏡資料夾資料夾名稱高度時分模式月路徑根目錄秒大小略過子目錄標籤變形真型態平日寬度年phatch-0.2.7/locale/zh_TW/LC_MESSAGES/phatch.po0000644000000000000000000031337511346363116020633 0ustar rootroot00000000000000# Traditional Chinese translation for phatch # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the phatch package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: phatch\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-03-09 04:12+0100\n" "PO-Revision-Date: 2009-08-19 11:44+0000\n" "Last-Translator: stani \n" "Language-Team: Traditional Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-03-10 10:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:60 msgid "Inspect with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/linux/nautilus/phatch_image_inspector.py:61 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:64 msgid "Examples" msgstr "範例" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:70 #, python-format msgid "Run %s as console program without a gui" msgstr "取消圖形介面,以文字模式執行 %s" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:74 #, python-format msgid "Run %s as a gui droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:78 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:288 msgid "Always save on desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:82 msgid "Ignore errors" msgstr "忽略錯誤" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:86 msgid "Initialize fonts (only for installation scripts)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:90 msgid "Interactive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:94 msgid "Keep existing images (don't overwrite)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:99 msgid "Specify locale language (for example en or en_GB)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:103 msgid "Inspect metadata (requires exif & iptc plugin)" msgstr "檢查metadata (需要plugin: exif & iptc)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:107 msgid "No save action required at the end" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:111 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:286 msgid "Include all subfolders" msgstr "包含所有子目錄" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:115 msgid "Do not check images first" msgstr "不要優先檢查影像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:119 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "Allow Geek action and unsafe expressions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/app.py:123 msgid "Verbose" msgstr "詳細" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:84 msgid "You can paste it as text into the properties of a new launcher." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:86 #, python-format msgid "Sorry, you need to install the %s action for this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:88 #, python-format msgid "" "Sorry, the values of these options will be lost in %(name)s %(version)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:90 msgid "The droplet command for this action list was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:92 msgid "" "The droplet command for recent action lists was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:94 msgid "" "The droplet command for the image inspector was copied to the clipboard." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:96 msgid "In Phatch you need to open or create an action list first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:97 msgid "As an example try out the polaroid action list from the library." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:99 msgid "" "Afterwards you can drag&drop images on the Phatch window to batch them." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:101 msgid "For more information see the tutorials (Help>Documentation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:203 msgid "No images have been processed to report." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:211 msgid "Hooray, no issues!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:213 msgid "Nothing has been logged yet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:215 msgid "Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:232 msgid "abort" msgstr "取消" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:235 msgid "skip" msgstr "略過" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:237 msgid "ignore" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:280 #, python-format msgid "This action list was made by a different %(name)s version." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:322 msgid "click '+' to add actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:375 msgid "Open &Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:463 msgid "Open" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:464 msgid "Open an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:466 msgid "Execute" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:467 msgid "Execute the action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:470 msgid "Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:471 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "Add an action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:473 msgid "Remove" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:474 msgid "Remove the selected action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:475 msgid "Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:476 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "Move the selected action up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:477 msgid "Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:478 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "Move the selected action down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:481 msgid "Image Inspector" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:482 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "Look up exif and iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:485 msgid "Description" msgstr "描述" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:486 msgid "Show description of the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:542 msgid "Library Action Lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:561 msgid "Choose an Action List File..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:593 msgid "Save Action List As..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:605 msgid "This file exists already." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:606 msgid "Do you want to overwrite it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:651 #, python-format msgid "%(name)s actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:734 #, python-format msgid "%(name)s Shell" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:737 msgid "application" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:738 msgid "frame" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:739 msgid "actions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:769 msgid "A html tutorial will open in your internet browser." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:771 msgid "You only need to know PIL to write a plugin for Phatch." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:772 msgid "Phatch will generate the user interface automatically." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:773 msgid "Study the action plugins in:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:775 msgid "If you want to contribute a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:776 msgid "please email: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:786 msgid "PHoto bATCH Processor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:802 #, python-format msgid "Sorry, \"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:869 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:192 msgid "Drag & Drop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:881 msgid "" "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:899 msgid "Phatch will add one for you, please check its settings." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:902 msgid "The action list only processes metadata." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:903 msgid "Phatch chooses the lossless \"Save Tags\" action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:949 msgid "Save last changes to" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:999 msgid "" "Safe mode protects you from the execution of possibly harmful scripts.\n" "Are you sure you want to disable it?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1011 msgid "Choose the folder for the droplet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1022 msgid "Phatch successfully created the droplet." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1025 msgid "Phatch could not create the droplet: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1081 msgid "Impossible to load data from action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1129 msgid "Select action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1152 msgid "Sorry, your settings seem corrupt." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1153 #, python-format msgid "Please delete \"%s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/gui.py:1154 msgid "Also check if your hard disk not full.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:76 msgid "Choose a folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:143 msgid "Choose File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:156 msgid "Choose an image folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:238 msgid "All selected types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:240 msgid "All readable and writable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:242 msgid "All readable types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:245 msgid "images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:258 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:265 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:291 msgid "&All Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:263 msgid "&No Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:269 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:271 msgid "Browse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:276 #, python-format msgid "Browse %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:285 msgid "File" msgstr "檔案" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:286 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:345 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:477 msgid "default" msgstr "預設" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:415 msgid "View Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:454 msgid "broaden your search" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:503 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:116 msgid "Path" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:650 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:671 msgid "&Open..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:652 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:673 msgid "&Inspect..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/dialogs.py:707 msgid "&Insert Tag in Action List..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "&New\tCtrl-N" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:43 msgid "Start a new action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "&Open...\tCtrl-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:45 msgid "Opens an actions list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Open &Library...\tCtrl-Shift-O" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:47 msgid "Opens a ready-made actionlist from the library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "&Save\tCtrl-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:49 msgid "Saves an action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Save &As...\tCtrl-Shift-S" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:51 msgid "Saves an action list as" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 msgid "Copy Actionlist as &Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Paste this command in a launcher" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:57 msgid "Copy R&ecent as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:59 msgid "Copy Image I&nspector as Command to Clipboard" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:61 msgid "&Export" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "&Quit\tCtrl-Q" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:62 msgid "Quit the application." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:64 msgid "&Action List" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:66 msgid "&Add...\tCtrl-+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "&Remove\tCtrl--" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:68 msgid "Remove the selected action." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "&Enable\tCtrl-1" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:71 msgid "Enable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "&Disable\tCtrl-0" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:73 msgid "Disable action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:76 msgid "&Up\tCtrl-Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:78 msgid "&Down\tCtrl-Down" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:80 msgid "&Edit" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "&Droplet\tCtrl-D" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:82 msgid "View as a droplet to drag and drop files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "&Show Description\tCtrl-H" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:84 msgid "Tools to handle the current action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "&Expand All\tCtrl-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:87 msgid "Show all the parameters of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "&Collapse All\tCtrl-Shift-E" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:89 msgid "Show only the labels of the actions." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "&Collapse Automatically" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:91 msgid "Expanding one action collapses the others." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:93 msgid "&View" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "&Execute...\tCtrl-Return" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:95 msgid "Execute the action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:97 msgid "&Safe Mode (recommended)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:100 msgid "&Image Inspector (exif)\tCtrl-I" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 msgid "&User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:103 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "Browse action lists, masks, highlights and fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:105 msgid "&Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:107 msgid "&Browse Library" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show &Report...\tCtrl+R" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:109 msgid "Show report of processed images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show &Log...\tCtrl-L" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:111 msgid "Show log file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "&Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:115 msgid "Scan for new fonts on your system" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:117 msgid "&Update" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:118 msgid "&Tools" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "&Website...\tCtrl-W" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:120 msgid "Go to the Phatch homepage." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "&Documentation...\tCtrl-M" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:122 msgid "Go to the Phatch documentation." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "&Forum...\tCtrl-F" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:124 msgid "Go to the Phatch forum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "&Translate Phatch...\tCtrl-T" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:127 msgid "Translate Phatch in your native language." msgstr "翻譯Phatch到你的語言" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "&Report a Bug...\tCtrl-B" msgstr "&回報Bug...\tCtrl-B" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:129 msgid "Report a bug on launchpad." msgstr "回報Bug到launchpad" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "De&veloper Documentation...\tCtrl-P" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:131 msgid "Learn to develop Phatch with Python and PIL." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "&About Phatch...\tCtrl-Shift-A" msgstr "&關於Phatch...\tCtrl-Shift-A" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:134 msgid "Displays information about this application." msgstr "顯示這個程式的資訊" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/frame.py:136 msgid "&Help" msgstr "&說明" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:15 msgid "Done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:16 msgid "Show Log" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:17 msgid "Show &Report" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:29 msgid "Ready!" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:72 msgid "Double click to open or right click for more options." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:82 msgid "Explorer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:114 msgid "You only need to know PIL to write a plugin for Phatch," msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:115 msgid "&Show template for action plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:117 msgid "Code" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:118 msgid "&Ask for Help" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:119 msgid "&OK" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:130 msgid "Write Action Plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:174 msgid "Apply for future errors " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:175 #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:240 msgid "&Abort" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:176 msgid "&Skip to Next Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:177 msgid "Skip To Next &Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:238 msgid "Message" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:241 msgid "&Continue Anyway" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:277 msgid "Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:278 msgid "Types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:279 msgid "Browse Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "Source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:282 msgid "File(s)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:283 msgid "Stop for errors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:284 msgid "Check images first" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:285 msgid "Overwrite existing images" msgstr "覆蓋現有的影像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:287 msgid "Always show status dialog when done" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:289 msgid "Repeat images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:292 msgid "&Cancel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/pyWx/wxGlade/dialogs.py:293 msgid "&Batch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:27 msgid "Image" msgstr "影像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:45 msgid "Label" msgstr "標籤" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:50 msgid "tag" msgstr "標籤" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:54 msgid "Boolean" msgstr "邏輯值(Boolean)" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:55 msgid "String" msgstr "字串" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:56 msgid "Choice" msgstr "選擇" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:57 msgid "Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:58 msgid "Resolution" msgstr "解析度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:60 msgid "File Name" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:61 msgid "In" msgstr "在" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:62 msgid "Float" msgstr "浮點數" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:63 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:64 #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:65 msgid "As" msgstr "當作" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:66 msgid "Mode" msgstr "模式" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "Resample" msgstr "重新採樣" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:67 msgid "bicubic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:68 msgid "Integer" msgstr "整數" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:69 msgid "Integer+" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:70 msgid "Integer+0" msgstr "0以上的整數" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:71 msgid "Horizontal" msgstr "水平的" #: /home/stani/sync/python/phatch/repo/trunk/phatch/templates/action.py:72 msgid "Slider" msgstr "滑動桿" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:71 msgid "pyexiv2 needs to be installed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:74 #, python-format msgid "%(mode)s has been converted to %(mode_copy)s to save as %(format)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "January" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "February" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "March" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:79 msgid "April" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "May" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "June" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "July" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "August" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:80 msgid "September" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "October" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "November" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:81 msgid "December" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Monday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Tuesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Wednesday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:82 msgid "Thursday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Friday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Saturday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:83 msgid "Sunday" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:91 msgid "Only palette images have transparency." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:212 msgid "Unable extract variables from file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:352 #, python-format msgid "Tag \"%s\" is read only." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:360 #, python-format msgid "Impossible to write tag \"%s\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:420 #, python-format msgid "Tag \"%s\" is not writable." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:425 #, python-format msgid "Format %(format)s does not support overwriting \"%(tag)s\"." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:463 msgid "background" msgstr "背景" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:611 msgid "source" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/pil.py:719 #, python-format msgid "" "Command did not produce an output image:\n" "%s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/settings.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:376 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:42 msgid "All" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:191 msgid "Select Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:219 msgid "Select Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:223 msgid "Select Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:236 msgid "Center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:237 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Custom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:238 msgid "Middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:239 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:378 msgid "Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:240 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:380 msgid "Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:241 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:382 msgid "Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:242 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:384 msgid "Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:243 msgid "Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:244 msgid "Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:249 msgid "Orientation" msgstr "方向" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:251 msgid "Position" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:253 msgid "Offset" msgstr "偏移" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:255 msgid "Horizontal Offset" msgstr "水平偏移" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:257 msgid "Vertical Offset" msgstr "垂直偏移" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:259 msgid "Horizontal Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:262 msgid "Vertical Justification" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "By Offset" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Tile" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:319 msgid "Scale" msgstr "比例" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:322 msgid "Mark" msgstr "標記" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:323 msgid "Opacity" msgstr "不透明度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:324 msgid "Method" msgstr "方法" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/models.py:368 msgid "Auto" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:36 msgid "Easily batch process images and edit metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:37 msgid "Photo Batch Processor" msgstr "照片批次處理器" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "True" msgstr "真" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "False" msgstr "假" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "true" msgstr "真" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:63 msgid "false" msgstr "假" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:64 msgid "Unsaved Action List" msgstr "未儲存的動作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:66 msgid "Action Lists" msgstr "動作列表" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:67 msgid "All Files" msgstr "所有檔案" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:68 msgid "Describe here the action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:69 msgid "There should be a 'Save' action at the end." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:82 msgid "with" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:83 #, python-format msgid "%s Recent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:86 #, python-format msgid "Associate Images with Action List in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:88 #, python-format msgid "Associate Images with Recent Action Lists in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:90 #, python-format msgid "Associate Images with Image Inspector in %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:91 #, python-format msgid "Remove Association from %s..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:93 msgid "&Action List Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:94 msgid "&Recent Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:95 msgid "&Image Inspector Droplet..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:130 msgid "Batch process with recent action lists" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/ct.py:131 msgid "Inspect EXIF & IPTC tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:58 #, python-format msgid "See \"%s\" for more details." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:64 #, python-format msgid "Sorry, the action list seems incompatible with %(name)s %(version)s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:66 msgid "This action list is unsafe:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:68 msgid "Disable Safe Mode in the Tools menu if you trust this action list." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:70 msgid "Never run action lists from untrusted sources." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:71 msgid "Please check if this action list doesn't contain harmful code." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:87 #, python-format msgid "\"%s\" is not a valid path." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:184 msgid "Action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:189 msgid "Geek actions are not allowed in safe mode." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:368 #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:382 msgid "Nothing to do." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:369 msgid "The action list is empty." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:383 msgid "There is no action enabled." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:410 msgid "Checking images" msgstr "檢查影像中" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:427 #, python-format msgid "Phatch can not handle %d image(s):" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:428 msgid "Invalid images" msgstr "無效的影像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:434 msgid "Sorry, no valid files found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:444 msgid "C&ontinue" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:473 msgid "No files or folder selected." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:503 msgid "Unable to open file" msgstr "無法開啟檔案" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:589 #, python-format msgid "Can not apply action %(a)s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:628 #, python-format msgid "Can not apply action %(a)s on image '%(i)s' in folder:" msgstr "無法套用%(a)s的動作到資料夾'%(i)s' 中的影像" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:723 msgid "Executing action list" msgstr "執行列表中的動作" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:749 #, python-format msgid "One image done in %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:751 #, python-format msgid "%(amount)d images done in %(duration)s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:755 msgid "One issue was logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/core/api.py:757 #, python-format msgid "%d issues were logged" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:43 msgid "Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:45 #, python-format msgid "" "The tag \"%s\" is not valid.\n" "It should follow the syntax: Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:202 msgid "Unable to change label." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:232 #, python-format msgid "Unable to delete tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:277 #, python-format msgid "Unable to rename tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:316 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/imageTable.py:325 #, python-format msgid "Unable to save tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:446 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "day" msgstr "日" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:447 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:159 msgid "desktop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:448 msgid "foldername" msgstr "資料夾名稱" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:449 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:157 msgid "filename" msgstr "檔案名稱" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:450 msgid "filesize" msgstr "檔案大小" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:451 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:158 msgid "folder" msgstr "資料夾" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:452 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "hour" msgstr "時" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:453 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "minute" msgstr "分" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:454 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 msgid "month" msgstr "月" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:455 msgid "monthname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:456 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:209 msgid "path" msgstr "路徑" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:457 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:168 msgid "root" msgstr "根目錄" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:458 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:164 msgid "second" msgstr "秒" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:459 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:170 msgid "subfolder" msgstr "子目錄" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:460 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:172 msgid "type" msgstr "型態" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:461 msgid "weekday" msgstr "平日" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:462 msgid "weekdayname" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:463 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:162 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:204 msgid "year" msgstr "年" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:631 msgid "aspect" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:632 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:173 msgid "compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:633 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:161 msgid "dpi" msgstr "解析度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:634 msgid "gamma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:635 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "height" msgstr "高度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:636 msgid "interlace" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:637 msgid "mode" msgstr "模式" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:638 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:169 msgid "width" msgstr "寬度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:639 msgid "format" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:640 msgid "formatdescription" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:641 msgid "size" msgstr "大小" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:642 msgid "transparency" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:703 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1140 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/metadata.py:1365 msgid "orientation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:48 msgid "Use the Image Inspector to list all the variables." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:49 msgid "You can only use files with the following extensions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "center" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:52 msgid "right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "middle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:53 msgid "bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:69 msgid "Monochrome (1-bit pixels, black and white)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:70 msgid "Grayscale (8-bit pixels)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:71 msgid "LA (8-bit pixels, grayscale with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:72 msgid "RGB (3x8-bit pixels, true color)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:73 msgid "RGBA (4x8-bit pixels, RGB with transparency mask)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:74 msgid "CMYK (4x8-bit pixels, color separation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:75 msgid "P (8-bit pixels, mapped using a color palette)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:76 msgid "YCbCr (3x8-bit pixels, color video format)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:77 msgid "detail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:78 msgid "edge enhance more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "emboss" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "find edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:79 msgid "smooth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "smooth more" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:80 msgid "sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "nearest" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:81 msgid "bilinear" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:82 msgid "antialias" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 90" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 180" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:83 msgid "Rotate 270" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Left Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:84 msgid "Flip Top Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:86 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:920 msgid "Normal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:88 msgid "none" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:498 msgid "can not be empty" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:547 #, python-format msgid "invalid syntax \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:552 msgid "string" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:571 msgid "integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:576 #, python-format msgid "invalid literal \"%s\" for integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:587 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:635 msgid "positive integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:594 #, python-format msgid "the integer value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:601 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:649 msgid "positive, non-zero integer" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:608 #, python-format msgid "the integer value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:618 msgid "resolution" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:622 msgid "float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:630 #, python-format msgid "invalid literal \"%s\" for float" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:642 #, python-format msgid "the float value \"%s\" is negative, but should be positive" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:656 #, python-format msgid "the float value \"%s\" is zero, but should be non-zero" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:662 msgid "boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:674 #, python-format msgid "invalid literal \"%s\" for boolean" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:679 msgid "choice" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:708 #, python-format msgid "the file extension \"%s\" is invalid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:715 msgid "a filename with a valid extension was expected" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:736 #, python-format msgid "the filename \"%s\" does not exist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:823 #, python-format msgid "\"%s\" can not be found." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:827 #, python-format msgid "Parameter \"%s.*\" is missing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:831 #, python-format msgid "Maximum one parameter \"%s\" is allowed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:896 msgid "automatic" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:910 msgid "None" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/formField.py:1014 msgid "Tag should start with \"Exif_\" or \"Iptc_\"" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/fonts.py:53 #, python-format msgid "Please install \"%s\" first." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:162 #, python-format msgid "Could not open image with %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/openImage.py:164 msgid "Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/safe.py:145 msgid "The following name(s) are invalid: " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageFileBrowser.py:109 msgid "&Select" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:42 msgid "Warning: python-wxversion is not installed.\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:49 #, python-format msgid "" "Error: wxPython %(recommended)s (or at least %(minimal)s) can not be found, " "but is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:53 msgid "Please (re)install it." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:58 #, python-format msgid "" "This application needs 'python-wxversion' and 'python-wxgtk%(recommended)s' " "(or at least 'python-wxgtk%(minimal)s')." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:71 #, python-format msgid "" "This application is known to be compatible with\n" "wxPython version(s) %(recommended)s (or at least %(minimal)s),\n" "but you have %(version)s installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:76 msgid "Please upgrade your wxPython." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/wxcheck.py:77 msgid "wxPython Version Error" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:55 msgid "Program Version" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:58 msgid "C&redits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:59 msgid "&License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:60 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:126 msgid "&Close" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:72 msgid "About" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:136 msgid "Credits" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:161 msgid "Documentation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:162 msgid "Translation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:163 msgid "Artwork" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:164 msgid "Libraries" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:165 msgid "Sponsors" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/about.py:230 msgid "License" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:16 msgid "Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:17 msgid "Exif_Photo_UserComment" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:18 msgid "Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:20 msgid "warning" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/dialogsInspector.py:34 msgid "Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/folderFileBrowser.py:143 msgid "all" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:59 #, python-format msgid "Are you sure you want to delete this tag from \"%s\"?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:61 msgid "Are you sure you want to delete this tag from all images?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:118 msgid "Tag should start with Exif_* or Iptc_*" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:120 msgid "Tag exists already" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:243 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:327 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:519 msgid "Images" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:244 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:415 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:443 msgid "All files" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:445 msgid "&Copy Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:448 msgid "&Add Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:451 msgid "&Delete Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:477 msgid "Open &Url..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:484 msgid "&Remove Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:520 msgid "&Copy Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:524 msgid "&Add Tag to All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:528 msgid "&Delete Tag from All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:531 msgid "&Rename Tag for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:534 msgid "&Modify Value for All Images..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:547 #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:558 #, python-format msgid "Unable to add tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:584 msgid "Unable to remove image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:590 msgid "Rename tag for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:600 msgid "Change value for all images to:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:606 #, python-format msgid "Unable to change tag <%s>" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:741 #, python-format msgid "Sorry, %s." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:756 msgid "Sorry, unable to open these images:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:799 msgid "Choose an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:808 msgid "Enter an image url" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:859 msgid "drag & drop any images here" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:862 msgid "please install pyexiv2" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/imageInspector.py:865 #, python-format msgid "no %s tags found" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/vlistTag.py:77 msgid "&Add" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/inspectorTag.py:59 msgid "decimal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:55 msgid "loading" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "no" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:285 msgid "yes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:442 msgid "Selection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/lib/pyWx/popup.py:500 msgid "Fonts" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:151 msgid "Shadow" msgstr "陰影" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:158 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:66 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:58 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:134 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:139 msgid "filter" msgstr "濾鏡" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:159 msgid "Drops a blurred shadow under a photo" msgstr "影像陰影模糊化" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:166 msgid "Border" msgstr "外框" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:168 msgid "Shadow Blur" msgstr "模糊化陰影" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:169 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:275 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:88 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:153 msgid "Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:170 msgid "Shadow Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/shadow.py:171 msgid "Force Background Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:63 msgid "Fit Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:64 msgid "Letterbox" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:65 msgid "Scale Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:66 msgid "Scale Model" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Wrap Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:116 msgid "Separate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:118 msgid "Cover Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:119 msgid "Page Mapping" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:121 msgid "Left Page" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:147 msgid "Box Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:148 msgid "Box Depth" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:163 msgid "Lid Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:200 msgid "Camera" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:201 msgid "Camera Horizontal Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:203 msgid "Camera Vertical Rotation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:204 msgid "Camera Roll" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:205 msgid "Camera Lens Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:207 msgid "Camera Distance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:249 msgid "Show Floor Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:250 msgid "Use Floor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:251 msgid "Floor Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:252 msgid "Floor Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:253 msgid "Floor Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:271 msgid "Transparent Background" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:272 msgid "Show Background Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:273 msgid "Background" msgstr "背景" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Gradient" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:274 msgid "Transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:276 msgid "Gradient Top" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:277 msgid "Gradient Bottom" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:278 msgid "Auto Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:279 msgid "Stars" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:280 msgid "Stars Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:281 msgid "Mist" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:323 msgid "Blender" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:327 msgid "plugin" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:328 msgid "3D Objects" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:342 msgid "Sorry, you have the wrong version of Blender installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:343 #, python-format msgid "Blender %s is required." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:346 msgid "Render Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:347 msgid "Render Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:348 msgid "Object" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:349 msgid "Image Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/blender.py:387 #, python-format msgid "Select Rotation for %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:60 msgid "Effect" msgstr "效果" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:68 msgid "Blur, Sharpen, Emboss, Smooth, ..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:71 msgid "Filter" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:73 msgid "Repeat" msgstr "重複" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/effect.py:74 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:57 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:59 msgid "Amount" msgstr "數量" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:47 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:77 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:48 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:104 msgid "transform" msgstr "變形" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/offset.py:48 msgid "Offset by distance and wrap around" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:70 msgid "Canvas" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:78 msgid "Crop or expand the canvas without scaling" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:81 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:52 msgid "Canvas Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:83 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:54 msgid "Canvas Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:86 msgid "Align Horizontal" msgstr "水平校正" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/canvas.py:87 msgid "Align Vertical" msgstr "垂直校正" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:136 msgid "Color to Alpha" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:143 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:53 msgid "color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:144 msgid "Make selected color transparent" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:164 msgid "Select Color By" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/color_to_alpha.py:166 msgid "Color Value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:52 msgid "Watermark" msgstr "浮水印" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/watermark.py:59 msgid "Apply with tiling, scaling and opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:47 msgid "Desaturate" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/desaturate.py:54 msgid "Fade all colors to gray" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:49 msgid "Make the image smaller or bigger" msgstr "調整影像大小" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:57 msgid "Constrain Proportions" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:58 msgid "Resample Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/scale.py:59 msgid "Scale Down Only" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:47 msgid "Transpose" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/transpose.py:54 msgid "Flip or rotate 90 degrees" msgstr "旋轉90度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:127 msgid "Grid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:136 msgid "Make n x m matrix of image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:139 msgid "Columns" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:140 msgid "Rows" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:141 msgid "Scale to Keep Size" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:142 msgid "Column Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:144 msgid "Row Line Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:146 msgid "Line Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/grid.py:147 msgid "Line Opacity" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:37 msgid "Both" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:39 msgid "Vertical" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:98 msgid "Mirror" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:105 msgid "Symmetrical tile texture" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mirror.py:108 msgid "Direction" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:34 msgid "Rename" msgstr "重新命名" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:38 msgid "file" msgstr "檔案" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename.py:39 msgid "Rename the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:42 msgid "Cross" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:43 msgid "Rounded" msgstr "圓形" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:44 msgid "Square" msgstr "正方形" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:132 msgid "Round" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:140 msgid "Rounded or crossed corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:143 msgid "Radius" msgstr "半徑" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:145 msgid "Same Method for All Corners" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:147 msgid "Top Left Corner" msgstr "左上角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:148 msgid "Top Right Corner" msgstr "右上角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:149 msgid "Bottom Left Corner" msgstr "左下角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/round.py:151 msgid "Bottom Right Corner" msgstr "右下角" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:90 msgid "Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:87 msgid "Apply a transparency highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/highlight.py:91 msgid "Resample Highlight" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:72 msgid "Put color under transparent image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/background.py:75 msgid "Fill" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:31 msgid "Convert Mode" msgstr "轉換模式" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/convert_mode.py:37 msgid "Convert the color mode of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:44 msgid "Fit" msgstr "符合視窗" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:52 msgid "Downsize and crop image with fixed ratio" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/fit.py:62 msgid "Bleed" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:59 msgid "Auto Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:63 msgid "Maximize image contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/autocontrast.py:66 msgid "Cutoff" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:47 msgid "Save" msgstr "儲存" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:53 msgid "Save and convert to other types" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:64 msgid "Show Type Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:65 msgid "PNG Optimize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:66 msgid "JPEG Quality" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:67 msgid "JPEG Size Maximum" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:69 msgid "JPEG Size Tolerance" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:71 msgid "TIFF Compression" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save.py:73 msgid "Metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:49 msgid "Median" msgstr "中間數" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/median.py:56 msgid "Copies the median pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "File time" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:31 msgid "Exif and file" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:50 msgid "Time Shift" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:55 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:35 msgid "metadata" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:56 msgid "Shift time values of tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:61 msgid "Change" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:62 msgid "Use exif datetime" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:63 msgid "Seconds" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:64 msgid "Minutes" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:65 msgid "Hours" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:66 msgid "Days" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:67 msgid "Months" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:68 msgid "Years" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/time_shift.py:86 msgid "Sorry, time shift can only handle dates before 2038-1-19" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:79 msgid "Mask" msgstr "遮罩" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:76 msgid "Apply a transparency mask" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/mask.py:80 msgid "Resample Mask" msgstr "重採樣遮罩" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:69 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:79 msgid "Text" msgstr "文字" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:76 msgid "Write text at a given position" msgstr "在特定地方輸入文字" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:81 msgid "Font" msgstr "字型" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/text.py:82 msgid "Size" msgstr "大小" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:55 msgid "Colorize" msgstr "色彩化" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:62 msgid "Colorize grayscale image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:65 msgid "Black" msgstr "黑色" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/colorize.py:66 msgid "White" msgstr "白色" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:35 msgid "Copy" msgstr "複製" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/copy.py:40 msgid "Copy the original image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:54 msgid "Posterize" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:61 msgid "Reduce the number of bits of color channel" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/posterize.py:64 msgid "Bits" msgstr "位元" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:31 msgid "Write Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:36 msgid "Write new value to a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/write_tag.py:39 msgid "Tag (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Equal for all sides" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:36 msgid "Different for each side" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:101 msgid "Draw border inside or outside" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/border.py:105 msgid "Border Width" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:53 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:64 msgid "Rank" msgstr "排名" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rank.py:60 msgid "Copies the rank'th pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:52 msgid "Solarize" msgstr "曝光度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:59 msgid "Invert all pixel values above threshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/solarize.py:62 msgid "Treshold" msgstr "門檻值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:52 msgid "Equalize" msgstr "均化" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/equalize.py:59 msgid "Equalize the image histogram" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:35 msgid "Automatic (use exif orientation)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:37 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:56 msgid "Crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:38 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:53 msgid "Rotate" msgstr "旋轉" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:39 msgid "Flip" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:40 msgid "Grayscale" msgstr "灰階" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:41 msgid "Regenerate thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:43 msgid "Transverse" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:50 #, python-format msgid "Lossless JPEG transformation does not work on a %s image:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:77 msgid "Transformation" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:79 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:63 msgid "Angle" msgstr "角度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:83 msgid "Preserve Timestamp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:84 msgid "Show Advanced Options" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:85 msgid "Update JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:86 msgid "Update Exif Thumbnail" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:87 msgid "Update Orientation Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:147 msgid "Comments" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:154 msgid "Transformation " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:158 msgid "Angle " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:160 msgid "Direction " msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:234 msgid "Utility" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:287 msgid "Lossless JPEG" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/lossless_jpeg.py:292 msgid "Rotate, flip, grayscale and crop" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/crop.py:63 msgid "Crop the image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:51 msgid "Tamogen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:58 msgid "Tone altering mosaic generator" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:61 msgid "Fill Type" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:63 msgid "Fill Image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/tamogen.py:64 msgid "Fill Folder" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:60 msgid "Rotate with random angle" msgstr "隨機旋轉" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:65 msgid "Expand" msgstr "擴張" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rotate.py:68 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:135 #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:125 msgid "Background Opacity" msgstr "背景不透明度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:48 msgid "Invert" msgstr "反转" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/invert.py:55 msgid "Invert the colors of an image" msgstr "反轉影像的顏色" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:36 msgid "Geotag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:42 msgid "Add gps data" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:46 msgid "GPS Data (gpx)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:47 msgid "GPS Report (csv)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geotag.py:48 msgid "Time Shift (seconds)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:115 msgid "Reflection" msgstr "反射" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:123 msgid "Drops a reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:126 msgid "Depth" msgstr "深度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:128 msgid "Gap" msgstr "間隔" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:131 msgid "Blur Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:132 msgid "Scale Reflection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/reflection.py:133 msgid "Scale Method" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:49 msgid "Common" msgstr "註解" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/common.py:56 msgid "Copies the most common pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:51 msgid "Minimum" msgstr "最小值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/minimum.py:58 msgid "Copies the minimum pixel value" msgstr "複製最小值像素" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:89 msgid "Contour" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:96 msgid "Draw a contour around image edges" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:101 msgid "Contour Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:102 msgid "Fill Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contour.py:104 msgid "Include image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:51 msgid "Top Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:53 msgid "Bottom Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:55 msgid "Left Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:57 msgid "Right Stretched" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:58 msgid "Corner Top Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:59 msgid "Corner Top Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:60 msgid "Corner Bottom Left" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:61 msgid "Corner Bottom Right" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:67 msgid "User" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:104 msgid "Perspective" msgstr "透視效果" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:111 msgid "Shear 2d or 3d" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:114 msgid "Projection" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:116 msgid "Left Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:117 msgid "Top Shear Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:118 msgid "Bottom Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/perspective.py:119 msgid "Right Shear Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:65 msgid "Contrast" msgstr "對比" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/contrast.py:72 msgid "Adjust from grey to black & white" msgstr "由灰階調整成純黑白" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:34 msgid "Save Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/save_metadata.py:39 msgid "Save only metadata (lossless)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:83 msgid "Warm Up" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:90 msgid "Colorize midtones of an image" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:93 msgid "Midtone" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/warm_up.py:94 msgid "Brighten" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:30 msgid "One" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:34 msgid "Delete Tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/delete_tags.py:39 msgid "Delete Exif or Iptc tags" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:49 msgid "Maximum" msgstr "最大值" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/maximum.py:56 msgid "Copies the maximum pixel value" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:63 msgid "Saturation" msgstr "飽和度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/saturation.py:70 msgid "Adjust saturation from grayscale to high" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:32 msgid "Rename Tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:37 msgid "Rename a tag" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:40 msgid "From (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/rename_tag.py:42 msgid "To (Exif, Iptc)" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:67 msgid "Brightness" msgstr "亮度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/brightness.py:74 msgid "Adjust brightness from black to white" msgstr "由暗到亮地調整亮度" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:28 msgid "3D Edge" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:36 msgid "Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:40 msgid "Bullet" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:48 msgid "Charcoal" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:51 msgid "Motion Blur" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:55 msgid "Pencil Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:59 msgid "Paint" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:62 msgid "Polaroid" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:74 msgid "Sharpen" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:78 msgid "Sigmoidal Contrast" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:83 msgid "Unsharp" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:87 msgid "Wave" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:99 msgid "Imagemagick" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:105 msgid "Blur, Polaroid, Shadow, Unsharp..." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:118 msgid "Border Color" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:120 msgid "Caption" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:121 msgid "Charcoal Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:122 msgid "Contrast Factor" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:123 msgid "Contrast Treshold" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:124 msgid "Blur Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:125 msgid "Blur Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:126 msgid "Blur Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:127 msgid "Paint Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:128 msgid "Sharpen Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:129 msgid "Sharpen Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:130 msgid "Sketch Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:131 msgid "Sketch Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:132 msgid "Sketch Angle" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:133 msgid "Unsharp Radius" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:134 msgid "Unsharp Sigma" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:135 msgid "Wave Height" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/imagemagick.py:136 msgid "Wave Length" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:56 msgid "Sketch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:64 msgid "Transform to a grayscale pencil drawing" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/sketch.py:67 msgid "Details Degree" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:44 msgid "Geek" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:49 msgid "Execute external command" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:71 msgid "Verify Program" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:72 msgid "Verify Input" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:73 msgid "Verify Output" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/actions/geek.py:74 msgid "Allow as last action" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:30 msgid "" "These extensions have been succesfully installed:\n" "\n" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:32 msgid "Phatch did not succeed to install the requested feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:34 msgid "Phatch tried to uninstall itself from the Windows Explorer." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/windows/droplet.py:52 msgid "You need to install the Python Win32 Extensions for this feature." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:148 msgid "Action list" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:152 msgid "No action list provided." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:157 msgid "Image paths" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:166 msgid "Do you want to continue?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/console/console.py:178 msgid "What do you want to do now?" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:52 #, python-format msgid "If you restart %s, the action will appear in the context menu." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:56 #, python-format msgid "Phatch could not install the action in %s:" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:157 msgid "This requires also that the python-nautilus package is installed." msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:158 msgid "Batch process images with Phatch" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:170 #, python-format msgid "Phatch with %s" msgstr "" #: /home/stani/sync/python/phatch/repo/trunk/phatch/linux/droplet.py:182 msgid "Process with recent Phatch action list" msgstr "" #~ msgid "Do not create missing folders" #~ msgstr "不要建立已遺失的資料夾" #~ msgid "Colour" #~ msgstr "顏色" #~ msgid "Filename" #~ msgstr "檔案名稱" #~ msgid "colours" #~ msgstr "顏色" #~ msgid "border" #~ msgstr "邊界" #~ msgid "Height" #~ msgstr "高度" #~ msgid "Width" #~ msgstr "寬度" #~ msgid "Background Colour" #~ msgstr "背景顏色" #~ msgid "Rename the image file" #~ msgstr "重新命名此影像檔案" #~ msgid "Save an image" #~ msgstr "儲存影像" #~ msgid "watermark" #~ msgstr "浮水印" #~ msgid "By offset" #~ msgstr "依偏移" #~ msgid "february" #~ msgstr "二月" #~ msgid "january" #~ msgstr "一月" #~ msgid "march" #~ msgstr "三月" #~ msgid "april" #~ msgstr "四月" #~ msgid "may" #~ msgstr "五月" #~ msgid "june" #~ msgstr "六月" #~ msgid "thursday" #~ msgstr "星期四" #~ msgid "wednesday" #~ msgstr "星期三" #~ msgid "monday" #~ msgstr "星期一" #~ msgid "tuesday" #~ msgstr "星期二" #~ msgid "september" #~ msgstr "九月" #~ msgid "october" #~ msgstr "十月" #~ msgid "november" #~ msgstr "十一月" #~ msgid "december" #~ msgstr "十二月" #~ msgid "july" #~ msgstr "七月" #~ msgid "august" #~ msgstr "八月" #~ msgid "saturday" #~ msgstr "星期六" #~ msgid "friday" #~ msgstr "星期五" #~ msgid "sunday" #~ msgstr "星期日" #~ msgid "new" #~ msgstr "新的" #~ msgid "Copy the image file" #~ msgstr "複製影像檔" phatch-0.2.7/phatch/0000755000000000000000000000000011346363116014200 5ustar rootroot00000000000000phatch-0.2.7/phatch/__init__.py0000644000000000000000000000152611346363116016315 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import os import sys sys.path.insert(0, os.path.dirname(__file__)) from core.config import init_config_paths init_config_paths() phatch-0.2.7/phatch/actions/0000755000000000000000000000000011346363116015640 5ustar rootroot00000000000000phatch-0.2.7/phatch/actions/__init__.py0000644000000000000000000000134411346363116017753 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follows PEP8 __actions__ = [] phatch-0.2.7/phatch/actions/autocontrast.py0000644000000000000000000002525311346363116020747 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageOps, imtools import Image import ImageOps from lib import imtools def autocontrast(image, amount=100.0, cutoff=0): """Apply a filter - amount: 0-1 - repeat: how many times it should be repeated""" image = imtools.convert_safe_mode(image) if imtools.has_transparency(image): im = imtools.remove_alpha(image) else: im = image contrasted = ImageOps.autocontrast(im, cutoff) if imtools.has_transparency(image): imtools.put_alpha(contrasted, imtools.get_alpha(image)) if amount < 100: return imtools.blend(image, contrasted, amount / 100.0) return contrasted #---Phatch class Action(models.Action): author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) label = _t('Auto Contrast') version = '0.1' pil = staticmethod(autocontrast) tags = [_t('color')] __doc__ = _t('Maximize image contrast') def interface(self, fields): fields[_t('Cutoff')] = self.SliderField(0, 0, 100) fields[_t('Amount')] = self.SliderField(100, 1, 100) icon = \ 'x\xda\x01\xc5\x0b:\xf4\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0b|IDATh\x81\xed\x9ayl\x14\xd7\x1d\xc7\xbfof\xf6\xde\ Y{\x17_\xeb\x03\x13c\x83\x89Ip(\x8dH\x89\xd3\x9a\xa4\x85(\x15\xa5i0Q\x84\xda\ $\x8ak\x95\xdc\t%\x91P*h\x13H\xd5\xe4\x8f\xa69\xaa\x86\x90\xb4$R\xdb\x04\x05\ \x87\xa2\x06\xda\xb4"u!\x05L8L\xb8\x82\xb1\r&\xf6\xfaX\x1f\xeb=f\xe6\xbd\xd7\ ?vfw\xd6\xde\xc5k\xa0j#\xf5IO\xb3sx\xde\xf73\xbf\xe3\xfd\xe6\x8d\t\xe7\x1c_\ \xe6&\xfc\xb7\x05\\i\xfb?\xc0\x7f\xbbI\xff\xc1{\x93I\xce_\x95\xe0\xbb\xda\ \x00\xc4\xbcmjj\xb2\xb7\xb6\xb6\xfaUU\xf5\xab\xaa\xea\xa9\xab\xab#>\x9f\xaf\ \xab\xa2\xa2\xe2dcc#E*\xc4e\x01\x91\xab\x94\x85\x08\x00\xb2a\xc3\x06\xeb\xb6\ m\xdb\xea5M[\xce9\xbf\xc3\xeb\xf5\x96\xf8\xfd~\xf8\xfd~\xb8\\.\xcc\xa9\xae\ \xc6\xfc\x1bn@0\x18D \x10\x18\x0b\xf4\xf5\x1d\xbc\xd0\xdd\xfd\xe2\xa6M\x9bv\ \x9a\x00\xa6$\xe8J\x01\x08\x00\xb2r\xe5J\xb9\xad\xad\xedIA\x10\x1e\xb9\xed\ \xb6\xdbrjkk\xe1\xf7\xfba\xb3\xd9@H\xd2\x93\xfc~?\n\xf2\xf3\xc1\x01\xa8\xaa\ \x8aX4\x8a\xc1\xc1A\x9c>u*\xd2\xd5\xd5\xb5\xe5\x895k\x1e\x05\xc0\xa6\x02r%\ \x00\xa4\xa9\xa9Ijiii\x12\x04\xe1\x99\x85\x0b\x17\x16,]\xba\x14999 \x84@\x10\ \xe2\xf9\xc1\x0cP\xec\xf7\xa3\xa0\xb0\x10\xd0\xc7\xe4\x00\xc09B\xa1\x10\x06\ \xfa\xfb\xf1\xf9\xd9\xb3\xa1\xc3G\x8e<\xf9\xec\xb3\xcfn\xd6OO*\xeer\x01H}}\ \xfd\xb4\x9e\x9e\x9e\xdfWWW\xdf\xba|\xf9r\x14\x14\x14@\x10\x04\x10B2\x03\x14\ \x17\xa3\xa8\xb00!\xdc\x0c\xc19\xc7\xc8\xc8\x08\xfa\x02\x01|z\xe8\xd0\xc7M\ \xabW\xd7g\x03q9\x00d\xde\xbcy5\x8a\xa2l///\x9f\xd9\xd8\xd8\x08\xab\xd5\nA\ \x10R\x00\xcc\xc2\x8d\xdf%%%\xf0\x17\x15%\x8e\x9b\xc7\xe6\x9c\x83\x03\x18\ \x0b\x85\x10\xe8\xed\xc5\xb1\xb6\xb6\xae\xd6C\x87j_y\xe5\x95\xa1KAL\x15\x80\ \xcc\x9f?\x7fN8\x1c\xfeg^^^ncc#dY\x86(\x8ai\xc5\x9b!\x00\xa0\xac\xb4\x14\xc5\ \xc5\xc5I\xd1q\xe5)\xbf9\x80\xe1`\x10\xc1`\x10\xa7\xcf\x9c\x19TTu\xc6}\xf7\ \xdd\x17\xca\x041\x95\x89\x8c\xd4\xd7\xd7O\x8bD"\xcd.\x97+\xb7\xa1\xa1\x01v\ \xbb\x1d\x9cs0\xc6@)\x05\xa5\x14\x9a\xa6AUU\xa8\xaa\nEQR:e,\xfe\xa4\xf5\x9e\ \x10\xaf\xff6 <99p\xbb\xdd\x98UU\xe5S\x14e\x1f\xf4dq%\x00\xa4\xa9\xa9I\xea\ \xe9\xe9\xf9\xa3(\x8a\x95\x8b\x16-\x82\xcf\xe7\xcb(~h\xcci\xb8\xcaT\xfb`0\x8a\xf6\xd3}\x88F\xa3))5m\x103\ \x96\xb1SJS\xe6\x16\xaf\xd7+\x1e?z\xf4\x1e\xb3\xde\t.\xc49g\x84\x90\xe1\xa7W\ \xf4\xbd\xf7\x9b}\x05\x0f\x17\x96\x8a\t\xc8\xa1~\x86m/G\xd0~\x0c\x88\x85\t\ \xca\xe7\x00KVY0k\xbe%\xe5\x1e\x9b\x9f\xb1\xa2\xaa\xd0\x07\xeaJu\x19J)\xb8i\ \x7f\xb2pV\x14\x05 \x040M\x8e\xb9>\xdf\xbd\x00\xde\xce\x08\xa0\xb7\xe0\x8a\ \x87\\{|~\xfe\xa8J5\x00\xc0\xa9\x83\x1a~\xf9\x10\x83\xec(FEE\x05J\xaaK000\ \x80\xd7\xd7\x9c\xc4\xc2\xbb.bYS\x12\xe2k\xb7\x17B9\x9b\x03M\xd3RnJ)\x05\xcb\ r\xe6\xe7\x8cASU\x00\xa6\x97\x0cB \xcbr\xb9~\x88_\n@Zp\xbbt\xaf\xa2\xc5\xa35\ \x16\xe6xc\x9d\x80\x92\xc2*\xe4\xe4\xe4\x00\x00l6\x1bf\xcf\x9e\x8d\xd2\xd2R\ \x1c\xdds\x04\'\x16\x1c\xc1\xccyqc\xcd\xb8\xb1\x1b\xc7OE\x12\x05\x9d\xd1\xd8\ di\xd4TVD\xc2\xe1\x84x\x8edY\xe2t:s\r\x1e\x00<\x05`\xc3\xfbrA\xe5\r\xe2\xe7o\ \xb7\xe7\x10B\xb8K\xd1\x9f\xfe\xbf\xfe\xc2`\xe5\xd7\xc0\xedvC\x92$\x08\x82\ \x80\xce\xceN\xcc\x9c9\x13N\xa7\x13s\xaa\xaf\xc5\xc1\x9dgQ6w\x04\x00 \xba4\ \xd4\xdc\xff&8\'\xb8\xb0g\x11B\xe7j\x00\xc4\x83\x92g\x91\x85\xa2\xd1h\xc6l\ \xe5r\xb9\xdc\xe6\xfd\xc4#"\x84\x08G\xf7\xaa_\xd5\xb8&k\xd0\xdc*\xd7\x88\x11\ \x94\xdd\xa7E8\x1c\x8eD\xc1\x16\x7fX\x1c\xe7\xce\x9dC4\x1a\x85\xc5b\x01\xc6\ \xcaS\x02\x99\x8aQ0)\x82\xfe\xd0Y\x84\xc3a\xa8\xaa\x9aR6\x8c\xefL\xef1=\xd8\ \xd36B`\xb5XD\xf3!\xb3\x05\xc4\xbe.\xcd\xae\xd2\x89%\x87\xc3cM\x11n4J):::\ \x90\x9b\x9b\x0b\xcf4+\xd44\x03\x87Fc\x90\x14\x05\x9csh\x97\x88\x01\xceXb\ \xb2\xcb\xd88G(\x1c\x8ef\x02\xe0\xa7Z\xe9\x17\xfb\xfe\x84\x11M\x81\xb3\xfa&"\ \xe5\xe4\xc7O\x14UGqz\x17K\xeb\xbf\x9a\xa6!\x10\x08\xa0\xb0\xfc\x1c\x14S\xd0\ \x1e\xdeM@U\x11\xc1s.\xe4Ij\x028\xe5\x1ez\x05J\'\x13\x8ed\xc6\x8a\x84\xc3\ \xa3\xe6Cf\x00\x1a8\x8b\xf6-\x8f\xd3\x17\x00\x14-\xf9\x11\xbe\xbb\xf4A\xf8\ \x01\xa0d\x9e\x86\xa2\xb9\x03\x18\xeb\x94\x13&7OP\x82=\x82\xaaouA\xd1E\xf4|N\ \xf0\xb7\x97*\xe0\xf1xPVV\x06\x96\xcf\xe2.\xa4\xa7Q\xb3\xeb\\Jx\xca\xeb\x98\ \x0e\x1e\x0e\x87\xfb\xcd\xd7\x08\xc9\xf3\x9c\x03\xe8\x03\xf0\x12\x80M\xad;\ \xf0kMI\xfe\xfdM\x0ft\xc0;\xeb\xe2\x84\xe0\xb2\xe6\x8e`\xde\x0f\x0e\xc0\xeeI\ \n9\xbc\xc3\x8d\xe9\xd3\xa7\xa3\xb0\xb0\x10\x8c1\x0c\x0e\x0eb``\x00###P\x14%\ Q+M\xf6\xd4\r\xe1\x86\xd58\xe7\x18\x18\x18\xd8k\xe6\x92R\xaf\xe5\x14\xc00!d\ \xacr\x01\x0e\xc4B`\x92\x0f"\x00\xd8=\x14\x8b\x1e<\x81\xfe3\x171r\xde\x0b\ \x1a\xb3@.\x19F\xfe\x9c~\x88\x96T(\x97C\x86`\xb7C\x92\xe2\xb77\xe6\x83)\xbf\ \xbe\xea.\x96\x08t\xc6\xa0\x8c\x8e\xbe`\xbe$m-\xf4\xf0\x16R\\v=\x0eX\x1d(\ \x9ep2\xabq\t>}\xb3\x16CgJS\x8e/]\xb2\x04\xb7\xd4\xd5ew\x0fC8c\xa0\x8c\x81Q\ \x8a\xf6\xf6\xf6\xa1\x86\xbb\xef\x9e\x86\xe4\xd2K\xfaZ\xe8\xf5\xd5p|\xf61\ \x14\xe3\xd8\xd8\x10\xa0)\xe3\xafLm\xc3\x81\xe4\xef@;A\xc7aL\xa9\xf2\x9cH\ \x10\x7fCcF\xbd\xc49::;?\xc0\xb8\n$S-4\xf8\xdb\'\xf1Vx\x18?\xben1\x9c\xaf= t\ GG\xa5\xd2\x05\xcb4\xdc|\x0f\x83\'?9F\xeb\x07\x02>y\xcf\x82\xc1N;\xbe\xb7a\ \x14\xd3\xca8\xde{:\x1f\xe5\xc5\xde\t\xe5t\xd6\xda\x91j\x01\xce9\x02\x81\x80\ *J\xd2\xea\xf1\xd7f*%\x86\x01l~\xf7\xa7\xa0\x1fm\xc1\xa2P@z\xc1\xef\xf7?ulG\ \xec\x9bye\xfd\xb8\xf1\xce\xb8OS\x15\xd8\xbb\xb9\x1c~\xbf\x1f\xa5\xd7Y\xb0\ \xe7W\xe7\xc1\xc5(J\n*\xe1p8.\x0b\xc0,\xdc<\xf1\x9d8q\xe2\xb55k\xd7\x861\x99\ \x05\x80\x84\x15\xbe\x00\xf0\xf2\xe0\x05l---\x08\xe4\xe6\xe6>\x1e\n\x85\x0e\ \x8ab\xd0\x0e$\xf3}ii)<\x1e\x0f\x08!\xa8\xb0W\x811\x96X\'\xba\x1c\xf1\xd0\ \xc5\x8b\xa2\x98\x10\xdf\xde\xde>\xbcf\xed\xda\'\xd2\xfdM\xc672\xce9\x030D\ \x08\x19>\x7f\xfe<\x07\xf0Yee\xe5\xc3\x7f}U~\xfd\xa3\xcd\x1c\x82\xc4A\xa3\ \x0eT\xcd\x88OP\xa2(\xc2j\xb5NY\xb4Y<\xe7\x1c\x82 @v\xbb\xe1p80\xd0\xdf\x8f\ \xfe\xfe~z\xb4\xad\xad~e6\x8d\n\x84\t\xdc\x0c\xf4Hd\xfa\x0f\x05\xbfx\ \xf1\xe2\n\xcb\xb2\x12(\xe3\xe9\xba\xce\xdc\xb9s\x11B\x8c\x81.&\xe1\xba.\xba\ \xaec\x18F\xb7\xae\xeb\x0fl\xde\xbc\xf9X\xf1zW\xccB\x02\x11\xd2\x11\xab+1\ \x8fL#<\x1aF{\x1fH\tD\xa7@\xfc\xa3@\x84?)\x01\xcb\xb2\x1a\x85\x10\xe9\xc6\ \xc6\xc6\xde\xf9\xf3\xe7\xd3\xd0\xd0\xc0\xf1\xe3\xc7\xc9\xe7\xf3\x97\x80\x0f\ \xb2\x8f\xa6i\x18\x86\xf1F$\x12\x99\xf7a\xf0p\x05\x17\x12)1?fh?\x99\x102\xe7\ \x96\x19\x06aa\xf09J\xe9#/\xce\x92\x9d\xe9!\x9f\x04\xbe*\x10\xdf\x96\xc8\xc3\ \xd7K\xa0\xa5\xa5\xe5.\xc7qJ5M\xab\xbc\xf3\xce;\xe9\xef\xef\'\x95J\xd1\xdd\ \xddM]]\xdd%Ak\x9a\xa6\x17\n\x85\xd6>\xf7\xdcs?\xfc\xa8\xf5.! \xfa\xc5\x1d\ \x11!~[\x15\xd2C!O\xa0\x9b\x02\xdd\xd4\x08\xe9:\rT0\x9d\n\xde\xe3"CXs\x80\ \x83\x02\xb1\x0eh\x95H\xf7\xe3\x80\xbf\xfc\xf2\xcb\xe5\x96e\xbd\x18\x0e\x87\ \xef\x9f9s&---\xec\xd9\xb3\x87S\xa7N\x01\x04\xb9\xbe\xe0y\x9e!\x84\xc04\xcd\ \x8b\x86a|k\xcb\x96-{\xae\xb6\xeeX\x0c\x08\x84\xa6\x9d\xe6\xddjC\xbb%b\xea\ \x94\x86t"\xa6I\xa9i\x106C\x84\x8d\x10!aRB\x88\x1eF\xf9=\x17\xb0(\x00\xfc\ \x06\xf8k\x89\xec\xfd\xa8\x9b\xec\xdc\xb9\xf36\xdb\xb6w\xe7\xf3\xf9\x9b\x9a\ \x9a\x9a\xa8\xaa\xaab\xf7\xee\xdd$\x93I\x06\x06\x06H$\x12\xd2q\x1cYSSs\xdc4\ \xcd\xdb\x84\x10\xef\x84\xc3\xe1\xfb7n\xdc\xd8\xfdq\x86\x19\x8f\x81N~\xe8e\ \xb8%\x95\x95\xb8\x96DZ@^\x82\x05"/\x10\xb6@wu\x0ct\xe60\x91\x87\xf8<\xd3\ \xa8\x04\xb8\x1b8&\x10_\xbe\xd2\r^}\xf5\xd5yR\xcaC\xc0M\xb7\xdez+\x89D\x82\ \xd7_\x7f\x9d\x8b\x17/\xd2\xd7\xd7\xc7\xd0\xd0P\xb6\xaf\xafo@J\xa9I)]\xc30^4\ Ms\xe1\xb5\x80\x87b\x17\x1a\xe5>\x1c\xb0\x0b\x92\x81\x82\x8b\xeej\x84\xa5\ \xc4\xf3\xfc\x92.$h\x9e@3u\x0c\xdd\xa0D\x84y\x90f\xde\xe2,\xbf\xa5\xb3F"\xf7\ \x08\xc4z`\xa5D\x16\x82eu]\xbf\xdbu\xdd\xb2x<\xce\xc9\x93\'q\x1c\x07\x80T*E:\ \x9d~7\x93\xc9\xe4\xa4\x94\x0b\x84\x10\xa3R\xca\xcd\x9b6m\xfa\xe7k\x01~\xb9\ \x029\x1a\xb0\x81<\x14r\x92\xf3i\x9b\x0f2\x0e^\xdeSC"m\x89\xc8\x83p4tO\xc7\ \xa4\x84{\xb9\x9do\xd3B\x94\xb0\x00\x9e\x00\x0e\x08\xc4\xb4`YKXG\x84\x10\xa4\ \xd3i4M\x0b\xb2\n\xb3f\xcd\x92---;\xf6\xee\xdd\xbb\xb0\xbc\xbc|\xd2\xe4\xc9\ \x93\xab^x\xe1\x85\xeb\x02\x0f*\x06\xc4\xef\xc5\x14F\xe8\xf3g\x14-\x1d0aB\ \xc4dvY9e\xa10Q3B4\x14!bF)5J\x89\x18eD\xf4RJ\x88\x90\xc1\xe5\'\xbcI\x17\x17\ \x00.\x02\x7f+\x91\xbb\x01\xb6\xbc\xb1\xe5\xa8\xcc\xcb\xe6\xf2T\xf9e\x15\xd6\ 0\x8c\x97\x8e\x1d;\xb6l\xdb\xb6mc\xaa\xc9\xeb\xe8\xf1}\x05^c\x00A\x8e\x02\ \x04*`\x019\x18J;\xbc3\x9cb4g\xe3\xd8\x05\ny\x177_\xc0s\xd8p\xd093\xe5\x0c\x86a\x14\x8f\xe9555\ \x076m\xda\xf4\x97\\\xc7>e\\\x81\xb7\xc5,\xd2\xfc79\xca\xb0\x81\x82\xb2\x81`\ ,\x1e(\xf1?\'\x97\x95rO\xf5t\xaaJ*\x88\x86b\xc4\xcc\n\xa2F\x9c\xa8QIL\xaf!\ \xaaW\x13e"\'8\xc5j~\xc4\x08\xaa\x85\xca\xb1\x95\x87X\xf3\xf8\xfc\xc7\xe7e\ \xbe\x98\xd9\x11\xb3b\x95\x8d\xe7\x1b\x19\xc3 \x04B\x08\xc7u\xdd\'\x97.]\xfa\ c\xc0\x93Rz\xd7\xa6@3\xa7\x89\xf2]\x0c$\xba:#\x01G)\x91\x03\xb2\xfe\xe7\x85\ \x91,\xaf\xf5wp6\x93 gg\xc8\xda\x19rN\x9a\\a\x84\xac\x9b$\xeb&\x19\x95\t\xd2\ ^\x8a\xcf\rN\x85#\xc0\x01\xa0\x87G\xd8\xce\x7fn,\xdbhu\xb5v\xdd\x17\xc9E\xda\ OM=\x85n\xeacJTWW\x9b\xf1x|\xc3\xce\x9d;7=\xfc\xf0\xc3\xfa5)\xa0\x82F\x00!\ \xde\xe29R|\x87\xbc\x02\xee(5P*\x84\x94\x12!\x10aAS\xe5$\xee\x8a\xcf"\x16\ \xaa j\xc6\x88\x9aq\x8e\xd1\xc3/\xdf\xfb\r\xf5\xc7n\xe2\x81\xe9\x0f0\xafj\ \x1eS\xf4)$\xb2\t:s\x9d\xbc)\xdf\xf4\xf6\x8c\xecY\x1f\xff\xbb\xf8\xaf\x96o\\\ \xfe\x03m\x92\xf6\x177\xe7o\xa6\xbe\xbe\x9e\\.G__\x1f\xae\xeb\x92\xc9d\xbe\ \xb5l\xd9\xb2\x9f^-\x0e\x02\x02\xbar\x94(\x10\xe1W\xacD\xe7\x11\xf2\xe8X\xf8\ \xf1`\xab\x7f\x84\xd4\x08+"%0\xa1,\xca\x97k\xe62%2\x91\x13\xf6 {\xf7\xff\x0f\ \x8fU>\xc67\xeb\xbf\xc9\xd0\xc0\x10\xc5\xf7\x97R\x82\x94\\\x94\x17Y\xd1\xbfr\ \xd7\xb4\x17\xa7\xbd\xb2z\xf5\xea\xed3g\xce\x8c\r\x0f\x0f\xd3\xd5\xd5E&\x93\ \xa1\xb7\xb7\x97\\.\xf7l[[\xdb?p\x95\x80.&`\x00\xe5@\x04\x88\xf2$_\xe2^~D\ \x9e8\x96R#\xaf\xdc\xaa\xe4\xf2aF4\x1a\xca\'r\xfc\xd8\x05\x9e\x9f\xbe\x9d\ \x06\xb7\x81l6\x8b\xe7y\x0c\x0e\x0e280\x80\xe7yT\xd7\xd40y\xf2d\x90\x12\x0f\ \x8f\xc9S\xa6\xd8\xb3f\xcc\n\x9d?\x7f\x9e3g\xce044Doo/}}}\xb6\x10\xe2\x81\ \xad[\xb7\xeeS\x04\xae\x18\x0f\x01\x81 a\xc6\xc6\x08\xc0$\x1a\xa8e=k\xd0\x99\ 3F \xaf\x96\x0b]\x81H\x0e\xbe\x92\xf8\n\xabf\xaf"\x91H0\x9aN\xf3\xeb\x03\x07\ \x88D"L\x9a8\x91h4J2\x95"\x95J1\xbf\xb9\x99;\x9a\x9b\xa9\xab\xab\xa3\xb3\xb3\ \x93\xee\xeenzzz\xe8\xed\xed\xa5\xbf\xbf\xdf\xca\xe7\xf3+v\xec\xd8\xf1S \x83\ \x9f\x17\xdd+)QL@\x03J\x15\x81\x080A\x11\x99\xc0&\x960\x83\xaf\x92G\x1f\x8b\ \x0b\xa9\x9c.4N\xc6\xd8\ \x92RJ\xd5\xd5\x16\x14\x99 \x9d\x85\x08\xeas\x8a(Kx\x9e\'\xf93\xee\xe3K\xdd\ \xd1n#o\xd8\x14\n\x05\xa2\xd1(\x85B\x81\x87\x96,\xe1\x9f\xb6n\xe5\xe8\xd1\ \xa3\xb4\xb4\xb4\x90L&\xb1,\x0b\xd34\xb1\xf2y\x00\x9c|~\xa4\xbd\xbd\xddR\xe0\ \xb2\xf8.\x14\xdcWc\xdc\x9d\x82\x9dJ\xf0[\\\xd3\xfb\x01\x95f\x8b\xab\xf5D\ \xfc\x9a1\r\xbf\xf8\xd5r\'Sy\x8ao,\xbc\xb00\xbe,\xb3\x14\xc7q\xfcV\x19\x90A1\ \x1b\x1c\xc4\xb6m\xfa\xfa\xfa\xa8\x9b:\x95\xcax\x9c\xba\xba:\x0e\xfd\xeew\ \xbfx\xe5\x95W\xf6)#\r0\xdey\x05\x01\x1d(\x12\xb8u\x16?\xa83\xd7\xfc\x82C\ \x91\x10\x8cuB\x84\xf1\x1f\x85\x97\x8f\x11\t3\x95\xcd<\xb8\xa2t\xc5\xacI\x03\ \x13\xc7z}\xa1i\xe8\x9a\x86\xe7y$\x12\t\xd2\xa3\xa3$\x87\x87)\x8b\xc5\x08\ \x85B=\x1b6l\xd8\x82\x1fk\x01\x01K}\x0fv\'\x81;\x05\xc0\xd3\xa8\xbap=\xef\ \x07\x8akE`\x85$\xfe\xf6\xf1\x03\xe0\x03,.\xb2\x8c\x9f\xad;\xb8\xee\xb5\xf7+\ \xdf\xf7<\xcf\x0b\x9e\xe9\xfb\xa9U\xd7)\xaf\xa8 \x14\nQQQA.\x9b\xed\x7f\xe9\ \xa5\x97\xde\xc0\x0fJ\x83\xf1-T\xd0\x0fk\nx\x90F\x8b[L\xbf\x1e\\\xef+\xa6\ \xa2\xce\xb5X\x8dj|\x97\xba\x03\xa8\x00b\x98L\xbe\xed\x07\xb7}qQ\xf5\xa2\x9b\ \xcbre:\xaer\')\xc9\xe6\xb2\xd9\xc3o\x1d~o\xdf\xbe}\xef\xe0\xbb\xcb\x90\xb2j\ \x1a\x18\xc4W \xa9@\x07\x95\xd8V\xd7\x06U\xd9\x03\xe4\'~G\xa6\x88\x04\x96+\ \xc3\xcf\x10\xb5\xf8.U\x01\xd4\xe1\xc7Ki(\x142f\xcc\x981!\x16\x8bE:::\x86Tj\ \x15\xf8\xd6\x14\xf8n\x93V`\x07\xf0\xd5\x1dV\xe7\xd3\xf8\x01\x1d(\x1f\xb8\ \x93\x94R~r\x02\x8aD s\x90\xd6\x02%b\x8a\x8c\xdf\x9e\xfbGP\x9cLu\xdeP\xa0\ \xb2\xc0\x85"\x02\t|K\xa7\x18w\x9b #\x0511\xf6\xe4\xe2SyKY\x94\xa5\x8a\x03\ \xbc\x92\xb1M(\x1e0\x89\xf1\x9c^\xc9x:\xce)\x02\xa3\xea{`\xf9Q\xc6\xfd\xdfS\ \xa0\xaf\xdcN\x7f\n\x04\x82\x98\x08\xf6\x15&\xbe\xf5M5\xe7)0A\x90\x96+\x02\ \xae\x02\x9bd<8\x037A\xfd\xef\xaaO\'>\x9574E\xcd \x8c\xa7\xbd\xa0\xe1\x16\ \x8c\xcb\x1f\x90\xb4\xd5\xbd\x83\x82\x95a\xdc\xd2\xc1\xe3\x84\x8f}\xa4\x02\ \xffG/\xba?\x94\xa9@\xf9mp\x9aqb\xe0\xabd3N2p\x97k\x02\xf6\xbfa<\xa3\xf6Eq~\ \xab\x00\x00\x00\x00IEND\xaeB`\x82\x14\xe2is' phatch-0.2.7/phatch/actions/blender.py0000644000000000000000000007567011346363116017644 0ustar rootroot00000000000000# -*- coding: utf-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is from Blender (copyrighted property of NaN Holding B.V) # (http://www.blender.org/blenderorg/blender-foundation/logo/). # Follows PEP8 import os import re import shutil import tempfile from core import models from core.config import PATHS from lib import system from lib.reverse_translation import _t BLENDER_VERSIONS = ['2.45', '2.46', '2.47', '2.48', '2.49'] RE_BLENDER_VERSION = re.compile('|'.join([x.replace('.', '[.]') for x in BLENDER_VERSIONS])) BLENDER_VERSIONS = ', '.join(BLENDER_VERSIONS) COMMAND = \ """%%(blender)s -b %%(blend)s -P %%(runner)s -- \ input_image_1:%%(filein)s render_path:file_out.png \ script:%%(script)s script_path:%%(script_path)s \ render_width:%%(render_width)s render_height:%%(render_height)s \ image_size:%%(image_size)s \ object:%%(object)s \ amount_of_input_images:%%(amount_of_input_images)s \ input_image_2:%%(input_image_2)s \ %s \ gradient_top:%%(gradient_top)s \ gradient_bottom:%%(gradient_bottom)s \ alpha:%%(alpha)s \ stars:%%(stars)s stars_color:%%(stars_color)s \ mist:%%(mist)s \ use_floor:%%(use_floor)s floor_color:%%(floor_color)s \ floor_reflection:%%(floor_reflection)s \ floor_opacity:%%(floor_opacity)s \ camera_lens_angle:%%(camera_lens_angle)s \ camera_distance:%%(camera_distance)s \ rotation_x:%%(camera_roll)s rotation_y:%%(camera_vertical_rotation)s \ rotation_z:%%(camera_horizontal_rotation)s""" FIT_IMAGE = _t('Fit Image') LETTERBOX = _t('Letterbox') SCALE_IMAGE = _t('Scale Image') SCALE_MODEL = _t('Scale Model') SIZE_CHOICES = (FIT_IMAGE, LETTERBOX, SCALE_IMAGE, SCALE_MODEL) # TODO: add arg generators to all classes!!! class BlenderObject(object): image_size_choices = () extra_options = () def get_name(self): return self.__class__.__name__ name = property(get_name) def interface(self, action, fields): pass def get_relevant(self, action): return [] def set_args(self, action, values): # XXX: hack to set valid value to to image_size if len(self.image_size_choices) == 1: values['image_size'] = self.image_size_choices[0] def get_command(self, values): arg_str = '' for extra_option in self.extra_options: delim_name = extra_option.lower().replace(' ', '_') arg_str += delim_name + ':%(' + delim_name + ')s ' # Add "'s as otherwise args get parsed as separate for k, v in values.items(): if isinstance(v, str) and len(v.split()) > 1: values[k] = system.fix_quotes(v) # XXX: hack for image size (code above should catch this!!!) image_size = values['image_size'] if len(image_size.split()) > 1: values['image_size'] = system.fix_quotes(image_size) return COMMAND % arg_str % values class Book(BlenderObject): image_size_choices = (SCALE_IMAGE, ) extra_options = ('Cover Color', 'Page Mapping', 'Left Page') def interface(self, action, fields): mapping_choices = (_t('Wrap Both'), _t('Separate')) fields[_t('Cover Color')] = action.ColorField('#FFFFFF') fields[_t('Page Mapping')] = action.ChoiceField(mapping_choices[0], choices=mapping_choices) fields[_t('Left Page')] = action.EmptyFileField(' ') def get_relevant(self, action): ret = ['Cover Color', 'Page Mapping', ] page_mapping = action.get_field_string('Page Mapping') if page_mapping == 'Separate': ret.append('Left Page') return ret def set_args(self, action, values): super(Book, self).set_args(action, values) values['amount_of_input_images'] += 1 page_mapping = action.get_field_string('Page Mapping') if page_mapping == 'Separate': values['input_image_2'] = action.get_field_string('Left Page') class Box(BlenderObject): image_size_choices = SIZE_CHOICES extra_options = ('Box Color', 'Box Depth') def interface(self, action, fields): fields[_t('Box Color')] = action.ColorField('#FFFFFF') fields[_t('Box Depth')] = action.PixelField('30%') def get_relevant(self, action): return ['Box Color', 'Box Depth'] class Can(BlenderObject): image_size_choices = (SCALE_IMAGE, ) class Cd(BlenderObject): image_size_choices = (FIT_IMAGE, LETTERBOX, SCALE_IMAGE, ) extra_options = ('Lid Rotation', ) def interface(self, action, fields): fields[_t('Lid Rotation')] = action.SliderField(0, 0, 300) def get_relevant(self, action): return ['Lid Rotation', ] class Lcd(BlenderObject): image_size_choices = SIZE_CHOICES class Sphere(BlenderObject): image_size_choices = (SCALE_IMAGE, ) class BlenderObjects(list): def __init__(self): self.extend([Book(), Box(), Can(), Cd(), Lcd(), Sphere()]) def interface(self, action, fields): for object in self: object.interface(action, fields) def get_selected_object(self, action): object_name = action.get_field_string('Object') return self._find(object_name) def _find(self, name): for obj in self: if name == obj.name: return obj class Camera: def interface(self, action, fields): fields[_t('Camera')] = action.BlenderRotationField('Hori -30 Vert 0') fields[_t('Camera Horizontal Rotation')] = \ action.SliderField(30, -180, 180) fields[_t('Camera Vertical Rotation')] = action.SliderField(0, 0, 90) fields[_t('Camera Roll')] = action.SliderField(0, -90, 90) fields[_t('Camera Lens Angle')] = action.SliderField(51, 8, 172) # TODO: provide bigger range for distance with 0.5 or 0.25 steps? fields[_t('Camera Distance')] = action.SliderField(2, 0, 10) def get_relevant(self, action): ret = ['Camera'] camera_str = action.get_field_string('Camera') if camera_str == 'User': ret.extend(['Camera Horizontal Rotation', 'Camera Vertical Rotation', 'Camera Roll', 'Camera Lens Angle', 'Camera Distance']) else: split_rotation = camera_str.split() action.set_field_as_string_dirty('Camera Horizontal Rotation', split_rotation[1]) action.set_field_as_string_dirty('Camera Vertical Rotation', split_rotation[3]) # TODO: set camera roll, lens angle and distance to default values # used to generate previews! # Initial, not tested code. action.set_field_as_string_dirty('Camera Roll', '0') action.set_field_as_string_dirty('Camera Lens Angle', '51') action.set_field_as_string_dirty('Camera Distance', '2') return ret def set_args(self, action, values): filename = os.path.split(values['camera'])[1] filename_without_ext = filename.rsplit('.')[0] if filename_without_ext.lower() != 'user': split_filename = filename_without_ext.split('_') values['camera_horizontal_rotation'] = split_filename[1] values['camera_vertical_rotation'] = split_filename[3] class Floor: def interface(self, action, fields): fields[_t('Show Floor Options')] = action.BooleanField(False) fields[_t('Use Floor')] = action.BooleanField(True) fields[_t('Floor Color')] = action.ColorField('#11133A') fields[_t('Floor Reflection')] = action.SliderField(70, 0, 100) fields[_t('Floor Opacity')] = action.SliderField(100, 0, 100) def get_relevant(self, action): ret = ['Show Floor Options', ] if action.is_field_true('Show Floor Options'): ret.extend(['Use Floor']) if action.is_field_true('Use Floor'): ret.extend(['Floor Color', 'Floor Reflection', 'Floor Opacity']) return ret class Background: def interface(self, action, fields): fields[_t('Transparent Background')] = action.BooleanField(False) fields[_t('Show Background Options')] = action.BooleanField(False) fields[_t('Background')] = action.ChoiceField('Gradient', choices=(_t('Color'), _t('Gradient'), _t('Transparent'))) fields[_t('Background Color')] = action.ColorField('#11133A') fields[_t('Gradient Top')] = action.ColorField('#11133A') fields[_t('Gradient Bottom')] = action.ColorField('#5B86B5') fields[_t('Auto Crop')] = action.BooleanField(True) fields[_t('Stars')] = action.BooleanField(False) fields[_t('Stars Color')] = action.ColorField('#FFFFFF') fields[_t('Mist')] = action.BooleanField(False) def get_relevant(self, action): ret = ['Transparent Background', ] if action.is_field_true('Transparent Background'): ret.append('Auto Crop') else: ret.append('Show Background Options') if action.is_field_true('Show Background Options'): ret.append('Background') background = action.get_field_string('Background') if background == 'Color': ret.append('Background Color') elif background == 'Transparent': ret.extend(['Auto Crop']) else: ret.extend(['Gradient Top', 'Gradient Bottom']) if background != 'Transparent': ret.extend(['Stars', 'Mist']) if action.is_field_true('Stars'): ret.extend(['Stars Color']) return ret def set_args(self, action, values): if values['background'] == 'Color': values['gradient_top'] = values['background_color'] values['gradient_bottom'] = values['background_color'] values['alpha'] = values['background'] == 'Transparent' if values['transparent_background']: values['alpha'] = True values['use_floor'] = False class Action(models.Action): label = _t('Blender') author = 'Juho Vepsäläinen' email = 'bebraw@gmail.com' version = '0.4' tags = [_t('plugin')] __doc__ = _t('3D Objects') metadata = ['mode'] _objects = BlenderObjects() _background = Background() _floor = Floor() _camera = Camera() def init(self): global imtools from lib import imtools self.find_exe('blender') out, err = system.shell((self.exe, '-v')) if not RE_BLENDER_VERSION.search(out): raise Exception( _('Sorry, you have the wrong version of Blender installed.') + ' ' + _('Blender %s is required.') % BLENDER_VERSIONS) def interface(self, fields): fields[_t('Render Width')] = self.PixelField('800px') fields[_t('Render Height')] = self.PixelField('600px') fields[_t('Object')] = self.BlenderObjectField('Box') fields[_t('Image Size')] = self.ChoiceField(SIZE_CHOICES[0], choices=SIZE_CHOICES) self._objects.interface(self, fields) self._camera.interface(self, fields) self._background.interface(self, fields) self._floor.interface(self, fields) def get_relevant_field_labels(self): """If this method is present, Phatch will only show relevant options. :returns: list of the field labels which are relevant :rtype: list of strings .. note:: It is very important that the list of labels has EXACTLY the same order as defined in the interface method. """ relevant = ['Render Width', 'Render Height', 'Object', 'Image Size'] image_size = self._get_field('Image Size') # mark as dirty so it gets updated image_size.dirty = True selected_object = self._objects.get_selected_object(self) relevant.extend(selected_object.get_relevant(self)) image_size.set_choices(selected_object.image_size_choices) relevant.extend(self._camera.get_relevant(self)) relevant.extend(self._background.get_relevant(self)) relevant.extend(self._floor.get_relevant(self)) camera = self._get_field('Camera') camera.selected_object = self.get_field_string('Object') # important the dialog title should change for every object # otherwise same dialog is used camera.dialog = _('Select Rotation for %s') % _( camera.selected_object) camera.init_dictionary() return relevant def apply(self, photo, setting, cache): info = photo.info w, h = info['size'] values = self.values(info, pixel_fields={ 'Render Width': w, 'Render Height': h, 'Box Depth': h, }) mode = info['mode'] if mode in ('RGBA', 'LA') or mode == 'P' and 'transparency' in info: values['filein'] = 'file_in.png' mode = 'RGBA' else: values['filein'] = 'file_in.bmp' mode = 'RGB' command = self.construct_command(values) #we need to create our temp folder explicitly as #blender renders to a folder and not to a filename output_dir = tempfile.mkdtemp() output_filename = os.path.join(output_dir, '0001.png') photo.call(command, output_filename=output_filename, mode=mode) #remove temp folder (should be done by same process) shutil.rmtree(output_dir) if self.get_field('Auto Crop', info): layer = photo.get_layer() layer.image = imtools.auto_crop(layer.image) return photo def construct_command(self, values): blender_path = PATHS['PHATCH_BLENDER_PATH'] values['amount_of_input_images'] = 1 values['input_image_2'] = '' selected_object = self._objects.get_selected_object(self) values['object'] = selected_object.name selected_object.set_args(self, values) values['blend'] = os.path.join(blender_path, selected_object.name.lower() + '.blend') values['blender'] = self.exe['blender'] values['runner'] = os.path.join(blender_path, 'runner.py') # TODO: get rid of values['script'] = 'box'. It should not be needed! values['script'] = 'box' values['script_path'] = os.path.join(blender_path, 'object.py') self._background.set_args(self, values) self._camera.set_args(self, values) return selected_object.get_command(values) icon = \ 'x\xda\x01s\x15\x8c\xea\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x15*IDATh\x81\xcd\x99i\x94U\xd5\xb5\xef\x7fk\xed\xeet\ u\xaa\xa3\x8a\xaa\xa2\xef\x8aN\x04\x81\x00*Q\x11PA\xa37*$\x1a\xf5\x8a\r*b\ \x13\x13\xaf\xc6\xa1\xd1\x98\x80]\x8c1\x08\x1a1F\xa2Q\x94\x90`\xc4\x0e\x94\ \xc4&\x8a\x18\x1aQ\x1aQ(\x04\n\xaa\xa8\xfe\xb4\xfb\x9c\xdd\xcc\xf7\x01\xdf{F\ \xf1\x8d\x971H\xee\xfd\x7f\xd9k\xac1\xf6\x9c\xf3\xbf\xd7\x9cs\xcf5\xa7\xc1\ \x11\x80,\x87;fa\xde\x1d[i\x06\xeb\x7f/w\xf7\xd8\xafgO\xef\xa5\x8f^v\x8e\x9a\ T\xb9\xd3Y\xfb\xf8\xbb\xca\xec{\x87\x9aY\xe7\x1a\x9b\x17kv\r>Wm^\xb5V\x8e\ \x84\xee#\x82\xb2k_V%\xb7\xfd\xc5\x82\x0f\xe9Xg\xe9\x8e\xabq\xe4\x05L\xd9\ \x891s\xef8\x8d\x88BD3n\xa5\x01\x135\x80\xfc\xcf1\x9fC\xd6t\x1e\xd0\xa9\xc5\ \x96\x11\x88\xa1\x10\x01\x11e[\xfd\xad\x8c\x16C&T\xd8+O\'\xf2\\z\x94\xbeW"v\ \x8b\x10\xf9\xef6\xf9\x1fq\xcb\'\x9c\x7f\xd9\xa9v\xe7/\xb0\x10A\xb7\x14\xa2\ \x88\x18\xf3\xe5C\xcd\x0f~\x11\xef5\xa9\xfb!\x83_\x12s\xeawD\xc9\x8cg\xec#\ \xa5\xda<"R\xbaUr\xd2\xdc:\xaft\x1d\x06\xa3\xe7F\xc2\r\x0f\xb9\xf7\x1do\xd5f\ C\x7f\xe2U\xae\xaa\xb7\x95D\xfc\xa1li\x9f>\xfa\x85g\xd8\x98\x01\xf1\xe1\xbc#\ \xa2Z\x1f\t!\x95\xd7\x94\xb3\xf2\x19\xcc\xb5v?d\xc31n\xd5\xf0A%\x07\xf2\xfe\ \xf4\xa1I&-:Z\xaa\x7f9\ngj-\x13J\x8f\xdexe\xaf)\xf4\xe9)w\x1d\xd2;L\xc8\x12C\ \x00\x01\xf8\xaf\x7f>0\x8e\x08\x81\xd6\x1b\x14\xdf\x1cP\xad\x8e=n\x97A\xfe2\ \xa7\xa5\xc9M\xd4D\x19;s\x18\xc7\xed\xcdqtk\x8e\xee\xe3\xaai\xfb\xe1p\xfa\ \xcd\x0f\xb9\xb1\xb1\xffK\xc7T\xacX\x13]\xfb\xfdi\xce\xa0\x8f\xb2\xc6C\xbf\ \xedi\x8dx\xa5\xc1\xbe\xe7\xf4\x1f\xfe\xd3\xaeud\\h28\x03\xb2!%\xc0F\xd4\xf8\ \x9a}\xbe\x1b\x10oLQV^\x81U\xf4\xa8\xb3|\xc6W\xb8\xfc\xf1[\x95\xf8\xeb\xac\ \xb7\xe7\xcc\xbfy\xeak\x13\xde\xdc\xb2\xf4\xc7wwO^sOs\xfe\x8f\x9f\r3\xbf=`[\ \xfe\xa6\x7fR\xb5:"\x04\xda\x04\xe2\x18\x1f;\xf5a\xfdS\x9f\x94\xa8\x8c\x04\ \xdc\xd0m\xea\xb9u\xedg\xddq\x9c\x8c\xed\x91 \x91i\xe7\x80e\x11\xcf\x15Y\xd3\ Cq\xe0\xddv\xfa.\xdb\xce\xa7\x8f\xec\xbd\xe3\x91\x80\xdb]P\xa1\xb5\x1b\r/M\xf4gN.\ \xe3\x12\xc09E\x95+\x90C?\xc8v\x91\xd4&Gq\xff\xe7\x19J\x04>\x14X(\xc8\x07_\ \xc3N\x04nz\xea<{F\xc5\xd3\xf2\x8d\x8b\'\x97\xfc\xe7\x84\xfd\'\x0fM5\xf6(\ \xb4\x9b\xa1\x17u\x15(\x11\r\xa1\xfe\xfcuK\x13QZ\xa1\xe3h;0B:)\xb6\x15\xdct\ \xb3\x99\xa7\xc4\xb7\xbcD\xa4\xac\xab\xa8J\xdc\\~\xe4\xa9\xf5t\xbb`\x14\xed\ \xe9\x00[\x85\x88\xd64\x19\xc2.\xe5\x12\xb4d\xe8\xf6\xf0;\xec}`K\xe92\xe8\ \xda;\xe1\x83\xd5\xe6y\xa5+\xcc\xaa\xd2\xce`\xd6\x15\xa3\xe4\xc5\xaa\x1b\xe5\ \xde\x87V\x84\xab^=\xdd\xe4T\xd3\xbbk\xa62\x0fO`\x01,\x9f\xfb\x86un\xe2\xac\ \xea\x87\xc7v\xdd>\xa9FFu\x8bP\xb4\x15A\x10PD#\xca$P\x8a\xc0P\x84\xca"(h\xfc\ b\x11\xdf\xb4\xf1\x94\x8d\x04.\x05<\xdc\xa8\x8d\xa9\x1cL\xb1I\xa7\n\x14U\x0c\ \x15\x8dc\x14;I%m$\xeb\xe1g]\xfc$\xe8\xb8\x89\x91U\x94,\xd9L\xf9\xf5\xabJ\ \x1e\x15Imd\xae\xa3\x13\x1b\x96\x9a\x999g\x8b?\x08\xf4+Jw\xb6;^\xe5\xf7\xf3\ \n\xd9\xf55\'0\x04\xd4\x94\x8f\x13?\xde:\xfc\x96\x1b\x87\xf8\x17\x86\xedlM\ \x17\x910N%1DkB\x0c\x02\x0cB1\t\xb4B\x0c\x08t\x80o\x84H\xa81L\x071-<\x0f\x9a\ \xd0(\xed\xe3\xaa<\xaem\xa0\x0c\x13[\xe2H\xdeGBM\xc16\xc8*M\xe0\x87\x18A@\ \xae\xbc\x14\xef\xaf\xeb9~aC\xed\xd2?\x0c\x9a\xff\x92\xfc\xf9\xe2\xbc*\x1c\ \xa7f\xbfy\t\xbf\xfe\xfd\xe5&\xe7\x11\xf6\xb9\xe0\\\xbdg\xeb\xb2\xe0\xeb\x03\ \xa4\xc7\xd5\xdd\x16\x8cx\xe4\xfe\xb9C\x82q\xbb\xf7\x93\xa9)\xa3\xb2\xcd\xa7\ 5f\xe1\xa0\t\xc5 D\x13*E\x88F\x0c\x13\x15:D=\x8dR!m\xe2\xd3\x12\xf8\xe4D(X\ \x11\xc4R\xa0=\x02\x17\x02\xadq\xf1Q(r\x96\xc6\xf7\x15\x96\xafA\x1b\xf8hTW\ \x81li\t\xb9\xc6]\xd4\xaf\xdc\x19o\xb8\xf5\xaf\xdf\\Z\xbf\xe9\xe5\x96\x1d;q\ \xf8v\xde\xdd57f\xf5\xbb\x00_\x9dvc\xf8\xf5\x04\xfa\xaf\x8a\xcdP\xa7\xddq\ \xcf\xe4pZ\x9f\x1abY\x85\x0e\x15\x99\xb8\xc2@\x11b|^\x01(\x04MP\xc8\xe3\xfa\ \x01\xbaDh\xf6\x8b\xa4R\nmFPv\x1b\x99\xacE>\xa5\xb0J-\x0cm\x121\x1d$(\xe2w\ \xb8\x14L\x85\xc4#\x88a\xe1b\x91\xb5\xf3\xd0\x9c\'0\x1d\xb2\x956Vs+\xb9\xd5;\ T\x9f\x03]\xb2d\xfb\xbb\x1b\xb7.\xfd\xcd s\xc3\xfe\x84\x7f\xcc\xc9(ev\xfa\ \x87\' \x1bx{\xc9\xcc\xd2\xe9\x17\xcb\xa0\x94\xed\x9f;\xad\xdfg\x03lC9Q_\x07\ \xf90\x14Q\xa0P\x04\xa6RZ\x02\xadC\xa2\xc7\xf7\xa2\xc7\x99c\xf8{\xdc J\x06U\ \xaaps\x01\x86D \x1e\x01\xaf\x08\xb1\x80O\xdd\x90\x0f\x1b\xb3\xecNT\xabB"\ \x10\xa9\xb0\xa8\xf4\x02U\x9f-JM1$j\x1b\xe4\xcbb\xa8\x82\x89\xd3\x91\xa3+\ \xa1\xb1q\x08\x1ex\x05\xe3\xd3\x03<\xfb\xbb]\xb2c\xc7\x07\xd3\xf5\xf4\xe3\ \xd6\xd2\xf9\xca>\xe3\xb0\x04\x0e>\t\xcf\x99Xs\xef<&\xc1\xbe\xd6\xde\xa4\xdb\ k!j\x11\xad\xd2HN\x1c\xb7S\x17b\xfd!\x92S\xa5\xde\x8e\xfaK\xebe\xe2\x0f\xc6a\ %\xe2\x04m\x1e\xe9r\x1b;\xf4\tl\xc1\xcc\x9b\x94\x12\xf0z`\xb0\xa2\xf6\xe7\ \xf5\xdbaG0cLoc\xd9\xe8i\xf2\xd0\xa3=e\xeeC\xb7\n\xd7(6]\xaf\xba\r\x10\xe9\ \xef\x96s\x92-T;\x01m\xc5\x88K?\xfb\x80\xa2\x12\x9d\xef}\x93,8aM,\ \x13x\xd6\x96\x83\x18k\xdc2\xedv\xef\'\xa1\xb7%\xbc|\x8a\x1d}\xe3\x81\xec\t\ \x0f\x9d.\x17\x0e\x1a\x8c\n\x8ad\rMEQh/\xb1I6\xe50K,\xeaZm~0d\x14o\xabf\xc9\ \x9e`\xbc\x11{c\xfaIJ\r\xa4\xeb\xd0I\x8b\xbe\x11\xe4^\x949\xb0\xa1o\xb8\xb7_\ \x83Q\xb8M%Z*\xf8n\xd0@]e\x15^S\x16)/\xa7\xe0\x15)H\x9e^S\x1e\xd1\xdb\xca\ \xd6\xd7?\xbd\xa6\xdf\xf6@}*_\x13\xc4\x1d!(\xa5\x83\xcd\xb6\xd2\xed\x81~\xea\ \xcdA\xe1\x85\xdf\xbfM\x86?\xf9\x07u\xdc1\xb7\xdb\x8b?\xb9\xc2\xf9\xce\xcf\ \xd7\xcd\xbc\xe5\x04\xe6\xf4\xefN\x97\xe9\x13t\x80\xe7(\xdc\x84I\xaf\xa6\x1c\ \xf9d\x84Z\xaf\xdc\xfeQ\xf5\xad\x85\xe7r+\x94\x11;Y4/\xbeb\xb2\xb5z\x10\x8d\ \x1bF\xa3\xca\xbaQL\xfbX\xba\x81\xd2\xd8\xe6\xd9\xc7lk\xfa\xf5E\xf3\x8a\x8aB\ \x13\x9d\xd8\xc1\x19\xc5\xab\xacFJT\r\x86\x9b&+ \xb5I\n\xbf\xff;\xbd\x7f\ \xb5\x89\xa7\xde;\x9d\x0f\xd4]\xa2\x0fO`\xb90\xd1\xdd\xa3\xdf\xaa\xef\xab\ \xaf^q\x94,\xfa\xd9f\x03\x08n{j6+g/\xee7c\x10\x97|k$\x93{\xf6\xc0\r\x84\x10\ \x97"\n\xa7\x10\x12\x8b\x1b\xa8 \xc4)O\xb2T\xdf)\xf3\xe5^\xe5\xa8\x9b(p\xf6}\ uDKo\xa0\xb2\xef\x08b\xb1\x04\xe2\xbb\x14\xb3\x19pB\x8a~H.\xb7Z\xc9\x89\xcb\ \xc3\'*[\x95\x88\xb8\x0f\xaa\xbat\x8e\x8b\xcb="\x07\x0c\x82\xa4G\xa1\xd3Gj\ \xa2\x94\xcfz\xcelh\x97\x01O\xbcr\xf6\xf6\xf0\xf0\xf7\x81\xb3\xa1\xe7\xf9\ \xefA\x97\xe8E\xd1\t\n\x08\xfepJ\xa2$\xbeh\xf1\t7L\xe4\xce\xeb\'pZ\xcf\x1a\ \x8a9\x8fb1\x87\xe0\x900\xc1q\x1ctZaa\xb3w]\xcf\x91\xbfa=\xf6\x83\x03\xceU%\ \x8fI\x15\xc9\x9a\'\xa8\xe85\x11\x82\x18\x1d\xbb\x9bq;;\tsE\x0c\xdf\xa4$a`x\ \'I\xf6\xc9[\xd5\x82\xfd\xe5\xd2\xa0\xe2\x91Ir\xd0\xf3\xcc\xf5n\x82\xcax\x81\ t\xa81u\x15\xca\x0e\xc9L\xe9\xeb\xf7lK}\xdc\x8f\x9f(O\xbf\xbd\x01\x84\x15\ \x80\xc0j\x01Y\xc2\x92W\xce\xd4\xab\xdb&(\xfa \\Y\x1d\xd2\xe3\xb8\xd8\xfa\ \xa6\xec\x99%\x0e7\xcf\x18\xcc\xc8\x8e\x04y\xc7\'Z\xea\x11\xb1-\x9c\xb0HDA4\ \xe5\x93\xad)\xa1\xd47y\xe1;#\x1e\xef\x92\x19G\xeb1\xe7\xf4\xb0\xd3o\xff\xee\ \xe7\x84A\x1f\x9c\x84\x8f\x11\xc4(\xeb\xdd\x9b ^K\xa4\xae\x9aH\xdc$H\x19T\ \xd7D\x190v8[V\x9eQ\x18\x1fx\xaci\xb1$\xe6\xef\x0c:\xe8\x0c\x93t\x93\x04\x86\ \x9d%\xbe\xa7\x84pX\r1\xed\x95\xd7.\x90>\xa6^\xf5\xeaO\xcc\x9e/\x9dez\r\x83\ \x9c?V\x9eVb\xd3\xa2k\xbc\x06\xbb\xf5\xa1\x89\x92\x1a\xf8\xba\xe6{\x07\xfa>\ \xd8\xe7\xc3[\xce\x1f\xc6\xf5\x17\x8c\xa0gk\x81\xf62\x9f\x98\x1b\x92\xeb0P\ \x95\x16\xc9\xce\x10?\xb0\tJc\x94\xee\xf5h\xafN\xf3a\xcfc\xc7\x84\xdfn\xd8\ \xec}\xf3\xba)\xb5\xe4\xd3\xe3(\xads\xc8w|\x83 \x18B\xbec\x0c*7\x9e\\\xeb82]\ \xa3\x08t\r\x99l\x84LW\x16\xb7\xfa\xc4K\xae8\'\xc97\xa3\xc1#\x17\xd4\xed\xf5\ ,\xe2\xb6\x85\xe5\x85H\x85\x8f\x94f\xf1z\xd7\xe1\r\x91\x8e!\xd7\\\xb5\x1b}\ \xf3\xe3\xfd\xe5\xc1\xc6\x9e\xba\xfe\xfd\xc0\xe8v\xcc\xab\xee\x87\x93~ht\xfc\ pY\xf0\xc0\xed\x9fEK{_3\xf4\x85`\xc9/g\r\xcc\x9cUc\x12v\x84x\xb12z\xa5\x1d\ \x8a\x07]21\x8bhs\x17~w\x1b?\x84P\x14n\x99\x85y\xd0\xach\xfb\x1b\xa3Y\x81\n\ \x8cL\xba/\xda\xac\xa1\x98\xedE!\x05D"\xb8n\x08(4\x0e\xf9tw\xdc\xae\xa1\x18\ \xd2\x8bD\xb2\x0c\xed\xf5\xdc\x93\xe9\xad\x9f\x9a\xff\x17\xff\xa7\xb5\xfb\ \x0b(B#\xa4\xb7\xd6\xa0\xa2\x14]\x93HE\x14\xdf*\xa3\x1b\xcfZI\xfd\xe4\xab\ \xab\xacs"\x8d\xd2p\xe6.o\xdb}\xb3u\xfd_\x08\xbf{\xf3\xb6\xd27{\xab\xd3V\r\ \xdf\xbah\xfa\xe0`x\xda\xc3\xf7\xe3\xd8\xdd51\x95\xa1\xb9\x90\xc6\xe8\x15\ \xa1\xd4\xb4\xb0\x8d(\xd9t\x8cJ-\xf8\x01x\xb6\xc2\xde\x12/\xcf\xb2m\xbc\x12\ \x04)\xe4\x0c\xcc\xa8\x8de+\x94\x86l\x0e\x02S\xf0\x02\x85\'\n\'&\x88\x8e\xe3\ f\x07\xe0\xb9=\x88E\xed\x8f\x9c1\xc1\x9eW\x87[\x88(\xc7\xd6\xc5\x10z\xa0\xb0\ \x04\x14&\x96\x13%LTPN\xc6O\xea\xabv<\x1e\xaaw\xaf\t\xe5\x892+w\xe3\xc3\x0c\ \xea\xd6\xa3\xea\xc7\x8f]1\xe7\xae\x11\xdc0\xae\x07\xdd\xf6\xe6\xc8F+\x89\ \x1a@s\x8e\xce\x10b\xa5q\xfc\xc5\xef\x11\xd9\xdeJ\x90\xf4p\x8c\x80\x8c2Q\x98\ \x88\x1f"\xfd#\re\x0c]T\x84YZ\xc5\xfbo\xc6\xcde)d}0-\x82\\\x013\xaa\xf1\xc3\ \x00/\x08\xf1\x94&4B\x02m\x90\xc9V\xe0\x17\xf6w\x0e\x9b\x16\x9e\x98]\xed\x03\ \xe2J\x18\x0f4\xb6\xa1\x89\xe4\xc1\n\x1d\x0c\x02\xb4\xe3`a\xd68\xfa\xa3\xd3L\ \xafu\xc2"c\xdf\x15\x8e\xf7\xfd^\x93z]2\xa0\xf1\x8e[\x86\xb5\\QUE\xa5\'Pfb\ \xb6\xe4\xc8Y\x8a\x98\xd2\x849\xc8\xce_\x87\xf5\xb3\xad}vT\x9a\xc8\xc1.\xda\ \x13\x06\x11ea\x08\x18>d\xaa\xacp\x94`\xe8\xda[\xae\x92\xe0\xd1\x93\xf7\x91k\ y\x9aL\xda\xc2\x88\x06\x049\x07\xf1\x14*\x04m\x80_\x04\x14\x04\x02n\xce\xa6k\ \xe7\x8b\\T\x95\x99p\xedU\x11\xf9Ki\xf7\\\x81\xfe\xda\xa4\xa8!i\x9b\x10\x80\ \x81\xfby\x05f\x9f*z\xeb\xeb\xb6\xd5-\xe1\xfb\xdf\xf9\xc6\xb8\xf1K\x07\xbdy\ \xf7\xe5#\x99\xd2\x0c-\xe9\x08*\xf4\xc9K\x81\xb0\x16\xc2N\x9f\x8e\xa4E\xe5}\ \xaf\xd1~\xef\xfe\t\x8b\x06\x1bmks\n\'\xd9\x8d\x8a\x8e(\xbea\x00\x1a#4)P`\ \xe8\x9a\x0b\x13v\xc7\xbcqZ@\r\x9a}\xdb\xad$\xaa6\x92J\x05D\xcb|\xcc@0M\x85\ \xf6\x15\x96\x164\n\x8dGi\xf9\xa6\x99w\xdc\xf8B\xd5\x93w\x1a\xb9\x9fX\xd6\ \x8e\xbf\x87CkJp\xc2\x00\t\x03b\x8e\x83x!&!\xe2\x16\x81\x9e\xe3\x0b\xfa\xdc\ \x93\x8b\xfe\xa5\xd7\xd7N\xbb\xa7\xef\xca{N\x19\xc0Q6\x84\xe2\x13F=|\x95$\ \xe6z\x14\x8c\x08\xd1\x86,\xe6y/\xb2\xeeW\x9f\x94,\xfe\xc6\xce\xb5/\x7f6bDCg\ \x13-b\x92\x8c\xe6(z\x8a\xa2\xd6H$I"%\x1c{\xd4\xc0`L\x01\xc2\x1dO\x8c\x8a\ \xbd\x7ff\xb9W~lf\x1a"\x8fR\xb42\x14\x94\xa2hj\x02_!\xb6\xa2\xa0\xf7\x91\xeb\ \x9c?\xf6\xe2\xd3\xcezv\xb0\xca\x8c\xb9\xf0\xa0N<\x13/V\x85\x99\xb3\x8a\x11\ \x12: O\x04\x95\xd7D\xac\x0c\xc1\x01!\xbe\xf5\x83\xf8\xc1\x89\xbf\x9b\xd3\ \xa9\xe9=\xbe\xe7y\xe3\x9b\xae;\xb6\x9a\xaa\xae<\xe9\x8c\x8bW\x01\x96i\xe2\ \xa5R\x98\xdd\xab\x89\xbe\xba\x9b\xcc\xacw\xec\xbf\xbd\xf6Y\xddc\xd3\xbe\xd5\ {}\xb5KK\xf6\xcd\xe1;\xd6y4\x89\x89\x189R\x86\x89a\xf8\xb8V+\x9dV5\x15\xb9\ \x8a\xec\x8f\xe5\xa6h\x8f_\xfdmd\xd1\xdc\xd4I\xc7\xbd\xe7uq~\xea\xbf\x98\xec\ M\xa0\xba\xfbeX\xe9[)\x06\xb7\xe3\xb4~;\x16\xeb5\xe1\x86\xbf^v\xff\xdfG\xab\ \xb6R\x99\x17}E-\xcc\x85\xf9\x8e\xefI\x82\x13M\x83\x03\xe9$\x15\x96O\xd0\x91\ !W\x11!\xfa\xf1~J\x1b\xd4\xa0\xdd\x93j)\x9a\xd3"m\xc3\xc7U\xd3\xeb@\x1b\xfb\ \x12Ij\xa2\x112n\x81Z\xaf@\xa6g\x15\xd9G6\xa9\x969ow[S\x1f)\xae\xf6G\xcd\xda\ \xd5\xf7\xe6\xa1\x85\x9f-\xbf@\xf5\xb4\xbbu\xbcq\xa0l\xdf\xec\xa1\x9d\x03sB\ \xb5Y gE\x08\xa8 \x11)\x90\t=bM\xfd\xdd\xf9\xf3\xfc?\xff(~\x8c\xec\xcf=\xe0\ \xd8\xd6\xa4\xd06/W;Y\xee\xedTEB\x80S@/\x97\x8a\x88^\x902\xdc\x16\x1d\xbf\ \xf6\xd1\x85\xde\xa0\x07\xb9$\x15\xe3\x06\xd14\x16\xa0[NM\xbf\ \xfb\xdc\xe0\xd8\x0bFR\xde%\xd8e\x01\x9f\xb9=\xa864Y\x81@\x0b\xc4MD\x99\xf8\ \xa1M\xb4\xe0S\xf4|<<\x02+@\x99\x82\x91\r\x88\xf8!\x81S\xc4\x88\xdb\xb8\x9b\ \x1ah\xba\xf7y]\xb2\xec\xd3\xf0i=\xf5\xf4u\xe1\xe4\x95\xedr\x93\xf2\x01\xceP\ "_\xd7\xdc\x95x\x1c\xbc\xaf\xf6\x89\x0f{\x83\xbb=Q\xf4\xd3C.\xea\xfa\xc4\x8d\ v\xbe\xb2\xb6\xb9\xab\xa5\xd3)\x1f\\\xed9%\xb5\x94FZIK\xfe\xf36\x18\x88\x1b\ \x12\xe4\x8b\x10\xb8\x88\x19\x10\x98!\x86\xf2\x88\xe9"1<\xe2Q\x85\x15\x11\ \x8a\xcdi\xb2\x8f\xbd\x8ew\xf7\xaad\xeb\xeb\x07k\xff\xd0\xd3\x19\xfc^\x8f\ \x8f\xa7\xb4.\x9f{q\xb8\xea]\xccg\x07\x9e\x1f= 0]) new_height = sum([x for x in image.size[1], top, bottom if x >= 0]) # only need to do conversions when preserving transparency, or when # dealing with transparent overlays negative = [x for x in left, right, top, bottom if x < 0] if (negative and (opacity < 100)) or has_transparency(image): new_image = Image.new('RGBA', (new_width, new_height), color) else: new_image = Image.new('RGB', (new_width, new_height), color) # now for the masking component. The size of the mask needs to be the size # of the original image, and totally opaque. then we will have draw in # negative border values with an opacity scaled appropriately. # NOTE: the technique here is that rotating the image allows me to do # this with one simple draw operation, no need to add and subtract and # otherwise introduce geometry errors if negative: #draw transparent overlays mask = Image.new('L', image.size, 255) drawcolor = int(255 - (opacity / 100.0 * 255)) for val in left, top, right, bottom: if val < 0: mask_draw = ImageDraw.Draw(mask) mask_draw.rectangle((0, 0, abs(val), max(mask.size)), drawcolor) del mask_draw mask = mask.rotate(90) else: mask = None # negative paste position values mess with the result. left = max(left, 0) top = max(top, 0) paste(new_image, image, (left, top), mask) return new_image #---Phatch CHOICES = ['-25', '-10', '-5', '-1', '0', '1', '5', '10', '25'] class Action(models.Action): label = _t('Border') author = 'Erich' email = 'sophacles@gmail.com' init = staticmethod(init) pil = staticmethod(border) version = '0.2' tags = [_t('filter')] __doc__ = _t('Draw border inside or outside') def interface(self, fields): fields[_t('Method')] = self.ChoiceField(OPTIONS[0], choices=OPTIONS) fields[_t('Border Width')] = self.PixelField('1px', choices=CHOICES) fields[_t('Left')] = self.PixelField('0px', choices=CHOICES) fields[_t('Right')] = self.PixelField('0px', choices=CHOICES) fields[_t('Top')] = self.PixelField('0px', choices=CHOICES) fields[_t('Bottom')] = self.PixelField('0px', choices=CHOICES) fields[_t('Color')] = self.ColorField('#000000') fields[_t('Opacity')] = self.SliderField(100, 1, 100) def values(self, info): #pixel fields width, height = info['size'] # pass absolute reference for relative pixel values such as % return super(Action, self).values(info, pixel_fields={ 'Border Width': (width + height) / 2, 'Left': width, 'Right': width, 'Top': height, 'Bottom': height, }) def get_relevant_field_labels(self): """If this method is present, Phatch will only show relevant fields. :returns: list of the field labels which are relevant :rtype: list of strings .. note:: It is very important that the list of labels has EXACTLY the same order as defined in the interface method. """ relevant = ['Method', 'Color', 'Opacity'] if self.get_field_string('Method') == OPTIONS[0]: relevant.append('Border Width') else: relevant.extend(['Left', 'Right', 'Top', 'Bottom']) return relevant icon = \ 'x\xda\x01x\x0b\x87\xf4\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0b/IDATh\x81\xd5Z{P\\\xd5\x1d\xfe\xce9\xf7\xb1\xcb\ \x1bj\x08\x8f4\x04\xa3`\x001I\x8d\x9aJ\xb5Uk\xd5\x8c3\xa6\x13m,31jm\x93\xb1\ \x86\xc4\x88\x99j\x0c:&\x8e\xd5i\x8d\xd5\xa0I\xad\xedt\xaaf$\xea\xb4jLL5\xc4\ (I\xb4\n\x02\x01B\x80\x04X\x96\xc0\x02\xbb\xc0\xb2\xaf\xbb\xf7\x9c\xfe\xb1\ \x0f\x96}\x10\x12H;\xfef\xee\xb0\xb3\xf7\x9es\xbf\xef\xfc\xbe\xdf\xe3\x9c\ \x85\x08!\xf0]6\xfa\xff\x060]\xfb\xce\x13\x90.\xf4\x0b\x08!$\xf0\xd1\xffW\ \x00\x80\x98!\xed\x92\x0b\x11\x03a\xa0i\xc8\x05\xf8\x08\xe8\x00\xf4\x99 1\ \xa3\x04\xfc\xc0\x03\x17\x03 \x87\\\xd2\xaaU\xab2\n\n\n\xf2\x93\x93\x933\xd7\ \xae]\xfb\x12\xceB\xe2\xb3m\xa5\xd7\t\xce+N\xf5Z\x9e\\]\xf9\xef\xc3\xd1\x9e\ \x991\t\xf9\xc1S\xff\x9c\n\x00\x03\x00\xe3\xfd\xf7\xdf\xbf\xb8\xa8\xa8\xe8\ \xe7\xa9\xa9\xa9\xb70\xc6f\t!\xa0i\xda\xc7\x00v\xc0\xe7\x89H\xe0[W\xe5\nx\ \x9f\x1b\xb4\x8e\xac\xe8\xe8\xee\x81\xd1\xa0\xd6\x03\xb80\x04B\x803?p#\x80\ \x84\xf2\xf2\xf2\xdb\x8a\x8a\x8a\xca\x0c\x06\xc3\xa5B\x08\x84^6\x9b\xed(\xc6\ c"h\xd5O\xdd\x95@\x98\xf4\x98\xc3\xe1\xde\xd8\xdemR\xeccNp\x08\xa8\\\x8eJtZ\ \x04B\xe4\x12\x90\x8a\x11@Bii\xe9\xe2\x1bo\xfb\xd1\xd6\xd4\xb8\xd9\x05\x9cs\ \x84\x83\xe7\x9cc``\xa0&|\xb6C[\xef^\xads<{\xba\xdb\x94\xde;0\x04\x08\x81\ \x85\x0b\xf2\xd0z\xaa\x0b\x02\xd0f\x8c@\x08p\xea\x07\xae\x02H())\x99\xb7\xea\ \xbe\xd2M\x99\xe9s\x96A\xf8b\x8b\x10\x12A\x00\x80c\xe7\xce\x9d\xb5\x008\x00T\ o\xfbe\x89\x10+_\xec=cY\xdci\xee\x83\xae\x8f/6\xa3>\'q.f\xc6\x03Qt\x1e\x9f\ \x96\x96\x96VQQ\xf1\xeb\xf9y\xb9k$\xa2\xa8\xa1+M\x08\x81[\x17h\xb3\x0b\\\x96\ \xe8\xfb\xce\xedv\xb7\xf7\xf5\xf5\xb9w\x97\xdf173)\xfe\x99A\xab\xed\xae\x8en\ 3\x9c.w\xcc\xf7r\xc1\xbd\xd3"\x10&\x97\x80\xce\x13\x1fy\xe4\x91\x1b\xae\xfbI\ \xc9S\xf1\x86\xc4\xecp\x99\xb8t\xa0vPG\x83\x95\xe3\xe2D\x8a\xc2\x14\nB\x08\ \xa0{N\xef\xdf\xf2\x8b\xc7\xb9\xe6YW\x7f\xa2M\xb5\x8d\x8cFy!\xfc\xd5\xc2g\ \x82\x8b\xf3#\x10\x92\xcf\x99\xffY\x03\x80\x84\xeb\xaf\xbf>\xf7\xc1\xdf\xae\ \xd9\x9c\x91\x91}\xb3\xe0\x13%\xe2\xd08\x8e\xf4ih\x18\xd2\xe0\xe5\x80\xcc(\ \xf2R$P*\xa0XO\xc1\xd8q\xf4\x86.s\xef\xed\xbd\x96A 2\x83\x1e-\xce\xbfD9\xdev\ jq\xa8\x94\xf4\xf3\x91PXvQ\x01\xc4\xa9\xaa\x9a\xb2}\xfb\xf6UE\xc5\x05\x1b$\ \xaa\x189\xe7\x10d\x1c\xfc\xb7\x16\x17\xaaMN8\xbd\x02\x12%\x88S\x18\x14\x89!\ \x97\x0cBn9\x86\xdeS-\xe8\xea9\x13\xef\xd5#\xf0\xf4\x12!6=\xfe~\xf3?>{z\xe1\ \xc1\xf0\x9b\x82\x9eC\x10\xc7\xc8.\x89eeeKn_\xbelkJBZ^\x00p H\xfb\xc74\xec\ \xed\x18E\xf7\xa8\x06F\t\x8c\x8a\x04UbH%.\xfc\xd0q\x14c5u\xe8\xe8\xee\x89\ \xd0\xb9\x00<\x10\xf8#7\x90m\x15o\x1f\xb7\x03\x00\xb6\x96\x86\x80\xf1\x15o\ \xa1O\xd1\x03!\xe0\x83rY\xb4hQ\xd6\x93On)\xcf\x99\x97\xbb\x02\x024T\xe7\x1a\ \x07\xaa\xbbFp\xa4\xc7\x0e\x80\xc0 KP%\x8a8I`\x91\xb3\x01\xb9\xfd\xff\xc1\ \xa9\xaeNt\x0cG\xd19\xf0/B\xe9\xc3\x9b\xdfkh\x8f\x05\x8e2\x02\x10\x02\xae\ \xebS\x8e\x81\x00\xf8x\x00)\x95\x95\x95+\xae^\xba\xe4q\x83\x12\x97\x1c\x9e\ \x0e[\x06\x9d\xf8\xa0\xd5\x8aa\xb7\x17\xaa\xe4\x93\x8a*1\xe4{N\xa3\xf8\xcc\ \x11\xf4uu\xa0\xd62\x10!s.\xd0\xaeib\xdd\xd6}\xcd\x1fEo#\xc6\x1bd\xe2\xf7\ \x00\x07\xceN D\xf3\xea\xca\x95+\xe7m\xd8\xb0\xbe2-\xed{\xd7\x84\x17\xa3!\ \x87\x07\xef5\xf5\xa3\xd9\xe2\x80*1$\xa8\nT\x89!K\x0c\xe2*\xebQ\xb8\xba\x9b\ \xd1`>\x03\xafw\xa2\xd7\x89\xa4@\x99\xb7\x18\xfb\xbfl\xbd\xed\x93\xcf?\xef\ \x88\x05\x882\x02\xe2/\xd2\x94\xfa%\xc4y\xcc~)\xdc\x03\x14\x80\xb2t\xe9\xd2\ \xe2\xf4\xf4\xd9\xd7\x04r\xb9\x10\x02^\x9d\xe3`\xc7 >>i\x01!\x04\t\x06\x19\ \xaa\xc4\x90B\\Xb\xff\x1aI=\xb5h3\xf5\xc0\xe9\x0c\xcf\xe7\x04Rf\x1e\x0c\xf3\ \xafBjz&\xe4&\xb3\'\x16\x18\x00\xa0\x84\x85\x0c\xa5 \xc4W\xf0\xa6B \xa8\x7f\ \x87\xc3!3\xc6\x82\xe0\xdb\x07\xecx\xa3\xd6\x84!\x87\x06U\x92\xa0H\x0c\x8a\ \xcc\x90\xc1\xad\xb8\xb6s\x0fNuv\xa23\x8a\xcem\x89\xf1\x18\x9a_\x88k\xe7\x96\ ##\x03)))HKK\x9b\xb4\xfd%l\\B\x94R\x9c\xadW\x8e\x16\x03\x84s\x0eJi\x90\xc0\ \x17\x9dV\xd8=\x1c\t\x06\x05\xaaD}\x04$\x86\x14\xb7\x06\x8b\xa5\x1f\xd60\xf0\ #\x92\x86}\xb3\xfa\xd1\x10?\x82\x92\xd4\x8b\xf0@A\x01dY\x06!\x04\x06\x83\x81\ !J#\x17\x04@Bb\x80\x12@\x90){ 8\xce\xeb\xf5\n\xdfd\x04\x84\x10\xc4\xab2\x12T\ \x19\x8a\xec\x0bT\x85Q\xc8\x94\x809#\xd3\xf3\xb1\xe4!\xecO\xb6@S\x05\xa0\x12\ \xb8\x88\x03\xf1\xf1\xf1\xc1\xcc\x95\x9f\x9f\x7f\x11\x00S,@\x94\x85\x061\x8b\ \xf5\xd8\xf8\xf3!\x9fE\xe0\xd2u}\x02k\x83,!\xc1\xa0 A\x95\x11/3(\xd0\xe1\xb6\ \xf6\xc1>\xd0\x1b1\xe1q\xd5\x0e\xcd |3\r\x03\xd6\xde~0\xc6@)\x05c\x0c\xd9\ \xd9\xd9\xd9\x98\xc4\x03\x94\xb0\xe0]B\t@&WQ\xd4J\x1c\xf0@\xc0\x8c\x8a\x84\ \x04U\x02\x83\x80\xc7n\xc3\xd8`?\xb8\xe6F\x8f\xab\x1a9\x11\x08\x00\x8c\x02p\ \x01\x8aPp\xeb\xe2e\x08\x8d\xa7\xd4\xd4\xd4\xac\xc9\x00Q6\xbe\xea\x94R@\x9c\ \x07\x01`b\xe4\x1b$\x06\x85\xe8\xb0\x9a;\xa19\xec\xd0\x85\x13{Gw!K\x8c\x02\ \xc8\x9b8r6\x00\'p\xdd\x9c\x1bQq\xcbf\xccM\xc9\x9aP\xb5SRR2\x80\xd8\xa0\xc6k\ i \x1e&\xdf\xf3F%\x10.!\xa3D\xa1B\xc0\xe9\xb2\xe0\x1b\xf7>|\xeb<\x04\xaf\xd0\ \x90\x15\x17\xb9\x98\x92K\xc6\xc6\xab\x1f\xc5CK\xd6 \xbc\xb5\x1e\x19\x19\xf9\ \xb0\xa9\xa9\xe9\xcd\xf0\x05\x9a@ \xc4\x03\x84R\x08B\xce\x9d@x\x854(\x0c}\ \xb4\x19\xbbG\xb6a\xd4i\xf5\xbd>\x91\xf8\xeau\x98\xfd\xed\xe6\xd7\x91\xb3`\ \xc9\x84\xe2\xe7r\xb9\xdakkk7\x97\x96\x96\xee\x03\xe0\x00\xc0cm\xe6)\x99X\ \x89\xc9$\xde\x8aE "\x88\x0f\xdb?\xc2\xcb\xe6M\xd0\xed^\xc0\x03\x1f\x01\x05@\ \x94=\x88*\xa9\xfe\x97\x13p\xce\xedmmm\xdb\xef\xb9\xe7\x9eWM&\xd3\x88\x7f\ \x84\x171@5U=\xa5\x80\xd1\xe4 \x19J\xce/\x06\xbc^\xef\x04\x02-\xc3\xb5\xd0\ \xed:\xe0\x84\x8f\x80\x00 \x03\xaa\xa4\xc4\x9a\x97\xf7\xf7\xf7\xbf[YY\xf9\ \xf4k\xaf\xbd\xd6\xe5\x07\xae\xc1\x7f\n\x11m\xf5\xebv\x95/\x93\x08^0\x9b\xcd\ \x97\x06z7B\x19\xc4\xf9d!\x84iT\xf1\xca\x80\x1dA\x02D\xa7\xb8)\xf7fl\xffi\ \x19\xbe\xfa\xfb\xb3\x13\x06\x8e\x0e\xdb\xda\xbfz\xff\xfd\xf5k\xd7\xae=:>\ \x02\xba\x1fw\x04\x98\xfaW\xd6\xe7\x13&\xbd`\x1f\x19\xbd\xb5\xfex\x13\x86\ \x86\x86\x82\xf7\x08\xa1g=\xb8\x8aJ@\xd3\xb4\t\x83\x14M\x02\xec\x00qRd\xcbs\ \xb0\xf1\xc7\x1b\xf0\x83\xc2\xc5\xa0\xc4\x151\xb6\xea\xc5\x8aG+\x0f\x9e<\xe4\ \x07\xeeE\x0c\xbd\x1f{i]\x92QV\xb6xt\xb1\xae\xb9\xa9Q\xee\xec\xee\x0e\n\xcbh\ 4\xa2\xb8\xf8r\xe8\x9c\xc3\xa3y&\xdd5N)\x06\x14]\xc6\x95i\xd7`E\xferd\xc4\ \xcd\x82$\xc5\x9e3\xc9\xc0\x02\xbe\xe2\x88\xba\xea\x84|\xfb\xea\xfa{\r\x8a\ \xf4L\xfb\xe9\xd3\xb3[O\x9e\x84\xa6\xf9$\xc3\x18C~\xde\xa5\xc8\xc9\x99\x87\ \xe3\xc7\x1b\x9d]\xdd&\x83 \xf8\x90K\xd2\x07S% \x80\xc8\x18\xf8\xcd\xa2\xfb\ \xa0\x16Ihll\x84\xa6i\xc1\x16c\xd46\xd4D\x08\nB\x9f5\xcaLC\x8c#\xc3\xda\x9d\ \x1b\x962l\xf8\x93e`\xf0\xca\xc6\xe6\x16\xd8\xed\xf6\xe0\xbd9s\xe6\xa0\xb0\ \xa8\x00\xdd]&\xbeo\xff\x01\x0e\xf0\x93B\xf0uO\xfc\xb3\xf9P\xcc\xd5\x8aB\xc0\ \xc7B\x88\t\x042\x12f\xc1j\xb5\xfa\x06H\x128\xe7\xfd555\xcf\xcd2\x1d23B\xdf\ \x0c}\x96R\x12\xb1\xea\xb5/?\x94E\x98\xfc{\xa7\xd3Yz\xbc\xf9\x04\xe9\xeb\xef\ \x0f\xdeKMI\xc1\x15\x0b\x8b\xe1t8Q}\xf0\x90\xdb\xa3y\xc68\xf8&\xbe\xa8\xf9\ \xf5\x8a\n1i#\x17\x8b\x80\xd0\xf5\xc8]7!\x04\x92$y\xccf\xf3\xee\x1d;v<\xd7\ \xd6\xd6f\xde\xbb\xe5\xee\x92\x01K\xec\xf3\x9c\xb6\x97\xd6\xa9v\x89<\xcc\x81\ \xcd\'[[\xe3:Nw\x82s\x1f&\x83\xc1\x80\xa2\xc2B$&%\xa2\xae\xaeN\xb3Y\x87\t\ \x07^\xe4\x9a{[\xc5\xde\x93#g\x03\x1e\x8b\x80\x00\xc0\x19c\x13P\x11B`\xb7\ \xdb\xf7WUU=\xbfg\xcf\x9eF\xf8\xba\x1d-)N\xf6\x0e\x90\xe8}Y\xdd\xcb\x0f\xdd\ \x01\xc6\xfe`\xea\xe9\xbd\xb8\xb9\xb5\x15n\xb7o\x1fC)E\xde%\x97 \'g.\x9aZZ\ \xc4W_\x7fM\x18c\x1f\x0bJ\xca\x9e\x98d\x7f|.\x04\xbcF\xa3q,\xf0\x85\xc3\xe18\ QSS\xb3e\xf5\xea\xd5\xd5\xf0U\xd1@v\x11\x94\xca\x82\x84\x11\xc8L\xbf(\xa7\ \xb6\xb2\xec\xc0\xf0\xa8\xfd\xa6\xc6\x96\x16\xd8l\xe3\x8b\x99\x9d\x95\x85\ \x82\x05\x97\xc1d6\xe3\xc0\'\x9frBH\x9b\x00Y\xf3\xd8\xbb\xf5\x11G)\xe7L@\x08\ !\x88\xaf\xef\xf0\xcc\x9e={\x84sn\xed\xea\xeaz~\xf9\xf2\xe5\x7f\xb5X,\x0e\ \x8cW\xd1`Z<\xf2\xc2\x1a\x84\x13\xc8HO\xffK]c\x13\xeb1\x9b\x83i199\tW\x14\ \x17\xc3\xe5t\xe2pM\r\xd7<\xda\x18\x17\xa4\\_\xd8\xf0\xe7\xa9\xe8|J\x04\xfc\ \xc6\x01h&\x93\xc9TUUu\xc5\xc6\x8d\x1b\x87\xe0+B^DI\x8b\x12\xfc={\x88\xd564\ \xb2\x00pUUQ\xb0 \x1f\xc9I\xc9\xa8oh\x106\xdb\x08\xa7\x12{\x85Jc\x9b\x7f\xf7\ v\xfb\xf0t\x80G%\xe0\xf7\x82\xbek\xd7\xaeQ\xf8j/\xe0\xdf\xe4Dm\xbe\x18\x03\ \xc2c@\xf8t>\xff\xe2\\\xe4\xcc\xfd>N\xb4\xb6\xa1\xb6\xae\x1e\xaa\xa2|\xa6\t\ \xf1\xab\x8a=um3\x01<*\x81\x00\t\x00"p.:\xd9O@LB\x84\x84233\xb0 ?\x1f\xe6\ \xde^\x1c\xac>,\xa8\xcc\xcc\x94\x89{\xcb\xabj\x0f\xcc$\xf0\x80\xc5,\xa9S\xfb\ \x01N\n\x9e\xe1$%&\xe2\xf2\xa2\x02\xb8\xdcn\x1c9z\x0c\x9a\xd7\xebb\x92\xb49\ \x17\xb5\xdb\xef|7\xf6\xd1\xe0tmZ?1I\xfe\xadbZj*\n\x0b.CcS3l\xd6a\x11\x17\ \x17\xf7\x96\x9b\xf3\x07+\xde\xf9\xc66S@cb\x98\xf6\x0c\x84\xc062\x82\xc3_\ \x1cABB\\\xbd\xacz\xef\xda\xf0\xd6\x97\'f\x00\xdb\x94lZ\x04\x18U\x04!D(\x8al\ \x93i\xe2\x03eo|\xf1\xceL\x01\x9b\xaaM\x8b@\xa1\xd9x\xa0\x89\x91\x9f\xe5\xf0\ o>\xbds\xf7\x85\xd3\xf9dvA~\xa9\xff_\xdaw\xfe\x9f=\xfe\x0b\xab\xec\x8a\xbc\ \x9biK\x93\x00\x00\x00\x00IEND\xaeB`\x82\xcd@\x83\xfb' phatch-0.2.7/phatch/actions/brightness.py0000644000000000000000000002540211346363116020365 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu). # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageColor, imtools import Image import ImageColor from lib import imtools def brightness(image, amount=50): """Adjust brightness from black to white - amount: -1(black) 0 (unchanged) 1(white) - repeat: how many times it should be repeated""" if amount == 0: return image image = imtools.convert_safe_mode(image) if amount < 0: #fade to black im = imtools.blend( image, Image.new(image.mode, image.size, 0), -amount / 100.0) else: #fade to white im = imtools.blend( image, Image.new(image.mode, image.size, ImageColor.getcolor('white', image.mode)), amount / 100.0) #fix image transparency mask if imtools.has_alpha(image): im.putalpha(imtools.get_alpha(image)) return im #---Phatch class Action(models.Action): label = _t('Brightness') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(brightness) version = '0.1' tags = [_t('color')] __doc__ = _t('Adjust brightness from black to white') def interface(self, fields): fields[_t('Amount')] = self.SliderField(50, -100, 100) icon = \ 'x\xda\x01p\x0b\x8f\xf4\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0b\'IDATh\x81\xd5\x99}\x8c\x9c\xc7]\xc7?3\xf3\xbc\ \xec\xcb\xbd\xda\xb7\xf7\xeas\xac\xe4\xe2:i\xac\x928mP\x9a\x94\xaa/$\xc4i*\ \x02\xe1\x0fT(\x12B\xa0\x12U\xc0\x1fH\xfcE\xfeF\x88\x7f\x88\x00\x81\x00\x11\ \x89R\x91\xa8\xa8\x8d\x94\xd4\x10\xd1\x04\x1a[\xads\x89\x82\x89]_\xec\xd4v.\ \xb6\xef\xf6\xeev\xf7nw\x9f\x97yf~\xfc\xb1\xe7\xf8JZ\xb8\xf3\xad\x83\x18ivfw\ \x9f\xe7\xf9}?\xf3\xfb\xfdffg\x95\x88\xf0\xff\xb9\x047\xf3\xe1\x9f~Y\x95\xb2\ \x8c\x83\n\xe2\x8aa\xe1\xa5\xcfI\xab\xdf6T?=p\xef\xbc\n\x83:_M\x12\x9eHR\x0e\ \xbb\x82J\x14\xc4h\x0c\x89\xed\xa2\ry\xa5\xc4\xf9r\x99o\x19\xc3\x9f\x1c\x7fH\ \x96wk\xb3o\x00\x0f|[}\xaa\xd9\xe6\x1f\xb4\xabN\x1f\x1a\xbd\x8b\xc9\xea>\xf6\ \xc4c\x94\x83*\x08d.\xa5\x91\xad\xb2\xd4\xbd\xca\x99\xd5\xff\xa0\xe3\x1b\x9d\ \xb1\x1a\xbfw\xfc\xf3\xf2\x97\xff\xa7\x00\xea)\xa5?~\x1f\x7f\x9e\xac\xc7\xbf\ \xfe\xb1\xb1\x8f\x9b[\x87?B)(\x11\xe8\x90HG\x04&\x04\x01\xeb-\xd6Yr\x97\x93;\ \xcb\xc5\xf5wxc\xe9\xfb\x98\x81\xf5WB\xc7/|\xff\xe7e\xf5C\x07\xb8\xff\x98\ \x1aow\xf8\x9e\xb3\xe1\x81\x07f>K\xad\x14\x80O\x7fGM4\x9b\xfc\x91\t`Oe\x0f^\xf7F\xdc\xab\ \x0c\xaf3\x9cNz\xe2u\x17\xa7\xbb\x14\xba\x8b7\xc9\xfb\x9f{\x95\xe1T\x86#\xc3\ \x933Z\x1eEkX[\xe3\x17\xef?\xa6\x1e\xd9\x89\x96\x1bZ\x076\xba|\xcd;\x06\xa3\ \x08\xfc\xa6p\xa7\x0b\xb42\x18mpZ\xa3\xb4F+\x85\xa0\xf0"\x88@\xa1=N<\x85\xf2\ 8\xe5p\xaa\xc0\xe1pd\x18\x03\xde\xa3\x1b-\xfe\x06\x98\xdc\xae\x96\x1d{\xe0\ \x91\x17U\xdci\xf3I\xadA+h\x17k\x14\xa4\x14*\xc5\xe9\x94B%x\x95\xe0t\x17g\ \xba\xf8\xa0W\x9d\xde\x0c%\x12\n\x95\xf4ZI)Hi\x15+\x98\xcd\xe7\xa5\t\x13\x0f\ \xfe\xb3\xfa\xdcv\xf5\xec\xd8\x03\xcd\x80/\x8b\'\xd6\x06\xb4\x06\xd1\x96\xd5\ \xfc=jA\r\x83A+\x8d2\xaa\xa7\xc6(@\xe1D\xf0\x02\xce\x0bVy\xacx,\x9e\\\x1c\ \x1b\xaeM\xd7\xb6P\xba\xf7<\xe7!I\xf9\r\xe0\xa5\x9b\x02`\xf3\xde\xe8\x0fU4b\ \x04\x94P\xcf/\x11F\x9e\xd1p\x04D\xa3D\xa3\x8dB\x1bp\n\xc4\xf7\x84Y%\x14\xca\ c\x95`\xbd\xa7\xe3\xba\\N/\x82\x16\xb4\x02\xb5\x19\x0fy\xc1G\xb7\xabg\xc7\ \x00\xce3e\x14\x8cT\xca\x94#\xc3Z\xba\x81ha\xd5-\xe2\xec\x06\xa3\xc1(\xa8\ \x08\xbc\x82\x00L\x00\xd6\x82U`\x11r/\xa4\xbe\xa0Q4i\xe6-D<\n\xe8\xbd\xf4JQ0\ z\xd3\x00\x10\xaa\x02T\x82\x12\x93\x03{\x18(E\\\\_\xa1\xb5\x04i\xa9\x85\x9dj\ 1\xa0+T\x88\x89\x8a\x80\xd6e\xc5\xa9\x93]\xee\xfb|\x85\xb4\xb0$E\xceF\xda%\ \xb3\xc2\xd2y\x18\x98\xdc\x14\xbfe=\xf5Bi\xbbrv\x9c\xc4A\xc0\xeb\x85\xeb\xf5\ k\xf1\x14\xb7\x0e\x1edj`\x88\xcbo\xc3\xc9\xe7ac\r\xba\xb6K+op\xe9j\x9d\x7fzf\ \x99\x8b?l\xf3\xf2\xb1e\xd6\xb3\x06]\xdb\xc1y\xe1\x9d\xd7\xe0\x07\xdf\x05\ \xefz!&\xf4Z\x80R\xcc\xdb\xdb\xd6\xb3S\x80\xd0\xf0\xbc\x08O&6\xa7\xa4\xab\ \xccV\xe7($\xe3\xed\xd9\xd7Y>/\xbc\xfa\x1c\xec\xbb\xa3\x97\xc3\x8bg\xe1\xa7>\ \x03\xb5[\xe0{\xcf\xc3+_\x87\xda\x01\xa8_\x84N\x13\x06k\xa0\x03(,x\x0f~\xd3\ \x0bQ\xcc\xbfmW\xcf\x8e=p\xfc\x04/)E\xbe\xd2Nh\x17mf\xca\x87\xb9c\xe8~\x0e\ \xdf6\x8e\x00\x9f\xf8"\x84%\x08+\xf0\xc0/\xc1\xd8\x81\x9e\xb0#\x8f\xc0\xadG \ Oa\xe6\xa301\x07#S\xe0\x1c\xb8\xa2\xe7\x89k\x00\x81\xe6\xd9\x9b\x06 O\x89\ \xafVy\xb5\xd1.\xb8\xda\xbeL\xea\xda\xdc=\xf8\x05n\x1b9Hu\x08\xbam\x98\xb9\ \x03f>\x02:\xec\t\xces\xb09\x0cO\xc2\xfe\x8f\xc1\xd0$\xac.\xc2\xe0$\x14n\x13\ \xc2\xf7B\xa8Ra\xf1\xf8Cr\xf2\xa6\x01\x00\xc4\x86_\x03\xb2w[\xcb\x9c[\x9fg$\ \x9ce_\xf9Nf\xf7\x97\xa8\xbf\xdb\x13\x9c[\xc82\xc8r\xc83\xc8\xec&\x88\x85\ \xee:\xd8\x14\x82Jo\xf4\xdd&\x04 C\x03\xfc\xf6N\xb4\xdc\x10\xc0\x89\xa3rih\ \x88\xbf\xfea}\x83\xb7\xd6\xde\xe0d\xe3\x1b\x0c\x99\tn\xbf\xb5F\xe3rOp\x9eoi\ \xf3\xebPy\x0ek\x8b08\xd1\x8b\xfd\xc2\xd2\xdbr\x08\x0c\x8fp\xfc\xc4\xcf\xc9\ \xb7n:\x00\x80L\xf2;\xda\xb0\xfc\xd6\xd2\x05\xdeX\xfd\x0e\xcd|\x99\x03\xd3ct\ \x9b\xbd\x91\xcf\xf3\xde\xe8o\xf5B\x9e\xf5B\xa9\xf1\x1eT\xc6\xc0\x16p\xff-\ \xb7\x13\xeb\x88 \x1b\x8e\xf9\xf2Nu\xdc0\xc0kG\xc4\x8e\x0c\xf3\xe8{k\xdd\ \xfc\xd4\xf2[\x9co\x9d\xa6\xf0\x9e\xe1\xbd\x9a\xe6\xd5\xeb\x10\xb9\xbd>\xf2\ \xf9&Lg\x15\xa2!\xf8\xd5\xc3\x8f2\x1e\xdfN+\xcd\xa46\xceW_yX\xce\x7fh\x00\ \x00\xc7\x1f\x92\x93\xb5\x1a\xbf{\xfa\xca\x92\x9c]9\xc7Z\xa7\xc5\xe8\xb8\xa1\ ueK\x08\xa5\x90\xa5\x9b\xfd\x02ZW{\xe2\x8f\x1e\xba\x97\xa3\xd3O\xf2\x8d3\xdf\ fl\x94\xbf\xbf\xd1\xdf\xc6\xbb\x02\x008\xfe\xb0\xfcYy\xd0\x7f\xed\xed\x95e.\ \xaf\xafR\x1a\x85\xf6\xeaf\x12o\x89\xff\xcc\xf6 \xda\xcb0=\x1bR+\xed\xe3\x97\ _|\x94R\xc5\xff\xe7\xc9/\xc8\xaf\xdc\xa8\xfd]\x03\x00\xbc\xf6\xa8|\xc9\xe9\ \xe2\x07\xef6\xdb\xe4A\x81\xcb\xa0\xc8z\x8b\x93\xf3\xbd\xf6\xda*\xdb]\x81\ \xd1\xc9\x80\xbf}\xe3\x9b8U\xac\x0fT\xf9\xecnl\xf7\x05\x00\xa0Z\xe1\xefr+dV(\ \x8d@\xda\xf8\xe05\xb6\x03\xda@=Mp^\xa8V\xf9\xeen\xcf\x86\xfa\x06\x10Vx\xeeZ\ \xbf\xb4\x07\x92\x1f\x03\xd0]\x85\xf2\xd8\xf5\xf7q\xc4\xbf\xee\xd6n\xdf\x00\ \xfe\xfdg\xe4\x9c\xd6X\x80x\x04\x92U\xe8vac\x03\xd67z\xfd\xce2\xc4[6\xca\x06\ ^\xdf\xad\xdd\xbe\x9e\x8d\x96c\xd3\\m\xb8Z}\x19\\\x0c\xcbK\\\xdf\xe7\x0b\xe0\ \xa1\xde\x82=\x01\x8c\x0c+\xa7*rf\xb76\xfb\n\xf0\x95\xf4\x8fK\xc7\xf6\xfe\ \x15o\xe9\x8b\xac\x0e$d\xd6\xe3\x8a\x9e\xf6 \x80\xf06\xc5@\x14p\xcb\xc0\x08\ \x07\xcf>h&\xdf\xba}?\x9f\xe2\xeanl\xf6\x15`H\x8f\xc9\x97\xe4)\xd6\xf5:\xae\ \xeaX/\xd6\xb8\x12,\x90\xb9.\xe5\x95\x1aj\xa5L\x92$x\xbf9%\r\xee>\x84\xfb~\ \xbc\xde\xe9t\x98\x99\x99\xa1\\.\x93\xa6)cW&YYYa\xa3\xd8 !\xe9\xb7\xb9\xfe\ \x02\x88\x08ccc\xac\xac\xac\xd0\xedvQJQ\xadV\x99\x9a\x9a\xa2R\xa9\xd0l6\xc9\ \xf3\xfc\xba\x07\xfaP\xfa\n\x10E\x91ZZZbbb\x82\xb9\xb99\x8c1\\\xbe|\x99+W\ \xae\xd0j\xb5\xe8t:}\x15\x0f}\x06H\x92D\xa6\xa7\xa7I\xd3\x94S\xa7N\x91\xa6)Q\ \x14a\x8c!\x8ec\xac\xb5\xb4\xdb\xed~\x9a\xec/\xc0\xda\xda\xdaF\x9e\xe7C\xc3\ \xc3\xc3\x1c:t\x08\xa5\x14\x9dN\x87\xa5\xa5%\xda\xed6n\xf3W\x0b\x80R\xcaYk\ \x17wk\xb3\xaf\x00\xa7N\x9d\xfa\x83\xe9\xe9\xe9gfffh\xb5ZdYF\x9e\xe7(\xa5\ \xe8v\xbb\x14E\x01\xf4r\xa5\xd3\xe9\xfc\xe3\xd3O?\xbdk\x80\xbe\xfeG\x06\xf0\ \xd8c\x8f\xfd\x85\xd6\xfa7K\xa5\x12q\x1c\x13\x86!J\xa9\xf7a\xb2,\xc39\xf7ZQ\ \x14\x0f\xbc\xf0\xc2\x0b\xd9n\xed\xf5m+q\xad\x1c9r\xe4+\xce\xb9\xdfo4\x1a\ \xadF\xa3\xc1\xf2\xf22KKK4\x9bMZ\xad\x96s\xce\xfdi\x10\x04\x0f\xf7C<\xd0s\ \xe7\x0e\xab\xdaN\r\xc3\xf0\xb01\xc6W\xabU\x19\x1c\x1c\x940\x0cE)\xf5\x87\ \xdb\xbd\x7f\xbbz\xb6\x1bBjK\xabO\x9f>\xad\xa3(z\xff4sqqQ\x01\xd4\xebu\xb5\ \xf5\xa6\'\x9f|\xf2\x13\xadV\xeb3\xde\xfb\xb1R\xa9t\xfc\xe8\xd1\xa3\xc7\x1e\ \x7f\xfc\xf1\xce\xd6kj\xb5\x9a\x00\xec\xdb\xb7O\x00\xe6\xe6\xe6d~~^\xdey\xe7\ \x1d\xff\xc4\x13Ol\x9ds\x7f\xac\xd0\xff\r@\xd1\x0b3}\xee\xdc9\x1d\x04\x81ZXX\ 0\xf5z\xdd\xd4\xebu-"z}}]\xb7\xdbm\xad\x94\xd2\xd6Z\x95\xa6\xa9.\x8aB9\xe7\ \x94s\xeeG\x80\x8c1\x02\x10\xc7\xb1\x0f\x82@\x82 \x90J\xa5\xe2E\xc4\x0f\x0e\ \x0e\xfa\x91\x91\x11o\x8c\xf1\x07\x0f\x1etq\x1c\xbbZ\xad\xe6\xf3<\x97;\xef\ \xbc\xd3\x03~\x13\xe2G\x04\xffO\xb3\x90\x9a\x9f\x9f\x0f\xf6\xee\xddk.\\\xb8\ \x10$I\xa2\xdf|\xf3Ms\xe6\xcc\x19}\xf5\xeaU\xd3\xe9t\x82n\xb7\x1bZk\x83<\xcf\ C\xe7\\p\xad\x8a\x88\xf1\xde\x9b \x08\x94\x88\xbc\x9fgJ)_\x14\x85h\xad\x9d\ \xd6\xba\xd0Z;cLa\x8c)\xa2(\xb2q\x1c\xdbR\xa9T\x8c\x8f\x8f\x17\x87\x0e\x1dr\ \xb3\xb3\xb3\xfe\xc0\x81\x03\xae(\nW\xa9T\x8a\xb9\xb99\xbb]\x00\x05\xe8#G\ \x8e\x98\xb3g\xcf\x86\x0b\x0b\x0b\xfa\xd5W_\r.]\xba\x14...\x06\xf5z=L\x92$\ \x06"\x11\x89E$\x06b\x11\x89\x80\x08\x08\xb7T\xc3\xf5\xf3g\x07\x14\x9b5\x07r\ \xa5T\x0ed\xd7\xda8\x8e\xb3J\xa5\x92_\xbat\xc9\x8e\x8d\x8d\xd9\xbb\xee\xba\ \xcb\xdes\xcf=nzzZ\xcd\xcd\xcd}\xc0\x0b?i\x16\x92g\x9f}\x96\x0b\x17.\x00\xb0\ \xb6\xb6\xa6\x93$\xd1Y\x96\x19cL\x18\x04\xc15\xf1%\x11)\x01e\x11)\x03U`\x00\ \x18\x14\x91!\x11\x19\x16\x91\x11\x11\xd9\xb3YGEd\x18\x18\x02\x06\x81\x01\ \x11\xa9\x02U\x11)\x8bH\xd9{_\xd6Z\x97\xd24\x8d:\x9dN\xb8\xba\xba\x1a4\x1a\r\ \r0??\xff\x01\xa1?1\x846\x13\xa88q\xe2\x84\x9a\x9d\x9dUq\x1c\xab\x8b\x17/\ \x16\x0b\x0b\x0bjxx\x98V\xab%\xd6Z)\x8a\xc29\xe7\n\xe7\\\xee\xbd\xcf\xbc\xf7\ \x91\x88D"\x12\x8aH "\xc1\xe6@\x89R\xca)\xa5,Ph\xads\xa5\x94\xd5Z\xe7\xc6\ \x98\\k\x9d\x07A\x90W\xab\xd5|``\xc0\x8e\x8f\x8f\xe7SSSv\xef\xde\xbd\xb6\\.\ \xe7\xfb\xf6\xed\xb3sss\x8e\x1d\xe4\x80\x00nqqQ\xa2(rw\xdf}\xb7v\xce\x99\xd1\ \xd1QS\xaf\xd7C\xe7\x9ci6\x9bA\x92$&\xcb2\x93\xa6i\xa0\x942y\x9e\x07EQ\x18\ \xe7\x9cq\xce\x19\xef\xbd\x16\x11\xa5\x94\x12\xad\xb5\xd7Z{c\x8c\x0b\x82\xc0\ \x05A\xe0\x80"\x8a"\x17E\x91\xabV\xabE\xb5Zu\xde{;<\x9f:' phatch-0.2.7/phatch/actions/canvas.py0000644000000000000000000003252111346363116017470 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu). # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image import Image global imtools from lib import imtools global HTMLColorToRGBA from lib.colors import HTMLColorToRGBA def canvas_size(image, new_size, centering, background_color, opacity, old_size=None): #because of layer support photo size can be different from image layer size if old_size is None: old_size = image.size #check if image size has changed if old_size == new_size: return image #displacement dx = new_size[0] - old_size[0] dy = new_size[1] - old_size[1] #alignment x = int(centering[0] * dx / 100.0) y = int(centering[1] * dy / 100.0) #mode if image.mode in ['RGBA', 'LA', 'P']: if image.mode != 'RGBA': image = image.convert('RGBA') background_color = HTMLColorToRGBA(background_color, opacity) if image.mode in ['RGB', 'RGBA']: new_canvas = Image.new(image.mode, new_size, background_color) else: new_canvas = Image.new('RGB', new_size, background_color) if opacity > 0: imtools.paste(new_canvas, image, (x, y), mask=image) else: imtools.paste(new_canvas, image, (x, y), force=True) return new_canvas #---Phatch class Action(models.Action): label = _t('Canvas') all_layers = True author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(canvas_size) version = '0.1' tags = [_t('transform'), _t('size')] __doc__ = _t('Crop or expand the canvas without scaling') def interface(self, fields): fields[_t('Canvas Width')] = self.PixelField( ' px', choices=self.PIXELS_X) fields[_t('Canvas Height')] = self.PixelField( ' px', choices=self.PIXELS_Y) fields[_t('Resolution')] = self.DpiField(choices=self.DPIS) fields[_t('Align Horizontal')] = self.SliderField(50, 0, 100) fields[_t('Align Vertical')] = self.SliderField(50, 0, 100) fields[_t('Background Color')] = self.ColorField('#FFFFFF') fields[_t('Opacity')] = self.SliderField(0, 0, 100) def values(self, info): #dpi dpi = info['dpi'] = self.get_field('Resolution', info) #size x0, y0 = info['size'] x1 = self.get_field_size('Canvas Width', info, x0, dpi) y1 = self.get_field_size('Canvas Height', info, y0, dpi) new_size = x1, y1 #centering align_hor = self.get_field('Align Horizontal', info) align_ver = self.get_field('Align Vertical', info) #parameters return { 'old_size': (x0, y0), 'new_size': new_size, 'centering': (align_hor, align_ver), 'background_color': self.get_field('Background Color', info), 'opacity': int( (self.get_field('Opacity', info) / 100.0) * 255), } icon = \ 'x\xda\x01\xde\x0c!\xf3\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0c\x95IDATh\x81\xd5\x98{l\x15\xd7\x9d\xc7\xbf\xe71\ \xcf{\xaf_8\x18\x12\x1e1\x84\x90\xa6\xa0nK\x9bGE\x9b*m\xa1EU[5\x9b\x92\x18\ \xb1\t\xc4\x0b!B%\xa0d\x1b\xb6dS\x08\xf2J(U\xb4E\x11\x8eS7\xe6aSbJ\xbdlD\x10\ \xc2\xc4)\xb4\r\x84\x10\xd7\xc1IA8\x0e\x14\xfb:\xd8\x80\x1f\xb1\xef\xcc\x9ds\ \xe6\xec\x1fw\xc6\x8c/\xd7\t\x8f\x95\xca\x8e\xf4\xd3\xd8s\xee\xcc\xf9~~\xbf\ \xef\xef\x9c\xb9\x97(\xa5\xf0\xff\xf9\xa0\xffh\x01\xd7{\xf0\x7f\xb4\x80+9\ \xaa\xab\xab\xbf$\x84\xf8\xaa\xe7y{\x96/_\x9e\x8c\x8e\x91\x1b\xd9B[\xb6l\x99\ \xef\xfb\xfe\x7f\xf9\xbe_"\x84\x08/W.Y\xb2dY\xf8\xcf\r\x0b\xb0m\xdb\xb6\xdf1\ \xc6\xe6{\x9e\x07\xcf\xf3 \xa5\x1c\x1e\x93R\x16-[\xb6\xec"p\x83\xf6@}}}\xa3m\ \xdb\xf3\x01H!\xc4s\x8c\xb1q\x84\x90\xd7\xc2qM\xd3\x1e\x08\xff\xbe\xe1z\xa0\ \xa1\xa1\xe1\xd9x<~\x7f___w*\x95\x9a\xbdx\xf1\xe2\x93\xc1\xd0\xfc\xaa\xaa\ \xaa\x7f\x06@\xa5\x94}\xe1\xe7o\xa8\n\xec\xdb\xb7obaa\xe1/]\xd7UR\xca/G\xc4\ \x03\x00\x18c.\x00\xd8\xb6\xfdVx\xed\x86\x02\xe0\x9c\xbf"\x84\xa0\x8e\xe34-X\ \xb0\xa0#:\xb6m\xdb\xb62B\x88\x05\xe0\xe3\x85\x0b\x17\x9e\x0b\xaf\xdfP\x00\ \xb6m\x7f\xc3q\x1c\xc5\x18+\xcb1\xfc\xa2\x10\x02J\xa9\r\xd1\x8b7\x12\x00\xa1\ \x94\xdaB\x08\xf5\xe0\x83\x0fvE\x07v\xec\xd8Q-\xa5\x1c\x0b\xe0\xafK\x97.\xdd\ \x14\x1d\xfb?\x01X\xbbv-\xdf\xbcy\xf3\xa6\xed\xdb\xb7\xdf{\xad\xcfhjj\x8a\t!\ \xa5\xa4555K\x00`\xfb\xf6\xed\xb7\xee\xdc\xb9\xf3\x8c\xe38\x8b]\xd7\x1db\ \x8c\xdd\x9f}\xdfu\xef\x03[\xb7n-\xf5<\xef\x00\xa5\xf4VJ\xa9\xcf\x18[\xbb`\ \xc1\x82u\xa7N\x9d\xbay```\x8d\xef\xfb\xcc\xf7\xfdNJ\xe9\xa9X,v\xf2\x8e;\xee\ 8\x01`\x00\xc0\x88\x89\xdfx\xe3\x8d[m\xdbnO&\x93H\xa5R\xb0,kH)e\x0e\x0e\x0eR\ \xdf\xf7{)\xa53\xca\xcb\xcb;\xb2\xe7\xbf.\x80\x9a\x9a\x9a\xb2t:\xfd*\xa5To\ \xf3\xdf\xc1D\xfd\x0b(-\x99\x8e[n\xb9\xc5K\xa7\xd3\xbc\xad\xad\x8d\x0c\x0e\ \x0eB\xd34$\x12\t\xc4\xe3q\xd8\xb6\r\xc30\x14\xe7\xdcWJ\xc9T*\x95J&\x93\xe5\ \xb1X\xec\x02!\xa4\xb1\xab\xab\x0b\x8e\xe3\x84S(BH\x93\xa6i?y\xf4\xd1G{si\ \xb8\xa6}`\xed\xda\xb5|\xdc\xb8q5R\xca\x05\x8aI\x1cr\xb7\xe3\xa4\xfa\x0b\xfe\ \xa5\xf4\x17(\x88\xdf\x8d\xc3\x87\x0fk\xd1\xc4p\xce\x91N\xa7\x91J\xa5\x00\ \x00\xbe\xef\x13]\xd7\x99\x10\x829\x8e\xa3\x13B6\x12B\xde\xe9\xed\xed\x85\ \xeb\xba\x00 \x01\xec\x97R.[\xb6lY\xfbgi\xb9\xea\n\xbc\xf4\xd2K\x93}\xdf\x7f\ \x13@\xe9\xa7\xe4<\x1a\xc5op\x81t`\xc1\x1d\xff\x86/\xf1\xef\xe0\xa3\xb6\x91\ \xf3q\xceaY\x16L\xd3\x84eY0\x0c\x03\xba\xaeC)\x05\xcf\xf3\xe08\x0eR\xa9\x94\ \xd24\xad\xff\xdc\xb9s\xf9RJ\x07\xc0W\x97,Y\xd2z%z\xae\xaa\x02\x95\x95\x95\ \x0f9\x8e\xb3\x991\xa6\x9fE+\xfe(k\xe1\xd1\x14\xcan\x7f\x1a\xd3\xbd\xd9\xf8\ \xe8\xf4\xe5\xc9\xe2\x9c\x0f\x07\xa5\x14\x84\x10\x04\xcd\n\xd7u\xc3 \xfd\xfd\ \xfd\xf9RJPJ\xbfV^^\x9eKw\x19\xad\xad\xad\x9d\xd0\xd9\xd9yB\x08\xb1\ \xd0c)\xec\x13\x95\xc3\xe2\'\xc5\xa7\xe3[\xf9e8\xfb\xf7\xcb\xc5\x87\x00Q\xf1\ \xbe\xefC\x081\x9cy\xc7qp\xfe\xfcy\xb4\xb4\xb4`\xf6\xec\xd9p\x1c\xe7\xd3\xe0\ V\xf2\xf2\xcb/?f\x18F\x1b\x80\x7f\x07P\n@\x03\xf0uJ\xe9\xe6\xaa\xaa*-\x9c\ \xe33{\xa0\xba\xba\xfa\xc7CCC\xdb\x95R\xe6\'\xea#\xbc\x99~\x15C\xb4\x1f\x84\ \x02\x84\x02\x8c2\x18\xcc\x86F\r\xe80\xc1\x1c\x13\xb2\xc7\x04\x1b4\xa1\x13\ \x0bq3\x0fq+\x0f\t+\x0fE\xe6x\x8c\xd1\xc7\xc30\x0ch\x9a\xa6\x00\x10\xc7q\xf0\ \xee\xbb\xefb\xe6\xcc\x99\x981c\x06ZZZ\xc0\x18\xfb-\xa5t\x86R\xea.\x00\x17\ \x01\xd4\xfb\xbe\xbf\x83\x10r/!d=\x00PJ\xef,//\xff\x10\x18\xddB\xe4\x95W^yY\ \x08Q\xce\x18#\xef\x8b\x038,\xff\x00\xc5}P\x92\xa9\x1b\xa1\x80\xa2\x12.\x1d\ \x80K\x07 ]\xc0\xf9\x04Hu\x00\xd2\xcd\x18\x16\x0c\xa0\x1a@u\x80\x9a\xc0\xd8\ \xc4\xcd\x98wS9JK\xa6\x931c\xc6$\x0f\x1f>\xf5p ]\x83v\xf5^F\x0c\x05@2\ \xe2C\x08B\x01_\x00^/\xe0\xf6\x00J\x02\xcc\xcc\x88f&\xc0\xf3\x00=\x1f\xd0\n\ \x01?\xd6\x89&\xebE\x8c\xcb\xff\x0f\x14\xc4\xa6\x8e\x9f;w\xee\xf8c\xc7\x8e\ \xa1\xa8\xa8\x08\xba\xaeKB\x08SJA)\x95r\x1c\xe7\x81\x95+W\xf6df\xca\xe4C\x08\ 1N)\xe5uuuu\x02 \x84\x90\x91\x16\xaa\xad\xad\xfd~:\x9d\xde\xa9\x94\xb2\xcf\ \xfb\x1d\xd8\xeb\xbe\x84^\xf5IF4\t\x1eC.\t\x0f\xaf\x8b\x01`\xa83s\xa6\x06\ \xa0\xe5\x07\x91\x00\x98}\t\x86r\x80p\x80P\x8a9V9\xbe\xa3\xff+\x08\x08\xce\ \x9d;\xe7\x9e>}z\x83\x94\xf2Y\xa5\x14\xa4\x94\xab\x9e|\xf2\xc9\x8d\x11\xf1\ \xe4\x89\'\x9e(\x996m\xda\xc7J\xa9\xa6U\xabV\xcd\x01\xe0\x03\xf0\xc3\n\x90\ \xba\xba\xba\x17\x95R?\xe3\x9c\x93\xbfy\x7fF\xa3\xf8-\x04Kg\xee\x8e\x8a\x0f-\ \x14\x9c\xa12V1o\xa2\xd0\'q\x18q\x0e\xcdd\xd0\x0c\x0e\xa2\x07\xa2\x03\xbb)"!\ \x88\x80O<\xecs\xabpF\x1e\xc7\xc3\xe6z\x8c\x1d;\xd6\xc8\xcf\xcf\x7f\xec\xfd\ \xf7\xdfG*\x95\x82\xe38\x07\x03{\xd3\x10b\xd2\xa4I+\xa5\x94p\x1cgsdf\xc2\x01\ `\xeb\xd6\xad\x13\xa5\x94\x8f\x1b\x86A|\xe5#)O\xc0\xe7\xe9KKTT|\x14\x82\x02\ \x9ci\x88\x99&t\xaeC\xd7\r\xe8\xba\x96Y}(\x03a4c;\n("\xa1\xa8\x84P\x02B\xa5!\ T\x1a\x17U\'.\xaaN\xd8$\x0f\x8c\xb1\x9b9\xe7\xf0mmm\x9d[WW\xd7\x06@\x04!G\xf4\xc0\x86\r\x1b\x12\x96e\xfdOII\xc9}\ \x9a\xa6\xe1\x13\xbf\x1d\xff\xedn\x18\xee\x83h\xf6m-\x06S\x8b\xc1\xd2b\xb0\ \xb8\rC\xb3`p\x0b:7\xa01\x03\x1a\xe3`4\xb3\xfb\x82\x00\n\x19\x00\xa9\x04\xee\ d\xf7a\x16\xfb\x01\xa0\x80\xd3\xa7O{\x87\x0e\x1dzd\xfd\xfa\xf5\xbb\x9f\x7f\ \xfe\xf9n\xa5\x94\xa5\x94\xea\x12B\xbc\xc39\xff&!$_)\xd5}\xe2\xc4\x89\x07\ \xeb\xea\xea>\x00\xe0\x05!\x00\x88\x9c\xfb\xc0\x0b/\xbc\xb0z\xc2\x84\t\xebc\ \xb1\x18u1\x88\xdd\xe9\x17\xd1&\x8f\x0cC\x18\xdc\x84\xa5\xc5ak1XZ\x1cV\x00c2\ \x1b\xa6fAg&tf\x80S\x0eJ9\x08\x08\x14\x14\x188\xbe\xc2\xe6a<\x99\x06!\x04\ \x8e\x1d;\xd6\xfd\xdak\xaf}w\xd7\xae]\x7f\x07\x80g\x9eyf\x8da\x18+\xa3Z\x84\ \x10\x07[[[\xd7444\x9c\x0cDG\x01\xe4\xa8\x1b\xd9s\xcf=wwii\xe9\xde\x92\x92\ \x92\x02B\t\xfe$v\xa0)\xbd\x05 >,=\x8e\x98\x96\x80\xcd\x13\xb0\xf5x\x06\x86\ \'`\xf1\x18L\x1e\x83\xc9m\x18\xcc\x82Fup\xa2\x83\x12\x8a8\x8a0\x93\x7f\x1b\ \x16\x12\xe8\xef\xefGccc\xcb\xbau\xeb\x1e\xe8\xee\xeev\x91y\xfbDAA\x81^VV\ \xf6\x93x<~\x9f\x94\xb2\xab\xbb\xbb\xfb\xcd-[\xb6\xfc)\x18\xcf\x16/\x00\xf89\ \x01\x08\xc98~\xe9\xd2\xa5E3g\xce\xdc=u\xea\xd4{u]G\xbbz\x0f;\x9d\xf5P\x9a\ \x8f\xb8\x96\x80\xad%\x10\xd3\xf2`\x870Z\x02\x16\x8b\x0f\x87\xc1,\xe8\xd4\ \xc2x6\x05\xa5l\x16((\xce\x9c9\x83]\xbbv5UTT\xac\x8cf\x12#_\xd4\x14\x82e2"6*\ \\\x06q9@(>\x08\x06\x80WTT<;c\xc6\x8c\x9f\x17\x16\x16\x92~t\xe3\x0f\xe2?q\ \x91vf\xaa\xa0\xe5!\xc6\xf3\x10\xe3\t\xd8<\x0f\x16K \x16\x9eY>\xa6\xebw\xa3\ \x84\x97B)\x85\xb7\xdf~\x1b{\xf7\xee=\xb4q\xe3\xc6_\x8c&(\x88\\\x19\xf7\xb2>\ ;r\x15\xca\x02\x08\xd7_-\x08\xe3\x91G\x1e\xf9\xfa\xdc\xb9s\xb7N\x992%N\xb8B\ \xa3\xa8\xc6\x07x\x0b6O \xc6\xf2`\xb3\xbcL\x15X\x06\xa8\x88\x8f\xc7\x97\x8d\ \xb9\xc8\xe77\xc1q\x1c\xbc\xfe\xfa\xeb8~\xfc\xf8_7m\xda\xb4ZJ\x19\n\x8f\x02\ \x88,\xd1\xe9H\xe4\x14\xaf\x94\xca\t\x10\x8ag\x00\xf4 L\x00\xd6\xf4\xe9\xd3K\ \x96/_^5k\xd6\xac;-\xcb\xc2\x07\xfe\x1f\xd1\xe4\xd7@\xa7\x06l\x1e@\xb0\x04n\ \xd5g\xe2.\xe3\x870Y\x0c\xc9d\x12\r\r\r\xe8\xe9\xe9\xf9\xb8\xb6\xb6\xf6\xe9\ \xbe\xbe>\'\x92\xed\xa8\xf8P\xb4\x0b\xc0\t\xcen\x16\x80\x1f\x15\x0f\xe4x\x1b\ \r\x00\x182\x1b\xc9\xb0\xf808\xe7\xd6\xaaU\xab\x9e\x983g\xce\xc3\xc5\xc5\xc5\ \xe4\x029\x8b=\xde\xaf\xe1\xd2A\xd8,\x81\xaf\x19?\xc4,\xe3{ \x84\xa2\xb9\xb9\ \x19MMMp]\xb7{\xf7\xee\xddOwtt\xf4b\xa4\xbf\xa3\x99O\x07\xc2\x1d\x00\xa9 B\ \x80h\x9f\x0c\x8b\xbf\x0c \x87}\xf4\xa8x\x00v\x00\xa4\xcf\x9b7o\xd6\xa2E\x8b\ \xd6N\x9b6\xcd\xf4\xa8\x8b\xb7\xc4f|Q\xff&\xa6\xea_\x81\xe388p\xe0\x00N\x9e<\ \t!\xc4\xc0\xc1\x83\x07W\x7f\xf8\xe1\x87\x1d\xa1\x80\x08D\x08\x10Z%\x95\x15n\ v\xf6UV\xc6?\xab\x02!@\xb4\x02\xc3\x00\x00\xb4\xc9\x93\'\x8fy\xea\xa9\xa7\ \x9e\xbf\xe7\x9e{\xa6\x18\x86\x01J)\xba\xba\xba\xb0\x7f\xff~\\\xb8p\x01\xbe\ \xef\x0f577\xaf;z\xf4\xe8\xc9\x1c\xe2C\x0bE\xad\x13\x15\x1f\xda(\xcc\xbe\x9f\ -\xfe\xb3\x00(.Y\xc8\x08\xc4\x9b\x91\xb3\x11\x8c\xf1\xc9\x93\'\x17-Z\xb4\xa8\ j\xf6\xec\xd9\xb1\xce\xceN\x1c9r$\xfc=\xbf\xa7\xa5\xa5\xe5WG\x8e\x1c91\x8ax\ \x89\x91\xcd\x1a\xb5N(~8\xfbJ)?[\xfch\x00\xa1\x8d\xa2U0\x02\xe1!\x84\x01@/,,\ \x8c?\xf4\xd0C\xbff\x8cMe\x8cA\x08\x01\xdf\xf7\xd5\xd0\xd0\xd0[\r\r\r\x95}}}\ n\xf0\xd8l\xdb\x84\xe2=\\jV\'\x12Q\xef\xfb\xa3e\x1f\x18\xfd\x1bY8\x99\xc0\ \xa5=\x81D\xc6}\x00j\xca\x94)\x13\x07\x07\x07\x8fr\xce\xdb=\xcf\x1bp]\xb77\ \x99L\x9e:x\xf0`+F\xfe\x8a\x10\xcdz\xae\xccGW\x9ep\xd5\x19\xde\x17F\x13\x0f\ \x8c\xf2\x9d8\xb2\x991\x8c\\\x91\xc2j\x84\x151"\xd79\xb2\xde\xe1s\x88\xcf\ \xf6|vd/\x999\x1b7z\xe4\xac\x80RJe\x18 \xa3\x97#\x0f\xcd\xce\xa8\x1f@\xf8Y\ \x10\xd9\r\x1bf=\x97\xf0\xd02W,~T\x80\x1c\x10\n\xb9\x1b1;\xb4\xe0\xcc\xb2\ \x00re\xde\xc1\xe5;m\xce\xcd\xea\x9a\x00\xb2 \xc2\x15 \n\x90\xdd\x94\x12\x19\ K\xc9\xe0\xb9\xa1\x85\xa2k}\xae\xac{\xb8\xfc]\x08W"\xfes\x01r@|^%$.\xf5C\x14\ \xda\xb4\xd9\x96\x89\x8a\xbf\xa2\xac_\x15@\x08\x81\xccO\xdd\xa1\xa8\\;j\xb4\ I\xc3>P\x18Y\x01\x0f\x9f\xf3rv5\xe2\xaf\x18 \nB\x08\xf1q)\xbb\xd9U\x08\xb3\ \x1d\xf6\x00\xb2\xc0\xc2\xf3\x88\xac_\xab\xf8\xab\x06\x88@\x00\x97[*\x04\x08\ \x97^\x12\x19\x0b!\xa2\xfdrM\x96\xb9n\x80,\x88p\xf2h%\xc2%\x14Yc\xd1&\xbd\ \xae\xacG\x8f\xff\x05\xd8\xb6\xb3*\x16\xb11e\x00\x00\x00\x00IEND\xaeB`\x82\ \xc6\x87\x0e\x81' phatch-0.2.7/phatch/actions/color_to_alpha.py0000644000000000000000000003441711346363116021210 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from: # http://www.iconlet.com/info/9657_colorscm_128x128 # Icon author: Everaldo Coelho # Icon license: LGPL # Follows PEP8 from core import models from lib.reverse_translation import _t OPTIONS = [ _t('Value'), _t('Top Left'), _t('Top Right'), _t('Bottom Left'), _t('Bottom Right')] #---PIL def init(): global Image, ImageOps, ImageMath, imtools import Image import ImageOps import ImageMath from lib import imtools global HTMLColorToRGBA from lib.colors import HTMLColorToRGBA def difference1(source, color): """When source is bigger than color""" return (source - color) / (255.0 - color) def difference2(source, color): """When color is bigger than source""" return (color - source) / color def color_to_alpha(image, color_value=None, select_color_by=None): image = image.convert('RGBA') width, height = image.size select = select_color_by color = color_value if select == OPTIONS[0]: color = HTMLColorToRGBA(color, 255) elif select == OPTIONS[1]: color = image.getpixel((0, 0)) elif select == OPTIONS[2]: color = image.getpixel((width - 1, 0)) elif select == OPTIONS[3]: color = image.getpixel((0, height - 1)) elif select == OPTIONS[4]: color = image.getpixel((width - 1, height - 1)) else: return image if color[3] == 0: # The selected color is transparent return image color = map(float, color) img_bands = [band.convert("F") for band in imtools.split(image)] # Find the maximum difference rate between source and color. # I had to use two difference functions because ImageMath.eval # only evaluates the expression once. alpha = ImageMath.eval( """float( max( max( max( difference1(red_band, cred_band), difference1(green_band, cgreen_band) ), difference1(blue_band, cblue_band) ), max( max( difference2(red_band, cred_band), difference2(green_band, cgreen_band) ), difference2(blue_band, cblue_band) ) ) )""", difference1=difference1, difference2=difference2, red_band=img_bands[0], green_band=img_bands[1], blue_band=img_bands[2], cred_band=color[0], cgreen_band=color[1], cblue_band=color[2]) # Calculate the new image colors after the removal of the selected color new_bands = [ ImageMath.eval( "convert((image - color) / alpha + color, 'L')", image=img_bands[i], color=color[i], alpha=alpha) for i in xrange(3)] # Add the new alpha band new_bands.append(ImageMath.eval( "convert(alpha_band * alpha, 'L')", alpha=alpha, alpha_band=img_bands[3])) return Image.merge('RGBA', new_bands) #---Phatch class Action(models.Action): label = _t('Color to Alpha') author = 'Nadia Alramli' email = 'mail@nadiana.com' cache = False init = staticmethod(init) pil = staticmethod(color_to_alpha) version = '0.1' tags = [_t('color')] __doc__ = _t('Make selected color transparent') def get_relevant_field_labels(self): """If this method is present, Phatch will only show relevant fields. :returns: list of the field labels which are relevant :rtype: list of strings .. note:: It is very important that the list of labels has EXACTLY the same order as defined in the interface method. """ relevant = ['Select Color By'] if self.get_field_string('Select Color By') == OPTIONS[0]: relevant.append('Color Value') return relevant def interface(self, fields): fields[_t('Select Color By')] = self.ChoiceField(OPTIONS[0], choices=OPTIONS) fields[_t('Color Value')] = self.ColorField('#FFFFFF') icon = \ 'x\xda\x01o\x0c\x90\xf3\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0c&IDATh\x81\xd5\x9a\x7fp\x94u~\xc7_\xcf\xcf\xec>\ \xfb#\xc9&\x1b\xb21\x81B\xa0\xf2\xcb\xca\x8f\xa6B-\xa7\x1et\xe4r\x1e\xf2\xa3\ \xeaa9\x83\x9d3\x03XGph;7Nu\xa4\xd3\xe2\xe9\xc0\x0c\xe7X\x1d\xf4\xec\x1cZ\ \xb5\x1eg\xe9\xb4\xcaq\xd7\xe9\xe9M\x0e\x0esp\x9cB\x01\x03&\x90\x98M\x96M\ \xc8fw\xb3?\x9e_\xfd\xe3\xd9\xddl\xc8b\x85\xa0x\x9f\x99\xefL\xf6y6\xdf\xe7\ \xfd\xfe|\xde\x9f\xcf\xf7\xf3\xfd\xee#\xd8\xb6\xcd\xef\xb3\x89\xd7\x1b\xc0DM\ \xfe2\x1f&\x08\x82p\xe95{\x82\x12\x10\xbeh\t\xe5@\xe7\x87\x08H\xb9\xbfm\xc0\ \x04L\xdb\xb6\xad\xab\x9d\xff\x0b\x8b@\x0ex\x1e\xb0\x02\xa8@Yn\xc8\xabW\xaf\ \x0e,Z\xb4h\xdaK/\xbd\xb4O\x10\x84\xec\xd5F\xe2\x9a\x13\xc8\x01\x97rs\x97\ \x01\x1e\xc0\xbbh\xd1\xa2\xc6e\xcb\x96\xad\xac\xa9\xa9i\xf2x<\x8d\xb2,\xfbu]\ \xef\xe8\xe8\xe8x\x07\xd0q"r\xc5v\xcd\x08\x14y\\\x01\xdc\x80\xbf\xaa\xaa\xaa\ \xa6\xa5\xa5eucccsee\xe5\\@\xb4m\x9b\xfc\x18\x1e\x1e\xfe\r\xa3\x92\xba*\x9b0\ \x81"\x8d+\x80\x0b\xf0\x01\xc1\x87\x1f~x\xf5-\xb7\xdc\xd2\xeav\xbbk\x8aA\x17\ \x8fH$\xd2\x0eX\\\xa5\xf7\'D\xa0\x08\xb8\x84#\x15\x1f\x10X\xb3f\xcd\xd7\x9a\ \x9b\x9b\x1f\xad\xaa\xaa\xba\xf1r\xc0m\xdb\xc6\xb2,\xfb\xfd\xf7\xdfo\xc3I\ \xe4/\x97@\x91\xceU\x1c\x8dW.^\xbcx\xce\xbau\xeb\x1e\x9d2e\xca\xd7l\xdb\x16>\ \x0b\xbcm\xdb\xa4R\xa9\xaeC\x87\x0e\x85s\x04\xae\xda\xae\x88@\t\x9dW\x84B\ \xa1\x86\xcd\x9b7o\x983g\xcejI\x92\xcaJ\x81\x05\xb8\x90\xb6\xd1$\x1b\x97\xe4\ \\\xcbd2\x1d@\x06\xa7\x8c~\xb1\x11\xb8D..\xc0\x0f\x04\xb7l\xd9\xb2\xea\x8e;\ \xeexX\xd3\xb4\xaa\xcby\xbaw\xc4\xe2\xc8\x80E_\xca\xa6e\xaa\x88@!\x02\x9dL\ \xa0\xfa|n\x02%\xe4R\xb5t\xe9\xd2\x9b\x1f|\xf0\xc1\xbf\xad\xaf\xaf_p9\xe0\ \x9d\xc3\x06\xed\x17\x0czG\x9c5jf\x85\x84,\t\x85\xfb\xf1x\xfc\x0c\x13\xd4\ \xffg\x12(\x92\x8bLN.>\x9f\xafn\xdb\xb6m\x1b\x16.\\x\x9f(\x8aj)\xe0\xe1\xa4\ \xc9\x7fw\xa7\xe9\x1bq\xa4-\x89\x02\x8a$\xf1\x87\x15\x12\x92D\xe1{\xfd\xfd\ \xfdgp*\xd0\x84\xac$\x01A\x10\xf2+h\xbe\xba\x047n\xdcx\xe7\xaaU\xab6\xfb\xfd\ \xfe\xbaR\xc0\xd3\x86\xc5\xfb=)~{!\x8bm\xdb\x88\x82\x80*\x8b(\x92\x84*\x8b\ \x844\x11Q\x1c\xfd~[[[\x07\xd7:\x02E^W\x01\r\x08455\xcd\xdc\xbau\xeb\xdfL\ \x9b6\xed\xcf\xc8\xf5N\xf92\x18\x0e\x87\x07C\xa1P\xd5\x89h\x9a\x9fu\xc5I\xea\ y\xe0R\x01\xbc"\x8bh\xb2\x84W\x1d\xf5~:\x9d\x1e8v\xec\xd8\x10\xd7*\x02EI\x9a\ \x97K\xb9\xa2(\xb5O?\xfd\xf4\xfa%K\x96\xb4\xa8\xaa\xaa]\xea\xf1\xfd\xfb\xf7\ \xbfs\xe2\xc4\x89\xde9KW,\x8bZ\xee\xaaj\xd1&\xe8\x12\x10%Y\xc9\xca\x8a;k\x8b\ B\x9eD\xd0%\x8c\xf1\xbe\xae\xeb=\xe4\x12\xf8J*\xd0\xa6M\x9b*\xb3\xd9l\x95\ \xdf\xef\xfft\xe7\xce\x9d)\x18\xed\x12\xf3I\xea\x03\xaa\xd7\xaf_\xbf\xa4\xa5\ \xa5ek0\x18l,%\x97\xc1\xc1\xc1\xf3\xcd\xcd\xcd\xad\x99L&\x9b#\x9d\xef}\xdc@\ \r0\xf9\xef~\xb4\x7fsF\xd6TE\x12\x99\xe2\x11\xb8\xc9o\x16\xff\xff\x07k\xd6\ \xaci\x06b\xb6m\x1b\x97\x03\xdc\xda\xda\xda\x04|C\x14\xc5\xf9\x8a\xa2,\x94$\ \xa9A\x10\x04\xd2\xe9t\xc2\xb6\xed\x96\x17_|\xf1m\x19G2.\xa0j\xd6\xacY3\x9ez\ \xea\xa9-7\xddt\xd3rA\x10\xc4R\xe0?\x8e\x8e\xd0\xfe\xbb\x8e\x9ff2\x99\x8f\ \x81T\x91\x03\x14\xa0\x02\xb0\xbeq_\xcb\xadV\x99W\xd5$\x11E\x96\xf0\x951&\ \x81eY\x06G\xfb\xe3\xbc\xbfq\xe3\xc6\x1bl\xdb^\'\x08B\x8b\xa6i\xb34M\xc3\xed\ v\x03`\x9a&\xc9d\x12\xcb\xb2\xbc\x82 \xac\x03\xde\x96s\x9e+ojj\xfa\xa3W^ye\ \x8f\xdb\xed\xae(\x05<\x96\xd2\xd9w2\xc2\xe9\x0bI\x8e\xbe\xb0\xe3\x05`\x00H\ \xe7\x9e+\x01^\xc0\xff\xc7K\xbe\xde\xb0\xf8\xde\xef\xdeg\x08J.\x0fD\x14\x05D\ \xd1*\xcc%\x8a\xe2\x18\xf0\x82 \x08\x0f=\xf4\xd0JA\x106\xb8\\\xaee\x15\x15\ \x15\xa2\xcf\xe7C\x10\x9c\xb2k\x9a&\x86a\x90H$\x18\x1e\x1e\x06G{\x1f\x90\x03\ \xaf\xe0h~\xaa\xd7\xeb\x1d\x07\xde\xb4,\xda\xba\x86x\xf7t\x04\xd3\xb2\xf9\ \x83\n\xf5\xe2\xbfwtDr\xe0\xf5\xa2\x08h\xd5\x93\xea\xa6\xdc\xfb\xd8\xb6\xefg\ DU\xd4d\x115\x17\x01Y\xb6\x91\xa4Q\tI\x92\x04\xc0\x9c9s\xa4\xd6\xd6\xd6o\xb7\ \xb6\xb6~\xaf\xbc\xbc|NMM\r^\xaf\x17\xcb\xb2\xb0,\x0b\xd34\x0b#\x16\x8b\x11\ \x8b\xc5\xf2\x9c/\x02?\xca\x13\x90\x00w:\x9d\xf6J\x924\x06|\xd7`\x927~\xdbC8\ \x9eA\x91$\xb42\x91r\xd18\x95\x03\x9f\xefa\xf2\x12\xac\xde\xf8\xf7\xff\xf8\ \xa8\xa5\xb8TY\xce\xf0\xa9p\x9a\xa4x\x81a3\xc2\\}\x16S]7\xe7\xab\x17\x99L\ \xa6v\xfb\xf6\xed\x87\xfb\xfa\xfa\xa6\xfa|>\xb9\xae\xae\x0e\xb7\xdb]\xb8o\ \x18FA2\x96e\x11\x8dF\x0b\x9e\xcfy\x7f\xd3\xee\xdd\xbb\xc3y\x02\x02 \xea\xba\ .\x8a\xa28\x86\xc0\xdb\x1f\x85\x89\x8e\xe8h\xaa\x82"\x8b\xa8\x92\x84\x90\x19\ ngl\x0b \xe2\x94\xdc\xaa\xf0\xe4\x9e\xa6C\xe2\xbf\xf0\xb1\xd1\x8e\x9e\xce84S\ \x90\xaaX\xcb\xb7\xca\xe7\x93J\xa5\xe8\xea\xea\xe2\xf0\xe1\xc3S\xfc~?\xf3\ \xe6\xcd\xc3\xe5r\x15\xc0\xe6\x01\xe7e\x93\xc9d\xe8\xed\xed%\x95J\x15\xa7\ \xc9\xbf\xed\xde\xbd\xfb\xcd\xfc\x87\xfc: \x98\xa6i\xe7\xf4H~\xef\xad\x95\ \xc9\x05\xf0\x8a$\xa1J"\xf1\xae\xde\xc3E\xde\xcf\xcb\xc7\r\x94\xef\x17\xf6x?\ \x8d\x9fu\x80\x17\x8d$C\xa4R)\xfa\xfb\xfb9~\xfc8s\xe7\xce%\x18\x0c"\x08\x02\ \x96e\xa1\xebz\x81\x84a\x18\xe8\xba\xce\xd0\xd0\x10\xe1p\x18\xd3\x1c\xd3\xac\ \x86M\xd3\xdcT|A\xccy\xd26\x0cc\xdc\xa2\xe2V\x94\x02\tM\x95\xd1\xca\x14\x8e\ \x1c\xfc\xc5I\xc6nB\xf2\r\x9e\xa7?\xda-0\x00\xc5C\x1a\x94\xd80\xa5\x85\xf9\ \xf3\xe7\x13\x89D\x08\x04\x02444PVV\x06P\x00\x9c\xc9d\n\xa3\xb7\xb7\x97\x9e\ \x9e\x1eL\xd3D\x10\x04DQD\x10\x84\x84eY\xab_~\xf9\xe5\xc1b\x8c\x85\x95\xb8$\ \x812\x19-\xa38\x95D\x96\xd0\x14\x89_\xfe\xf4?\xa3\x8c-\x7f"\xa04.\x9a5\xf9\ \xec\xc0i\xc7\xeb\xc3\xc0Y\x1bz`\xcb7\x1f\xa5y\xd1r\xc2\xe10\x83\x83\x83\xd4\ \xd5\xd5\x91\xcdf1\x0c\x83L&S\x00\xaf\xeb:\xf1x\x9cp8L:\x9dF\x14E\x14E\x01\ \xc0\xb2\xac\x94$I+v\xed\xda\xf5\xebK1\xe6\t\xd8\x86a\x8c\xab\xc9nEFSM\x14YB\ \x91D\xca]\xb2\t\x18\x8c\xb6\x00\x85\x15|\xf2\xcdSg\x9c\x1d>\r\xef\xd9\xf0+\ \x9b\xda`-\xa6ir\xf7\x1dw\x93L&1M\x13Q\x14\x91e\x99d2\x89\xae\xebd\xb3Yt]\'\ \x9dN\xd3\xdf\xdf\xcf\xd0\xd0\x10\xa2(\xa2\xaa*\xaa\xaa"I\x12\xa6ifEQ\xbc\ \xef\xd9g\x9f}\xefR|\x97F`\xdc\xce\xc8\xa5Hhe\xa3\x11\xf0\xaa\xa2\xc9\xf8\ \xfeE\x00\xc4Ty\xe2F\xf6\xd9x\xcej\xdc\xba\xf4VB\xa1\x10g\xce\x9c!\x10\x08\ \x10\x8f\xc71\x0c\x03\x97\xcbE4\x1aE\xd34t]G\xd7u\x06\x07\x07\x89F\xa3X\x96\ \x85,\xcb\x94\x95\x95\xe1v\xbb\x11\x04\x81L&c\xa8\xaa\xfa\xc0\xf6\xed\xdb\ \xdf\xe12M_\xfeh\xb1d\x0e\xb8\x14\xb9\xa0}]\x19\xe4\xe7\xfakR\xa9I\x80\x99G\ \x9e;4{\xf2P\x03\xb7\xddv\x1b===\x04\x83A\xb2\xd9,\xc9d\x92d2\xc9\xf0\xf00\ \x93&M\xa2\xaf\xaf\x8fD"\xc1\xe0\xe0 \x9f|\xf2\t\x91H\x04A\x10\xf0x\x9f\x8f\xea\xea\xea\xf3\xc1`\xf0\xb6\ \x95+Wv}\x1e\xf0c\x08(\x8a\xb2\xa8\xb3\xb3\xf3\xf9\xe2\x9b\xf7\xb6\xad\xe7`\ \xe4\x7f\x1c\xf0\xfa(\x89\x19\xf2\xcc\xec\x82\x9ey\x7f\xd9~\xe0\xd7\xf5\xb1X\ \xec\xfb\xd9lV\xcdf\xb3x<\x1e\xfc~?555\x1c?~\x9c\x91\x91\x11\x00\xee\xbc\xf3\ N\xdcn7\xdd\xdd\xddX\x96E(\x14\xa2\xb6\xb6\x96\xfa\xfaz\x02\x81\x00\x1e\x8f\ \x87\xf2\xf2\xf2\xddn\xb7{\xcb]w\xdd5\xf2y\xc1C\x91\x84t]\x1f\x97\x03\xaa\ \xa1@\x921\x11\x10t\x81\x99Sf\xa9O\x7f\xe7\x9f~<\xf2\xd7\xc9\xf0\xd1\xa3G\ \xa5\x9d;wr\xf2\xe4I.^\xbcH"\x91\xa0\xbb\xbb{\xcc\n\xfa\xe1\x87\x1f\xb2p\xe1\ Bf\xcc\x98\x81a\x18L\x9a4\x89\xea\xeaj\xdcn7n\xb7\xfb\x94\xc7\xe3\xf9\xde=\ \xf7\xdc\xb3\xefJ\x80_J\xc0&wT_|\x84\xaf\x18\n\x8c\x8c\x82\x9f\xa1\xdd\xc8+\ \xdf\xfe!S+\'\x03P^^\x1e\xba\xfd\xf6\xdbQ\x14\x85\xd7_\x7f\x9d\x9e\x9e\x1e\ \xe2\xf18\x89D\x82l6\x8b\xd7\xeb%\x10\x08\xa0i\x1a\x9d\x9d\x9d\xf8|>B\xa1\ \xd0\x99\xda\xda\xda\x9f\xd4\xd4\xd4\xf4z\xbd\xde3\xf7\xdf\x7f\xff\x01&p\xb8\ 5fOlY\x96%IR\xa1\xc2(\x86\x0cI\x98?\xa9\x89\xef\xce\xff+\xee\x9e\xfd\xcdq\ \x13\x08\x82\xc0\xf4\xe9\xd3?ill|+\x9b\xcd\xdePQQ\xb14\x93\xc9\xd4\xe5\xef\ \xeb\xbaN"\x910\x81\x8e\xce\xce\xce\xa7\x0e\x1d:\xf4\xe6\xb8I&`\xc5\x04\xc6I\ \xe8\x06\xd7\r\xec\xf8\xf3\x1fp\xef\xdc\xbb\xc7D&o###\xf1w\xdf}\xf7\xd5\xad[\ \xb7\xbea\x18F\x18\x18Z\xbe|\xb9\xed\xf7\xfb=\x1d\x1d\x1d\xa1\xae\xae\xae\ \xcad2\x19\x01N\xd8\xb6\x9d\xbd\x96\xc0\xf3\x96O\xe2i\xc0-]]]\xcf\xcb\xb2|\ \xb9\xc5\xaa`\x96e\x99\xed\xed\xed?\x7f\xfc\xf1\xc7\xff\xf9\xd4\xa9SgqZ\xb7\ \x04\x90e\x82\xbf\xb8\\\xa9\x8d\x89\x80eY\x16NwyY;w\xee\xdc\xff\xee\xda\xb5\ \xeb\x07o\xbd\xf5\xd6\x07\xc0\x05\x9c\xd6-\x8d\x93)Wt\xcap-L\xa6hs\xfdY\xcf\ \x1e\x1e\x1e\x1e\xd8\xbbw\xef\x0f\x9fx\xe2\x89}@\x1f0\x84\xb3\xa9\xd7\x01\ \xeb\xcb\x06\x9e\xb71\x11(\x05\xc20\x0c\xbd\xad\xad\xed?\x1e{\xec\xb1\x97"\ \x91\xc8y`\x90\xb1r\xb9\xae?4\x17\x97\xd1q\xda=}\xfa\xf4o\x9ey\xe6\x99\xe7\ \x0e\x1c8\xf0;\x1c\xb9\xc4q\x8e\xc4\xaf\x8b\\JY^B&\x8e\x8e-\x80\x81\x81\x81\ \xde={\xf6\xbc\xb0c\xc7\x8e\x9f\x01\x11F\xe5bp\x1d\xe5R\xcad\x1c\xd0)\xe0\ \x82\xae\xeb\xb1\xb6\xb6\xb67\x1ey\xe4\x91W\x13\x89D/\xce\xf1E\x12G\xe7\xd7]\ .\xa5L\xc09R,\x07\xaa\x9a\x9a\x9a\x02\xed\xed\xed\x03@\x0cG\xe7\x19r\'\xc8_E\ \xf00\xf6\\\xb4,\xf7Y\xc7I\xd0\xaf\x8c\xce?\xcb.}\r\x00r\'\x0e_u\xe0y+\xbc+\ \x91\x7f\x11\xe3\xf7\x05x\xde\xfe\x0f\x12\xd6\x99\xed[\xf8N\xa2\x00\x00\x00\ \x00IEND\xaeB`\x82\xa4\xe7Gx' phatch-0.2.7/phatch/actions/colorize.py0000644000000000000000000002000011346363116020030 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu). # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageOps, imtools import Image import ImageOps from lib import imtools def colorize(image, black, white, amount=100): """Apply a filter - amount: 0-1""" if image.mode != 'L': im = image.convert('L') else: im = image colorized = ImageOps.colorize(im, black, white) if image.mode == 'RGBA': colorized = colorized.convert('RGBA') colorized.putalpha(imtools.get_alpha(image)) if amount < 100: return imtools.blend(image, colorized, amount / 100.0) return colorized #---Phatch class Action(models.Action): label = _t('Colorize') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(colorize) version = '0.1' tags = [_t('color')] __doc__ = _t('Colorize grayscale image') def interface(self, fields): fields[_t('Black')] = self.ColorField('#735710') fields[_t('White')] = self.ColorField('#FFFFFF') fields[_t('Amount')] = self.SliderField(100, 1, 100) icon = \ 'x\xda\x01\x1f\x08\xe0\xf7\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00*\ \x00\x00\x00*\x08\x06\x00\x00\x00\xc5\xc3\xc9[\x00\x00\x00\x04sBIT\x08\x08\ \x08\x08|\x08d\x88\x00\x00\x07\xd6IDATX\x85\xcd\x98[lT\xc7\x19\xc7\x7fs\xce\ \xd9\xb3g\xed\xdd\xb5\xbd`\x16\xb0\r,\xc1\x84D\x16\xc4B\xa9L\x13\xa9\xed\x03\ (\x15Q\x93*\x12R\x93T"\xb1\x9dU\xd5\xa8Q\x1eKT\xd2(\xd0J\x95\x8a\xf2P\xa9u\ \x95\xa0\x88bZT \xc5\x12\x94J\xc0K\xa3p7\x11\x11P9$\xb1Y\xd9\xeb\xa5+\xdbk\ \xef\xed\\\xa7\x0f\xde5\xb6\xb1\r\x0e\x17\xf7\x93>\xcd\x99s\x99\xf9\xcd\xff\ \x9b\x99ov\x91R\xf2\xff\xe4o\xbc\xf1F`\xa6\xfbBJ\xc9BZ<\x1e\xf7\x01/(\x8a\ \xf2\xaa\xcf\xe7k\x06\x1al\xdb\xbe\xe9y\xde\x96\x8e\x8e\x8e\x9e\xf2{\xdaB\ \x01\xb6\xb7\xb7\xaf\x03\xda|>\xdf\xf6\x8a\x8a\x8aE~\xbf\x1f)%\xb6m\xe38\xce\ J\xe0%\xe0\xb7\x0b\x06\xda\xde\xde\xfe\xb4\x94rW0\x18\xdc\x12\n\x85\xd0u\x1d\ \xc7q\xb0m\x1b\xd7u)\x14\n\x14\x8bE\x14E\xf9\xf7\xe4\xef\x1e\x19hkk\xebSR\ \xca\xf7\xc3\xe1\xf0\xf3\xb5\xb5\xb5h\x9a\x86\xe388\x8e\x83\xeb\xba\xb8\xae\ \xcb\xc8\xc8\x08\xf9|\x1eEQ\xbe\xf4\xf9|\x9f=R\xd0\xb6\xb6\xb6\'=\xcf{?\x1c\ \x0e\xffx\xd9\xb2e\xc2\xef\xf7\xe3\xba.\xb6m#\xa5\x9cP3\x9dN\x93\xcf\xe7\x11\ B8R\xca\x9fvttx\x8f\x04\xb4\xad\xadm\x99\xe7y\xbf\xab\xac\xac|9\x16\x8b)\x81\ @\x00\xcf\xf3& =\xcf\xc3\xb2,L\xd3$\x99LR(\x14P\x14\x05EQv\x1f8p\xe0\xdc\xf4\ \xf6\x1e8h<\x1e\xd7<\xcf\xfb\x85\x10\xe2\xd7\xb1X,TWW\x87\x94\x12\xd7u\'@\ \x1d\xc7\xa1X,R(\x14H$\x12\x14\x8bE\x84\x10H)\xcf\x17\x8b\xc5\xf7gj\xf7\x81\ \x82\xc6\xe3\xf1\x1f\xb8\xae\xfb\x87\xaa\xaa\xaa\'\xd7\xad[GEE\xc5Dx\xcb^\ \x06\xccf\xb3\xf4\xf5\xf5a\x9a&\x00\xaa\xaa\xf6\xa9\xaa\xfaBWW\x97\xfb\xd0@\ \xe3\xf1x=\xf0{\xd7u\xb7\xad]\xbb\x96\x95+W\xa2\xaa*\x9e\xe7a\x9a&\xb6mS(\ \x14\xc8\xe7\xf3\xe4\xf3y2\x99\x0c}}}\xb8\xae\x8b\xaa\xaaH)\xd3\x8a\xa2l9t\ \xe8\xd0\xe0l}\xdc\x17hWWW}OO\xcf/#\x91\xc8k\xa3\xa3\xa3\x81h4\xca\x9a5k\xf0\ \xf9|\xd8\xb6\x8di\x9a\x14\n\x05r\xb9\x1c\xb9\\\x8el6K:\x9d&\x91H\xa0i\x1a\ \x86a\x00\xe4\x02\x81\xc0\x8b\xfb\xf7\xef\xef\x99\xab\xafo\x95\x99\x8e\x1d;\ \xb6\xd1\xf3\xbc?VVV>\x1d\x08\x04\xd0u\x1d\xd34I\xa7\xd3|\xf3\xcd7\x18\x86A \ \x10 \x9f\xcf\x93\xcdf\' \x93\xc9$\x83\x83\x83\xe8\xbaN(\x14BJi\x1b\x86\xf1\ \x93}\xfb\xf6\x1d\x01\xe6\x04\x99\xb7\xa2]]]\xaf9\x8e\xf3g\xd34\xb5\xf2\x96b\ \x18\x06\x9b6mb\xfd\xfa\xf5\xb8\xae\xcb\xb9s\xe78y\xf2$\x91H\x84\\.G&\x93\ \xe1\xe6\xcd\x9bd2\x19\x82\xc1 \xa1P\x08\xc7q<]\xd7\xdf~\xec\xb1\xc7>\xb9\ \x1b$\xccS\xd1\xce\xce\xce\xce\xa1\xa1\xa1\x97\x01*++ill\xa4\xa6\xa6\x06\xc3\ 0(\x16\x8b\xf4\xf6\xf6\xf2\xec\xb3\xcf\x92\xc9d\xb8r\xe5\n\x87\x0f\x1f\xc6q\ \x1c\x06\x06\x06\x10B\x10\x0e\x87\t\x85B\xe5\xadh\xf7\xc1\x83\x07w\x02\xde]\ \xba\x9d\x1f\xe8\x8e\x1d;\xde\xbap\xe1\xc2\x07###X\x96\x85a\x18,Y\xb2\x84\ \x96\x96\x16\xb6n\xddJSS\x13\xb7n\xdd\xe2\xc4\x89\x13l\xd8\xb0\x81|>Oww7\x87\ \x0f\x1fF\xd34\x16-ZD0\x18dtt\x14\xc7q\xf6\x1e=z\xb4\xfd^!\xef\t4\x16\x8bU[\ \x96\xf53]\xd7w[\x96%\xa4\x94\x84\xc3a\x82\xc1 CCC8\x8eC4\x1a\xe5\xcd7\xdf\ \xe4\x99g\x9e!\x99Lr\xea\xd4)6o\xdeLOO\x0f\x9f~\xfa)\xa9T\x8aH$\xc2\xd8\xd8\ \x18\xa6i\x1e;~\xfc\xf8\x8f\xe6\x03\t\xa0\xcc\xf5p\xc5\x8a\x15\xcbkjj\xfeS[[\ \xfb\x9bB\xa1 L\xd3\xa4\xae\xae\x8e\'\x9exb\xe2\x00\x91\xcdf\xb9q\xe3\x06;w\ \xee\xe4\xc3\x0f?\xc4u]\x1e\x7f\xfcq:::0M\x13\xcf\xf3\xc8f\xb3\xa4R)\xc6\xc6\ \xc6\xceo\xdb\xb6\xed\xc5\xf9B\xce\t\xda\xd8\xd8\xe8\xaf\xae\xae\xeejjj\x8a\ \x0e\x0f\x0fcY\x16\x1b7nd\xd3\xa6M\xa4R)\x06\x07\x071M\x13!\x04\x9a\xa6\x91\ \xcdf9p\xe0\x00\x17/^d``\x00\xc7q\xb8t\xe9\x12_\x7f\xfd5\x8a\xa20::z\xbd\xa9\ \xa9\xe9{\xdb\xb7ow\xe6\x0b\ts\x84\xbe\xae\xae\xee\xa3h4\xfa\xfa\xf0\xf00###\ 477\xd3\xdc\xdc\xcc\xe5\xcb\x97\xb9~\xfd\xfa\x04di/\xc4\xf3<\x8a\xc5"\x8d\ \x8d\x8d<\xf7\xdcs\x9c={\x96\xbe\xbe>4Mc\xf9\xf2\xe5I\xd7u\xd7\x9e>}:\xfbm a\ \x16E\xeb\xeb\xeb7\xa8\xaa\xfaz\xa1P \x93\xc9\x10\x89D\xa8\xad\xad\xe5\xcc\ \x993\\\xbbv\r\xd34Q\x14\x85\x86\x86\x06V\xacX\x010\xfesA\x08\x12\x89\x04\ \xd9l\x96\xde\xde^\xfa\xfb\xfb)\x16\x8b444\xbct?\x900\xcb>*\xa5l\x05H\xa7\ \xd3\xa8\xaaJ$\x12\xe1\xea\xd5\xab\xa4\xd3i,\xcbBUUV\xadZ\xc5\xd2\xa5K\xf9\ \xfc\xf3\xcf\'\x8ej\xba\xae#\x84\xc0\xb6m\xc6\xc6\xc60\x0c\x83\x96\x96\x96\ \xbf\xef\xdd\xbb\xf7\xcc\xfd@\xce\n\x9a~5\xfdj\xf8D\x18/\xe7\xe1\xf7\xfbI&\ \x938\x8e\x83i\x9a\xe8\xbaN}}=\x9e\xe7\xd1\xdd\xdd\x8deY8\x8e\x83\xae\xeb\ \xa8\xaa\x8aa\x18\x08!X\xbcx1\xb1X\xec_\x9d\x9d\x9d\xdb\xee\x17\x12f\x98\xa3\ \xe2=Q\xcdw\x19\x16\xff\x14(\x8d\n\xb2AR\xf3N\r^\xc2C\xd7u\x82\xc1\xe0\xc4\ \x8a\xb7,\x0b\x00\x9f\xcf\x87\xa6\x8d\x8fy\xfd\xfa\xf5,]\xba\x14]\xd7wutt\ \xfc\xeaA@\xc2L\x8a*\xac$\x012 q[]\xf8+\x0c\xad\x1d\xa2bI\x05\xd2\x95\xc8[\ \x12/\xe5\xe18\x0e\x9a\xa6\xe1\xf3\xf9\x10B\x00\xb0z\xf5j\xa2\xd1h\xae\xa6\ \xa6f\xfb\x9e={\x0e=(\xc8\x99A%\xab\xb8\x06\xbc\x02\x1c\x01\xce\x82\\\'\xc9\ \xa99\xc8\x80\xfa\x95J\xf5\x7f\xab1\x0c\x03EQ(EDVUU\xfd%\x1a\x8d~\xf0\xf1\ \xc7\x1f_~\x90\x80e\xbb3\xf4\xef\x8a\xfd\x14y\x85\n`\rP\x0f\xf4\x00\xdd\x80\ \n\x84@1\x15\xaa\x8eW\xa1\ri\xf8|\xbe\xcf\xa4\x94o\r\x0c\x0c\\|\x18\x803\x82\ \x8a\xf7\xc4b\xaa\x18d\t*\xd5@\x02\x18\x00,\xc0)\xb9\r\x98\x10\xbe\x1a\x1e\n\ \xf6\x05\x7f\xde\xdf\xdf\xff\xb7\x87\tX\xb6\xe9\xa1o\x11\xcb\x85-\x13R\xe5Kn\ \x1f\xbe\x8c\xf1ka\x8ba\xe1\x89^\xc2\x9c\x1f}~\xf4\xdd\xcc\x8eL\xeaQ@\xc2\ \xcc\xab^\x01\x9e\x02"\x80\x8e@ \xe9#\xccW\xf2mYxT`\xd3m\xc1\xff{\xbaW\x9b\ \x92B\x05B\x08G|\x7f\x81X\xe6\xb4\xa9\xb9>E+C|\xb4@,s\xdaT\xd0\x02\xef\xe0\'\ &\xae\x88\x96\x05\xe2\x99\xd5&@\xc5\x17\xa2\x06\x8f\x95\x84\x11d\xd9\'\x10s\ \x1e\xaa\x1f\xb5\xdd\x86I\xb1\x99\x1b\x08\xfa\x81\x9b4\xf2\x0fv-\x1c\xd6\x9d\ v{\x1f\x1d#O/\xf0\x05\xe0\x02\xd5|g\xbe\x8d\x95s\xfe\xc3\xd8I\xa6f\xa6?\x89#\ \xa4\xf9!\x01\x12\x84x\x8d8\x17\xca\x8f\xa6\x95\xccR\x87\xf14!\xef\xe1zJy\ \xb7\xc1\x89\xd2\xc9\\a<\xff\xf8XL\x804*\xa03\xae\xb8(\xb92\x0bp\x19\xc0\x9b\ T\x96\xdd\x9d\xa1\xee\xce\xf2\xac\xec\x13mN\x11\xb1T\x06\x81\xb5\xc0\x12\xc0\ _\x82R&\x7f4\xcd\xa77>\x1d`.w\xeeR\x9f\xd2F\x99\xb6\xacX\x00XTr\x7f\xe9\xfed\ \xd0\x99\xa0\xee\xb5\xf3\xe9\xd7\xda\xb4{\xea\xa4z\xb9\x9c,\x90\x0b\xb7C\xef\ \x03\xc2%\xaf,y\xc5$u\xcb\xe1\x87\x99C<=\xd4wS\xf5n\x83r\xca\xfd\x94\x15\x9d\ XL\xa5\x15\xab\x96F\xac\x96|\xfa\xbc\x9c\xcb\x99T\x96\x95\x98i0\x93\x07:\xd3\ b\xbbc~\x02\xfc\x0f\'\xc4\x97\xb6\x97\xab\xbe\x05\x00\x00\x00\x00IEND\xaeB`\ \x82`8\xef\xcc' phatch-0.2.7/phatch/actions/common.py0000644000000000000000000002712611346363116017512 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 # Embedded icon is taken from www.openclipart.org (public domain) from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageFilter, imtools import Image import ImageFilter from lib import imtools def common(image, radius, amount=100): """Apply a filter - amount: 0-1""" image = imtools.convert_safe_mode(image) commoned = image.filter(ImageFilter.ModeFilter(radius)) if amount < 100: return imtools.blend(image, commoned, amount / 100.0) return commoned #---Phatch class Action(models.Action): label = _t('Common') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(common) version = '0.1' tags = [_t('filter')] __doc__ = _t("Copies the most common pixel value") def interface(self, fields): fields[_t('Radius')] = self.RankSizeField(self.RANK_SIZES[0]) fields[_t('Amount')] = self.SliderField(100, 1, 100) icon = \ 'x\xda\x01\x14\r\xeb\xf2\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0c\xcbIDATh\x81\xc5Y}\x8c]\xc5u\xff\x9d\x99\xb9\xf7\ \xbe\xb7o\xbf\xbc\x1f^w\xbd`\xbc\xfeX\xbc\xfe\x88\xf1\xc7\x9a\xb8\x18[4\t\ \x94\x08\xa4@@!%\x8d\xd4&"\xd0 \xc8\x1f%nS\xa9U+E%\xa5J#\xb7\x91\x9a\xa2\x86\ \xa8j\xd3\x00&"\x81\x02\xb6 \xc6q\xeb\x98\x8f`\x0c\xf6\xda\xc66\xde5\xbb\xeb\ \x8f\xf5\xb2\xfb\xf6}\xde;wN\xff\x98{\xf7\xbd\xdd}\xfb\xf6a"1\xd2\xe8\xbe\ \xbb{\xe7\xcc\xf9\x9d\xdf\x993s\xce\x10\xca\x1a3\xa3\x96FD\xd4\xd8):\xd3\xc3\ f\x84\x99MM\x83\xcaZ}\xbbp\xaf\xda\xa2\xeeX\xba^~\xa5e!m.\xfa@\xb1\xc0&\x93\ \xc6\x99\xf1\x11\xf3\xfc\xe8{\xe6\xb9\xc1\xdf\x04o\xcf1\xf7\xf4\xf7Z\x01\xf4\ \xfc\xa1\xbbu\xc1\x12\xf1u\'\x81-uu\xe8L.\x10M"\xc0\xc8\xd0\xd9p_v\x94\x9f{\ \xf7\x19\xff\xbfjQ~\xe5\xe7\x9c\xd5\xdd}\xea\xe7\xcb\xd7\xc9\x15M\xcd\x04\ \xe5\x00\x8e\x0bx.\xc1\xf5\x80\x89q\xc6\xd0 \x9b\xfe\xd7\xf4\x8f\xcf\x1e\nw\ \x0e\x1e\nF?\x16\x80\x9e[\xdc\x8d\xed+\xc5\xa3\xab6\xca\x9b\x96,\x13\xd4\xd6\ .\x10h\x86_\x04|\x1f\xc8\xa6\x19\xe7\x06\x0c\x8e\x1e\xd4?:\xf7\x9b\xf0\xc1\ \x0b\xc7\xb4_\xcd\x08\xabw\xa8\xdd\x8b\xbb\xc5"!\x00\x12\x80 @H\xc0\xf3\x08^\ \x02H$\t\xc9$`\x0c\xf0\xfa~=\xf2\xdb=\xfa\xbec\xbf\xf0\x7fyE\x00\xd6\xdd\xe5\ ~c\xcd\x0e\xe7\xb1\x1b?\xabRJ\x01\xb9\x1c\xa3\x90\x07\xfc\x02\xa3X\x04\x8a>#\ \xd4v\xb2\x89q\xc6\xf1\xd7\xc3}g\xffW\xdf9|X\x8f\xcdT\xfe\x9a\x1b\x9c5+w\xa8\ W\xbbW\x89\x16\x90UDP\x04B\x00RZ \x89$!Y\x07\xd4\xa5\x08uu\x84\xe3G\xc2\xc2K\ O\xf8\xb7\xf7?\xe7\xef\xad\x04@\xcde\xad\xf5\xf7x\xdf\xbf\xf9\xab\xee\xc3\ \xab\xd7K\xe42V\xc1|\x8eQ\xc8\x01\xf9"\xc3\x84\xb0\xdd\x00\x86\x81d\x92\xb0t\ \x8d\xd8QH\xcb\x9d\x00\x1e\x99)\xafu\x99\xd8\xd9\xde%Z|\x1f \x02\x88\x18\x14\ Y_\x08B\x18Z\x10\xc60\x02\x1f\x08\xb5\xed=ke\xc2\xff\xb2\xb3\xfb\xda\xcf\xbb\ 7\x1d\x7f\xde\x7fc\xa6\\QI\xf9\xb5_t\x1f\xdcq\xa7\xf3P\xef:\x89\xc9409\xc1HO\ 0&\xc6\x19\x99,\x10D\xee\x13\xf8@\xe03\xb4\xcf\x08|F\xb2N\xa0\xf9jq\xff\xca\ \xcf9\xd7\x96\xcb[~\x93\xb3\xa5c\xb9\xbc\x9b\xc8\x8e\x99\x1a\x1b\x94d\x04\ \x01#\x08\x00\x1d\x00~\xd1\xce\x99I3&\xd3\x8c\xd5\xd7\xc9\x86\xe5\x1b\xe5\ \xf7+\xe9:\x8b\x81\xde\xdb\xdc?X\xb5\xdd\xf9\xde\xa76K\xcaL22\x93@v\x92\x91\ \xcbYw\tC\xb6\xddX\x06\xd8\x10\x8ca0[\x17lj\xa1\xfa\xecR\xf9\xb7\x00\xee\x8e\ e\xb6t\x8bGR\rp\x02\xdf\xba\xa8e\x00 A\x90\xc2\xb2 \r\xc0\x91\x1cc\x08\xcc@&\ \x13\x7fO\xd8\xb0]\xdd\xd0s\x8b{\x0b\x80\x17\xab2P\xdfA\xdf\xe9]/\x12\x99,\ \xac\xf2iF6\xc7\xd0\x01\xa05\xa0\x83\xe8\xb7\x1f[\x93\xadE\x8b\x0c\xdfgx.\ \x90j\xa3/^\xbdE\xad\x07\x80\x8e^\xf5{\r\x0b\xc5mZcj\xe1\xc7]\xc7\x96/c\xc4\ \xce\xc3\xd1\\@6\xcb\xc8e\x19\xcd-\x84\xae5\xe2\xebU\x19Xy\xb3{\xf3\x8a\xedr\ GG\xa7@.\xc3\xc8N2\xb2yF\x18)\x1fj\x86\xd6d\x19\x88\xd80&f\x81`\xa2 \x90H\ \x82\x16,\x957\x008\xdc\xb6BlS\t8\x81\x0f0l\xd4 a\x19\x08\xa3\xc5+e\xc4`YL!0\ \x88\x08\x14\x00\xb9,C)\xa0\xab[\xae\xa9\n\xa0\xa9\x8b\xbe\xb4b\x95\xa2b\xc1\ \xbaL>\xcf0e\xca\x07A\xe4B\x81u!\xad\xad\xfb\x98\x18\x08\x03`\x06\x83\x90h\ \xa4-\x00\xfe9\xb9\x806\xb2\xb1LE\x9a\xd9\xc5+\xec\xe25\xa6\x14\x08\x98\x19\ \xe0\xb2(C\x16D\xe0\x03\x85<`\x98\x17V\x05 \x1d\xba\xa6\xad\x1d(\xe4\x19\xf9\ l\xe4*!\xa0CF\xa8)b \xa27f \xb4\x91\xc3*B\x00\x13\x18\x80J\xe0\xd3\x00\xa0\ \x12\xb4)\x0cgN\x1b\x81\x90\xa5q\xa5\x08\x1eY>\x02\x19Fa6\x9fg\x14r\xc8T\x05\ @\x12]:\n_A`-\x13j\x86\xd1\x14)^R^\xc7l\x84\x84P#Z|\xa5}\xc4k\xa0e\xd7lu6t\ \xf5\xc9\xebf\xabo\xbf\x0f5\xc0&\xde\x7fhjqOmr\x02\x10\x82\x11\n\x82\x08\x81\ \xa0\xc0\xb3\xc2\xe8\xf4(\xc4\x98\x8c\x17f\x18\x02a\x14\xe7\xb5\x8e}\xdeNZZh\ v=T:\r\x91\x00\x9c\x14\xbe\xe45\xd0\x82J\x00\xe2f\x0c\x00\x1d\xef\x0b\xb1\ \xe5\xd9\xee\re\x9b\\\xa8\x81\xcb\x1f\x98_\xcd\x1c?-\n\x059\xde\x17\x04\x0c\ \x1doP\x91\x85\x8d\x01Bc\xdd(v\x1d\x1d\xb9T\xb5\xa3\x9ct\xa9\xad\x9a\xf2\xe5\ \xe2\x1d\xdd\x98\xd2\x06\xc9&f\x16\x18<\x1e\xee;\xf0#\x7fWU\x00\xe9\x11\xb3\ \xf7\x83\xb3\x86Q\xb6\xb0\x8c\xb1l\x98\xd0\x820a\x99\xe5\xe79\xbcJ\x07U\xad?\ \x13D\x1c\x0cl/\xfd\x1e;o\xde\x7f{\x8f\xbe\x8b+\x1c\xd6\xa6\x018\xf9R\xf0\ \xc2\xd1\xfd\xe1\xae\xcc\xa4\xb5l,\x00\x86m\xa8\x0c\x11m`\xd5-?%\\\xd5\x0e\ \x8096X\x1c\x91l\xbf8`\x8e\x1eyE\xdf\xf1\xfe\xfe\xe9\xa7\xd2\xb8\xcd\xda\x89\ \x8f<\xe9?\xec\xd5\xa3\xabg\x8b\xba\xc3\xf3\x08\xcc\x0c\xc3\xd6\xfa\x1cE\x0c\ Sc\xde du\xff\xaf\x04\xc2\x86b ;\xc1\xd9\xb1\xb3f\xd7\xe1g\xfc\xbf\xc9\x8d\ \x99\xe2\\cf\x01`f\xee\xe8U\xf7\x86E|\xbbm\x19=\xd0\xd0"\xda\xa5\xb0\x9bP\ \x1c\xa7kMa\x84\xac\x9d\x01;9P\xcc\x9a\xfc\xd8 \xef\xbdp\xdc\xfc\xf5\x99}\ \xc1a<^}H\xd5\xe3\xf4U\x9bU{\xc7\x1a\xf9\xad\xfa\x0e\xf1\x8dd=- \x8a\x17rm\ \x0cL\x9e7\x99\x86E\xa2~\xbe\xeft\x01\x85\xc2\x04\xef/\xa4\xcd\xf3\x17\xfb\ \xcdS#o\xeb\x919\x15\xbe\x92\x8c\xac\xbdG\xb6v\xf4\xcam\x89f\xeaS\x1emVIl\ \xf2\xea\xa9y>\xc5\xd8\xd8pZ\xde\xc2\x00\xc6\x9f\xe4!\x13\xe2t\x18\xf0\x19?\ \x8bwGO\x84\xcf\x0c\xbd\xa5\x07\xe6\x93w\xc5\x00f\xb6D\xa3Hvm\x92\xdbH`-\x08\ ]\xca\xa36\xe9\xa2M(\xb4\x0bEm^=\xda\xea;D*\xfe>{\x89\x0b\xc5\x0c\x7fh4\xc6\ \x85\xc2\xa8\xd7@\x82\x04\x9a\x88\xd0\xc4\x8c\x80C\x0c\x1a\xcd\xe7B\x1f\x83A\ \x9e\xcf\xe5\xc7\xf9\xd7\xef\xed\r\x8e\xfdN\x01\x10\x11um\x96\x9b[\x96\xca\ \xad^\x03\xb6H\x97\xfa\xbcF\xea\x96NM\x98\xe7mD\x80\xe3\x10H0\xfc\x02\xf9\ \xe9\xf3\xe1\xd3cg\xcc\x0fN\xbd\x1c\xbc\xf6\xb1\x00,\xde\xa0\x16v\xac\x96\ \xdf\xf6\x1a\xe8\xce\xba6ZB\xc0\xbc\xf1?n\xa1\x0f\x98\x90\xd9I\xce\x98\xb5\n\ \x00\xe5\x00\xaeg\x0fz~\x9e\xc3\x0b\xa7\xc3\xdd\'\xf6\xe8\xaf~8\x10\x16*\x01\ \x983\xa5l\xea\x92\xc9%[\xe5\x83\xdd\xdb\xd5C\xa9\x16\xeaT\xca.\xde`\xce\x94\ }v+Lp\x81\x19\xc6I\xa2n\xbeo\xe3\x10J\xb0\xa7Y)\x19\x8d-$\x9b[\xd5\xdd\x8eC>\ \x80\xafT\x1aW1\xa5\\\xba\xcd\xb9\xaa\xf7v\xe7\xe0\x92\xeb\xd4\xa3\x8b\x96\ \x88\xceT\xca\x9eQP\xa3\xe5\x01\xa0\x98\xe6\x9cJ\x00\xba\xc0\xf9Z\xc7T\xe2I9\ \x84\x9e\xeb\xe5\xbd\x1b\xff\xd8\xfb\x8bJcf\x01X\xbcA5]\xbdI>\xbd\xe2:\xf9\ \xa9\xe6V\x82\x9c\x93\xa3\xea-7\xc6i\xb7\x9e\x12F\xa36\x00\x04LU+PJ;\x01@)\ \xa0{\xad|`^\x00DD+w\xa8\xff^\xb9A\xf6\xb9n\x99\x90\xb2g\xad\xcdh\x14\x89\ \x006\xb5\x01\x90\xd2\x9eBm\xb6\x16\x95\\\x08 a\xab\x17\x0b:h\xf1\xe2\rjmU\ \x00=\x9fU7\xf7l\x94\xb78\x8a\xa6\x94\x8e\x8f\xb8\xa5,\xaa6\x00\xcc(D\xcfy\ \x01\x10\x01"RZ\x08\x9b\xe8@\x94\xcfK \x01j]&\xfa\xaa\x02\xe8\xbb\xcd\xb9/QG\ S\x153*+<\t\x11MR+\x00c}?~VkR\x12\xa4b\x08IQ\x9d\x08\xb6Z\x11W\xeeD\xb4\xc8\ \rtU\x00\xc9\x06\xda\x1a\x0f\xa0\x19\x02\x84\x04\xa4\x8a\xa9\xae\x01@\xc4\ \x00\xaa0@\x04(e\x95W\x92 \x9d(\xc9\x9fJ\xf6-8\x11\xb9n~\x9c\x87\xab\x020\ \x06\xae\x90%\xdaDT\xee\x13\x92\xa6J\x7fR\x11\x94\xaa\x0eB\x17P\x10\x92\x06\ \x8d\xb5\xd7\xacI\x01+K)\x82r\x18\x8e\xb2\xc1BI\x82\x8a\xe6\x10\x92\xa6\x0cG\ \x92\xe0\x17\x80\xf1\x01s\xa6:\x80\x10\xda\xf3\xa8\x84~\x9a%\x00%mD\x90\xcan\ 8RV\x06PH\xf3\x81D\x13\xc9\xd0g\x1d\xfa82M\x86"\xb8.\xc1q\x00\xe5\xb2e\xc0\ \xb5\xe1R)\x86\x8c\xc0\xc8\xf8\xb7\x04\x94b\x0c\x9d\n\xdf\x1c=\x15\x9e\x9e9\ \xd7\xb4 \xa9\x03\xe4\xbc\x04P, \xaaUFU7\x03{\x8c.\xdb\x82\x85\x88,4U\x1b\ \xb2\x7fg\x00\xc54\xef\xf1\x1ai\xbbpHM\x9e\xe7a!\xac\xa5\x01\xd8R\t\x08B\x94\ \xb1\x1a\xd5\x86T\xc4n\xec\xaaR\x01B\x01~\x01\xb88\xc0\xff^\x91\xc9\xf2\x973\ \xc7\xc2\x17\x95\x03$\xea\xca\x04)X\xdfT\x91\x95\x1cX\xebEO\xc7!\xb8\x0e\xc1\ \xf5\x08\x8e\x0b\xc0@\x8f\x9e\n\x7f\xc1\x86\'\xa5\x03\x14&\xf8R\x18@;.\xc1q\ \xad\xf5=\x0f\x96\x05\xd7\xde\r(\xc7\xfeO9v.\xa50\x05&\x99$\\\x182\x1f\x0e\ \xbf\xa5+\xde?L\x030r,|\xf6\xfc\x10\xa3\xae\x0ep\xbd\xc8/#A\xca\x01\x9c\xf8\ \xdd\xa1Hy\xc0u\x01\xc7\x8b\xc0\xb8\x84\xdce~\xe3\x83\xd7\xf5\t6H\x03@\xc3"*\ \xfa\x19\x1ep]\xfb\xad\x1b)\xed\xba\x0c\xc7\xa1\xa8\xa3\xf4\x8c\xe4+\x07\xf0\ \x12v\xee3\xbf\r\x1f\xbbt"\x1c\x9f\x17\xc0\xe9_\xe9\x17\x8f\x1e\n\x8f$\x92\ \x84T\xbd\x9dL\xcd\x04\xe1\xc6\x9d\xa2\x1e)\xe6Y7\xca\\2?\x01\x00\x0e1\x01\ \x00um\xd4]\xcc\xf3\xbbnd\xfdx\x9c\x8a\x19p\xecS).1\xac\x80D\x82\xd0\xd0\x00\ \x0c\x9d6G\xdf\xf8\x0f\xff\xd1J\xca\xcf\x02\xc0\xcc\xe6\xdc\x91\xf0\xa1\xf3C\ \xacS\xf5\x84\xfa\x06{\xed\xa3\xa6,De\xae\x13[\x92\xa6\xfa\x87\x1f\x98W\xdfy\ :\xf8W\x00\xc8\x8f\xf3;\x00\x90h\xa4\xad\x93\xe7\xcd\x13\xc6p\xd9\xf7\xe5lDL\ D\x0b\xdbq\xed\xe5FC#!\x93f\x7f\xff\x93\xfe\xbd\xcc\\\xa1\xb6W\x01\x00\x00\ \x9c|\xc9\xdfw\xe8\xc5\xe0qf\xa0\xbe\xc1\nJ$\xac\xe2\xe5@\x9c2wp\\\xa0\x98\ \xe7\xe2\x85\x13\xe1#q\xe9\xe3\xd2q\xf3\xb2.\xa2\xa8\x92\xf4\xfb\xc7\x9e\r\ \x9e\x1d\x1b\xc6\x9bS\nG\x0c*\xb7\xa4\xb8r\xed\xedLC#\xa1\xb1\x89@\x02\xfa\ \xd0\xff\xe8\xfb\xde\xdb\x1b\x1c\x9eK\xf9\x8a\x00\x00`\xff\xbf\x14\xbf\xb9\ \xf7\xc9\xe0g\x8e\x83H \x90\xaa\xa72\xf7\xc1\x94;\xb8\xae\xdde\x06\xdf1?<\ \xb9\xa7\x94|\\<\xae\x87\x8bi~\xab\xae\x85z\xd6\xdc\xe1|m\xe8\x98\xfeG\xc3\ \xe5\x8c\x95XH\xa6\x08\x8d\x8d\x84\xa6fBc3\xa1X`\xbd\xe7?\xfd?}eW\xe1\x89j\ \xca\x03s\xe4\x03\xcc\x1c\x12\xd1=a\xc0\x97\xb7\xdd\xee\xdc\xdf\xd2F\x14/\ \xd8b\x01(\x16\xa2\x0b\x0e\x03\xe43\x1c\xf6\x1f\xd0\xdf{\xed\xc7\xfew0#\xd0e\ .\x9a\xc7S\xed\xf2\xfa\xc6N\xb1\xf3\xc4\x0b\xc1\xa6c\x8b\xc4\xcf7}\xc6\xf9\ \x82\xe7\xd9\x18\xefD~\xefD7\x94J\x01\x83\xa7\xcc\xe8\xab?\xf3\xff\xe4\xf5\ \x9f\x96.\xf6\xaa\xb5y3\xb2kou\xb7\xf5\xdd\xaa\xfe\xa1s\x99\xdc\xd2\xdafK\ \x8b\xd9\x0ccr\x921\xd0o\x86\xcf\x1c\xd6\x0f\x1fy\xca\x7f\xaa\xa2p"y\xfd\x03\ \xde\xa1\xba\x16\xda\x98\x1d\xe5g\xfa\x7f\x19\xdc\xbb\xf9\x1e\xe7\xb1U}\xea\ \xfe\xae%\x82\x1c\xd7*\xe0\x17\x81\xe1s\x1c\x1c\xde\x1f\xfc[\xff^\xfd\x97\ \x17\xfb\xf5\xc4\x9c\n_iN\xbc\xf4\x06\xa7\xaf\xbe\x83\xaeu\xeah\t3\xfc\xf1\ \x01\xf3\xeb\xb3\x07\xf4\xc1J\xe5\xbe\xf2\xb6\xe6\x0b\xee\xadm=r\xb7t\x90\ \xc8\\\xe0\xdd\xa7_\t\xfeha\xaf\xbci\xd1rq#\x08=\x93\xe3<\x9a\x1f\xe7\x83\ \x97O\x9aWF\xde\x99\xbf2\xf1;\xa9J|\xd4\xb6\xee.\xf7\xcfZW\xc8]B\x822\x17\ \xf8\xc0\xe5\xd3\xe1\xc3\xa7^\x0e\xde\xbc\x12Y\x9f\x08\x00\x00Xw\x97\xfb\xdd\ \xd6\x15r\xa7\x90 ]@v\xfc\x9cy\xec\xf4\xcb\xc1w3\x97\xccG\xc8\xb2?A\x00\x00\ \xb0\xea\xf3\xee\xd7\xdaz\xc4\xdf\xbb)j\x05\x80\xdce~m\xec}\xf3\xad\x13/\xf8\ \xffW\xab\x8cO\x14\x00\x00t\xdf\xe8\xac_\xd8+\x7f\x98j\xa7O\x03@\xe8#\x9f\ \x1e1?\x18<\xa8\xffn\xf4\xbd07\xdf\xf8O\x1c@\xa4\x84Zw\xb7\xfb\xcd\xc6\xc5\ \xf4\xe7n\x8a:\x01\xa00\xc1\x87/\x9d0_>\xf9\x92\xdf?\xcf\xd8i\xefWXs\xf8x\ \x8d\x995\x80\x7f\xea\xda\xa8~\xda\xb1V\xfe\x95WOw\xb2A\n@\xebG\x95\xf5\xffS\ \xf3\x7f\x96\x0f\xe8m\x80\x00\x00\x00\x00IEND\xaeB`\x82z\xdaQD' phatch-0.2.7/phatch/actions/contour.py0000644000000000000000000002642611346363116017715 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 # Embedded icon is taken from www.openclipart.org (public domain) from core import models from lib.reverse_translation import _t from lib.imtools import has_transparency, paste #---PIL def init(): global Image, ImageOps, imtools import Image import ImageOps from lib import imtools global HTMLColorToRGBA from lib.colors import HTMLColorToRGBA def put_border(image, size, offset, contour_color, fill_color, opacity, include_image): if opacity < 100: fill_color = HTMLColorToRGBA(fill_color, (255 * opacity) / 100) if not include_image: w, h = image.size image = Image.new('RGBA', (w + 2 * offset, h + 2 * offset), fill_color) else: image = image.convert('RGBA') image = ImageOps.expand(image, border=offset, fill=fill_color) image = ImageOps.expand(image, border=size, fill=contour_color) return image def put_contour(image, size=1, offset=0, contour_color=0, fill_color=0, opacity=100, include_image=True): if not has_transparency(image): return put_border( image, size, offset, contour_color, fill_color, opacity, include_image) image = image.convert('RGBA') mask = imtools.get_alpha(image) w, h = image.size outer_mask = mask.resize( (w + 2 * (size + offset), h + 2 * (size + offset)), Image.ANTIALIAS) inner_mask = mask.resize( (w + 2 * offset, h + 2 * offset), Image.ANTIALIAS) inner_mask = ImageOps.expand(inner_mask, border=size, fill=0) paste(outer_mask, (255 * opacity) / 100, mask=inner_mask) if include_image: image = ImageOps.expand(image, border=size + offset, fill=(0, 0, 0, 0)) mask = ImageOps.expand(mask, border=size + offset, fill=0) paste(outer_mask, 255, mask=mask) contour = ImageOps.colorize(outer_mask, (255, 255, 255), contour_color) paste(contour, fill_color, mask=inner_mask) if include_image: paste(contour, image, mask=image) contour.putalpha(outer_mask) return contour #---Phatch class Action(models.Action): label = _t('Contour') author = 'Nadia Alramli' email = 'mail@nadiana.com' init = staticmethod(init) pil = staticmethod(put_contour) version = '0.1' tags = [_t('filter')] __doc__ = _t('Draw a contour around image edges') def interface(self, fields): fields[_t('Size')] = self.PixelField('1px', choices=['1', '2', '5']) fields[_t('Offset')] = self.PixelField('0px', choices=['0', '1', '2']) fields[_t('Contour Color')] = self.ColorField('#000000') fields[_t('Fill Color')] = self.ColorField('#FFFFFF') fields[_t('Opacity')] = self.SliderField(100, 0, 100) fields[_t('Include image')] = self.BooleanField(True) def values(self, info): #pixel fields x0, y0 = info['size'] dim = (x0 + y0) / 2 return super(Action, self).values(info, pixel_fields={ 'Size': dim, 'Offset': dim}) icon = \ 'x\xda\x01\x19\n\xe6\xf5\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\t\xd0IDATh\x81\xcd\xda{pT\xd5\x1d\x07\xf0\xef9\xe7n\ \xd8\x90\r\t\x01\x02bSh*\xa0R\x0cjx$\x18\x1e!<\xb2Q\xe4)\xad"\xbeZ[E\xb0N\ \x9d>\x10\x1d\xa6\xd3q\x9cqFK_S@Q\t\xa0\x16_\x9d)\x1b\x14\xadC AA\xd4)J\x08\ \x06A\x0cJ\x08\x9b\xc7n\xc2\xee\xbd\xf7\x9c\xdf\xaf\x7fl\x12\x92\x90H\x02\ \x84xf2\xe7\x9f\xdc\x99\xcf\xefw\xbe\xe7\xdc\xb3;\x0b|O\x86G)\x0b\x00f\x8e\ \x1a\x95y\xe6\xd9gO5<\xfdt\xed[\xf7\xdd\xb7q\xe2\xb0a\xa3\x9b\xfeEJ!D\xfb\ \xe7\xd4eUv2,)-M\xa4oJO\xbf\xee\xf5\xfb\xef\xffO\xbcRCHk\xef\xe8\xc1\x833\ \x16\x8f\x1d\xbb$1.\x8ev\x1d=\xba\xdb\x10A\n!\x19\xe0\xe6g{\xbd\x00K)K\x13\ \xe9\x9c\xf4\xf4\x8c\xed\xcb\x96\xbd\xe7\xf3x\x06Gl\x9b\x88Y4F\xa3\xc6\x18\ \x13?}\xc4\x88\x19\x13\xd2\xd2nx\xf7\xf0\xe1m\r\x8ec\xb7.\xe2\x9c%\xb9\xecxc\ tNzzF`\xd9\xb2\x1d\xf1R\x0e\x8a\xd8\xb6af\xa5\x8d\x811\x06\x9a\x88\xa3\x8e\ \xa3\x93\xbc^OyU\xd5\xde\x9f\xbd\xfc\xb2\xffXmmP\n!\x89\x99do\xe1\x95\x941|Z\ \xda\xd8\xc0C\x0f\xed\xf0*u\x0e\xde\x10\xc1\x18#\xa4\x10\x9e\xeap\xd8\xfdar\ \xf2\xf8\x17\x16,(\x1a\x10\x1f\xef#fH!D\xaf\x14 \xa5\xb4\x0c\x91\xce\xcb\x9b\ >\xee\xdf\xeb\xfe\xf9n\xbc\xd6\x83\xa2\xd1\xa8a \x86\'\x82!\x826\xa6\xe5O\ \x08\xe1\t66\xba\xc3SR\xc6\xfd\xb5\xa0`\x8bGJ\x82\x10\xaa7\xf6\x80%\x95\xd2\ \xfd\x93\x92\xc6\x8f\xbez\xd4;y?\xbf7%\xe28\xc6\xf3\xf5\xd7\xca\x08\xd9\xdcu\ \xb4[\x05h"0\xb3\nE\xa3\xee\x88\x81\x03\xaf!c\xc2\x1fTV\x96\\\xd6\x02\xa4\ \x94\x96eYZk\x9d\xb9\xfa\x89UE{\xf7}\x94B\xda\x98\xdc\xbb\xeeV\r\xb6\rSQ\x01\ \x92\x12\xba\x15\xba\xcdl\x0c\x88H6\xd86\x8fNM\xcd)9~|\xebe+@)a\x11\xb1\xee\ \x1b\x1f\x9f\xf9\xa7?\xae.\xfa\xc7\xdau\x03\xb7l\xdel~k[!\x8a|qn\x12%\xfc\x81d\ \xf2m\n\xeeI\xf4\xb1w\xc2\x84>\xc4\xbcyw\xc0\xb5#x\xe3\xcd\xb7\xf0\x8b{\xef\ \xc1\xefW\xae\xc2\x82y\xb7\xe2dU\x15\xe6\xdf2\x17isnA\xf2\xec\x99\xb0\xc3a8\ \xc6\x180+0\xd7>\xb1s\xe7\xac=\x95\x95\xfb\x94\x94V\x8f\xe0\x01 \'\xd3\x93\ \x15.\xf3\xd4\xf1\x11\xb0\xa9Zi\xd8\xfe\x949\xf4\n\xf3\xa9u\xcc\x95O2\x1d]\ \xce\x8d\'\xb6\xf1\x993\x86\x7f\xbdb\x19\xdf\xb6h!\xffk\xcbf\xee\xdf?\x99_|~\ =ggM\xe4\x19\xb9\xd3\xb81\x12\xe6O7\xbeh\xb6/X\xc0\xef.YR\x93\x9d\x966\x1e\ \x00\x94\x10=\x8e\xaf\xe7/\xdb\xe3\xd72W>\xc9\xfc\xd5\xa3\xcc\x15\xf70\x95\ \xcd\xe4P\xf9K\xdc\xd0`x\xd1\x82[\xf9\xa6I\xd9\xfc\xd2\x86\xf5\x9c\xe8\xf3\ \xf1\xc6\r\xcfqv\xd6D\xce\x9b6U7F\xc2\xfc\xbfM\x85u\x13\x86\x0e\x8d\xe1[u\ \xfe\x92]\xe6Z\xc7&P\x88\xed\xbe8\xb7\x1f\xf9V\x92L\xbaM\xc29\x04D\xeb\x01\'\ \x08\x98 \xe0\xd6\x00\\\x03T\x07\xc1\xdf|\x85\xd0\xb0\x87\x81Q+\xb0x\xfe,\ \xd4\x87\x1b\xb1\xecW\xbf\xc4\x03\xcb\x1f\xc6\xdf\xd6r\xda\xb5\xe4F\xd9\x8aw\x14L\x1d \ \xfa\x01,\x01\xf7\x14`\x1a\xbb\x8b\x0f\xf9\xd7\n\x7fO\xe1\xcf) /oZ\xae\x10\ \x1cg\x9cj-\x15Y \'\x863\xe1\x18\x16\x8d\xed\xf05\x00L\xa7\xf8\x82\x1e\xc6\ \xb7\x14@D\x0c\x00\xb3fL\x9d\rD `\x006\x00;\x00\x14@Q\x80k\x81\xe0\x19\xe0T\ \x1d\xa0\xeb\x00\xa7\xfe\xbc\xf8\xe2\x1e\xc6\x03\x80%\x85\x10DdRS\x07%\x8e\ \xbfqL\x0et\x1d\xa4\xd0\n\xe4\x02d\x03\x88\x03\xa8\x11\xf8\xe6(p\xea\x0c\xe0\ V\x03v$\xb6{\xb8c|S\xe6K{\x1a\x1f+@JI\xc6\x98iS\xb2\'\xf8RRRM\xb8\x8a\x944\ \x12\xe4\x00\xacc\xab\xa0~\x00\x0c\x98\x07$\x85b\xb1a\r\xd4\x1f\x07\x0e|\x08\ \xe0\x9c\xce_6<\x00X\x10\xb1\x93(\x7f\xe6\x94\xd9\x80\x06\x93C\x80\x91`\x07 \ \x17`\x1b\xf0$\x03i\xb9\x00\xbb\x80\xb1\x01K\x01\'>\x06>\xfd\x10$\x05I\x8b/{\ \xe7[\n\xd0\xda\x18\x8f\xc7\x12S&]?\x03\xa6\x1eR\xb8\x12\xac\x11[\x01;6\x93\ \r\xb8vl\xa6(\xe0J\xc0\x84\x9b:\xcf\xbd\xd2\xf9\xe6!\x01\xf0\x84q\x19#\x86_s\ \xd5hj\xa8c\tW\xb6\xc5;\xb1\xce\xb3\x06\xa0c\x9b\x1b\x9a\r\x91\x8e]\x0fd\xa8\ `\xad\xc8/\xee\x05<\x00H)\x85\xa8\xc3^\xf2\x11\x1f\xef\x9d\x1f\x08\ \x04\xcc\x8a\xe5\xcb5\x00N\x1d\x98\xc4\x9f\x95\xaea\x0e\xbf\xee\x96\x97>\xb5\ o\xfd3w=\xb5\xf0\x96\x1br\xaf\x18\x9c\x94\xd8\xeeQ!E\xf7\xbf\x96\xb9\xe4c\ \xc9\x1d\xb7\xbf\xf2\xe0\x83\x0f2\x00N\xf4\xc5\x7f\xeb\xf5z\xde\x1cv\xe5\x80\ \x07\xc6\xddx\xd5H\xcbj\xeb\x93R(KIKJ!\xcf\xfd\xddH/\x8d97\xe7\xef\x8f\xf3\ \xa8\x17\xfa%\xf6\x9d\x1b\xef\x8d\x1b\xe8\xf1\xb4\xfd\x8cc)iYJ\xaa\x8e~\xea\ \xf2}\x18\xff\x07\x143\xd2\x14\xd0v\x9e\xc4\x00\x00\x00\x00IEND\xaeB`\x82\ \x88b\xd9\xe8' phatch-0.2.7/phatch/actions/contrast.py0000644000000000000000000002174111346363116020054 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageColor, imtools import Image import ImageColor from lib import imtools def contrast(image, amount=50): """Adjust brightness from black to white - amount: -1(black) 0 (unchanged) 1(white) - repeat: how many times it should be repeated""" if amount == 0: return image elif amount < 0: #low contrast mean = reduce(lambda a, b: a + b, image.convert("L").histogram()) / 256.0 im = imtools.blend( image, Image.new("L", image.size, mean).convert(image.mode), -amount / 100.0) else: #high contrast im = imtools.blend( image, image.point(lambda x: x > 128 and 255), amount / 100.0) #fix image transparency mask if image.mode == 'RGBA': im.putalpha(imtools.get_alpha(image)) return im #---Phatch class Action(models.Action): label = _t('Contrast') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(contrast) version = '0.1' tags = [_t('color')] __doc__ = _t('Adjust from grey to black & white') def interface(self, fields): fields[_t('Amount')] = self.SliderField(50, -100, 100) icon = \ 'x\xda\x01\x1d\t\xe2\xf6\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x08\xd4IDATh\x81\xed\x9a[l\x14\xd7\x19\xc7\xff\xe7\ \xcc\xac\xf76k\xbc\xb0\xc4Y\xab\x96\xc1\x05*\x0b; \xa0\x02\xa9E\xa8M\x8b\x14\ TA\x8b\x04R\xd26\x08E\xaa\xdf\xaaF}\x01\x021\xb6U$*\xb5Om\x11\xb2\xa8T\xd2\ \x87H\xe6\xa5\xb1\xfa\x10\x11\xa4\x08\x14\x13\x08\x08\x12\xa4\x06\x97\x9b\ \x83\xcc\xac\x17_b\xe3\xbd\xcc\xed\x9c\xd3\x87\x9d3\x9e]\xef\x15H\xd3H=\xd2\ \xa7\x19\xef\x9c\x9d\xf9\xff\xce\xf7}\xe7|s\xd6D\x08\x81or\xa3_\xb7\x80gm\ \xff\x07\xf8\xba\x9b\xfa\x15\xdc\x93\xd4\xb8\xfe\\\x93\xeey\x00\xf8\x05\x93\ \xa1\xa1!\xe5\xcc\x993\xad\xd9l\xf6E\xc7qZ;;;\xedm\xdb\xb6\x99\x9c\xf3\xeb}}\ }9\xb7\xbf\x84xf\x18\xf2\x0c\xb3\x90\x14N\xb6l\xd9\xb21\x97\xcb\xfd\x94s\xbe\ ;\x1a\x8dv\'\x93I%\x99L"\x91H \x12\x89\xe0g{\xf6 \x93\xc9@O\xa5\xec\xd9\xd9\ \xd9\xbbz*\xf5\xd7\x8e\x8e\x8e?\x1d8p\xc0r!\x9e^\xc4S\x00\x10\x00\x18\x1e\ \x1e\xa6\x03\x03\x03\xaf\xda\xb6\xdd\xb7i\xd3\xa65;v\xec@[[\x1b\x9a\x9b\x9bA\ \xc8\xa2S4M\xc3\xb7;;\x01\x00\x8e\xe3\xc0\xb2,\xcc\xcf\xcda||\x9c\xdf\xbb\ \x7f\xff\xe2B&\xf3\xda\xa1C\x87\xd2O\x0b\xd2(\x00\x01@zzz~h\xdb\xf6\xc9\xb5k\ \xd7n\xda\xb3g\x0fV\xadZ\x05B\x88g\x00\xbc\xa3\xa6iX\xb3f\r\xe0>G\x00\x80\ \x100M\x133\xd3\xd3H\xa5R\xec\xea\xb5kgm\xdb\xfeU__\x1fk\x14\xa2\x11\x002<>\xfeN(\x14\xda\xdd\xdb\xdb\x8bd\ 2\tJ\xa9g\xa5\xc2\xe5y,\x16\xc3w\xd6\xad["\\\x9e\x0b!\xe0\xd86R\xba\x8e\x89\ \x89\t\xf3\xf2\xe8\xe8+\'N\x9e\xfc\xb0^\x88z\xd6\x01\xd2\xdb\xdb\x1b~\xf0\ \xe0\xc1\xfb\xaa\xaa\xee\xde\xbf\x7f?V\xae\\\t!\x04\x84\x10\xe0\x9c\x831\x06\ \xc6\x18\x1c\xc7\x81\xe38E\xe7\x8e\xe3x}=s\x85\xc35EU\xb1\xf2\x85\x17\xd0\ \xd6\xd6\x16\xfc\xc1\xcb/\x7fp\xe2\xc4\x89\x1f\xa1\xf6t\\\x17\x00\x01@.]\xba\ tJQ\x94m;w\xee\xc4\xea\xd5\xab\x8bDK\xb1\xb6m{fY\x96g\xa5\x00R\xb4\x1f\x06B\ \xa0\xa9\xa9\t+\x12\t\xc4[Z\xe8K\xdd\xdd#\x83\x83\x83\xdf\xaa\x07\xa2&@WW\ \xd7o\x08!\xafwtt`\xe3\xc6\x8d`\x8cy\x00\xa5\xc2\xcb\x99\xe38\xe0\x9c/1?\x90\ \x8c\x95p8\x8cH$\x82\xd6\xd6\xd6`G{\xfb\'\xfd\xfd\xfdJ-\x88j\x0b\x19\xd9\xba\ uk\x07\x80\x13\xaa\xaa\xa2\xa7\xa7\x07\x8c1\x00\x85\xe9\x90R\x8az\xf2Gz\xa0Z\ \x93^\x10B \x12\x8d"\x9f\xcf\xa3\xab\xab\xabuzff\x08\xc0\x1b\xa8\x92\x0f\xd5\ <@\x16\x16\x16\x06\x15E\t\x06\x02\x01\xb4\xb7\xb7\x17\x85\x8deY5G_z`I\x0e\ \x94\x98?\xa4\x9a\x9a\x9a\xbc\t\xa1{\xfd\xfa_\x0e\x0c\x0c\xb4\xa0\x8a\x17*y\ \x80l\xd8\xb0a\x03\x80W\x03\x81\x004M\x83\xa2(\x9e\xeb\xfd\xb3M\xad\xe6\xf7@\ \xbdS\xb6\x1a\x08\xc0\xb6,\xc4\xe3qE\x8bD\xfe\x06`w\xc3\x00\xa6i\xfeZUU\xaa\ \xaa*4M\xf3\xc2\xa7\x11\xf1\x12\x80s^w\x7f!\x04\x14J\xe1P\n"\x04zzz^A!RX\xb9\ \xfe\xe5B\x88\xf4\xf7\xf7SB\xc8OTUE \x10\x80i\x9au%\xec\xd3\x86P9\x93a\xd4\ \xd2\xd2\xa2\xfcnp\xf0\x17\xa8\x10Fe=p\xee\xdc\xb9\xef\x11B\x12\x8a\xa2@Q\ \x14\x10B\x90\xcb\xe5\x10\n\x85\xea\x1eI9\x9ae\x93\xb8J(q\x00\xdc\x07@\x08\ \xc1\xb2\x96\x96\x83\x00\xce\xd6\x0b@\x1c\xc7\xd9\xa5(\n(\xa5\x1e\x80\xae\ \xebhoooH<\xe0\xe6\x80/\x84je\x81mY\x85\xc5\x07\x00\xdcpmK&7c\xd1\x03E\xb7(\ \xeb\x01BH\'!\xc4\x13O\x08\xc1\xe4\xe4$Z[[\xeb\xca\x01\xff\x88;\x8e\x03\xde@\ \xc1hY\x96\x14\xe1A\xc4\xe3\xf1H\xa5\xfe\xa59 \xd5%Kk\x1c\xc30p\xf7\xee\xdd\ \xba\xe3\xbej)\xe17\xce=3\x0c\xa30YH\xf1\xae\xa0h4JGFF\xa2\xf5\x00\x00\x008\ \xe7I\x7fY,mvv\x16\x8f\x1e=j<\x89}"\x97\x98\x0bb\xd96l9\xfa\xdep.j\xb8u\xeb\ \xd6\xfarZ+\x85P\xd4w^t-\x9dNCUU\xc4b\xb1r_]\xd2\xaa\xad\xc4\xf2S\xce\x18,\ \xd3\\\xaa\xc3wn\xdb\xf6\x8ar\xf7\xa8\xb4\x0e\xa4\x85\x10\xad\x00\x8a\x16!\t\ \xa3\xeb:\x9a\x9b\x9b\xb1|\xf9r(\x8aRu\x81\xaa\x9a\x03\xee,\xe58N\xf9\xcb\ \xbesEQn\xd7\x03 \x00\x10BHJ\x08\xf1R\xd1r_\xf4\\\x81\xf9\xf9y,,, \x16\x8b-y\ \x8d\x94}$@\xb9iT\x96$U\xbd\xe3\xbb\xc7\xd1\xa3G\xc7\xeb\x01\x90\x0f\xd7e\ \xad\xef\xaf\x1cKEr\xce1??\x8fL&\x83H$\x02EQ\xa0\xaa*Tu\xf1\xb6^\x0e\xf8\x06\ C\xde\xb3b\x93e\xb7\x0b\xf2\xe4\xc9\x13\x07\x15f\xe0r\x00\x02\xc0\'B\x88\x83\ \xb2t.\xe7\x05\x7fc\x8caaa\xa1\xe83\xb9\x08j\x9a\xb685\xd6\xd9\xbc=\x17\x17$\ \x9dN\xa7J.y\xad\xec,\x14\x8f\xc7\xdfc\x8c\t\x7f\xf5Y\x0b\xa2\xb4\xc9\x8a\ \xb5\x91:\xc8S\xe8{\x96\x10\x02\xe9\xa9\xa9\x7f\x96\x13_\t@\x8c\x8e\x8e\xa6\ \x00\\\xf1\xbfqU\x8b\xd7\xe7\xdaJ\xd6\t\xce9\x1c\xc7\xf9C\xa5\xee\x95\xde\ \x07\x04!\xe4]\xc6\x18l\xdb\xf6\xde\xc2j\xc6\xee36\xf9\xae\xec\xb7;w\xee<>|\ \xf8\xf0}4\xe0\x01\x00\xc0\xf6\xed\xdb\x878\xe7\x0f\xfdU\xa8\x04\xf9o\x89\ \xe7\x9c\xe3\xfe\xbd{oV\x12\x0fT\xf1\xc0\xe9\xd3\xa7\rJ\xe9\xdb~\x00\x19J_\t\ D\xe9\xcb\xbe\x10\xb8\xfd\xf9\xe7\x0f\xdf\xee\xef\x7f\xb7\xda\xd7\xaa\xbdR\ \x8a\xe3\xc7\x8f\xff\x9ds~\xcd\xb2,\x98\xa6\xe9\xed2\xe7\ \xce\xcbv\xfc\x92_\xe4Eh\t4\x8e\xb4\r}@\xa4\xb6\xbc\xdaD\x80X*\x93\x90\xd2\ \x86\x92*\xa0\xd5\xb6]\x95\x95\xd0\xaa\xe0E-\xd2\xf6\x91\xddn\x11\xa5\x82 \ \xa5\x08-\x81t[\x9cW\x97\xb0\x90&[\'M\x1c7\x1bC&\xb6\x89\x13O2\x9e\xf1\xd83~\ \xcc\xd8\x1e{\x1e\xf7\xee\x1f\xf7\x8e=v\x1cb;F\xab\xfe\xa4\x9f\xceHs\xcf9\ \xdf\xef\xef\xf7=\xbfs\xce\xbd\xc2\xb2,\xfe\x9aM\xfa\xff\x06p\xbd\xf6WO@\xf9\ $\x07\xaf\xda\xb5\xfbK9h\x94\xc8}\xb7w\xeb\x96\x0f>\x899\xc4\'\xb1\x06\xc4s\ \xcfI\xcbW\xde\xf2l\xda4\x7f\x981M\x19\x18\x17\xf0\xdd\xde\xad\x9b^Y\xf4\xb9\ \x16\x9b@\xe5\xce7*k\x8b<{\x12\x99\xcc\xfaD:3c6\xde0s\xee\xed\xfd\xdf\xbe?\ \xb9X\xf3-\xea\x1a\xa8y\xed\xcd\xbb\xd6U\x97\x9f\x9d0\xcd+\xc1\x03Xl\x96\xa4\ \xb1\xd6\x8a]\xff\xb1v\xb1\xe6\\\x94\x0c\x88={\xe4Oe\xe4\x1f\xddYW\xfdts$*"c\ \xa9ku\x99\xc0\x12\xff\x10}\xec\xe1\x97\xae{\xee\xeb%P\xfe\xfa\xebU7{K\x7f\ \xff\xb5\x1bj>\xf7VW7\xe1\xd1\xb1\xb9O\x0e{2jn[|\xcb\x96\xc4B\xe7\xbf.\x02\ \x95\xbfy\xf3\x9e{j\xab\xde\xfc\\ey\xf1\xce@\'s\x88\xfcl\xd6e\n\xf3\xe1\xfeo\ =\xd2\xba\x90\xce\x0b" \xf6\xec\x91\xabS\xd6\x8f\xb6~\xea\xc6\xa7+\x0c\x97x\ \xe5\\\'\xfd\xa9\xf1y\x8d\xa1J\x12\xb2\x10\xe4,\x8b\xaci\xa6M\xac\xa7\xfa\ \xb6n~a\xbeX\xe6\xbf\x88\x05\xb5_8\x96\xfd\xd9*\xbf\xf7)C\x91\xc5\x8b\x1f\ \xb6\xcf\x19\xbc*I\xf85\x95\n\xc3E\xa5\xdb\xa0\xda\xe3f\x99\xcfK\x95\xc7\xad\ \x91\xcb\xfd\xc4\xff\xfc\xbf<\xd6\xd0\xd0 \xcf\x0b\xce\xbc2 \xd8\x80\xcakcd\ \xdc\r\x9b~g\xfc\xf9\x8e\x14\xb2\xe6\xbaf7\xb7\xa28.\xe3Rd\\\xb2<\x99\x81\ \x9e\xd11.\xf4G1C\xdd\xdc\xd1\xd9\x11R\xd2\xe9\x0bB\x88\xcdMMM\xe1\xc5# P\ \xf0\xf3S4\xbeO\x0c\x01`\t\xf8\xf9\x17\x8f\xf1\xfcCg\xd0KJf\xed\xe6Q\x15<\ \x8a\x82WU\'\t\x18\x8a\x82&K\xe4L\x8b\xd3\xf18\x97\xc2\x97)\xed\xee\xe2\x8b\ \x83\x83\xa4\x86\x87\xf3]\xfbM\xd3|t\xff\xfe\xfd\xef\\?\x01\xc1\r\xdc\xc8\ \xef\xc8\xf17\\\xbc\xf2\xef\xe3u!\x1e\xddr\x90\xe1U\x1e$\xc9\xce\xbe.\xcb\ \xf8T\x15\xaf\xaaL\xb6\x1eU\xc5\xa3(\x18\x8aL\x7fj\x9c#\xa1\x10\xf1p\x90[.t\ \xb1NU\t\x87\xaf\x08\xb8\x05\xfc$\x99L>s\xf8\xf0\xe1\xec\xc2\x08(\xdc\xcf\ \x9d\xbcN\x0f>\xce^\xfd\xb1\x01#\xc5c\x7f\xbb\x8f\xa3w\x8cP\xe2\xf3S\xa4i\ \x93\xe0}\xaa\x8aO\xb3[\x8f\xa2p:6@s\xf0"\xd6\xe5\x8b|\xb9/\xca\xa7\xcb\xcb\ \t\x04\x02W\x1f\x1c\x9a\xb3\xd9\xec\xa6\x83\x07\x0f\x86\xe6N@\xa0R\xca\x0e\ \x1e\xe1\xef9\x02\xb4}\xdc\xf8S\xf6\xaf_8\xce\x8f\x1f:\xcd\ru5\xd4y=x\'\xa3\ \xaf\x903-\x8e\x84{9\x1f\xea\xa6\xac\xbb\x8b\x87\\.\x96\xf8\xfd\xb4\xb4\xb4\ \xcce\xe8\xb8\x10\xe2[MMM\x07\xaeM@\xb0\x8c\xd5\xbc\xcdw\xa8g\x17pfn\xe0\xf3\ v\xb2\xa6\x87o|\xe3\x00\xca\x9aR\xea\xcb\xcbp+\n\xf1\xf1qNFz\x19\xe8\xe9\xe6\ \xd6\xee\x0b<\xfe\xd9\xcf\x92H$hnn\x9e\xcf\xd0\x96\x10\xe2\xe7\x89D\xe2\x9f\ \n%5\x9d\x80\xe0A\xee\xe55\xbe\x8e\x97\x7f\x07>\x9c\x1fxg\x0c\x86\xf4q\x1e\ \x7fp\x1f\xc7\xbf\x92\xa2\xb2\xa8\x98\x0b}\xbd\x88P7w\x84{\xf8\xfe\xa3\x8f\ \xd2\xda\xda:_\xf0\x85v\x1c\xd8\xb4w\xef\xdeK\xd3\x08\x0c\x8a\xc1\x9d%_/y\ \x9c\xf5\xc0\x8b@\xe7<\x86\xd4\x01\xc3iu\x9b\x04\txa\xd9\x9f\xf8A\xc31\xaaB\ \x97\xb8+\x93a\xdb\xd6\xad\xbc\xff\xfe\xfb\x9c8qb^\x88\x85\x10H\x92\xbdeY\ \x96\x85i\x9a\x83B\x88\xadMMM{\'7\xb2\xdd\xec~8~ \x0e?\x9e#x\x19\xf0\x03\xd5\ @\x9d\xe3\xb5@\x15\xe0\x86\xd8H\x0c\xa5\xeb$\xdf\xbc\xe1\x10\x9e?\x1e`\xcd\ \xea\xd5\xbc\xf3\xce;s\x06/\x84@Q\x14\\.\x17\x86a\xe0v\xbb\xf1z\xbd\xf8|>\ \x80\x92\xd6\xd6\xd6\x97\xc0\xc9\x80\x10B4\xd28\xa8\xa1\x15md#\xf5\xd4_}d\ \x15\xf09\xee\x05<\x8e\xeb\xd8\xf7\xbbN8\xf3\xd1\x19\xfe\xf4\xe9\x9d\xdc\xf6\ \x8b\x83\x18\xd5A.]\x82\xc6F\x03\x9fo\x1d^\xaf\xf7c\x81K\x92\x84\xa2(\x93.\ \xcb2\xb2,#I\x12\xd9l\x96`0\xc8\x89\x13\'H\xa5R=@]\x9e\x80\xdcHc\\ \x8a\x00\ \xd6\xb2\x96\rl@E-\x18\x19(r\xa2\xee\x9fA\xc2\rd!\xf3\xc7\x0c\x07#\x07In\xda\ \xc9\xba\x1f^$c\xb5OvO\xa7a\xc7\x0e8wn\r\xb5\xb5\xb5W\x05\xae\xaa\xea\xb46\ \x0f~tt\x94S\xa7N\x11\x08\x04pd\xdf\x0b\xd4\x08\x07\x9a\xd2Hc\xbf@\xf8\xf3\ \x03\x96SN\x03\r\x94Qf\x03,\x9a\xc5\xf3D"\x10\xdf\x17\xe7\xb7\xd2.V<\xbf\x9b\ U\xf7/ad\xe4\xbdY#|\xe8\x90\xc5\xcb/W\xb1re=\xb2,#\x84\x98\x06z&\x01!\x04\ \xe1p\x98\xa3G\x8f\x12\x8dF\x91e\x19M\xd3\x90$)6::Z#\x9c\xc4\xbb\x1ai\x0c\ \x0b\x84o\xbaZT6\xb2\x91z\x7f=,\x05\x8a\x1d\xd0y\x02\x1e\xe0\xcfp\xa6\xf9\ \x0c\xcd\xab_\xe1\xf6\x97Z)[q\x0b\x83\x83\xbb>V&\xa1\x10<\xfb\xac\x0b\xaf\ \xf76\xca\xca\xca&\xc1j\x9a6IBUUr\xb9\x1cmmm\x1c;v\x8cL&\x83a\x18\x93\xcfX\ \x965\xd4\xd7\xd7W+\x03\x1a\xe0^\xcf\xfaG$\xa4i\x87\x1a\x13\x93v\xda\x19\x9e\ \x18fej%r\x8dl\x93p\x01)\xc8\xec\xcd\xb0?\xb0\x9f\xd0\x96\x9fr\xcf\xab.\xfc\ \x15730p\xedK\x96\xdf\x0f\x1b6d\t\x04\x82tthTTT\xa0\xeb\xfa$\x11EQH$\x12\x1c\ 9r\x84\x96\x96\x164M\xc3\xe7\xf3\xe1\xf5z\xf1z\xbd\x18\x86\x81,\xcb\xe3CCC/\ \xca\xd8\xcb\xcf\x1b"t|)KW\xbbpU\xcf\x9c\xb0\x97^\xda\xd3\xed,\xebY\x86\xc7\ \xf0\xc00\xc4\xfe;\xc6\x1b\xb9\x97\xa9\xdc\xf1\x02_z\xfaI\x10c\xc4b?\xbb&\ \xf8\xbc\xc92\xdc~;\xf8\xfd\xbd\xec\xdd\x1b\xa3\xb4\xb4\x1a\xc30\xb0,\x8bp8\ \xcc\xa1C\x87\x08\x85B\xf8|>\xfc~\xff$\x01\xb7\xdb\x8d\xaa\xaa\xb1d2\xf9T2\ \x99\x0c\nlQ,\xc1.\x84\xcb\x1f\xe0\x81\xcd\xf5\xd4\xdf#!]qW\xc8K\n\x01\xc7n}\ \x99\xcf\xbfp\x98\xd5\x9f\x7f\x9b\xc1\xc1W\x89\xc5v\xcc\x19\xfc\x94\t\x00\ \xc2a\x8bg\x9e\xd1))YO*\x95\xe2\xe4\xc9\x93X\x965\x19q\x8f\xc7\x83a\x18\xe8\ \xbaN*\x95\xea\xec\xe8\xe8\xd8166\xf6!\xd0SH\xa0\x06X\x06,\xbd\x99\x9b\xd7\ \xdc\xc7}\x1b\xdd\xb8g\xadyKn\x0fp\xe7\xaf\xff\x87\x95\xab\xde\'\x1e\xff\x15\ \x03\x03\xbf\x9a;d\xa1 \x84\x1bI2\x10\xc2\x85\x10*\x96\x95a|<\xcc\xf7\xbe\ \x97\xe6\xe8Q\x0b\x97\xcb5Y\xf3\x0bdcF"\x91\xe3\x81@`?\x10\x04.\x02a\x05\xc8\ \x01i`\x14\x18\x06\x06\xcfq\xae3D(\xd9@\xc3\xddu\xd4-\x9d\t"\xe3Jp\xeel/&\ \xf7\x02=s\x02.I\xde\x027\x10BG\x08\r0\x19\x19\xe9\xe0|\xfb\x04^\xb7\x85\xae\ \xbb\xf0\xf9|\xd3\\\xd3\xb4\xd1@ \xf0_\x91H\xe4C`\xd0\xc19\x06\xa4e\xec2*\n\ \x1c\x804\xe9\xdciN\x07ut\xb3\x86\x9a\x1a\x81\x98\xfcO_\x11B\xba\xf1<\xfd\ \xd1a\xdc\x1e\x81\xee\x12\\\xcd$\xc9\x8f\xa2\x94\xa3(\x15N[\x86\xa2\x94!\xcb\ K\xb0\xac\x0c}\xd1S\x9cm\x1bfl\x0c\x82A\x9dp\xefT\xd4\xbd^/\xd9l\xf6RKK\xcbo\ \x87\x86\x86\xce\x03Q \xe2\xb4\x03\xc0h\xfe\xfei9\x99\xc8\x01\xd9\x82\xdfV\ \x17]\xb1^z#+XQ\xa7\xa1\xe9y\x02\xc6-\xe71s0\x10\xb3@\x08\xbc\xbeB\x8av\xc4\ \xa7@W\xa0(\x15\xa8j%\x8aR\x8e,\x9721\xf1\x11\x9d\xed\xcd\\8?\x81i\x82,+D"\ \x1e.\xf7x\xf0x<\xb8\xdd\xee\\,\x16;\xde\xd6\xd6\xf6\x87l6\x1bq\x80\x87\xb17\ \xb0\x18\x90\x04RW#\x90q\xda,`\xc5\x89\xa7>\xe0\x83\x0bu\xd4\x95\x16QT\x92\'\ \x90\xb7\xe4\xb0E2\tE%\xc2)\x83\xa5\xc8r>\xday\x02\x95(J%\x92\xe4a`\xe0\x00\ \xff\xfb\x973\x0c\r\x98\xc82H2\xa8\xaaAo\xd4Cw\xd0@Q\x94D0\x18l\n\x87\xc3\ \xad@\x9f\x03\xbc\xa7\x00|\x02H\x01\x19\xc5\xb2,K\x08\x91sH\xe4\x89d\xb0\xd7\ \xc5x\xde\x93$\xd3\xaf\xf2j\xd3\xdd\xdc}\xdbg\\\xddKK\xecE?\x8d\xc4\xd939V\ \xde$QZ\xe6qdR\x8c,\x17#I\xc5\xc8\xb2\x9fl6\xca\xa5\xe0[\\8\x9f\xc4\xb2\xc0e\ \x80\x90\xf2\xba\x1d\xc7\xf0\xf8\xc6\xd2\xe9t\xa4\xbb\xbb\xfb\x0f\xb9\\.\n\ \xf4;r\xe9\x03\xe2\x8e\xf6G\x1dlY\xc0T\x00\x1c\x12\xa6\x03\xdc\x02L\xe7\x814\ 0Q\xe8\xef\xf2\xee\xb1\xa1(\xb1\x9b\xd2ThZ\xe1a\t2i\xe88\x9b\xa1\xba\xb6\x9b\ \xa5+\x14T\xb5\x06!t\xc0bd\xe40\x1f\xb5\x9f$\x1e\xcf\xa1(\xa0\xaa\xa0\xa8 I`\ Y\x90\xcd\xe4\xcc`w\xf4\xe4\xe5\xcb\xd6I\x07l\xd4\xf1~G\xefI\'\xea\xe9\xbc\ \xbc-\xcb\xb2\xae\xb8\x91\t!$\xec\x85\xadb\xef\xb9>\xa0\x04(\x03*\x80J\xa0l\ \xf92\xea\x9e\xd8\xc6\x86\xf2r\xca\x98\xc5\xfcE\x82\x9bVW\xe2\xf3\xd5\x93H\ \xb4\xd1y\xae\x97t\xdaB\xd7Aw\x81\xcbe\x93\x10\x02\x86\x86\x18\xdf\xf1o\x1c<\ z\x94s\x05Q\x8f:r\x19\x04F\x1c%d\x81\x9cU\x00z\xd6;\xb1\x10b\xf2\x90\x87\xbd\ S{\xb0O?\xa5\x05$\xcau\x9d\xd2\xed\xdb\xf8\xf2\xda5\xac\x99\x8d\x84\xac@U\ \x8dD\xb4\xd7\xd6\xba\xee\x02\xb7\x1b<^0\\\xa0\xeb\xd0\xd1At\xfb\x13\xfc\xe7\ \xc0\xe0\xa4T\n\xc1\'\x98!\x19k\x06\xe0\xab\xbe\x95pH\x08\xec\xab\x8b\x86}&\ \xf5aozy\x12\x15@\xf1W\xef\xe5\xd6\x07\xef\xe3nUE\xcf\xf7\xb7,[\x8b\x92\x0c\ \x9afG\xdc\xe3\x05\xaf\x0f\x8a\x8b\xc10\xb0\x9a\xde\xe6\xf4\x0f\xfe\x91w\x81\ !\x07|\xaf\xd3\x0e0\xb5P\xa7I\xe6\n\x9c\xd7z/4\x8b\xa4\xbc\xd8\x92*/ \xb1d\ \xf9r\xaa\x9e\xfc\x0e\xf7\x95\x95R\x99\'\x80\xb0e\xa2\xbb\xc0p\xdb\xe0K\x8aA\ \x92H\xff\xf3s\xec\xfb\xfd\xdb\x04\xb0%\x92\x8f|^\xef#\x0e\xf8+$3o\x02\x0e\ \x89\xd9$U\xcc\xd4\xba\xa8\x00Ju\x9d\x92\'\xb6\xf1\x955\x9fam>\xfa\xaa\n\x86\ \x01\x1e\x0fx\xfd\x10\t\x13\xde\xfe${\x06\x07\x89c/\xd6>\xc7\xfb\xb1\xab\xcc\ \x08v\xc1\x98U2\x0b"P@b\xa6\xa4\x8a\xb0%\x95\xcfF\x19P\xbc\xe1k\xd4\xdf\xbf\ \x91\xbb\\.4\xd5\x91\x8f\xa6\x93{\xef=N\xfc\xe2\x97\x1cq\x80\xc6\x98\x8az\ \x1c[2cL\xe9}V\xc9,\x98@\x01\x91BI\x19\\)\xa9r`\xc9\xaaU\xd4\xfd\xddv\x1e(\ \xaf\xa0d|\x9c\xe4K\xbff\xdf\xa9\xbf\xd0\xc5\x94d\xf2Q\x1f\xc4.\x91\xe3\xd8e\ 0]R.\xa6\xaaT\xa1\xa4\x96\x18\x06%\x9b\x1ff\xdd\xee\xb7h\ \x19\x1bc\x88)\xc9\xf4cg`\x08\xbb\xcaL8\xe0\xaf)\x99E!P@"\x7f%\xd5\xb0\xb3Q\ \xc4T6\xca\xb0\x8f\xea\x1a\xb6,\x12\x0e\xe8\x18SUf\xde\x92\x99i\x0b\xfe\xd0\ \xedLf\t!\xb2\xd8;w\xfe,\x95?\x82$\xb1\xcb\xae\x8a\x1d\xdd\x11\xa6\x8e\xc2\ \xf9\x8d)\x8d\x1d\xf59Kf\xd1\x08\xe4\xcd\xb2,S\x08\x91?G\xe5\x8f \x13\xd8\ \xd20\xb0\x17}\x0e\xbb,\x8e2U\xdb\x17$\x99\x99\xb6h\x1f\xbagT)\xb5\xc0%lb\ \x99\x02\xbf\xea\xc64\xefy\x17\xfbK}\xc1\x02\xcf\xbb`*;&\x8b\x10\xf5B\xfb?S\ \x84\x089\xa2\x01e\xfc\x00\x00\x00\x00IEND\xaeB`\x82\xc2\xb0\xfc\xcf' phatch-0.2.7/phatch/actions/copy.py0000644000000000000000000003223511346363116017171 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu). # # Follows PEP8 from core import ct, models from lib.reverse_translation import _t #no need to lazily import these as they are always imported import os import shutil class Action(models.Action): """Defined variables: """ label = _t('Copy') author = 'Stani' email = 'spe.stani.be@gmail.com' version = '0.1' tags = [_t('file')] __doc__ = _t('Copy the original image') valid_last = True def interface(self, fields): fields[_t('File Name')] = self.FileNameField(choices=self.FILENAMES) fields[_t('In')] = self.FolderField(self.DEFAULT_FOLDER, choices=self.FOLDERS) def apply(self, photo, setting, cache): #get info info = photo.info #get file values folder, filename, typ = self.is_done_info(info) if setting('overwrite_existing_images') \ or not os.path.exists(filename): #ensure folder filename = self.ensure_path_or_desktop(folder, photo, filename) #do it shutil.copy2(info['path'], filename) return photo def is_done_info(self, info): folder = self.get_field('In', info) filename = self.get_field('File Name', info) typ = info['type'] return folder, os.path.join(folder, '%s.%s' % (filename, typ)), typ def is_overwrite_existing_images_forced(self): """Force overwrite when copying in place.""" return (self.get_field_string('In') == self.FOLDER) and\ (self.get_field_string('File Name') == self.FILENAME) icon = \ 'x\xda\x15\x97\x078\xd4\x7f\x1c\xc7\xef$\x9b\xb2"+\xe3H\xc8&\xc9J\x88\xcbv\ \xce\xc8\xea\x8c${D6eg\xaf\xecqIgvd\x9c\x8b\xec\xbd.\xc9\xdeI\xf8sY!\xeb\xff\ \xed\x9e\xe7\xee\xf7<\xbf\xe7\xf7\xfc\xbe\x9f\xef\xe7\xfd~\xbf>\xdf\x8b\xd1\ \xd7}HK\xc5F\x05\x81@h\xb54\xd5\x0c\xc1U\xfc\xdf\x97\x82\x0c\xfc\x9a\x90\x1c\ G\x81\x0b\xa9\x97\xaa\x16\x82\x02|\x02)\xec\xa2!\x10\xba(-\xb5\xfb\x08\xc7\ \xb0\xba\xac\x00g\x84Ip\x8f\xb2\xaf\x95\xef\xbc\xd8HG\xfe\xce\x9b\xa1\xd0\ \xf8x\x8fV\xbah\xfe\xafeZ\x88\xb4(n\x04{I\x0e\xc2x\xda\t\x8f\xf9d\xfc\xd8\ \xf8Y\x93\xf9-\x1dC~f\xf8\x03\x06&\xc2\x073\xcc\xa3\x9cw\xb4\x8f\x9a\x8c)\ \xa0hCU\xae\x9cp\xda\xc9n\xb9E(\xbbr$\xb6g\xe5\xfa\x8cmb\xcf\xde\xe7\x86\x90\ \xc9\x95\x04r[\xcdP>\xce\xf5y\x9c\x17\xf18x\x98\x18\x10\xfcE\xcaw\x91\xab\ \x8e\xefa\xc27NE\xff\xfd+\xdb\xe3{q:\x8d,W\\\x9e?\x0f\x98FaO\xe34\xd0\x04==\ \xbd\x1b\xb9\x05\x05\x17}U\x96x\xc3CT\x05\x9e\xca\xfd\xbfI\t\x034\xe1\xbf\ \x86\x99\xad\x902dy2\x8cR+\xe5m^\xdeVAV\xd6K\xd4\xdap^&\xf1\xa7\x9f;\x0bT\ \xe9l\x7fLF6gK*\xaa\x03\x0bUI\x81QE\xb43\xa8\xc9\xe7\xe5\x17\xe4\xe4\x9c\xec\ q\xde{\xc1\xd1\xf8\xd8\xb6\xdd\x92D.\xf8\xf4(U\xb7t/(\xae\xabX\x8cJ\x94\x89\ \xea\x11\xa4k%PIO(\xdd\xdf\x1a\x838\x9fzpE1\xad\x85\xddv\x81\xbe\x15\xe7\xb5\ \xf6MJJ\xea\xe2\xc7\x8e_\xb0P\xec2m\xb8\tI\x12,\xc6Y\xf6\xc4E6\'h\x17\xdb\ \xc3E=\x7f+t\xf9d\xde\xefG/}H\x91\xfe/s\xfc\x8b-\xbd:\xf3\xdb)0\x9e\x81]\x9d\ .\x16\xaa\xcbvf\x1a)\xb0P\x81\x08U\x8f?\x93X[\xe5\x16\xa3P"s\xd8JO"\xb1\xaa\ \xa2\xe2t\xd4\xa9\x8e-\x8e\xd7\x8d\xbf\xe5sfE\xf2\x19\xbcd\xd7\x8d+\xe4tgP\ \x91\\\xceg#\r\x9e\xb1zg\xce\xf5\xd0:\xbaX\xb0u\xb7\xcb\\\xd4"\xe5\x1d\xffL\ \x05\xcc*\xc3\x1ebg\xa6D~z\xce\xa8\xa7 \xe17\x02I\xe0\xb8\xbb\\g*R \x9f7\x8c\ \x8cP\xc5\xdaE\xa1\xc4\xe2[\xe1\xe2\xabk\xc2\x9f\x9e-\xea\xbd\xd8\x9a>\xe8\ \xb3$w\x04\xed\xedt\xaa;\x9fv\x96}lg\xf6~2\xae=n\xd9\xa4\xd6\xe8\xd67!\x9dk\ \xa4O\xac\xed\xedWG\x1a\x9c\xa7R\xf0\xb6\xa1\x0f\xa2\xe8nU"7\x95ME2\xbe0\xab\ \x1b\\%\r\xf3\x0c\xcd9\xf8\x1a\x81\xef\xafX\xa8\xc8\x83\x06\x7f~>Q\x95L\xa4u\ \xdf\xffE\x80\x1b0\x85\xd8\xca\xe6\xdc\xd0\x17\xbc\x96b\x8c92\x0c\xf5|k\xb8\ \xd4\xb5\xb9\x80\xee\xba|\xff\x08\x9dw\xcf\x97\xebl\x18\xd2\x93\xc0\x19`Z>~n\ ^:v\x17\xaelMiS\xa79\x0bo\xe4\xa6\xa0\x08\xff\xe8m1}\x8d\x98iov\xfe0\xb5o\ \x7f\xf9_\xd7\xbf\xf0\xb7\nW\x7f.\x9e\xacw\x99yT,x\x9eg^i\x85\xe4C2Z\xd3a\ \xb3\x17\r\x97V\x97\x1f\xf1\xc4\xfe\x8e38\x9d^rW\xc0\x07\x9d\xfc)\xda}Z\xd6?\ |1\xb6\xeay6?8\xf8&id-S\xf1\x83E\xa0G\x06\x9ce\xd7\xa9\xdddc\xd5f\xf5\xb0\ \xb7\xe6\x8dy\xa5\xc3P\xb6\x8c2\xc7\xf5\xeb8\x12G\xe4e\xb9\xc0#w\x07\x14J\ \xd5\xef\xcf\xd4S-\x81T&\x1e$I#\xa75ux\xa8j\x91\xa9G\xb7I\xad\xde\xce\x94S]\ \xb6\xcf\xe6w\x8f\xd3#\x0f\xa5\xf3\xa3\x95\xdd>\xb2\xfez\x86\x14\xd8\x94\x86\ \x86\x86\xdf\xd9\xc1D\x9fC\xed/oyO\xdc\xac\xe1\xc8\xda\xde\x00\xd5h\xe5k\xe1\ t8\x13UWM\x15B\xc8\xed\x97pP\x8fC-=\x05\xe9$\xdeW\xac p\x972K\x9b\x0ciZ[\x02\ \t7\xaf|\x11\xa9\xca#\x99ECl9\x11mnn\x96\xe3H \xa6\xa9\xc3\xd5g\x13~\xa7\xab\ \x94\x95\x97C\xfd\xce\x8f\xd7\xd6\x89\xc4\x9b\xd7\xe2$\xa4\xa4\xf8.\xf5\xef\ \xee\xc0;\x8aE\x98\xa8\x8c6\'\xaaK\xab\xab\xaf4\xcc\xe8<~\xcc\xdef\x93TZ\x10\ \x9c\x8d\xc1`\x8c\xbd^\x12\x18\xd4\xe9\xd5\xdf\x1a\xb2W\xda\x95\xda\xa3\x10B\ \xa7\xc1\xca\xa5\xbay\xcb\x8bm\xaf4S:\x0f6\'0UU\x02\x05#\x03"\x15\xd0gX\xb1\ \xb8P\xc8\x07O\x9c\x85R:\xdc\xc0\xda\x1a\x98\x1d\xe5\xef\x9f\r\xc4\xdc\xf9\ \xfe\xd8\xadH_P\x9c-\xfe\x0e\xb3\xb5\xfcL8w\x85|\x87\xb0Oj\xdf\xeb\x915\xdb\ \x85\x96 \x0e\x05\xbf$oy\x1dA&TG$\xad \x13\xd5\xd7\xf5O\xa4\xbf\x06\xd0\xfa\ \n\xf4\x10\x17i6Ea\x8avb\xb6\xf6{*\xf0|\x9b\r7\x07\x1dz\xdc\xe9n\xc0\x1f\x11\ \xba\xa8W\xd3\xd3\xe6?\xd7\xd6L\x98C\xa4\xd8\xd3\x83\xad\xfe*\x82\xea\x95\n\ \xd6\xbaX\xac\xed\xbc\xbd\xd3\xfa\xfa\xb4j\xa6D6\xbfW\xda\xba\xba&8Jg7\xfb\ \xed,\x8fHe\r2s\xd3\xfe\x18\x802\x85\xb2\x8dv\xaf\xec$\xa8\xf1.\xd5\x9bWBK\ \x0cc\x16\x88O\xdd\xdd\xafV"\x07z{)RSS?\xd5\xd7\xa7\xe8\x96f:\x1b:\xc5\x8fwf\ \\\xc2 \x84@\xff\xee\x06\xfd\x95v\xfbr&;\xe5\x9cA \x18|\xb6\x12\xd3@\'{\xcb\ \x0f\x8d\x97\x9b\xac\xb0\x88Z\xf8\xf1\xa7\xf6\xe5\x92\xbf\x0f=N\x87\xc4\xf6\ \xb0\xa9|s\x94\x06\x08\xf0\xda\xfb\xef\xbf\n\\\xe3\x07\x87\xa7O\xfb\xec$\x7f\ x\xde\x15\xb5\xfa\xac\xf9\xfc\xb9p\xb1`\xca\xc8\x9a\xdb\xdb\xe3\xf4\xcf\xd6\ \\\xcc\xcdV\x89c\xebv\x17\xe7g\xb9r\x1e\xe1\xda\x02\x0f`\x0cE%%\x11v\x92ZB\ \xe9\xbc\x0c1?\x80\x0fB:WvD\xb9\xdb\xdb\x13dh\x99\xfa\xa1\xa4*d?\xd6\xf2\x03\ \\W\xb6\xe7\xf0\x0b\x15eee\x86\xe5\xe3\xfb\x87\x87|\xb1\xbc\xb29\xb4\xe5\xe3\ pA\xa6v\x14vtf&nf\x0bl2I\xb7\xd4\xed\xa3\xfaK\xb1f\x87\x86\x99\xbe\xb5\xbd\ \xcf\xbf\xdb\xa9\xbd\xbd\xbdE\xb6r667czV:W<\x98\xa8.\xb3\xdfqE\xd4\xd7\xd7\ \xbb\xce\xd7\xbb<\xae\xc0\xe3OBv\x8fOi\x92,\xbf5\xc1\x02\xd7\xfd\x80HnU\xd6_\ \xce\xab\x19b^\xa3\x9c\x9cb\x1d\xa5\xe1\xd2l%\xb5\xb5\xa9\xb1\xb1T"\xd7\xa8]\ \x1br\x86\x87u\x9d\x9c\x9c\xc4YiHI\xa0\\\xc1GO\xde\x97\x96f\x9a\x95I32C\x11B\ \xcc\xc6\xc6\xc6\xb9w\xbd"}\xe7_F\xe5\xbb_I5\xb9\xf9\xf2g\xd6\xd3\xdeU\xcfwc\ \xcf\xda\x97\xc4\x9f\x7f\xafh[\xd9Y\xf4\x96\xf7\x90\xe3@\x98\x98\xa0\'6m\xef\ \xbd\xf8\xef\x83y\xee\x19\x7f\xa8\xbd\xb0\x7f`\xe0i\xe2\xe6\xc6F\xf6\xa50H\ \x84*4\x1d\x1ea\x88\xe9Da\xaf\xc6ui\n\xa4~\x18w\xda\xd8\xd8`eg\xe7\xcb\x19"\ \x19]X\xd0\xf3\xf2\x92\x82\x970h\xa5 +j\xe4\xf3\xe8\x1af\x86\x02\x88\xcd=a\ \x89t\xee\x7fYJ\xb3|\x07W\x9a\x97\xbb\x96\xdc\x99X\x84\x87\x86\x86\x8e\x02\ \x95\x14\xb8\xae\xa4\xa7\xa7K\xcb\xc8<\xa9\x9d\x9alp+\xd8\xde]\x1d\xa8N\x8b\ \xfd\x02m]\xd99}\x02cx\x16\xdd\xb3\xe2<\xd7\x94\x1e\xa8\xf4%\x8d\xe4\xc0_\ \x11g\x91\xb0\xb4\xf4\xe4\x8d\x06\x9fk\x03{\xb3\xd5\xc8\xe8\xe8\xd5\x17\xf8<\ \x1b\xf1\xe8\x81\xd5v\xd7\x86\xd4\x81\xd5\x8c\x180=@MV\xc1\xc7\xf6\xd333\xeb\ G\x9bt~\xac\xb9\xca\x1e\xbb\xe8\x9b\xc1\x9d\x8b\x8b\xdc\xe1\xdc\xa3\xb3\xb3o\ zV\xc0v\xf5\x8d\x8d\xbb\xce\x0e\x17\xf4\xc4Y\xff\xc9n\'y\xfd\xef\xc9\xc9E~M=\ M\xeb\x92\xfb\xa9j\xc6j?\x0ew\xb7\t\x8f\x9fj\t\xbaW,\xc8KA\x020n\xc0DX\xf7&}\ u_[\x80Q>/\xa1\xa9\xa9\x89?N\x1dm\x00\xc2\x1e\xa6\x12\xaa-\xf0J\xb5\xa8\x95x\ 861\xd1\x93\xaf\x18\xa0Yb\xb8\x7fp\x90\xcc\x01\xf7\xbc\x08\x99\x1b\xe1\x9b\ \xb9\xb1\xb4\xbf>vt\x16\x0c\x04\xdf\xf1o\xf6S\xe0\x02)\xd6\xd1\xd1\t\xfc\xdd\ F\x1e\x08\x88`Wk\xa6Zt\x95\x91\x91\xb1\xba\xea\x1aT]Gg(U6\xe7\xf6\xd5\x1850<\ \x80Q\x16\x0fO\x00\t@~\x0b\t\x8e\xfa\xe5\xe3\xac\xf1\x1a\x91QQ\xc0G\x00P\xd9\ \xd9\xd9\xbf67\x1fg\x1f\xe8\x0b\xaaYZr\x06\x7f)\xb8DN\xe7~\xf4\xfb\tH\x1e\ \xc8\xd0\xe0\xf0\xf0\xee\xb7\x8cRq\xe1\xa1\xfd\xfd\xfd\x8f/\xf7\x1c\xc0\xb2J\ \x05\x89\xfd\xfdpP\x08\xe6\xc3\x07\x9b\x91|\xc5\xd7\xaa<\xef\xdf\xbf\x7f\x9b\ \x95UT_\x8f\xa4"{Um\x94\x12\x06g\xc1B\x1c\xcd\xcd\xcd\x13LLL\x94?Ll\xe2|\xf8pO4\xb3\xdc\xaa\x12I\x1d\x1f\x1f\x0f\xa6\ \x0bZ_\xb0\xd7N\x12\xc4m\x1bOTJ\x83\xf3\x17\x0b\xa2\xc4Y\xc5s\x86&\xb7^\x80\ \xe5hii\x03\xc1i\x87C\xce=\xb4:\xe4\xb7\x0cf\xc2\x88"\xe4\xd6\xc7\x93(|V~>\ \x90~\xcd<$\xe4"\xa0F\xc4\xda*\xf7\xf8\x89\xcd\x9b\xd5{\xa3\xec\xc13\xf3\xbf\ \xd9kI\xdf\xb1\xc6\xf0G{\xcb+\xca\x8a\x8b\x8b\x17Nl\xde\xc9\x1ar\x88\x1fY\ \x03\x99\xa0\x8f\xd7\x90\xc8\x19\xa2\xa1\xa1\xd172z5\xe7\xfa\x10\x83\x00\xeb\ \xfd\xf6Sh\x9cs\x9d\xf7[\xa1\x15\xb5l\xfa\xc7T\xec\x8dN\xf1\xd3\x9c\xb0\x02\ \x99\x8b7mm\xf7q\xcd\xcdg?\x80e{\xf83(\xa1\x06\xd7<\x833j\x96}\xeeAV\t\xbd\ \x1f\x93Z$S`\xfcQQQ\xf8\xb5\x9f?\xbf\x03\x06\xe2\xbbPm\x80\x98SS13[\x02\x0c1\ \x85\x08!\xb3Z\x07\xda\xf1\xf1\xf1N\x94\x84U\xd0\xc18\n\x0ec\xa5\xf9*\xfd\ \xbd\xd3\x88=\x7f\xf9G_\xea\x1e\x90I\x11\xcc\xd2\x90\xc7\xbc-\x8eY\xb8.\xacI\ \x10\xda\xfd\x9e[i\x84\xba>\xa7\r47\x94\xe57~n\xbb\xc7w{\xf6\xf8\xed\xc4\xa6\ 1\x10\xa1\xe5\xef\x860\x18\x8a\xc0\xdb\xc0\x14\x9e8\x8e\x9bz\xf9\xb0\x82\x11\ )\x19\x99\xae?[3\x06\x18\x84\x1a\xda@7O^FARrW\x89\x1aIy\x9b*\x11+\xbe\xd9\ \x85\xf2\x19\x98\xe0)W/\xfcT\xe9\x88\xc1\xe1p\xeenn\xc4\xa4>;\'\xec\xccV\x19\ \xd0\x13\xb02Z\x8dw\xd2Yv8\xf7\xee\x03\xded\xee\x82\x91Z\x97\x19\xd9*\xab\ \xe6~\x10\x8a\x1fb-G\xcbq\x8e\xd2\xfeI\xab\x19Y\x10\x07\xc1\xf2O\xbe\xd4\x85\ \x14\xd8\x94\x12\x87Wm6\xbeB\xe9e\x87\'g\xc8\xcc\x01ucc\xe6\xad\xad-\xb0\xcd\ @\xa5\x1b\xb29\xf1\xc9\xc9\xf4\xedK\xee\x7fO\x8f\xf7\x88\xa5\x86\x181\x1cAR\ \xcb\xb5C\xd2\x97D\x9f\x0e+\xf2(\xa2ci>,\x0c\xaa\xe3\xe2\xe2\xd2j\'I\x99s\ \xc7\xad\xdbNRBAap\x7f_z!\xf8\xc4\xe5\x08\xccL"\\\x07\x15\xd6\xb4I!\t\x93\xf8}\ \xb1\xe4{\xef\xd1\xffy\xces\x9e\xf3\xbf\xe7\x02_\xf1\xc5p\xe8\xd0\xa1pggg\ \xeb\\\x9f\xa3\xf3!f\xae\xbc\xfa\xea\xab\x9b\x1d\xc7\xf9\xd8q\x9c\x9b\xe7\ \xfa\xec\xa2\x07\xf0\xd2K/5\x9b\xa6y\xd4q\x9cg\xb7m\xdbv\xa4\xa2i\xd6\xba\ \xc8\xfcI\xbb6===\xd1|>\xff\xef\xc6\xc6\xc6\x8bk\xd6\xac\xb9\x0b\x80\x04@\ \x06`\x03p\x16S\xdb5)\x97\xcb\x91K\x97.\xf5MLLd\x85\x10\xcb\xe1\t\x0f\x02\ \xf0\xcde\x1ci^\xd4]\x83\xc9\xc9I\x9fa\x18\xcfs\xce\xd7\n!\xee!\x84\xa4\x00T\ \xc1\xcb\xbc\xb5\x18\x9a\xe6D.\x97;\x90N\xa7\xc5\xe8\xe8\xe8\xd3\x95\xbf\xc2\ \x00B\x00\xd8\\\xc7Z\xf0\x19\x18\x19\x19\xf9\xbd\xae\xeb\xf7\xd9\xb6\xdd}\ \xe0\xc0\x81\xc7\x01D\x01\x08\x00\x1a\x00w\xae\xe3-\xe8"N&\x93\xf7\xbb\xae\ \xfbG\xdb\xb6\xcdt:}WGG\xc7yxY\x9f\x04`^\xcf\x98\x0b6\x03\xe7\xce\x9d\xbb\ \xd70\x8c}\xb6mcbbbGGG\xc7\x00\x80\x00\x80"\xaeS<\xb0@3\xd0\xdf\xdf\x7f\x07\ \xe7\xfcX\xb9\\\x96\x0c\xc3xy\xcb\x96-\xdb)\xa5a\xcey\t@\x01^\t]\x17\xf3>\ \x03g\xce\x9ci6\x0c\xe3/\xae\xebJ\x96e\r\xbf\xf8\xe2\x8b\xcf\x00\x88p\xceM\ \x00S\xf8\x1c\xe2\x81y\x0e\xa0\xbb\xbb\xbb\xce4\xcd~\xd7uU\xc7q\xd0\xdb\xdb\ \xfb\xe0\x0b/\xbc0\x9d\xf1I\xccb\xd1\xee\xdb\xb7\x8fp\xce\x19!D&\x84\x84\x85\ \x107\x01\xc8\x0e\r\r\r>\xf9\xe4\x93\xee\xbc\x05p\xf2\xe4\xc9\xaar\xb9\xfcw\ \xd7uU\xd7u\x91J\xa5\x1e\xdf\xb5k\xd7)B\x88*\x84\xc8a\x86~\x7f\xf0\xe0A\xc9\ \xb2\xac\x9b\x85\x10\xab\x00\xdc$\x84h%\x84\xb4\x11BV\t!B\xb6m\x1b\xa5Ri`xxx\ /\x80\xa3\xf3\x16\x80\xa6i\xc7\x85\x10\xb7r\xceQ(\x14\xdey\xf4\xd1G\x0f\x01\ \xa8\x16Bd\x01\x94\xa6\xef{\xee\xb9\xe7\x96\n!\xd6q\xce\xbfK\x08\xd9d\x9a\ \xe6\nx;\xb2\x04@"\x84\xc0\xb2\xacT:\x9d\xfe\xdb\xd9\xb3g\xff\xd5\xd3\xd3s\ \xce\xb2\xac)]\xd73\x00&f\\\xc4\xb2,+\x84\x90F\xc6\x185\x0c\xe3\xc2l\x85wuu\ \xc9\x9c\xf3?\x01\xf8\x9e\x10\x02\xba\xaeO\xbe\xf9\xe6\x9bw\xe7\xf3\xf9\xe2\ \x86\r\x1b\xd4\x15+V,1Ms\xa5m\xdb\x1b\x85\x10\xedB\x88ZB<\x19\x84\x10p\xce\ \x1d\xdb\xb63\x86a\\\xcc\xe5r}\xa7O\x9f>\xfe\xee\xbb\xef&\x00L\x000\x18cE\ \xd7u?\xe9ZW\x0c \x16\x8b\xfd4\x9f\xcf? \xcb\xb2-I\x92!IR\xb2P(\xfcp6\x01\ \x1c>|\xf8YJ\xe9N!\x84(\x97\xcb$\x1a\x8d\xa6\x00L\x9a\xa6\x195\x0c\xa3Z\xd7\ \xf5\x80eY\x10B\x80\x10\x82i\xf1\xa5R\xa9\x7fll\xec\x9d\xb3g\xcf\xbe?::\x9a\ \x1b\x18\x18\x18\x050\x0e\xaf\xcd\x1a\x84\x10G\x08\xf1?\x0b\xfeS\x01\xac^\ \xbdz\xa5,\xcb\xc7.\\\xb8\x00\xd34\xb7;\x8e\xf3\xc6\xd2\xa5K\x99$I\x17(\xa5\ \xa7}>\xdf\x03\x8c1U\x92\xa4\xe5\x8c\xb1\r\x92$\xc5B\xa1\xd0\x89\x1d;v\x8c\ \x06\x83\xc1u~\xbf\x7fk>\x9f\xbf\x9bR\n\xce9TU\x15\xa1P\x88\x14\x8bEh\x9a\ \x06]\xd7a\xdb68\xe7\x16\xe7|\xd2\xb2\xac\xa1d2\xd9\xf5\xdak\xaf\x9dH\xa7\ \xd39x\x0et\xba\xb5j\x98E\x87\xfad\r\xd4\xd5\xd5m\xd6u\xfd\xaf\x99L\xe6uM\ \xd3\xee\x87\xd7!\x82\x85B\xc1\x89\xc5b\x1fH\x92\xb4\x8d\x10\xf2\x1dJ\xa9L)\ \xad\xa6\xd4\xb3\xec+W\xae\xfc\xd5\xb2e\xcb\x10\x0e\x87\x91H$PWW\'2\x99\x0c8\ \xe7\xf0\xfb\xfd\xa4P(@\xd34\x94J\xa5\xe2\xd4\xd4T\xff\xf8\xf8xO*\x95:\xff\ \xde{\xef}\x94H$R\x00\x8c\x8aX\x03\xde\xc2\x9e\x93\x9d\x90\x00 \x10\x08\xdc\ \xe2\xba\xee\x1b\xc9d\xb2O\x96\xe5\x9f\xc0\xb3\xb6\xd5\x00\x9ch4\xba\x841\ \xb6\x921\x06\xc6X\x841F\x18c\x90$\t\x94R\xd1\xda\xda\xfa\xd1\x9a5kn\xee\xea\ \xeaBCC\x03\xb2\xd9,\xb1m[\x84B!Q,\x16K###\'\xfb\xfa\xfa\x8e\x1c9rd\xa0P(h\ \x00\xca\xf0\xfa\xffT%\xdb\x9f\xcb\xf7\x13\x00\x92,\xcb\xdd\x8e\xe34\x13B\ \x1a8\xe7\x1c\x80\xac\xaajTU\xd5o\xca\xb2\xbc]\x96\xe5\x0eUU\xa1(\n(\xa5\x10\ Bp\xc6\xd8\x90\x10\xa2/\x99L>\xbdg\xcf\x9enUU%\xc6\x98 \x84\xf0\xa1\xa1\xa1\ \x97\xcf\x9f?\x7fb\xff\xfe\xfd\xfd\xf0j\xd8\x01\xa0_\x96\xe9/\xeceE\x02p\x93\ \xe38\xed\x92$\xfd\xc7\xb6m\xae(\xca\xb7eY\xbe7\x10\x08\xdc\x1e\x8dF#555LQ\ \x14X\x96U\xd04\xed\x94\xa6ioMLL\xf4\x99\xa6\xa9i\x9aVnoo\x0fp\xce%\x9f\xcf\ \'(\xa5$\x95J\x9dx\xe4\x91G\xf6\x97\xcb\xe5K\x00r\x95\x00l|\xce\x1dw&\x08\ \x00H\x92\x94\x0f\x87\xc3\x91H$\x82H$\x82\x9a\x9a\x1aTWW\xa7,\xcbJd2\x99S\ \x83\x83\x83\xc7S\xa9\xd4Ex\xa6\xcbWy\xae\x0c/\x9b\xb9\xbd{\xf7\xfev\xd9\xb2\ e?\xd7u=\xbf{\xf7\xeem\x89Db\x04@\x12^\xd6\xe7\x15\t\x00\x84\x10\xdf\xaf\xaf\ \xaf\x7f\xa8\xa5\xa5\x85\x16\x8b\xc5\xdeL&\xd3\xdb\xdb\xdb\x9b\x1e\x1b\x1b\ \x1b\x87\xf7\x82-*\x82Mx\xfd\xb8\xac(\x8aS.\x97\x05\x00\xa8\xaaJ4M\xc3\xe1\ \xc3\x87\x1fL$\x12Y\x00\xc3\x0b!\x1e\xf8t\x1b\xf5\x03XZ\xf9e\xf0\xba\x81U\ \x11b\xe0\ne\xb0i\xd3\xa6\x1f\xcb\xb2\xbc\xf3\xc6\x1bol\xa3\x94\xbe\xdd\xd9\ \xd9\xf9\x1b\xc30>\x020\xba\x10\xe2\x81O\x9b\xb92*\x9bFEl\x19^\x10W\xac\xdd\ \xf6\xf6\xf6_\x08!\x9eq\x1c\x07\xd9l\x16\xa6in\x0c\x87\xc35\x86a\x0c\xc2K\ \xcc\xbc\xd4\xfcg\xb9<\x00\x0e\xafK\\\x93\xdbn\xbb\xedv\xce\xf9c\x84\x10\xa8\ \xaa*\x08!\xee\xf0\xf0\xf0\xafGGGS\xf0\\\xe6\x82\x88\x07\xae\xc3N\xb7\xb5\ \xb5E\\\xd7}\x9e\x10\x12 \x84\x80RJ\x86\x86\x86\xf6%\x12\x89\xb7\x00|\x0c\ \xaf\xbf/\x18s>\x99\x13Bt\t!\x9a]\xd7\x15~\xbf\x1f\x85B\xe1\xd4\x87\x1f~\xf8\ g\x00#\xf0,\xc0\x822\xa7\x00Z[[\x9f\xe0\x9co\x14B\x08I\x92@\x08\xb1\x86\x87\ \x87;\x01d\xe0\x19\xaf\x05g\xd6%\xd4\xdc\xdc|\xa7\xeb\xba\xbb\x08!p]\x97(\ \x8a\x02]\xd7\xb3\xb9\\\xee\x1c\x80\x14\x16\xb0\xee/gV3\xb0|\xf9\xf2zB\xc8\ \xf1\xaa\xaa*6\xedh)\xa5\xd0u}\xd8q\x9c1\xccr\xf1\xcf\x07\xd7\x0c\xa0\xaa\ \xaa*\x14\x0c\x06\x8f666BQ\x14T\x02\x10\x84\x10\xd8\xb6]\x82\xb7\xb9-J\xf6\ \x81Y\x94P}}\xfdc\xb1X\xec\xd6\x8b\x17/\xda\x86a\x1c\xf4\xf9|,\x18\x0c\xdeW\ \tD\x9d\x7f\x89W\xe7\xaa\x01\xd4\xd6\xd6\xfe(\x1c\x0e\xfflpp05>>\xfe\xb0\xae\ \xeb\xff\x00\x90mkk[!\x84\xb8\x83\x10"\xe3:\x8e\x03\xbfHf,!I\x92\xbe\xb5n\ \xdd\xba}ccc\xf9l6\xfb\xb0\xae\xeb\xff\x94$)\x07\x00\xae\xeb\xfa\\\xd7\x85m\ \xdbyx\xbb\xf7\x97\x0bUUC\xeb\xd7\xaf\x1fhjjr\x03\x81\xc0/\x01\xd4M_\x8b\xc7\ \xe3_kii\x11\xabV\xad\x12\xb1X\xec!,r\x19]q\x06\xea\xeb\xeb_\x99\x9a\x9aj\ \xcdd2\xbf\xd3u\xfd\x15Jif\xfa\x9a\xdf\xef\xff\x83\xdf\xef\x87\xe38\xd9l6\ \xfb:<\xef\xf4\xe5\xa1\xb6\xb6\xf6\x89\xb6\xb66\xe1\xf7\xfb\xdf\x06\xb0\x16\ \x979\xd6P(\xb4\xb1\xa3\xa3\x83755\x89X,\xb6\x13\x8b\xf4\x81dF\x96,Y\xb21\ \x1e\x8f[\xaa\xaa\x1a\x8a\xa2\xfc\x00\x9e\xb5\x9e&\xb8e\xcb\x96ck\xd7\xae\ \x15\r\r\r\xdd\xb2,\xd7.\x96\xce\x19\t\x04\x02\xdd\xc1`P(\x8a\xb2\x07\xde\ \x87\x87i\xe4x<\xbe{\xeb\xd6\xad\xe2\x86\x1bn\xd0\x02\x81\xc0\xd7\x17K\xe3\ \xd5\x08\xcb\xb2,\x14E\xc9\x03X\x0f\xefdB\x06\xd0\x10\x89D\x9e\xda\xbcy\xb3h\ nn\x9e\n\x87\xc3w,\xaa\xca\xab\xf0\rB\x88`\x8ce\x01\xdc\t\xe0\x16\xc6\xd8=\ \xf1x\xfc\xfd\x96\x96\x16\x11\x8f\xc7\'\xbf\xcc\xe2\x01\x00\x84\x90\t\xc6\ \x98P\x14%\xef\xf7\xfb\xd3\xa1PH\xd4\xd6\xd6fC\xa1\xd0S\x8b\xadm&>{6\xdaD)\ \xbd\x871\x16e\x8ce(\xa5\x1f\xd8\xb6\xddm\xdb\xf6\xa5EQ\xf7\x15\xff\x07\xfc\ \x17\tF\x13\xe0\x81\x7f;\x1a\x00\x00\x00\x00IEND\xaeB`\x82[\t[T' phatch-0.2.7/phatch/actions/delete_tags.py0000644000000000000000000003014211346363116020472 0ustar rootroot00000000000000# -*- coding: utf-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is designed by Alexandre Moore (http://nuovext.pwsp.net/). # Follows PEP8 from core import ct, models from lib.reverse_translation import _t #no need to lazily import these as they are always imported import re METHODS = [_t('All'), 'Exif', 'Iptc', _t('One')] class Action(models.Action): label = _t('Delete Tags') author = 'Juho Vepsäläinen, Stani' email = 'bebraw@gmail.com' version = '0.1' tags = [_t('metadata')] __doc__ = _t('Delete Exif or Iptc tags') def apply(self, photo, setting, cache): info = photo.info method = self.get_field('Method', info) if method == METHODS[-1]: # One tag = self.get_field('Tag', info) del info[tag] elif method == 'all': for tag in info: del info[tag] else: for tag in info: if tag.startswith(method): del info[tag] return photo def interface(self, fields): fields[_t('Method')] = self.ChoiceField(METHODS[0], METHODS) fields[_t('Tag')] = self.ExifItpcField('Exif_Image_ImageDescription', choices=self.EXIF_IPTC) def get_relevant_field_labels(self): """If this method is present, Phatch will only show relevant fields. :returns: list of the field labels which are relevant :rtype: list of strings .. note:: It is very important that the list of labels has EXACTLY the same order as defined in the interface method. """ relevant = ['Method'] if self.get_field_string('Method') == 'One': relevant.append('Tag') return relevant icon = \ 'x\xda\x01\xc3\x0c<\xf3\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0czIDATh\x81\xed\x99{pT\xd7}\xc7?\xe7\xdes\xf7\xae\ \xdeZ!,\x01\x02\x83,\xc0\xf8\x81\xb1\xb1\xa7\x18c\xa8\xad\xd8n\xdc\x10bO\xed\ \x8c\x0b\xd8\xcd\xa41\xad\x9d:i\x9b\xc4M2C m\x1d\x93\xa4cC\x8b]\xdb`\xc7\x86\ \t\x01\xc6\x06\xc6IZb\xc7\xd8\x80 \x90\x01\x05\x0b\xbdX!\t\tI iWZ\xed"i\x1fw\ O\xff\xb8wW\xab\xc7\na\xecI;\xd33sg\xef\xdd\xfb\xfa~\x7f\xe7\xfb\xfb\xfe\xce\ 9W(\xa5\xf8\xbf\xdc\xb4?6\x80\xabm\xffO\xe0\x8f\xdd\xe4\'\xbdq\xc5\x8a\x15S\ \xa7O\x9f\xbe\xb8\xac\xac\xec\xde\x81\x81\x01\xbf\xd7\xeb}\xdf\xe7\xf3\x9d\ \xd8\xb7o_\xf0\xd3\x04x\xb9&\xc6Kb!\x84H=VJ\xa9g\x9eyf\xe5\xb2e\xcb6\x95\x96\ \x96\x16\xf4\xf7\xf7\xd3\xda\xda\x8a\xae\xeb\x14\x16\x16\x12\x8b\xc5\xf0z\ \xbd\x95\x87\x0e\x1dZ\xbdc\xc7\x8e\xea\xcf\x1c=i\x088\xc0\x05\xb6\xc4\x04@yy\ \xf95\x0f>\xf8\xe0\xaf\x16.\\x\xcb\xc1\x83\x079v\xec\x18\x96e\r\x0e\x0e\x0e\ \xb6\x02\xd2\xedv\x17\xba\xdd\xee\x9cE\x8b\x161s\xe6\xccxee\xe5\x1b\x1b6l\ \xf8\x9a\xfa\x8cmn\x94\x84\x1c\xf0:`\x00&`dff\xca%K\x96\xec/**\xbaq\xd3\xa6M\ \x91\x86\x86\x86\xfd\x1d\x1d\x1dg}>_g<\x1e\xb7\x00\x0b\xd0<\x1e\x8f\xa7\xab\ \xab\xeb\xfe\x92\x92\x92\xdb\xca\xcb\xcb\xbf\xbaf\xcd\x9an!\xc4w?K\x12\xc3\ \x088\xe05 \x03\xc8\x03\n\xa6<\xc0\xb5\xcb<_\xfcJYY\xd9\x8d\xbbw\xef\xee;z\ \xf4\xe8;\x9d\x9d\x9d\xb5\xc09\xe0\x02\xd0\t\x0c\x00\x99===y\x15\x15\x15\xd5\ 3f\xccX$\xa5|r\xfe\xfc\xf9\xdfY\xb1b\xc5a!\xc4\xaf\xae\x84\xc4\xf9G\x1f\xcd(\ \xd9\xb5k`"\xd7\x0e\x93\x90\x10"\x01~\xf2\xa2\xed\xfc\xadf\xb2 \xbbT\xdc\xb7\ t\xffz\xceu4Z\x15rG-Y\xe1\x0b\xee"\xce\xebY\x045\x93\x88f\x10\xd5$Q!\x89\x9c\ y\x81_v\x1e\xc0\x0f\x14\xcf\x9e={\xf5\x03\x0f<\xf0\xf4\xc0\xc0\xc0\x89\xad[\ \xb7\xde\xa5\x94\x8aN\x04P\xd3\xea\xd5w\x0b\xa5v*!\x9e\x98\xb5m\xdb{\x13&\ \x90"\x9d|\xe9a\xde\x83u|$\x04B5\xe6\xb3\xe4\xe0\xf7\xf8]\xd1\x1bX\x9f\xaf\ \x1d\xf7a\xd6%\xda\x9a\xb7\xf1\x0f\xa7\xd7r\x1c\xc8[\xbe|\xf9\xcf\x8a\x8a\ \x8a\xe6n\xd9\xb2e\xaaR\xaa\xf7r`\xda\x9exbR\xcc\xb2\xfe\xa0\xa0\x04\x88\x03\ \xff2s\xf6\xec\xf5\xfc\xe0\x07\xf1t\xf7\xa4\xd6\x01\x81-\xa9\xecI\xb7r\xbd\ \x10v\xf2\x1a\xcdE\xf4\x06z\xe9\x087Y\x03\xe7Q*\xed\xa3@\xcfbZ\xd9\x93b\xfb\ \x92}\xdaS\xc0@[[\xdb\x1e\xa5T\xc6\xbcy\xf3n\x17B\xe8\xe3\xa2\x17BD,\xebM\ \x07|\x02\xdb\xda&\xaf\xf77g\x1f\x7f\xfc\x9aq\t\xa4\xb8\x8e\t\xe4eL\xa7,qA\ \xb0^\xc4\x02\x81\xde\xf0\xd1\'\x07w\xff\xf6N^l\xdaJC<6\xc6\xfb\xd1\xd0\x91\ \xe8\x9aaLY\xec\xfa\xf6\x17*\xdd\xaf\x06\xcd\xce\xc6`0H<\x1e\xbf\x160F\xdarj\ ;\xb7j\xd5\xdf\x0b\xf8\xf3\xd1\xcf\xa5\\\x8f\xc7+\x9bV\xae\\\x9a\x96\x00C\ \xd1\xcf\x00\n<\x0bX\x08`\x85\xa1\xfdh\x7fSx0bN\x992\xa5\xd1\nSS\xf5}v\xf5\ \x9e$0\x12\xb8\x14\x06\xba0\x90\xc2\x85\x8eAN\x89\xb9l\xc1[\xa1\x9fv\r\x9c\ \xaf\t\x06\x83n\xe7\xd9\xdaX$\x1aW\xad\xbaC)\xf5|:r\xc0T\xdd\xe5\xfa\xa0m\ \xcd\x9au\xa3\x08\xa4D\xdf\x05d\x03\xd7\xe4\xcd\xb7\t\xe8&h\xb3{\x84\xcf\xe7\ c\xce\x9c9K\xb0\xdd&lNF\x17\x88$\xf0\x04h\x89\x0b\x89},\x85\x8bL\x8fYT\xb2\ \xa5aN\xe9\xfa\xc0\x9d\x80\x07\xc8\x04d*\x89\xc6G\x1f\xcd\xd3`\'\xb6m\x8f\ \xd9\x84\x10\xb8\xf2\xf2\xfa\xfc55_J\xd7\x03:\xb6|<%\x7f\xc1"\xd7$\xf2\x93\ \xd4\x9f\n\x96v\x8b\x96\xa0i\xba\xee\x98s_\xd1\x8a\xdb_\xe5K\xd9\xb3\xb4l\ \x1d;\xe2:\x86\x03\xde\x18\xea\x05\xe7X\xc7\xc0\xa5\x9b\xf2\xfa\x87\x0bW~\ \xb9\xaa\xf8\x8di\xf7\x19\xd79Ar\t!4!\x84\xd0M\xf35`\xd68\xd1\xc7\xe5\xf1\ \x0c\xfakjL\xa5\xd4-\x1f/]z\xdb0r\x0e\t\x13(\x04nX\xfc6/\xe5\xce\xa5\xd4\x1c\ \x916*\x86\xd2\xa4\x10\x1a:\x9a\xd0\xd1\xb07\x1d\x99<\x16h\xce\xaf@\x13\xf6\ \xb1p\xfe\x05A\xb8?\xdaQ\xbb\xb3\xeb\x1bG\xbf\x15:\x08\x04\xbd\x8f=\xf6WR\ \xd36\x8f\x07\xde\xc8\xca"\x1c\x08\xf8C\xe7\xcf\x17\x00(\xd8|\xcb\xe1\xc3_O%\ \xa0c\xeb\xb3\xb8\xf4ox\xe4\xba\xbf\xe69\x99\x0b\xae\xfc\xe1\x0f\xb2\x81Ht!\ \x93\xe0\x13dtt4$\x1a\x1aBh\xce9-I@\xa0\x91Tj\\E[\xff\xe0\xdbx\xef\xda\xd2\ \xf7\x96\xcf\x9a\xb5\x0fp\xa7\x03\xafI\x89\x9e\x91\xd1\xe3\xab\xaa\xf2\xa4\ \xfc\xdd\x93k\x18Sg\x1e80\x08#l\xd4]@\x8e\x8a\xdb\xda\x1f\x0e^\xb3\xa5"\xa4\ \xad{G.R\x0cIE\x17\xd2\x91\x8f+\xe5\xbf\xa1|\x90\xb80pahnc\xeeM\xd3\xbfu\xf7\ \xad\xd3\xf6\x8c\x07\xde\xd1}\xc8_S\xe3\x19q\xca\xd3\x17\x8b=\x94$i\xf7\nq Z\ \xf3\x1cG\x02\xd5\xd4k)\x04\x12.cGZ:\xfb\xd2\xd9w\xf2 E\xf7\xa9nd\xe0J\xe6\ \x87\x9eLn\x83{vM!\xbf\xd7\x95\x99\x0e<\x80+??\xda[_\x9f\xa5,k\xf4\xc9x\xfc\ \xab#\tX\xd8\x0e\xe3\xaf\xdb\xc0\xcf/5b\xa9\xb8-\x9b\xe1\xe0\x8d\x11\xe0\xe5\ \xb0\x84M$u\xb2\x17R{\xc0q\xaay\xc7\xf3\x99{,g<\xec\xc8\x8c\x0c\x06}\xbex$\ \x14\x1a\xbbn\x08\xb1\xb4\xe6\x9e{\xb2\xc1\xd6\xbfpH\x00h\x91n\xe2F.\x05\xe6\ $\xca\xccl\x89t\xc9\x14\xf0\xba\x03V&\xc1\xdb\xfb\t22yN\x13\xd2\xce\x19\x12\ \xbf:\x05\x9dn\xee\x7fe\x12\x9a\x95\xb6\x9e!t\x1d\xdd4\x07{\xbd\xde\xb4\xf2R\ \xb0\xfe\xe6\x83\x07\xdf\x07\xd0\x9cQb\x1c\x08\x03=@\xcb\x99M\xec\x8a\xf4\ \xd0\xdew\xd6"\xdc5\xd4\x0b\x12\xc3v\x1ea\x0c\x01s\xf6e\x8a\x9c\x86[\xab\x1d\ }3fr\xef\xd6|d8=x\x00#?7\xe6\xaf\xa9I\x0b>\xae\xd4\xc1\xbd\x15\x15?J\x1c\xa7\ &\xb1\x05\xf4\x03]X\x9c\xf5\xbe\xc4\x9b\xaeBe\x85\xba\x06\x084G\xd1\x95L\x01\ \xaf\x8f\x96P\xaa\xb4\x90\x18)\xb2\x91\x18\xdc\xf1N\x0e\x9e\xb6\xf1g\xb0\xd2\ \x93K_C\xa3\x1cS\xf76\xf8\x9e\xdd\x17/>\xbd\xce.\x86Z\x92@J/D\x80 p\xa1\xf3}\ \x8et\x1f\xe1\x90Y\xac\x18\x88\x85\xe8\xa8\r@D\x1b\x05\xde\xb6R\x99\x8cz\xc2\ \x8d4\x87\x8c\xc4`\xee\xf1\x1c\xe6\x1et\x8d\x0f\xde\xed&\xda\xd3\xa7"\x81@\ \xbaK\xd4G~\xff\xda\xe7\xce\x9e\ra\xdb\xbe\x14\t\x16#H\x0cbK\xa9\xed\xe3\xef\ \xf2\x96\xd5\x8f\xdf\x9c\x0c\xf1\xec~\xce\xd5w0\xd8k%\x93:UB\xc9a\x05\xc3\ \x1dI\n\x17\x99\xf5aDq>\xe9\xc6rB\xd3P\x86T\xc1\xe6\xe6\xb4\xfa\xaa\xbfti\ \xef7\xeb\xeaNb\x17]\x99\x08\xfe\xc8e\x15\x05\xc4\xb0\xa5\xe4\x8b\xf6\xd2\ \xd4\xb0\x91m2\x03\xcc\x02\xd0\'Ehnm\xc6\xdf\xda\xe7\xc8I&\xab\xb1\x9eL\xda\ \xd1\xb9\xe0}\xc4E\xe5\x7f\xef\xc1\x9a\x9a\x83f\x8c\x1e\xf2\xc8\xbc<\x15\xa8\ \xadK\x0b\xde\x17\x8d6\x7f\xad\xaaj\x87\x83\xd7\xc2VJl\x14\x81\x11R\xea\x03.\ 4\xfe\x8c\x0f}\xbf\xe3\xa4f\x82\xcb\x03\xee\xe28\x1d\xa1s4\xd6\xb6\xa0b"\xe9\ BZ2\x91\xe5\xa8^\xd033\xf1=>\x9d\xdf\xff\xf8ez\xdca\xf4\xec\xac\xe4;\x8d\xdc\ \\\x15:wN\xc4cc\x8c\xd1\x81\x88R\xe1\xb5^\xef\x96\x80e\xf5\x03\x01\xa0\x17\ \xdb\xf2-\xa5\x94\x1a\xb5\xb0\xe5\x90\xb0H\x91\xd2\xa9gy\xdd\xea\xa7_\x18 \ \xb3\xc1\xbc\x06\x82\xe6EN\x9f\xfe\x98p(\xea\x94:\xc3\x91\x961$\xad\x94^\x88\ |e>\xd6\x94,\xea\xfes\x07uu\'P\xb9\xd9\x96\xeev\x13\x0b\x85D\xd8\xefO\x17|\ \xb6\xb7\xb7\xef=\xdc\xd3\xe3\x05\xda\x81\x0e\'\xb0\xd1\xc4\x1c;\xdd\xca\x9c\ \x02\xa2\xc0%\xa0;\xd4@}\xe3\xeb\xbc-4\xd0\x0c\x90Y\xe0\x9a\x04VA\x90\xca\ \x86ct_\xf4\xa5\x80\xd7\xed\xa8\xa7\x0c9t!\xd1\\&\xa1\xa7o\x05\xc0\xff\xd1\t\ *w\xee\x12a\xb0\x02\x8d\x8d\xa3\xdf\xee\xe4\xca\x89@\xe0\xd4\xc6\xe6\xe6w\ \x813\xd8\x8b\x08\x81T\xf0i\t\x8c\x90R\x00\xb8P\xfb\xaf\xbc\x1b\xa8\xa6\x01\ \x01B\x07\xdd\r\x86\x07dq\x94\x9a\xce\xdfS\xe7\xadE\xc45\xa4pjE\xb2j;\x95YH\ \x8e\xfcY7\xfb\x97\x13\x8f\tT\xd4\xdf\xa3U\xbd\xfd\xb6\xd2\xb3\xb2\x86\xc0\ \x18\x06\x99\xd3\xa6\xe1.,\xc4\x17\x8d\xfa\x9e\xad\xaf\x7f\x118\x0549\x91\ \x8f\x8d\\\xddH\xbb6\xea\\\x18\xc3\x19b\x00\xe7\xab\xbe\xcf\x16+L4ABs\x81\ \x91\x03f\x91\xa2-^GE\xd5\x01"\x83\x91QU[C\xe7\xd8\x85\xfd\x9c\xf1\xd6\xf5\ \xedi\xe1\xb5\xffPl\xee\x83\x9eHo\xaf\xf4\x87\xc3\x83B\xd3\xd0\xa4$g\xfat\ \x88\xc5\xf0ut\x04_niY\xd7\x15\x8d\x1ev\xc0\x07\x95R\xa3\xc0\xc3\xc4\x96\x16\ u\xec\x99\xd4d`\xce\x82\x8d\x0c\x04*\x9c\xc0E\xc6[S\x1a\x97\x80CB\xc3\x9e\xee\xe5\x00\xd3t\x177\ \x95\x1f\xe1\xa7\x193(N%\xa1\xe2\x10\x8f@,\x04\x11\x9f\xc6-\x85wqc\xc9\xed\ \x1cn\xdf\xc7\xc9w\x1aO\x9f^\xc7\xab\xf1\x08\xd5@\x0b\xb69\x08\xa0\xe8\x1f\ \xe1\x9b\x0f-[\xf6\xb0\x19\x8b\xe5\xfd\xa6\xb5\xf5\xd7\xcf\xb5\xb4\xac\xbd\ \x04\xcd@\x08\xc7i\xc6\xc57\x01\x02\xa9\xb3\xb6\x02\xa0\xb4\xe4!>\x7f\xdbK|G\ \xe8)\x12T\xa0\x14\xa8\x18X\xfd\x10\r\x81\xa9\xb2\xd4\x99\xed\x97>8\xf3\x02\ \xbf\x00\xea\x80V\x07\xfc \xb6\xd3\xb9\x80\x82\xefM\x9d\xba\xdc\xe3\xf1\xe4\ \x7f\xbb\xba\xfa\xe7\x80\x0f\x18P\xe3.\xe0\x0c\xb5\xcb~\x1fHI\xe8(\xf60\xe3\ \xe2\xf9=\x1c\xb9\xf8\x01G\x863\x05\xa1\x81\x90\xa0\xdb.\xa5\x1av]\xda{\xe6\ \x05\xb6b\'bs\x02\x1cv2&\xac\xda\xf7\xde\x86\xf6\xb6=?\xac\xee\x03\xba\x80\ \xfe\x89\x82\x9f\x10\x81\x14\x12\xa9\xb5\xa1\xfd\xd47x3\xecg\xd4\xc0Eh 4T\ \xd3\x16v\xd7m`;v\xe4\xcfc\xeby\xd0\x01\x9f\x00\xe8\xbak/_/.\xe7\x9d\x82\x85\ \xfcd\xde3\\7Q\xe0WD \xc1\x03\xdb\x95.\x01\xdd\x83\xdd46\xfc;;F]d\xa1\xbc\ \x9b\xd8Y\xf3\xcf\xec\x00\x1a\xb0\x0bP\x00{\xb8n)\xa5\x94\xb0[\xc6\x9f\xfe\ \x96M\x85w\xf2\x13M"\xf5L2\xa7\xfe%\xafbK\xf5\xd3\'0\xd60\xa3a3\xef\xf9OP\ \x95\x02>^\xfb<{j\x7f\xc4\xbb\xd8z\xef\xc2\x96]\x18\x88\'\xc0\x03\x19\xf7|\ \xc8\x96\xbc\x9by\x12\x01\xd1>\xa2\xed\xbf\xe6l\xf3[\x1c\xc2v\xbd\t\xb7\xcb&\ \xf1\xa8\x1blWr\x01\xf9\xc0\x8c\xdc\x1b\xf8\x93\xa5\xff\xc5\x06=\x83\x8c\x0b\ \xfb\xa9>\xb6\x9a\xb7\x80j\xec\xe8wb\xf7XL)\x15w\xc0\xbb\xcb+x=\xa3\x84\x87\ \xbb+h\xef:\xc0\xa1\xe6_\xb0\xcb\nr\n{\x9c\x13\xba\xa2\xef\tJ\xa9+\xda\x18Z\ \x86\xcc\xc1^\x90\xfa\xdc\xcd\xcf\xb3mE\'jE\'\xea\xee_r\xac\x94\xb2\x9c\xfbL\xe7\xde(v\x91\x9a\xb0\ \xe3\x8c\xd5>\xd1g\xd6\x94aF?\xb6\xbb\xb4U\xff\x90\xcd\xca"\n s\x98|\xed*V\ \xe6. \x13\xe7\x1b\x9b\x10B(\xbb\r*\xa5\x82\xce\xefU\x81\x87O\x90\x03\xc9\ \x1b\x87\x86\x19\x19\xd8\x05\xaex\xe1+<\xa2bh\xde\x179\x10\xf4\xd2\x8c\x9d\ \x03}\xd8\x91\x1e{\xa2{\x95\xed\x13\x13\x80aRr\x03\xb9\xd8\x0b\xb7\x12\xdbuB\ \xce\x96\xf0\xfe\xcf\xe4C\xdfU\x11\x80\xa4+\xe9\xd8\xced04\xed\x8b:\x9b\x85\ \xad\xba\xff\xb5\x04\x12s\xd9\xc47\xe5\xc4B\x99\xc2\xf1\xfe\xabz\xc1\xe5\xde\ \xffi=\x7f\xac\xaf\xfa\x9f\xca\x83/\xd3\xfe\x07\x86\xca\x84\xfb\xbaCM\xa5\ \x00\x00\x00\x00IEND\xaeB`\x82\xb4kX\xbe' phatch-0.2.7/phatch/actions/desaturate.py0000644000000000000000000002657711346363116020374 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu). # Follows PEP8 from core import models from lib.reverse_translation import _t #--- PIL function def init(): #lazy import global Image, ImageOps, imtools import Image import ImageOps from lib import imtools def grayscale(image, amount=100): grayscaled = ImageOps.grayscale(image) if amount < 100: grayscaled = imtools.blend(image, grayscaled, amount / 100.0) if image.mode == 'RGBA': grayscaled.putalpha(imtools.get_alpha(image)) return grayscaled #--- Phatch Action class Action(models.Action): label = _t('Desaturate') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(grayscale) version = '0.1' tags = [_t('color')] __doc__ = _t('Fade all colors to gray') def interface(self, fields): fields[_t('Amount')] = self.SliderField(100, 1, 100) icon = \ 'x\xda\x01\xfa\x0c\x05\xf3\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\ \x00\x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\ \x08\x08|\x08d\x88\x00\x00\x0c\xb1IDATh\x81\xd5\x99k\x8c]\xd5u\xc7\x7f{\x9f\ \xd7\xbdw\x9e\x1e\xb0\x1d\xd7\x10\xe4\x07\x81:<\x8c\x1a\x0c\xa4\x06\x99\xa4\ \xa1@\xda\xa2VXP\xa9\xc9\x07\x10\xa8\x02"Z\xaaP\xa5RDQ\x1b QU\xf1\x05C\x88#+\ Bq\x04y\x88\x84G"0\x01\x81\x8d\x07;\xb1\x8d\xc3\x18\x1b\x860.&~\xcc\xe3\xce\ \xdc\x99;\xe7\xb9\xf7\xea\x87s\xce\xcc\x9d\xf1\x98\xc4x\xdc*{\xb4t\xe6\x9e{t\ \xce\xff\xbf\xd6\x7f\xad\xb3\xd6\xbeJD\xf8c^\xfa\xff\x1b\xc0\xa9\xae?z\x02\ \xee\xe9\xba\xf1\xaf\xbf\xf2\x95\x0b\x95\xeb.\x940\xec\xfd\xb3\xc7\x1e\x9b<]\ \xcfQ\xf3\x95\x03\xbdw\xdcq]\xb6t\xe9\xbfg\xcb\x97\xaf\x96\x9e\x1e_W*\xf9\ \x17YF\xb0}\xfb/\xae\xf8\xfa\xd7\xaf\x97\xd3\x90p\xa7L`\xc7\x1dw\xac\x1f\xbf\ \xe0\x82\xefd+Vt)\xa5\xd0Z\xd3zTJ\x01\xe0\xf4\xf5\x1d\x96]\xbb.\xber\xe3\xc6\ \xc1\xf9\x00^\xae\x8fM`\xf7-\xb7t\xd7\x97-\xeb\x9d\xbc\xe8\xa2\xf3\x94\xeb\ \x1e\x07\xbc\xf5\xe88\x0eJ)dl\xc8x\xef\xbcx\xd7\x15\xf7l\xf8\xf6|E\xe3c\xe5\ \xc0\x8e\x9bo^\\\xbf\xec\xb2w\xc2e\xcb:\xb5R(k\x01\xa6\xbc\xad\xb5FkM\xa5\ \x12\xe0\xfb\x1e\x90\x7f\xa6\xad\xcd\xb1\x9f\xf8\xf2\xa3\xbb^\\t\xa5R\xea\ \x1f\xe6\x83\xc4IG`\xfbM7\xad\x1c\xff\xccgv\x85K\x97v\x88\xef\x83\xeb\xce\ \xf0x\x10\x04\xb4\xb7UQ\xda\x9d!\xa3V\x03\xc1\x957v\xef\x7f\xef\xe5K\xd7\xaf\ \x7f\xca\xfc\x9f\x11\xd8}\xf3\xcd\x17\x1f\xfd\xf4\xa7\xb7%\x8b\x16\xb5\x89\ \xefC\x10`=\x0f\\\x17\xd7u\xe9ho\xc3\xf5\xfc9\x81\xcf>\x07\xa0l\xff\x18f\xdb\ \xa5\xab\xd7<\xfc\xeei\'\xb0\xe7\xc6\x1b?{\xf4S\x9fz1^\xb0\xa0F\x10\xd0J@\ \xd7jt\xf7t\xa1\xb4wB\xd0\xd6Z\xa2t\x820\x8b\x05\xabp\xc4U\x820n\x1a\xe6\xe5\ \xf0\x95;6\xfc\xed\x86\xc7O\x1b\x81_]sMW\xfd\xfc\xf3?H\xbb\xbb;\x8c\xe7!A\ \x80\xf5}$\x08\xd0]\xedt.9\x13G;\x08>0\x13x\x96\xa5\xd4\'G\x84X\xab27Z\x13\ \x1c \x95\x94\xad\xc9\xb6\xa7\x1e\xfa\x9b\x07o:-\x04\xb6\xdfx\xe33\xa3K\x97\ \xfeU\tZ\x82\x00\xe3y\xa8\x85]t\x9c\xb3\x98 \x10\xacxX\xeb#\x04(\xa5\x11\x11\ \xea\xcdA\xb2\x10\xb4\x9a\x06\xdc\n~\xf6\xe77\xe3\x03\x87vL\x1e\xba\xe0\xc9\ \xf5\x0f\x8e\xcd\x1b\x81\x1dW]\xf5\xb9\xd1\xe5\xcb_\xb4A\xa0\xa5R\xc1\xfa>\ \xd6\xf7\xe1\xac\x1e\xdaV.\xa2V\xcd\xb0\x92\x03\xb7\xe2a\x8cOf\x1c\x8e\xd4\ \x8f\xe2d\xee\t\x01W*\x15\xaa\xb5\x1aA\xb5\x8a\xe78\xa8\xe2y\x87\x9b\x13\xf6\ \x99\xe4\xc8\r\x8f~n\xfd\xb3\x7f\x08\x81\x8f\xee\x85\x94RqG\xc7F\x1d\xc7\x9a\ 8\x86(\xca-\xb0\xb4\x9f[\x91\x8e\xb6!\xb4\x8ePD@\x08\x12\x93\xa4!\x03\x83\ \x07I\x93\x0cc\x0c\xc6\x18\xac\xb5S\xe6\xfb>=\x0b\x17\xd2\xdd\xddM%\x08\xd0"\ \x88\xb5\x94\x8e\\\xd2\xd6\xae\xff\xbe{\xe5\xcf\xee\xdb\xf5\x9b{O\x99\xc0\ \xaf/\xbf\xfc?RXF\x1c\xe3\xc41:\x8aPq\x8c\x7f~\xbb\xed\xac\r)E\x84"F\xa9\x08\ ML3\tyg\xe4w\x12JDJJ"\xc9\x14\t\xad5]g\xf4\xd0\xd5\xd5\x85\x03\x88\xc8\x94\ \xb5\x12\x04\xe8P\xa8\xbfV\xd97\xff{\xd7o~\xfe\xfb\x08\x9cPBo]x\xe1\xd9\xa3]\ ]\xfb\xb3J\xa5f}\x1f\x1b\x04\x18\xdf\xc7\\t&g^\xd5\x8e\xe7)\xacT\xb0\xd6\xc7\ J\xc0P\x14\xf0\xd6P\x13\x8b\xc5\x13\x0f\xdf\xfaS\xc7\xaa[e\xc1\x92%\xb8\xae\ \x87\xaf\x15n\x1e\xdc\x19\xd5\xca\x1aC\x92d$\xb1\x15\x85U\x0e\x19\x82\xe2\ \x9dC\xb6\xb1s[e\xe5\xc6\xef^5g\x0br\xc2\x08\xa4\xc6\xdc\xa3\xe2\xb8\xa6\xe3\ \x18U\xc8G9\x19\xb5K\x1c[\tFQL\xa2\x08Q*b,\x89yc\xf8\x18\r\xdd &&U)\x89N\x88\ U\x0c\xbeCe\xd1bB/ V\x8aD -\xbc."$Q\xc4\xe0\x91:c\x83\x83\xc4\xe3c\x905\x95\ \xb21\x88Ea9\xef,:\xbf\xf0\xf9\xf8\xc3\xbb\xfe\xf5\xf5\xebO\x8a\x00\xc6|^\'\ \t:\x8a\xd0q\x8c\x8ec\xd4\x15\x15\xb3`\xc11\xad\x08\xc9\xe5\x13\xa2UD\xef\ \xc8\xb8\xa9;\xa3D*&Q\t\x11\x1111\xda\xa9\xe1\x9dq6\xe3\x95\x1a\x11Bl\x85\ \x08\x88\x05\xe24e\xf0h\x9d\xc6\xf00\xcaL\xce\x90\x91-\xf2\xa6T\xc7\xe23\xc5\ \xfb\xe2\xda\x89g\xbfv\xff\xd6\x87\xff \t\xbd\xbdp\xe1\x92\xb0\xbd\xfdP\xea\ \xfb\xda\x06\x01\x99\xef\x93\x9e\xdfN\xc7m\x9d\xd4\xaa\x16\x91*B\x15+\x01\ \xbbG\xdb\xe4\xd5\xe6\xb8rq\xf1\xc5\xc7\xb7\xb9u\xeb\xb3\xe9\xe8>\x0fS\xad\ \x11\x00>\x82/\x16\x1f\xf0\xa2\x84\xe8\xd80\x81\x93\xa1\x1d\x07\xadT~\xd4\ \x1a\xa5u\xfeYk\x8ch\x8e\x8d8Q3\xd4\xcd0q\xc6*\xbe\xb4\x1d<\x12l~\xe8\xbe?\ \xbf\xa7\xc4:g3\xa7\xb2\xecF\x15E\xda)\xc8ikq\xd7T\xa3\x8e\xdaPE\xa4\x8a\x05\ \xac\xb5L\x18\xe1\x95f"\xa1\x8aU >\xb6\xf8\xf3\x9d3\x91\xeeU\x8cT\x02*\xe4\t\ kE\x10\xa5\x90\x89\x88\xc9##\xb8\xda\x92\n8\x92\xe1h\x8d\x14\xd7i\x11\x0e\ \x1eu\xe3}\xefE;\xb7o}\xee\x1b;{7\xed\x05&\x80\x18\xc8\x00\xfb\xd0}\xd3N?\ \x8e\x80RJ\xf5\xd5j_t\x94B\x00+\x82\xa3\x85`\xd5\x84\x8b\x08\x8a\xd2,O\x0f;\ \xe9Qw\xdc\x0b$@\xac \x00Z\xa3j\x17\xdaz\xb5M\x07b\x01\xc9\t+A\x8d\x84\xa4\ \x87GQ\x80\xf54F\x04\xcf\x82\xe7Z\xb4\x08\xf5q\xdf\xfe\xfc\x97\xefm\xfd\xf1\ \x93_\xfd\x1e0\x08\x8c\x025 -\xc0\x9b\x02"e\'\xeb\xce\x06\xffC\xa8\xe88\xbeR\ \x8b\xe0\x88\x80\x08\xd9\x9f*\xda;\x12W+\x1fcs\x02}\x91\x967\xe4\xa8\xa7Da\ \x11,\x82 \xb4\xbb\x97J\xbdc\xb1\xf6\x04,\n#\x82\x11p\x8e\x85L~8\x0e\xe2\xe2\ \xb9\x06+\x82\xe7:\x88#X1\xec|+\x1d||\xc3\x9d\x1b\xc3\xb0>B\x9e\x9b.\xe0\x15\ \xe6\x02Nq\xde\xb6bv[\xc1\x03j%\xac\xc3\x98\x9aN\x12\xca@%\xabm\xe4\xb9\xa6b\ m\x15\xad@\x80\xcd\xc3\x92\x8ey\xb1_Q\x15\x90<\xfc\x8e>\x83\xb0\xe3\x12\xac\ \xd6\x04e\x9dG\xe1\x0e\x86\x84\xfd\x93\x08\x1e\xbek\xf3\xc8Z\x8b\x88\xc5\x1a\ \xcb\xcb\xbb\x9a\x03\xdf\xdbx\xdb&\xa0\t\x8c\x176Y\xc8\xc6\xcc\x06=\'\x81b\ \xe9\x14\x16\xf8\x806\x06)H\xf8\x97\xa7Jl.\x07\x850f,\xfb\xfd\xc8S\xe8B:\x82\ \xc5\xd2\xe6}!\xabW\xda\xdc\x00ATquj\x08\x0eL\xda8\xf6\xb4\xe7XD\x14\xd6*\ \x8c\xab\xb1\xa2\xd8\xba\xf3\xe8[?\xd9|\xd7\xf7\x81\xc6,\x9bh!\x92\x9e\x88\ \x88\xdb\xe2}\r\xb8\xe3P\xad\x92{Y\x1b\x03Kb\xdc\x85:\xb0F\xa1t\x08X^\x0b\ \xc5\x8c*\xebT$@T~O\xcf\xbdL\xc6\xba\xces]\xc0\nE\xfe@\xb5o\xc2\x8e\x8dz\xda\ u\x04\xeb\xa9\xa2\x00@fE\xb6\xf4\xbe\xd3\xfb\xe2\xcf\xbe\xfaCr\xad\x97\xd6("\ \x11B^u\x81\x84<\x07\x8a\\\x9f.\x9de\x04J\x02\xde$\xb4\xd9\xe2\x84\x00\xd9%6\ \x0b\xb0\xae\xb5\x1a%\x82\xd2\xc2\xd3C$Q\x85\xaa\xa8\xa2\xba \xf8\xfe5i\xea8\ ~\x85\\6b\r\xcep\xc6\xe4{(p\xf0\xad\xe4\x92\xb1\x90i\xe4\xb5\xed;_\xe8}\xe9\ \xfeg\x81\x11`\x18\xa8\xb7\x80\x8fZ@g\x85\xe7K\x9b\x19\x81R\xfb\xe4I\xe2OB\ \xad$\xa0\x80F\x95\xb0\xc7\xd2\xa1\x94E+!\x15a\x97\x8e}1\x0e\xa2s\xe9\xa0{\ \xd0\x1d\x9f\xf4}\x95\x03\xb7"X\x14\xed[\xc7\xb3\xf1f\xe0z\xae\xc5\xbay2[+\ \xbc\xff?\xc3\xfb{_\xba\xff\xe9\x02\xf8PAb\xac\x00\x1f\xcf\x92\x8c\xcc\xe5\ \xf9\xb9"\xe0\x00\xfek\xf0\xee\xd9K\x97\x8e\xaa\xbb\xef\xeeV\x95\n\xea\x13T\ \x9b\xda\xa0\x8a{\x8dd\xc2\xe6\xf3\xceu~0\xfa$?\x1d\xfa)\xa2\x04m\xd7$J;\xbe\ A\x10\xa5\xb1X*\xbb&\xed\xd8\xe1\xaa\xeb\xb9\x85\xa4\xc4b\xd1LN\xda\xf0\xa5g\ \xfe\xe51\xe0\x18y\xa9\x1c.\xc0\x97I[\x96\xcb\x128\x1f5\xfc\x1f\'\xa1\xda\ \xbd\xf7.N\xae\xbb\xce\xf5|\x1frVn9u+\xa5\xb8h\xd99,Y\xb2\x84\xb5\x13ky~\xcb\ \xf3\xa46!\n\xae\xcaP\xda\x17\xb1\x88RXQ\xb4\xbd\x9eH\x96U\xc8\xac\xc5\x1a\ \xc1\xfa\x0e\xc6\x1a\xfa\xf6\xbe\xf2\xa38\x1c\xfa\xb0 0D\xae\xfb\xd9\x15gNo\ \xcf\xb5\x9cV\xf0\x9b7o\xbem\xcd\x9a5\xdfr\\\xb72\xfbB\xdf\xf7Y\xb5j\x15===\ \x18cp\x95\xcb\ng9?9\xf6\x0bd\xe1\xd7\x1c\xeb8\xf9L"\xe0\xfe\xce\xa2z\x95\ \xb6\x85\x10\xcb\xb6\xb9^\x1f\xfd\xed\xaf~y\xd7\xb7g\x81/e3UeNf\xbbe\xaa\x8c\ \xae_\xbf\xbe;I\x92;\xdf~\xfbm\xa7\x9cU[7\xa6V\xacXA\xb5Z%MS\xac\xb5\x18c\ \xb8n\xc9u\xac9\xf4e\xb3\x03\xed`-\x93Ja\xb5\xc6\xef\x9dH\x9aq\xc5\xf7\x8bZ/\ \xaeKj\xd2d\xcf\xeb\x0f>B\xae\xf7\xd9\x9a7\x80\xfd8\xfbDS\x11\xd8\xb7o\x9f}\ \xf5\xd5W\x7f\xb4n\xdd\xbaui\x9a.\x9e\xd1\x1dZ\xcb\xd0\xd0\x10\x8b\x16-"\x08\ \x82\x19\x93\xd6\xba\xf6\xd5\xea\xd1\xb1D\x95\x8f6(\xbc\x1f\x84\xa9\x84\x9e\ \x8bR\x88\x80E\x18>\xb2\xf7\x85\xc3\xef~gK\xe1\xfd\x11\xa6\xfb\x9b\x8f\r~\ \x06\x01\xc0\x0b\xc30x\xee\xb9\xe7^\xbb\xfa\xea\xab\xafq\x1c\xa7\xb3\xbc\xa8\ \xbc\xf7\xd0\xd0\x10\xe7\x9cs\xce\x14\x01c\x0c\x15\xed\xa8\x9e,aKd\x10\x01F\ \x04\x9eq\xa7\xc0# \x16;\xb0\xe7\xdf\x1e6\xc9\xd0\x87\xe4\xd2i\x90\xd7\xf9\ \xf4T\xc0\xc3\xccy@(j\xed\xc4\xc4\xc4\xb81\x86,\xcb\xc8\xb2\xe9\xd9\xb6^\xaf\ \xd3\xd7\xd7G\x96e\xa4i:\xf5\xfdM\x9d\x15V:`\xc5b\xb6\x85i\x948\x84\xb1"\x8a\ \x15Q\xac\x19\x1fo|\x18O\xec?\xcc\xcc\x16!\xe3$\x92\xf5\xf7\x11\x98\x02\x0f\ \x18c\x8c\xb4\x02/-\xcb2\xf6\xed\xdbG\xbd^\x9f\x02\x9fe\x19\xd6\x18\x1eiW`-\ \xf6\xf5\x89$M\x850R\x84\xb1&\x8c`\xa21\xb0\x9b\\2\xe5K*e\xba\xc6\x9f\xd2\ \x9a\x1d\x01\x03\xa4\xd6Z\x99\r\xbc$\x94\xa6)\xbbw\xef>.\n\x7f\xe2(n\xf7,\ \x8c\xe6I\x9ee9\x89(q\x988\xf2\xf4\xcbL\xb7\x07I\xf1\x9cS\xf6~+\x812\x02\x19\ \x90\x88\x88\x9dKB\xe5\xb9\xc1\xc1A\xde\x7f\xff\xfd\x19Q\xc8\xb2\x8c[\x02\ \xe1\x8cN\xa5\xc0 b1\xc6\x12F\xe3G\xd3\xb1\xe7\xfb\xc9\xa53\xaf\xde\x9f\x8b@\ J\xee%s"\t\x95\xff\xef\xdf\xbf\x9ff\xb39#\n\x18\xc3\xc3w\xd7*-j\xc4\xc6\x03o\ \x16\xe0\xcb\xa4\xfd\xc8\xf6\xf8\xa4\t\x14al%0y\xe4\xc8\x91\xef[k\xa3\xb2\ \xde\xcf\x15\x898\x8ey\xf3\xcd7\x8f\x8b\xc2\'\x17[}\xfd\x95)H\xd1\r$\xbf\xdd\ W\x80/{\x9c\x93~Y}$\x81\x96\xff\xa7"\xb0i\xd3\xa6\xa7\xb6n\xdd\xfa\xa5$I\x0e\ \x95\x1bOs\xe5D\xbd^\xe7\x83\x0f>\x98\x11\x854\xcd\xf0\xbd"\x02b@\x99\xd6\ \x929\xa3\xc7\x997\x02\x857l\xf1\x80\x18\x18\xdf\xb2e\xcb\x8e\'\x9ex\xe2\xa6\ F\xa3\xb1\xb5\xb8\xe68\x19\xed\xdd\xbb\x97\x9d;w\x12E\x11i\x9a200`\x1fx\xe0\ \x9b\x0f?\xfd\xfc\x81\xd7\xa6dd\xa5\xc1\xb4\xf6K\x02\xf3\xb6\xa6\xb6UZ\xdajM\ >\x87\x06@;\xd0u\xfb\xed\xb7\xdfu\xd6Yg\xddNK\xc4\xb4\xd6\xf4\xf7\xf7\xb3g\ \xcf\x1e\xd6\xae]\x0b\xc0\xe3\x8f?\xfeV\x92$\x0f\x001\x8b\x1e\xba\x92\xcag\ \xff\x91\xc9\x17\xeed\xe8?_b\xba\xe3\xccDd\xder`\xc6\xbe\xd0,\x12nA\xa2\x06t\ \xdep\xc3\r\x7fq\xf1\xc5\x17\x7f\xc3u\xdd\xae\xf2\xfaF\xa3!\x07\x0e\x1cP\x03\ \x03\x03\x1c\x1e\x8e1\xdd:\x94/\xafy\ \x93N\xb9>\xf2\x07\x8eY\xe3f\xab\xa4j\xb7\xdez\xeb\xdfuvv\xfe\xe5\xb6m\xdb\ \xbe\xb5c\xc7\x8ew\x99Y\xeb[\x81\x96o\xf8\x93\x1aT\xe6\x85\xc0,\x12\xba \xe2\ 3\xbd\xe1\xa4\x0bp)\xd3C\xf8\\\x95\xe6\x843\xed\xa9\xae\xff\x05\xa2\x80I\x98\ \x91\xa4\x13\xca\x00\x00\x00\x00IEND\xaeB`\x82_*x\xaf' phatch-0.2.7/phatch/actions/effect.py0000644000000000000000000001756711346363116017466 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t from lib.formField import IMAGE_EFFECTS #---PIL def init(): global Image, ImageFilter, imtools import Image import ImageFilter from lib import imtools def effect(image, filter, amount=100, repeat=1): """Apply a filter - amount: 0-1 - repeat: how many times it should be repeated""" filter = getattr(ImageFilter, filter) image = imtools.convert_safe_mode(image) for i in range(repeat): filtered = image.filter(filter) if imtools.has_alpha(image) and \ filter in [ImageFilter.CONTOUR, ImageFilter.EMBOSS]: filtered.putalpha(imtools.get_alpha(image)) if amount < 100: image = imtools.blend(image, filtered, amount / 100.0) else: image = filtered return image #---Phatch class Action(models.Action): """""" label = _t('Effect') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(effect) version = '0.1' tags = [_t('filter')] tags_hidden = IMAGE_EFFECTS __doc__ = _t('Blur, Sharpen, Emboss, Smooth, ...') def interface(self, fields): fields[_t('Filter')] = self.ImageEffectField( self.IMAGE_EFFECTS[0]) fields[_t('Repeat')] = self.SliderField(1, 1, 10) fields[_t('Amount')] = self.SliderField(100, 1, 100) icon = \ 'x\xda\x01|\x07\x83\xf8\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x073IDATh\x81\xc5\x98{\x8c\\U\x1d\xc7?\xbfs\xef\xcc\ \xd2\xa5\xefN\xb7mJ\x84\xb6(\x04\x83\x98\xa84\x06+\x8d\x16\x89XJB\xd3J\x8cQ \ A\x12\x03\xd1FCI\xac\xa4\xd1D\x0c\x12\x1e\nhL0`\x9a&\xbe*Z\xa2\x18\r\x101\ \x96\x86\xfa\xc4\xe2\xa3J\x81\xd6>\xf65\xbb\xcb\xce\xce\xcc\xbd\xf7\x9c\xaf\ \x7f\xdc\x99\xd9-\xf1\xaf\xbdw\xdb_r23\xf7\x9e\xf9}\x7f\xdfs~\xe7\xfc\x1e0\ \x87\xd2:\xce;FO\xf6}t.1\xe6\\\xea#\xf1\xe8\xd0\xb1\xea\'\xce\xb5\x1d\xb3\ \x96\xfaH<^\x1f\x8aG\xe6J\x7f\xbf\xeaV\x86\nc\xce\x90\xe2g`\x9c\xeeL\x02\x17\x9b\xf7\x0f\xab\xe3\xf3\x12\x00\ \xa7ku\xffta\x8b\xdf"\xc5\tL\xda\x1b\xb4XG\x1b\x94\xe9&\xf9\xe8\xa6\x08\xc0B\ \xee\xf3\xeaMmw\xbf\x8c\xfc\x84\x0b\xac\xbf\xb2\xc5\x16\xa9F\xc2\x0bK6f\xcf\ \xcd\x16\xdf\x8a\x18\x0f0\xf4h\xe56\xd2\xf0]RC^\x98\x00\xa7i\xcd\xde\xc0\x0c\ bP\x1fG\xa2\xf9\xaaj\x99\xbd\xcdj\x98\xad\x04\x8b\tz\x9d{\x97n\xc8v\x9d\x13\ \x02\x126\xfc\xf5\xe8)\xc4\x16\x05\xf2\xab\xb2\xf7\x12\x14,\x87\xa9\x08\x9bg\ p>\xd8b\xb0\x9a\xc1\xf9\x1a\xd6xv]m\x13/\xcd\x16\xbf\xf0!6C\xb5u\xfeF2\xddgA\ \x81\x14z#\x03\xf3`\x99\xb0\xcc \x01K\x80\xb6`L\xc7\x93\xa3\xd9eE\x8c/\x85\ \xc0\xc4\x81\xe8\xfa\x91\x0bX\xb9\xfc\x9e\xb0\x93,l"\xd3q21=\x02dB\xa9 \x01\ \xa5@\xdbe\xd4m\xdb\xaa\xed\xc5o\xa4\xc2\x04\xb2\x04\x1f\xad\x8d\x8f\x8c\x1d\ \x8dN\xc5\x1f\x88C5\xd2\x15\xca\xd8\xa747VY>HA\x99P\x02j\xea\xf9e\xb7\xa4/\ \x02\x0c\xfd<\xda|\xce\x08\x0c\xff\x9e\xd5K\xaf\xf6\xbf\xf0\xff\xb0\xabC\xe4\ \x96\xf9\x1a\xbfj\xae%\x1e\xb8W[-\xd3\x0e2B/\x06tHX\naROtu\xd8"\x1e\x1cy:\ \xbe\xf6\x9c\x10pK\xa3\xdf\xe99\xe2\xda\xc6\xf4%\x1d\x0eO\xb9)\xeb\x8b\x89\ \x1e\x03X~?\x0f)\xd3\x1d\xd3gb\x86\x0b\x99\x7f\xb1G\xc0\xb1\xd2-\xe0\xae\xb3\ N`\xe4\xf9\xe86[\xe3.\x1a\x1de%@:\xc8\x9eP\x17\x04\xdb\xd4\x9d\xb3\xe2!\xbeM\ \xca~2\xf5\x0e\xb6%\xc0T\xbc\x02\xa0\xfe\x1d\xb7\xcb\xcc\xe6\xab\xaa\xb5g\ \x95\x80\xf6\xd3o\x17\xdb#zU\xc9\xb2\xadyJ\xec\x9a\xa4\x1a\x03M\xb1\xe8\xe4n\ .\xebMN\xb5\xaf\xeb>\xa4\xa0D8\xf1\xf8\xf07\xe2g\xb2\xf9nwh\x8b\xd0\xc6\xcf\ \x96\xc0\xac"\xf1h\x7f\xfc5\x17\xac\x1a^\xd3\xe1\xde\xc3\xa6\xae 5\xd40hFk\ \xc0\xbf\x02 \xcf\xf8\x19\xc1&\x02\xfa\xb8Tp\xa9%\xc2\xda\x06\x81W\xcf*\x01\ \xe7\xed\xf20\x08a\xd0\x1d\xed=L\xa2\x8f\xa9\x01\xd6\x1469#@z\xf7n\x85nd\x16\ \x16\x19\xea\xc4\x03%@\x0b\xb2\x19\x87\xfa\xac\x10\xc8F\xc3\x94\x93\xc3\xcc\ \x7fp\xe8\xab\\\x12\x85hm\xd6b=SBM \xf5C\x00Go\xe6<\xda\xfa4\x00&\x08\x86\ \x1cyV\xd4&_\xfd\x11\xfb\xe7\xca\xdb\xb2\xbdg\x95\x80\x86\xf5\x8c\xbc6\x87\ \x86-\xb4j|8\x9b4GS\xa6\x16\xd0\x12\x96\xe0\xf4\x19*\x83c\xee{H\x17v\xfe\x05\ \x0e,\x02\x12A\xdb\xa0\xc1\x84&\xb2\x1bfk<\xcc2\x17\xd2\x9d\xf4\r\xaf\x8b\ \x07\x99b\xa1\x1a\xd0]yk\xe7\x81\xcaR\xfd\xd6\x05j!\xd3e(_|\x04\x8a\r\xfa\ \x0c\xf5\x83-\xb4c8\x7f\xc3\xc0\x03\xfc\xe9\xac\x13\x00\x18\xba;\xfe\x8a\xc4\ \x97{\xc6\xb7\x94\xdf\xf1\xa9\xb0D\xa0<\xa3\x86^=\x00\xceP\x15\x98\xc7o\xfaL\ \xdb\x17\xef-^\x99\xcd\x9a\x80\xc0\x86o\x8f\x0e\x846\xebi+\xf7\xebTX\x9a\x17\ 1\x16:\xa5@g\xf5;\x7f\x121\xf7\x0e\xfc\x9a/\x155\xbc+\xb3\x0ed\x06"\xf5\xd7\ \xd0\x08/\xd2\x00\x9b\x12\xae\x99G[:yP~\xefw\xf2\xa1\x14B\xc6\x17\xca4\xbecG\ 1\xd16\xa2\xd3uw\xbf\xcb\xc2\xe7\xf0\x18\x9d\x06D\xef\x93\xfc;\xc6\xfe\x95\ \x07\xd8R\x14\xef\xadR\xb8\xa4\xb4\x1f\xe1!\xec8y\x15\xffq\xe2[\xdd\x1a\xb8G\ \x02\xba.TZ\'\xe2\x0c\xfc\xb2\x14\xe9=T\x06+4\xe5,R[\x84\x19;\xd0\xf9l\xf79\ \xae\x19\xf8#/\x94\x85\t%\xf6FO\xaf\x8anf\xb1\x8b\x04\x04?=|\x06>\xff\xeckf\ \xec?q9\x97\x96\x85\t%\xed\xc0\xb1m\xcc\xab\xc6\xd1\x1baT5\x8d\t?%B\xb7)1\ \xc3\x8d\xcc v\xfc\xb7\xee\xb8\xe4\x8a\xbf\xd2(\x03\xbb\x94\x1d8\xaf?z\x00\ \xa3\x86\x07y\x08\x19\xf8\x00\x99\xcf\xcb\x80,\xe4\xc3\x07H=\xab\x17\xa7\xffH\xdb\xc1\xda\xec%\ \x97v\x9c\xe1\xf9o\xcf\xf9\xf6}\x9f\xe7|\xef\xf7\x9c\xf7\xfb\x8eh\xad\xf9\ \x7f\x86:\xd5\x04\xa6\x8b\xf7\x05\x9cj\xbc/`\xbaX6$\x1f]\x1e\x93\x1fG\x90)q\ \x91S\xe9B\xcb\xa3\xf2m-\xdc\x07\x98\x08\xbb\x95\xcd\xd5O\x9c\xa1\xa3\xc5\ \xc48%\x02Vu\x89o\xcc\xc3]\x02\xd7\xfe\x17\x19T\xaf\x83\xb3\xfa\x0fU\xfa\xb9\ Bc\x9dt\x01+b2\xdf\xd1<\n|\x02@a\xe0\x11?n\xf1\xa00\xd0h;\xe5\x8cl|\xac*u\ \x9b&?\xb9\x93*`iLV\x8b\xe6\x01\xa0\x0c\xc0#~\xbcR\x8aWL\xdcx0\xc4\x05@Vg9\ \xac\x87v\x8d\x8cF\xd7F\xdf\xfexE2*g\ \xe7\x8a?\xab\x02,\xcb\xbaZD\xc2\xb6mo\xca\x1cF\xbd\xbbC\x11\xdbcP\xa2\xfd\ \xf8\xa4\x14\xbf\x94aJ9e\xf2\x01\x02RI@UbJ9\x9d\xf16\xdez\xad\x95\xcc\xe1\ \xfc\xd51\xab\x02\xb4\xd6o\x1a\x86qimm\xed\xbb\x00\xda\x81\xd8\x0bB\xeb\xc3i\ \xec\xa4\xc2\x839!D\x95S\xa6*q\xe1\xa6\xb1\xf3iZ\x9b\xdb\xd1\xd9\xc2r\xcc\ \xb8\x00\xcb\xb2.\xb1,\xeb\x12\x80\x9a\x9a\x9aW\x01B\xa1\xd0\xa2\xf7\x8eI\ \xb4gy\xe9\xfe\xb7\xe9\xeb\x8c\xe2\x16/^\xfc\xc42\xdd<\xf9\xfaf\xfa\xde\x19(\ *\x9fk\xc6\x98\x03\xe1p\xf8G\xc0*\xc7q\xae\x00\x08\x85B\xd5J\xa9\xedJ\xa9-\ \xc7\x8f\x1dO8<\xbf\xb9\x85C_Ms\xe6\xc7*xc\xff>tF\x8a\xce9\xa33 "\xc3\x86a\\\ \\[[\xdb\r\xa0\x94Z\xa9\xb5\xae\xa9\xa9\xa9y\xf0D\xe3\xb5\x03\xaf\xed\xec\ \xe0\xe5\xe7\xa6F\x1ef\xc0FC\xa1\xd0En\xb7\xbb\xc9\xb2\xac\x04\xc0\xaaU\xab\ \x8c\x85\x0b\x17VY\x96\xd5wt\xcc\xe5\xfd2\xb7\xfd\xb7\xee\xa7\xb3)\xbd\xe0D1\ N\xbb@\xf0T\x9dX\x80F\xbe\xb1\xe7\xb2\xd1\x9d\x93\xe5\xcf;\x03\x91Hd\xced\ \xf7\xc2\xe1\xf0z\xa5T\x1d\x90=:\xf6\xbc\xf3\xce\xdb\xe58\xce\xc7\x01\x04\ \x91\xa5\x03\x12R\x8a\xd69\x97g\xe7\x88;_\xb6\xe2\x91S@(\x14\xfa\xacm\xdb\r\ \'\xba\xb7n\xdd:\x8f\xd6\xfa\\\xc30\x16=\xfb\x9d\x8d\x0e\x80m\xdbw\x8b\xc8\ \xaf#\x91\xc8\xaeU}R\xb5t\x80\x9d\x02\xb7\x02F\xe9<\x1d\x9c{\xad\x8d\xa7rf_\ \x9c9\x17\xb1\x88\x9c\x05x\xdf{-\x12\x89|\xc8\xb2\xac\x8e\xba\xba\xba1\xe0\ \xfa\xe5Q\xd7\xb2\xa0\xf0\xe0\xb2\x98\xd4\x9d?g\xedw\xad\xb5\xf7\x8c\xac\x18\ \x90E\x8eA\x03P\r\xa0P\xb8\xc5\x87y\xba\x9b\x8a\xeb\x85\x8e?\xa7\x19|\xad@\ \x9f\x9c\x8e\x80\xe3\x11\x0e\x87\xd7\x01K\x80\xaf}\x0fq\xc7\xde\xf5\xdd\xa9\ \xbd\xf6\xf7\x01\xd0D\xf6\xad\xbcw\xd1\xf2\xe8\xbd\xff\xd0\xc2-Gc{\xc4\xc4+&\ \x1e\xf1aP\x82*Q|r\xb9C\xe7\xdcA\x0e>\x95(\xd8\xef\xa7-\xc0\xb2\xac/\x03\x17\ \xa4\xd3\xe9\x15\xcb\x86\xe4\x1c\x9d\xe5\x11\xf1\xa6?\x7f\xf4\xbe[<\x18\xb8\ \x16ka\xf1\xb8N\xa1\xd1\xf8%\x80_\x82\xf8\xa4\x14\x8f\x98\xb8\xa4\x04Ap\xb0\ \x99\x7f~\x19\x15\xd51^o\xe8=9\x02\x94R\x8d\x96e\xfdm\xd9\x80\\\x86\xcd\x16\ \x11N\x9b \xee\x9dh\xc6\xf0b\x88\x1b\x85\xc2\xc6&\xe9\xc41%\x88\xa9\xca\xf1I\ \xe0H\xc7\xe9ED\xb0u\x96qR\xc4K\x07)\xfd0\xe0L\x9e\xd7\xc9\xe4^\xa7\x05\x0bh\ \xb66fVt\xdd~\x07%\xfc\x90#\x8e\xe7\x95R\xfc\x12\xc0\'\xa5\x94\x88\x0f\x17%\ \x88(\x1cm\xe37\x82\xa4\xf4!<\xf8)\x95\n\xfc\x12\xc0-^\x04!\xcd\x08o\xf5\xef\ \xa3\xe7`\x14;%\x18\xdeI\x16\xb6\xc6N\xf7\xd9#""z\x12\xbf/X\xc0\xe0\x96\xaa\ \xdb|\x17\r\xadsy&~O\xb4\xc3\xe5\x98*x\xec\t\xbb(AP\xd8\x92a\\\xa7\x19\xcf\ \xa6\xe9\x8dus\xe6\xd9\xe7bJ\x05^1\x19\xb6{y\xf1\xc03\xc4\xa3#9\xf3\xd9)=\ \xdc\xf5\';\xd2\xbe\xc5i\x06\x04\x98\x9e\x80\xd4\x01\xca\xfa[D\xce\xfc\xa6"0\ O\x1d\xe9&\x03\x98R~\xa4\xce\xcb\x8e=\xe1\x8c\x1e\xa35\xf1oZ\xf7\xbf\xc3\x19\ \x81\xb3\xf0`\xe2\x97\x00\x9d\xe9\x16\x9em\xfa\x0b\x99T\x8e\x9a\x01\xd2=\xba\ \xe9\xad\xdfd6\xc4[\xd8\x0b$&#_\x94\x80$\xc3\xb1l\x12\xba\x1eQ\x9c~\xa1A\xc5\ \xa5^\xbc.\x13\x9f\x04&JD\x05\xf1\x88\x9fQ\x9d\xe4_]\x7f\xa7\xbb\xa3\x0f4\ \x0c\x0e\x0e2\xa6\x93\xbc\xd0\xdf\xc8\xfe\x03\x07r\xd6;\x0eN\xece\xfd\xd8\ \x1b?\xcb\xfc\x92\x0c\xed\xc0!\xad\xb5\x9d\x8bW\xd1\xcd\x9cv\xa0\xbf\xd1&\ \xdd\xdd\xcf\xe7VVP\x19\xf4\xe1\x95RL\t\x92\xc8\x0e\xf1L\xcb#$\x86\x92\xc7\ \xc6\'zFi\xd8\xb1\x03\x7fu\xee^\xc7N\xebx\xe7\xe3\xf6/:\xb6;\x8f\x03=@Jk\x9d\ {\xaa\xa6"\xe0\x18\xb1\x8e,{\xeek\xe6\x0bWj>\xfd\x919\xb4\x1c\xde\xcb?\x9b^\ \xc0\x19\xff\xdf\xd9\x1e\x8f\x83\xbfz\x92@\x9a\xb6t\x1f\xc9\xb7\xb7ej\xe2M\ \xec\x05\x06\x80\xf1\xc9\x16\xed\x8c\t\x00\xc8\x8eh\x9e{\xa8\x99\x83_\xea\ \xc0\xf1\xa6sT\xea\xe4\x18;\xa4\x9f\xdfws\xa6\x0e\xe8\x04\x12Z\x17\xf7j\x9bv\ ;\xad\x1d\x18jK\x15M^;d\x06\x1a\xed\xbb\xf6\xdd\x9c\xa9\x05Z\x81x\xb1\xe4a\ \x8674\x85";B\xdf\xdb\xdb\xedP\xd7\x93\xf6N&J&Sh\xc9\x1c\x8f\x93. \xf9\x8e~\ \xb1\xe5W\x99\x9b\x0e\xb7\xf3&\x05\xb8L>\x14.@3\xb5-\xd3\x84q\xaa#%\xb3\xa9\ \xf9\xe7\xf6\x9d\x14\xe12\xf9P\x90\x00\x11\x91\x857\xba\xa6\xb4\x1dQ\x06\xaf\ \xd8\x87\xb5\xab\xed!\xe7\x9e\xae\'\xec\xbfR\xa4\xcb\xe4C\xa13\xe0\x1aM\x90t\ \x95\x14\x9f\xc0\xc9\xd2\xfe\xfa\xad\xd9\x9b\x808\x90\x9c\xcaB\xcd\x85\xbc.\ \xa4\x94\xb2\x01\xe7\xe0\xfd\xd9McQ\xee\x00\xc6\x0b\t\xacA\xc7\x9bu\xfd\xbe\ \x1fdn\x06z\x99\x82E\x16\x82\x9c\x02\x82\xc1`\xef\xfc\xf9\xf3\xab\xeb\xeb\ \xeb\x1fX\xbf~}\xaacG\xf6\xf6\xe1W\xf4\xb5Z\xeb\xfe\\\xff\xb3\xc7t\xa2\xe7\ \x8f\xceO^]\x9fY?:J\x0f\xd3p\x99|\xc8{*Q__\x7f\x89\x88\xd4\x03\x03\xc9d\xf2\ \xca\xeb\xae\xbb\xae\xc7]\xc9\xbc\x0f^a\xd4\x19%r!\x80\xff\x1c\xa1|\xe1\xc4\ \x1a\x1f\x1b\xd0\xcdm\x9b\xf4\r\xd1\xc6\xec+\xcc\x80\xcb\xe4C\xde\x12\xba\ \xea\xaa\xab\xf6\xb8\\\xae\xf3\x81\x98i\x9a{\xb7m\xdb\xb6$\x13\xa3\xb9\xed~\ \xfb\x9a\xd1\xa8\xbe\x1b\x99()\r:\xde\xa4w\xbc|}\xe6[\xd1\xc6\xecKL\xbc\x98f\ \x95<\x14q.\x14\x89D\xd4\x82\x05\x0b6j\xad\x7f\nl\xda\xbd{\xf7\x8d\x9b7o6O_d\ ,\x9e\xb3Xn\x19\xed\xe5\xf7\x07~\x97\xdd\xc1\x0c\xbbL>\x14}\xb0\xb5}\xfb\xf6\ \xc5\xc0\xc3@w<\x1e_\xbdv\xed\xda^\xc0\x04R\xcc\x82\xcb\xe4C\xd1\xbd\xd0\x9a\ 5kv\x89\xc8\xa7\x80Dyy\xf9\xde\xad[\xb7~\x1d\xe8g\x96\\&\x1f\xa6\xd4\xcc\xad\ ^\xbd\xba\xc7\xe5r]\n\xdcc\x18FC}}\xfd\r\'\xabd\x8e\xc7\xb4\xcfF\x1b\x1a\x1a\ \xbeh\x18\xc6\xab+W\xae\xcc\xbd\xc9\x9d%\x9c\xd2\xef\xc43\x81S\xfe\xa5~\xba\ \xf8\x0f\xac\x9f\x81\xbf\n!y:\x00\x00\x00\x00IEND\xaeB`\x82]\x90\x14H' phatch-0.2.7/phatch/actions/fit.py0000644000000000000000000003315211346363116017000 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageOps import Image import ImageOps global HTMLColorToRGBA from lib.colors import HTMLColorToRGBA def fit(image, size, method, bleed, centering): return ImageOps.fit(image, size, method, bleed, centering) #---Phatch class Action(models.Action): """Resize an image""" label = _t('Fit') author = 'Stani' all_layers = True email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(fit) version = '0.1' tags = [_t('transform'), _t('size')] __doc__ = _t('Downsize and crop image with fixed ratio') def interface(self, fields): fields[_t('Canvas Width')] = self.PixelField('', choices=self.PIXELS_X) fields[_t('Canvas Height')] = self.PixelField('', choices=self.PIXELS_Y) fields[_t('Resolution')] = self.DpiField(choices=self.DPIS) fields[_t('Align Horizontal')] = self.SliderField(50, 0, 100) fields[_t('Align Vertical')] = self.SliderField(50, 0, 100) fields[_t('Bleed')] = self.SliderField(0, 0, 100) fields[_t('Resample Image')] = self.ImageResampleAutoField('automatic') def values(self, info): #dpi dpi = info['dpi'] = self.get_field('Resolution', info) #size x0, y0 = info['size'] x1 = self.get_field_size('Canvas Width', info, x0, dpi) y1 = self.get_field_size('Canvas Height', info, y0, dpi) new_size = (x1, y1) #method method = self.get_field('Resample Image', info) if method == 'AUTOMATIC': if x1 < x0 and y1 < y0: method = 'ANTIALIAS' else: method = 'BICUBIC' method = getattr(Image, method) #centering align_hor = self.get_field('Align Horizontal', info) / 100.0 align_ver = self.get_field('Align Vertical', info) / 100.0 #parameters return { 'size': new_size, 'method': method, 'centering': (align_hor, align_ver), 'bleed': self.get_field('Bleed', info) / 100.0, } icon = \ 'x\xda\x01(\x0e\xd7\xf1\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\r\xdfIDATh\x81\xed\x9ayT\x94\xe7\xbd\xc7?\xcf\xbb\xcc\ \xc0\xb0\xce\x0c\xc8\x8e"\xc1\xa0\x104A\\\n\x86\xc4#j\xcdUc\xe25&\xa6\x92\ \xe5f\xf76I\x9b\xb4\xe7f\xb3i\x9a\xa5MmN\x1aO\xd6\xf66"\xb8\x15cP\xdc\x80\ \xd4\x18\x03\x91\xb8a\x926\xa1F\x04e\x1d6ad\x9d\x99\xf7\xbd\x7f0\x83\x03\xd8\ \xe85\xd8{z\xce}\xce\xe1\xf0\xcf\xfb>\xbf\xef\xe7y\xbe\xef\xef\xf7{\x9fw\x84\ \xae\xeb\xfc+\x0f\xe9\xffZ\xc0\xf7\x1d\xff\x0fp\xb1\xf1\x1f\xad\x89\x01Wr\ \xfe+\x06\xb0\xe0\x8d\t\xc6G\x1b\xa7\xbc\x1d,\x02\x1b\x1f\xaa\x9dx\x9f\x10B\ \\\x898\xe2J<\xc4\x0fW^w\x95\xd5b\xddn4\x18\'\xf6\xeb=\xd8\xf56Zz\xea\xd7\ \x9d,\xb3=T\xb6T\xef\x19\xcdX\xa3\n \x84\x10?\xab\xb9\xe1\x8e\xf0\xa0\x98weI\ 6\xf5\xea\xe7\xe8\xd0\x9ai\xd7\xeai\xd1j\xe9\xed\xeb\xf9\xab\xd6\xce\x92\xc2\ d\xfd\xc4\xa8\xc5\x1c-\x80\x07\xde\x9d\xaa\xc6-\x19\xff\x87\x08\xdf\xb8\x1f\ \xe9B\x13\xddZ\x07\xedZ#-\xda\x19\x9a]\xa79\xa7\xb7\x01\xa0\xb9\xe8vvq\xcf\ \xee\xab\xd8\xa2\x8fB\xf0Q\x01x\xe2\xd4\xec\xf8\x04s\xf2\xeep\xe3\xd8\x04Mw\ \xd1\xa17\xd3\xea\xaa\xc5\xa6\xd5p\xba\xfb$=\xaam\xc4=Z/o\xda\xab\xf8\xe9\ \xbeL\xbd\xf7\xfb\xc4\xfe^\x00B\x08\xf1\xcb\x86\x9b\x97\'\xfa\xa7\xfd1T\x89\ \xf1u\xd0G\xabV\x87\xcdUM\x83\xf3$\x85\xfb+8\xfbU\x00\xd6\x8cz\xc6%\x8d\xbc\ \xdf\xd5\xcfq\xcer\xcb\x8e$\xbd\xea\x9f\x0e\xf0\xfc\xc77*\x81\xd7\x8c}o\x92i\ \xe6]\xa1\xf2X\xba\xf5\x0e\x1a]U4\xb9\xaa\xa8\xec\xfc\x8a\x0fw\xfc\x8d[\xfa\ \xef\xe6\xba\xe0\xeb\xd8\xd6\xb8\x8d\xa31\xdbI\xb9ACV\x86\xce\xa3\xbb8\xe7\ \xeagea\xac\xbe\xed\x9f\x06\xf0\xb3\xca\x8c\xd8\xf8\xf0){\xe2\x8d\xd7M\x0c\ \x93\xe3\xe8\xd4\x9aip}K\xa3\xab\x8a\xb2S\xe5\x1c\xd9\xd3\xc5#\xa1\x8fqu\xe4\ \xd5\x18\x8dF\xecv;\x07\xaa\x0f\x90\xab\xbfM\xe2<;\x81\x96\x91s\xba\xfax\xbd\ \xc1\xc6\x93\x87\xaf\xd3\x1dW\x14\xe0\xa9\xc6\xd9\x8b\xc7\x9b&\xe7F\xab\x13\ \xfc\x03$+=\xba\x9df\xd7i\x1a\x9cU\xe4\x97\xfd\x05\xdf\x8aD\xee\x8d\xbb\x97\ \xf01\xe1\x98L&dY\xc6\xe1p\xd0\xd1\xd1\xc1\x89\xba\x13\xbc\xd5\xbc\x16\xdf\ \x8c\x13\xc4&^\x00\xc2\xc1a\xdd\xc1\xd2\xc2\xb1z\xcd\xa8\x03\x88\xe7\x85\xf4\ \xd4\xc3\xb3\xd7\xc4\xf9$=j\x91\xa3\x84\x8f\xf0\xa7_\xef\xa1]k\xe0d\xd77l\ \xdcq\x909\x1dK\xc9\x1a\x9b\x85\xd5j\xc5h4"I\x03uR\x08\x81\xa6i\xd8\xedvl\ \xcd6\xf2N\xe7\xf1\xf5\xf8\xbd\\\x93\xa9#\xcbC\xe3h\x1a\x9d\xf4\xb1b{\xac^8j\ \x00w\x7f\x1d\x17\x1e\x11\x1aW\x10i\x8c\x9b\x16(\x85b\xc0\x87~z\xe9\xd4\x9a9\ t\xba\x82O\x0b\x9b\xb9\xc7\xff\x01\x92\xa2\x92\x08\x0e\x0eFQ\x06\x8c^SSCcc\ \xa3#55U5\x1a\x8dh\x9aF__\x1f---\x1c8s\x80|\xc3\x7f\x934\xaf\x1b\x7f\xf3\x88\ \x90\xba\xe6\xe0\xb7\xf6\x13<\xb5/Sw~/\x80\xbbj\xa3o\x0c\xf5\x89\xc9\x0f1DY\ \xfcD0\x8a0\xe0\xd4\xfb\xb0\xbb\xda(,\xff\x1c\xfd\xf3\xb1dGd\x13\x19\x16\x89\ \xbf\xbf?\xb2{I+**\x9ceeeo\x7f\xf1\xc5\x17\x15\x8b\x17/\xfeyzzz\x82\xd9<\xa0\ \xd4c\xa9\xca\xbaJ\xde=\xfb&\xc1\x995DO\x18\x19[sr\xd0\xd9\xcd\xbf\xef\x8a\ \xd7k/\x0b`EC\xc83!\xc6\x88\xe7\x83\xa41\x92\xaf\x14\x88\x8c\x82C\xef\xc3\ \xd6e\xa3`\xf7\xd7\xcc\xb2-bN\xe4\x1cBBB\xf0\xf1\xf1A\x92$\x1c\x0e\x07\xa5\ \xa5\xa5\x8d{\xf7\xee}\xa1\xbc\xbc\xfc\x1b@3\x99L\xa6\xec\xec\xec\x07\xa7O\ \x9f\xbe0>>~\xd0R\x9d\x9d\x9d4\xda\x1a\xc9\xab\xcb\xe3T\xe2>\xae\xc9\x00i\ \xa4\xa5\xcej\xfd,/\x8c\xd1\xf7^2\xc0\xa2\xa3\xc2\xa4F\x18\xb7\x9a\rc\xe6\ \x07HV|\x84\x1f\x122N\xfa\xa9jh\xa4|{\x0f+\xa4\xbbI\x8eL\xc6l6\xa3\xaa*B\x08\ \xda\xda\xda(++\xfbt\xd3\xa6M\xaf655\xd9\x80N\xc0\t\xf8\x01AK\x96,\xc9JOO\ \xffIjj\xaa\x8f\xaa\xaa\x00tww\xd3\xdc\xdc\xcc\xc7\xb5\x1f\xb3\xddo=\x93\x17\ \xf4\xe2\xeb?T\x8f\xae\xa3\xe3\xe2\x97\x05\x11\xfa/.\t@d\tk\xe2\xc3\x86\xe3\ \xd33B\xa3L\xf2y\xf1\xbd\xfa9:z:\x98T\xb6\x82\x14=\x8b\x80\x80\x00$IBUU*++]e\ ee\xef\xe5\xe5\xe5m\x01:\x80V7\x80\x0b0\x01f\xc02e\xca\x94\x84\x05\x0b\x16<\ \x97\x91\x91\x11\x17\x1c\x1c\x8c\xa6i8\x1c\x0eZ\xdbZ\xf9K\xe0;\xd4^S\x8c\x18\ \xd6#\xf7\xd8\xe1\x8b\x8f(l\xbc\x9f[t}h\x9a\xbd0\x80\x10cX\xc8J\xcb\x1c\xf9\ \x17\xb3n\n\xf03\x05i\xf4\xe8\xe7\xd0\xd1\x06\xaf\x99R\xbf\x8ci\r+\x91\x85By\ yysII\xc9\x0b\x07\x0e\x1c\xa8\x00\xda\xdc\x7f\x9d@\x1f\xa0\x03\x8a{\x17\xcc\ \x80500\xd0z\xe7\x9dw\xfex\xc6\x8c\x19\xf3\xe3\xe3\xe3\xe9S\xec\x14\x84\xac\ \xa6:\xa0|\x84\x96\xa6\x1a8\xb6\x93\x9a\xbe\xbd\xac\xe23>\xd6u\xfd\xdc\xa5\ \x00\x04\x8c\x1d;v\xe2\xcd\xd97\xaf\xffP\xcd\x9f\x10:\xbb\x8e\xa8\x84\x11\ \x97\x11\xda>\x11\x9f\xbc\x1f\x1c\xdd\xfa\xde\xae_5444x\x89?\x07\xf4\xeb\xba\ \xae\xb9\xe7\x13\x80\xec\xde\x89 \xc0\n\x04\xdfz\xeb\xad\x0b\x92\x17E=\xf6\ \xf7\xd9yj\xb7\xb1u\xc8\xdc\xba\x06_\x97CP\xc5TG\xcc71\xab\xb7m\xdc\xb6\t\ \xa8\xd7u\xbd\xef\xa2\x00\x07\x0f\x1e\x9cf\xb7\xdbw644\x84\xd45\xd4Q`/\xc06\ \xa5\x9c\xe4Y \r\xdb^W\x1f\x9d\xf5;x\xf2\xe8\xc3\x14\x01g\x81.\xc0y\xa1NS\ \x08!\x03F \x00\xb0f\xec\xe0\x01K\x1a\xab\x844\xf4\xc5\xaa\xb7\x0b\x8e\x17\ \xa9\xdc\xd8\xb2\x94\xb9\x91s\x89\x89\x89q\x06\x05\x05\xbd\x9c\x96\x96\xb6z\ \xf8\xbc#\x00\x8e\x1d;\xf6DWW\xd7K.\x97K\xed\xed\xed\xa5\xbd\xbd\x9d\x86\x86\ \x06>k\xfd\x8c\x8f#\n\x98<\xbf\x1f\xbf\xc0a\xcat4G7/\xeeZ\xca\x0b\x1c\xb9\ \xb0x/\x08\xe9\xdauX#3y_1\xb1@FA\x15F$\x14\x04\x82\xc6:\x07\'\xf6\xf8q\x87t7\ \x93\xa3\'\x13\x15\x15Epp0\xaa\xaa\xa2(JQOO\xcf\xf2\x94\x94\x94\xf6\x11\x00\ \xd5\xd5\xd5>mmm[{zz\x16\xe8\xba\x8e\xae\xeb\x83\x0fXgg\'MMMT\x9c\xaa`\x8b\ \x9a\xd77aQ\x971b\xfcHq\xbaF\x89\xaeq\xfb\xf6\x08\xbd\xe5\x1f\x01,n\x16\xd7\ \xaa\x9ao\x81\xbf\x12\x18c\x14~\x18\xf0A\x16*\xe8\x82C\xc7\x1ah\xdci\xd2\xee\ \x8b\xba_J\x8cO$,,\x0c\x7f\x7f\x7f\x14EA\x08\x81\x10\x02I\x92\xce\x00K\x13\ \x12\x12>\x07\xf7;qee\xe5\xb8\x96\x96\x96\xca\xfe\xfe\xfe\x05\x9e\x0b\xdd\ \x17c4\x1a\xb1X,\xf4\xf6\xf6jg\xbe:S\xd8\xb1\xa6\xfb\x95\xcf\xdf\xa0\xfc\xab\ R\xd0\xb4\xa1\xe2\x84\xc4\x1c\x04_\xdel\x13?\xb8\x90\xf8\x95\xad!\xab"\xa5\ \x84\xcf\xc7\x19\x92bb\xe4ID\xcb\x89D*\t\x048#\xd9\xb3\xb3\xd6Y\xf6J\xd3vG\ \xbe\xf3\x8d\xdaS\xb5M\xaa\xaa\x0e\x11/I\x12\x92$!\x84\x88QU\xf5\xd3\xd3\xa7\ O\xff\x18\x06\xb2\x03999]\xb3f\xcdR\xcdf\xf3`\xff\xa2\xb9\xd5\xe9\xba\x8e\ \x10\x82\xf8\xf8\xf8\xaf\x9ey\xe6\x99\xb7\xf4>]\x90G\xe5\xc9&f\xb5\xd5sO\xda\ |\x8c\xbe^\xe7\x0e\x92L8:\x9f\xdc\xdc$\xfe\xeb\xc30\xfdU\x80e\xcdc\xfcC\xa5\ \x90\xdc\x189y\xb1\xbfd\xc6$\x021\n?T\x0cT\xb7\xd4\xf1\xd6\xa6\x92\xe6\xd6\ \xdc\xae\xb5\xfc\x95o\xcep\xa6K\x92$[xx\xf8s\xaa\xaa\x1a\xbd\x17TQ\x14\x14E\ \xa1\xbb\xbb[\xae\xa8\xa8Pccc\x11\x80HMM\xf5\x9d;w\xeeo\xe2\xe3\xe3\x1fNJJ\ \x12\x92$\xe1\xb1\x91\x07\xc0m\xa9\xeam\xdb\xb6\xdd\xb1f\xcd\x1a\x1b\x10\xcd\ \xd5L6\xde\xc6\x93S\xfe\x8d\xe8\xf0q#W<@Xv\x07\x88\x905A"\xfc}\xab\x12\x11\ \x1d(\x85\xe0\'\x82\xf1\x15\x01(\xc2\xc0\xae\xbf\x95\xf0\xc7?\xed=\xe8\xdc\ \xe0\xfa=\xed|\x0b\xb4\xec\xd9\xb3\xe7\x81\x98\x98\x98\x9fJ\x92\xa4\xb8W|\ \xb0\xd6(\x8aBMM\r%%%U6\x9b\xed\xf6\xb5k\xd7\x1e\x16n\x1b\x99\x801\xcb\x96-\ \xbbe\xea\xd4\xa9\xcf\xcf\x981\xc3\xe4\xe3\xe3\x83\xe7\xf9\xf0@\x00\x08!\xce\ \xf5\xf7\xf7?\x98\x91\x91Q\x04\xc4\xe2O\x02\xcb\xb9?a!7N\x9c\x0eB\x02\x83\ \xf0\xc1,Eb\x91"1K\xe1\x98\xa5p\x82\xa41\x04\x8a\x10\xfc\xa4`\xfa\x9d\x0e^.~\ \xdd\xf5Q\xce\xd1\x1c\xb6\xf1g\xa0\xea\xbe\xfb\xee\xb3\xafZ\xb5\xea]\x83\xc1\ p\x93\xc7\x05\x1e\xe1\x9e\xaa]^^\xce\'\x9f|\xf2Q~~\xfe\xd3\xb5\xb5\xb5U\xc0Y\ \x01\x087@\x08\x10\x96\x9c\x9c|\xf5\xc2\x85\x0b\x9f\x999s\xe6\x84\xc8\xc8\ \xc8A\x00\xef\xa1\xeb\xba\xae(\xca;\x99\x99\x99O\xdb\xed\xf6p \x8e\x1fr\x93u\ \x11\xf7\xde\xb0\xc0l\x88\x0e\x88\xc1"Eb\x91\xa2\xdc\xff#\x08\x92\xc2\x08\ \x92B\xa9>\xf7-\xff\xb9\xfe\xe9\xb6\xaau\r\xbf\xe5(\x9f\x01U\xc5\xc5\xc5\xd1\ QQQy\xb2,\x8f\xf3\xb6\x8bg\xd5\xbb\xbb\xbb\xd9\xbd{\xb7\xb3\xb4\xb4\xf4\x9d\ \r\x1b6\xfc\x19h\x06\x9a\x80N\xe1^]\x95\x81Ji\x01\xac~~~\xd6\x95+W>\x94\x96\ \x96\xb6(%%e\xb0\xc3\xf4\x06q\xef\xc8\xe1\xb2\xb2\xb2e\x8f<\xf2\x08\xc0x&q\ \xad\xffm\xca\xe3w\xdc6-25\xeaZ\xacR4V)\n\x8b\x1c\x85E\x8a`{\xcd\x16\x1e_\ \xfb\xe2\xd1\xfe\x1c\xc7\xeb\xb4\xf2\rPs\xec\xd8\xb1\xdbL&\xd3\xaf\x85\x10>\ \x1e\xf1\x06\x83aP|]]\x1d\x05\x05\x05MEEE/\x94\x96\x96~\xc1@\xa1le\xa0]\xe9\ \xf3\x00x*\xa5/^\x95r\xc9\x92%sg\xce\x9c\xf9xzz\xba\xaf\xbf\xff\xb0\x0e\xeb<\ Hkgg\xe7]\x19\x19\x19G\x80q\xf8\x11/\xad\x14\x0f\xfc({vF\xf6\xe4lB\xe4h\x8c\ \xba?\xbf\xd8\xff\x9c\xb6\xf1\x9d=\x1b\xd8\xca\x16\xe0\xd4\xfc\xf9\xf3\xdb^{\ \xed\xb5\xdf\xc9\xb2|\x9b\xc7\xeb\xb2,c0\x18\x063\xcf\xa1C\x87(***\xdd\xb8q\ \xe3\xabMMMMn\xe1\xed\x80\x1dp\xe8\xba\xae\x89a\xab\xea])-\x9co\xbe\x9e\xcd\ \xc8\xc8\x18\x1f\x1b\x1b{!\x00\x00\x97\xcb\xe5z%%%\xe5w@\x0c\x10\xc7B\x16^\ \x9f\x9d\x92}\x7f\xfa\x9d\xf2\xf3\xf9\xaf\x9f=\x91S\xf7\x1a\x87\x06,\xb3a\ \xc3\x06KZZ\xdazI\x92\xae\xf6\xcc\xe1\xbd\xea\xbd\xbd\xbd\xec\xda\xb5\xcb\ \xb5\x7f\xff\xfe?\xe4\xe6\xe6n\xe6|sx\x16\xe8\xc6\xab\xd2\x8f\xa8\xc4B\x08\t\ \xf0XjH\xf35m\xda\xb4\xf9\xa9\xa9\xa9\xc8\xb2<\xf8P{A\xa0\xebz\xc9\x96-[\xee\ ]\xbdz\xb5\x0f0\x9ed\xaee:Yl\'\x97f\xfe\x0e\x9c:r\xe4\xc8\xfc\xa0\xa0\xa0\ \xdf\xcb\xb2l\x02\x90ey\xf0AUU\x95\xfa\xfaz\xf2\xf3\xf3\x9bKJJ~\xb5\x7f\xff\ \xfec\x0cm\x0e{\x01\xcd\xbb\xd2\xff\xa3f\xee\x82\xcd\xd7\xd2\xa5K\x7f8c\xc6\ \x8cGg\xcd\x9ae\xf4\xbc]]\xe0\xcc\xf6Luu\xf5\x9dYYY\xd5@\xac{!liiiMyyy/\x18\ \x0c\x86{<\xf7xD+\x8a\x82$I\x1c>|\x98\x1d;v\x94o\xde\xbc\xf9\xd7\xdf\xd5\x1c\ \x0e\xd1\xfa]od\xc3\x9b/\xc0\x9c\x9a\x9a:\xd1m\xa9\xd8\xab\xae\xbaj\xc4.\xb8\ \xff\xf7\xf7\xf4\xf4\xfc|\xd2\xa4I\xeb\x00CNNNXzz\xfazUUS<\x0f\xaa\xb7\xf8\ \xfe\xfe~\n\x0b\x0b\xb5}\xfb\xf6\xfdi\xdd\xbau\x1b\x18\xb0J\x1b\x17i\x0e/\n\ \xe0\x16\xe4m)\x0b`1\x9b\xcd\xa1+V\xacxl\xea\xd4\xa9s\xd2\xd3\xd31\x18\x0c\ \xc3\xef\xf1\x14\xbfMN\xa7\xb3\xd0`0\xbc)\x84\x08\x04\x86\x14%EQ\xb0\xd9ll\ \xda\xb4\xa9\xad\xb8\xb8\xf8\xc5}\xfb\xf6\x1dr\x8b\x1e\xcc2\x80\xeb;\x9b\xc3\ K9\x95\x18f\xa9`\x06v#h\xd9\xb2e\x8b\xa6M\x9b\xf6HVV\x96\xc1j\xb5\x0e\x8a\ \xf7\x06\xf1\x1e\x1e\xd1\x1e\xcb\x1c?~\x9c\xad[\xb7\x1e\xde\xbau\xeb+555\xf5\ \x0c\xcd2\x17\xb4\xcce\x01x\t\xf2X*\xd0\ra\x9e>}zRVV\xd6\xb3\x99\x99\x99QII\ \x178\x00u\x83x\x8bw:\x9d\xec\xdc\xb9S+))Y\x9f\x9b\x9b\xbb\xde\xe9tzV\xdd\ \x93e\x1c\x97zr\xad\\\xfc\x92\xf3C\xd7u\x97\x10\xa2\x97\x81\xf7\\\x07\xd0W^^\ \xee8y\xf2\xe4C\x1d\x1d\x1d?ill\xbc\xe1\xfa\xeb\xaf\x1f,\xfd0`\x19o\xf1\xad\ \xad\xadl\xde\xbc\xf9lQQ\xd1K%%%\xe5\x0c\xac\xb8\xe7\xfd\xb9\x97\x8bXf\xf8\ \xb8\xac\xb3Q\xb7\xa5\x14\x86e\xa9\xdbo\xbf}IZZ\xda\x83s\xe7\xceU-\x16\x0b\ \xb2,\x0f\n\x97e\x99/\xbf\xfc\x92\xfc\xfc\xfc\x8a\x0f>\xf8\xe0\xa5S\xa7N\xd5\ r>\xcb\\\xb2eF\x05\xc0\x0bD\x06|\x18\xb0\x94\x050\xcf\x9c93%++\xeb\xd9y\xf3\ \xe6\x85O\x9c8q\xd02{\xf7\xee\xd5\x8b\x8b\x8b\xf3rrr\xdew:\x9d\x1d@\x0b\x97a\ \x99Q\x05pCx\xb2T\x00\xee\xa3\x93\xb0\xb0\xb0\xf0\xe5\xcb\x97?1o\xde\xbc\x8c\ \xc4\xc4D\xf2\xf3\xf3;JJJ^.**\xfa\x8c\x01\xcb\xb41\x90e\xfe\xd7\x96\x19u\x00\ 7\x84\xb7\xa5\x06\xb3\xd4\x8a\x15+\x96\x85\x85\x85M+((\xf8\xcd\xc9\x93\'O3\ \xb40\xf5]\x8eeF\xc4\x1e\xadodn\x08\x89\xa1\x96\nb \xfdv3\xb40]\xb6eF\xc4\ \x1d\xed\xcf\xacnK\x19\x18(|\x01\x0c\x00\xf4p\x99Y\xe6\xa2\xf1\xae\xc4wb/K\ \xa9\x0c\xec\x8a\x03w\xfb;\xea\xb1\xae\xe4\xafU\xbc\xbf\xce\x8f\xe6\xaa\x0f\ \x89\xf1\xaf\xfes\x9b\xff\x01 4SXO{W\x00\x00\x00\x00IEND\xaeB`\x82\xc6\xde\ \x1f\x84' phatch-0.2.7/phatch/actions/geek.py0000644000000000000000000002326411346363116017134 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python. # Embedded icon is designed by Alexandre Moore (http://nuovext.pwsp.net/). # Follows PEP8 import os from core import config from core import ct, models from lib.reverse_translation import _t from lib import system COMMANDS = [ 'convert file_in.tif -bordercolor snow -background black '\ + '+polaroid file_out.png', 'convert -blur 0x5 file_in.tif file_out.png'] try: COMMANDS = [l.strip() for l in open(config.USER_GEEK_PATH).readlines()] except IndexError: pass class Action(models.Action): """Defined variables: """ label = _t('Geek') author = 'Stani' email = 'spe.stani.be@gmail.com' version = '0.1' tags = [_t('plugin')] __doc__ = _t('Execute external command') def init(self): command = self.get_field_string('Command') exe = command #check if exists if not os.path.isfile(exe): exe = system.find_exe(exe, raise_exception=True) def get_relevant_field_labels(self): field = self._get_field('Command') #for validation on user input field.needs_exe = self.is_field_true('Verify Program') field.needs_in = self.is_field_true('Verify Input') field.needs_out = self.is_field_true('Verify Output') self.valid_last = self.is_field_true('Allow as last action') return ['Command', 'Verify Program', 'Verify Input', 'Verify Output', 'Allow as last action'] def interface(self, fields): fields[_t('Command')] = \ self.CommandLineField(choices=COMMANDS) fields[_t('Verify Program')] = self.BooleanField(True) fields[_t('Verify Input')] = self.BooleanField(True) fields[_t('Verify Output')] = self.BooleanField(True) fields[_t('Allow as last action')] = self.BooleanField(False) def apply(self, photo, setting, cache): info = photo.info command = self.get_field('Command', info) photo.call(command) return photo def is_overwrite_existing_images_forced(self): return False icon = \ 'x\xda\x01\'\t\xd8\xf6\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x08\xdeIDATh\x81\xedY[l\x14\xd7\x19\xfe\xfes\xce\xcc\ \xac\xbd6\xeb\x1b\x06\x1b\xb0+\x01\x0e\xc2\xa0\x12c\xb0\xebT\xa2\x8a\x9a\x88\ \xd6\xa2\xe1\xa9QT\xf5\xadR%\xde\xaaJ}I[Uj\xaa\x8a\xa7J}\xa1j\xa5\x80,\xf1\ \x02i\x15#\xd2\xa6\x105P\x95&\x94\x00-\xa0\xaa)\x11\xc5\xb1\xa3\xac1\xb6Yg\ \xef;\xe7\x9c>\xcc}vvm\x12\x05Z\x89#\x8dfv\xce\x9c3\xdf\xf7\xff\xdf\x7f\x19\ \x9b\xb4\xd6\xf8\x7f\x1e\xecq\x03\xf8\xac\xe3\t\x81\xc7=\x9e\x10x\xdc\xe3\t\ \x81\xc7=D\xfc\xc6\xd1_\x1c\xb3J\xf9\xd2\x84\xd6\xba\xfbq\x00j2l\xce\xd9\xdf\ \x7f\xfc\xf2\xf7\xee\x86oR\xb8\x90\xbd\xf2\xf3_v\xa6,\xeb\x8d]\xc3\xdb\xbf\ \xb4n];\xd2\xe94\n\x85<\xd2\xe96\x94JE\x98\xa6\x05\xd34\x1f5p\xd4jU\x13\x10\xaa\x97\xa0GM\xac\xd5\x03^\x10\x07=\x8f\x86i\x98\x00\xc8%c\ `\xef\xc8\xd3\xd8;2\x82\xfb\xf7\xef\xe3\xfc\xf9\xb7p\xe1\xe2\x9f\x91\xcdf\ \x9b\x00p\x01\xfb\x96\xf6\xaeC\x99(I\x8e!RB\x08\x1f[\x13\x02\x1c\xc48\x18w$\ \xe4\xbd\xbeZ\xab\xe1/\x97.al\xff>ttt\xf8\xc4zz\xba\xf1\xd2K/\xe2\xf0\xe1o\ \xe0\xda\xf5\x7f\xe0\xfc\xb9\xf3x\xff\xdf\xb7Q\xadVbZ\x8e\x9d=\x02\x91l\x13\ \x9d\x0b\x1bBk\r!\x0c\x07[\xd3,D\xe4\xca(J\xc0\xb6%~\xfd\x9bWq\xfc\xd5\xe3\ \x18\x19\xd9\x83C\x87\x0ea\xc7\x8e\x1d~Fhii\xc13\x13\xe3\x98\x98\x18\xc7\xcc\ \xcc\x87\xf8\xed\xef^\xc7\x95+\xef\xd5\xeb>\x9e:\xebRlR\x06r\x88\na8\xd8\x9a\ \xc6\x00w\x18r\xc6`Zf\xc4\x12^V\xfa\xe7\xbf>\xc0\xa5\xbf\xfe\x10==]x\xfe\xb9\ \xaf\xe2\xc0\x81\x03\xd8\xb8q\xa3\xaf\xe9\x81-\x03\xd8=\xbc\x13\xd7\xaf]\x07\ c<18=P\x91`m@\xd4\x9b3\x0cOBM\xd2(\x85\x8a\x85i\x9a\x89YBk\x13}\xfd-\x10\x82\ \xe3\xfd\xdbw\xb0qc\x1f\xd6\xaf\xef\x05\xb9\x96\xd1\x1a\x90RB\x18&\xf6\xef\ \xdb\x87L&\x03\xadU\x00\n\xc0\x8d\x1b7\xb0\xb8\xb8\xe8\x00lP\x17\x02\xcf\x85\ <\xc0\x18\x88\xf1&\x1e \'\xca\xbd\x18H\xd2c[[\x1b\xc6\xf6\x8fb\xdf\xbe\xbd\ \xd8\xbc\xa9\x1fRJ(\x15\xed\x95\xe6\xe7\xe7aY)\x1c\xfc\xdaA\x0cl\xd9\xe2\x80\ \xd7\x81\xd5\xef\xde\xbd\x8bO>\xc9G\x80\x06\xb6\x8a\'\x02Gj\xc2\x10\xbe\x81\ \x1b\x13`\x8e\xc68\xe3\xb0\xacT\xa8\x8c\x13\x86\x86\x860>6\x8a]\xbbvBk\r\xbb\ f\xa3Z\xb3}\r;\x19\xe9\x1c\xce\x9c\x99F\xa9\\\xc5\xb6\xedO9\xcf\xd9\xb6K \ \xc8\xfd\xd2\xb6\xdd\x18\xf3\xeaEB\xd1\x8b\x90\x01\x840\xd7\x10\x03\xae\xc6\ \x1c\x0f\x98\xfe\xe2\x8e\x8e\x0c\xbe\xfd\xadoB\x18\x06j\xd5\x9a\x9fajv\r\x1f\ \xdc\xbe\x8d\xe9\xe9\xd7\xf1\xee\xe5\xbfa\xdd\xbaNl\x1e\xd8\xe6\xaf\xbdwo\ \x01\xe5r\xd9\x97\x8ar\xd3e\xb9\\\x0e\x92DBSW\'+\xad\xdd\x18X\xd5\x03\x1c\ \x8cqp\xc6|\x0fhhX\x96\x05[*0\xe6h\xb9Z\xab\xe2\xe2\x85\x0bx\xed\xb5\xd3X\ \xb8\xbf\x84\xcd\x9b\x07\xf1\xf4\xc8\x18\x88(\x92\x0e\xa7\xa6\xa6po>\xeb\xef\ \xefY6\x93\xe9D_\xdf\xa6\x84&\xb0\xbe\xd0y\x18\xd6\\\xc8\xc8k\xe6B\x122M\x0b\ \xd0\xc0\xec\xec\x87\x98\x9e>\x83?\xbd\xfd6\xda\xda2\xd8\xb6}\x07\xb6n\x0fI\ \xc1\xb5\xa1w\xdd\xbfi\x00\xfd\x9b\x06\x10\xeduB\xa0c\x19(\xa8\x7f\xd1\xac\ \xa5\xa1a\x18\xc6\xea1\xe0g!\xc1aY\x010\r\xe0\xe8\xd1\xa3\xb8q\xf3&\x06\xbe\ \xb0\x15\x13_~\x16B\x18Hry\xd8r>\xb0&\xd2\x887vI\x1e\x80v\x08\xac*!\xeeu\xa3\ 1\t)\r\xa43=x\xf6\xb9IxY8\x11\xb4\xdb6$\xa6\xc7\xc8\xb9\xd1\\\x08|\x8c\x98\'\ \xa1U<@N\xc7\xc78L\xd7\x03^.\xb6L+\xe4\xd2\x84\x17%T\xd2\xb0\x17\x1a\x01N\ \xfaDM\x0eb\xd3\xc5\xb6j\x10;i4e\xa5\xea\x8aJ\xa4.\xa0\xfeE\x81\xe5\xe3k\x02\ \xef4%\x1dZ\xab\x83\x85.\x815x\xc0\xffl\xe3\x0cV*\x95\xfc\x82\xba\x9c\x1d\ \xd7\xbbw\xf6\\\x95\xdc6$\xee\x19o%B{\x1a\xa6\xe9\x7f\xaf4&@\xde\x17\x99W\ \xc8|\xa8\xbe\x94\xe2:\x8d\xc8)!{4\xba\x1f\x90\x8bW\xe3\xf03\xc1z\xc30}\xe36\ $@n\xa3DD\xa1BV\x1f`\xf5\xcdW\xb2n#^\x89\x90O\x0e\xdeH\xf0\xc7\xc8r\xe1@%4i\ \xe6\x94\x945\xad\x142\x99N\xc7m\xc2\x08\xac\x93\x98\xc7W\xcf&\xf5y^\xd7\xef\ \x99\x98r\x03RJ+tvt9\x18\x95\xb4\x1b\x12\xd0\xd0W\x96\x97\x17K=\xeb7\xb4L<\ \xf3\x15\x14\xf2y|\xda\x11\xfa\xf6\xfa\xcc\x831\x86\xae\xae\x1e\x94JE\x14\ \x8b\x85\x8b\xe1\xb9\x08\x81\xbe\r\xeb\xdf\x9b_X\xfan\xa5R9b\x9afw\xc4]Q\xcf\ }\xfa\xb1\xea>q\x91\x00R)d?\xfe\xc8\xaeT*\x97\xb5R/G\x9e^\xcb\x9f\x01O\x9ex\xf0\xa0\x1e\ \x1d\x1d]\xdd\x1e\xdeKN\x9f>Mg\xcf\x9e\xa5;w\xee\xb0\xc5\xc5EZYY\x11\x95J\ \x85\xdb\xb6\xcd\x94R\\)\xc5\xb4\xd6Lk\xcd\x95R\x0c\xce\xff\x16X\xf8\x1a\x81\ }\xc3\xd7\xde\xd0\x00\x94{\xad\xbc\xdf\x8c1\x05@\x11\x91""ID\x8a1\xa6\x88Hr\ \xce\xa5a\x18\xca\xb2,\xd9\xd9\xd9)7l\xd8\xa0\xc6\xc7\xc7\xd5\xe4\xe4\xa4\ \x1e\x1b\x1bs\x08\x9c:u\x8a\x8e\x1d;\xc6\xe6\xe6\xe6\xf8\xca\xca\x8a\xa8\xd5\ j\xdc\xb6m\xae\x94\x12.p\x0e\x80k\xad\xb9\xd6\x9a\x03\x10\xa1\xeb\xf8\xc1\ \x000w>L"\x0cV\xba\x04d\xe8\xb0]\x026\x00ID\xb6KF\x12\x91d\x8cI\xce\xb9-\x84\ \x90\xa9TJvtt\xd8\xa3\xa3\xa3\xf2\xc4\x89\x13J\xec\xdc\xb9So\xd9\xb2E\xe7r9U\ *\x95\x94R\x8a\x94R\xa4\xb5VDD\x8c1RJ\x91\x0b\x86\\k\x85\xa5\xe2\x01\xd4\x1e\ \x01\x17LdM\xc8\x03*D@\xb9\x80\x15\x11\xc9\x90\'4\x00\xed^+\xcf+B\x08eY\x96\ \xea\xe9\xe9Q{\xf6\xec\x89\xea\xd4\x1bSSS4==Msss,\x97\xcb\xb1B\xa1\xc0j\xb5\ \x1a\xb3m\x9bI)\x99\x94\x92\xbbR\n\x1f\x1eP\xaf\xca4\nU\x1d><\xb01\xd9(\xefH\ \xa5R\xb2\xb5\xb5U\xf5\xf6\xf6\xaa\xb1\xb11u\xe4\xc8\x11=88\x18\xd9pMA\xec\ \x8d\xcb\x97/\xe3\xd6\xad[\xb4\xbc\xbc\x8cr\xb9\x8c\x99\x99\x19*\x95J\x90Rbi\ i\x89\x9c\xcfG\x8dB\xa1@\x00\xa0\x94\xf2\x03\xd7\xfd\xfb\xaa\x16B\xc04M\xb4\ \xb7\xb7k\xcb\xb2\xd0\xde\xde\x8e\xfe\xfe~\x9d\xc9d088\x88\xc9\xc9\xc9\x87\ \xca\xbf\x0fE\xe0\x7fq\xfc\x17\xb0\xba\x93\x04U\x8fD3\x00\x00\x00\x00IEND\ \xaeB`\x82\xca\xb1[\xfc' phatch-0.2.7/phatch/actions/geotag.py0000644000000000000000000003312211346363116017461 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # The beautiful icon is thanks to the work of the Geotag Icon Project # http://www.geotagicons.com/ # # Follows PEP8 from core import ct, models from lib.reverse_translation import _t def init(): global gps from lib import gps class Action(models.Action): """Defined variables: """ label = _t('Geotag') author = 'Robin Mills' email = 'robin@clanmills.com' version = '0.1' tags = [_t('metadata')] init = staticmethod(init) __doc__ = _t('Add gps data') metadata = ['Exif_Image_DateTime'] def interface(self, fields): fields[_t('GPS Data (gpx)')] = self.GeoReadFileField(' ') fields[_t('GPS Report (csv)')] = self.CsvFileField(' ') fields[_t('Time Shift (seconds)')] = self.IntegerField(0, choices=[-60, 0, 60]) def apply(self, photo, setting, cache): #get info info = photo.info # get timeshift # construct timedict if necessary if not ('gps_timedict' in cache): cache['gps_timeshift'] = \ self.get_field('Time Shift (seconds)', info) gpx_file = self.get_field('GPS Data (gpx)', info) csv_file = self.get_field('GPS Report (csv)', info).strip() if csv_file: csv_file = open(csv_file, 'w') gps.write_header(csv_file) cache['gps_report'] = csv_file cache['gps_timedict'] = gps.read_gpx(gpx_file) # get the geoTags gps_data = gps.get_metadata(info['Exif_Image_DateTime'], cache['gps_timedict'], cache['gps_timeshift'], info['path'], cache['gps_report']) # do not use update as info does not support it for key, value in gps_data.items(): info[key.replace('.', '_')] = value # writable return photo icon = \ 'x\xda\x01\xaa\x0eU\xf1\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0eaIDATh\x81\xbd\x99{\x8c\x1d\xd5}\xc7?\xe71sg\xef\ \xeez\xfd\x02\xef\xdak\x0b\xb0\xc1\xd8\x80K0\xc2\xd8\x98\x87,L\xe2"\x08DM\ \x01\xa5nx\x98\xa6\x7f\x84VD\tD\x04B\xec\x10b\x9c\x08\'*)A!AF$\xaa\xd4*\x04\ \x84\xea\x04\xd1\xe2\x14\x15\xe2\xda\xebG\xf0\x06c `\xb36\xe0\xc7>\xbcw\xefc\ f\xce\xf9\xf5\x8f\x99{\xbd^\xef\xda\x98\xba\x1c\xe9h\xae\xee\x9d{\xce\xf7{~\ \xef\xdfQ\xe4C\x81\x12\xa5\x04\x11\xa6\x15\x8b\xe7,>\xeb\xac[)\x14\x96Z\x91\ \xd9\xa9R\xa1\xe2\xd3\x1fJ\xc4\x07\xf0\xce\x01\x91\xffz\xf7\xbd\xf7\x9e\xde\ \xd9\xd7\xb7\x11@+\xa5\xbd\x88\xcfq\x83RJ\x89\x88\x14\xc1\xfc\xe5\x82\x05\ \x0f,X\xb0\xe0\x1f\x8b\xe3\xc6\x8d\xd7Z\xa3\xf3\x97\x94\xfa\xf4)\x88\x08\x1e\ \xf0"\xa4\x95Jm\xeb\xb6mO?\xb7a\xc37{\xd3\xb4\xb7NB)\xa5\xb4\x80\xb4\x1a\xd3\ z\xcfM7\xfd\xdb\xf9\x0b\x17.5\xce\x11*\xe5\xd0Zy\xd0\x92\xb1\xfc\xd4\t \x82\ \x01A\xc4\'"&\xb1\x96\xbe\x9d;\xff\xf4\xf8\xbau\xd7n\x1e\x18xO+\xa5\x95R\xca\ \xb4\x89\xc8=_\xfc\xe2\x0bs\xaf\xbcrY\x8bsI\x14E\xd6[\xab\xd0\x1ah\x88\xe9\ \xd4\x01S*\x93\xa8\x08(\x85x?\x06~i\x10\xd1\xce\x91V\xabI\xc9\x98`ww\xf7\xae\ \xfb\x7f\xf6\xb3\x85}I\xd2o\x00\xb9b\xee\xdc\x7f\xb8z\xc9\x92\xbb\x9a\xe38)\ \x06A\xe0\xb5V!\x10\x88\x10x\x8f\xf5\xbe\xf1\xf9\xff\xfd\ \x0f\xef\xbe\xfb\x1b;>\x08&/\x98;\xf7\x9b28\xe8\x0b\xc5\xa2\xa9\x1aC\x93\x08\ \xda\x18t\xfd\xa4\xeaR8\x05\'/\xdec\xac\xe5\xb4K.\xa1\xe9\xb4\xd3(\xbd\xff>\ \x077oF\x19\x93I\xb9~\xea@\xfd\x93\xe4d*I\x82N\x92 ,\x97\xdd\xd4Y\xb3\xfe\ \xf6\xec\xad[\xff\xd9\x9e3e\xca\x8dEc\xda\x83\xc1A?\x04\xba\xe0\x1c\x12\xc7\ \xf8|\xc1SI@i\x8d\xabT\xe8X\xb6\x8c\x8e\xf9\xf3I\xbdg\xc2\x8c\x19D\xcd\xcd\ \xec~\xfeyt\x10\xa0\x94j\xa8\xcep\x02\xde{HSJ\xd5*\xa6\\&H\x123{\xc6\x8c;\ \xedi\xe3\xc6-3\x95\x8a\xa4A \x0e\xb0qL\x1a\x04(\xad\x91\xdc\x06\xb2\xc3;\ \x05\x14\x94\xc2\xc71\xad\x9d\x9d\x88s(\x11\xbc\xf7\x9c~\xe1\x85\xe0\x1co\ \xff\xeaW\x98 \x00\xad\xc1\xfb\x06\x01/\x82\xf3\x1e\x97\xa6\xc4\xb5\x1a\xaaZ\ \xd5\x94JLoi\xb9\xdaNp\xae\xc3\x97\xcb\xaa\xa6\xb5\xd2\xde\x93\xd4j\x18k\x11\ \xad\xd1\xa7\x98\x80\xd2\x9adh\x88\xde\xed\xdbi\x996\r\xe5\x1cJk\xbcs\x9c>\ \x7f>\x12\xc7\xbc\xf1\xe4\x93\x980\x04\xad\x11\xe72\xd29\x81\xd89\x928\xc6\ \xd5j\x8aR\t\x0f\xd3\xad\x89\xe3\x0e?4D\nJ\xa5)q\x10\xa0\xad\xc5+\x85V\xaa\ \xe1}N\x95\r\x00\xecZ\xb7\x0e\x1d\x86t^}5\xe2}&m\xe7\x98\xb2p!.I\xd8\xf1\xa3\ \x1fa\n\x85\xccfD\x10\x11R\xefI\xbc\'N\x12|\x1c#CC\xa4\x95\n6\x8ec\xe5\xcaeR\ \xef\x918&\xb6\x16m\x0c>\x0fb\xa7\x9c\x80R\xc4\xfd\xfd\xd4\x0e\x1e\x1c\xf6\ \xb5\x02c\x10\xe7\x98z\xc5\x15\xf8Z\x8d\xad\x0f?\x8c\x8e\xa2\x86\x84\x9c\x08\ \x89s$\xce\xe1\x93\x04_\xa9\xe0*\x15e}\x92\x88\x1f\x1a"MS|\xadFlmflu\t\xd479\ \x05\xe0\x95R\xc4\x03\x03\\x\xef\xbd\xcc\xbc\xf9\xe6\xc6\xe97^\xc9It.]\x8a\ \x8fc6~\xeb[\xd8\xa6&P\x8a\xd49\x12\xef\xa99\x07i\x8a\x8bc\\\xb5*\xd6\xd7j\ \xb8r\x19\x97$$\xc6\x90\x18\x83R\xea\x88\n\x9d\n\x02J\xa1\x80Z\x7f?\xf3W\xae\ \xe4\xec\xe5\xcb3#6\xe6\xd8Ws\x123\xae\xbd\x16W\xab\xf1\xea\xd7\xbe\x86\x89"\ \xbcR\x99\rx\x8fr\x0e\x9f\xa6\xa4q\x8c\xf5q\x8c\x03\x9c1\xc4\xc6\x10\xe7bvpJ\ \x08\xd4\xa3x\xad\xaf\x8f\x05k\xd60\xe7\xce;\xc7\x04?\x9c\x84OS\xce\xfc\xc2\ \x17pq\xcc\xef\xbf\xf2\x15T\xa1@\xaa5q\x1e\xd8\x9cs\xa4\xcea]\x1c\x8bO\x12R\ \xa5\x88\x95"\xce\x171J\xa1\x87/z"\xa0Z\x1f\x9bn\x88 J\x11\x97\xcb,Z\xb3\x86\ \xf3\xef\xba\xeb\x84\xe0\xebC[\x8bO\x12f\xdd|3i\xb5\xca\x7f\xacX\x81\x04\x01\ q\x1e\xcd\xbd\x08ND\xacsN\xa5@\x92\xcf\x98,\x80\x18\xf8X\x04\xb4\xd6\x88\xf7\ \xa4\x80\x1b\xf1\x9b\x01<\xb0p\xd5*\xfe\xe2\x1b\xdf\xa0V\xa9d\xe0\xdd\xc87\ \xeb\x9b(\xf0\xbe\x11\x91\x05\xf0CC\xcc\xbe\xf5V\xde\xdb\xb0\x81m\xeb\xd6\ \x91\xe6*&@\nX\x9f\x83\x8eG\x10\xb0#@\x8f$P\x8f\x0b\xb1\xf7\x18`\xe2\x9c9L<\ \xef<\x9a\xda\xdbQJQ=x\x90\xfd\xdd\xdd\xcc\xba\xfez\xce\x7f\xe0\x01z\x0f\x1d\ :\xca`G\x03/\xcea\xc2\x10\xf1\x1em-i\xa5\x82\x8bc\x92 `\xdcE\x17Q[\xb7\x0e\ \x9f\xab\xb7d\x07\xa6\xac\x1b\x06<\x06\x82#?\x8eI@\x01.?\xa1\xb3>\xffy\xce]\ \xb1\x82\xc9\x17^H\xd8\xd6\xd6 &@20\x80\x0eCz{z\xc6\x06>\x0c\xbc\x8d"\x92\ \x03\x07\xf8\xcf\xdbn\xe3\x8c\xeb\xae\xe3\xfc\xaf~\x15W\xadR*\x95x\xf3\xb9\ \xe7H\x81\xc4{,\x99d\xeb\x12Pu\xf0\xc3\th\xc6P!\xa5\x10\xa08u*\x17\xddw\x1fg\ \xdex#\xe2\x1c\xe5r\x99\xd2\xe1\xc3G\xe1\xd2\xd6"\x83\x83G\xe5T\xa3\rq\x0e\ \x1dE\xb8\x03\x07x\xf9\xb6\xdb\xe8\xd9\xb4\x89=\xaf\xbc\xc2\x07\xdb\xb73q\ \xde<\xf6\xac_\xcf\xee\x97_\xceb\x88\xf7Y\x91\x93\x1f\xb2\x95\x1c\xb0\x1f1\ \x8f9\xa4\xfaSkb\xe78c\xc1\x02\xce\xba\xe5\x16J{\xf6\x80R\xe8z69l\xb8$9a-!\ \xcea\xa2\x88\xda\xe1\xc3l\xb8\xfdv>\xd8\xb2\x85\xc8Z|\x9a\xf2\xfa3\xcf4\xde\ 3J\x91\xd6+\xb4|\xd6\x0fz\x14\xb4j\xccM\xc59B\xady\xeb\xd7\xbff\xe3=\xf7P\ \x984iL\xddV\xc7Yg8xW.\xf3\xfb\x15+\xf8p\xcb\x16\xa2\xdc\x85\xa2\x14\x05c(\ \x18Ch\xccQi\xf6\xf0af\xc2\xddm\xd0\xd6\x04\xa4\xa0\xc2\x9c\x95"\x8b\x03J\ \xeb\xc6<\xb2\xb3\xa0\xb5f_W\x17R.\xd3\xb9t)\xaeZ=\xa9\xcaM\xbc\xc7D\x11i\ \xa5\xc2\x86;\xee\xe0\xc3\xae.\n\xc6\xe0\x87y(\x11\xc9\xbcQ\xdd#e\x18\xd1d\ \xa7\x7f\x00\xfc1\x04\nZ\x13\x06\x01:/>R\x91Lt"h\xc0\xd4\xeb\x04\x11\xac1\ \xec\xdd\xb4\t)\x97\x99\xfe\xd9\xcf\xe2\xaa\xd5\x86\xbe\x1fo"\x82\x8d"\\\xa5\ \xc2\x86\xdbo\xcf\xc0[{\x14\xf8c\x08\x8f \x00\xb0\x1f\xbc\xd5\xe0\r`s\xff:\ \xed\xf2\xcb\xb9\xf4\xc1\x07\x91J\x05\xa9V\xa9\xec\xdf\xcf\xc0\xae]\x1c\xdc\ \xba\x95C\xdb\xb61\xd4\xdf\x8f\x02\x02\xadA\x84\xa21\xecx\xe2\t\x02\xad\x99\ \xff\x9d\xefP\xeb\xef?\xbe\xea\x88\x80\xd6\xf8Z\x8d\xff\xbe\xe3\x0e\xf6wuQ\ \xccu~dx\x93aO\xc5\x91\xf8d\x86}g\rxM\xe6\xf7\rP\x1c7\x8e\xd3/\xb8\x00\xa9T\ \xb0\x85\x02\xba\x9e\x9d&\tC==\xec}\xf9e\xde\xfe\xe5/\xf9\xb0\xab+#b-\xd6Z^\ \x7f\xfcq\x02c\xb8\xf8\xa1\x87\x88\xfb\xfb\xb3\x9ds\x92#\t\xe80\xa4R*1\xb8s\ \'MZ\xa3\x9d\x1b\xd5\x18\x87\x13\xa8;\x16\x93c\xf5\xb9$\xcc\xb9p\xd7D\x98\ \xd8\xa25\xb1\x88\xea\x98=\x9bY\xd7]\x87\x8ac\x0c\xa0\xd2\x14j5\xb4\x08\xc5\ \x89\x13\x99\xbah\x11\xe7\xdct\x13\xa7\x9dw\x1e\x87\xbb\xbb)\x1d\xdez\xf6\xd9\xac\ =b-\xdb\x1e}\x94\xd0Z\x16>\xf2\x08\xb5\xc1A\xd0\xfaH\xb1\x9e;\x870\x080yT\ \xb5\xc3\xc0\x8eE\xa0\xbe{\xfd}\x9f\xe1\x95\x06\x01\x0bb@\x05J\x11\x86a\x16\ \xda\x8fG\xc0Z\x82B\x81\xcd\xdf\xfd.{\x9e\x7f\x9e&\xad!MQJ\xd1b-[\xd6\xac!\ \xd0\x9aK\xbf\xff}\x92Z\xed\xe8\x0cT)H\x12\x92}\xfb\x08\x01\x9b\xbb\xc9\x93%\ \xa0\x01\xab\xb5\x16\x03\x18\xad1\xcea\xac\xc5j\x8d\xe4\xfa:\x1a\x01q\x0eU(\ \xb0}\xcd\x1a6~\xfb\xdb\x84\xd6f\xef\x04\x01.I0@s\xa1\xc0\xe6\xd5\xab\xb1a\ \xc8\xc5+W\x1eI\xa3\xbd\x07\xad\x19\xdc\xbd\x9b\xd2\x9f\xffL\xa1\x1e\xc1G\ \xf1Z2\xcaS\x03&w\x0c\x99\xfa\x85\xa1U\x80\x0e\x02e\x93\x04\x1d\x86\xa3\x9c\ \xc5\xb0E\xd3\x14e-\xaf\xaf]\xcb\x1f\xee\xbd\x97\xe6\xb6\xb6\x86kL\x87\x86h\ \x9b5\x8b\xcaG\x1fe\x92hj\xa2k\xd5*\xb4\xb5\\\xf4\xc0\x03Y\x1a\x9c\x07\xc1\ \xdd/\xbc@R\xad\x12M\x98\x80\xa4\xe9\xe8{\x8d\x94\x80Hf\xc0\xdeg\xebx\x8fVA`\ t\x18\xa2\n\x05L\x18\xa2\x83`l\xf0\xce\xa1\xac\xa5\xfb\xb1\xc7\xf8\x9f\xfb\ \xee\xa3\xb9\xbd\x1d\x13E\x04--\xb8j\x95\xa9K\x96p\xfd+\xaf0}\xd92|\x92`\x8b\ E\x9a;:\xd8\xfa\xd0Cl{\xe4\x11\x941Ykep\x907\x9fz\x8ah\xfcxl\xa1\x80mj:\xf1\ \x8c"L\xfd\x19E\xa8B!;t\x15\x04Fk\x8d\x89"l\x92d=\x99\xb1\xc0\x1b\xc3\x1b?\ \xfd)\x9b\x1f|\x90\xe6\xa9S\x11\x11\x941\xc4}}t^s\rW\xad[Ga\xfcx.^\xb5\x8a\ \x03\x9b6e\xeab\x0c\xcd\xd3\xa7\xb3}\xf5j\xb41\xcc\xfb\xfa\xd7\xd9\xfa\xf0\ \xc3\x94\xf6\xec!\x9a\xc9\x96\xef}\x8fbG\x07\x88\xa0\xac\ \xa5\xd6\xd7\xc7\xd4%K\xb8\xf2\xe7?\'hm\xc5\'\t\xe3g\xcf\xe6\xec\xe5\xcby\ \xf3\x17\xbf\xa00n\x1c\xe2\x1c\xc5\xa9S\xf9\xd3\x13O\xd0\xbbc\x07\xfb7n\xa4\ \xd8\xde\x9e\xad}\x1c\x95m\x10\x10AA\xe6\xdas\xf0:\xcft\xad\xb6V\xe9 @\x17\n\ \x18\xe7\x1a6P7)\xf1\x1em\x0c\xbb\x9e~\x9a\xed?\xf8\xc1\x11\xf0\xc6P\xeb\xef\ g\xeaUW\xb1\xf8\'?!hm\xcd\xda$y\xe6x\xf6\xf2\xe5\xecy\xe1\x85\xa3j\x01\xdb\ \xdc\xcc\x81M\x9b\x08ZZ\x1a\xc0\x8e7\x1a\xbf\xe6I\x9d\x15\xc18\x07\xce\xa1\ \x95B\x8b`\x95\xb5\xa80\xcc\x08\xe4a\xbe\xf1\xbf\xbc\x93\xdc\xf3\xe2\x8b\xbc\ \xfe\xe8\xa3\x14\xdb\xdb\x1bj\x93\x0c\x0c\xd0q\xf9\xe5,\\\xbb\x96\xa0\xa5\ \xe5\xa8\x1e\x8f\x88\xd06k\x16\xed\x97]\xc6\x87\xaf\xbe\x8amnn\xb4\tm\xb1\ \x98\xdd\x07\xe41a\xac4y\xa4\x04D$\xc3\x93\xf7\x85\x14`\xbcWV[\x8b\x0eCt\x14\ a\x95\xca\x8cx\xc4\xa2=/\xbdD\xd8\xd6\x96\x01\x05\xe2\x81\x01\xa6\\v\x19\x0b\ V\xaf\xce\xc0\x8dhP\xd5u\xbf\xe3\xaa\xab8\xd0\xd5\x95\x81>N\xa6\xf9q\x08\x90\ \x13\xb0i\x8a$I\x96b8\x87\xc5\x98\x8c@\x18b\xb5\xce\xfa\x8e"G\xf9\xfd\xb6Y\ \xb3\xd8\xff\xdak(kI\x07\x07\x99r\xe9\xa5\\\xbcr\xe5\xe8\xe0\xa1\xe1\xd3\'\ \xce\x9bGa\xe2D\xb4\xb5\xc7=\xe9\x8fM\xc09L\x9a\xe2\xb5Fy\x8fN\x12lh\x8c#\'\ \x1045Q9p\x80x`\x80\xa8\xb55\xfb\xb3\xf7\xcc\xbc\xe5\x16\xd2\xa1!\xfaw\xedb\ \xfc\xb9\xe72g\xc5\x8a\xa3\xc0\x1f\xa3\xcb9\x81bG\x07\xcd\xd3\xa6Q\xed\xed\ \x1dU\xb2\'$P\xbf\'\xc8U\xc8;\x87I\x92,5q\x0e\x15\xc7b\x0fx\xbf\xef\x8cB\xe1\ L\x13\x86b\x9a\x9bU\xad\xaf\x8f\xde\xeen\xa6/^\x9cICk\x82\xd6V.\xb8\xfbn\\\ \xad\x96u\x8dsb\xf5\xee\xf1X\x9b\x07\xc5"M\xed\xed\xc4CC\xd8(\x1a\xf3.\xec\ \xa4\x08\x18\x93\xb5\xfd\x93\x04\x13\x04bk\xde\xbf/\x85\x82\x04Q$D\x11\x01\ \xf0\xfeo\x7f\xcb\x94\xcf|\x86\xa0X\xc4\xa7)\xca{\x94R\xe8B\xe1H\xd5t\x02\ \x03\xac{\xaa\xc2\xe4\xc9\xd8\xbd{\x8f\x18\xef\' \xe0s\xfd\xaf\x13\xb0J\x89O\ \x12\xaa\xfd\xfdo\xd9C\xfd\xfd\xcf\xa6Ap\xb3\x0eC\x15\x04\x01\xba\xa9\x89\ \xca\xa1C\xbc\xf9\xcc3\xcc\xf9\xf2\x97\xb3\xa2;\x8e\xb3\x8a(O\xd6>\xee\xe6F)\ LSS\xd6&\x8f\xa2\xcc\xb8O\x8e\x01@V+\xe4WL\xa1RX\xef\xbd\x8f"s\xe8\xf0\xe1\ \x7f7\x03\xb5\xda{\xf3\xa6O\xff\xeb\xc9\x93&M\x9cX(x\x17\x86:li\xa1\xfa\xd1G\ \x0c\xbc\xf3\x0e\xc1\x84\t\x04\xe3\xc6A\x10d=\xfc\xfc\xea\xe9D\x13\xad\xc1\ \x18\x0e\xfe\xf1\x8fTz{\xd1Q\xd4\xf8\xeecOk\xb3i\x0c\xde\x18R\xadi\x02\x19\ \x02\xde\xafT\xaa\xbf\xd9\xba\xf5\xef\xed\xa0sC[v\xee\xbc\x7f\xee\xcc\x99\ \xffR\xd6\xda\x8f3\xc6\xd4\x94\xc2\xb6\xb4\xd0\xff\xc1\x07\x0c\xac[GKg\'-\ \x9d\x9d\xd8b\xf1\xa4\xee\x8b\x95\xd6\x0c\xf6\xf6\xe2\xa2\xe8\x08\xb1O \x01\ \'B\xaa\x14M\xdeS\x83\xc4\x15\x8b\xe1;\x9b6\xad\xfd\xb0\\\xde\xa9\xb4R\x06\ \x11w\xdb\xa2EO,[\xbc\xf8\xef\n\xce\xa5\xcdA\xa0cc\xb4\xcbsx\x1f\xc7\'\xad\ \xbf\xf5a\xc20\xf3T\x9f\xe0\xbf\xf5,T\x8bPHS\x89\x93$\x1d4&x}\xc7\x8eW\x1e_\ \xbf\xfe\xea\x83"i\x86P)\xf3NO\xcf\xf3\x911\x1d\x1d3f\\\x92h\xad\x94s^\xbc\ \x17\xe7\xbd\xc8\xc9\x8a~\xd8t"8\xe7\xf0\xf9U\xe9INQ\xde\x8b\xa4\xa9/\x81\ \xae\x04\x81\xe9\xee\xee~i\xed\xef~\xf7W}\xce\x95\x94\xca-R\x81\xaa_\xea/\ \x9d9\xf3o\x16]r\xc9\xfd\x93&M\x9am\xeb\x1d\xb1\xbc\xe0\xfe\xb4G\xfd\x9a+\ \x15\xa1\xd6\xdf\xff\xc1k\xdb\xb7\xff\xd3\xfa\xed\xdb\x1f)\x83\xd7J)/"Gz\xb6\ \x99$\xb4\x88\xf8V\xad\x9b/\x98>\xfd\xfa\xce\xce\xce\x1b\xa6\xb4\xb6\x9e\x11\ \x06\xc1\x19\xa9Rc\x95\xae\xff/C\x83\xe8$\xd9\xbb\xb7R\xe9\x19\xe8\xe9Y\xff\ \xd6\xee\xdd\xff\xfav\x92\xec\xcf\xb1*\xc9\xb1\xfc/\x84j\xc7\x8c$d\xe5\xe5\ \x00\x00\x00\x00IEND\xaeB`\x82\x8dGQ\xf2' phatch-0.2.7/phatch/actions/grid.py0000644000000000000000000003712311346363116017145 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2010 www.stani.be # # 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 http://www.gnu.org/licenses/ # Copyright (C) 2010 by Pawel T. Jochym , www.stani.be # Embedded icon is created by Stani, but derived # from Igor Kekeljevic (http://www.admiror-ns.co.yu). # Make m x n grid with copies of input image # Follows PEP8 # TODO: Add spacing between images for which the line color will need # to be used. from core import models from core.translation import _t from lib import imtools from math import sqrt CHOICES = ['0', '1', '2', '5', '10'] ZERO = ['', '0'] #---PIL def init(): global Image, ImageColor, HTMLColorToRGBA, imtools import Image import ImageColor from lib import imtools from lib.colors import HTMLColorToRGBA def make_grid(image, grid, col_line_width=0, row_line_width=0, line_color='#FFFFFF', line_opacity=0, old_size=None, scale=True): # Check if there is any work to do. if grid == (1, 1): return image # Because of layer support photo size can be different # from image layer size if old_size is None: old_size = image.size # Unpack grid cols, rows = grid # Scaling down? if scale: # Keep the same number of pixels in the result s = sqrt(cols * rows) old_size = tuple(map(lambda x: int(x / s), old_size)) # To scale down we need to make the image processing safe. image = imtools.convert_safe_mode(image)\ .resize(old_size, getattr(Image, 'ANTIALIAS')) #displacement dx, dy = old_size dx += col_line_width dy += row_line_width new_size = cols * dx - col_line_width, rows * dy - row_line_width # The main priority is that the new_canvas has the same mode as the image. # Palette images if image.mode == 'P': if 0 < line_opacity < 255: # transparent lines require RGBA image = imtools.convert(image, 'RGBA') else: if 'transparency' in image.info and line_opacity == 0: # Make line color transparent for images # with transparency. line_color_index = image.info['transparency'] palette = None else: line_color_index, palette = imtools.fit_color_in_palette( image, ImageColor.getrgb(line_color), ) if line_color_index != -1: new_canvas = Image.new('P', new_size, line_color_index) imtools.put_palette(new_canvas, image, palette) else: # Convert to non palette image (RGB or RGBA) image = imtools.convert_safe_mode(image) # Non palette images if image.mode != 'P': line_color = ImageColor.getcolor(line_color, image.mode) if imtools.has_alpha(image): # Make line color transparent for images # with an alpha channel. line_color = tuple(list(line_color)[:-1] + [line_opacity]) pass new_canvas = Image.new(image.mode, new_size, line_color) # Paste grid for x in range(cols): for y in range(rows): pos = (x * dx, y * dy) imtools.paste(new_canvas, image, pos, force=True) return new_canvas #---Phatch class Action(models.Action): label = _t('Grid') all_layers = True author = 'Pawel T. Jochym' email = 'jochym@gmail.com' init = staticmethod(init) pil = staticmethod(make_grid) version = '0.2' tags = [_t('size'), _t('filter')] update_size = True __doc__ = _t('Make n x m matrix of image') def interface(self, fields): fields[_t('Columns')] = self.SliderField(2, 1, 10) fields[_t('Rows')] = self.SliderField(2, 1, 10) fields[_t('Scale to Keep Size')] = self.BooleanField(False) fields[_t('Column Line Width')] = \ self.PixelField('0 px', choices=CHOICES) fields[_t('Row Line Width')] = \ self.PixelField('0 px', choices=CHOICES) fields[_t('Line Color')] = self.ColorField('#FFFFFF') fields[_t('Line Opacity')] = self.SliderField(0, 0, 100) def values(self, info): #size x0, y0 = info['size'] dpi = info['dpi'] x1 = self.get_field('Columns', info) y1 = self.get_field('Rows', info) #parameters return { 'old_size': (x0, y0), 'grid': (x1, y1), 'scale': self.get_field('Scale to Keep Size', info), 'col_line_width': self.get_field_size( 'Column Line Width', info, y0, dpi), 'row_line_width': self.get_field_size( 'Row Line Width', info, x0, dpi), 'line_color': self.get_field('Line Color', info), 'line_opacity': \ int(255 * self.get_field('Line Opacity', info) / 100.0), } def get_relevant_field_labels(self): relevant = ['Columns', 'Rows', 'Scale to Keep Size', 'Column Line Width', 'Row Line Width'] col_line_width = self.get_field_string('Column Line Width').strip() if col_line_width: col_line_width = col_line_width.split()[0] row_line_width = self.get_field_string('Row Line Width').strip() if row_line_width: row_line_width = row_line_width.split()[0] if not(col_line_width in ZERO and row_line_width in ZERO): relevant.extend(['Line Color', 'Line Opacity']) return relevant icon = \ 'x\xda\x01\xcd\x0c2\xf3\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0c\x84IDATh\x81\xcd\x9a{\x90\x15\xd5\x9d\xc7?\xa7\ \xfbt\xf7\xed\xfb\x9cAT\x98\xe1%\xc6\'\x08\xc6\xac\x89FVB\xf0\x811\xd1d\xa8e\ \xdd\xda@-\xcc\xba\x1a\xd7\xa5BI\xb1\x82\xbaI\xcc\xc6`\x89\x0fP#\xbajVL\xa9\ \xb1\x12\xa3\xc9\xc6\xb0q\x8d\xd1U\x13\t\x88V\x02\xe5\ \xaa\x9b\x80\x03$\x96.]:\xfb\xf3\x17\x9f\xbb2\xe1\x9cXW\xa9x1\xd0\xbc\xd7\ \x1fpZ\xd4@\xa0\xd9\xb8q\xe3;|\xd2\x04\xde\xa7\xf3\xe8\xacY\xb3&7\xde0\x7f\ \xe5\xb8\x13O\x99\xa5Ti1f\x8b\x01[R\x8a\xcd\xbd\x01\x11K0\xa5\xd6\xc4\xf7\ \xfd\xde\x17^x\xa1\xf7\x13%P\x96\x8b\t\xb8@\xcd\xfd\x0f\xae\xbe\xee\x9c\xe9S\ o\xb2\r\xd7\xa9T}{O\x9e\xdf\xb5\xe5\xc8\x05\x1a\xd7\x96\x9cZ+\x91RS(\x14v\ \x01\xfe\'B`H\xd5\x1d \xbex\xf1\xe2\x0b\xbe:\xf7\xf2\xbbO\x88\x8e\x99\\\xd1w\ \xd7`\x81_\xef\x1c`\xcf@\x11\xd7\x92\xd4\x86$\xaem1!f e@\x10\x04-@\xa0G\xb0\ \xca\xe3N\xa0\x0c\\\x006\x10\x99>}z\xfd\xbf}\x7f\xf9m\xa7O>{.Z\x88\x92\xce\ \x15\xbfkI\xf1z\xdb\x00\xb64\xa9\r\x87pmY\x9dc"\x1a\xcb00\x0cc\x90\x11\xaa\ \x7f\xdc\x08\x0c\x01]\xd9\x88\x1c ~\xf3\xcd7_}\xf1\x97f\xfcp\\\xdd\x84\xb0%m\ \xb4\xd6\xfc\xb9s\x80_\xbc\xdb\x85\xe7kb\xaeM\xd8\xb2pmI\xa8B\xc0\x92\xb8v\ \x11\x89\xc2q\x9c\xe8\xe1\xee}\xcc\x04\x86X\xa2\x03\xc4\x96-[vi]]\xdd\x15\ \xb1X\xec\xa2P(4.\xd5\xdb\xcf\xa4\t\x92\x81\xa2\xe6\xe7\xdb\xf6\xf3\x7f\xdd\ \x1e\xae-\xa9\x8dT\xc0\x0e\x99\x96\xa4`%1\xad\x04R\x07\xd8\xb6\x1d\xfb\xc8\ \x08\x0c\xb1\xc4\x10\x10kll\x9cq\xe1%\x9f\xbds\x94SwJeqj\xadq\x1c\x07\xcb\ \xb2X\xb7\xa1\x95n\xafHm$4\xa4\xd2\x12\xcbVl\x94\xcf\xf2\xae~\x8d\xf6\xbe\ \x9dx}\x03\xfc\xf6\xb3\xbf\xe7\x04\x19\xc1\xb6\xed(\xa5\'{\xfc\x08\x0cY\x9c6\ \x10\xbd\xea\xaa\xab\xce\xfa\xda5\x97\xfcplb\xf2\x17u\xd9\x12\x95R\x04J\x81\ \xd6D"\x11\xa4\x94\xc4\xc3!|a\x0e\x03\xdffm\xe2g\xc5;\xe8\xed\xd9\x07i \r"\r\ =g\xf4prm\xa2\xf2\x04\x84\x10B\x1cj!\x1f\x11\x81!r\t\xd7\xd7\xd7\x9f\xb4\xe2\ \xbb\xcb\x96}f\xd2\xe9\xff` \xcdJ\xc5\xdb2\x01\x9bz4\xe7\x8d\x92\x9c\xech\\\ \xd7E\x08A\xdc\xb5\xd1\x86Y\x05\xdf"\xde\xe2\xb1\xf6o\xe3\xa7\x8b\x882x\xd2\ \x10)\xc4pM\x0b)ee\r\x18#a\xfaP\x04\xde\'\x97\xf8\x8a\x15+\xe6\xcc\x98\xfd\ \x85;\xa3V\xed\xe8J\xc5\xf7\xa4\x8b\xbc\xb6\xbf@\xbb\x17\x10\xb6%c\xa3&\x86V\ D"\x11\x84\x10$\\\x1b\xc3T8\xb6`}\xfea~\x93|\x0cm(\x88\x826A\xf8\xf0\x951Wq\ \xcb\xec\x9b91r\x02J),\xcb\xb2)IHp\x087\x1a1\x8d\xbe\x7f\x07\x9d3g\xcei\xffx\ \xe3\x82\x95\xe3O:\xf5b\xadJ\xc0\xbdb\xc0\xff\xec\xce\xb0\xb5;\x8f#K\x12\xa9\ \x8bJ.\x1f\x03A\x10\xa8\xf1\xe3\xc7\x1b\xb1X\x8c\xd7\xdb2\xbc\x95}\x8du\xa9\ \xef\x91\xf2:!OuF\xbc\x08\xb7\x9f\x7f;\x7f3enu\xed\xb4\xb5\xb5m\xdd\xbcy\xf3\ v\xc7q\xfc\xeb\xaf\xbf~\xd1\x11\xa7\xd1!U\x0f\x87B\xa1Q?zx\xcd\xf5S\xa7\x9e\ \xb3\xc42Bv\xa5\xeao\xb7g\xf8\xed\xae4E\x05q\xd7\xa9\xba\xc9\x84\x84\x89\x94\ \x01\xbe\xefgL\xd3\x8c\x0b!X\xef\xfd\x98\'\xdb\xeeA\xe7u\x15\xb8\x995h\xa8\ \xff[V\xcd\xbb\x03\xd30\x01H\xa7\xd3\xb9m\xdb\xb6\x19\x9e\xe7M\xab\xad\xad\ \x9d\xe6y\xde#\x8c\xb0\x90G\x92\x90\x01Do\xb9\xe5\x96\x99s\xbe\xfe\xe5\xd5\ \xa3\xa3u\x13+\xee\xd21\x90\xe7\x17\x7f\xe9a\xef@\x01\xd7\x96D\xdfg\x87c" \ \xa5\xc0\xb2,\xa3T\x07\xd8\xd6\xf5\x06:\xa9\x11y \x07g\x87\xa6\xf2\xf8\xbc\ \xc7\xa8\x8f\x8f\x05\xa0P\xc8\xab\xa6\xa6\xf7\x8c\xae\xae\xae\x90\xe38D\xa3Q\ \xb4\xd6ttt\xbc5\x02\xc6\x83\x13(W_\xce\x9e=\xbbn\xd1\xa2E\xcfi\xad\r\xad5\ \xb9\xa2\xcf\x7f7\'y\xbd5\x85m\x99%K<\x88\x97\xbb\x8eF\x9a\x05\x94Rv\xe5\xe4\ \xe4\x0cZ\x88$\xc4\xfd\x04\xab.\xbf\x9b+\xce\xb8\xacz\xbf\xdd\xbb[\xf5\xde\ \xbd\xfb\x0c\xd34\x89\xc7\xe3\xf4\x15\x05q\xa9A+ZZZ6p\x94Y\xc8\xc8\xe5ra\xcb\ \xb2\x0c\xad5;\xbb\x07\xf8\xcf?\xed!\x17h\xe2ag\x98\x1d\xba\xb6$c\xefc\xb7\ \xb1\x9b\x1ev\xe1\xa8/2\xc69\x15!\x84UYc\x13\xe4x\xfen\xe6\x83\xcc\x9d\xf2\ \xb5\xea\r\x92\xa9^\xb5\xbbu\x8f\xa1\xb5\x16\xb1X\x8c\xee\x9cfcO@WV\xf3\xcdS\ L\x82 \xf0\xd6\xae]\xdbv\xb4\x04D:\x9d\xd6\x86Qr\xb1\xd6\xbe\x1c\x18f9p\x1d\ \x00\xdfo\xb7\xf2\x1c\xf7\xd2\x94\xd9P\xb5\xc2I\xa7\xd40c\xe2\x19\x18\x86Q5\ \x89{.[Y}\xe3\\.\x17\xb4\xb5\xb5\x99\x9e\xe7\x19\xae\xeb2P\x84\x97\xf6fiN\ \x07\xd8\xd2\xe4\xacZ\x1b)5\xbe\xef\xb7r,i4\x9b\xcdV/\x0c\xdb\x16\xb5\x91\ \xe1\x95\xdfl\xfe\x92gSw\xa0\xd2\xaa\xba\t1\x00\xfd\x91^\xe4\xa9\xb2\xea(\ \x15\x12J)\xdd\xde\xb1\x9f\xfe\xbe\xb4\xe98\x0e\xb1x\x827\xf7{\xbc\xb9?[\xdd\ +\\\xdbbR\xd9\x04\x82 h\xe6X\xd2h6\x9b\xadZW)\xbf\x1c\xd0\xfc\x1f\x8a\xcf\ \xf2\xd3}wB^#2@/\xd0\x0e\xe7\xd6\x9f\xcf7\xce\xbe\x12)\x87\x13\xe8M\xf6\xf8}\ \xa9~)\xa5\xa4\xa6\xa6\x86\xd6\xfe<\xbf\xda\xd1G\x7fA\xe1\xda\xd6\xb0u46\x02\ \xd2\x14h\xad\xbb\x015\x12\xc6\x91\x08h\xdf\xf7\xab\x17\xbb\xb6\xa4&\xec\xd0\ #\x9by4}\x07;\xbdwJ&[N\xfcF\xc2\xe4[\xd3od\xe9\x85\x8b\x19r \xef\xca\x17\xf2\ \xb5\xfd\xfd\xfd\x96\x94R&\x12\t<_\xf3BS\x0f[\xbb\xca\xa1.\xec\x0c\'`I\xe2!\ \x1fS\x0bl\xdb\x0e\x8f\x04\xfe\xb0O`pp\xb0\xfa\xe8lK\xf0\xaaz\x9c\x17\xf6?\ \x84\xce\xab\xaa\x97\x8b\x1cL\xb7\xcf\xe3\xf1\xb9\x8frRd4Zk<\xcf\xcbn\xdc\ \xb8qw:\x9d\x1e\xe7\xba\xae5m\xda4\xdcp\x98?\xee\xe9\xe3\xc5\xa6n\x10\xc6\ \xa1\x1d\xcc\x96\x98R`a\x10\n\x85\x8e-Ng2\x99\xaa\x84\xfe\xab\xe7)\x9e\xdf\ \xfd\xe0\x01\xe0y\xa8-\x9c\xc0\x9aK\xd7\xf0\xa5\xc9\x7f\r\x944\xde\xd2\xd2\ \xa2Z[[]\xc30\xceL$\x12\xd8\xb6M$\x12a\xdd\xdb\xfbh\xea\xf1\xca\xd5\xb6\x86\ \x81O\xd9-l3\xde\xa0K\xed\xa2\xbd\xb7\x99\'\x12?\xc6\x15\x16\x96e\xc58\xd64\ \xaa\xb5\xd6B\x08a\x145"\x05\xe4@\xe6$\xff4\xf5\x06\x96\xcfZZ\xfd\xbf\xae\ \xeeN\xb5sG\xb3\x11\x04\x81\x19\x8d\x1e(\\4\x1a\xc5\xb2,|Lj\x86D\xe9\xb0-)\ \xd8)~e<\xc8\xa6\xcco\xd0i\r\x03%#H\xd6\'\x19\x15\xad\xaf<\x81\xa3N\xa3\xba<\ \x15`\x86|\x1b\'\x1d\xe2\xc2\xd13xp\xfej\xe2\xa1\xd2Y\xc3\xcbzA\xf3\xcef3\ \x93\xc9\x18\x8e\xe3\x10\x08\x83\xed)E\x9d\x0b\xa3mM8\x1c\xc60\x0c\xe2a\x1b5\ $\x8df\xadn\x1e\xeao$\x95\xea(9\xd8\x00U\x1bN\x0f\xf6!k&bY\xd61\x9f\x07*$8\ \xff\xc4\xf3x\xe5\xef_a|M=\x00J\x05z\xcf\x9e6\x91L&M\xcb\xb2\x08E\xe3\xbc\ \xddS\xe4\x9d^\x1f_\x0b\x16~F"E)N\x03$\\\x1ba*\\K\xd2m\xec`M\xe7\xb7\xc8\xe4\ S\x07<\xc6\x83\xba`\x1c\xcb\x1bn\xe5\xa2I\x7fU9\x0cE8\xd63\xb1RJ\x9b\xa6\xc9\ yc\xcf\xa9\xbe\xd6\xd5\xdd\xa9\xba\xbbz\xaa[\xff_RE^\xde\xe3\x91\x0b\xc0\xb5\ -\xea"\x16Q\x07\x94RC\xce\x03\x0ei\xb3\x83g\xb2\xf7\xb2!\xbd\x1e]\xd4P\x04\n\ @\x003&\xced\xed\x9c\x07\x08\xcb0Zk\xf2\xf9|Oww\xf7\x0f\x00\xffh\xf7\x81\xca\ EU+\xcd\x0cf\xfc\xae\xce.\xa9\x942b\xb1\x18\xa9\\\xc0\xf3\xcd\x19v\xf5\xe7\ \xcbm\x91\x92\x1d\x966"E.\x97\x1b\x94RF\x84\x10\xb4\xeaM\xac\xea\xbc\x89\xb4\ \x97\x1cf\x04u\xfe8\x1e\x9e\xf30\xe7\x96\x0b\xa4\x94\xf2\xf7\xee\xdd\xfb\xc4\ \x9a5k\xfe\xfd\x99g\x9ei\xe7\x10=\xd1\x11\t\x94\x17.\x80\xd2Zk\xdf\xf7\x83\ \xce\xae\x0e\xa3\x90/J\xd7u\xc10\xf9}k\x1f\xff\xbbg\x00\xeb m\x91\xfa\xa8@\ \xca\x00)ePI\xa3\xcf\xed{\x84tw\xb2\n\xdc\xc9\x85X\xf1\xf9[Y\xf4\xb9\x05\xd5\ \xfb\xf6\xf5\xf5\xbd\xbe~\xfd\xfa\xe5K\x97.}\xa7Dq\xe4\xea\x1f\x92@\xa5Mr\ \xfa\xe9\xa7\x87\xf5\xd4S\xb7\xdeu\xd7];\ (\xc9e\xc4\xd0vT\x04\xf2\xf9\xbc\xaah8\x12\xb2?\xd0\xd3\xe9\xb1\x9aXWXN2\xb9\ \xbf\xba\t\x894\xa4\xc3\xbd\xc8\t\x92\xa1\xfd\xa1\n\xf8L&\xd3\xb4a\xc3\x86\ \x15\x0b\x16,x\x19\xc8r\x04r9b\x02\xb9\\nH\x9c\x1e\x9eF\x93f3\xff\xd1\xfe/\ \x0c\x0e\xa4K1:\x05\xf4C\xb8\x10\xe5\xcc\x0bN\xab\xa6\xd1\xca(\x16\x8b};w\ \xee\\5\x7f\xfe\xfcG:::\x068\n\xb9\x1c)\x01\x9d\xcb\xe5\xaa\x16\x16\xb2Lj\ \xc3\x0e\x96\xadx\xb5\xf8\x04\xbf\xec~\x88\xc0\xf0\xc1\x05]\xee[\\t\xd2L\xee\ \xbal%\'\x95\xdb"\xbe\xef\xfb\x86a\x88\xce\xce\xce\xa7\x1fx\xe0\x81\xef\xaf[\ \xb7n/e\xe7?V\xe0\x1f\x86\x00\xfd\xfd\xfd\xc3\xe2t\x97\xbd\x8dGS\xcb?\xd0\ \x16\t{an\xfb\xdcw\xf8\xe6\xb4k\x86~4\xf4\xf2\xd6\xad[\xd7\n!:\x16.\\\xb8\ \x05\xc8\x95\x81\x1f\xb5\\\x8e\x98\x80\xe7y\xd5\'\xb0a\xf0\x15\xee\xde\xfd\ \xcf\xa8|P\x05nd\r\xbe^7\x97{\xe6\xdd\x894JoU(\x14vm\xde\xbc\xf9\xb6y\xf3\ \xe6\xfd\x9a\x92\xc6\x03J\x9b\xa1>^U\xff\xd0\x04\xcaC\x03\xa23\xb3\x17\x95\ \x0cJm\x91<\x9c\x15\x9a\xc2\xe3\xf3\x1ec\\\xa2\x0e\x80 \x08\x06w\xed\xda\xb5\ \xfa\xba\xeb\xae\xbb\xbf\xa9\xa9\xa9\x8f\xe3\xa4\xf1\xc3\x8d\xc3\xa6\xd1J\ \x9c\x0e\xf9\x16"\x05\xa3\xf4\t\xac\x9c}\'W\x9cYm\x8b\xe8\xce\xce\xce\xe7\ \x9f|\xf2\xc9\xef\xdcw\xdf}-\x1c\x83%\x1e\xcd\xf8\xb0\xe7\x01&\x86\xc6\xb3f\ \xe6Z\xbe1\xe5+\xd5\xbfe2\x99\xedo\xbc\xf1\xc6\x8a\xc6\xc6\xc6W)\xcb\xe5xk\ \xfcp\xe3\xb0q\xba\x0c\xc8\xbc\xf2\xb4K\xaa/\x16\x8b\xc5\xd4{\xef\xbd\xb7\ \xb2\xa1\xa1\xe1\xf1\xc1\xc1\xc1\x01J\xad\x8f\x8f\\.\x07\x1b\x87\x93\x90bH\ \x1a\xd5Z\xfb\xfb\xf6\xed\xfb\xc9\xea\xd5\xab\x7f\xf0\xf4\xd3O\xef\xe78[\xe2\ \xd1\x8c\x91\x08(J\xd6\xa7\x00\xfa\xfa\xfa\xfe\xf8\xd2K/-_\xb2d\xc9&>"K<\xaa\ 1\xc2\xb7GL \xd1\xd2\xd2\xf2\xe7\x17_|\xb1\x11\xa8\xa1\xf49\x98\xc1\x08\xdf\ \x1e\xf9\xb8\xe7\xe1\xbe\xfeb544\xc4\xcb\xc0\xcdO\x13\xf0\xca\xfc\x7f\x14M|\ \'\xf7n\xc13\x00\x00\x00\x00IEND\xaeB`\x82{Ik\xde' phatch-0.2.7/phatch/actions/highlight.py0000644000000000000000000003251411346363116020166 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) # for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t from lib.openImage import open as open_image from lib.imtools import has_transparency, paste #---Pil def init(): global Image, ImageMath, imtools import Image import ImageMath from lib import imtools def put_highlight(image, highlight, resample_highlight, opacity, cache=None): if cache is None: cache = {} resample_highlight = getattr(Image, resample_highlight) id = 'highlight_%s_w%d_h%d_o%d'\ % (highlight, image.size[0], image.size[1], opacity) try: highlight = cache[id] except KeyError: highlight = open_image(highlight)\ .convert('RGBA').resize(image.size, resample_highlight) if opacity < 100: #apply opacity highlight_alpha = imtools.get_alpha(highlight) opacity = (255 * opacity) / 100 highlight.putalpha(ImageMath.eval("convert((a * o) / 255, 'L')", a=highlight_alpha, o=opacity)) #store in cache cache[id] = highlight if not has_transparency(image): image = image.convert('RGBA') else: if has_transparency(image): image = image.convert('RGBA') alpha = imtools.get_alpha(image) highlight = highlight.copy() highlight_alpha = imtools.get_alpha(highlight) highlight.putalpha(ImageMath.eval("convert(min(a, b), 'L')", a=alpha, b=highlight_alpha)) overlay = highlight.convert('RGB') paste(image, overlay, mask=highlight) return image #---Phatch class Action(models.Action): """Apply a transparency highlight""" label = _t('Highlight') author = 'Nadia Alramli' cache = True email = 'mail@nadiana.com' init = staticmethod(init) pil = staticmethod(put_highlight) version = '0.1' tags = [_t('filter')] __doc__ = _t('Apply a transparency highlight') def interface(self, fields): fields[_t('Highlight')] = self.HighlightFileField('Sphere Top') fields[_t('Resample Highlight')] = self.ImageResampleField('antialias') fields[_t('Opacity')] = self.SliderField(100, 0, 100) icon = \ 'x\xda\x01\xd9\r&\xf2\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\r\x90IDATh\x81\xed\x99{pT\xd7}\xc7?\xe7\xde\xbb\xbbZi\ \xd1\x0b\xb1zXO\x04B\xc2\x0f\x10\x86\xe2\x9a\xd8\x10364u\xd3\xc4.\xb6k;\xc43\ \x8e\'\xf6$\x99\xc6\xcd\x1f\x9dt\xa6\xd0\xc6\x9d4\xad;\xf58\tmg\xda\xf1\xe0&\ S\xd7\xd14\xf5\x84\x16\x19\x8a\xed\x12\xdb\xd5\x0bI d@B\x12\xe8I\x84\xde\xbb\ \xda\xd5\xdd\xbd\xf7\xdc\xd3?v\xafX-\x02C\x8c\x93\xc9L\xcf\xcc\x99\xbbsu\xef\ 9\x9f\xef\xef\xfb\xfb\x9d{\xef\x91PJ\xf1\x9b\xdc\xb4_7\xc0\'m\xff/\xe0\xd7\ \xdd~\xa5\x02ZZZ\xb2[ZZ\x1e\xbd\x95c\xfe\xca\x04\x9c8q\xe2\t\xc7q\xce\xd9\ \xb6\xfd\xa5[9\xee\xa7.\xe0\xe4\xc9\x93k\xdb\xdb\xdb\x8fJ)\xdfp\x1c\xa7XJ\t@\ gg\xe7\xaa[1\xbf\xf8\xb4\x96\xd1\x8b\x17/f\x84\xc3\xe1o[\x96\xf5\'\xb6m\xfb\ \xe2\xf18\x03\x03\x03dee\x1d\xae\xa8\xa8\xf8\x99eY\x7f\x15\x8b\xc5Jv\xec\xd8\ a~\x92y\x8c[\x05\x9c\xda\xba\xbb\xbb\x1f\x92R\x1e\x90R\xae\xb1m\x9b\x91\x91\ \x11:::\x10B\xb0{\xf7\xee{m\xdb\xfe\x9c\xeb\xc4\'m\xb7T@OOO\x89\x94\xf2\x15\ \xa5\xd4c\x8e\xe3099I{{;\x13\x13\x13\xd4\xd7\xd7S[[\x8b\x942\xd74M\xc6\xc6\ \xc6\xf0x<\xe2\x93\xceyKR\xa8\xa1\xa1A\xaf\xab\xab\xfb\xba\x10\xe2%\xa5\xd4\ \x8a\x85\x85\x05:::8{\xf6,\x15\x15\x15\xdcs\xcf=x\xbd^\xe2\xf18}}}\x9c:u\x8a\ \xcc\xccL\xee\xbc\xf3\xceL\xd34WI)7h\x9aV\xb8w\xef\xde\x7f\xbe\xd9\xb9?\xb1\ \x03g\xce\x9c\xd9\xba~\xfd\xfa\x7f\x00\xea\x1d\xc7app\x90\xe6\xe6f\x00\x1e\ \xdc\xbd\x93\xd2\xe2rl\xdbfxx\x98\xf6\xf6v\xa6\xa7\xa7\xc9\xca\xca"\x18\x0c\ \x12\x8f\xc7\x07\x85\x10\xabt]G)\xf5#\xe0\xd3\x17 \x84\x10\x00MMMy\x81@\xe0\ \xbbB\x88\xe7\x00maa\x81\xa6\xa6&\x86\x86\x86\xb8\xe3\x8e\xdb\xd9\xb0q#\x9a\ \xd0\x98\x9d\x9d\xa5\xb9\xb9\x99\x91\x91\x11\xf2\xf3\xf3\xd9\xb2e\x0b\x99\ \x99\x99(\xa5PJ\xadRJ\xe18\x0eJ\xa9\xf7n\x96\xe5\x86\x04\xb8\xc0\xa9\xad\xab\ \xab\xebK\x9a\xa6\xbd\x0c\x04\x1d\xc7\xe1\xfc\xf9\xf3\x9c8q\x82\xfc\xfc|>\ \xff\xc5\x87\xc9\xcf)\xc0\xb6m\xba\xbb\xbb\xe9\xec\xec\xc4\xeb\xf5\xb2a\xd3\ \x1d\xac\xcc\r\xba\xb0K\xba\x10\x02\xc7q\xde\xbd\x1e\xc7\xf7_y\xa5R7\x8c\xd1\ \xaf}\xe3\x1b\xd6\x12\xbek\xd5\xc02\xe0\xa2\xad\xad\xad\xce\xef\xf7\x1f\x00\ \xb6\x03LNN\xd2\xd2\xd2\xc2\xfc\xfc<\x9b6\xd7\xb3\xb6\xba\x06\x80\x89\x89\t>\ \xfc\xf0CB\xa1\x10\xab\xd7Tq[q)\xc0\xb2\xf0\xc9s\x17\xf7\xec\xd9S\x95\xce\ \xf0\x83W_-\x90R\x1eq\xa4\xdc\xa0\x94\xd2\x85\x10Jh\xda\x88\xa6i\xbf\xf7G/\ \xbexjY\x01i\xe0\x02\xe0\xb5\xd7^\xcb\xba\xfb\xee\xbb\xffT\xd7\xf5o\x01\x9ex\ \x95\xe3\xef\x7f\xf8\xc3{b\xa6y\xdcq\x1c\xef2\xc1U\xc5\xb7\xdd\xf6\x07\ \x7f\xf8\xe4\x93?5RN^\x05\x0e\x88\x8e\x8e\x8e\xdf\xf5x<\xdf\x17BT(\xa5\xb8x\ \xf1"mmmdff\xb2\xebw\x1e$XP\x84R\x8a\xc1\xc1A\xda\xda\xda\xf0\xfb\xfd|\xe6\ \xbemde\x06\xae\x8at\xc4\x86\x8e)\xc9G3\x0e\xebs54M \x84@)\xd5\x9b\n\xf87\ \xdf\xfb\xde\x8b\x99\x99\x99/;\x8e\xa3\xa7\xc3\x03(\xa5\xc4|8\xfc\x06\xe03\ \xae\x01/\x8e\x1d;V\x1e\x0c\x06_\xd14\xed\xf7\x01\xe6\xe6\xe6hmmM\xac\xe9\ \x9b6P\xbb\xae\x0e!4\xc2\xe10\xad\xad\xadLMMq\xfb\x1d\xeb).*\xb9*M\xe6L\x9b\ \xa6q\x9b\xb33\x12\xa9\x14\x1e]\xa3&\xd7@\xd7\x17\xaf9/\x84\x10\x7f\xf9\x9d\ \xef\xf8\xf3\xf2\xf2\x0eh\xba\xfe\x8c\x15\x8f/\xc7\x0e@FF\x06\xa1\xb99\xef\ \x8f^\x7f\xbdF\xa4F\xdb=\x1e:t\xa8\xb0\xaa\xaa\xaa\x17\xc8r\x8b\xb1\xbb\xbb\ \x9b\x8a\x8a\n6m\xae\'\xcb\x1f@J\xc9G\x1f}Dww7UUU\xd4\xd6\xd5b\xe8\xc6\x92\x9f\x8f\xca\x8a\x8a\xbd\xf7o\xdf\ \x8e\x10\x82\xb3==\xcc\xce\xce\xa2\xe9:\xd2\xb6\xc9\xce\xce&\x1a\x8db\xdb6\ \xab\x82A\xd6\xac]\xcb\x99\xeen\xb2\xb2\xb2\xe4\xb3\xcf=w.\xdd\x01\r\xd0/_\ \xbe\xac%k\x83\xca\xcaJ4\xa1\xd1\xdb\xdbKgg\'eee|\xf1\x91/\x90\xe1\xf3_U\xa4\ \xa7\xc6#4\xf6\xcd\x12\xb5$\xbe\x14h\xaf\xa1\xe3\xf3\xe8\x8bB\x9c\xcb\xfd\ \x1c\xfc\xd9\x9b\xe4dgSW[\xcb\xbd\xdb\xb6QPP\xc0\x85\x81\x01V\xe6\xe734<\xcc\ \xee\x87\x1e\xe2tW\x17\xe1p\x98\xb2\xf2rrss1c1:\xdb\xdb\x89\xc7\xe3\xac\n\ \x06\xbf\x02\x89\x07\x99\x96\x84\xd7]\x01\x13\x13\x13\x8b\x02\xa4\x94\xf4\ \xf5\xf5\xd1\xdd\xdd\xcdC\x0f=Haa\xd1UEzy>\xce\xbf\x7f4\xce\xc0\xf4\x02^\x8f\ N \xc3\xbb$\xean\xe4\xbd\x86\x8e\xdf\x9c\xa5\xe5\xc8[x\x0c\x83`a!\xf3\xf3\ \xf3x<\x1e\xfa\xfb\xfa\xe8ho\'\xb0b\x05EEELNO\xb3c\xe7N\xbaN\x9dbdd\x84\xa1\ \xc1A\x84\x10\xe4\xe4\xe6\xaa`a\xe17\xf7<\xfe\xf8AW\x80\x1by-)\xc2\x98\x9e\ \x9e\x16\xae\x00\x17\xb2\xa8\xa8\x88\xd2\xd2\xb2%E\x1a\xb7%G\xfb\xa6x\xb7\ \x7f\nC\xd3\x92\xe0\xda\x95tI\x89\xba\xd7\xd0\xc9\xcb0\x18=\xd9\xcc\xe4\xe4$\ %%%\xf8|>\xa4\x94\x1c;v\x8ch$BEE\x05\xf7n\xdb\x86\xd7\xeb\xa5\xb7\xb7\x97\ \x0f>\xf8\x80\x82\x82\x02\xb6l\xdd\xea~K\xcc\x06\x02\x81-\xbbv\xed\xeask"U\ \x80\x0ex\x00\xcf\xa5K\x97\x96<<\\!\xba\xae/\xfe>;\x1e\xe6\x8d\x93#\x84c6~\ \xaf\x91\x16m=\xcd\x01\r\xd3\x98F\xf8\xe6\x19\x1b\x1a\xc44M\x04000\xc0\xb6m\ \xdb\x18\x1b\x1bc\xcb\xe6\xcdl\xac\xaf\xa7\xa7\xa7\x873g\xceP\\\\\xcc\xf6\ \xed\xdb\x89\xc5b\x8c\x8f\x8fSVZ\xfa\xe6g\x1fx\xe0\x89\xf4\xa26R\xe0\r\xc0\ \x0bd\x8c\x8d\x8d\x05\xdc\x0b\x1c\xc7Y,TM\xd3\x16\x05\xfc\xfc\xc2\x14\xa6\ \xad\x08\xf8\xae\xa4K\xc0\x1f\'\x18\x18g>^\x8e\xaey\x90F\x84\xa3\xe2\x9fhW\ \x8dD\xc3!\xbee\xfe1\xb6m\x13\x8b\xc5\x98\x9b\x9b\xc3\xe3\xf5\x12\x08\x04\ \xd8\xbd{7eee\xbc\xff\xfe\xfbtuu!\x84\xa0\xa6\xa6&1\x97\xe3X\xd2\xb6\x9f\xd9\ \xb9k\xd7\xbf^\xb5$\xa5\x080\x80\x0c \x0b\x08LMM\xe5\xb9\xd0\xae\x03\xa9n\ \x08!\x08dx\x08dx\xf0\x19:\xab\xf3\x07\xd8\\\xf6s\xaaW\x9e\xc2\xd0m\x1c<\x9c\ \x89h<\x7f\xa1\x9f\x0b\xb3\xf3\x10\x05\xa2PVSJtE\x84X,\xc6\xd8\xa5K<\xfc\xf0\ \xc3\xf4\xf7\xf7S__\x8fR\x8a\xe2\xe2b,\xcb\xa2\xb6\xb6\x96\x92\x92\x12\x86\ \x86\x86B\xb333w>\xf2\xe8\xa3C\xcb\xc1\xbb\x02/\x1bok\xe5\xc1\xb5\xff\x82\ \xae9h\x02\x10\x82Yu\x91|\x7f\x88W+\x05/|\x00\xa3\x13\t\x01\x91\xaa(>\x9f\ \x8f\xcc\xccL&\'\'1M\x93g\x9f}\x96C\x87\x0eQ^^NAA\x01\xb7\xdf~;\xa3\xa3\xa34\ 77;\xfb\xf6\xed\xdb\x12\x8b\xc5\x86\xaf\xf7\xd1e\x00> \x1b(\x00\x82@A<\x1e_%\ \xa5\xc4q\x9c\xc5\xa2M\xff\x86\xf5{u\xb6U\xfd\x0f\xf7U6 4\x85\x86@\x08\x98\ \x92\xa3D\xed\x10((6\x14\xdf]/\xf8\xf2O\x80\x05h\xe9i\xe13\xb5\xdb\xa8\x0f\ \xd7\xd3\xd8\xd8\xc8\xc1\x83\x07\xe9\xef\xef\xe7\xa9\xa7\x9e\xa2\xba\xba\x9a\ \xfe\xfe~z{{ill\xa4\xa3\xa3\xe3\xcfb\xb1X?\xc97\x1du\r\x15\x06\x90\t\xe4\x02\ \x85@\x11P`\x9af\x8e\xeb\x80\xebB\xba\x03%9C\xfcVi\x03\x9a\x00!4\x94\x90\xfc\ \xc2\x1e$\xee,$*J\x01\x1a\xac/VT\xd5\n.\xf4@<\x06\x8f\xedy\x9c\xd7\xc7\x0f\ \xf2\xcc3\xcfp\xf8\xf0a\x8e\x1c9\xc2\xe1\xc3\x87\x91R"\xa5\xc4\xef\xf7\xb3u\ \xeb\xd6\x86H$\xf2\xf25\xc3\x9e&\xc0C"\xf7s\x81| \xcf\xb6\xed\x15\xb6m\xa3\ \x94\xc2\xb2,\\7\xae4\xc5]\xc5?F\xd7\xc0\x11\x929g\x92\xb0=\x9d\xa8\x19\x058\ I\x01\xc9\xfe\x85b\x0fy\xc5\xfb\xd9{\xd7\x93\x08\t/\xbc\xf0\x02333<\xfd\xf4\ \xd3455q\xfa\xf4iB\xa1\x10\xd5\xd5\xd5\x96\x94\xf2/\xf6\xed\xdb\xf7w7\x02\ \xef\np\xad\xd1H\xa4\x93_)\x95\xe9:\xe0\xc2\xa7\xa6P\x86\xf1\x1eY\xfay\xc2v\ \x94Ik\x04\xa9\xec%\xc0\x8b\xdd\x11\xe4zr\xf9\xf3{\x1f&l\xee]t4\x1a\x8d"\xa5\ \x9c\x0b\x85B\xc3\x9b6m\xd2jkkC\x96e5544\xfc\xe0\xc0\x81\x03\x93\xc9inh\xc7\ \xc2\x00\xe2\xc0B\xb2\xdb\x80\xe68\x8e\xcf\xb6m\x1c\xc7\xc1\xb6m\x80%\x0e\ \xf8=\xff\xc9\xa45\xc3ek\x0c\x1c\xb5,|\x86\xf0S\x99W\x81W\xf7b%\xc5\x0b!\x88\ D"fCC\xc3\xdb/\xbd\xf4\xd2\x9b\xf1x|\x04\x98!\xb1N\x99@\xecF#\x9f* \x06\x84\ \x81Y D\xa2\x90u)\xa5r\x1cG\xd8\xb6\x8d\x10bQ\x88\x10Q\x0c\xed<\xa6\x1d\x01y\ 5\xbc\xaetJW\x94\x92\x93\x91\xb38\x89\x106\x8e\xe3\xa8\xe3\xc7\x8fw\xee\xdf\ \xbf\xff\xc7\x03\x03\x03\xe7\x81i \x02X\\I\xba\x9bnFr\x80H2\x12SI\x01A\xcb\ \xb2\x16\x1dHn{\x00\xe0\xd1N\x03\x0eB\t\x90\xa9\xf0\x82\x95\x19+\xb9-\xbb\ \xe4\xaaI\xe6\xe7\'\xa2_}\xfe\xab\xff\xd8\xd8\xd8\xd8\x9a\x9c\xc3\x8d\xb8\ \x9d\x84O\xab\x9a\xc5~C\x02\xec\xe4`s\xc0$0\x01\x04\xe3\xf1\xb8\xb2,K\x98\ \xa6\x89\xdf\xef_L!\xaf\xd1\r\x90\x10\xe0$\x8e~=\x93\xca\xbc\n\x0cm\xe9&\x87\ \x94\xb6\x13\x99\xbf472\xd4\xd5\xd5\xd8\xa8\xdeK\x06*\x96\x0c\x9aL\x81O\xed7\ \x0c\x0f\x89\xc2u\xb8\xe2\xc2\x140\x0eL\xc4\xe3q\xb5\xb0\xb0@$\x12AJy%\x85XH\ \xdc\xa8\x04+\x8cl\xd6\xad\\\xc7\x9a\x95\xd5i\xf0\x8a\xc8\xfc\xc4|h\xf6\xdc\ \xa8`fzu\x15\xc5\xef\xfe\x97\xf6@\x12\xdeN\xeb\xa9B\x96sA]\xeb\x19\x00\t\x07\ dR\x80I\xa2\x0e~\x01\xe4K)\x1d\xa5\x94\x88F\xa3NNN\x8eq\xe5\x9d(\xf1\x9eW\ \x14(\xbc*\xe2\x0013\x1c\x8bF\xc7\xa6u-\xb6\xe0\xf5bk\x1aJ\x08T]\x8d\xda\x04\ \xbc\x91\x84\xb6nP\xc8\xc76w\x19\x95$V#\xd7\x85\xe1\xde\xde\xde\xce\xa3G\x8f\ \x8e\x97\x96\x96\xde\xeb8\xce\xcaE\x01\xf8\x127\xa6\xa7\x8b\x1d\x97\xf3\x91\ \xb1\x19\x9cP\xc8\xebAj\x1a\x8e\x10\t\x08!P\x03\x17E\x13(\x17\xdcJ\x13q-\xf8\ \x8f\x15a$o\x12\xc9Ab$\\\x18\xdb\xbf\x7f\xff_\x03k\xbc^\xef:)\xe5J\x8f\xc7\ \xe3\x00\x9a\xa3r\x97\x0c\xa0\x94\xa3\xa2\x91\x89\xb0e]\x9e\xf6\x18\xca\xd2\ \x8c\x04\xb8\x0b\x0f\xc8\xf3}\xe2\xc8\x8e\xcf9\xff\x96\x06\x9d*B^G\xc4u\x9b\ \xc6\x95g\xa7M\xc2\x85(\x89B\x1e\x00N\xfa\xfd\xfe\xcb\x17.\\\xe8?~\xfcx\x17@\ \xcc\xbe\x0f\xf7\x1f+\xa69\xb7\x10\x9a\xeb\x19A\x8d\x8fg\xf8\x94i\x18\xd8\ \xba\x9e\x88\xbem3{\xb6G\xfc\xf4+_W_\xbb\xfb~\xe75\xcb\xc2L\x8e\xef\xf6\xeb9\ \x90\x12\xa0\xebo\x9f\xbb)\xe4\xba`\xbb\xf7%\'\x88\x1e8p\xe0o\x87\x87\x877o\ \xd9\xb2\xe5\xb7\x01\x1c\x95\xcflhMT\xe7\xed\x90&\xe6\xc3\x19\xbeD\x9e\xbb\ \x13\x87\xc2\xf4u\x9cRo?\xffM\xfewdD\xc5\x93c\xbb\x80.l\xfa\xd1\xfd\xfb/\xb5\ \x8c\xba\x17\xba\x8fZW\x84\x04\xec\xe1\xe1\xe1~ ?##\xa3,\x1a\x8d.\x1c:t\xe8?\ :\x9a\xdf:\xfa\xc4cVA\xb0\x00_V\x96\xe6\x0f\xcd9S\xe7\xfa\x19\xfc\xc9[\x0c\ \xbe\xfd6\xe1\x14\x80\xd4\xe5Q.\xd3S\xc5]\x95>\x1f\x17}\xb8\xf29\xb9d[\x85+_\ i:\x89\x17\xbd\xf2\xd5\xabW\xaf\xce\xce\xce\x8e\x9e """ label = _t('Imagemagick') author = 'Stani' email = 'spe.stani.be@gmail.com' version = '0.1' tags = [_t('filter'), _t('plugin')] tags_hidden = ACTIONS __doc__ = _t('Blur, Polaroid, Shadow, Unsharp...') def init(self): self.find_exe('convert', 'Imagemagick') def interface(self, fields): fields[_t('Action')] = self.ChoiceField('Polaroid', choices=ACTIONS) fields[_t('Horizontal Offset')] = self.PixelField('2%', choices=self.SMALL_PIXELS) fields[_t('Vertical Offset')] = self.PixelField('2%', choices=self.SMALL_PIXELS) fields[_t('Color')] = self.ColorField('#FF0000') fields[_t('Border Color')] = self.ColorField('#FFFFFF') fields[_t('Shadow Color')] = self.ColorField('#000000') fields[_t('Caption')] = self.CharField(choices=self.STAMPS) fields[_t('Charcoal Radius')] = self.PixelField('0.5%') fields[_t('Contrast Factor')] = self.SliderField(100, 0, 100) fields[_t('Contrast Treshold')] = self.SliderField(50, 0, 100) fields[_t('Blur Radius')] = self.PixelField('80px') fields[_t('Blur Sigma')] = self.PixelField('3px') fields[_t('Blur Angle')] = self.SliderField(120, 0, 359) fields[_t('Paint Radius')] = self.PixelField('0.5%') fields[_t('Sharpen Radius')] = self.PixelField('0px') fields[_t('Sharpen Sigma')] = self.PixelField('3px') fields[_t('Sketch Radius')] = self.PixelField('0px') fields[_t('Sketch Sigma')] = self.PixelField('20px') fields[_t('Sketch Angle')] = self.SliderField(120, 0, 359) fields[_t('Unsharp Radius')] = self.PixelField('0px') fields[_t('Unsharp Sigma')] = self.PixelField('3px') fields[_t('Wave Height')] = self.PixelField('0px') fields[_t('Wave Length')] = self.PixelField('3px') def get_relevant_field_labels(self): """If this method is present, Phatch will only show relevant fields. :returns: list of the field labels which are relevant :rtype: list of strings .. note:: It is very important that the list of labels has EXACTLY the same order as defined in the interface method. """ relevant = ['Action'] action = self.get_field_string('Action') if action == 'Blur': relevant.extend(['Blur Radius', 'Blur Sigma']) elif action == 'Bullet': relevant.extend(['Color']) elif action == 'Charcoal': relevant.extend(['Charcoal Radius']) if action == 'Motion Blur': relevant.extend(['Blur Radius', 'Blur Sigma', 'Blur Angle']) elif action == 'Paint': relevant.extend(['Paint Radius']) elif action == 'Polaroid': relevant.extend(['Border Color', 'Shadow Color', 'Caption']) elif action == 'Shadow': relevant.extend(['Horizontal Offset', 'Vertical Offset', 'Shadow Color', 'Blur Radius', 'Blur Sigma']) elif action == 'Sharpen': relevant.extend(['Sharpen Radius', 'Sharpen Sigma']) elif action == 'Pencil Sketch': relevant.extend(['Sketch Radius', 'Sketch Sigma', 'Sketch Angle']) elif action == 'Sigmoidal Contrast': relevant.extend(['Contrast Factor', 'Contrast Treshold']) elif action == 'Unsharp': relevant.extend(['Unsharp Radius', 'Unsharp Sigma']) elif action == 'Wave': relevant.extend(['Wave Height', 'Wave Length']) return relevant def apply(self, photo, setting, cache): info = photo.info action = self.get_field('Action', info) w, h = info['size'] dia = (w + h) / 2 values = self.values(info, pixel_fields={ 'Horizontal Offset': w, 'Vertical Offset': h, 'Blur Radius': dia, 'Blur Sigma': dia, 'Charcoal Radius': dia, 'Paint Radius': dia, 'Sharpen Radius': dia, 'Sharpen Sigma': dia, 'Sketch Radius': dia, 'Sketch Sigma': dia, 'Unsharp Radius': dia, 'Unsharp Sigma': dia, 'Wave Height': dia, 'Wave Length': dia, }) values['convert'] = self.exe['convert'] if action == 'Bullet': #extra values values['border'] = dia / 3 values['blur1'] = dia / 7 values['shade'] = '%dx%d' % (dia + 105, dia + 15) values['blur2'] = dia / 12 elif action == 'Polaroid': caption = values['caption'] if caption.strip(): values['caption_cli'] = \ '-caption "%s" -gravity center' % caption elif action == 'Sigmoidal Contrast': values['contrast_factor'] /= 10.0 command = COMMANDS[action] % values #print(command) #use "python phatch.py -v" for verbose mode photo.call(command) return photo icon = \ 'x\xda\x01\x03\x0e\xfc\xf1\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\ \x00\x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\ \x08\x08|\x08d\x88\x00\x00\r\xbaIDATh\x81\xd5\x9a{\x90T\xd5\x9d\xc7?\xe7\xde\ \xdb\xaf\xa1a\xde\xcc\x003 \x0fet$\xf2R\x03\x0b\x1b5\xe0\x82\xb2\xac\xa2"\ \x11\'*\xbb\xb5[&\xf8(wI\xb2\xea\xban\xca\x07\xba\xee\xd6\x96\x86\x8a\xa1\ \xccJ\\A\xa3\x1b\x93\x94\xd1\x10I\x16P2+\xf3l\x06\xa7\x07\xe413\xd0\xc00=/\ \xe7\xd1\xd3\xdd\xf7\xf1\xdb?\xba\xa7\x99\x9ei\x10Pk+\xbf\xaaS}\xe7\xcc\xbd\ \xe7|?\xbf\xdf\xef<\xee\xe9V"\xc2\x9f\xb2i\xa3j\x02\xeag\x04\xd4\xfc\xaf\xa2\ \xb3\xda\xda\xda\xac\x8f?\xfe\xf8\xce/\xb3M#C\xdd\x8d\xc0Z\x02\xea%\xe0\x87D\ \x98I\x84EDXH\x84\n\xd6\xc8\xc0\xc5tTSS\xb3\xd2\xb6\xed\x17\x1d\xc7i\x01~\ \xfe\x054\xa7Y:@@)\xa0\x00\xd01y\x98\x08\x0f\x13\x81d\xd9G\xc5\x85\x8b\xaf\ \xaf\xaf\x9f""/\xda\xb6\xbd\xd2\xb2,l\xdbn\x01\xd8\xb3gOn___d\xf9\xf2\xe5\ \xb1/\x0f\x00\x8a\x00\x83\xc1\x94\xe8D\x19\x00"\xec\xbc\x90\x86kkk]n\xb7\xfb\ \x11\x11y\xc2\xb2\xac,\xcb\xb2hii\xc1\xe3\xf1\xb8jjj*t]\x7f\xc1\xe7\xf3]\x05\ \xb4}9\x00\x015\x05\x8b\xdf\xa4\tO/\x1f\x9eo\xa3\xc1`p\xb1\xdb\xed\xfe\xb1eY\ \xe5\xb6ms\xea\xd4)\xea\xea\xea\xb0,\x8be\xcb\x96]iY\xd6k\xb6m\x7f\x11\xdd#\ \x00\x02j\x01\x83\xfc\x8a\x08\xe3\xcf\x01\xb0\x02\xf8\xe5\xb9\x1a\xab\xaf\ \xaf/t\xbb\xdd\xcf;\x8es\xafeYtvvRWW\xc7\x89\x13\'\x98={6\xe5\xe5\xe5\x88\ \xc8\xb8x<\xce\xb1c\xc7\xc8\xcf\xcfW_\x14@\x89\x08|\xa4\x86\xf2}\xca9\x00\ \x84\x01\x16\xf1\x9aTfj\xa7\xb1\xb1\xf1o\x80\x8d"\x92\x17\x8dF\t\x04\x024662\ q\xe2D\x16,X\x80\xcf\xe7\xc34MZZZ\xa8\xaf\xafGD\x98;w\xee$\xdb\xb65\xcb\xb2\ \xae\x02.\xb9\xe7\x9e{6]\x1c\x00\xc0[J#\xc2\xcdD\xf8\'"\\\x9d\x11\x02\xf6\ \x01\xf3\xd8&\xa9\xf8766^\xa5\x94\xfa\xb1\x88,\x00\x08\x85BTVVb\x9a&__x\r\ \x97L\x9e\x86eY\x9c\x06\xf1f3>KC\xd7\xcfD\ \xca\xb2\xac\xe6T\xe7\xab\xe5g\xbc\xa4\xdcXl>\x0b@\xda\xac\x93\x11 ??\xdf\ \xe9\xeb\xebC)Eii)\xbafp\xf4\xe8Qjjj\x18?~<\xb7\xdc\xfaW\x8c\xc9\xf2\x8f\xca\ \xf5\x03\x9dQ\xde=\xd8Io\xdcNy\xdb\xabl*\xe6^\xca\xf8\xc2B\x1c\xc7ak\xd5Q\ \xf2}\xb9\xe8\xba\x95z\xce\xe7\xf39i\x02z80*u\x86\xae-\xe6\xc3\x99\x9dqF\x80\ H$\xe2\x00\xa9thmm\xa5\xba\xba\x9a\xeb\xae\xbf\x8e\xc9\xa5\x93G-F\x9d\x918\ \xbf\n\x86i\n\x0f\xe01t\xfc\x1ew\x02\xc0\xa5\xe3\xf4\xb4\x81\xe4\x10\x8f\xc7\ \xf1z\xbd,\x99:\x8ecq\r]\xd7S\xcf\xf7\xf5\xf5\xa5\xbf\x19v10L\xf8\x1f\xb1x\ \x1f\x93%\xc0" \xedm1#\xc0\xdbo\xbf\xed\xacZ\xb5jh\x86\x00 //\x8fiS\xa7\xe18\ N\n\xcc\xb2\x1dv\x1e\xed\xe4\x83C\x1d(\x05~\xaf+\xe5y\x8f\xa1\xd3~h?\x1d\xcd\ \x07\xf8`\xe0\x187/\xbd\x01]\xd7)\x9d4\x91S\x81\x06t\xff\x84\x14@4\x1aM\x07\ \xe8!B\x9c\xe3\xc0\xf7\xd8*o&k\x9fa\xb5\xf2c0\xeb\xac\x00J)\x05\xa8\xf2\xf2r\ m\xd5\xaaU@b\xf5\x1c\xfa\xd4u=%\xfeH\xe7\x00[\xeb\x8e\xd3\x151S\xa2\xdd.=\r\ \xe0\xd4\xc0g\xf8\xfd~\x1aO\xf5Rv\xf4(3/\xbb\x0cM\xd3\xb8\xfa\xaaY\x04\x83A\ \x8a\x8b\x8b\x11\x11"\x91\xc8HG\xb6`2\x93\xb7d0\xad\xf6-\xe9\x07\xfe7#\x80RJ\ #\xf1\x92o466z\x92u\xa9\x99\x05@\xd3\xb4T]ek7\xfdq\x07\xbf\xd7\x8d\xc7\xd0\ \x12\x00\xc60\x00\x97NNQ\x0e{\xdb\x7f\xcfQUG]]!\xffY\xfcS\\.\x17\xd1h\x14\ \x8f\xc7\x83eY\xb8\xddnb\xb1\x11\xeb\xd1\xab\x12\xcd\x94\x19\x99\xcc\x18\xf2\ z\x12\xc6\r\xf8\x80\xb1\x80#"Zr\x9aKEB\xa9\xc4\xea\x99\xe56\xf0{\\\xa3\xbc\ \xee6t\\\x86F@\x7f\x97\xf7\x8a61p\xba\x0bLh1\x07\xf8\xd1\xaeMT\xcc\xb9\x9b\ \xcd\x9b7SRR\xc2\xf4\xe9\xd3\xb9\xf1\xc6\x1b)(((\x00\xc2\xe7+zd\x04\xb4a\xc2\ \xfd\xc08 \xc7\xb6\xed\x14\xc0\x90\xd7\x87\x9b\xd7e\xe0\xf7\xbaq\x1bZ\x9a\ \xd7]\x86\xc6;\xd6\xb3Tv\xbf\x93\x18\x84Q \x9e(\xef\x84\x7fI\xdb\xabm\x1c\ \xae=\x84\xd7\xeb\xc5\xe7\xf3\xd1\xd8\xd8Hqq\xf1d\xa0\xe9b\x01\xdcI\xe19@^\ \xb2d\xc7\xe3ql\xdb\xc6\xb6m\\.Wj0\x0fY\x96\xdb\xc0\xefu\xa5\xa7\x8d\xa1\xf3\ \x8b\xbe\x8dT\x86\xdfI\x88\x1e\x04\x1c\x05\xfdI\x88~\xa8\xf6\xd4\xa0G4>\xfd\ \xf4S|>\x1f\x9f|\xf2\t"2O)\xf5\x81\\\xc4)\x9b\x01x\x81l\x12\'\x12\xe3\x81\\\ \xc0oYV\xaa=\xdb\xb6G\x01$"p\x06\xc0\xd1\xa3l\xea~\x88\x03\x91j\x18C"\x9eY\ \xc9\x9b\xdb\x80N\x98\x9f}-\x1b\xef~\x86O\xafo\xe2\x81\x07\x1e\xa0\xa0\xa0\ \x00\xaf\xd7K0\x18|\x10\xd8\x08\\\x14\x80+\xd9U\x0e\x90O"\x02Y\xb6mKr\x95\ \xc40\x0cF\x9e"x]\x89\xf9>\xae\xf7\xf2~|\x0b\x7f\xe8\xda\x86i\xc6\xd3\x17\ \x1e\x13p\xc0\xb0]\xdcs\xf5}\xdc7\xfbn\n\xc6\x150m\xd9\x14n\xbb\xed6\xb6o\ \xdfNvv6>\x9f\xafh\xdd\xbau\xcf\x03\xffp\xa1\x00Z\xa2\x0b\x84\xc4@v\'a\xc6\ \xc6\xe3q\x1c\xc7!y\x185*\x02>\xb7A\x9b\xde\xc8\xb3]k\xd8\x1e\xde\x82\xd9\ \x1fO\xa4\xca\xb0\xa2z\x157\xf8\x97\xf2\xe1\xda]\xac\xff\xb3\xbf\xc3\xef\xf7\ \xa3\x94B\xd7u\xd6\xaf_\x7f\xda4\xcd\x8e\x86\x86\x06:::\xc8\xcd\xcd}h\xed\ \xda\xb5\x8b.\x06 \xce\x99\xe3\xabx\xb2\xceg\x9afj\x7f\xe38\xce\xa8\x08\xec\ \x19x\x8f\xe7\x8f\xdfKWw\x1b\xf4\x91^z\xa14:\x85\xdf\xad\xd8\xcek\xb7\xfc\ \x94\xf1y\x85x\xbd\xde\xa1w\xe1\xe8\x8e\x1d;\xb6\xac\\\xb9r\xd9\xe0\xe0\xe0\ \xb7Z[[\xad\x96\x96\x16:::\x8c\t\x13&\xbcq\xe7\x9dw\xfa.\x04\xc0 5\xbc\xe8It\ M\x0c\xd0,\xcbJE`\x08b\xb85u\xd7c\xf7\xd9\xe9\xe9b\x82/\x9e\xc5\x13\x0b\xff\ \x99\x8a9\xdfJ\xdd\xeb\xf1x0\x0cC\x82\xc1\xe0\x9e\xe7\x9e{\xee\xd9\xdd\xbbw\ \xef\x03\xba\x80\xb8\x88<\xb9o\xdf\xbe\xa7rss\xf1\xf9|%yyy\xff\x05\xdc~\xbe\ \x00\x1a\x89\xac\x8d\x00\xdd@\x07\xf0\x19`\x9a\xa6)\x8e\xe30|6\x1ann\xd3\x95\ \xe6u\xd5\xabqk\xf1\xed\x1c\xb8\xbf1M<\xc0\xa9S\xa7Z^x\xe1\x85\xf57\xddt\xd3\ =\xbbw\xef\xfe\x088\r\xc4D\xc4\x01\x9e\x8dF\xa3{\xea\xeb\xeb\xe9\xe8\xe8\xc0\ \xe7\xf3\xad\xaa\xa8\xa8X{\xbe\x00\x06\x891\x10#\xe1\xfdp\xb2\xf1"\xd34\xc54\ Mb\xb1X\xc6\x08\xb8-\x03\xfa@\xb34.\xcb*\xe3\xd5\x8aW(\xcd-I\xbbg``\xa0o\xfb\ \xf6\xed[6l\xd8\xf0\x93x<~\x92D\xa4\xad\xe1\xd3\xa5\x888J\xa9\xbbO\x9f>\xddp\ \xf0\xe0\xc1q>\x9fO\x15\x17\x17oZ\xb3f\xcd\xce7\xdf|\xf3\xe4\xf9\x00\x08`\ \x93\x98\xb5\xbbHLz\xe3m\xdbv\x06\x07\x07\x19\x18\x18 77wt\x04\x1c\x17\x0b\ \xf2\x17\xf3\xd4\x92\x7faf\xc1\x8c\xb4\xff\xd9\xb6mWUU\xfd\xee\xe9\xa7\x9f~>\ \x10\x08\x1c \x91\x9ef\xd2\xe3\xa3LDZ\x95R\xdf\t\x06\x83\xaf\'\xa7\xd6\xec\ \xa2\xa2\xa2w\x80\xaf\x7f\x1e\x80\x96\xf4\x86Cb,\xf4\x91\x88@\xc8\xb2,\xcbq\ \x1c\'\x12\x89\xc43\xcdB\xf7\xcf\xf9k\xde^\xb3u\x94\xf8\xe6\xe6\xe6\xe0c\x8f\ =\xb6\xee\x8e;\xee\xf8N \x10\xa8\x01:D$v6\xf1\xc3 \xb6\xda\xb6\xfdFmm-\xe1p\ \x18\xe0\xdau\xeb\xd6=\xf9\xb9\x00\xc9\x87\x87 \xa2$\xc6\xc2\xf1P(T\xb5c\xc7\ \x8e\xad\xfd\xfd\xfd\xa73\x01\x14\xf9\x0b\xd3\xfe\xee\xe9\xe9\xe9\xdc\xb2e\ \xcbS\x8b\x17/\xbe\xed\xf5\xd7_\xff5p\x02\x88\x88\xc8\xd9\x8f\xa1w)\xef\x88\ \x9a\xfb{{{\x8f\rM\xad\x05\x05\x05?X\xb3f\xcd\xdc\xcf\x05H\x9a\x90\x18\xd0\ \xfd@\xdb\xa3\x8f>\xfaxkk\xeb\x8e\xac\xac\xac6\xc7qp\xb9\\\x19=h\x9a\xa6\xb9\ s\xe7\xce\xb7\x96-[\xb6\xe2\xf1\xc7\x1f\x7f\x118\n\xf4\x8a\x88u\xd6\xadA\xad\ r\x11P\xaf\x92\xcd\x1d\xc3\xabE\xe43\xa0\xa2\xb9\xb9\xd9inn\xa6\xab\xab\xcbS\ RR\xf2\xdf\xabW\xafv\x7f.\xc0\x88T\xea\x01Z\x81:\xbf\xdf\x1f\n\x85B\x07v\xee\ \xdc\xf9\xc7\x91\x0f755U\xaf_\xbf~MEE\xc5\xdf\x87B\xa1\x06\xa0SD\xe2\xa3\x84\ \xd7\xab+hP3\xa9U\x05T\xa9|\x0c~\x0b\xdc\x8b\xe2\xcfG\xb6)"\x1f\x8a\xc8s\xf5\ \xf5\xf5\xb4\xb5\xb5\x11\x8dF\xa7\xe6\xe6\xe6\xber6\x80Q\xef\xb5$Vd\x1d\xf0\ \x00\xd9\xe5\xe5\xe5\xd7\x00\xdf\x9d1c\xc6\xcfC\xa1\x90\x84B!\xa9\xab\xab;\ \xb1a\xc3\x86\r\xc0\x0c\x12\xbbW\x83\xe4)_\xc6\xf2{\x9e\x90\xdd\x88\xecA\xe4\ cD\xaa\x11\xa9C\xa4\x9eO3\xddOb{SS\\\\,K\x96,\x91\xeb\xae\xbb\xceY\xbat\xe9}\ \x19\xef=K\x03\xc3\xdf\x11\xc6\x03\xcb\xcb\xca\xca\xfe\xf5\xd0\xa1C\x03/\xbf\ \xfc\xf2+c\xc6\x8c\x99Mb\xdf\xe4:\xa7\xf0\xa1\xb2\x8d"\xf9\x051\xf95"\xbfA\ \xe4\xb7\x88\xec@\xe4\x7f\x10\xf9\x90\xcdRI^\x06\r3\x81\x88RJ\x00)))\xe9\xcb\ \xd4v\xe6\xb3\xd1a\xa6\x94\xf2\x02%\x85\x85\x85\xd3\xcb\xca\xca\xac\x8f>\xfa\ \xa8\x893\xab\xe89g\x964{EmE\xe3.\x8cd|\xf5\xa4{\x12\x9f\x9d\x18<\xc2rymD\ \xdf\x8f\x02O\x03\xe4\xe5\xe5\xf5tvv\xe6\x8el\xf6\xacG\x8b\xc3,\x0e\x84\xc2\ \xe1pG8\x1c\x8e\x93X\xf4\x9c\x0b\xde\xbb\x87\xc9\x1b&x$\xc4\'\xb8\xa9\x19\ \xf9\x88\x88<\xa3i\x9a\x8c\x1d;\xf6V\xb7\xdb\x9dq\xa7\xfa\xb9\x11\x80\xd4\ \xcb\xfeP\xa3\x17\xfe\xd5\xfe\x83j:n\x0e\xa1\xa3F@\x08\x06\xf7\xf2\xfdt\xcf_\ \x88\x9dO\x04.N\xf4p\xeb\xe1~4"\x18\x84\xd1\x89cpY\x12\xa2\x89\x7f\xbfx\xf1C\ \xe2\xbe\xfa\xf2\xb7\xb8R\xd7\xa0d\rO\xcb]\x88T\xf0\x93/\xda\xf6y\xa5\xd0Wbk\ \xd5\xb7q\x88\xf1\x86|\xa1\x9f\x1d\xfc\xff\x01|I6\xfa\xd7*\x7fb\xf6\x7f\xef{\ ~\xe5\x17+\xc5\x93\x00\x00\x00\x00IEND\xaeB`\x82\x04R\x04\xfc' phatch-0.2.7/phatch/actions/invert.py0000644000000000000000000002305311346363116017524 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu). # Follows PEP8 from core import models from lib.reverse_translation import _t #--- PIL function def init(): #lazy import global Image, ImageChops, imtools import Image import ImageChops from lib import imtools def invert(image, amount=100): image = imtools.convert_safe_mode(image) inverted = ImageChops.invert(image) if amount < 100: inverted = imtools.blend(image, inverted, amount / 100.0) if imtools.has_alpha(image): inverted.putalpha(imtools.get_alpha(image)) return inverted #--- Phatch Action class Action(models.Action): label = _t('Invert') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(invert) version = '0.1' tags = [_t('color')] __doc__ = _t('Invert the colors of an image') def interface(self, fields): fields[_t('Amount')] = self.SliderField(100, 1, 100) icon = \ 'x\xda\x01\x91\nn\xf5\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\nHIDATh\x81\xd5Y]l\x13W\x16\xfe\xee\\\x8f\xed\xb1\x9d\ \x14\xe2\x84>\xc4)46P\xdc\x14\tE\xd9(\x82\xc6\xa8\x08D\xa9\xaa\xaaJa\xa9T\ \x14\xa2\xb2BJA\xa2E\xca\xb6U\xd5\xaa\xa2R\x05/\xedC\xa9\xd4\xcdC\xa8h\xbb\ \x94>\xf4\xa1\x08-\xdd\xb0M(\xb0@\x14\x81\x9a\xc5\xd1\xc6&\xc4@\xd2$v\x80`;\ \xe3\x9f\x99;\xfb\x10\xdf\xe9\xc4\x19\'N`\xb5\xdb+]\xcd\xf8\xdc;\xe7~\xdf9\ \xe7\x9e\xfbc\xa2i\x1a~\xcfE\xf8_\x03x\xd8\xf2\xbb\'`\xf9/\xe8$\xf3\xb4?\xd2\ \x98}\x14\x04\x88\xe1\x99_\x8dE3\xa9\xc0C\x12z\x18\x02:\xd0`0H\xfd~\xbf\xd0\ \xda\xda\xdap\xfb\xf6\xed]\xb2,?!\xcb\xf2\xe3\xc9d\xb2\x0c\x00\x9cN\xe7]I\ \x92\xc6$I\xbaUUUu\xfc\xf3\xcf?\xffg0\x18d~\xbf_5!\xb40\x10\x0b\xcdB\x84\x10\ \xa2i\x1a\xe9\xea\xea\x12<\x1e\x0f=r\xe4\xc8s7n\xdc\xf8\xf3\x8d\x1b7\xfe\x10\ \x89D$\x9b\xcd\x06\x9f\xcf\x87\x95+W\xc2\xeb\xf5brr\x12\xa1P\x08\xa1P\x08###\ \x00\x80\xe5\xcb\x97\xcb^\xaf\xf7\x8a\xd7\xeb=\xdc\xd6\xd6\xf6\x8f;w\xee\xa8\ \x1b7nd\xd3\xaa\x17\x06h\xa1\x04\x08\xa6\'>=p\xe0@\xed\xe5\xcb\x97;zzzV?\xf5\ \xd4Shmm\xc53\xcf<\x83\xaa\xaa*\x08\xc2tn\xc8\xd7\x9dL&\x11\n\x85p\xe6\xcc\ \x19ttt \x9b\xcd\xa2\xae\xae\xee\xdf\xf5\xf5\xf5-\x9f~\xfai/\x00\x15\x00\xc3\ \x02\xbc\xb1\x10\x02\xa4\xab\xab\x8b\xaeZ\xb5\xca\xbak\xd7\xae\xd3\x17.\\\ \x08,[\xb6\x0c\x07\x0e\x1c\xc0\xb6m\xdb@\xc8\xcc\x90\x9fK\xaf\xa6i\x18\x1f\ \x1f\xc7\xd1\xa3G\xf1\xfd\xf7\xdf\x83R\x8a\xf5\xeb\xd7w\x1f?~|\xdb\xc0\xc0@f\ \xe3\xc6\x8d<\xb4\x1e\x19\x01\x02\x80~\xfc\xf1\xc7\x95\'N\x9c\xb8\xdc\xdf\ \xdf\xff\xf8\xc1\x83\x07\xd1\xd4\xd4\x04\x8b\xa5\xf8id6V$\x12\xc1\xe1\xc3\ \x87q\xe9\xd2%\xac]\xbbvl\xe7\xce\x9d\xf5\xef\xbc\xf3\xce0\xa6\xbd1/\xb8b\ \x08\x10\x00\xf4\x8d7\xdeX\xff\xc3\x0f?\xfc\xed\xf6\xed\xdb\xf6\x0f?\xfc\x10\ [\xb6l)\x1a\xe4|\xf2L&\x83\xfd\xfb\xf7\xe3\xfa\xf5\xeb\xa8\xaa\xaaJ\xbd\xf8\ \xe2\x8b[\x8f\x1e=z\xa1\x18\x12\xf3\x11 \x00\x84\xf7\xde{o\xf9\xb1c\xc7\x82\ \xc3\xc3\xc3\xb6\xe6\xe6f477?2\xf0\xbc\xdc\xbbw\x0f\xfb\xf7\xef\xc7\xd8\xd8\ \x18*++\xd3\xbbw\xef\xf6\x7f\xf4\xd1G\x11\xcc3\'\xe6$\xf0\xddw\xdf\xd1\x8a\ \x8a\ni\xdf\xbe}7\xaf_\xbf^\x1e\x08\x04\xd0\xd6\xd6V4\xc0b\xc1\xf3\x12\x89D\ \xd0\xd6\xd6\x06Y\x96\xf1\xf4\xd3O\xc7>\xfb\xec\xb3\'\xa3\xd1\xa8\xbc}\xfbvu\ 1\x04\x08\x001\x10\x08\x9c;w\xee\\\xbd\xc3\xe1@{{;l6\xdb\xa2\x01\x16\xf3\xcd\ \xa9S\xa7\xf0\xd5W_\x01\x00\x1a\x1b\x1b/www7\x02\xc8\xa2\x80\x17\n\xed\x85\ \x08\x00a\xef\xde\xbd\xcf]\xbcx\xb1\x1e\x00\x1a\x1a\x1a\xc0\x18\x83,\xcbz\ \x9d\x9a\x9a\x9a\xf1{>\xf9|m\xa9T\n\xf5\xf5\xf5zb\xb8x\xf1b\xfd\xde\xbd{\x9f\ \xcb\xe14\xdd\xa2\x14J!$\x1c\x0e[zzz\xda\x15E\x01\x00\xd4\xd4\xd4@\x96\xe5\ \xa2\xac\xb8\x98\xc2\xbf\xb3X,\xa8\xae\xae\xc6\xc0\xc0\x00\x14EAOOO{8\x1c\ \xf6\xf9|>S/\x14$p\xe8\xd0\xa1W\xaf]\xbb\xe6\xe1\x02\xa7\xd3Y\x14\x81b@\xce\ \'_\xbat\xa9\xfe~\xed\xda5\xcf\xa1C\x87^\xfd\xf2\xcb/\x8f\x9b}kF\x80\x04\x83\ A\x1a\x0e\x87\xdf2*\x16\x04a\x06\x81\x85\x00\x9c\xab\xcdLn\x9cg\x9a\xa6!\x1c\ \x0e\xbf\x15\x0c\x06\xbf\xf1\xfb\xfd\xb32\x92)\x01\xbf\xdf/\x84B\xa15Fa,\x16\ \x83\xc5by\xa8TYl\xdb\xdd\xbbwg\xfc\x0e\x85Bk\xfc~?\x9f\x07\xf3\x13hii\xd9\ \x1e\x8dFg\xb4\x8d\x8e\x8e\xa2\xb4\xb4tA@\x16\xeb\x91X,6C\x16\x8dF----\xdb;:\ :\xbe\xc9\xefoJ`dddg\xbe\xb0\xaf\xaf\x0fUUU\x0b\x02R\xac\xdc\xe1p\xc0\xe5rar\ r\x12ccc\x18\x1d\x1d\x9d\xd5\'\x87\xe9\xaf\xf9\xf2|\x02\x04\x00I$\x12\xb3\ \x90\xde\xbcy\x13\xd1h\x14.\x97kN\x80\xc5\x80w\xb9\\X\xb7n\x1djkkQYY\t\x87\ \xc3\xa1\xf7\x99\x9c\x9cDkk+\x06\x06\x06p\xf2\xe4ItvvBQ\x14\xe40\xf13\x88>\ \x80\xa9\x07\x92\xc9\xa4;_\xc8\x18\xc3\x993g\xb0e\xcb\x16PJ\x0b\x82\x9f\x8bT\ EE\x05^z\xe9%\xd4\xd7\xd7\xeb:\x8cdUU\x05?OTVV\xa2\xae\xae\x0e\x91H\x04G\x8e\ \x1c\xc1\xe4\xe4\xa4\x1b&k\xc1,\x02\xe1p\x98\xc4\xe3q\xd3`\xbfw\xef\x1e\xba\ \xbb\xbb\xd1\xd0\xd0\xb0\xa0\xedsYY\x19^~\xf9e\x04\x02\x81Y\xc0\x8dOU\x9d\ \xde1\x10B@\x08\x81 \x08\xa8\xa8\xa8\xc0\x07\x1f|\x80\x8e\x8e\x0e5\x1c\x0e\ \x13\x9f\xcf77\x01\x00H\xa5R\x05\xf7\xc8\xa3\xa3\xa3\xb8z\xf5*\xd6\xacY3\xab\ \xcd,\x9f755a\xf3\xe6\xcd\x10E\xd1T\x1f!\x04\x8c1\x1d|\xa1>;v\xec\xb8o\xd66\ \x0b\xa8\xcf\xe7\xd3\xf6\xec\xd9\xd3\xf7\xc9\'\x9f\xd4\xc5\xe3qS\x85CCCH$\ \x12\xa8\xae\xae\xd6\xe3\xd7\x08\xden\xb7\xe3\x95W^ASS\x93\x9e\xd3\x0by\x881\ \x06\xc6\x98\x0e4\xbf/\x7f\xb7\xdb\xed#>\x9f\xaf\xb8\x95x\xc3\x86\r}^\xaf\ \xb7\xee\xddw\xdf\xc5\xf0\xf0\xb0\xe9\xc0\xb1X\x0c\x13\x13\x13(//\x87\xc7\ \xe3\x81(\x8a\x10\x04\x01/\xbc\xf0\x02v\xef\xde\x8d\xb2\xb22\xd3\xef\x8c\xc0\ \x18c\xb3\xc0\xf2\xca\x89\x19\xdaM\x81\x98m\xe64J\xe9pee%\xda\xdb\xdb\xb1c\ \xc7\x0eH\x92T\x10D4\x1aE__\x1f\xbc^/\xbe\xf8\xe2\x0b\xbc\xf9\xe6\x9bX\xbat\ \xe9\x0c0f\xc0\xb8\xd5\xf3\xf5\x19\xfb\xa9\xaa\xaa\xf7\xa5\x94\x0e\xa3\x88\ \xbd\x90\x86\xe9\x03\xc4%\xc6\x18JJJ\xf0\xf6\xdbo\xe3\xe0\xc1\x838u\xea\x14\ \xfa\xfb\xfb144\x84\xc1\xc1A\x00\xc0\xea\xd5\xab\xf1\xec\xb3\xcf\xa2\xb9\xb9\ Y_#\xcc\x80\x15[\x8c\x04\x8d\xe0s\x04.\xc1\xe4pcv\x1e\x10&&&\x9c\xbd\xbd\xbd\ \xb7\xacV\xeb\x12\xbe\xc88\x9dN\xd8\xedv\x88\xa2\x08J\xa9\x1e\xaf\xf9\xd9h1\ \xa0\xf9SUUd\xb3Y\xa4R)$\x93I$\x12\tLMM!\x93\xc9\xdc\xaf\xad\xad}\xc2\xedv\'\ s$~\x03k\xa6\xd3\xedv\xa7\t!?rKd\xb3Y(\x8a\xa2[\xc5l\x92=\x0cx\xfe\xce\xc7S\ \x14\x05\xd9lV\x1f\x8f\x10\xf2\xa3\xdb\xedN\xc3$\x84L\t\x00`\x94\xd2o\x8d\ \xca2\x99\x8cN\xa4P\x0c/\xb6p}fc\xa9\xaa\nJ\xe9\xb7(p6.t"c\xd5\xd5\xd5\xa75M\ \xeb1*\xcdd23<\xc1I<\xcc\xd9\xc0\x18\xf3\x8a\xa2\xe8\xe3p\x02\x9a\xa6\xf5TWW\ \x9fF^\xe8\xccG@[\xb1b\x85b\xb5Z\xdf\xe7J\xd3\xe9\xb4^3\x99\x0cTU\xd5\xdd\ \xce\x01\x15C\xc4\xd8\x8f\x87\xa3\xaa\xaa\xa6c(\x8a\x02\xab\xd5\xfa\xfe\x8a\ \x15+\x14,\xf0L\xac\x01`\x1e\x8f\xe7\'B\xc8i#\t\xa3\x85\xb2\xd9\xec\xacU\xb4\ P\xfa\xcc\'\xc8\xbd\xc8\xf5p\x9d\x8c1\x1d%\x91H\xec\x19\x1f\x1f?\x9f\xc9d\xaa\x8dw\x9e\x8c1}\x95\xe5r\ \x00\xfa\x1e\xc6\xac\x18\x13\x00\'\xc0\r\x03\x00\x92$\xc1n\xb7#\x16\x8bAU\ \xd5\xc1e\xcb\x96\xed\xf1\xf9|\x05\xad\x0f\x14w\xb1E\xcf\x9f?_#\xcbr7\xa5\ \xb4\xd4f\xb3\xc1n\xb7\xc3f\xb3\xe9\x95\xa7VA\x10fl\xc4\xcc\xc0\x1b\xb3\r\ \xb7<\xa5\x14\xa2(\xc2f\xb3app\x10\x0f\x1e\x81UUE"\x91\x18\xe9\xed\xed=\xd6\ \xd1\xd1\xd1\x99H$\x1e\xa4R\xa9D:\x9dN\x00\x90\x01\xa4\x00d\x000M\xd3L\xbdQ\ \x90\x00\x996\x1f\x05`\x03`\x07\xe0\x04\xe0\x14E\xb1\x84R\xea\xb4\xdb\xed\ \x8f9\x9d\xce\xc7^{\xed\xb5M555\r\xe5\xe5\xe5OZ,\x16\xca\xad/\x08\x82\x9eq\ \xf8\xa1\xc5\xe0\x056>>>\xf4\xcb/\xbf\\\xf9\xfa\xeb\xaf\xbbdY\xbe\x9fJ\xa5\ \xe2\xaa\xaa&\x14E\x89\x03H\x00\x98\x02\x90\xcc\x91\xc8j\x9afz\xe2\x99\x8b\ \x80\x00@\xcc\x11p\x00p\x19j\t\xa5\xb4D\x10\x84\x12\x8b\xc5\xe2\x12E\xb1\xa4\ \xbc\xbc\xbc\xa2\xb1\xb1\xd1\xbfj\xd5\xaa\'\x96,YR\xe2r\xb9\x9c%%%\x12\x00\ \xc4\xe3q9\x1e\x8f\xcb\xf7\xef\xdf\x8f\x0f\x0c\x0c\xdc\xfa\xf9\xe7\x9f\xfbc\ \xb1\xd8D6\x9b\x8d+\x8a\x12g\x8c\xc5UU\xe5\xc0\x8d\xcf)\xee\x85\xc5\x100z@2\ \x827<\x9d\x82 \xb8x%\x848\x04A\x90\x04A\x90\x00\xd8\x08!\x14\x00r\x83\xa7\ \x19ci\xc6XR\xd3\xb4)\xc6X\x821\x96d\x8c%L\x80\x1b\xbd\xc0Cha\x0bY\xee\x03\ \x85\x10\xc20=\x99\xb2&\x95\x83\x9a\x02\x10\xe7\xc0\x05A\xb0\xe6\xc8\x0b\xf8\ \xed/T\x851\x96\x06\x90\xc9\xf5\xe75\x99\x03\x9b\x00\xf0 \x0f\xb8Z(\xf6uC\ \x17\xbb\x11\xcb\x85\x14\xc9\x91\xb6b\xda+<\xb4\x1c\x98\x9e#\xf6\\\x9b\x98#\ \xc0\xefp\xb8\x112\x98\x0e\t9\x07\x92\x83\xe5\x80\xb3\xc8-\\se\x9eE\x11\xc8#\ \x93\xff\x8f\xbc`\xf24\xdeer\x12\xbc\x1ae\xdaB\x00?\x12\x02\xffO\xe5?\x93\ \xfd\xf42\x9f\xb7t\x01\x00\x00\x00\x00IEND\xaeB`\x82\xf2\xe0\x11j' phatch-0.2.7/phatch/actions/lossless_jpeg.py0000644000000000000000000005110111346363116021064 0ustar rootroot00000000000000# -*- coding: utf-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python. # Embedded icon is designed by Alexandre Moore(http://nuovext.pwsp.net). # Follows PEP8 try: _ except NameError: _ = unicode from core import models from lib.reverse_translation import _t #no need to lazily import these as they are always imported from lib import system AUTOMATIC = _t('Automatic (use exif orientation)') COPY = _t('Copy') CROP = _t('Crop') ROTATE = _t('Rotate') FLIP = _t('Flip') GRAYSCALE = _t('Grayscale') THUMB = _t('Regenerate thumbnail') TRANSPOSE = _t('Transpose') TRANSVERSE = _t('Transverse') ROTATE_AMOUNTS = ('90 degrees', '180 degrees', '270 degrees') HORIZONTAL = _t('Horizontal') VERTICAL = _t('Vertical') FLIP_DIRECTIONS = (HORIZONTAL, VERTICAL) LOSSLESS_JPEG_FORMAT_ERROR = \ _('Lossless JPEG transformation does not work on a %s image:') class Arguments(list): """List with tweaked append behaviour to make it suitable for command line arguments.""" def __str__(self): return ' '.join(self) def append(self, *options): option = '-%s' % options[0] if len(options) > 1: option += ' %s' % ' '.join(options[1:]) super(Arguments, self).append(option) class Exiftran(object): name = 'Exiftran (with exif support)' command = system.find_exe('exiftran') angles = {'90 degrees': '9', '180 degrees': '1', '270 degrees': '2', } directions = {HORIZONTAL: 'F', VERTICAL: 'f'} transformations = (AUTOMATIC, ROTATE, FLIP, THUMB, TRANSPOSE, TRANSVERSE) def interface(self, action, fields): fields[_t('Transformation')] = action.ChoiceField( self.transformations[0], choices=self.transformations) fields[_t('Angle')] = action.ChoiceField(ROTATE_AMOUNTS[0], choices=ROTATE_AMOUNTS) fields[_t('Direction')] = action.ChoiceField(FLIP_DIRECTIONS[0], choices=FLIP_DIRECTIONS) fields[_t('Preserve Timestamp')] = action.BooleanField(True) fields[_t('Show Advanced Options')] = action.BooleanField(False) fields[_t('Update JPEG')] = action.BooleanField(True) fields[_t('Update Exif Thumbnail')] = action.BooleanField(True) fields[_t('Update Orientation Tag')] = action.BooleanField(True) def get_relevant_field_labels(self, action): advanced = action.get_field_string('Show Advanced Options') \ in ('yes', 'true') relevant = ['Transformation'] transformation_fields = {ROTATE: 'Angle', FLIP: 'Direction'} transformation = action.get_field_string('Transformation') if transformation in transformation_fields: relevant.append(transformation_fields[transformation]) if transformation == THUMB: relevant.append('Preserve Timestamp') else: relevant.append('Show Advanced Options') if advanced: relevant.extend(['Update JPEG', 'Update Exif Thumbnail', 'Update Orientation Tag']) return relevant def get_command_line_args(self, action, photo): info = photo.info values = action.values(info) args = Arguments() #transformation transformation = values['transformation'] if transformation == AUTOMATIC: args.append('a') elif transformation == THUMB: args.append('g') elif transformation == ROTATE: args.append(self.angles[values['angle']]) elif transformation == FLIP: args.append(self.directions[values['direction']]) elif transformation == TRANSPOSE: args.append('t') elif transformation == TRANSVERSE: args.append('T') #options if not values['update_jpeg']: args.append('ni') if not values['update_exif_thumbnail']: args.append('nt') if not values['update_orientation_tag']: args.append('no') if values['preserve_timestamp']: args.append('p') #done! return args def get_command_line(self, action, photo, input, output): return '%s -i %s %s -o %s' % (self.command, system.fix_quotes(input), self.get_command_line_args(action, photo), system.fix_quotes(output)) class Jpegtran(models.CropMixin): name = 'Jpegtran (without exif support)' command = system.find_exe('jpegtran') transformations = (COPY, CROP, FLIP, GRAYSCALE, ROTATE, TRANSPOSE, TRANSVERSE) copy_choices = (_t('None'), _t('Comments'), _t('All')) directions = {HORIZONTAL: 'horizontal', VERTICAL: 'vertical'} angles = {'90 degrees': '90', '180 degrees': '180', '270 degrees': '270'} def interface(self, action, fields): # Juho: space hacks. get rid of those with ids later fields[_t('Transformation ')] = action.ChoiceField( self.transformations[1], choices=self.transformations) fields[_t('Copy')] = action.ChoiceField(self.copy_choices[1], choices=self.copy_choices) fields[_t('Angle ')] = action.ChoiceField(ROTATE_AMOUNTS[0], choices=ROTATE_AMOUNTS) fields[_t('Direction ')] = action.ChoiceField(FLIP_DIRECTIONS[0], choices=FLIP_DIRECTIONS) super(Jpegtran, self).interface(fields, action) def get_relevant_field_labels(self, action): relevant = ['Transformation '] transformation = action.get_field_string('Transformation ') transformation_fields = { COPY: ['Copy'], CROP: \ models.CropMixin.get_relevant_field_labels(self, action), #specify explicitly from crop mixin ROTATE: ['Angle '], FLIP: ['Direction '], } if transformation in transformation_fields: relevant.extend(transformation_fields[transformation]) return relevant def get_command_line_args(self, action, photo): info = photo.info args = Arguments() #pixelfields defined in the CropMixin values = models.CropMixin.values(self, info, action=action) #transformation transformation = values['transformation_'] if transformation == COPY: args.append('copy', values['copy'].lower()) elif transformation == CROP: mode = values['mode'] if mode == 'Auto': bbox = photo.get_flattened_image().getbbox() values['left'], values['top'], values['width'], \ values['height'] = bbox else: if mode == 'All': values['left'] = values['top'] = values['right'] = \ values['bottom'] = values['all'] values['width'], values['height'] = info['size'] values['width'] -= values['right'] + values['left'] + 1 values['height'] -= values['bottom'] + values['top'] + 1 args.append('crop', '%(width)sx%(height)s+%(left)s+%(top)s' % values) elif transformation == ROTATE: args.append('rotate', self.angles[values['angle_']]) elif transformation == FLIP: args.append('flip', self.directions[values['direction_']]) else: #grayscale,transpose,transverse args.append(transformation.lower()) #done! return args def get_command_line(self, action, photo, input, output): return '%s %s %s > %s' % (self.command, self.get_command_line_args(action, photo), system.fix_quotes(input), system.fix_quotes(output)) def utilities_dict(*utilities): d = {} for utility in utilities: d[utility.name] = utility return d class UtilityMixin(object): file_in = 'file_in.tif' file_out = 'file_out.png' def interface(self, fields): super(UtilityMixin, self).interface(fields) names = self.utilities.keys() fields[_t('Utility')] = self.ChoiceField(names[0], choices=names) for utility in self.utilities.values(): utility.interface(self, fields) def get_relevant_field_labels(self, relevant=None): if relevant is None: relevant = [] utility_name = self.get_field_string('Utility') utility = self.utilities[utility_name] relevant.append('Utility') relevant.extend(utility.get_relevant_field_labels(self)) return relevant def apply(self, photo, setting, cache): info = photo.info utility_name = self.get_field('Utility', info) utility = self.utilities[utility_name] self.call(photo, info, utility) return photo def call(self, photo, info, utility): """This is decoupled from the apply method so we can overwrite it.""" photo.call(utility.get_command_line(self, photo, self.file_in, self.file_out)) class LossLessSaveUtilityMixin(models.LosslessSaveMixin, UtilityMixin): """For lossless JPEG operations, this has to work on the source jpeg files immediately, otherwise it makes no sense. So we need to overwrite the call method.""" format = 'JPEG' def call(self, photo, info, utility): """This is called by the apply method.""" format = info['format'] if format != self.format: raise Exception('%s:\n%s' \ % (LOSSLESS_JPEG_FORMAT_ERROR % format, info['path'])) system.call(utility.get_command_line(self, photo, info['path'], self.get_lossless_filename(photo, info))) def get_relevant_field_labels(self): """This should work like a save action. So it needs a filename and folder, while the file type is fixed (e.g. JPEG).""" return super(LossLessSaveUtilityMixin, self)\ .get_relevant_field_labels(['File Name', 'In']) #---Phatch class Action(LossLessSaveUtilityMixin, models.Action): label = _t('Lossless JPEG') author = 'Juho Vepsäläinen' email = 'bebraw@gmail.com' version = '0.1' tags = [_t('transform'), _t('size')] __doc__ = _t('Rotate, flip, grayscale and crop') utilities = utilities_dict(Exiftran(), Jpegtran()) def init(self): self.find_exe('exiftran') self.find_exe('jpegtran') icon = \ 'x\xda\x01\x17\r\xe8\xf2\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0c\xceIDATh\x81\xedZil\\\xd7u\xfe\xee\xbdo\x997\xf3f\ \xe56\x1c\xaeCR2IQKJ\x15\xb6\x1b&u\x92\x06F\x9dn^\xe5\xd8N+\x07\x08R$E\xba\ \x04\x90\x91\xa4Nb#\x0eZ@\x0e\x0c\xd5h\xd0\xd4\x89\x9b\xf4G\x1at\xf3R\xc5H\ \xd0:\x8e\xc4T\x85*\xcb\x91c9\xb5D\x8a\xa4\xc4u4\x1b\xc9yo\xdev\xef\xed\x8f\ \xe1p\xb1e\x8a5\xa9\x7f=\x7f\xee\x1b\xcc\x9ds\xcf7\xe7;\xdb\x9d\x01\xfe_\xb6\ &CCC\x00\x80\x8e\x8e\x0e5\x1e\x8f\xd3h4\xba#z\x95\x1d\xd1\xb2\x05\xd1u\x1d\ \x86a\xd0;>\xf6\xb1{\xaa\xd5\xea\x9b\xcdMM\xe7\x8e\x1e=\xbam\xbdt\x07l\xdb\ \xdaA\x94\xc2\xf3\\\xed\xa6\xdd\xfd\xbf\xd9\xdf\xdf\x7f\xdf\xd1\xa3G\xe9\x9e\ ={\xb6\xadwG<\xc0\x18#\x8c\xb1$\xe7|\x89s\x1e\\kOgW7R\r\x8d\xd1x<\x9e5<\xbdk\ dd$\x19\x8dF\x0b\xe7\xcf\x9f\xdf\xd6\xd9;\xe2\x01\xce\xb9\xde\xd5\xd5\xf5POO\ \xcf\xd0\xcd7\xdf|\xcd=Q3\x8a\x86\x86\x86\xa4\x1e\xd2[\xc2a\xa3\xa7\xaf\xaf\ \xaf\xa3\xaf\xaf\x0f\xbbv\xed\xda\xd6\xd9\x1b<0\xfaw\xab\x8fi\x00\x05\x00\ \xfe\xc8\xe1-\xe9\x91\xad\xad\xad\xd9x<\xde\xf2\xe2\x8b/\xbe\x11\x89D\x02\ \xcb\xb26l\xe8\xcef1?7\xd7\xc4\x18\x8b\x13\xa8\x86i\x9a\xcdmmm\x88\xc5b\xdb\ \x02\xf0\x0e\x0fH\tH\x89\xfb\xa4\xc4\x1d\x00p\xf2\xd9-\xe9\xf1\t!\xcb\x99L\ \xe6\xf7\x86\x86\x86\x06\x86\x87\x877\xbc\xd9\xdb\xdb\x8b\x87>q\x18\x99\xb6\ \xf6.EQb\x94R\xcd4\xcd\xcc\x03\x0f<\x00)\xe5\xce\x02 \x04 \x04\xcd\x00\xbe*%\ vak\xfa\x85m\xdbW#\x91Hw\x7f\x7f\xff=\'N\x9c\xd8\xa07\x1a\x8d\xa27\xdb\x0eEa\ \x19F\xa9\xc6\x18S\r\xc3\xc8ttt@U\xd5\x9d\x06@\x00@\x98\x89\xc4\x01EU\xff\\\ \x08\x98\xd7\xf3\xc2\xb1c\xc7P,\x16g\x84\x10A&\x93\xb9gpp\xf0\xa6\x91\x91\ \x91\xb5C(\x05!D\x8d\xc5\xe3=\xb5\x97\x94\x86B\xa1\x0c!\x84m\xcb\xfaM\x00\ \xa0\xb1\xb5\x1d\xa9t\xe6\x10\xa5\xf8\xa4[\xdd\x9cJO?\xfd4\xca\xe5\xf2l\xb5Z\ -\xc6b\xb1\xfe\xc1\xc1\xc1\xbbGGG\xa9\xa6i\x00\x00!\x04\xb2==\xa1\xb0\x11\ \xee\xc4\x8aKUUmH\xa7\xd3\x1ac\xdb\xc3p\xcd,$%\xc0\x14\x05\x99\x9e]\xba\x99L\ \x1eQ5\xdc\x06\xf9\xee r\xb9\x1cJ\xa5\xd2\xd5J\xa5\x92c\x8c\xd1L&s\xef\xd0\ \xd0P_=\x16z{\xfb08\xb0\'\xa6(\xacy\xf5`J\xd5p8Lw<\x06VA@\xc20M\xb4\xf5\xeej\ \x0b\x85C\x8fs\x8e\xf6w\xdb[.\x97!\x84(\x94J\xa51\xce9\xa2\xd1\xe8\xe0\xc0\ \xc0\xc0]\xa7N\x9d"\x86a`\xef\xfe\xf7\xa1\xa7\xaf\xaf%\xa4\xebi)%\x08! \x84P\ UU\xc9\xb6\xac\xdf\x0c@\r\x85D\xa2\xa9\x05\xcd\x9d]#\x8aF\x1e\x11\x1c\xa1M\ \xa8T\xc9\xe5r\xaf{\x9e\xe7)\x8a\xa2d2\x99C\xfb\xf6\xed\xeb\x19\x1e\x1e\xc6\ \xee\xdd\xfd\xd04\xbd\x892\xb6\x9a3\t!LQ\x94\x1b\x0c\xa0v\x10\xd2]Y\x92lN?L(\ \xee\xd7B\x91kR\xe9\x85\x17\xfe-(\x14\no8\x8eS\x96R\xc24\xcd=\x03\x03\x03w\ \x8e\x8e\x8e\xe2\xe3\x87\xeeBsSS7\xa5\xd4\xa8Sf\x05\xc0\xb6\x0b\xe9u\x15H\ \x00\x8a\xaa\xa1\xadww$\x12\x8b}\xc9\xb1\xac\x83\xd7\x8a\x87C\x87\xee\xc5\ \xd4\xd4\xd4\x85r\xb9|\t\x00\x18cj:\x9d>\xb4g\xcf\x9en\x00\x88D"]\x94@\xab\ \xef\'\x840\xc6\xd8\xce{@\xae{\x90@-\xa2\x01Dbqdz\xfa\xfa4C}\x8cs4\xbe\xfds\ \xd5j\x15B\x88\xd9\xe9\xe9\x99SA\x10p\x00\x88F\xa3\xfb\xf6\xee\xdd\xfb\xbb\ \x84\x90\x90\xa6\xeb\x1bbH\x08\x11\xf8\xbe/\xeaYo\xc7\x00\xac\xda/%\xa4\x10\ \x1b\xd6T\xba\x15Mm\x9d\xb7+*\xfe\x84\x07P\xaeA%kb\xe2\xd2\xc9J\xa5R\x00\x00\ J\xa9\x96N\xa7\xef?x\xf0W\x07L\xd3\xec\x94R\xac\xea\xf6}\xbf<>>\xee\x05\xc15\ {\xbf\x9d\x00 j\x86\x0b\x01\xb1\xb2\x02\x04\xe9\xae,\x8b54}\x86R\xfc\x0e!t\ \x03\x95\xc2\x91\x08&&&\xce\xe5rWW[\xcch4\xba\xbf\xb7\xaf\xf7AJH\x93\x94\x12\ \xf5\xef\xdb\xf3\xbc\xa2m\xdb\xbe\xef\xfb7\n\x80\x84\x10|\xd5x!8\x04\xe7P4\r\ \x99l_\xd20\xc3_\xe1\x81\x18\x80\\k\x02\xedZ\x037;33\xfd\xb3\xbae\x84\x10\ \xa3\xbb\xab\xfb\xe3\x94\xd26)%@\x08\x84\x102\x08\x82"\x00\xae(\xdb\xeb\xe8\ \xaf\x03@@\xae\x03!\x85\x80\xe0\x1c\x91x\x1c-\x9d\xdd\xfbT\x9d}\x99s\xc4\xd6\ \xd7")\xa535u\xf9g\x95J%\x07\x00R\x08\x84\x0c\xa3UU\x95\xd8\xba=\x81\xe7yE)%\ (\xdd^"\xban\x0c\x88u4Z\xff\x9cjiE\xb2\xa5\xf5.\xa6\xe0\xd3<\x00\xa9S)\x1a\ \x8d\xe2\xf2\xe5\xa97\xf2\xf9\xc2/\x80ZATUU\x12BV;O!D\xe08N\xf1\xb5\xd7^\x83\ \xe7y7\x08\xc0z\x83%\x07\x0f\x825op\x0e\x10\x8a\x96\x8e.\xcd\x8c\'\xfe\x8cP\ \xfc\x06P\xa3R\xa5R\x01\x80\x85\x99\x99\x99\x93A\xc0=!$"\x91(\x18[;J\x08\x11\ \xd8\xb6]:}\xfa\xf4\x8d\xf3\x006x@\xc2Z*c\xb9\\\x82\x14r\xc5\x1b\x1c\xaa\x1e\ BKgw:d\xe8\x8f\t\x8en)\x01J\x81\'\xbe\xfe\x17\xfe\xd8\xf8\xd8h\xa5R\x99\x91R\ Ba\x84\x84\r\x03!=\x04R\x8b\x01\xc7u\xdd\xe5\\.\xb7-\xe37\x05P\x0f\xe2:\xf7}\ \xc7\xc5\xc2\xe5Ix\x8e\xbdF/\xce\x11I$\xd0\x90i\xbbUQ\xe9\x17\x04\x87\xf1\ \xd3o\x03_~\xf4K\x98\x9d\x99\xf9e.\x97\xfbo\x80@\n!\x17\x17\xcb\xc4\x0fj\x19\ \x87s^\r\x82\xa0R*\x95\xb0\xb8\xb8\xb8\xc3\x00V\x02R\xbe\x9d\xfb\x90\xb0\x97\ \xca\x8b\xf9\xd9i\x9f\xf3`]`K\xa4ZZ\x11kh|\x88P|"\x1c\x8f\xe2\xd7\x879\x00\ \x14&&&^v]\xafb\x18\x06U\x14\x05\x8c1\x08!\xc09\xb7]\xd7\xb5\x96\x96\x96066\ \xb6\xc3\x00\xea8\xd6e\xa1:\x18\x00?*\xe5\x16~\xb2\\,\xac\x03\xc7A(ES[G8\x1c\ \x8d|\xc1*-\xdf\xfa\xd5?\x04\x06\x06\x06\xc5\xf9\xf3\xe7O\x95J\xa51M\xd7!\ \x84\xc0\xdc\xfc\x02\x82 \x00\xe7\xdc*\x97\xcbv\xb9\\\xde\x96\xf1\xef\x02@\ \xae\x00\x10\x1b\x8c\x94R\x00\x84\xccz\xae\xff\xb5\xfc\xec\xf4\xac[\xb5\xd7\ \xf6p\x01-d\xa0\xb1\xb5\xbd[\xd5\xd5\xc7\xa4@\xfa\xce_{\x13\x95\xca\xf2\x84S\ \xb5_\xd7T\x15\x9cs$\x13q)\x84\xc0\xc2\xc2Bebb\xc2\x99\x9c\x9c\xbc\x11\x00V`\ \xacz\xa0\x0eB\x02\x00\xed?x\xf0\xa4\xbd\xbc|\xac0?\xeb\xd72S\xbdVp\x98\x89\ \x14\x12M\xcd\x1fa\n>\x7f\xf7G\xa0\x02\xb0\xdb\xda\xdb\n\x8a\xaa \x08\x82\ \xa0P(x\x85B\x01\x9e\xe7\xe9\xba\xae\xd3\xed\xce\xc3\xc0&\x17[RJ\x08\xce\x01\ \xac\x8c\x99\xb5\x1cN&\xdf|\x03\x82\xe3[K\x85\xfc\xfbC\xe1\xc8o\xc7R\rk{@\ \x90lNS\xd7\xb6?U)\x97\xce\x10%y\xdcs\xbd\xeeB\xbe\x80b\xa9\xf8\xe3\x8b\x17/\ \x8eG\xa3\xd1\x87\xcf\x9c9\xd3\x9f\xcf\xe7o\xd14\xed\x85T*\x85b\xb1x\x03\x00\ \xd4\x83t\xc58)\x05 \x01\xc6\x18(C)\xf0\x82\xaf\x95\x16\xe6\xf6\xea!\xa3[3\ \x8c\xd5"E\x19C*\xdd\x1a\xf7\xbd\xea\xa3G\xfe\xc0\xe7\xdf\x7f\xfe\x85\xfd\ \xcf=\xff\x9c\x08\x85B\xff\xea\xba\xee\xa8\xe7y\x1f\xcd\xe5r\xfd\x91H\xe4\ \xcel6\xfbC\xdb\xb6\xb7\xd5\xcdm\x89B\xf5lS\x17B\x80\x85i\x9cvl\xfb\xc9Rn\ \xce\xe5\xbe\xbf\xa1\xd5\xd0\x8d0\x92\xcd\xe9\xc1\xceV\ \x9f\xff\xd1\xfc\xfc\xfc\xcb\x8b\x8b\x8b\xbf\xafi\xdaUM\xd3\xfe!\x9f\xcfW\ \xae\xd7n\xbf\x83Bkc_m\n\x03\x00\x10\xb2\x91: \x14\x08| \x08j4\xa3DBr\x1f\\\ \x10p\x0e\xcc\xe5\x00\xcf\xe3hL\xe9\x08\x878\x02_\x02\x040"&\xf1\x1c\xfb\x93\ \x1f\xd7\xdc\x94\xcc$\x93\xc9\x07=\xcfK\x03\x90\xaa\xaa\xfe\ \x17\xa5\xf4\xbb\x8b\x8b\x8b\xc7M\xd3\xdc\xd4\xf8k\x03\xa8-K\x8em\xcdy\x8e\ \xc37\xbc\xb9\xee\x0e\x8a\x10\xc0\xb2\t\xd1\x15=\x01 2q\xb9\xea\xe5\xe7\xcby\ U\x95\xa2b\x13:y%\xd6(%\xd7\xa2!o\xc9*.,\xb9J\xad\x9d"\x04\xe0A\xc0\xa4\xc4\ \xe1\x93\xdfqGG\x0e\xe7\x9e\x8a\xc7\xa3/i\x9a\xd6.\xa5\xac\xba\xae{\xc9\xb2\ \xac+\x8a\xa2xo\xff\x99jK\x00\x88\x04@\xf0\xed\xc0\xe7\xff\x0c\xc9\xaf\xf1\ \x91\x9aP\x02,-\x82^\x9a1?\xab(\xe4OG\xcf\xfa\x8b\xcf$#\x9fy\xf4p\xe1\xd5\ \x7f\xfa\xb1\xd9~~\x1c\xdf\xa3\x14\xbb^\xbf\x80oj\xc4\xf9\xa6m\x81\xd6\xe3\ \x91\xd0\xda\xe8\t w\xf2Ya}\xe0\xe1\xc5\xb3\x00\xce\xae\xd7\xbf\xdd\xfb\xa2-\ \xc9\xf0\xf00\x1a\x1b\x1bo3Ms\x9a1&\x1b\x1a\x9a\xfe\xbe3\xfb+\xa9\xee\xec\ \xae\xdbS\xa9T\x89R\xea\x99\xa6\xf9P<\x1e\xbf\xf1\xc6\xbc\x17QU\x15\x9a\xa6\ \x99\r\r\rG5MsUU\xf5\x1b\x1a\x1aN777\xbf\xa5\xaa\xaaT\x14e\xd24\xcd\xfd;\xf5\ \xb7\x82\x1b"\xb7\xdcr\x0bL\xd3\xcc\xa6R\xa9g\x0c\xc3Xb\x8cIJ\xa9d\x8c\x15\r\ \xc3\xf8\xa2a\x18!\xc30n\xd8\xf9\xdb\xbe\xde\xae\x8ba\x18m\x86a\xdc\xc19\xbf\ 5\x08\x02_J\xf9J\x10\x04?\xd4u}qyyy\xa7\x8ey\x87\xec\x18\x80\x15Q\x01\x84\ \x01\x08\x00\xd6\xcazC\xe5\x7f\x01O\x0b\xe24\x81\xa5^\x08\x00\x00\x00\x00IEN\ D\xaeB`\x82_\xcbCb' phatch-0.2.7/phatch/actions/mask.py0000644000000000000000000002062611346363116017153 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t from lib.openImage import open as open_image from lib.imtools import has_transparency MASK = 'http://photobatch.wikidot.com/local--files/action-mask/mask_torn.png' MASKS = [MASK] #---Pil def init(): global Image, ImageMath, imtools import Image import ImageMath from lib import imtools def put_mask(image, mask, resample_mask, cache=None): if cache is None: cache = {} resample_mask = getattr(Image, resample_mask) id = mask + '_w%d_h%d' % image.size try: mask = cache[id] except KeyError: mask = cache[id] = open_image(mask).convert('L').resize( image.size, resample_mask) if not has_transparency(image): image = image.convert('RGBA') else: if has_transparency(image): image = image.convert('RGBA') alpha = imtools.get_alpha(image) mask = (ImageMath.eval("convert(min(a, b), 'L')", a=alpha, b=mask)) image.putalpha(mask) return image #---Phatch class Action(models.Action): """Apply a watermark with tiling, scaling and opacity""" label = _t('Mask') author = 'Stani' cache = True email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(put_mask) version = '0.1' tags = [_t('filter')] __doc__ = _t('Apply a transparency mask') def interface(self, fields): fields[_t('Mask')] = self.MaskFileField('Daisy') fields[_t('Resample Mask')] = self.ImageResampleField('antialias') icon = \ 'x\xda\x01\xfa\x07\x05\xf8\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\ \x00\x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\ \x08\x08|\x08d\x88\x00\x00\x07\xb1IDATh\x81\xd5\x99\x7fL[\xd7\x15\xc7\xbf\ \xf7\xbe\xe7g?\xdb\xd8\x06\x1b\x9eqL\xc0\x9d\x94&\r\r\x9a6-\x83\xb6S\x97?\ \x82T\xa5\x9a\xd2&lK\x1b\x08$\x83-\xd5\xb4\xae\xdd\xa6\xfc1m\x7fD\xda&%\xaaR\ eI\x13\x9a\x04X\xda,\x0bm\xaaf[\xd6\xa6\xea\x94\xa5K\xd6D\xa2\xdb\xdaf\x94\ \x84b(\x04b\xc06\x04\x1b\xffz\xef\xde\xfd\xc1\xf0 \xc1\xd8\x06\n\xf4\xf3\x97\ \x9f\xef\xb9\xf7|\xcf\xbd\xe7\xbew\xdfy\xc0\x17\x1c\xb2P\x03mo,\xaa\xf4\r\ \xfb\xceSB\xa2\x84\naJ\xe9\x1dB\x89\x9f\x122\x98k\xb5^$:\xf13\x81\xc1\xc7\ \x18\xf56\xd5}\xda\xbbP~\x17,\x80\xcd/\xe6\x9e\x0c\x06\x83O\x0b\xa2\x08\x81\ \x10\xa8\xaa\x06Q\'BQ\x14\x88\xa2x\xb7y\x18\xc0\r\x80\xff\xb3\xa9\xa6{\xe7L\ \xe3\xd5\x9ep\xaf\x0f\x99\xf1akU_d6\xbf\xd3F\xdez\xc6-\'|\xa1\xf5"\xc8\x03\ \x16\x9b-\xc4\x18\xac\x14\xb0q\x0e+!\x18=Q\xe3\xdd\x9bj UM|\x83\x12\x8a"\xb7\ \x1b\x84\xa4\x9d\x17\x13\x80/s\x10\xdbL\x8d[\x0e9\xf6\xf7\xf6\xdf~^6\x19\x87\ \xea\x8e{\x1e9\xb1\xd3\xdb\x91j\xa0\xa4\xa7o\xbd`9\x17\x8d\xc5\x1e\xb7\xe4\ \xe4\xc0 \xcb3\xcd\xda\xdf\x9aj\xbc\x8f\xa6\x1a\xa8\xf2\xd7\xfa\x84\xaai\xe2\ \xca\xa2\xa2t\xe2\x93\xc4\x13\t\x8c\x87\xc31\xbd\xa4\x7f\xc7`1>\xd7\xfcT\xd7\ \xcd-\x87\x1cG\xfc\xc3\xfe\x06\xce9\x00@\x96\x8d\tG\xae\xfd\xf1\x93\xf5\xbdo\ \xcf\x1a\xc0c\xfbL\x9f\xc8z\xfd\xfd\x16\xabuFg\x9a\x9a\x08\x04G\xeftRJ\x86\t\ \xc8\x80d\x10\xdf\xe5y\x96\xf3\xadU]\xa3\xf5\xa7V9:;;\x87D\x9d\x88\x15\xae\ \x15\x19\x070\x16\x1aCd<\x82\x82\x82\x02p\xce\xe3\xb1x\xec\xaao\xc0\xf7\x08\ \xe3l\x9a\x9d$I\xdcf\xb3\xef>\xb3{\xe0H\xca\x00\xb6\x1e\xce\x7f\xcfl2?\x9c\ \xcaY4\x1a\x85\xcf\xe7\xc3\xca\xe2\x95\xe0\x9c\x83i\x0c\xa2(2\x007\xb9\xc6n\ \xf5\xdf\x1e\xd8\xe0t:!\x08B\xc6\x01\x04G\x82\xb0\xe4X\x92}FGG\x11\x08\x04\ \x00\x00\xa2\xa8\x83$\xe90>>>q-\x88\xb0\xe5\xe5\xed}\xed\x99\xc1_L\x1d\x83N\ \xfe0\x9b\xcc\xdd\xe9\x1c\x9aL&\x10\x10PB\'S\x8c\x02\xb8\x9f\x81o`\x8cg%\x1e\ \x00\xe2\xb1\xf8\xb4\xfdb\xb5Z\xe1t:a4\x1a\x91\x9f\xef\x80\xa2(P\x9c\n\x04A\ \x80\xb3\xd0\tUK\xfc\xbc\xea\xb7\x8ei\xab\x90\x0c\x00\x9c\xf4\xcf\xe6L\xa04u\ #\xe7 \xe0Y\x89\x07\x00UU\xa1\xaa\xea\xb4\xffdY\x86\xa2(0\x18\x0c\x00\x00\ \xa3l\x84\xdb\xed\x86(\x8a\xc8\xb5\xda\x88\xde`hx\xea\x98\xab\x11|"{\x92;\ \x95\x13\xd6Of\xbb\xabR\n\x83l\x98\xb1\x89q\x06S\x8e9\xeb\x00$I\x82$Ii\xed\ \xe8\x94\xc9\x13u:\x00\xf8^\xedI\x8f>t\xc6[\x97\x0c\x80r\xda\xc7I\xeaY\x14(\ \x85Q6\xa6p \xc0j\x99y\xf3\xa7\x821\x06\xb39\xfb\xa0\x93pT\x9b\xc6=c\xa4\xfe\ \xe8}\xd6\xc1\xf1\xc0\xf3zY\xbf\xc1(\x1b\x1f\x9a\xfb\x88\xd9\x91PU\x88\xa2\ \x80YW==\x83bO\xe0\xd6\x90 \x08:\x93\xd9\xb4P\xda2Bw\xefs&{8y\x96\xeat\xba\ \x98\xa2(\x19\xe5\xe2\xa2B\xf0;L\x1c9f\x84\x13\xbc\xda\xb4\xa3\xeb\xf7T\xd5\ \xb4X \x18XDe\x99\xc19\xff@ \xecA\x0e\\\x9b\xa1\xb9;A\x85\xdd\x00@\x05*\xf8C\ \xa10b\xf1\xd8"K\x9c\x1d\x02\xfaSU#\x03R4\xf6M\x80\xbc1\xb5\x8dS\xd4\xbf\xfa\ t\xe7\x1d\x00\xa0T\xa0\xbd+\\.\xe8%\xfd\xd2(M\t_A\x08\xfdAcC\xffx\xb1\xb7k\ \x0b\x07\xff\r\x00\x15\xe0M\xcd\xdb\xbd\xefLZ\x91\xcd/\xe6\xbe\xc44\xf6\xfd<\ {\xde\x12\x8aM\xc9\xa0,\x1b\xbft\xb8\xeaz\x08\x00v\x1es\xe7\x1d\xdf\xd9\x17\ \x9c\xfa\xd4\xa4T\xc0\xc7\xb1x\x0c\xe0\xd9?I\x17\x81\x82\xf1H\xa4z\xf2\xe2\ \xf8\xae\xbe\xc0\xdd\x8f|*\x89\xba\x0fL&\x13\x90\xfe\x0c\xbf$\x10\xb0\'gk\ \x17\xd5<\xe9_\xa6\xb1\xe5)>\x13hkU_D\x10u\xb7\x96ZH*8\xc1\xcb\xb3\xb5\xff\ \xef\x94\xc4;\x17CL\xb6\x10\x82\xb7\x9a\xab\xbbO\xcff3\x11\x00A\xcaw\xce\xa5\ \x82\x03\x03T\xc4\x8etv\x14\x00\x08\xc7r[\x01\r\x8co;\xb6\xcd\xebKg8\xb1\x02\ |y\xad\x00\x07\xdf\xd7\\\xdb}1\x13[\n\x00\\\xd4\xe6\xbd\x02f\xc1\x01\xbbX\ \x02C\xd4\x89\xa8_\x07\xa6\xcd\xed\xceF\x80\xb6\xb0l\xfae\xa6\xf6\x14\x00BRN\ \'\x00mN\x1e\x01\x88\xc4\x80\x12\xf1a\x08!\x07"\xfa\x01\xdcQ\xfb0t;\x005,!\ \xcb7\xcd\x08%l{k\xd5\xf5x\xa6\x1d(\x00\xb4V]\x8fs`0K\xddIV\x1b*\xf1Q\xcf\ \xdf1\xac\xff7\x08!(P\x14h\x88`\xc0\xdf\x85\x98_\xc6]U\x92\xd9\xf8\xd9\xb1\ \xea\x9e\xf6l|\'_6\t\xf0\x1e\x80D6\x9d\x01\xc0\xa3/GG\x7f\x1b\xe2R\x00\x18q`\ \xb2RS\xe8*\x84\xd1d\xc0\xc0X;\xc2>\x02\xa6\xa6K)\xf2\x97\xa6j\xef\xa1l\xfd\ \'\x03h\xaa\xf1~\x1b\x1c\x17\xb3\xe8;\xc48\xfd\xaa]-=z\xf3\xe3\x9e\x1f\t9\ \xf8\xee(z\x9f\x89\xf4\x14\xb4\xb1\xb8\x08B\x08\xf2\xecv\xe8$\x1d\x86\xa2]\ \x18\xf6\x05\xa1\xa5N\xa9a\xceX\xdd\\J\x1b\xd3j%\x04\xc4\x9fyW\xfeQ\xcb\x8eO\ \xdb\xc6\xfa\xe8+\x15\xca\xf6\xe8\x7f^\xb2\xbd\xfe\xda\xb3\xbd\x87O\xbf\xf9~\ \xb9\xaf\xcd^\xab\x8e\x9a\x13\x04\x04\x85\x85\x85\xb0Xr@\xf5*\xfa\x03^$\x82\ \xf7\xa6\x14\x01\xabo\xae\xed\xbe\x9d\xad\xf8{\x02\x10%\xf1\x87\x9c\xe38\x80\ \xb4\xafh\x9c\xd3\x0f\x01`\xcf\x9e=\xffp:\x9d+GFF\x9c\x00\x806$\xde:\xf2~\ \xcb\xd5\xb3c\xebb\xfd\xf9}\x94\n\xb0\xdb\x1dp8\x1cp\xaf(D0\xf1\x19\xc2\x83\ \xffO)\xceq\xfcDM\xcf\x1b\xa9=e\x11@\xe3\xb6\x1b\xc3\xcd;\xbc\xbb\x8a\xbd\ \xde|J\xe8\x83\x84\xa3\x81pr\x1a\xc0\xd0=\x1di\xf2\xf8\xa1\xb5\xb7\xb7\x1fmh\ h\xd8\xeer\xb9&\xeb.\xfc\xc6\xc5\xee\x8eS\xfb\xae\xad\x1d\xefp\x9de\x89\x89\ \x8a\x1d\xa1\x14\xb2\xac\xc7Pd"\xa5X\xd8\xd0O5\xe9\xc7s\x15\x0fd\xfa}\x80\ \x83\xd4\xbd\xe2Y\xc58\xf9\n\xe5|-\x80"F\xf8\xf9)\xe7\x14r\xe0\xc0\x81\xe7.]\ \xbat\xf9\xec\xd9\xb3W15\xd3\xd7Bz\xec\xa1\xafW\xdbK\xc3\x87EkH\x07\x00\x81\ \x80\x1f\x8cqp\xbf\xbb\xfdO\x8d\xed\xeb1\x8c\xb1\xf9\x04\xb1 l\xdc\xb8\xd1t\ \xf0\xe0\xc1\x17l6\xdbL5\x7f\xb2jc\xc9\xeam\xbf\xfaZom\xcb}\xbc\xb6\xc5\xc3\ \xbf\xb3oM\\X%\xecB>\xe6Q\xdd\xba+\x85\xe6\xc3\x85\x0b\x17\xc2\x0e\x87#\xbaf\ \xcd\x9aU\xb8we\xf9\x8d\x0b\xdd\x1d\xa7\xf6O\xa4T\xdco\x8c_\xfe\xf3\xd0!-\ \xa6\xbd\x8b\xa1\xd4\xa5\x93E\xe5\xca\x95+\xf2\xb9s\xe7^.))Y\xbfu\xeb\xd6\ \xd4e\xea\xb5\x90\xb0\x12\x0f\xa0\x04\xab\x01dW\xce\xfe\x1c\xb1WTT\xbc]^^\ \xbe\xb9\xb8\xb8\xb80\x03{\x82\x05\xfc>7_HNN\xce\x9b\x82 \\\x93$\xe9I,\xa3Y\ \xcd\x88\xb2\xb2\xb2?\xba\\\xae \x80\x9f\x00p/\xb5\x9e\xacX\xb7n\xdd\xfe\xf2\ \xf2r\x0e\xe0\x0f\x00*\xb0\x807\x85\xcf\x1d\x8f\xc7\xb3q\xd3\xa6ML\xaf\xd7\ \x7f\x02\xa0\x06\x98\xdf\xedp\xb11WVV\x86\x15E\t\x03\xd8\x0b\xc0\x83e\xb4)\ \xd3RVVv\xb9\xb4\xb4\x94\x01h\xc1D\xea|\xa16\xae\xa0(J;\x80\xbf\x02x\x02\x80\ \xbc\xc4z\xe6D!\x80G\x01\xe4.\xb1\x8ey\xb1,r\xfe\xbf\xac\x8b\xb4L\xaa\xd1\ \xdf\x86\x00\x00\x00\x00IEND\xaeB`\x82\xd5\xb6\xd7\xb5' phatch-0.2.7/phatch/actions/maximum.py0000644000000000000000000002046411346363116017675 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageFilter, imtools import Image import ImageFilter from lib import imtools def maximum(image, radius, amount=100): """Apply a filter - amount: 0-1""" image = imtools.convert_safe_mode(image) maximumed = image.filter(ImageFilter.MaxFilter(radius)) if amount < 100: return imtools.blend(image, maximumed, amount / 100.0) return maximumed #---Phatch class Action(models.Action): label = _t('Maximum') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(maximum) version = '0.1' tags = [_t('filter')] __doc__ = _t("Copies the maximum pixel value") def interface(self, fields): fields[_t('Radius')] = self.RankSizeField(self.RANK_SIZES[0]) fields[_t('Amount')] = self.SliderField(100, 1, 100) icon = \ 'x\xda\x01\xba\x08E\xf7\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x08qIDATh\x81\xd5\x99{\x8c\\U\x1d\xc7?\xe7\xdey\xcf\ \xcev\xf6\xbd[\xfa\xb0\x84%Bk\xe5Q\x82\x956\xa1\x98\xc66\xf5\x01!\xd4*Z\x81\ \x18\x95\x87`\x02$\x1acz\x0b\xc4\x88\x98(\x1a\xb4Q"V"\xda\x14\x8d\x84\x02\ \x02Q\x03RM\xd1j06\xe9c\xd7n\xdb\x9d\xd7nw\xe7\xb53s\xef\xdc\xc7\xf1\x8f3;\ \xddmw\xdb\x99e\xed\xca7\xb9\xd9\xbds~\xe7w\xbe\xdfs~\xbf\xdf9\xf7^\xc1\x1c\ \xb0s\x94-\xcbKW\xee:\x15\xfcO\xa2\x8a\xf9\xbc\x1e\xe0\'F\x07\x85\xb9\xf8z\ \xb7\x10\x8d\x18\x19\x12\x9f\x96\xe2\x83\x9e`-\x82\xb5\xa52\xdb"a4\tT\xab\ \x80\xcdD(\xc2\x16c1o\xfeo\xe9\x9e\x0b\xdf\xf9\x1a\x8d,qQ\xe5\x019\xc2\x03\ \x9eF\x9biB:\x03\x95\n\x8c\x8dB(\x02]\x1d\xa0\xe9\x84{|\xe8\x17\x8b\xf4T\xcc\ \xba\x02\x8f$Y\xefi\xecq]\xfa\xb2\xe3\x90\xcb\x83\xe7Q\x9e\x98\xa0(\xa1\x10\ \t\xd1\xe6INF[\xf8\xb9\x9b\xe3g\xcf~\x94\xd2\xc5$>\x89\x19\x05\x18\x19nF\xb2\ \xb7T\xc2w\xea\x14\x04\x83\x8c\xb6-\xe2\xce\xef_\xc9K\x17\x9b\xe0\x85p\x8e\ \x00#\xcd*\xe0@\xc5$2t\x1cb-\xfce\xc9\x1a\xd6\x1b\x02o\x01\xf8]\x103\xe5\xc0\ \xe3R\x12I\x0cC$\xc2\xc0\xd3\xd7q\xc3Eg\xd5\x04\xb4\xa97F\x86\xd5\xc0\xe6B\ \x01\x1c\x07\xaf5\xc2\xba\x05\xe2\xd50\xa6\t\xc0c\x13 \xf2y\x88Fy\xf3\xc9\ \x0f\x90Y\x18Z\x8dc\xba\x00\xc1:$\x94\xcb 4\x1e] NMA;\xeb\xfe\x06\xcb\x86H\ \x94\xca\xd3\xd7\xf0\xa7\x05a\xd4$\xea\x02\x1e\x1f%\x06\xb4\x9b\x15\x88\xc58\ \x82@. \xaf\x86Q\x17`W\x89\x038\x0e\x00\xce\x02\xf1i\x1au\x01\x8e\x8f\xb6\ \xc9\xff\xf5\xf7\xc8\xec\xc3\xd4}\xc0F\xc3\x07\xb1\x18\xb8\xaeZ\x8d\xf7\x02\ \xea+0\x96\xa7\xea\xb8\xe0\xba\x10\x0e\xd3k\xc8s\x12\xfc\xff\x12gH\x06\x18\ \xacT \x14\x06 \xa6eX\xb9P\xa4\x9aA]\xc0\x0f\xfb\xb1\xaa\x16Y\x01x\x12$\xdc\ \xb8p\xb4\x1a\xc7\xb40\xa9\x94\x19\x01\xc8\xe7@\xc2\xad\x0bC\xa99L\x13\xe0\ \xb8\x0c\x9a&\xb4\xb6\x02\xb0\xfe\xb1\x04K\x17\x84U\x13\x98& \xe8\xe7\x85\ \xf11\xd0t0M4G\xe7\x8b\x0bE\xacQL\x13\xb0\xb2\x95\xdd\xb9\x1c.@.\x0b\x08\xee\ 5Fh\xb9\x18D\x8cQ.\x9f\xcbX\xd3\x04\xdc\xdf\x8f%4\x92fE\xed\xc8\xd2\xa3MH\ \x1e\x9c?\x9a\xb3\xc3\xad\xb2N\xb7\xb9\xa4\xd9~\xe7\xd4z\xdd\xcf\xbe\xd1Qh\ \x89A\xa1\x08R\xf2\x90\x91d\xd9\xfc\xd0\x9c\x1d%\x8b\x83\xa6\xc7\xc3\xcd\xf6\ ;\xe7\x91\xf2\xab\xff$~<\xc5\xd8\xcaUh\x99\x0c,Ui\xbc\xbf\xaf\x87\r_\x12\xd8\ 391\xd2tk\x82~\t\xbdR\x90\xc1\xe1\xb0\xb1\x98\xd3\xcd\x92y\xf0(\xaf\xc7\xe2\ \xec4\xbayk\xce\x02\x00n}\x9d\xa1\xc5},\xf7$\xb4\xb4@8\x0cH~l\xf4q\xcf\xa4\ \xcd\xb7\xc7YdV\xf9<\xf0i\xe0\xfa\xb3|y\xc0\x1bH~\xb4\xa3\x97\xdf\x88\x06\ \xcfV\xf7\xbe\xc35\x9a\x8f\xe7\x17\xb7p\xed\xd7\x97\x93\x9d\xb3\x80\xdb\xff\ \xcc=\x96\xc5SW\\\t\xe9\x14\\2\x19\x99\x92\xafhp\xc0\x13|\x19\xd8\x06D\x1a\ \x18\xe3\xaf:\xdc\xfe\xcd^\x8e7B\xe8s\xfby\xa9\xbb\x8b\xc8w\xfb\xb9\xa9\x11\ \xe13\x9ew\xfa\xff\xc0.\xc7\xc6*\x16\xd4\xe1\xaeX\xac[?\xe9\t\xde\x06\xeej\ \x90<\xc0Z\x17\x0e\x18I\xd64b\xec\xc6\xf8l*\xc5\x87\x1e\xc9\xb0\xad\x11\xfb\ \x19\x05\x18\x06\x9e\xcf\xc7\x9eTB%s\xb9\x0c\xae\x07\xcc\xfd\x80\xd7\x85\xc6\ ~c\x98\xed\x172|n5Y\xdb#%\xe5\x99p=\x1ff%$\xe0~\xd3\xc6\xc9\x8eAg\'\x8cdxW\ \x0f\t\xe5\n\x01\xa9\xb1\xdbH\xf2\xcac\xa7\xcf_.\x85$\xe3z\xacj\xc4\xef\xac\ \x02\xf6n$\x1f\xf4\xf1\x8bTZ%JK\x0b$\x13\xaa\xb4zsx\xc5%\x80T\x1a\xca\x1569\ \x0e\xff\xda\x99b\xf3l\xb6\xc1\x00E\t\xf1\x1f\x1c#8g\x01\x00r\x9c\xbb=\x97\ \xe2\xd8\xb8\xca\x85Eq\x95\xd4CC\xb5\x90j\x02\xe10\xe4\xf3\xa0\xfb@z\xb4K\ \xc1\x8b;S3\xd7}_\x80\xa8O\x87\xf1(\xb1w%`\xefV\xaa\x91\x00\xdbM\x13l\x1bZ\ \xa2\xb0|\xb9:\xec\xe9\rf\xc3\xd4\xd5\xea\xee\x81\\A\xbd\xdd\x06t)\xf8\x8e\ \x91\xe6{RN\xaf\x86\x1a,\x03<\xfa\x18\xbf\x90\xff\x86\xbe\x0f\xac\xff%\x95\ \xae.B\x97]V\xdb\x13\x00\xd1PO\xa8Z\x10\x08\xd4F\x92p\xec\x18\xf4\xf5\x81?\ \x00\xc13\x01\xf2\x1cc\xdci\xac\xa4z\xd7[,\x0e\xc78\xde\xd5C\xce\xe8\xa5\xe7\ B\xfe\x1b\x9a\xc7p\x84\x9f\xe6\xf3p\xea\x94*\xa9\xb3\x91\x9f)7\\\x0fl\xb7v#\ \xd4\x19K\xf3\xc1\xf8x\xfd\r\x08\xc0gh\xe7\x05\xe3\x10\x01\x02\xechYD\x00\ \x18h\x84[C\x02^\xbb\x85\xfbCa2\x12%\xa0P\x00)\xd5U\'\xea\x82i\xaa/6\xae;\ \xfd\xf7\xc9p\xb3m\x08\x86\xc0\xa7\xab0\x9a\x98\x982\x88`\x13\x1d\x1ah\x1a\xa9\xee.Xr\t\x04\x82\xc8b\x01N\x8f\xaa+\x9d\x06\xab\n\ \xa5\x12\x9c<\xa9\xc2C\xd7!\x99\xc4\x13:\x8e?\x08R@k\x8cW\xaf\xbe\x9a%+.\xe3\ \xa9\x8a\x85\x9dL\xc2\xf0\xb0\x12:Y\x17\xa5\xcb\x8e\xb3\xcb\xeb\xbc\x08\xe8\ \xee\xe6\r\x9f\x1f\xc6\xc6 \x1c\xa4\xb8v-\xe5\xa5\xcb \x1e\x87P\x08\x02\x01\ \xa4\xeeCV-5\xa3\xa1\x10Ew5\xa1H\x88C\x81 86\x08\x8d\xce]W\x91\xf8\xf5z\xee\ \xbb\x1b\xc2\x12\x063i%\xd8\xae\xd6\x04\xc0\x86\x9d\x19\xbe5\xef\x02rY:\x1d\ \x1b\x16\xf7A0@V\xd7\xc8\x85C*\x89#\x112\x7f\xff\x02Z\xac\x95\xd7:: \xd6\n~\ \x1f{\x0f\xae\xc1\xb6,\x02B\xaa\x98\x97\x1e\x95I\x7f[\xb7\xe2\xee\xdbB\xbf\ \xaes\xc2\x93\xeak\xe8\x14|\xcd\xc8\xf0\xd0\xbc\npe\xed|"\xa0\\A\x08\x9d\xa3\ B\xd4\x92YWm\xc1\x00n0T\xef\xd2\t\xe0\xf7\xa3wt\xd6\xf2C`M\xf5)\x04r\xdd5\ \xac\x0c\x87\xb0FF\xea;\xb5\x82\xe4\x89\x1d)v?\x91&:/\x02\xaaU\xfe\x06*^\x1d\ \x97\x18\xa8z\xed\xf7\x81\xed\xa8\xb7\n\xc1\x10\xb66\xe9Y\xd2^\xfb\xeb\xd4\ \x93[\x928\xdb\xef\xc3\xbd\x94V]\xca\xb5fE\xe5C\xb5:M\xe0\xf6\xb2 k\xa4\xd9o\ \xa4x\xc8\x90g\x8aO\xd3\x02\xf4Zy\xf3\xf9@\x80\xe6\xb9\xbc3\xd9\xe6y\xca\x9f\ \xae\x9d;[\xba\x9f\x9c\xdf_\x1f\xf5\x9d\xb3\xdb\x01\x1e\xed\xe7P{\x07\xbfK$`\ p\x10\xb2Y\xb5\x8f\x00H\x89\x1f\xf80\x82\'\x18a\xef\x9c\x05\x04}\xd8\x8e\xa3\ \xaa\x8d\xa6\xe3T+\x1c\x03\xb51\xd9\xb6\xaa\x1a\xc5"}\xc7\x06\xa0T\x06\x04e\ \x80x+\x9ae\xd57\xae\x7f\xcf\xe6\xff\xb7\x1b\xb9%\x12\xe1\xe0\x89!\x188\x06G\ \x0eC"\xa1\xc4\x98\xa6\x12$$\xd7O\xda7\xb5\x0f\x00d\x07\xbb7\xe8C\xab!6\x88\ \xd6q\xfc\xb4=\xda\xd1\xe7\x9dX\x81\xd6u\x94\xaaY\x10w<\xf3\xbex\xfa\x95U\ \xfdW|d\x1c-\x9b\xc4edh\xdb7\xd6-=\xfd\xb2w\xdd\xb2\x1bNb\xe9e\xfc\xad\xf9\n\ \x14g\x1d\xe3\xe5O\xb0\xe6c/\xf2\xa9\x89\tv\x8f\x8c\x10\x0cGj\x15.\xa8\xf6\ \x9a\xde)\xcf\xd7M\x0bH\xfe\xb1kg\xe7\x121p\xe9\x12\xf3\xf7Om\xe1\xc4m\xb7\ \xdd\xa4\x8f-\x1b~\xfb\xba5\xb8\xfe.\xba\x9f\xd90\x94\xbfcw\xdbF\xfb\xf4\x8a\ xu\xac\xc7\x8bv\x0f\xfd\xc3\xed\x10f\xbb\xa6m.\x0e,MD-/,\xed\xc2\x00\x1c<\ \xef8\xfb>\xce\x1e`\xcf\x8d\x06>\xed\xfd\xdc\xe7ylw\x1c\xe2\xa1\x10\xaf\xee\ \xba\x8a\xbb\'\xed\xfe\x0bf.D\xbc\xac\x02\x0bc\x00\x00\x00\x00IEND\xaeB`\x82\ \xd5\xad&f' phatch-0.2.7/phatch/actions/median.py0000644000000000000000000001604311346363116017453 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageFilter, imtools import Image import ImageFilter from lib import imtools def median(image, radius, amount=100): """Apply a filter - amount: 0-1""" image = imtools.convert_safe_mode(image) medianed = image.filter(ImageFilter.MedianFilter(radius)) if amount < 100: return imtools.blend(image, medianed, amount / 100.0) return medianed #---Phatch class Action(models.Action): label = _t('Median') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(median) version = '0.1' tags = [_t('filter')] __doc__ = _t("Copies the median pixel value") def interface(self, fields): fields[_t('Radius')] = self.RankSizeField(self.RANK_SIZES[0]) fields[_t('Amount')] = self.SliderField(100, 1, 100) icon = \ 'x\xda\x01 \x07\xdf\xf8\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x00+\x08\x06\x00\x00\x00>\x13\x0b\xdf\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x06\xd7IDATh\x81\xcd\x99mL\x1c\xc7\x19\xc7\xff\xcf\ \xee\xde-\xc7qp\x1c\xe2\x8c!p$\x98\x82\xf0Q\x1b\xda\x80l\xe8\xcbEu,\x1bL%\ \x1a\xdb\xaa\xab(\x96]\xa9M>Dr"\xa7\x8d\x9a\xcaQ?\xb8\x15j\xac~H\x1b+J\xebDq\ \xd5\x88\xcaQ\x14\x9b\xb8\xa9i\xab\x04\xdb\t6\xc2\x8e\r\xd8\xf0\x81\x97\x03\ \x1c\x03\xe7\xdd{\x81\x03\xf6\xb8\x9d~\xe0\x0e\xdf\x0bR\xc32T\xf9I#\x96\x99\ \xdb\xf9\xcf\x7fv\x9e\xddgv\x891\x06\xde\x94\x94\x94\xbc2;;;\xaa(\xcaY\xee\ \x9d\xa7 lD\xa7\xc1`0S\xd3\xb4?\x10\x91s#\xfaO\x84\xab\x01"zd\xef\x9e=\xa3;w\ \xecxY\x92\xa4<\x00\xc3Dt\x90\xa7F*\x12\xaf\x8e\x88(\xff\xf8\x8b/\xf6\xd4\ \xd4\xd4l\x1a\x1b\x1b\xc3\xc8\xe8("\x91\x885\x1c\x0e\xbfCD\xf7\x18c]\xbc\xb4\ \x12\xe1v\x05\x0e\x1f>\xfc^ss\xf3\xa6\xbe\xfe~\x8c\x8f\x8f\xc3\xe3\xf1\xa0\ \xb0\xb0\x10\x82 \xc8\x00\xde$"\xe2\xa5\x95\x08\x17\x03\xb2,\xbb\x7fr\xe8\ \x90gxd\x046\x9b\r}\xfd\xfdxr\xd7.\xfc\xf1\xf5\xd7\xd1\xd6\xd6\x06A\x10*\x01\ \xec\xe5\xa1\x95\n\x17\x03\xad\xad\xad\xafTVV\x12\t\x02***\xd0\xd0\xd8\x08\ \x12\x04\xb4\xb7\xb7\xa3\xaa\xaa\n999\x00p\x80\x87V*\\b\xa0\xba\xbaz\x07\x00\ \xe4\xe5\xe6bb\xd2\x0b\x84o\xc1\xdb?\x81\x82\x82b\xb4\xb7\xb7CUU\x00\xa8\xe6\ \xa1\x95\n\x17\x03\xa2(\n\x00PY9\x81\x1f\xd4gB\xbf9\x081\xf8%\xe6K\x8b\xf1Q\ \xbf\x19o\xbf\r\x00\xd0yh\xa5\xc2e\t]\xbf~\xfd\xbc\xae\xeb\xf0\x07\x8a\x00\ \x06@\xb0\xac\xb4}\xfc\xaf\x07+\x87<\xb4R\xe1b\xe0\xdc\xb9s\xcf\x9f:u\xaa/\ \x14\xb2b>t\x13L\xd7\x00\x00\xba\x0e\\\xea\xf4\x01\xc0U\x00\xbf\xe1\xa1\x95\ \x06c\x8cK\x01 \xb8\\\xae\x9f^\xf8\xabgF\xbdX\xc3\x16\xda\xad\xec\xe3w\xcb\ \x15\x00?\x03 \xf1\xd2I-\xc4=\x17\x9a\xdam\xfd\xb2w|ZZP,\x99\xdbK7[\x1f\xfd|\ \x8a\xaf@\n\x1b1+\xf5\xf5\xf5\x7f\x7f\xb4\xb4\x94\x01\xd8\xb2Q3\x1f/\xdc\x93\ 9"\x92\xb7UW7fX,\x00\xd0\xca\xbb\xffTx\'sDDg\xf7\xb5\xb4\x14\x88\xa2\x08\x00\ \xbf%\xa2\x97xj\xa4\xc1\xebR\xd6\xd6\xd6>c\xb5Z\xbb\xab\xddnV[S\xc3L&\x13\ \x03\xc0\x9e\xf0x\xd87\xca\xcb\xa3;\xea\xebo4555}\xad\x82\xf8\xe8\xd1\xa36\ \x9f\xcfw\xde\xef\xf77NOM\x89/\x1c;\x06M\xd3\xa0\xaa*n\xdc\xb8\x81\x0f/\\@mm\ -\x9ey\xfaitvv\xe2\x93\xae.\xe4\xe7\xe7\xab6\x9b\xedLss\xf3\xf1\x13\'N\xac\ \xfb\xe1f\xd8@\xc3\xce\x9doeZ,\x87g\x1e<\x10\xfd~?~w\xf2$t]\x87\xaa\xaaPU\ \x15c^/\xfer\xe6\x0ct]\xc7\xd6\xaa*TTT@\x92$|\xde\xdd\r\xaf\xd7\x0b\xa7\xd39\ g\xb7\xdb\x1b\x06\x07\x07\xbfX\x8f\x815\xa7\x12\xdb\xb6m\xfb\xbe\xa2(\x1f\ \x9aM&\xdb\xfd\xa9)dee\xe1\xcd\xd3\xa7!\xcbr<\xe7\x01\x00\xf4\xf4\xf4@\xd7\ \x97\'\xb8\x7f`\x00\xfd\x03\x03\x00\x80\xdc\xdc\xdc[\x00\xbe\xa9(J\xa6$I%\ \x00\xd6e`\xcdA\xec\xf7\xfb\x7f\x1d\x08\x04l\xb1\xd4y\xe4\x85c\xc7PPP\xb0\ \xd2ND\x08\x87\xc3\xb8u\xfb\xf6\xaa\xe7\x97\xba\\\xee\x8c\x8c\x0c\xd8\xed\ \xf6\x8f&\'\'\xcf\x1b\x1f\xfa2k6\xc0\x18{\xb9\xda\xed\x86(\x8a\xccn\xb7\xcf\ \xfc\xb0\xa5\x05\xa9{\x95\xc1\xa1\xa1\x95\xd9O\xa4\xa8\xa8\x08yyy\x82l6\xcf\ \xf8|\xbe}\xc6\x87\xfd\x905\x1b\xf0z\xbd\xd7\xa6gfz\xadV+=\xf7\xec\xb3u\xb1\ \xdbe\x92\x89`0\x98v\x9e\xcdf\xc3&\xa7\x13\xbd\xbd\xbd\x08\x04\x83\x11p\xca\ \x84\r=\x07\xa6\xa7\xa7w\xd9\xedv\xfd\xe0\xc1\xe4\xfdz\xdc\x843??\xed\x1c[V\ \x16\xc6\xbc^\x04C!\x00(\x04\xf0\xa4\x11\xedT\x0c\x19\x08\x04\x02JCC\x83&IR\ \xda\xf2!"8\x9d\xe9oS\x82\xc1 \x1e)*B\x86,\xc7\xab\xbeeD;\x15C\x06\x88\xc8U\ \xf7\xf8\xe3\x19\t\xff\'\xb5;\x1c\x0e\xc4\x97V\x9c\xd9\xb99h\x9a\x96X\xb5\ \xdd\x88v*FS\x89\xda\xba\xba\xba\xa4\x8aD\x13\xa2(\xc2n\xb7\xa7\x9dt\xe7\xee\ ]\x90\xb0"\xb9\xd5\xa0v\x12F\r\xf8\x15UM\x9b\xf9D\xf2\x1c\x8eU\xebC\xcb1\x00\ \x00\xa3\x06\xb5\x930j\xe0J___\x04H\x9e\xf9\xc4\xe3\xd5\xae@\nW\rj\'a\xc8\ \x00cL\xeb\xe8\xe8\xb8\x12\x89D\xd2\xda\xe2&\xfeG\x8a\x12\x05\xd0aD;\x15\xc3\ \xe9\xf4\xe5\xcb\x97\x7f\xfc\xa77\xdeP\x81\xf4 &\xa2\xa4\x80u\xb9\\(..N\xfc\ \xc9/\x18c=F\xb5\x131\xfc0a\x8c\xdd\x97e\xf9;#\xc3\xc3\xddG\x8e\x1c\xb1\xa6\ \x9aP\x14\x05\x00PVV\x86\xf2\xc7\x9c\xb0\x88\xf701A`\x8c\xbd\xc5\x18{m}\xc3~\ \xc8\xba\xf7\xc4D\x94\xef*.~\xb5\xac\xac\xf4\xe7\xd99\x0e\xc1l6\xa3\xaf\xaf\ \x0f\x03w\xee\x00\x00\xb2\xb3\xb3q\xedt1\xc8\x14\xd0*\xf6O43\xc6.\xf1\x18\ \xf8\n\xbc6\x16\xa3\xef\xd7\x07\x9e;\xe4\xb8\x08\xe0\xb5\xadUUK\x00"\x00\xde\ \x01\xf0\xd2\xcc\xbfw\x0f\xcdvm\xe9\xf9Z\xef\x89\x0b71\xef\xef\x7fYt\t\xc0\ \xf1L\xabU\xc3r\xa0\x1ee\x8c\xb5\xe5f\xf9\xffI\xa2)\xcaK+\x11n\xdf\x07\x04av\ \x98Eac\x8c\xe9\xb2,\xb7\x0101\xc6\x96\x00@\x8f\xaa7\x11e\x1e^ZI\xba\xbc:b\ \xd10\xd8\xc2R\x13\x00,..\xbe\xca\x18\xfb\xd5J\x1b\x98\x8b\xcd\x05\xcbCC\xdf\ n\xe4\xa5\x17g\xfd/\xb6\x06\xdcf-\xa4\x9f\xa5I\xdfS\x0bY\x12\xe9E\x05\xef\ \xe7l\xddr\x00h\x8fb\xc0m\xd6\x82\xfa\xbb\xe2\xa4\xb2\x7fA\x8eR4\xdf\x11d\ \x9b\x1d?\xca)\xf9\xac\x93\xcf\xf0\xd7q\x05\x88H\xbaui\xbb;\x1c.\x98\x82\xdf\ \xb6_(>D\x90\xec0exZ\xbd\xb7\xef\xfd\xed\x83?\x97\xef\x9b\x9d+\xf4!\x94w\x80\ \n[H\x17\xed0\xe5\xee\xcbF\xd8\xf2\x8f/\xae5\xee%"\x0b\x11\x99\xd6k\xe0+\xc7\ @\xec\x13\x91\x1c+f\x00\xb2la\xcfO(\x93\x1d\x9bI\xdb=\xafv\xf9\xc8\xacY}\xe3\ W\x87\xbb\xef\x06\x86\xbeWe>y_\xb9w\xa7`)\xe0\xd6\xe7\xc1\xe6E\x160\xf9\xaf8\ Ff\xf1\xde\x83y\xad\n\xc0\x10\x80E"\xd2\x00,\x02\xd0\x00,2\xc6\xd6\x14\xec_y\ \t\xadb\xc0\x1c?6\x99 G"0\xc5\xeaL\x00DI\x82\xb4\xb4\x04\xd6\xec\xc9q\\\xf8O\ `\n@d\xcfws\xac\x17?\rL\xc7\x06\x9b4\xf0\xf8\xf1\x86\x19X\xc5\x90\x18\x1b\ \xac\x14+b\xac\x08x\xb84\t\xcb_\x0c\x18\x96o\xabz\xec\xefR\xacD\xe2w*\xa3\ \xf0\x7f;\xfd\x7f\xe6\xbf\x82\x1co\xb0\n\xf7\xb5u\x00\x00\x00\x00IEND\xaeB`\ \x82\xbea_\x9e' phatch-0.2.7/phatch/actions/minimum.py0000644000000000000000000002026111346363116017666 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageFilter, imtools import Image import ImageFilter from lib import imtools def minimum(image, radius, amount=100): """Apply a filter - amount: 0-1""" image = imtools.convert_safe_mode(image) minimumed = image.filter(ImageFilter.MinFilter(radius)) if amount < 100: return imtools.blend(image, minimumed, amount / 100.0) return minimumed #---Phatch class Action(models.Action): """""" label = _t('Minimum') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(minimum) version = '0.1' tags = [_t('filter')] __doc__ = _t("Copies the minimum pixel value") def interface(self, fields): fields[_t('Radius')] = self.RankSizeField(self.RANK_SIZES[0]) fields[_t('Amount')] = self.SliderField(100, 1, 100) icon = \ 'x\xda\x01\x97\x08h\xf7\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x08NIDATh\x81\xed\x98ml[\xe5\x15\xc7\x7f\xe7\xde\xeb\ \xeb\xb7\xb8n\xda\xe0$n\x1aw!-\x1d 6\xc8B\x9a&\xb6\xb2\xacH\xdb\xd8\x04\x1a\ \x12l\xec\x85\xb1\x1766\x81\x06Lb\x1b\xe2\xc3\x06\xdb4m\xd3\xb4\xb1\x0f\xa8e\ c\x1a\xa8\xd2@\xe2\x0b\xf0\xa1\xa3\xd0@\xa2\x86\xa8M(UK\xb3\x92\x9a\xe08\xe9\ \x1b\x89k\xd2\xc4/\xd7\xbe\xcf>\xd8n\x03\xcb\x9b\x89\xdbj\x12\x7f\xe9\xca~|\ \xcf=\xe7\xfc}\x9e\xe7\xbc\\\xf8\x18\x97\x16\xfa\xc52\xd4\xdd\xdd}y]]]:\x1e\ \x8f\xe7*\xa9W\xab\xa4\xb2\xc5`\xdb\xb6\x18\x86\x11\xa9\xb4\xde\x8bI \xafiZ\ \xdb<\xb7V\x01\xd7\x01\xb7\x02\x8f\x025\xe5\xe85*\xe0\xdb\xb2\xa0\x94j\x02\ \xc6\x81\x87\x81\x8d\xc0Q@\x01g\x80\x11`\x10\xd8E\x81\xcc\x9e\xe5\xea\xbdh\ \x04Dd3\xf0\x06\xf0\x14p\x1b\xb0\x19x\x11\xd8[\x14\xd9\x0c\xb4\x02=\xe5\xe8\ \xbdh\x04\x80+M\xd3|\x1a\xc8R !\xc0\x1d\x1b7n\xfcM8\x1cN\xbb\xddn-\x91H<\xba\ s\xe7\xce\xb2\x0e\xf9\xc5"\xa0\x01\x97\xed\xde\xbd;Y\\\xfb4M{p\xdd\xbau\x0f\ \x84B!\x97\xa6i\xd4\xd7\xd7SUU\x15\x06|\xc0\x16\xa0o9\x8a/\x06\x01iiiY\x03$\ \x8a\xebO\x00/\xd9\xb6}\xf9\xd8\xd8\x18SSSLLL0>>\x8ei\x9aN\xe0&\xe0\xdf\x153\ \x1e\x0e\x87\xaf\xe9\xee\xee\x0e\xadD\xc7\xd6\xad[o\xe9\xec\xec\xfcZq\xfdg\n\ \x87\xf7\x03\x97\xdf\xefW\x8d\x8d\x8dq\n[\xab\x84\x1f/\xa5|\xb14*\x80\xa3\ \xb7\xb7\xf7\x88eYw\xb5\xb4\xb4x>\x9a\xff\x88\xae\xeb_\xb2,\xeb\x95\x86\x06\ \xdc.\x93\xf7\xe6\x13J&\x93\xc4b\xb1A\n\x84\x00\xc2@|)\xe5KUb\x1dp\xd4\xd7\ \xd7G\xddn\xf7?C\xa1Pmcc\xa3\'\x14\n\x9d\x8d\xc5b\xb3s\x05\xb7m\xdb\xe6\x0f\ \x06\x83\x9eM\x9b69\xa3\xd1h\xa6\xe4|GGG\x9b\xaeK\xc8m\x1d\xfc\xd4\x15\xa1\ \x86g>}U\xe3\x17\x9d\x92\x9e\x1c?\x9d\xf9\xf0\x1f\xa2\x80\x9d\xc0kE\xbbw\x03\ \x7f]\x8a\x80,\xe3\xbe\x0b\x90\xa6\xa6&G0\x18\xdc,"\xd7\x88\xc8UJ\xa9\x80\ \x88\x18J\xa9\x9c\x88L\x9f\xf3B\xa9M\xbd\xbd\xbd\x9f-\xfd\x01\x91H\xe49I\xbe\ \xfe\x9e\xcf\xe7\xff\x8e\xd3\xe5\xc6\xe9t\x03\xf0J\xff\x7fN\x9e\x98\xa2v\x8e\ \xad\xed\xc0\x18\x85b\xf6=\n\x87xx)\x02K\x1dbE!\xed\x99\xd1h4\x17\x8dF\x0f\ \x01\x07\x16{ \x12\x89\xfc\xadD\xbe\xb3\xb3\xf3\x07v\xe6\xcc.r\xd9\xbf\x9cI\ \x9cFDp:\xdd8L\'MAc\xdf\x89\xa9\\\x1bp\x19\x85zp\x0f\xf0\xb3\xe2:\xb0\x1c\ \xe7\x97C\x00 \x0f\xa4)\x9c\x17)~\xda\xf3\xc8Iccc\x95R*U\\\xeb"\xf2\x15{\xfa\ \xe0\x93"\x85\xad\xaa\x94"\x9d\x9e%\x9d\x9eE \x03\xb4\x00\xb5\x14\n\\\x9eBE\ \xfe\x13\xf0\xc3\xe58\xbf\\\x02P\x88D~\t\x19=\x10\x08\xac\x13\x91q\nDu\xc1Z\ \x83\xc8\xaf\xcf\x9f\xcbs\xc8\x8b\xcd\xe3\xc0q\n\x07\xb5$\xb0\x1b\x08\x02g\ \x97\xe9WE\xeb\x80\x18\x86\xe1WJ}.\x1c\x0e\x9b\xcc\x1c\xd1}D7\xd9\xabV{\xa7\ \xdfO\x9c\x13R\x8aQ\xa5\xf8\xf9\xde#\xbc\\\xfai\x8e\x8eS\xc0\x1f\xca1Z\xd6\xdb\xb6\x9f\xe8\xeb\xeb{\xe1B\x10\x90\xd6\xd6\xd6\x06\x97\xcb\ \xb5}zz\xfa\xde\x03\x07\x0e\xbcK!\xf4\xf2\xd0\xed\xee\xdf\xaf\xa9Y\x7f\x8f\ \xcb\xbbFle3\x9d\x9cd\xe8p\x8c\x13\x93\xd6\xdc\xe7\x95\xc2\xb1G\xfc\xd7\r\ \xf7\xed\x1d\xb8\xbf\xf8[)\x19(@\x9a\x9b\x9b\xf5\xfa\xfa\xfa\x07\x80\rJ\xa9\ \x07\xcb\x8d\xc6b\x04J\xce\xefH$\x12\xf7\x1d:t\xe8h\xd1\xb8\xfe\xd0\xedUw\ \xfb\xfck\x1fs\xbaW\x91\xcd\xcc\x92I%\xc9eS \xc2\xc9D\x9e\xa3\xb1\xb4=\x99T\ \xcd\xabC\x91\x172\x99\xcc\xcd\xa6i\xfe\xb2\xb7\xb7\xf7[s\x1c\x9f\x9b\x865@\ \xda\xdb\xdb?\xe9p8\x1e\x01\xf6\x88\x88\xad\x94\xf2\x8aHR)5)"c\xaf\xbe\xfaj\ \xff|N.\x94\x85\xb4\xf6\xf6\xf6\x1b\x0c\xc3\xb8\xaf\xe8\xfc\xdbE\xe7\xe5\x0b\ \xd7\xb2\xc6\xb7z\xed\xaf\xf2\xb9,g\x93\'\xc9\xe7\xb2\xd8v\x0e\xa5\x14\x9ah\ \x04k\\\xac\xf62\xf9\xbb\x7f\xa5&\xc2\x8djj`` \x16\x0e\x87\xf3\xc0B}\xbe\rh\ \xfd\xfd\xfdG\x9a\x9b\x9bo\xab\xab\xabk\x07&\x0c\xc3\x88\xf6\xf4\xf4,9\x1b|\ \x80\xc0\x86\r\x1b\\\xc1`\xf0F\x11\xb9"\x97\xcb\x9d\x98\x98\x98\xf8\xfe\xb1c\ \xc7&8\x1fv\xa3\xf5\x9a\xdaox\xbck\xab\xa7\x93\xc7\x01\x10\xd1\xd04\x1d%\x1a\ R\xbc\xdc.\xd7QH\xc1\xf9f\xac\xaa\xab\xab\xab\xa1\xa7\xa7g\xbe\xe6\xacTcdddD\ \x8d\x8c\x8c\xf4RF\x86\x9aK\xc01::\xea\x1c\x1d\x1d}\x89\xc2lj\x15\xafR\xb8\ \x05pT_\x16\xbc\xc9tWa\xcc\xba\xb0\xec\xd9\x82\xf3JPJ!"\x05\x12\x86qh\x8es\ \xa4\xd3\xe9\x07\xdcn\xf7\xe3\xdb\xb6m\xfb\xfa\x9c\xa1f!"ean;mSh\x19f\x81\ \x19\n\xa5\xfe\x03{\xd5\xef\xc7\xe9\xf3\xd7|\xc6\xe5\xf1\xe3\xf6T\xa3\xe9\ \x06\xa2i\x88\xa6\x17\xbf\xeb\x88\xa6\xa1\xeb\x9e\x97kkk\r\x11Q@~\xdf\xbe}\ \xe3\x96e\xfd4\x9b\xcdn_A[\xbe$\x81|\xd1\xe9\x1c\xf3\x87P\xbb\xf1:G\x93ou\ \xbd\xd7\xed\xad\xc6\xb3\xaa\x06\xef\xaa\x00\x0e\xa7\x07M\xd7\xcf]\xa6\xd3\ \x9b>\x99\xd0{\x9a\x9a\x9a\xbe\xaa\x94z\xbe\xa8/\xdf\xdf\xdf\xff\x8em\xdbO{\ \xbd\xde\xbb+I\xa0\x9cVBs\x18\xca\xe5\xf1\xadE\x10\x94\xb2\xd1t\x03\xd3\xe5\ \xc5\xca\xa4\nkM\'\x95:\xfb\xe2c\xcf\x0e\xcfD"\xc1\x9bfffn)>\x9b\x07\xc4\xb2\ \xac\t\xd34\xaf\xbeT\x04\x18?c\x1c\xb723\xaa:\xd0$\xa2i\x18\x0e\x17Y\xf7*rV\ \x1ae\xdbL\x9f9n\x8f\xc5\xdf\xfd\xc3\x96-[>o\xdb\xf6\xee\xc1\xc1\xc1RQ(\x8d\ \x8e\x15G9o\xe6\xd4\xee}\xe9\xc9\xa3o\xbe\xd2\x0b\n_u\x10\xff\x9au\xf8\xd76\ \xe0\xab\x0e23}z\xe6\xddw\xde\xba\xf3\xb1\xe7Ro:\x1c\x8eo&\x12\x89\xbf_\x08\ \x87?\x8cr"`\x01\x8e=\xaf\x8f}7\x99x\xe4\x17\xc1\xf5Wv{|5\xbaee\xe2\xe3\xb1\ \xb7\x9e\x7f\xe7\xd8\xf4\x93O\xf7\xceN^\x7f\xfd\xf5\x9dJ\xa9\x03\x87\x0f\x1f\ ^vK\xbc\x12\x94C@\x01\xe9]C\x99\xf1]C\xdc\x0b\xfb\x85\xf3\xa9/W\xfct\x9a\xa6\ \xf9\xedT*u\xff<\xcf_\x90\xf7\xb0\xe5\xce\x03\xa5\xe9l.J{[\x074\x111\x06\x07\ \x07\'\xe7}8\x9f\xaf\xf8\xeb\xfc\x8f2\xd0,t\x18\x85\x02\tYD\xc6RJ]\xb0:\xb0R\ \x08\x8b7\x87\xf9\xfd\xfb\xf7\xbf-"Wwuu\x95\xf5\n}1T\x92\x80\x16\x08\x04\\\ \x14\x9b\xa0y`\x03\xf9\x99\x99\x99G\xf3\xf9\xfco+f\xb4R\x8a\x00\x02\x81@-pb\ \x81\xdb\n\xc8\x0e\r\r\r\x03\xa7#\x91Hw%lVt\x0b\x99\xa6Y\x03\x9c^D&\x0fX\xd1\ h\xf4\x8fJ\xa9\x1fQ\xc6H\xbb\x10*\x1a\x01\x87\xc3Q\xad\x94:\xb3\x84\x985>>>\ \x9b\xcb\xe5\x9e\x88D"\xb7\xae\xd4f%\t\xd8\xc9dr\x10X\xaa\xd7Q@\xb6\xbf\xbf\ \xff5\xa5\xd4\xe5\xac0\n\x95$\x90\x1f\x1e\x1e\x9e\xa28\xeb.%\x0bX\xa7N\x9d\ \xfaGWW\xd7\xba\x95\x18\xaddaQ\x80\x16\x0c\x06\xd5\xfa\xf5\xeb\xab\xe2\xf1\ \xf8B\x87\xb9\x04{rr25::\xba\xd0\x80sI\xa0\x01\xbe\xad[\xb7V$\xc3\\*\x94*\ \xf2\xc7\xf8\x18\xff\x0f\xf8/8U6=9\xde\x04\xab\x00\x00\x00\x00IEND\xaeB`\x82\ \xffd2D' phatch-0.2.7/phatch/actions/mirror.py0000644000000000000000000003370311346363116017532 0ustar rootroot00000000000000# -*- coding: utf-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is designed by Arielle B Cruz (http://www.abcruz.com/) #Follows PEP8 from core import models from lib.reverse_translation import _t from lib.imtools import convert_safe_mode, paste #---PIL def init(): global Image import Image # Declare constants here BOTH = _t('Both') HORIZONTAL = _t('Horizontal') VERTICAL = _t('Vertical') DIRECTIONS = [BOTH, HORIZONTAL, VERTICAL] def tile(image, direction): if image.mode == 'P': image = convert_safe_mode(image) result = Image.new(image.mode, get_dimensions(image, direction)) paste(result, image, (0, 0)) if direction == BOTH: x_mirror(image, result) y_mirror(image, result) xy_mirror(image, result) if direction == HORIZONTAL: x_mirror(image, result) if direction == VERTICAL: y_mirror(image, result) return result def get_dimensions(image, direction): width, height = image.size x_scale, y_scale = get_scales(direction) return width * x_scale, height * y_scale def get_scales(direction): x_scale, y_scale = 1, 1 if direction == BOTH: x_scale, y_scale = 2, 2 if direction == HORIZONTAL: x_scale = 2 if direction == VERTICAL: y_scale = 2 return x_scale, y_scale def x_mirror(image, result): width, height = image.size paste(result, image.transpose(Image.FLIP_LEFT_RIGHT), (width, 0)) def y_mirror(image, result): width, height = image.size paste(result, image.transpose(Image.FLIP_TOP_BOTTOM), (0, height)) def xy_mirror(image, result): paste(result, image.transpose(Image.ROTATE_180), image.size) #---Phatch class Action(models.Action): label = _t('Mirror') author = 'Juho Vepsäläinen' email = 'bebraw@gmail.com' init = staticmethod(init) pil = staticmethod(tile) version = '0.1' tags = [_t('transform'), _t('filter')] __doc__ = _t('Symmetrical tile texture') def interface(self, fields): fields[_t('Direction')] = self.ChoiceField(DIRECTIONS[0], DIRECTIONS) # TODO icon = \ 'x\xda\x01\xcb\x0e4\xf1\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0e\x82IDATh\x81\xad\x9a\xc9\x8f\x1d\xc9q\xc6\x7f\x91\ \x99\xf5\xb6\xde\xb8\r\xd9\xe4P\x14-Yc\x8d\x04k\xa3\x96\x815:\xe8\xe0\xb3\ \xe5\x83}\xf0\xd5:\x1a\xf0\xd50\xe0\x93\x05\xfd\x15\xfa\x0f|\x92\x8e\x06|\ \xb2\x84\x81F\xcbh\x19\x18cY\x965\xa4\xb85\x87C\xb2\x97\xb7TUF\xf8\x10Y\xcb\ \xeb\x19@:\xa8\x81\xea\xaa\xf7^\xd5\xeb/2\xe2\x8b\xf8"\xb2\xe5{\xdf\xfc\xda?\ \x00\xdf\x0eU\xda\x93\x18\xf9\xa3\xfc\x98\xa1M\x8b\xa9\x02 !\x10\xaa\x04"\ \x7f\x9c\xaf\xcf\x19m\xda\xa5\x99\xfds\x02\xbe}\xfb\x93\xd5\xde\xcb;w- B\x08\ \x11$A\x88\xe5:\xfa5\xdd{\x01B\xda\xfeL"\xd2\xdf\x9fX\xeb\x84_\xfc\xf0\x11f\ \xc6g\xber\x9dy\xac\xc12X\x8bi\xf6\xeb\xeel\x19\xb4\x05\xd3s\xaf\xc7\xf7\x95\ \xd7\xaa(f\x0f\x96\xb7\x16\xff\xf7N\xf3\xad\x14g\xd3\xbd[\xbb\xbf\xb1\xb9>\ \x17B\xe5 %B\xa8\x10I\x05h\x82\x98@Z\x08Uy\x0f\x08@\x10DB\x7fM\x08\x10\x02{\ \x01\x0e?z\t3\xe3\xa5=0\r\xa0\n*`@6\xcc\xd4\xc1i\xeb\x00\xb5\x1d\xaeexm\xa1\ \x05m\xdc\x00iA\x1b\xb9\xb5\x9b\xed\xde\xecc\xbbIR$\xc6(\x84\xdd\xb2\xea\t\t\ ~\xb6\x90z#\xac3\xa4\xfb\xfc\xfc\xbd2\xbe\x8eXL\xc4\x89b\x06\x96\x16X\xceH(\ \x80\xb4EB\x8bh\xf1\x866\xc53\x83\x01\xa2\x19\xac\xf1{;Cl06\x92DR$\x01\x10g\ \x10&H\xa8@\xa2\x03/\xe0\xad\x80\x92qH\x85\xe4\xf7\xf6FF\xa4\x181\x18\x18!\ \xac\xc1\x0c\xd2\x0e\x12s\x01\x98\x11k@3fcp-\x92;O\xf8gt\xe0\x8bqR\xc2\xca\ \xb4\x01\x0b\xe0\xf1\xe2\x06H\x15\xca*V#0]\\\'\x90\xca\xaf\xcbk\xeb\x81VX\ \xcf\x81\xb1g\x02\xc8\x0b\x04C\xd2\xc2\r)a`:\x00\xed\xc1Y\x0b\xb1\x80\xcd\ \x19\xb1\xc1\x03nt1L[_\x80\xb6\x1d\x0c\x908\x85j\x0e!~p\x15e\xb8\xb6\x98F\ \xbc\x88C\x88uD\x0e\xe3\xcf\xc5\xc9\x8e\xf9w\x9bx\xc8X\xe3\xe1\xd1\x81\xefb\ \xbf\x84\x87Y\x8b\x84\xb1a\xf9\\x\xf9}b\xab\x91\x07\xd2\x0c\xaa\xdd\x0248Q\ \xbb\x15-1\xdd\x85N\xc7\x05\x19\x87\xd3y\xa3B,\x06D7 -<\xfdi\xee\xc3\xa0\x07\ \xab\xe3\xccTV96e\xd5\xcb}\xbd\x07\xc6\x99\xc9\xc6!4E&;%TF)\xb4\x80\x1abzt.\ \xb1O\x88\x18\x1d\x81c\xefE\x01\xbf\xcf\x0c\xd2\x1cC\xb6\xd2c\xbf\xba=\x17\ \xbaT\xd9\x0e\x99\xa9\xbc\'\x9a\x81\xee\xfdr_S\x03\xcd`\x00\xd5\xeev8\x9c\ \x0b\x8d\xad\xf7\xfbs!\xb0$,DL\xc6\x9c\xb1\xde\x03\x92\x16P\x0c\xe8\x80\x87\ \x0f\x03\xdf\x81\x0e\xa3Z\xd0\xafzgP\xf6l\x14\x97\xdb\x06H\xda\xd9\x02`\x05\ \xf0@\xcc\xa1\xa8\x85B\xf4\r\xc6\xda\x8c\x14\x12\x8bj^\x9e\x0b\x1eb\xa2\xfeL\ \xf1\x80\x10\xc0Z\x82)X\xcb\xaa]\xd1\x981\x93)\xd3(\x98\xb6h\x97\xebG\xc5\ \xab+z}6\xb2\xec\x06\xc7)p:J\xa3i\xe1\xd9\xa7\xcb(\xa3\x15\x1fW\xd8\x10\x13\ \'\xb9\xe5\xfe\xfa\x05\xcf\xda\rKm\xa9\xc2\x84\xbdj\xc1\x8d\x9d\xcb\\\x9d].F\ \xe0\x86\xa3\x85\x03B@9Z\xbd\xcf\x83\xe5{\x9c4glr\xcd"$.\xa6)/O\xf7\xd8\x9f\ \xec\xa2\xb9a\\\xb1\xa5\x18\xd4q\xa4\x0b;\xd2|;\x8dR\xed`\xa1\x00\xefV_\x12\ \x84\xe0\x9e\x91H\x08\x13\x8e\x9a%o\x9f\x1eqo\xfd\x82\xda\x94 \x11\x10t\xf5\ \x9ck\xcd\x92O\xee\x0b\x1f\xdf\xbf\x89\x84\x8e\xc4\xc1\x93\x04\x81_\x1f\xdf\ \xe3\x9d\x17wy\xb8~F0\x03\x0c\xb5\xccD\x84\x9b\xf5\x92O\xef]\xe3\xb0\xdaA\ \xb5\xf1\xd0*\x95\xba_\xf5\xce\x03\x96!L\xb7I\xec\x1ep\x9d\xd3\xa7\xcd\xde\ \x13\x81\x10*\x8es\xc3\xdbg\xef\xf3\xee\xfa\x84\x14&\xcc%x\xd6\x12\xd7\x15\ \xcf\xda\x9a\xb7^\xdccoq\x85\xc3\xf9\xc5\x12B\nq\xc6\x93\xcd\x0b~\xfa\xe2.\ \xabv\xc3\xbc*u\xc1\x14\xcc02\xf7\xea3\xf4\xec)\xf3\x83\x05\x07\xd5\x82\xdc\ \x93}\xdb\x0b\xdd5\xe9\x9c\x012Y\x00n\x80\x85\x80\x88\x13\xb43BC\xe4\xfe\xfa\ \x98G\xed\x92i5/\x9e\x12\'g1$\x12h\x80_\x1e\xff\x8ek\xbb\xd7<$U\x918\xe5\xed\ \xe3\xfb\xd4\x04&i\xeeae6\x9cM\x89Ay\xd2n\xb8[/\xf9\xf4\xf4\x00\x91<\xaa\t\ \xc5\x0b\xbd\xd8S$\xce\x00\x19\n\x995kd\xb2\xef\x84\x0b\x1d\x19\x9d\xd4"\x91\ \x8d)\xc7\xaa\x10*\xaa8\x19\x80w\xe7\x10\x80\x80\xa8r\xef\xf4\x88\xb3\xdc\ \x96\xfa!,\xb5\xe5\xdd\xd3\xc7,\xd2\x9c\x18"\xd0\xe5q-^P\xc0hr\xc3\x89)\x1bI\ \xcc\xaa\xe96\x89\x0b\xf9iWX\xb3\x8489\x17B\xed\xdasu\xae!\xcd\\\xeb\xc4\t\ \x88 \x92X\xb65\xcf\xeb3\x1am\xc9f\x18\x82\x01jF6CMi\xac\xa5Ue\x9d\x1b\x8e\ \xd6\xc7\xbdG\x9f\xacOx\xef\xec)\xd3\x98H!PI"H J H\xe1;\xfe\x1d/\x9a%g\xed\ \x86\xf9d\x81\x99z\xf6\xc95\xa65\xb4k\xc8\x1b\xc8\xab\x92\x85\xc6$N\x15\x86\ \x14\xe24C\xf7\xa0\nQ!o8[?\xe7\xf1\xc9#bLNN\t\x98\x08F\xa0\xac\'\x10hL\x99M\ \x0f\xd8\x944:\x9d\x1eP[F[\x05\x94\xe27\xd7I#\x0f\xe4\xdc0\xdf\xbd\n{k\xc8\ \xd1\xc1v\xb5\xa0\xf4\x0b&\x82\xc4\t\xe8X\xcc\xa5\xa9\xc7T\x9fy\xb6\xe5\xb3\ \x85\xc4\xa2\xdae\x9e\x16\xacr\xc3\xb4\'\xae}\x80\x07H !\\\xda\xb9\xc6\x0b\ \xf1p\xb9\xbcs\x8d\x14g}\xc8h\x0f\xba\xe3\x80\xf3`\xa3\r\xb38cg\xb2\x87I\xc0\ \x82\xf5^\x94\x12\xd2}e\xd6\x1a\xc4\xdb\x10\x17si\x86\xc49\x96f\xce\x838\xf7\ \\\x1b\xe7X\x9a3\x9b\x1ep\xfb\xe0\x16\x17\xe6\x97\xd0\x90\x90X\xf9!^\xd4\xa4\ H\xec\xc6\x8c;\x87\x9fg\x12\'.\'\x10R\xa8\xf8\xd2\xf5;4f\xbd\xdau\xb9^\xf5\ \xdfc!r0\xbb\xc8\xed\x83\x8f2\x9f]\xe8qt\xb8H\x8e\xa3\xbb\x96\xf3Y\x888\xef\ \x85\x99\x15]#\x92 V\xbd\'>q\xf9\x15\x1e\xd6K\xde8\xfa%Z\xe2\xb8_y\x02\xb5\ \xb6\x1c\xee\\\xe5\xb5\xeb_$J\xc4J\x14\x8a\x08\xaf]\xff"\xbf}q\x97\x07g\x8f\ \x99\x84"5,{\xffLF\xc5x\xf5\xd2+|\xea\xa5WK\x86\x8a\xa5\x01\x1aIji!tz\xc9\ \x86,\xd4Y\xba%\xa5C,=\xc0\xd0q\xc5\x90\xf8\xdaG\xbe\xca\xc1\xce!\xdf\x7f\ \xf8\x13^\xd4\xa7D\x11\xcc\x14\xb5\xcc\x9d\xab\x9f\xe1\xf5\x9b\xaf\xb17\xd9-\ \xc0\xe9\x8dXTs\xfe\xe6\xcf\xfe\x8a\x1f\xdc\x7f\x93\x1f?~\x0b\x11A\x10\xb2e\ \xf6\xaa\x1d\xbez\xfd\x0b|\xee\xf2+D\xa4H\xee\xd2\xe8H\xda\xea\xe4\xd0\x16\ \xa1E:5\xaa\xeb\r\xabM\xcdl\xef\xa5"\xcc\xaa\xd2\xffv\xear\xf0\x00\xa1\xa2\ \x92\xc8\x17^\xfe\x12\xaf^\xfb,O\x96\xefq\xb4z\xcan\xb5\xc3\xf5\xddk\xecV;\ \xa4P&\x1b\xa9\xe2\xf4\xe8\xbe7\'\xb1\x02m\xd9\x9f\xed\xf3\x97\x7f\xf2u\xfe\ \xe2\xe6\x97yxz\xc4Is\xcaK\xf3K\\]\\a\x96\xa6\xae\x93\xb4\xf4\xbf}k9\xea\x93\ s\x91\xe0\x96Y\x9d\x9c\xa0\xeb\r\xf2\xbdo~\xcdvn\x1c\xf2\xf2g?O\xaaf\x9eJ\ \xc7\x15\xb6H\x85q\xa8\x8c\x7f\xcc\x0c97.\x11\x11\x9e?\xf8\r\x8f~\xfc\x06\ \x98qx\xe75.\xdc\xfcS\xcc\xec\xf7>;\xd4\x86su\xa2\x1c\x82\xd1\xb6\x1b\x1e\ \xfc\xe2g\x9c\xfe\xee\x81\x87\x90\xa9bf\xa3?`\x0c\xce\xd7\x02Z\xc7\x10?\x08d\ \xfc\x1a+\x05\xc83\x8cj\xf6\t\xc46\xfe\xee\xe1\xad\'\xc1>\xc4\x00\xeb\x0f\ \xffn\xebgN)\xa4\xc8\xe7\xbe\xf1\xd7\\\xbar\xb3\xc8\xe9.\\\x864:\x0e\xa1NVor\ \xcb\x93\xe5S\x9e\xac\xdec\xa7\xda\xe1\xc6\xee5\x16\xd5\xc2\x89\rH\xacx\xb3\ \xf9WL3_\xfa\xbb\x7fr\x83\x005e\xd5\xaexp\xfa\x98\x93\xfa\x94\x97\xe6\x97\ \xb9\xba\xb8\xc24V\xa3ff\x08\xa1\xf3#\x97.\x84\xae}\xec6o|\xe7;\xa40\x9b\xb2\ \x98M\xb1v\x89\x11\xb1\xe8\xf3 \tqk\xac\xe2\\h\xc8"\xbc\xfd\xfe\xff\xf2\x9f\ \x0f\x7f\xc2\xf3\xfa\x84(\xa9\xac\x9br\xe7\xea\xe7x\xfd\xe6W\xd8\xadv@3{\x87\ \x1fq\xef\x16o,\xdb\x15?\xb8\xffC\xde|\xf4\x16NaP\xcb\xecU\x0b^\xbf~\x87\xcf\ ^\xfe\x04\xd1\xac\x00nFm\xa7K\n+<\x80\x96\xf9lJ\x98MK\x16j\xd7\xd0\x96\xb4\ \xa9-\x16\x13\xa6\xa9\xf4\x07\t4!!\xa3\x12\xf8\xfe\xe3\x9f\xf3\xc6\xe3_ \x12\ \x99v\x03.\xbc\xc8\xfc\xf4\xe8\xe7<\\>\xe2o_\xf9\x06\xbb\xd3\xbd\xad\xe8X\ \xb7k\xfe\xedW\xdf\xe5\xfe\xc9CO\xa3]\x88 \xac\xea\x13\xfe\xfd\xb7\xff\xc1\ \xb3\xb3\x87|\xfd\xfa\x1d\x82)fM\xbf\xea\xda\xb7\x96\xcd0\xcdk\xbd\xa9w\x7f\ \xe7Ncl0\xdd \xd9\x0f\xcb5\xd6\xfa\xfb\xa2\r\xbf~\xf6k\xfe\xeb\xe9;x\x17l\ \x04S?P\x82\x19\xd3P\xf1\xf8\xec\x88\x1f=~\x8bl\xb9\xe7\x85\x99\xf1\xa3\xc7o\ \xf1\xf0\xf41\xd30!\x18\xe5\x19?\x12\x101\xdey\xff\x7fx\xe7\xe9\xaf|l\xd2\ \xfd\xfd\\#\xbaA\xf2\x1a+\x18\xd1\x82\x17s\x03,\xd7\xbd`\x92\xee:\xd7n\x88\ \xfa\xb1\xa9\x8f\xb9w\xf2;\x8e7\xc7T\xe5\x0f\xf6\x87)\x11?f!\xf1\xd3G?\xa3\ \xe9\xf5\x94\x91-\xf3\x93G?c\x16"\x91\xec\x87\xe9\xd6wT\x08g\xf5)\xf7N\xee\ \xb1\xde\x1c#\xb9F\xf2\xba,\xe4\x06\xb2c3-\xf8\xda\x8d\x93\xb8\xf3\x80\xe9\ \xc4uw\xa8\x00\xf5\x9e\xd62XB\xcc8k\xd7\x9c\xd6\xa7T".\xdd\xac\xcbT:\x8cO\ \xcaO\xd6\x96\xe7\xcb\xf7J\xe61\x9e-\x9f\xa0\xda\x90$\xf4F\xf9i\xe8\x07@I"\ \x9c5g\x9c\xd6\xc7\xcc\xd2\xbcL\xe0\\\xfb\xd8hZ\xe1\\\xd8\xf8\xc4\xc69\xe0\ \x16ZH\x80!\x96\xb0\xd0\x01\xf3t\x95\xdb\x159o\xf0&\xd1\\\n|X\xaa5\x88\x02\ \xeb\xcd\xf3\x92A\x8c\xf5\xe69\xb1\x84\x9c\xdfk\xa3s\xf9.sO\xe4\\\x93\x9b\ \x95W\x7f\xadG\xc3\xac\xd1\xb8\xd1Z\x0f\xfb\xb1\x07\xb0\x1d/\xcff\x0e\xde\ \x12\x04/\x1c\x861\x0f\x81\xfd4EL\xe9w\x11\xa4\x03^V\xd5\x1c\x8ca\\\x9e,X\ \xe2\xd9\xe7\xf2dA\xea\x0c\xb7\xb1\xe1\x14\xf0\x1dW\x94\xbdT\xb1\x08\xb1\x80\ \x1ft\xd00\xf0-\x06m\x1b\xb0\xf1\xb4%\n\xc1\xbc\x07\x08\n\x9a\xb0\xd2\xac\ \xccC\xe2J5g\x1a\xca\xac\x07\x17S\x03x\xefL\xb2)7\xe6\x97X \x88y\x01[ \xdc\ \x98_\xe2\xd1\xf2=7\xde\xba_\xc3a\x18\x93\x10\xb9R-X\x04A\xf3f\x98\xd6\x8d\ \xf7\x0b\xba!W\xae\x87,d]\xe3`-\x96\x1bD]L\xf9\xb9\x01m\x08\xdap{~\x81[\xf3\ \x8b\x98y\xd6\x89f\xc4\x8e\xd0b@f\x1e#_\xb9\xf2\n\xa1[=k1\xdd\xf0\xda\xe5WX\ \xc4\x04d\xa2t\xe4\x85h\x10\xcc\xf7\n^\x9e\x1d\xf0\xb1\xf9Eb\xd1C\xdb8\x1c\ \x1b%\xbdZ^\x036\xf2@\'Q\xc5\x8aT5D\xcc=b\x8ae\xe3b\x9c\xf0\xf9\xfd\xebD\xe0\ \xfe\xe6\x84\xc6r\t\xa0\x80b\\\x99\xee\xf3\xc9\x83[\xdc\x98\x1dx\xc3\xd1\xc9\ \x89\\s8\xdb\xe7\xcb\x97>\xce\x7f\x1f\xdf\xe5h\xfd\xc2\xc7*\xe6c\x95$\xc2\ \xed\xd9E>\xb3w\xc8\xe54Es\x8d0\x8e\xfds;6\x96\x9d\xb7\xdb!\xd4B0\xc4\x0c\ \x0b=\xaf<#a \xa0\xd9\xb8>\xd9a\xe7\xc2-\xde]\x1f\xf3,oXkf\x12*\x16i\xc6\xcd\ \x9d\xab\xdcX\\\xf1\t\x1b\x83\xde\'o@\x02\x9f\xda\xbb\xce\xa58\xe1\xde\xf2\ \x88\xb3vE\x9d\x1bf!r!N\xb85\xdb\xe7B\x01\xbf\xb5\x15\xa5\x19\x18\xcd\x86\ \xe8\xc6\x8c\xe7\xd2\xa8?P\x04\xa8\tV\xbc!\x1a\x8bB\x05\tF\xce\xca~\xac\xf8\ \xf3\xbd\xabl\xccX\x9b\x92\xc2\x84\x9d\xe4\xe3y\xcd\xb5\x0f\xc8\xbayf1\xc0BB\ 5s8\xdd\xe5\xb0\x9a\xb1lW4Z3\x93\xc0T\x04\xb4%\xe7\xday\xd3\xef\xa1\x95]\x19\ \xd3a\xcc\xde\r\xb6\xceg!W\x94\x19\x10\xd7\x1f%\xd78\xdf\\\xb7\xb8Q\xd1\x13\ \xab\x19\x95\xc4\xd2]IYu\xf5Q\xcah3\x03\xb5\xbe\x7f5\xcbh\t\x8b\xb9\x08\xf3\ \x90@3:\xda\xf0\xe8\x00o\x03\xd7~R\'\x961\x8aW\x07\x03j\xa8\x8f\xb1\xd9%\x8f\ }\xeb2\x83\xba\xe4\xb2\xd6\x1f\xb2\x88\x84Rw\x82O\x15L\r\x13C\x82y\x16E@\r\ \xabO\x07\x0e\xd4\xa7\xc8t\xdfS\xb4\xf9\xac_5\xfb\x82u\xd3f\xf5\xc2i%L\xc4\ \xb2/\x88Y\x01\xee\x99\n\t\xb0yv\xde\x805\xf6\xecW0\xd9C&\xfbX\xb5\xe7\x93\ \x8a4\xf7\xd9\x90U>]\x1e\xe6!\xbe*\x9e\xc2<\x99\xb6\x9dA]\xffZ\xba+\x03\xdb<\ \x83\xcd\xf3\xa1]E\xb6\xdaM\x8f]\xeb\xdfGKu\xd6\xc6\xe5C\xbbv\xc1\xd9\x9c`\ \xf5\t\xd4\xc7\x903\x10\xc6jt\x83\xd5\xc7\x10\x9f\xfa\xdc1L\xb00\x818\xdan\ \xed\x8faZ\xdd\xcdP\t\xc1\x8d\x94\x80I\xf06\xb2#qs\x86i\x83\x98b\xa6\x18\xda\ \xaf\xf8\xd61\x9e\x01u\x92A\x1b\x8f\x10\xad\x8bbX\xfb\xe72\x05\x16\xa5#\xcb\ \x1b`\r\x96|\x05\xf3\xbaod\xe4\x03\xfbf\xa3\xb9Q\xff\xba\x1am\x84\x94}d\xf2\ \xa0u\xf2\x1a\xc9]]\xe8\xce\xd9\xb5}\xc9\xebC\xef[v!\xfb\x1a2\xde\xfc\x18\ \xfad\x13\x1b\x0cp\x12\xaf\x86\xadSK\x88\xc6\xfe\x1a\xa9JU-\x1b\xcd\x96\x10\ \xab\x9ct\xa1\xec_\x99\xf7\x10\x84\x16\xb1\xaa\x90\xb0\xf5V\xb5]\x8d\xa6\n\ \xcd\xb9\x1d\xc7n\xe2\xd00T\xdb\xb6/\x82\xd2\x1b\x9d\x87I\x856\xbd\x82\x19\ \xa5\xd1\xb5?\xd4ua\xa3\xa6\x86\xd0\xba!Z<\xa1\xc9w\xcf\xcb\xf5\xd6\xbd\xe53\ \x89M\xcf\x01\xf2\xca\xa7\x13\xa3\rm)\xfb\xc2N\xe0f\x142\xa3\x8d\xeeR\xcde\ \xd4\x95\xa1\x9d\xd7\\\xc6$k3\x9a\xb3\x89.\xc5BU\x00D\'\xee(\xf6\xc7\xe1\xe3\ \x9bw\x1d\xd8\x84\xd8\x00\x9e\xee5\x89\\\xb7\xae\x98\x8a\x07\xba=0\xe9\xe4\ \xc0xd\xa2\xe7F(\xdd\x0c\xc8\x06\xcf1\xea\xcc4Vfm\x96\x94\xd7\x9b\xe5\xdd\ \xb3\xdb\x8b\x97\x17\xefZ0\x11\xcf\x93\t\xac\x10\xd5\xa2\x03+\xaa\xc7\x81\ \x87\x81\xcc\xda\x8d_\xbai\xbb!\xa2\xac\x0c\x1e\xdf}\x1f3\xb8v\xfd\x90y\x18\ \xa6\x0b>\xcb\x15\xb0P\xbe\x9f\xa2\xae\xc3\xe8\xbd\xd4W\xe4\x9e\xe4\x94\x01o\ 0\xbb\x7fvK\xdau\xbd\x94\xef\xfe\xfd\xeb\xff(A\xbe\x15\xab\xb8\xfb\x87\xff\ \xbb\xcd\xef\xf9\xb7\x193\xb4\xc9h\xf6ID\x88\x7f\xe8\xbf\xdb|\xd8\xdc\xe5C\ \xee\xca\x99\xdc\xe4%f\xff\xf2\xffa_\xda\xec\xa4\x7f\xe3\x92\x00\x00\x00\x00\ IEND\xaeB`\x82\x98&j\xc6' phatch-0.2.7/phatch/actions/offset.py0000644000000000000000000001446611346363116017513 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global ImageChops import ImageChops def offset(image, horizontal_offset, vertical_offset=None): return ImageChops.offset(image, horizontal_offset, vertical_offset) #---Phatch class Action(models.Action): label = _t('Offset') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(offset) version = '0.1' tags = [_t('transform'), _t('filter')] __doc__ = _t('Offset by distance and wrap around') def interface(self, fields): fields[_t('Horizontal Offset')] = self.PixelField('50%', choices=self.PIXELS) fields[_t('Vertical Offset')] = self.PixelField('50%', choices=self.PIXELS) def values(self, info): #pixel fields x, y = info['size'] return super(Action, self).values(info, pixel_fields={'Horizontal Offset': x, 'Vertical Offset': y}) icon = \ 'x\xda\x01\xf5\x05\n\xfa\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x05\xacIDATh\x81\xed\xd8{\x8cTw\x15\x07\xf0\xcf\xcc\ \xecX\x15\x1f`R!\x9a&\xb8\xa9\x8d\x01$\xd2?J\ \x03\xad\xa6V\xe1\x8f*5\x8a\xa5\xb1T\x04E\xa5\x18\x9a\x96\xa5Ev\xe7\xb53s\ \xfd\xe3\xde\xbb\\`vvi\xfb\x97\xce79\xd9;w\xe7\x9es\xbe\xe7\x9c\xdf9\xe7\x0e\ ]t\xd1E\x17]t\xd1E\x17\xff\xbfHM\xea[+\\\xa2\xcfZiW\xa1(\xf0\xa2\x96\x9d6\ \xf8\t\x82Wk\xfc>z{\xf8d\x8a\xebR\xcc\n8\x13\xf0T\xc0\xe0J\x8e\xbd>\x04\x06\ \xbcY\xda2\x19\xcb\x05f\x82\x16\x9ahZo\x9d{_\x8d\xf3\xf7\xf3\xee\x0c\x8f\xa5\ \x99\x95J8\xd2B@\xa5\xc5go\xe7\xe7\xaf\x9d\xc0\x06se<-}\x9e\x95\x06\x1a\x9a\ \xeaf\x1b\xf0\xb7\x8b%\xf0 \x8fg\xf8@\x1a\xe9\xc4\xfd\x96\xb1\xf8\x8c\x06\ \xcc]\xc6s\x9d\xf4\xa4;\xfd\x13\x14\x95\x14i+}2z}\xf0b\x9d\x87\x02\x97\x15\ \xd0;\xbed\xf3\xcc\x99HO\xcf\x84\x96r\x86\xe4\x05z\xa4\xc62\xd0\x14f\xa0\x8e\ \x9eI\xe8\xc0f\xfar,\xc9Q\xcbrG\x96+{\x90\xd1>\x03a\x82m\xd8N6\xc3\xc3CL\xbd\ \x83\x7f\x9e\xaf7~6e\x8d\x99\xda\x95\xd4\x17\xfcE\xbfu\x8a\xeaJ\x92\xd1\x0f\ \xa5\xe03\xbe\xaf8\x11\x81<\xab\xf3<\x90\xe7\xa7\x05\x9e\xc93/\xcf\x17{9\xde\ \x1b\xa9\x8a\xa3_\xe0x\x9e\xc59\xb6\xe4\xb9\xaf\xc5\x99>\xb6\x07m\xfc\x0bo\ \xac\xb1I\xca\x97\x14\x1dRt\xbd\xbb<\x7f\x81\x07O\xd8(m\xa5@\x98\x81QT\r\xa8\ (\xa8\xb8\xc6\x19K\xad\x1a\xff,leY\x9e\x1b\x0b\xec\xbc\x89m\xf1\xfd\xdf\xf3\ \x9e\x14\x07\x12\xc9}9\xc5;\xdf\xc7\x10\xfc<;C1A h\xf0X\x9d}\xa3\xfc\xb5\xce\xe1&\x7f_\xc4H;\xbd\xe1s\ \xab]\xa7d\xab\x92i\x11\t\x8a*\x8a\x06\xf5\xd9\xa2\xe0cr\xee\x95\x11v\xfd0\ \xfaTPq\xbb\x0f\xd9l\xd0\xb5F\xdc\xe0\xce\xb0\xadn\xe2\xf2,\xeb\xf2\xf4\xf7R\ ,pm\x81l\x01\x05\xe4\x91CVx\x10\x93\xc7\xab\x9e\x90j(\xad*\xff\xaa\xf2\x9b\n\ \x9b\xeb\xe4o\xe3I\x9255\xa0\xcf\x1b\xfcR\xd1\xd5J\xe8wn\xbd\x17"K\xadHs9\ \x92aG\x9d\xf6.\x8b5\x93\x91\xd9\xc4@\x8e\xb5\xc9\xce\x12;\x1f_\'I\xa4\x13\ \xb1\xa9G\t\xaeE1\xaa\x9e\x13\xaf\xb1\xebo\xaf\xe4\xabg\x1b\xc0\x80\xb2\xa6E\ \xd2\xee\x96uR&\xd2\x9c\x8b,\xf5&\x08\xc5\xd6\xc3\xf0\xcdR\xb0\xa0Mjw\xa49\ \x9af(\xcdsi\xf6\xa7y4\xcb`\x86\xf5=\xec\x89\xd5\x8fG*\xc3o3\xfc:\xc3\x914\ \xb5xfDQ\x9f}n\x06\x92\xd8\xea\x12\xd3\xacR\xb2J\xbf~\xfd\xc2\xb2\xea\x8bB4\ \x1c\xc9\x99H\xfec\xa3\x9b}\xb9\xad\xaeqp\x88\x9b\xfbx$v<\'l\x9dq\xa4\xab\ \x9cx;3R\x89Ue\x07\xd3\x1b\xbc\xad\xc2\xc2\x06\x0f\xde\xc6\x89\xceV\xfeh\xaa\ \x83~\xe8\x98\x96S\x02u\x813\x02\'\x04\x0e\x0b\xec\x17\xd8+\xb0\xdb?.\xc6y8\ \xcc\xfd\xc7\x08^"\x18&\x18%(\x13\x0c\x11\x1c\'8B\xfd`\x18\xb6\x8e\xe8<\x89\ \xe7;i\xd4n\r#c\x91\xaf\tC\xd5\x94\x9c\xfbo\xf5\xb3\xc9\xefD\x07\xc95\xb9%nh\ ua\xd4c\xd5\xd1>\x94\x1d\xe5\xfa\xd7F`\xafU\x9a\x1eUSR\x166\xb2\xb20\xcfua95\ \xc5\x93\xf9;~\xe4{\x06&\x9e\xcce\x964\x99>*\xee\xc6g\x0fg\xacv4$\xf2\x89\ \x89t\xb5?\x03\x03\xd2\xae\xf2cE\x9f\x1b\xeb@y\xe1\xdc\x8f\xe7|5"3"\xccL\xfc\ w\xd8\x01\xa7-\xb5\xde\x9f\xc73\xba\x8f\xfdy\xe6\xe5\x84\xb5\x1f\xb7\xd1\xe4\ \x8c\x8cZ\xe8p\x857-\x0c\xad\xb5E\xfb\x0c\xcct\xa9\x9a\xab\xcf\xe9]IG\x93\ \x99\xa89\x1b\xb2P\xe6\xe2Iw\xba\xb4\x9d\xea\xc7\x99_g^\xdc*\x93&\x92-3R[j\ \xb0h<\xe7\xc7\'\xf0y\xa7\xf0^5_S1<\x16\xe9\xa4\xf3\xb1\xc5ZBF55<\xace\xa1\ \x8d^i\xa7\xba\xceG\xc6s\xbe\x1d\x89:7v"0~\xbd.6\x8cuv8\xaaa\xdb9\xe32Z\x15\ \xc7\xbc\xa8\x8e]o\xf7-\xb7v2\xd8`\x17\x9ei\xd1\xdf\xc3e=\xacN3%.\xa1\xa8/\ \xecipd\x94\x97\xea\x1c\xea\xa4\xaf\xf3\x0b\xcd\x0e\x19e\x7f\x925\'\xda{wiX\ \xa6G\xde\x88\xac\x8a\xd3Zf\xab\xd9\xad\xe2\x8d\xcah\xf8\x86\r\x06:\xeaM\xe0\ \x17<\x94\xe1\xe3\xf1\xe7\x16\'\x9fb\xda@\xc8eB\\\x98\x81\xaf\x98!\xe7\xfd\ \xf2R\xfe\xed\xc3\xf2\xe6\x08\x17\xf7gU}\xcar\xc3\xe7=\xb1\xcf7\xdd\xa0\xeeW\ \x1a\xa6`\xad5\x0e\xd8`\xe7d\x1c\xa8Eo\\\x89\x97\xbdC\x93u\x9evg\xa0aX\xd9|\ \x15\x83*n\x8d\xea\xfe\xb4\xaa[\xda8\x1f\xe2\xeb\xfe\xa0fu\xe2\xce\xea\xb6\ \xdfk\x83\n/\xc6\xb5\x1f\x1d\xad\x0bW\xf9\x8b"\xb0\xdei\xeb\xdd\xe3\x94\xb7\ \x18\xb1\xd2\x88]\x86}\xd4\xf2\x0e\xef\xbd\xf7\x98"=\xb6J\xec\x91\xb6t\xb2\ \x0e\x94\x99r\xde\x01\xae_\x0c\x81\xc9\xfd\xac2\x11\xee\xb6E\xca\xe5\xf8\xc1\ dK\x076\xb1 \xc3`\x8a\xe9\xc2\xfd\xf7\x95V\xb8\xdf\xacX\xc1\xde\xd7\xc5\xb7.\ \xba\xe8\xa2\x8b.\xba\xe8\xa2\x8b\xffa\xfc\x17\x04\xec\x08\xf14\xc1\xbc\xe9\ \x00\x00\x00\x00IEND\xaeB`\x82\xb8\x05\xf3\x8b' phatch-0.2.7/phatch/actions/perspective.py0000644000000000000000000002532611346363116020553 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image import Image global math, r import math r = math.radians global imtools from lib import imtools global HTMLColorToRGBA from lib.colors import HTMLColorToRGBA TOP = [100, 30, 0, 0, 120, '0%', '5%'] BOTTOM_STRETCHED = [35, -30, 0, 0, -120, '30%', '5%'] LEFT = [100, 0, 30, 120, 0, '5%', '0%'] RIGHT_STRETCHED = [35, 0, -30, -120, 0, '5%', '30%'] TOP_LEFT = [100, 5, 5, 40, 40, '15%', '5%'] PRESETS = { _t('Top'): TOP + ['None'], _t('Top Stretched'): BOTTOM_STRETCHED + ['Flip Top Bottom'], _t('Bottom'): TOP + ['Flip Top Bottom'], _t('Bottom Stretched'): BOTTOM_STRETCHED + ['None'], _t('Left'): LEFT + ['None'], _t('Left Stretched'): RIGHT_STRETCHED + ['Flip Left Right'], _t('Right'): LEFT + ['Flip Left Right'], _t('Right Stretched'): RIGHT_STRETCHED + ['None'], _t('Corner Top Left'): TOP_LEFT + ['None'], _t('Corner Top Right'): TOP_LEFT + ['Flip Left Right'], _t('Corner Bottom Left'): TOP_LEFT + ['Flip Top Bottom'], _t('Corner Bottom Right'): TOP_LEFT + ['Rotate 180'], } FIELDS = ['Scale', 'Left Shear Angle', 'Top Shear Angle', 'Bottom Shear Factor', 'Right Shear Factor', 'Horizontal Offset', 'Vertical Offset', 'Transpose'] OPTIONS = ['Top', 'Bottom', 'Right', 'Left', 'Top Left', _t('User')] def perspective(image, width, height, skew_x, skew_y, offset_x, offset_y, left, top, back_color, opacity, resample, crop, transpose): image = imtools.convert_safe_mode(image) if transpose == 'NONE': transpose = None else: transpose = getattr(Image, transpose) image = image.transpose(imtools.get_reverse_transposition(transpose)) if opacity != 100 or back_color != '#000000': image = image.convert('RGBA') if width != 0: width = 1 / width if height != 0: height = 1 / height offset_x = offset_x * width offset_y = offset_y * height skew_x = math.tan(r(skew_x)) skew_y = math.tan(r(skew_y)) matrix = (width, skew_x, offset_x, skew_y, height, offset_y, left, top) perspectived = image.transform(image.size, Image.PERSPECTIVE, matrix, resample) result = imtools.fill_background_color(perspectived, HTMLColorToRGBA(back_color, (255 * opacity) / 100)) if crop: result = imtools.auto_crop(result) if not (transpose is None): result = result.transpose(transpose) return result #---Phatch class Action(models.Action): label = _t('Perspective') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(perspective) version = '0.1' tags = [_t('transform'), _t('filter')] __doc__ = _t('Shear 2d or 3d') def interface(self, fields): fields[_t('Projection')] = self.PerspectiveField('Left') fields[_t('Scale')] = self.SliderField(100, 1, 200) fields[_t('Left Shear Angle')] = self.SliderField(5, -180, 180) fields[_t('Top Shear Angle')] = self.SliderField(5, -180, 180) fields[_t('Bottom Shear Factor')] = self.FloatField(40) fields[_t('Right Shear Factor')] = self.FloatField(40) fields[_t('Horizontal Offset')] = self.PixelField('15%') fields[_t('Vertical Offset')] = self.PixelField('5%') fields[_t('Transpose')] = self.OptionalTransposeField( 'None') fields[_t('Background Color')] = self.ColorField('#000000') fields[_t('Background Opacity')] = self.SliderField(0, 0, 100) fields[_t('Resample Image')] = self.ImageFilterField('bicubic') fields[_t('Auto Crop')] = self.BooleanField(True) def values(self, info): #get info dpi = info['dpi'] x, y = info['size'] #get field values scale = self.get_field('Scale', info) / 100.0 return { 'width': scale, 'height': scale, 'skew_x': -self.get_field('Left Shear Angle', info), 'skew_y': -self.get_field('Top Shear Angle', info), 'left': -self.get_field('Bottom Shear Factor', info) / float(y * 100), 'top': -self.get_field('Right Shear Factor', info) / float(x * 100), 'offset_x': -self.get_field_size('Horizontal Offset', info, x, dpi), 'offset_y': -self.get_field_size('Vertical Offset', info, y, dpi), 'back_color': self.get_field('Background Color', info), 'opacity': self.get_field('Background Opacity', info), 'resample': getattr(Image, self.get_field('Resample Image', info)), 'crop': self.get_field('Auto Crop', info), 'transpose': self.get_field('Transpose', info)} def get_relevant_field_labels(self): relevant = ['Projection', 'Background Color', 'Background Opacity', 'Resample Image', 'Auto Crop'] projection = self.get_field_string('Projection') if projection != OPTIONS[-1]: for label, value in zip(FIELDS, PRESETS[projection]): self.set_field_as_string_dirty(label, str(value)) return relevant return relevant + FIELDS icon = \ 'x\xda\x01V\x06\xa9\xf9\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x06\rIDATh\x81\xe5\x9amh\x9dg\x19\xc7\x7f\xd7s?\xe7m[\ zNb\xda\xd2\x8d\xacY\xe6\xf4\x83\xf3C\x87kVVq\xa3\x18\xc5|\xd2m\x8d\xb2%D$\ \x84"\x1d\x94Rd\x1fTp\xe8\x07\x11\x0b\xce"\xa38\x95\x19[\xa6\xb1~p\xd2\riXMM\ \xc7\xb6\x94\r\xd3V\\\xda\xc1\xe8\xd6\xd4\x98\x97\xa6\xcb\xcb9\xe7\xbe/?\x9c\ s\x9e4\xedIr\x9e\xe7\x9c\xb39\xfc\xc1\r9\xe1y\xce\xf9\xffs\xbd\xdc\xd7s\x9f\ \x88\xaa\xf2q\xc6\xfb\xa8\x05T\xcb\xff\xa7\x01\x11yTDv\xd4ZL\x14B\x19\x90\ \x02>p\x19x\xa0>\x92\xc2\x116\x02\xf1\xae\xae\xae{\x06\x07\x07\xe7\x81\x9f\ \xd5CPX*6 "\x024\xcc\xcd\xcd=\xd0\xde\xde\xfe\xb7\x91\x91\x91>\x11\x89\x89\ \xc8]"\xf2\xaa\x88\xa4\xeb\xa8sU\xc2F\xc0\xcc\xce\xce~\xc2\x18sKkk\xeb/\xce\ \x9e=\xfb\x9b={\xf6\xcc\x00\x8f\xa8\xeal=\x04\xaeG\xe8"\xb6\xd6\x06\xf7466~\ \xe3\xc0\x81\x03\xa7\x8f\x1e=\xbaED\x0c\x80\x88\xec\xf80\xa3\x11\xda\x80sn\ \xc5\xce\x97J\xa5>\xb5s\xe7\xceWN\x9d:\xd5/"1`7\xf0\xe9Z\t\\\x8f\xd0\x06\xb4\ \xcc\xd6m\x8cI\xb5\xb5\xb5\x1d\x1a\x1b\x1b{~\xdf\xbe}O\x03\xaf\xd5D]\x05D\ \xd9\x07V\x9d=\x9a\x9a\x9a\xba\xf6\xee\xdd{zpp\xf0s"bD\xe4\x9b"\xf2\x93*\xf4\ \xadK\xd5)\xf4\xcb\x91q\xe6\xb36x\x9dJ\xa5\xee\xd9\xbe}\xfb\xc9\xe1\xe1\xe1=\ \xc0\x9f\x80\x83U\xab\\\x83\xaaG\x89\x91\x8b\x93|\xef/o\xf1\x8f\xf7g\x00p\ \xce\x01$[ZZ\x9e\x19\x1d\x1d}v\xff\xfe\xfdK\xb2\xcc\xe7\xab\xfd\xbc\x1b\x89\ \x12\x81\x95\xbf\x10\x98\x9e\xcfrp\xe8\x9f\xfc\xea\xf48\x1f,eq\xce\xe1\x9c#\ \x9dN?\xd6\xdb\xdb{z``\xe0~\xe0.\xa0_Dn\xab\x8d\xf4\x02Q\x8ax\x85\x03A\x82\ \x9f\x87/L\xf2\x83\x97\xceq\xf6\xf2,\xd6Z\xac\xb5\xc4\xe3\xf1\xbb\xb7m\xdb\ \xf6\xca\x89\x13\'\xbe\x0ct\xab\xea\xb5\xeae/S}\x04n`j>\xcb\xcf\x87/\xf0\xc2\ \x9b\x97X\xcc\xe5\xb1\xd6\xe2\x9cK677\x1f:v\xecX\x1b\x043\xd5\x80\x88|!\xa2\ \xee\x00?\xe4\xf5\xea\x8a\x0eT\x15UE\x84\x9b\xfa\x92\x02\xc3\xefLs\xee\xca5v\ \xdf\xbb\x89\xad\xe9\x04\xce9T\xd5\x14\xefU\x11y\x1a\x18\xaf\xd6@\xa4.\xa4\ \xaa8\xe7\n)\xe2\x9bU\xd7\\\xd6\xf1\xdc\x99\xcbd\x8b\x91\xc8f\xb3\xcb&U\xcf\ \xabj\x0e@D\x9aD\xe4\x93Q\x0c\x84\x8d@ \xbc\xf8\x17%\xe9\x1b\xf2n\xed\xc7R\ \xeb\x1c\xde\xea\xdb\x07@\'p\'\xf0\xc3\xb0zB\x1b\x00\x82.\xe3\x9c#\x113\x98u\ \x0c8k\xd15\x0c\xa8\xea\xf3Qt@\xc4\x14*u\x18\xe7\x1c\t\xdf\xac\xbb\\1\xe5*AD\ \xee\x16\x91?V\xdan\xa3\xa4\x90^\x1f\x81\xb8o\xf0\xd6K!k\x11u,--U\xf2\x11\ \x17\x80\x1fU\xdan#\x19\xb0\xd6R*\xe4\x8aR\xc89D+\x8b@qX|\xbd\xf4ZD\xee\x05\ \xce\xa9\xaa-w}\x14\x03nE\r\xf8\x95\xd4@\x0e*4p="\xb2\t\xf81\xf0$\xf0v\xb9kB\ \x1b(\xe5\x7f\x10\x01\xdf\xc3\xac\xa2\xed=9\xcf\xf9\xecIv\xe9\x13\xe0*N\xa1\ \x00U\xbd\x02|e\xadk"\x15q\xa9\x95Zk\x0b\x85\x1a\xbby]\x8a\xbd\xc9\xaf\x17\ \xbf\xcd\x99\xb9?c\xad\x0bS\xc4_\x14\x91\x8a\'\xd8\xea\xdb\xa8o0\n9\x96xO\ \xff\xc5fie\x91\x0f\xf8\xed\xec\x01rs\x8b\xa4\x16\x1aP\xe7p\xael\n\x97\xe3U`\ \xb2n\x06\xae\xdf\xc8\x9cs\xc4b>/.\x1cbx\xf1\xf78\xcd\x11s>\x19\x7f3\xa9l\ \x8cT>\xc3\x06\x97AD@\x84|>/\xe5\xdeSD\xee\x00\xfe\xad\xaaYU\xbd\n\x9c\xa9\ \xa7\x81\x15E||\xe1Y\xfe~\xed\x05R$\x88s\x1b>>f\xc9\x92\x91\x0c\xe4\xa1A\xd3\ x\x9e\x87S\x871\xa6\xac\x01\xe0;\xc0I\xe0\x0fa\xf5D)b-E@D83\xf72\x19\x97!)I\ \xe2\xc4\xf0\x89a\xd4C\x104\xa1\xb4g\x1e\xc27\x1e\x16\x83\xe7ye\r\xa8\xea\ \x93auD5\xa0\xa5\x19\xc8\xf3\x8a\x01\xac\ \xb5A\xd3\x17\x112\x9aF5OB\x92$%\x81\x8f\xcf\xed\xa9;\xe9\xda\xf2(\tbA\xcb\ \x05\xa6s\xb9\xdc4\x80\xaaN\x89\xc8\xef(\x9c\xb1VE\xe86*"\xce\xf3\xd3\xd9\xd9\xf9\x14\xf00\ \xd0\r<^\xad\xe8\xeb\x89\xb4\x13\x97\xc4\x8b\x08[om\xe3\xe1;\x1ebKrcP\x17\ \x00\xf3\xf3\xf3W\xc6\xc6\xc6zzzz\xfeZ\x9cc\x8e\x17WM\x89r\xac\xe2`9\x02\xbb\ [\xbf\xca\xed\xa9M\xf8\xbe\x1f\xac\x99\x99\x99\xa1\x81\x81\x81\xcf\xf4\xf4\ \xf4\xdc\x07t\xd4V\xf2J"md%D\x04\xe3\x19D\x04\xcf\xf3P\xd5\xc5\x8b\x17/~\xbf\ \xa3\xa3\xe3 \x90\x07N\x00\xef\xd6N\xee\xcdD\xeaB\xa5\xda+\xa5\x8b\x88p\xf5\ \xea\xd5\xb7GGG\x1f\xe9\xeb\xeb\x9b(=\xebR\x18\x0b\xeaJ\xe46\xaa\xcbOYvbb\ \xe2\xb9]\xbbv\xed\x05R\xc0K"\xf25U\xbdT[\xa9\xe5\x89\x92B\xd6\xda\xc2`\x96\ \xcdf\'\xc6\xc7\xc7\xbf\xd5\xdd\xdd}\xbcX\xa8K@{\x8d5\xaeI\xd8"\xb6\xd6\xdai\ \xe7\x1cSSS/\x1e>|\xf8\xb3\xdd\xdd\xdd\xff\x01\xbe[\x0fq\x15Q:\xa0\xaad\x01I\ `\xeb\x91#G\xfa\x80\x18 \xc0F\xe0Ka\xde\xa7\x96K\xc2l\x86\xc5/\xfa|\xe0\x16`\ \xee\xc6s\xd2\x8f\x82P)\xa4\x05r\xc0!\xa0\xb7.\x8aB\x12*\x02\xc1M"f\xb5S\x82\ \x0f\x9bH\x06\xfe\x97\xf8\xd8\xff\xb3\xc7\x7f\x01P\xac\x83\xc2\x03\xdcD\xbc\ \x00\x00\x00\x00IEND\xaeB`\x82\x9e\x92\x0c"' phatch-0.2.7/phatch/actions/posterize.py0000644000000000000000000002111011346363116020231 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageOps, imtools import Image import ImageOps from lib import imtools def posterize(image, bits, amount=100): """Apply a filter - amount: 0-1""" image = imtools.convert_safe_mode(image) posterized = imtools.remove_alpha(image) posterized = ImageOps.posterize(posterized, bits) if imtools.has_alpha(image): imtools.put_alpha(posterized, imtools.get_alpha(image)) if amount < 100: return imtools.blend(image, posterized, amount / 100.0) return posterized #---Phatch class Action(models.Action): """""" label = _t('Posterize') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(posterize) version = '0.1' tags = [_t('color')] __doc__ = _t('Reduce the number of bits of color channel') def interface(self, fields): fields[_t('Bits')] = self.SliderField(1, 0, 8) fields[_t('Amount')] = self.SliderField(100, 1, 100) icon = \ 'x\xda\x01\x10\t\xef\xf6\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x08\xc7IDATh\x81\xbd\x9a{pT\xd5\x1d\xc7?\xf7\xb9\xbbw\ 7\xbb\xd9<6\t\x81l\x88 \xf2P\x08\x91\x02\x82\x10@\xad\x80\xe8\xd4\xc1\xd7\ \xb4\x11\xad\xad\x1d\x15[[u:\xb6(Z\x87\x81\xe9LAm\xb1\xd0i\xa7C\xe9\xb4uD\ \x8am\xb1>F\xb4\xbc\x1c\x1f\x8d1$\x84\xa2-\x1a\x92\x182&,\xd9<\xf6yO\xff\xc8\ k\xb3l\xc2\xbd\xd8\xed\xef\x9f\xbd\xf7w\xcf=\xe7\xfb\xbd\xbf\xdf\xf9\x9d\xdf\ \xf9\x9d\x95\xb0(B\x88\xf3t\xdb\xb7o\xcf\x97e\xf9f!D\xa5i\x9a\xb9B\x88\\!\ \x84\xd74M\xafi\x9a9B\x88\x1c!\x84\x0b\x08I\x92\xd4.IR\x1b\xd0*\xcbr3\xf0\ \xa9\xaa\xaa\'\xd7\xaf_\xffAz\xbf\x92$Y\x85\x85\xe5\x96\xa9\x046m\xda4\xcb4\ \xcd\xdf\xc6\xe3\xf1J!\x842\xa8N\xaa\xaa\xda\xab\xaaj\xaf\xc3\xe1\xe8\xf7\ \xfb\xfd\xa6a\x18\x12 G\xa3Q\r\xd0\xda\xda\xdaD8\x1c\xd6#\x91\x88W\x08\xa1\n\ !\xd0u\xfd\x0b\x97\xcb\xb5\x7f\xea\xd4\xa9\xf7\xd6\xd4\xd4\xc4\xec\x12P-\xb7\ \x1c\x94\x1d;v\\\xd3\xda\xda\xfa\x92\xa2(n\xbf\xdf\xdf6y\xf2\xe4\xe8\x94)SJ\ \xbd^\xafKQ\x14\xaf\xaa\xaa\xde\xbe\xbe>:;;\t\x87\xc3\x84\xc3aJJJ0M\x93\xe2\ \xe2b\xfa\xfb\xfb\x994iRGCC\xc3\xe9\xa6\xa6&w[[[Y"\x91X\x17\x0c\x06\xa3\xc0w\ \xec\xe2\xb1M\xe0h\xe3\x9fV\xf4v\xe4\'\'\x94Lh6\x0c\xa3<\x14\nIuuuh\x9a\x86\ \xaa\xaa\x9c8q\x82\xb2\xb22|>\x1f.\x97\x8b\x96\x96\x16\x1a\x1a\x1a8~\xfc8\ \x8b\x17/f\xd1\xa2E\xc4b\xb1\xc0\x8c\x193\x02\xb3g\xcfnq8\x1c\x1fvuuU\x04+\ \x8a\xfa\xecb\x01\x9b.$I\x92|\xf5\x1d\x1c6\xdc\xc6L\xad\xeb\xcaP\xacG\xf7\ \xbb\xdd9\t]\xd7{\x14E\x11\x92$\xc9\xea\x88h\x9a\xa6\xc9.\x97\xabO\xd3\xb4\ \x84\xcf\xe7\x8b\xbb\xddn\x0c\xc3P|>\x9f\x16\x0c\x06\xf5\xa2\xe2@\xb2\xcfl=\ \xf9I\xffn\xbd\xa9\xe7\x97\x08\xc4\xfcG\xe6\n\x915\x17\xaa\xbc\x9eo\xab\x0e\ \x16\xa0\xf5IR\xf0\xa0\xd7\xe3\x82d\xd8w\xae\xbf/_\xd3d#\xae`\xc4\x05F,\x89\ \x0b\x87\xe1O\xe6\xfa\x0bM\x7f\x9e\x8b\xc2R\xbd\xc7(\xe8\x89\xaa\xbe\xcf\x12\ 1\xf5\xb4\x16J|j\xb4$N\xe7\xc6\xce\x84\xca\x80\xc2\x94!\x1e\x04\x9e\xb3\x83\ \xc92\xd5\x9c|\nf,\xe1\x98\xe1\xa3Xw\x81\xee\x04\xdd\x05\xda\xe0o\xaan\x94\ \xde\t\xaan\x19O\x04\x98\xf7h\x15\rV_\x90\xad6\x9cv\x15\xcf\xa9:\xc5\xa9\xba\ Q\x91U\x8c\xa1\xb7\'N`\xb3\x9d\x17,\x13H\xc4\xa8\x1e\xba\x16b\x14\xde\xb1\ \xc1_\x1c\x91Yv\x1a[&\xc0\xc0\xd79\xff\xeb\xfe\xcf\xc0K(\x92\x0e`\xday\xcb2\ \x01I\xc2\x1c\x0f\xe0\x97u\xa7%%?e\xf5\x84\x97\xc1&\x01\xcbQH\x92H\x8e\xa0b\ \xd4\xe5\x97\x05\xefP|\xcc\xce\x7f\x00Mu\xe0n\x9f(C\x8bUX6\\h\x88\xc0x\xa0.\ \x02\xbc\x84L\x91Z\xcd\xc1C\xff \x12\x89\xe0\xe9Z\x95k\x19\x13\xf6\\(\x99\ \x0ep,\x90V\xe7B\xd0{-w]v\x02\xd19\x95E\x0b\xaf\xe6\xe8;\x07\xd1\x9a\x03\x1e\ \xab\x98\xe0b,\x90\x0e0M\xac\x82W$\x9d\x859\xcf\x129\xeb\xc2}*\x0f\xc3ps\xc5\ \xb4iD\xea\x8fY_5\xb0g\x81DF\x80i\xf3!\xf3\xcd\xa8\x9e\x98\xe9\xff\x06\xf7\ \x04\x8f\x90k\x94\xf2\xf3M?\xa6\xban\x0b\xc7>\xaa\x03\xcdEA\xc7\x11[\xf1\xcb\ \xd6$\x1eo\xb2Z\x99\xc8\x01\xa3\x92\x1b\x8bv\xe2<~\x10m\xd7Z\x94\'?e\xcb\xf3\ \xbb\xe8;\xf5O\xf6mx\x90\xda\x96\x1e\xfe\xb0\xd8\xcc\x0e\x01\xc6\x8aB\x16\ \xddiJ\xcejV\x15nE\xdfy\x0b\xb4\xd5\x83$\xb1\xffo\x7fe\xc9\xd2jr&Wq\xa7\xbf\ \x89\xbb\x9d\x9d(\x92\xd7\x16\x01\xdb.4\xee\xc25\xc6\xb3\xaa\xdc\xfbX\x9d\ \xff3\xf4\xe7\xae\x1f\x00?\xd8\xe0\xb3m7\xf3\xfcS\xdf\xa7\xa3\xa3\x83H\x7f?\ \x13=`\x8aD\x96\\\x88\x14\x0bd\x02\x9f\xa2\x1f\xb9\x95X^\xf04U\xc6\rh\xdb\ \xaa\xa1\xbb}T\x9f\xf7W\xb9\x88n\xdc\xca\x91\xc3\x87\x98\xa3\x0el\x07\xec\ \x12\xb0\x13\x85\x12\x17\x02\x9f.\xd5y\x8f3=9\x1f\xf5\x99\xea\xf3\xc0\x03\ \xc4#\xbd\xbc\xfa\xfa\x1b\xbc\xb4\xf5Q\xf2\x9c\x03\xba\xacY`\x88\xc0xI\xdc\ \x101!\xa0\xc8Y\xc9\x14s\x0e\xca\xafnB\x98}\x0c\xedQ\xc4\xb5?"i\x9a\xa8onA\ \x93L\x9a\x9f]\xcb\xc6KS\xfa\x91\xed\xe5\xb2\xb6\xe6\x80\xa5\x85\x8b\x81\x18\ \xbf<\xefq\xd4\x17\xbe\x8b\x88\xa6\xec\x14s\x02\x88U?!\xbc\xf0{ \r\x0c\xfd\ \xe0l\x08\xb8F\x9a\x98\x8a\x9a\x9dd\x0eF\\(UD\x06+,\xf0\xde\x87\xeb\x9d=\x10\ \x1a\xcci4\'b\xceZz\xa7\xae\xe4\xc3\xdaZ\xfc\x85\xc5\xf4-\xdf0\x06"%k\x16\ \x88\x0f\xa0L\x01\x9c\xf2|\x88H\xae^A\x85q\rR\xed\x0b\xc3\xcf\xa2_\xb9\x97\ \xd6y?\xe0\xe4Y\x89\xf6\x13\x1f\x10\n\x85\xe8\xbd\xf2[\x19\xc71U\xcd:z\xecY \ >V\x98L\xbd\x9e./A\xae\xdd\x03\xe6H\xeew\xf8x\x0b\xa53\x17\x10\xfe\xf8]&\xe4\ :\xf9\xbc\xa5\x99\xc7~\xf8H\xc6A\x84\xa2f)\n1\x92J\x881\xac\x80\x80\x80Q\x05\ \xf5\xfbF\xb5\x9b\xecI I\x12\xa5W^\x87\xee\x0b\x90\x97_\xc0\xda\x9e\x173\x13\ P\xb34\x07\x86](u\xb0\xb4p\xaa\xc8:N\xb5\x00\x119\x97\xaa\xc61\xefV\x9a\x9b\ \x9b\x91+o\xa1\xee\xed\xfd\xe5\xb3\xafbF\ \xeb\xcbl\xf0\x1d@\xceT\x0fqz\t\xcf\xbf\xa1\xdf\x06&[\x04b\x19\xb5)DrbN\xe8\ \xef\x1e\xad\xf6\x97s.\x14"\xd7\xed \x99L\xe2\x980\x8d\x99\xf9\x19\xfaQ\x1dt\ U\\\xc2\x9f\xe3O[.\xa9\x80\xbd\x958\x9e\x9e\xef\xa4G\xa4\x90\xf99\xb8|\xc3\ \xd61\x17\xddO\xe2\xa1wh\xae?\xc2\x9c\xa5\xab8z\xf8 g>z\xeb\xfc\xbe\x0b.\x81\ {\xf6\xf2V\xb0\x89$\x89,\xad\x03bd\x0e\x881\x12\xb7N\xb9\x1da\xf8\x87\xf5]\ \xd3oARu\xbcr\x94\xee\xeen\xf6m\x7f\x92e\x13\xd3\xfau\xf9\xe0\x9b{hm\xd8\xca\ \xa9@\x04\xb2U\x95`p\x12\xa7\xfb~\xea}\\D\x07\xe2\xf8\xac5\x08O\x11\xc2\xe9\ \xa5\xf6\xfdw1\x8a&s\xdb\xfc2\xeev\x1c\x1a\xfd\xb2\xb7\x04\xeez\x81\xceC\x8f\ \xb1\xa7\xfc\xcd!m\xd6V\xe2h\xfa\xc2\x95)\xa9;\xd9\xf6k\x92_\xddHo\xf9R\n\n\ \x8bH\x9cm\xa5\x17\'\xaf]\x1f\xe6\xf2!\xdf\x97\x15\x98W\x03\x0f\xbfGg\xdd3\ \xfc\xbe\xe2U\xe2jzO\xd6\xc4z2\x97\xeeB\xa9\xc3\xa5Z\xc1\xb7\x90\xee\xeen\ \x1a\x92\xd3\x99{\xea\x143\x17,\xe3\x95\xdd\xdbY1q.\xe4\x04`\xear\x98\xb9\ \x1a\xb3q\x1f\xc7\xfeR\xc5\xdb\x97u\xa4\x82\x87l\xd5\x85\x18\x8cB\xe3VU\x04\ \x04\\\x95\x1c8\xf8w\xae(~\x8f\x8f\xdewP:\xf1\x0e$\xc5\x01W?@\xe2\xdc)z\xcf}\ H\xe3\x81\xa7\xa9\xad\x08\x13\xc9\\D\xcc\x1e\x81\xb1\xca\x8a\xa9\xee\x14\x8b\ &\xf9\xda\x9a\xdbq8k\xd8\xb1\xff\xeb\xec\xae\xd9\xcdm\xeb\x9b\xf8\x05\x10)dt\ 1=\xb3d-\x95\x88Zi\xb4\xef\x95]466\xa2\xc8\x1a\x85\x81\x00+\x1ek"\x12\x84\ \x88\xf5bIv, \xc4\xe0Bv\xa1\xb2b\xc5\x1b\x1c\xaeW).)\xe2L{;EA;p\xd2G\xb8\xb0\ \xd8!\x10\xb5\xb2\xa1\xcf/\x85\x95ew\x02\x10s7^L\x89=\xcb\x16\xe0\xc2\xa5\ \x94\xbd{_\xe4_\'O\xb0\xeca;P\x86%K\x04\xcc\x819`\xa5\xb8\x15)\xdd\xcb\xe5sF\ ?\xb3!\xd9q!O\x1e\xf5\xfdab\x80\x9e>\xccy{\x82\xf2\x81\xf31\xb0\r\x1e\xe0\ \xa8\x9d\xc6\x96\xa3\xd0\x9b\xbf\x11\r\xc1Y\xdc\xa49\x88\\Le\xce\xa2\xbc\x86\ \xcdSJ;a\x94?>!^\x9dp)78\xdc\xf4\xc0\xf8\xe5u\x9b\xc7M&\xb0\x13\xb8\xfd\x91\ \xb9\xf6h_\xd4\x7f%\x9e: y[\xde\xae\xfc]\xc7\x17\xad+\x14_\x87GO;jM=bM=vM\ \x17\xd5\xccK\xe4\xf7\xdd\xf8o\x87(\xdav\xeb\xd2-;\x87Ae\xfb\xcf\x1eC\xf2\ \xc4\xc6\r\x9b\xff\xf3YS\r9\xedqW\xd9\xc7\x9a\xe29["\xa9\tY\x1f\x83\x80d:M%^\ x\xc6\xd3{\xd5\xe7\x9e\x9ej\x87&\xf2N;4c\xdb\x9a5k^O\xed\xff\xffF`H6o\xde\ \xbc2\x14\n\xddn\x9a\xf1"\xc5\x15\xf3\xa8\x0e\x91\xd4t3\xa69TS\xc5\x13Pe\xa7\ \xd0UW\xbb&{>\xd6Tg\x9d\xaa\xaauB\x88\xe3\xeb\xd6\xad\xcb\xb8\xba\xdb!\xf0_\ \xb5#\xc6\x15\x08y\xb7 \x00\x00\x00\x00IEND\xaeB`\x82\xc8\xf6o1' phatch-0.2.7/phatch/actions/rank.py0000644000000000000000000002631311346363116017152 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageFilter, imtools import Image import ImageFilter from lib import imtools def rnk(image, radius, rank=50, amount=100): """Apply a filter - amount: 0-1""" rank /= 100.0 r = int((radius * radius - 1) * rank) image = imtools.convert_safe_mode(image) ranked = image.filter(ImageFilter.RankFilter(radius, r)) if amount < 100: return imtools.blend(image, ranked, amount / 100) return ranked #---Phatch class Action(models.Action): """""" label = _t('Rank') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(rnk) version = '0.1' tags = [_t('filter')] __doc__ = _t("Copies the rank'th pixel value") def interface(self, fields): fields[_t('Radius')] = self.RankSizeField(self.RANK_SIZES[0]) fields[_t('Rank')] = self.SliderField(50, 0, 100) fields[_t('Amount')] = self.SliderField(100, 1, 100) icon = \ 'x\xda\x01v\x0c\x89\xf3\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0c-IDATh\x81\xed\x99k\x8c]\xd7U\xc7\x7f\xfb<\xee\xb9\ 3\xf75c\x8f\xed\xb1\x9d\xd8N\xec\x986\x84\xd8NM\xe2\xa8q\xd4\xa4\x96\x08\x8f\ R\xd1*(B}%\x15\xaaB\xd5\xaa\xb4P\xa9\x02\tD!B\x88\x87\xe0\x0b\x02\tQ\xb5\x02\ Q\xc4\x17\xaa\x90\x86\x0f\x15\x12\xa9\xc0\x84<\x9c\x92\xb7\x13\xbb~e\xec\xf1\ \xbc\xee\xdc\xc79g\xbf\x16\x1f\xce\xb9w\xeeL\xc6\x1e;\r\x08\x89l\xe9?k\x9f{\ \xce\xec\xfd\xff\xaf\xb5\xcf\xda\x8f\x03\xef\x95\xf7\xca\xff\xef\xa2\xde\xcd\ \xc6\xea\xf5\x07\xb7LN>\xf0\xf1ju\xea\xde0\x8co\t\x02\xbf#\x08\xa4\xa9\x94\r\ \xc1\xe1=\xb9\xb5\xbam\x8c;kL\xf6b\x9a\x9e\xfe\xa7\xb9\xb9\xc7\x9e\x00\xe4\ \x9d\xf6\xf9n\x08P\xbbv}\xe3\x93cc[\x1f\xae\xd7\xa7\x8eT*\xf5j\x14)\x94\x12\ \xc0\xe3\xbd\xc7Z\x8b\xd6\x06k5"\x06\x11\x8dH\x8e\xf7\x19Z\xcf\xcf\xa6\xa9}\ \xbc\xd7{\xe5\xf7\xda\xed??\xf5\xbf*`\xe7\xce\xbf\xfcd\xab\xb5\xf7k\x8d\xc6\ \r\xef\xafVC\xaa\xd5\x90J% \x8a\x14a(\x88\xc8*\x01ijH\xd3\x8c<\xcf\x10\xd1x\ \x9f\ra\xccR\xda\xeb\xa5\xdf\xe9\xf7_\xfa|\xa7\xf3\xcd\xf9\xffQ\x01\xdb\xb7\ \xff\xee\xee[\xea\x93\x7fwp\xbc}\xd7\xb6\xa6U\xa7jw\xb18\xfe\x13T\xab\x01\ \xd5\xaa"\x8e\x07\x11\x10\x9c\xf3X\xeb\xc9\xf3B@\xbf\xaf\xe9t\xfat\xbbi\x19\ \x85\x14\xef3\x9c\xeb\xe1\\J\x9e\xb7///w\x7fmy\xf9\xb1o^\x0b\x97\xf0z\xc9\ \x1f\xda\xfa\xeb\x9f\xfa\xcc\xe4\xb9\'\x7fu\xec\xc9\x9b\xeeo\x9eQ\x87[\xf3\ \xdc\xd3z\x9d\x85[\x1a\xb4\xb6(Z-C\xb5\xda\xa0^\xaf0>\x1e2>\x1e\x91$\x8a8\ \x0e\x89\xa2\x800T\x84a\x00\x80\xd6\xbel\xd5S\xbc\x06\x1e\xa5\xa8\xc5\xb1\ \xfb\xf9 8\xb25\xcb\xbe\xff\xc4F|\xae+\x02\x1f\xdd\xf9\x89?~t\xdb\xc9/\xed\ \xb3\xa9\xaa4\x1a$\x13\x13D\xad\x16Q\xab\xc9\xf2/\xd6\xd9tg\r\xa5\xaa,-\xd5\ \x99\x9f\xdf\xcc\xfc\xfc\x04\x97/o\xe2\xcc\x99\x1d,/\xd7\xe8\xf5,\x9dNN\xa7c\ XZ\xea\xb3\xb4\xd4\xa3\xdb\xed\xe1}\x8aH\x8as}\xac\xedbm\x17c:t\xbb\xe9\xb7\ \x97\x97\xff\xe8\xa1\xabq\xba\xe6\x08$\xef6\xb5\x88?\xd0\x06f\x80\x0e\x90\x02z\xe8]\ \xb0(e)Rg\x81J\xc5\xf2\xd0CO\xf1\xc0\x03\xdfB)3"v\x94\x9eD0\xfe\x1b\xd7,`r\ \xf2\xd1\xdbol\xb4o\x12Y\xb3L\xf1\x1e\x8caiR\x13~FS\xa9f@\xafD\x07X\x00.\x02\ \x17\x10\xb9\x04\xb4\x11\xe9\x94\xc22 /\xc7\xb8\x19\x8e\xf5A9z\xf4u\x8e\x1d\ \xfb\x07\x94\xd2\x05e\xf1\xab\xbaV\xea\xf2\xb1k\x16\xd0h\x1c\xfel3X*\xe7\xd3\ \x15\xa0\x14\xaf\x8c9.|\xdaP\xdf\x9e"\xd2G\xa4\x8bH\x1bX\x04.\x03\x97\x10\ \x99)\xedeD\x96\x10\xe9\xe0}\x17\xef\xfb\xc3\xd9\xb7@\x8e\x08C\x1c9\xf2\x06w\ \xdf\xfd\x04\xab\x1dW\xf4.\xd2\x99\x80\x8f\xff\xd4(\xcf\xe8J\x02*\x95\xca\ \xfd\xfd\xa0\x82w\x839\x12\xbcR<\xbe\xaf\xc6_=\xb8\x93\xddi\x95?Xl3\xbd\xa9[\ \x86\xda\xe3\xbdE\xa9\x14\xe8 \x12\x97^\xb4x?X2tp\xae[.\x1bzX\x9b\xe2\\\x8e\ \xf7\x94\x10D\xe0\xee\xbb_\xe7\xfc\xf91^y\xe5VD<"2"h\xf2#\xc0?o \xe0\xf6Z\ \x1c\x07\xfb\xbe7v\x88M\xc1\xbf\xb0=\xf7\x9c\x9d\xae\xf2\xd4\x1d\x13\xfc\xe0\ \xf0$>\x86\xd7\xa2\x88\xaf\x9fh\xf0\xd8\x9d\x1dZu!\x08,Ji\x94\xea\x03\t\x10"\ \xa2\xf0\xde\x96\x99$\xc3\xb9\xb4$^\xcc\xb4\xc5\xac+x\x0f\xce\xadX\xe7\x84\ \xa3G\x9feff\x9c\xd9\xd9\x89\xe1\xc4V\x14s\xeb\x86\x11\xd8\xb4\xe9\x9e\x0f*U\ \xad\x9e\xd7?\xc6\x9f~\xee4\xaa\x12@\x12BE\x81\x08\xca)\x0c\x86g\x92\x98\xdf\ |\xae\xceo\x1dXbs\xd3\xa0T\x86R\tJ\xc5\x88D\x88\x80\xf7Ed\xac\xd5X\x9b\xa2u\ \x1fc\xba\x18\xd3\xc5Z\x87s`\xad`\xad\x0c\xc9;\'T*\x9eC\x87\xfe\x93\'\x9f<\ \x8a\x88\xc7\xfb\x81\x00\xbbe\x94\xeb\xba\xef@\x18\xee\xd8/b\x91t\x12Yp\x88\ \x17p\x1e\x9c\xa0,(\x07\x81\x80\xb1\x96\x7f\x0bB\xbe\xfa|\x9d\x0b\xf3\x8bX;_\ b\x0ek\xe70f\x0ek\xe71\xa6@\x9e\xcfc\xcc"Y\xd6\xc6\x18\x8b1`\xed\x8a\x00k\ \x05c\xfc\xd0NO/\xb0k\xd7\x8b\xc3(\x96\x11\xa8o( \x08*\xcd"C(d\xa1\nV\x10\ \xeb\xc1\n\xca\x81r\x822\x108\xc0\n\'\x82\n_~\xbe\xc5\x9b3\xcbh=\x8f\xd6s\ \xe4\xf9,Z\xcf\x92\xe7\xb3\xe4\xf9\x1cY6G\x9e/\x90e]\x8c\x11\x8c\xa1\xb4\x05\ \xac\x15\xb4\xf6\xa5u\x18\xe3qN\xb8\xf9\xe67\x806\xde\x0f\xb2\xd5\xea\xb4\ \xb8\xae\x00\x11S\xf1\xbe\xdc=\xcdlB\xac\x03+`\x04\xac/\xa2`\x05e\x85\xc0A`\ \xe1\xcdh\x9c/\xbf\xb4\x95\x7f}\xbdO\x96\xcd\x93\xe7s\xe4\xf9pZ\xa4\xf3Q\xefu(\xe2\xf0\xde \ \xbd\x06\xfe\xe2\x18\xbe\xb2\x80\x8fs|I\xca\x1b\x8f\xd3\xa6\xf0pn\xf1\xda\ \x15^N\r6\xd3\xd8Lc\xd2\x026\xd3\x98\xbe^\xc9lk\x8bL\xb5{\'v\xec\x81s\xfaG\ \x10\x00p\xe2E\xef\x8f.;w\xf9\x98\xf7&\xf0\xde\xe2\x9c\xc6\xe71\xfe\xad)\xdc\ r\x86K\xda8gp\xa6\x1c\x1a\x99\xc1\xe5\x03/\xaf#\xa0\xaf\xf1\xf6\xed^\x1f\x96\ hb\x997\xa7\x0e\x91\x1f\xbft5f\xd7y\xb8\xfb\xd9\xcf\xc1\xcc\x9f@6\xa6TD\x18\ \xc6\xe5\x89CHP\xed\xc1\xf4\x05\xd8\xda.\xce_\x84b\'\xe5=\xde\xf9\xe2ew\xae\ \xccL\x1b\x94p\xeb9NV\x0e\xd0\xfe\xaf\xc5\x8d\x1e\xddH@@A\xa7R"\x82\x0f\xff$\ \xb4\xfe\x02\x96v\xac\xdb\\\xd4\x87\x89yh-B\xc3\x14\xd3\xc8F\xc5\n\xf4\x12\ \xf05\xc7\xc4\xc4\xf78\xf1\xdc#\x0c\x8e0\x8a\xe3\x8e\x815k\xffu\xbd\xd6\x03\ \x8a\x83\x9d\xb1\x11\xf2\xf1\x1a$\xf0\xe0W\xa1\xfb\xd3\x90\'W$\x16\xf6a\xbc\ \x0bI\x06\x91\x83\xd0\x95K\x11\x05.\x02]\x81\xbc\x02y\xc3#;^\x86\x13\xbf\x0f\ \xaf\xbd1BX\x8f\x10_[\xd7\x14-\xad*c@\x8d\x15\x8f\x0f\x10\xaf\xff\xdb\xc4\ \x14\xdc\xffi\xb0w@\xa7~\xfd\x9f\x1b*\x1aZ\'\xe1\x85\xbf\x87W_\x1d!6\x80Ys\ \x9d\xaf}f\xb4\xc7\x08h\x8d\x10L\xd6\x10O\xd6\x111r\xef\xc0\x07`\xef\x1d 7B\ \xda\x84,.\xc6\xcf\xa0\x0b\'P\xb5EH\xd4\x1c\\|\t\x9e>\x0e\xb6[\x123k\x08\xae\ %\xbb\xee\xbdQ\x01\nh\x94QX\xcf\xeb\xf1:\xbf\xc7#\xd7QY\x8fJ$\xb0e;\x04\t\ \x88\x83\xd9\x99\xb2S\xc7\xea\xf1=\x8a\xf5\xbc~\xa5\x88\xe4k\x05\x0c\xe3J1\ \x8c\x06\x11X\x0fk\xc9F\x14)y\x14\x01o\x1fS\xc3#\xa6\x12\x031\x83\xb3\xc9\ \xf5^\xda\xf5\xc4\r\x85\\m\xd0\x0e2PR"\xe2\xed\x84G\x89\x07k\x88\xaf>\xa5]}\ \xc0w5!\x031\xa3\xa2\xd6\n\x1aN \xd7\xfb\xd6\x05#\xa4cV{\\\x95\xf7G\x05\x8c\ \xf6!#vT\x800\xf88\xb0"`\x80\xc1)\xf0\x15\xcb\xbb\xfa\xa1\xfb\x1a\xda\x7f\ \xc7\x1f\xb4\xdf+\xffW\xcb\x7f\x03{\x9d|\xecF\x00q\x1c\x00\x00\x00\x00IEND\ \xaeB`\x82\xfc+\x1c[' phatch-0.2.7/phatch/actions/reflection.py0000644000000000000000000003176111346363116020354 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t from lib.imtools import has_alpha, has_transparency, paste #---Pil def init(): global Image, ImageColor, ImageFilter import Image import ImageColor import ImageFilter global HTMLColorToRGBA from lib.colors import HTMLColorToRGBA REFLECT_ID = 'reflect_w%s_h%s_o%s' def gradient_vector(size, opacity, cache): id = REFLECT_ID % (1, size, opacity) try: return cache[id] except KeyError: pass opacity = float(opacity) grad = Image.new('L', (1, size)) data = [int(opacity * x / size) for x in range(size, 0, -1)] grad.putdata(data) cache[id] = grad return grad def gradient_mask(size, opacity, cache): id = REFLECT_ID % (size[0], size[1], opacity) try: return cache[id] except KeyError: pass #gradient vector vector = gradient_vector(size[1], opacity, cache) #scale vector grad = cache[id] = vector.resize(size, Image.LINEAR) return grad def reflect(image, depth, opacity, background_color, background_opacity, scale_method, gap=0, scale_reflection=False, blur_reflection=False, cache=None): if has_transparency(image): image = image.convert('RGBA') else: image = image.convert('RGB') if cache is None: cache = {} opacity = (255 * opacity) / 100 background_opacity = (255 * background_opacity) / 100 scale_method = getattr(Image, scale_method) if background_opacity == 255: mode = 'RGB' color = background_color else: mode = 'RGBA' color = HTMLColorToRGBA(background_color, background_opacity) width, height = image.size depth = min(height, depth) #make reflection if has_alpha(image) and background_opacity > 0: reflection = Image.new(mode, image.size, color) paste(reflection, image, (0, 0), image) else: reflection = image reflection = reflection.transpose(Image.FLIP_TOP_BOTTOM) if scale_reflection: reflection = reflection.resize((width, depth), scale_method) else: reflection = reflection.crop((0, 0, width, depth)) if blur_reflection: reflection = reflection.filter(ImageFilter.BLUR) mask = gradient_mask((width, depth), opacity, cache) #composite total_size = (width, height + gap + depth) total = Image.new(mode, total_size, color) paste(total, image, (0, 0), image) paste(total, reflection, (0, height + gap), mask) return total #---Phatch class Action(models.Action): """Drops a reflection""" label = _t('Reflection') author = 'Stani' email = 'spe.stani.be@gmail.com' cache = True init = staticmethod(init) pil = staticmethod(reflect) version = '0.1' tags = [_t('filter')] __doc__ = _t('Drops a reflection') def interface(self, fields): fields[_t('Depth')] = self.PixelField('10%', choices=self.PIXELS[:-1]) fields[_t('Gap')] = self.PixelField('0', choices=['0', '1', '2', '5']) fields[_t('Opacity')] = self.SliderField(60, 0, 100) fields[_t('Blur Reflection')] = self.BooleanField(False) fields[_t('Scale Reflection')] = self.BooleanField(False) fields[_t('Scale Method')] = self.ImageResampleField('antialias') fields[_t('Background Color')] = self.ColorField('#FFFFFF') fields[_t('Background Opacity')] = self.SliderField(90, 0, 100) def get_relevant_field_labels(self): """If this method is present, Phatch will only show relevant fields. :returns: list of the field labels which are relevant :rtype: list of strings .. note:: It is very important that the list of labels has EXACTLY the same order as defined in the interface method. """ relevant = ['Depth', 'Gap', 'Opacity', 'Blur Reflection', 'Scale Reflection'] if self.get_field_string('Scale Reflection') in ('yes', 'true'): relevant.append('Scale Method') relevant.extend(['Background Color', 'Background Opacity']) return relevant def values(self, info): #pixel fields y = info['height'] return super(Action, self).values(info, pixel_fields={'Depth': y, 'Gap': y}) icon = \ 'x\xda\x01y\n\x86\xf5\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\n0IDATh\x81\xd5\x9aYl\\\xd5\x19\xc7\xff\xdf9\xe7\xde;\ \xf6,^\xc6\x1e\xc7qX\x9c\x18\x02\t1\x01+1\x9b l\x0f\xa5P\nR%\xaa*}\xeb&\xaa\ \xb6*\xa8Bj\xd5\xd0\x87\x8a.\x0f-m%*\x84TU\xa8E\x02\xb5\xaa\xaaJmi\x84\x02(\ \xc4q\x02v\xec\xe0I\x1d\x87\xd8q\xec$\x8e\x1d\xcf\x8cg\xee\x9d\xbb\x9c\xf3\ \xf5a\xc6\x03\xa9\xda\x12\xaf\xa8\x9ft5\x0f3:\xf7\xf7\xfb\xce\xf6\xdd{\x86\ \x98\x19\xff\xcf!>\xa9\x1b\x8f\x8d\x8d9\xab\xd1\xce\xba\x0b\xbc\xf6\xdak\xf2\ \xe8\xd1\xa3\xdf\x9a\x99\x99yy5\xda[W\x81\xa1\xa1\xa1\xde\xce\xce\xce\xa3a\ \x18\xfe,\x8a\xa2\x14\x00\xd1\xd7\xd7w\xedJ\xdaT\xab\x83\xf6\xbfcxx\xb8\t\ \xc0sa\x18~)\x08\x02122\x82D"\xd1z\xf8\xf0\xe1w\xa2(\xfa\x1b\x80g\x97\xdb\ \xf6\x9a\xf7\xc0\xf1\xe3\xc7\xf7\x028\x11\x86\xe1W\xa6\xa6\xa6\xc4\xeb\xaf\ \xbf\x0e\xdb\xb6\xb1y\xf3\xe6[\xc20\xec\xcd\xe7\xf3+J\xe2\x9a\xf5\xc0\xf0\ \xf0\xf0\rB\x88\x17\x00\xec\xc9\xe7\xf3\xe8\xef\xef\x07\x11\xe1\xc1\x07\x1f\ \x84m\xdb8{\xf6,\x1d9r\x04\xe9t:\x15\x8f\xc7\xd5\xc4\xc4D\xaf\x10"\xbfw\xef\ \xde\xe3K\xb9\xcf\xaa\x0b\x1c:t\xa8\xae\xa1\xa1\xe1{B\x88\xa7\xb5\xd6\xf6\ \xb1c\xc7p\xea\xd4)\xf4\xf4\xee\xc4\xd5\x1b;\x91\xcf\xe7\xf1\xe6\x9bobjj\nMM\ MH\xa7\xd3\x0fMMM}Q\x08\xd1\xa0\xb5\xbe}\xa9\xf7\xa3\xd5\xdc\x07\xb2\xd9\xec\ C\xcc\xfc+f\xee\x9c\x9e\x9eF__\x1f:\xae\xde\x88\x9e[z\xc0\x06\x18\x1c\x1c\ \xc4\x89\x13\'\xd0\xde\x91AG\xfb\xd5\x00\x00c\x0c\x8c1`\xe6b{{{\xd3\x9e={\ \xa2\xa5\xdcsUz`hhh\x93\x94\xf2y\x00\x8f{\x9e\x87\xfe\xfe~\xb8\xae\x8b{\xee\ \xbb\x0b\xe9\xc6\x0c&&&\xd0\xdf\xdf\x8fTc\x1c\xbbo\xdb\x05K\xda5p!\xc4\xa2\ \xc0\xc1\xa5\xc2\xafX\xe0\xc0\x81\x03*\x93\xc9|CJ\xf9\x03fNd\xb3Yd\xb3Y\xdc\ \xb4\xf3Fl\xdd\xb2\r\xc5b\x11\xfb\xf7\xefG\x10\xf8\xb8\xf9\xd6\x1d\xa8w\x12`\ f\x18c\x00\x12\x18+i$\x15\x90\xb1\r\x98yx9\x0c\xcb\x16\x18\x1e\x1e\xbe\xbd\ \xb5\xb5\xf5\xd7\xcc\xdc=;;\x8b\xbe\xbe>4\xa7\x1b\xf1\xd0\xc3\x9f\x82c\xc50<\ <\x8c\xb1\xb11\\w\xc3f\xb4\xb5l\xac\x81G\x86\x91\xcd\x058:\xabQ\x08\x18_\xd8\ \xac\xa0\x94\x801ft\xdd\x04FFF\xbe/\x84x\xd6\xf7}z\xef\xbd\xf7077\x87\x9e\ \xde\x9dho\xdd\x84\x0b\x17.\xe0\xf0\xe1\xfdh\xdb\xd0\x8a=\xf7\xde\x03Arq\x88\ `l\xde\xc7?&=\xe4}\x03\xc7\x92hK*\xa4\xeb\x08\xcc\x0cf^?\x01cL\xef\xf8\xf88\ \r\x0c\x0c\xe0\xba\x1b\xb7\xa0\xf7\xb6^\x04~\x80\xb7\xdf~\x1b\xae\xeb\xa2\ \xf7\x8e]hH4\xd5\xc0s\xe5\x10\x7f\xff\xa0\x88\x13\x97|\xd8J\xa2\xa1\xceF\xcc\ V\xe8L*(e\x16\xe7\xc3\xfa\t\x10\x91\x1e\x1c\x1c\xc4\x03\x0f\xdc\x8fd2\x85\ \x93\'Obdd\x04;n\xde\x8e\xcek\xb6\\6\xce\xdf\x99,\xe0\x8d\xf1<\x18\x84T\x9d\ \x8d\x98\xa5\x10\xb3\x14\xeal\x89MI\x01\xa54\x8c1H\xa5R\xb3\xeb&\x00\xc0\x10\ \x11l\xc7\xc1\xfe\xfd\xfb\xd1\xdc\xdc\x84\xcf<\xfa\x08l\xcb\xa9e}|\xde\xc5\ \x1fG.\xe2b)B\x9d]\x81\x8e\xd9\nu\x1f\x11h\xaa\x03\x94"\x18c\xe0y^\x02\xc0\ \xfc\x9a\x0b\x10\x11\r\x0f\x0f\x1b"\x02\x98\xe1y\x1e\xee\xbe\xfb\xb35\xf0\ \xa2\x1f\xe2/\xd9\x8b\xe8\x9f\xcc\xc1\xb1\x14\x1a\xe3N\x05\xd8\x92\x97\t\xc4\ l\x05\xdb\xd6\x90\x82!\x84\x80\xe7y\xa95\x17 "\x01@FQDD\x04S\xdd\x04\x95R0\ \xc6`:\xef\xe2\x17o\x7f\x80\xd00\x1a\xea\xab\xe0\x8b\xd9\xb7\x14\x8c\xbd\x80\ S\xf2(\xe6\xc4\x04.x\x1f\xe0\t\xeb\t\xecI\xec\x003C)\x95Z*\xfc\x15\x0b\x10\ \x11\xa1R\xf8\xd9\x00\xea=\xcf\xb3\xaa+\xc7\xe2\xf7\x90R\xa2\x142\xa4\x94\ \x88\xd7U3\xbe\x98i\x8b\xd1/_\xc5\xfe\xe8%x\xb9"\xb0\x00\xa0\x08\xdc\xb5y7T\ \xe3-0\xc6\xc0\xb2\xac\xe4\x9a\x08T\xe1-\x001\x00\x8d\x00\xd2\x85B\xa1\xde\ \x18\x03\xae\x0e\x9b\xc5p,\x89\x86z\xa7\x96\xf5:K\x82m\x0f/\x96\x9f\xc4\x99\ \xb9\x91\x1a8\x16*\xd7\\\xfc\x02\xd4\xf5\x95\xde+\x16\x8b\x8d\xab.P\x85W\x00\ \xe2\x002\x00\xda\x01dr\xb9\\\xbd\xd6\x1a\xcc\x95Zf1,)\xd0\xf8\x11\x01Xe\xfa\xcb\x1a\xfc\xfc\xfc<\x0f\x0c\x0cDRJnii\x11RJ\xbe\x18\xe4\xf8\xb9\xa1\ \xdf\xd1w\xde{F\x8e\x15\xa6AD\x0b\x00\x96-\xb0\x94R\x82\x01\x94\x01\x9c;v\ \xec\xd8\xef\x01<\x1dEQ\xa6*x\xd9\x0f\x83 @6\x9b\x8dR\xa9\x14\xda\xdb\xdb%\ \x111\x83\xf9\'\xa7~KCt\x84J\x85\x05(G@)\xa9\x89(d\xe6\xf2\x9a\x0bT\x87R\x04\ \xa0\xf0\xd8c\x8f\xb5LNN&\xb5\xd6\xfe\xd4\xd4\x94\x88\xa2\xa8\xf6\x9estt\xd4\ h\xadu&\x93\x91D\x04"2\x7f\xbdp\x88^\xc9\xbd*\xb8.\x82\x84D\xb21\t!\x04b\x8e\ \x1d\x12\x91\x16B\xe85\x17\xf8\x88Dx\xd5UW\x95\x8c1\xb9B\xa1P_*\x95R\xcc\x8c\ \x99\x99\x19\x9e\x9e\x9e\x0e[ZZ\xa4eY\x12\x00Ox\x17\xf8\xc7g^P9k\x06*\xae\ \xa0l\x0b\x8eoA6\x088\x94@\xab\xd3\x1a\x10\x11\x03h[\x17\x81E\x89\x81\x81\ \x81\xc8\xb2\xacbKK\x8b\xe9\xea\xea\nGGGu:\x9d\xa6\r\x1b6(\x00\x1c\x91\xd1?:\ \xfd\x92\x1a\t\x06\x89l\x82e[\x90\x8eBR&\x10\xb3\xea\xb0!\xd8n:\xbd\xbb#\xdb\ \xa4B!\x043\xb3s\xf0\xe0\xc1\xe4\x9dw\xde\xb9\xb0\xe6\x02@\xe5\x89L\x08Qjnn.\ \xef\xde\xbd\xdb\xea\xe8\xe8\x88\x13\x11\x0b!\xf4\x81\x99\xe3\xf4\xf2\xcc+VQ\ \xcdB:\x12\xd2VP\xb6D\xbbu-_\xe5\xef4\x1d\xe5\x1d\x91\xc3\x89\x88$\x07\xc5\ \x80C\x00F\x08QJ&\x93\x1b\x01\xfcs\xdd\x04\x8c1\xaeR*\xac\xaf\xaf\x0f\x84\ \x10uDd^\x99|C\xfe!\xff{U\x81V\x90\xb6\x82\xe5\xd8\xd8\x1d<\x1enqo\x8d$\x91\ \x86@@D\xbe\x84\x88B\x8d\x88\x19\x93D(*\xa52\xeb*\x10\x86\xa1\x0b\xc0\'"\xa7\ :\xb9y\x9e\xf3R9\n\xca\xa9\xc0_+o\xd2\xbb\xfc\x87\xfd\x06\xd3\xac\x85%|\x00e\ \x01\x84\x82(\xaaw\xe8\xd25)yTJq\x16\x95%zM\xaa\xd1\xff&\x10\x19cJ\xcc\xec\ \x13QY\x08\x11\x01\xd0\xac\xb4\x8aQ\x1c\x9d\xd6\xf6h\x1b\xdd\x16\\c\xb6\x06$\ 8\x84\x84\'\x88|"\n\x95\x80\xd7V/\xde\xefH\xaa\x13B\x08\x1f@\xc0\xcc\xe7\xb4\ \xd6}\xeb& \xa5\x0c\xb4\xd6.\x11y\xccl\x03\x08\x88(\xba#q7z\xdcO\x97\x1daG\ \x82\xaaE \x91\'\x05\x85\x82\x1048b\xbc#\xa1\x06\x1dK\x96P\xc9\xfa\x82\x10\ \xe2\xf0\xd6\xad[GQ\xd9g\xd6G\x80\x88\xc20\x0c]f\xf6\x008DT\x06\xa0\xdbUF\ \xcf;F0\xd8#\xa6\xa2\x14\x14\x10!\xa8\xb3\xc4\\[\\\r\xc6-\xbaHD!*u\xea\xfb\ \x96e\rtuu\xf9\xcbaX\x91\x00\x800\x08\x02\x97\x88\\\x006\x11yD\x14)\xc9l\x0b\ \x0e\xa4\x10.\x81CK\xc9RcLf\x1b\x1d:\x8dJ\xc6Cf>\x07\xe0\xf0\xb6m\xdb.\xad\ \x04|\xa5\x02\x811\xc6\xd5Z\x17\x99\xd9"\xa2\x05"\x9a\xb7$\x99\x84\xa3\x98\ \xc0~\xdc\xa6\x89\xa6\xb8=**\xbd\x14\x1ac\x8aR\xcaw\xb7n\xddzz5\xc0W$\xa0\ \x94\xf2}\xdfw\xa5\x94\x85(\x8a<"*\x11\x91_gI\xb2\x85\xce%c\xf6\xa8$\xce\xc3\ \x98\x80\x81@)u\xa2T*\xbd\xdf\xd3\xd3\xb3\xac\x87\x96U\x17\x00\xe0\x17\n\x85\ 3\xae\xeb\xb2\xeb\xba\x9b*\xcf\xfe(\xc6\x15M\x92%/\x12q\x08 $\xa2sJ\xa9\x81\ \xae\xae\xae\xc2\xea!_\x1e\xcb\x12\x08\xc3\xf0\xfd}\xfb\xf6\x1dy\xeb\xad\xb7\ >\xa7\x94J\x00p\x99yJ)\xe9\xa3\x02\xbe\x00`\xe8\xfa\xeb\xaf\x9fZU\xda\xff\ \x10\xcb>b:p\xe0\x80\xda\xb4iSw\xa9T\xf2\x1d\xc7\xe9^\\]\xc20<9;;{r9\xa7-\ \xcb\x89\x15\x9f\x91e\xb3\xd9k\x88\xa8[\x08q\xbe\\.\x8ftww\x97V\x89\xed\x8ab\ \xc5gd\x96e\xb9\xae\xeb\x1e\xee\xee\xee\x9eY\r\xa0\xa5\xc6\xaa\x9eR~\x12\xf1\ \x89\xfd[e\xb5\xe2_\xcf\x113\xc7\xc5?\x80\xd7\x00\x00\x00\x00IEND\xaeB`\x82\ \x0b~\xf1$' phatch-0.2.7/phatch/actions/rename.py0000644000000000000000000001363011346363116017464 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu). # Follows PEP8 from core import ct, models from lib.reverse_translation import _t #no need to lazily import these as they are always imported import os import shutil class Action(models.Action): """Defined variables: """ label = _t('Rename') author = 'Stani' email = 'spe.stani.be@gmail.com' version = '0.1' tags = [_t('file')] __doc__ = _t('Rename the original image') valid_last = True def interface(self, fields): fields[_t('File Name')] = self.FileNameField(choices=self.FILENAMES) fields[_t('In')] = self.FolderField(self.DEFAULT_FOLDER, choices=self.FOLDERS) def apply(self, photo, setting, cache): #get info info = photo.info #get file values folder, filename, typ = self.is_done_info(info) if setting('overwrite_existing_images') \ or not os.path.exists(filename): #ensure folder filename = self.ensure_path_or_desktop(folder, photo, filename) #do it os.rename(info['path'], filename) return photo def is_done_info(self, info): folder = self.get_field('In', info) filename = self.get_field('File Name', info) typ = info['type'] return folder, os.path.join(folder, '%s.%s' % (filename, typ)), typ def is_overwrite_existing_images_forced(self): """Force overwrite when using default values.""" return (self.get_field_string('In') == self.FOLDER) and\ (self.get_field_string('File Name') == self.FILENAME) icon = \ 'x\xda\x01\x9c\x04c\xfb\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x04SIDATh\x81\xed\x98]\x88[E\x14\xc7\xffg\x92\xbd\xa6\ \xba\xban\xebWA\x10\xbb+T\xd6\xc4$c6\xc4me\x1f\xb4\x94\n\x16\x8a[\n\x8dE|\ \xab/U\x10\x14\x8a\x88_\xef\xf5\xebE\xc4\x17\x1fDj\xb5\x8a\x08\xa2\xa0\xed\ \x83KI\xc6,\xa9y\x10\xb2\xac\xae\xa8\x0f]vMP6\x9b\xee\xbd\xc7\x87&\xf5\xe6\ \xee\xdc\xe4N>\xd8\x97\xfc\xdef\xce\x993\xff\xff\xbd3\x97\xb9\x03\x0c\x192d\ \xc8vB\xdb-\x00\x00\xe2\xf1\xf8}\xe1p8\xc6\xcc\x02\x00\x98\x99\x00\xc4\x88h\ \r\xc0\xb2+uY)u\xc9=v\xdb\r$\x93\xc9,\x11}\x08`$H>\x11\x9d\xc9\xe7\xf3\xcf7\ \xdbb`\xca\x02"\x84x\x16\x01\xc5\x03\x003\x9f\x9c\x9a\x9a\xb2\xae\x8f\xefe\ \xf2L&\xb33\x95J\xdd\xd5K\rf\xfe\xd9p\xc8/\xa5R\xa9\xdel\x84\xbb\x99TJy\x00\ \xc0\x99z\xbd~\x7f\xa3}\x85\x88^\xcb\xe7\xf3\xef\x9a\xd6\xb2,\xebT\xbd^_\x01\ 0\xd9\xe8\x8a\x02\xd8\xebI;\x0b\x00D\xb4f\xdb\xf6\xab\xee\x80\xf1\x1eh\x88\ \xff\n\xfa\xd7\xfe\xb2R\xea\r\xd3\x9a\x9e\xfaQ\x00EW\xd7e\xa5T\xcc/\xdfh\t\ \xcd\xce\xce\x86\x01\xbc\x0f\xff5\xfb\x8a\x94\xd2\xfb\xf4\x06\x8a\x91\x81j\ \xb5z\x04\xc0=mR\xc2\x00N\xf5\xa4\xc8\x10#\x03Dt2@Z6\x1e\x8f\xdf\xda\xa5\x1e\ c\x02\x1bH\xa5RS\x00f\x03\xa4\x8e\x86B\xa1\x13]+2$\xb0\x01\xc7q\x9e6\xa8\xfb\ \x8c\xb9\x94\xee\x08d`nn.\x04\xe0\xb8&t\x15\x8dO\x9c\x87\x07\x93\xc9\xa4\xef\ \x97\xa3\x9f\x042\xb0\xb4\xb4t\x00\xc0nM\xe8{\x00\x1f\xe8\xc6\x10\xd1S=\xe8\ \nL \x03\x8e\xe3\xf8\xad\xe9\xb3\x95J\xe5\x02\x80\x8a&v\xbc\xf1\xe6\x06JG\ \x03\xe9t\xfa\x16":\xac\tm\x028_.\x977\x00|\xa3\x89\xef^\\\\|\xacW\x81\x9d\ \xe8h`ss\xf3(\x80\x1d\xde~f\xfeA)\xb5\xd2h~\xa1\x1bKD\x03\xff\x1au4\xd0f-_\ \xdf\xbc\xb6m\x7f\x8dk\x1b\xda\xcb\xe1\x99\x99\x99\x9b\xbb\xd4\x16\x88\xb6\ \x06\xa6\xa7\xa7\xefe\xe6\xfd\x9a\x90\xcd\xcc\x9f7\x1b\x0b\x0b\x0b\x7f\x13\ \xd1EM\xde\x8d\xeb\xeb\xebO\xf6*\xb2\x1dm\r\xd8\xb6\x9d\x85\xfe\xc0w\xb1P(\\\ qw0\xf3\x97\xba\x1a\x83^F\xed\x0c\x10\x00\xbf\xc9?\xf5v8\x8e\xa3\xdd\x07\x00\ \x1eI$\x12\xed\xceO=\xe1k \x95Je\xf0\xff\x19\xdd\x8d#\x84\xf8\xcc\xdbY(\x14~\ \x03\xb0\xa0\x9b#\x14\ne\xbb\x97\xd8\x1e\xdf\x1f\x1a\xdb\xb6O\x10i\x7f\x17\ \xd6\x1c\xc7yNJ\xa9\x8b\xb1\xb6\x939\x0b\xe0\xcd\xae\x14v@k`rr\xf2\x06":\xea\ 3f\x17\x80\x17\r\xe7\xd9+\xa5L{o\x14\xfa\x81v\t\x8d\x8d\x8d=\x01`\xbc\x9f\ \x13\r\xeah\xa150\x88\xc9\x98\xf9\x98\xfb6\xa1_l1\x10\x8b\xc5\xee`\xe6\x83\ \xfd\x9e\x08\xc0\xaeH$r\xa8\xdfE\xb7\x18\x18\x19\x199\x06\x83{\x1a\x13\x1a\ \x9b\xb9\xafl\xd9\xc4\xcc|\xc4\xe7\xeb\xf3\'\x80\x8f\x82\x14e\xe6\xfdD\xf4\ \xb0\xb7\x9f\x88\x0e\xc5b\xb1\x9b\x8a\xc5\xe2\xbf\xc6J}h1\x90H$n\'\xa2}>\xb9\ \x1f+\xa5^\nRTJ\xf98\xae]\xbdx\xd9aY\xd6A\x00\xe7\xccd\xfa\xd3\xb2\x84\x88(\ \r\xc0\xef\x0c\x7f>h\xd1J\xa5\xf2\x1d\x80\x7ft1f~(\xb0\xba\x00x\xf7\xc0m>y\ \xbf*\xa5~\x0cZ\xb4\\.o\xb8\x0f{n\x88\xe8\xce\xa0u\x82\xd0\xb2\x84\x88\xa8\ \xa8Kb\xe6\xb7\x008&\x85\x89\xe8=\x00[\x0e\x83\xba\xbbP)\xe5H\xbd^\x1f\x05\ \x00\xc7q\xc6\x85hy\xae\xe3\xd1ht\xbc\x11\xbbZ*\x95Z\xdelK\xa6R\xea\'f>\r`\ \xc3%\xe4\x93\x89\x89\x89wL\xc47j]\x02p\x1a\xae\xff\x04f>W\xab\xd5Z\xeeO\xa5\ \x94\xfb\x00,[\x96\xb5jY\xd6\xaa\x10\xe2\x82\xa7\xd4\xdd\xcdX$\x12\xa9J)\xdf\ v\x07\xb5\x9f\x1b)\xe5\x18\x11\xed!\xa2\x95\\.\xf7\xbb\xa9x7\x99Lfg\xadV\xdb\ #\x84\xf8C)\xf5\x977\x9eL&\xbf%\xa2GMj\n!\x1e\xc8\xe5r%\xc0\xe7,\xa4\x94\xaa\ \x00(t\xa5\xd8\xc3\xfc\xfc\xfc*\x80\xd56b\xaa\xcc\xda3\xa0\x1f\x0c\xa0\xdalt\ u\xbd\xdeO\x84\x10/\xd8\xb6=\n@\xa2\xf3/n\x85\x88^\xefuU\x0c\x192dH\xff\xf8\ \x0f\xb7\xe6I\r\x8d&\xf6#\x00\x00\x00\x00IEND\xaeB`\x82\xd4M$\xd4' phatch-0.2.7/phatch/actions/rename_tag.py0000644000000000000000000002635111346363116020323 0ustar rootroot00000000000000# -*- coding: utf-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu). # Follows PEP8 from core import ct, models from lib.reverse_translation import _t #no need to lazily import these as they are always imported import os class Action(models.Action): label = _t('Rename Tag') author = 'Juho Vepsäläinen' email = 'bebraw@gmail.com' version = '0.1' tags = [_t('metadata')] __doc__ = _t('Rename a tag') def interface(self, fields): fields[_t('From (Exif, Iptc)')] = self.ExifItpcField( 'Exif_Image_ImageDescription', choices=self.EXIF_IPTC) fields[_t('To (Exif, Iptc)')] = self.ExifItpcField( 'Exif_Image_ImageDescription', choices=self.EXIF_IPTC) def apply(self, photo, setting, cache): info = photo.info old_name = self.get_field('From (Exif, Iptc)', info).strip() new_name = self.get_field('To (Exif, Iptc)', info).strip() if not (new_name and old_name): return photo if old_name in info and old_name != new_name: info[new_name] = info[old_name] del info[old_name] return photo #FIXME: replace this icon with another one (Nadia?) icon = \ 'x\xda\x01j\x0c\x95\xf3\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0c!IDATh\x81\xd5\x9a}p\x1c\xe5}\xc7?\xcf\xbe\xdc\x9b\ \xacW\x9f,\xdb\x92lY\x92-\xf9M\x06\xcb\x06\xdb\x10L\xe2\x84\xd6\t\x89&\xa45\ \xd3\x12\xd2\xce0\x81\xa14\x1e&\x990d\xa6\x04\n\xa1\xc53L\x92:%@;\x9d\xb6\ \xa4\xc4\xc1\xb1\x85\xed\xb6P\xfcBc\xd9\xc6\x98\x18\xcb\xef\xd8\x91\x90\xb1^\ \xac\xb7;I\xa7\xb3t/{\xbbO\xff\xd8=\xdd\xe9$Y\x92\x11\x93twV\xbb\xb7\xf7\xec\ \xee\xf7\xfb\xfb}\x7f/\xcf\x9e\x84\x94\x92\xff\xcf\x8b\xf2\xfb\x06\xf0i\x17\ \xed\xf7\r`\xb2\xe5\xd8\x97K\x96\x84g{\xee\x94\xc1\xa1C\x9b\xdf\xea\xbc\x9a\ \xf9\xbd\xf8C\x95\xd0\xd1{\xe6.\xeaY;\xef`_EN\xb9aJ\x12Q\x93\xdc\xe6\xd0\x19\ ogh\xfd\x9f\xeel\x8b$\xc7\xdd\xb4\x07\xea\xea\xea\xe6\x97\x96\x96n\xa8\xac\ \xac\xfcB$\x12\xe9kjj:\x18\x0c\x06?\xdc\xbbwo\xf8\xd3\x82\xbf8G\xcc\xed{p\ \xf9\xa9`eN\x9eaHb1\x0b3a\xd1Q\x9c\xb5jN\xc2:\x08\xdc\x91\x1c;m\x0fl\xdd\xba\ \xf5\x81\x8d\x1b7n////\x18\x1e\x1e\xa6\xad\xad\rUU\xf1\xfb\xfd$\x12\t\x9a\ \x9a\x9a\x1a\x8f\x1c9\xf2\xe0\x8e\x1d;.\xdc,\xf8\x98\xcfs\xf8\xe4Sk\x97\x18\ \x86\xe4\xfd\xe3\x92\x96\x8f-\xca+,*\x16\x9b\x107%j\x9d\xf6\xf4\xd3O[\xd3"PW\ WWt\xf7\xddw\xbf\xb3z\xf5\xeaU\r\r\r\x9c8q\x02\xd34\xa3\xd1h\xb4\r\xd0<\x1e\ \x8f\xdf\xe3\xf1d\xaf[\xb7\x8e\xb2\xb22\xab\xb1\xb1\xf1_\xb7m\xdb\xf6m9\r\ \x0b]\x9c#\xe6\x9ah\xff\x1b,\xcd\xae\xbe\xf0\xed\xe5Dc\x16\xf5;%\xa6i\xa1\ \xa8&\x9f\xdfdb\xc4-juu\xe9\xfd\xcf}x\t&\x90\x90\x10B`g(\x01\xb0|\xf9re\xcb\ \x96-\xfb\xe7\xcc\x99S\xb3}\xfb\xf6xss\xf3\xfftuu5\x07\x02\x81\x1e\xcb\xb2L\ \xc0\x02\xd4\xfc\xfc\xfc\xfc\xde\xde\xde{JJJVo\xda\xb4\xe9\xa1G\x1ey$ \x84\ \xf8\xc1TH$\xc1G$\xd5\xb2k\x18#nb%$\x0b\xcbL\xae\xb4H\x16.4\x89\xc7-\x14C\ \xca\xfb_8u9y\xdd\x18\x02B\x08\x05p\x01\xbe\xd2\x07\x99\xe7\xf2\xa0\xdf\x96\ \xb8mkyyy\xcd\xae]\xbb\x06\x8e\x1f?\xfeFww\xf7%\xa0\x03\xe8\x06\x02@\x14\xf0\ \xf5\xf7\xf7\xe7\x1c;v\xec\xfc\x82\x05\x0b\xd6k\x9a\xf6pMM\xcd\x13uuuG\x85\ \x10\xff}#\x12\xe9\xe0\xa3\x12\x8ch\x82\xac\xf7\xba\xe8\xb9\xc5\xcf\xe2*\x8b\ \xb2r\x0b\xc3\xb0\x88\xc7L\xaa\x86\x13\x07 u\xafQ\x04\xd2\xc0\xcfY\xfb\xcf<\ \xea\x99\xcf\x9f\x08ET\x947.\xa2\xe1\xb7\x87\x12\x1f/}\xfbj\xe1\xda\xd8\x92\ \xe2|r\x15\x8d\xb8P\xb0\x00\x0b\x05S\xd11:\xde\xe4?\xdb\xeb9\xde\xda\xdaz\ \xf9\x83\x0f>\x90\xf9\xf9\xf9\x8f\xf9\xfd\xfe\x1f\x02\xef\x00\xc6T\xc0G\xa5d\ X\xc2\xacC\xed\x84#&C\xcb\x0b\x88\x9b\x12c\xc8\xa0\xb8{\xf8B\xa1X\xfb\xe5\ \xf4\xebG\x08\xa4\xc9\xc6\x87JE\xe1F\xbe\xa3\xe7\x91%[rqk\x1e\x82\xb5\'\xb4\ \xf2\xcd\xb1U\x13Y\x11\xc0\x7f\'\x7f\x91\xbb\x82m\x17\x9e\xe5\x8d\xa6\xa6\ \xa6\x7f\xa9\xae\xae\xfe\\QQ\xd1\n \x0b\x18\x98*\xf8\xa8\x84X\xc2\xc2{\xb8\ \x03\xff\x91k\x0c\xf94|\xd7\x8d=\xdf\x0b\x99\xf7!\xaf\x8c\xf2df%V\x00\xaf\ \xaaS\xace\x93\x05\xa0\x7fR\xc4@h\x80\xd6\x9e+\xb2\xef}H\x0cML@\xcb"\xab\xf2\ 1\xe5o\xef\xd8\xa5\xfeX\xcfE\xef\xe8\xe8xSJ\xe9]\xbat\xe9\x1a!\x84:U\xf0Q \ \x92.tV\x18\xa1\x81P\ \xf4\xe4\x13\xd1\xd7N>\xc2+\xcd\xffH\xbf\xd1?\x16\xbc@AEC\x13\x9a\x98\xb7Q\ \xfb\xca\x17\x0f\xb8w\x0e\xcd\xbe6\x1c\x0e\x87\xb1,k!\xa0O\x17|DJ\xdc\xb0\ \xe7{ak\\\xf0\x99\x04\x04\xb6\xa4\xb2\xe7\x7f\x95{\x01\xa4\t\x1d\x07\x8c\xa3\ \xb1X\xccSZRz&\xd2\xc3\xbbM?\xe7\xa5\xe0{\xc43\x81\xabh\xa8\xc2\xd9\xd0\xc9]\ \xe4ZT\xf3\xf3\xc8\xb3\x01\xb3\xfd\xea\xe0\xe0`\x0e\xe0\x15B(\xa7\n\xc5\xbc\ \x99\x02?B\xc0\xd1\xbf\n\xf8\xf2\xd7P\xee-a\x19\x80P\xc1uG@\x04\x83A\xaa\xab\ \xab\xef\xc2\xe4\x9a\x15\xa3\xd7[\x865\x1a\xb8\x8e&tT\x92\x9bM\xc2\x9d\xafy\ \x8b_iZ\xb0\xe4\x85\xa1-z.\xe5/\xe4P\xa9\x8b\x99\x03\x0fN!s\xb2\x8f\x17(Y\ \xfd\x12?\xcd*\xe7\x8f\x0bj\xed\x01\xb1\x00f\xe4\x995\xfd\x9eP\x81\xb7\xdd{\ \xee\xf5\xac\xafw\xdeV\xbcY\xbdE\xa0\xa0\n\x15\x81\x82Br\xaf \x84\x82@A8g@\ \xd8\xeb)\xa3\xfd\xe1o\xf5\x0b\x91\xa0x\xa6\xc0\'e\x93\x94N~\xfez\xd6\xd4.\x1c/\x80\ \xe2\x02\xa1YH\xcd\x92\xad\xa7\x02\xfbw?\xf0\xd1c\xb1\x1e\xda\x00#]N\xe3E\ \xba\xc4\x0e\x9e>LZ/>\xcb\xaf\xe2\x01\x02B\x03\xcd\x07\x9e\x12\x18V\x078{\ \xb0\x85X\xd8\x1c\x95\x99\x92)\xd5\xceL\xa9z\xa0\n\x1d\x97\xdbE~q6\x85\x8br\ \xf0\xfa<\xb8\\.tMGSutMGUS\xd7\xda{\x15U\xd1\xd0\x14M,\xb8\xd5\xff\xa5M?*\ \xdb\xe2\xa8cb\teH\xc9\r\xf8\xd1\xa8\x9e\x7f/_]\xf14\xdfA"$v\x9b\x9d\x18\x84\ x\x97F\xd5\x8aJ\x8a\x16\xf8\x9d\x14\xaaf\xc4G*\x16\x92\xd5\x19\x0bLC\x92\x88\ [\x98q\x133aa\x9a\x16\x12\x0b\xa1H\xd0m\xcb\x0b]"tI,\x1a3\x0en\xbb\xf4o\x1f\ \xfe\xac{;\xf01\x10M\xf7\xc0\x84\xafU\x9c\x19\x94\x0f(Ae\xe5\x9aW\xf8\xfe\ \xec\xdbX#%`\xd9\xcd\x9d\x19\x85h\x17\xcc/X@\xf5-\x95\xa8\xca\xf8\x92R\xd2\ \x08$\xd3\xbb\x94\xf6\x1f)-,goZ&\xa64\xb10\x91\x98\xf4w\x0f^\xdf\xfd\xd8\xe9\ \x97\xdb\x1a\xc2{\x81K@\x88\x8c\x8ct#\x02\xc9.5\x0f\x9dr\xb7\x9f\xf5w\xd6\ \xf3\x9c6\x8bY8a$-\xb0\x0c\x88\xf7\x817V@\xed\xed\xb7\xe2\xf3\xf8F\x05wf\xb3\ \xe74\xd7\x8eV\x93\xabe\xaf2E\xe0J\xe3\xb5\xae\xd7\xff\xec\xb7/\x0eu%\x0e\ \x03\x9f\x00\x83d\xe8\x1fn\xf0v:\xadB_\xc7\xa0+\xd6\xc3\xe5\xab\xffN\xbdP\ \xed\x89\x8eP\xedl\xa1z\xc13\x17\x8c\x82>\x8e\x1e=J_\xef\xc0\xa8\xca=\xb6\ \xcd\xd0G\xfa\xa9\xd1\xe7S-J\xe3\x9e\x8f\xcf\xff\xd3\xa6\xe3O\x0eu%\xde\x01\ \x9a\x1d\xcb\x8f\x01\x7fC\x0f\xa4yA\xc1\xae\r\xa5\xa8\xac\xda\xb0\x93\xa7r\ \x96Q\xe5\x980E\xd8\x91T\xacS\xb0\xa4\xa8\x86eU\xcb\xc7\xf5\xc4X\x0f\xd8\x96\ \xb70\x89Fc\xe6\xdb\xffp\xe2\xe0\xbb\xcf7\xbf\n\x9c\xc5N\x9d\x11\xa6R\xc8&!\ \x91l3\x16\xe7.e\xe3\xba\xd7yJq\xe3\x1e\xeb6\x90\x06D\x03P`\x94\xb2\xa1\xf6.\ <\xbawL\x8dH\r\x97X\xd8\xe0\xfb\x83\xa1\xd8/\xbf\xfb\x9b_\x9c\xaf\xef\xdc\ \x89\xad\xf7\x00\x10\x07\xac\x1b\xb5\x12\x936L\xce\xc5\t\x9cf/t\x91s\xed{8 T\ \x10J\xc6\xa6\x81\xe2\x05_1\x0c\xe6\xb5\xb1\xff\x83}\x0c\x84\xfaG\xa5Y\xc5\ \x99C\xa7w\xb7\x9d\x1d\x9d\xc6O\xfeh\xdf\x8f\xcf\xd7w\xbe\x06\x9c\x03z\xb1\ \x8b\xd6\x84\x96\x9f2\x81\x11c\xd9\xd6\xe8\xc3\xa4\xed\xc2\x8f\xa8\x1fn\xa5c\ \x14\t5\xb5W\\\xe0\xf6\x83\xb20\xcc\xc1\x8f\xf6\xd0\xdcziDB\xaaH\xd6\x06;\ \xed\x9eoi\xe4X\xef>\xbd\xe8[C\x06p\x15\xfb\x05X|\xbc\xb6\xe1\xa6\t\xa4\x05\ \xf40\xd0\x8d\xc5\'\x1f\xfd\x1d\xff\x01\x98#\x01=\x0e\t=\x1b\xb2*L\x1a\x07\ \xdf\xe5\xc8\xb9\x03X\xa65\xe2\x05iI~s\xe6-.\xc4\x8f\xe0+\x93\x94}\x93\xbf\ \x9a\xfb5f\xa5\x19lJ\xcb\xb4~\x1fHk3\xe6\xa3\xb2\xb2\xf6e\xb6\xce\xdf\xcc]\ \xa9\x01\xe9\x83m2`\x07x<\x08\xee\xdeB\xeeY\xf9\r\\\xaa\x9b\xb7\xce\xec$\xe2\ \xef\xc45\xdbn\x1f\x00\xa2\xdd\xecxg%\x0f\x03\xc3S\xf5\xc0t\t$kC\x0eP\xae\ \x17P\xfb\xf9C<\xef\x9eCAj\x0c#\xef:F\x8eq\xaaw\x18\x12A\x17\xba\xa2c\xe5\r\ \xa1\xe7\xd8$\x87[\xb92x\x91\x03\x9d\xfbx\xadu7g\x81\xa1\xcf\x84@\x1a\t7P\ \x88Fu\xd9\x03|\xbd\xe6\x05\x1eM\x02\x1d\x99\x0c\x8e3)\x94\x16\xc8\x84}\x1c\ \xed\xa4+p\x82\xc6O~AC\xffI.c\xd2\x8e\xfd\xca\xbe\x8fi\xc4\xc0M\xfd\xc8\xe7\ \xb4\x19Y8m\xc6\x86_\xf3d\xe1\x9d\xdc2\xd9u\x91n\x02}\xefq\xba\xf5\r\x8e\xf6\ \x1c\xe62\x82 \x82~\x0c\x06\xb0\x8b\xd5\x10\x10c\x92\xd49\x13\x04\x92\xb5!\ \xcf\x99\x82\xae\xbf{?\xcfi\xd9\xf82\xc7\xc6\x83\x0c\x04\xdf\xe7l\xdbn\x8eu\ \xbe\xcd\xf9\x0c\xd0\xd7\xb1\x13C\x1c\xfb\xf7\x03\x93I\xa6\x903B\xc0!\x91>\ \x05]\xba\xec\x07\xfc\xf9\xe2\xad<\x00`\x0c\x10\x0e\x9e\xe4\xfc\xb5\xbd\xbc\ \xd7\xb6\x8b\xd3@\x10\x85>\x0cB@\xd8\x01\x1d\xc3\xae/&v\xd6\x99\x16\xf0\x99 \ \x90>\x05-F\xa5r\xcd\xab<\xd8\xf7>\xad-\xafq\x06\x93\x00\x82>\x12\x0cd\x80\ \x1e\xb1\xf4\xcd\x82\x9e\x11\x02i$t\xec\xf79~\xec\xec\x04\xb6\x96\xc7\x03m1\ \x03\xa0Ga\xf8\xb4\xf7r\xa4\xa4ag&\x1d\x1bd\x82\xcf\x10\xf4\xa8\xe7\xcf\xc4}\ \x1dO\xa4e\xfd\x99\x91\xc7\x94\x9e\xfd\x87\xfa\xbf\x12S]\xfe\x0f\xca\xb4Jp`A\ Vn\x00\x00\x00\x00IEND\xaeB`\x82_\xfb\r\xf3' phatch-0.2.7/phatch/actions/rotate.py0000644000000000000000000002526611346363116017523 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t from lib.colors import HTMLColorToRGBA #---PIL def init(): global Image, imtools import Image from lib import imtools def rotate(image, angle, resample_image, expand=0, amount=100, background_color='#000000', background_opacity=100): resample_image = getattr(Image, resample_image) if background_opacity != 100 or background_color != '#000000': image = image.convert('RGBA') rotated = image.rotate(angle, resample_image, expand) rgba = HTMLColorToRGBA(background_color, 255 * background_opacity / 100) rotated = imtools.fill_background_color(rotated, rgba) if amount < 100: rotated = imtools.blend(image, rotated, amount / 100.0, rgba) return rotated #---Phatch class Action(models.Action): label = _t('Rotate') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(rotate) version = '0.1' tags = [_t('transform')] __doc__ = _t('Rotate with random angle') def interface(self, fields): fields[_t('Angle')] = self.SliderField(45, 1, 360) fields[_t('Resample Image')] = self.ImageFilterField('bicubic') fields[_t('Expand')] = self.BooleanField(False) fields[_t('Amount')] = self.SliderField(100, 1, 100) fields[_t('Background Color')] = self.ColorField('#000000') fields[_t('Background Opacity')] = self.SliderField(0, 0, 100) icon = \ 'x\xda\x01@\x0b\xbf\xf4\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\n\xf7IDATh\x81\xed\x99m\x8c\x1d\xd5y\xc7\x7f\xcf\x99\ \xb9w\xef\xeezw\xbd\xce\xda\xb0^c\xc7l\x08\xb6\xc161n\x1b\xa3*\xae\xab\x00J\ \xa2 \xd2\n\')ICA\xaa*\xd4~\xaa\x14\x89\xe4CD\xa3$\x9f"Um\xbfF\n\x04\x81\x15\ 5\xcd\xabDx\x89bp\x9c\xa4\xd4@l\x821-\xb6\xb1\x89\xbd\xb6\xd7/\xec\xdb\xbdwf\ \xce9O>\xcc\x99\xd9{w\xef\xae\xd7`\x95F\xeaH\x8f\xce\xcc\xdc\x99s\xfe\xff\ \xe7\xfd\xcc\x15U\xe5\x0f\xf90\xef5\x80w{\xfc?\x81\xf7\xfa\xf8\x83\'\x10_\ \xcd\xc9\xb6\x7f\xa1\xb9\xd6*;\x113\x82\xea\xb0\x08\xab\x01T9\x8d\xc8\x18\ \xeaO\xc5\xc2s\x07\x1e\xa9\x9d\xbcZk\xca\xbb\xcdB\x9b\xefKF#\xe4\xb3\xa0\x9f\ \xea\xae\xb2\xad\xbfW\x18\xe8\x85\xfe^a`Y\xfe\xcc\xc44L\xce(\x133\xf9\xd8Hy\ \t\xe4\xfb\x0e}\xe2\x95ow\x1d}O\x08l\xff|}\xd8\x9a\xe8+"<\xb0f\xa5\xc4\x9b\ \xd6\x0b\xbd\xddBd@$\x17#\xf9\xb3\xaa\xe0\x15Pp\x1ef\x9a\xca\xab\xc7\x95\xdf\ \x9dS\xab\xca\xb7b\xef\x1e>\xf0\x9d\x9e\xb1\xff\x15\x02"\xc8\xd6/\xa4_F\xf5\ \xa1\xc1>\xe9\xd9<*\x0c\r\x08Q\x04\xc6@$\xf9h\x0c\xd4\xaa\x90\xa4\xf9{>\x90\ \xf0>\'\xe1\x1c\x9c\x9fP^9\xaa\\\x9c\xd4:"\xdf8\xf8H\xf5k\xaa\\\x11\xa0+"\ \xb0\xf5\xaf\xe9\x15\x93w\xf0Qf\x96\x8ai\xc9Yh\xf3\xfd\x8d\xebD\x92\xfd\ \x91\xe1\xeem7\x1aV\x0fI\xe9*"9\x81\x02|\x1cA%\x12\xd4\xc3\x8e\x9b\x95\x0foJ\ \xa8TZ\xc8F\xb9\xa5\xa2`\xa9\x91U\xc2\x1fm4D\x86\xbbE\x92\xfd\x9b\xefo\\wU\t\ lx\x80\xbe\xc8\x99\'E\xd8\xbae\xd4\xb0<\x04\xa7\x14"\xb3\x17&Hd \xc9\x04c\ \x0c\x1b\xd7\t\xbb\xb66\x88\xe3\xfc7\x11\x10\x13$\xbc:\xd8\'\xdcr\x83A\x84\ \xad\x913Onx\x80\xbe\xabB@\x1e\xc6\xd4l\xf2\x04p\xd3\xb5\xef\x13\x06\xfb\xf2\ \xa0\xd4\xe0\xacJ~]\\x\x85Z\x97\xb0~\xd8\xb2b`v\xfa\x91\x95p\xc7\xadu*\xb1\ \x96\xcf\xce\xf5\xde\xa1\x01X=$\x007\xd5l\xf2\x84<|y|\x97\xad\x03\xb7\x1ck~U\ \x91OD\x11\xac\x1f\x966\xd0\xeaAM~\xbez\xc8\xb1s\xabc\xb0?\xa6Z1\xa8\n\xde\ \x9b\x9ch\x90\x15}\xca\xc7\xffx\x9a\x9f\xfeW\x0f\x17\xa7\xa2\x92\x84/\x14\ \xa2\xf0\x815\xc2\xd9\x8b\x8au|\xe2\x96c\xcd\xafB\xed\xcb\x8b*x\xb1 \xde\xf2\ @r\xbd\xc9\xfc\x11\xa0\xb2jP\xb8\xe1:\xd3\xe6\xc7q\x04\x95\x18>\xf6\')\xdb7v\ c\x8c\x94`\x9ds\xa8*\xde\xfb6q\xceQoz\x9e\xd8\xdbO3\x11\x9cW2\xdb\x12\xdcN9r\ \xc23vAA\xc9\xb4\x1ao8\xf4\xad\xaec\xef\xc8\x02\x92%_W\x95\n\xc0\xf2>\x83sJH\ \xed\xa8\xc2P\xbf\xf2\xf9;\x95\x95+jD\x91\t\xf7s\x02\xad\xe7\xad\xe2\x9c\xf2\ \xabW#\x1a\r\x8f\xf3`]\x9eZ\xbd\x07g\x15\xe7sK\x8d\x8d;\x80\x8a\xa4\xf6\x1b\ \xd0\xf5\xe9\x850.\xe8c[\xee\x9d\xb8U\xbd\xdf\xad\xeaPo\xe9\x8a=\xd6Z2\xeb\ \xb0\xd6Q\x89-\x7f{\x97gh\xb0\x8aHN\xcb{_\x02\xb5\xd6Ro\xa4\xe5=\xef=i\xe6x\ \xf2?\r\xaf\x1c\xef"\xb5\xbe\x9c+\x0bb\x9d\xc3:O\xad\xeaQu\x84\xb5\xef\xd9r\ \xef\xc4\xadWn\x01\xcd\xee#(\xdc\x08\xa8\x172+xU\xbc\x17>\xbd\xcbR\xeb\xea-\ \x01\x17\xee\xf1\x9b#\x93\x1c|Cxk<\xe6\xb6\x9b\x1d\xb7m\x16\xbc\xf74\x13\xcb\ \xf7\x9f7\x9c\x1c\x8fQu\xa1.(\xce\x85\xfa\xe0\xb4\xac\x0f\xea\x15\xc1\xe2}\ \xee\x08\x82\xfb\x1b\xe0\xc5+"\xa0j\xefj\xb5SfC\xd0za\xdbF\xcf\x8d\xebzKW\ \xf1\xde\xf3\xf6d\x83=O\xa7\x1c?\x13\xe7-\x84xj\x15\x87\xf7\x86\xa9\xe9\x84=\ ?3\x9c\xb9dr\xf0E\xf0zp^\xcb\xea\xec\xbd\x96n\x05\xae\xccR\x8a~\x12\xf8\xfb%\ \x13\xd8\xb2{l\x9b\x8a_[\\[\x0fif\xd0\x08\xaa\x15\xe1/w\xc5\xf9\xb4\x9a\x83\ \xaf\xd7S\xbe\xfeHB\x92\x1a\xc4\xb8\xb26Tc\xc7\xa5\t\xcf\xb7\x9f\x14.N\x99\ \xe0\x16!\x8b\xf9\xa2\xb5\xd0P\xa1\xb5$d-8k[!\xad\xdd\xb2{l\xdb\xa1\xef\x0e\ \xbf\xb4$\x02\x9e\xec\x8e\xb9\xd9\xa9\xde\x84ZU\xf8\xf0&GO\xad\x1f\xef=\xc6\ \x18\x9cs<\xf2\x93I\xde\x9e\x8c\x11\xe3C\xa1\x12\x04\x18;o\xf9\xf7\x9fGL7\r\ \xaa6Xv6e\xfa0\xba\xe06.\x04s#\xf1\xa8o#\x80\x13w\'\xb04\x02\xa8[\x87\xfa\ \xb6[SS\x9e\xa8/b\xfd\xb5\xb9\xd6\x8b\xe3\xb5cS\xfc\xfa0D\x85\xe6\r\x80""\ \xfc\xf0\x17\x02\xf8 t P\xb8\x92\xe6\xf1\xe0s\xcb\\\x9a\xb2\xa8\xba\xb6\xf5E\ e]\'\xa8\x1d\t\xa8\xcfF\xe66\x85\xd3u\xa1\xa7\xa6\x8c\xac\xaa\x94A\x0bp\xf0\ \x7fR\xd24\x07n$\xf4G\x00\xa1e@s2\x05\xe8|\x81\xdc\x8d\x8a@.\xda\xec \'B\x87\xceX\x83\xd65\xc4P\x19\x0b\ \xaa\xa8\x87\x99\x86\'\xcd\xec\xbc\xf7\xbc\xea\xea%\x13\x80\xack\x9e\x06\x00\ \xfa\xd9\xf9\ \x03\xe0\xdb\xb7[\x86\x06,\xd6z\xb2\xcc\xf2\xd4\x0b\x15\xc6]\xd4\xf9%\x13\ \x9dY2\x01Q?\xe6\xfd|3\x02\x9c8]g\xd3h\x841y\x11\xff\xe0\x1a\xe5\xf0\xd1\xa4\ \xd4\xbc\xd0B\xa2\x13\xf80F\x06vlj\x10\x1b\x8bs\x8e$Ix\xfc\xd9\x01\x16\xea\ \xcd\xc4\xcb\xe9%\x13\xf0\xca)\xd4\xd1iw\xf7\xdf\'\x126\xac\xef-\x83\xf8\xa6\ \xd1\x98=\xcf\xcc\x84\x0c$\x08\xb3\xfdR\'+\x14\xf8nZ\xaf\xc4\xc6\xe6\xedI\ \x961vA\x98\x98V\xa0\xc8>\xedk\xab1\x1d\tt\xec\x85D\xec>UW\x94\xdeY\xf1\x8eW\ \x8f&m\xdd\xe5\xe6\xd1.\xb6\xdf(\xa4IF\xda\xccH\x92\x8cf3\xa5\x994i4\x1a\xb3\ \xd2l\xd2h&$IJ\xe62v}(%\xcb2\xac\xcd-\xf0\xda\x89\xa2\xd0\xd9 \xaeMD\xdc\xbe\ NX;Z`\xd9\xa9\xe8\x99\x89Uv\x12\xa5\x7f\xae&\xf6\xfd\xc6r\xdf\xf9:C\x83\xb31\ \xf5\xe0=\x03\xbc|\xe4\x14\xd3u\x8b\xb6\x12n{wv\xff\xf9W;k\xbc\xff\x1ap\xce\ \x97\xcd\xde\xe17\x05t\x8e\xdb\x16\xe6\x12\x99\xec;]}z\xc9\x168p\xe0\xd6\x0c\ \xcc\xdeN\x9aH\x12\xcb7\x1f=\x87\xb5\xael\xe0\xfaz\xe0\x9f\xffq%\x9b\xd6y|6\ \x83\xcf\xa6qvf\x9eT\xa4\xce\xee]\x11\x7f\xf6!)\xdfu\xceq\xe0\x88\xe1\xf5\ \x93\x8az\xdb.aM\x90\xbd9\xa6%Z\x00@\x91\xc7\xf1-\r]\xcb\xf1\xf2\xeb\x8e\xa7\ \xf6\x9f\xe7\x8e\xdbV\x94\xdd\xe8\xd0r\xc3?=8\xc2O\xf7\x8f\xb3\xef\xc5K\xbc~\ |\x8a4\xf3\x88(+\x06\xaal\xba\xbe\x87O\xfd\xf9 +\xfa\xa5\x04\xee\xbdg\xfc\ \x92\xb2\xe7\xd9&\xde\xc5\x88Y\x08N\xf5\xf1\x85p.\xba#\x1b\xbd\xe3\xa9Ch\xb6\ y\x1e9uT\x8c\xe3\xdf\x1e\xba\x8ek\x87jm\x1b\x96"6\xd2\xccs\xfa\xec\x0c\xcbzb\ z\xbbi\xd3x!\xd6*\xdf|l\x92\x93\xe7\xf3\x01\xfaz+,\xb4\x0f.\xc0g\xd6\xf1\xf4\ \xfe\xb3\xfch\xef8\x995\x88\x89\x83\xe6+`*\xe1:\x8c\xa6\xeb\xf9c\xcf\xde\xb5\ s1|\x97\xfd*ad\xf0\x1e\xc7\xd8K\xa8\x1b\xc9\x03+\xcb\xad\xe03\xd4g\xe0-\xbf|\ \xf14\x87\x0e\x8fq\xe7\x9f^\xcb\xe8\xba~\xd6\x0e/c\xc5\xf2\xae\x92L\xbd\x91r\ \xe2\xd4\x04\xc7NN\xf2\x8b\x17\xcfqr\xac\x01\x12\xe5\xa0}\x0c&\x06u\x88:\xd0\ \n\x18\x0f\x12\x9fB{v_\x0e\xdf\x92>-\x8e\xde\xfe\xd46\x97]x^]\xd2;\xab\xfd\ \xd61\x0b\xd6\xb0\x10\xb2\xc7\xb2n\xc3\xba\x91~.\xbc]\xe7\xcc\xf84\xaa\x82H\ \x04&B\xc4\x94Z\xce\xb5\xde\xaa\xf9\n&\xee\x9f\x89k\xd7|\xe4\xe83w\xce\xeb\ \xff\xdf\x11\x81\x9c\xc4\x8f\xff\xc26\xc6\x1f\xf3\xae\xde]\x02.\xfc\xd5\xa5\ \xf9\xe8\xb3\x90\xfe,\x14)\xb0\xcc\xe5&\x00\xcf5>\x1b\xb4\x9561\xd5\xfeF\xb5\ g\xe4sG\x9f\xf9\xe4\x7f,\x05\xd7\x15}\xdc\x1d\xfd\xe8\x0fw\xa43\xa7\x7f\xe0\ \xed\xd4\xaa\x92D)i\x0b\x81\xe0^\xea\xf2\xc2\x86\xe4\xe0M\x0csAK\x8cDUD*D\ \xd5\x81\xf3\x95\x9e\xe1\xbb\xdf\xdc\xfb\x99_\xa9\xce\xd9Q\xbd\x1b\x02"b\x80\ \x08\xa8^\xb3\xf1\xc1uq\xdf\r\xdfs\xe9\xc4\x86\x02\xe8,\x81\xdc\xa5h%\x96\ \x17"\xc4D\x01pe\x9e\xd6\xc5T1\xd5\xfe7\xb2\x8b\x07?{\xfe\xf8w\xdf\x04\x9a@\ \nX@u\x11\x90\x8b\x12\x08\xc0\rP\x05\xba\x80\x9e \xbd\xab6\x7f\xf1^\x13u\xdf\ \xef\xb2\xa9\x15\xcc\xb5\x86\xb6_\xe7\x04:\x01\x8f\x89\xaa\xcb\'\x9c\xad\x7f\ \xe7\xfc\xe1\x7f\xd9\x03\xcc\x00\xf506Z\x88\xf8\x85,\xb2 \x01\xc9\xbfVE\x01x\ \r\xe8\r\xb2\xac\x18\xa3\xa8\xbb\x7f\xf0\x83\xf7\xef\x16S\xdd\xe1mc%\x9a\xc9\ ,\xf0\xd9X\xc8\xe7\x0b\xbe\x9f\x07\xaf\x9a\xb8\xf7\x82\xaa}\xe1\xed7\x1e\xfd\ \x9es\xcd\xc9\x00z\xbaE\n"M \xd3\xb9\x9b\xe4%\x100@\xa5E\xf3\xcbZ\xa4\xaf\ \xe5\xbc\x17XV\xa9]3\xd2;\xbcs{\\\x1dZ\x0b\xae\xd7\xfb\xac\xa6.\x89\xc1\x8b\ \x98J&\xa6\x9a\x80\xcc\xb8\xe4\xe2[3g\xf7\xbd\x945\xcf\x9d\x9e\x03\xb8\x90\ \xa9\x96\xb1^X\xe1\x9d\x10h\xb5@w\x07\xf0}\x1d\xac\xd2\x13\xac\xd5\x1d\xde+\ \xb6W\x0eH\x82\xd4[\xb4[\xc8\\\xe0\xc5y\x9dY\x17\xea\x08t\x91/s\xaa\x80\x15\ \x11O\x1eLY\x07)@5\xc2\x82\xb5\x00\xbc\x1a\xc0\x1b\xca\x7f\x03\xb0\xe1\xd94<\ \xdfJ\xa4\xd0\xfe\xe4\x1c\xe0\xeer\xd9h\xc9i4\xb8\x94\x04\xd2Ur-\x17\xae\xd5\ Cn\x81Z\xf8\xad\x12\x08H\x00_(!%w\x89\x82@\x01\xb6\x00\x9c\x91[k\xd1\xcc\xf3\ \x8e\x08\xcc!\xd3\xf2\xa7R\xbe\r\xee0\x16\xe7\x85\x05|\x8b\xb4\xde\xd3+\x01|\ U\x08\xfc_:~\x0f\xbc\xd1\xbd\'X\xe0\x9fO\x00\x00\x00\x00IEND\xaeB`\x82Ex\xa6\ X' phatch-0.2.7/phatch/actions/round.py0000644000000000000000000004220411346363116017343 0ustar rootroot00000000000000# -*- coding: UTF-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu). # Follows PEP8 # Always import this: from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageChops, ImageDraw, imtools import Image import ImageChops import ImageDraw from lib import imtools # Declare constants here CROSS = _t('Cross') ROUNDED = _t('Rounded') SQUARE = _t('Square') CORNERS = [ROUNDED, SQUARE, CROSS] CORNER_ID = 'rounded_corner_r%d_f%d' CROSS_POS = (CROSS, CROSS, CROSS, CROSS) ROUNDED_POS = (ROUNDED, ROUNDED, ROUNDED, ROUNDED) ROUNDED_RECTANGLE_ID = 'rounded_rectangle_r%d_f%d_s%s_p%s' def round_image(image, cache={}, round_all=True, rounding_type=None, radius=100, opacity=255, pos=ROUNDED_POS, back_color='#FFFFFF'): if image.mode != 'RGBA': image = image.convert('RGBA') if round_all: pos = 4 * (rounding_type, ) mask = create_rounded_rectangle(image.size, cache, radius, opacity, pos) imtools.paste(image, Image.new('RGB', image.size, back_color), (0, 0), ImageChops.invert(mask)) image.putalpha(mask) return image def create_rounded_rectangle(size=(600, 400), cache={}, radius=100, opacity=255, pos=ROUNDED_POS): #rounded_rectangle im_x, im_y = size rounded_rectangle_id = ROUNDED_RECTANGLE_ID % (radius, opacity, size, pos) if rounded_rectangle_id in cache: return cache[rounded_rectangle_id] else: #cross cross_id = ROUNDED_RECTANGLE_ID % (radius, opacity, size, CROSS_POS) if cross_id in cache: cross = cache[cross_id] else: cross = cache[cross_id] = Image.new('L', size, 0) draw = ImageDraw.Draw(cross) draw.rectangle((radius, 0, im_x - radius, im_y), fill=opacity) draw.rectangle((0, radius, im_x, im_y - radius), fill=opacity) if pos == CROSS_POS: return cross #corner corner_id = CORNER_ID % (radius, opacity) if corner_id in cache: corner = cache[corner_id] else: corner = cache[corner_id] = create_corner(radius, opacity) #rounded rectangle rectangle = Image.new('L', (radius, radius), 255) rounded_rectangle = cross.copy() for index, angle in enumerate(pos): if angle == CROSS: continue if angle == ROUNDED: element = corner else: element = rectangle if index % 2: x = im_x - radius element = element.transpose(Image.FLIP_LEFT_RIGHT) else: x = 0 if index < 2: y = 0 else: y = im_y - radius element = element.transpose(Image.FLIP_TOP_BOTTOM) imtools.paste(rounded_rectangle, element, (x, y)) cache[rounded_rectangle_id] = rounded_rectangle return rounded_rectangle def create_corner(radius=100, opacity=255, factor=2): corner = Image.new('L', (factor * radius, factor * radius), 0) draw = ImageDraw.Draw(corner) draw.pieslice((0, 0, 2 * factor * radius, 2 * factor * radius), 180, 270, fill=opacity) corner = corner.resize((radius, radius), Image.ANTIALIAS) return corner #---Phatch class Action(models.Action): label = _t('Round') author = 'Stani' cache = True email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(round_image) version = '0.1' tags = [_t('default'), _t('filter')] __doc__ = _t('Rounded or crossed corners') def interface(self, fields): fields[_t('Radius')] = self.PixelField('2%', choices=self.SMALL_PIXELS) fields[_t('Same Method for All Corners')] = self.BooleanField(True) fields[_t('Method')] = self.ChoiceField(CORNERS[0], CORNERS) fields[_t('Top Left Corner')] = self.ChoiceField(CORNERS[0], CORNERS) fields[_t('Top Right Corner')] = self.ChoiceField(CORNERS[0], CORNERS) fields[_t('Bottom Left Corner')] = self.ChoiceField( CORNERS[0], CORNERS) fields[_t('Bottom Right Corner')] = self.ChoiceField( CORNERS[0], CORNERS) fields[_t('Background Color')] = self.ColorField('#FFFFFF') fields[_t('Opacity')] = self.SliderField(100, 1, 100) def get_relevant_field_labels(self): """If this method is present, Phatch will only show relevant fields. :returns: list of the field labels which are relevant :rtype: list of strings .. note:: It is very important that the list of labels has EXACTLY the same order as defined in the interface method. """ relevant = ['Radius', 'Same Method for All Corners'] if self.get_field_string('Same Method for All Corners') \ in ('yes', 'true'): relevant.append('Method') else: relevant.extend(['Top Left Corner', 'Top Right Corner', 'Bottom Left Corner', 'Bottom Right Corner']) relevant.extend(['Background Color', 'Opacity']) return relevant def values(self, info): #get info (always get this) width, height = info['size'] dpi = info['dpi'] round_all = self.get_field('Same Method for All Corners', info) rounding_type = self.get_field('Method', info) average = (width + height / 2) radius = self.get_field_size('Radius', info, average, dpi) opacity = int((self.get_field('Opacity', info) / 100.0) * 255) pos = ( self.get_field('Top Left Corner', info), self.get_field('Top Right Corner', info), self.get_field('Bottom Left Corner', info), self.get_field('Bottom Right Corner', info)) return { 'round_all': round_all, 'rounding_type': rounding_type, 'radius': radius, 'opacity': opacity, 'pos': pos, 'back_color': self.get_field('Background Color', info)} icon = \ 'x\xda\x01\x00\x0e\xff\xf1\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\ \x00\x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\ \x08\x08|\x08d\x88\x00\x00\r\xb7IDATh\x81\xd5\x9a{p[\xd5\x9d\xc7?\xf7\xe8q\ \xadk\xc9\x8ec\xcb\x96\x9f\xb2e\x1b\xdb\xd8q\xb2\xc4\x93\x17\x03yB \xd0\xce\ \x06f\x81\x86vX:\xa5\x03\x85\xce\xf0\'\x9d\xed\xfe\xbf\x7f\xecc\xda\xce\xb6\ \x0c\xd3\x9d\x1d\x16\xda$` P\x08)I\xcc36\xa5\tq\x1c?\x82Md\xc7\x8e\x1f\xaa\ \xadH~I\x96t\x1f\xfb\xc7\x95d\xd9\xb1\xc3\xc3av\xf6\xcc\x9c\xb9\xf6=W\xf7|\ \xbf\xbf\xf3\xfd=\xce\x91$\xc30\xf8\xff\xdc\xac\xdf\xc9[w\xef\xb6\x12\x08<\ \x88\x10\x9b\x81l\x0c\xa3\x0bIz\x95\xee\xeek7{*\xe9\xa6\xaf@C\xc3\x06,\x96\ \xff\xc606/\x1b\t`\x18O\xd1\xdb\xfb\xc6\xcd\x9c\xee\xe6\x12hjz\x1a\xc3\xf87@\ \xbe\xc1S/03\xf3,##\xd1\x9b1\xe5\xcd!\xd0\xd4\xb4>\xaei\x7f\xb4\x0b\xb1\xff\ \xeb<\x1e\xd7\xf5A\xbb\xc5r?\xdd\xdd\xbdk\x9dZ\xac\xf5\x05\xa1[n\xb9+\xa6\ \xaa\x83_\x17<\x80]\x88*M\xd7\xbb&\xab\xab\x7f\xb1\xd6\xf9\xd7\xb4\x02\xfe\r\ \x1b\xfeP\xa5\xeb\x87\xa45\x00\x18\xc9\xc9\xb9P\xde\xd1\xb1\xe9\xdb~~MQ\xa8\ \xaf\xaajg\x9e\xcfG\xde\xfb\xef\x83\xaa.\x193jk\xf9\xdb\x86\r$,\x16\x8a._\ \xc6\xd6\xd5\xb5\xf4\x19\x9b\x8d\xe0\xde\xbd\x9c\xeb\xe9\xa9-_\x03\x865\xad\ \xc0\xbf\xd8l\xf7\xe4VT\xbc|\xcfC\x0f\xe5W\xb6\xb7#MM\x81\xd3\xc9\xc4\xbe}\ \x9c\xeb\xeb\xe3\xc2\x993,\x18\x06\r\xf5\xf5l\xdd\xb9\x93\xcaO?E\x8c\x8da\ \x14\x15\xe1\xdf\xba\x95\x13\x87\x0fO]\x1b\x1d\xfd\xc1?\'\x12\xa7\xfeO\x08H\ \x92d}r\xf7\xee\xbf/\xbbr\xe5\xa5\xbd{\xf6d5ee1h\xb3\xf1\xa7\xd6V\x06\xcb\ \xcb\x89z\xbd\x08\xab\x15[ @Qo/\xf7\xec\xdeMSq1}\x93\x93\xb4}\xf8\xa1\x11\ \xda\xb1\xe3\xd7\xff\xf1\xf2\xcb\xffd\x18\xc6\xfcwK\xa0\xb9\xd9G<>\xc9\xa5K\ \xb3\x99\xb7\x8f\x1c9\xf2\x93\xe9\xe9\xe9_\x0f\xf4\xf7;\xd4\xb66n\x99\x9b\ \xe3K`\xaa\xa5\x85\x9c\xfc|\xdcn7\x0e\x87\x83\xd9\xd9Y&\'\'\xb1\x9d=\x8bol\ \x0c\x7fA\x01\xb1\xad[\xa9\xf2\xf9\xa8\xa8\xa88VTT\xf4\x8f\xfb\xf6\xed\x9bN\ \xbf\xb8\xbe\xde\x85\x10\x7fGo\xefGk\'\xd0\xd8\xf8C\xe0w\xc0\x04\xf0\x10==\ \xe7\xdfz\xeb-\x97\x10\xe2w\x86a<\x1a\x8b\xc5\x98\x9c\x9cdhh\x88\xd0\xc8\x08\ \x92\xcbEqq1\xa5\xa5\xa5\xe4\xe4\xe4`\xb1XH$\x12\x84\xc3a\x86\x87\x87\t\x8e\ \x8fc\xcb\xce\xa6\xbc\xbc<\xfd\x8c\xd5j\x1d\x92$\xe9\x91\x03\x07\x0e\xfc\x85\ \x86\x86\xcd\x08q\x14\xf0\x01\xff\x8e\xc3\xf1\x0b\xce\x9eM|s\x02\x1b7f\x93H\ \xfc\'\x92\xf4X\xc6\xddX\xd8\xeb\xfd\xd5\'?\xfb\xd9\x03@\r\x80a\x18\xa8\xaa\ \xca\xf4\xf44\xc1`\x10\xbb\xddN~~>\xd9\xd9\xd9X,\x16R\xcfh\x9a\xc6\xcc\xcc\ \x0c\xa1P\x88\xac\xac,\xd6\xad[\x87\xc3\xe1@\x88t$W7\xbe\xf2\xca\xbb\xe5\xe7\ \xce\xed\x07\xec\x19s\xfe\x15\x8b\xe5\x11\xba\xba\xfc_\x9f@S\xd3F\xe0(\x86Q\ \xb7\xd2\x87\xc6\x9b\x9b\xe9|\xe0\x014\x87#}O\xd7uTUE\x92$l6[&0Rs\xe8\xbaN"\ \x91@\x08\x81\xc5bA\x92\x92\x018\x1a\xa5\xa5\xb5\x15Ow\xf7\xca\xc6\x84\x19\ \xe0\tzz^Y>p}"\xab\xab+\x00N\xae\x06^/)!RS\xc3\x9c\xdf\x8f$Ii0v\xbb\x1dEQP\ \x14\x05\x9b\xcd\x86\xc5bIw\xab\xd5\x8a\xc5b\xc1f\xb3\xe1p8\x90ey\t\x81X0\ \xc8\x98\xc7C\xbc\xa9i5\x029\xc0\x116l\xd8\xf5\x95\x04t\x8b\xe5_1\x0c\xf7\ \x8a\xaf\xc9\xca\xe2|E\x05o\x1e?\x8eTZ\x8a\x10\x02\xab\xd5\x9a\x06\x98y\xcd\ \xec\xcb\xc72\xc9\t!\xb0\x16\x15\xd118\xc8\xc9\xf9y\x8c\xd2\xd2\xd5HH\x9a\ \xa6\xbd\xb8\xb8l\xab\x10P\r\xe3\xc1\xd5\xde\x10\xf1zi\xbdx\x91\xa9\xfd\xfb\ \x89eX\xffF\x00\xbfj\xccb\xb1\x80\x10\xa8{\xf7\xd2\x06\\\xcd\xcd]mz,\x92TA}}\ \xed\xea\x04n\xbf\xdde\x97e\'V+\x88\xeb\xd5u\xa9\xb7\x97\x99\x96\x16\x8a\x8a\ \x8a\xc8\xc9\xc9\xc1n\xb7/\x01\xb5\xfc\xef\xd5\xc6\x96wY\x96q\xbb\xdd\xe4n\ \xd9\xc2\xd9\xbe\xbeU\t\x00\x8c\x1a\xc6\xed\x99\xff/)%~\xd2\xde\xce\xafv\xed\ ";\x12\x01]\x07\xc30\xbb\xaa\x82\xaeS\x0bTVTPYY\x89\xcb\xe5J\xeb8\xd5\x81\ \xe5+\x0c,:\xb1a\x18\xd7\xf5\x94\x1f\xe5\xe7\xe7\xa3\xeb:\x8d\x92d\xce\xb9R\ \x93$:]\xae\xf5\x99"[b\xe6\xff\x02}\xa2\xa8H\'+\x0b\x1c\x0e\xb3ge\x81\xa2\ \x80\xa2\xe0R\x14n\x1f\x1b#777\xed\xa8_\xe5\x037\xb2~J\x82B\x08l6\x1b\xc5\ \xc1 \xb5\xba\xbe\xaa\xf5\xc3UU\x9c\x08\x87/K\x92\x94\xc6\xbd\xbc\x98s\xb4ML\ $J\xeb\xea\xe4\xac+WLK\xe8\xfa\x92\xbe\xfd\xdc9\xfa\xe6\xe7\x99\xfd\xe9O\x97\ X\xff\xabV 3\x94fZ?uU^{\x8dM\xa7O\xaf\xf8y\x00c\xfdz\xdaU\x95\x99\x96\x16\ \x17_~i\x05\xe2KV@\x92$\xc9\xe9tJ\x81M\x9b\xe4\x0f\x82A\xe6\xb6m[\\\x01\x87\ \xc3\\\x05\xa7\x93\x99}\xfb\x18\x8e\xc5n\xa8\xfb\xe5+p\xa3.\x84@\x08\xc1t$B\ \xe4\xae\xbb \x99\xfc2\xdbBS\x13g7n\xe4T,FAI\xc9]@\x9ae\xa6\x84\xac\xba\xae\ \xdbr\xab\xabi\x8b\xc58\xfc\xc6\x1bL\xec\xd8\x01n\xb7I\xc0\xe3a\xf4\x8e;\xf8\ ck+S\xd5\xd5\xe8\xba~\x9ddV\x03\xb9\xd2xf\x04\x13B0\xed\xf3\xf1\xea\xfb\xefs\ \xe5\xfe\xfb!/\xcfDd\xb31\xb5\x7f?\xc7C!\xfe\xf0\xc1\x07\x88\xdbn\xc3j\xb5\ \xaa)\x83\xa7%\x94\xd4\x94\xac\xaa\xea:Y\x96)\xde\xbb\x97\xee\xf3\xe7\x99\ \xf8\xedo9x\xe8\x105\r\r\xf4\x05\x02\xbc\xf5\xc2\x0bL\xef\xdbG}i)\x9a\xa6\ \xa5\x9d8\x95u\x97\xcbh\xb9\xf3\xea\xba\xbeD6zR\xef\x9a\xa6akjb\xfc\xda5\xfe\ \xe7\xf0a\xee\xbd\xf7^\x9ab1\xae\xba\xdd\xfc\xa9\xb5\x95\x9e\x8a\n\xecw\xdeI\ EI\t\x03\x03\x03S\x80\rH\x00F\xca\x07$@\x16B\xac\x9f\x98\x98\xa0\xb1\xb1\x11\ \x87\xc3\x81\xdf\xed\xe6\xa5w\xdf\xc5;?\xcfe\x97\x0b\xf5{\xdf\xc3[YIyy9\x8a\ \xa2\xa4\xad\'I\x12"\x91\xc0\x1e\n\x11\xf7xV\xd4\x7f:\xe2\xcc\xce\xa2Y\xad\ \xa8\xd6E\xf7\xb3Z\xad\xb8\\.J\x1a\x1a\xe8\x7f\xf0A\x8e\x9c>M\xa3\x10|\x19\ \x0c2\xbeu+yeex\xbd^\xa2\xd1(\xd1h\x14 \x0bX\x00\xf4L\x02V\x8b\xc5\xa2\x18\ \x86\x81\xdf\xef\xa7\xae\xae\x8e\xdc\xdc\\.\xe7\xe5\xf1\xe5\xc8\x08Y\xf9\xf9\ 4\xf8|TWW\x93\x9f\x9f\x8f,\xcbi\xf0Ycc\x14\x1d>\x8cuz\x9a\xe9\x9d;\t\xef\xdf\ \x7f\x1dx\xc30Pzz(\xfe\xcdo\xd0d\x99\xe1g\x9f%ZR\x92&\xe1t:\xf1\xf9|\xc8\xb2\ \xcc\x80\xa2p\xee\x8b/\xd0\xb6l\xc1\xeb\xf1PVV\xc6\xcc\xcc\x0c\xd1h\x14M\xd3\ \xecI\xe5,J(E\xc20\x0c\x0b@$\x12\xa1\xb3\xb3\x93\x86\x86\x066o\xdeL\xb0\xb2\ \x12\xa7\xd3\x89\xc7\xe3\xc1\xe5r\xa5\x8b5!\x04\xeb?\xfa\x88\xdc\xcf>CRU\x90\ e\xd6\x9d9\x83\xe3\xf2eB\x0f<@\xbc\xa4\xc4\xb4\xfc\xec,\xeb\x8e\x1d#\xe7\xe4\ I\x88\xc7\xb1\xce\xceR\xfd\xcb_2\xfe\xa3\x1f\x11\xdc\xbd\x1b\xc30\xb0X,dgg\ \xe3\xf5zQ\x14\x85\xf1\xc2B\xacV+\x8a\xa20::J<\x1eO\xc9Od\xfa\xee\x920\xaai\ \x9aa\x18\x86.I\x920\x0c\x83\xde\xde^JJJhjjBQ\x94t\x11&\x84\xc0\xba\xb0\x80\ \xfb\xd5WQ\xe6\xe6\xccHe\xb3\x81\xa6\x81\xaa"_\xbb\x86\xe7\xf9\xe7\x89\xbb\ \xddh\x8aBVo/\xd2\xc2\x82\x19\x0c\xacVH$\x10\xf18\xa5/\xbdD\xf6\xc5\x8b\x0c\ \xff\xf8\xc7\xe0p\xa4\xb3raa!.\x97\x8b\x89\x89\t\x86\x86\x86\xc8\xac\x985M[\ \xb2\xf9^\x92\xc8b\xb1\x986???\x95yoll\x8c\xf6\xf6v\xa2\xd1\xe8\x92H23>N(/\ \x0f\xa3\xacl1\xe9\xa5\xc2m\xb2\xdb\xc3a\x1c\xc3\xc3H\xb2\xbc\xe4>\x8a\x02\ \xd9\xd9\xe0\xf1\x10)/g\xaa\xa3\xe3\xba\x9c288\xc8\xe0\xe0\xe0\x12\xf0\x00\ \x81@`d5\x02:\xa0MLL|\xc1\xb2\x16\x8dFikk\xc3\xef\xf7\xa7\xc3_vY\x19\xa7O\ \x9e\xe4/\xfd\xfd$jk\x17A-\x07\xb9\xd2}E!\xd1\xd0@ws3\xc7^\x7f\x1dKM\x8d\xa9\ aIbvv\x96\x8e\x8e\x0e&&&\x96\xc3 \x1e\x8f\xcfuvv\x0e$\xb1.!`\x00\x1a\x10{\ \xf3\xcd7\xdf\x8dD"s\xa9\x07R\x16\x11Bp\xe1\xc2\x05:::H$\x12`\xb7S\xf4\xf3\ \x9f\xf3\xe1\xe4$G\x9e\x7f\x9e\xd9\xaa*3~gg/\xf6\x14\xf8\xcc\x95q:\x99\xdb\ \xb6\x8d\xb6@\x80#\xc7\x8f3\xff\xc8#De\x19]\xd7\x19\x1a\x1a\xe2\xcc\x993D"\ \x91\xeb\xc0\x03\xb4\xb7\xb7\xbf\x16\n\x85f\x92XuH\xee\xc8\x92y\xc0\tT\x01-\ \x15\x15\x15w\x1c}\xfaU\xe0,p\x19\x985\x0cCO\x11\x900\ \x0fd=\xc0\xad@\xb3,\xcb\xd5\x07\x0f\x1e\xbcs\xc3\x86\r\xb7\xa46.\x99\xc5\ \x97\x10\x82\xc6\xc6F\x8a\x8b\x8b\xf1\xfb\xfd\xf4uu1\xfb\xca+\xeclnf\xc7\x81\ \x03\xd8\'\'aa!\r^-(\xa0od\x84\xb7\x8e\x1c\xe1\xda\xae]\x14\xd4\xd4P[[\x8b\ \xa2(tuu\x11\x8b\xc5V\x04\x1f\x0e\x87\xc3\xaf\xbf\xfe\xfa{\xc3\xc3\xc3]@\x17\ \xd0\x03\x8c\x011\xc30\x8c\xf4\x9eX\x92$\x0b\xe0\x02\xca\x81z\xa0\x16(\xdd\ \xb6m[\xe3\x81\x03\x07\xb6+\x8ab_\xa9\x86q\xbb\xdd477\x13\x0c\x06\xe9\xee\ \xee\xe6\xea\x9f\xffL\xc1\xc5\x8b\x1cx\xea)\xf2\n\x0b\xcd2!\x14\xa2\xfd\xf0a\ :\xa3Q\xd8\xb5\x8b\xb2\x8a\njkk\t\x85B\xf4\xf6\xf6\xaeZ\xc0\xf5\xf5\xf5\xf5\ \x1f;v\xec\xc3X,6\x0c\x0c\x00\x97\x80a`\xc60\x0c--\xa1$\x01\t3E\xe7\x00%\x98\ \xc7\x1a>\xa0\xcc\xe3\xf1\x94?\xf6\xd8c\xbbKJJ\xf2\x97\x97\xc1\xa9Z\xa7\xa5\ \xa5\x05\x9b\xcdFww7_|\xfe9\xd1\x93\'\x11\xa3\xa3\x10\x8f\x93(,$\xb6i\x13\ \xb9uu\xf8|>JKK\xe9\xed\xed%\x10\x08\xac\x08<\x1e\x8f\xc7O\x9d:u\xe6\xb3\xcf\ >\xbb\x00\x8c\x02\xfed\x1f\x05\xa6\x81\x84\x91\x04\xbe\xe4T"\x83\x84\x13p\ \x03\x15\x98~\xe1\x15B\x14=\xfa\xe8\xa3;\xb6l\xd9Ro\xb3\xd9\xa4\x94\xa4R\xd9\ X\x92$|>\x1f^\xaf\x17\xbf\xdf\xcf\xa5K\x97\x98\x9a\x9a"\x91H`\xb5Z)((\xa0\ \xba\xba\x1a!\x04\xe7\xcf\x9fgaa\x01u\xd9y*\xc0\xe4\xe4\xe4Tkk\xeb\xa9@ 0\ \x08\x8c$\x81\x0f\x03\x7f\x03f3\xc1_G \x83\x84\x15\xb3\xde\xc8\x03J\x93$\xaa\ \x80\xe2\xed\xdb\xb7\xdf\xfa\xf0\xc3\x0fow\xb9\\Y\x99r\x02\xb3tp:\x9d466\xa2\ \xeb:\xe1p\x98\x85\x85\x05dYF\x96e\xae\\\xb9\xc2\xc0\xc0\x00\x9a\xa6\xa1i\ \x9a\x19\xcd\x92\xcd0\x0c\xa3\xb3\xb3\xb3\xfb\xed\xb7\xdf\xfeD\xd3\xb41`\x08\ \x18LZ\xfd\x1a\x10\x05Tc\x19\xe0U\x0f\xb6\x92>a\xc7\x94\x94\x07\xf0&I\x94\ \x17\x14\x14\x94=\xf3\xcc3{|>\x9f;%\xa3\xe4g\xd04\r \xbdo\x96$\x89\xe9\xe9i\ \x86\x86\x86\x98\x9b\x9bCUU4MK_u]\'\x1a\x8dF\xdfy\xe7\x9d\x8f\xba\xbb\xbb{\ \x80\xabI\xe0C\x98\xa7\x813\x98\x0e\xab\xad\x88\xf3FG\x8b\x19\x92\xca\x06\n0\ \x1d\xbc*I\xa6\xe8\xf1\xc7\x1f\xdf\xb1g\xcf\x9e[\xedv\xbb\x10B\xa4KfUU\xd1u=\ \rt9\xe8\xcc\xeb\xf0\xf0\xf0Xkk\xeb\xe9p8|\x05S*~L\xe9L\x01\xf3\x98\x92Yu\ \x9f\xf9\x95g\xa3I\x12\x16\x16%U\xcc\xa2\xa4JZZZ\xea\x9e|\xf2\xc9;\xf2\xf2\ \xf2\x1c\xc0\x8a\xa0S\'r)\xd9\xe8\xbaN<\x1e\xd7?\xf9\xe4\x93\xcfO\x9c8\xf1)f\ X\x1cJZ~\x0c\x08a\x96\xcb\xd7I\xe6\x1b\x13\xc8 "X\x94T!\x19\x92\xca\xc9\xc9)\ y\xee\xb9\xe7\xf6\xd5\xd7\xd7{R W\xb3\xb8\xaa\xaa\x84\xc3\xe1\xf9\xa3G\x8f\ \xb6\xf5\xf7\xf7_\xc2\x94L\xcaQ\'0\x1d5\xbe\x9ad\xbe5\x81$\x89\x94\xa4\x14 \ \x1f(K\x92\xa8\x04\x8a\x0e\x1d:\xb4\xe5\xbe\xfb\xee\xdb(\x84\xb0d\xaeB&\xa9\ \xfe\xfe\xfe\x91\x17_|\xf1\xe4\xdc\xdc\xdc\x08\x8b\x92\xb9\n\x04Y\x94\xcc\ \xd7\x06\xf5\x8d\xbf\xe0H\x92\x10\x98\x92\xca\xc5\xcc\x19\x95I"\xa5\xf5\xf5\ \xf5UO<\xf1\xc4\x9d\x85\x85\x85\xebRrQU\x95H$\x92x\xef\xbd\xf7\xfez\xe2\xc4\ \x89\xb3\x98\x91%\xe5\xa8\xe3@\x18S2\xda7\x01\xff\xad\x08d\x10\x11\x98\xab\ \xe1\xc2\xcc\x19iI\t!\xdcw\xdf}w\xa3\xcf\xe7+\xb4\xdb\xed\xb6\xabW\xaf\x06?\ \xfe\xf8\xe3\xbe@ 0\x8c\xe9\xa0\x83\xc0\x15`\x92E\xc9\xac~ \xf4]\x10H\x92H\ \xe5\x0c\x07\xb0\x1e3gTbF+7\xa6\xd4\x00"\x98\x12\x19\xc6\xb4z*\xb6G\xf8\x1a\ \x8ez\xa3\xb6\xa6o)\r\xc30$IR1\xb5\xabb\xca`6\t\xb6\x103\xa3K\xc0\x1cf&\x1dK\ ^\xa7\x81\x18\xa0\xaf\x05<\xdc\xc4\x9f\x1adH\xca\x81)\xab\x1cL?\x81Eb3\x98\ \x19\xf5\x86\xb1\xfd\x1b\xcd{3\x7f+\x91\xe1\xe0VL2\xa9\r\x93\x8ey\x8e\xa3r\ \x13\xac\x9e\xd9\xfe\x17Z)e=!o|\x97\x00\x00\x00\x00IEND\xaeB`\x82/\x91\xeeH' phatch-0.2.7/phatch/actions/saturation.py0000644000000000000000000003073411346363116020412 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageChops, imtools import Image import ImageChops from lib import imtools def saturation(image, amount=50): """Adjust brightness from black to white - amount: -1(black) 0 (unchanged) 1(white) - repeat: how many times it should be repeated""" if amount == 0: return image amount /= 100.0 grey = image.convert("L").convert(image.mode) if amount < 0: #grayscale im = imtools.blend(image, grey, -amount) else: #overcolored = Image - (alpha * Grey) / (1 - alpha) alpha = 0.7 alpha_g = grey.point(lambda x: x * alpha) i_minus_alpha_g = ImageChops.subtract(image, alpha_g) overcolored = i_minus_alpha_g.point(lambda x: x / (1 - alpha)) im = imtools.blend(image, overcolored, amount) #fix image transparency mask if image.mode == 'RGBA': im.putalpha(imtools.get_alpha(image)) return im #---Phatch class Action(models.Action): label = _t('Saturation') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(saturation) version = '0.1' tags = [_t('color')] __doc__ = _t('Adjust saturation from grayscale to high') def interface(self, fields): fields[_t('Amount')] = self.SliderField(-100, -100, 100) icon = \ 'x\xda\x01\xe1\r\x1e\xf2\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\r\x98IDATh\x81\xd5\x9a{\x8c\\\xe5y\x87\x9f\xf7;sffgvv\ vgo\xde\xab\xd7kc\x1b\x93\xd8\x0e\xf7\x04DB\x1a\x14)-Upj\nU\xd2H\xeee\x0b\ \x8d\x95Vm)\x97V\xeaE!\xff\x844\xad\xb8\xa5\x81Hn\x0b\x94*RJT\xaa"\x17c\x1c\ \x12\x88MS0Ax\x9d\x18\xaf\xbd\x1b\xeceo\x9e\xf1\xce\xcc9g\xce\xf9\xde\xfeq\ \xce.k\x83\tko+\xf5\x93\x8eV;\xbbs\xce\xefy/\xdf\xfb\x9bsFT\x95\xff\xcf+\xb5\ \xd2\'\xbc\xed\xb6\xdb\xbe\x90\xcf\xe7\x8f\xae^\xbd\xfa\xc0\xce\x9d;\xfd\x95\ >\xff\xd9KV:\x03\xc3\xc3\xc3\xff\xb1c\xc7\x8eO_w\xddu\xcc\xce\xce6\xe6\xe6\ \xe6\xca\xf3\xf3\xf3\'\xeb\xf5\xfa\x9ba\x18\xbe\x9eJ\xa5\xf6\x0f\x0e\x0e\xee\ \xbf\xe5\x96[N\x00\x17|\xf1\x15\x07hnn\xfe\x83F\xa3\xf17\xd7\\s\rw\xddu\x17\ \xcd\xcd\xcdDQD\xa3\xd1X<\x82 \xa0Z\xad\xdar\xb9\\\x9d\x9f\x9f\x9f\xda\xb0a\ \xc3\xc9F\xa3q\xdd\xf6\xed\xdb\xa3\xe5^o\xc5K\xa8Z\xad>\xdc\xd2\xd22\xbce\ \xcb\x96/\x95J%QUD\x04U\xc5ZK\x14E\x88\x08\xae\xeb\x9aB\xa1P\xc8\xe7\xf3\x85\ \xe1\xe1\xe1\xae\xcd\x9b7/[\xfc\x8a\x01\x88\x88\x00\xbcp\xfb\xed_|\xe1\xa1\ \x87\xeei\xb9\xfc\xf25N.\'\xd6Z\xc20DU\x17\x85\'\xff\xba\xb86n\xdc\xc8\xd3O?\ \xfd\xda\xe6\xcd\x9b\xcf\xeb\xda\x17\x04\x90\x08\x97}w\xdc\xf1\x0f\xfe\x87>t\ \xb3\xac]\xebvww#"|\x10\xf1\x00\xcd\xcd\xcd<\xfb\xec\xb3\xbb\xef\xbe\xfbn\ \xd1\xf3\xa8\xe7\xf3\x06\x10\x11\xf9\xfe\xc8\xc8H\xf5#\x1f\xf9z\xa5\xbf\xbf\ \xa9T*\xd1\xdf\xdf\x8f1\x06U}\x97\xf8l6K\xa9T\xe2\xe1\x87\x1f\xe6\xd2K/%\x9d\ N388\xc8\xee\xdd\xbbuff\xe6I\xc0\x15\x91PU\xed\xff:\x80\x88\x98\xe7w\xee|p\ \xe6\xe3\x1f\x1f\x11\xd7\xa5T,244\x84\xe38\x88\x08Q\x14\x9d!\xbeT*q\xe8\xd0!\ \xee\xb9\xe7\x1e\xc20\xe4\xc0\x81\x03\\\x7f\xfd\xf5l\xdd\xba\x95\xa7\x9ezj\ \xff+\xaf\xbcb\x81f\xe0\xb4\x88\xe8r2\xb1l\x00\x111{n\xbf\xfd\x9f\xe6\xae\ \xba\xeaVU\xa5\xb5Xd\xed\xda\xb5d2\x19R\xa9\x14\xaaJ\x10\x04DQ\x84\xe38455q\ \xef\xbd\xf7\xb2o\xdf>\\\xd7%\x93\xc9\x10\x86!{\xf7\xeeebb\x82\xe3\xc7\x8f\ \x8f\x02\xc3\x80\x07\xd4\x81p9z\x96\x05 "\xce\xde\x91\x91\xefV6o\xbeQ\x1a\r\ \xb2\xcd\xcd\xac[\xb7\x8el6K&\x93\xc1\x18C\x18\x86\x88\x08\xc6\x18\x00n\xbe\ \xf9f*\x95\n\xaa\xca\xdbo\xbfM\x14Ed2\x19z{{9vl\x8c\xb9\xd9\x939\xa0\x1dH\ \x03\x92\x1c+\x9b\x81\xa4Y\xcds;v\xec\xae\x0c\x0f_\xaf~<`\xd7\xac_O:\x9d\xc6\ u]\xd2\xe94\xd6Z\xac\xb5\x88\x08A\x10\xb0}\xfbv\xca\xe5\xf2\xe2\xe18\x0e\x8e\ c\xf0\x03\x9f\xea\xcf\xaatwwq\xd9G\xaf\xdeVI\xcfT\x0f|\xef\xe0\x0f\x13\xe1\ \xcbj\xe4\x0f\x9a\x01\xf3\xfc\xad\xb7~\xf7t_\xdf\xf5\xe2\xfb(\xd0\xb5~=\xcd\ \xc5\xe2\x19u\x1f\x86!\xd6Z\xaa\xd5*\xdb\xb6mc~~\x9e\xe9\xe9ij\xb5\x1a\x99l\ \x86\\S\x8el6\xbb8\x13\x9a\xb29\xba\xdaV\x99On\xf9\xd4\x17\xb7|\xe6\xca\x96G\ ~\xef\x91\xdfX\x8e\xf8\x0f\x04 "\xe6\x99O|\xe2S\xd5\x8e\x8e_\x96z\x1dU%\xdb\ \xd6F\xf7\xfa\xf5\x00\x8b\xcd\xba\x00\x10\x86!7\xddt\x13\xd5j\x95\xa9\xa9)<\ \xdf\xa3P(\xd0\xde\xdeNGG\x07\x85B\x01k-A\x10P(\x14\xe8\xed\xed\xa5\xa3\xad\ \x83M]\x9bn\x1a\xfa\xd75\x07\x9fx\xfc\xf1KE\xa4\xf6Aw\xa3\xf7\x05HJ\xc7u;:\ \xfe\xde\x06\x81\xd1d\x1f\xef\xda\xba\x15\x92\xe9\xba\xb0\xe3Xk\xc9d2\xdcy\ \xe7\x9d\xd4\xebu&\'\'\t\x82\x80bK\x91\xee\xeen\x06\x06\x06\xe8\xef\xef\xa7X\ ,\x12E\x11\xbe\xef\x93\xcf\xe7Y\xbdz5\xfd\x83\x83\xb4\xb6\xb6\xd2\xe7\x0e\\\ \xb4\xf5\xb6\x8fV\xfe\xf9\xd6\x9f\xdc""\xdf\x89\xe3\xf3\xfe;\xd29\x01\x12\ \xf1\xce\x9ek\xaf\xfdJ\xe8\xba\x83\xe2y\x88*\x99\x8e\x0e2\xed\xedg\x0c*\x11!\ \x93\xc9\xb0g\xcf\x1e^z\xe9%fgg\t\x82\x80\xd6\xd6Vz{{\x19\x1a\x1abhh\x88\xee\ \xeen\n\x85\x02\xb9|\x0e\xe3\xa4H\x19CKK\x0b-\x85\x02\xe9T\n\xc7\x18z\x8b\ \xad\xf2\xdb\x85k\x9e\x18\xfc\xe1\xfe\x81{?v\xe57D\xc4\xbe\x1f\xc49\xcd\x9c\ \x88\x98\x07\xd6\xad\x1b\xbex\xe3\xc6\x83\x91\xeb6i&\x83M\xa7i\xb9\xf1F\n\ \x1b7\xe2\xba.\xa9T\n\x11\xc1q\x1c\xac\xb5l\xdb\xb6\x8dj\xb5\xca\xc4\xcf\'h)\ \xb6\xd0\xd7\xd7\xc7\xba\xe1u\xacY\xb3\x86\x9e\x9e\x1eV\xadZE\xa9\xb3\x93T\ \x92\xbd\xc4\x13\xe1\xba.\xc6\x98\xc5~\x02\x08Uy.4O\xff\xe9U\x1f\xf9,\x10\ \x9d\x0b\xe2=3\x90D?\xf5\xe1\xd6\xd6Gj\x1b649\x8e\x83\x1c>\x8c\x93\xcf\xe3\ \xae\x1e\\\x1cP\x0b;N[[\x1b;w\xeeDD81y\x82|K\x9e\xce\x9e.\x06\x86\x07\xe8[\ \xddGWW\x17=\xfd}\x14\xdb;qS\x0eN"\xfel{\xd1\xf0}\x82FD\x18\xa1X\xe5\n\xf8\ \xcc\xc3\xbb\x9e\x99{\xea?\xc7\xd7\x8b\xc8\xe4{\xf5\xc5\xb9J\xc8<\xb9z\xf5e\ \x8e\xc8u\xe9#G\xf0GF(\xaf]KK\x10\x10YE\x96\x94N*\x95bbb\x82\xf1\xf1qNN\x9e\ \xc4I;\x94\xbaK\xf4\xae\xe9\xa1g\xa8\x87RO\x89\xce\xbe>R\xed]\x04\x8eATHK|\ \xe1\x05\xf1\xd5\xf9*~- %!b\x0c\xc6\x181" \xc2\x86U4\x7f\xfe\xd3\x83c=\xc5\ \x7f\xff\xac\x88<\xc3Y}a\xce\x11}\xb7]\xe4\xf3\xc6\xf7%=1\x01ss\xb4\x0f\x0f\ \x93\xfb\xf0\x87\t\xc3p\xd1\xd3\xfb\xbeOkk+\x0f>\xf8 a\x14R\xa9U(\xb4\x17\ \xe8\x18\xec\xa0kM\x17\xad=%:{\xd7a;{\xf0\x8c\xc1G\xf0\x01\x1fh(\xd4\xabU\ \xa6OL\xe3U\xca\x10y\x8bsd\xe1X\xd0\xd9\xdb\xa9\xe9_\xbb\xc1y\xfa\x0f\xef\ \xda\xfd5\xc0\xc8\x92\xb4\xbd\x0b y-\x93\xb3\xf6\x97\xc4\xf3\xc0\xf71\xaf\ \xbf\xbe\xb8E.\x15\x1fE\x11\xb3\xb3\xb3\x1c9r\x84\xa9\xe9)2-Y\x8a\xbdEJ\x03%\ Z\xba\xdb\xe8\xec\xb9\x84\xa0\xb3\x97\xba\xe3\x10\x88\xc1W\xc5S\xc5\x8b\x94\ \xe9\xb7OQ\x99\x9eF#\x8f(\x8a\xce\x14\x7f\xc6\xef\xca|M\xf5\xd4i\t\xaf\xde\ \xac;\xff\xf2\xab{\xf6^\xc2%\xee\x02\xc4{\x95\x90\x19I\xa7\xfb2\x8d\xc6EV\ \x04\x0b\x98W_%\xb8\xfaj\x00\xa2(\xc2\x18\xb3\xd8\x80\xbbv\xedBD\x98\xab\xcd\ Q\xec+R\xec/R\xe8-\xd0\xbe\xeaR\xaa\x9d\x03d\x1c\x07\x9b\xb8\x03+\x82F\x8a\ \xf7\xd6,&\xf0P\x07\x1c\rq\x8cA\x1dg1z\r5\x1c\x1ek\x84?<\xf0\xc6\xd43O\xdf\ \x7f\xe0t\xe5\xadQ\xe00p(Kv\xbc@!M\xec\x99\xf4\x0c\x80\x85\xf2\xf9\x15c>\xe7\ z\x9ei\xa8\x82*\x8c\x8e\x12x\xa7\xd1L\xf3\xa2x\x00\xcf\xf3(\x16\x8b\xcc\x95\ \xe7H\x15R4\xf7\x15\xc8\xf7\xe6)tl\xd2\xda\xaa\xb5\x92M\xb9\x10\x17m\xec\x11\ "%\x1a\x9bA\xfd\x00\xd71D\xaa\xa4-h\xcabTQU\x0e\xfe\xd46\x1e}\xf4\xfe7\x8e\ \x1d\xfd\xc1$P\x05N%\xf2r@\xab\x877\xe3\xe1U\x00GD\xf4\xec\x0c\x08\xe0v6\x1a\ 7\x88\x08F\x15\xac\xc5\xb7\x11\xf5\xd3\xaf\xa2r\xc5\xa2I[\x10v\xf1\xc5\x173\ \xd29\xc2c\xcfJ\xc4[U=\xa3\x84$\x01*D\xc4\xcdd\xa2\x08\xd7\xf7\xc9^\xe5h\ \xa6\xae\xbc=9F\xa9}\x00\x80\xc1\xc1AJ\xa5\x12O>\xf9$\xc7\xc6\x8f1\xd92\x8d\ \\\xb3C\xd3]\xab$\x9b\xf4\x88U\xc5\x9c\n\xa9\x1fS\xb1\xd6\x10\xa5\x15WAm\xac\ db2l<\xf2\xcd/\xef\xabV\xde:\x02\x8c\x02\x87\x801`\x06\x98\x07\x82D\xec\x196\ {\xe9\x1c8\x1b\xc0IA\xc1.y\xc1\xac\xb2\xb4\r\xa8S\x1e\x17~\xf6\xf3C\xf4\x0fl\ `\xd3\xa6M\xbc\xf8\xe2\x8b\xec\xda\xb5\x8b\xc9\xb9I\xde\xb0o\x90\x19\xbcZ\ \x8b\xb9\x92\xe4\xad]\xbc\x9a\x15C\xf3\xfe\xb2Vj\x19I\xa7,\x8a\xc6\xd1O)\xc7\ Ox\xfe\xe3\x8f\xfe\xee^\xdf/\xbf\t\xbc\x01\xbc\x9ed`fI\xd4\x97m\xe6\x8c\x0b\ \xe9\x05d\x03\xd0\x0c)G\xc9\xe7\x94\x96\xdc\t\x8a\xc5"\x0f<\xf0\x00\xe5r\x99\ \x97_y\x99\xe3\xe5\xe3\xa4\xd7dh\x99-\xaa)\x9f\x12\xc9\xe7\x91\x94\x8b:B\xf6\ \'U-O5\x89#\xa0V\x88\xac\xc5\xa6\x94\xd3\xf3\x1a\xfd\xe3#\xbf\xf3\\\x18T\x8e\ $\xc2\x17\xc4\xcf&\xe2\xdf\xd7\xc0\xbd\x1f\x00\'\xa1Q\x83\xd3MPP@\x1d\x10\ \x81L\x1a\xd2\xf2\x02\xdfz\xe8e\x0eM\x0e26:F\xe0\x07HN\x08\xcbJ}>4ff\n\xa7\ \xb5\r\xc96!\x9e\xa1\xb1?$\xb0.\x99\x94\xc5bI[A\xd5\xf0\xfd\xe7\xbf\xf7F"\ \xfe\xb5D\xfcX"\xde_\x8exx\xf7$\xd6\x9f@\xe5\xb7\xe0\xef\xc6`\xd6\x02\x81\ \xa0J\x0cP,\x80\x97\xf38<{\x98@\x83\x18\xdf\x01+\x05\rU\t\xc2\x08\xcf*u\x14\ \xdd[\xb1\xe5J\x93x\xbe\x83\x17\x18|_\xf0\x03\xc3\xd8\xf1\xa9\xca\xe8\xab\ \xdfz\x89\xf7(\x1bU=\xa7\xeb\xfc \x00J\xdc0\xde!\x98\xf8u\xf8\xde\xb30\xe1;X\ %n\x8e|\x1e\xeaY\xb1\xb4H|\x13\xa4\x08t\x81\xf4\xae\xd7hp\x88\xb0\xbd\x93 \ \x97\xc3s\\\xfcQC\xdd7x\x81P\xf7\x05?p\xa8yj\x7f\xf4\xdc\xbd\xfb\x807\x89\ \x9b\xf6\x18\xf1\xde\xee/\xf7~\xd0\xc2ZZBJ<$N\x01\xe3\r\xe8\xb8\x03\x9c\x91\ \x06\x97\xfff\xc0\x06c0\xf9\x1c\xa4[P:\x88\xeb*\r\xacr\xd1M7\x88\xae\xb9\x88\ \xa0\xbb\x07\x93/\x90\x9ar\xa8\x95\xf3&\x95\x02\xc5\xc4\xbb\x8eZ\xc6\x8f\xee\ ;zz\xee\xf5Q\xde\xd9*/H\xfc\xd9\x00$\x00s\xc9\x05\x1c\xa0\xf1\xcdC\x04?\xfes\ f\xff\xe2\x8f\xb9<\xdbD&]D\x19\x00\xda\x80f\xd0\xae\xf5\xca\xc5\x9b\xc5\xb6\ \xb5#\xcd\xcdxi\x97\xd4\x8b\xb3Q\xd5kv2\xe9x\xd0\xd9\xb4\xa1Z\x9b\xa9\xfd\ \xf4\xe5\xbf~\x9e8\xfac\xc4e\xb38\x90.\x18@UUD"\xe2\xa9w\x82x`\xd4\x81\xda\ \x81\x1fS\xff\xe2\x97\xa8|\xf5\x1e>\xe6\xb4\x90\xc3\x95\xf8\xafM\x80\xf6\x07\ \xda\xd1\x9d\x892\x19\xd488\x16\xfc\xfd\xa8\xe3\x9bE\xf1\x8aev|\xdf\x9b`\xc7\ \x13\x80\x13\xc4>\'<\x9f\xfb\xa1\xef\t\xb0\x04"LN~\x828B5\xa0:=Km\xe4O\x98\ \xbf\xe46>\xc6F\xfa\x00p\x81J\xce\x92\xc9\x801q(\xcbJ0\xdd\x9a\x12W\xb1jb/\ \xa4\xe8\xf4\xf8w\xfe\x8b\xb8a\'\x88\'l\xe3B\xc5\xbf\x0b`\t\xc4B\xf4\xa7\x88\ \xa7a\x1d\xa8ZK\xfd\xb5\x07\xd4\xe7\x93la\xbbl"\x8d\x13\x9f"q\xad\xd6b\x7fP\ \xb7\x8dF\xdeX+X\x8d\xf7\x7f\xdf\x9b,7jG\x8f$\xe2\x17\x06\xd5\x05\x95\xce9\ \x01\x16 \x80HD|\xdeq\x80\x1eqf\xe6\xd9\xa35\x8e\xe9,\xbfo\xaeDS\x16M\xfc\ \x81\x11\x18\x9d\x0e\xadmJ\xab\n\xd6\nj\rZ=8\x06\x9c\x04\xde&\xb6\x08\xcb\ \xde.\x97\x05\xb0\x04\xc4\x8aH\x00T\x88G\xbbG\\R5\x8e\xe0\xf1g\xb6\xccmr96\ \xca\'\xc6\x03\xc2P\xc1\xa2*D\x91P\x0f\x04\x99\xf9\xb7\x83\xc4\xd9,\xf3\x8e\ \xbfY\x91\xf5\x0b\xef\xcc\x9d\xd5\x17!KJ\x8a\x1a5\xee{\xacF\xb5\xfb\n~\xf5s\ \xc3\xa0B\x10&\xfa\xe2\xfb\xb46\x98\xa9R}\xe9\xa7\xc4\x93\xb6\xc6\nF\xff\x03\ \x01,\x81\x88\x8830C\\R\xf5\x04\xaa\xca\xc3_\xf7\x18}}\x96/\xfd\xd1V\xc2P\ \xd1\xc4\xcf\x8a@\xf0\xe6\xc9\xe4=eV`\xdbM\xc7_]M\xee\xda\x1e0\xa0\xb6N\ \x1c\xfd\x15/\x9f\xf3\x02\x80_\xd0\x17\x1a\xd4\x98\xba\xb3F\xeb\x8e-\x14\xbe\ p1\x1a\xd5\x89\xc57X\xe1\xf2\x81\x0bx\xc8\x97@X\xe2\x0c\xcc\xf2N_\xc4\xd98\ \xf5\xed\n\xc1\xcfF\xc9n]\xf8du^\xcf\x81\x7f\xd1Z\x91\'\xf5"b\x88\x83\x91\ \x03:\x81!\xe2\xe7^\x05\xe2\xfd\xff \xb1\xff\x99\xbf\x10\xe3\xf6^kE\x1et/\ \xe9\x8by\xe2H\xfb\xc4\xae\xb6\x8d8#\x0bsd\xc5\xbf\x1a\xb3\xa2\xdf\x95Xx\x96\ Fl\xb4\xf3\xc4\x19\xb1\xc4`+b\xde\xce^\xff\x03PiL\xa0\xa2\xb2~A\x00\x00\x00\ \x00IEND\xaeB`\x82\xber\xe4\\' phatch-0.2.7/phatch/actions/save.py0000644000000000000000000003632611346363116017162 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu). # Follows PEP8 import os from core import ct from core import models from core import pil from lib import imtools from lib.reverse_translation import _t #no need to lazily import these as they are always imported import os def init(): global Image import Image global get_quality, get_size, InvalidWriteFormatError from lib.imtools import get_quality, get_size, InvalidWriteFormatError SIZES = ['0', '10', '20', '50', '100', '200', '500', '1000', '2000', '5000'] TOLERANCES = ['0', '1', '2', '5', '10', '20', '50'] class Action(models.Action): """Defined variables: """ label = _t('Save') author = 'Stani' email = 'spe.stani.be@gmail.com' version = '0.1' init = staticmethod(init) tags = [_t('default'), _t('file')] __doc__ = _t('Save and convert to other types') valid_last = True def interface(self, fields): fields[_t('File Name')] = \ self.FileNameField(choices=self.FILENAMES) fields[_t('As')] = \ self.ImageWriteTypeField(self.TYPE) fields[_t('In')] = \ self.FolderField(self.DEFAULT_FOLDER, choices=self.FOLDERS) fields[_t('Resolution')] = self.DpiField(choices=self.DPIS) fields[_t('Show Type Options')] = self.BooleanField(False) fields[_t('PNG Optimize')] = self.BooleanField(False) fields[_t('JPEG Quality')] = self.SliderField(85, 1, 100) fields[_t('JPEG Size Maximum')] = \ self.FileSizeField('0 kb', choices=SIZES) fields[_t('JPEG Size Tolerance')] = \ self.FileSizeField('10 kb', choices=TOLERANCES) fields[_t('TIFF Compression')] = \ self.TiffCompressionField(self.COMPRESSION) fields[_t('Metadata')] = self.BooleanField(True) def get_format(self, ext, photo=None): if ext == self.TYPE: if photo: ext = photo.info['format'] else: return None return imtools.get_format(ext) def get_relevant_field_labels(self): """If this method is present, Phatch will only show relevant fields. :returns: list of the field labels which are relevant :rtype: list of strings .. note:: It is very important that the list of labels has EXACTLY the same order as defined in the interface method. """ ext = self.get_field_string('As') #specific file type relevant = ['File Name', 'As', 'In', 'Resolution'] # can be anything _type = ext == self.TYPE if _type: relevant.append('Show Type Options') advanced = _type and \ self.get_field_string('Show Type Options') in ('yes', 'true') format = self.get_format(ext) if format == 'PNG' or advanced: relevant.append('PNG Optimize') if format == 'JPEG' or advanced: relevant.extend(['Metadata', 'JPEG Quality', 'JPEG Size Maximum', 'JPEG Size Tolerance']) if format == 'TIFF' or advanced: compression = self.get_field_string('TIFF Compression') relevant.append('TIFF Compression') if compression in ('', 'none'): relevant.append('Metadata') return relevant def apply(self, photo, setting, cache): #get info info = photo.info #get file values folder, filename, typ = self.is_done_info(info) format = self.get_format(typ, photo) if not setting('overwrite_existing_images') \ and os.path.exists(filename): return photo #get other values dpi = info['dpi'] = self.get_field('Resolution', info) save_metadata = self.get_field('Metadata', info) #filename filename = self.ensure_path_or_desktop(folder, photo, filename, desktop=setting('desktop')) #construct options options = {'dpi': (dpi, dpi)} if format == 'PNG': optimize = self.get_field('PNG Optimize', info) if optimize: options['optimize'] = 1 elif format == 'JPEG': jpg_size = self.get_field('JPEG Size Maximum', info) quality = self.get_field('JPEG Quality', info) if jpg_size: im = photo.get_flattened_image() delta = self.get_field('JPEG Size Tolerance', info) #check necessity # only if file is bigger than desired size size = get_size(im, 'JPEG', quality=quality) if size > jpg_size + delta: quality = get_quality(im, size=jpg_size, up=quality, format='JPEG', delta=delta) options['quality'] = quality elif format == 'TIFF': compression = self.get_field('TIFF Compression', info) options['compression.tif'] = compression #save try: photo.save(filename, format=format, save_metadata=save_metadata, **options) except InvalidWriteFormatError: filename = os.path.splitext(filename)[0] + '.png' photo.log('%s format has been saved as PNG\n' % format) photo.save(filename, format='PNG', save_metadata=save_metadata, **options) return photo def is_done_info(self, info): folder = self.get_field('In', info) filename = self.get_field('File Name', info) typ = self.get_field('As', info) return folder, os.path.join(folder, '%s.%s' % (filename, typ)), typ def is_overwrite_existing_images_forced(self): return (self.get_field_string('In') == self.FOLDER) and\ (self.get_field_string('File Name') == self.FILENAME) and\ (self.get_field_string('As') == self.TYPE) icon = \ 'x\xda\x01\xaa\x0bU\xf4\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0baIDATh\x81\xd5\x99{l[U\x9e\xc7?\xf7^\xdb\xb1c;\xb1\ \xe3\xb8v\\\xb5I\xd3$0@h\x11\x85\x02E4B\xd0\xaaM\xba\xedj\xe8\xd0e\x1e\x1a1\ \xa3]\x8d\x06\xb1+\xad4\xd5J\xbb"\x83\x96\xfe\xb1\xaaf\xe9\xee\x82F\xc30\x9a\ \x85\x9d\x11\xa8\x12\x15iCy\xa4Q_\xd3i\x02\xcdc\x93\x16hi\xda\xe6\xfdp\x1c\'\ q\x12\xe7>\xf7\x0f\xfb\x9a\x1b\xd7I[\x9a.\x9a#\x1d\xf9\x9es,\x9f\xef\xf7\xfb\ \xfb\xfe~\xe7\xdek\xc10\x0c\xfe\x92\x9b\xf8m\x03\xb8\xdd\xf6\x17O\xc0v\'\x7f\ \xfc\xe8\xd1\xa3\xff`\xb7\xdb\xf7\xc8\xb2\xfc\xec\xf6\xed\xdb\xaf\xdd\x89=\ \x84;\x91\x03MMM\x85\xc0\xdb~\xbf\x7f\x87$I\xcc\xcc\xccLONN\xfe`\xfb\xf6\xed\ \r\xcb\xbd\xd7\xb2\x13hhhx\xc0\xef\xf7\xbf\xef\xf3\xf9V\x99s\x86a \xcb\xb2\ \x11\x8f\xc7\xff\xd3f\xb3\xfdcMM\x8d\xba\\\xfb-+\x81\x0f?\xfc\xf0\x85`0\xf8+\ \xb7\xdbm7\x0c\x03\xc30\xd0u=\xf3\xa9i\x1a\xd3\xd3\xd3m\xb3\xb3\xb3;\xb7m\ \xdb\xd6\xbf\x1c{.\x0b\x81\x83\x07\x0fz\x02\x81\xc0\xdb\xe1px\x97\xc3\xe1\ \xc8\x006\xbb\xa6i\x999UU\x99\x9f\x9f\x8f\xcf\xce\xce\xfe`\xcb\x96-\x8d\xdf:\ \x81\x0f>\xf8\xa0\xda\xe7\xf3\x1d\t\x87\xc3\xabEQ\\\x00V\xd3\xb4\xccX\xd3\ \xb4\x05s\x9a\xa6\x19sss\xbf\x9a\x98\x98\xd8\xbb{\xf7n\xed[!\xf0\xd1G\x1f\ \xfdm$\x12\xf9/\xbf\xdfo7\xc1YU\xcf5\x97MDU\xd53\xaa\xaa>\xb3u\xeb\xd6\xa1\ \xff7\x02G\x8e\x1c\xc9w\xbb\xdd\xbf/--\xdd\x9d\x97\x97\x97S\xed\xec\xb1\xaa\ \xaa\x8b\xaei\x9a6\xa6(\xca\xdf\xd4\xd6\xd6\x1e\xbb\xe3\x04\x1a\x1b\x1b\xbfS\ TT\xd4\x18\x89D\xd6\x88\xa2\x98IR+\xc0\x9bQ\xdeJ&\xfd=]\xd3\xb4_\xb6\xb5\xb5\ \xfd\xebK/\xbd\xa4\xdf\x11\x02G\x8f\x1e\xfdQ(\x14\xfaM \x10\xc8\xd3\xf5\xd4\ \x1e\xd6d\xb5&\xac\t,[y\x93p.B\x00\x82 |"\x8a\xe2\xf7\xb7m\xdb6\xb6l\x04\x8e\ \x1f?\xee\xd44\xed7\xa1P\xe8\x87N\xa73\xb3\x99\xb5L\xe6\x02\x97\x1d\x81\xec5\ s>G\x1b\x14\x04aOmm\xed\xa9\xdb&\xd0\xd0\xd0PQXXx8\x18\x0c\xde-\x8ab\x068\ \x90\x01l\xad:\xa6\x9d\x80E\xab\x90u\xbcDS\x05A\xf8\xe7\xda\xda\xda\x7f\x03\ \x16\x05\xb9$\x81\xc6\xc6\xc6g\x8b\x8a\x8a~\xe7\xf5z\xf3\xcd9\x13\xb0\x95\ \x84\xf5\xb02\xc1Y\x89\xa8\xaaz]Dn\xa15\xda\xed\xf6\x1fm\xdd\xba5v\xd3\x04\ \x0e\x1e<\xe8(,,\xfc\x0f\xbf\xdf\xffwv\xbb\x1dA\x10\x16\xd8&\x1b\xb8ulU6\x97\ \xea\xdf\xb0l\xf7\x1a\x86\xf1\xec\x8e\x1d;\xce\xde\x90\xc0\xe1\xc3\x87\xd7\ \xb8\\\xaeC\x05\x05\x05\xebDQD\x10\x84\x0c@+\x11\xab\xeaV2\xd9>\xb7F\xe2V\ \x9a\xb9/dDS\x0c\xc3\xd8\xbbc\xc7\x8e\x7f_\x94\xc0\x91#Gv\xb9\xdd\xee\xffv\ \xb9\\\x05\xd9?f\xaaj\xb5\x8fi\x85\\6\xb2*\x7f\xb3`\xad\xa0s\x91H\xf7C\xaa\ \xaa>\xbfk\xd7\xaex\x86@CC\x83W\x14\xc5W=\x1e\xcf\xf3v\xbb}\xd1M\xadI\x97\ \x0b\xb45"7\x02.\x08\xc2\x02\xe0\xd9\xe0\xad\x04,%\xd6\xc4\xd0\xe7\xf7\xfb\ \x7f\xf9\xc8#\x8f\xbc)\x02\xbc\xf3\xce;{\x82\xc1\xe0\xf3yyy\xd7\x1d:\xaa\xaa\ f\xba\xa6i(\x8a\x82,\xcb(\x8a\x82\xa2(\x995s\xbc\x94\xea&PQ\x143]\x92$L\xab\ \x9a\xd7\xd6\xf9\xec\xee\xf5zy\xf8\xe1\x87W\x9d;w\xee\xd7\x90~\xa4\xec\xea\ \xea\xd2_y\xe5\x15\x06\x06\x06\xf0x<\x0b\x00\x99\xd7\xb2,g\x80[I\xdd\x08\xb4\ \t\xdc\n\xd2\x04\'IRf\xcd\xbc\xb6\xae\x9b\xf3\xe68\x1c\x0eSQQ\xc1\xcb/\xbf\ \xcc\xa1C\x87\x0cA\x10\x04[:D.\x80\xb7\xdez\x8b\x8d\x1b7RWW\xc7\xc8\xc8\xc8u\ \xbe\xb7\xfa\xfff\x9byvX\xd5\xcf\x1eg\xe7@\xb6uDQ\xa4\xa2\xa2\x82\xd1\xd1Q^x\ \xe1\x05dY6\xb1\t\xa2 \x08\xa2$I\x95===\x18\x86AKK\x0b\x07\x0e\x1c\xc0\xe7\ \xf3a\xb7\xdb3\xd6\xb9\x19_\xe7R=\x97\x92\xe6u\xb6\xdaf7\t\x88\xa2H~~>\xd5\ \xd5\xd5455Q__\x8f,\xcbLLL0<<,\x016\x11\x10UU\x8d\xdds\xcf=|\xf5\xd5W$\x93I\ \xa2\xd1(\xfb\xf6\xed#\x91HP\\\\|K\x8a[\x81[m\x91\xcb\xcf\xd9\xdf\xcd&\\\\\\\ LYY\x19\xfb\xf6\xed\xe3\xbd\xf7\xde\x03\xa0\xb7\xb7\x17]\xd7)++S\x01\xbb\x08\ \xd8\x04Ap\'\x93I\xd6\xaf_O,\x16c||\x1c]\xd7y\xf3\xcd79u\xea\x14+W\xae\xccY%\ r\x81_*Q\xb3\xa3a\xb3\xd9r\xfa]\x92$\xd6\xacY\x83\xae\xeb\xbc\xf8\xe2\x8b\\\ \xbat\tEQ\xf8\xf2\xcb/Y\xbbv-\xc1`\x90d2i\x00y\x12\x90g\xb3\xd9\xfc^\xafw\ \x97 \x08B \x10\xc0f\xb3\xd1\xdf\xdfOAA\x01\xbd\xbd\xbd|\xfe\xf9\xe7l\xde\ \xbc9\x93\xb8K)oU|)"\xb9\xd4\x17\x04\x01\x87\xc3Aee%\xcd\xcd\xcd\x1c8p\x00UU\ \x99\x9c\x9cdpp\x90\r\x1b6077\x87\xae\xeb\xf4\xf5\xf5]\x8eF\xa3\x7f\x90\x00W\ "\x91\x88\x0e\x0f\x0fw;\x9d\xce\xa7\xddn\xb7]\x92$JKK\xf9\xe2\x8b/\xc8\xcf\ \xcf\'\x99Lr\xf2\xe4I\x1ex\xe0\x01\x02\x81\x00\xb3\xb3\xb3\x8b\x82\xb7\x02\\\ \xcc\xdf\xd9\x15\xc8\x8c\x9a\xcf\xe7#\x12\x89\xb0\x7f\xff~\x9a\x9b\x9b\x01\ \xe8\xef\xef\'//\x8f\xaa\xaa*\xa6\xa7\xa7\x99\x9f\x9f\xa7\xb3\xb3\xf3\xd4\ \x95+W\xfe\x1eHH@\x1e\xe0RUU\x1e\x1a\x1ajQ\x14e} \x10\xf0\xc9\xb2Lyy9\xfd\ \xfd\xfd(\x8aB~~>\x9d\x9d\x9d8\x1c\x0e\xee\xbb\xef>\xa6\xa7\xa7s\x82\xcf\xb6\ \x04\x90S\xf9\xec\x08D"\x11dYf\xef\xde\xbd\x0c\x0c\x0c\xa0(\n===TWWc\xb7\xdb\ \x99\x9f\x9fg||\\\xfb\xf4\xd3O\xdf\x89\xc5b\x7f\x04&\x80)\x89\xd4\xdb9;\xe0\ \x00l\xf1x\xbc;\x1a\x8dz\x8a\x8a\x8aJu]\x17\x82\xc1 \x0e\x87\x83\xc1\xc1A|>\ \x1f\x03\x03\x03\\\xbdz\x95M\x9b6\xa1(\n\xba\xae/\xaa\xbea\x18\x19\xa5sED\ \x92$\x1c\x0e\x07\xa5\xa5\xa5\x9c>}\x9a\xfd\xfb\xf7\xa3(\n\x93\x93\x93\x0c\ \x0f\x0f\xf3\xd8c\x8f111\x81\xae\xeb\\\xbe|y\xba\xb3\xb3\xf3\xd7\xb2,\xb7\ \x01\xa3\xc080-\x91:\xcc\x04K\'\x99L^\x1b\x1a\x1a\x1av\xb9\\\xf7\xb9\\.I\x92\ $\xaa\xaa\xaa\xe8\xee\xee\xa6\xb0\xb0\x10EQhkkc\xdd\xbau\x14\x14\x14 \xcbr\ \x06`v"\xe7\xca\t\xf3\xd3\xe3\xf1\x10\x0e\x87y\xf5\xd5Wy\xf7\xddw10\x18\x1d\ \x19\xc5\xe9tr\xf7\xddw3>>\x8e,\xcbttt\\\xbcr\xe5\xcao\r\xc3\xb8\n\x0c\x02#\ \xe9\x08$\xa4\xb4\x8d\r@\x07T@\x03TM\xd3\xe2CCC\xff\xabi\xdawV\xacX\xe1\x91e\ \x99{\xef\xbd\x97\xcb\x97/c\x18\x06n\xb7\x9b\x0b\x17.\xe0\xf1x\xa8\xa8\xa8`v\ v\xf6:\x80\xd9\x87\x97u-\x1c\x0e\xa3\xeb:\xbf\xf8\xa7_p\xea\xfc)>\xfb\xf3gLO\ O\xf3\xf8c\x8fc\xb3\xd9\x98\x99\x99!\x16\x8b\xe9\xad\xad\xad\x1f\xc6b\xb1\ \xf7\xd3\xc0\x07\x80! \nL\x01\xc9\\\x04\x14K\x9f\x9f\x98\x98\xe8\x8cF\xa3\ \xdeP(\xb4\xca0\x0cV\xaf^\r@__\x1f+V\xac`pp\x90\xa1\xa1!\x1e|\xf0AdY^PN\xb3\ \x0f%A\x10\xb0\xdb\xed\x94\x95\x95\xd1\xda\xdaJ}}=-\x8e\x16z\x9e\xeb\x81F\ \xd8\xfa\xe4Vf\x123h\x9aFOO\xcfL{{\xfb\xefdY\xfe,\r|\x00\x18N[g\n\x98\x03\ \x14\xc10\x0c\x84\xd4.b:\x1f\xf2\x007\xe0\x03\x02@\x08\x08;\x9d\xce\r\x8f>\ \xfa\xe8\xf7\xcb\xca\xca\xec\x0e\x87\x83@ \xc0\x89\x13\'\xa8\xae\xae&??\x1f\ \x87\xc3\xc1\xce\x9d;3\xeae\xab.\x08\x02^\xaf\x97\x92\x92\x12^\x7f\xfdu\x9a\ \x9a\x9ahs\xb5\x91x?\x01o\x80\xfb_\xdc|\xf7\xaf\xbe\xcb\xe8\xe8(]]]\x97\x07\ \x06\x06\xfe\x98\x06<\x9c\xf6|\x14\x98\x04f\x80\xf9\xb4\xd8\xba`\xb9U5s\xc0\ \x96Nh\x17P\x90&\x11\x04\xc2@\xe9\xfa\xf5\xeb\x7f\xb6a\xc3\x86b\x87\xc3\xc1\ \xca\x95+9~\xfc8\x91H\x84\x92\x92\x12\x04A\xe0\xa1\x87\x1e\xa2\xb2\xb2\x92X,\ \xb6\x80D$\x12\xc10\x0c\xea\xeb\xeb\x99\x98\x98\xe0\xc4\x9fN0U?\x05\xf3\xb0\ \xf6\x93\xb5\xec\xac\xdeIkK\xab\xde\xd1\xd1\xf1I"\x918\x91\xf6\xf9H\x1a|,\r~\ \x0e\x90\xd367\x0c\xc30\xae{"\x13\x04ALG\xc3\x0e8\x01/\xe0O\x93\x08\x01\xe1U\ \xabV\xedy\xf2\xc9\'7\xf8\xfd~\xfc~?}}}D\xa3Q\xaa\xab\xab\x11E\x91P(DMM\r\ \xb1X\x0cI\x92(//\xa7\xbd\xbd\x9d\xd7^{\r\x80\x99\x99\x19\x9a\xff\xdc\x0c\ \x05\xb0\xe5\xaf\xb7P*\x95r\xf6\xe4\xd9\xd9\x0b\x17.\xbc\xadi\xda\xc5\xb4\ \xea#\xc0\x18\x10\x07\xa6\x81d\xda\xd6\x9aa\x01\x9d\xf3\x99x\tK\x15\xa7I\x84\ \xbc^\xef\xa3O?\xfd\xf4\x9e\xb5k\xd7JN\xa7\x13\xb7\xdb\xcd\xb1c\xc7\xd8\xb8q\ #N\xa7\x13\x9b\xcd\xc6SO=EYY\x19o\xbc\xf1\x06g\xce\x9c\x01`ll\x0c\x9f\xcfGKk\ \x0b?\xfd\xc9O\xe9\xe9\xe9\xe1\xec\xd9\xb3W\x07\x06\x06\xfe\x87T\x82\x9a\xca\ \xe7\xb4\x8c\x91\x05x\xd1\xb7\x127\xb0\xd4\x8a4\x91\xb2\'\x9ex\xe2\xe7\x9b6m\ \xf2;\x1c\x0eJJJ8|\xf80\x15\x15\x15\x19\xcb\\\xbcx\x91\xb1\xb114Mchh\x88\xcd\ \x9b7322Byy9\xa7O\x9f6\xda\xdb\xdb\x9b\xa7\xa6\xa6\x8e\xa5\xadb\xfa=F*Qg\xd3\ \xaa\xab\xa6e\xae\xc3y\x13\x8f~VK\xb9\x00\x0f\x0b-Ur\xd7]w\xfd\xb0\xae\xae\ \xee~\xbf\xdfO \x10\xa0\xab\xab\x8bD"\xc1\xbau\xeb8w\xee\x1c\xc3\xc3\xc3LMMQ\ WWG[[\x1b\x86a\xd0\xdb\xdb\x9b\xec\xee\xee~[\xd3\xb4/,\xaa\x8f\x91\xaa\xefV\ \xcb\xe8\x86a,\xfa\x02\xe9\xa6\xde\xcc\xdd\x8c\xa5|>\xdf\xe3\xcf<\xf3\xcc\ \xf7*++E\x97\xcb\x85 \x08|\xfc\xf1\xc7\xcc\xcc\xcc\x90\x9f\x9fOUU\x15\x97.]B\ UU\xba\xbb\xbb\xfb\xfa\xfa\xfa\xde"e\x19\xd3\xef\xe3\xa4\xfc\xbe\xa4e\xbe\ \x11\x01\x0b\x89\x1bYjM]]\xdd\x8b555^\x87\xc3A(\x14\xa2\xbb\xbb\x9b\xabW\xaf\ \x12\x8f\xc7\x99\x9a\x9a2:::NNNN~\x9c\x06\x9dm\x19\xb3\xca,j\x99oL\xc0Bd)K\ \x85\x81\xf0\xfd\xf7\xdf\xff\xe3\xdd\xbbw\xdf\xeb\xf7\xfbiii!\x1e\x8f\xd3\ \xd7\xd77\x7f\xfe\xfc\xf9?(\x8ar\x9e\xdb\xb0\xccm\x13H\x93\xc8\xb6\x94\x07($\ e\xa9\x15@(\x18\x0c>\xf1\xdcs\xcf\xed\x1e\x1d\x1d\x15\xcf\x9c9\xd3\x7f\xed\ \xda\xb5\xdf\xf3u\x951\x0f\xa6[\xb6\xcc\xb2\x10\xb0\x90\xc8\xb6T!_G\xa3\xd8f\ \xb3\xad.,,\\?>>~\x82TI\x8c\x92R\xfd\x1b[f\xd9\x08X\x88\xe4\xb2T!\xa9$\xf7\ \xa6\xe7\x15R6\x89\xa7\x89$\xd2\xe0o\xd92\xd9\xed\xb6\xff\xa97\x0cC\x17\x04\ \xc1`\xe1\r\xe1<)k\xb8\x00\x89\xd4\xd1?\x97\x9e\x9b\xe36,\x93\xdd\x96\xed\ \x7fb\x8b\xa5$R\xaa\x9b]$E\xccz\x97\x9b\xb9\x97\xb9\xed}\x97\x8b@\xe6\x07\ \xbfNp\xb3\x0b|\x1d\x1d\x9deP\xdd\xda\xfe\x0fy\xe7\x9cX\xce.3\x93\x00\x00\ \x00\x00IEND\xaeB`\x82^\xe8\xad\\' phatch-0.2.7/phatch/actions/save_metadata.py0000644000000000000000000003443211346363116021016 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu). # Follows PEP8 from core import ct, models, pil from lib.reverse_translation import _t #no need to lazily import these as they are always imported import shutil import os class Action(models.LosslessSaveMixin, models.Action): """Defined variables: """ label = _t('Save Tags') author = 'Stani' email = 'spe.stani.be@gmail.com' version = '0.1' tags = [_t('file'), _t('metadata')] __doc__ = _t('Save only metadata (lossless)') def apply(self, photo, setting, cache): info = photo.info filename = self.get_lossless_filename(photo, info) #do it if info['path'] != filename: shutil.copy2(info['path'], filename) info.save(filename) if photo.modify_date: # Update file access and modification date os.utime(filename, (photo.modify_date, photo.modify_date)) return photo icon = \ 'x\xda\x01\xc7\x108\xef\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x10~IDATh\x81\xd5\x9a{pT\xd7}\xc7?\xe7\xbe\xf6\xa5\ \xd5cWZIHH \x81$\x90\x01\x81\xb10\xe6Yc\x9c\x80\xf1\xd83\xb1\xf3p\x92\xdaq\ \x13\xa7\xd3q\xa6N\x93N\x86N\xc6&L\xd2\xbam\xdc\x8c\x93\x19\xbb\xa9I\x1fv\ \xe2\xc4C\x8d\xc7`b\x9b\x180X&`@\x8f !@\xef\xc7\xea\xb9Z\xad\xa4\x95\xb4\xda\ \xdd\xbb\xa7\x7f\xdc\xd5"\x81\x1d?p\xd3\xe9\x999\xa3\xab\x1d\xad\xee\xf7\xf3\ \xfb}\x7f\xbfs\xee\xd9\x15RJ\xfe?\x0f\xe5\xffZ\xc0\x8d\x0e\xedF\xde\xfc\xf9\ \xcf\x7f\xbeh\xdb\xb6mO\xe7\xe5\xe5U\xa5\xa5\xa5\xe5\x99\xa6)GGG{\xfc~\xff\ \xd9\x9a\x9a\x9a\xbf9p\xe0\xc0\xd0\xa7%\xf4\x83\x86\xf8\xa4\x16z\xfc\xf1\xc7\ \x9f\xaa\xae\xae\xfeVSS\x93\xde\xdc\xdc\xcc\xe0\xe0`PJ\x89\xcf\xe7\xf3,Y\xb2\ \x84\xe2\xe2\xe2\xc8\xd0\xd0\xd0\xd1\xd5\xabWgG\xa3\xd1/\xec\xdc\xb9\xb3\xeb\ S\xd6\x0e|D\x00!\x84\xc0\xb2\x9b\x02\xf0\xd8c\x8f\xfd\xe0\xe6\x9bo\xde\xfd\ \xf2\xcb/\x0f755\xbd544\xd4=66\x16\x02"v\xbb=\xa3\xac\xacl\xcd\xd2\xa5Kwl\ \xda\xb4I\xf7x<\x94\x94\x94L\x8c\x8d\x8d}e\xe7\xce\x9d\x07\xff\xe4\x00B\x08\ \x05\xb0\x03\xde\x15\x7f\xcf\xce\xac\xde\xe5y_\xa9z\xec\xf1W_}\xb5\xe7\xd8\ \xb1c\xafLOO\x9f\x03\xba\x81\x11 \xf6\xb5\xaf}\xadb\xfd\xfa\xf5\xff\xd6\xdf\ \xdf\x9f\xd7\xd2\xd2BEE\x05\xb7\xdez+\x19\x19\x192\x14\n\xfdL\xd3\xb4\xefl\ \xdd\xba5\xfe\'\x01HF^\x07\x8a\xb7\x9e\xe0eG.\x95y\'\xefP\xb2\xfb*\xa9\xdf\ \xf9\xd3\xa8\xd0\xe5$\x10\x93\x12)$R\x93v\x87[f\xa7o\xe8{D\xacH\xdfDSS\x13\ \x97/_\xa6\xa8\xa8\x88m\xdb\xb6!\xa5dbb\xa2vjj\xea\x9e\x1d;v\xf4~\x1a\x00\ \x1f\xd6\x85\x04`Cc\xa13\x9fe\x86\x07\xc59\x9a\x87\xdfS\x8b\xd0\xa5\xe1( \ \xcbQ\x80\xcfYH\xaec!yzQ$#R\xdc+\x8e\xde\xb2\x87\x83\xe1\xa7Y\xbcx1\x86a\xd0\ \xdd\xdd\x8d\x94\x12!\x04N\xa7s\x8d\xdb\xed\xbep\xe4\xc8\x91\xbb\xfed\x00\ \xf6\\\n\xb4\x0c4)!\xdc\x8a\xd9\xf4\xcb\x91\xfa\xdaG\xd9\xdf\xf9<\x11\xe4\ \xb5oPP5\x85\xeeu\xbf\xe57\x99\xdf\xc5\xe5\xb1\x13\x0c\x06\x89\xc7\xe3\xccf[\ \xd3\xb4L\x97\xcbu\xe8\xad\xb7\xde\xfa\xf1\xfe\xfd\xfb\xd5\xffM\x00\x15p\x97\ \xfd5\x0f\x08\x01\x93\x1d\xc4\x87zG\xfa\xf2<\x0b\x07\x02\xa7yA?\xb8\xea\xe4d\ \xfb\x1c\xe1hhBO\xcdXY/Wv>\xcf\x94m\x84\xe1\xe1a\xa2\xd1(\xa6i"\xa5DJ)t]\xff\ \x8e\xc7\xe39\xf9\xe6\x9bo\xe6\x7fR\x80\x0f\xac\x81d\xf1\xba\x1cE\xac\\\xf3\ \x13~\x97\xbd\t\x874a\xe8\xc1\xaa\xf3>{Q\xf9\xf2\xe5\xcb\xff0\xe5\x1c\xb9\ \xad\xeb\xeb\xfbP5\x15E\xa8((\x08\xac\x9f\n*B(\x08\x04"\xae\xe2=\xbd\x9e\xcd\ \xf2A\xb2\xb2\xb2P\x14\x85D"\x81\x94\x12\xd341Ms8\x16\x8b}\xe9\xae\xbb\xee:\ \xfai\x02\xe8\x80o\xd5O\xf8az9\x0fy\xd6Z\xaf\xcbi\x95\xc8\x81\x85\xd2\x96/\ \x85\xb2\xa9\x17MW\x92\xe2\xe7L\xa1"P\x10I\x14\x81\xb0\xae\xaf\xe4R\xdd\xfe0\ \x05\x9eE\xd8l\xb6\x14@"\x91 \x91H$L\xd3\xfcAmm\xed\x0f\x9fx\xe2\x89\xc4\r\ \x01$\xbb\x8f\xc3Y\xca\xb2[~\xce1$\xe9\x99\xab\xe6\xff\xcd\xacP\x15m\x9e\xf0\ \x99>\x95\xdaGT\x96}[!w\x9b\x82"\x94$\x8c\x00\x04\x89\xa0A\xf1\xe9\xbb(\xb7\ \xaf\xc3\xe5r\x01\xa4\xb2\x91\xbc\xf7\xef\x14E\xf9\xf2\x8e\x1d;\x86?\n\xc0\ \x07\xd5\x80\x004\xbb\x97l\x144E\xbf^\xbc*44tT4T\x92\xbeG\xc7\xbd@\xc7\xb7N\ \xa7\xf1{:\xad?6Pb\x06*:*\x06\x1a\x066\x8f\xa0\xff\xce\xdf\xf2\xae\xfa+\x06\ \x06\x06\x98\x9e\x9e&\x91\xb8\x1ap)\xe5v\xd34\xeb\x0f\x1f>\xbc\xe9F\x00$\x90\ \x08\xd6\x11\x18{\xd3uRhs\xdf`\x89\xb7\x84k\xa8BO\xfe\xae3\xdd\xaaS\xf7u\x9d\ \x89\x06\x9d5\xffd\x10\xeb\xd5\xe9{IG\x13\xc6\xbc\xe2\xd6u\x03\xb6vr\xbe\xe2\ \x17t\x07\xda\x88D"\xf3 \x80\x05R\xcac\x87\x0f\x1f\xfe^2\x98\x1f8\xfeX\r\x18\ {\xf6\xec\xf9\x86\xa2*O\x9dX\xf03\x9b\xb9h\x98\xac\x15\xf3\xc5+\xc9k"\x1a\ \xed\xcf\xa8\x0c\x1c\xd4(yP\xa5\xe4\xab*\x9a\xa1"#\n\xc13\n\xc1\x1a\x85\x9c\ \xcd\n\xbeM\x96\x8d,E\x02\x90DG\x05\x99\xc7o\xa5\xcc^\x8d\xcb\xe5BUU,\x07\ \xa7\xc6a]\xd7\xff\xfc3\x9f\xf9L\xf0#\x03\xec\xdf\xbf\xdfp\xbb\xdd?s8\x1c\ \x8f\x0c\x0c\x0ep\xa6\xf58uU\xfb0#\x92\xdc\xf5v\x0c]O\x89\x9f\x9d\xfd\xafj\ \xe4\xacS\xb1gh\x04\xdfU\x19\xa9Q\x99jU\xc8X\xae2zF\xa1\xf0\x1eA\xe97\x94\ \x94\xfc\xab\xa9\x96$\xe2\x92DM\x01\xcbF>\x8b\xc7\xe3A\xd3\xb4k!\xba\xa5\x94\ _\xb8\xfb\xee\xbbO_\xabU\xdd\xb3g\xcf\xbc\x17\x0e\x1d:\xb4\xd8\xedv\x1f\xcd\ \xcc\xcc\xbcK\xd34\x14EAD\x0c\x86\xc7\x07\x98.\xf43\xdad\xe2\xcc\xb4cw\x1aI\ \x0bY\x99\xc8\xaa\xd0 \xa2\xd3\xf8\xb7\x1a\xb1a\x9d\x89?h,\xfb\xb6\xc6x\xad\ \x86g\xa5F\xc5\xa3\x1a\xaaP\x11q\x15U\xb1\n_$\xdb\xad\xa2(\xa8\x8b\xc2\xf4i\ \x17\xa1\xdd\x83SO#uo\x0b$C\x08\xf1\xe0\xe5\xcb\x97\xc3\xe5\xe5\xe5\xf3 \xe6\ e\xe0\xb5\xd7^\xbb\xd7\xe5r\xfd\x97\xc3\xe1H\x07\x90R\x12\x8dF\t\x04\x0246_\ \xe0\xbd\xea\xa7\x99v\x84\x98\xe9\x17d/\xcc"\xb7\xdc\x8d\x92\xaa\x85\xa4\xad\ \x92]i\xec\xbcJ\xf3^\x15\xefj\x95\xca\xbfS\x18x]!tNafP`\xcb\x01\xefzXp7 \xa4\ \x95\x05\x99@\x92`&d\xe2z\xfbf\xca\x8c[p\xbb\xdd)K%\x17?\x12\x89\xc4+\xa6i>|\ \xef\xbd\xf7\x86R\x198x\xf0\xa0\xfb\xca\x95+\xcf\xba\xdd\xee\x7f4\x0c\xc3\ \x96\xec\xcb\xa9\xd6f-<\x92\x89+0\xbe\xac\x19-M\x12\x1e\x99f\xba\x17\xb2\x16\ \xb8\xd1T=%^\x15\xd6j<\xd3\xa3\x11\x0fh\xac\xf8\xbeF\xd7>\x9d\x89\x06\x8d\ \xa5\x8f\xa8\x94>\xa8\xe2]\xad\xd1\xfbk\x15EUp\x97$\xd7\x0baE[\xb5+\xc4\x97\ \xf8\xf1\x0f\xf9\xc9\x1c+\xc6n\xb7\xa72\x91\x84Y\xa6i\xda\x97GFF\xc6\x0b\x0b\ \x0b\xeb\x14\x80\x17_|\xf1K>\x9f\xefa\x9b\xcd6\xbb2\x92H$R\xd7\xaa\xaa\xe2\ \xc9\xf2P\xa2\xad\xc1\xd9\xb8\x14\xc5\x06v\x1fDlc\\<\xdeCt<\x91\x12?[\x13\ \xbeu:k\x9e\xd4\x91S:c\xef\xe9,\xfd\x0b\x1d\xc3a\xd0\xfc}\x03\x196\xa8\xfc\ \xaeA\xfeV\xc3\xeaP\xe8\xc9Vku4M\xd316\rr\xa1\xec%fff\x10B\xa0(\n\x8a\xa2\ \xe0v\xbb\xa9\xae\xae^x\xfe\xfc\xf9\x7f\x15\xc9\xed\x02\x8d\x8d\x8d\x89\x1f\ \xfd\xe8G\xf8\xfd~\xd2\xd2\xd2\x88\xc7\xe3\xc4b1b\xb1X\n\xc60\x0c\xbc\x1e/\ \x8b\x9a\xefD\x99r\xa0\xe8`d\x82\x967M\xd3\xd9\x16F\xbb\xc3\xf3\xbb\x93\xd0\ \xd0\x14\x1dW\xb6N\xc1v\x9d\xfe\xff\xd6\x19\xd8\xaf\xa3k:JT\xc7\x95k][\xa2\ \xf5k\xba\x9b\xca\xcc0\xa8\xa7\x17[\xf5\xa1Zu\x92\x97\x97\xc7\x92%K\xd8\xbbw\ /\xaf\xbc\xf2\x8a\x04P\x84\x10BJ\xe9\x00x\xfe\xf9\xe7y\xfd\xf5\xd7\xc9\xce\ \xce\xc64M\xe2\xf18\xf1x\x1c\xd34\x11B\xe0v\xbb)\xc8."\xeb\xe4z\x84\x06B\x07\ -\rlEqZ\xba/\xd3V\xdf\x8b@\x9d\xb3FX\xebD\xe9\x83:%\x0f\xe8\xe4\xdcb\xb0\xf2\ \t\x83\xac\xf2d\xe4\xdf\'\xfa*\x1a\xa1Kq\xe4\x0b+Y\x96u\x0b\x0e\x87\x03UU\ \xa9\xa8\xa8 \x16\x8b\xf1\xe8\xa3\x8f\xd2\xd1\xd11\xbbn(*\xa0\xe6\xe7\xe7\ \x7f)\x18\x0c\xae\xcb\xcc\xcc\xc4\xef\xf7s\xe1\xc2\x056n\xdcH<\x1e\'\x1a\x8d\ \xa6\nHUU\x14\xa1\xc0\xb0\x8ba\xa3\x9dD\xce\x04B\x01E\x03-\x1d\xc23c\x0c\xb7\ \x8c\x93\x97\x9b\x87M\xb7\xa5\n\\C\xc7\x99\xad\xe3.\xd6P\x15\r5\xb5oR\x10BA\ \x11W\xd7\x87\x9e\x13\x93xj\xd6\xb3\xb2b5\xd9\xd9\xd9\xa4\xa7\xa7\xb3|\xf9r\ \xdex\xe3\r\x9e}\xf6YL\xd3dtt\x94\xe1\xe1a\x11\x08\x04\xfeA\x054\xaf\xd7\xbb\ \xb6\xb2\xb2r\xeb\xa5K\x97p\xb9\\D\xa3Qjjj\xa8\xac\xac\xc4\xe7\xf3155\x85\ \x10"UH\x003\xcdN\xc6\x965"\xf4\x04BX\xa1\xd0\x1c\x10\xb7M\xd3\xdd\xd2G\xa6#\ \x07\xb7+=\x99\x05-\x19\xe5\xab\x16\xbb\xba\xe1K\xee\x91\xcc\x04m/M\xb3\xb8o\ +\x95\xcbo\xc2\xeb\xf5\x92\x9f\x9fOaa!O>\xf9$\xef\xbe\xfb\xae\xb5 tw\xa3\xeb\ :yyy\xb1\xd6\xd6\xd6\x1f\xab\x80-\'\'\xe7\xce\xf4\xf4\xf4\rEEE\xf8\xfd~\xa2\ \xd1(\x0e\x87\x83\xba\xba:\x00\xaa\xaa\xaa\x08\x87\xc3V\xdfMB\xc8\x19\x95\ \xd1\xfe\tbK\xfd\x08\x01B\xb1\xa6j\x03%-No_\x17\x84\r|\xd9\xf9\xd7Y\xca\xeaX\ V\xe7A\x08"\x133\xb4\xfe\xbbI\x95\xfd\x0e\xca\xca\xca\xc8\xc8\xc8\xa0\xb4\ \xb4\x94H$\xc2\xee\xdd\xbb\x19\x1c\x1c$\x16\x8b\xd1\xda\xdaJEE\x05\x0e\x87\ \x83\xc9\xc9\xc9xgg\xe7OU\xc0\xaei\x9a\xc7\xedv\xdf#\x84\x10^\xaf\x17M\xd3\ \xe8\xed\xed%==\x9d\xee\xeen\x9a\x9b\x9b\xd9\xb2eK\xaa\x1ef;\x82\xd9\x95\xc6\ H\xcee\xf0L_\x85PA1,K\x8dL\xf73\xdc\x19ba\xee"\x0c\xd5\x96\xda\xfc\xa5\xec\ \x83`hh\x98\xbe\xe7\xd2\xa8.\xbe\x9dE\x8b\x16\xe1\xf1x(//\xe7\xf8\xf1\xe3<\ \xfd\xf4\xd3\xc4\xe3q\xc6\xc6\xc6\xe8\xeb\xebc\xed\xda\xb5\xa9\xcd_OOO[ \x10\ \xf8\x95\n8\xc2\xe1\xf0\xf0\xc0\xc0@\xa3\xddn\xbf\xc3\xe5r\xe9\xaa\xaaR\\\\\ \xcc\xa5K\x97p:\x9dD"\x11N\x9e<\xc9\xea\xd5\x96/#\x91H\xcaJ\x93\x17u&\xab\ \x9a\x11\x9a\x9c\x97\t\xa1\x81\xe6\x82\x88}\x8c\xb6\xd6\x0er\xd3\x16\x92f\ \xcfHu\x1c!\x14Zz\x9b\xf8}\xf05\xca\x1c\xb7\xb0\xcc\xbb\x96\x82\x82\x02\n\ \x0b\x0by\xea\xa9\xa78v\xec\x18\x00\xbd\xbd\xbd\xd8l6\xca\xca\xca\x98\x98\ \x98`ff\x86\x86\x86\x86w:::\x1e\x03\xc2*\xd6\x91\x89#\x1e\x8fG\xfb\xfb\xfb\ \xcf\xc6b\xb1U^\xaf73\x1a\x8dRRRBoo/\xb1X\x0c\xa7\xd3ICC\x03\x86ap\xd3M7155\ \x85\xa2(\x106\x08\x8c\r\x91(\x19\xba*\xder\x06\x8afY\x8a\xf4\x19\xda\xfd\ \xcd\xd8\xa2\xe9\xe4f\x14 \xa4\xc2\xa9\xe6\xb7\xb8(Ob_ \x19\xcfk\xe7\xcf\xf4\ \x870\x14;\xbbw\xef\xc6\xef\xf7\x13\x8b\xc5hoog\xc5\x8a\x15\xe8\xba\xce\xcc\ \xcc\x0c###\xe6\xd9\xb3g\x7f\x13\x0c\x06\x7f\r\x8c\x02\xe3*\xd6\xb1\x89\x06\ \x18\x80\x16\n\x85.\x04\x02\x814\x8f\xc7S\x9cH$DNN\x0e\x86a\xd0\xd7\xd7\xc7l\ \x97\xea\xec\xecd\xc3\x86\r\xa9\xe7[\xb3%\x9d\xd1\xc5M\xe0\x8e\xce\x87HZJ\ \xb5\x81\xe2N\xd0;\xd9J\xb0\x7f\x8c\xa6\x81s\x0cf6a\xcb\x01UQ\xf0\x8c\x97\ \x12nT\xd9\xf7//\xa4,300\xc0m\xb7\xdd\xc6\xe8\xe8(\x89D\x82\xb6\xb6\xb6\x89\ \x86\x86\x86\x9fG\xa3\xd1:`\x08\x08\xce\x02(\x90l\x05\xc9\x11\x89D\xba\xfb\ \xfb\xfb\x07\x1c\x0e\xc7M\x0e\x87CUU\x95\xb2\xb22\x1a\x1b\x1b\xc9\xc8\xc8 \ \x16\x8bQWWGUU\x15\x99\x99\x99\xccD\xa2\x8c7\xc3\xf4\xea\xcb\xd7\x03$\x9f8\ \x84\n\xaa\x13\xc2\xb6A\xa2\xe9!\xecC>\xbc\xe7n\xa5\xba\xf9\x9b\xf4\xfdF\xe7\ \x9d\xdf\xbe\x87"\x14\x86\x86\x86\xb0\xdb\xedTTT022B4\x1a\xa5\xbe\xbe\xfeJGG\ \xc7>)e\x17\xd0\x07\x0c&\x01\xc2\xb3G\x1a\x89\xe44\x818`\x9a\xa6\x19\xea\xef\ \xef\xbf`\x9af\x85\xcf\xe7K\x8bF\xa3TVV\xd2\xd6\xd6\x86\x94\x12\x97\xcbEss\ \xb3\xd51JJ\x99\xea\x95\x0c\xc5\xba\x91\xc5\xa3V-\xcc\x0b\x895\xb4\x1e/\xe9\ \xe7W\xb3\xf8\xdd{\xd90\xf3U*]\x1bx\xe5\xa5\x83\\\xe8\xbd@CS\x03\x13\x81\t6n\ \xdc\x88\xa6iLNN\x12\x0c\x06\x13\xef\xbd\xf7\xde\x1b\xc1`\xf0PR\xb8\x1f\xe8\ \x07\x02\xc080=\x0b \xe7\x00\xc4\xe6\xcc\x99\xd1\xd1\xd1\x86@ \xe0\xce\xcd\ \xcd](\xa5\xa4\xa8\xa8\x08\x80\x9e\x9e\x1e|>\x1f\x03\x03\x03\x04\x02\x01V\ \xae\\I\xb8\xde X^\x0fv3%Z\xf4e\x90vf%\x85\xc7vQ\xd1u7\x95\x8eMl^{;\xc1\x91 \ \xfb~\xb1\x8f\xba\xdc:\xba\x1e\xea\x82w\xe0\xb3\xeb>\xcb\xe4\xe4$\xa6i\xd2\ \xde\xde>YWW\xf7\x1f\xd1h\xf4\\R\xb8\x1f\x18\xc0:\xc2\x1c\x07\xa6\x81\xd8\\\ \x009\'\x03s!\xe2SSS\x1d\xdd\xdd\xdd\xc3\x19\x19\x19\x95.\x97Ku8\x1c\x94\x95\ \x95q\xe6\xcc\x19rrrH$\x12tttP^\xb2\x8cpw\x82)o?\x8e\xd3\xcb\xc9=z\'\x15-\ \xf7P\xae\xdcFIn\x05eK\xcbX\xb3z\r\xfb\xf7\xef\xe7\xc0\x81\x03\x9c\xf3\x9d#\ \xf4\x8b\x10\xb4\x81\xf3u\'UeULLL\xd0\xd0\xd0\xd0\xde\xd6\xd6\xf6\x9c\x94\ \xb2}\x8e\xf8\xc1\xa4\xf8pR|\x1c0\xc5\x9c\xd3\x80\xd9\x13h5Y\xd0N \x1d\xf0\ \x029@\x1eP\\UU\xf5\x97k\xd7\xae\xcd6\x0c\x83\x82\x82\x02\xde~\xfbm\x16,X\ \x80\xcf\xe7czz\x9a\xc2\x85\x85x<\x1e\xa2\xd1(\xe9\xeet\xd2\xd2\xd2p\xb9\\\ \x14\x17\x17\xa3\xaa*{\xf7\xee%\x14\nq\xa2\xe6\x04\xe3\xff<\x0e\x02\x8a\xde.\ \xe2s\xb9\x9f\xe3\xec\xe9\xb3\xb2\xbe\xbe\xfew\xe1p\xf8DR\xf0`\xb2`G\x80\t`\ \n\x88&\x03\x9d\x90R\xcay\x0f4I\x08\x91\x84\xd0\xb1Z\xac\x1b\xc8JB\xe4\x02\ \xb9\x0b\x17.\xfc\xe2\xed\xb7\xdf\xbe6++\x8b\xac\xac,zzz\x08\x04\x02,_\xbe\ \x1c\xd34\xf1z\xbdl\xd9\xb2\x85p8\x8c\xcdf\xa3\xb4\xb4\x94\xfa\xfaz\x9ey\xe6\ \x19\x00&\'\'9v\xe2\x18\x14\xc0\xf6\xbb\xb7\xb3\x88E\x9c>yz\xea\xe2\xc5\x8b/\ \x98\xa6\xd9\x92\xb4\xca 0\x8c\xd5.\xc3@$\xe9\x08\x13\x902)\xfc\xbag\xe29\ \x10\nV{\xb5\x01. \x13\xc8\x06|@\x9e\xdb\xed\xbeu\xfb\xf6\xed_,--U\xedv;.\ \x97\x8b\xa3G\x8fR]]\x8d\xcdfC\xd7u\xee\xb8\xe3\x0e\x16/^\xccs\xcf=\xc7\xa9S\ \xa7\x00\x18\x1e\x1e&33\x933g\xce\xf0\xf07\x1f\xa6\xb3\xb5\x93\xd3\xbf?\xdd\ \xe5\xf7\xfb\x7f\x99,\xd0\xd9\xc8\x07\x801`\x12\x98IZ&1W\xfc\xfb\x02\\\x03\ \xf2A\x96\xf2%\xb3\xb1h\xf3\xe6\xcd\x7f\xb5a\xc3\x86,\xc30\xc8\xcf\xcf\xe7\ \xd0\xa1C,Y\xb2\x84\x05\x0b\x16 \xa5\xe4\xca\x95+\x0c\x0f\x0fc\x9a&\xfd\xfd\ \xfdl\xd9\xb2\x85\xc1\xc1AJJJ\xa8\xa9\xa9\x91\xb5\xb5\xb5\xc7\'&&\x8e^c\x99 \ V\xa1^g\x99\xebt~\x84\xcf\x07>\xccR\xf9\xe5\xe5\xe5_\xd9\xb5k\xd7\xca\xac\ \xac,\xbc^/\x17.\\ \x1c\x0e\xb3j\xd5*\xce\x9f?\xcf\xc0\xc0\x00\xe3\xe3\xe3\ \xec\xda\xb5\x8b\xda\xdaZ\xa4\x94tuuE\x9a\x9a\x9a~i\x9a\xe6\xa5\xa4\xf0\x81d\ \xd4G\xb1\xfc\xfe\xbe\x96\xf9X\x00\xd7@|\x90\xa5r\x81\xdc\xcc\xcc\xcc\x8d\ \xf7\xddw\xdf\xfdK\x97.U\x1c\x0e\x07B\x08\x8e\x1c9\xc2\xe4\xe4$N\xa7\x93\xb2\ \xb22ZZZ\x88\xc7\xe3466\xf6\xf4\xf4\xf4\xbc\x80e\x99Y\xbf\x7f$\xcb|l\x80k@>\ \xccR\x8bw\xed\xda\xf5\xad\xad[\xb7\xba\r\xc3 77\x97\xc6\xc6F:;;\t\x85B\x8c\ \x8f\x8f\xcb\xfa\xfa\xfaw\xc6\xc6\xc6\x8ep5\xea\x1f\xcb2\x9f\x18`\x0e\xc4\ \x87Y*o\xe5\xca\x95\x0f\xdd\x7f\xff\xfd\x95YYY\x9c9s\x86P(DOO\xcfLSS\xd3\x8b\ \xb1X\xac\x89\xab~\x9f\xed2\x1f\xd927\x04p\r\xc4\x1f\xebR\xb9999\x9b\x1fx\ \xe0\x81\xfb\x86\x86\x86\x94S\xa7N\xf9\xbb\xba\xba\xfe\x93\xab]f\x08\xcb2!>\ \xa6en\x18\xe0\x1a\x90\xf7\xb3\x94\x07+\x1b\xd9\x9a\xa6\x15eddT\x8d\x8c\x8c\ \x9c\xc0\xf2w\x00+\xea\x9f\xd82\x9f\x1a\xc0\x1c\x88k-\x95\x86\x95\x8dL,{\xe9\ X\xd6\x98\xc0\x8ax\x88?\xb20}\xdcqC_5\x90R\xca\xe4\xd9\xa5\xc9\xfc\ra\x14\ \xcb\x1a\xf6\xe4=\xe2I\xc1\x93X\xfb\x98Ol\x99k\xc7\re`\xde?\x9ao)}\xceT\xb0\ \x84\xce\xdd ~b\xcb\\w\xdfO\xf3\xeb6\xd7\x14\xf8\xec\xb4>\x08\xb8\xfa\xccq\ \xc3Q\x9f;\xfe\x07\x11\x14b\x909%h\xa8\x00\x00\x00\x00IEND\xaeB`\x82`\x80b\ \x8f' phatch-0.2.7/phatch/actions/scale.py0000644000000000000000000003335711346363116017314 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu). # Follows PEP8 from core import models from lib.reverse_translation import _t def init(): global Image import Image def preserve_proportions(x0, y0, x1, y1): scaleX = float(x1) / x0 scaleY = float(y1) / y0 if scaleX < scaleY: y1 = int(round(y0 * scaleX)) else: x1 = int(round(x0 * scaleY)) return x1, y1 class Action(models.Action): """Resize an image""" label = _t('Scale') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) version = '0.1' tags = [_t('default'), _t('transform'), _t('size')] __doc__ = _t('Make the image smaller or bigger') def interface(self, fields): fields[_t('Canvas Width')] = self.PixelField('800px', choices=self.PIXELS_X) fields[_t('Canvas Height')] = self.PixelField('800px', choices=self.PIXELS_Y) fields[_t('Resolution')] = self.DpiField(choices=self.DPIS) fields[_t('Constrain Proportions')] = self.BooleanField(True) fields[_t('Resample Image')] = self.ImageResampleAutoField('automatic') fields[_t('Scale Down Only')] = self.BooleanField(False) def apply(self, photo, setting, cache): #get info info = photo.info #dpi dpi = info['dpi'] = self.get_field('Resolution', info) #size x0, y0 = info['size'] x1 = self.get_field_size('Canvas Width', info, x0, dpi) y1 = self.get_field_size('Canvas Height', info, y0, dpi) #check if image size has changed scaleDownOnly = self.get_field('Scale Down Only', info) # check if image size has changed if (x0 != x1 or y0 != y1) and \ (not scaleDownOnly or (scaleDownOnly and (x1 < x0 or y1 < y0))): proportions = self.get_field('Constrain Proportions', info) method = self.get_field('Resample Image', info) #calculate proportions if proportions: x1, y1 = preserve_proportions(x0, y0, x1, y1) #in case of automatic choose antialias for smaller #and bicubic for bigger if method == 'AUTOMATIC': if x1 < x0 and y1 < y0: method = 'ANTIALIAS' else: method = 'BICUBIC' method = getattr(Image, method) #resize image photo.resize((x1, y1), method) return photo icon = \ 'x\xda\x01(\x0e\xd7\xf1\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\r\xdfIDATh\x81\xed\x9ayT\x94\xe7\xbd\xc7?\xcf\xbb\xcc\ \xc0\xb0\xce\x0c\xc8\x8e"\xc1\xa0\x104A\\\n\x86\xc4#j\xcdUc\xe25&\xa6\x92\ \xe5f\xf76I\x9b\xb4\xe7f\xb3i\x9a\xa5MmN\x1aO\xd6\xf66"\xb8\x15cP\xdc\x80\ \xd4\x18\x03\x91\xb8a\x926\xa1F\x04e\x1d6ad\x9d\x99\xf7\xbd\x7f0\x83\x03\xd8\ \xe85\xd8{z\xce}\xce\xe1\xf0\xcf\xfb>\xbf\xef\xe7y\xbe\xef\xef\xf7{\x9fw\x84\ \xae\xeb\xfc+\x0f\xe9\xffZ\xc0\xf7\x1d\xff\x0fp\xb1\xf1\x1f\xad\x89\x01Wr\ \xfe+\x06\xb0\xe0\x8d\t\xc6G\x1b\xa7\xbc\x1d,\x02\x1b\x1f\xaa\x9dx\x9f\x10B\ \\\x898\xe2J<\xc4\x0fW^w\x95\xd5b\xddn4\x18\'\xf6\xeb=\xd8\xf56Zz\xea\xd7\ \x9d,\xb3=T\xb6T\xef\x19\xcdX\xa3\n \x84\x10?\xab\xb9\xe1\x8e\xf0\xa0\x98weI\ 6\xf5\xea\xe7\xe8\xd0\x9ai\xd7\xeai\xd1j\xe9\xed\xeb\xf9\xab\xd6\xce\x92\xc2\ d\xfd\xc4\xa8\xc5\x1c-\x80\x07\xde\x9d\xaa\xc6-\x19\xff\x87\x08\xdf\xb8\x1f\ \xe9B\x13\xddZ\x07\xedZ#-\xda\x19\x9a]\xa79\xa7\xb7\x01\xa0\xb9\xe8vvq\xcf\ \xee\xab\xd8\xa2\x8fB\xf0Q\x01x\xe2\xd4\xec\xf8\x04s\xf2\xeep\xe3\xd8\x04Mw\ \xd1\xa17\xd3\xea\xaa\xc5\xa6\xd5p\xba\xfb$=\xaam\xc4=Z/o\xda\xab\xf8\xe9\ \xbeL\xbd\xf7\xfb\xc4\xfe^\x00B\x08\xf1\xcb\x86\x9b\x97\'\xfa\xa7\xfd1T\x89\ \xf1u\xd0G\xabV\x87\xcdUM\x83\xf3$\x85\xfb+8\xfbU\x00\xd6\x8cz\xc6%\x8d\xbc\ \xdf\xd5\xcfq\xcer\xcb\x8e$\xbd\xea\x9f\x0e\xf0\xfc\xc77*\x81\xd7\x8c}o\x92i\ \xe6]\xa1\xf2X\xba\xf5\x0e\x1a]U4\xb9\xaa\xa8\xec\xfc\x8a\x0fw\xfc\x8d[\xfa\ \xef\xe6\xba\xe0\xeb\xd8\xd6\xb8\x8d\xa31\xdbI\xb9ACV\x86\xce\xa3\xbb8\xe7\ \xeagea\xac\xbe\xed\x9f\x06\xf0\xb3\xca\x8c\xd8\xf8\xf0){\xe2\x8d\xd7M\x0c\ \x93\xe3\xe8\xd4\x9aip}K\xa3\xab\x8a\xb2S\xe5\x1c\xd9\xd3\xc5#\xa1\x8fqu\xe4\ \xd5\x18\x8dF\xecv;\x07\xaa\x0f\x90\xab\xbfM\xe2<;\x81\x96\x91s\xba\xfax\xbd\ \xc1\xc6\x93\x87\xaf\xd3\x1dW\x14\xe0\xa9\xc6\xd9\x8b\xc7\x9b&\xe7F\xab\x13\ \xfc\x03$+=\xba\x9df\xd7i\x1a\x9cU\xe4\x97\xfd\x05\xdf\x8aD\xee\x8d\xbb\x97\ \xf01\xe1\x98L&dY\xc6\xe1p\xd0\xd1\xd1\xc1\x89\xba\x13\xbc\xd5\xbc\x16\xdf\ \x8c\x13\xc4&^\x00\xc2\xc1a\xdd\xc1\xd2\xc2\xb1z\xcd\xa8\x03\x88\xe7\x85\xf4\ \xd4\xc3\xb3\xd7\xc4\xf9$=j\x91\xa3\x84\x8f\xf0\xa7_\xef\xa1]k\xe0d\xd77l\ \xdcq\x909\x1dK\xc9\x1a\x9b\x85\xd5j\xc5h4"I\x03uR\x08\x81\xa6i\xd8\xedvl\ \xcd6\xf2N\xe7\xf1\xf5\xf8\xbd\\\x93\xa9#\xcbC\xe3h\x1a\x9d\xf4\xb1b{\xac^8j\ \x00w\x7f\x1d\x17\x1e\x11\x1aW\x10i\x8c\x9b\x16(\x85b\xc0\x87~z\xe9\xd4\x9a9\ t\xba\x82O\x0b\x9b\xb9\xc7\xff\x01\x92\xa2\x92\x08\x0e\x0eFQ\x06\x8c^SSCcc\ \xa3#55U5\x1a\x8dh\x9aF__\x1f---\x1c8s\x80|\xc3\x7f\x934\xaf\x1b\x7f\xf3\x88\ \x90\xba\xe6\xe0\xb7\xf6\x13<\xb5/Sw~/\x80\xbbj\xa3o\x0c\xf5\x89\xc9\x0f1DY\ \xfcD0\x8a0\xe0\xd4\xfb\xb0\xbb\xda(,\xff\x1c\xfd\xf3\xb1dGd\x13\x19\x16\x89\ \xbf\xbf?\xb2{I+**\x9ceeeo\x7f\xf1\xc5\x17\x15\x8b\x17/\xfeyzzz\x82\xd9<\xa0\ \xd4c\xa9\xca\xbaJ\xde=\xfb&\xc1\x995DO\x18\x19[sr\xd0\xd9\xcd\xbf\xef\x8a\ \xd7k/\x0b`EC\xc83!\xc6\x88\xe7\x83\xa41\x92\xaf\x14\x88\x8c\x82C\xef\xc3\ \xd6e\xa3`\xf7\xd7\xcc\xb2-bN\xe4\x1cBBB\xf0\xf1\xf1A\x92$\x1c\x0e\x07\xa5\ \xa5\xa5\x8d{\xf7\xee}\xa1\xbc\xbc\xfc\x1b@3\x99L\xa6\xec\xec\xec\x07\xa7O\ \x9f\xbe0>>~\xd0R\x9d\x9d\x9d4\xda\x1a\xc9\xab\xcb\xe3T\xe2>\xae\xc9\x00i\ \xa4\xa5\xcej\xfd,/\x8c\xd1\xf7^2\xc0\xa2\xa3\xc2\xa4F\x18\xb7\x9a\rc\xe6\ \x07HV|\x84\x1f\x122N\xfa\xa9jh\xa4|{\x0f+\xa4\xbbI\x8eL\xc6l6\xa3\xaa*B\x08\ \xda\xda\xda(++\xfbt\xd3\xa6M\xaf655\xd9\x80N\xc0\t\xf8\x01AK\x96,\xc9JOO\ \xffIjj\xaa\x8f\xaa\xaa\x00tww\xd3\xdc\xdc\xcc\xc7\xb5\x1f\xb3\xddo=\x93\x17\ \xf4\xe2\xeb?T\x8f\xae\xa3\xe3\xe2\x97\x05\x11\xfa/.\t@d\tk\xe2\xc3\x86\xe3\ \xd33B\xa3L\xf2y\xf1\xbd\xfa9:z:\x98T\xb6\x82\x14=\x8b\x80\x80\x00$IBUU*++]e\ ee\xef\xe5\xe5\xe5m\x01:\x80V7\x80\x0b0\x01f\xc02e\xca\x94\x84\x05\x0b\x16<\ \x97\x91\x91\x11\x17\x1c\x1c\x8c\xa6i8\x1c\x0eZ\xdbZ\xf9K\xe0;\xd4^S\x8c\x18\ \xd6#\xf7\xd8\xe1\x8b\x8f(l\xbc\x9f[t}h\x9a\xbd0\x80\x10cX\xc8J\xcb\x1c\xf9\ \x17\xb3n\n\xf03\x05i\xf4\xe8\xe7\xd0\xd1\x06\xaf\x99R\xbf\x8ci\r+\x91\x85By\ yysII\xc9\x0b\x07\x0e\x1c\xa8\x00\xda\xdc\x7f\x9d@\x1f\xa0\x03\x8a{\x17\xcc\ \x80500\xd0z\xe7\x9dw\xfex\xc6\x8c\x19\xf3\xe3\xe3\xe3\xe9S\xec\x14\x84\xac\ \xa6:\xa0|\x84\x96\xa6\x1a8\xb6\x93\x9a\xbe\xbd\xac\xe23>\xd6u\xfd\xdc\xa5\ \x00\x04\x8c\x1d;v\xe2\xcd\xd97\xaf\xffP\xcd\x9f\x10:\xbb\x8e\xa8\x84\x11\ \x97\x11\xda>\x11\x9f\xbc\x1f\x1c\xdd\xfa\xde\xae_5444x\x89?\x07\xf4\xeb\xba\ \xae\xb9\xe7\x13\x80\xec\xde\x89 \xc0\n\x04\xdfz\xeb\xad\x0b\x92\x17E=\xf6\ \xf7\xd9yj\xb7\xb1u\xc8\xdc\xba\x06_\x97CP\xc5TG\xcc71\xab\xb7m\xdc\xb6\t\ \xa8\xd7u\xbd\xef\xa2\x00\x07\x0f\x1e\x9cf\xb7\xdbw644\x84\xd45\xd4Q`/\xc06\ \xa5\x9c\xe4Y \r\xdb^W\x1f\x9d\xf5;x\xf2\xe8\xc3\x14\x01g\x81.\xc0y\xa1NS\ \x08!\x03F \x00\xb0f\xec\xe0\x01K\x1a\xab\x844\xf4\xc5\xaa\xb7\x0b\x8e\x17\ \xa9\xdc\xd8\xb2\x94\xb9\x91s\x89\x89\x89q\x06\x05\x05\xbd\x9c\x96\x96\xb6z\ \xf8\xbc#\x00\x8e\x1d;\xf6DWW\xd7K.\x97K\xed\xed\xed\xa5\xbd\xbd\x9d\x86\x86\ \x06>k\xfd\x8c\x8f#\n\x98<\xbf\x1f\xbf\xc0a\xcat4G7/\xeeZ\xca\x0b\x1c\xb9\ \xb0x/\x08\xe9\xdauX#3y_1\xb1@FA\x15F$\x14\x04\x82\xc6:\x07\'\xf6\xf8q\x87t7\ \x93\xa3\'\x13\x15\x15Epp0\xaa\xaa\xa2(JQOO\xcf\xf2\x94\x94\x94\xf6\x11\x00\ \xd5\xd5\xd5>mmm[{zz\x16\xe8\xba\x8e\xae\xeb\x83\x0fXgg\'MMMT\x9c\xaa`\x8b\ \x9a\xd77aQ\x971b\xfcHq\xbaF\x89\xaeq\xfb\xf6\x08\xbd\xe5\x1f\x01,n\x16\xd7\ \xaa\x9ao\x81\xbf\x12\x18c\x14~\x18\xf0A\x16*\xe8\x82C\xc7\x1ah\xdci\xd2\xee\ \x8b\xba_J\x8cO$,,\x0c\x7f\x7f\x7f\x14EA\x08\x81\x10\x02I\x92\xce\x00K\x13\ \x12\x12>\x07\xf7;qee\xe5\xb8\x96\x96\x96\xca\xfe\xfe\xfe\x05\x9e\x0b\xdd\ \x17c4\x1a\xb1X,\xf4\xf6\xf6jg\xbe:S\xd8\xb1\xa6\xfb\x95\xcf\xdf\xa0\xfc\xab\ R\xd0\xb4\xa1\xe2\x84\xc4\x1c\x04_\xdel\x13?\xb8\x90\xf8\x95\xad!\xab"\xa5\ \x84\xcf\xc7\x19\x92bb\xe4ID\xcb\x89D*\t\x048#\xd9\xb3\xb3\xd6Y\xf6J\xd3vG\ \xbe\xf3\x8d\xdaS\xb5M\xaa\xaa\x0e\x11/I\x12\x92$!\x84\x88QU\xf5\xd3\xd3\xa7\ O\xff\x18\x06\xb2\x03999]\xb3f\xcdR\xcdf\xf3`\xff\xa2\xb9\xd5\xe9\xba\x8e\ \x10\x82\xf8\xf8\xf8\xaf\x9ey\xe6\x99\xb7\xf4>]\x90G\xe5\xc9&f\xb5\xd5sO\xda\ |\x8c\xbe^\xe7\x0e\x92L8:\x9f\xdc\xdc$\xfe\xeb\xc30\xfdU\x80e\xcdc\xfcC\xa5\ \x90\xdc\x189y\xb1\xbfd\xc6$\x021\n?T\x0cT\xb7\xd4\xf1\xd6\xa6\x92\xe6\xd6\ \xdc\xae\xb5\xfc\x95o\xcep\xa6K\x92$[xx\xf8s\xaa\xaa\x1a\xbd\x17TQ\x14\x14E\ \xa1\xbb\xbb[\xae\xa8\xa8Pccc\x11\x80HMM\xf5\x9d;w\xeeo\xe2\xe3\xe3\x1fNJJ\ \x12\x92$\xe1\xb1\x91\x07\xc0m\xa9\xeam\xdb\xb6\xdd\xb1f\xcd\x1a\x1b\x10\xcd\ \xd5L6\xde\xc6\x93S\xfe\x8d\xe8\xf0q#W<@Xv\x07\x88\x905A"\xfc}\xab\x12\x11\ \x1d(\x85\xe0\'\x82\xf1\x15\x01(\xc2\xc0\xae\xbf\x95\xf0\xc7?\xed=\xe8\xdc\ \xe0\xfa=\xed|\x0b\xb4\xec\xd9\xb3\xe7\x81\x98\x98\x98\x9fJ\x92\xa4\xb8W|\ \xb0\xd6(\x8aBMM\r%%%U6\x9b\xed\xf6\xb5k\xd7\x1e\x16n\x1b\x99\x801\xcb\x96-\ \xbbe\xea\xd4\xa9\xcf\xcf\x981\xc3\xe4\xe3\xe3\x83\xe7\xf9\xf0@\x00\x08!\xce\ \xf5\xf7\xf7?\x98\x91\x91Q\x04\xc4\xe2O\x02\xcb\xb9?a!7N\x9c\x0eB\x02\x83\ \xf0\xc1,Eb\x91"1K\xe1\x98\xa5p\x82\xa41\x04\x8a\x10\xfc\xa4`\xfa\x9d\x0e^.~\ \xdd\xf5Q\xce\xd1\x1c\xb6\xf1g\xa0\xea\xbe\xfb\xee\xb3\xafZ\xb5\xea]\x83\xc1\ p\x93\xc7\x05\x1e\xe1\x9e\xaa]^^\xce\'\x9f|\xf2Q~~\xfe\xd3\xb5\xb5\xb5U\xc0Y\ \x01\x087@\x08\x10\x96\x9c\x9c|\xf5\xc2\x85\x0b\x9f\x999s\xe6\x84\xc8\xc8\ \xc8A\x00\xef\xa1\xeb\xba\xae(\xca;\x99\x99\x99O\xdb\xed\xf6p \x8e\x1fr\x93u\ \x11\xf7\xde\xb0\xc0l\x88\x0e\x88\xc1"Eb\x91\xa2\xdc\xff#\x08\x92\xc2\x08\ \x92B\xa9>\xf7-\xff\xb9\xfe\xe9\xb6\xaau\r\xbf\xe5(\x9f\x01U\xc5\xc5\xc5\xd1\ QQQy\xb2,\x8f\xf3\xb6\x8bg\xd5\xbb\xbb\xbb\xd9\xbd{\xb7\xb3\xb4\xb4\xf4\x9d\ \r\x1b6\xfc\x19h\x06\x9a\x80N\xe1^]\x95\x81Ji\x01\xac~~~\xd6\x95+W>\x94\x96\ \x96\xb6(%%e\xb0\xc3\xf4\x06q\xef\xc8\xe1\xb2\xb2\xb2e\x8f<\xf2\x08\xc0x&q\ \xad\xffm\xca\xe3w\xdc6-25\xeaZ\xacR4V)\n\x8b\x1c\x85E\x8a`{\xcd\x16\x1e_\ \xfb\xe2\xd1\xfe\x1c\xc7\xeb\xb4\xf2\rPs\xec\xd8\xb1\xdbL&\xd3\xaf\x85\x10>\ \x1e\xf1\x06\x83aP|]]\x1d\x05\x05\x05MEEE/\x94\x96\x96~\xc1@\xa1le\xa0]\xe9\ \xf3\x00x*\xa5/^\x95r\xc9\x92%sg\xce\x9c\xf9xzz\xba\xaf\xbf\xff\xb0\x0e\xeb<\ Hkgg\xe7]\x19\x19\x19G\x80q\xf8\x11/\xad\x14\x0f\xfc({vF\xf6\xe4lB\xe4h\x8c\ \xba?\xbf\xd8\xff\x9c\xb6\xf1\x9d=\x1b\xd8\xca\x16\xe0\xd4\xfc\xf9\xf3\xdb^{\ \xed\xb5\xdf\xc9\xb2|\x9b\xc7\xeb\xb2,c0\x18\x063\xcf\xa1C\x87(***\xdd\xb8q\ \xe3\xabMMMMn\xe1\xed\x80\x1dp\xe8\xba\xae\x89a\xab\xea])-\x9co\xbe\x9e\xcd\ \xc8\xc8\x18\x1f\x1b\x1b{!\x00\x00\x97\xcb\xe5z%%%\xe5w@\x0c\x10\xc7B\x16^\ \x9f\x9d\x92}\x7f\xfa\x9d\xf2\xf3\xf9\xaf\x9f=\x91S\xf7\x1a\x87\x06,\xb3a\ \xc3\x06KZZ\xdazI\x92\xae\xf6\xcc\xe1\xbd\xea\xbd\xbd\xbd\xec\xda\xb5\xcb\ \xb5\x7f\xff\xfe?\xe4\xe6\xe6n\xe6|sx\x16\xe8\xc6\xab\xd2\x8f\xa8\xc4B\x08\t\ \xf0XjH\xf35m\xda\xb4\xf9\xa9\xa9\xa9\xc8\xb2<\xf8P{A\xa0\xebz\xc9\x96-[\xee\ ]\xbdz\xb5\x0f0\x9ed\xaee:Yl\'\x97f\xfe\x0e\x9c:r\xe4\xc8\xfc\xa0\xa0\xa0\ \xdf\xcb\xb2l\x02\x90ey\xf0AUU\x95\xfa\xfaz\xf2\xf3\xf3\x9bKJJ~\xb5\x7f\xff\ \xfec\x0cm\x0e{\x01\xcd\xbb\xd2\xff\xa3f\xee\x82\xcd\xd7\xd2\xa5K\x7f8c\xc6\ \x8cGg\xcd\x9ae\xf4\xbc]]\xe0\xcc\xf6Luu\xf5\x9dYYY\xd5@\xac{!liiiMyyy/\x18\ \x0c\x86{<\xf7xD+\x8a\x82$I\x1c>|\x98\x1d;v\x94o\xde\xbc\xf9\xd7\xdf\xd5\x1c\ \x0e\xd1\xfa]od\xc3\x9b/\xc0\x9c\x9a\x9a:\xd1m\xa9\xd8\xab\xae\xbaj\xc4.\xb8\ \xff\xf7\xf7\xf4\xf4\xfc|\xd2\xa4I\xeb\x00CNNNXzz\xfazUUS<\x0f\xaa\xb7\xf8\ \xfe\xfe~\n\x0b\x0b\xb5}\xfb\xf6\xfdi\xdd\xbau\x1b\x18\xb0J\x1b\x17i\x0e/\n\ \xe0\x16\xe4m)\x0b`1\x9b\xcd\xa1+V\xacxl\xea\xd4\xa9s\xd2\xd3\xd31\x18\x0c\ \xc3\xef\xf1\x14\xbfMN\xa7\xb3\xd0`0\xbc)\x84\x08\x04\x86\x14%EQ\xb0\xd9ll\ \xda\xb4\xa9\xad\xb8\xb8\xf8\xc5}\xfb\xf6\x1dr\x8b\x1e\xcc2\x80\xeb;\x9b\xc3\ K9\x95\x18f\xa9`\x06v#h\xd9\xb2e\x8b\xa6M\x9b\xf6HVV\x96\xc1j\xb5\x0e\x8a\ \xf7\x06\xf1\x1e\x1e\xd1\x1e\xcb\x1c?~\x9c\xad[\xb7\x1e\xde\xbau\xeb+555\xf5\ \x0c\xcd2\x17\xb4\xcce\x01x\t\xf2X*\xd0\ra\x9e>}zRVV\xd6\xb3\x99\x99\x99QII\ \x178\x00u\x83x\x8bw:\x9d\xec\xdc\xb9S+))Y\x9f\x9b\x9b\xbb\xde\xe9tzV\xdd\ \x93e\x1c\x97zr\xad\\\xfc\x92\xf3C\xd7u\x97\x10\xa2\x97\x81\xf7\\\x07\xd0W^^\ \xee8y\xf2\xe4C\x1d\x1d\x1d?ill\xbc\xe1\xfa\xeb\xaf\x1f,\xfd0`\x19o\xf1\xad\ \xad\xadl\xde\xbc\xf9lQQ\xd1K%%%\xe5\x0c\xac\xb8\xe7\xfd\xb9\x97\x8bXf\xf8\ \xb8\xac\xb3Q\xb7\xa5\x14\x86e\xa9\xdbo\xbf}IZZ\xda\x83s\xe7\xceU-\x16\x0b\ \xb2,\x0f\n\x97e\x99/\xbf\xfc\x92\xfc\xfc\xfc\x8a\x0f>\xf8\xe0\xa5S\xa7N\xd5\ r>\xcb\\\xb2eF\x05\xc0\x0bD\x06|\x18\xb0\x94\x050\xcf\x9c93%++\xeb\xd9y\xf3\ \xe6\x85O\x9c8q\xd02{\xf7\xee\xd5\x8b\x8b\x8b\xf3rrr\xdew:\x9d\x1d@\x0b\x97a\ \x99Q\x05pCx\xb2T\x00\xee\xa3\x93\xb0\xb0\xb0\xf0\xe5\xcb\x97?1o\xde\xbc\x8c\ \xc4\xc4D\xf2\xf3\xf3;JJJ^.**\xfa\x8c\x01\xcb\xb41\x90e\xfe\xd7\x96\x19u\x00\ 7\x84\xb7\xa5\x06\xb3\xd4\x8a\x15+\x96\x85\x85\x85M+((\xf8\xcd\xc9\x93\'O3\ \xb40\xf5]\x8eeF\xc4\x1e\xadodn\x08\x89\xa1\x96\nb \xfdv3\xb40]\xb6eF\xc4\ \x1d\xed\xcf\xacnK\x19\x18(|\x01\x0c\x00\xf4p\x99Y\xe6\xa2\xf1\xae\xc4wb/K\ \xa9\x0c\xec\x8a\x03w\xfb;\xea\xb1\xae\xe4\xafU\xbc\xbf\xce\x8f\xe6\xaa\x0f\ \x89\xf1\xaf\xfes\x9b\xff\x01 4SXO{W\x00\x00\x00\x00IEND\xaeB`\x82\xc6\xde\ \x1f\x84' phatch-0.2.7/phatch/actions/shadow.py0000644000000000000000000004027211346363116017504 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 # Embedded icon is taken from www.openclipart.org (public domain) from core import models from lib.reverse_translation import _t from lib.imtools import has_transparency, paste #---PIL def init(): #lazily import global Image, ImageChops, ImageFilter, imtools import Image import ImageChops import ImageFilter from lib import imtools def drop_shadow(image, horizontal_offset=5, vertical_offset=5, background_color=(255, 255, 255, 0), shadow_color=0x444444, border=8, shadow_blur=3, force_background_color=False, cache=None): """Add a gaussian blur drop shadow to an image. :param image: The image to overlay on top of the shadow. :param type: PIL Image :param offset: Offset of the shadow from the image as an (x,y) tuple. Can be positive or negative. :type offset: tuple of integers :param background_color: Background color behind the image. :param shadow_color: Shadow color (darkness). :param border: Width of the border around the image. This must be wide enough to account for the blurring of the shadow. :param shadow_blur: Number of times to apply the filter. More shadow_blur produce a more blurred shadow, but increase processing time. """ if cache is None: cache = {} if has_transparency(image) and image.mode != 'RGBA': # Make sure 'LA' and 'P' with trasparency are handled image = image.convert('RGBA') #get info size = image.size mode = image.mode back = None #assert image is RGBA if mode != 'RGBA': if mode != 'RGB': image = image.convert('RGB') mode = 'RGB' #create cache id id = ''.join([str(x) for x in ['shadow_', size, horizontal_offset, vertical_offset, border, shadow_blur, background_color, shadow_color]]) #look up in cache if id in cache: #retrieve from cache back, back_size = cache[id] if back is None: #size of backdrop back_size = (size[0] + abs(horizontal_offset) + 2 * border, size[1] + abs(vertical_offset) + 2 * border) #create shadow mask if mode == 'RGBA': image_mask = imtools.get_alpha(image) shadow = Image.new('L', back_size, 0) else: image_mask = Image.new(mode, size, shadow_color) shadow = Image.new(mode, back_size, background_color) shadow_left = border + max(horizontal_offset, 0) shadow_top = border + max(vertical_offset, 0) paste(shadow, image_mask, (shadow_left, shadow_top, shadow_left + size[0], shadow_top + size[1])) del image_mask # free up memory #blur shadow mask #Apply the filter to blur the edges of the shadow. Since a small #kernel is used, the filter must be applied repeatedly to get a decent #blur. n = 0 while n < shadow_blur: shadow = shadow.filter(ImageFilter.BLUR) n += 1 #create back if mode == 'RGBA': back = Image.new('RGBA', back_size, shadow_color) back.putalpha(shadow) del shadow # free up memory else: back = shadow cache[id] = back, back_size #Paste the input image onto the shadow backdrop image_left = border - min(horizontal_offset, 0) image_top = border - min(vertical_offset, 0) if mode == 'RGBA': paste(back, image, (image_left, image_top), image) if force_background_color: mask = imtools.get_alpha(back) paste(back, Image.new('RGB', back.size, background_color), (0, 0), ImageChops.invert(mask)) back.putalpha(mask) else: paste(back, image, (image_left, image_top)) return back #---Phatch class Action(models.Action): """Drops shadow""" label = _t('Shadow') author = 'Stani' email = 'spe.stani.be@gmail.com' cache = True init = staticmethod(init) pil = staticmethod(drop_shadow) version = '0.1' tags = [_t('default'), _t('filter')] __doc__ = _t('Drops a blurred shadow under a photo') def interface(self, fields): fields[_t('Horizontal Offset')] = self.PixelField('2%', choices=self.SMALL_PIXELS) fields[_t('Vertical Offset')] = self.PixelField('2%', choices=self.SMALL_PIXELS) fields[_t('Border')] = self.PixelField('4%', choices=[str(int(x) * 2) for x in self.SMALL_PIXELS]) fields[_t('Shadow Blur')] = self.SliderField(3, 1, 20) fields[_t('Background Color')] = self.ColorField('#FFFFFF') fields[_t('Shadow Color')] = self.ColorField('#444444') fields[_t('Force Background Color')] = self.BooleanField(True) def values(self, info): #pixel fields x, y = info['size'] return super(Action, self).values(info, pixel_fields={ 'Horizontal Offset': x, 'Vertical Offset': y, 'Border': (x + y) / 2}) icon = \ 'x\xda\x01\xb3\rL\xf2\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\rjIDATh\x81\xd5\x99y\x8c]\xd5}\xc7?\xbfs\xdf{\xf3\x96\ \x99y\x9e}\xc6\xdb\x8c\xc7qm\x0701v\x026\xb6\xa9\x81@\x1a\x16\x11\xa1\x98\ \xd6\x14ZLD#$*UU\x97(U\xa2\xfe\x01\xa84\xffT\xa8\tA6\xb6\x90\xa2V\x854m\x80\ \xe0@Y\x0c\x1e\x07\xe3\x04\xdb\xb8\x10\xdbxa\xbc\x8cg<\xfb\xf6\xb6{\xef\xf9\ \xf5\x8f{\xdf2\xe3\x19c\xbb"U\xaf\xf4\xd39\xef\xdc\xf3\xee\xf9~\x7f\xdb\xf9\ \x9d{EU\xf9\xff|\x99\xffk\x00\xff\xdb+\xf2y=x\xdbZ\xa9\x17\xc3\x07\x02;\x1f\ \xda\xad\xdf\xfe\xbc\xd6\xf9\xdc,\x10\x8d\xb1\xe3\xce\xfbh\xff\xcaM\xfc\xd9\ \xb6\xf5\xf2\xe8l\xf3~r\x83\xd4>\xbbZ\xd2W\xba\xce\x15Y`\xc7F\x89\xab\xcb\ \xf7\x14\x0e\x9c\xee\xe2\xc5\xef\xab\xda\xca\xfb\xcf\xad\x93o\xaf\xd9\xc8]\ \xcd\xad\xd0\xdc\n#\x83<\xfd\xdc:\xf9\xed\x96\xdd\xfaVq\xce\xd3_\x97\xaa\xea\ 1\x1e\xadm\xe6{\xf9a\xfa\x80eW\x82E\xae$\x88\xb7\xaf\x95\xb5\xf3:\xe9Z\xd8\t\ \x87?\xe4\xd4\xe0\x00Odj\xd9\xf1\xd8/4\xbf}\x83|\xb1}\x11\xfbo\xbe\x93Xq\xbe\ \xf5a\xe7\x7f0\xdas\x8e\x95g\xdf\xa1{\xfe\x8d<\xd0\xd8\xc8\x93+\xd7\xd0\xb6\ \xb0\x13\xf6\xee\x82#\x1f0\xff\xc1=z\xf6r\xb1\\\x91\x05\xd4\xb0\xe2\xea\xeb`\ \xee\x02Xv5\x0bO\x9d\xe0\x99\xff\xde\xcf\xe3\xcf\xad\x97\x1f\xd4\xd4\xf2\xe0\ \x8d\xb7\x10S\x0b\x95v\xd9x;\xe9\x97\x7f\xcak\xe9\xaf\xe3_\xfb\x15\x96.Y\x0e\ "\xc1\xbd\xd6\x05\xf0\xf1A6\x00\xff\xf2;!\x80rM}c\xd8\x17X\xd0\t\xf3;h\xe8=\ \xc5\x93(\xf8Y\x98\x18\x03\xaf \xa8\x051\x10\x89)\x1bo\xe6\x0b\x89\x1a\xa8\ \x8a\x87\xe4L@\xa2\xb5\r\xe0wH U\xc3\xaax\x02T\x03 n\x16rc\xc0\xa4ar\x10\x06\ \x0e\x19,\x10I(\x91\x04xY\xf0\xb2\x82\x01\x12s,\xa9\x06H\xd5[\xe2\xb5\x10M@,\ \x0e\xf5\xcd\xdcv%X\xae\x88@]#W\xab\x85B\x162\xc3\xc2\xf0\x19ar\xc8\x90\x9c\ \xa7\xd4\xadR\x16-\xf6\x88$\x01\x13\x07\xa7\x1e\xbc\xf3\xa0\x1e^\x06F\x8e\ \x1bF\x8f\t\x83\x07"\xa4\xea-u\xf3\x95d\x9d\xd2\xd4L\xe7\xb6\xf5\xf2\x80\xb1\ D\x80\x9a\x92\x08\x8e\x9b\xe3\xfb\x8f\xfcZ3\x97E\xe0\x85M\xe2L\x9c\xe5q+4\ \x88\xe0\xa08\x08\x8ecH~\xf1K\xa42\xc30\xf8\xa9a\xf4\x9c\xa1\xeejK\xfb\xbd\ \x1eN\xcd\x17\xa0v#\xc4\x16@t>D\x8a~f\xc1\xed%R8C\xe3\x82n\x1aW\xbe\x8a\x9f\ \x19\xe0\\\x97\xe1\xcc\x01\x87t\x9be\xf1"\xcb\xdcy<\x1f\x8dC4V\x96\xbdoC\xf7\ \t\x8e\x03\xcf\xcc\x84s\xd6,\xb4u\x9d|\xb5m.\xaf}\xed\x1b`\x9c\xc0WU\xc1\xba\ 01\x08\xe7\x8f\x1a4.t\xdc\xe1\x13k\x98\x07\xf5\x7f\x0c\xd57^\x9a\t\xd5\x85\ \xd1W`\xf8E\n#c|\xfa\x8a\x83)(-K,\xc9\x06p\xa2\xe5\xa9\x07\xf7\xc1o\xbaX\xbb\ \xa5K\x7fuY\x16Hx\xec\xad\xa9\xc5w"8\xc51\xeb\xc1x\xbfp\xeecCr\xa1\xb2\xf0v\ \x1fi\xf8C\x98sO\x10\xa9\x9a\x03\xa4\xa8\x9b\x19\x9eZq/}\'\xd4\xdcL,\xf1#\ \x96\xdc\xd7\xc5\xa9\xd7\x0cg\x0f9\xb4^e\xa9i\xd2\x12\x89\x81>\xdc\xc94\x1f\ \xcc\x86s\xd6\x9d\xf8\xfe\xf7t\xac\xe7\x0c\xef\x13\x1a\xc8\xfa\x90\x19\x86\ \xde\xa3\x86\x9a\xa5J\xfb\xd7,\x92\xbe\x15\xd2\x7f\x00\x9a\x07\x9b\x05\x9b\ \x0b\xdb\x99\xa4\xe2\x9e\x86"\x02M\x8f \x89\xe5\xb4\xdfn\xa9Y\xaa\xf4\x1d1d\ \x86\x83\xf5B\x02\x07\x1f\xfb\x85\xe6/\x9b\x00\xc0\xe4\x04/\r\x9c\x0f\\\'?\ \x01\xfd\xc7\x0c\x91:\x98\x7f\x93\x85\xc450\xe7\x1beP~ \xeagQ?\x17\xb6\x17Ji\ n\x89\x8c\x0b\xcd\x8fB\xb4\x95y7YL\x1a\xfa\x8f\x1b\n\x930>\n\x93\xe3\xec\xba\ \x18\xc6\x8b\xd7B\x96\x9dg\xba\xc1\xcf\xc3\xe89C./t\xde\xe5\x03\x02\xf5\x9b\ \x02\xcd\xfbY\xd4\x9b\x0e4\x83z\x99\x0b\xc1O#W"\x82@\xdd7\x01X|\xb7O.#\x8c\ \xf4\x18\xfaN\x03\x86s\x17\x83x\xd14\x1a\x85\xf3g?\xa5\xb0d1\xb1\xe1S\xc2\ \xdc[,&\x02\x1ai\x055A\x82W\t\xbdL@ajJ\x90\xa9})\xb7\x02\xa8\x84?E 6\x17$\ \x82\x89z\xb4\xdeh\xe9{\xc7\xd0z5\xac^\xc3\x0f^\xbcS\x1e\x1a\x1b\xe6\x9f\xbc\ \xc4\xe4\xd9n\xb6\ E|\x9e*\xd6MS,\xb0c\xad,31\xbe\xbb|9\x9bW\xac\xc6\xd4\xa4!;\x06\xa7\x8e\x08M\ k-j\xc1Z\x10\xd3\x80Vj_C\xf0\xc5K+\xb5/\x81\xa6+\x86\x03\xed\x97\t\x88\tu\ \xe0\xb4 \x04\x04\x9aVY\x06\xde\x17\xe6\xccW\xa2U\xd0\xde\t\xed\x9d\xa4\xf6\ \xee\xe2\xcf?:@\x06\xf8\xce\x05\x04\xac\xe1\xcd;\xee\xa5\xad\xa95\\\xd0\x077\ #\xe4\'\x84t\x87\xc5Z\xc0\x82\xcd\xf7B\xb4#\xb4\x00\xe56\x04\xad\xd3\x08\x14\ \x9b\xe2\x88\x1aAB\xf0*\x80\x1fda\x9b\xebE\xc2\xfe\x9c%\xca\xd9\xff2\xb8\x19\ !\x9eR$L\xe6\x85\x02\xd6\xc2\x9bE\xccSc@8\x19\x89\xd2V"\xe4\x07\x16H\xb4\x01\ NP\xf7X\x1f${\x1a\xe2\xd7N\x05_t\'@\xc3x\x08}\xa5DC\x8b\xae\xe2K\xd8\x0f\xb4\ \x8f\x80ZE\xb3g1!K\'\x06\x89\xb9\xc1\xfa\xa9zp\x1c8\xfa\x11\x1c\xfb\x88\xef|\ \xabK_\x9f\x91\x80\xfa\xdc\xf5\xc6\xcb\xbc\x7f\xc77Y\x9cH\x06`\xf3\x13B\xbcQ\ \xa1X\x1e+\xf8\xb9~\x8c;\x86j4\xc0i\x03\xbc\xa5x\x98a\x13\xd3"\x91\n\x9fW\ \x11\x8c\x04\xf9\x00\xaf\x1f\xf5\x0b`\x08\xc6\x04\x12\xcdJ~@\xb0\xbe2\xd4\ \x0b{w\xf1\xd3\x87\xba\xf4\xa9\xca\xe7NI\xa3\x0f\xef\xd1\xa1\xd1any\xfd%\x06\ \xdcB\x00\xd8\xcbC4\x15\xf8~\xd1\x02j\x15od\x1f6L\xa1\xd6\xcb\xa2n.\xe8\xbbe\ \xf1C\xb1n\x0e[\x08\xc7\xbd,\xea\x86\xa9\xd7\xcb`\xbd\x0c\xeaN`G\xf6\xa1\xfe\ \xd4ub\xa9`\xfd\xdc$\xbc\xbd\x93#\xc4\xf8\x93\xe9\x8a\xb9`\x1fx\xb8K\xbb\x07\ \xfa\xb8\xf5\xadW\xc9x\x1e\xf8.D\x92Z\x01>h\xedd7\xfe\xd8\xc7%P\xd6\x0b\xc1z\ \xb92\x89B\xb6\x0c<\x04]\x9a_\x9c\xe3\xe5p\x87\xde\xc3\xcf\r\x04\x16.\xae\ \xa3\x10I)\xbe+\xf4\xf6\xc0\xc4\x08/<\xf0K\x9d\xfcL\x02\x00[\xde\xd5\x83g\ \xba\xf9\xd9\xc8`h\xfe0\xcb\xa8\x86\xe0\xc3l\xe4\x8f\x1d\xc5\x9f\xe8.\x03t\ \xa7\x02\xd4ic\xbe\x9b\xc3/L\xb3\xd2\xc8\x87\xd8lO\xf0\xcc\xa2\x054H ~\x18S\ \x0b:\xe0Kk\xf8\xee\xb6\xf5\xb2y:\xd6\x197\xb2\xe7\xd6\xc9\xfd\xabo\xe4\xfe\ \xc6\x16\xc8\xf5\x817Y\xd6~)`C\x12:v\x18\x9c\x1e\xa4j\x01\x98T)\x9dj\xc5\x06\ W\xcc8\x10\xf8\xbe5\xa0\xee\x10\xe4O\x81f1\xa1\x1aU\xc2\xe7\x86\xf3\xbcqp\ \xa2\x8aq`\xe5\xf5Hf\x82\xe7\xb7\xae\x93\xfeo\xed\x9e%\x88\x01\xb6o\x90\xeb:\ \x96\xf0\xdc\x8a\xd5\xc1I+R\x05\xeex\xb8\xc0\x948\xa8\xe8{ch\xe6#\x88\xa4\ \x91\xc8\x1cT\xe2\x88\x89\x05\xd9\xa8H\x00Em\x1e4\x87\xe6\xfb\x112\x88\tJuK\ \x10\xb86\x0cn\x91\xe0\xb9\xeeD\xb0\xbe\x84\x04\xd7\xde\x8c\x93\xcb\xf0\x9f\ \xdb7\xc8\xba\x87\xde\xd1\x0f. \xf0\xecFil\xae\xe3\xe5\xf5_\r\xde(\x88\x03U)\ ex\xd0\x94\xb4_\x12;\xd5\xdc\xd6\x82\xe6F\xb1v4\xc8J*\x88\x89\x82\x89\x04\ \x87\x08u\x91\xf0\x0c\x8c\x01c\x02\xff\r\x8f\xc6\xa5\x14\xabR&\x94\x1d\x10\ \xe6\xa4mi\x0f\x10\x81\x15_&\xd1}\x82\xad\xc0u\x17\x10\x88\xb8\xfc\xf3\xca5\ \xb4E\xc3Z\xdcq \x91\x86\xde\xa3!\x86\n+\xa8RJ\xad\xd62%\x83\x04\x04\x15\xfc\ \x02P(-.\x1a\xb6\x81\x17\x965o+\xc0K0\xe6\xe7!\xdf\x0b\x89\x85\x01\x0e\x80\ \xb1\x118\xb8\x0f_\x85\x7f\x9f\xcd\x85\x8e\x1d?\x02M\xad\x90L\x05\x16\x88%\ \x95x\x8d2qFH\xce\xd3\xb2\xff\xfbeK\x94HT\x8cSa-\x91\xd0\rl\xe02E\xcd\x0b\ \x04;/\xc1^`-8&\xf8\xefx\xb7PU\xab\xc4\x92\xca\xf8x\x00\xfc\xf8\x11\xb6S\xe0\ \xf1\x87\x7f\xa5\x9f\x16\x01_P\xccm]/\xab"\x0e\x8f\xb5/b\xf3\xb2k\x8865C\xff\ qad\xc80\xf76?\xd0\xb4\x0f\xbeG\xb9\xef\x97\xfb\xc5LU./\xca\xe6\x97\xd0u\xc4\ \t]\xc8\t<\xcc8SE"p\xfa\x15\x87\xfa&\xcb\xb1\xd3\xea\x9f8\xca6\xcf\xe7\x89\ \x87\xbb\xb4{\x9a\xc2g?\x13?\x7f\xbd4xQ\xb6\xd4\xd5\xf3\x177\xac\xa5m\xe4\ \x84Cz\xa5%1W\x83t\xe7\x05\xc0mH\xc4/\x06v1\xcd\xfa\xd3\x16\x92\x10\x9c\t\ \xc4\x89\x80q\x84H\xa2\x0e\xa7*\x85\xda1DGq"0yZ\x18;`X\xb8\xd2\xe7\xed7\x19\ \xb8\xe3\x05m\x9a\x11$\x179\xd0<\xb8W\x07\xb7\xec\xd6\x7f\x1c\x19\xe4\xdf\ \x92i\xa8oW\x06\x0f\x98\x00pE:\x85\x19Rkq\xc3\xf3\xcaR\x99\xbdP\x10\xa7\x16\ \'\xd5\x89I-B\x12\xf31\xb1\xa6\xa0L\xc9\xc3\xd0~C}\xbbRU\x03s\x17\xd2\xb8u\ \x83\xac\xb8l\x02\xc5+U\xc3\xba\xda\x06H\xb7X\xaa\xab\x95\xfe=\xa53\xfe\x05\ \xbe^\x19\x0fSK\x8f\n\x0bY0U\xcd8\xd5\x8bp\xaa;1\xc9\x85H\xb4\x1e\xebN\xa0\ \x16\xfa\xf78T\xd7*\xe9\x16\x8b\x13\x83\xf9\x1d`,\xb7_\x11\x81gWK\xb4\xa1\ \x85\x15"PU\x03\x8d\x9d\x16\x93\x85\x91\x8f\x83\x02^\x98\xea\xe7\x01+\xa6\ \x94\x04\xc5\x18)f,\x13o\xc1I-\xc0\xa9\xee\xc0\xa9\xe9\xc4Dk\xf1\xc7\x8fcs}\ \x8c|d\x90|\xb0NUM\xe0v\x8d-\x90Lq\xd7\x15\x11\x88\xc4\xb9\xb6\xa9\x95(\x04~\ \x9b\xac\x83\xe6\xa5\x16\xf7\x8c0|\xd0\x04\xe7\x03\xca\x16\x08\xf1\x97\xc7\ \x8a\xb1\x10\xba\x9c\xa9\xaa\xc7$[p\x12-H\xbc\x11\xebN\x92=\xbb\x93\xc2\xc8a\ \x86\x0f\x08n\x8f\xd0\xba\xd4\'U_\xde\xbcB\x12k~\xb8Q\xaag\xc4x1\x02\x08\xd7\ \xcf\xa9+\xfft\xa2P\xd3\xa4\x98k|\xce\x7fb\x18\xda\xeb\x90^a\x91\xc8\xcc\x89\ `\xfa\xf9X\xc5\xa0n\x06w\xf4(\xee\xf0~\xd4\x1dD\x0b.\xa3\x87\x1c\xe2\xa2\xc4\ Z|zzA\xfb\xc2l\xa6\xe0\xe6\xe1\xf4\xa7L\xc6-\xb5\xc0\xc4\xe5\x11\xb0\x14\xf6\ \xed\x81\xbe\xde\xe0A\x85\x02\xea\x16\xc8zy\xdc\xe5W\xd9tm\xd60\xf4\xaeC\xd5\ \xf7F"\xc1\xc9)\x9a\x80D\x9de$\x13\xd4O\xad\xf3\xc0\xcf\x0b\xbe\ \x1f\xd42N\x95\xe28\xf0\xeb\xf7\xb0d\xe0\xaa&L,U\xfeJ3\xd4\x0f\xa3\x1e\x9f\ \x00I\x02\xf7\xf1D\xc4\x07\xfc\x8b\x11\x99\x95@\x05p\x13\xce\x8b\x86\x12\x03\ b\xe7\'\xd8\xdf\xd7\xc3\xbd\xf3\x16\x06 \xbaO\xc2{]\xf4\xbc}\x8c\x1f.\xaf\ \xe7\xb6\xcd\x7f\xc4\x86\x86\xd6\xf2\xbab\xe0\x93\xdf\xc2\xce\x0f\xf8\xf1\ \xae^\xde\xb8\xfb\x10\x9bV-\xe7\x9e\x15\xab\x885\xcf\x85\xc1\x0189\xce\xc9\ \x90\x80KP\x05\xba!\x94Y-2#\x81iZ\x9f\x02\xbc(\xfb\x86\xf8p\xed\x87\x81\x8f\ \xfff/#o}\xcc\xf6g\x8e\xf2F\xde\xc7\xd4\xc58\x9e\xae\xa6c\xd3f\x16&S\xc13GG\ \xe0\x97\xafs\xf0\xa9\x0fy\xd5\x07w\xcfy\x9e]~\x94\xe7\xef;\xc4=+:\xb8od\x90\ \xe8\xce\xd3t\x03U\\\xf8V\xc0#,\x86/\xc0:\x93u$\xf0s\xa7B\xf3\x95\xe0\xab\ \x8a\xfd\x7fX\xc5\xdf\x8d\xba\x0c<{\x84\x9f\x0f\xe4\xd1p<\n\xc4\x96\xcd\xa1\ \xf9\x89\x8d\xfc\xfd\xdd\x9bH\t\xf0\xb3\x7fe\xe2\xaf\xdf\xe0\xafNL0P\xa1\xdd\ l\x0b\x15s\xad\xaaN\xab\xb0f\' \x15\ \x04\x8a\xa0\x8a\xc0K\x04f\x91h\xf8\xbf\xc8\xadm\xfc\xde_\xfe>\x7f\x1b\x89b\ \x9e\xde\xc5\x93?\xef\xe6 e\xf7(T\xf4+\x01\xe7\xa7\xfdv+\x08\\\x9a\x05\xa6\ \x91pf\xd0~\xb1\x8d2\rt\xd8/\xc6\x8e\xdc\xbf\x98\xd5\xd5\x11\xaa\x7f|\x847\ \x00\x9f0\xbfW\xb4E\xd0E\x8bT\x12p\t\x82x\xca\x87\xf4K"0\x8dH\xa5KMw\xa7b\ \x8cD*\x08\x87\xef\xdb\xcao\x13C\xf0\xb6\x82\xc4t\x02\x95\x1a\xf7\t4>+\xf0K&\ 0\x03\x99\xca\xec\xe4\xcc \xa6\xa2-^\xb6\x02\xfcLR\xbc\xaf\x97\x92\xfb+\xaf\ \xff\x01iXg\x97r\xae{9\x00\x00\x00\x00IEND\xaeB`\x82\x15m\xac\x0e' phatch-0.2.7/phatch/actions/sketch.py0000644000000000000000000002107211346363116017475 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from # http://www.tutorial9.net/resources/free-icon-pack-web-injection/ # by designer Jonatan Castro Fernandez. # Follows PEP8 from core import models from lib.reverse_translation import _t #---Pil def init(): global Image, ImageMath, ImageOps, ImageFilter import Image import ImageMath import ImageOps import ImageFilter def sketch(image, details_degree=1): im1 = image.convert('L') im2 = im1.copy() im2 = ImageOps.invert(im2) for i in xrange(details_degree): im2 = im2.filter(ImageFilter.BLUR) im1 = ImageMath.eval('convert(min(a * 255/ (256 - b), 255), "L")', a=im1, b=im2) return im1 #---Phatch class Action(models.Action): label = _t('Sketch') author = 'Nadia Alramli' cache = False email = 'mail@nadiana.com' init = staticmethod(init) pil = staticmethod(sketch) version = '0.1' tags = [_t('filter')] __doc__ = _t('Transform to a grayscale pencil drawing') def interface(self, fields): fields[_t('Details Degree')] = self.IntegerField( '1', choices=['1', '5', '10', '20']) icon = \ 'x\xda\x01\xd5\x08*\xf7\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x08\x8cIDATh\x81\xed\x97}lU\xe5\x1d\xc7?\xcf\xb9\xf7\ \x9e\xfb\xde{o{o\xa1\xdcRJ[(\x14\xeap\xa55\xa2b6\xcc2%q\x9a0\xf7\xc7\x16^2\ \xb7\xfd\xb1\xb9\xa8\xc1i\x16\xdd\xe2\x92-f\xd9\xba\xa8\xc9\x82f\xb3L\x83Q\ \xfc\xc3mNQ\xbae*\x8a\x16I` \x94\x0e\x10J)H{\xe9}\xe9};\xe7\xdc\x97\xfdq\xce\ \xb1\x87\xf6\x16\x10\x90\xba\x84_\xf2\xe49\xf7\xdes\x9e\xf3\xf9\xfe\xce\xef|\ \x9f\xdf\x85kq-\xae\xc5\xb5\x98\xc9\x103\r0]l]\xbe\xbckvU\xd5ok\x83\xc1[\x03\ \xc1`\xda\xe6v\xbf\xa9\x14\x8b\xf7\xcf\xdd\xb4i\xd8z\xde\x97R\xc0\xd6\xce\ \xce\xf5\xf5\xc1`\xcf\x9cp\x98P}=\xde\xeaj(\x97\xc9\x8e\x8e\x8e\x0e\xc7\xe3\ \xab\x16o\xde\xbc\xdfu\x8a\x8e\x8e\x0eB\xa1\x10\xdb\xb6m\xa3T*\xe1\ \xeb\xea"\xdd\xdb\x8b;\x97\xc3]( T\x95\x8c\xaa\x12\xcb\xe77\xb2q\xe3\xc6\x07\xcf\xb7\xeeU\xe9\x85txw\x8f\xa7~\x9e\xe4n\xba\ \x1e\xc7\x9c\x05\xd8\x1d\x02\x11{\x1b\xf2\x83 4\x8a\xd9"\xf9\xb8\x8a\x96\xd4\ \x18\xd0\xae+\x1f)\xb5\xfc}\xdd/\xfft\xd7\x85\xd6\x16\x93\x8e\xad\x9f\xcb\ \xc6\xb8|\xf8\xa0\xb3\xc7S?O\xf2\xb4}\r9\xda\x86PO#\x86_A\x94s`\x17\xe7\xc0+\ )\xb5\xd4\x7f\\{\xe0\xb6\x17\x95\xa7.f}s\x1f\x10\xe8m\x85c\x92\x98\x92!\xa2\ \x04\x14?\xaf\xa8s\xe0\x17\xafD\x8e.F\xa4\xf6!\xe2\xef!\xcaY\xb0K\x97\x05o\ \x15`\x82\x15\xd1\xdf\x0b\x1b\xe0\x02\x9c\xc6\xef\x05@5~\xb7\x1eO+f\xa2l\x1a\ u\xf8\x86\xaf \x92\x1f#\x92\xbb\x10\xa5\xf4\x15\x81\x87\xa9%d\xce\x92!N\xb6\ \x08\x91\x01\xaf\xf19\x03\x8c\x01q@\x99,\xe4\xe0:\xc7Zw\x8d\xb7\xc7\xdb\xb0@\ r/\xbc\x11yN+"=\x80H\xf6!\xd4Q\xb0\x95\xae\x08\xcb\x9c/\x98\xf1\ \xf3\t\x88\x19\xd9\x97\x81\x08p\xc6\x92%\xa4\xb2\xb8;\x14\x8eR]3\x8b|6\xc9\ \xf0\xe0\xc7\x0c\x1f?@">\xc2\xa9\xd8\\\xe7\x88 }ca\xc0\xf7\xd2\x1e\xad\xe7\ \xc1m\xda?\xd1\xdf\'\x13\xda\xec\xa5L\xd0\x9ce(\x93\xc0\xa7\xf5\xfcJam\xe6\n\ \xe8eS\x04<\x9c\xfb\x98\xbd\xbe@\xcd_V\xdf~G\xa8TT\x189}\x84\xa3\x87v1\x9e\ \x8a!\x89"\xe1j7g\xf2\x0e\xf9P\xc6\xbd\xef\xa7\xcf\x0f>g$\xa6l\\\x9f\x07\xb2\ \xe8F\x90\xb2\x8c\xb4!\xc0,\x19k\xd6/:&w\xa3\x9aqC\xd0\x9f\x84\x0c\xc8\xa1P\ \xe8\xf6\xff\xec\xff\xef\xbd\x945\x96\xb6\xd6\x11\x1f=Fb\xec\x04\x12\x1a\xb2\ \xbdH2\x91\x18\xf8d\xe8\xcc[[\xde<\xf2\xea\xc8\xd9\\\x1a=\xab\x19\x034\x89n\ \x04\x89I\xe0f\xd6?7\xb45*\xb5\x12\xc2\x00\x0f\xa0{\x7f\x95\xdf_\xf5\xa8\xd7\ \xeb\xbdS\xd54\xee\xb9\xf3\x06V\xdf\x12)\x9d<52pt0\xf6\xd1\xeb\xff:\xdc\xd7\ \xffI|\x84\t\x07\xc9\x19\xf0ic\xceqn}_Tm_\xae\x00\xbb!`.\xd0\xe2ry\x9e\x96\ \x9drR\xc0`\xfb\xc2@\xfa\xf0\xf1\x91]gFsC\xe8Y5\xeb\xd8\xac\xef\xac1\xcc?A\ \xd6\xda\x9e\xe2\xe3_\x94\x00\t}\xe3\x89\x02\xf3\x8d\xd9g|\x9fF\x7f\xc1\xcd=\ \xc2\nj\xf5\xef\x8bv\x92+-\x00\x03T6\xa0\x83\xe8b\\\x06\x88\xc2\xc4\x0b\x99g\ \xc2\xafM\xd0/\x1c\xda\x1a\xe7k\xa7\xad\r\x97\x83\x89\x0e\xd2\xb4E\x13\xda,\ \x8b\xab\x02<9.\xf4\x7f@L\x9a\xadq\xc5\xeb\xf9Z\xfc?\xc6\xff\x00\xa1\xe7b\ \x91\xb3\x03\x82\xc8\x00\x00\x00\x00IEND\xaeB`\x82\xc1,r\xeb' phatch-0.2.7/phatch/actions/solarize.py0000644000000000000000000002544411346363116020053 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is designed by Igor Kekeljevic (http://www.admiror-ns.co.yu) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, ImageOps, imtools import Image import ImageOps from lib import imtools def solarize(image, treshold, amount=100): """Apply a filter - amount: 0-1""" image = imtools.convert_safe_mode(image) solarized = image.convert('RGB') solarized = ImageOps.solarize(solarized, treshold) if imtools.has_alpha(image): imtools.put_alpha(solarized, imtools.get_alpha(image)) if amount < 100: return imtools.blend(image, solarized, amount / 100.0) return solarized #---Phatch class Action(models.Action): label = _t('Solarize') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(solarize) version = '0.1' tags = [_t('filter')] __doc__ = _t('Invert all pixel values above threshold') def interface(self, fields): fields[_t('Treshold')] = self.SliderField(128, 0, 255) fields[_t('Amount')] = self.SliderField(100, 1, 100) icon = \ 'x\xda\x01\xd3\x0b,\xf4\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0b\x8aIDATh\x81\xed\x99m\x8c\\\xd5y\xc7\x7f\xcf\xb9/\ 3;3\xfb\xfef\xaf\xf1+\x06\xecB\x0cN\x9c\xc6m\r\nn\xa4|\tU\xeb\x06\xfaB\x938\ \x95\x00\xab\x1f\x8ah\x91\xda\xd06j\x8bZU\x95Z\x1b\xa9\xad\x04R\xddV\xd4\x10\ \xd47\xbe\xc0\xa7\xb4MDU\x17\x820\x90\xc5\xb1\xe3\x15\xb5\xcdz\xe3\xb5ww\xbc\ \xbb3;3\xf7\xe5<\xfdp\xef\x9d\x9d\x99]\x1b\xefB\x95/\x1c\xe9\xcc\x9c33\xf7\ \xde\xff\xef9\xcf\xf3\xdc\xe7\xdc\x81O\xda\x8f\xb7\x89\xaa\xae\xe9\x00=*\x00\ \x06\x90\xec\x1c\x9d?iy\xb7\xf2\xc4\xda\xce\xbf\xd6v\xd3\x00zT\x84L\xb8\xc5\ \xc1\xe2\xa28(\x06m\x83P\x0c\x16!\xc6\x10a\x88\x00\x0b\xe8\xff\x07\xcc\x87\ \x02\xb4\x087D\xf8\xc4xX\xdc\xb4;8\xb8\xf4\xe5<\x00\xca\x8d\x88\xb8)>\xeb!\ \x0e!.\r \x96\'\xd6\xb8\xe4\xeb\x05hq\x15C\x8cOD\x8e\x08\x9f\xbe|\x81-\xa5A\ \xe9vG\xe3\xe9\xc6=\x12\x85\x9bX\x8a\x87\x8c`\xac\xef\xceh\xce\xf9\x91\x19\ \xf1\xdfa>\x9a\xe6\x83\xea\x1c\xe5\xc6R\x13\xc0!\xc0\xa5\xc6\xc7\xe8Z\xab\ \x02\xa4\xe2\x1d\x14\x87\x90<\x11y\x06r\xa5\xf8\xf6\xbe\xad\xeed\xe5\xd7t\ \xc1\xbd\x97\xdc\xe6mto\xf1\xe8\xdb\x8e\xf6o\x07\'\x07\xf3\x17\x90k\xe7\x91\ \xf9\xff\x8d5\x98\xfa@\xf3\x0b\xffe7\x16N8g\xe6/0\x1fTq\xa9\xe3\xd2\xc0c\t!\ \xfc8 V\x004\xc5[\\B\n\x84\xe4\xf9\xdc\xe86\x9d\xae\xfe\x92\x99u\xbf\xaa\xb7\ }\xb9\xdf\xde\xfes\xe0\xf8\xe9\x01\xb4\x84qK(\x88 \x93\xff\x83\xfc\xe0\x1f\ \x16\xd5\x9f~\xc1\xf6\xe6^r\xbe?{\x11\xa1\x86G\r\x8f%\x0c\x8d\x8f\n\xd1\x06\ \xb0B\xbc\xd3U\x92\x9f\xec\xfb\t\xbe_\xf9s\x1d\xfd\xd9=z\xc7\xcf\x83Wl\xeal\ \xc6\xae\xb4\x8bo\x8fh\x90\x0b\xdfA.\xbc\xfc\xc3xS\xe3\x1b\xce[\xf3\xefa\x1b\ U<\x96\xf0\xa9`\x08>\nD\'\x80Aq\t(\xe2t\x95\xb8\xab\xe7>9\xbb\xf8\x17\xba\ \xf7\xb7Gm\xff\xf6\xf6|)\xb2\xeaXWd\xd5d.a\r\xbe\xf7ge\x19Y\xf8}N/\xfe\'Q\ \xb0\x88O\x15\x9fE\xf9-\x8d>2@\x9am\x1c\x02\n\x04\x14\xe3\x9f\x1a\xf9\x94\ \xfb\xee\xdc\xdf\xdb;\xbe\xb6\x91\x91=`V\xb1\xb6\xb0:\x94\xae\x02\xa3\x02\ \xb5\x19\xcc\xa9\xbf,\xeb\x0e\xef\x08\xaf_}\x1b\x97J\n\xb1\xb0\xde\xec\xd4\n\ \xe0\x10\x93\xa3A)\xfa\xcc\xe8\x0ew\xa2\xfc7\x0c\xdf\xbf\x97-\xf7\xb5hH\x157\ oa\x1d\xd6n\x01h~\xa3\xa9\xf8l:\x7f\x01s\xf6\xef\xce\xe9\xe6\xee\xdf\xe0\xad\ +\xef\x93K\x00p\xa9\xad\xc7\x95\xdcT|\x92\xeb#r\x0c\xe4J^\xb9~\x88\xa8\xb4\ \xd7n\xf84\x84\x95e\x83\x9bLh\xfa\x92\xc2h\x1b\x88\x80]\xbe\x1d7\xc5+\x88\ \x82\x14\x06\xa1{\xf7m\xcc\x9f{\x98n\xef\x18Ka\x84\xa1+\xbdO\xd8u\x01\x90\ \xdd\xa4"|\xd9\xd5\xbfY\xdf\xba\xf2u\xe9\xdd\r\xe1\xe2\xb2)\x8d$Z\x0c\x89\ \xa5\xa5\x85\xa15\x0b\xb5\x14\x12\x9a\xcd\xd3U\xd0l\xdc=\x06\xe7\xdf>\x14\ \xdf1\xf0o\xce\xf7f\xaa8\xe9}\x06jk\x06H3\x8f\x10\xe3\xd1\x95\xefb\xb2\xf2+\ \x12\xda!-\raR\x005\x89U1\x89\x90\xa6\x1b\x99\x96 \xd0\x94$\x15)iGA5=\xde\ \xa6P\xf9~\xb0\xda\xe3\xce\xd4\x1f\xd6\xa2\xff\'4\x82\x80\x98\xbc\x1e\x955\ \xbb\x91Kkm\xb3\xb34\xc8\xc5\x85\xfb\x11\xc0+\xa1a%\x11\x99\xdc\x8f\x9b\x82\ \xb2\xb9\xb6\xb8G\xabxH\xadmA\xd2N:\'N\xb3\x92\xdf\x0b\x0b\xd5\xfd\xd1Xq\xc8\ \x9d\x08*\xc4ii\x02\xf1z\x00\\,n\x9c\xf7\x86\xddz\xb8\r\x01\t\xaf\xa1R\x02\ \x87e\x17 \xb5|\x16\x98\xe9M\xac\x19\x1b\xa4\x16\xb6\xb4\xbb\x8d\xcd\xba$\ \xf2,\xa0\r\x88\xa21\xb7?7\x8ae\xb2Y_\xad\x0b@q\xb08Ne\xe9S\xa8\xfa\x08\xb0t\ \x19\x91\xd1d\xd9\x1dI@`\xd9\xe1\xb3X0i\x9cJ\xea6\x9d \x99\xf0\xac&\x8d\x05i\ \xd4\xc0\xd6@qu\xb6\xb6O,\xef\xa4\x1a\\\xa0\xb1V\x00\xd2\x92\xd8\xd1\xban\ \x91\xcc\xbf\xeb\xb3\x90/\x02\x92\xb8Nk\xf5oh\xba\n\x86\x04.s\xa1\x18PI\xdc\ \x86Lt\xd25NV@\xeb\xb3d\xd7\x11\xecf\x04\x07\x9bhX\x8b\xf8\x0c@P\x84\x9e\x9c\ g\x1a\xd1\xc6\xa6\xc8\xc6"\x1a,"\xae\xa4\x98\x02^*&\x13\x9d\xc6\x02n\xbaBI\ \xd5\xbf\xec&qj\xf9(9N\xb2ycv\xd9\xfd\xc2xX\xbb=\x8fz(\xb0>\x80\xd6&\xcb\tQ`.\x11c\ \xf1Pd\xbd\x00\xc9\x1e\xd6\xeah\xeem>\x90\x08U\x97\xd6\xf4gR\xa1Y\x96n\x05\ \xd0v\x00k\xa1aG\x89\xbb\xeeD\x87vA\xd7\x8e\xe4\x04q\x0cq\x08\xe5\xf7\x91\ \x99\xf7\xf0\xca\xe3\xe4\x82\x8a\xa5\x94;\x95]\x1fa\xcdUi\xe2BB\x8c\x10;\xe5\ p\x06\xdf\x9d\xa4\x11nk\n\xcf $\x15\x9a\xb5\x0c0J~W7\x83\x84#\xbf\x88\xdc\ \xf2e\xf2\x1b\x7f\x9a.\xa7%\x1e\xdb\nMEUiT\xe7)\x9f\xfe\x97\xc6\xe2\xf4\xdb\ \x85[\xe4x,\xd9\xfey\x1d\x00\x16C\x84C\xc4\x85\xea\x1c}\xfeI\xaet\x00t\xdeZ\ \xb2\xcf\x0c\xc4\xc6\xa1\xb2\xf1+\xe4\xf7~\x83\xee\xe2`\xaa\xb1\xd6\x01\xabm\ c\x01\xf2\xbeK~\xdfW\x9dBt\xf8\x9b\xef\x15\xee\xcb\x95\xbe}\xf8\x05\x13\x10m\ ]#\x80\xa8jRJ7\xe8\xa1A7\x9f\x1d\xbeKN\xcf~\x0b\xb5\xdd\xc0r\xaatXN\x9d\x0e \ \x10\x89a\xf1\x9ec\xf4\xdd\xf1\x00\xd2V\x91jKQ\xd7.>\xfb\x1a\x11\xa50t\x15\ \xf1\x1bA\x14\xd9\xf2\\\xf9|\x10\xebL\x18\x86\x93a\x18^\x9c\x9a\x9a\xfa\xef\ \x83\x07\x0f\xbe\xae\x1f\xf2\xd8$\x0bb\x8bC\x80C\xc0D\xed\x82\x1d.\xfe\x93\ \xb9\xbc\xf8\xeb\xcd\x94\x98^4\xa0@}\xecK\xe8\xe0nl\xf52\x91?\xc0\xd0\x8e\ \x83HT])\xb2u\xbe\x1aL\xbeg\x11\x95\x05D#\xdf\xf3\xec\xe8\xc6M}\x88\xf4\x02\ \xb7\x02\xba}\xfb\xf6\x87O\x9e\xfa\x9d\xce\x15\xc8 \x1a\xef|\ \xf7\xa5\xff\xd8\xf1\xe9\x83g}\xdf\x1f\x84|\x99\xde\xdb\'(\xf6\x16\xb8z\xf6N\ \xaa\xd7\x86\t\xea\x85U\x05g\xd7\xf6\xfc\x1a\x85\xbe\xab:\xb4\xf34f`V\xb4\ \xab\x81q"\x15\x13\xe1\xf8\x81\xba]\rl\x12\xd9\xa9\x1b\'/YL\xb6\xf8\xb6\x88 \ "9\x11\xe9\x12\x91\x1a\x10\x88\xc8\xf6\xb1\xb1\xb1=7|\xb8\xfb\xfag\xbf\xfd\ \x0b{\xf6\xec\xfdU\xcf\x11c\xeb\x0b\x975\xacY\xb5\xf5\x9cP\xed",\xf7\xb3x\ \xf9\x16\t\xebE\t\xea]**8\xb9\x9az\xb9\x8a-\x8eL\xa9\xd3[\x86BU\xf1\x1b\x187\ V\xc7\x8b\xd5\xb8!^)P\xaf\x10\xb4\n\xec\x18w\xc2\xa81&\xefy\xde\x06\xd7u78\ \x8e\xb3\xc1\x18\xb3\xc1\x18\xb3a||\xfc7o\xf8x]D\xe4O\xff\xf8\x9b\x9b\xf7\ \xef\xbb\xfb\x0bw\xee\xde\xb5Yl\xe8\x12\x87\x06\x1b\x1a\xb1\xb1Q\x1b\x19!r v\ \xd4Z\x01\'FMd1\x8aq\xac\x8a\x89\xd4\xb8\x16\xe3\xc6\xea\xe6B\xeb\x16\x1bj\ \xfcx\x15\xd1m\xd6\xef\xfcZD\xdcb\xb18\x96\xcb\xe56z\x9e7\xe6\xba\xee&cL\xcf\ \xf1\xe3\xc7\xbf\xb4\xc2\x85\xdaV!9\xcb\xc5\xfd\xfb\xf7\xbf\xf0\x07\xbf\xf7\ \xbb\x0f\xef\xda\xb9\xb5D\x14:bCGl\x94\x00\xd8d\x17\xa3\xaa\x02\x91M\xf7GV\ \x8d\xb1\x88\x1b\xc7\x8eD\xd6\xed\nl\xe4DP\x07\xea\xab\x8a\xbf\x9e\xf5\xb3q\ \xea>%cL\xd5\x18S\x9b\x9b\x9b{\xfd\xcd7\xdf|\xff\xa6\xff\xa1y\xe4\x91G\xb6=\ \xf8\xe0\x83\x9f\x1f\x18\xe8\x8f\xc5F\xc6\xd8\x86C\x1c\x88\xd1\xd0AUT- j\xc5\ \xb1*nlM.\xb2\xe2\xc6*N&\xe2z\xa2o\x08\x90}=888\xdc\xd7\xd7\xb7\xb5X,n\xa9T*\ \x8bO?\xfd\xf4\x1f>\xfb\xec\xb3?\xbai\x00\x11\xe1\x81\x07\x1e\x18\xdd\xbf\ \x7f\xff\xde\xbd{\xf7\x16|\xdf\xcf\x9e=\xac\x1a\x847\xa9\xb9\xd3}\xae\x0b644\ \xd4\xdb\xd7\xd77<11\xb1p\xe2\xc4\x89\x7f\x7f\xf1\xc5\x17/\xc1:\xfe\xe4\x13\ \x11\xf3\xd4SO\xdd\xbfo\xdf\xbeV\x11\x9d\x00\xd7\xcd(\xd9\xb8^\xaf\x9b|>oo\ \x10\x0b\xcd\xb1\xaa211a\xce\x9c9s\xe5\xb5\xd7^{\x7frr2\xdb\x07\xae\xd8\x13\ \x7fhSU{\xe0\xc0\x81w\xab\xd5\xea\xed[\xb6l1\x03\x03\x03\x01I\xa6h5\xc6\xf5`\ \xd4Z\xab\x97.]\xca=\xff\xfc\xf3K\xc3\xc3\xc3fdd\xa4\xb8m\xdb6)\x95J\x91\xef\ \xfb\xd6\xf3<+":33\xe3\\\xb9r%\xaeT*K\xb3\xb3\xb3\x953g\xce\\\x9e\x9e\x9e^\ \xf1\xc8e\xcd+\xd0i?\xe6\xf6\x7f\xe6F\xbd]d\x9dV\x7f\x00\x00\x00\x00\ IEND\xaeB`\x82\xc3I\xef\r' phatch-0.2.7/phatch/actions/tamogen.py0000644000000000000000000004637211346363116017660 0ustar rootroot00000000000000# -*- coding: utf-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python. # Follows PEP8 from core import models from lib.reverse_translation import _t from lib.imtools import has_transparency OTHER_IMAGE = _t('Image') FOLDER = _t('Folder') FILL_TYPES = (OTHER_IMAGE, FOLDER) def init(): #lazily import global _tamogen import other.tamogen as _tamogen _tamogen.OTHER_IMAGE = OTHER_IMAGE _tamogen.FOLDER = FOLDER _tamogen.FILL_TYPES = FILL_TYPES def mosaic(image, fill_type, fill_image, fill_folder, columns, rows, canvas_width, canvas_height): if has_transparency(image): image = image.convert('RGBA') else: image = image.convert('RGB') return _tamogen.mosaic(image, fill_type, columns, rows, canvas_width, canvas_height, fill_image, fill_folder) class Action(models.Action): label = _t('Tamogen') author = 'Juho Vepsäläinen' email = 'bebraw@gmail.com' init = staticmethod(init) pil = staticmethod(mosaic) version = '0.1' tags = [_t('filter')] __doc__ = _t('Tone altering mosaic generator') def interface(self, fields): fields[_t('Fill Type')] = self.ChoiceField( FILL_TYPES[0], choices=FILL_TYPES) fields[_t('Fill Image')] = self.ReadFileField('') fields[_t('Fill Folder')] = self.FolderField( '/', choices=self.FOLDERS) fields[_t('Rows')] = self.PositiveNonZeroIntegerField(10) fields[_t('Columns')] = self.PositiveNonZeroIntegerField(10) fields[_t('Canvas Width')] = self.PixelField('100%', choices=self.PIXELS) fields[_t('Canvas Height')] = self.PixelField('100%', choices=self.PIXELS) def values(self, info): #pixel fields width, height = info['size'] # pass absolute reference for relative pixel values such as % return super(Action, self).values(info, pixel_fields={ 'Canvas Width': width, 'Canvas Height': height}) def get_relevant_field_labels(self): relevant = ['Fill Type', ] action = self.get_field_string('Fill Type') if action == OTHER_IMAGE: relevant.append('Fill Image') elif action == FOLDER: relevant.append('Fill Folder') relevant.extend(['Rows', 'Columns', 'Canvas Width', 'Canvas Height', ]) return relevant icon = \ 'x\xda\x01\x98\x15g\xea\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x02\x00\x00\x00\xd8`n\xd0\x00\x00\x00\x03sBIT\x08\x08\x08\xdb\ \xe1O\xe0\x00\x00\x15PIDATX\x85e\x98Y\x90\\\xe7u\xdfo\x7f\xdfw\x97\xde\xa7\ \xd7\xe9}V`0\x1b\x16\x82\x03\x80\x8bl\xd1,Q\xb4E\xd9\xa5\x92eS\xb6\xac*\xb9\ \\eW%\x95T\x94\x87\x94\x9fR~\xd1[$&\x11YQ\x14;^(\xd36I\x912I\x01\x04@\xec\ \x00\x81Y\x00\xcc\x00\x83\x19\xcc\xd2=k\xcf\xda\xfb]\xbe\xfd\xe6\xa1\x07\xa0\ \xac\xbc\xfe\xea\xdcs_\xce\xaf\xce\xff;\x1e\xf7\xbf\xfd\xa5C\xa9\xf7\xe4\x88\ \xb2V>\x7fg\x1a3~B\x89[\x8c\x1d\xe9\xebg\xfb{\xef,\xcc\x13!\xfe\xf8\xd4I\x93\ \xd2\xe4\xf0\xb0\xb2\xbd\xf5\xe1\xf44\xe6\xfc\xf7N\x9f4\tM\x98\x9e&\x9c\xbf\xfe\xf5g%&\xe0\xf9\xe3Ji\ \xe3\xf2\xd5)\x871w\xc3\x879{\xa9\xd0\xbfP\xdb?\xbf2O\x858\x9d\xee\xc2\x9c}9\ \xd7\xbfX\xdf?\xbf\xfa\x98\t\x01\xff\xec\xd4Q\x1dA\xcd\xc6\xff\xeb\xc2M\x04\ \x00\x13\x12\xd8\xae\n\x81F\xc8\x1b\xd3w\x11\x00L\xcaX8\xa0A\x18\xc4\xf8\x8d\ \x9b7\xdb$\x18\xf0k\x08\x06\x1c\xe7\xbf_\xbc\x8c\x00dR\x04\x00\xd0 \x0c:\xf8\ \x8d\x1b\x07}2I\xbf\x8e\x10\xb4\x9c\xff\xf3\x8bK*\x00T\x88\xea\x1eC\x00\xb6\ \x18}g\xee.\x04\x80\xbb\xd2\x87T\x15\xc0\x16\xa3\xff4\x7f\xafM\xe0\xef\x1f\ \x1d\xe8\xcb\xa5n\xcd/\xdf^-\xcf\xefV\r\x15)\xd8\x1d\x89\xc5/o\xae\xdf\xdb\ \xdf-6\x1a\x06B\x1d\x01\xdf\xb1\xce\xd4\xc5bq\xa2\\^\xac\xd6t\x84\xfc~\xdf\ \xd1L\xe6\xe2\xe3\xc5\x89\xf5\xf5\xc5\xbd}\x03!\x1f\x00\xc7S\xa9\x0b\xc5\xe2\ \xc4fy\xb1R3\x10\x8aF}\xf9\xae\xf4\xe4\xcc\xc2\xad\xe5\xf5\xb9\xed}\xaf\x86\ \xeaU\xd6\xd7\x11\x9b\xdcY\x7f\\\xdb\xdb0\x1b\x1a\x80:B\xbd\xe1\xd8\xd4\xee\ \xfa\xe3\xda^\xd9lh\x00z\xee\x7f\xff{B\xba!Cs\x18_\xdc\xafuu\x84v\x8b-\xe1\ \xbaAUu\x04_m63\xfe@,\xd1!\xa4\x1b\xd25\x87\xf3\xe5Z-\x1f\n\xa9\xe1\x80p\xdd\ \xa0\xae;\x8c\x15+\x95\\G\x07t\xf0\xd3\x9ab\xb5\x96\x0b\x87\x92=A!e\xc8\xab;\ \x94/\xecT\xbab\xe1+\xd7\xb7\xa5\xeb\xfaT\x8d\x08\xbee6\x13\xbe\x00P<\xc2u}H\ \xa5\x82oY\xcd\xb87\x80\x14Eib\x92\xf0{\xfb{\x0b\xa3\xdd\xc4\xc5\xf4\\\xb1e2\ \x1a5\x8c\xd3\xa9\xb4\x99\xa4-\xca\xb6\x14\xde\xa2$\xee\xf3\x1e\xcb\xe7Og\ \xb3MB\x1ea\xab\x89q\xcc\xef;\xd6\xdb}\x06\x17\x9a\x84\x12\xcf\xd9\x9c\xd9\x8c\x82\ \xbaC\x98\x94\xf9l\xe7\xcd\xe99\x85\t\x0f\x84MJ\xb9\x94\xc3\xd1\xd8\xc7\xa5"\ \x11B\x83\xa0A\x08\x93r0\xd9y~~\x1es\xaeA\xd8\xc0\x98K9\x98N_\x98y\xf8\x84\ \x10&\xe4Pg\xe7\xa7ss\x84s\r\xc0\xba\x8d\x99\x10\x9d\x85\xf4\xf8\xf8\x03\x85\ 1\x05A\x8bQ!eo8v}\xa3D\xa5@\x00Z\x8cr){\xc2\xb1\x1b\x9b%&\x84\n \x1aD\x1d\ \x96\xcb\x14\xea\x7f!\x94y\xe7\xca4\x11\xe2K\x89\x9c\xc5X8\x9az\xd5\x85\xff\ \xb24O\x84\xf8\xd6sg,J\x95B\xdf+\xaa\xef\x9fg\xee\x11\xce\xbf\xfbW\xff\x89Y\ \x8er\xe6\xe5\xafl/^\xfc\xf9G\x98\x92W_\xfb\xaa\x89\xb1\xf2\xc2\xf3_-\x96>\ \xbe|\x1536\x1a\xec\xb5=Ta\xbd\x87\xa3\xdaO?\x9d\xa4\x9c\xf7\'{0g=\xc9>\xa1\ \x06?+\xcd2)\xce\xe4\xfa0g\x872\x87zD\ \x84x\xb9o\xccbtx\xe0\xa8\xb3\xbb\xf9\xcf\xb3\xf7\x08\xe7\'\x9e\xf9M\x9b\x92\ /\x8f\x8c\x95\xca\xab\xbf\xb8\x7f\x8br\xfe\xfd\xff\xf0-\xd3v:^yY\x99\x7f\xfc\ \xf1\xc7\xe70\xa5\xbeu\xee0\xfa\xd2\xa1\x91\xc5\xbd\xadO\xe7\xeeS\xc1\xff\ \xf2\x0f\xbelb\xd2\xf9\xdc)\xa5\xb4\xfa\xc1\xf5[\x98\xb1\xdf=y\xdc\xc4\xa4\ \xf3\xb9\xb16!\x8c\xc1?\x1a\x19\xd4 \x08`\xf2\xc3\xcf\'\x10\x00L\n/R5\x00u\ \x82\x7f4q\xe0\x9dO\x0f\xaa\x00A\xe2\xfc\x8f\xf1k\xc8\x03\x98\x94\xc8\x1fV!\ \xb2\x1d\xfb\xaf\xaf\x9fE\x00r!\xf2=I]U}\xcd\xd6\x8f\xff\xf6g\x08A\xc6yk\xbb\ \xa9Bd\x12\xfc\xce\xd4u\x08\x80\x90\xa2\'\xd3\xa1!\x14\xb4\xec\x1f}t\xb6\xbd\ \x13C^\xa3M\xde\xf8\xe8,\x02\x90\t\x01\xbf~\xa8\xefhg\xf2biujkg\xa9V\xd7!\ \xd4!\x1aM&.\xb5\xbd\xab\xd7u\x08\r\xd5?\x92L_Y]\xba\xbf\xb3Y\xacUt\x84\x80/\ 8\x90\xca\xddZ~4\xbb\xb9\xb2Z\xd9\xd5\x91\x9a\xce\xc7\x86\x0e\xf5_\xb931\xfe\ h\xfe\xf1\xfa\x86\xa1k\xe6\x9e\xd9\x97\xe8\x9c\\[\x9e\xdf\xdd\xdclTT\x84\xf2\ \xc9\xd0\xb1\xae\xfc\xc5\x87\xb3\x13\xc5\x95\xc5\xed\x1d]U\xfd\xbav\xbc\x90\ \xbf\xf0`v\xa2\xb8\xb2\xb4\xb3k\xa8\xc8s\xf9;\x7f(\\\x19\xd24\x87\xf3b\xbd\ \x91\x0b\x06\x85P\x84t\x83\x9a\x8a\xb9(5\x1a\xd9`\xc0\x85Q)e@\xd31\xe7+\x8dj\ &\x18n\x05\xe3\xc2\x95~\xdd \x8cm\xd4\xf6:C\x91\x91\x17z\x85\x14!\x9f\xdf!di\ \xb3\x9cO&\xa6.L\x0bW\xfaT\x9d\n^nT\x13\x81\xf0\xa9\x91\xa4\x90n\xd0k8\x94\ \x16w\xf7r\xb1\xa8\x06\xa1\x902\xe85\x1c\xca\x8a\xbb{\xb9h\x04)\x8a\xd2",\ \xe6\xf5\x8e\xe5\xb2\xa7(mQz\xb7\xbcg2\x1a\xf3\x1ag\xb2\x99\x93\xb4\xd3\xa4l\ \xa6*Z\x94D\xbc\xbe\xd3\xd9\xaegh\xce\xa4\xe4s\xcc-\x82;|\x81g\n\xfd\x16\xe9\ 1\tV\x14\xa5i\xd9\xf1px\xe8\xf8\xe8I\xcb\xc6\x96=ua\xda\xa64l\xf8F3\x85\xc1\ \xce\x9cM\x89\xa2\xc8\x16vbA\xff\x89\xc3C\xa71n9\xf8\xd1f\xb9\xe9\xe0X0p\xfc\ p\xffi\xa7\xa7\x851h\x12\xc2\xa5\x1cM&>YX\xc2\\\xa8\x00\xb6\xc9p"\xfe\xd1\ \xd22\x11B\x85\xa0E0\x97r8\x91\xfad\xf1\x11\x11\\\x85\xd0$\x8e\x90\xe2pg\xee\ \xe2\xa3{\x84s\x15\xa2\x86ir.\xfa\x0f\xf5]\xbetMR\xaa\xa9\xc8\xa4XH\xd1\x1bK\ ]_\x9e\xa3\x82#\x08\x1b\x8e\xc3\x84\x1c\xce\xe7?\x9d\xbcK\x18\xd3\x10l\xd8\ \x0e\x97b(\x9f;?q\x97p\xae!\x84\xce\xe4\x0b\x16e0\x9b\xff\x1a\xd4\xdey8K\xb8\ 8\x1a\xec\xb59\x0b\xa0\xae\xb1\xa8\xf1\xde\x83GTr({\x89\xa0\xf7\x14\xc32S?\ \x98\xbf\xc7]\xfeW\x7f\xf2\x8aE\xc8\xc0H\xd7\xe1\x88\xe7\x9d\x89\xdb\x84\xf3\ W\xf5a\x93r\xa5h\xbe\xe8\x86\xdf\xfe\xdf\xffB9;\xda\xd1\xe9p:\x12\x8c\xea\ \xe9\xeeO\x17\x1e2\xc9\xff\xcb\xf7^51Q\x8e\x1e\xfajP{\xff\xea-\xc2\xf8\xd7O\ \x1ek\x93W\x02\x07\x04~{x\xe8`\x97\xdd\x1eoO>\x10\x9a\n\x01!\xe4\xa7\x0f\' \ \xf00)M\xa2"\x00mN\xce\xafO\x00\x8fG\xb8r\xa0+\xae!\xa89\xf6\x1b\x97\xce#\ \x08\x98\x10\x01M\xd7 R\x1d\xfb\x8d+\xe7\xdb\xdeQ"T\x08M\x82\xdf\x99\xb9\x8d\ \x00\xe0R\xf6\x14\xe2\x1aB!\xcb\xfe\xe1\x87g\x11\x84\\\x88\x80\xd7\xf85\x02_\ ;\xd4?\x9aL^ZY\x9d\xda\xde^\xae\xd5\r\x04=R\x1d\x88$om\xad>\xd8\xdfYm\xd5t\ \x80,\xaaf\x03\x89\xb9\xda\xeajkg\xd7\xa9\xab\x00\xf6f;F\xd2\xb9\xcb\x0bs\ \xf7\xd6W\x8b{\xbb\xba\xaa\xfaTm8\x93\xbd\xb28\x7foc\xb5\xb8\xbf\xab#\x95Q\ \xd1\x17MN\x96K\x8f\xf7\xb77\x9a5\r\xc2\\\xb6\xe3XW\xfe\xc2\xcc\xec\xe4\xf2\ \xca\xe2\xf6\xae\xae"\xbf\xae\xfd\x1a\xf1\\\xfc\xe3\xd7\x85\xeb\x065\xcdy\ \xb2\xcb\xaau \\\xe9G\x1a\x11|\xbd\xd5H\xf9\x833;\x1e\xe9J\x03jL\xf2}\xdc\ \x88\xe8\xc1W\xbeT\x10\xf2`O\xadT\xf7\xb3\xe1\x08T<\xc2\x95A\xdd\xc0\x8c\xae\ T+\x99pGic\xff\x8b|\xd8\xac\'\xfc\xc1g\x9f\xeb\x92O\x9d\xda\xd9\xcb\xc5"\x08\ B!e\xe8W\xc9\xc1.\xf3z\x9f\xcbe[\x94\xb6(\xbdR\xdf\xb7\x18\xed\xd0\xbd\xcftf\ \x8f2j1:\xb3\xb3O\x04\r\xa8\xde\xbep\x86\x08\x869U\x14\xa5Ep\xd4\x1f8\xd3\ \xd3\xd7"\xd8\xc4d\xae\xbci\x12\x1c\xf5\xf9Ow\x1f9Ip\x8b\x90\xd2\xc6\xbe\xcd\ hH\xf7\x8et\xe6\xec\x04\xb5\x19Q\x14\xa5\xe9\xe0X \xf0\xcc\xe8\xa1\xd3\xfdN\ \xd3\xc1\xb3\x1b\xe5\x96\x83\xe3\xc1\xc03\x03\x07\xe4`\x97\x8d&\x13\xbfXX$\\\ h\x00\xb6(\xe1R\x0eD\x12\x17W\x17\xa9\x10*\x80\x0e\'\xc2\x95Y\x7f\xfc\xfe\ \xfe\x12\x93\x1c\x02\xd0t\x1c.\xe4p:\xfb\xf1\x83\xfb\x94s\r\xc1&~B\x1eN\x13\ \xce5\x08-J\x84\x94\xbd\xd1\xc4\xf5\x95\x05*8\x02\xb0i;\\\x88\x91\xae\xdc\ \xb9\xf1)\xcc\xb8\x86\xd0\x01)|A\xd0H"k3\xa6G2/\x15\xd0\xbbs\xb3D\x08\xdd{F\ \x08b\xa2c\xd1\x8e\xdc\xdf-Nq\xc9\xc7\xba\xd2D\xb0\xe7\xb2\xa9T\x1d\\[\x9fcB\ \xfc\xc7\xc4I\x93\xd2@\x87\xef\x9b\xdd\xb9\xb3\xf7nc\xce\x07\xa3\xbd\x96\xa4\ a\xac\xbe\xe0O}p\xfd\x16\x11\xe2\x9b\xbfq\xc2"\xf4\xc4\xb1c\xc77S\xefMM\x11\ \xce\xff\xdd\xeb\xbf\xa7XXy\xfe\xc5W\x9f\xcf^\xf9\xe02\xa6\xeck\xdf~^\xb1\ \xb1r\xe6\xc5W_\xc8]\xf9\xe0\x12&\x0c~\xf3\xc8\x90\n\xa1B\xf0\x9b\x93\xe3\ \x07N\xb1\x10\x02\xc8b\xce\xbf.\\\x86\x00\nW\xf8\x90@\x00Z\x94\xfcbq\x12z\ \x80p\xc5h"\xa8#d`\xe7\xad\x1b\xd7U\x00\x98\x10L\xaa\x1a\x84\x8c\xe0\x9f\xdc\ \xbb\t\x01\xe0R\x86"~\rA\xc5q\xde\xbcr\xa5\x9d3\x0f\xf5\'4M\x05\xd4\xfc\xeb\ \x9f\xbc\xaf"H\x19O\xfa\xbd\xba\x8a\x00\xb3\xfe\xe6\'\xef#\x04\x19\x17\xf0\ \x95\xde\xbe\xe1D\xe2\xea\xda\xea\xf4\xeeN\xa9^\xd3!\xb2\x99\xbf\x10N?\xd8](\ \xd67v\xcc}\x04\x91\x01eW81\xb3\xbbV\xac\xefn\x9bu\x15\xa2\x81\xa8\xffpg\xea\ \xc6\xf2\xf2\x9d\xad\xcd\xc7\xd5\x8a\x81\x10w\xd1\x91X\xe7\xcd\x8d\xe2\x83\ \xdd\xad\xd5FUG(\x10\xf2\x0e\xa53\xd7\x16\x17\xa776J\x95\x8a\xae\xa2LW4w\xa4\ {\xea\xe6\xfd[\x0f\x97\xe6V\xca^]\xf3\xfb\x8c\xec`\xcf\xd4\x8d\xfb\xb7\x1e,\ \xce\xadl\x19\xba\xea\xf9\xf0[\xaf\x0by\x90\x18W\x9b\xf5L 8\xb3\x1b\x93\xae4\ T\x83\t\xb6kU\xa2\xde\x0e\xd5S\x95\xael\'\xbd]\xab\x11\xf5\x06\xbfq\xf8\xe0\ \xa5f3\xbeT\xab\x15B\xa1RS\n\xd7\r\xa8\x1a\x16|\xbdYK\xf9C\xfeL@\xb82\xa0\ \xeb\x98\xf1\xd5j%\x13\x0e\x8f\xbc\xd4#\x84\x0c\x07\xbc6\xa6\x0b\xeb;]\xa9\ \x98\xa6"!d(\xe0u0]X\xdf\xeeJ\xc5\x91\xa2(&\xa3\x11\xaf1\x96)\x9c\xa0)\x93\ \xd2\x99]\xe9p\x12\xd0\xfc\x03\x89n\'\x92w8\xd9jV1\xa3A\xcd;\x10\xcd8\x11\ \x8a9U\x14\xde\xa4$\xee\xf3\x1e\xcew\x1d\xa7\x84\x13Rj\x96-J"\x86\xf7d:o\xd2\ \xac\xc5\xc8\x9ab\x99\x84D|\xfe\xb1\xee\xee\x138o\x12\xa2(J\xc3r\x12\x91`\ \xee\xe4\xe0a\xd3Q,\xe7\xf1\xd2z\xc3\xb2\xdb\xe4\x90yX\xb1\x9c\x83]6\x14O\ \x9c]^\xa2Bh\x10\xda\x1c\x0bW\x16\xc2\xe9\x89\xad\x87Lr\x04\xa0\xc3\x88p\xdd\ B(>\xbe\xb5\xc4\xa4\x80\x00\xd61aBv\'S\xd7\xe6\x1f)\x9c#\x08[\x94pW\x0e\xc4:\ \xcf\x17\xe7\xa9\xe0*\x80M\x8c\xb9\x90\x83\xe9\xd4\xd9\x87\x0f\t\xe7*\x84\ \xf5\x96\xcd\xb8H\x0etO\x9c\xbf\xadP\xa6\xa8\xa8\xde\xb2\x18\x17\x89#\xdd\ \x93\xe7?o\x13\xf4\xec\xc0\x11\x9b\xd2\xce\xa1\xe1\xafF"\xef\xcfL\x13\xc1\ \xa3\xda!"\xa8\x0fD\x0b\x81\x9ek+\xd3\\\xf2\xe3\xf1\x02\x11,\x08\x0b=A\xe3\ \xfa\xea,\x97\xe2\xbf\x9e\xee\xb7\x18U<\xc1g#\xb9\xff;5C\x84x\xe9\xe5/\xdb\ \x94\xf4\x1e\x7f&\xba\x91}wr\x9cr\xfe\xf2\xa1>\x8b\xd2tw\xcfo\xab\xda{SS\x94\ \xf3\xeft?ky\x88B\xf4\xb1d\xfe\xbd\x7f\xb8\x80\x19\x7f\xed\xe4\xa8\xe9\x12\ \xc5\xd6\x9eM\xe4\xde\xfd\xbb\xf3\x84q\xf8\x8d\xd1\xa3*\x84\x12;o\xdd\xba\ \x01!`BVZ\x1a\xf2@\x9b\xe3K\xab7\xa1\x07\x08Wz!\x80\x00\xda\x1c_\\\x1d\x07\ \x1e \\1\x10\xd1T\x08!!\xff\xf3\xfe8\x04\x80K\xe1\x8bET\x88\\\xc7y\xf3\xb3\ \x0b\xed\x9d\xe8\xd7\x90\x06\xa1\xeb8o]\xbd\xd2N\x9e\x89\xb8_C0`:?\xfa\xb0\ \xbd\x01e\xd0\xd0\x0f2\xe4\x87\x17 \x00\\H\xf8\x95\xc3\x03\x83\x9d\xa9\xeb\ \xc5\xe2\xccV\xb9T\xab\xea\x10\xd5M5\x13\xec\\\xa8\x16\xd7[\xe5=\xa7\xaa\x02\ d@O6\x98x\\]]k\xed\xec\xd9u\x15\xa0\x9e\x906\x1cK\\\xddX\xbd\xbf\xb7]l\xd6u\ \x08\x8d\x8e\xf0P&{\xed\xf1\xfc\xcc\xfaZi\x7f_G\xc8\x8b\xe0`&s\xfd\xa9e\x08E\ "\xde\xa3]\xb9\x8b3s\x93\xcbk\x8b[{\x86\xaa\xfat\xedhw\xee\xe2\xf4\xfc\xe4\ \xf2\xda\xd2\xf6\x9e\xa1\xa9\x9e\xf7\xbe\xfb=\xe9\xba~M\xc3\x9c\xaf\xd5j\xe9\ P\xe8\xc6\x9cG\xbaRG:\x13\xbc\xea\xd4\xc2FH\xf7\x10\xe9\xba\x06\xd4\xa8\xe4\ \x15\xa7\xdea\x04\xbf\x92\x87\xf2W\xdcL\x07\x82JWFH\x190\x0c\xcc\xd8Ze?\xdd\ \xd1\x01%\x17R\x06\x0c\x1d3\xb6V\xad\xa6\xc3\xe1\xce\xbc_J7\xe8\xd5\x1d\xca\ \x8a;\xfb\xb9X\x04\x01\xf041\x96\xdaDQ\x14\x93\x90\x88\xd7;\x96/\x98\x19bRzc\ n\x87\x08\xeaW}=\xd1<\x11Y\xccI\xc5Z\xc3\x9c\xfaUc\xa0\xa3@x\n\x0b\xaa(\xd5\ \x16\xa3\x11\xc3{*\x975i\xdad\xf4\xa1\xa2X\x04G\xfd\xfe\xb1\x9e^\x13w\x99\ \x04?\xdeX5\t\x89\xf8}\xcfvu[\x84\x98\x84T\x94F\xd3\xc1\xb1\xa0\xff\xd9\x81\ \xbeS\xfd\xb8\xe5\xe0\xd9\xf5\xad\x96Cb\xc1\xc0\xd8\x91\xbeS\x0en9\x18\xb4\ \x08\xe1R\x1eIv\x9e\x9b\x9f#B\xa8\x10:\x9c\x08)\xd3\x81\xce\x07{\xf3\xbcm\ \x19\'\xd2\x95\x99@bfo\x89K\x81<\xb0E)\x97r(\x16\xffei\x91\x08\xae\x02\xd0\ \xc2\x0e\x97r0\x93=\xfb`\x9ar\xaeA\xd4\xc2\x98K1\x98J\x9f\x9b=\xb0\xacic.\ \xc4h!\xfb\xcb\xf1\xfb\x84q\r\xa1F\x9bte>\xb9s@\xd0\xa9\xc1\x01\x9b\x92\xdc\ \xc8\xe0oGC\xefO\xdd%\x9cG\xb9N\x05\xf7[2\xe7\x86\'\x8b\x93\xdc\x15\xbf\xd3\ \xdb\x8f\x05\x1b\xeb\x88&\xa0\xb8\xb95\xcf\xa4\xf8\xfe\xef\x8c\xb4(\x0b\r\ \xf5\xfca\xda\xfb\xcb\x99\x87X\xf0\xef\xfe\xc5\x1f)\x0eV~\xeb\xc5\xef,\x1c\ \xba~\xee\x92\xc3\xd8\x99\xde\xbcMh\xb6\'\xfbu\xcd\xf3\xee\xd4=*\xf8\x11\x10\ \xf50\x89A3S\xf1\xbey\xeb"\x15\xe2\xf9l\xb7\xc2\x85\xe3ie*\xc6\x9b7/R\xc9\ \xe17\x8e\x9fP!\x92\x8e\xf3\xd6\xd5+\xed9/\x97\x19\x04\x00\x0bzko\x1ax\xdf\x9d\xcd\xd5m\xb3yog\ \xb3\x86\xed]\xdb\x8cy\xfdw\xcak\xdbV\xeb\xfeN\xb9\x86\x1d\xcf\xbb\x7f\xfe\ \xe7\xd2u\xfd\xbaN\x18[\xabVS\xe1\xf0\xd9\xcf\xb6\xa5"u\xa01\xc9\xeb\xb4\x15\ R\xfd]Q]\xba\xd2@\x1a\x13|\xd7iF\x8d\xc0\xef\x8f\xf8\x85\xeb\xb6_sK\xb5z!\ \x14\x8c\x9d\x19\xe5R\x86}>\x9b\x90\x85\xf2Nw26?\xb7&\\7\xa0\x7faYe\xbd!]\ \xd9\xce\x90\xe5V3\xe9\x0b\x00\x8fG\xba\xae\x0f\xa9D\x88\xb2\xd9H\xf8\x02HQ\ \x14\x13\x93\x88\xcf7\xd6\xd5e\x12b\x12rV\xd9\xa6\x82\xf9\xa0\x91\x0bd\xa9dD\ 2E1\x1d\xc1\x02\xaaq8\x9a\xef\x15\x14s\xa6(N\x93\xd0\xb8\xd7{$\x9f;\x91\xa1\ \x94\x925Ei\xd8N2\x14J\x8f\x0e\xf6\xd9\xb6b;\xf3sk&!Q\x9fo\xac\xbb\xcb$\xc4\ \xc4\xe4\xfaz\xc3b,\xac{\x8f&\xd3v\x9cY\x8c\x16k\x15\x8b\xd1\x90n\x8c&36\xeb\ \xb49\x05-L\xb8\x14GR\xe9s\xb3\xb3m\x17\x88\xa0\xd2\x95I#\xfa\xb8\xb9\xc2]\ \x01=\xc0\xe6DJ\x99\x0f\xc4\'\xf7\x8aL\n\x08\xdaWG\xd1\x9bL\\\x9d_P\x04\xd7 \ \xacY6\xe3"\xda\xd7u\xf7\xda\xe7\ne\nB-L\xb8\x90G\xd2\xa9\xb3\x0fg\xdb\xa9\ \xb2\x9d!\xfb"\xb1\xabk\xcb\xed,jQ*\xa4\xec\x8f\xc4\xaf\xad-\xb7\xaf\x8e(Gu\ \x87\x83h\xc5\x1d\xf1D>\xb8t\x87J\xfe\xa7\xcf\xf58\x9c\xbd\xdc\xdd\xfb\xb8\ \x12\xd7\ \xedp\xd6\xb1\x07\x86=\xb1w?\x9b\xa0\x82\xbf\x90\xed\xb19\x1b\x89\xa75\x80\ \xda}^\xc8\xf5\xd8\x9c\x8d&\xd2:< \xf0\x95\xde#*\x84-J~\xf6p\xaa\x9d\xf4\xbc\ H\xfd\x82\xb4/\x81\x9a\xda\xb6\xe3g\xb3S\x07\x17xUko\xf8\xb7\x1fNA\xf0\xe4Z\ \x08\xc0\xaf\x18$\xda\xf7\xc3\x83\x9a\xb6S\xaa\xaa\x02hR\xf2\xf6\xec\xc1\xbf\ |\xda\xaf\x13\xf8\xa5|o\x7f$>\xb1\xb5>\xbf\xbf\xbb\xd1\xaak\x10\x19\x08\xf5G\ \x12\x13[k\xf3\x95\xdd\x8dVC\x83\xc8\x8bP\x7f$\xfe\x05\x01\xc8P\xd5C\x91\xf8\ \xf8\xc1W\r\r"\x03\xa9\xfd\xd1\xf8xy}\xbe\xb2\xbb\xd1\xac\x1f\x90v\xe7\xa7\ \x04\x1e\xf4y\\\xd9]?\xf8\xea\xd7\x89\xe7\xadW\xbf)\\\xb7\xfd\nk\xcf9\xf4\ \x00\xe9\xba>U%\xfc\xc9\xe4\x03\xd0\xb6\x83\n\xbe\xd9j&}\x01\x04\x81\x94\xae\ O=\xb0#\xe9\x0b@\xd0\xfe\xaa]\xf3o\x08\xe1\xbc]\x03\x9ev~b\xd9\x93\x9a/\x08R\ \x14\xc5f4\xac\x1b\xa3\xc9|{\xce\x8b\xb5\xea\xc1\xe4\xa7\x0f&\xbfT\xaf\xdaO\ \xec\x18\x8a3\x8b\xd1\x95F\xd5\xe64l\x18G\x93\x19\x9buZ\x8c\x96\x1a\xd5v\x9f\ \xa3\xc9\xfcP6\ \xa8\xa9X)\x08m\xc14Tm\xd463ij\x1b\xdb\x8e\xf5\xc9"\xf8b\x90J)\xd8\xfa\xd5\ \x87>(-\n\x15\xa1"E\xacTQ\x0c(%\xda\xfa\xf1\xa2\xf8\x81H^\x14Vl\x1b\xeb\xee,\ !\xb0\xd5j\x97\xd2*V\xec\x07a\xa3\xe9f\xe3\xcc\xf1!\xbbq2\x99]6\xb0\n\x85\ \xf9=\xcd=s\xce\xff\xfe/3\xf7\x9e\x19\x88\x89\x89\x89\x89\x89\x89\x89\x89\ \xb9j\x91F\t\xd9\xb6\xbd\x0c8\x0ct\xa8\xea`6\x9b}\xaeQ\xda\xb50\x8d\x12R\xd5\ \x83@\x1fp\x93\x88\xec\xb5,k}\xa3\xb4k\xd1\xb0\x05\x88\xc8\x1d\xb3\x84\x8dY\ \xd1(\xedZ4l\x01@"8P\xd5FjW\xe5\x7f\x99\xe4\xbf\xe4\xaa_@ST\xb0\xb3\xb3\xb3u\ \xc1\x82\x05\x8f\x00\x1b\x80\xa5"rYU\x87\x80C\x1d\x1d\x1d~>\x9f\xdf""\x8b\ \x8c1\x1f\xa6\xd3\xe9\xdf\xab\x89\x977\xf2c"r\xb3\xaa\x8e\x8bHND\x0ee2\x99S\ \xb5L\xd9\xb6}\xa3\x88lW\xd5U\xc0\x12U\xbd,"gU\xf5\xe8\xe4\xe4\xe4g\xb9\\\ \xaeT\xc9\x9ds\x8c\xda\xb6\xbd\x06\xf8\x18X\x1c\xa1\xfd-p\x06\xd8V\x1e\x9fK&\ \x93\xb7\x1f;vl\xdc\xb6\xed\xb3\xc0\xd2@\xeei`Y\xc4\x1c\x9e\x88\x1c\xccd2\ \xcf\x00\x1a1\xffn\xe0\x05\xa0\xad\xca\xfa~jjj\xba\xf7\xc4\x89\x13\xbfB\xe8\ \x15\xea\xee\xee^\x0b|]\xc5<\xc0\xfa\x80y\x80\xa5\x13\x13\x13\xbdUr;#\xcc\ \x03$Tu\x8feY\x87\xc27,\xcb:\x08\x1c\xa8a\x1e`\xb9\xe7y\xcfV\x063\x0bp\x1c\'\ i\x8c\x19\x04\xae\xa9Q<\x07cLr>\xf9\x15Dd{OO\xcf\x03\x95qOO\xcff\x11y\xaa\ \x9eZU\xbd\xb6r=\xb3\x07\n\x85\xc26\x11\xb95\x94{\x9a\xe9\xeez\x05\xe8\x07\ \xd6\xcc\xd3\xe7\x9f\xc0\xdb@\x1ep\xca\x1aA#\xfb\x81\xcf\xcb\xd7\x07\xc2\xc5\ "\xf2\x89\xaa~\x054\x8b\xc8FU\xdd\x0c\x8c\xf9\xbe\xff\xea\x9c\x05\x88\xc8C\ \xa1\xfa3---k\x86\x87\x87/\x03tuu\xbd\x91L&\x87\x80Mu\x9a\xf7\x8c1\x9b\xd2\ \xe9t\xba<\x1e\xb0m{\x1f\xf0| g\xc5\xea\xd5\xabWy\x9e\x97\x00f5>U\xdd\xeb\ \xba\xee\xfe@\xe8u\xdb\xb6\x9b]\xd7\xf5\x00\xbf\x12\x0c\xee\x81u!\x03\xafT\ \xcc\x03\xe4r\xb9\x92\xef\xfb\xfb\xea4\x8f\x88|\x1e0\x0f@KK\xcbK@!\x18\xf3}\ \xff.\x11\t\xcf}\xa1\xbd\xbd\xfd\xe5\xb0\xa6\xeb\xbaSA\xf33\x0b\xe8\xed\xed]\ \x08\xccz\x97U5\x1b\x16(\x95Jsb\xd5\xf0}\xdf\r\xc7\x86\x87\x87\xaf\x00\'C\ \xf3,\x16\x91%\xa1\xd4\x91T*\xf5w=\xf3\x18\x00\xcf\xf3\xa2N\x8b\xa9:\xbdF""\ \x93u\xa66\xfb\xbe\x1f\xd9\x8f\xea\xc1\x00\xb8\xae{\x11(\x86\xeeY\xe1\xe4\ \xb6\xb6\xb6\x95\xf3\xd0\xb6\xc3\x01\xc7q\x92@\xf8\xa08/"\xbf\x85b+\xfb\xfb\ \xfb\x13\xd4Ap\x0f\xccz_E\xe4\xe9\xae\xae\xae\x99\xe3\xaa,8\x9fo\xfc\x07m\ \xdb\x9e\xf5\x85Z(\x14v\x01\xd7\x87\xf2\xbe3\xc6\x1c\x0f\xc5\x16\xe5\xf3\xf9\ \'\xc3\x82\x8e\xe34\x85<\xff\xdbhl\xdb\xde\t\x0c\x84jFU\xf5M@Ed\x0bpO\x84\ \xd1\xfb]\xd7\xfd2\xa2\x13\x03\xfc\x01\xbc\xa6\xaa\xbf\x88\xc8F`\x07\xb3\x9b\ \xdbi\xd7uoq\x1c\xc7\x8c\x8f\x8f\xff\xc0t\xf3\xab\xe0\x01\x03"r\xdc\xf7\xfdv\ \x11\xd9\x00\xdc\x07Lx\x9e\xb7idd\xe4g\x08\x1c\xa3SSSG\x9a\x9b\x9bw\x03\x1d\ \x01\x91;E\xe4\xad\x08\xd3\xf5\xb2\x08\xd8/\x12\xfd\xe3W\xee\x03~*\x95\xf2-\ \xcb\xda\'"\xef\x05n\'\x80]\xaa\xba+T\x7fC"\x91\xd8\x03<\x0e\x81\xc71::\xfa\ \x97\x88\xec\x00\xea\xdd|\x00\x18c*\xf9\xe3\xf3\xa9\x03>\xcaf\xb3\xefT\x06\ \xd9l\xf6}U\x1d\xac\xb3\xf6\xe2\xcc\xfc\xc1h&\x93I1\xfd\x98.EU\xa9j\x1ax7\ \x10:o\x8c\xf9\xbe|\xfdi ~\x81\xe9\x865\xe7c\xad\xac3X,\x16\xb7\x86\xe3\xd9l\ \xf6Q\xe0E\xa04\xb7j\xa6v\xa8\x9c\x03T\xf9\xa9\xef\xeb\xeb\xbb\xaeX,>\x01\ \xdc\r,\x01.\x89\xc8\xd0\xd8\xd8\xd8@kk\xab&\x93\xc9\x1d\xc0B\xe0\x88\xeb\ \xba\xe7\xcae\xc6\xb2\xac\x87Ed\xb9\x88|\x90\xc9dNuww\xaf\x15\x91\x9d\xc6\ \x98\xdb|\xdf/\x89\xc8I\xe0\xb0\xeb\xbaG\xab\x19\x04\xb0,\xab\xd3\x18\xb3UU\ \xd7\x95\xe79\x0f\xfch\x8c\xf9"\x9dN\x7fS\xab6&&&&&&&&\xe6*\xe2\x1f\xc2\xaa\ \x87\xf7\xcf\x0c\x08\xce\x00\x00\x00\x00IEND\xaeB`\x82\xf0WJ\xc7' phatch-0.2.7/phatch/actions/time_shift.py0000644000000000000000000003071611346363116020354 0ustar rootroot00000000000000# -*- coding: utf-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is designed by Alexandre Moore (http://nuovext.pwsp.net/). # Follows PEP8 import time from datetime import datetime from core import ct, models from lib.metadata import DateTime from lib.reverse_translation import _t OPTIONS = [_t('Exif time'), _t('File time'), _t('Exif and file')] def init(): global relativedelta from other.relativedelta import relativedelta def get_date(info): return datetime( year=info[_t('year')], month=info[_t('month')], day=info[_t('day')], hour=info[_t('hour')], minute=info[_t('minute')], second=info[_t('second')]) class Action(models.Action): label = _t('Time Shift') author = 'Juho Vepsäläinen' email = 'bebraw@gmail.com' version = '0.2' init = staticmethod(init) tags = [_t('metadata')] __doc__ = _t('Shift time values of tags') metadata = ['Exif_Image_DateTime', 'year', 'month', 'day', 'hour', 'minute', 'second'] # only specified for reading def interface(self, fields): fields[_t('Change')] = self.ChoiceField(OPTIONS[2], choices=OPTIONS) fields[_t('Use exif datetime')] = self.BooleanField(True) fields[_t('Seconds')] = self.IntegerField(0) fields[_t('Minutes')] = self.IntegerField(0) fields[_t('Hours')] = self.IntegerField(0) fields[_t('Days')] = self.IntegerField(0) fields[_t('Months')] = self.IntegerField(0) fields[_t('Years')] = self.IntegerField(0) def apply(self, photo, setting, cache): info = photo.info method = self.get_field('Change', info) date_delta = self._construct_date_delta(photo) if method == OPTIONS[1] or not self.get_field('Use exif datetime'): new_date = get_date(info) + date_delta else: try: new_date = info['Exif_Image_DateTime'].datetime + date_delta except KeyError: new_date = get_date(info) + date_delta if method in (OPTIONS[1], OPTIONS[2]): try: photo.modify_date = time.mktime(new_date.timetuple()) except OverflowError: raise Exception( _('Sorry, time shift can only handle '\ 'dates before 2038-1-19')) new_date = DateTime(new_date) if method in (OPTIONS[0], OPTIONS[2]): info['Exif_Image_DateTime'] = new_date info['Exif_Photo_DateTimeOriginal'] = new_date info['Exif_Photo_DateTimeDigitized'] = new_date return photo def get_relevant_field_labels(self): relevant = ['Change', 'Seconds', 'Minutes', 'Hours', 'Days', 'Months', 'Years'] if self.get_field_string('Change') == OPTIONS[2]: relevant.append('Use exif datetime') return relevant def _construct_date_delta(self, photo): info = photo.info second_delta = self.get_field('Seconds', info) minute_delta = self.get_field('Minutes', info) hour_delta = self.get_field('Hours', info) day_delta = self.get_field('Days', info) month_delta = self.get_field('Months', info) year_delta = self.get_field('Years', info) return relativedelta( years=year_delta, months=month_delta, days=day_delta, hours=hour_delta, minutes=minute_delta, seconds=second_delta) icon = \ 'x\xda\x01^\x0b\xa1\xf4\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0b\x15IDATh\x81\xed\x9a{lS\xd7\x1d\xc7\xbf\xf7\xdc\ \x87_q\xeck;\xb1\xd3<\xec\xbc\x80\x8e\x04\x92\n\xe8\\\xa0*[!\xb4T\n\xd3\xd6\ \x0eU\xac\xd2\xaan\xeb\xfaO\xa9*\xb5\xaa\x86\xda?\x8a\xd4\x7f\xdaj\xffN\xea(\ \x9b\xa0\x12\x12]\xa7\t\xba\xc2DT\xda\x82(\nKKy\xd5$NB\x9c\xe1<\xec$\x8e\x1f\ \xd7\xf7q\xce\xfe\x88\x1d\x9c\xc4\t\x0e\x84I\x93\xfa\x95~\xbaW\xd7\xbf{\xfc\ \xfd\x9cs\xcf\xb9\xe7\x1c\x1b\xf8?\x17w\x9f\xca4\x01p\x02p\xe4\xaeM\x01\x98\ \x04\x90\x05\xc0V\xfa\xcbVB\xe5\x00\xb6\x03\xd8b6\x9b\xdbjjj\xeadY\xb6Z,\x16\ \x0e\x002\x99\x0c\x8b\xc7\xe3\xe9H$2\x98\xcdf\xbf\x01p\x16\xc0I\x00\xc9{\xfd\ \xe2{\x01\xe0\x00\xb4\x00x\xa1\xa9\xa9\xe9\xc9`0\xe8njj2UVV\x8a\x94R\x8e\xe3\ 8p\xdcL\xf1\x8c10\xc6@\x08a\xa3\xa3\xa3Zooo\xf6\xec\xd9\xb3\xb1p8|\x02\xc0\ \x9f\x01\\\xc6]\xb6\xcc\xdd\x024\x11B\xfe\xb0a\xc3\x86\x9d;w\xee\xb4WVV\x9aD\ Q\xe4\\.\x17\xb1\xd9l\x9c\xd9l\x86$Is\x00TU\x85\xa2(H\xa5R,\x1e\x8f\xd3l6\ \xcbFFF\xb2\xa7N\x9d\x9a\xbex\xf1\xe2?)\xa5\x07\x00\x84\xef7\x00\x0f\xe0wuuu\ \xaf>\xfd\xf4\xd3^\xaf\xd7k\x92e\x99\xf8|>\xe2\xf1xPQQ\x01\x87\xc3\x01\x8b\ \xc5\x02\x93\xc9\x04A\x10\x00\x00\xba\xae#\x9b\xcd"\x93\xc9`rr\x12ccc\x18\ \x1f\x1fG4\x1a\xa5\xf1x\x9c\x8e\x8c\x8cd\x8f\x1d;6:44\xf4.\x80?\x010\xee\x07\ \x80\r\xc0\x1f\x1f}\xf4\xd1\x9f=\xf6\xd8c\xe5v\xbb\x9d\x0f\x04\x02$\x10\x08\ \xa0\xbe\xbe\x1e.\x97k\xb6\xc6\xf3\x8a\xc5b\x90$\tv\xbb}\xceu\xc6\x18\xe2\ \xf18\xc2\xe10\x06\x06\x06000@\x13\x89\x84\xd1\xd5\xd55u\xee\xdc\xb9\xbf\x03\ \xd8\x07 U\x8a)\xbeT\xf3\x1c\xc7\x1d\xee\xec\xec|\xb2\xad\xad\xad\xbc\xaa\ \xaaJX\xbdz5\xd9\xb8q#V\xadZ\x05\x8b\xc5R\xf4\xa63g\xce@UU\xf8|\xbe\x05\x9fY\ ,\x16<\xf0\xc0\x03p:\x9d\xa0\x94r\x8a\xa2\x10\xa7\xd3ir\xb9\\M7n\xdch\x07p\ \x1c\x80\xb6\x12\x00&\x00\x7f\xe9\xec\xec\xdc\x1e\x08\x04l~\xbf_hmm\xe56o\ \xde\x0c\xa7\xd3\t\x00\xb35\x9f\xef\xb8\xf9\xe8\xeb\xeb\x83\xddnGUU\xd5\x9c\ \xeby1\xc6`\xb7\xdbQ]]\rM\xd3\xb8t:M\x0c\xc3\x10}>_M(\x14z\x10\xc0?\x00\xd0{\ \x058\xb0u\xeb\xd6_\xd6\xd7\xd7\xdb\x02\x81\x80\xd0\xd6\xd6\x86`0\x08Q\x14\ \x17\x18\x9a\xaf\xde\xde^\x94\x95\x95\x15m\x81Bp\x9e\xe7Q]]\x8dl6\x8bT*E\xb2\ \xd9,o\xb5Z\xeb\x86\x86\x86l\x00\xba\x962\'\xdc\xc1|\x87\xdf\xef\x7f\xbe\xb9\ \xb9\xb9\xac\xa2\xa2BX\xbbv-\x82\xc1 \x04A\x00!dI\xf3\xa5\x8a\xe38\x10B \x08\ \x02\x1a\x1b\x1b\xa1(\n\xa6\xa6\xa6\x04Ji\xd9\xe0\xe0\xe0\x0b\x91H\xe4s\x00\ \xffZ\xec\xfe\xa5Z\xc0,\x08\xc2\xa1\x1d;v\x04\xca\xca\xca\xc4\xd6\xd6V\xae\ \xa3\xa3\x03\x92$\x81\xe7K\xeb:\xb2,\xc3\xe3\xf1@\x92\xa4;\xe6^\xb8p\x01\x03\ \x03\x03\xd8\xb2e\x0b\xa2\xd1(n\xdd\xba\xc5y<\x1e1\x14\n=H)=\x02@_.\xc0o\x1e\ z\xe8\xa1=\x1e\x8f\xc7\xdc\xd0\xd0@:;;\xe1r\xb9J6\x0f\x00V\xab\x15&\x93\xe9\ \x8ey\'N\x9c@&\x93\xc1\xae]\xbb \x08\x02\\.\x17\xfa\xfb\xfb\xb9x<\xce\xf1<\ \xef\x88F\xa3#\x00\xfe]\xec^\xb2H\x99\xa2(\x8a\xcf\xd7\xd4\xd4X-\x16\x0b\xbf\ ~\xfdzTUU\x81\x102\xfbV]\xa98x\xf0 \xccf3\x9ex\xe2\x89\xfc\xdb\x1a\xd5\xd5\ \xd5hmm\x85\xd9l\xe6kkk\xad\x82 \xfc\x16\x80\xb8\x1c\x80\x9f\x06\x02\x81f\ \x8e\xe3x\x8f\xc7\x83\x87\x1f~\x18<\xcf\xaf\xa8qJ)\xdey\xe7\x1d\xacZ\xb5\n\ \xdb\xb6m\x9b\xf3\x19\xcf\xf3\x08\x06\x83\xf0x<`\x8c\x11\xbf\xdf\xdf\x0c\xe0\ \'\xcb\x01x\xce\xeb\xf5\x9at]\xe7V\xaf^\r\xa7\xd3\xb9\xa8\x91\xae\xae.$\x12\ \x89e\x99\xd74\ro\xbd\xf5\x16:::\x10\x0c\x06\x8b\xe6\xc8\xb2\x8c\xe6\xe6f0\ \xc6\x88\xcf\xe73\x01\xd8[*\x80I\x14\xc5\r<\xcf\x0b&\x93\x89[\xbbv\xed\x92\ \xa3\xcd\xe6\xcd\x9bq\xfc\xf8q\\\xbbv\xad$\xf3\xd3\xd3\xd3\xd8\xbf\x7f?\x9e}\ \xf6Y\xac_\xbf~\xd1\xbc\xf6\xdak\xd8\xb7o\x1fjjj\x00\x00_~\ \xf9%\x0e\x1f>\x8c\xf7\xde{\x0fe6\x1bF\xbf\xf8\x02\x83\x9f\x7f\x0e\x85\xe7!x\ \xbd\xa8\r\x06\xb1\xe1\x91G\xc0\x11\x02M\xd3f[\x9c\xe38\xb8\xddn\x10B`6\x9b\ \t\x80\xc6R\x00\xca\x05A \x84\x10\xcej\xb5\x82\xd2\x85S\x11]\xd7\xa1\xeb:\ \x04A\x80(\xce\x1d\xdd\xbc^/\x0e\x1c8\x80\xd7_\x7f\x1d\xdb\xb7oG&\x93A\xf7G\ \x1f\xe1\xd5\xe6f\\{\xf9e\xe8n7\xdc[\xb7\xa2e\xdf>H6\xdb\xed\x960\x0ch\x8a2\ \xa7\xe5\x18c\xb0\xd9l\xe0y\x9e\xe3y\x9e\xe0\xf6\x12uI\x00\x91R\xca\xe5k\x97\ R\x8a\xef\xbe\xfb\x0e\xdd\xdd\xdds\x92\xf6\xee\xdd\x0bJ)TU\x9d\x05\xc9wvQ\ \x14\xf1\xfe\xfb\xef\xe3\xf7;wb\xfd7\xdf\xe0\xb9W^\x81w\xcf\x1e4\xfa\xfds\ \xca\xc8\xb7\xae\xa6i\xf8\xec\xb3\xcf\x10\x89Df?\x93e\x19\xbbw\xef\x9e\x9dj0\ \xc68\x14\xe9\xc4\xc5\x002\x00\x98a\x18\xb3\xcfrKK\x0bZZZ\x16$\xe6kK\xd34h\ \x9a\x06A\x10\xc0\xf3\xfc\xec\xa3\xd5\xf1\xe2\x8bp\xbb\xdd\xa8\xdf\xb4\t\x92\ $-\xa8]\xc30\xa0\xeb:\x18cx\xfc\xf1\xc7\x8b\x96\xaf\xaaj\x1e\x94\x01H\x97\ \x02\x103\x0c\xc3\xd0u\x9dMOOs\xf3;\xe3R\xca\x83\x10B\xc0\xf3\x9f\x8f7\x9b\xcd|6\x9b\x85(\x8a\x9c$I\x10E\x11\ \x82 \xccN\x9f5M\x83\xaa\xaa\xd0u\x9d\x89\xa2\x88l6kD\xa3Q}hhh\xdc0\x8c.\xcc\ \xec\x7f\xa6\nj\xbb\x98\xf1\x0cf~(\\\x12\x00E\x0c\x9b\x8b\x9c\x9br A\x00?\ \xb6\xdb\xed~\x8f\xc7#9\x1c\x0e"\x8a"!\x84\xcc)\x9bR\xca4M\xa3SSSt||<;==}\ \x133#\xcc\xb9\x9c\xc1l\xce\xa0R`\xb6\xf0<\x0f2GKM\xf4\xf3F\xcdE\xc2T\x10\ \x12f\xb6\xfd\xdc\x00\xd6\x01h\x02P\x01\xc0\x8e\xdb\xdb\x81\x1a\x80i\xcc,Hz\ \x01\\\x02\x10\xcb]Ws\xe6\xf3\xa1\x14\x89<\xcc\x02\xddi\xa5B\x161\x9d7\x9e7/\ bfq$`fd\xe3se\xe7\xcbg\xb90r\xa1\xe7B+\x80\x98\x0fR\x08\xb3\xe8\xeah9K-i\x11\ \xe3\x8b\x99\x9f?\x1c\xd1E \xf4\x9c\xf9\xf9 j)\xa6\xee\xf6\x17\n\x923,\xcd3O\ \n\xa2X\x0b\xd0\x82(\x84Ps\xc7e\xafC\xef\xd7_\r\n_>\xc0\xed\x97\x0f\xc3\n\ \xff\xd5\xe0\x07\xfd\xa0{\xd4\x7f\x01~{\x04\xaaE\xe08P\x00\x00\x00\x00IEND\ \xaeB`\x82\x8f\xa2T\x8e' phatch-0.2.7/phatch/actions/transpose.py0000644000000000000000000002235511346363116020237 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Embedded icon is taken from www.openclipart.org (public domain) # Follows PEP8 from core import models from lib.reverse_translation import _t #---PIL def init(): global Image, imtools import Image from lib import imtools def transpose(image, method, amount=100): transposed = image.transpose(getattr(Image, method)) if amount < 100: transposed = imtools.blend(image, transposed, amount / 100.0) return transposed #---Phatch class Action(models.Action): """""" label = _t('Transpose') author = 'Stani' email = 'spe.stani.be@gmail.com' init = staticmethod(init) pil = staticmethod(transpose) version = '0.1' tags = [_t('default'), _t('transform')] __doc__ = _t('Flip or rotate 90 degrees') def interface(self, fields): fields[_t('Method')] = self.ImageTransposeField( 'Orientation') fields[_t('Amount')] = self.SliderField(100, 1, 100) def apply(self, photo, setting, cache): #get info info = photo.info #dpi method = self.get_field('Method', info) #special case turn to its orientation if method == 'ORIENTATION': photo._exif_transposition_reverse = () info['orientation'] = 1 else: amount = self.get_field('Amount', info) layer = photo.get_layer() layer.image = transpose(layer.image, method, amount) return photo icon = \ 'x\xda\x01`\t\x9f\xf6\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\t\x17IDATh\x81\xed\xd9{\x8c\x9c\xd5y\x06\xf0\xdf\x99o\ \xee3{\xb7Y_\xd6\xd8\xd8\xa6\xc4.\x94\xe2[q\xa0\x01\n\xa8n\xa4\xc4$\xa2T\t\ \xa9ZE\x15\x94^\x94J\xf9\xa3\x89Z\xb5RD\xa4\xa4Q/\x8a\x8aZH\xa2DjU\x13\xa5\ \x8dTTD\x1b \x89"\x07\x1a\xb0MK|\xc7\xb0x\xb1\x8d\xbd\xbe\xad\xed\xf5\xce^f\ \xe6\xeb\x1f\xdf7\xde\xf5\xb2\xbe\x82eU\xf2;:\xfaFG\xe7;\xf3<\xefy\xcf{\x9e\ \xf7L\x88\xe3\xd8\xffg\xcb\\m\x00\xef\xd7\xae\x11\xb8\xdav\x8d\xc0\xd5\xb6\ \x0f\x8c@\x08!\x84\xef\x85(\xbc\x1bz\xc2\xa9\xb0$\x8c\x86\x15\xeb\xeb\xf7\ \xaf\xfe\xa0\xe6?\x97e/\xf7\xc5 T5\xdd#\xb6J\xb0R\xc3J\x19\xbd\x08\xad1\x1d\ \xa7\xdb\x07C.\xf4\xa1\x1e_\xa1|}I\x04\x82P\xc4G\xc5>-\xf8\xa8\x8c\xd2L\xe3\ \xf2r\xe6\x98-;\x92\x9b\x85v\x9c\xc4\xc4\xfb\x87\xfb^\xbb(\x02A\xc8\xe3Q\xfc\ \x19z\'}\xccrK\xac\xf3\x11\xd7\x9b\xaf\xcf\\\x9d\xcd\x0ec\x13\x13\xf6\xd7\ \x06m;\xb2;\xc6,\xd4B\x08Wd\x15.H \x08\x0f\xe1k\xb8~\xf2\xa5\xc8}\xd6\xfa\ \x8c\x8f\xcb\xd5r\xbe\xfb\xf3\xe7\xfc\xd7\xde\x8d\xf6\xed?\xe8\xc4\x89S\x93/\ \x1f7\x81N\x1cD\xed\x83\x06\x9f`97\xf0\x02\xfe\x0e\xbf?\xb5\xff~\xb7\xfb|\ \xfc\xbb\xb6\x1c\xde\xe1+?\xf9\x86\xad\xdb\xde8\xdf\xfc\x01EW0\xdb\xcdH \x08\ \x1dx\x01\xab\xa6\xf6?\xe0\x1e\x9f\xac\xdd\xe7\xe1o\x7f\xc1\xd1\xc3C\x17\x9e\ =N\xa7\xbb\x82\xf6\x1e\x02A\xc8\xe2_M\x03\xff)\xeb\xdc3\xbc\xdacO>\xee\xf4\ \xf0EF\xc3\x15\x85\x9e\xd8L+\xf0\xb7\xb8oj\xc7\x1dn\xb5v\xe8\x16\x7f\xfc\x8f\ _566~\xfe\x19\x9b\x92h\x1f\xc5\x90Q\xd4\xb5\xd6\xe2\n\xd8Y\x04\x82\xb0\x04\ \x8fM\x1f\xf4[\xf5\xfb}\xf1\xa9\xbf\x9f\x19\xfc)\xec\x17;\xa6\xee\xa4\x9a\ \x13F\x8c9i\xdc~M\x9b1\x82\xc6\x95\x81?}\x05b\x7f*\x88\xa6v\x95\x15m\xdb\xf3\ \x96\xd3\'k\xe4\xce\x8c\xe30\xde2a\xa7~\xfblWw\x14\xc3)\xe0S\xe9\x88~\x1c\ \xc5\xc4\xe5\xa4\xd0^\xe1\x96X\xe6\xf7\xb2\xc2my\xe1\x95\xa0\xfe\xe7\xfd\xe2\ \xd1s\x13\x08>9}\x929\xbam\xdd\xb3\'\t\r)\xc4\x97\x9d\xb2\xc7v\x87\xbc\x86\ \xfdx\x17\xc7qZ\x12<\xa3\xe9\xf7!\x9cp\x89\x87\xd8RaiS\xf4\xe5\xaa\xdc\x839!\ \x93\x93\x91\x13~U\x9c_\x182\xe1\xa1\xa9\xce8C \x0c\x86\xeb\\\xa7g\xfad\x03\ \x0ei\x1cl&^?\x81\xe7\xf5\xdb\xea9\xbc\x89\xbd)\xf8\x96\xf7\xc7%1\xdfL\x9fu\ \x89\x8c\xb8\xa8\x10\xbaSh\x1b\x92\xfbRI\xe1\xb1\x9cL\xa1 \x92\x13\xc9\xc9\ \xc8\xca\xc8\x86\xcc\x83\x85\xc3\x85;B\x08/\xc5q\xdc<\x8b\x80\xa6\x1bg\x9a\ \xb4\xaea\xa82\x9c\xf8\xf2G\xb6\xdb\xe5\xdf\xb0U\x12\x1e\x83\x12\x99\xd0\xda\ \xacM\x93\x1b6\x86\x8b\x0b\x9d\x10~E\xf1\xb3\xb1\xf2\xe3\x1d\xa29\x05Yy\x91\ \x82lJ \x92\x15\x89d\xc4\x13\xe3Or|U\x08a,\x8e\xe3f\x88\xe3X\x08!\xe3\x9f\ \xfd\x82\x87\xed\x98i\xfa\xcc\xcf\x82\xe6\xef\xc4[\xed\xf24\xb6`\x0f\x8eH\ \xe2\xbd\x8e\xe6\xe5\xca\x84{t\xdc>!\xfezV\xb4\xba(+iyy\xd9\xb4\xe5\xe4R\xf8\ \x91H\xdc\x08\xf1\xe6\'FV\xff\xf8s[\x7f\x1e\xc7\xf1x\x8b@\x1e\xbdF\xecU\x9a!\ {7\xb1\xce\x13\x9e\xf7\x1f\xd8\x99\x82\xaf\xbd\x1f\xe0\x0f=\x14\xa2#O\xb7\ \x7f=\x93\x89\x1e-\xcaE%yE9EyE\x05\x05yy\xb9\x94J\xf2\xc9\x88dd\x1c\xec\xcf\ \xbc\xfa\xd7\x8b\x9f\xb9\x0f\xc3Ar\xdc\x94\xb1\xc4F\xff\xeb\x8es\xfc\xe2\x88\ c\xbe\xe9S>\xe7\xa7\xa8\xb5b\xf0R-\x84\x10\x10=\xbc\x7f\xc5\xf7F\xe6\r>\x90E\ YAIAIQIQQQ!]\x87|\x1aHUU\x19\x19e%\xcdS\x1d\x8dO\xb4\xff\xc5B\x0cfS\x02y7X\ \x9e\xdd\x10\x89\xee\xc8\x18\x9b)i\x94u\xfb#\xff\xe2\xb3\xd6\xc5\xd5x\xd3\ \xe5\x80O-B[c\xdb\xdc_\x7f\xa4\xf33\x0e4\xf6\xdb1\xb1]\xb1kX9\x94\x94\x94S\ \x1ae\xf9t=\x96[.;1\xcb\xc9\xc6)\x13\x1a\xfef\xf3\x86 \x11\x89\xc7\'\t\xcc\ \xf2\xe1\xfa\xf6\x86y\x9bz\x1cXuT}\xa6\xb3\'\xa3G\xd5\x8bA\xf8C|7\x16_RzL\ \xbd\x9f\xc7\xac\xa7\xff\xf3\xd9\xf0\xf4K\xcfZ\xbc\xac\xcb\'~\xe3\x17\xcd\n\ \xb3\x95U\x95T\x94T\x15U\x14\x94\xcd\xb7\xc0\xe9Z\xd1\x9aG\x1f\x10\xb7\xc5\ \x898\x1f\x03\x1d\xc8g%J1\xabfL\x89\x81\xc7\x07\xad\xfd\x87\xe5^\x9e\xbb\xfd\ \\8\xda\xf1O\xf8Z\x10\x9e\xc2\x93\xb1\xf8\xc0\xc5r@\xae\xef\x97\xab\xf3f\xdf\ U\xce\xae\xbc\xbd\xcf\x87\xae\x9b\xaf\xa2\xaa\xa2]Y\x9b\x8a\x0ee\x1dJ\xdau\ \x99\xad\xd4\xe8\xb1\xe6K\xf7\x8a\'\xe2$\xaf\xb5Z\xa2r\xa3 9_\xe7(\xfa5\xb7\ \xfb\x8e\xe5\x86/\xdfj\xd3\x8e\xd7\xce\xfe\x91Q\x89\x1ax\xd3q\x89<\ \x89[\xc2-\x8b\x8a\xe3\xc6,u\xb7\xac \x97\xf4\xee\xdbq\xd8\xae\xd7\x07\xfc\ \xf6\x82u\xee\xec\xb8U\x1cb\x87\x1c\x9b\xea\x049\x94\x84\x94@\xa4,\xab,\xa7$\ 7%E\x16\x14\x15\x94\xce\x80Ozg\xbb\xce"\x8b,\xb4\xd8\xff\x9c\x1cp\xf77>\xed\ \xb9M/L\x82\x0e\x92\xf0\xd9\xe8m\xbb\xbdm\x97\xedv\xda`\xcc6\x1ci\x1ddE\xcc\ \xc5j\xcb|\xde\xcd\xd6(pV+R\x99_t\xd7\x9d+\xac]\xfaK\xc6+u?\xf1\x9aWl\x951\ \xa6"\xa3*R\x15\xa9\xc8\xa9\xc8\xa9*\xa8(\xa8\xa4\xb9\xa5\xa2\xac\xaaj\x91\ \x85nt\xa3\xf9\x16zg\xac\xe6\x99\xbd/\xfb\xe6\x0f\xbf\xef\xddC\x87\xde\xbb\ \xb4\xa7\xf1\xef\xb6\xd9\xedE\x89\xee:$\x911o\xe2p\x8b@$\xc9.7\xe2\xc3V\xf9\ \x13\x1f\xb2Pi\x1a\x89\xfc\xe4\xbc\x9d}m\xee]\xb5\xc6G\xfan\xd3\xddV\xaaG\ \xf9\x89l\xc6\xb8a\'\x8c\x186\xa6\xa6K\xd5l]ztj\xd7)\x8a\xcbq\xa3\x19\xc5\ \xfbF\x872\xcf\xecy\xd5\x86\x1f\xfd\xe0\xecK\x80\xe96\x8e\xe7\rx\xd5\xb7$\ \xfa\xeb\xdd4\x88Z*w\xb4E\xe0L~\xc6r\xac\xb5\xc2#n1_\xc7\x14\x02\xe7\xbb\xc3\ (P\xe8\xcc\xea\xed\xea1\xaf\xb3[_\xc7\xacf\xbd!\x1c8z,\xbcsh\xd0\xe0\xe01\ \x8d\xfa%\xd45\'\xb1\xc9Q\x1b=\xa1\xe9g\xd8%\x91\xecc\x92\xf8\xaf\x9f\x11sH\ \x04]\x92[\xe7`\x19VZd\xbd\xb5n\xb3@\xb8\xb2w\x0bS\xac\x8e74\xbd\xe2u\xfd\ \x9e\xc1\xab\xd8!\t\x9d\x9a\xb42ii\xb03>\x8d\xe3\xb8\x19B\x18\x93H\xe4d\xaa\ \xb7\x8d\x18\xf2\x8e\xe5\xeer\xb3Ns]\xd9B\xfd 6;l\xab\x17\xd5l\x91\x84\xcd\ \xee\x14Sm\xa6\xba"L\x17\x93\xe9~(\xa2[r\x99u\x13n2\xcb\x1a\xcb\xac\xb4X\x9b\ ^\x89\xfc{\xbf\xd6*\x92\x06\xc5\xf6\x1a\xb6\xdb\x16\x87\xbd$\t\x977\xb0OR,\ \x8d\x9e\xab(z\x0f\x81\x94DF\xb2\'\xda\xd0\x8b\x05X\x8cE*n\xd2k\xb9\xc5\xfa\ \xccU\xd0\x9e\x8e*^\x04\xe0\x86dc\x8e\xe0\xb0X\xbfS\x0e\x180h\x871\xfdx\x1bo\ a@RS\x0fc\xfc|\xcawF\x02)\x89 \t\xb1b\nq\xb6$\xd5\xceK[\xaf\xb2>\xed\xfaT\ \xcc\xd6\xadS\xbb\xa2\x82HR\x0b\x06M\xb1\x11\r\xa7M\x186\xe6\xb4\x9a\t55\xc7\ \x1d\xf1\x86q\x07$\xb1}\xd0d\x8a, www.stani.be # Make a colorized version of the image with midtone shifted to # prescribed color value. # Follows PEP8 from core import models from core.translation import _t #---PIL def init(): global Image, ImageMath, ImageColor, imtools import Image import ImageMath import ImageColor from lib import imtools def warmup(image, midtone, brighten, amount=100): """Apply a toning filter. Move the midtones to the desired color while preserving blacks and whites with optional mixing with original image - amount: 0-100%""" mode = image.mode info = image.info if image.mode != 'L': im = imtools.convert(image, 'L') else: im = image if image.mode != 'RGBA' and imtools.has_transparency(image): image = imtools.convert(image, 'RGBA') luma = imtools.convert(imtools.split(im)[0], 'F') o = [] m = ImageColor.getrgb(midtone) b = brighten / 600.0 # Calculate channels separately for l in range(3): o.append(ImageMath.eval( "m*(255-i)*i+i", i=luma, m=4 * ((m[l] / 255.0) - 0.5 + b) / 255.0).convert('L')) colorized = Image.merge('RGB', tuple(o)) if imtools.has_alpha(image): imtools.put_alpha(colorized, imtools.get_alpha(image)) if amount < 100: colorized = imtools.blend(image, colorized, amount / 100.0) return colorized #---Phatch class Action(models.Action): label = _t('Warm Up') author = 'Pawel T. Jochym' email = 'jochym@gmail.com' init = staticmethod(init) pil = staticmethod(warmup) version = '0.2' tags = [_t('filter'), _t('color')] __doc__ = _t('Colorize midtones of an image') def interface(self, fields): fields[_t('Midtone')] = self.ColorField('#805d40') fields[_t('Brighten')] = self.SliderField(50, 0, 100) fields[_t('Amount')] = self.SliderField(50, 1, 100) icon = \ 'x\xda\x01<\n\xc3\xf5\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\t\xf3IDATh\x81\xd5\x99[\x8c\x1cW\x99\xc7\x7f\xe7\x9c\ \xaa\xea\xee\xe9\x99\xe9\xb6\xe3\x9e\x19\xdb\xe3\xc4L\xb2\x8e\xe3\xc0\x06\ \xcb(\xc8\x0eV\x1c6\xe1\x92Ea\xa5$O\xac\x16!q\x91\xd8e\xb5\xcb\x03\x12O\xc6Z\ EBB\x82\x07\x82\x84\x90\x88\x04\n\x02\x02/\\6\x91 \xa0\x80H\x16\x89\xe0A\x89\ 3\xb9cl\x8f\xed\x99\xee\x99\xe9{\xd7\xed\\x\xa8j3\xce\xc6\xc6\xe3i\x07q\xa4\ \xa3\xea\xea:U\xdf\xffw\xbe\xef\xabs)\xe1\x9c\xe3\xef\xb9x\xd7\xf4\xe9\x7f\ \x12E^f\x0f>\x05,\xafp\xb7k\x8f\xda\x84\x18\xa9\x07~/|V\xf8\x0f"\x1e$\xe6\ \x1fI)\xa3\n \x14$\x03P$\x04\xbc\xce8?f\x82/s\x87\xabo\xd6\xe4\xe8\x00~.\x0e\ \xd3\xe5\xbb\xb8\xf2N\xb6\xdc\x06c\xbb\xa0X\x03U\x06\x1c\xa4\x03\x88\x1b\xd0\ _\x82\xd5\xe7@7\xfbL\xf1Y\xeeq\xdf\xf8\xdb\x02|AH\x0e\xf25\xfa\x85\x8f\xb3\ \xf5\xdd\x1e\xd5[@\x15@\x06 }\x10\x1eX\r.\x05\x9d\x80\xcd\x8f\x9d\x93\xd0x\ \x16J\x9d_Q\xe6~\xeev\xabo=\xc0\xafE\x8d&\xbf\xc5\xf8sl\xbf\x07J\xd3\xa0\xfc\ L\xb8\xf4\xb2\xd0A\x00\x0e\xac\xc9\xc4\x1b\r:\x87\x88\xbbp\xee\x97`{\x1d\xb6\ \xf1a\xde\xe7\x9e\xda\xa8\x04y\xf5\xea\x81.\x8f\x912G\xed \x14\'A\xa6 \x12\ \x901\x88\x08d\x08r\x00b\x00"\x04\x11gU& 5\xf8\x1eL\x1f\x04\xebO\xd2\xe2{j\xb0.\x94\xf2|`\x90\xb5#\ \xcak\x08z\x95\x0b\xcf\x1b0\xcd\xcf\xc4\xddW*g\xe3\x1eP\xfc\x9bs\x14\x90y\ \x07\x8b\x14\xf4Y\xf0\xb7e\nD~A\t\x90"\xef}\x97\x1d\xb5\xcd\x7f[\xc0f\xbdo\ \xfa`\xba\x99\xf8\xdcaD|\x02x\xf2\xda\x00\xa4\x1c\x8a\x8b\x8a\xb4\xecS\xb41\ \xbep\x90,B`\xc1\xafd*\x84\xcc\x04\xf9\x02,\x90\xe6\xafj\x91\x8b\x1fV\x13Ax\ \x16\xe4\x1b^\xe5\x9a[\xafT\xce\xd5\xe4\xc0v\xa3$\xc9X\x85Tj&\x07kx8H\xce\ \x81\xec\x82\xaa\x82\xf53\xe1n\x98\x03\xb9\x07\xac\x03k\xc1\x18H:\x10u\xb3ko\ ,\x9a\xad\xd7\x0e\xc02.\x04\xd8\xa0\x82+\x8e\xd3\xf1\x04[\xbb+\xb0\x0c\x94\ \xba0\xd3\x05\x8a@\x00\xd6\x83:\xf0l\x04w\x15!\xd5\x90\xa6\x90D\xa0\x1d\xfc\ \t\x98&\x83\xbd\xd8\xc6\x15\x8f\x07\x1bOb\x8f\xe3A\xa8q\xd2\x83\xb1=\xe8\x89\ \x9b\xe9\x95J\xf0\n\xf0#\xa0\t\xa4\x11\xc4\x1dXZ\x83G\xd7\xe0\xe4\x00\x9e\\\ \xcbz]\x87\x99\xf8\xdf\x03\xcf\x00\x86\xcc;\xc3\nP\xe4\xb5+\x97\xb3q\x80\x9f\ x\x89\xfb\x8cHB\x84?\x83(\xde@\xa8W(\xefx\x19\xf1:\xf0\x18\xb0\x97,!_\x06\ \x8e\x00\xbb\x80\'\x80\x1f\x00\xd7\x03g\x806\xb0-og\xc8\xbc0\xf4D\x81_]\xa9\ \x9c\x8d{\xe0\x1e~\x81$\x0e:\xab8\xdd\xa14q/\xae\xfcN\xba\xbb\xcb\xd9\xf5\ \x7f!\x8b\xa0"\xf0@.X\x00\xef\x07\xf6\x031p\x0b\xf06\xb2\xb7\xbd\xcb\x01\xcc\ :\x1b\x05~p\xed\x00p\x96\x12O\x8f5{\xb8\xee\xab\xe0\x1c~\xf9\x0e\xe2\xca\x0e\ \x98\x00:d\x1e\xb8\x05\xf0\x814\x17\x9d\x00S\xc0;\xf2\xe3\xb9\xfc8\x14?\xec\ \xfd1\x16y\xaf\xfb\xdd5\x04\x00\x14\x1f\xf3S\x1b\xcb\xd6\x1f\x19\xb4\xfe\x17\ \xdf\xdb\x85\x0bv\x91\xecTYx$\xb9\xe8\xe1X\x95\xe4 \xc3c/\xff\xbf\x94\x9f\ \xe7\xc3\x03\x02\xc7\x04\xff\xbe\x11)W\x07\xf0\xcf\xee4\x93|s\xf2\xfc\x12v\ \xf5i\x92\xfe\x1f@m%\xdeU\x82\xb3\xb9\xd0a\x1dz ^\x07q\x06\xa8e\xe7\x9d\xea\ \x04z8\xe5\xa8\xf2\x0c\x1ft?\xbe\xf6\x00\x003\xfcW`M=Xz\x11\xdd\xfc?H#\x92\ \xe9\x89,9C\xfe\x126C\xe1\xc3\xf3\x048\x0fl\x83\xc6\xde;\x88j\xfb\xf0R\x07\ \x1e1\x93|t\xa32\xae\x1e\xe0\x80K\xd9\xc6\x87*+\xcdD6\x16\xa0\xb7\x98\xcd\ \xd7\xaadc\xc2z/\xac\xef\xfd\x18X\x83\xc6{\xee\xa1p\xfd\xa7\x19?5\x9f\x85\ \xce4\xff\xc9]\xee\xf5\xb7\x0e\x00\xe0\xbd\xeewb+\xff=\xb9t\xdeyk\x8b\xc80\ \xc2n\x15\xb0\xf4&\x00C\x0f\xd4!\x9d*\xe0\xef\xf80z\xfe\xb3\x8cu\x13\xb8\x8e\ \xef\\\xed\xdax4\x8b\xfa\x9f\x8aG\xe3\xbe\xfa\x88\x0e\x14\xc5z\x82:\x01\x1c\ \xb8D\xdb\xd7\xa0;\xb7\x03;\xd3\xa7Ro\xc3\x04\'\xb8\xdf\xbd\xe3jMo\xce\x03\ \xc3\xf2!\xf7\xaf\x05\xcf\xbc4\xd6IP\x05\xb2\x9e\xd6\x97h\xbb\x02c\xe6\\&>\ \xa0\xc3\x0c\xff\xb4\x19\xd3\xa3\x01\x00\x18\xe7[b\xe8\xcc*\xd9\x94\xe2\x8d\ \xa5\x0f\xa8l\xdd\x9f\xdf\xf3\x9b\xcd\xee\r\x8d\x0e\xa0\xc8\x0f/\xfc\xde\x02\ \xb4\xde\xa4\xcd*p\xdd\xba\xf3\x80_n\xd6\xec\xe8\x00\xeet\xaf\xa1H\x81\x0c`\ \x95l\xf1\xd5\xcd\xeb\x00h\xe4\xd7\x86Eq|\xb3fG\xba7j\x03\xd5\x92-S\xa3\x0e\ \x14\xc8\xa6\xd2\xc3U\x96#\x1bq;\x80\x0fnR\x18\xb1\xc5\xbd\xb8Y\x9b#\x05\xf8\ a\xfa\x95\xe2\xa1\xeb\xbe\xce6y\x8a`\x9e7\ \xfa\x0fB#}\xe2\xca\xcaJ7\x8a\xa2\xc9j\xb5\xca\xde\xbd{\xd1Z\xd3\xeb\xf5\xa8\ \xd7\xb3\xc1v\x98\xbc\x00B\x08\x93\xa6\xe9\xe2fm\x8e\x14\xe0\xf9\xe7\x9f\xff\ \xfc\x8e\x1d;\xbe\xad\xb5\xa6\xd5j\x11\xc71I\x92\xe0\x9c#\x8a"\xac\xb5\x08!p\ \xce\xd1\xef\xf7\x1f{\xf8\xe1\x877\r0\xdaod\xc0}\xf7\xdd\xf7u)\xe5\xa7\x8a\ \xc5"\x85B\x01\xdf\xf7\x11B\\\x80\x89\xe3\x18c\xcc\xb3Z\xeb\xf7<\xfe\xf8\xe3\ \x9bN\x8a\xd1M%\xf2r\xe0\xc0\x81O\x1bc>\xd7l6\xdb\xcdf\x93z\xbd\xce\xf2\xf22\ \xadV\x8bv\xbbm\x8c1_\xf5<\xef\x03\xa3\x10\x0f\x1b\xf7\x80X\x7fr\xec\xd81q\ \xa9\x86\x0f=\xf4\xd0\xdb\xad\xb5\x7f(\x16\x8bBJI\x14Eh\xad\xbfp\xf4\xe8\xd1\ \xff\xb9\xd4=G\x8f\x1e}\xa3\x98\xbf*\xeeJ\x00\xc4P\xec\xbe}\xfb\xc4\xdc\xdc\ \x9c\xacT*rqqQ4\x1a\r\xd1l6E\xa7\xd3\x11\xfd~_\xd4j5\x1a\x8d\x86\x04\x08\xc3\ P<\xf2\xc8#\xef\xeat:wYk\xb7\x15\x8b\xc5g\x0e\x1e<\xf8\xb3C\x87\x0e\rJ\xa5\ \x92\x1b\x1f\x1fw\x13\x13\x13nyy\x99\xc9\xc9I\xb7e\xcb\x16W\xab\xd5\xdc\xec\ \xec\xac\x9b\x9f\x9fw\xb5Z\xcd\x1e9rd\xb8_qI\xa0\xcb\x01\x88c\xc7\x8e\x89;\ \xef\xbcSNMM\xc9\x17^xA5\x1a\r\xd5\xedvU\xbb\xdd\xf6\xd24UZk\xd5\xeb\xf5T\ \x92$2\x0cC\x15\xc7\xb1\xd2Z\xcb$I\x94RJ\x1ac\xa4s\xd9\x0e\xaf\x10\xc2)\xa5\ \xac\xe7y\xd69g<\xcf\xb3\x85B\xc1\x94J%\x13\x04\x81\x1d\x1f\x1f7\xd5j\xd5\ \x00\xb6R\xa9\xe8 \x08\xf4\xfe\xfd\xfbM\xadV\xb3\xedv\xdb\x1e8p`\xfd&\xe4_\ \x05\x10\x80XXX\xf0\x16\x17\x17\xfdv\xbb\xed\x9d>}\xda?q\xe2\x84w\xee\xdc9\ \xbf\xd5jy\x9dN\xc7O\xd34\xd0Z\x07\xc6\x18\xdfZ\xeb\x0b!|\xe7\x9co\xad\xf5\ \x9cs\x9esn\xf8\x99\x12\xc0\t!\x8c\x10BK)u~L\x9ds\x89R*UJ\xa5\xbe\xef\'\x95J\ %)\x16\x8bznn.\xdd\xbd{\xb7\xbe\xed\xb6\xdbt\xb5Z\xd5\xb3\xb3\xb3\xe9\xfc\ \xfc\xbc~\xf0\xc1\x07/\xf2\xca\xe5^\xa32\x0cCOJ\xe9-,,\xf8\xcf=\xf7\x9c\x7f\ \xf2\xe4\xc9\xa0\xd1h\x04\xadV+\xb0\xd6\x16\x92$)\x92M\x9c\x0b\xce\xb9\x02PP\ J\x05\xf9o/\xaf*\x7f\x9e%\xdb\x83K\x81\xc4Z{a\xb9/\x84\x88\x81(\x08\x82xqq1\ \xaeV\xabq\xab\xd5\xf2N\x9f>\x9d,--\xc9\xc3\x87\x0f\x8b\xa9\xa9)n\xbd\xf5\ \xd6\xe1\xa4\xfcB\xb9\xec80==\xed\x9a\xcdlm\xa8\x94r\xe5r\xd9%I\xe2\x06\x83\ \x81\x8b\xa2\xc8\t!\xacs\xc3\xcf-Y5\xc6\x0c\x85\xca\xfc\xdaE+\x02!.,\\\xf3\xdcsukw\xee\xc4]T\x04B\ \xa4f\x10\x19\xb3\t\xa6;:\xb8s\xe2\xc4\xb8\x0c\x85^\xda"es\xaes\xe7\x05\xa0K\ \x88\x7fm8x\xf0\xd95\xfb\xf6!\xef\xde%y\xecXjtK|\x1a!\xf59\xd2\xdf\xcf\xf0\ \xb1cQ\x0c\xa3f\xab\x94C\xb9\xcc\x9ds\x12_\x11\xe2y\xe0Y\x7f}\xbd\xa5q\xedZ\ \x8cD\x82d$B2\x1c&\x19\x0e\x93\x88DHF\xa3$#\x11\x8cH\x04\xd7\xbau\x14\xd5\ \xd5i&\xfc1\xd7\xf9sNb\x01\xbfW\x8b\x8b\x89\x7f\xfc1\xea\x9e=$/_&1=\r\x80\\\ \xb0\x02"\xe3\xb3VQ\x81\x80\x9ft\x0b\xf1\xd6V)\xbb\xeew\xfe\x9c\x00\xda\x84\ \xd05\xd8\xae\x16\x15\x11\xef\xed%\xd6\xdb\x8b\x04\xa4\xa5\x16\x84\xc06\xa8\ \x10"\r\xa2\x08\x81\xe2\xf5\x02\x08\x13\xbe\x07<\x18\x00\x17<\x0c8\xe3\xa3\ \xa3$B!K\xbc\x10\xd6\x03\xf3\xc4\x83\x15y\x1b$16\x86\t(\xb0-\x17\r9\x01|\x13\ \x82\xdd\x10\x89MO{\xa2##(^/\xa6\x10\x98X \x82\xb9\xd5\xb0\x85\x0bK4\xb3\xfd\ \xfd\x18\x80\x03\x86\x1f\x18\x00R\x9aR\x88n\x13v\x8e\xb5\xb4P\xf8\xd4SH\x87#\ \r\x90\xaeoBX\xd5"\xf53\xf1\xd5WL\xf5\xf4\xe0\x04\x04\xf4>8\x00\xc0\x80OL\ \xd8\x99\x98\x9ef\xb4\xb5\x15\xef\xe6\xcd\xa0ii+\xa5\x9b\x108\x80\xd8\xd8\ \x18\xe1\xeb\xd7\x11R\xa2\x80\x11\x86\x96\\\xe6\xcfy\x1f\xb8$\xc4\xa6\x18\ \xdcH\x82\x12\x07\x92B\xe0\\\xbb\x16\xa7\xcf\x87\xa2i\x08U\xc5\x88\xc50\xa3Q\ \x12\xe3\xe3\x98\xa1\x10N\xac\xc8\xa9\xf0\xc9\xb7\xa5|\xee\x81\x02\x00|)\xc4\ \xa7Q\xd8\x9d\x00\x0c \x99z\xcc\x8c>J\xeaqf<.x\xf1;R\x9e\xcce\xee\xbc\x9cF\ \x93p\xd4\xc4\x12l2\'\xde\x00\x12\xcc\x01%S\x7f3\x01QRbh_|1\x99\xeb\xdcy\x01\ \xb8\x0c\xff\x00\xeeH\xe6\x04&\xb1\xc4/\\\x11\xfb\xff\xae\x97^r\x98\x8a\xf2i\ kk\xeb\x1f\x1a\x1a\x1a\x1c\xf7;w\xdeN\xa3\xe7\x84\xf8m\x0c\xde\x8a3\x17u#\ \xf5d\xdaG\x05\xdc~?%g\xce\x80\xc7c\x7f\xfd?\xa6i\xbe\xf6\xe4\x93O\xae\xba\ \xa4\xe6\xf3B\xf3\xb6\x84q;\xcav\xe43\x7f\xda\xd1\xd7\xf7\xee\xcd\x14\x0f\ \xf0\x8c\xa2(\x17\xdb\xdb\xdb\xf7\xaev\xd2\xbc\x01|W\xca\xa8c\xfb\xf6\x0b\ \xb6\xc8L\xebd\x8a\x17^/\xfa\x1bod\x1b\xa2HJ\xf9\xcf\xb6\xb6\xb6\x83\x17.\\\ \xf0d\xeb\x90\xad\xe5\x05\xe0\xd4\xa9SzCC\xc3\x07\xb7\xdf|\xf3\x87x@\xe1\x0b/ t}\xb9\xe1\xf6\xb9\\\xae/[[[Wt\xc4\xc8\x19\xa0\xa5\xa5e\ \x8b\xdb\xedn\x05~\x9cTU&_~\x19\x1cVNfZ\t\xc0SQA\xc1\xfe\xfd+\x19\xf61!\xc4\ \x17mmm\xfb\xbe\xaecN\x00\xed\xed\xed?UU\xf5K\x8f\xc7\xb3E\xd34\\.\x17\xa1\ \x9d;\x19~\xf5U\xa2~?BQ0\x00\xa7\xcb\x85RS\xc3CG\x8f.\xf4\xfer\xcd\x03\x1clo\ oo\x1c\x19\x19\t,\xd5\xe9\xbe\x8e\x12\x17.\\\xf0\xb8\\\xae\x03\xc0\xeb\x00\ \xba\xae#\xa5$\x99L\x92L&\tm\xdbF3P\xec\xf7\xb3\xce\xe5"\xb9i\x13%%%\xa8\xd6\ \x11z\xc9&\x84\xc0\xe1p\xe0p8p:\x9d\xb8\xddn\xca\xca\xca^\xbcv\xed\xda\x96\ \xd2\xd2\xd2\x9a\xbc\x00tttl\xf5z\xbd\x1f*\x8a\xf2\r)%RJL\xd3\xc4\xe7\xf3\ \xe1HYgjj\n\x9f\xcf\xc7\xfa\xcaJ*++\xf1\xfb\xfd\xcb\nu:\x9d\xa8\xaa\x8a\xc3\ \xe1H\x1f\xbd5MC\xd7uN\x9f>MWW\xd7\xc4\x13O<\x91U\xcf\xaa\x00\xba\xba\xba\ \xf6\xf9\xfd\xfe\xbf\x08!4[\xb8i\x9a$\x93I\x12\x89\x04\x9a\xa6\xb1~\xfdz\xa2\ \xd1(7n\xdc\xb0\x8e\xd0\xf6]@\x08\\.\x17\x05\x05\x058\x9dN\x1c\x0e\x07\x8a\ \xa2\xa0(J\xba\x9f\xdd\xd7\xeb\xf5\x12\x8b\xc58t\xe8\x10\xd3\xd6\xedN\x08!\ \x84\xcc\xb2i\xad\x08\xa0\xad\xadM/..n(..\xfe\x01\x80i\x9a\xc4b1\xe2\xf18\ \xf1x\x1c\xc30\xe6\x06t:y\xf4\xd1G\x19\x1a\x1aBQ\x94\xf4\xaa\xe8\xba\x8e\xae\ \xeb\xb8\xdd\xeey\xe23\x01\x14EA\xd7uzzz\xf8\xe8\xa3\x8f\xd2cJ)\x05\xe0\x10B\ \x18\x0b!\xbe\x16\xa0\xaf\xaf\xef\xa9\xf2\xf2\xf2\xd3\xaa\xaa\x96\x84\xc3afg\ g\x89D"\xf3D/lB\x08\xea\xeb\xeb\x99\x98\x98\xc0\xe1p\xa0\xeb:\x85\x85\x85\ \xf8\xfd\xfe\xb4ul\x08[\xbcm\xa5S\xa7N\xd1\xd55\xff\x86)\xa5T\xb06q)\x8403!\ \x96\x05\xe8\xeb\xeb\xfb\x93\xdb\xed\xfe\xf5\xe4\xe4\xa4:;;\xcbj\x8e\x1dB\ \x08\x8a\x8b\x8b\xf1\xf9|\xd8\x15j\xa1x\x1b\xc0\xe1p\x10\x0e\x879|\xf80SSS\ \x8b\xc62MS\x01\\XU9\xf3\xb6\xba4\xc0\x91#G6\xed\xd9\xb3\xe77B\x08fffV,<\xb3\ 9\x9d\xcetr\xdb\xbe\xcf\xb6\x02\xdd\xdd\xdd466f\x1d#\x14\n1<<\x9c:}\x13\x07\ \x8c\xcc|X\x12\xe0\xd6\xad[\x89\xf7\xde{\x8f\xba\xba:\xb6o\xdf\xce\xad[\xb7H\ $\x12\xab\x02\xd0u=m\r\x1b 3\x81\r\xc3\xe0\xe4\xc9\x93\\\xb9r%\xeb\xf7\xef\ \xdd\xbb\xc7\x9d;wZ\xcf\x9e=\xfb\x0b\xac=K,\xec\x93u#\x13B\x88P(\xa4\x02|\ \xfe\xf9\xe7\x9c8q\x82u\xeb\xd6QXX\xb8*\x00\x9f\xcf\x87\xaa\xaa\xf3 \x9cN\'B\ \x08\xa6\xa6\xa6x\xf7\xddw\xb3\x8a7\x0c\x83\xbe\xbe\xbeDOO\xcf\xdf\x1b\x1b\ \x1b\x7f755\x15a\x81u\x96\x04\x10V-Sfgg]\xf6\xdf\xee\xde\xbd\xcb\xa1C\x87\ \x88\xc7\xe3l\xd8\xb0!]\xee\x96k\x0b}oW$)%\xdd\xdd\xdd\x1c8p \xab\xdf\xc3\ \xe10\xdd\xdd\xdd\xd3\xe7\xcf\x9f\xff\xf3\xb9s\xe7\xfe\x06L\x03\x11,\xfb\x98\ \x80\xfc\xba$\x16\x80#\x12\x89\xcc\xdb\xf3M\xd3\xa4\xa1\xa1\x81\xc7\x1f\x7f\ \x9c]\xbbvq\xfb\xf6mb\xb1\xd8\x92\x00>\x9foQ\x894M\x93\xd3\xa7O/i\x99\x91\ \x91\x11\x82\xc1`_SS\xd3\x81X,6\x04\xdc\x03&\x80P\n\xc0N\xe2t\x9b\x07`G\x1fP\ gff\xfcR\xcaE\xd1\xbex\xf1"\xc1`\x90W^y\x85X,\xc6\xf8\xf8\xf8\xe2\x08\x08\ \x81\xd7\xebM\x7f\xd7\xae2\xc7\x8f\x1fgrr\xf1-\xd20\x0c\x06\x06\x06\x92\xc1`\ \xb0\xe9\xb3\xcf>kH\t\x1f\x01\xc6\xb1V \x8cuO2W\xb2\x0f\x08\xc0944$5M\x9b\ \x0e\x04\x02\x05\xaa\xaa\xce\xeb\x10\x0e\x87y\xff\xfd\xf7\xa9\xaf\xaf\xa7\ \xb2\xb2\x92\x9b7o\xce\xdb\x17t]OG^\xd34z{{ill\xccZ\x86\xc3\xe10\xfd\xfd\xfd\ 3\x9d\x9d\x9dGo\xdc\xb8\xd1\x96\x12?\x8a\x15\xf9Y,\xfb$\x00CJi.\xfc\xfe\xbc+\ \xa5\x10\xc2\xbe\xf9\xe9@q \x10xl\xc7\x8e\x1d\xef\x94\x97\x97\x07\x8a\x8a\ \x8a\xd2\xfd4M\xc3\xedv\xe3v\xbb\t\x04\x02<\xfd\xf4\xd3\xdc\xbbw\x8fP(\x04@I\ I\t\x85\x85\x85\xb8\xddn\xce\x9c9\xc3\xe5\xcb\x97\xb3\xc4)m\x99\xfe\xa6\xa6\ \xa6wb\xb1\xd8\xadT\xd4\xc7\x80),\xdb\xc42"\xbfH|6\x00\x91\x02\xf0\x00k\x802\ `c}}\xfd\xaf***v\x95\x97\x97+\x8a\xa2\xe0v\xbb\xf1x`m\nb\xfd\x96-[\x9e\xd9\xb6m\xdb\xcf\xaa\xaa\xaa\xbc>\x9f/}\xb6\xf1x """ label = _t('Write Tag') author = 'Stani' email = 'spe.stani.be@gmail.com' version = '0.1' tags = [_t('metadata')] __doc__ = _t('Write new value to a tag') def interface(self, fields): fields[_t('Tag (Exif, Iptc)')] = self.ExifItpcField( 'Exif_Image_Copyright', choices=self.EXIF_IPTC) fields[_t('Value')] = self.CharField('Phatch') def apply(self, photo, setting, cache): info = photo.info tag = self.get_field('Tag (Exif, Iptc)', info) value = self.get_field('Value', info).strip() if value == '': value = None info[tag] = value return photo icon = \ 'x\xda\x01\xda\x0c%\xf3\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\ \x00\x000\x08\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00\x0c\x91IDATh\x81\xd5\x9ayp\x15\xd7\x95\xc6\x7f\xf7\ \xden\xbd\xf7$\x84v\x04BB\xb2\xd8\xc4\x8e\x11`D\x1c\x83\x8d\xe3\xd8Il&\xb30\ \xc58N\xaa\x92\x1a(/\xa1\xe2)\x8f\xe3\xa4\xca\x1e/\xb1\x13\xaa28\xa1\xe2\x05\ ;\xd4\xd48C\x88\t`\x03\xb6\t\x06l\xb3\x1b\x8c-\xb3\x19c),\x12B\xdb{Z\x91\xf4\ \xb6\xee;\x7f\xf4{O\xad\x15\x81I\xa5\xdc\xafn=\xa9u\xba\xfb\xfb\xee\xf9\xce\ \xb9\xe7\xdc\x96\xd0Z\xf3U>\xe4\xdf\x1b\xc0\x97=\xbe\xf2\x04\x8c\xbf7\x00\ \xf7!\x10b\xe1y<\x89\x13ED\xdfGG\x07\xbd\xe6Zc`\xf1\xe2\xc5y\x05\x05\x05\xf3\ \xc7\x8d\x1bw[WWWSEE\xc5\xae@ \xf0\xf1\x96-[\xda\xaf\xe5~\xdfj\x12\xc3\x8d0\ \x1f\xa3\x19\xe7:\x1d\xd2\xf0\x93m\xa3\xf4\xcb\x03]w\xd5\x04V\xacXq\xef\x82\ \x05\x0bV\x17\x17\x17gvvvR]]\x8dR\x8a\xec\xecl\xa2\xd1(\x15\x15\x15\xe5\xfb\ \xf6\xed\xbbo\xfd\xfa\xf5\xa7\xae\xe6\xbe\xf7\x9c\x13w\xd8\x82\x1d\xfd\xfc\ \xe9\xfd\xb7\x8a\xf4m_\x9a\xc0\xe2\xc5\x8bs\x17.\\\xb8c\xd6\xacY3\xf6\xee\ \xdd\xcb\xe1\xc3\x87\xb1,+\x18\x0c\x06\xab\x01\xc3\xeb\xf5f{\xbd\xde\xd4y\ \xf3\xe6QTTd\x97\x97\x97\xff\xcf\xca\x95+\xff]\x0f\xf1\x01\xdf>#\xee\xd4\x82\ \xed}\xfe\xa0\xd9\xf3\xceD\xbdp\xa0\xeb\xfa\x8d\x01!\x84\xc0\tp\x010e\xca\ \x14\xb9d\xc9\x92wG\x8c\x181}\xf5\xea\xd5\xe1\xca\xca\xca\xbf\xd4\xd5\xd5U\ \xfa\xfd\xfe\x06\xdb\xb6-\xc0\x06TFFFFcc\xe3\x1d\xf9\xf9\xf9\xb3\x16-Z\xf4\ \xa3\xe5\xcb\x97\xfb\x85\x10?\x1b\n\t+\x04Z\x0c\x85\xea\x15\x08\x08!$\x90\ \x04$\x17\xdc\xc7\xa8$/\xe6\xdc\xe8\xdc\x15\xc5\xc5\xc5\xd37n\xdc\xd8r\xe8\ \xd0\xa1\xd7\xeb\xeb\xeb?\x07j\x80z\xc0\x0f\x04\x81\xe4\xe6\xe6\xe6\xe1\x07\ \x0e\x1c89f\xcc\x982\xc30\x96M\x9f>\xfd\xd1\xc5\x8b\x17\xef\x17B\xbc\xdd\x9b\ \xc4]\x1f\x8a\xa2\xa8\xc1KZ0\n@hR\x07\xc08\xfb\xf6\x8f\xc5\xa71\x9b(\x82\xb5\ ;K\xf5K\xfd\x12p\x81\x1f1\xe7U\xee\xf7\xe6\xf1\xcfB\x8a\xb1\xc5\xe57\xb0\xf7\ \xa3\xdd\xd1\xbfN\xda~!gNh\xc2\xe8\x0c\xd2\xa4AXHl\xc0FbI\x93H\xcd\x1bl\xbb\ \xb8\x99CUUUg\x8e\x1c9\xa2322\x1e\xcc\xce\xce~\x02\xd8\x01D\xdc\xcf\x8aX|_\ \xdb\xdc\x19\xff}\x10\x17\xa5\x003\\6c\x81\xbe\x04\\\xb2IF16g\x01?6\xd3I\xd1\ g\xd3\xf0\x18^\x02\xa5\x87\x8d\xe2\xbbB3\x06~\x0ed\xdf\xcc\x0f\xd2\xa6\xb2\ \xf2\xd4\xd3\xbc^QQ\xb1\xb6\xa4\xa4\xe4\xeb\xb9\xb9\xb9Sc Z\xdc\xb6V\x88d\ \xaeA2\x80\xcf\xfdK\xef\x85L\x02>e2\xdaH%\x05\xc0<\x9fKKk\x0bU\r\xe7t\xd3\ \x87\x10\xed\x18\xf8\xceF\n)\xe3\x1e\x94O}m\xa3Ze\xa6a\xd6\xd4\xd4\xbc\xa1\ \xb5\xf6M\x9a4i\xb6\x10B\xb9m\xed\x08X\xe1k\x1b\x83\x11P@r\xce\x02&\xc7\x1f\ \xd7z\\DZ[Z\x83G\x1f\r\xbevt9/W\xfe\x8e\xe6Hs_\xf0\x02\x89\xc2\xc0\x10\x86\ \x18\xb5\xc0\xf8\xf6\xed;=\x1b:\xb2.u\xb6\xb7\xb7c\xdbv!`\xba\xed\xa3A\xb0C\ \xd76\x06" p$\x95\x9aw7\xdf\x01\xd0\x16\xd4\xec\x8c\xec\x0f\x85B\xde\x82\xfc\ \x82c]\r\xbcW\xf1"/\x04\x0e\x12\xee\xbe\xc8\x01\xae0P"60I\xbb!\xe9\x86\xe9/v\ =\xed\xb7.^hkk\x1b\x0e\xf8\x84\x102&U\xec0\x07\xed\x10\xfa\x1a\x08\x1c\xeeC \ vS\x05$g\xcc\xa6\xd8\x97\xcfd\x00\xa1 \xe9k~\x11\x08\x04())\xb9\x05\x8bKv\ \x88F_\x11vO\xe0&\x860Q\xc4\x87C\xc2\x93a\xf8F\xbf\\1f\xc2\xaf:\x96\x98i\x14\ \x03\xa9\x80\x12B\x88C\xff\xa2\xb7j\x8bb;LYl<\xdc\xafdB\x94\xc7m\xac s<9,\ \xea\xe1y\xadu<\xfb\xf8\x80\xfcY/\xf0\x9b\x94b\xee\xcc,u\x0cB~\xac\xae\'g7{[\ 3}\x17}\'\xd6\xa5|\xb7v\xee\xe8\xbb\xd4L\x81D\t\x85@"\x89\x7fK\x84\x90\x08$"\ v\x06\x04\x02\xc1\xe5*\xeb\xc2\x91\xffj~\xf8\xc2\xb6\xf0A\xa0\x19\x88j\xad\ \xed8\x90\xb9k\x07X\xc8`\xcfG?\x1cd!s\xcd~JF\x19cS\xc7q\xabp\xa9\xd5\x93\x8d\ \xf2\xfc\xeeh\xb6\xb6a\xbc\x14\xcb$\x06\xd2\x05\\\xc6\t\x08I\xc7\x17\x12\xc3\ #I)\x94\t\xf0\x12\tB\x90^\x98Tx\xeb\x0b\x9eug\xca\xdaW\x1d\xfay\xf3\xef\x81\ \x06!D\x10\xd0Zkm\x85b"\xbe\xca#\x1e\x03\x060l\xe2\xfd\xfc\x08\x85Gz\xfb1\ \x94\x928x\x89J\xc8\xc79g \xc2\x06g\x9e38\xb2\xd4\xa0a\xbbs\xce\x10&R\x18\t[\ _\x8a\xc77cY\xf6\xcf\xef~+o\x8d\x99\xcex\\\x92\xd2\x16Uv\x18z\x0f+D\xd5`\x04\ T\x8cD\x12\x90=\xea;\xdci\xa61!)\r\xcc\xe1\xddF\xf1\xd9V\xa2\x1bx\x12i\xe1<\xd0\x01\ XC%\x11\xcfB\ng\xb9/@1c\xe6\xafy"i\x04\x133\xa7*R\xf3\xcc\x18p\xc3\x05\xde\ \xf9\xb9\xe5\xb0\xe2\xf8\xc3\x8a\xd1wK&<\xa4\xf0\x0cW\x08[\xd2z\\\x12\xd8+\t\ \x1c\x90Xm\x12\xb4\xa0\xe4Q\xc1\xc8\xdb\x85\x0b\xbc ^\xddh4\xad\x17\xbb\xaa\ \xf7\xa0@Kr\x17H\xd2J$U\xeb$)c$\xd3\x9e\x16HS\xf4\x98\xfd\x84\x17\xd0\ \x80&\xdc\x19\r\x1e[\x7f\xe9\xf9\xdd\x8fT\xbf\xc2\x10%%\xe3n\x04\xa2@;Qj;\ \xces\xaa~\'o\xa7\x14BWK\x98\x9a\x0f\x82\x10\x91\t\xd9HW0{\x87\x1b\xe8\x0e\ \x83\x86\xb7\x9d\xa0N\x9fb\xa0\xa4A\xfa\x04\x93\xdaM&\xbe,\x83\xe9\x8f\x1b\ \x18\xa6c/\xa2\x06\x06fb\xb8\xb3\x997\xd9\xe3\x9d\xf3\xc3\xc2\xc7\x96\xfee\ \xd2\xef{g\xa9A=\x00=V\xe3a@!\x8a\x19\xf3\xff\xcc3\xbeQ\x8c\t\x07 \xdadPtS\ \x16)\xd9\xdeD\x1au{"A\x0eE\xd5:I\xcd\x06E\xf2(\xc9\xcc\x95\x12m\t\xea\xde\ \x924\x1d\x16\x84\x03\x02#\x05\xb2\xca\xa0\xe0_\xc1L\x8b\xfb@\xa3\xb5\x8d\ \x8d\x8dF\xd3\\s\xf9\xe2{OV\xfe\xe4J\x92\xea\xd1R\xc6H$\x01\x99\x18L\xc8*\ \xe5\xf6\x1bW\xf3\x98\x06#\xda\x0e\xc1\x1aA\xde\xf8\x1cFNL\xeb+)\x17\x99/VJ.\ \x9fV\xcc\xf8\xa5$\xdc \xa9\xfc\xadD\xf9\x04#\xbf!\xc8,\x15tU\x0b.ms\xf2\xfc\ \xd4\xe74\xd2\xebH\xc8\x01o\'\x88\x84:\xc3\xc1\xf2\xf5\xd5\xcf\xef~\xa4zMLR\ \xa1\xde$\xfa\xf4\xc4\xb1\xb2"\x19\x18\x85b\xea\xb4gyh\xe4\x1d\xdc\xa6\xa3`\ \x05!T\x07\xa9\xdet\xc6\xcf\x1b\x8d2\x8c>\x9e\x90(\xec\xcb\x8ah\x8b"e\x94\ \xe4\x93\x07$\x86O2\xf5\t\x89\xe1\x15\xb4\x9d\x12d\xdd\x04!?\x9c]\x0bc\x97\ \x83\x91f\xc7|`\xc7h\xc4\xbe\xb5ETGu\xd5\xc7\xfew7\xdd{\xfa\xc1P\x03\xd5@\ \xc4\x1d\x13\xfdmli\x9c\xe0i\xc2\xa2\xea\xb3\xa7\xf9S\xd8\x8f_\x18`$\x837\ \x1f:U\x0b\xc7w\x9d%\xd4n\xf5\x89\t%\x0c<\xa9\x06\xa9\x05\xb1\xcaT\x9bx\xbc&\ \xbeL\x83\xcb\'L\xce\xaf1\xb8\xf0\x8a\x89/\xcbd\xeaOM\xbc\xe9\xce\x8a\xadDw,\ \xb8\'\xc5\x10\x86\x18sc\xf67\x16\xfd\xa2hIL\x1d}\x83\xb8\x07z\x87\x9d\x85\ \x93\x8f\xeb\xad0\xe7*^\xe4\x8fB\xa0\x85\x04\xe5\x05\xcf\x08\x90\xb9]\x1c\ \xdf\xff9\x81\xea\xb6>\x12\x8a\x931\x0c\x83\x89\x0f\x19\x104\xa8\xf8\xa5I\ \xcd\x9f\x9c\xe0\xce\xfbf\x0c4=A\xc7\xcbq\xe9\x8a\xa7H\x87\x1d\xd9\xf9\xd4\ \x17k\xdfYv~[\x0c\xd7\xc01\xd0KJ*&\xa5|\x14\xd3f\xbf\xcc\x7ff\xcde\xb6\xd6\ \x80\r\xdav$\x15\xac\x83\xbc\xcc1\x94\xcc\x1c\x87\x92\x03H\xaaK\xd2\xf6\xa9S\ \xa1f\xcf\x93=\xa6M\xebn\xf98\x1f\xcb\x19\xda"P\xd3zy\xe3\xfd\xe5/U\xefm\xdf\ \x02|\x0e\xb4\xd2k\x91\x1b\x8c@\xbc\xc1I\xc7\xa4\xd8\x93M\xd9\xcd\x9by\xc6\ \x18\xc60ba\xa4m\xa75\x0c7\x81/\x94I\xe9M7\x92\xecM\xee\x11\xdc\x02\x99(;\ \xe2ev|-\xd0\x89O\x0c\xbc\xb6\x12\x04\xce~r\xa9n\xdd\xd2\x8f~\xddQ\x17\xdd\ \x03\x9c\x07\xda\xe8\xa5\xff~%\xd4\x8f\x94.\x13\xa1.\xd4\xc0\x99\x0b\xff\xcb\ f\xa1\x9cFG(\x10\x06(\x1fxGB$\xb3\x89\xfd\xfb\xf7\xd3\xd4\xd8\xd2C\x02\xcaU\ \x8d\xc6\x1b\x1d\xe9\x96Mb\xc4\xbc\xa6\x15\x9f\xbc\xf1\xd7\x93\xaf,:\xf4XG]t\ \x07P\x19\x9b\xf9>\xe0\x07\xf5\x80\xcb\x0b\x12gm(@1c\xfe\x06\x1e\x1f>\x99\ \x89\xb1)\xec&\x1c\x93T\xa8V0!w:\x93\'N\xe9\xd7\x13}=\xd0=\xf3\xc1`\xc8\xda\ \xfe\xdb\xc3\xbb\xde{\xb6r\rp\x1c\'uv1Hmt\xc5\xad\xc5^e\xc6\xf8\xb4I,\x98\ \xb7\x8e\xc7\xa5\xc7\xb5\x8b\x9c`\x01:\x02A?dF\n\x98_z\x0b^\xd3\xd7+&\xa4\ \xcb\\\'$\xd3\x1ch\r\xfd\xf1?>\xf8\xc3\xc9\xcd\xb5\x1bp\xf4\xee\x07\xc2\x80}\ \xc5Rb\xb0\xa3w\x99\xd1\xfa\x19\'.\xbe\xc9N\xa1@\xc8^\xc3\x00\xe9\x83\xe4\ \xd1\xd0\x96^\xcd\xbbG\xb6\xd2\xd2\xda\xdc#\xcd\xcaX\x0f\xed\xaenkkj#\xcf\ \x7fs\xeb\xaa\x93\x9bk_\x03N\x00\x8d8\x8b\xd6\x15\xab\xd2\xa1\xbe\xe0\xd0\ \xb1\xd9h\xc2\xa2\xfa\xd4/\xd8\xdcYEM\x0f\x12\xaa\xfb[&\x81\'\x1bda;\xbbN\ \xbfIe\xd5\xe7\t\t)\xe1\xd4B\xf1f\xe8\xe4\xd9r\x0e4n5s\xbf\xdf\x11\x01.\xe0l\ \x80\x85\x87R\x89\x0e\x99\x80+\xa0;\x81zl\xce\x9f~\x8e\xff\x03\xacD@\xf7C\ \xc2L\x85\x94\xb1\x16\xe5m\xef\xb1\xef\xc4Nl\xcbNxA\xdb\x9a\x0f\x8e\xbd\xc3\ \xa9\xf0>\x92\x8b4E\xdf\xe3\x81\x91\xf70\xcc5aC:\xae\xea\xfd\x80\xab\xcc\xc8\ C1\xad\xf4%V\xe4\xdd\xc5-\xdd\x06nc\x87\x0c8\x01\x1e\x0e\x80\xa71\x87;\xa6\ \xfd\x13I\xca\xc3;\xc76\xd0\x95]KR\x16\xc8\xd8&B\xb0\x9e\xf5;\xa6\xb1\x0c\ \xe8\x1c\xaa\x07\xae\x96@|m\x18\x0e\x14\x9b\x99\x94\xde\xba\x9bg=#\xc8\xec\ \xb6!\xd1\xe7\tW\x07\xa9-\x88\xb6C4\x90\x84)M\xec\xf4\x0e\xcc\xe1\x0e\xc9\ \xce*\xce\xb5}\xc6\xce\xda\xad\xbcV\xb5\x89\xe3@\xc7\xdf\x84\x80\x8b\x84\x07\ \xa7\x05-)\xba\x97\xefN\xff\x15\xf7\xc7\x81\nw\xc3\xd5\xeb\xd06\x897^\xc1Z\ \xea\xfc\x87)?\xff\x07\xf66\x1f\xe5\x0c\x16\x17q\xb6\xec\x9b\xb8\x8a\x18\xb8\ \xa6wd\xae\x164\x1f\xc5\xb4\xf9\x7f\xe6\xb1\x9c\x9b\x99y\xa5\xeb\xba\xea\xf1\ 7\x1d\xe4\xd3\xaa\xd7\xd9\xdf\xb0\x873\x08\x02\x08\x9a\x89\xd0\x82\xb3Xu\x00\ !\xae\x90:\xaf\x07\x81\xf8\xda\x90\x1ekA\xcb\x16\xbe\xcb3F*\xc9\xbdm\xc3\x01\ Z\x02\x1fr\xbcz\x13\x07j\xb7s\xb2\x17\xe8\xcb8\x89!\x8c\xf3\xfe\xc0\xe2jw%\ \xae\xf5-e,\xa0\xbd@.\x8aI\x93\x7f\xc6\xbf\x8d_\xc1\xbd\x00\x91\x16\xda\x03G\ 9yi\x0b\x07\xab7\xf2)\x10@\xd2D\x84V\xa0=\x06:\x84\xb3\xbeX8Y\xe7\xaa\x80_\ \x0f\x02\xee\x16t4\x8aq\xb3\xd7p_\xd3\x87T\x9d}\x8dcX\xf8\x114\x11\xa5\xa5\ \x17\xe8\xc4L_+\xe8\xebB\xc0E\xc2\xc4i\xbe\xb3q\xb2\x138Z\xee\x0f\xb4\xcdu\ \x00\xdd\x03\xc3\x97\xbdWLJ\x06Nf2q@F\xf9\x1b\x82\xee\xf1\xfc\xebq\xdf\x98\'\ \xdc\xfb\x86\xd7E\x1eCz\xf6W\xfd\xdfm\xfe\x1f1G\xd5R[\x10\xbd*\x00\x00\x00\ \x00IEND\xaeB`\x82\xc7\xf02\xd5' phatch-0.2.7/phatch/app.py0000644000000000000000000001632011346363116015334 0ustar rootroot00000000000000# -*- coding: UTF-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import os import optparse import sys import urllib from data.info import INFO from core import config VERSION = "%(name)s %(version)s" % INFO def fix_path(path): #TODO: move me to lib/system.py if path.startswith('file://'): return urllib.unquote(path[7:]) return path def parse_locale(config_paths): if '-l' in sys.argv: index = sys.argv.index('-l') + 1 if index >= len(sys.argv): sys.exit('Please specify locale language after "-l".') canonical = sys.argv[index] else: canonical = 'default' config.load_locale('phatch', config_paths["PHATCH_LOCALE_PATH"], canonical) def parse_options(): parser = optparse.OptionParser( usage=""" %(name)s [actionlist] %(name)s [options] [actionlist] [image folders/files/urls] %(name)s --inspect [image files/urls] %(name)s --droplet [actionlist/recent] [image files/urls]""" % INFO + """ %s: phatch action_list.phatch phatch --verbose --recursive action_list.phatch image_file.png image_folder phatch --inspect image_file.jpg phatch --droplet recent""" % _('Examples'), version=VERSION, ) parser.add_option("-c", "--console", action="store_true", dest="console", default=False, help=_("Run %s as console program without a gui") % INFO['name']) parser.add_option("-d", "--droplet", action="store_true", dest="droplet", default=False, help=_("Run %s as a gui droplet") % INFO['name']) parser.add_option("--desktop", action="store_true", dest="desktop", default=False, help=_("Always save on desktop")) parser.add_option("-f", "--force", action="store_false", dest="stop_for_errors", default=True, help=_("Ignore errors")) parser.add_option("--fonts", action="store_true", dest="init_fonts", default=False, help=_("Initialize fonts (only for installation scripts)")) parser.add_option("-i", "--interactive", action="store_true", dest="interactive", default=False, help=_("Interactive")) parser.add_option("-k", "--keep", action="store_false", dest="overwrite_existing_images", default=True, help=_("Keep existing images (don't overwrite)")) parser.add_option("-l", action="store", dest="locale", default='default', type="string", help=_("Specify locale language (for example en or en_GB)")) parser.add_option("-n", "--inspect", action="store_true", dest="image_inspector", default=False, help=_("Inspect metadata (requires exif & iptc plugin)")) parser.add_option("--no-save", action="store_true", dest="no_save", default=False, help=_("No save action required at the end")) parser.add_option("-r", "--recursive", action="store_true", dest="recursive", default=False, help=_("Include all subfolders")) parser.add_option("-t", "--trust", action="store_false", dest="check_images_first", default=True, help=_("Do not check images first")) parser.add_option("--unsafe", action="store_false", dest="safe", default=True, help=_("Allow Geek action and unsafe expressions")) parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False, help=_("Verbose")) options, paths = parser.parse_args() paths = [fix_path(path) for path in paths if path and path[0] != '%'] return options, paths def reexec_with_pythonw(f=None): """'pythonw' needs to be called for any wxPython app to run from the command line on Mac Os X.""" if sys.version.split(' ')[0] < '2.5' and sys.platform == 'darwin' and\ not (sys.executable.endswith('/Python') or hasattr(sys, 'frozen')): sys.stderr.write('re-executing using pythonw') if not f: f = __file__ os.execvp('pythonw', ['pythonw', f] + sys.argv[1:]) def console(config_paths): main(config_paths, app_file=None, gui=True) PYWX_ERROR = """\ Only the command line package 'phatch-cli' seems to be installed. Please install the graphical user interface package 'phatch' as well. """ def import_pyWx(): try: from pyWx import gui except ImportError: sys.exit(PYWX_ERROR) return gui def _gui(app_file, paths, settings): reexec_with_pythonw(app_file) # ensure pythonw for mac gui = import_pyWx() if paths: actionlist = paths[0] else: actionlist = '' gui.main(settings, actionlist) def _init_fonts(): config.verify_app_user_paths() from lib.fonts import font_dictionary font_dictionary(force=True) def _inspect(app_file, paths): reexec_with_pythonw(app_file) # ensure pythonw for mac gui = import_pyWx() gui.inspect(paths) def _droplet(app_file, paths, settings): reexec_with_pythonw(app_file) # ensure pythonw for mac gui = import_pyWx() gui.drop(actionlist=paths[0], paths=paths[1:], settings=settings) def has_ext(path, ext): return path.lower().endswith(ext) def _console(paths, settings): from core.api import init init() from console import console if paths and has_ext(paths[0], INFO['extension']): console.main(actionlist=paths[0], paths=paths[1:], settings=settings) else: console.main(actionlist='', paths=paths, settings=settings) def main(config_paths, app_file): """init should be called first!""" parse_locale(config_paths) options, paths = parse_options() from core.settings import create_settings settings = create_settings(config_paths, options) if settings['verbose']: from lib import system system.VERBOSE = True if 'safe' in settings: from lib import formField formField.set_safe(settings['safe']) del settings['safe'] if settings['image_inspector']: _inspect(app_file, paths) return if settings['init_fonts']: _init_fonts() return else: config.check_fonts() if paths and not (paths[0] == 'recent' or \ has_ext(paths[0], INFO['extension'])): settings['droplet'] = True paths.insert(0, 'recent') if settings['droplet']: if not paths: paths = ['recent'] _droplet(app_file, paths, settings) elif len(paths) > 1 or settings['console'] or settings['interactive']: _console(paths, settings) else: _gui(app_file, paths, settings) if __name__ == '__main__': main() phatch-0.2.7/phatch/console/0000755000000000000000000000000011346363116015642 5ustar rootroot00000000000000phatch-0.2.7/phatch/console/__init__.py0000644000000000000000000000144111346363116017753 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatchrecommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 phatch-0.2.7/phatch/console/console.py0000644000000000000000000001446711346363116017672 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 #---import modules #standard library import os import sys if __name__ == '__main__': sys.path.insert(0, '../..') from phatch.phatch import init_config_paths init_config_paths() #gui-independent from core import api, ct from core.message import FrameReceiver, ProgressReceiver from lib import formField from lib import safe from lib.unicoding import ENCODING #api.init() #---functions def u(txt): return txt.encode(ENCODING, 'replace') def ask(message, answers): answer = None while not(answer in answers): answer = raw_input(u(message)).strip().lower() return answer def ask_yes_no(message): return ask(message, [_('yes'), _('no')]) == _('yes') #---classes class CliMixin: def show_error(self, message, exit=True): self.show_message(u'\n%s: %s' % (_('Error'), message)) if exit: self.exit() def show_message(self, *messages): self.write(u'\n'.join(messages) + '\n') def show_notification(self, message, *args, **keyw): self.show_message(message) def write(self, message): if self.verbose: self.output.write(u(message)) self.output.flush() def exit(self): sys.exit() show_info = show_message class Progress(CliMixin, ProgressReceiver): def __init__(self, title, parent_max, child_max, verbose, output, \ message=''): ProgressReceiver.__init__(self, parent_max, child_max) self.verbose = verbose self.output = output self.previous = 0 self.write(u'\n%s ...\n' % title) def close(self): self.erase() self.unsubscribe_all() #self.show_message('done!') #self.previous = 0 del self def erase(self): self.write('\b' * self.previous + ' ' * self.previous + \ '\b' * self.previous) def update(self, result, value, newmsg=''): if self.verbose: #erase previous self.erase() if newmsg: self.write(newmsg) percent = int(100.0 * value / self.max) hpercent = percent / 2 message = '%3d%% [%s%s]' % \ (percent, '=' * hpercent, ' ' * (50 - hpercent)) self.write(message) self.previous = len(message) result['keepgoing'] = True class Frame(CliMixin, FrameReceiver): Progress = Progress def __init__(self, actionlist, paths, settings, output=sys.stdout): self.verbose = settings['verbose'] or settings['interactive'] self.settings = settings self.output = output self._pubsub() data, warning = api.open_actionlist( self.verify_actionlist(actionlist)) if formField.get_safe(): if warning: raise safe.UnsafeError(warning) else: self.show_message(warning) report = api.apply_actions_to_photos(data['actions'], settings, \ paths=paths) def append_save_action(self, actions): self.show_error(ct.SAVE_ACTION_NEEDED, exit=True) def verify_actionlist(self, actionlist): if actionlist: return actionlist if self.settings['interactive']: while not(os.path.splitext(actionlist)[1].lower() == ct.EXTENSION and os.path.isfile(actionlist)): actionlist = raw_input(_('Action list') + '(*%s) : '\ % ct.EXTENSION).strip().lstrip('file://') return actionlist else: self.show_error(_('No action list provided.'), exit=True) def show_execute_dialog(self, result, settings, files=None): """To be overwritten.""" if not settings['paths'] and settings['interactive']: settings['paths'] = raw_input(_('Image paths') + ': ').strip() if not settings['paths']: self.show_error('No image paths given.', exit=True) result['cancel'] = False def show_files_message(self, result, message, title, files): if self.verbose: self.show_error(message + '\n' + '\n'.join(files), exit=False) if self.settings['interactive']: if ask_yes_no(_('Do you want to continue?') + \ ' (%s/%s) ' % (_('yes'), _('no'))): self.exit() result['cancel'] = False def show_progress(self, title, parent_max, child_max=1, message=''): self.progress = self.Progress(title, parent_max, child_max, self.verbose, self.output, message) def show_progress_error(self, result, message, ignore=True): self.show_error(message, exit=not self.settings['interactive']) result['stop_for_errors'] = True result['answer'] = ask(_('What do you want to do now?'), [_('abort'), _('skip'), _('ignore')]) def show_scrolled_message(self, message, title, **keyw): self.show_message(title + '\n' + message) def show_image_tree(self, result, *args, **keyw): #ignore this, not useful for server result['answer'] = True def show_status(self, message, *args, **keyw): #already done by notification #self.show_message(message) pass def example(): Frame('/home/stani/sync/python/phatch/action lists/test_all.phatch', interactive=True, \ path=['/home/stani/sync/python/phatch/test images/building/IMGA3166.JPG']) def main(actionlist, paths, settings): Frame(actionlist, paths, settings) if __name__ == '__main__': example() phatch-0.2.7/phatch/core/0000755000000000000000000000000011346363116015130 5ustar rootroot00000000000000phatch-0.2.7/phatch/core/__init__.py0000644000000000000000000000144211346363116017242 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 phatch-0.2.7/phatch/core/api.py0000644000000000000000000007260511346363116016265 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2009 www.stani.be # # 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 http://www.gnu.org/licenses/ # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Follows PEP8 try: _ except NameError: __builtins__['_'] = unicode #---import modules #standard library import codecs import glob import operator import os import pprint import string import time import traceback from cStringIO import StringIO from datetime import timedelta #gui-independent from data.version import VERSION from lib import formField from lib import metadata from lib import openImage from lib import safe from lib.odict import ReadOnlyDict from lib.unicoding import ensure_unicode, exception_to_unicode, ENCODING import ct import pil from message import send #---constants PROGRESS_MESSAGE = 'In: %s%s\nFile' % (' ' * 100, '.') SEE_LOG = _('See "%s" for more details.') % _('Show Log') TREE_HEADERS = ['filename', 'type', 'folder', 'subfolder', 'root', 'foldername'] TREE_VARS = set(TREE_HEADERS).union(pil.BASE_VARS) TREE_HEADERS += ['index', 'folderindex'] ERROR_INCOMPATIBLE_ACTIONLIST = \ _('Sorry, the action list seems incompatible with %(name)s %(version)s.') ERROR_UNSAFE_ACTIONLIST_INTRO = _('This action list is unsafe:') ERROR_UNSAFE_ACTIONLIST_DISABLE_SAFE = \ _('Disable Safe Mode in the Tools menu if you trust this action list.') ERROR_UNSAFE_ACTIONLIST_ACCEPT = \ _("Never run action lists from untrusted sources.") + ' ' +\ _("Please check if this action list doesn't contain harmful code.") #---classes class PathError(Exception): def __init__(self, filename): """PathError for invalid path. :param filename: filename of the invalid path :type filename:string """ self.filename = filename def __str__(self): return _('"%s" is not a valid path.') % self.filename #---init/exit def init(): """Verify user paths and import all actions. This function should be called at the start.""" from config import verify_app_user_paths verify_app_user_paths() import_actions() #---error logs def init_error_log_file(): """Reset ERROR_LOG_COUNTER and create the ERROR_LOG_FILE.""" global ERROR_LOG_FILE, ERROR_LOG_COUNTER ERROR_LOG_COUNTER = 0 ERROR_LOG_FILE = codecs.open(ct.USER_LOG_PATH, 'wb', encoding=ENCODING, errors='replace') def log_error(message, filename, action=None, label='Error'): """Writer error message to log file. Helper function for :func:`flush_log`, :func:`process_error`. :param message: error message :type message: string :param filename: image filename :type filename: string :param label: ``'Error'`` or ``'Warning'`` :type label: string :returns: error log details :rtype: string """ global ERROR_LOG_COUNTER details = '' if action: details += os.linesep + 'Action:' + \ pprint.pformat(action.dump()) ERROR_LOG_FILE.write(os.linesep.join([ u'%s %d:%s' % (label, ERROR_LOG_COUNTER, message), details, os.linesep, ])) try: traceback.print_exc(file=ERROR_LOG_FILE) except UnicodeDecodeError: stringio = StringIO() traceback.print_exc(file=stringio) traceb = stringio.read() ERROR_LOG_FILE.write(unicode(traceb, ENCODING, 'replace')) ERROR_LOG_FILE.write('*' + os.linesep) ERROR_LOG_FILE.flush() ERROR_LOG_COUNTER += 1 return details #---collect vars def get_vars(actions): """Extract all used variables from actions. :param actions: list of actions :type actions: list of dict """ vars = [] for action in actions: vars.extend(action.metadata) for field in action._get_fields().values(): safe.extend_vars(vars, field.get_as_string()) return vars def assert_safe(actions): test_info = metadata.InfoTest() geek = False warning = '' for action in actions: warning_action = '' if action.label == 'Geek': geek = True for label, field in action._get_fields().items(): if label.startswith('_') \ or isinstance(field, formField.BooleanField)\ or isinstance(field, formField.ChoiceField)\ or isinstance(field, formField.SliderField): continue try: field.assert_safe(label, test_info) except Exception, details: warning_action += ' %s: %s\n'\ % (label, exception_to_unicode(details)) if warning_action: warning += '%s %s:\n%s' % (_(action.label), _('Action'), warning_action) if warning: warning += '\n' if geek: warning += '%s\n' % (_('Geek actions are not allowed in safe mode.')) return warning #---collect image files def filter_image_infos(folder, extensions, files, root, info_file): """Filter image files by extension and verify if they are files. It returns a list of info dictionaries which are generated by :method:`InfoPil.dump`:: {'day': 14, 'filename': 'beach', 'filesize': 9682, 'folder': u'/home/stani', 'foldername': u'stani', 'hour': 23, 'minute': 43, 'month': 3, 'monthname': 'March', 'path': '/home/stani/beach.jpg', 'root': '/home', 'second': 26, 'subfolder': u'', 'type': 'jpg', 'weekday': 4, 'weekdayname': 'Friday', 'year': 2008, '$': 0} ``$`` is the index of the file within a folder. Helper function for :func:`get_image_infos_from_folder` :param folder: folder path (recursion dependent) :type folder: string :param extensions: extensions (without ``.``) :type extensions: list of strings :param files: list of filenames without folder path :type files: list of strings :param root: root folder path (independent from recursion) :type root: string :returns: list of image file info :rtype: list of dictionaries """ #check if extensions work ok! '.png' vs 'png' files.sort(key=string.lower) infos = [] folder_index = 0 for file in files: info = info_file.dump((os.path.join(folder, file), root)) if os.path.isfile(info['path']) and info['type'].lower() in extensions: info['folderindex'] = folder_index infos.append(info) folder_index += 1 return infos def get_image_infos_from_folder(folder, info_file, extensions, recursive): """Get all image info dictionaries from a specific folder. :param folder: top folder path :type folder: string :param extensions: extensions (without ``.``) :type extensions: list of strings :param recursive: include subfolders :type recursive: bool :returns: list of image file info :rtype: list of dictionaries Helper function for :func:`get_image_infos` .. see also:: :func:`filter_image_infos` """ source_parent = folder # do not change (independent of recursion!) # root = os.path.dirname(folder) #do not change (independent of recursion!) if recursive: image_infos = [] for folder, dirs, files in os.walk(folder): image_infos.extend(filter_image_infos(folder, extensions, files, source_parent, info_file)) return image_infos else: return filter_image_infos(folder, extensions, os.listdir(folder), source_parent, info_file) def get_image_infos(paths, info_file, extensions, recursive): """Get all image info dictionaries from a mix of folder and file paths. :param paths: file and/or folderpaths :type paths: list of strings :param extensions: extensions (without ``.``) :type extensions: list of strings :param recursive: include subfolders :type recursive: bool :returns: list of image file info :rtype: list of dictionaries .. see also:: :func:`get_image_infos_from_folder` """ image_infos = [] for path in paths: path = os.path.abspath(path.strip()) if os.path.isfile(path): #single image file info = {'folderindex': 0} info.update(info_file.dump(path)) image_infos.append(info) elif os.path.isdir(path): #folder of image files image_infos.extend(get_image_infos_from_folder( path, info_file, extensions, recursive)) else: #not a file or folder?! probably does not exist send.frame_show_error('Sorry, "%s" is not a valid path.' \ % ensure_unicode(path)) return [] image_infos.sort(key=operator.itemgetter('path')) return image_infos #---check def check_actionlist_file_only(actions): """Check whether the action list only exist of file operations (such as copy, rename, ...) :param actions: actions of the action list :type: list of :class:`core.models.Action` :returns: True if only file operations, False otherwise :rtype: bool >>> from actions import canvas, rename >>> check_actionlist_file_only([canvas.Action()]) False >>> check_actionlist_file_only([rename.Action()]) True """ for action in actions: if not ('file' in action.tags): return False return True def check_actionlist(actions, settings): """Verifies action list before executing. It checks whether: * the action list is not empty * all actions are not disabled * if there is a save action at the end or only file actions * overwriting images is forced :param actions: actions of the action list :type actions: list of :class:`core.models.Action` :param settings: execution settings :type settings: dictionary >>> settings = {'no_save':False} >>> check_actionlist([], settings) is None True >>> from actions import canvas, save >>> canvas_action = canvas.Action() >>> save_action = save.Action() >>> check_actionlist([canvas_action,save_action], ... {'no_save':False}) is None False >>> check_actionlist([canvas_action], settings) is None True >>> settings = {'no_save':True} >>> check_actionlist([canvas_action], settings) is None False >>> settings['overwrite_existing_images_forced'] False .. see also:: :func:`check_actionlist_file_only` """ #Check if there is something to do if actions == []: send.frame_show_error('%s %s' % (_('Nothing to do.'), _('The action list is empty.'))) return None #Check if the actionlist is safe if formField.get_safe(): warnings = assert_safe(actions) if warnings: send.frame_show_error('%s\n\n%s\n%s' % ( ERROR_UNSAFE_ACTIONLIST_INTRO, warnings, ERROR_UNSAFE_ACTIONLIST_DISABLE_SAFE)) return None #Skip disabled actions actions = [action for action in actions if action.is_enabled()] if actions == []: send.frame_show_error('%s %s' % (_('Nothing to do.'), _('There is no action enabled.'))) return None #Check if there is a save statement last_action = actions[-1] if not (last_action.valid_last or check_actionlist_file_only(actions)\ or settings['no_save']): send.frame_append_save_action(actions) return None #Check if overwrite is forced settings['overwrite_existing_images_forced'] = \ (not settings['no_save']) and \ actions[-1].is_overwrite_existing_images_forced() return actions def verify_images(image_infos, repeat): """Filter invalid images out. Verify if images are not corrupt. Show the invalid images to the user. If no valid images are found, show an error to the user. Otherwise show the valid images to the user. :param image_infos: list of image info dictionaries :type image_infos: list of dictionaries :returns: None for error, valid image info dictionaries otherwise """ #show dialog send.frame_show_progress(title=_("Checking images"), parent_max=len(image_infos), message=PROGRESS_MESSAGE) #verify files valid = [] invalid = [] for index, image_info in enumerate(image_infos): result = {} send.progress_update_filename(result, index, image_info['path']) if not result['keepgoing']: return openImage.verify_image(image_info, valid, invalid) send.progress_close() #show invalid files to the user if invalid: result = {} send.frame_show_files_message(result, message=_('Phatch can not handle %d image(s):') % len(invalid), title=ct.FRAME_TITLE % ('', _('Invalid images')), files=invalid) if result['cancel']: return #Display an error when no files are left if not valid: send.frame_show_error(_("Sorry, no valid files found")) return #number valid items for index, image_info in enumerate(valid): image_info['index'] = index * repeat #show valid images to the user in tree structure result = {} send.frame_show_image_tree(result, valid, widths=(200, 40, 200, 200, 200, 200, 60), headers=TREE_HEADERS, ok_label=_('C&ontinue'), buttons=True) if result['answer']: return valid #---get def get_paths_and_settings(paths, settings, drop=False): """Ask the user for paths and settings. In the GUI this shows the execute dialog box. :param paths: initial value of the paths (eg to fill in dialog) :type paths: list of strings :param settings: settings :type settings: dictionary :param drop: True in case files were dropped or phatch is started as a droplet. :type drop: bool """ if drop or (paths is None): result = {} send.frame_show_execute_dialog(result, settings, paths) if result['cancel']: return paths = settings['paths'] if not paths: send.frame_show_error(_('No files or folder selected.')) return None return paths def get_photo(info_file, info_not_file, result): """Get a :class:`core.pil.Photo` instance from a file. If there is an error opening the file, func:`process_error` will be called. :param info_file: file information :type info_file: dictionary :param info_not_file: image information not related to file :type info_not_file: string :param result: settings to send to progress dialog box (such as ``stop for errors``) :type result: dict :returns: photo, result :rtype: tuple """ try: photo = pil.Photo(info_file, info_not_file) result['skip'] = False result['abort'] = False return photo, result except Exception, details: reason = exception_to_unicode(details) #log error details message = u'%s: %s:\n%s' % (_('Unable to open file'), info_file['path'], reason) ignore = False action = None photo = None return process_error(photo, message, info_file['path'], action, result, ignore) #---apply def process_error(photo, message, image_file, action, result, ignore): """Logs error to file with :func:`log_error` and show dialog box allowing the user to skip, abort or ignore. Helper function for :func:`get_photo` and `apply_action`. :param photo: photo :type photo: class:`core.pil.Photo` :param message: error message :type message: string :param image_file: absolute path of the image :type image_file: string :param result: settings for dialog (eg ``stop_for_errors``) :type result: dictionary :returns: photo, result :rtype: tuple """ log_error(message, image_file, action) #show error dialog if result['stop_for_errors']: send.frame_show_progress_error(result, message, ignore=ignore) #if result: answer = result['answer'] if answer == _('abort'): #send.progress_close() result['skip'] = False result['abort'] = True return photo, result result['last_answer'] = answer if answer == _('skip'): result['skip'] = True result['abort'] = False return photo, result elif result['last_answer'] == _('skip'): result['skip'] = True result['abort'] = False return photo, result result['skip'] = False result['abort'] = False return photo, result def flush_log(photo, image_file, action=None): """Flushes non fatal errors/warnings with :func:`log_error` and warnings that have been logged from the photo to the error log file. :param photo: photo which has photo.log :type photo: class:`core.pil.Photo` :param image_file: absolute path of the image :type image_file: string :param action: action which was involved in the error (optional) :type action: :class:`core.models.Action` """ log = photo.get_log() if log: log_error(log, image_file, action, label='Warning') photo.clear_log() def init_actions(actions): """Initializes all actions. Shows an error to the user if an action fails to initialize. :param actions: actions :type actions: list of :class:`core.models.Action` :returns: False, if one action fails, True otherwise :rtype: bool """ for action in actions: try: action.init() except Exception, details: reason = exception_to_unicode(details) message = u'%s\n\n%s' % ( _("Can not apply action %(a)s:") \ % {'a': _(action.label)}, reason) send.frame_show_error(message) return False return True def apply_action_to_photo(action, photo, read_only_settings, cache, image_file, result): """Apply a single action to a photo. It uses :func:`log_error` for non fatal errors or :func:`process_error` for serious errors. The settings are read only as the actions don't have permission to change them. :param action: action :type action: :class:`core.models.Action` :param photo: photo :type photo: :class:`core.pil.Photo` :param read_only_settings: read only settings :type read_only_settings: :class:`lib.odict.ReadOnlyDict` :param cache: cache for data which is usefull across photos :type cache: dictionary :param image_file: filename reference during error logging :type image_file: string :param result: settings for dialog (eg ``stop_for_errors``) :type result: dictionary """ try: photo = action.apply(photo, read_only_settings, cache) result['skip'] = False result['abort'] = False #log non fatal errors/warnings flush_log(photo, image_file, action) return photo, result except Exception, details: flush_log(photo, image_file, action) folder, image = os.path.split(ensure_unicode(image_file)) reason = exception_to_unicode(details) message = u'%s\n%s\n\n%s' % ( _("Can not apply action %(a)s on image '%(i)s' in folder:")\ % {'a': _(action.label), 'i': image}, folder, reason, ) return process_error(photo, message, image_file, action, result, ignore=True) def apply_actions_to_photos(actions, settings, paths=None, drop=False, update=None): """Apply all the actions to the photos in path. :param actions: actions :type actions: list of :class:`core.models.Action` :param settings: process settings (writable, eg recursion, ...) :type settings: dictionary :param paths: paths where the images are located. If they are not specified, Phatch will ask them to the user. :type paths: list of strings :param drop: True in case files were dropped or phatch is started as a droplet. :type drop: bool """ # Start log file init_error_log_file() # Check action list actions = check_actionlist(actions, settings) if not actions: return # Get paths (and update settings) -> show execute dialog paths = get_paths_and_settings(paths, settings, drop=drop) if not paths: return # retrieve all necessary variables in one time vars = set(pil.BASE_VARS).union(get_vars(actions)) if settings['check_images_first']: # we need some extra vars for the list control vars = TREE_VARS.union(vars) vars_file, vars_not_file = metadata.InfoFile.split_vars(list(vars)) info_file = metadata.InfoFile(vars=list(vars_file)) # Check if all files exist # folderindex is set here in filter_image_infos image_infos = get_image_infos(paths, info_file, settings['extensions'], settings['recursive']) if not image_infos: return # Check if all the images are valid # -> show invalid to user # -> show valid to user in tree dialog (optional) if settings['check_images_first']: image_infos = verify_images(image_infos, settings['repeat']) if not image_infos: return # Initialize actions if not init_actions(actions): return # Retrieve settings skip_existing_images = not (settings['overwrite_existing_images'] or\ settings['overwrite_existing_images_forced']) and\ not settings['no_save'] result = { 'stop_for_errors': settings['stop_for_errors'], 'last_answer': None, } # only keep static vars vars_not_file = pil.split_vars_static_dynamic(vars_not_file)[0] # create parent info instance # -> will be used by different files with the open method info_not_file = metadata.InfoExtract(vars=vars_not_file) # Execute action list image_amount = len(image_infos) actions_amount = len(actions) + 1 # open image is extra action cache = {} is_done = actions[-1].is_done # checking method for resuming read_only_settings = ReadOnlyDict(settings) # Start progress dialog repeat = settings['repeat'] send.frame_show_progress(title=_("Executing action list"), parent_max=image_amount * repeat, child_max=actions_amount, message=PROGRESS_MESSAGE) report = [] start = time.time() for image_index, image_info in enumerate(image_infos): statement = apply_actions_to_photo(actions, image_info, info_not_file, cache, read_only_settings, skip_existing_images, result, report, is_done, image_index, repeat) # reraise statement if statement == 'return': send.progress_close() return elif statement == 'break': break if update: update() send.progress_close() if update: update() # mention amount of photos and duration delta = time.time() - start duration = timedelta(seconds=int(delta)) if image_amount == 1: message = _('One image done in %s') % duration else: message = _('%(amount)d images done in %(duration)s')\ % {'amount': image_amount, 'duration': duration} # add error status if ERROR_LOG_COUNTER == 1: message += '\n' + _('One issue was logged') elif ERROR_LOG_COUNTER: message += '\n' + _('%d issues were logged')\ % ERROR_LOG_COUNTER # show notification send.frame_show_notification(message, report=report) # show status dialog if ERROR_LOG_COUNTER == 0: if settings['always_show_status_dialog']: send.frame_show_status(message, log=False) else: message = '%s\n\n%s' % (message, SEE_LOG) send.frame_show_status(message) def apply_actions_to_photo(actions, image_info, info_not_file, cache, read_only_settings, skip_existing_images, result, report, is_done, image_index, repeat): """Apply the action list to one photo.""" image_info['index'] = image_index #open image and check for errors photo, result = get_photo(image_info, info_not_file, result) if result['abort']: photo.close() return 'return' elif not photo or result['skip']: photo.close() return 'continue' info = photo.info info.set('imageindex', image_index) image = photo.get_layer().image for r in range(repeat): info.set('index', image_index * repeat + r) info.set('repeatindex', r) #update image file & progress dialog box progress_result = {} send.progress_update_filename(progress_result, info['index'], info['path']) if progress_result and not progress_result['keepgoing']: photo.close() return 'return' #check if already not done if skip_existing_images and is_done(photo): continue if r == repeat - 1: photo.get_layer().image = image elif r > 0: photo.get_layer().image = image.copy() #do the actions for action_index, action in enumerate(actions): #update progress progress_result = {} send.progress_update_index(progress_result, info['index'], action_index) if progress_result and not progress_result['keepgoing']: photo.close() return 'return' #apply action photo, result = apply_action_to_photo(action, photo, read_only_settings, cache, image_info['path'], result) if result['abort']: photo.close() return 'return' elif result['skip']: #skip to next image immediately continue report.extend(photo.report_files) photo.close() if result['abort']: return 'return' #---common #---classes def import_module(module, folder=None): """Import a module, mostly used for actions. :param module: module/action name :type module: string :param folder: folder where the module is situated :type folder: string """ if folder is None: return __import__(module) return getattr(__import__('%s.%s' % (folder.replace(os.path.sep, '.'), module)), module) def import_actions(): """Import all actions from the ``ct.PHATCH_ACTIONS_PATH``.""" global ACTIONS, ACTION_LABELS, ACTION_FIELDS modules = \ [import_module(os.path.basename(os.path.splitext(filename)[0]), 'actions') for filename in \ glob.glob(os.path.join(ct.PHATCH_ACTIONS_PATH, '*.py'))] + \ [import_module(os.path.basename(os.path.splitext(filename)[0])) for filename in glob.glob(os.path.join(ct.USER_ACTIONS_PATH, '*.py'))] ACTIONS = {} for module in modules: try: cl = getattr(module, ct.ACTION) except AttributeError: continue #register action ACTIONS[cl.label] = cl #ACTION_LABELS ACTION_LABELS = ACTIONS.keys() ACTION_LABELS.sort() #ACTION_FIELDS ACTION_FIELDS = {} for label in ACTIONS: ACTION_FIELDS[label] = ACTIONS[label]()._fields def save_actionlist(filename, data): """Save actionlist ``data`` to ``filename``. :param filename: filename of the actionlist, if it has no extension ``.phatch`` will be added automatically. :type filename: string :param data: action list data :type data: dictionary Actionlists are stored as dictionaries:: data = {'actions':[...], 'description':'...'} """ #add version number data['version'] = VERSION #check filename if os.path.splitext(filename)[1].lower() != ct.EXTENSION: filename += ct.EXTENSION #prepare data data['actions'] = [action.dump() for action in data['actions']] #backup previous previous = filename + '~' if os.path.exists(previous): os.remove(previous) if os.path.isfile(filename): os.rename(filename, previous) #write it f = open(filename, 'wb') f.write(pprint.pformat(data)) f.close() def open_actionlist(filename): """Open the action list from a file. :param filename: the filename of the action list :type filename: string :returns: action list :rtype: dictionary """ #read source f = open(filename, 'rb') source = f.read() f.close() #load data data = safe.eval_safe(source) if not data.get('version', '').startswith('0.2'): send.frame_show_error(ERROR_INCOMPATIBLE_ACTIONLIST % ct.INFO) return None result = [] invalid_labels = [] actions = data['actions'] for action in actions: actionLabel = action['label'] actionFields = action['fields'] newAction = ACTIONS[actionLabel]() invalid_labels.extend(['- %s (%s)' % (label, actionLabel) for label in newAction.load(actionFields)]) result.append(newAction) warning = assert_safe(result) data['actions'] = result data['invalid labels'] = invalid_labels return data, warning phatch-0.2.7/phatch/core/config.py0000644000000000000000000002174211346363116016755 0ustar rootroot00000000000000# -*- coding: UTF-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import gettext import glob import locale import os import subprocess import shutil import sys from lib import desktop from lib import system from lib.unicoding import ensure_unicode #-- nosetests class Paths: def __getitem__(self, key): return 'path' USER_PATH = desktop.USER_FOLDER PATHS = Paths() PHATCH_ACTIONLISTS_PATH = '.' def _wrap(path): return os.path.join(path, 'phatch') USER_CACHE_PATH = _wrap(desktop.USER_CACHE_FOLDER) USER_FONTS_CACHE_PATH = os.path.join(USER_CACHE_PATH, 'fonts.cache') USER_LOG_PATH = os.path.join(USER_CACHE_PATH, 'log') USER_PREVIEW_PATH = os.path.join(USER_CACHE_PATH, 'preview') USER_CONFIG_PATH = _wrap(desktop.USER_CONFIG_FOLDER) USER_SETTINGS_PATH = os.path.join(USER_CONFIG_PATH, 'settings.py') USER_DATA_PATH = _wrap(desktop.USER_DATA_FOLDER) USER_ACTIONS_PATH = os.path.join(USER_DATA_PATH, 'actions') USER_ACTIONLISTS_PATH = os.path.join(USER_DATA_PATH, 'actionlists') USER_BIN_PATH = os.path.join(USER_DATA_PATH, 'bin') USER_FONTS_PATH = os.path.join(USER_DATA_PATH, 'fonts') USER_GEEK_PATH = os.path.join(USER_DATA_PATH, 'geek.txt') USER_MASKS_PATH = os.path.join(USER_DATA_PATH, 'masks') USER_HIGHLIGHTS_PATH = os.path.join(USER_DATA_PATH, 'highlights') USER_WATERMARKS_PATH = os.path.join(USER_DATA_PATH, 'watermarks') SYSTEM_INSTALL = False def verify_app_user_paths(): """Create user path structure if it does not exist yet. If there are new action lists in the phatch library, copy them to the user folder. """ # fixme: better use setting, path retrieval should be cleaned for path in [USER_DATA_PATH, USER_CONFIG_PATH, USER_CACHE_PATH, USER_ACTIONLISTS_PATH, USER_ACTIONS_PATH, USER_BIN_PATH, USER_BIN_PATH, USER_FONTS_PATH, USER_MASKS_PATH, USER_HIGHLIGHTS_PATH, USER_WATERMARKS_PATH]: if 0: # and path == USER_ACTIONLISTS_PATH: # DISABLED # copy action lists from the phatch root to user if os.path.exists(path): existing = os.listdir(path) for al in os.listdir(PHATCH_ACTIONLISTS_PATH): if not (al in existing): shutil.copyfile( os.path.join(PHATCH_ACTIONLISTS_PATH, al), os.path.join(path, al)) else: shutil.copytree(PHATCH_ACTIONLISTS_PATH, path) else: #create when they don't exist system.ensure_path(path) geek = 'geek.txt' if not os.path.isfile(USER_GEEK_PATH): shutil.copyfile(os.path.join(PHATCH_DATA_PATH, geek), USER_GEEK_PATH) def check_config_paths(config_paths): global SYSTEM_INSTALL global PHATCH_DATA_PATH global PHATCH_FONTS_PATH global PHATCH_FONTS_CACHE_PATH global PHATCH_ACTIONLISTS_PATH if config_paths: # Phatch is not installed system wide but is run from user folder SYSTEM_INSTALL = False PHATCH_DATA_PATH = config_paths['PHATCH_DATA_PATH'] PHATCH_FONTS_PATH = config_paths['PHATCH_FONTS_PATH'] PHATCH_FONTS_CACHE_PATH = config_paths['PHATCH_FONTS_CACHE_PATH'] PHATCH_ACTIONLISTS_PATH = config_paths['PHATCH_ACTIONLISTS_PATH'] return config_paths SYSTEM_INSTALL = True ROOT_SHARE_PATH = os.path.join(sys.prefix, "share") # for win? PHATCH_SHARE_PATH = os.path.join(ROOT_SHARE_PATH, "phatch") PHATCH_DATA_PATH = os.path.join(PHATCH_SHARE_PATH, "data") PHATCH_ACTIONLISTS_PATH = os.path.join(PHATCH_DATA_PATH, 'actionlists') PHATCH_BLENDER_PATH = os.path.join(PHATCH_DATA_PATH, "blender") PHATCH_FONTS_PATH = os.path.join(PHATCH_DATA_PATH, "fonts") PHATCH_FONTS_CACHE_PATH = os.path.join(PHATCH_SHARE_PATH, "cache", "fonts") if sys.platform.startswith('win'): sys.stderr.write( 'Sorry your platform is not yet supported.\n' \ + 'The instructions for Windows are on the Phatch website.') sys.exit() else: return { 'PHATCH_IMAGE_PATH': os.path.join(PHATCH_SHARE_PATH, 'images'), 'PHATCH_LOCALE_PATH': os.path.join(ROOT_SHARE_PATH, 'locale'), 'PHATCH_DOCS_PATH': os.path.join(ROOT_SHARE_PATH, 'doc', 'phatch', 'html'), #cache 'PHATCH_FONTS_CACHE_PATH': PHATCH_FONTS_CACHE_PATH, #data 'PHATCH_DATA_PATH': PHATCH_DATA_PATH, 'PHATCH_ACTIONLISTS_PATH': PHATCH_ACTIONLISTS_PATH, 'PHATCH_BLENDER_PATH': PHATCH_BLENDER_PATH, 'PHATCH_FONTS_PATH': PHATCH_FONTS_PATH, 'PHATCH_HIGHLIGHTS_PATH': os.path.join(PHATCH_DATA_PATH, 'highlights'), 'PHATCH_MASKS_PATH': os.path.join(PHATCH_DATA_PATH, 'masks'), 'PHATCH_PERSPECTIVE_PATH': os.path.join(PHATCH_DATA_PATH, 'perspective'), } def add_user_paths(config_paths): config_paths.update({ 'USER_PATH': USER_PATH, 'USER_ACTIONS_PATH': USER_ACTIONS_PATH, 'USER_BIN_PATH': USER_BIN_PATH, 'USER_DATA_PATH': USER_DATA_PATH, 'USER_FONTS_PATH': USER_FONTS_PATH, 'USER_GEEK_PATH': USER_GEEK_PATH, 'USER_LOG_PATH': USER_LOG_PATH, 'USER_FONTS_CACHE_PATH': USER_FONTS_CACHE_PATH, 'USER_MASKS_PATH': USER_MASKS_PATH, 'USER_HIGHLIGHTS_PATH': USER_HIGHLIGHTS_PATH, 'USER_PREVIEW_PATH': USER_PREVIEW_PATH, 'USER_SETTINGS_PATH': USER_SETTINGS_PATH, 'USER_WATERMARKS_PATH': USER_WATERMARKS_PATH, }) def fix_python_path(phatch_python_path=None): if not phatch_python_path: phatch_python_path = os.path.dirname( os.path.dirname(os.path.abspath(__file__))) if not(phatch_python_path in [ensure_unicode(x) for x in sys.path]): sys.path.insert(0, phatch_python_path) return phatch_python_path def load_locale(app, path, canonical='default', unicode=True): locale.setlocale(locale.LC_ALL, '') #get default canonical if necessary if canonical == 'default': canonical = locale.getdefaultlocale(envvars=('LC_ALL', 'LANG'))[0] if canonical is None: #for mac canonical = 'en' #canonical = 'zh' #to test unicode languages #expand with similar translations base = canonical.split('_')[0] # eg pt_BR -> pt base_path = os.path.join(path, base) languages = [base_path] + \ [os.path.basename(x) for x in glob.glob(base_path + '_*')] #ensure canonical is the first element (base the second) if canonical in languages: languages.remove(canonical) languages.insert(0, canonical) #install i18n = gettext.translation(app, path, languages=languages, fallback=1) i18n.install(unicode=unicode) def init_config_paths(config_paths=None): if config_paths is None: config_paths = {} #check paths config_paths = check_config_paths(config_paths) add_user_paths(config_paths) #configure sys.path phatch_path = fix_python_path(config_paths.get('PHATCH_PYTHON_PATH', None)) #patches for pil <= 1.1.6 (ImportError=skip during build process) try: import Image if Image.VERSION < '1.1.7': fix_python_path(os.path.join(phatch_path, 'other', 'pil_1_1_6')) except ImportError: pass #user actions fix_python_path(USER_ACTIONS_PATH) #set font cache from lib.fonts import set_font_cache set_font_cache(USER_FONTS_PATH, PHATCH_FONTS_PATH, USER_FONTS_CACHE_PATH, PHATCH_FONTS_CACHE_PATH) #register paths global PATHS PATHS = config_paths #return values return config_paths def load_locale_only(config_paths=None): if config_paths is None: config_paths = {} config_paths = check_config_paths(config_paths) load_locale('phatch', config_paths['PHATCH_LOCALE_PATH']) def check_fonts(force=False): from core.config import USER_FONTS_CACHE_PATH, PHATCH_FONTS_CACHE_PATH if force or not(os.path.exists(USER_FONTS_CACHE_PATH) or \ os.path.exists(PHATCH_FONTS_CACHE_PATH)): subprocess.Popen([sys.executable, os.path.abspath(sys.argv[0]), '--fonts']) phatch-0.2.7/phatch/core/ct.py0000644000000000000000000001033711346363116016114 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 try: _ except NameError: _ = unicode import os import sys from data import license from data.info import INFO from lib.reverse_translation import _t from config import USER_PATH, USER_DATA_PATH, USER_CONFIG_PATH,\ USER_CACHE_PATH, USER_ACTIONLISTS_PATH, USER_ACTIONS_PATH,\ USER_BIN_PATH, USER_FONTS_PATH, USER_HIGHLIGHTS_PATH, \ USER_LOG_PATH, USER_MASKS_PATH, USER_SETTINGS_PATH, \ USER_WATERMARKS_PATH #---description DESKTOP_ENTRY_COMMENT = _('Easily batch process images and edit metadata') DESCRIPTION = _('Photo Batch Processor') LICENSE = license.GPL CONTACT = '%(author)s <%(author_email)s>' % INFO TITLE = '%(name)s' % INFO COPYRIGHT = '%(copyright)s (%(url)s)' % INFO EXTENSION = '%(extension)s' % INFO FRAME_TITLE = '%%s%%s - %s' % TITLE SEND_MAIL = 'mailto:%(author_email)s?subject=%%s&body=%%s' % INFO PLATFORM = sys.platform if PLATFORM.startswith('darwin'): LINUX, WINDOWS, MAC = False, False, True PLATFORM = 'mac' elif PLATFORM.startswith('win'): LINUX, WINDOWS, MAC = False, True, False PLATFORM = 'windows' else: LINUX, WINDOWS, MAC = True, False, False PLATFORM = 'linux' #---fields ACTION = 'Action' #i8n BOOLEANS = [_t('True'), _t('False'), _t('true'), _t('false')] UNKNOWN = _("Unsaved Action List") WILDCARD = "%s (*%s)|*%s|%s|*" \ % (_("Action Lists"), EXTENSION, EXTENSION, \ _("All Files")) ACTION_LIST_DESCRIPTION = _("Describe here the action list.") SAVE_ACTION_NEEDED = _("There should be a 'Save' action at the end.") #---paths if hasattr(sys, "frozen"): FILE = sys.argv[0] else: FILE = __file__ PATH = os.path.dirname(os.path.dirname(FILE)) PHATCH_ACTIONS_PATH = os.path.join(PATH, 'actions') PATH_DELIMITER = ';' LABEL_PHATCH_ACTIONLIST = '%s %s %%s...' % (INFO['name'], _('with')) LABEL_PHATCH_RECENT = _('%s Recent') % INFO['name'] LABEL_PHATCH_INSPECTOR = _('Image Inspector') INTEGRATE_PHATCH_ACTIONLIST = _("Associate Images with Action List in %s...") INTEGRATE_PHATCH_RECENT = \ _("Associate Images with Recent Action Lists in %s...") INTEGRATE_PHATCH_INSPECTOR = \ _("Associate Images with Image Inspector in %s...") INTEGRATE_PHATCH_REMOVE = _("Remove Association from %s...") DROPLET_PHATCH_ACTIONLIST = _("&Action List Droplet...") DROPLET_PHATCH_RECENT = _("&Recent Droplet...") DROPLET_PHATCH_INSPECTOR = _("&Image Inspector Droplet...") #---droplets if sys.platform.startswith('win'): COMMAND_PATH = 'pythonw.exe' COMMAND_ARGUMENTS_PREFIX = '"%s" ' % os.path.abspath(sys.argv[0]) COMMAND_FILE = '' else: COMMAND_PATH = 'phatch' COMMAND_ARGUMENTS_PREFIX = '' COMMAND_FILE = '%F' #xubuntu doesn't handle %U COMMAND_ARGUMENTS = { 'DROP': '-d "%s"', 'RECENT': '-d recent', 'INSPECTOR': '-n', } for key, value in COMMAND_ARGUMENTS.items(): new_value = COMMAND_ARGUMENTS_PREFIX + value if COMMAND_FILE: if '%' in new_value: new_value += ' ' + COMMAND_FILE.replace('%', '%%') else: new_value += ' ' + COMMAND_FILE COMMAND_ARGUMENTS[key] = new_value COMMAND = {} for key, value in COMMAND_ARGUMENTS.items(): COMMAND[key] = COMMAND_PATH + ' ' + COMMAND_ARGUMENTS[key] ##COMMAND_DROP = 'phatch -d "%s" %%F' ##COMMAND_RECENT = 'phatch -d recent %F' ##COMMAND_INSPECTOR = 'phatch -n %F' DESCRIPTION_RECENT = _('Batch process with recent action lists') DESCRIPTION_INSPECTOR = _('Inspect EXIF & IPTC tags') phatch-0.2.7/phatch/core/message.py0000644000000000000000000000711611346363116017133 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Follows PEP8 #---import modules #gui-independent import os from lib.events import send, Receiver # send is used when message is imported from lib.unicoding import ensure_unicode #---classes class FrameReceiver(Receiver): #---pubsub def _pubsub(self): Receiver.__init__(self, 'frame') #Pubsub events self.subscribe('append_save_action') self.subscribe('show_execute_dialog') self.subscribe('show_error') self.subscribe('show_files_message') self.subscribe('show_info') self.subscribe('show_message') self.subscribe('show_notification') self.subscribe('show_progress') self.subscribe('show_progress_error') self.subscribe('show_scrolled_message') self.subscribe('show_image_tree') self.subscribe('show_status') def append_save_action(self, actions): """To be overwritten.""" pass def show_execute_dialog(self, result, settings, files=None): """To be overwritten.""" pass def show_error(self, message): """To be overwritten.""" pass def show_files_message(self, result, message, title, files): """To be overwritten.""" pass def show_progress(self, title, parent_max, child_max, message=''): """To be overwritten. parent_max -> parent loop, eg images child_max -> child loop, eg actions & open""" pass def show_progress_error(self, result, message, ignore=True): """To be overwritten.""" pass def show_scrolled_message(self, message, title, **keyw): """To be overwritten.""" pass class ProgressReceiver(Receiver): def __init__(self, parent_max, child_max): self.set_max(parent_max, child_max) self._pubsub() def set_max(self, parent_max, child_max): self.parent_max = parent_max self.child_max = child_max self.max = parent_max * child_max def _pubsub(self): Receiver.__init__(self, 'progress') self.subscribe('close') self.subscribe('update') self.subscribe('update_filename') self.subscribe('update_index') def update_filename(self, result, parent_index, filename): dirname, basename = os.path.split(filename) dirname = ensure_unicode(dirname) basename = ensure_unicode(basename) message = u"%s: %s\n%s: %s\n" \ % (_('In'), dirname, _('File'), basename) self.update(result, parent_index * self.child_max, newmsg=message) self.sleep() def update_index(self, result, parent_index, child_index): self.update(result, parent_index * self.child_max + child_index + 1) #---overwrite def close(self): pass def update(self, result, value, newmsg=''): pass def sleep(self): pass phatch-0.2.7/phatch/core/models.py0000644000000000000000000003533311346363116016774 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 """ Store internally as a string. Provide validation routines. """ try: _ except NameError: _ = unicode import os import Image from lib.formField import files_dictionary, Form, Field, \ ImageDictionaryReadFileField, \ ImageDictionaryField, rotation_title_parser from lib.reverse_translation import _t from config import PATHS from lib import openImage from lib.desktop import DESKTOP_FOLDER, USER_FOLDER if DESKTOP_FOLDER == USER_FOLDER: DESKTOP_FOLDER = os.path.expanduser('~/phatch') from safeGlobals import safe_globals Field.set_globals(safe_globals()) def init(): pass def negative(value): """Returns the negative value of a string expression. :param value: int or float expression :type value: str :returns: negative value of expression :rtype: str >>> negative('5') '-5' >>> negative('-5') '5' """ negative_value = value.strip() if negative_value: if negative_value[0] == '-': negative_value = negative_value[1:] else: negative_value = '-' + negative_value else: negative_value = value return negative_value class Action(Form): all_layers = False pil = None author = 'Stani' cache = False email = 'spe.stani.be@gmail.com' init = staticmethod(init) version = '0.1' tags = [] tags_hidden = [] valid_last = False __doc__ = 'Action base class.' metadata = [] def values(self, info, pixel_fields=None, exclude=None): return self.get_fields(info, convert=True, pixel_fields=pixel_fields, exclude=exclude) def apply(self, photo, setting, cache): """Can be overwritten always returns the photo. If this method is not overwritten a pil method should be required.""" values = self.values(photo.info) if self.cache: values['cache'] = cache if self.all_layers: photo.apply_pil(self.pil, **values) else: photo.get_layer().apply_pil(self.pil, **values) return photo def is_done(self, photo): """Method used for resuming when a batch was interrupted. Check if this image has been done already.""" #check if there are not forbidden tags (new.*) try: #is_done_info is only available on save actions folder, filename, typ = self.is_done_info(photo.info) except KeyError: return False #check if file exists if not os.path.exists(filename): return False #check if file is valid return openImage.verify_image({'path': filename}, [], []) # for save actions def ensure_path_or_desktop(self, folder, photo, filename, desktop=False): """Ensures that folder exists. If it can't create the path, it will log an error in the photo and propose to save it in the desktop folder instead. :param folder: folder path :type folder: str :param folder: photo to log to :type folder: core.pil.Photo :param filename: targeted filename :type filename: str :param desktop: force saving on desktop :type desktop: bool :returns: same filename, or on desktop in case of errors :rtype: str """ error = False if not desktop: try: self.ensure_path(folder) except OSError, message: desktop = error = True if desktop: base = os.path.basename(filename) if error: photo.log('Could not save "%s" in "%s":\n%s\n'\ % (base, folder, message)) photo.log('Will try to save in "%s" instead.\n'\ % DESKTOP_FOLDER) self.ensure_path(DESKTOP_FOLDER) filename = os.path.join(DESKTOP_FOLDER, base) return filename # field classes which are specific to Phatch and # do not belong to formField class HighlightFileField(ImageDictionaryReadFileField): dialog = PATHS["USER_HIGHLIGHTS_PATH"] # _('Select Highlight') def init_dictionary(self): self.dictionary = files_dictionary( paths=[PATHS["PHATCH_HIGHLIGHTS_PATH"], PATHS["USER_HIGHLIGHTS_PATH"]], extensions=self.extensions) class MaskFileField(ImageDictionaryReadFileField): dialog = PATHS["USER_MASKS_PATH"] # _('Select Mask') def init_dictionary(self): self.dictionary = files_dictionary( paths=[PATHS["PHATCH_MASKS_PATH"], PATHS["USER_MASKS_PATH"]], extensions=self.extensions) class WatermarkFileField(ImageDictionaryReadFileField): dialog = PATHS["USER_WATERMARKS_PATH"] # _('Select Watermark') def init_dictionary(self): self.dictionary = files_dictionary( paths=[ PATHS["PHATCH_IMAGE_PATH"], PATHS["USER_WATERMARKS_PATH"], ], extensions=self.extensions) class PerspectiveField(ImageDictionaryField): dialog = _t('Select Projection') def init_dictionary(self): self.dictionary = files_dictionary( paths=[ PATHS["PHATCH_PERSPECTIVE_PATH"], ], extensions=self.extensions) class BlenderField(ImageDictionaryField): icon_size = (128, 128) option_name = None use_user_option = False title_parser = None def get_path(self): return os.path.join(PATHS['PHATCH_BLENDER_PATH'], 'preview', self.option_name) def init_dictionary(self): self.dictionary = files_dictionary(paths=[self.get_path(), ], extensions=self.extensions, title_parser=self.title_parser) if self.use_user_option: self.dictionary['User'] = os.path.join( PATHS['PHATCH_DATA_PATH'], 'user.png') class BlenderObjectField(BlenderField): dialog = _t('Select Object') option_name = 'object' class BlenderRotationField(BlenderField): dialog = _t('Select Rotation') option_name = 'rotation' title_parser = rotation_title_parser # FIXME: these should be instance, not class variables! use_user_option = True selected_object = 'Box' def get_path(self): return os.path.join(PATHS['PHATCH_BLENDER_PATH'], 'preview', self.option_name, self.selected_object.lower()) class OffsetMixin(object): CENTER = _t('Center') CUSTOM = _t('Custom') MIDDLE = _t('Middle') LEFT = _t('Left') RIGHT = _t('Right') TOP = _t('Top') BOTTOM = _t('Bottom') POSITION = [CENTER, _t('Bottom Left'), _t('Bottom Right'), _t('Top Left'), _t('Top Right'), CUSTOM] HORIZONTAL_JUSTIFICATION = [LEFT, MIDDLE, RIGHT] VERTICAL_JUSTIFICATION = [TOP, MIDDLE, BOTTOM] def interface(self, fields): fields[_t('Orientation')] = \ self.OrientationField(self.ORIENTATION[0]) fields[_t('Position')] = self.ChoiceField(self.POSITION[0], self.POSITION) fields[_t('Offset')] = self.PixelField('5%', choices=self.OFFSET_PIXELS) fields[_t('Horizontal Offset')] = self.PixelField('50%', choices=self.OFFSET_PIXELS) fields[_t('Vertical Offset')] = self.PixelField('50%', choices=self.OFFSET_PIXELS) fields[_t('Horizontal Justification')] = self.ChoiceField( self.HORIZONTAL_JUSTIFICATION[1], \ self.HORIZONTAL_JUSTIFICATION) fields[_t('Vertical Justification')] = self.ChoiceField( self.VERTICAL_JUSTIFICATION[1], self.VERTICAL_JUSTIFICATION) def get_relevant_field_labels(self): relevant = ['Orientation', 'Position'] position = self.get_field_string('Position') if position == self.CUSTOM: relevant += ['Horizontal Offset', 'Vertical Offset', 'Horizontal Justification', 'Vertical Justification'] elif position != self.CENTER: relevant += ['Offset'] return relevant def values(self, info, pixel_fields=None, exclude=None): if exclude is None: exclude = [] #transform position, offset to custom position = self.get_field_string('Position') exclude.extend(['Position', 'Offset']) # place in center of image if position == self.CENTER: self.set_field_as_string('Horizontal Offset', '50%') self.set_field_as_string('Horizontal Justification', self.MIDDLE) self.set_field_as_string('Vertical Offset', '50%') self.set_field_as_string('Vertical Justification', self.MIDDLE) # place in a corner of the image elif position != self.CUSTOM: offset = self.get_field_string('Offset') # horizontal if 'Left' in position: self.set_field_as_string('Horizontal Offset', offset) self.set_field_as_string('Horizontal Justification', self.LEFT) else: # Right self.set_field_as_string('Horizontal Offset', negative(offset)) self.set_field_as_string('Horizontal Justification', self.RIGHT) # vertical if 'Top' in position: self.set_field_as_string('Vertical Offset', offset) self.set_field_as_string('Vertical Justification', self.TOP) else: # Bottom self.set_field_as_string('Vertical Offset', negative(offset)) self.set_field_as_string('Vertical Justification', self.BOTTOM) # continue as normal values but exclude position & offset if pixel_fields is None: pixel_fields = {} x, y = info['size'] pixel_fields.update({ 'Horizontal Offset': x, 'Vertical Offset': y, }) return super(OffsetMixin, self).values(info, pixel_fields=pixel_fields, exclude=exclude) class StampMixin(OffsetMixin): LOGO = 'Phatch Small' METHODS = [_t('By Offset'), _t('Tile'), _t('Scale')] def interface(self, fields): fields[_t('Mark')] = self.WatermarkFileField(self.LOGO) fields[_t('Opacity')] = self.SliderField(100, 1, 100) fields[_t('Method')] = self.ChoiceField(self.METHODS[2], self.METHODS) super(StampMixin, self).interface(fields) def get_relevant_field_labels(self): relevant = ['Method', 'Mark', 'Opacity'] if self.get_field_string('Method') == self.METHODS[0]: relevant.extend(OffsetMixin.get_relevant_field_labels(self)) return relevant class LosslessSaveMixin(object): valid_last = True def interface(self, fields): fields[_t('File Name')] = \ self.FileNameField(choices=self.FILENAMES) fields[_t('In')] = \ self.FolderField(self.DEFAULT_FOLDER, choices=self.FOLDERS) super(LosslessSaveMixin, self).interface(fields) def get_lossless_filename(self, photo, info): #get file values filename = self.get_field('File Name', info) folder = self.get_field('In', info) typ = info['type'] filename = os.path.join(folder, '%s.%s' % (filename, typ)) #ensure folder filename = self.ensure_path_or_desktop(folder, photo, filename) photo.append_to_report(filename) return filename def is_done(self, photo): """Method used for resuming when a batch was interrupted. For metadata there is no way to know if this image has been done already, so return False by default.""" return False def is_overwrite_existing_images_forced(self): """Always force overwrite as we want to store the tags in existing images.""" return True class CropMixin(object): crop_modes = (_t('All'), _t('Auto'), _t('Custom'), ) _choices = ('0', '1', '2', '5', '10', '20', ) def interface(self, fields, action=None): if action is None: action = self fields[_t('Mode')] = action.ChoiceField(self.crop_modes[0], choices=self.crop_modes) fields[_t('All')] = action.PixelField('30%', # works with jpegtran choices=self._choices) fields[_t('Left')] = action.PixelField('0px', choices=self._choices) fields[_t('Right')] = action.PixelField('0px', choices=self._choices) fields[_t('Top')] = action.PixelField('0px', choices=self._choices) fields[_t('Bottom')] = action.PixelField('0px', choices=self._choices) def get_relevant_field_labels(self, action=None): """If this method is present, Phatch will only show relevant fields. :returns: list of the field labels which are relevant :rtype: list of strings .. note:: It is very important that the list of labels has EXACTLY the same order as defined in the interface method. """ if action is None: action = self relevant = ['Mode'] if action.get_field_string('Mode') == 'All': relevant.extend(['All']) elif action.get_field_string('Mode') == 'Custom': relevant.extend(['Top', 'Left', 'Bottom', 'Right']) return relevant def values(self, info, pixel_fields=None, exclude=None, action=None): if action is None: action = self if pixel_fields is None: pixel_fields = {} # pixel fields width, height = info['size'] pixel_fields.update({ 'All': (width + height) / 2, 'Left': width, 'Right': width, 'Top': height, 'Bottom': height, }) # pass absolute reference for relative pixel values such as % # do NOT use super here or lossless jpegtran will fail return Action.values(action, info, pixel_fields, exclude) phatch-0.2.7/phatch/core/pil.py0000644000000000000000000006360711346363116016302 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2009 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Follows PEP8 """All PIL related issues.""" #FIXME: # - info should be defined on layer level # -> move call afterwards also to layer level # -> adapt image inspector import datetime import os import re import types import Image #todo make this lazy from lib import formField from lib import imtools from lib import metadata from lib import openImage from lib import system from lib import thumbnail from lib import unicoding from lib.reverse_translation import _t from lib.formField import RE_FILE_IN, RE_FILE_OUT from ct import TITLE from config import USER_BIN_PATH #from other import EXIF system.set_bin_paths([USER_BIN_PATH]) try: import pyexiv2 from lib import _pyexiv2 as exif except: pyexiv2 = None exif = False WWW_PYEXIV2 = 'http://tilloy.net/dev/pyexiv2/' NEEDS_PYEXIV2 = _('pyexiv2 needs to be installed') + ' (%s)' % WWW_PYEXIV2 CONVERTED_MODE = \ _('%(mode)s has been converted to %(mode_copy)s to save as %(format)s.') DYNAMIC_VARS = set(('width', 'height', 'size', 'mode', 'transparency')) IMAGE_DEFAULT_DPI = 72 SEPARATOR = '_' # should be same as in core.translations MONTHS = (_t('January'), _t('February'), _t('March'), _t('April'), _t('May'), _t('June'), _t('July'), _t('August'), _t('September'), _t('October'), _t('November'), _t('December')) WEEKDAYS = (_t('Monday'), _t('Tuesday'), _t('Wednesday'), _t('Thursday'), _t('Friday'), _t('Saturday'), _t('Sunday')) DATETIME_KEYS = ['year', 'month', 'day', 'hour', 'minute', 'second'] re_DATETIME = re.compile( '(?P\d{4})[-:](?P\d{2})[-:](?P\d{2}) ' '(?P\d{2}):(?P\d{2}):(?P\d{2})') re_TAG = re.compile('(Pil|Exif|Iptc|Pexif|Zexif)([.]\w+)+') re_KEY = re.compile('(#*)((\w|[.])*$|[$])') TRANSPARENCY_ERROR = _('Only palette images have transparency.') IMAGE_READ_EXTENSIONS = set(formField.IMAGE_READ_EXTENSIONS)\ .union(openImage.WITHOUT_PIL.extensions) IMAGE_READ_EXTENSIONS = list(IMAGE_READ_EXTENSIONS) IMAGE_READ_EXTENSIONS.sort() IMAGE_EXTENSIONS = [ext for ext in IMAGE_READ_EXTENSIONS if ext in formField.IMAGE_WRITE_EXTENSIONS] BASE_VARS = ['dpi', 'compression', 'filename', 'format', 'orientation', 'path', 'transparency', 'type'] def split_data(d): """Provide attribute access to the variables. :param d: a dumped metadata dictionary :type d: dict >>> d = {'date': '2008-11-27 13:54:33', 'tuple': (1, 2)} """ value = d.values()[0] #tuples or list if type(value) in (types.ListType, types.TupleType): if len(value) > 1: for k, v in d.items(): for i, x in enumerate(v): d['%s.%d' % (k, i)] = v[i] return #datetime strings done = False for k, v in d.items(): if type(v) in types.StringTypes: dt = re_DATETIME.match(v) if dt: for key in DATETIME_KEYS: d['%s.%s' % (k, key)] = dt.group(key) done = True if done: return #date time values if type(value) == datetime.datetime: for k, v in d.items(): for key in DATETIME_KEYS: d['%s.%s' % (k, key)] = getattr(v, key) def fix_EXIF(tag): if not tag.startswith('EXIF'): tag = 'EXIF.' + tag return tag.replace(' ', SEPARATOR) def image_to_dict(filename, im=None): folder, name = os.path.split(filename) d = {'path': filename, 'filename': name} if im: width, height = im.size d['width'] = width d['height'] = height d['mode'] = im.mode return d def get_photo(filename): return Photo(metadata.InfoExtract(filename, vars=BASE_VARS).dump()) def split_vars_static_dynamic(vars): vars = set(vars) static = vars.difference(DYNAMIC_VARS) dynamic = vars.intersection(DYNAMIC_VARS) return list(static), list(dynamic) class NotWritableTagError(Exception): pass class InfoPhoto(dict): def __init__(self, info, info_to_dump, get_pil, image=None): """The ``get_pil`` parameter is necessary for tags as width, height, size and mode. :param info: pil, pyexiv2, ... tag, value info :type info: dict :param get_pil: method to retrieve the pil image :type get_pil: callable """ #parameters self.get_pil = get_pil path = info['path'] #sources if image == None: image = get_pil() sources = { metadata.InfoPil: image, metadata.InfoPexif: image, metadata.InfoZexif: image} #check format -> readable/writable metadata with pyexiv2 if exif and exif.is_readable_format(image.format): self.pyexiv2 = pyexiv2.Image(path) self.pyexiv2.readMetadata() self.writable_exif = exif.is_writable_format_exif(image.format) self.writable_iptc = exif.is_writable_format_exif(image.format) self.writable = self.writable_exif or self.writable_iptc if self.writable_exif: self.pyexiv2['Exif.Image.Software'] = TITLE sources[metadata.InfoExif] = sources[metadata.InfoIptc] =\ self.pyexiv2 else: self.pyexiv2 = None self.writable = self.writable_exif = self.writable_iptc = False #retrieve dump info try: info_dumped = info_to_dump.open(path, sources).dump(free=True) except Exception, details: reason = unicoding.exception_to_unicode(details) #log error details message = u'%s:%s:\n%s' % (_('Unable extract variables from file'), path, reason) raise Exception(message) self.update(info, explicit=False) self.update(info_dumped, explicit=False) #private vars self._original_size = image.size # to compare if changed later self._dirty = False self._log = '' self._flushed = True def close(self): """Remove circular reference.""" del self.get_pil def is_dirty(self): """The photo can become dirty in two ways: * new metadata has been set * the image has changes size In case the image size has changed it will update the ``Exif.Photo.PixelXDimension`` and ``Exif.Photo.PixelYimension`` accordingly. :returns: True, if dirty :rtype: boolean """ if self._dirty: return True self.update_size() return self._dirty def set(self, tag, value): super(InfoPhoto, self).__setitem__(tag, value) def update(self, d, explicit=True): """Do this explicitly so __setitem__ gets called.""" if explicit: for key, value in d.items(): self[key] = value else: super(InfoPhoto, self).update(d) def update_size(self): """If the image is exif writable and if the size has changed, it will update ``Exif.Photo.PixelXDimension`` and ``Exif.Photo.PixelYimension``. """ if not self.writable_exif: return size = width, height = self.get_pil().size if self._original_size != size: self.pyexiv2['Exif.Photo.PixelXDimension'] = width self.pyexiv2['Exif.Photo.PixelYDimension'] = height self._dirty = True def __getitem__(self, tag): """If a dynamic tag (size, mode) is requested, it will extract it from the image. Otherwise get it normally. :param tag: metadata tag :type tag: string :returns: value """ if tag in DYNAMIC_VARS: #this can maybe be optimized if necessary if tag == 'size': return self.get_pil().size elif tag in ('width', 'Exif_Photo_PixelXDimension'): return self.get_pil().size[0] elif tag in ('height', 'Exif_Photo_PixelYDimension'): return self.get_pil().size[1] elif tag == 'mode': return self.get_pil().mode elif tag == 'transparency': self.assert_transparency() return self.get_pil().info['transparency'] else: raise KeyError('Fatal Error: tag "%s" is not dynamic?!' % tag) elif tag in metadata.ORIENTATION_TAGS: #give priority to writable tag if 'Exif_Image_Orientation' in self: return super(InfoPhoto, self).\ __getitem__('Exif_Image_Orientation') else: return super(InfoPhoto, self).__getitem__(tag) else: return super(InfoPhoto, self).__getitem__(tag) def __contains__(self, tag): """ """ if super(InfoPhoto, self).__contains__(tag): return True if tag == 'transparency' and tag in self.get_pil().info: return self['mode'] == 'P' return tag in DYNAMIC_VARS def __delitem__(self, tag): """Delete a tag after :method:`InfoPhoto.assert_writable`. :param tag: metadata tag :type tag: string """ self.assert_writable(tag) if tag == 'transparency': self.assert_transparency() del self.get_pil().info[tag] return pyexiv2_tag = self._fix(tag) # pexiv2 demands str # a bit clumsy but pyexiv2 does not support get or in try: pyexiv2_tag_value = self.pyexiv2[pyexiv2_tag] except KeyError: pyexiv2_tag_value = None if self.pyexiv2 and pyexiv2_tag_value != None: self.pyexiv2[pyexiv2_tag] = None if tag in self: super(InfoPhoto, self).__delitem__(tag) def __setitem__(self, tag, value): """Delete a tag after :method:`InfoPhoto.assert_writable`. :param tag: metadata tag :type tag: string :param value: new value """ self.assert_writable(tag) if tag in metadata.ORIENTATION_TAGS: if self.pyexiv2 is None and value == 1: #allow to ignore this (e.g. transpose method) return #redirect to writable tag tag = 'Exif_Image_Orientation' if tag in DYNAMIC_VARS: if tag == 'transparency': self.assert_transparency() self.get_pil().info['transparency'] = value else: raise KeyError(_('Tag "%s" is read only.') % tag) else: super(InfoPhoto, self).__setitem__(tag, value) if metadata.RE_PYEXIV2_TAG_EDITABLE.match(tag): try: self.pyexiv2[self._fix(tag)] = value except Exception, message: raise KeyError('%s:\n%s' % (_('Impossible to write tag "%s"') % tag, message)) self._dirty = True self._flushed = False def assert_transparency(self): """Raise a ``KeyError`` for ``'transparency'`` when ``image.mode`` is not ``'P'``. """ if self['mode'] != 'P': raise KeyError(TRANSPARENCY_ERROR) def log(self, message): """Log a message :param message: message :type message: string """ self._log += message + '\n' def clear_log(self): """Clears the log.""" self._log = '' def get_log(self): """Get the log contents. :returns: the log :rtype: string """ return self._log @classmethod def _fix(cls, tag): """Phatch uses ``_`` as a separator while pyexiv2 uses a dot (``.``). Moreover pyexiv2 demands str. >>> InfoPhoto._fix('Exif_Photo_PixelXDimension') 'Exif.Photo.PixelXDimension' :param tag: tag in info notation :type tag: string :returns: tag in pyexiv2 notation :rtype: string """ return str(tag.replace('_', '.')) def assert_writable(self, tag): """Assert that the tag is writable. This can raise an ``NotWritableTagError`` because of several reasons: * Tag might be read-only (e.g. Exif_Photo_PixelXDimension) * Tag might be not Exif or Iptc * Image file format might not allow writing of this tag :param tag: tag name :type tag: string :returns: True, if writable :rtype: bool """ if not metadata.is_writable_tag(tag): raise NotWritableTagError(_('Tag "%s" is not writable.') % tag) if not ((self.writable_exif and tag.startswith('Exif')) or (self.writable_iptc and tag.startswith('Iptc')) or metadata.is_writeable_not_exif_tag(tag, self['mode'])): raise NotWritableTagError( _('Format %(format)s does not support overwriting "%(tag)s".')\ % {'format': self['format'], 'tag': tag}) def save(self, target, target_format=None, thumbdata=None): """ :param target: target filename :type target: string :param target_format: target format e.g. obtained by PIL :type target_format: string :param thumbdata: new thumbnail (eg with StringIO, see :mod:`imtools`) :type thumbdata: string """ if not exif: raise ImportError(NEEDS_PYEXIV2) if not pyexiv2: #FIXME: when starting with a not exif image png #but save as exif jpg return if target == self['path']: if self.is_dirty() and not self._flushed: # includes update_size warnings = exif.flush(self.pyexiv2, thumbdata) self._flushed = True else: self.update_size() warnings = exif.write_metadata(self.pyexiv2, target, self['format'], target_format, thumbdata) return warnings class Photo: """Use :func:`get_photo` to obtain a photo from a filename.""" def __init__(self, info, info_to_dump=None): self.modify_date = None # for time shift action self.report_files = [] # for reports self._exif_transposition_reverse = None #layer path = info['path'] name = self.current_layer_name = _t('background') layer = Layer(path, load=True) self.layers = {name: layer} #info self.info = InfoPhoto(info, info_to_dump, self.get_flattened_image, layer.image) self.rotate_exif() def close(self): """Remove circular references.""" self.info.close() del self.info def log(self, message): self.info.log(message) def clear_log(self): self.info.clear_log() def get_log(self): return self.info.get_log() def get_filename(self, folder, filename, typ): return os.path.join(folder, '%s.%s' % (filename, typ))\ .replace('<', '%(').replace('>', ')s') % self.__dict__ #---layers def get_flattened_image(self): return self.get_layer().image.copy() def get_layer(self, name=None): if name is None: name = self.current_layer_name return self.layers[name] def get_thumb(self, size=thumbnail.SIZE): return thumbnail.thumbnail(self.get_flattened_image(), size=size, checkboard=True) def set_layer(self, layer, name=None): if name is None: name = self.current_layer_name self.layers[name] = layer #---image operations affecting all layers def save(self, filename, format=None, save_metadata=True, **options): """Saves a flattened image""" #todo: flatten layers if format is None: format = imtools.get_format_filename(filename) image = self.get_flattened_image() image_copy = imtools.convert_save_mode_by_format(image, format) if image_copy.mode == 'P' and 'transparency' in image_copy.info: options['transparency'] = image_copy.info['transparency'] if image_copy.mode != image.mode: self.log(CONVERTED_MODE % {'mode': image.mode, 'mode_copy': image_copy.mode, 'format': format} + '\n') #reverse exif previously applied exif orientation #exif thumbnails are usually within 160x160 #desktop thumbnails size is defined by thumbnail.py and is #probably 128x128 save_metadata = save_metadata and exif \ and exif.is_writable_format(format) if save_metadata: # Exif thumbnails are stored in their own format (eg JPG) thumb = thumbnail.thumbnail(image_copy, (160, 160)) thumbdata = imtools.get_format_data(thumb, format) image_copy = imtools.transpose(image_copy, self._exif_transposition_reverse) #thumb = thumbnail.thumbnail(thumb, copy=False) else: thumbdata = None #postpone thumbnail production to see later if it is needed thumb = None if 'compression.tif' in options: compression = options['compression.tif'] del options['compression.tif'] else: compression = 'none' try: if compression.lower() in ['raw', 'none']: #save image with pil file_mode = imtools.save_check_mode(image_copy, filename, **options) #did PIL silently change the image mode? if file_mode: #PIL did change the image mode without throwing # an exception. #Do not save thumbnails in this case # as they won't be reliable. if image_copy.mode.endswith('A') and \ not file_mode.endswith('A'): #force RGBA when transparency gets lost #eg saving TIFF format with LA mode mode = image_copy.mode image_copy = image_copy.convert('RGBA') file_mode = imtools.save_check_mode(image_copy, filename, **options) if file_mode: # RGBA failed self.log(CONVERTED_MODE % {'mode': mode, 'mode_copy': file_mode, 'format': format} \ + '\n') else: # RGBA succeeded self.log(CONVERTED_MODE % {'mode': mode, 'mode_copy': 'RGBA', 'format': format} + '\n') else: self.log(CONVERTED_MODE % {'mode': image_copy.mode, 'mode_copy': file_mode, 'format': format} + '\n') elif thumbnail.is_needed(image_copy, format): # save thumbnail in system cache if needed if thumb is None: thumb = image_copy thumb_info = { 'width': image.size[0], 'height': image.size[1]} thumbnail.save_to_cache(filename, thumb, thumb_info=thumb_info, **options) # copy metadata if needed (problematic for tiff) # FIXME: if metdata corrupts the image, there should be # no thumbnail if save_metadata: self.info.save(filename, thumbdata=thumbdata) else: # save with pil>libtiff openImage.check_libtiff(compression) self.log(openImage.save_libtiff(image_copy, filename, compression=compression, **options)) if self.modify_date: # Update file access and modification date os.utime(filename, (self.modify_date, self.modify_date)) self.append_to_report(filename, image_copy) except IOError, message: # clean up corrupted drawing if os.path.exists(filename): os.remove(filename) raise IOError(message) #update info if hasattr(options, 'dpi'): self.info['dpi'] = options['dpi'][0] def append_to_report(self, filename, image=None): report = image_to_dict(filename, image) report[_t('source')] = self.info['path'] self.report_files.append(report) def convert(self, mode, *args, **keyw): """Converts all layers to a different mode.""" for layer in self.layers.values(): if layer.image.mode == mode: continue if mode == 'P' and imtools.has_alpha(layer.image): layer.image = imtools.convert(layer.image, mode, *args, **keyw) self.info['transparency'] = 255 elif mode == 'P': layer.image = imtools.convert(layer.image, mode, *args, **keyw) self.info['transparency'] = None else: layer.image = imtools.convert(layer.image, mode, *args, **keyw) def safe_mode(self, format): """Convert the photo into a safe mode for this specific format""" layer = self.get_layer() layer.image = imtools.convert_save_mode_by_format(layer.image, format) def resize(self, size, method): """Resizes all layers to a different size""" size = (max(1, size[0]), max(1, size[1])) for layer in self.layers.values(): layer.image = layer.image.resize(size, method) def rotate_exif(self, reverse=False): layers = self.layers.values() if reverse: transposition = self._exif_transposition_reverse self._exif_transposition_reverse = () else: transposition, self._exif_transposition_reverse = \ imtools.get_exif_transposition(self.info['orientation']) if transposition: for layer in layers: layer.image = imtools.transpose(layer.image, transposition) #---pil def apply_pil(self, function, *arg, **keyw): for layer in self.layers.values(): layer.apply_pil(function, *arg, **keyw) #---external def call(self, command, check_exe=True, shell=None, size=None, unlock=False, output_filename=None, mode=None): if shell is None: shell = not system.WINDOWS #get command line info = self.info layer = self.get_layer() image = layer.image if mode != image.mode: image = imtools.convert(image, mode) if size != None and size[0] < image.size[0]: image = image.copy() image.thumbnail(size, Image.ANTIALIAS) #loop over input -> save to temp files temp_files = [] done = [] error = None for match in RE_FILE_IN.finditer(command): source = match.group() if not(source in done): ext = match.group(1) target = system.TempFile(ext) try: imtools.save_safely(image, target.path) except Exception, error: pass temp_files.append((source, target)) done.append(source) if error: break # check if we have a file_in # clean up in case of error if error: for source, target in temp_files: target.close() # os.remove(target) raise error # loop over output output = None for index, match in \ enumerate(RE_FILE_OUT.finditer(command)): if index > 0: # only 1 is allowed raise Exception('Only one file_out.* is allowed.') source = match.group() ext = match.group(1) output = system.TempFile(ext, output_filename) command = command.replace(source, system.fix_quotes(output.path)) # tweak command line for source, target in temp_files: command = command.replace(source, system.fix_quotes(target.path)) # execute system.call(command, shell=shell) # give back filename if output and not os.path.exists(output.path): error = True else: error = False for source, target in temp_files: target.close() # os.remove(target) if error: raise Exception( _('Command did not produce an output image:\n%s')\ % command) if output: layer.open(output.path) # DO NOT REMOVE image.load() or output.close will fail on windows layer.image.load() output.close() class Layer: def __init__(self, filename, position=(0, 0), load=True): self.open(filename) self.position = position # VERY IMPORTANT # do not remove load option, otherwise openImage.py won't work # correctly with group4 tiff compression if load: self.image.load() def open(self, uri): self.image = openImage.open(uri) if self.image.mode in ['F', 'I']: # Phatch doesn't support F and I # FIXME: It will better to add some sort of warning here self.image = self.image.convert('L') def apply_pil(self, function, *arg, **keyw): self.image = function(self.image, *arg, **keyw) phatch-0.2.7/phatch/core/preview.py0000644000000000000000000000346211346363116017170 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Follows PEP8 if __name__ == '__main__': import sys sys.path.insert(0, '../..') from phatch.phatch import init_config_paths init_config_paths() import os import Image import api from config import USER_PREVIEW_PATH from lib import openImage from lib.system import ensure_path def generate(source, size=(48, 48), path=USER_PREVIEW_PATH, force=True): source_image = openImage.open(source) source_image.thumbnail( (min(source_image.size[0], size[0] * 1), min(source_image.size[0], size[0] * 1)), Image.ANTIALIAS) ensure_path(path) for Action in api.ACTIONS.values(): action = Action() filename = os.path.join(path, action.label + '.png') if os.path.exists(filename) and not force: continue action.init() result = action.apply_pil(source_image.copy()) result.thumbnail(size, Image.ANTIALIAS) result.save(filename) if __name__ == '__main__': api.init() generate('/home/stani/sync/python/phatch/icons/lenna/lenna_new.png') phatch-0.2.7/phatch/core/safeGlobals.py0000644000000000000000000000305111346363116017723 0ustar rootroot00000000000000# -*- coding: UTF-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for python editing. # Follows PEP8 import math import random from lib.metadata import now def allow(key): return key[0] != '_' def add_dictionary(namespace, dictionary): for key, value in dictionary.items(): if allow(key): namespace[key] = value def add_module(namespace, module): """Add module dictionary to the ``namespace``. This is the equivalent for:: from module import * This used for the GLOBALS variable. :param namespace: namespace :type namespace: dict :param module_dict: module :type module_dict: module """ add_dictionary(namespace, module.__dict__) def safe_globals(): GLOBALS = {} add_module(GLOBALS, math) add_module(GLOBALS, random) GLOBALS['now'] = now return GLOBALS phatch-0.2.7/phatch/core/settings.py0000644000000000000000000000415211346363116017344 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python. # Follows PEP8 #from lib.formField import IMAGE_EXTENSIONS import ct from pil import IMAGE_READ_EXTENSIONS def create_settings(config_paths=None, options=None): settings = { #execute 'extensions': IMAGE_READ_EXTENSIONS, 'recursive': False, 'stop_for_errors': True, 'overwrite_existing_images': True, 'no_save': False, 'check_images_first': True, 'always_show_status_dialog': True, "desktop": False, "safe": True, "repeat": 1, #console 'console': False, 'init_fonts': False, 'interactive': False, 'verbose': True, #gui 'browse_source': 0, 'tag_actions': _('All'), 'description': True, 'collapse_automatic': False, 'droplet': False, 'droplet_path': ct.USER_PATH, 'file_history': [], 'image_inspector': False, 'paths': [ct.USER_PATH], #internal 'overwrite_existing_images_forced': False, } if options: for attr in settings: if hasattr(options, attr): settings[attr] = getattr(options, attr) if config_paths == None: #FIXME: when is this happening from config import init_config_paths config_paths = init_config_paths() settings.update(config_paths) return settings phatch-0.2.7/phatch/core/translation.py0000644000000000000000000000307711346363116020047 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Follows PEP8 from lib.safe import RE_EXPR, RE_VAR from lib.reverse_translation import _t, _r from lib.unicoding import ensure_unicode REVERSE = {} def to_english(x): _x = _r(ensure_unicode(x)) if x != _x: return _x return RE_EXPR.sub(_expr_to_english, x) def _expr_to_english(match): """Translates variables within an expression to english.""" return '<%s>' % (RE_VAR.sub(_var_to_english, match.group(1))) def _var_to_english(match): return _r(match.group('var')) + match.group('attr') def to_local(x): _x = _(x) if x != _x: return _x return RE_EXPR.sub(_expr_to_local, x) def _expr_to_local(match): return '<%s>' % (RE_VAR.sub(_var_to_local, match.group(1))) def _var_to_local(match): return _(match.group('var')) + match.group('attr') phatch-0.2.7/phatch/data/0000755000000000000000000000000011346363116015111 5ustar rootroot00000000000000phatch-0.2.7/phatch/data/__init__.py0000644000000000000000000000144211346363116017223 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 phatch-0.2.7/phatch/data/info.py0000644000000000000000000004050411346363116016421 0ustar rootroot00000000000000# -*- coding: UTF-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for python editing. """Important: Run this file everytime info is changed.""" import codecs import sys import time #constants NAME = 'Phatch' AUTHOR = 'Stani' AUTHOR_EMAIL = 'spe.stani.be@gmail.com' GPL_VERSION = '3' STANI = { 'name': AUTHOR, 'email': AUTHOR_EMAIL, 'url': 'www.stani.be', } NADIA = { 'name': 'Nadia Alramli', 'email': 'mail@nadiana.com', 'url': 'http://nadiana.com', } SUPPORTED_LANGUAGES = ['Dutch', 'English'] from version import VERSION, DATE #credits CREDITS = { 'code': [ STANI, NADIA, {'name': u'Erich Heine', 'email':'sophacles@gmail.com'}, {'name': u'Juho Vepsäläinen', 'email':'bebraw@gmail.com'}, {'name': u'Robin Mills', 'email': 'robin@clanmills.com'}, {'name': 'Bas van Oostveen', 'email': 'v.oostveen@gmail.com'}, {'name': 'Pawel T. Jochym', 'email': 'jochym@gmail.com'}, ], 'documentation': [ STANI, {'name': u'Frédéric Mantegazza', 'email': 'frederic.mantegazza@gbiloba.org', 'url': 'http://www.gbiloba.org'}, {'name': 'Dwarrel Egel', 'email': 'dwarrel.egel@gmail.com'}, ], 'translation': [ STANI, {'name': u'ad Madi'}, {'name': u'abdessmed mohamed amine'}, {'name': u'abuyop'}, {'name': u'adaminikisi'}, {'name': u'adura'}, {'name': u'aeglos'}, {'name': u'agatzebluz'}, {'name': u'Ahmed Noor Kader Mustajir Md Eusoff'}, {'name': u'Aktiwers'}, {'name': u'Alan Teixeira'}, {'name': u'Albert Cervin'}, {'name': u'Alberto T.'}, {'name': u'alex'}, {'name': u'Alex Debian'}, {'name': u'Alexandre Prokoudine'}, {'name': u'Ali Sattari'}, {'name': u'Anders'}, {'name': u'Andras Bibok'}, {'name': u'André Gondim'}, {'name': u'Andrea (pikkio)'}, {'name': u'Andrey Skuryatin'}, {'name': u'Andrzej MoST (Marcin Ostajewski)'}, {'name': u'Archie'}, {'name': u'Ardaking'}, {'name': u'Arielle B Cruz'}, {'name': u'Aristotelis Grammatikakis'}, {'name': u'arnau'}, {'name': u'Arnaud Bonatti'}, {'name': u'Aron Xu'}, {'name': u'Artin'}, {'name': u'Artur Chmarzyński'}, {'name': u'Åskar'}, {'name': u"Balaam's Miracle"}, {'name': u'Bjørn Sivertsen'}, {'name': u'bt4wang'}, {'name': u'Cedric Graebin'}, {'name': u'César Flores'}, {'name': u'Clovis Gauzy'}, {'name': u'cumulus007'}, {'name': u'Daniël H.'}, {'name': u'Daniel Nylander'}, {'name': u'Daniel Voicu'}, {'name': u'Daniele de Virgilio'}, {'name': u'Darek'}, {'name': u'David A Páez'}, {'name': u'David Machakhelidze'}, {'name': u'deukek'}, {'name': u'Diablo'}, {'name': u'DiegoJ'}, {'name': u'Dirk Tas'}, {'name': u'Diska'}, {'name': u'Dobrosław Żybort'}, {'name': u'DPini'}, {'name': u'Dr. Gráf'}, {'name': u'Dread Knight'}, {'name': u'Edgardo Fredz'}, {'name': u'Emil Pavlov'}, {'name': u'emil.s'}, {'name': u'Emilio Pozuelo Monfort'}, {'name': u'Emre Ayca'}, {'name': u'EN'}, {'name': u'Endresz_Z'}, {'name': u'ercole'}, {'name': u'Ervin Triana'}, {'name': u'Ervin Triana'}, {'name': u'Fabien Basmaison'}, {'name': u'Federico Antón'}, {'name': u'Felipe'}, {'name': u'Gabriel Čenkei'}, {'name': u'Gabriel Rota'}, {'name': u'Galvin'}, {'name': u'Gérard Duteil'}, {'name': u'Giacomo Mirabassi'}, {'name': u'Gianfranco Marino'}, {'name': u'Guo Xi'}, {'name': u'Guybrush88'}, {'name': u'Halgeir'}, {'name': u'Ionuț Jula'}, {'name': u'Ivan Lucas'}, {'name': u'Jan Tojnar'}, {'name': u'Jaroslav Lichtblau'}, {'name': u'Javier García Díaz'}, {'name': u'jean-luc menut'}, {'name': u'jgraeme'}, {'name': u'Johannes'}, {'name': u'John Lejeune'}, {'name': u'jollyr0ger'}, {'name': u'Juho Vepsäläinen'}, {'name': u'Juss1962'}, {'name': u'kasade'}, {'name': u'kekeljevic'}, {'name': u'kenan3008'}, {'name': u'Koptev Oleg'}, {'name': u'Kulcsár, Kázmér'}, {'name': u'Lauri Potka'}, {'name': u'liticovjesac'}, {'name': u'Lomz'}, {'name': u'Luca Livraghi'}, {'name': u'luojie-dune'}, {'name': u'madcore'}, {'name': u'mahirgul'}, {'name': u'Marcos'}, {'name': u'Marielle Winarto'}, {'name': u'Mario Ferraro'}, {'name': u'Martin Lettner'}, {'name': u'Matteo Ferrabone'}, {'name': u'Matthew Gadd'}, {'name': u'Mattias Ohlsson'}, {'name': u'Maudy Pedrao'}, {'name': u'MaXeR'}, {'name': u'Michael Christoph Jan Godawski'}, {'name': u'Michael Katz'}, {'name': u'Michał Trzebiatowski'}, {'name': u'Michal Zbořil'}, {'name': u'Miguel Diago'}, {'name': u'Mijia'}, {'name': u'milboy'}, {'name': u'Miroslav Koucký'}, {'name': u'Miroslav Matejaš'}, {'name': u'momou'}, {'name': u'Mortimer'}, {'name': u'Motin'}, {'name': u'nEJC'}, {'name': u'Newbuntu'}, {'name': u'nicke'}, {'name': u'Nicola Piovesan'}, {'name': u'Nicolae Istratii'}, {'name': u'Nicolas CHOUALI'}, {'name': u'nipunreddevil'}, {'name': u'Nizar Kerkeni'}, {'name': u'Nkolay Parukhin'}, {'name': u'orange'}, {'name': u'Paco Molinero'}, {'name': u'pasirt'}, {'name': u'Pavel Korotvička'}, {'name': u'pawel'}, {'name': u'Petr Pulc'}, {'name': u'petre'}, {'name': u'Pierre Slamich'}, {'name': u'Piotr Ożarowski'}, {'name': u'Pontus Schönberg'}, {'name': u'pveith'}, {'name': u'pygmee'}, {'name': u'qiuty'}, {'name': u'quina'}, {'name': u'rainofchaos'}, {'name': u'Rodrigo Garcia Gonzalez'}, {'name': u'rokkralj'}, {'name': u'Roman Shiryaev'}, {'name': u'royto'}, {'name': u'Rune C. Akselsen'}, {'name': u'rylleman'}, {'name': u'Salandro'}, {'name': u'Saša Pavić'}, {'name': u'Sasha'}, {'name': u'SebX86'}, {'name': u'Sergiy Babakin'}, {'name': u'Serhey Kusyumoff (Сергій Кусюмов)'}, {'name': u'Shrikant Sharat'}, {'name': u'skarevoluti'}, {'name': u'Skully'}, {'name': u'smo'}, {'name': u'SnivleM'}, {'name': u'stani'}, {'name': u'Stephan Klein'}, {'name': u'studiomohawk'}, {'name': u'Svetoslav Stefanov'}, {'name': u'Tao Wei'}, {'name': u'tarih mehmet'}, {'name': u'theli'}, {'name': u'therapiekind'}, {'name': u'Todor Eemreorov'}, {'name': u'Tommy Brunn'}, {'name': u'Tosszyx'}, {'name': u'TuniX12'}, {'name': u'ubby'}, {'name': u'Vadim Peretokin'}, {'name': u'VerWolF'}, {'name': u'Vyacheslav S.'}, {'name': u'w00binda'}, {'name': u'Wander Nauta'}, {'name': u'wang'}, {'name': u'WangWenhui'}, {'name': u'wcoqui'}, {'name': u'Wiesiek'}, {'name': u'Will Scott'}, {'name': u'X_FISH'}, {'name': u'Xandi'}, {'name': u'xinzhi'}, {'name': u'yoni'}, {'name': u'zelezni'}, {'name': u'zero'}, {'name': u'Zirro'}, {'name': u'Zoran Olujic'}, ], 'graphics': [ {'name': u'Igor Kekeljevic', 'email': 'admiror@nscable.net', 'url': 'http://www.admiror-ns.co.yu', }, NADIA, {'name': 'NuoveXt 1.6', 'url': 'http://nuovext.pwsp.net', 'author': 'Alexandre Moore', }, {'name': 'Everaldo Coelho', 'url': 'http://www.iconlet.com/info/9657_colorscm_128x128', 'email': 'http://www.everaldo.com', }, {'name': 'Open Clip Art Library', 'url': 'http://www.openclipart.org', }, {'name': 'Geotag Icon', 'url': 'http://www.geotagicons.com', }, STANI, ], 'libraries': [ {'name': 'Python %s' % sys.version.split(' ')[0], 'url': 'http://www.python.org', 'author': 'Guido Van Rossum', 'license': 'Python license', }, {'name': 'wxGlade', 'url': 'http://wxglade.sourceforge.net/', 'author': 'Alberto Griggio', }, {'name': 'pubsub.py', 'author': 'Oliver Schoenborn', 'license': 'wxWidgets license', }, {'name': 'TextCtrlAutoComplete.py', 'author':\ 'Edward Flick (CDF Inc, http://www.cdf-imaging.com)', 'license': 'wxWidgets license', 'url': 'http://wiki.wxpython.org/TextCtrlAutoComplete', }, {'name': 'PyExiv2', 'url': 'http://tilloy.net/dev/pyexiv2/', 'author': 'Olivier Somon', 'license': 'GPL license', }, {'name': 'python-nautilus', 'url': 'http://www.gnome.org/projects/nautilus/', 'license': 'GPL license', }, {'name': 'tamogen.py', 'url': 'http://sintixerr.wordpress.com/tone-altering-' \ + 'mosaic-generator-tamogen-in-python/', 'author': 'Jack Whitsitt, Juho Vepsäläinen', 'license': 'GPL license', }, {'name': 'python-dateutil: relativedelta.py', 'url': 'http://labix.org/python-dateutil', 'author': 'Gustavo Niemeyer', 'license': 'Python license', }, {'name': 'Tiff Tools', 'url': 'http://www.remotesensing.org/libtiff/', 'author': 'Sam Leffler', 'license': 'FreeBSD license', }, #{'name': 'EXIF.py', # 'url': 'http://www.gnome.org/projects/nautilus/', # 'author': 'Gene Cash, Ianaré Sévi', # 'license': 'FreeBSD license', #}, {'name': 'ToasterBox', 'url': 'http://xoomer.virgilio.it/infinity77/main/' \ + 'ToasterBox.html', 'author': 'Andrea Gavana', 'license': 'wxWidgets license', }, ], 'sponsors': [ {'name': 'Free Software web hosting', 'url': 'http://bearstech.com', 'email': 'John Lejeune & ' \ + 'Cyberj ', }, ] } #year: automatically fetch copyright years YEAR = time.localtime()[0] if YEAR > 2007: CO_YEAR = '2007-%s' % YEAR else: CO_YEAR = '2007' #setup.py information SETUP = { 'name': NAME, 'version': VERSION, 'author': AUTHOR, 'author_email': AUTHOR_EMAIL, 'maintainer': AUTHOR, 'maintainer_email': AUTHOR_EMAIL, 'url': 'http://phatch.org', 'description': 'PHoto bATCH Processor', 'long_description': 'Phatch enables you to resize, rotate, mirror, ' 'apply watermarks, shadows, rounded courners, ' 'perspective, ... to any photo collection easily ' 'with a single mouse click. You can arrange your own' ' action lists and write plugins with PIL. \n\n' 'Phatch can rename or copy images based on any EXIF ' 'or IPTC tag. In combination with pyexiv2 Phatch can' ' also save EXIF and IPTC metadata. \n\n' 'Phatch has a wxPython GUI, but can also run as a ' 'console application on servers.', 'classifiers': [ 'Development Status:: 4 - Beta', 'Environment:: Console', 'Environment:: MacOS X', 'Environment:: Win32 (MS Windows)', 'Environment:: X11 Applications', 'Environment:: X11 Applications:: Gnome', 'Environment:: X11 Applications:: GTK', 'Intended Audience:: Developers', 'Intended Audience:: End Users/Desktop', 'License:: OSI Approved:: GNU General Public License (GPL)', 'Operating System:: MacOS:: MacOS X', 'Operating System:: Microsoft:: Windows', 'Operating System:: OS Independent', 'Operating System:: POSIX', 'Operating System:: POSIX:: Linux', 'Programming Language:: Python', 'Topic:: Artistic Software', 'Topic:: Multimedia:: Graphics', 'Topic:: Multimedia:: Graphics:: Graphics Conversion', ] + ['Natural Language:: ' + \ language for language in SUPPORTED_LANGUAGES], } INFO = { 'copyright': '(c) %s www.stani.be' % CO_YEAR, 'date': DATE, 'description': 'Photo Batch Processor', 'extension': '.' + NAME.lower(), 'download_url': 'http://phatch.org', 'gpl_version': GPL_VERSION, 'license': 'GPL v.' + GPL_VERSION, 'maintainer': 'Stani M', 'fsf_adress': '51 Franklin Street, Fifth Floor, ' 'Boston, MA 02110-1301, USA', } INFO.update(SETUP) README = \ """%(name)s = PHoto bATCH Processor %(url)s Batch your photo's with one mouse click. Typical examples are resizing, rotating, applying shadows, watermarks, rounded corners, EXIF renaming, ... %(name)s was developed with the SPE editor (http://pythonide.stani.be) on Ubuntu (GNU/Linux), but should run fine as well on Windows and Mac Os X. Please read first carefully the installation instructions for your platform on the documentation website, which you can find at: %(url)s > documentation > install If you are a python developer, you can write easily your own plugins with PIL (Python Image Library). Please send your plugins to %(author_email)s You probably first want to read the developers documentation: %(url)s > documentation > developers All credits are in the AUTHORS file or in the Help> About dialog box. %(name)s is licensed under the %(license)s, of which you can find the details in the COPYING file. %(name)s has no limitations, no time-outs, no nags, no adware, no banner ads and no spyware. It is 100%% free and open source. %(copyright)s """ % INFO PIL_CREDITS = { 'name': 'Python Image Library', 'url': 'http://www.pythonware.com/products/pil/', 'author': 'Fredrik Lundh', 'license': 'PIL license', } WXPYTHON_CREDITS = { 'name': 'wxPython', 'url': 'http://www.wxpython.org', 'author': 'Robin Dunn', 'license': 'wxWidgets license', } HEADER = "Phatch is the result of work by (in no particular order):" def all_credits(): #PIL - Python Image Library import Image pil_credits = PIL_CREDITS pil_credits['name'] += ' %s' % Image.VERSION if not (pil_credits in CREDITS['libraries']): CREDITS['libraries'].append(pil_credits) #wxPython import wx wxPython_credits = WXPYTHON_CREDITS wxPython_credits['name'] += ' %s' % wx.VERSION_STRING if not (wxPython_credits in CREDITS['libraries']): CREDITS['libraries'].append(wxPython_credits) return CREDITS def write_readme(): readme = open('../../README', 'w') readme.write(README) readme.close() def write_credits(): all_credits() authors = codecs.open('../../AUTHORS', 'wb', 'utf-8') authors.write(HEADER) tasks = CREDITS.keys() tasks.sort() for task in tasks: authors.write('\n\n\n%s:\n\n' % task.title()) authors.write(u'\n'.join([' - '.join(person.values()) for person in CREDITS[task]])) authors.close() def write_readme_credits(): write_readme() write_credits() if __name__ == '__main__': write_readme_credits() phatch-0.2.7/phatch/data/license.py0000644000000000000000000010617111346363116017113 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 GPL = """ 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: Phatch Copyright (C) 2007 Stani (www.stani.be) 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 . """ phatch-0.2.7/phatch/data/version.py0000644000000000000000000000140711346363116017152 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2009 www.stani.be # # 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 http://www.gnu.org/licenses/ BASE = "0.2.7" VERSION = "0.2.7" DATE = "Wed, 10 Mar 2010 18:49:51" phatch-0.2.7/phatch/lib/0000755000000000000000000000000011346363116014746 5ustar rootroot00000000000000phatch-0.2.7/phatch/lib/__init__.py0000644000000000000000000000126111346363116017057 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follows PEP8 phatch-0.2.7/phatch/lib/_pyexiv2.py0000644000000000000000000001767611346363116017106 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import re import pyexiv2 BROKEN = 'Exif[.]Canon' RE_BROKEN = re.compile(BROKEN) ISSUES = 'Saving metadata to %s caused following issues:\n' FAILED = ''' Failed to save metadata to %s:\npyexiv2: %s Trying again by ignoring tags with following pattern:\n%s\n''' #info taken from http://dev.exiv2.org/wiki/exiv2/Supported_image_formats READ_EXIF = ['JPEG', 'EXV', 'CR2', 'CRW', 'MRW', 'TIFF', 'DNG', 'NEF', 'PEF', 'ARW', 'SR2', 'ORF', 'RW2', 'RAF', 'PSD', 'JP2'] WRITE_EXIF = ['JPEG', 'EXV', 'CRW', 'DNG', 'NEF', 'PEF', 'PSD', 'JP2'] #others needs more testing #for sure exclude TIFF for now: #- eg try to convert Marino_Detail02 from jpeg to tiff #-> tiff gets corrupted #['JPEG', 'EXV', 'CRW', 'TIFF', 'DNG', 'NEF', 'PEF', 'PSD', 'JP2'] READ_IPTC = ['JPEG', 'EXV', 'CR2', 'MRW', 'TIFF', 'DNG', 'NEF', 'PEF', 'ARW', 'SR2', 'ORF', 'RW2', 'RAF', 'PSD', 'JP2'] WRITE_IPTC = ['JPEG', 'EXV', 'CR2', 'MRW', 'DNG', 'NEF', 'PEF', 'ARW', 'SR2', 'ORF', 'RW2', 'RAF', 'PSD', 'JP2'] #exclude for now: 'TIFF', READ_COMMENT = ['JPEG', 'EXV', 'CRW'] WRITE_COMMENT = ['JPEG', 'EXV', 'CRW'] def is_readable_format(format): """Returns True if pyexiv2 can read Exif or Iptc metadata from the image file ``format``.""" return not format or format in READ_EXIF + READ_IPTC + READ_COMMENT def is_writable_format(format): """Returns True if pyexiv2 can write Exif or Iptc metadata to the image file ``format``.""" return not format or format in WRITE_EXIF + WRITE_IPTC + WRITE_COMMENT def is_writable_format_exif(format): """Returns True if pyexiv2 can write Exif metadata to the image file ``format``.""" return not format or format in WRITE_EXIF def is_writable_format_iptc(format): """Returns True if pyexiv2 can write Iptc metadata to the image file ``format``.""" return not format or format in WRITE_IPTC def write_metadata(source_pyexiv2_image, target, source_format=None, target_format=None, thumbdata=None): """ :param source_pyexiv2_image: file opened by pyexiv2 :type source_pyexiv2_image: pyexiv2.Image :param target: target filename :type target: string :param source_format: source format e.g. obtained by PIL :type source_format: string :param target_format: target format e.g. obtained by PIL :type target_format: string :param thumbdata: new thumbnail (e.g. with StringIO, see :mod:`imtools`) :type thumbdata: string """ #if there is nothing to read or write, return immediately if not is_writable_format(target_format): return '' #correct tags if not source_pyexiv2_image: return '' #make two attempts to copy metadata: #1. normal #2. exclude tags which (might) break exiv2 (eg Canon tuples) # This will probably be obsolete for python-pyexiv2 0.2 # -> If that is True add a version check #verify if there are tags which might break exiv2 broken_tag = None for tag in list(source_pyexiv2_image.exifKeys()) + \ list(source_pyexiv2_image.iptcKeys()): if RE_BROKEN.match(tag): broken_tag = RE_BROKEN break #copy the tags log = '' #attempt to copy metadata try: warnings = _copy_metadata(source_pyexiv2_image, target, source_format, target_format, broken_tag, thumbdata) copied = True except Exception, message: copied = False #if metadata copied succesfully, check for warnings if copied: if warnings: log += ISSUES % target + warnings else: log = FAILED % (target, message, BROKEN) return log def _copy_metadata(source_pyexiv2_image, target, source_format=None, target_format=None, broken_tag=None, thumbdata=None): """ :param source_pyexiv2_image: file opened by pyexiv2 :type source_pyexiv2_image: pyexiv2.Image :param target: target filename :type target: string :param source_format: source format e.g. obtained by PIL :type source_format: string :param target_format: target format e.g. obtained by PIL :type target_format: string :param broken_tag: tag which might possibly break the metadata writing :type broken_tag: compiled regular expression :param thumbdata: new thumbnail (e.g. with StringIO, see :mod:`imtools`) :type thumbdata: string """ #read target target = pyexiv2.Image(target) target.readMetadata() warnings = [] written = False #copy exif metadata if (not source_format or source_format in READ_EXIF) and \ (not target_format or target_format in WRITE_EXIF): for tag in source_pyexiv2_image.exifKeys(): if not(broken_tag and broken_tag.match(tag)): try: #the following is more or less the same as #target[tag] = source_pyexiv2_image[tag] #but prevents conversions target._Image__setExifTag(tag, source_pyexiv2_image._Image__getExifTag(tag)[1]) written = True except Exception, message: message = '%s: %s' % (tag, message) warnings.append(message) #copy iptc metadata if (not source_format or source_format in READ_IPTC) and \ (not target_format or target_format in WRITE_IPTC): for tag in source_pyexiv2_image.iptcKeys(): try: target[tag] = source_pyexiv2_image[tag] written = True except Exception, message: message = '%s: %s' % (tag, message) warnings.append(message) #copy comment if (not source_format or source_format in READ_COMMENT) and \ (not target_format or target_format in WRITE_COMMENT): try: target.setComment(source_pyexiv2_image.getComment()) written = True except Exception, message: warnings.append(message) warnings.append(write_thumbdata(target, thumbdata)) #save metadata (this might rise an exception) if written: target.writeMetadata() return '\n'.join(warnings) def extension_to_image_format(ext): format = ext[1:].upper() if format in ['JPG', 'JPE']: format = 'JPEG' elif format == 'TIF': format = 'TIFF' return format def read_thumbdata(image): try: return image.getThumbnailData() except Exception, message: return None def write_thumbdata(image, thumbdata=None): if (thumbdata is None): return '' try: image.setThumbnailData(thumbdata) return '' except Exception, message: return unicode(message) #def write_comment(source, comment=None, source_format=None, # target_format=None): # #TODO: phatch for now ignores jpg comments # #this function is not ready # if comment is None: # source.getComment() # if (not source_format or source_format in READ_COMMENT) and \ # (not target_format or target_format in WRITE_COMMENT): # try: # target.setComment(comment) # except Exception, message: # return unicode(message) # return '' def flush(image, thumbdata): warnings = [write_thumbdata(image, thumbdata)] try: image.writeMetadata() except Exception, message: warnings.append(unicode(message)) return '\n'.join(warnings) phatch-0.2.7/phatch/lib/colors.py0000644000000000000000000000441311346363116016623 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 def RGBToHTMLColor(rgb_tuple): """ convert an (R, G, B) tuple to #RRGGBB """ hexcolor = '#%02x%02x%02x' % rgb_tuple # that's it! '%02x' means zero-padded, 2-digit hex values return hexcolor def HTMLColorToRGB(colorstring): """ convert #RRGGBB to an (R, G, B) tuple """ colorstring = colorstring.strip() if colorstring[0] == '#': colorstring = colorstring[1:] if len(colorstring) != 6: raise ValueError("input #%s is not in #RRGGBB format" % colorstring) r, g, b = colorstring[:2], colorstring[2:4], colorstring[4:] r, g, b = [int(n, 16) for n in (r, g, b)] return (r, g, b) def HTMLColorToRGBA(colorstring, opacity): r, g, b = HTMLColorToRGB(colorstring) return (r, g, b, opacity) def HTMLColorToPILColor(colorstring): """ converts #RRGGBB to PIL-compatible integers""" colorstring = colorstring.strip() while colorstring[0] == '#': colorstring = colorstring[1:] # get bytes in reverse order to deal with PIL quirk colorstring = colorstring[-2:] + colorstring[2:4] + colorstring[:2] # finally, make it numeric color = int(colorstring, 16) return color def PILColorToRGB(pil_color): """ convert a PIL-compatible integer into an (r, g, b) tuple """ hexstr = '%06x' % pil_color # reverse byte order r, g, b = hexstr[4:], hexstr[2:4], hexstr[:2] r, g, b = [int(n, 16) for n in (r, g, b)] return (r, g, b) def PILColorToHTMLColor(pil_integer): return RGBToHTMLColor(PILColorToRGB(pil_integer)) def RGBToPILColor(rgb_tuple): return HTMLColorToPILColor(RGBToHTMLColor(rgb_tuple)) phatch-0.2.7/phatch/lib/desktop.py0000644000000000000000000000527611346363116017003 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 """Cross platform library to locate the desktop folder.""" import os import re import sys # user folder USER_FOLDER = os.path.expanduser('~') try: USER_FOLDER = USER_FOLDER.decode(sys.getfilesystemencoding()) except: pass # desktop folder if sys.platform.startswith('win'): # Windows try: from win32com.shell import shell, shellcon DESKTOP_FOLDER = shell.SHGetFolderPath(0, shellcon.CSIDL_DESKTOP, None, 0) except ImportError: #FIXME (Windows 7) DESKTOP_FOLDER = os.path.join(USER_FOLDER, 'Desktop') #DESKTOP_FOLDER = "C:\\" elif sys.platform.startswith('darwin'): # Mac: verify this! DESKTOP_FOLDER = os.path.expanduser('~/Desktop') else: # Linux DESKTOP_FOLDER = os.path.expanduser('~/Desktop') user_dirs = os.path.expanduser('~/.config/user-dirs.dirs') if os.path.exists(user_dirs): match = re.search('XDG_DESKTOP_DIR="(.*?)"', open(user_dirs).read()) if match: DESKTOP_FOLDER = os.path.expanduser( match.group(1).replace('$HOME', '~')) del user_dirs if not os.path.isdir(DESKTOP_FOLDER): DESKTOP_FOLDER = USER_FOLDER def _env(var, *paths): paths = (USER_FOLDER, ) + paths return os.environ.get(var, os.path.join(*paths)) # free desktop specifcation (xdg folders) if sys.platform.startswith('linux'): USER_DATA_FOLDER = _env('XDG_DATA_HOME', USER_FOLDER, '.local', 'share') USER_CONFIG_FOLDER = _env('XDG_CONFIG_HOME', '.config') USER_CACHE_FOLDER = _env('XDG_CACHE_HOME', '.cache') else: #TODO: what would be the best user path for these platforms? USER_DATA_FOLDER = USER_CONFIG_FOLDER = USER_CACHE_FOLDER =\ USER_FOLDER # thumbnail folder USER_THUMBNAILS_NORMAL_FOLDER = os.path.join(USER_FOLDER, '.thumbnails', 'normal') if not os.path.isdir(USER_THUMBNAILS_NORMAL_FOLDER): USER_THUMBNAILS_NORMAL_FOLDER = None if __name__ == '__main__': sys.stdout.write('Your desktop is: %s\n' % DESKTOP_FOLDER) phatch-0.2.7/phatch/lib/events.py0000644000000000000000000000627411346363116016635 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 """The aim of this library is to abstract pubsub.""" #check this for the console version (wx should dissappear) try: from other.pubsub import ALL_TOPICS, Publisher except ImportError: from wx.lib.pubsub import ALL_TOPICS, Publisher #---Send class SendListener: def __init__(self, topic=ALL_TOPICS): self.topic = topic def __call__(self, *args, **keyw): data = (args, keyw) # pack (see ReceiveListener.__call__) return Publisher().sendMessage(self.topic, data) class Sender: def __getattr__(self, topic): return SendListener(topic) send = Sender() #---Receive def subscribe(method, obj): Publisher().subscribe(method, getattr(obj, method)) class ReceiveListener: def __init__(self, obj, method): self.method = getattr(obj, method) def __call__(self, message): args, keyw = message.data # unpack (see SendListener.__call__) return self.method(*args, **keyw) class Receiver: def __init__(self, name): self._pubsub_name = name self._listeners = [] def subscribe(self, method): """Subscribe with some class magic. Example: self.subscribe('error') -> subscribe('frame.error') Afterwars you can call it with send.frame_error()""" listener = ReceiveListener(self, method) self._listeners.append(listener) Publisher().subscribe(listener, '%s_%s' % (self._pubsub_name, method)) def unsubscribe(self, method): """Subscribe with some class magic. Example: self.subscribe('error') -> subscribe('frame.error')""" listener = ReceiveListener(self, method) self._listeners.remove(listener) Publisher().unsubscribe(listener, '%s_%s' % (self._pubsub_name, method)) def unsubscribe_all(self): for listener in self._listeners: Publisher().unsubscribe(listener) self._listeners = [] def example(): import sys class Test(Receiver): def __init__(self): #register an instance Receiver.__init__(self, 'test') #register the method send.test_write -> self.write self.subscribe('write') self.phrase = 'planet' def write(self, phrase, error): sys.stdout.write(phrase + '\n') sys.stderr.write(error) self.phrase = phrase demo = Test() phrase = 'hello world' send.test_write(phrase, error='(No error.)') assert demo.phrase == phrase if __name__ == '__main__': example() phatch-0.2.7/phatch/lib/fonts.py0000644000000000000000000002103311346363116016450 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import glob import os import re import subprocess import sys import system from lib import safe USER_FONTS_CACHE_PATH = None ROOT_FONTS_CACHE_PATH = None WRITABLE_FONTS_CACHE_PATH = None _FONT_DICTIONARY = None _FONT_NAMES = None re_WORD = re.compile('([A-Z0-9]+[^A-Z0-9]*)', re.UNICODE) re_SPACE = re.compile('_|\W+', re.UNICODE) LOCATE = [ ['locate', '-i', '.ttf', '.otf'], ['find', '/', '-iname', '*.ttf', '-o', '-name', '*.otf'], ] #collect_fonts (system dependent) if sys.platform.startswith('win'): #3thrd party module in other from other.findsystem import findFonts def collect_fonts(): """Collect a list of all font filenames.""" return findFonts() else: #better unix alternative for collect_fonts/findFonts #presume findutils are present if not system.find_exe('locate'): sys.exit(_('Please install "%s" first.') % 'locate') def locate_files(command): return subprocess.Popen(command, stdout=subprocess.PIPE).stdout.read().splitlines() def collect_fonts(): """Collect a list of all font filenames.""" #try first with locate otherwise with find for command in LOCATE: try: if system.find_exe(command[0]): output = locate_files(command) files = [line for line in output if line[-4:].lower() in ['.ttf', '.otf']] if files: return files except: pass from other.findsystem import findFonts return findFonts() def basename(font_file): return os.path.splitext(os.path.basename(font_file))[0] def name(x): """\ Split camelcase filenames and ensure title case. >>> name('ArialBlack italic') 'Arial Black Italic' """ words = ' '.join(re_SPACE.split(' '.join(re_WORD.split(x)))) return words.replace(' ', ' ').title().strip() def _font_name(font_name, base='xxx'): """\ Expand an abbreviated font name. """ if font_name == 'Ariblk': return 'Arial', 'Arial Black' elif font_name == 'Cour': return 'Cour', 'Courier New' elif font_name == 'Micross': return 'Microsoft Sans Serif', 'Microsoft Sans Serif Regular' elif font_name == 'Lucon': return 'Lucida', 'Lucida Console' elif font_name == 'L 10646': return 'Lucida', 'Lucida Sans Unicode' elif font_name == 'Pala': return 'Pala', 'Palatino Linotype' elif font_name == 'Trebuc': return 'Trebuc', 'Trebuchet' elif font_name[:5] == 'Gen A': font_name = 'Gentium Alt ' + font_name[5:].title() elif font_name[:4] == 'Gen ': font_name = 'Gentium ' + font_name[4:] if font_name[:len(base)] == base: #base is still valid rest = font_name[len(base):].strip().split(' ') p = ' '.join(rest[:-1]).replace('Mo', 'Mono').replace('Se', 'Serif') prefix = ' '.join([base, p]).strip() suffix = rest[-1].lower() if suffix in ['it', 'i']: font_name = base + ' Italic' elif suffix in ['bd', 'b']: font_name = prefix + ' Bold' elif suffix in ['bi', 'bdit', 'z']: font_name = prefix + ' Bold Italic' elif suffix == 'mr': font_name = prefix + ' Mono Regular' elif suffix == 'mri': font_name = prefix + ' Mono Italic' elif suffix == 'mb': font_name = prefix + ' Mono Bold' elif suffix == 'mbi': font_name = prefix + ' Mono Bold Italic' elif suffix in ['rr', 'se']: font_name = prefix + ' Serif' elif suffix == 'rri': font_name = prefix + ' Serif Italic' elif suffix in ['rb', 'sebd']: font_name = prefix + ' Serif Bold' elif suffix == 'rbi': font_name = prefix + ' Serif Bold Italic' elif suffix in ['sb', 'sansbold']: font_name = prefix + ' Sans Bold' elif suffix == 'sbi': font_name = prefix + ' Sans Bold Italic' elif suffix == 'sr': font_name = prefix + ' Sans' elif suffix == 'sri': font_name = prefix + ' Sans Italic' else: #new base base = font_name.split(' ')[0] if len(base) < 4: base = font_name if font_name[-3:] == ' It': font_name += 'alic' elif font_name[-3:] == ' Bd': font_name = font_name[-1:] + 'old' font_name = font_name.replace(' Ms', ' Microsoft ')\ .replace(' Std', ' Standard ')\ .replace('Mg ', 'Magenta ')\ .replace('Tlwg ', 'Thai ')\ .replace('I102', 'Italic')\ .replace('R102', 'Regular')\ .replace('Cour ', 'Courier New ')\ .replace('Trebuc ', 'Trebuchet ')\ .replace('Pala ', 'Palatino Linotype ') if sys.platform.startswith('win'): font_name = font_name.replace('Times', 'Times New Roman') return font_name, base def _font_dictionary(font_files=None): if font_files is None: font_files = collect_fonts() #step 1: temporary font names derived from file names t = {} for font_file in font_files: t[name(basename(font_file))] = font_file #step 2: fix font names derived from context #normally a base come first, than italic, bold font_names = t.keys() font_names.sort() d = {} base = 'xxx' # non existing font name as base for font_name in font_names: new_font_name, base = _font_name(font_name, base) if new_font_name[0].upper() == new_font_name[0]: d[new_font_name] = t[font_name] return d def font_dictionary(filename=None, force=False): """\ Path specification for the font dictionary, cached """ global _FONT_DICTIONARY if _FONT_DICTIONARY is None: if filename is None: if os.path.exists(USER_FONTS_CACHE_PATH): filename = USER_FONTS_CACHE_PATH else: filename = ROOT_FONTS_CACHE_PATH if filename and os.path.exists(filename) and not force: _FONT_DICTIONARY = safe.eval_safe(file(filename, 'rb').read()) else: _FONT_DICTIONARY = {} if not _FONT_DICTIONARY: _FONT_DICTIONARY = _font_dictionary() if not (WRITABLE_FONTS_CACHE_PATH is None): f = file(WRITABLE_FONTS_CACHE_PATH, 'wb') f.write(unicode(_FONT_DICTIONARY)) f.close() if not _FONT_DICTIONARY: # 'empty' dict for ui _FONT_DICTIONARY = {'': ''} _FONT_DICTIONARY.update(SHIPPED_FONTS) return _FONT_DICTIONARY def font_names(filename=None): global _FONT_NAMES if _FONT_NAMES is None: _FONT_NAMES = font_dictionary(filename).keys() _FONT_NAMES.sort() return _FONT_NAMES def merge(*paths): font_files = [] for path in paths: font_files += glob.glob(os.path.join(path, "*.ttf")) return _font_dictionary(font_files) def set_font_cache(user_fonts_path, root_fonts_path, user_fonts_cache_path, root_fonts_cache_path): """Expose global variables""" # maybe this should generate the cache immediately global SHIPPED_FONTS global USER_FONTS_CACHE_PATH global ROOT_FONTS_CACHE_PATH global WRITABLE_FONTS_CACHE_PATH SHIPPED_FONTS = merge(root_fonts_path, user_fonts_path) USER_FONTS_PATH = user_fonts_path ROOT_FONTS_PATH = root_fonts_path USER_FONTS_CACHE_PATH = user_fonts_cache_path ROOT_FONTS_CACHE_PATH = root_fonts_cache_path if not hasattr(os, 'getuid') or os.getuid(): WRITABLE_FONTS_CACHE_PATH = USER_FONTS_CACHE_PATH else: WRITABLE_FONTS_CACHE_PATH = ROOT_FONTS_CACHE_PATH def example(): names = font_dictionary().keys() names.sort() sys.stdout.write(unicode(names) + '\n') if __name__ == '__main__': example() phatch-0.2.7/phatch/lib/formField.py0000644000000000000000000007701311346363116017237 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 """ Store internally as a string. Provide validation routines. """ #TODO: move all Phatch references to models #---import modules #standard library import glob import os import re import safe import system import textwrap import types if '_' not in dir(): _ = str #gui independent (lib) import system import unicoding from odict import odict as Fields NO_FIELDS = Fields() _t = unicode USE_INSPECTOR = _('Use the Image Inspector to list all the variables.') USE_EXTENSIONS = _('You can only use files with the following extensions') #---image ALIGN_HORIZONTAL = [_t('left'), _t('center'), _t('right')] ALIGN_VERTICAL = [_t('top'), _t('middle'), _t('bottom')] FONT_EXTENSIONS = ['ttf', 'otf', 'ttc'] GEO_EXTENSIONS = ['gpx'] ICON_SIZE = (64, 64) IMAGE_EXTENSIONS = ['bmp', 'gif', 'jpe', 'jpeg', 'jpg', 'im', 'pcx', 'png', 'pbm', 'pgm', 'ppm', 'tif', 'tiff', 'xbm'] IMAGE_READ_EXTENSIONS = IMAGE_EXTENSIONS + ['cur', 'dcx', 'fli', 'flc', 'fpx', 'gbr', 'gd', 'ico', 'imt', 'mic', 'mcidas', 'pcd', 'psd', 'bw', 'rgb', 'cmyk', 'sun', 'tga', 'xpm'] IMAGE_READ_EXTENSIONS.sort() IMAGE_READ_MIMETYPES = ['image/' + ext for ext in IMAGE_READ_EXTENSIONS] IMAGE_WRITE_EXTENSIONS = IMAGE_EXTENSIONS + ['eps', 'ps', 'pdf'] IMAGE_WRITE_EXTENSIONS.sort() IMAGE_MODES = [_t('Monochrome (1-bit pixels, black and white)'), _t('Grayscale (8-bit pixels)'), _t('LA (8-bit pixels, grayscale with transparency mask)'), _t('RGB (3x8-bit pixels, true color)'), _t('RGBA (4x8-bit pixels, RGB with transparency mask)'), _t('CMYK (4x8-bit pixels, color separation)'), _t('P (8-bit pixels, mapped using a color palette)'), _t('YCbCr (3x8-bit pixels, color video format)')] IMAGE_EFFECTS = [_t('blur'), _t('contour'), _t('detail'), _t('edge enhance'), _t('edge enhance more'), _t('emboss'), _t('find edges'), _t('smooth'), _t('smooth more'), _t('sharpen')] IMAGE_FILTERS = [_t('nearest'), _t('bilinear'), _t('bicubic')] IMAGE_RESAMPLE_FILTERS = IMAGE_FILTERS + [_t('antialias')] IMAGE_TRANSPOSE = [_t('Rotate 90'), _t('Rotate 180'), _t('Rotate 270'), _t('Flip Left Right'), _t('Flip Top Bottom')] ORIENTATION = [_t('Normal')] + IMAGE_TRANSPOSE TIFF_COMPRESSIONS = ['', _t('none'), 'g3', 'g4', 'jpeg', 'lzw', 'packbits', 'zip'] IMAGE_WRITE_EXTENSIONS = [''] + IMAGE_WRITE_EXTENSIONS IMAGE_READ_EXTENSIONS.sort() IMAGE_WRITE_EXTENSIONS.sort() RANK_SIZES = [3, 5] RE_FILE_IN = re.compile('file_in([.]\w+)') RE_FILE_OUT = re.compile('file_out([.]\w+)') def files_dictionary(paths, extensions, title_parser=None): """Collects files with a certain extension in different folders and stores the files in a dictionary of which the keys are titled versions of the filename. Phatch uses this for fonts, highlights and masks. .. seealso:::func:`system.filename_to_title` >>> files_dictionary(['/etc/apt'], ['.list']) {'Sources': '/etc/apt/sources.list'} """ if title_parser is None: title_parser = system.filename_to_title files = [] for path in paths: if path: for extension in extensions: files += glob.glob(os.path.join(path, '*' + extension)) d = {} for filename in files: d[title_parser(filename)] = filename return d # TODO: move this to some nicer place! def rotation_title_parser(field, filename): filename = os.path.splitext(os.path.basename(filename))[0] return filename.replace('_', ' ').title() #---form class Form(object): """A form contains different fields for user input. It can retrieve and set single values. It can also dump all fields to a dictionary or do the reverse: load all fields from a dictionary. It provide common default values (CONSTANTS) and some tools such as ensure_path. .. note:: This is independent of any GUI toolkit. """ #todo: move this as instance attributes label = 'label' icon = 'ART_TIP' tags = [] exe = {} __doc__ = '' #default values FILENAME = '<%s>' % _t('filename') FOLDER = '<%s>' % _t('folder') DESKTOP = '<%s>' % _t('desktop') FOLDER_PHATCH = '%s/phatch' % DESKTOP DPI = '<%s>' % _t('dpi') DATE = '<%s>-<##%s>-<##%s>' % (_t('year'), _t('month'), _t('day')) DATETIME = DATE + '_<##%s>-<##%s>-<##%s>'\ % (_t('hour'), _t('minute'), _t('second')) EXIF_DATE = '-' + \ '<##Exif_Photo_DateTimeOriginal.month>-' + \ '<##Exif_Photo_DateTimeOriginal.day>' ROOT = '<%s>' % _t('root') BYSIZE = '<%s>x<%s>' % (_t('width'), _t('height')) SUBFOLDER = '<%s>' % _t('subfolder') DEFAULT_FOLDER = '%s/%s' % (FOLDER_PHATCH, SUBFOLDER) TYPE = '<%s>' % _t('type') COMPRESSION = '<%s>' % _t('compression') # choices DPIS = [DPI, '', '72', '144', '300'] PIXELS = ['10', '25', '50', '100', '200'] PIXELS_X = ['16', '32', '64', '128', '256', '640', '800', '1024', '1280', '1280', '1440', '1600', '1680', '1920', '1920'] PIXELS_Y = ['16', '32', '64', '128', '256', '480', '600', '768', '960', '1024', '900', '1200', '1050', '1080', '1200'] SMALL_PIXELS = ['1', '2', '5', '10'] OFFSET_PIXELS = ['-75', '-50', '-25', '-10', '-5', '0', '5', '10', '25', '50', '75', '100'] FILENAMES = [ FILENAME, '%s_phatch' % FILENAME, '%s<###index>' % _('Image'), EXIF_DATE, DATETIME, ] FOLDERS = [ '%s_phatch/%s' % (FOLDER, SUBFOLDER), '%s/%s' % (FOLDER, SUBFOLDER), DESKTOP, FOLDER_PHATCH, DEFAULT_FOLDER, '%s/%s' % (FOLDER_PHATCH, BYSIZE), '%s/%s' % (FOLDER_PHATCH, DATE.replace('-', '/')), '%s/phatch/%s' % (ROOT, SUBFOLDER), ] STAMPS = [ 'Phatch', 'Phatch (c)<%s> www.stani.be' % _t('year'), EXIF_DATE, DATE, DATETIME, FILENAME, '<%s>' % _t('path'), ] EXIF_IPTC = ['Exif_Image_Artist', 'Exif_Image_Copyright', 'Exif_Image_ImageDescription', 'Exif_Image_DateTime', 'Exif_Image_Make', 'Exif_Image_Model', 'Exif_Image_Orientation', 'Exif_Photo_UserComment', 'Exif_Photo_WhiteBalance', 'Iptc_Application2_Byline', 'Iptc_Application2_BylineTitle', 'Iptc_Application2_Caption', 'Iptc_Application2_CaptionWriter', 'Iptc_Application2_Category', 'Iptc_Application2_City', 'Iptc_Application2_Copyright', 'Iptc_Application2_CountryName', 'Iptc_Application2_DateCreated', 'Iptc_Application2_Keywords', 'Iptc_Application2_ObjectName', 'Iptc_Application2_ProvinceState', 'Iptc_Application2_Writer'] def __init__(self, **options): """For the possible options see the source code.""" fields = Fields() fields['__enabled__'] = BooleanField(True, visible=False) self.interface(fields) self._fields = fields self._fields.update(options) def interface(self, fields): """Describe here the fields. This is called from the __init__ method. :param fields: an (usually empty) ordered dictionary :type fields: odict""" pass def __cmp__(self, other): """Comparison method for sorting. :param fields: an (usually empty) ordered dictionary :type fields: odict """ label = _(self.label) other_label = _(other.label) if label < other_label: return -1 elif label == other_label: return 0 else: return 1 def _get_fields(self): return self._fields def get_field_labels(self): return self._get_fields().keys() def _get_field(self, label): return self._fields[label] def get_field(self, label, info=None): if info is None: info = {} return self._get_field(label).get(info, label) def get_fields(self, info, convert=False, pixel_fields=None, exclude=None): if exclude is None: exclude = [] if pixel_fields is None: pixel_fields = {} result = {} for label in self.get_field_labels(): if label[:2] != '__' and not (label in exclude): param = None #skip hidden fields such as __enabled__ if label in pixel_fields: #pixel size -> base, dpi needed param = pixel_fields[label] if type(param) != types.TupleType: param = (param, info['dpi']) elif self._get_field(label).__class__ == PixelField: param = (1, 1) if param: value = self.get_field_size(label, info, *param) else: #retrieve normal value value = self.get_field(label, info) #convert field labels to function parameters if convert: label = label.lower().replace(' ', '_') result[label] = value return result def get_field_size(self, label, info, base, dpi): return self._get_field(label).get_size(info, base, dpi, label) def get_field_string(self, label): return self._get_field(label).get_as_string() def is_enabled(self): return self.get_field('__enabled__', None) def is_field_true(self, label): return self.get_field_string(label) in ('yes', 'true') def _set_field(self, label, field): self._fields[label] = field def set_field(self, label, value): self._get_field(label).set(value) return self def set_fields(self, **options): for label, value in options.items(): self.set_field(label, value) def set_field_as_string(self, label, value_as_string): self._get_field(label).set_as_string(value_as_string) return self def set_field_as_string_dirty(self, label, value_as_string): self._get_field(label).set_as_string_dirty(value_as_string) return self def load(self, fields): """Load dumped, raw strings.""" invalid_labels = [] for label, value in fields.items(): if label in self._fields: self.set_field_as_string(label, value) else: invalid_labels.append(label) return invalid_labels def dump(self): """Dump as raw strings""" fields_as_strings = {} for label in self.get_field_labels(): fields_as_strings[label] = self.get_field_string(label) return {'label': self.label, 'fields': fields_as_strings} #tools def ensure_path(self, path): return system.ensure_path(path) def find_exe(self, program, name=None): if name is None: name = system.title(program) path = system.find_exe(program) if not path: raise Exception('You need to install "%s" first.' % name) self.exe[program] = path #---errors class ValidationError(Exception): def __init__(self, expected, message, details=None): """ValidationError for invalid input. expected - description of the expected value message - message why validation failed details - eg. which variables are allowed""" self.expected = expected self._message = message self.details = details def __str__(self): return self._message def __unicode__(self): if self.details: return '%s\n%s' % (self._message, self.details) else: return self._message #---field mixins class PilConstantMixin: def to_python(self, x, label): return x.upper().replace(' ', '_') class TestFieldMixin: """ Mixin class, the to_python method should def to_python(self, x, label, test=False): "test parameter to signal test-validate" return x See set_form_field_value in treeEdit.py """ def get(self, info=None, label='?', value_as_string=None, test=False): """Use this method to test-validate the user input, for example: field.get(IMAGE_TEST_INFO, value_as_string, label, test=True)""" if value_as_string is None: value_as_string = self.value_as_string return self.to_python(self.interpolate(value_as_string, info, label), label, test) #---fields def set_safe(state): Field.safe = state def get_safe(): return Field.safe class Field(object): """Base class for fields. This needs to be subclassed but, never used directly. Required to overwrite: description - describes the expected value Optional to overwrite to_python - raise here exceptions in case of validation errors (defaults to string). to_string - (defaults to string) Never overwrite: validate - will work right out of the box as exceptions are raised by the to_python method get - gets the current value as a string set - sets the current value as a string You can access the value by self.value_as_string This field interpolates within a info. << or >> will be interpolated as < or > :param value: initial value :type value: str :param visible: if the field will be visible as a field :type visible: str Invisible fields request a different kind of user interaction to change their values than a normal field. In Phatch this is used eg for enabling/disabling actions. A get_relevant_* method of a Form will show/hide fields which depend on other conditions. """ allow_empty = False description = '' safe = True _globals = {} def __init__(self, value, visible=True): self.visible = visible self.dirty = False if isinstance(value, (str, unicode)): self.set_as_string(value) else: self.set(value) def validate(self, names, _globals, _locals): """Helper method for :func:`safe.compile_expr`.""" not_allowed = [name for name in names if not (name in _globals or name in _locals or name in safe.SAFE['all'])] return not_allowed def assert_safe(self, label, info): safe.assert_safe_expr(self.value_as_string, _globals=self._globals, _locals=info, validate=self.validate, preprocess=safe.format_expr) def interpolate(self, x, info, label): if info == None: return self.value_as_string else: try: return safe.compile_expr(x, _globals=self._globals, _locals=info, validate=self.validate, preprocess=safe.format_expr, safe=self.safe) except Exception, error: reason = unicoding.exception_to_unicode(error) raise ValidationError(self.description, "%s: %s\n" % (_(label), reason), USE_INSPECTOR) def to_python(self, x, label): if x.strip() or self.allow_empty: return x raise ValidationError(self.description, '%s: %s.' % ( _(label), _('can not be empty'))) def to_string(self, x): return unicode(x) def fix_string(self, x): """For the ui (see 'write tag' action)""" return x def get_as_string(self): """For GUI: Translation, but no interpolation here""" return self.value_as_string def set_as_string(self, x): """For GUI: Translation, but no interpolation here""" self.value_as_string = x def set_as_string_dirty(self, x): """For GUI: Translation, but no interpolation here""" self.value_as_string = x self.dirty = True def get(self, info=None, label='?', value_as_string=None, test=False): """For code: Interpolated, but not translated - value_as_string can be optionally provided to test the expression Ignore test parameter (only for compatiblity with TestField)""" if value_as_string is None: value_as_string = self.value_as_string return self.to_python(self.interpolate(value_as_string, info, label), label) def set(self, x): """For code: Interpolated, but not translated""" self.value_as_string = self.to_string(x) @staticmethod def set_globals(_globals): Field._globals = _globals def eval(self, x, label): try: return safe.eval_safe(x) except SyntaxError: pass except NameError: pass raise ValidationError(self.description, '%s: %s.' % (_(label), _('invalid syntax "%s" for integer') % x)) class CharField(Field): allow_empty = True description = _('string') def __init__(self, value=None, visible=True, choices=None): if value is None and choices: value = choices[0] if choices is None: choices = [] if value == '': value = ' ' super(CharField, self).__init__(value, visible) self.choices = choices class NotEmptyCharField(CharField): allow_empty = False class IntegerField(NotEmptyCharField): """""" description = _('integer') def to_python(self, x, label): error = ValidationError(self.description, '%s: %s.' % (_(label), _('invalid literal "%s" for integer') % x)) try: return int(round(self.eval(x, label))) except ValueError: raise error except TypeError: raise error class PositiveIntegerField(IntegerField): """""" description = _('positive integer') def to_python(self, x, label): value = super(PositiveIntegerField, self).to_python(x, label) if value < 0: raise ValidationError(self.description, '%s: %s.' % (_(label), _('the integer value "%s" is negative, but should be positive') \ % x)) return value class PositiveNonZeroIntegerField(PositiveIntegerField): """""" description = _('positive, non-zero integer') def to_python(self, x, label): value = super(PositiveNonZeroIntegerField, self).to_python(x, label) if value == 0: raise ValidationError(self.description, '%s: %s.' % (_(label), _('the integer value "%s" is zero, but should be non-zero') \ % x)) return value class DpiField(PositiveNonZeroIntegerField): """PIL defines the resolution in two dimensions as a tuple (x, y). Phatch ignores this possibility and simplifies by using only one resolution """ description = _('resolution') class FloatField(Field): description = _('float') def to_python(self, x, label): try: return float(self.eval(x, label)) except ValueError, message: raise ValidationError(self.description, '%s: %s.' % (_(label), _('invalid literal "%s" for float') % x)) class PositiveFloatField(FloatField): """""" description = _('positive integer') def to_python(self, x, label): value = super(PositiveFloatField, self).to_python(x, label) if value < 0: raise ValidationError(self.description, '%s: %s.' % (_(label), _('the float value "%s" is negative, but should be positive') % x)) return value class PositiveNonZeroFloatField(PositiveFloatField): """""" description = _('positive, non-zero integer') def to_python(self, x, label): value = super(PositiveNonZeroFloatField, self).to_python(x, label) if value == 0: raise ValidationError(self.description, '%s: %s.' % (_(label), _('the float value "%s" is zero, but should be non-zero') \ % x)) return value class BooleanField(Field): description = _('boolean') def to_string(self, x): return ['no', 'yes'][int(x)] def to_python(self, x, label): if x.lower() in ['1', 'true', 'yes']: return True if x.lower() in ['0', 'false', 'no']: return False raise ValidationError(self.description, '%s: %s (%s, %s).' % (_(label), _('invalid literal "%s" for boolean') % x, _('true'), _('false'))) class ChoiceField(NotEmptyCharField): description = _('choice') def __init__(self, value, choices, **keyw): super(ChoiceField, self).__init__(value, **keyw) self.choices = choices def set_choices(self, choices): self.choices = choices if not (self.get_as_string() in choices): self.set_as_string_dirty(choices[0]) class FolderField(NotEmptyCharField): pass class FileField(NotEmptyCharField): extensions = [] def to_python(self, x, label): value = super(FileField, self).to_python(x, label).strip() if not value.strip() and self.allow_empty: return '' ext = os.path.splitext(value)[-1][1:] if not self.allow_empty and self.extensions \ and not (ext.lower() in self.extensions): if ext: raise ValidationError(self.description, '%s: %s.\n\n%s:\n%s.' % (_(label), _('the file extension "%s" is invalid') % ext, USE_EXTENSIONS, ', '.join(self.extensions))) else: raise ValidationError(self.description, '%s: %s.\n%s:\n%s.' % ( _(label), _('a filename with a valid extension was expected'), USE_EXTENSIONS, textwrap.fill(', '.join(self.extensions), 70))) return value class EmptyFileField(FileField): allow_empty = True class ReadFileField(TestFieldMixin, FileField): """This is a test field to ensure that the file exists. It could also have been called the MustExistFileField.""" def to_python(self, x, label, test=False): value = super(ReadFileField, self).to_python(x, label) if not value.strip() and self.allow_empty: return '' if (x == value or not test) and (not system.is_file(value)): raise ValidationError(self.description, '%s: %s.' % (_(label), _('the filename "%s" does not exist') % value)) return value class DictionaryReadFileField(ReadFileField): dictionary = None def init_dictionary(self): self.dictionary = {} def to_python(self, x, label, test=False): if self.dictionary is None: self.init_dictionary() try: x = self.dictionary[x] except KeyError: pass return super(DictionaryReadFileField, self).to_python(x, label, test) class FontFileField(DictionaryReadFileField): extensions = FONT_EXTENSIONS allow_empty = True def init_dictionary(self): from fonts import font_dictionary self.dictionary = font_dictionary() class GeoReadFileField(ReadFileField): extensions = GEO_EXTENSIONS allow_empty = False class CsvFileField(FileField): extensions = ['csv'] allow_empty = True class ImageReadFileField(DictionaryReadFileField): extensions = IMAGE_READ_EXTENSIONS class ImageDictionaryReadFileField(ImageReadFileField): icon_size = ICON_SIZE class ImageDictionaryField(ImageDictionaryReadFileField): pass class FileNameField(NotEmptyCharField): """Without extension""" pass class CommandLineField(NotEmptyCharField): def __init__(self, *args, **keyw): super(CommandLineField, self).__init__(*args, **keyw) self.needs_exe = True self.needs_in = True self.needs_out = True def to_python(self, x, label): command = super(CommandLineField, self).to_python(x, label) #check if exists if self.needs_exe: exe = name = command.split()[0] if not os.path.isfile(exe): exe = system.find_exe(exe) if exe is None: raise self.raise_error_not_found(label, name) #check for in file if self.needs_in and not RE_FILE_IN.search(command): self.raise_error_file(label, 'file_in') #check for out file if self.needs_out: file_out = RE_FILE_OUT.findall(command) if not file_out: self.raise_error_file(label, 'file_out') elif len(file_out) > 1: self.raise_error_out_max(label, 'file_out') return command def raise_error_not_found(self, label, what): raise ValidationError(self.description, '%s: %s' % (_(label), _('"%s" can not be found.') % what)) def raise_error_file(self, label, what): raise ValidationError(self.description, '%s: %s' % (_(label), _('Parameter "%s.*" is missing') % what)) def raise_error_out_max(self, label): raise ValidationError(self.description, '%s: %s' % (_(label), _('Maximum one parameter "%s" is allowed')\ % 'file_out.*')) class ImageTypeField(ChoiceField): def __init__(self, value, **keyw): super(ImageTypeField, self).__init__(value, IMAGE_EXTENSIONS, **keyw) def fix_string(self, x): #ignore translation if x and x[0] == '.': x = x[1:] return super(ImageTypeField, self).fix_string(x) class ImageReadTypeField(ChoiceField): def __init__(self, value, **keyw): super(ImageReadTypeField, self).__init__(\ value, IMAGE_READ_EXTENSIONS, **keyw) class ImageWriteTypeField(ChoiceField): def __init__(self, value, **keyw): super(ImageWriteTypeField, self).__init__(\ value, IMAGE_WRITE_EXTENSIONS, **keyw) class ImageModeField(ChoiceField): def __init__(self, value, **keyw): super(ImageModeField, self).__init__(value, IMAGE_MODES, **keyw) def to_python(self, x, label): return x.split(' ')[0].replace('Grayscale', 'L')\ .replace('Monochrome', '1') class ImageEffectField(PilConstantMixin, ChoiceField): def __init__(self, value, **keyw): super(ImageEffectField, self).__init__(\ value, IMAGE_EFFECTS, **keyw) class ImageFilterField(PilConstantMixin, ChoiceField): def __init__(self, value, **keyw): super(ImageFilterField, self).__init__(\ value, IMAGE_FILTERS, **keyw) class ImageResampleField(PilConstantMixin, ChoiceField): def __init__(self, value, **keyw): super(ImageResampleField, self).__init__(\ value, IMAGE_RESAMPLE_FILTERS, **keyw) class ImageResampleAutoField(PilConstantMixin, ChoiceField): def __init__(self, value, **keyw): super(ImageResampleAutoField, self).__init__(\ value, IMAGE_RESAMPLE_FILTERS + [_t('automatic')], **keyw) class ImageTransposeField(PilConstantMixin, ChoiceField): def __init__(self, value, **keyw): super(ImageTransposeField, self).__init__(\ value, IMAGE_TRANSPOSE + [_t('Orientation')], **keyw) class OptionalTransposeField(PilConstantMixin, ChoiceField): def __init__(self, value, **keyw): super(OptionalTransposeField, self).__init__(\ value, [_t('None')] + IMAGE_TRANSPOSE, **keyw) class OrientationField(PilConstantMixin, ChoiceField): def __init__(self, value, **keyw): super(OrientationField, self).__init__(\ value, ORIENTATION, **keyw) def to_python(self, x, label): if x == _t('Normal'): return None return super(OrientationField, self).to_python(x, label) class AlignHorizontalField(ChoiceField): def __init__(self, value, **keyw): super(AlignHorizontalField, self).__init__(\ value, ALIGN_HORIZONTAL, **keyw) class AlignVerticalField(ChoiceField): def __init__(self, value, **keyw): super(AlignVerticalField, self).__init__(\ value, ALIGN_VERTICAL, **keyw) class RankSizeField(IntegerField, ChoiceField): def __init__(self, value, **keyw): super(RankSizeField, self).__init__(\ value, RANK_SIZES, **keyw) class PixelField(IntegerField): """Can be pixels, cm, inch, %.""" def get_size(self, info, base, dpi, label, value_as_string=None): if value_as_string is None: value_as_string = self.value_as_string for unit, value in self._units(base, dpi).items(): value_as_string = value_as_string.replace(unit, value) return super(PixelField, self).get(info, label, value_as_string) def _units(self, base, dpi): return { 'cm': '*%f' % (dpi / 2.54), 'mm': '*%f' % (dpi / 25.4), 'inch': '*%f' % dpi, '%': '*%f' % (base / 100.0), 'px': '', } class FileSizeField(IntegerField): """Can be in bytes (``bt``), kilo bytes (``kb``), mega bytes (``mb``), or giga bytes (``gb``). >>> FileSizeField('5kb').get() 5120 >>> FileSizeField('5mb').get() 5242880 """ _units = {'kb': '*1024', 'gb': '*1073741824', 'mb': '*1048576', 'bt': ''} def to_python(self, x, label): for unit, value in self._units.items(): x = x.replace(unit, value) return super(FileSizeField, self).to_python(x, label) class SliderField(IntegerField): """A value with boundaries set by a slider.""" def __init__(self, value, minValue, maxValue, **keyw): super(SliderField, self).__init__(value, **keyw) self.min = minValue self.max = maxValue class FloatSliderField(FloatField, SliderField): """A value with boundaries set by a slider.""" class TiffCompressionField(ChoiceField): def __init__(self, value, **keyw): super(TiffCompressionField, self).__init__(value, TIFF_COMPRESSIONS, **keyw) class ExifItpcField(NotEmptyCharField): def fix_string(self, x): #ignore translation if x and x[0] == '<' and x[-1] == '>': x = x[1:-1] return super(ExifItpcField, self).fix_string(x) def to_python(self, x, label): if not(x[:5] in ('Exif_', 'Iptc_')): raise ValidationError(self.description, _('Tag should start with "Exif_" or "Iptc_"'), USE_INSPECTOR) return super(ExifItpcField, self).to_python(str(x), label) class ColorField(Field): pass #todo ##class CommaSeparatedIntegerField(CharField): ## """Not implemented yet.""" ## pass ## ##class DateField(Field): ## """Not implemented yet.""" ## pass ## ##class DateTimeField(DateField): ## """Not implemented yet.""" ## pass ## ##class EmailField(CharField): ## """Not implemented yet.""" ## pass ## ##class UrlField(CharField): ## """Not implemented yet.""" ## pass #Give Form all the tools FIELDS = [(name, cls) for name, cls in locals().items() if name[0] != '_' and \ ((type(cls) == types.TypeType and issubclass(cls, Field)) or\ type(cls) in [types.StringType, types.UnicodeType, types.ListType, types.TupleType])] for _name, _Field in FIELDS: setattr(Form, _name, _Field) phatch-0.2.7/phatch/lib/gettextFix.py0000644000000000000000000000145111346363116017454 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import sys def displayhook(value): if value is not None: print repr(value) sys.displayhook = displayhook phatch-0.2.7/phatch/lib/gps.py0000644000000000000000000001636411346363116016123 0ustar rootroot00000000000000# Copyright (C) 2009 Robin Mills, San Jose, California, www.stani.be # # 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 http://www.gnu.org/licenses/ # # All rights donated to the open source project Phatch. This code may # be published using a license acceptable to project Phatch. # Follows PEP8 import os import datetime import xml.dom.minidom from other import surd try: import pyexiv2 except ImportError: pyexiv2 = None # Rational number support def r(f): """r(float) - get a Rational number for a float""" s = surd.surd(float(f)) return pyexiv2.Rational(s.num, s.denom) def d(angle): """d(any) - get degrees from a number :eg d(33.41) -> 33""" return int(angle) def m(angle): """m(any) - get minutes from a number :eg d(33.41) -> 24""" return int(angle * 60 - d(angle) * 60) def s(angle): """s(any) - get seconds from a number :eg s(33.41) -> 36""" return int(angle * 3600 - d(angle) * 3600 - m(angle) * 60) # dictionary search (closest match) def search(dict, target): """search(dict,taget) - search for closest match""" s = sorted(dict.keys()) N = len(s) low = 0 high = N - 1 while low < high: mid = (low + high) / 2 if s[mid] < target: low = mid + 1 else: high = mid return s[low] # XML functions def get_xml_timez(phototime, timeshift): """getXMLtimez - convert a datetime to an XML formatted date""" # # phototime = timedate.timedate("2008-03-16 08:52:15") # timeshift = seconds # ----------------------- timedelta = datetime.timedelta(0, timeshift, 0) newtime = phototime + timedelta return newtime.strftime('%Y-%m-%dT%H:%M:%SZ') def get_text(nodelist,): """get_text(nodeList) - return the text in nodelist""" rc = "" for node in nodelist: if node.nodeType == node.TEXT_NODE: rc = rc + node.data return rc def get_node_value(node): """get_node_value((node) - return the value of a node""" return get_text(node.childNodes) def handle_trkpt(trkpt, timedict, ns): """handle_trkpt""" if ns: ele = get_node_value( trkpt.getElementsByTagNameNS(ns, "ele")[0]) time = get_node_value( trkpt.getElementsByTagNameNS(ns, "time")[0]) lat = trkpt.getAttributeNS(ns, "lat") lon = trkpt.getAttributeNS(ns, "lon") # Garmin .gpx doesn't use a ns on the lat and lon attributes! # Garmin bug? if not lat: lat = trkpt.getAttribute("lat") if not lon: lon = trkpt.getAttribute("lon") else: ele = get_node_value(trkpt.getElementsByTagName("ele")[0]) time = get_node_value(trkpt.getElementsByTagName("time")[0]) lat = trkpt.getAttribute("lat") lon = trkpt.getAttribute("lon") # print "lat, lon = %s %s ele,time = %s %s" % ( lat,lon , ele,time) timedict[time] = [ele, lat, lon] def handle_trkseg(trkseg, timedict, ns): """handle_trkseg""" if ns: trkpts = trkseg.getElementsByTagNameNS(ns, "trkpt") else: trkpts = trkseg.getElementsByTagName("trkpt") for trkpt in trkpts: handle_trkpt(trkpt, timedict, ns) def handle_trk(trk, timedict, ns): """handle_trk""" if ns: trksegs = trk.getElementsByTagNameNS(ns, "trkseg") else: trksegs = trk.getElementsByTagName("trkseg") for trkseg in trksegs: handle_trkseg(trkseg, timedict, ns) def handle_gpx(gpx, timedict, ns): """handle_gpx""" if ns: trks = gpx.getElementsByTagNameNS(ns, "trk") else: trks = gpx.getElementsByTagName("trk") for trk in trks: handle_trk(trk, timedict, ns) # GPS module API # this code is heading for module core.lib.gps def read_gpx(gpx_file): """read_gpx(string) - get a dictionary of time/position information""" timedict = {} #print "read_gpx = " + gpx_file file = open(gpx_file, "r") data = file.read(os.path.getsize(gpx_file)) #print "reading ",gpx_file file.close() dom = xml.dom.minidom.parseString(data) # read the XML with and without the namepace handle_gpx(dom, timedict, False) ns = 'http://www.topografix.com/GPX/1/1' handle_gpx(dom, timedict, ns) return timedict def write_header(report): #report.write("camera time nearest gps "\ # "latitude longitude elev photofile") report.write("camera time,nearest gps,latitude,longitude,elev,"\ "photofile\n") # returns the metadata dictionary for given exif date # eg 'Exif_Image_DateTime' def get_metadata(dateString, timedict, timeshift, path, report=None): """get_metadata(float) - get a dictionary of changes to the metadata dateString - EXIF date format string /* in */ timeshift - delta between GMT and local time (seconds. Positive to West) path - path to the image (only for stdout reporting) report - log file """ if not pyexiv2: raise ImportError('pyexiv2 is not installed') stamp = str(get_xml_timez(dateString, timeshift)) timestamp = search(timedict, stamp) data = timedict[timestamp] ele = float(data[0]) lat = float(data[1]) lon = float(data[2]) latR = 'N' lonR = 'E' eleR = 0 if lat < 0: lat = -lat latR = 'S' if lon < 0: lon = -lon lonR = 'W' sele = "%6.1f" % (ele) if ele < 0: ele = -ele eleR = 1 slat = "%02d.%02d'" '%02d"%s' % (d(lat), m(lat), s(lat), latR) slon = "%02d.%02d'" '%02d"%s' % (d(lon), m(lon), s(lon), lonR) if report: report.write(",".join([stamp, timestamp, slat, slon, sele, path])\ + "\n") # get Rational number for ele # don't know why r(ele) is causing trouble! # it might be that the denominator is overflowing 32 bits! # and this would also import lat and lon rele = pyexiv2.Rational(int(ele * 10.0), 10) # create and return the dictionary of tags to be added to the image metadata = {} metadata['Exif_GPSInfo_GPSAltitude'] = rele metadata['Exif_GPSInfo_GPSAltitudeRef'] = eleR metadata['Exif_GPSInfo_GPSDateStamp'] = stamp metadata['Exif_GPSInfo_GPSLatitude'] = \ [r(d(lat)), r(m(lat)), r(s(lat))] metadata['Exif_GPSInfo_GPSLatitudeRef'] = latR metadata['Exif_GPSInfo_GPSLongitude'] = \ [r(d(lon)), r(m(lon)), r(s(lon))] metadata['Exif_GPSInfo_GPSLongitudeRef'] = lonR metadata['Exif_GPSInfo_GPSMapDatum'] = 'WGS-84' metadata['Exif_GPSInfo_GPSProcessingMethod'] = \ '65 83 67 73 73 0 0 0 72 89 66 82 73 68 45 70 73 88 ' metadata['Exif_GPSInfo_GPSTimeStamp'] = \ [r(10), r(20), r(30)] metadata['Exif_GPSInfo.GPSVersionID'] = '2 2 0 0' return metadata phatch-0.2.7/phatch/lib/imageTable.py0000644000000000000000000003206011346363116017353 0ustar rootroot00000000000000# -*- coding: UTF-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for python editing. # Follows PEP8 if __name__ == '__main__': import gettext gettext.install('test') import glob import os import re import metadata import openImage import unicoding try: import pyexiv2 except ImportError: pyexiv2 = None SEPARATOR = '_' ALL = _('All') SELECT = _('Select') RE_TAG_LAST = re.compile('[.](Canon|Sony|Nikon|Leica|Panasonic)') RE_TAG_ERROR = _('''\ The tag "%s" is not valid. It should follow the syntax: Exif_* or Iptc_*\ ''') RE_TAG_SELECT_NOT = re.compile('[%s]|exif|iptc|#' % SEPARATOR) MARKUP = '**%s**' NONE = '' THUMB_SIZE = (128, 128) class TableImage: def __init__(self, filename, thumb_size=THUMB_SIZE): """For every image one TableImage is created. It is a helper class to display the metadata in a grid. :param filename: image filename :type filename: string :param thumb_size: size of the thumbnail :type thumb_size: tuple of int """ self.filename = filename self.thumb_size = thumb_size self.update() def update(self): """Update the table from the image source file.""" self.label = os.path.basename(self.filename) self.thumb = openImage.open_thumb(self.filename, size=THUMB_SIZE) info = metadata.InfoExtract(self.filename) info.extract_all() self.info = info.dump(expand=True) self.update_time() def update_time(self): """Update time. This time is used to check if the source file has changed. """ self.time = self.get_time() def update_if_modified(self): """Check if the source file image has changed and update if it has. :returns: True, if source image has changed :rtype: bool """ if self.is_modified(): self.update() return True return False def is_modified(self): return self.get_time() > self.time def get_time(self): if os.path.exists(self.filename): return os.path.getmtime(self.filename) else: return self.time class Table(object): def __init__(self, thumb_size=THUMB_SIZE): self.images = [] self.thumb_size = thumb_size self.keys = [] self.key_amount = 0 self.row = 'key' self.col = 'image' def transpose(self): row = self.row self.row = self.col self.col = row #---open def open_image(self, filename, update=True, encoding=None): filename = unicoding.fix_filename(filename, encoding) if filename: self.images.append(TableImage(filename, self.thumb_size)) if update: self.update() else: raise IOError() def open_images(self, paths, encoding=None): invalid = [] update = False for path in paths: if os.path.isfile(path): #disable this if a file doesn't open to debug try: self.open_image(path, update=False, encoding=encoding) update = True continue except: pass elif os.path.isdir(path): for filename in glob.glob(os.path.join(path, '*.*')): try: self.open_image(filename, update=False, encoding=encoding) update = True except: pass continue invalid.append(path) if update: self.update() return invalid def open_folder(self, folder): return self.open_images(glob.glob(os.path.join(folder, '*'))) #---update def update(self): self._update_keys() def _update_keys(self, tag=None, filter=None): #todo category, filter keys = set() for image in self.images: keys = keys.union(image.info.keys()) self.keys = self._sort_keys(keys) self.key_amount = len(self.keys) self.set_tag(tag) self.set_filter(filter) def _sort_keys(self, keys): keys = sorted(keys) first = [] last = [] for key in sorted(keys): if RE_TAG_LAST.search(key): last.append(key) else: first.append(key) return first + last #---image def delete_images(self, pos, num=1): self.images = self.images[:pos] + self.images[pos + 1:] def get_image_amount(self): return len(self.images) def get_image_label(self, index): return self.images[index].label def get_image_filename(self, index): return self.images[index].filename def set_image_label(self, index, value): raise Exception(_('Unable to change label.')) #---key def _add_key(self, key): if not(key in self.keys): self.keys = self.keys[:self.key_amount] + [key]\ + self.keys[self.key_amount:] self.key_amount += 1 def add_key(self, key, value=''): """Add key to all images""" self._add_key(key) return self.set_key_value(key, value) def add_image_key(self, image, key, value=''): self._add_key(key) return self.set_image_key_value(image, key, value) def delete_keys(self, pos, num=1): keys = self.keys[pos:pos + num] changes = [] for image in self.images: image_changes = {} for key in keys: if key in image.info: image_changes[key] = None if image_changes: changes.append((image, image_changes)) return self._write( changes=changes, error_message=_('Unable to delete tag <%s>')) def _delete_key(self, key): to_keep = [] to_delete = [] key_ = key + '.' # derivate keys eg hour, day for index, k in enumerate(self.keys[:]): if (k == key or k.startswith(key_)): if index < self.key_amount: self.key_amount -= 1 else: to_keep.append(k) self.keys = to_keep def get_key_amount(self): return self.key_amount def get_key_label(self, index): return self.keys[index] def is_key_editable(self, index=0, key=None): if not pyexiv2: return False if key is None: key = self.keys[index] for image in self.images: if metadata.is_editable_tag(key): return True return False def is_key_empty(self, key): for image in self.images: if key in image.info: return False return True def set_key_label(self, index, value): # new tag -> replace new & delete current if not metadata.RE_PYEXIV2_TAG.match(value): # return error return RE_TAG_ERROR % value key = self.keys[index] log = self._write( changes=[(image, {value:image.info[key], key:None}) for image in self.images if key in image.info], error_message=_('Unable to rename tag <%s>')) if not log: self.keys[index] = value return log #---cell def delete_cell(self, row, col): return self.set_cell_value(row, col, None) def get_cell_value(self, row, col): key, image = self._get_key_image(row, col) return image.info.get(key, NONE) def is_cell_empty(self, row, col): key, image = self._get_key_image(row, col) return not(key in image.info) def is_cell_editable(self, row, col): key, image = self._get_key_image(row, col) return pyexiv2 and self.is_key_editable(key=key) def is_cell_deletable(self, row, col): return self.is_cell_editable(row, col) \ and not self.is_cell_empty(row, col) def is_image_editable(self, image): return False def set_cell_value(self, row, col, value): key, image = self._get_key_image(row, col) if value == self.get_cell_value(row, col): return return self.set_image_key_value(image, key, value) def set_image_key_value(self, image, key, value): if not(value is None): value = unicode(value) return self._write( changes=((image, {key: value}), ), error_message=_('Unable to save tag <%s>')) def set_key_value(self, key, value): changes = [] for image in self.images: if not(value == image.info.get(key, None)): changes.append((image, {key: value})) return self._write( changes=changes, error_message=_('Unable to save tag <%s>')) #row, col specific def _get_key_image(self, row, col): if self.row == 'key': return self.keys[row], self.images[col] else: return self.keys[col], self.images[row] def __getattr__(self, attr): new_attr = attr.replace('row', self.row).replace('col', self.col) if new_attr in Table.__dict__: def method(*args, **keyw): return Table.__dict__[new_attr](self, *args, **keyw) return method raise AttributeError(attr) def _write(self, changes, error_message): """Write changes to the image files with pyexiv2. :param changes: ((image, {key: value}), ) :type changes: tuple :param error_message: with %s interpolation :type error_message: string :returns: error log :rtype: string """ log = [] keys_to_delete = set() for image, image_changes in changes: # try to save to image file try: exiv2_image = pyexiv2.Image(image.filename) exiv2_image.readMetadata() for key, value in image_changes.items(): exiv2_key = str(key.replace(SEPARATOR, '.')) if value: exiv2_image[exiv2_key] = value else: del exiv2_image[exiv2_key] exiv2_image.writeMetadata() except Exception, error: log.append('%s:\n%s'\ % (error_message % key, unicode(error))) continue # successfully saved to image file (wait until now) image.update_time() if value: image.info[key] = value metadata.InfoExtract.expand_var(image.info, key, metadata.convert_from_string(value)) else: del image.info[key] keys_to_delete.add(key) for key in keys_to_delete: if self.is_key_empty(key): self._delete_key(key) return '\n'.join(log) #---selecting def set_tag(self, tag): if not(tag is None): self._tag = tag if self._tag == ALL: self.keys.sort() self.key_amount = self.key_amount_tag = len(self.keys) return elif self._tag == SELECT: def condition(key): return not RE_TAG_SELECT_NOT.search(key) else: prefix = '%s%s' % (self._tag, SEPARATOR) def condition(key): return key.startswith(prefix) self._select(condition) self.key_amount_tag = self.key_amount def set_filter(self, filter=''): if not(filter is None): self._filter = filter filter = self._filter.lower() def condition(key): return filter in key.lower() self._select(condition, as_filter=True) def _select(self, condition, as_filter=False): # we need to iterate over a copy if as_filter: keys = self.keys[: self.key_amount_tag] else: keys = self.keys[:] # enumerate selected = [] to_delete = [] for index, key in enumerate(keys): if condition(key): selected.append(key) to_delete.insert(0, index) # delete for index in to_delete: del self.keys[index] # place selection in front self.keys = self._sort_keys(selected) + self.keys self.key_amount = len(selected) phatch-0.2.7/phatch/lib/imtools.py0000644000000000000000000010451511346363116017014 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import os from cStringIO import StringIO from itertools import cycle from urllib import urlopen import Image import ImageDraw import ImageEnhance import ImageOps import system ALL_PALETTE_INDICES = set(range(256)) CHECKBOARD = {} COLOR_MAP = [255] * 128 + [0] * 128 WWW_CACHE = {} EXT_BY_FORMATS = { 'JPEG': ['JPG', 'JPEG', 'JPE'], 'TIFF': ['TIF', 'TIFF'], 'SVG': ['SVG', 'SVGZ'], } FORMATS_BY_EXT = {} for format, exts in EXT_BY_FORMATS.items(): for ext in exts: FORMATS_BY_EXT[ext] = format class InvalidWriteFormatError(Exception): pass def get_format(ext): """Guess the image format by the file extension. :param ext: file extension :type ext: string :returns: image format :rtype: string .. warning:: This is only meant to check before saving files. For existing files open the image with PIL and check its format attribute. >>> get_format('jpg') 'JPEG' """ ext = ext.lstrip('.').upper() return FORMATS_BY_EXT.get(ext, ext) def get_format_filename(filename): """Guess the image format by the filename. :param filename: filename :type filename: string :returns: image format :rtype: string .. warning:: This is only meant to check before saving files. For existing files open the image with PIL and check its format attribute. >>> get_format_filename('test.tif') 'TIFF' """ return get_format(system.file_extension(filename)) def open_image(uri): """Open local files or remote files over http. :param uri: image location :type uri: string :returns: image :rtype: pil.Image """ if system.is_www_file(uri): try: return WWW_CACHE[uri] except KeyError: f = urlopen(uri) im = WWW_CACHE[uri] = open_image_data(f.read()) return im if uri[:7] == 'file://': uri = uri[7:] return Image.open(uri) def open_image_data(data): """Open image from format data. :param data: image format data :type data: string :returns: image :rtype: pil.Image """ return Image.open(StringIO(data)) def open_image_exif(uri): """Open local files or remote files over http and transpose the image to its exif orientation. :param uri: image location :type uri: string :returns: image :rtype: pil.Image """ return transpose_exif(open_image(uri)) class _ByteCounter: """Helper class to count how many bytes are written to a file. .. see also:: :func:`get_size` >>> bc = _ByteCounter() >>> bc.write('12345') >>> bc.bytes 5 """ def __init__(self): self.bytes = 0 def write(self, data): self.bytes += len(data) def get_size(im, format, **options): """Gets the size in bytes if the image would be written to a file. :param format: image file format (e.g. ``'JPEG'``) :type format: string :returns: the file size in bytes :rtype: int """ try: out = _ByteCounter() im.save(out, format, **options) return out.bytes except AttributeError: # fall back on full in-memory compression out = StringIO() im.save(out, format, **options) return len(out.getvalue()) def get_quality(im, size, format, down=0, up=100, delta=1000, options=None): """Figure out recursively the quality save parameter to obtain a certain image size. This mostly used for ``JPEG`` images. :param im: image :type im: pil.Image :param format: image file format (e.g. ``'JPEG'``) :type format: string :param down: minimum file size in bytes :type down: int :param up: maximum file size in bytes :type up: int :param delta: fault tolerance in bytes :type delta: int :param options: image save options :type options: dict :returns: save quality :rtype: int Example:: filename = '/home/stani/sync/Desktop/IMGA3345.JPG' im = Image.open(filename) q = get_quality(im, 300000, "JPEG") im.save(filename.replace('.jpg', '_sized.jpg')) """ if options is None: options = {} q = options['quality'] = (down + up) / 2 if q == down or q == up: return max(q, 1) s = get_size(im, format, **options) if abs(s - size) < delta: return q elif s > size: return get_quality(im, size, format, down, up=q, options=options) else: return get_quality(im, size, format, down=q, up=up, options=options) def fill_background_color(image, color): """Fills given image with background color. :param image: source image :type image: pil.Image :param color: background color :type color: tuple of int :returns: filled image :rtype: pil.Image """ if image.mode == 'LA': image = image.convert('RGBA') elif image.mode != 'RGBA' and\ not (image.mode == 'P' and 'transparency' in image.info): return image if len(color) == 4 and color[-1] != 255: mode = 'RGBA' else: mode = 'RGB' back = Image.new(mode, image.size, color) if (image.mode == 'P' and mode == 'RGBA'): image = image.convert('RGBA') if has_alpha(image): paste(back, image, mask=image) elif image.mode == 'P': palette = image.getpalette() index = image.info['transparency'] palette[index * 3: index * 3 + 3] = color[:3] image.putpalette(palette) del image.info['transparency'] back = image else: paste(back, image) return back def generate_layer(image_size, mark, method, horizontal_offset, vertical_offset, horizontal_justification, vertical_justification, orientation, opacity): """Generate new layer for backgrounds or watermarks on which a given image ``mark`` can be positioned, scaled or repeated. :param image_size: size of the reference image :type image_size: tuple of int :param mark: image mark :type mark: pil.Image :param method: ``'Tile'``, ``'Scale'``, ``'By Offset'`` :type method: string :param horizontal_offset: horizontal offset :type horizontal_offset: int :param vertical_offset: vertical offset :type vertical_offset: int :param horizontal_justification: ``'Left'``, ``'Middle'``, ``'Right'`` :type horizontal_justification: string :param vertical_justification: ``'Top'``, ``'Middle'``, ``'Bottom'`` :type vertical_justification: string :param orientation: mark orientation (e.g. ``'ROTATE_270'``) :type orientation: string :param opacity: opacity within ``[0, 1]`` :type opacity: float :returns: generated layer :rtype: pil.Image .. see also:: :func:`reduce_opacity` """ mark = convert_safe_mode(open_image(mark)) opacity /= 100.0 mark = reduce_opacity(mark, opacity) layer = Image.new('RGBA', image_size, (0, 0, 0, 0)) if method == 'Tile': for y in range(0, image_size[1], mark.size[1]): for x in range(0, image_size[0], mark.size[0]): paste(layer, mark, (x, y)) elif method == 'Scale': # scale, but preserve the aspect ratio ratio = min(float(image_size[0]) / mark.size[0], float(image_size[1]) / mark.size[1]) w = int(mark.size[0] * ratio) h = int(mark.size[1] * ratio) mark = mark.resize((w, h)) paste(layer, mark, ((image_size[0] - w) / 2, (image_size[1] - h) / 2)) elif method == 'By Offset': location = calculate_location( horizontal_offset, vertical_offset, horizontal_justification, vertical_justification, image_size, mark.size) if orientation: orientation_value = getattr(Image, orientation) mark = mark.transpose(orientation_value) paste(layer, mark, location, force=True) else: raise ValueError('Unknown method "%s" for generate_layer.' % method) return layer def identity_color(image, value=0): """Get a color with same color component values. >>> im = Image.new('RGB', (1,1)) >>> identity_color(im, 2) (2, 2, 2) >>> im = Image.new('L', (1,1)) >>> identity_color(im, 7) 7 """ bands = image.getbands() if len(bands) == 1: return value return tuple([value for band in bands]) def blend(im1, im2, amount, color=None): """Blend two images with each other. If the images differ in size the color will be used for undefined pixels. :param im1: first image :type im1: pil.Image :param im2: second image :type im2: pil.Image :param amount: amount of blending :type amount: int :param color: color of undefined pixels :type color: tuple :returns: blended image :rtype: pil.Image """ im2 = convert_safe_mode(im2) if im1.size == im2.size: im1 = convert(im1, im2.mode) else: if color is None: expanded = Image.new(im2.mode, im2.size) elif im2.mode in ('1', 'L') and type(color) != int: expanded = Image.new(im2.mode, im2.size, color[0]) else: expanded = Image.new(im2.mode, im2.size, color) im1 = im1.convert(expanded.mode) we, he = expanded.size wi, hi = im1.size paste(expanded, im1, ((we - wi) / 2, (he - hi) / 2), im1.convert('RGBA')) im1 = expanded return Image.blend(im1, im2, amount) def reduce_opacity(im, opacity): """Returns an image with reduced opacity if opacity is within ``[0, 1]``. :param im: source image :type im: pil.Image :param opacity: opacity within ``[0, 1]`` :type opacity: float :returns im: image :rtype: pil.Image >>> im = Image.new('RGBA', (1, 1), (255, 255, 255)) >>> im = reduce_opacity(im, 0.5) >>> im.getpixel((0,0)) (255, 255, 255, 127) """ if opacity < 0 or opacity > 1: return im alpha = get_alpha(im) alpha = ImageEnhance.Brightness(alpha).enhance(opacity) put_alpha(im, alpha) return im def calculate_location(horizontal_offset, vertical_offset, horizontal_justification, vertical_justification, canvas_size, image_size): """Calculate location based on offset and justification. Offsets can be positive and negative. :param horizontal_offset: horizontal offset :type horizontal_offset: int :param vertical_offset: vertical offset :type vertical_offset: int :param horizontal_justification: ``'Left'``, ``'Middle'``, ``'Right'`` :type horizontal_justification: string :param vertical_justification: ``'Top'``, ``'Middle'``, ``'Bottom'`` :type vertical_justification: string :param canvas_size: size of the total canvas :type canvas_size: tuple of int :param image_size: size of the image/text which needs to be placed :type image_size: tuple of int :returns: location :rtype: tuple of int .. see also:: :func:`generate layer` >>> calculate_location(50, 50, 'Left', 'Middle', (100,100), (10,10)) (50, 45) """ canvas_width, canvas_height = canvas_size image_width, image_height = image_size # check offsets if horizontal_offset < 0: horizontal_offset += canvas_width if vertical_offset < 0: vertical_offset += canvas_height # check justifications if horizontal_justification == 'Left': horizontal_delta = 0 elif horizontal_justification == 'Middle': horizontal_delta = -image_width / 2 elif horizontal_justification == 'Right': horizontal_delta = -image_width if vertical_justification == 'Top': vertical_delta = 0 elif vertical_justification == 'Middle': vertical_delta = -image_height / 2 elif vertical_justification == 'Bottom': vertical_delta = -image_height return horizontal_offset + horizontal_delta, \ vertical_offset + vertical_delta #################################### #### PIL helper functions #### #################################### def flatten(l): """Flatten a list. :param l: list to be flattened :type l: list :returns: flattened list :rtype: list >>> flatten([[1, 2], [3]]) [1, 2, 3] """ return [item for sublist in l for item in sublist] def has_alpha(image): """Checks if the image has an alpha band. i.e. the image mode is either RGBA or LA. The transparency in the P mode doesn't count as an alpha band :param image: the image to check :type image: PIL image object :returns: True or False :rtype: boolean """ return image.mode.endswith('A') def has_transparency(image): """Checks if the image has transparency. The image has an alpha band or a P mode with transparency. :param image: the image to check :type image: PIL image object :returns: True or False :rtype: boolean """ return (image.mode == 'P' and 'transparency' in image.info) or\ has_alpha(image) if Image.VERSION == '1.1.7': def split(image): """Work around for bug in Pil 1.1.7 :param image: input image :type image: PIL image object :returns: the different color bands of the image (eg R, G, B) :rtype: tuple """ image.load() return image.split() else: def split(image): """Work around for bug in Pil 1.1.7 :param image: input image :type image: PIL image object :returns: the different color bands of the image (eg R, G, B) :rtype: tuple """ return image.split() def get_alpha(image): """Gets the image alpha band. Can handles P mode images with transpareny. Returns a band with all values set to 255 if no alpha band exists. :param image: input image :type image: PIL image object :returns: alpha as a band :rtype: single band image object """ if has_alpha(image): return split(image)[-1] if image.mode == 'P' and 'transparency' in image.info: return image.convert('RGBA').split()[-1] # No alpha layer, create one. return Image.new('L', image.size, 255) def get_format_data(image, format): """Convert the image in the file bytes of the image. By consequence this byte data is different for the chosen format (``JPEG``, ``TIFF``, ...). .. see also:: :func:`thumbnail.get_format_data` :param image: source image :type impage: pil.Image :param format: image file type format :type format: string :returns: byte data of the image """ f = StringIO() convert_save_mode_by_format(image, format).save(f, format) return f.getvalue() def get_palette(image): """Gets the palette of an image as a sequence of (r, g, b) tuples. :param image: image with a palette :type impage: pil.Image :returns: palette colors :rtype: a sequence of (r, g, b) tuples """ palette = image.resize((256, 1)) palette.putdata(range(256)) return list(palette.convert("RGB").getdata()) def get_used_palette_indices(image): """Get used color indices in an image palette. :param image: image with a palette :type impage: pil.Image :returns: used colors of the palette :rtype: set of integers (0-255) """ return set(image.getdata()) def get_used_palette_colors(image): """Get used colors in an image palette as a sequence of (r, g, b) tuples. :param image: image with a palette :type impage: pil.Image :returns: used colors of the palette :rtype: sequence of (r, g, b) tuples """ used_indices = get_used_palette_indices(image) if 'transparency' in image.info: used_indices -= set([image.info['transparency']]) n = len(used_indices) palette = image.resize((n, 1)) palette.putdata(used_indices) return palette.convert("RGB").getdata() def get_unused_palette_indices(image): """Get unused color indices in an image palette. :param image: image with a palette :type impage: pil.Image :returns: unused color indices of the palette :rtype: set of 0-255 """ return ALL_PALETTE_INDICES - get_used_palette_indices(image) def fit_color_in_palette(image, color): """Fit a color into a palette. If the color exists already in the palette return its current index, otherwise add the color to the palette if possible. Returns -1 for color index if all colors are used already. :param image: image with a palette :type image: pil.Image :param color: color to fit :type color: (r, g, b) tuple :returns: color index, (new) palette :rtype: (r, g, b) tuple, sequence of (r, g, b) tuples """ palette = get_palette(image) try: index = palette.index(color) except ValueError: index = -1 if index > -1: # Check if it is not the transparent index, as that doesn't qualify. try: transparent = index == image.info['transparency'] except KeyError: transparent = False # If transparent, look further if transparent: try: index = palette[index + 1:].index(color) + index + 1 except ValueError: index = -1 if index == -1: unused = list(get_unused_palette_indices(image)) if unused: index = unused[0] palette[index] = color # add color to palette else: palette = None # palette is full return index, palette def put_palette(image_to, image_from, palette=None): """Copies the palette and transparency of one image to another. :param image_to: image with a palette :type image_to: pil.Image :param image_from: image with a palette :type image_from: pil.Image :param palette: image palette :type palette: sequence of (r, g, b) tuples or None """ if palette == None: palette = get_palette(image_from) image_to.putpalette(flatten(palette)) if 'transparency' in image_from.info: image_to.info['transparency'] = image_from.info['transparency'] def put_alpha(image, alpha): """Copies the given band to the alpha layer of the given image. :param image: input image :type image: PIL image object :param alpha: the alpha band to copy :type alpha: single band image object """ if image.mode in ['CMYK', 'YCbCr', 'P']: image = image.convert('RGBA') elif image.mode in ['1', 'F']: image = image.convert('RGBA') image.putalpha(alpha) def remove_alpha(image): """Returns a copy of the image after removing the alpha band or transparency :param image: input image :type image: PIL image object :returns: the input image after removing the alpha band or transparency :rtype: PIL image object """ if image.mode == 'RGBA': return image.convert('RGB') if image.mode == 'LA': return image.convert('L') if image.mode == 'P' and 'transparency' in image.info: img = image.convert('RGB') del img.info['transparency'] return img return image def paste(destination, source, box=(0, 0), mask=None, force=False): """"Pastes the source image into the destination image while using an alpha channel if available. :param destination: destination image :type destination: PIL image object :param source: source image :type source: PIL image object :param box: The box argument is either a 2-tuple giving the upper left corner, a 4-tuple defining the left, upper, right, and lower pixel coordinate, or None (same as (0, 0)). If a 4-tuple is given, the size of the pasted image must match the size of the region. :type box: tuple :param mask: mask or None :type mask: bool or PIL image object :param force: With mask: Force the invert alpha paste or not. Without mask: - If ``True`` it will overwrite the alpha channel of the destination with the alpha channel of the source image. So in that case the pixels of the destination layer will be abandonned and replaced by exactly the same pictures of the destination image. This is mostly what you need if you paste on a transparant canvas. - If ``False`` this will use a mask when the image has an alpha channel. In this case pixels of the destination image will appear through where the source image is transparent. :type force: bool """ # Paste on top if source == mask: if has_alpha(source): # invert_alpha = the transparant pixels of the destination if has_alpha(destination) and (destination.size == source.size or force): invert_alpha = ImageOps.invert(get_alpha(destination)) if invert_alpha.size != source.size: # if sizes are not the same be careful! # check the results visually if len(box) == 2: w, h = source.size box = (box[0], box[1], box[0] + w, box[1] + h) invert_alpha = invert_alpha.crop(box) else: invert_alpha = None # we don't want composite of the two alpha channels source_without_alpha = remove_alpha(source) # paste on top of the opaque destination pixels destination.paste(source_without_alpha, box, source) if invert_alpha != None: # the alpha channel is ok now, so save it destination_alpha = get_alpha(destination) # paste on top of the transparant destination pixels # the transparant pixels of the destination should # be filled with the color information from the source destination.paste(source_without_alpha, box, invert_alpha) # restore the correct alpha channel destination.putalpha(destination_alpha) else: destination.paste(source, box) elif mask: destination.paste(source, box, mask) else: destination.paste(source, box) if force and has_alpha(source): destination_alpha = get_alpha(destination) source_alpha = get_alpha(source) destination_alpha.paste(source_alpha, box) destination.putalpha(destination_alpha) def auto_crop(image): """Crops all transparent or black background from the image :param image: input image :type image: PIL image object :returns: the cropped image :rtype: PIL image object """ alpha = get_alpha(image) box = alpha.getbbox() return convert_safe_mode(image).crop(box) def convert(image, mode, *args, **keyw): """Returns a converted copy of an image :param image: input image :type image: PIL image object :param mode: the new mode :type mode: string :param args: extra options :type args: tuple of values :param keyw: extra keyword options :type keyw: dictionary of options :returns: the converted image :rtype: PIL image object """ if mode == 'P': if image.mode == 'P': return image if image.mode in ['1', 'F']: return image.convert('L').convert(mode, *args, **keyw) if image.mode in ['RGBA', 'LA']: alpha = get_alpha(image) output = image.convert('RGB').convert( mode, colors=255, *args, **keyw) paste(output, 255, alpha.point(COLOR_MAP)) output.info['transparency'] = 255 return output return image.convert('RGB').convert(mode, *args, **keyw) if image.mode == 'P' and mode == 'LA': # A workaround for a PIL bug. # Converting from P to LA directly doesn't work. return image.convert('RGBA').convert('LA', *args, **keyw) if has_transparency(image) and (not mode in ['RGBA', 'LA']): if image.mode == 'P': image = image.convert('RGBA') del image.info['transparency'] #image = fill_background_color(image, (255, 255, 255, 255)) image = image.convert(mode, *args, **keyw) return image return image.convert(mode, *args, **keyw) def convert_safe_mode(image): """Converts image into a processing-safe mode. :param image: input image :type image: PIL image object :returns: the converted image :rtype: PIL image object """ if image.mode in ['1', 'F']: return image.convert('L') if image.mode == 'P' and 'transparency' in image.info: img = image.convert('RGBA') del img.info['transparency'] return img if image.mode in ['P', 'YCbCr', 'CMYK', 'RGBX']: return image.convert('RGB') return image def convert_save_mode_by_format(image, format): """Converts image into a saving-safe mode. :param image: input image :type image: PIL image object :param format: target format :type format: string :returns: the converted image :rtype: PIL image object """ #TODO: Extend this helper function to support other formats as well if image.mode == 'P': # Make sure P is handled correctly if not format in ['GIF', 'PNG', 'TIFF', 'IM', 'PCX']: image = remove_alpha(image) if format == 'JPEG': if image.mode in ['RGBA', 'P']: return image.convert('RGB') if image.mode in ['LA']: return image.convert('L') elif format == 'BMP': if image.mode in ['LA']: return image.convert('L') if image.mode in ['P', 'RGBA', 'YCbCr', 'CMYK']: return image.convert('RGB') elif format == 'DIB': if image.mode in ['YCbCr', 'CMYK']: return image.convert('RGB') elif format == 'EPS': if image.mode in ['1', 'LA']: return image.convert('L') if image.mode in ['P', 'RGBA', 'YCbCr']: return image.convert('RGB') elif format == 'GIF': return convert(image, 'P', palette=Image.ADAPTIVE) elif format == 'PBM': if image.mode != '1': return image.convert('1') elif format == 'PCX': if image.mode in ['RGBA', 'CMYK', 'YCbCr']: return image.convert('RGB') if image.mode in ['LA', '1']: return image.convert('L') elif format == 'PDF': if image.mode in ['LA']: return image.convert('L') if image.mode in ['RGBA', 'YCbCr']: return image.convert('RGB') elif format == 'PGM': if image.mode != 'L': return image.convert('L') elif format == 'PPM': if image.mode in ['P', 'CMYK', 'YCbCr']: return image.convert('RGB') if image.mode in ['LA']: return image.convert('L') elif format == 'PS': if image.mode in ['1', 'LA']: return image.convert('L') if image.mode in ['P', 'RGBA', 'YCbCr']: return image.convert('RGB') elif format == 'XBM': if not image.mode in ['1']: return image.convert('1') elif format == 'TIFF': if image.mode in ['YCbCr']: return image.convert('RGB') elif format == 'PNG': if image.mode in ['CMYK', 'YCbCr']: return image.convert('RGB') #for consistency return a copy! (thumbnail.py depends on it) return image.copy() def save(image, filename, **options): """Saves an image with a filename and raise the specific ``InvalidWriteFormatError`` in case of an error instead of a ``KeyError``. Also can hack around UnicodeEncodeError (eg for IM format) :param image: image :type image: pil.Image :param filename: image filename :type filename: string """ try: image.save(filename, **options) except KeyError, format: raise InvalidWriteFormatError(format) except UnicodeEncodeError: temp = system.TempFile(suffix=os.path.splitext(filename)[-1]) image.save(temp.path, **options) temp.close(dest=filename) def save_check_mode(image, filename, **options): #save image with pil save(image, filename, **options) #verify saved file try: image_file = Image.open(filename) image_file.verify() except IOError: # We can't verify the image mode with PIL, so issue no warnings. return '' if image.mode != image_file.mode: return image_file.mode return '' def save_safely(image, filename): """Saves an image with a filename and raise the specific ``InvalidWriteFormatError`` in case of an error instead of a ``KeyError``. It can also save IM files with unicode. :param image: image :type image: pil.Image :param filename: image filename :type filename: string """ ext = os.path.splitext(filename)[-1] format = get_format(ext[1:]) image = convert_save_mode_by_format(image, format) save(image, filename) def get_reverse_transposition(transposition): """Get the reverse transposition method. :param transposition: transpostion, e.g. ``Image.ROTATE_90`` :returns: inverse transpostion, e.g. ``Image.ROTATE_270`` """ if transposition == Image.ROTATE_90: return Image.ROTATE_270 elif transposition == Image.ROTATE_270: return Image.ROTATE_90 return transposition def get_exif_transposition(orientation): """Get the transposition methods necessary to aling the image to its exif orientation. :param orientation: exif orientation :type orientation: int :returns: (transposition methods, reverse transpostion methods) :rtype: tuple """ #see EXIF.py if orientation == 1: transposition = transposition_reverse = () elif orientation == 2: transposition = Image.FLIP_LEFT_RIGHT, transposition_reverse = Image.FLIP_LEFT_RIGHT, elif orientation == 3: transposition = Image.ROTATE_180, transposition_reverse = Image.ROTATE_180, elif orientation == 4: transposition = Image.FLIP_TOP_BOTTOM, transposition_reverse = Image.FLIP_TOP_BOTTOM, elif orientation == 5: transposition = Image.FLIP_LEFT_RIGHT, \ Image.ROTATE_90 transposition_reverse = Image.ROTATE_270, \ Image.FLIP_LEFT_RIGHT elif orientation == 6: transposition = Image.ROTATE_270, transposition_reverse = Image.ROTATE_90, elif orientation == 7: transposition = Image.FLIP_LEFT_RIGHT, \ Image.ROTATE_270 transposition_reverse = Image.ROTATE_90, \ Image.FLIP_LEFT_RIGHT elif orientation == 8: transposition = Image.ROTATE_90, transposition_reverse = Image.ROTATE_270, else: transposition = transposition_reverse = () return transposition, transposition_reverse def get_exif_orientation(image): """Gets the exif orientation of an image. :param image: image :type image: pil.Image :returns: orientation :rtype: int """ if not hasattr(image, '_getexif'): return 1 try: _exif = image._getexif() if not _exif: return 1 return _exif[0x0112] except KeyError: return 1 def transpose(image, methods): """Transpose with a sequence of transformations, mainly useful for exif. :param image: image :type image: pil.Image :param methods: transposition methods :type methods: list :returns: transposed image :rtype: pil.Image """ for method in methods: image = image.transpose(method) return image def transpose_exif(image, reverse=False): """Transpose an image to its exif orientation. :param image: image :type image: pil.Image :param reverse: False when opening, True when saving :type reverse: bool :returns: transposed image :rtype: pil.Image """ orientation = get_exif_orientation(image) transposition = get_exif_transposition(orientation)[int(reverse)] if transposition: return transpose(image, transposition) return image def checkboard(size, delta=8, fg=(128, 128, 128), bg=(204, 204, 204)): """Draw an n x n checkboard, which is often used as background for transparent images. The checkboards are stored in the ``CHECKBOARD`` cache. :param delta: dimension of one square :type delta: int :param fg: foreground color :type fg: tuple of int :param bg: background color :type bg: tuple of int :returns: checkboard image :rtype: pil.Image """ if not (size in CHECKBOARD): dim = max(size) n = int(dim / delta) + 1 # FIXME: now acts like square->nx, ny def sq_start(i): "Return the x/y start coord of the square at column/row i." return i * delta def square(i, j): "Return the square corners" return map(sq_start, [i, j, i + 1, j + 1]) image = Image.new("RGB", size, bg) draw_square = ImageDraw.Draw(image).rectangle squares = (square(i, j) for i_start, j in zip(cycle((0, 1)), range(n)) for i in range(i_start, n, 2)) for sq in squares: draw_square(sq, fill=fg) CHECKBOARD[size] = image return CHECKBOARD[size].copy() def add_checkboard(image): """"If the image has a transparent mask, a RGB checkerboard will be drawn in the background. .. note:: In case of a thumbnail, the resulting image can not be used for the cache, as it replaces the transparency layer with a non transparent checkboard. :param image: image :type image: pil.Image :returns: image, with checkboard if transparant :rtype: pil.Image """ if (image.mode == 'P' and 'transparency' in image.info) or\ image.mode.endswith('A'): #transparant image image = image.convert('RGBA') image_bg = checkboard(image.size) paste(image_bg, image, (0, 0), image) return image_bg else: return image phatch-0.2.7/phatch/lib/linux/0000755000000000000000000000000011346363116016105 5ustar rootroot00000000000000phatch-0.2.7/phatch/lib/linux/__init__.py0000644000000000000000000000126111346363116020216 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follows PEP8 phatch-0.2.7/phatch/lib/linux/desktop.py0000644000000000000000000000223211346363116020127 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import os DROPLET = \ """#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Type=Application Name=%(name)s Terminal=false Exec=%(command)s Icon=%(icon)s""" def create_droplet(name, command, folder='~/Desktop', icon='gnome-panel-launcher.svg'): filename = os.path.join(folder, name + '.desktop') data = {'name': name, 'icon': icon, 'command': command} droplet = open(filename, 'w') droplet.write(DROPLET % data) droplet.close() os.chmod(filename, 0755) phatch-0.2.7/phatch/lib/linux/nautilusExtension.py0000644000000000000000000000500411346363116022217 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import codecs import os from core.ct import USER_PATH from lib.unicoding import ENCODING TEMPLATE = """ from urllib import unquote from subprocess import call import nautilus %(preload)s class %(name)s_extension(nautilus.MenuProvider): def __init__(self): pass def menu_activate_cb(self, menu, files): for file in files: if file.is_gone(): return files = ["'%%s'"%%unquote(file.get_uri()[7:]) for file in files] call('%(command)s'%%' '.join(files),shell=True) def get_file_items(self, window, files): #only directories and readable image files are accepted files = [file for file in files \ if (file.get_uri_scheme() == 'file' and file.get_mime_type() in %(mimetypes)s)] #return if nothing to do if not files: return #install menu item = nautilus.MenuItem('NautilusPython::%(name)s', %(label)s, %(tooltip)s) #bind/connect menu item with method item.connect('activate', self.menu_activate_cb, files) #return menu item return item, """ NAUTILUS_USER_PYTHON_EXTENSIONS = os.path.join(USER_PATH, '.nautilus', 'python-extensions') def nautilus_exists(): return os.path.isdir(NAUTILUS_USER_PYTHON_EXTENSIONS) def create_nautilus_extension(name, label, command, mimetypes, tooltip='', preload='', encoding=ENCODING): params = { 'name': name, 'label': label, 'command': command, 'mimetypes': mimetypes, 'tooltip': tooltip, 'preload': preload, } script = TEMPLATE % params filename = os.path.join(NAUTILUS_USER_PYTHON_EXTENSIONS, name + '.py') extension = codecs.open(filename, 'wb', encoding=ENCODING) extension.write(script) extension.close() phatch-0.2.7/phatch/lib/listData.py0000644000000000000000000002702611346363116017074 0ustar rootroot00000000000000# Copyright (C) 2009 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import operator import os class DataTuple(object): #not used by phatch def __init__(self, data=None): """Makes a data source which allows filtering independent of the gui toolkit. It is normally used in a list control. :param data: list of tuples :type data: list """ self.amount = 0 self.data = [] self.filter = '' if data is None: data = [] self.set_data(data) def __len__(self): """Returns the amount of data rows. >>> data = DataTuple([(0, )]) >>> len(data) 1 """ return len(self.data) def get(self, row, col): """Returns the cell value specified by the row and col. :param row: index of row :type row: int :param col: index of column :type col: int :returns: cell value >>> data = DataTuple([(0, 6)]) >>> data.get(0,0) 6 """ if row < self.amount: return self.data[row][col + 1] else: raise IndexError(row) def get_headers(self): """Get the headers of the columns. :returns: headers of the columns :rtype: list of strings >>> data = DataTuple([('id1','f1'),('id0','f2')]) >>> data.get_headers() ['0'] """ return [str(x) for x in range(len(self.data[0][1:]))] def set_data(self, data, amount=None, sort=True): """The data is organised as tuple/list of tuples. Amount is how much is visible and not necessarily the length of the data tuple! :param data: data organized in rows :type data: tuple/list :param amount: amount of rows visible :type amount: int :returns: whether the underlying data has really changed :rtype: bool >>> data = DataTuple() >>> data.set_data([(6, ),(5, )], amount=1) True >>> data.set_data([(6, ),(5, )], amount=1) False >>> len(data) == data.amount False """ if amount is None: amount = len(data) else: amount = amount if sort: data = self.sort(data) if self.data == data and self.amount == amount: return False self.data = data self.amount = amount return True def sort(self, data): """Sorts the data in place. >>> DataTuple().sort([('id1','f1'),('id0','f2')]) [('id0', 'f2'), ('id1', 'f1')] """ data.sort() return data def set_filter(self, filter): """Filters the data which is visible. It puts the visible data rows to the front and limits the amount. The visible data is automatically sorted. :param filter: substring which should appear in the data rows :type filter: string :returns: whether the filter has really changed :rtype: bool >>> data = DataTuple([(6, ),(5, )]) >>> data.set_filter('6') True >>> data.set_filter('6') False >>> data.amount 1 >>> len(data) 2 """ filter = filter.lower() if self.filter == filter: return False self.filter = filter include = [] exclude = [] for row in self.data: if filter in unicode(row).lower(): include.append(row) else: exclude.append(row) include = self.sort(include) self.set_data(include + exclude, amount=len(include), sort=False) return True class DataDict(DataTuple): #used by Phatch def __init__(self, data=None, headers=None, id='id'): """Makes a data source which allows filtering independent of the gui toolkit. It is normally used in a list control. :param data: list of tuples :type data: list :param headers: list of strings which are headers in the list :type headers: list """ self.id = id DataTuple.__init__(self, data=data) if headers is None: headers = [] all = True else: all = False self.update_headers(headers, all=all) def update_headers(self, headers=None, all=False): """Change sequence and find all headers (dict keys) in the data. >>> data = DataDict([{'id': 0, 'hello':'world'}, ... {'id': 1, 'foo':'bar'}]) >>> data.get_headers() ['foo', 'hello', 'id'] >>> data.update_headers(['hello']) >>> data.get_headers() ['hello'] >>> data.update_headers(['hello'], all=True) >>> data._headers ['hello', 'foo', 'id'] """ if all: if not(headers is None): self._fixed_headers = headers _headers = [] for row in self.data: for header in row.keys(): if header not in self._fixed_headers + _headers: _headers.append(header) _headers.sort() _headers = self._fixed_headers + _headers index = len(self._fixed_headers) self._headers = _headers[:index] + sorted(_headers[index:]) elif headers: self._headers = headers def get(self, row, col, default=''): """Returns the cell value specified by the row and column index. :param row: index of row :type row: int :param col: index of column :type col: int :param default: value to return if column header does not exist :returns: cell value >>> data = DataDict([{'id': 0, 'hello':'world'}, ... {'id': 1, 'foo':'bar'}]) >>> data.get_headers() ['foo', 'hello', 'id'] >>> data.get(0,0) '' >>> data.get(0,1) 'world' >>> data.get(1,0) 'bar' >>> data.get(1,1) '' >>> data.get(1,2) 1 """ return self.get_by_header(row, self._headers[col], default) def get_by_header(self, row, header, default=''): """Returns the cell value specified by the row and column header. :param row: index of row :type row: int :param col: column header :type col: string :param default: value to return if column header does not exist :returns: cell value >>> data = DataDict([{'id': 0, 'hello':'world'}, ... {'id': 1, 'foo':'bar'}], headers=['foo','hello']) >>> data.get_by_header(0,'foo') '' >>> data.get_by_header(0,'hello') 'world' >>> data.get_by_header(1,'foo') 'bar' """ if row < self.amount: return self.data[row].get(header, default) else: raise IndexError(row) def get_headers(self): """Get the headers of the columns. :returns: headers of the columns :rtype: list of strings >>> data = DataDict([{'id': 0, 'hello':'world'}, ... {'id': 1, 'foo':'bar', 'hello':'planet'}]) >>> data.get_headers() ['foo', 'hello', 'id'] """ return self._headers def sort(self, data): """Sorts the data in place. >>> DataDict(id='path').sort([{'path': 'id1', 'name': 'f1'}, ... {'path': 'id0', 'name': 'f2'}]) [{'path': 'id0', 'name': 'f2'}, {'path': 'id1', 'name': 'f1'}] """ return sorted(data, key=operator.itemgetter(self.id)) def _from_file_list(files, get_filename): """Helper function for file_data_tuple and file_data_dict. :param files: list of tuples or dictionaries :type files: list :param get_filename: returns the filename from a files item :type get_filename: function :returns: folder hierarchy :rtype: dict """ def new_child(): return {'children': {}, 'data': []} grandparents = [] root = new_child() root_name = '' def find_parent(f, folder_name, parent, parent_name): if folder_name == parent_name: return parent, parent_name elif folder_name.startswith(parent_name): #create child (this will happen on first time) child = new_child() parent['children'][folder_name] = child grandparents.append({'name': parent_name, 'parent': parent}) return child, folder_name else: #go up in hierarchy while not folder_name.startswith(grandparents[-1]['name']): grandparents.pop() data = grandparents[-1] parent = data['parent'] parent_name = data['name'] return find_parent(f, folder_name, parent, parent_name) files.sort(key=get_filename) parent = root parent_name = root_name for f in files: folder_name = os.path.dirname(get_filename(f)) + os.path.sep parent, parent_name = find_parent(f, folder_name, parent, parent_name) parent['data'].append(f) return root['children'] def files_data_tuple(files): """Turns a flat file list into a hierarchical one, of which the data values can be fed to the DataTuple Class (not the whole hierarchy). :param files: rows which consists of tuples, each tuples contains the full filename as the first element before other data :type files: list :returns: folder hierarchy :rtype: dict >>> import pprint >>> files = [('f0/i00', 0), ('f0/i01', 1), ... ('f1/i10', 2), ('f1/f2/i120', 3),] >>> pprint.pprint(files_data_tuple(files),width=60) {'f0/': {'children': {}, 'data': [('f0/i00', 0), ('f0/i01', 1)]}, 'f1/': {'children': {}, 'data': [('f1/i10', 2)]}, 'f1/f2/': {'children': {}, 'data': [('f1/f2/i120', 3)]}} """ def get_filename(f): return f[0] return _from_file_list(files, get_filename) def files_data_dict(files): """Turns a flat file list into a hierarchical one , of which the data values can be fed to the DataDict Class (not the whole hierarchy). :param files: rows which consists of tuples, each tuples contains the full filename as the first element before other data :type files: list :returns: folder hierarchy :rtype: dict >>> import pprint >>> files = [{'path': 'f0/i00', 'size': '5kb'}, ... {'path': 'f0/i01', 'size': '1kb'}, ... {'path': 'f1/i10', 'size': '2kb'}, ... {'path': 'f1/f2/i120', 'size': '3kb'}] >>> pprint.pprint(files_data_dict(files),width=60) {'f0/': {'children': {}, 'data': [{'path': 'f0/i00', 'size': '5kb'}, {'path': 'f0/i01', 'size': '1kb'}]}, 'f1/': {'children': {}, 'data': [{'path': 'f1/i10', 'size': '2kb'}]}, 'f1/f2/': {'children': {}, 'data': [{'path': 'f1/f2/i120', 'size': '3kb'}]}} """ def get_filename(f): return f['path'] return _from_file_list(files, get_filename) phatch-0.2.7/phatch/lib/metadata.py0000644000000000000000000020150711346363116017105 0ustar rootroot00000000000000# -*- coding: UTF-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for python editing. # Follows PEP8 # import rpdb2; rpdb2.start_embedded_debugger('x') #TODO: PROVIDE THESE AS EXTRACT METHOD, exif rotation #synchronize between exif automatically? pil manual #sphinx doc everything import datetime import os import re import time try: import pyexiv2 import _pyexiv2 except ImportError: pyexiv2 = None _pyexiv2 = None import imtools import odict import unicoding from desktop import DESKTOP_FOLDER from metadataTest import DateTime, INFO_TEST, is_string, MONTHS, now, WEEKDAYS from reverse_translation import _t RE_VAR = re.compile('<.+?>') DATETIME_KEYS = ['year', 'month', 'day', 'hour', 'minute', 'second'] RE_DATETIME_KEYS = re.compile('(%s)$' % ('|'.join(['[.]' + key for key in DATETIME_KEYS]))) RE_PYEXIV2_TAG = re.compile('^(Exif|Iptc)_.+') RE_PYEXIV2_TAG_EDITABLE = re.compile('^(Exif|Iptc)_\w+$') ORIENTATION_TAGS = ['orientation', 'Pexif_Orientation', 'Zexif_Orientation'] WRITABLE_TAGS = ['dpi', 'transparency'] + ORIENTATION_TAGS def is_editable_tag(tag): if RE_PYEXIV2_TAG_EDITABLE.match(tag): value = INFO_TEST.get(tag, 1) return type(value) in (str, unicode, int, float) \ or isinstance(value, DateTime) return False def is_writable_tag(tag): return tag in WRITABLE_TAGS or \ (RE_PYEXIV2_TAG_EDITABLE.match(tag) and not(tag in ( 'Exif_Photo_PixelXDimension', 'Exif_Photo_PixelYDimension', 'Exif_Image_Software'))) def is_writeable_not_exif_tag(tag, mode): return tag in ('dpi', 'orientation') \ or (mode == 'P' and tag == 'transparency') RE_DATETIME_COLON = \ re.compile('[0-9]{4,4}:[0-9]{2,2}:[0-9]{2,2} [0-9]{2,2}:[0-9]{2,2}:[0-9]{2,2}') class InfoProvideError(Exception): """When the variable can't be provided by the current info instances. """ pass # Keep this outside _InfoCache to avoid self reference def _update_static_source(self): """Update static cache does not do anything. This is just a dummy function which can be assigned to :method:``_update_source`` if the source is not callable.""" pass def _update_callable_source(self): """Update dynamic cache updates ``self._source`` with ``self._get_source_dynamic``. This can be assigned to :method:``_update_source`` if the source is callable. .. see also: :method:`_set_source` """ self._set_source(self._get_source_dynamic()) class _InfoCache(object): def __init__(self, source=None, vars=None): """Creates a cached info. The base is the source from which all variables are extracted on demand. When all variables have to be extracted use the :method:``extract_all`` method. The source can be a static object or a callable for cases where the object is manipulated and the variables remain valid (e.g. when resizing an image the mode stays valid) The difference between ``get`` and ``extract`` is that ``get`` returns a value, while ``extract`` extracts it and places it in ``dict``. ``extract`` allows for multiple, related values to be extracted simultaneously. ``__getitem__``is installed by :method:`enable_cache` or :method:`disable_cache` :param source: retrieve source from which to extract data :type source: object or callable """ if not (source is None): if is_string(source): source = self.get_source_from_file(source) self.set_source(source) else: self.dict = self.empty_dict.copy() self.set_vars(vars) def _set_extract_methods(self): """To be overwritten if the info has preknown variables.""" self._extract_methods = {} def dump(self, source=None): if source: self.set_source(source) self.extract_vars() return self.dict.copy() @classmethod def provides(cls, var): """Wether this info (might) provide the ``var`` variable. :returns: if this info should handle this variable :rtype: bool """ return var in cls.possible_vars or var[:cls._prefix_n] == cls.prefix def set_source(self, source): """Sets the source of this info. This allows reuse of the same info if needed. :param source: retrieve source from which to extract data :type source: object or callable .. see also: :method:`_set_source` """ if is_string(source): #source is a filename source = self.get_source_from_file(source) if callable(source): self._get_source_dynamic = source self._update_source = _update_callable_source source = None else: self._get_source_dynamic = None self._update_source = _update_static_source self._set_source(source) self.disable_cache() self.dict = self.empty_dict.copy() def _set_source(self, source): """Sets the source at the lowest level. Helper method for :method:`set_source` and :method:`_update_callable_source`. :param source: retrieve source from which to extract data :type source: object or callable """ self._source = source def set_vars(self, vars): self.vars = vars def enable_cache(self): """Enable the static cache so that the expensive :method:``_get_source_dynamic`` does not get called for every var access. This makes only sense for callable sources. """ self._update_source(self) type(self).__getitem__ = type(self)._get_var_from_source_without_update def disable_cache(self): """Turn off static caching. This makes only sense for callable sources. """ type(self).__getitem__ = type(self)._get_var_from_source_with_update def _get_var_from_source_with_update(self, var): """If the variable ``var`` is not present in the ``dict``, this method updates the ``source`` first and afterwards extracts the variable ``var`` from source. :param var: variable :type var: string """ try: return self.dict[var] except KeyError: self._update_source(self) return self._get_var_from_source(var) def _get_var_from_source_without_update(self, var): """If the variable ``var`` is not present in the ``dict``, this extracts the variable ``var`` from source without updating the ``source`` (as it is static). :param var: variable :type var: string """ try: return self.dict[var] except KeyError: return self._get_var_from_source(var) def _get_var_from_source(self, var): """ :param var: variable :type var: string """ self._extract_var_with_method_or_other(var) return self.dict[var] def _extract_var_with_method_or_other(self, var): """Extract var and store it in a dictionary. :param var: variable :type var: string """ if var in self._extract_methods: self._extract_methods[var](self) else: self._extract_other_method(var) def _extract_other_method(self, var): """Extract only one var""" if var[:self._prefix_n] == self.prefix: self.dict[var] = self._get_other(var[self._prefix_n:]) else: raise KeyError(var) def _extract_other(self, var): """Extract only one other ``var`` into ``dict``. This raises a ``KeyError`` by default. Helper function for :method:`_extract_other_method`. (to be overwritten) :param var: variable :type var: string """ raise KeyError(self.prefix + var) def _extract_others(self): """Extract all other vars. Does nothing by default. (to be overwritten)""" def extract_vars(self, vars=None): if vars is None: vars = self.vars self.enable_cache() for var in self.vars: self[var] self.disable_cache() def extract_all(self): """Extract all values, which is usefull for inspector.""" for var, extract in self._extract_methods.items(): if not(var in self.dict): extract(self) self._extract_others() @classmethod def load_module(cls): """Load module lazily on demand and redirect :method:`get_source_from_file` from :method:`_get_source_from_file_and_module` to :method:`_get_source_from_file`. """ cls._load_module() cls.get_source_from_file = cls._get_source_from_file def load_filename(self, filename): """Load source from filename. :param filename: filename of the source file :type filename: string """ self.set_source(self.get_source_from_file(filename)) def _get_source_from_file_and_module(self, filename): """Loads module and get source from file. Normally this is only called the first time as :method:`get_source_from_file`. Afterwards :method:`_get_source_from_file` is called. :param filename: filename of the source file :type filename: string .. see also:: :method:`load_module` """ self.load_module() return self._get_source_from_file(filename) @classmethod def _load_module(cls): """Code to load the dependent module. (To be overwritten.)""" def _get_source_from_file(self, filename): """If the source can be loaded from a file, specify the load method here. (To be overwritten.) :param filename: filename of the source file :type filename: string """ return filename @classmethod def needs_orientation(cls, vars): """Whether this info needs orientation""" return False get_source_from_file = _get_source_from_file_and_module empty_dict = {} type = 'cache' _extract_methods = {} prefix = type + '_' _prefix_n = len(prefix) possible_vars = sorted(_extract_methods.keys()) class UnknownTypeError(Exception): pass class InfoFile(_InfoCache): """Wraps a lazy file path access around an image filename. >>> info = InfoFile('/home/phatch/test.png') >>> info['foldername'] u'phatch' >>> sorted(info.dict.keys()) ['foldername', 'root'] >>> info['type'] u'png' >>> sorted(info.dict.keys()) ['filename', 'foldername', 'root', 'type'] >>> info.set_source('/home/gimp/world.jpg') >>> info['type'] u'jpg' >>> sorted(info.dict.keys()) ['filename', 'type'] """ def _set_source(self, source): if is_string(source): self._source_path = source self._source_parent = os.path.dirname(self._source_path) else: self._source_path, self._source_parent = source self._source_path = unicoding.ensure_unicode(self._source_path) self._source_parent = unicoding.ensure_unicode(self._source_parent) self._source_parent = self._source_parent.rstrip(os.path.sep) def _extract_path(self): """Extracts the full path from the source.""" self.dict['path'] = self._source_path def _extract_folder(self): """Extracts the parent folder from the source.""" self.dict['folder'] = self._source_parent def _extract_root(self): """Extracts the root folder from the source. The root folder is the parent of the parent folder.""" self.dict['root'], self.dict['foldername'] = \ os.path.split(self._source_parent) def _extract_filename(self): """Extracts the filename (without type) and type from the source.""" filename = os.path.basename(self._source_path) self.dict['filename'], typ = \ os.path.splitext(filename) self.dict['type'] = typ[1:] def _extract_stat(self): """Extracts the file size and date information from the source.""" try: file_stat = os.stat(self._source_path) self.dict['filesize'] = file_stat.st_size st_mtime = time.localtime(file_stat.st_mtime)[:7] except: self.dict['filesize'] = 0 st_mtime = (0, ) * 7 self.dict['year'], self.dict['month'], self.dict['day'], \ self.dict['hour'], self.dict['minute'], self.dict['second'], \ self.dict['weekday'] = st_mtime self.dict['weekdayname'] = WEEKDAYS[self.dict['weekday']] self.dict['monthname'] = MONTHS[self.dict['month'] - 1] def _extract_subfolder(self): """Extracts the ``subfolder`` from the source. ``subfolder`` is the child folder from ``folder``. """ self.dict['subfolder'] = \ os.path.dirname(self._source_path)[len(self._source_parent) + 1:] def _extract_desktop(self): self.dict['desktop'] = DESKTOP_FOLDER @classmethod def split_vars(cls, vars): vars = set(vars) #known, unknown return (vars.intersection(cls.possible_vars), vars.difference(cls.possible_vars)) type = 'File' _extract_methods = { _t('day'): _extract_stat, _t('desktop'): _extract_desktop, _t('foldername'): _extract_root, _t('filename'): _extract_filename, _t('filesize'): _extract_stat, _t('folder'): _extract_folder, _t('hour'): _extract_stat, _t('minute'): _extract_stat, _t('month'): _extract_stat, _t('monthname'): _extract_stat, _t('path'): _extract_path, _t('root'): _extract_root, _t('second'): _extract_stat, _t('subfolder'): _extract_subfolder, _t('type'): _extract_filename, _t('weekday'): _extract_stat, _t('weekdayname'): _extract_stat, _t('year'): _extract_stat, } prefix = type + '_' _prefix_n = len(prefix) possible_vars = sorted(_extract_methods.keys()) class _InfoPil(_InfoCache): @classmethod def _load_module(cls): """Code to load the PIL Image module.""" try: import openImage cls.Image = openImage except ImportError: import Image cls.Image = Image @classmethod def _get_source_from_file(cls, filename): """Load the PIL source from a file. :param filename: filename of the source file :type filename: string """ return cls.Image.open(filename) class InfoPil(_InfoPil): """Wraps a lazy PIL var access to an image. :param image: Pil.Image or callable to retrieve it :type image: Pil.Image/function >>> import pprint >>> import Image >>> image = Image.new('L',(1,2)) >>> info = InfoPil(image) >>> info['format'] >>> info.provides('formatdescription') True >>> pprint.pprint(info.possible_vars) ['aspect', 'compression', 'dpi', 'format', 'formatdescription', 'gamma', 'height', 'interlace', 'mode', 'size', 'transparency', 'width'] >>> sorted(info.dict.keys()) ['format', 'orientation'] >>> info['mode'] 'L' >>> info['height'] 2 >>> info['format'] >>> info['dpi'] 72 >>> sorted(info.dict.keys()) ['dpi', 'format', 'height', 'mode', 'orientation', 'size', 'width'] >>> info.reset_geometry() >>> sorted(info.dict.keys()) ['dpi', 'format', 'mode', 'orientation'] >>> info.extract_all() >>> pprint.pprint(sorted(info.dict.keys())) ['aspect', 'compression', 'dpi', 'format', 'formatdescription', 'gamma', 'height', 'interlace', 'mode', 'orientation', 'size', 'transparency', 'width'] """ def _extract_aspect(self): self.dict['aspect'] = self._source.info.get('aspect', None) def _extract_compression(self): self.dict['compression'] = \ self._source.info.get('compression', 'none') def _extract_dpi(self): self.dict['dpi'] = \ self._source.info.get('dpi', (72, ))[0] def _extract_format(self): self.dict['format'] = self._source.format def _extract_formatdescription(self): self.dict['formatdescription'] = \ self._source.format_description def _extract_gamma(self): self.dict['gamma'] = self._source.info.get('gamma', None) def _extract_interlace(self): self.dict['interlace'] = \ self._source.info.get('interlace', None) def _extract_mode(self): self.dict['mode'] = self._source.mode def _extract_size(self): """Extract size of image with PIL""" #we don't translate dotted attributes size = self._source.size if self.dict['orientation'] > 4: size = (size[1], size[0]) self.dict['width'], self.dict['height'] = \ self.dict['size'] = size def _extract_transparency(self): self.dict['transparency'] = \ self._source.info.get('transparency', None) def _get_other(self, var): """Get only one variable which is not defined in :method:`_extract_methods`. :param var: name of the variable :type var: string """ try: return self._source.info[var] except KeyError: raise KeyError(self.prefix + var) def _extract_others(self): """Extract all other possible vars""" for key, value in self._source.info.items(): if not(key in self.vars_skip): self.dict[self.prefix + key] = value def reset_geometry(self): for var in ('width', 'height', 'size'): if var in self.dict: del self.dict[var] def set_orientation(self, orientation): self.dict['orientation'] = orientation self.reset_geometry() @classmethod def needs_orientation(cls, vars): """InfoPil always needs to know the orientation. :returns: True :rtype: bool """ return True read_only = ('aspect', 'dpi', 'gamma', 'interlace', 'transparency') empty_dict = {'orientation': 1} type = 'Pil' _extract_methods = { _t('aspect'): _extract_aspect, _t('compression'): _extract_compression, _t('dpi'): _extract_dpi, _t('gamma'): _extract_gamma, _t('height'): _extract_size, _t('interlace'): _extract_interlace, _t('mode'): _extract_mode, _t('width'): _extract_size, _t('format'): _extract_format, _t('formatdescription'): _extract_formatdescription, _t('size'): _extract_size, _t('transparency'): _extract_transparency} prefix = type + '_' _prefix_n = len(prefix) possible_vars = sorted(_extract_methods.keys()) vars_skip = possible_vars + ['exif'] # skip for writing png metadata #Initialize PIL metadata #This can't be lazily loaded as it is needed by the provide method. try: from ExifTags import TAGS, GPSTAGS EXIFTAGS = {} EXIFTAGS.update(TAGS) EXIFTAGS.update(GPSTAGS) del TAGS del GPSTAGS except: #older versions of PIL EXIFTAGS = {'Orientation': 'Orientation'} EXIFTAGS_REVERSE = {} for key, item in EXIFTAGS.items(): EXIFTAGS_REVERSE[item] = key def convert_from_string(value): """If value is recongized as a datetime string, convert value into :class:`DateTime` instance. :param value: any value :type value: string :returns: same value or converted in date :rtype: string/:class:`DateTime` """ if is_string(value) and RE_DATETIME_COLON.match(value): return DateTime(value) return value class _InfoPilMetadata(_InfoPil): def _extract_orientation(self): """Extract orientation from source image as integer.""" self.dict['orientation'] = self._source.get(self.orientation, 1) def _set_source(self, source): """Sets the source at the lowest level. Helper method for :method:`set_source` and :method:`_update_callable_source`. :param source: retrieve source from which to extract data :type source: object or callable """ try: self._source = source._getexif() except: self._source = {} return if not self._source: self._source = {} orientation = EXIFTAGS_REVERSE['Orientation'] _extract_methods = { _t('orientation'): _extract_orientation} possible_vars = sorted(_extract_methods.keys()) class InfoPexif(_InfoPilMetadata): """Wraps a lazy PIL exif var access to an image. >>> import pprint >>> filename = '../tests/input/exĩf ïptç.jpg' >>> info = InfoPexif(filename) >>> info['orientation'] 8 >>> info['Pexif_DateTimeOriginal'] DateTime('2010:03:03 11:03:08') >>> pprint.pprint(info.dict.keys()) ['Pexif_DateTimeOriginal', 'orientation'] >>> import Image >>> image = Image.open(filename) >>> info = InfoPexif(image) >>> info['Pexif_DateTimeOriginal'] DateTime('2010:03:03 11:03:08') >>> pprint.pprint(info.dict.keys()) ['Pexif_DateTimeOriginal'] >>> info.extract_all() >>> info['Pexif_DateTimeOriginal'] DateTime('2010:03:03 11:03:08') >>> pprint.pprint(info.dict.keys()) ['orientation', 'Pexif_Make', 'Pexif_Flash', 'Pexif_YResolution', 'Pexif_DateTimeDigitized', 'Pexif_ExifImageWidth', 'Pexif_FocalPlaneYResolution', 'Pexif_MaxApertureValue', 'Pexif_MeteringMode', 'Pexif_ExifVersion', 'Pexif_MakerNote', 'Pexif_FNumber', 'Pexif_FocalPlaneResolutionUnit', 'Pexif_SensingMethod', 'Pexif_Orientation', 'Pexif_FocalLength', 'Pexif_XResolution', 'Pexif_ExifOffset', 'Pexif_FileSource', 'Pexif_CompressedBitsPerPixel', 'Pexif_ExifImageHeight', 'Pexif_ResolutionUnit', 'Pexif_ExifInteroperabilityOffset', 'Pexif_ApertureValue', 'Pexif_ExposureTime', 'Pexif_ColorSpace', 'Pexif_YCbCrPositioning', 'Pexif_Model', 'Pexif_DateTime', 'Pexif_ComponentsConfiguration', 'Pexif_FlashPixVersion', 'Pexif_FocalPlaneXResolution', 'Pexif_DateTimeOriginal', 'Pexif_UserComment'] """ @classmethod def provides(cls, var): return var == 'orientation' or \ (var[:cls._prefix_n] == cls.prefix and var[cls._prefix_n:] in EXIFTAGS_REVERSE) def _get_other(self, var): """Get only one variable which is not defined in :method:`_extract_methods`. :param var: name of the variable :type var: string """ try: key = EXIFTAGS_REVERSE[var] except KeyError: # re raise: give full name to key error raise KeyError(self.prefix + var) return convert_from_string(self._source[key]) def _extract_others(self): """Extract all other possible vars""" for key, value in self._source.items(): if key in EXIFTAGS: self.dict['Pexif_' + EXIFTAGS[key]] = \ convert_from_string(value) type = 'Pexif' prefix = type + '_' _prefix_n = len(prefix) class InfoZexif(_InfoPilMetadata): """Wraps a lazy PIL exif var access to an image. >>> import pprint >>> filename = '../tests/input/exĩf ïptç.jpg' >>> info = InfoZexif(filename) >>> info['Zexif_0x9202'] (128, 32) >>> import Image >>> image = Image.open(filename) >>> info = InfoZexif(image) >>> info['Zexif_0x9202'] (128, 32) >>> pprint.pprint(info.dict.keys()) ['Zexif_0x9202'] >>> info.extract_all() >>> pprint.pprint(info.dict.keys()) ['Zexif_0x9202', 'Zexif_0x0128', 'orientation', 'Zexif_0x9205', 'Zexif_0x9101', 'Zexif_0xa001', 'Zexif_0xa002', 'Zexif_0x9209', 'Zexif_0xa20f', 'Zexif_0xa005', 'Zexif_0xa20e', 'Zexif_0x9000', 'Zexif_0xa217', 'Zexif_0x9003', 'Zexif_0x9004', 'Zexif_0xa210', 'Zexif_0x011b', 'Zexif_0x9286', 'Zexif_0x9207', 'Zexif_0x829d', 'Zexif_0x829a', 'Zexif_0xa404', 'Zexif_0xa406', 'Zexif_0xa401', 'Zexif_0xa402', 'Zexif_0xa403', 'Zexif_0xa000', 'Zexif_0x9102', 'Zexif_0x0110', 'Zexif_0x0112', 'Zexif_0x0132', 'Zexif_0x920a', 'Zexif_0x8769', 'Zexif_0x010f', 'Zexif_0x927c', 'Zexif_0xa300', 'Zexif_0x0213', 'Zexif_0x011a', 'Zexif_0xa003'] """ @classmethod def provides(cls, var): return var == 'orientation' or \ (var[:cls._prefix_n] == cls.prefix and cls.regex.match(var[cls._prefix_n:])) def _get_other(self, var): """Get only one variable which is not defined in :method:`_extract_methods`. :param var: name of the variable :type var: string """ return convert_from_string(self._source[eval(var)]) def _extract_others(self): """Extract all other vars""" for key, value in self._source.items(): self.dict['Zexif_0x%04x' % key] = convert_from_string(value) type = 'Zexif' regex = re.compile('0x[a-f0-9]{4,4}') prefix = type + '_' _prefix_n = len(prefix) class _InfoPyexiv2(_InfoCache): @classmethod def provides(cls, var): return cls.regex.search(var) def convert(self, value): if value.__class__ == datetime.datetime: value = DateTime(value) return value def _get_other(self, var): """Get only one variable which is not defined in :method:`_extract_methods`. :param var: name of the variable :type var: string """ return self.convert(self._source['%s.%s' \ % (self.type, var.replace('_', '.'))]) def _extract_others_from_keys(self, exif_keys): """Extract all other vars""" for var in exif_keys: _var = var.replace('.', '_') if not(_var in self.dict): try: value = self._source[var] except: continue self.dict[_var] = self.convert(value) @classmethod def _load_module(cls): """Code to load the pyexiv2 module.""" import pyexiv2 import _pyexiv2 cls.pyexiv2 = pyexiv2 cls._pyexiv2 = _pyexiv2 @classmethod def _get_source_from_file(cls, filename, all=False): """Load the pyexiv2 source from a file. :param filename: filename of the source file :type filename: string :param all: cache all tags :type all: bool """ format = imtools.get_format(os.path.splitext(filename)[-1][1:]) if cls._pyexiv2.is_readable_format(format): source = cls.pyexiv2.Image(filename) source.readMetadata() if all: source.cacheAllExifTags() source.cacheAllIptcTags() return source else: return {} class InfoExif(_InfoPyexiv2): """ >>> import pprint >>> filename = '../tests/input/exĩf ïptç.jpg' >>> info = InfoExif(filename) >>> info['Exif_Image_DateTime'] DateTime('2010:03:03 11:03:08') >>> import pyexiv2 >>> exif = pyexiv2.Image(filename) >>> exif.readMetadata() >>> info = InfoExif(exif) >>> info['Exif_Image_DateTime'] DateTime('2010:03:03 11:03:08') >>> print info['Exif_Image_DateTime'] 2010:03:03 11:03:08 >>> info['Exif_Image_Orientation'] 8 >>> info['Exif_Photo_MaxApertureValue'].__class__ == pyexiv2.Rational True >>> print info['Exif_Photo_MaxApertureValue'] 128/32 >>> info.extract_all() >>> pprint.pprint(sorted(info.dict.keys())) ['Exif_CanonCs_0x0000', 'Exif_CanonCs_0x0006', 'Exif_CanonCs_0x0008', 'Exif_CanonCs_0x0009', 'Exif_CanonCs_0x0015', 'Exif_CanonCs_0x001e', 'Exif_CanonCs_0x001f', 'Exif_CanonCs_0x0026', 'Exif_CanonCs_0x0027', 'Exif_CanonCs_0x0029', 'Exif_CanonCs_0x002b', 'Exif_CanonCs_0x002c', 'Exif_CanonCs_0x002d', 'Exif_CanonCs_AESetting', 'Exif_CanonCs_AFPoint', 'Exif_CanonCs_ColorTone', 'Exif_CanonCs_Contrast', 'Exif_CanonCs_DigitalZoom', 'Exif_CanonCs_DisplayAperture', 'Exif_CanonCs_DriveMode', 'Exif_CanonCs_EasyMode', 'Exif_CanonCs_ExposureProgram', 'Exif_CanonCs_FlashActivity', 'Exif_CanonCs_FlashDetails', 'Exif_CanonCs_FlashMode', 'Exif_CanonCs_FocusContinuous', 'Exif_CanonCs_FocusMode', 'Exif_CanonCs_FocusType', 'Exif_CanonCs_ISOSpeed', 'Exif_CanonCs_ImageSize', 'Exif_CanonCs_ImageStabilization', 'Exif_CanonCs_Lens', 'Exif_CanonCs_LensType', 'Exif_CanonCs_Macro', 'Exif_CanonCs_MaxAperture', 'Exif_CanonCs_MeteringMode', 'Exif_CanonCs_MinAperture', 'Exif_CanonCs_PhotoEffect', 'Exif_CanonCs_Quality', 'Exif_CanonCs_Saturation', 'Exif_CanonCs_Selftimer', 'Exif_CanonCs_Sharpness', 'Exif_CanonCs_ZoomSourceWidth', 'Exif_CanonCs_ZoomTargetWidth', 'Exif_CanonSi_0x0000', 'Exif_CanonSi_0x0001', 'Exif_CanonSi_0x0003', 'Exif_CanonSi_0x0006', 'Exif_CanonSi_0x0008', 'Exif_CanonSi_0x000a', 'Exif_CanonSi_0x000b', 'Exif_CanonSi_0x000c', 'Exif_CanonSi_0x000d', 'Exif_CanonSi_0x0010', 'Exif_CanonSi_0x0011', 'Exif_CanonSi_0x0012', 'Exif_CanonSi_0x0014', 'Exif_CanonSi_0x0017', 'Exif_CanonSi_0x0018', 'Exif_CanonSi_0x0019', 'Exif_CanonSi_0x001a', 'Exif_CanonSi_0x001b', 'Exif_CanonSi_0x001c', 'Exif_CanonSi_0x001d', 'Exif_CanonSi_0x001e', 'Exif_CanonSi_0x001f', 'Exif_CanonSi_0x0020', 'Exif_CanonSi_0x0021', 'Exif_CanonSi_AFPointUsed', 'Exif_CanonSi_ApertureValue', 'Exif_CanonSi_FlashBias', 'Exif_CanonSi_ISOSpeed', 'Exif_CanonSi_Sequence', 'Exif_CanonSi_ShutterSpeedValue', 'Exif_CanonSi_SubjectDistance', 'Exif_CanonSi_TargetAperture', 'Exif_CanonSi_TargetShutterSpeed', 'Exif_CanonSi_WhiteBalance', 'Exif_Canon_0x0000', 'Exif_Canon_0x0003', 'Exif_Canon_0x000d', 'Exif_Canon_0x0013', 'Exif_Canon_0x0018', 'Exif_Canon_0x0019', 'Exif_Canon_0x001c', 'Exif_Canon_0x001d', 'Exif_Canon_0x001e', 'Exif_Canon_0x001f', 'Exif_Canon_0x0022', 'Exif_Canon_0x0023', 'Exif_Canon_0x0024', 'Exif_Canon_0x0025', 'Exif_Canon_0x0026', 'Exif_Canon_0x0027', 'Exif_Canon_0x0028', 'Exif_Canon_FirmwareVersion', 'Exif_Canon_FocalLength', 'Exif_Canon_ImageNumber', 'Exif_Canon_ImageType', 'Exif_Canon_ModelID', 'Exif_Canon_OwnerName', 'Exif_Image_DateTime', 'Exif_Image_ExifTag', 'Exif_Image_Make', 'Exif_Image_Model', 'Exif_Image_Orientation', 'Exif_Image_ResolutionUnit', 'Exif_Image_XResolution', 'Exif_Image_YCbCrPositioning', 'Exif_Image_YResolution', 'Exif_Iop_InteroperabilityIndex', 'Exif_Iop_InteroperabilityVersion', 'Exif_Iop_RelatedImageLength', 'Exif_Iop_RelatedImageWidth', 'Exif_MakerNote_ByteOrder', 'Exif_MakerNote_Offset', 'Exif_Photo_ApertureValue', 'Exif_Photo_ColorSpace', 'Exif_Photo_ComponentsConfiguration', 'Exif_Photo_CompressedBitsPerPixel', 'Exif_Photo_CustomRendered', 'Exif_Photo_DateTimeDigitized', 'Exif_Photo_DateTimeOriginal', 'Exif_Photo_DigitalZoomRatio', 'Exif_Photo_ExifVersion', 'Exif_Photo_ExposureBiasValue', 'Exif_Photo_ExposureMode', 'Exif_Photo_ExposureTime', 'Exif_Photo_FNumber', 'Exif_Photo_FileSource', 'Exif_Photo_Flash', 'Exif_Photo_FlashpixVersion', 'Exif_Photo_FocalLength', 'Exif_Photo_FocalPlaneResolutionUnit', 'Exif_Photo_FocalPlaneXResolution', 'Exif_Photo_FocalPlaneYResolution', 'Exif_Photo_InteroperabilityTag', 'Exif_Photo_MakerNote', 'Exif_Photo_MaxApertureValue', 'Exif_Photo_MeteringMode', 'Exif_Photo_PixelXDimension', 'Exif_Photo_PixelYDimension', 'Exif_Photo_SceneCaptureType', 'Exif_Photo_SensingMethod', 'Exif_Photo_ShutterSpeedValue', 'Exif_Photo_UserComment', 'Exif_Photo_WhiteBalance', 'Exif_Thumbnail_Compression', 'Exif_Thumbnail_JPEGInterchangeFormat', 'Exif_Thumbnail_JPEGInterchangeFormatLength', 'Exif_Thumbnail_ResolutionUnit', 'Exif_Thumbnail_XResolution', 'Exif_Thumbnail_YResolution', 'orientation'] """ def _extract_orientation(self): """Extract orientation from source image as integer.""" try: #be careful to use dots here instead of _ self.dict['orientation'] = self._source['Exif.Image.Orientation'] except KeyError: self.dict['orientation'] = 1 def _extract_others(self): """Extract all other vars""" self._extract_others_from_keys(self._source.exifKeys()) regex = re.compile('^Exif|^orientation$') type = 'Exif' _extract_methods = { _t('orientation'): _extract_orientation} prefix = type + '_' _prefix_n = len(prefix) possible_vars = sorted(_extract_methods.keys()) class InfoIptc(_InfoPyexiv2): """ >>> import pprint >>> filename = '../tests/input/exĩf ïptç.jpg' >>> info = InfoIptc(filename) >>> info['Iptc_Application2_RecordVersion'] 0 >>> import pyexiv2 >>> exif = pyexiv2.Image(filename) >>> exif.readMetadata() >>> info = InfoIptc(exif) >>> info['Iptc_Application2_RecordVersion'] 0 >>> info['Iptc_Application2_Copyright'] 'Copyright 2010, www.stani.be' >>> pprint.pprint(sorted(info.dict.keys())) ['Iptc_Application2_Copyright', 'Iptc_Application2_RecordVersion'] >>> info.extract_all() >>> pprint.pprint(sorted(info.dict.keys())) ['Iptc_Application2_Byline', 'Iptc_Application2_Caption', 'Iptc_Application2_Copyright', 'Iptc_Application2_ObjectName', 'Iptc_Application2_RecordVersion'] """ def _extract_others(self): """Extract all other vars""" self._extract_others_from_keys(self._source.iptcKeys()) type = 'Iptc' regex = re.compile('^Iptc_') prefix = type + '_' _prefix_n = len(prefix) class InfoEXIF(_InfoCache): """ >>> import pprint >>> filename = '../tests/input/exĩf ïptç.jpg' >>> info = InfoEXIF(filename) >>> pprint.pprint(sorted(info.dict.keys())) [] >>> info['EXIF_Thumbnail_Compression'] (0x0103) Short=JPEG (old-style) @ 3402 >>> pprint.pprint(sorted(info.dict.keys())) ['EXIF_Thumbnail_Compression'] >>> import pyexiv2 >>> from other import EXIF >>> exif = EXIF.process_file(open(filename, 'rb')) >>> info = InfoEXIF(exif) >>> info['orientation'] 8 >>> str(info['EXIF_Image_Orientation']) 'Rotated 90 CCW' >>> info['EXIF_Thumbnail_Compression'] (0x0103) Short=JPEG (old-style) @ 3402 >>> pprint.pprint(sorted(info.dict.keys())) ['EXIF_Image_Orientation', 'EXIF_Thumbnail_Compression', 'orientation'] >>> info.extract_all() >>> pprint.pprint(sorted(info.dict.keys())) ['EXIF_ApertureValue', 'EXIF_ColorSpace', 'EXIF_ComponentsConfiguration', 'EXIF_CompressedBitsPerPixel', 'EXIF_CustomRendered', 'EXIF_DateTimeDigitized', 'EXIF_DateTimeOriginal', 'EXIF_DigitalZoomRatio', 'EXIF_ExifImageLength', 'EXIF_ExifImageWidth', 'EXIF_ExifVersion', 'EXIF_ExposureBiasValue', 'EXIF_ExposureMode', 'EXIF_ExposureTime', 'EXIF_FNumber', 'EXIF_FileSource', 'EXIF_Flash', 'EXIF_FlashPixVersion', 'EXIF_FocalLength', 'EXIF_FocalPlaneResolutionUnit', 'EXIF_FocalPlaneXResolution', 'EXIF_FocalPlaneYResolution', 'EXIF_Image_DateTime', 'EXIF_Image_ExifOffset', 'EXIF_Image_Make', 'EXIF_Image_Model', 'EXIF_Image_Orientation', 'EXIF_Image_ResolutionUnit', 'EXIF_Image_XResolution', 'EXIF_Image_YCbCrPositioning', 'EXIF_Image_YResolution', 'EXIF_InteroperabilityOffset', 'EXIF_JPEGThumbnail', 'EXIF_MakerNote', 'EXIF_MakerNote_AFPointSelected', 'EXIF_MakerNote_AFPointUsed', 'EXIF_MakerNote_ContinuousDriveMode', 'EXIF_MakerNote_Contrast', 'EXIF_MakerNote_DigitalZoom', 'EXIF_MakerNote_EasyShootingMode', 'EXIF_MakerNote_ExposureMode', 'EXIF_MakerNote_FirmwareVersion', 'EXIF_MakerNote_FlashActivity', 'EXIF_MakerNote_FlashBias', 'EXIF_MakerNote_FlashDetails', 'EXIF_MakerNote_FlashMode', 'EXIF_MakerNote_FocalUnitsPerMM', 'EXIF_MakerNote_FocusMode', 'EXIF_MakerNote_FocusType', 'EXIF_MakerNote_ISO', 'EXIF_MakerNote_ImageNumber', 'EXIF_MakerNote_ImageSize', 'EXIF_MakerNote_ImageType', 'EXIF_MakerNote_LongFocalLengthOfLensInFocalUnits', 'EXIF_MakerNote_Macromode', 'EXIF_MakerNote_MeteringMode', 'EXIF_MakerNote_OwnerName', 'EXIF_MakerNote_Quality', 'EXIF_MakerNote_Saturation', 'EXIF_MakerNote_SelfTimer', 'EXIF_MakerNote_SequenceNumber', 'EXIF_MakerNote_Sharpness', 'EXIF_MakerNote_ShortFocalLengthOfLensInFocalUnits', 'EXIF_MakerNote_SubjectDistance', 'EXIF_MakerNote_Tag_0x0000', 'EXIF_MakerNote_Tag_0x0001', 'EXIF_MakerNote_Tag_0x0002', 'EXIF_MakerNote_Tag_0x0003', 'EXIF_MakerNote_Tag_0x0004', 'EXIF_MakerNote_Tag_0x000D', 'EXIF_MakerNote_Tag_0x0010', 'EXIF_MakerNote_Tag_0x0013', 'EXIF_MakerNote_Tag_0x0018', 'EXIF_MakerNote_Tag_0x0019', 'EXIF_MakerNote_Tag_0x001C', 'EXIF_MakerNote_Tag_0x001D', 'EXIF_MakerNote_Tag_0x001E', 'EXIF_MakerNote_Tag_0x001F', 'EXIF_MakerNote_Tag_0x0022', 'EXIF_MakerNote_Tag_0x0023', 'EXIF_MakerNote_Tag_0x0024', 'EXIF_MakerNote_Tag_0x0025', 'EXIF_MakerNote_Tag_0x0026', 'EXIF_MakerNote_Tag_0x0027', 'EXIF_MakerNote_Tag_0x0028', 'EXIF_MakerNote_Unknown', 'EXIF_MakerNote_WhiteBalance', 'EXIF_MaxApertureValue', 'EXIF_MeteringMode', 'EXIF_SceneCaptureType', 'EXIF_SensingMethod', 'EXIF_ShutterSpeedValue', 'EXIF_Thumbnail_Compression', 'EXIF_Thumbnail_JPEGInterchangeFormat', 'EXIF_Thumbnail_JPEGInterchangeFormatLength', 'EXIF_Thumbnail_ResolutionUnit', 'EXIF_Thumbnail_XResolution', 'EXIF_Thumbnail_YResolution', 'EXIF_UserComment', 'EXIF_WhiteBalance', 'orientation'] """ def _extract_orientation(self): """Extract orientation from source image as integer. .. note:: This translates the EXIF orientation string back to a number. """ try: orientation = self._orientation_dict[ str(self._source['Image Orientation'])] except KeyError: orientation = 1 self.dict['orientation'] = orientation def _get_other(self, var): """Get a variable which is not defined in :method:`_extract_methods`. :param var: name of the variable :type var: string """ var = var.replace('_', ' ') try: return self._source['EXIF ' + var] except KeyError: return self._source[var] def _extract_others(self): """Extract all other vars""" for tag, value in self._source.items(): tag = tag.replace(' ', '_') if not tag.startswith('EXIF'): tag = 'EXIF_' + tag self.dict[tag] = value @classmethod def _load_module(cls): """Code to load the EXIF module.""" from other import EXIF cls.EXIF = EXIF @classmethod def _get_source_from_file(cls, filename): """Load the EXIF source from a file. :param filename: filename of the source file :type filename: string """ return cls.EXIF.process_file(open(filename, 'rb')) type = 'EXIF' _extract_methods = { _t('orientation'): _extract_orientation} _orientation_dict = { 'Horizontal (normal)': 1, 'Mirrored horizontal': 2, 'Rotated 180': 3, 'Mirrored vertical': 4, 'Mirrored horizontal then rotated 90 CCW': 5, 'Rotated 90 CW': 6, 'Mirrored horizontal then rotated 90 CW': 7, 'Rotated 90 CCW': 8} prefix = type + '_' _prefix_n = len(prefix) possible_vars = sorted(_extract_methods.keys()) INFOS = [InfoFile] if pyexiv2: INFOS.extend([InfoExif, InfoIptc]) INFOS.extend([InfoPil, InfoPexif, InfoZexif]) #, InfoEXIF] #EXIF disabled for now as it crashes INFOS_WITH_ORIENTATION = [Info for Info in INFOS if 'orientation' in Info.possible_vars] VARS_BY_INFO_EXIF = {} for info in INFOS: #set to None so it defaults to all variables VARS_BY_INFO_EXIF[info] = None VARS_BY_INFO = {InfoFile: None, InfoPil: None} def get_vars_by_info(filename): format = imtools.get_format_filename(filename) if (_pyexiv2 and _pyexiv2.is_readable_format(format)) or format == 'JPEG': return VARS_BY_INFO_EXIF.copy() else: return VARS_BY_INFO.copy() class InfoTest: def __getitem__(self, var): if self.provides(var): if '_DateTime' in var: return now() else: return INFO_TEST.get(var, '2') raise KeyError(var) def __contains__(self, var): return self.provides(var) @classmethod def provides(cls, var): if var in ('desktop', 'index', 'folderindex'): return True for Info in INFOS: if Info.provides(var): return True return False class InfoExtract: """Create an info like dictionary which uses a collection of several info instances and can evaluate Python expressions. >>> import Image >>> import pprint >>> list(InfoExtract.get_vars_by_info(['mode'])[0].values()) [['mode', 'orientation']] >>> list(InfoExtract.get_vars_by_info(['width'])[0].values()) [['width', 'orientation']] >>> vars = ['format', 'width', 'subfolder', 'orientation', 'crazy'] >>> filename = '../tests/input/exĩf ïptç.jpg' >>> image = Image.open(filename) >>> info = InfoExtract(filename, vars + ['Pexif_DateTimeOriginal']) >>> info.types() ['File', 'Exif', 'Pil', 'Pexif'] >>> info.vars_unknown ['crazy'] >>> info['format'] 'JPEG' >>> pprint.pprint(sorted(info.dump(expand=False).items())) [('Pexif_DateTimeOriginal', DateTime('2010:03:03 11:03:08')), ('format', 'JPEG'), ('height', 640), ('orientation', 8), ('size', (480, 640)), ('subfolder', u''), ('width', 480)] >>> info['size'] # uses orientation (480, 640) >>> image.size # ignores orientation (640, 480) >>> info['Pexif_DateTimeOriginal'] DateTime('2010:03:03 11:03:08') >>> pprint.pprint(sorted(info.dump(expand=True).items())) [('Pexif_DateTimeOriginal', DateTime('2010:03:03 11:03:08')), ('Pexif_DateTimeOriginal.day', 3), ('Pexif_DateTimeOriginal.hour', 11), ('Pexif_DateTimeOriginal.microsecond', 0), ('Pexif_DateTimeOriginal.minute', 3), ('Pexif_DateTimeOriginal.month', 3), ('Pexif_DateTimeOriginal.monthname', 'March'), ('Pexif_DateTimeOriginal.second', 8), ('Pexif_DateTimeOriginal.weekday', 2), ('Pexif_DateTimeOriginal.weekdayname', 'Wednesday'), ('Pexif_DateTimeOriginal.year', 2010), ('format', 'JPEG'), ('height', 640), ('orientation', 8), ('size', (480, 640)), ('size[0]', 480), ('size[1]', 640), ('subfolder', u''), ('width', 480)] >>> info.extract_all() >>> pprint.pprint(sorted(info.dump(expand=False).keys())) ['Exif_CanonCs_0x0000', 'Exif_CanonCs_0x0006', 'Exif_CanonCs_0x0008', 'Exif_CanonCs_0x0009', 'Exif_CanonCs_0x0015', 'Exif_CanonCs_0x001e', 'Exif_CanonCs_0x001f', 'Exif_CanonCs_0x0026', 'Exif_CanonCs_0x0027', 'Exif_CanonCs_0x0029', 'Exif_CanonCs_0x002b', 'Exif_CanonCs_0x002c', 'Exif_CanonCs_0x002d', 'Exif_CanonCs_AESetting', 'Exif_CanonCs_AFPoint', 'Exif_CanonCs_ColorTone', 'Exif_CanonCs_Contrast', 'Exif_CanonCs_DigitalZoom', 'Exif_CanonCs_DisplayAperture', 'Exif_CanonCs_DriveMode', 'Exif_CanonCs_EasyMode', 'Exif_CanonCs_ExposureProgram', 'Exif_CanonCs_FlashActivity', 'Exif_CanonCs_FlashDetails', 'Exif_CanonCs_FlashMode', 'Exif_CanonCs_FocusContinuous', 'Exif_CanonCs_FocusMode', 'Exif_CanonCs_FocusType', 'Exif_CanonCs_ISOSpeed', 'Exif_CanonCs_ImageSize', 'Exif_CanonCs_ImageStabilization', 'Exif_CanonCs_Lens', 'Exif_CanonCs_LensType', 'Exif_CanonCs_Macro', 'Exif_CanonCs_MaxAperture', 'Exif_CanonCs_MeteringMode', 'Exif_CanonCs_MinAperture', 'Exif_CanonCs_PhotoEffect', 'Exif_CanonCs_Quality', 'Exif_CanonCs_Saturation', 'Exif_CanonCs_Selftimer', 'Exif_CanonCs_Sharpness', 'Exif_CanonCs_ZoomSourceWidth', 'Exif_CanonCs_ZoomTargetWidth', 'Exif_CanonSi_0x0000', 'Exif_CanonSi_0x0001', 'Exif_CanonSi_0x0003', 'Exif_CanonSi_0x0006', 'Exif_CanonSi_0x0008', 'Exif_CanonSi_0x000a', 'Exif_CanonSi_0x000b', 'Exif_CanonSi_0x000c', 'Exif_CanonSi_0x000d', 'Exif_CanonSi_0x0010', 'Exif_CanonSi_0x0011', 'Exif_CanonSi_0x0012', 'Exif_CanonSi_0x0014', 'Exif_CanonSi_0x0017', 'Exif_CanonSi_0x0018', 'Exif_CanonSi_0x0019', 'Exif_CanonSi_0x001a', 'Exif_CanonSi_0x001b', 'Exif_CanonSi_0x001c', 'Exif_CanonSi_0x001d', 'Exif_CanonSi_0x001e', 'Exif_CanonSi_0x001f', 'Exif_CanonSi_0x0020', 'Exif_CanonSi_0x0021', 'Exif_CanonSi_AFPointUsed', 'Exif_CanonSi_ApertureValue', 'Exif_CanonSi_FlashBias', 'Exif_CanonSi_ISOSpeed', 'Exif_CanonSi_Sequence', 'Exif_CanonSi_ShutterSpeedValue', 'Exif_CanonSi_SubjectDistance', 'Exif_CanonSi_TargetAperture', 'Exif_CanonSi_TargetShutterSpeed', 'Exif_CanonSi_WhiteBalance', 'Exif_Canon_0x0000', 'Exif_Canon_0x0003', 'Exif_Canon_0x000d', 'Exif_Canon_0x0013', 'Exif_Canon_0x0018', 'Exif_Canon_0x0019', 'Exif_Canon_0x001c', 'Exif_Canon_0x001d', 'Exif_Canon_0x001e', 'Exif_Canon_0x001f', 'Exif_Canon_0x0022', 'Exif_Canon_0x0023', 'Exif_Canon_0x0024', 'Exif_Canon_0x0025', 'Exif_Canon_0x0026', 'Exif_Canon_0x0027', 'Exif_Canon_0x0028', 'Exif_Canon_FirmwareVersion', 'Exif_Canon_FocalLength', 'Exif_Canon_ImageNumber', 'Exif_Canon_ImageType', 'Exif_Canon_ModelID', 'Exif_Canon_OwnerName', 'Exif_Image_DateTime', 'Exif_Image_ExifTag', 'Exif_Image_Make', 'Exif_Image_Model', 'Exif_Image_Orientation', 'Exif_Image_ResolutionUnit', 'Exif_Image_XResolution', 'Exif_Image_YCbCrPositioning', 'Exif_Image_YResolution', 'Exif_Iop_InteroperabilityIndex', 'Exif_Iop_InteroperabilityVersion', 'Exif_Iop_RelatedImageLength', 'Exif_Iop_RelatedImageWidth', 'Exif_MakerNote_ByteOrder', 'Exif_MakerNote_Offset', 'Exif_Photo_ApertureValue', 'Exif_Photo_ColorSpace', 'Exif_Photo_ComponentsConfiguration', 'Exif_Photo_CompressedBitsPerPixel', 'Exif_Photo_CustomRendered', 'Exif_Photo_DateTimeDigitized', 'Exif_Photo_DateTimeOriginal', 'Exif_Photo_DigitalZoomRatio', 'Exif_Photo_ExifVersion', 'Exif_Photo_ExposureBiasValue', 'Exif_Photo_ExposureMode', 'Exif_Photo_ExposureTime', 'Exif_Photo_FNumber', 'Exif_Photo_FileSource', 'Exif_Photo_Flash', 'Exif_Photo_FlashpixVersion', 'Exif_Photo_FocalLength', 'Exif_Photo_FocalPlaneResolutionUnit', 'Exif_Photo_FocalPlaneXResolution', 'Exif_Photo_FocalPlaneYResolution', 'Exif_Photo_InteroperabilityTag', 'Exif_Photo_MakerNote', 'Exif_Photo_MaxApertureValue', 'Exif_Photo_MeteringMode', 'Exif_Photo_PixelXDimension', 'Exif_Photo_PixelYDimension', 'Exif_Photo_SceneCaptureType', 'Exif_Photo_SensingMethod', 'Exif_Photo_ShutterSpeedValue', 'Exif_Photo_UserComment', 'Exif_Photo_WhiteBalance', 'Exif_Thumbnail_Compression', 'Exif_Thumbnail_JPEGInterchangeFormat', 'Exif_Thumbnail_JPEGInterchangeFormatLength', 'Exif_Thumbnail_ResolutionUnit', 'Exif_Thumbnail_XResolution', 'Exif_Thumbnail_YResolution', 'Pexif_ApertureValue', 'Pexif_ColorSpace', 'Pexif_ComponentsConfiguration', 'Pexif_CompressedBitsPerPixel', 'Pexif_DateTime', 'Pexif_DateTimeDigitized', 'Pexif_DateTimeOriginal', 'Pexif_ExifImageHeight', 'Pexif_ExifImageWidth', 'Pexif_ExifInteroperabilityOffset', 'Pexif_ExifOffset', 'Pexif_ExifVersion', 'Pexif_ExposureTime', 'Pexif_FNumber', 'Pexif_FileSource', 'Pexif_Flash', 'Pexif_FlashPixVersion', 'Pexif_FocalLength', 'Pexif_FocalPlaneResolutionUnit', 'Pexif_FocalPlaneXResolution', 'Pexif_FocalPlaneYResolution', 'Pexif_Make', 'Pexif_MakerNote', 'Pexif_MaxApertureValue', 'Pexif_MeteringMode', 'Pexif_Model', 'Pexif_Orientation', 'Pexif_ResolutionUnit', 'Pexif_SensingMethod', 'Pexif_UserComment', 'Pexif_XResolution', 'Pexif_YCbCrPositioning', 'Pexif_YResolution', 'aspect', 'compression', 'day', 'desktop', 'dpi', 'filename', 'filesize', 'folder', 'foldername', 'format', 'formatdescription', 'gamma', 'height', 'hour', 'interlace', 'minute', 'mode', 'month', 'monthname', 'orientation', 'path', 'root', 'second', 'size', 'subfolder', 'transparency', 'type', 'weekday', 'weekdayname', 'width', 'year'] >>> info.set(filename='../tests/input/exĩf ïptç.jpg', ... vars=vars) #exclude Pexif.* vars >>> pprint.pprint(sorted(info.dump(expand=False).items())) [('format', 'JPEG'), ('height', 640), ('orientation', 8), ('size', (480, 640)), ('subfolder', u''), ('width', 480)] >>> info['root'] u'../tests' >>> d = info.dump(expand=False) >>> pprint.pprint(sorted(d.items())) [('foldername', u'input'), ('format', 'JPEG'), ('height', 640), ('orientation', 8), ('root', u'../tests'), ('size', (480, 640)), ('subfolder', u''), ('width', 480)] >>> type(d) == dict True >>> info.set(vars=vars + ['Iptc_Application2_Copyright']) >>> info.extract_all() >>> pprint.pprint(sorted(info.dump(expand=False).keys())) ['Exif_CanonCs_0x0000', 'Exif_CanonCs_0x0006', 'Exif_CanonCs_0x0008', 'Exif_CanonCs_0x0009', 'Exif_CanonCs_0x0015', 'Exif_CanonCs_0x001e', 'Exif_CanonCs_0x001f', 'Exif_CanonCs_0x0026', 'Exif_CanonCs_0x0027', 'Exif_CanonCs_0x0029', 'Exif_CanonCs_0x002b', 'Exif_CanonCs_0x002c', 'Exif_CanonCs_0x002d', 'Exif_CanonCs_AESetting', 'Exif_CanonCs_AFPoint', 'Exif_CanonCs_ColorTone', 'Exif_CanonCs_Contrast', 'Exif_CanonCs_DigitalZoom', 'Exif_CanonCs_DisplayAperture', 'Exif_CanonCs_DriveMode', 'Exif_CanonCs_EasyMode', 'Exif_CanonCs_ExposureProgram', 'Exif_CanonCs_FlashActivity', 'Exif_CanonCs_FlashDetails', 'Exif_CanonCs_FlashMode', 'Exif_CanonCs_FocusContinuous', 'Exif_CanonCs_FocusMode', 'Exif_CanonCs_FocusType', 'Exif_CanonCs_ISOSpeed', 'Exif_CanonCs_ImageSize', 'Exif_CanonCs_ImageStabilization', 'Exif_CanonCs_Lens', 'Exif_CanonCs_LensType', 'Exif_CanonCs_Macro', 'Exif_CanonCs_MaxAperture', 'Exif_CanonCs_MeteringMode', 'Exif_CanonCs_MinAperture', 'Exif_CanonCs_PhotoEffect', 'Exif_CanonCs_Quality', 'Exif_CanonCs_Saturation', 'Exif_CanonCs_Selftimer', 'Exif_CanonCs_Sharpness', 'Exif_CanonCs_ZoomSourceWidth', 'Exif_CanonCs_ZoomTargetWidth', 'Exif_CanonSi_0x0000', 'Exif_CanonSi_0x0001', 'Exif_CanonSi_0x0003', 'Exif_CanonSi_0x0006', 'Exif_CanonSi_0x0008', 'Exif_CanonSi_0x000a', 'Exif_CanonSi_0x000b', 'Exif_CanonSi_0x000c', 'Exif_CanonSi_0x000d', 'Exif_CanonSi_0x0010', 'Exif_CanonSi_0x0011', 'Exif_CanonSi_0x0012', 'Exif_CanonSi_0x0014', 'Exif_CanonSi_0x0017', 'Exif_CanonSi_0x0018', 'Exif_CanonSi_0x0019', 'Exif_CanonSi_0x001a', 'Exif_CanonSi_0x001b', 'Exif_CanonSi_0x001c', 'Exif_CanonSi_0x001d', 'Exif_CanonSi_0x001e', 'Exif_CanonSi_0x001f', 'Exif_CanonSi_0x0020', 'Exif_CanonSi_0x0021', 'Exif_CanonSi_AFPointUsed', 'Exif_CanonSi_ApertureValue', 'Exif_CanonSi_FlashBias', 'Exif_CanonSi_ISOSpeed', 'Exif_CanonSi_Sequence', 'Exif_CanonSi_ShutterSpeedValue', 'Exif_CanonSi_SubjectDistance', 'Exif_CanonSi_TargetAperture', 'Exif_CanonSi_TargetShutterSpeed', 'Exif_CanonSi_WhiteBalance', 'Exif_Canon_0x0000', 'Exif_Canon_0x0003', 'Exif_Canon_0x000d', 'Exif_Canon_0x0013', 'Exif_Canon_0x0018', 'Exif_Canon_0x0019', 'Exif_Canon_0x001c', 'Exif_Canon_0x001d', 'Exif_Canon_0x001e', 'Exif_Canon_0x001f', 'Exif_Canon_0x0022', 'Exif_Canon_0x0023', 'Exif_Canon_0x0024', 'Exif_Canon_0x0025', 'Exif_Canon_0x0026', 'Exif_Canon_0x0027', 'Exif_Canon_0x0028', 'Exif_Canon_FirmwareVersion', 'Exif_Canon_FocalLength', 'Exif_Canon_ImageNumber', 'Exif_Canon_ImageType', 'Exif_Canon_ModelID', 'Exif_Canon_OwnerName', 'Exif_Image_DateTime', 'Exif_Image_ExifTag', 'Exif_Image_Make', 'Exif_Image_Model', 'Exif_Image_Orientation', 'Exif_Image_ResolutionUnit', 'Exif_Image_XResolution', 'Exif_Image_YCbCrPositioning', 'Exif_Image_YResolution', 'Exif_Iop_InteroperabilityIndex', 'Exif_Iop_InteroperabilityVersion', 'Exif_Iop_RelatedImageLength', 'Exif_Iop_RelatedImageWidth', 'Exif_MakerNote_ByteOrder', 'Exif_MakerNote_Offset', 'Exif_Photo_ApertureValue', 'Exif_Photo_ColorSpace', 'Exif_Photo_ComponentsConfiguration', 'Exif_Photo_CompressedBitsPerPixel', 'Exif_Photo_CustomRendered', 'Exif_Photo_DateTimeDigitized', 'Exif_Photo_DateTimeOriginal', 'Exif_Photo_DigitalZoomRatio', 'Exif_Photo_ExifVersion', 'Exif_Photo_ExposureBiasValue', 'Exif_Photo_ExposureMode', 'Exif_Photo_ExposureTime', 'Exif_Photo_FNumber', 'Exif_Photo_FileSource', 'Exif_Photo_Flash', 'Exif_Photo_FlashpixVersion', 'Exif_Photo_FocalLength', 'Exif_Photo_FocalPlaneResolutionUnit', 'Exif_Photo_FocalPlaneXResolution', 'Exif_Photo_FocalPlaneYResolution', 'Exif_Photo_InteroperabilityTag', 'Exif_Photo_MakerNote', 'Exif_Photo_MaxApertureValue', 'Exif_Photo_MeteringMode', 'Exif_Photo_PixelXDimension', 'Exif_Photo_PixelYDimension', 'Exif_Photo_SceneCaptureType', 'Exif_Photo_SensingMethod', 'Exif_Photo_ShutterSpeedValue', 'Exif_Photo_UserComment', 'Exif_Photo_WhiteBalance', 'Exif_Thumbnail_Compression', 'Exif_Thumbnail_JPEGInterchangeFormat', 'Exif_Thumbnail_JPEGInterchangeFormatLength', 'Exif_Thumbnail_ResolutionUnit', 'Exif_Thumbnail_XResolution', 'Exif_Thumbnail_YResolution', 'Iptc_Application2_Byline', 'Iptc_Application2_Caption', 'Iptc_Application2_Copyright', 'Iptc_Application2_ObjectName', 'Iptc_Application2_RecordVersion', 'aspect', 'compression', 'day', 'desktop', 'dpi', 'filename', 'filesize', 'folder', 'foldername', 'format', 'formatdescription', 'gamma', 'height', 'hour', 'interlace', 'minute', 'mode', 'month', 'monthname', 'orientation', 'path', 'root', 'second', 'size', 'subfolder', 'transparency', 'type', 'weekday', 'weekdayname', 'width', 'year'] """ def __init__(self, filename=None, vars=None, sources=None): """Create an InfoExtract instance. :param filename: filename of the source file :type filename: string :param vars: variables that have to be extracted (e.g. orientation) :type vars: list """ if vars is None: vars = [] self.list = [] self._vars = None # list of possible vars which can occur self._vars_by_info = None self.set_vars(vars, filename) if filename: self.open(filename, sources) def __getitem__(self, var): # force var as string, otherwise py2exiv fails (eg with unicode) # eg u'Exif_Photo_DateTimeOriginal' var = str(var) for info in self.list: if info.provides(var): return info[var] raise KeyError(var) def set(self, filename=None, vars=None, sources=None): """Set new parameters for the info. :param filename: filename of the source file :type filename: string :param vars: variables that have to be extracted (e.g. orientation) :type vars: list """ if not(vars is None): self.set_vars(vars) self.open(filename) elif not(filename is None): self.open(filename, sources) def open(self, filename, sources=None): """Feeds a new file as source for all info types. :param filename: filename of the source file :type filename: string .. note:: This will clear the cache. """ if filename: self.filename = filename.replace('file://', '') if not self._vars: # ->all variables, which are image dependent self._vars_by_info = get_vars_by_info(filename) self.clear_cache() # ensure sources is a dict if not sources: sources = {} # load files self.list = [ Info(sources.get(Info, self.filename), self._vars_by_info[Info]) for Info in self._vars_by_info.keys()] # use keys to respect order self.set_orientation() return self def clear_cache(self): """Clears the look up cache.""" self._cache = {} @classmethod def get_vars_by_info(cls, vars, old_vars=None, filename='test.png'): """Organizes vars in a dictionary by Info class (e.g. :class:`InfoPil`, :class:`InfoExif`, ...). As this is a class method, ``old_vars`` has to be passed explicitly instead of being obtained from the instance. :param vars: variables :type vars: list of strings :param old_vars: previous variables :type old_vars: list of strings """ # collect all requested infos if vars: vars_by_info, vars_unknown = cls.scan_infos(vars) else: vars_by_info = get_vars_by_info(filename) vars_unknown = [] # check orientation set_vars_by_info = set(vars_by_info) if not set_vars_by_info.intersection(INFOS_WITH_ORIENTATION): needs_orientation = [Info for Info in set_vars_by_info.difference(INFOS_WITH_ORIENTATION) if Info.needs_orientation(vars_by_info[Info])] if needs_orientation: if not(vars_by_info[InfoPil] is None): # orientation is included in None already vars_by_info[InfoPil] += ['orientation'] return vars_by_info, vars_unknown def set_vars(self, vars, filename='test.png'): """Limit the range of the possible variables which might be looked up. :param vars: variables that have to be extracted (e.g. orientation) :type vars: list """ # collect all requested infos if vars != self._vars: self._vars_by_info, self.vars_unknown = \ self.get_vars_by_info(vars, self._vars, filename) # update vars (needs to be after previous collect) if not vars: vars = [] self._vars = list(set(vars).difference(self.vars_unknown)) def set_orientation(self, orientation=None): if orientation is None: try: orientation = self['orientation'] except: # no orientation needed return for info in self.list: if info.needs_orientation(info.vars): info.set_orientation(orientation) @classmethod def scan_infos(cls, vars): """Scan which info types the variables ``vars`` require. :param vars: variables which have to be provided :type vars: list :returns: variables by required info types :rtype: dict of lists """ Infos = odict.odict() todo = vars[:] # we don't want to change the orignal vars todo_temp = vars[:] # loop first over Infos so that the info order is kept for Info in INFOS: for var in todo: if Info.provides(var): if Info in Infos: Infos[Info].append(var) else: Infos[Info] = [var] # var is provided, so don't look for it anymore todo_temp.remove(var) # make a copy as we can't modify an looping iterable if todo_temp: todo = todo_temp[:] else: break # return vars by info, unknown vars return Infos, todo_temp def provides(self, var): """Whether this info provides this variable. :param var: name of the variable :type var: string :returns: if ``var`` is provided :rtype: bool """ for info in self.list: if info.provides(var): return True return False def types(self): """Which info types are used by this instance. :returns: info types :rtype: list """ return [info.type for info in self.list] def clear(self): """Clear alfl info types.""" self.list = [] def dump(self, filename=None, expand=False, free=False): """Dump as a dictionary. :param vars: list of variables as arguments :type vars: list """ if filename: self.open(filename) if self._vars: #load vars for info in self.list: info.enable_cache() for var in self._vars: self[var] for info in self.list: info.disable_cache() else: self.extract_all() d = {} for info in self.list: d.update(info.dict) if expand: self.expand(d) if free: self.list = [] return d @classmethod def expand(cls, d): for key, value in d.items(): cls.expand_var(d, key, value) @classmethod def expand_var(cls, d, key, value): if isinstance(value, DateTime): for attr in DateTime.attrs: d['%s.%s' % (key, attr)] = getattr(value, attr) elif type(value) in (tuple, list) and len(value) < 10: for index, value_index in enumerate(value): d['%s[%d]' % (key, index)] = value[index] elif hasattr(value, 'denominator') and value.denominator != 1: d['%s.denominator' % key] = value.denominator d['%s.numerator' % key] = value.numerator def set_source(self, d): """Set source of an info from the collection. Raises an ``UnknownTypeError`` in case an unknown type is given. :param d: dictionary {type: source} or type :type d: dict/str """ for info in self.list: if info.type in d: info.set_source(d[info.type]) def extract_all(self): """Extract all variables provided by the info types.""" for info in self.list: info.extract_all() class DumpInfo(dict): """Dictionary like object which tracks changes. >>> d = DumpInfo({'hello': 'world'}) >>> d['foo'] = 'bar' >>> d.changed ['foo'] """ def __init__(self, d=None): """:param d: initial dictionary or None :type d: dict/None""" if d: self.update(d) self.changed = [] def __setitem__(self, var, value): """Sets the item of the dictionary and add var to the ``changed`` list :param var: variable :type var: string :param value: any kind of value """ super(DumpInfo, self).__setitem__(var, value) self.changed.append(var) phatch-0.2.7/phatch/lib/metadataTest.py0000755000000000000000000061700211346363116017751 0ustar rootroot00000000000000#!/usr/bin/python # -*- coding: UTF-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2009 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for python editing. # Does not follow PEP 8 because of dumped data try: _ except NameError: import gettext gettext.install('test') import datetime import types from reverse_translation import _t MONTHS = (_t('January'), _t('February'), _t('March'), _t('April'), _t('May'), _t('June'), _t('July'), _t('August'), _t('September'), _t('October'), _t('November'), _t('December')) WEEKDAYS = (_t('Monday'), _t('Tuesday'), _t('Wednesday'), _t('Thursday'), _t('Friday'), _t('Saturday'), _t('Sunday')) def is_string(x): """Checks whether ``x`` is a string not. :param x: variable :returns: True if string, False otherwise :rtype: bool """ return type(x) in types.StringTypes class DateTime: format = '%Y:%m:%d %H:%M:%S' attrs = ('year', 'month', 'monthname', 'day', 'weekday', 'weekdayname', 'hour', 'minute', 'second', 'microsecond') def __init__(self, source): """Extends :class:`datetime.datetime` so it has also as attributes ``weekday``, ``weekdayname`` and ``monthname``. If the source is given as a string it should be of the format ``%Y:%m:%d %H:%M:%S``. :param source: source from which to construct the DateTime :type source: :class:`datetime.datetime`/string """ if is_string(source): self.from_exif_string(source) else: self.datetime = source def __getattr__(self, attr): """Gets the attribute. If the attr is not ``weekday``, ``weekdayname`` or ``monthname``, delegate to attributes of the underlying :class:`datetime.datetime` instance. :param attr: attribute :type attr: string """ if attr == 'weekday': return self.datetime.weekday() elif attr == 'weekdayname': return WEEKDAYS[self.datetime.weekday()] elif attr == 'monthname': return MONTHS[self.datetime.month-1] else: return getattr(self.datetime, attr) def from_exif_string(self, exif_string): """Creates the DateTime from an exif string (as returned by PIL exif). :param exif_string: datetime string with format ``%Y:%m:%d %H:%M:%S`` :type exif_string: string """ d = datetime.datetime(1, 1, 1) self.datetime = d.strptime(exif_string, self.format) def __str__(self): """Represents DateTime as ``%Y:%m:%d %H:%M:%S`` string.""" return self.datetime.strftime(self.format) def __repr__(self): """Represents DateTime.""" return "DateTime('%s')"%self def now(): return DateTime(datetime.datetime.now()) class Rational: denominator = 1 numerator = 1 def __repr__(self): return 'Rational()' def __str__(self): return 'Rational()' def main(path): import glob import metadata import os import pprint result = {} filenames = glob.glob(os.path.join(path, '*')) for filename in filenames: print('Scanning file "%s" ...\n'%filename) info = metadata.InfoExtract(filename) info.extract_all() result.update(info.dump(expand=False)) result.update(INFO_TEST) pprint.pprint(result) INFO_TEST = \ {'Exif_CanonCs_0x0000': 92, 'Exif_CanonCs_0x0006': 0, 'Exif_CanonCs_0x0008': 65535, 'Exif_CanonCs_0x0009': 1, 'Exif_CanonCs_0x0015': 32767, 'Exif_CanonCs_0x001e': 0, 'Exif_CanonCs_0x001f': 0, 'Exif_CanonCs_0x0026': 0, 'Exif_CanonCs_0x0027': 0, 'Exif_CanonCs_0x0029': 0, 'Exif_CanonCs_0x002b': 32767, 'Exif_CanonCs_0x002c': 0, 'Exif_CanonCs_0x002d': 0, 'Exif_CanonCs_0x002e': 65535, 'Exif_CanonCs_0x002f': 100, 'Exif_CanonCs_AESetting': 0, 'Exif_CanonCs_AFPoint': 16390, 'Exif_CanonCs_ColorTone': 32767, 'Exif_CanonCs_Contrast': 0, 'Exif_CanonCs_DigitalZoom': 0, 'Exif_CanonCs_DisplayAperture': 0, 'Exif_CanonCs_DriveMode': 0, 'Exif_CanonCs_EasyMode': 0, 'Exif_CanonCs_ExposureProgram': 0, 'Exif_CanonCs_FlashActivity': 0, 'Exif_CanonCs_FlashDetails': 0, 'Exif_CanonCs_FlashMode': 5, 'Exif_CanonCs_FocusContinuous': 0, 'Exif_CanonCs_FocusMode': 4, 'Exif_CanonCs_FocusType': 1, 'Exif_CanonCs_ISOSpeed': 15, 'Exif_CanonCs_ImageSize': 0, 'Exif_CanonCs_ImageStabilization': 1, 'Exif_CanonCs_Lens': (44400, 7400, 1000), 'Exif_CanonCs_LensType': 65535, 'Exif_CanonCs_Macro': 2, 'Exif_CanonCs_MaxAperture': 95, 'Exif_CanonCs_MeteringMode': 3, 'Exif_CanonCs_MinAperture': 221, 'Exif_CanonCs_PhotoEffect': 65535, 'Exif_CanonCs_Quality': 5, 'Exif_CanonCs_Saturation': 0, 'Exif_CanonCs_Selftimer': 0, 'Exif_CanonCs_Sharpness': 0, 'Exif_CanonCs_ZoomSourceWidth': 3648, 'Exif_CanonCs_ZoomTargetWidth': 3648, 'Exif_CanonSi_0x0000': 68, 'Exif_CanonSi_0x0001': 65523, 'Exif_CanonSi_0x0003': 224, 'Exif_CanonSi_0x0006': 0, 'Exif_CanonSi_0x0008': 0, 'Exif_CanonSi_0x000a': 0, 'Exif_CanonSi_0x000b': 0, 'Exif_CanonSi_0x000c': 0, 'Exif_CanonSi_0x000d': 0, 'Exif_CanonSi_0x0010': 0, 'Exif_CanonSi_0x0011': 0, 'Exif_CanonSi_0x0012': 1, 'Exif_CanonSi_0x0014': 0, 'Exif_CanonSi_0x0017': 0, 'Exif_CanonSi_0x0018': 0, 'Exif_CanonSi_0x0019': 1, 'Exif_CanonSi_0x001a': 250, 'Exif_CanonSi_0x001b': 3, 'Exif_CanonSi_0x001c': 0, 'Exif_CanonSi_0x001d': 0, 'Exif_CanonSi_0x001e': 0, 'Exif_CanonSi_0x001f': 0, 'Exif_CanonSi_0x0020': 0, 'Exif_CanonSi_0x0021': 0, 'Exif_CanonSi_AFPointUsed': 0, 'Exif_CanonSi_ApertureValue': 128, 'Exif_CanonSi_FlashBias': 0, 'Exif_CanonSi_ISOSpeed': 160, 'Exif_CanonSi_Sequence': 0, 'Exif_CanonSi_ShutterSpeedValue': 219, 'Exif_CanonSi_SubjectDistance': 6553, 'Exif_CanonSi_TargetAperture': 128, 'Exif_CanonSi_TargetShutterSpeed': 223, 'Exif_CanonSi_WhiteBalance': 0, 'Exif_Canon_0x0000': (0, 0, 0, 0, 0, 16388), 'Exif_Canon_0x0003': (0, 0, 0, 0), 'Exif_Canon_0x000d': (370L, 411L, 0L, 0L, 0L, 384L, 657L, 4294967255L, 0L, 0L, 0L, 0L, 576L, 675L, 4294967204L, 0L, 0L, 4294967283L, 3L, 0L, 12L, 3L, 0L, 270L, 21L, 10L, 674L, 671L, 673L, 384L, 854L, 4294967204L, 0L, 0L, 671L, 673L, 0L, 0L, 5L, 3072L, 3072L, 3072L, 3072L, 3072L, 4294964224L, 4294964224L, 4294964224L, 4294964224L, 4294964224L, 4294967263L, 4294964224L, 4294967283L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 102L, 1024L, 1024L, 4294966843L, 198L, 0L, 0L, 0L, 0L, 0L, 0L, 407L, 0L, 4294966844L, 196L, 0L, 0L, 342144L, 342140L, 0L, 0L, 1054L, 1034L, 1043L, 1303L, 0L, 4294966844L, 195L, 4294967287L, 898L, 2066L, 1346L, 898L, 1L, 976L, 288L, 674L, 659L, 4294967204L, 3L, 0L, 511L, 0L, 0L, 0L, 0L, 401L, 5L, 0L, 0L, 0L, 0L, 1L, 0L, 456L, 0L, 0L, 0L, 511L, 0L, 4294946160L, 4L, 9L, 372L, 362L, 360L, 370L, 363L, 360L, 369L, 363L, 360L, 65535L, 1216L, 228L, 279L, 52L, 219L, 41L, 0L, 0L, 3L, 3L, 26L, 9L, 643159549L), 'Exif_Canon_0x0013': (0, 0, 0, 0), 'Exif_Canon_0x0018': '0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ', 'Exif_Canon_0x0019': 1, 'Exif_Canon_0x001c': 0, 'Exif_Canon_0x001d': (32, 1, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0), 'Exif_Canon_0x001e': 16779008L, 'Exif_Canon_0x001f': (138, 1, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), 'Exif_Canon_0x0022': (416, 0, 0, 16, 8, 1, 1, 640, 480, 0, 0, 0, 0, 0, 8, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), 'Exif_Canon_0x0023': (8L, 0L), 'Exif_Canon_0x0024': (156, 35, 0, 3648, 2736, 1, 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), 'Exif_Canon_0x0025': '14 35 0 0 0 0 0 0 0 0 0 0 0 0 ', 'Exif_Canon_0x0026': (96, 4, 9, 9, 3648, 2736, 1216, 228, 219, 219, 219, 219, 219, 219, 219, 219, 219, 41, 41, 41, 41, 41, 41, 41, 41, 41, 65317, 0, 219, 65317, 0, 219, 65317, 0, 219, 65495, 65495, 65495, 0, 0, 0, 41, 41, 41, 144, 0, 0, 4), 'Exif_Canon_0x0027': (4, 0), 'Exif_Canon_0x0028': '106 88 154 161 142 223 21 20 202 181 48 165 254 199 68 9 ', 'Exif_Canon_0x002d': 0L, 'Exif_Canon_0x00d0': 0L, 'Exif_Canon_FirmwareVersion': 'Firmware Version 1.00', 'Exif_Canon_FocalLength': (2, 7400, 294, 221), 'Exif_Canon_ImageNumber': 1060010L, 'Exif_Canon_ImageType': 'IMG:PowerShot G7 JPEG', 'Exif_Canon_ModelID': 26738688L, 'Exif_Canon_OwnerName': '', 'Exif_GPSInfo_GPSAltitude': Rational(), 'Exif_GPSInfo_GPSAltitudeRef': '0 ', 'Exif_GPSInfo_GPSDateStamp': DateTime('2009:06:21 23:06:40'), 'Exif_GPSInfo_GPSLatitude': (Rational(), Rational(), Rational()), 'Exif_GPSInfo_GPSLatitudeRef': 'N', 'Exif_GPSInfo_GPSLongitude': (Rational(), Rational(), Rational()), 'Exif_GPSInfo_GPSLongitudeRef': 'E', 'Exif_GPSInfo_GPSMapDatum': 'WGS-84', 'Exif_GPSInfo_GPSProcessingMethod': 'ASCII\x00\x00\x00HYBRID-FIX', 'Exif_GPSInfo_GPSTimeStamp': (Rational(), Rational(), Rational()), 'Exif_GPSInfo_GPSVersionID': '2 2 0 0 ', 'Exif_Image_0xa401': 0, 'Exif_Image_0xa402': 0, 'Exif_Image_0xa403': 0, 'Exif_Image_0xa404': Rational(), 'Exif_Image_0xa405': 38, 'Exif_Image_0xa406': 0, 'Exif_Image_0xa407': 0, 'Exif_Image_0xa408': 0, 'Exif_Image_0xa409': 0, 'Exif_Image_0xa40a': 0, 'Exif_Image_0xa40c': 0, 'Exif_Image_0xea1c': '\x1c\xea\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'Exif_Image_Artist': 'e2interactive', 'Exif_Image_Copyright': 'Copyright 2006, e2interactive', 'Exif_Image_DateTime': DateTime('2007:04:15 04:00:38'), 'Exif_Image_ExifTag': 178L, 'Exif_Image_GPSTag': 6112L, 'Exif_Image_ImageDescription': ' ', 'Exif_Image_Make': 'Panasonic', 'Exif_Image_Model': 'NV-GS400 ', 'Exif_Image_Orientation': 1, 'Exif_Image_PrintImageMatching': 'PrintIM\x000300\x00\x00\x02\x00\x02\x00\x01\x00\x00\x00\x01\x01\x01\x00\x00\x00', 'Exif_Image_ResolutionUnit': 2, 'Exif_Image_Software': 'Ver.1.0 ', 'Exif_Image_XResolution': Rational(), 'Exif_Image_YCbCrPositioning': 2, 'Exif_Image_YResolution': Rational(), 'Exif_Iop_InteroperabilityIndex': 'R98', 'Exif_Iop_InteroperabilityVersion': '0100', 'Exif_Iop_RelatedImageLength': 2736, 'Exif_Iop_RelatedImageWidth': 3648, 'Exif_MakerNote_ByteOrder': 'II', 'Exif_MakerNote_Offset': 712L, 'Exif_Nikon3_0x000a': Rational(), 'Exif_Nikon3_0x0017': '\x00\x01\x06\x00', 'Exif_Nikon3_0x009b': '0 0 ', 'Exif_Nikon3_0x009d': 0, 'Exif_Nikon3_0x00a3': '0 ', 'Exif_Nikon3_0x00ae': '\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'Exif_Nikon3_0x00b6': '\x07\xd9\x06\x1c\x10\x1a3\x00', 'Exif_Nikon3_0x00bb': '0100\xff\x00', 'Exif_Nikon3_AFFocusPos': '\x01\x00\x00\x01', 'Exif_Nikon3_AFResponse': 'STANDARD ', 'Exif_Nikon3_ActiveDLighting': 0, 'Exif_Nikon3_AutoBracketRelease': 2, 'Exif_Nikon3_AuxiliaryLens': 'OFF ', 'Exif_Nikon3_ColorBalance1': (Rational(), Rational(), Rational(), Rational()), 'Exif_Nikon3_ColorBalance2': '0210\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa0W%\n\x06\x19Br\xddK\xd0n#\xac\xd0\xd7\xd8\xdb=\xd2\xfe\x80\x1b\x8c\x95vi\x9c\x99\x97"\xf6\x10\x83QR\xf4v\xf7CH\x88\x01X\x13P\x7f\x15H\xd9m\xbf\xecf\xc9\xd8\x04x\x99\t\x88\xcd\xd5\x07\xc1\xb6\xc1k\xa4\xf8\xe7\xe5\xbeo\xceq\x04\x8b)\xee\xb9\x80\x9d0\xdf!z\xecu\x13\xc8\x96{u\x87C\xf0\x99\xb5\xea\xd7\x89S\xc9,\xc8au\xf3]\xdex)\xef\xcc\xc2\xce\xf1+|\xe4c\xf9\xa6jE7Ob\xdb\xe7L\xc6Y\x01\xeb\x9e\x8c\x93\xa7\xe2-\x8f\x08\x98?\xfd\xd2\xbe\xc1\xdb\x0cT\xb3)\xb6Z\x15\xe7\xdc\xd2\xce\x17\x1d\xb6)\xb1U\x0c\xd8\xc3\x93\xd2\xfd?\x98\x08\x8f-\xe2\xaf\x91\x8a\x9c\xc5\x03X\xc6K\xe5\x97\x8a@\xd2E\x98\xa7\xf9c\x15|\xd3\xf1"\xc3\xcd\xee(y\xdf\\\xf2\x9f\x97:,5S\x88\x97:\x07V\xf0\xb3\x84v\x85\x96\xdf\x10)\xedM\x08!\xe7\x9b\x97\xb1\xac/\x85\x0b\x92>\xef\xb3\xa0\xa2\xb9\xe0#\xd6\xf7\x83 \xd1\xa5\x89\x86f\xc2\xe6]\xcbP\xee\xa3\xc0OX]fB\xed\x81\xfed\xb3\xeb\x0c\x16\t\xe5\xaaX\xef', 'Exif_Nikon3_ColorMode': 'COLOR', 'Exif_Nikon3_ColorSpace': 1, 'Exif_Nikon3_CropHiSpeed': (0, 3904, 2616, 3904, 2616, 0, 0), 'Exif_Nikon3_DataDump': '\x05\x02\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\x19a\x121\x00\x00@\xb7\x00\x00\x1a\x8d\x00\x00QR\x00\x01EH\x00\x01EH\x00\x00Q\x83\x00\x00@\xe8\x00d\x00\x9a\x00@\x00\x1c\x00\x00\x1e\x01\x00\x00\x0c\xa3\r*!u\x00\x00\x00\x00\r\r\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\n\x00\x00<\x00\x10K\x00\xd2\r*\x00\x00\n\x8f\x00<\x02\xfa\x00}\'\x10$\x00\x1f\x05""""\x00\x19\x00\n\x00\x0b\x00\x0e\n\xaa\x04\x00\x00p\x00\x00\x11\x11\x11\x11\x01\x84\x03\xa1\x03\xeb\x01.\x02\x00\x01\xd2\x01\xc8\x01\xfe\x01\x03\x90]\x00\x00\x03\xff\x00\x14\x00\r\x00\x14\x00\r\x00\n\x00\x04\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x1c\x00\x01\x01\x00\x00\x9a\x01B\x01\xea\x02\x92\x03:\x0f\x0f\x02\x1b\x01\xfe\x01\xb1\x00\x00\t\xd5\n\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x88\x91\x00\x04\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00p\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00P\x04>\x03\xe8\x04>\x00\x12\x01\xea\x01\x0f\x01\xda\x01\xe7\x01\xf2\x01\xef\x01\xe9\x04\x00\x11\x00\x00\x81\x01g\x01\xbf\x01\xea\x01\x9e\x01:\x01\x0f\x00\x00\x00\x00\x03\xdc\x05*\x05T\x03n\x01\xb6\x01!\x00\x00\x00\x00\x01\xda\x01\xe7\x01\xf2\x01\xef\x01\xe9\x00\x00\x00\x00\x00\x00\x05\xc8\x05\xe4\x05\xe7\x05\xb6\x05]\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\x01\xa2\x00\xd4\x01\x80\x00\xe8\x01mwwww\x15.\x06\x1b\x15\x1f\x10\x1c\x0c\x14\x08\x00L\x00h\n\x00\x0e+\x01\x00\x00\x08\x00U\x02\x89\x90\x1d+\x00d\x1e!d<$$&#\x01\xf9\x01e\x01o\x02\xa4d\x00\x00A\x00\x0c\x00\x0f\x01\xd2\x01\xc8\x1e!\x10\x1d\x061\n#\x00T\x01\x08\x195\x00\x00', 'Exif_Nikon3_DigitalZoom': Rational(), 'Exif_Nikon3_ExposureDiff': '\xfb\x01\x0c\x00', 'Exif_Nikon3_FileInfo': '0100\x00\x00\x00d\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'Exif_Nikon3_FlashComp': '\x00\x01\x06\x00', 'Exif_Nikon3_FlashDevice': ' ', 'Exif_Nikon3_FlashInfo': '0102\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'Exif_Nikon3_FlashMode': '0 ', 'Exif_Nikon3_FlashSetting': 'NORMAL ', 'Exif_Nikon3_Focus': 'AF-A ', 'Exif_Nikon3_FocusDistance': Rational(), 'Exif_Nikon3_HighISONoiseReduction': 0, 'Exif_Nikon3_HueAdjustment': '0', 'Exif_Nikon3_ISOInfo': 'T\x01\x0c\x00\x00\x00T\x01\x0c\x00\x00\x00\x00\x00', 'Exif_Nikon3_ISOSelection': 'AUTO ', 'Exif_Nikon3_ISOSettings': (0, 400), 'Exif_Nikon3_ISOSpeed': (0, 400), 'Exif_Nikon3_ImageAdjustment': 'AUTO ', 'Exif_Nikon3_ImageBoundary': (0, 0, 3872, 2592), 'Exif_Nikon3_ImageDataSize': 5008376L, 'Exif_Nikon3_ImageOptimization': 'VIVID ', 'Exif_Nikon3_ImageProcessing': ' ', 'Exif_Nikon3_ImageStabilization': 'VR-OFF ', 'Exif_Nikon3_Lens': (Rational(), Rational(), Rational(), Rational()), 'Exif_Nikon3_LensData': '0202\xb5{&\x08\x00|n\x1e\x9cf\x82B\x1eq\xe3\xc5\x81\xddd\x97\xfe\x81\x1a\xce\x90shv', 'Exif_Nikon3_LensFStops': '@\x01\x0c\x00', 'Exif_Nikon3_LensType': '14 ', 'Exif_Nikon3_LightSource': 'NATURAL ', 'Exif_Nikon3_MultiExposure': '0100\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'Exif_Nikon3_NoiseReduction': 'OFF ', 'Exif_Nikon3_Preview': 3006L, 'Exif_Nikon3_ProgramShift': '\x00\x01\x06\x00', 'Exif_Nikon3_Quality': 'FINE ', 'Exif_Nikon3_RetouchHistory': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0), 'Exif_Nikon3_Saturation': 'ENHANCED ', 'Exif_Nikon3_SceneAssist': ' ', 'Exif_Nikon3_SceneMode': ' ', 'Exif_Nikon3_SensorPixelSize': (Rational(), Rational()), 'Exif_Nikon3_SerialNumber': '7460067', 'Exif_Nikon3_Sharpening': 'MED.H ', 'Exif_Nikon3_ShootingMode': 1, 'Exif_Nikon3_ShotInfo': '0211\x8a3E\xf6\x06\x19\xadj2\xa5?\x80"\x8c\x96\xc6\xd8\xff=\x92\xa7\x8f\x7f\xed\x94siv\x9a\xd5\'\x90\x10\xa7U\x1a\xf6\xe9\xf3\x14L\x9b\x01~\x12\xbd\x7fXHOm\xe9\xeeQ\xcbu\x04\xc3\xc4\xb0\x8a\\\xd2;\x805\x85\xea\xe6;\xa3(\xbc\xc51\xb6\x02\x88/\xe8\xb8\x9f\x9d\xb2\xde!{\xedt\x15\xc9\x82zu\xda\x86\xf5B\xae\r\xe4\xd3^%!\xd5\x8fp\xf2]\xdf\x85\xb5\xef#,\xce\xfc~\xbc\xe4q\xfa\xd3jITh`\x87\xe6r\xc6~\x83\xe8\x9c\x96_[\xe2\x0cPl\x98b\xf7\x13\xbe\xff\xb6\x9aT\xf0+ZZ)Z.\xd0\xe8\xabh\xb6500\x0c\x98\xee\xec\xd2\xc5\x10O\x08\x81\x11\xa0\xae\x94E\x16\xc4\x08X\xd1J\xc1\x9f\xde@\x13%=\xa6\xff\x89C|&[\x88\xc2\xc4W$x\xd11\x80\x9ex>\xdf\x07b\xb0\x9e\x02\x86s\xc2\x85\xb2CO\xa1\xf0,@\xdeO\x14\xee\x8d\xd9\xdb\xfd\xac\x19\xb91\xbe\x1e\xa9\x86\xe4\x9d\xfd\xd0\x16\xbd\xc1\xb7\x15\xe0\x90\xb0\xbc\xdd\xfa7j\xf8t\xca\x89Q`Vp_\x991X-\xb4|$\xd5\xcf\xd16q\xe5A\xdfi\x9a\xb4\\CT\xb3\x89*\xb4\xcd\xab\x15\xcb\xf4\xee\xea\xc5\nA\xfba\x93\xb4l3#\xe4\xcb\xb9N\x00w\x07Sf9 \nA[\x8c\xc5\xe9\x93\x0e\xcbO]hA\xbd\xaf\xe2\'s\t\xec\x9d\x81{\x07R\x9b\xbe3\x89=\xacX/X\nVE\xaf\xd8w\xcb]\x16\xa0\xc1\xf4\xc4\xd4\'8\xe2!\xfd\xe6p\x1eB\xa8e\xce\xf8_\xddr2\x14GR\x9d\xd3\x08V\xba58`0\x07\xf5\xfa\x16I\x93\xf4l\xfb\xa1^2\x1d\x1f8h\xaf\r\x82\x0e\xb1k<$#9f\xaa\x05w\x00\xa0W%\n\x06\x19C\x84\xdcK\xd1n"\xed\xcf\xc8\xd8\xff=\x92\xfe\x81\x1b\xfc\xb6;\x8bT\xac\xc3\'\xc4\xebYU\xc8\xe6\xe9\xf3\x14(\x9b\x01*0\x9f]\x8aX\xcfm\xb34k\xf2]\x13\xc3\x99\x86\x8a\xa51!\x80\xf7\xa7*\xe6\x9b\xa7\xa4\xbc\xeb1\x81\xd7\x85/\xe8\xb8\x9f\x9d\xb2\xbb\x0cx\xect\x13\xc9\xd4Zu@\xbbr\x87\x8f:0v\xac\xcb\x16\x10a\x9e\xce\xbb\xdfx(\x102=\xce\xf1+|\xcfI\xf9\xa6*\x7f7\x88\x9f\xe8\x1a5\xc6Y\x0b;ct\x91\xae\xe2-\x8f\x08\xef\x0e\x02\xadA\xbe$soe\x10fZ\x15\xe7\xd0\xc7\xe7\x1c\xdav(\xb3\xab\xf3\xe1\xec\xbf\xd2\xf9.\x8c\t\xbf\x0f\xaaL\xb3\xbd\x8a\xc4W\xa28J7\x87`@7!j\xa5\xf87\xa1\\+\xf1\xce\xc2\xb1uhU\x8cq\xce\x02a;-6W\x89\xd79\xb5u\xf0\xb0\x87az\x96\xc9\x13\x8c\xfe{ \xde\xb6\x9d\x9e\xb8\xe8/\x8d\x02\x8e1\xeb\xbc\xb4\xa3\xb9\xe2.\x85\xf7\x80 \xd7\xa5\x82\x863i\xa3\xfdi\xf4H\x07\xc4\xe6\xee\xfd\xdb\x15\xba\xd6\xa83\xe8\xb2WA^\xb2\xfc\x00\xb44\x85q?\xd0\xc0\xd46i\xbd%[7\x94YzliH\x87\xcay\xed}%\xe7\xba\xa5\xab\x8d\xf1\x02\xa2\xd2\x9a\n\xc6\x91\x86\x86\x98\xcd\x10\xad!\xa8\x0c\xc9\x9e\xbc\x80\x96\xf8\x02X\xccQ1\xd0\xb6^V\xa3\x92\xd6f\xac%\xf4\x89X4*\x05\x04\x00\x1c\x05\xbd\x03D\x05\xf2\x02"\n+\x01\xc0\x19\x00\x00\xc1\x19\x01\x00\xe8\x06K\x14\xcc\x06\x00\x00\xd4\x06\x00\x01\xce\x06\x00\x00\xd0\x06\x00\x00\xd6\x06\x00\x00P\x18\x00\x00\xda\x06\x00\x00\xc5\x19\x02\x00\xef\x06\x01\x00\xd4\x19\x00\x00\xd6\x19\n\x18\xd8\x19\xa1\x1b\xda\x19\x9a\x08\xee\x06\x00\x00\x00\x05\x04\x00\xf0\xffWB\xf2\x00\x00\x04\xa9\t\x02\x046\x06\\\x04\x1e\x04\x04\x04U\x01\x06\x04\x15\x01`\x04\x88\x00\x1a\x04\xff\xff^\x04\x00\x00_\x04\x00\x00\x12\x04\xff\xff\x14\x04\xff\xff\x16\x04\xff\xff\x18\x04\xff\xff\xcc\x04\x9b\x05\xce\x04L\t\xd0\x04\xcc\x07\xd2\x04%\x06\xdc\x049\t\xde\x04\x02\x06\xb4\x04\x00\x00\xb6\x04\x10\x000\x04`\x008\x04~\x002\x04`\x00:\x04\x98\x004\x04\xc8\xff<\x04\x18\x006\x04\x0c\x00>\x04\x80\x00L\x04\xff\xffN\x04\xff\xff\xc0\x04\xff\xff\xc2\x04\xff\xff\xea\x04\x00\x00\x80\x05\x00\x00\x82\x05\x9d\x00\x83\x05\x83\x00\x88\x05\x00\x00\x8a\x05\x00\x00\x8b\x05\x00\x00\x8c\x05\x00\x00\x8e\x05\x9d\x00\x8f\x05\x83\x00R\x04j\x00T\x04\xf6\x00V\x04\xf6\x00X\x04\xf6\x00\xd4\x04\x8f\x00\xd6\x04v\x00\xd8\x04\x8f\x00\xda\x04v\x00\xf0\x04\x00\x00\xf2\x04\x00\x00\xf4\x04\x00\x00\xf6\x04\x00\x00\xf8\x04\x00\x00\xfa\x04\x00\x00\xfc\x04\x00\x00\xfe\x04\x00\x00\xf0\xffYC\x96\x00\xa0\x05\x05\x03\xa2\x05\xae\xde\x03\x8c\xae\xe7\x01\x8e\xae\xfe\x01\x90\xae\x0c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00AEBM\xf1\x00\xd0\x00\xcb\x00\xda\x00\xb6\x00\xc0\x00\xb5\x00\xee\x00\x97\x01\xc5\x01\xa0\x01<\x010\x01\xe9\x00\xc9\x00\xd5\x00\xb0\x00\xcd\x00\xe5\x00\x1e\x01\xf7\x01\xf8\x01\xea\x01\x91\x01\x8f\x01\xed\x00\xca\x00\xc2\x00\xe9\x00\r\x01l\x01\x9c\x01\xe8\x01\xa0\x01K\x01x\x00\xe4\x01\xc9\x00\x94\x00\xab\x00\x86\x01\x87\x01\xb4\x00\n\x01S\x01\xe9\x00\xde\x00\xe1\x00\xd2\x00\x85\x00{\x00\xe3\x00\xef\x00:\x01\x81\x01`\x01\xf1\x00\xa5\x01\t\x01\xf0\x00n\x01\x8f\x00\xcb\x00\xdf\x00\x85\x01H\x01\x93\x01_\x01*\x01\xb1\x01!\x01\xca\x00^\x01g\x00\xb9\x00\xbb\x009\x01d\x01l\x01I\x01\x83\x01\xc0\x01(\x01\xf5\x00P\x01a\x00\xb9\x00\xb5\x00v\x00\x00\x01R\x00\x9c\x00\xeb\x00\x19\x01 \x01\x0f\x01\x1b\x01\x93\x00\xbc\x00\xb9\x00\x8b\x00n\x00c\x00\x8c\x00\xc5\x00\x17\x01*\x01"\x01\xc8\x00\xb0\x00\xc0\x00\xbd\x00\xae\x00\xa4\x00\xa2\x00\xab\x00\xcd\x00\x0f\x01/\x01\r\x01\xb6\x00\xb0\x00\xc1\x00\xbd\x00\xbc\x00\xb8\x00\xb8\x00\xc0\x00\xd5\x00\xf8\x00\x0e\x01\xf9\x00\xaa\x00\x9f\x00\xb8\x00\xbc\x00\xc4\x00\xc4\x00\xc5\x00\xc4\x00\xd3\x00\x0e\x01r\x01"\x01PRST\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00FCCV\n\x00\x02\x00\x14\x0b\x00\x00/\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00S\x0ca\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00?\x0c#\x04\xc0\x0ct\x03\xcb\x03`\x03\x93\x03\xa6\x03v\x03\x00\x00n\x08\x96\x04\x07\x0e\xd8\x02\x02\x03\xb0\x02\xfa\x02,\x04\xb3\x02\x00\x00\x94\t\xe0\x02\xb7\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0c\n\x04\xdc\x0c\x98\x03\xdd\x03Y\x03\xb2\x03\xb3\x03m\x03\x00\x00\x8c\x08\xdc\x04\xed\x0e\xeb\x02\x15\x03\xc1\x02\xef\x02m\x04\xd8\x02\x00\x00+\n\r\x03\xd7\x01\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x0bs\x04<\x0e\xb1\x03\xe6\x03\x81\x03\xab\x03\xf7\x03}\x03\x00\x00l\tH\x05\x07\x10\x18\x03\x17\x03\xd3\x02\xfb\x02\xd9\x04\x0c\x03\x00\x00\t\x0bA\x03\x03\x02\x06\x01\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x0b\x8f\x04\x8c\x0e\xbe\x03\xee\x03\x84\x03\xbf\x03\xf9\x03\x86\x03\x00\x00\xac\tM\x05w\x10\x03\x03#\x03\xea\x02\r\x03"\x05\x0b\x03\x00\x00R\x0b]\x03\xfb\x01\x0b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x0b\xc4\x04}\x0f\xe9\x03\x0b\x04\x92\x03\xf4\x03\x1a\x04\xa3\x03\x00\x00!\n\x9e\x05g\x11\x1f\x03]\x03\x14\x03@\x03<\x05)\x03\x00\x00\xc2\x0b\x8a\x03\x19\x02\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00O\x0b\xe2\x04\x02\x10\x08\x04 \x04\xc5\x031\x04y\x04\xd0\x03\x00\x00y\n\xd9\x05\xf0\x11J\x03y\x03\x1b\x03B\x03\xac\x05v\x03\x00\x00E\x0c\x8f\x03\x17\x02\x18\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x0b\xf0\x04f\x10\xfe\x03U\x04\xbd\x03<\x04\xbc\x04\xde\x03\x00\x00\x88\n\xc7\x05\x1f\x12K\x03\x93\x03/\x03a\x03$\x06{\x03\x00\x00&\x0c~\x035\x02\x1c\x01\x00\x00\x00\x00\x00\x00\x00\x00\xef\n\xd6\x04#\x100\x04s\x04\xdc\x03D\x04\xc4\x04\xf6\x03\x00\x00A\n\x93\x05\x9b\x11\x85\x03\xb4\x034\x03\x7f\x039\x06\x8b\x03\x00\x00\xb2\x0bq\x03\x1d\x02\x1f\x01\x00\x00\x00\x00\x00\x00\x00\x00\xbf\n{\x049\x0f\r\x04\x89\x04\xdc\x03_\x04\xa6\x04\xdb\x03\x00\x00\x9f\t(\x05\x04\x11y\x03\xa6\x03$\x03{\x03\xf4\x05\x7f\x03\x00\x00%\x0b5\x03\x10\x02\x15\x01\x00\x00\x00\x00\x00\x00\x00\x00\x8f\n>\x04\xbf\x0e(\x04z\x04\xce\x03A\x04\x9e\x04\xce\x03\x00\x00@\t\x1b\x05U\x10~\x03\xb2\x035\x03x\x03\xf3\x05r\x03\x00\x00\xda\n\x11\x03\x01\x02\x1b\x01\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x0b\xe7\x04d\x10o\x03\xeb\x03\xad\x03\x00\x04\xee\x03\xbf\x03\x00\x00\xc0\n\xbc\x05\x80\x12\xec\x02,\x03\n\x03N\x03\xed\x04p\x03\x00\x00\x88\x0c\x84\x03\x0f\x02\x13\x01\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x0b\x95\x04\xe3\x0eP\x03\xbf\x03s\x03\xb8\x03\xbd\x03\x86\x03\x00\x00\xd8\tk\x05\x9d\x11\xd2\x02\x08\x03\xd7\x02+\x03~\x04\x10\x03\x00\x00\xe4\x0b_\x03\xf8\x01\x13\x01\x00\x00\x00\x00\x00\x00\x00\x00"\x0cl\x04\xf7\rS\x03\xba\x03j\x03\xa8\x03\xab\x03y\x03\x00\x009\t\x1b\x05~\x10\xbe\x02\xfe\x02\xc3\x02\x0f\x03V\x04\xe6\x02\x00\x00.\x0b/\x03\xda\x01\x0b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00WBCZ\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\n\n\x04\x04\x00\x04\x04\x04\x04\x04\x04\x04\x04\n\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x00\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x07\x00\x00\x00\x1c-\x00T\xff\xff\x00\x00\x1c9\x00T\t\t\x13\x0e\x11\x1f\x01\x00\x00\x00\x03\x00\x84 \x00\x00\xa8\xce\x01T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00<\x91\x04T\x01\x05\x00\x00!\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\xb2\x02T\x0f\x00\x00\x00\x03\x01\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0.\x00\x00\xf4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'Exif_Panasonic_ExifVersion': '0200', 'Exif_Panasonic_FirmwareVersion': '\x00\x01\x00\t', 'Exif_Panasonic_FlashBias': 0, 'Exif_Panasonic_FocusMode': 1, 'Exif_Panasonic_ImageStabilization': 4, 'Exif_Panasonic_InternalSerialNumber': 'F510611290076\x00\x00\x00', 'Exif_Panasonic_Macro': 2, 'Exif_Panasonic_MakerNoteVersion': '0100', 'Exif_Panasonic_NoiseReduction': 0, 'Exif_Panasonic_OpticalZoomMode': 1, 'Exif_Panasonic_Quality': 2, 'Exif_Panasonic_Rotation': 1, 'Exif_Panasonic_SceneMode': 0, 'Exif_Panasonic_SelfTimer': 1, 'Exif_Panasonic_SequenceNumber': 0L, 'Exif_Panasonic_ShootingMode': 1, 'Exif_Panasonic_TimeSincePowerOn': 6503L, 'Exif_Panasonic_TravelDay': 65535, 'Exif_Panasonic_WBBlueLevel': 1590, 'Exif_Panasonic_WBGreenLevel': 1054, 'Exif_Panasonic_WBRedLevel': 2473, 'Exif_Panasonic_WhiteBalance': 3, 'Exif_Panasonic_WhiteBalanceBias': 0, 'Exif_Photo_0xea1c': '\x1c\xea\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'Exif_Photo_0xea1d': 4156L, 'Exif_Photo_ApertureValue': Rational(), 'Exif_Photo_CFAPattern': '\x00\x02\x00\x02\x01\x02\x00\x01', 'Exif_Photo_ColorSpace': 1, 'Exif_Photo_ComponentsConfiguration': '\x01\x02\x03\x00', 'Exif_Photo_CompressedBitsPerPixel': Rational(), 'Exif_Photo_Contrast': 0, 'Exif_Photo_CustomRendered': 0, 'Exif_Photo_DateTimeDigitized': DateTime('2007:04:15 04:00:38'), 'Exif_Photo_DateTimeOriginal': DateTime('2007:04:15 04:00:38'), 'Exif_Photo_DigitalZoomRatio': Rational(), 'Exif_Photo_ExifVersion': '0220', 'Exif_Photo_ExposureBiasValue': Rational(), 'Exif_Photo_ExposureIndex': Rational(), 'Exif_Photo_ExposureMode': 1, 'Exif_Photo_ExposureProgram': 2, 'Exif_Photo_ExposureTime': Rational(), 'Exif_Photo_FNumber': Rational(), 'Exif_Photo_FileSource': '\x03', 'Exif_Photo_Flash': 16, 'Exif_Photo_FlashpixVersion': '0100', 'Exif_Photo_FocalLength': Rational(), 'Exif_Photo_FocalLengthIn35mmFilm': 35, 'Exif_Photo_FocalPlaneResolutionUnit': 2, 'Exif_Photo_FocalPlaneXResolution': Rational(), 'Exif_Photo_FocalPlaneYResolution': Rational(), 'Exif_Photo_GainControl': 1, 'Exif_Photo_ISOSpeedRatings': 100, 'Exif_Photo_InteroperabilityTag': 440L, 'Exif_Photo_LightSource': 0, 'Exif_Photo_MakerNote': 'SONY DSC \x00\x00\x00%\x00\x00\x10\x04\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x10\x04\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02\x10\x04\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00 \x07\x00\x01\x00\x00\x00\x00\x00\x00\x00 \xb0\x02\x00\t\x00\x00\x00\x92\x04\x00\x00@\xb0\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00A\xb0\x03\x00\x01\x00\x00\x00\x06\x00\x00\x00B\xb0\x03\x00\x01\x00\x00\x00\x01\x00\x00\x00C\xb0\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00D\xb0\x03\x00\x01\x00\x00\x00\x01\x00\x00\x00E\xb0\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00F\xb0\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00G\xb0\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00H\xb0\x08\x00\x01\x00\x00\x00\x00\x00\x00\x00I\xb0\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00J\xb0\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00K\xb0\x03\x00\x01\x00\x00\x00\x02\x00\x00\x00L\xb0\x05\x00\x01\x00\x00\x00\x9c\x04\x00\x00M\xb0\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00N\xb0\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x90\x07\x00(\x01\x00\x00\xa4\x04\x00\x00\x02\x90\x07\x00\x00\x01\x00\x00\xcc\x05\x00\x00\x03\x90\x07\x00\x90\x01\x00\x00\xcc\x06\x00\x00\x04\x90\x07\x00\xb8\x01\x00\x00\\\x08\x00\x00\x05\x90\x07\x00h\x01\x00\x00\x14\n\x00\x00\x06\x90\x07\x00D\x04\x00\x00|\x0b\x00\x00\x07\x90\x07\x00\x90\x01\x00\x00\xc0\x0f\x00\x00\x08\x90\x07\x00\x90\x01\x00\x00P\x11\x00\x00\t\x90\x07\x00\x00\x01\x00\x00\xe0\x12\x00\x00\n\x90\x07\x00\xc8\x00\x00\x00\xe0\x13\x00\x00\x0b\x90\x07\x00\xc8\x00\x00\x00\xa8\x14\x00\x00\x0c\x90\x07\x00\xf4\x01\x00\x00p\x15\x00\x00\x00\xa0\x04\x00\x01\x00\x00\x00\x04\x00\x00\x80\x01\xa0\x01\x00\x01\x00\x00\x00\x07\x00\x00\x00\x00\xa1\x07\x00\x84\x00\x00\x00d\x17\x00\x00\x01\xa1\x07\x00\x94\x01\x00\x00\xe8\x17\x00\x00\x00\xa2\x07\x00T\n\x00\x00|\x19\x00\x00Standard\x00\x00\n\x00\x00\x00\n\x00\x00\x00\xe7\x10\x00p\x86p\x01\x00\x07\x00h\x00!\x05|\xea\x00yp\x00\x00 \xea\x00R\x00\x00\x00\x00\x00\x00\x00R\x00\x00\x00P\x14(\x00\x08\x00\xd8\x00\xe63\x00\x00]Q\xd8\x00\xc4\xcb.\xea\xcf\xb6\x81\x00\\\x00\x87\x00:\x00o\xd7\x97\x88\xe6\x8ao\xd7\x97\x88\xe6\x8a0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa9[l\x01\xf6\x00\xa9\x00\xa9\x00@\x7f\xd3$G\x7f8\x96$ J\x08J\x00\x0e\x00\x0e\x00\x00\x00\x00\x00YZ\x00\x00w/\x00\x00\xe8\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x80\xc2\x00\x00\x8d\xd8\xdd\x01$\'\x00J\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\xfb\x9b\x00\x00\x00\x00\x00\x00\x00\x00\xd8V\x8a\x00\x08\x00\x08\x00\xa5\x8a\x00\x00i\x00\xeap\xeap\xeap\xcdp\xcdpi\x00\x02p\x9b\x8a\x00\x00\x00\x00\x00\x00\x00\x00\xacp"\x8a\xff\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00i\x00Q\x00\x00\xd8}\x00\x00}\xec\x01\x01\x00}\x00\x8a\x00\x01\x00\x00\x00\x00\x00\xe7\x00\x00\x00J\x00\xff\x01\xd3\x01\x00\x00\xd1\x00\xd3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x01\xd3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\xbd\x00\x01&\x01\xf4\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\xa5}ilO\x00\x95\xa0\xac}\x0b\xa0\xd8\x00olp}\xf1\x8d!\x17TE\x13S\x00\xe0\x078\x00\xe0\x078\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xc51\xef2\xf0O\x1aRp\xd7\x05\xe0\xd5/\x1b\xd8\xbb#Z\x8a\x1b^\xeduB\x88\x08\xd8B\xb7\x98j\xddKG\x00\x8d\xf0\x8d\x13\xaf\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\x00\x00\xd0\xbbW\xe7\xfd\xd7\xf9\xe7\x82pS\x8a_\x8aRp)\xff~\xff\x00\x00\xfc\xfe\xccK\x00\xbe1\xc5\x00,Q\x00\x00\xca\x01\x08\x00\x9bZ\x01\x00\n\xe3\x01\x00\xb4\xca\x00\x00\'\xf8\x00\x00\xb4\xca\x00\x00\xb4\xca\x00\x00\xe5\x1b\xe5\x1b\xe5\x1b\xe5\x1b\xa6pr\xb6|pk\x8aq\xb6\xa7\x8a"\x88\x82\xcd\x9fp\xf7p2\x05\xba0\xa7\x05Q0fp\xa5\xb6\xd7\xb6\xfb\x8a~ \xda\x8az\x92#\x05\xef\xd7\xdb\x8a\x99\x8a\xe0\x88U\x05\xe20&p1\xb6\xc5\xb6}p\x13\x88X\x8aI\x81\xea\x8a\xf4\xbe\xa6\x8a\xaf\x8a\xe4 N\x05\x8604pt\xb6\xd8\xb6ap\x95i\xf7\x05\xc100\x05\x06 \r\x8aT\x8a\xce\x881\x05\xcf0gp\xe0\xb6y\xb6\xacp=i\xc9\xcd\xc5\x883\xcdh\x88\xdc\x8aN\x8a\t\xd7Z\x05\xd00\xf2pL\xb6\xe0\xb6Xp\xd9\xb67\x05?\x88\xe8\xcd\x91i\xcf\x8a\x9f\xb6\xf3\xb6\x98\x05\xa90\np\xf6\xb6\x04\xb6\xc1p\xcbi \x05\xb3i\xe7\xcd\xe5\xb6\x94\x05\x07\xb6\xee\xb6\xf1\x05W0\xe7V\xd8\x0e\x92H\xa1\x04V^^iU\xb8\x04V\xd8^\x05\xe0=\x04V\x0e\x04\x8a\x96\xa2\x04V\xb6\xb6\x0c\x9a\x1c\xe7V0\xd7\x071\xe1\x0eVV\xb6\xa0bI\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x08\xdc8\x01\x00\x00\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00$y$y\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x97f\x00\x00y\x00\x95\x0ep\xb60^\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97f\x00\x00\\\x01\x00p\x00\x00\x00\x12\x03f\xc4\x00\x00\x00tX\xf3\x95\x02`\x95\x02$$+\x00\x00\x00\x00\x00y\xba\x91\xac\xe0\x91\xe0\xba\x00\x00\x00\x00\xc3)\x00p\x00\'\xda)\x00\x00\x00\x00J\x01"\x8b\x85\xc3\xb7\x95\xdb)\x00\x95\xe4)\x00Q\xa0\x8b\x00\xd3\xa0\x8b\x00\xb6\x94\x8b\x00/\x94\x8b\x00$\xc2\x9e\x00\xc4b\x9e\x00\xe3b\x9e\x00y\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x99\x8c\x01\x10a\x1b\x01\x13\xb4\\1\xa7w\xda\x1a\xaag\xcd\x11\xd0\xaa\x0b\r\xff\x8c\x8c\x1ft\xcc\x8f\x0f@gJ3$\x01\xc9\x0e\x8c\x82\xd6\x16\xdf\xf9jm\xec\xc93\x03\xc9"\xca*\t\x98=\x15:N\x06;\x83\x07\x91"\n\xbe\xd4:,\xff\xdb%Vy\xe87\xb3i1,\x83\nT\x18\x13\xac\xb5\'2\xe5a\t\x82qjp@\x17\x9eMx\x11\xca_\x9d\xb6(wV\x07\x04\x08\x05\x08\x1a\t\x88N\x96&\x93\xea\xdf\x8d\xaf\x92y\x00\x1dU\x1e\x08\n\xa7\x1a\x01\x13t\xce8\r\xbd\xdb\x1a\xaa\xf7_\x18\nl\n\r\xff\x1c\x1e\x16\x0e\n\x8e\x0f f\xca;\x05\x10\xc9\x0e\xec\x82v\x1f_\xf8jm\x8c\xc9\xa3\nM#\xca*c\x98\xad\x1c\xbeE\x06;\xe2\x07\x01+\xf7\xbc\xd4:L\xffK\xaa<>\x01=xn)\x87D\xc8\x1f\x1e`n\xe1\xe4\xa4!\x12\xb0I|-\xa6\xaa\xed\x0cjY\x8c\x18\x9f\xf6B\x01\x96\xe6[3\xef6\xc8(\xdb\x83\x19\x0f/\xfd\xaf"\xdc\xb0\xd5-x\t3\'\x14\xc2\xd8\x06\x9aQ9\x18k\xe3\xab=\x92\xcf\x01\x02\xbb\xebm\'\xee\x9d\xf0"OBl>0\xc0!\x1e\xfb\x8d<\x1a\x96 \x1c1\xa8b\xf5 E\x03\xb92\x01c\x97\xc9\x88\xfc\xac,\xbd\xd8M\x0c\xdd\xe6O\x08\xa4\xeey \x13\x04N!q\xd7\x98\t3\xf6\xb1\xf5\xf9\xb8\xc6\xcf\x15v\xe7r\xe7r\xbcV\xb5\xdd\x9c\xfb/\xadcQUB\xce\xfd\x95\xe5\xb2=\x97x(\xd5a\x03_\x82\xb9\x04Q\xc5\x99J\xa8\x865\x86\xe0\xf3e\xac0\x9f\x81 \xec\x9e\xb9!9\xc3\x7f\xb8\xe7\x04\x95\xc4\xb4\xe8\x95\xdd\xc9\xe5\x018\xcc\xf1Q\x82l>a\x87\xd4\xe7\x91!a\x88\xcb"\xe0\ty04\xe1\x99\x07M\xcfs\xd2\xc5\x95\x95\x13X\x8a\xfdT7\x08\x8a\xab\x00\x01\xc3x\xce8\r\xbd\xdb\x1a\n\xfb_\x18jl\n\r_\x10\x1e\x16N\x08n\x0e@fZ2\xa5\x13)\x0fW.\x08\x0e\x08\xf5pm\xf5\xc9\xa3\n\x8d"Z#\x03\x98=\x15\xdeG\x962\x87\x07\x9d"\xce\xb7\xd4:K\xf9\xdb5qy\xe87\x93i\xa1%\x89\nD\x18\x13\xac\xb5\'2\xe5a\t2}\x08\x11\x0fIR\x1e\x11I\x87\n\xa2\xe2\xea,wV\x94\x01\x99H\x1a\x00\x01=xn) C\xd2\x1f\x11`n\xe1\x14\xa3\xb1\x1b\xd0I\xec$6\xad}\x05\x0fY\x16\x11\x13\xf2B\x01\xf6\xe6\xcb:O>\xc8(\xcb\x83\x19\x0f%\xf4\xbf"\xbc\xb0E$\x18\x003\'\x14\xc2H\x0f:X\xa9\x11\xe8\xe3!4\xc3\xc5\x91\x0b[\xebm\'n\x97\xf0"\xafBl>\xd5\xca;\x1e\x02\x84\xac\x13\xd6+\x1c1\xc8be)e\x08);oc\'\xc0\x88\xf0\xac,\xdd\xd8\xdd\x05}\xeaO\x08\x94\xeey \xea\tT!\x0e\xd7\x98\t\xad\xc0\x83\x04\xb6\xf5^1\xf4u\x11\x00\xc2#\xa3/b\xa2\x82\x00\xbe\xec\xb35(\xe3i4d0\xb1\x16g\x83\x8b\x08\xed\xc0\x172\x99\x88\xae J\xd1\xb8\x03\x1c\x83\xe1\x02M\xd7\x03\x02\x1af\x0f4\xb2S!)D\xa57\x8eY>:\x93e\xb3/\x1ct\xf5\x11\xb9S\x89"J\xfb\x8a)\x10\x16\xbd\x17\x0e\xf3\xb4)\xef\x9ci\x1b\xc5\xc3\x16\xe4\xe9{O\x10\x91\xce\r&>a\x0b+\x95A\xc0\x10\x88,4\x1a\x93\x9dA5\xa2\xb2l\x03*\xf7p3"By\x11g\xf9\x0b,;\x83\xa3\x15\xd2p#/\x93\xb7L,\x16&k\x12\xaf\x0c\xd4!\x07\x0f//\xdfn\xa7\x17\x8a\x88\xc0\x1d\xbbv\xdf\x18k\x02(\x07\xcc\xd4g%)\x7fg-\x10\xba\x94\x1aO\x00\xb9\x08\xb3w\x9f\x0e)\xfcB\x00\x1c\x9d?\x05\x91\xa4>\x0f\xec\xd9\x8a#\x96\x87f\x0cj\xb9-\x07\xcc\xb5\xc6(,\xb3\xaa%\x93\xa163\xa1+Q&x5\x0f$\x87\x96\x939\x03\xe6\x08"w\xe4;\x15\x982M\x07^A\xca6\xe1\xb0\n\x16\x08\x0478\x13$\xe9\x03$\xaf\x11\x0bc\x17\x14&\x9d\xf3\xa3\x0f\xe1_\xd3!\x18\x97!1\xa9G\xca#F\xf5\'%hF\x150\xf4\x1f\xbc6\xe8`m\x07a\x9d\xa0\x04\x82Z\xe4,\xa3\xc1\xef0\x93\xcf\xa0\x1f\xafy\xd9\x15\xdd\x91\xbe)By6\x1f\x03e\x93\x01\xd3\x10\xed\x06\xb8:\xad\x0cc\xbfO\t\x81\x9e\x991D6\xa70\xd0\x93\xf3!\xe2q\xe9\x0f\x19\xf5\xb5\x0b\x1b\x08\x9b\x1f\x91\xd8\xfe8\x02\xbb\xa9!\xe2\xf8\x1f*\xbf\xd6\x8a,[X\xf70\xac F2\xe8S\'\x13N3#7b\xe4;\x1c\xdb\x02d\x02_\x98\x1922\xf5o,\x0fO\\\x03\xff\xd8\xf4+\xd1D\x8e\x05\x96\xa4I(\x04xm\x11\xb0\xe1V22W20=\xc9\x18/\xd1\x04\xa0\x17Ao\x1f\x12\x9e\xec\x15\x136\xedf#\xb7nq\x05\x1c\xbf\xfb2\x96\x0b\x87\x07\xa4\x10i\x1a\x96 \x8f\x04Z\xb0h/\x06u\x871\xe3\xf6\xda/\x06\xb3u\x1bvEv.\xe8&\xb3.PW\xa5\x03e\xd7_3\x89W\xa3 ]P\x0c\x0e\xce\xb84\x0b^I\x82 c\xb7t\x1f-\xe4\xd1\x17E\x92&%W~\x96\x076\xc7\x9e"E\xee\xe1&r\x17Q\x1dX\x1b\x89>v\xa9R:\x9d) )\x8c|\x8a\x07\xccU\xca\x028\x07\xde\x07Cd\x14#k\xe2#\x0bl\x08\xc4\x0c|\xbb9\x02\x82yl8\x0b\x0eB-\xa1\x1b\x113\xdf\xc6\x8e\'!\xe3\x86/\xca+\x17\x03p\x83\x96\x1d\xfc\xe0\xa4\x12\xc5\x08\x9e\x14j\x80@\x12\x8fbH\x13uO\x00\x16\xc4\x80\x02.\x02+G7\x88\x99\xd86\xafwt3\x03\x97\xe8\x05E\x86\x85\x19\x05\x19\xc5\x06V\xe5\xc7\x04\x8d\x88b\x0eUV\xd25\xb0\xb67&\xbaWM\x05bg\x07$\xbe\xe3\xf1\x12if\x9c0\n\xaf\xf8\tr\xdd^2\xdc\x8e\xee\x10\xf1\xc1\xc9\x03\x15L\x0e\x1c\x01\x122#\x8bV\x8f(z\xf5\xca\x05\xc2\xca\x86$\x00\x02\xb7\x18\x90\xe4\xd5$\xdb\xf06$\x9e>\x88\x18\xeb\xf3S/i\xba\x013\xe4\xad\xb9\x1b\xdf\x08\xaa*\xb5\x87^\x15\xb8\xc4\xd0\x08\x89\xf8:\x14\x9b\xd2B*Z\xdf\x8d\x16\xfe;\x03#\x97j\xcc\x10;\xb5\x01\x195\xc2_\x14\xb0Jp7K\xbcz3\x813x\x1c\xb1\xf4\xa5\x02\xd5\xc4a\x19\xe5\xd0S(O\x12p\x02&\xf3\xf4$\xbfoK4N\xba\x98#W\x94 >\xcfV\x17\'\xdaq\xf1*\x93k\x0b6|~X\x03\x8d\x9c\xe8!\xb0\xcb\x975|\x85S/\x9c\x95\xaa\x1d\x01q\x92,w\xa7\xec\'\xefN\x06\'\xde\x9d\x11#U\x8cb!r6\xf2#\xefe\xfd\x04q3\x1f\x0e\x97\xef;\x11\x88\xa10\x17C\xae?\x1d\x03\xc5\xee/v^$\x1f\xf8&3\x18\xdeU\x86-JH\x8c.,\xca\xa250G\x04\x1e{) ;w\x81~\x15\xa0K}\x0b[\xef\xa9#\x92\x83_-u^\x99\x00`Iu\x06\x0b\xd6g/p\xc4\xa3\x03\xb7\xbaw&\xf1\x07\xf3\x12\xcb\x86I%\x85me\x16\xb9\xab\xfe\x10\xa7GW\n;\xc9\xa1\x0b\xde\xdc|7\x86\xd3\x9b)J\xec\xdb\x11\xd3\x95\xd7!Q\xa8L*iv\xce\x0f\x9a\xc7Y\x1f\x15\x83O\nT\xb9Z\x0bWi\x90\x11F\x19t1\xf6\x94i;\x95\x10Q\nj\xf3\r\x1e&(r\x15\x00\x97\x83\x06\x1a}\xdf2\xa6\xab\x9b>/\xc44\x1a9\xfe\xf9\x08\x15(_\x07{\xc6\x93\x1b\x90Z\x95\x1d\x14{\xd4$\xd4\x90%\'g\xb3|\x01\xc6I\x16\x12\x9c\x990\'PY\xdd%\xcaxw\x01e\xaaq3N%`\x1b\xcf\x0b\x04-O\xf5#\x07N\xd7I\x12\xde\x8a\xd8-\xb57;$\xfb\xd8\x94\x17\x8a%"\x01\x91\x8d\x86%\xa0\xd6\xbf\x15\xf9i|\x07\xfc*\x05\x10)\x89\xf5+\xa45$\x08\xcbB\x9c&\xc4uB\x18|\x13\xfa\x13\x13\xf4\\3\x00Tf\x10\xf8K\x00\xbe1\xc5\x00,Q\x00\x00\xca\x01\x08\x00\x9bZ\x01\x00\n\xe3\x01\x00\xb4\xca\x00\x00\'\xf8\x00\x00\xb4\xca\x00\x00\xb4\xca\x00\x00\xe5\x1b\xe5\x1b\xe5\x1b\xe5\x1b\xa6pr\xb6|pk\x8aq\xb6\xa7\x8a"\x88\x82\xcd\x9fp\xf7p2\x05\xba0\xa7\x05Q0fp\xa5\xb6\xd7\xb6\xfb\x8a~ \xda\x8az\x92#\x05\xef\xd7\xdb\x8a\x99\x8a\xe0\x88U\x05\xe20&p1\xb6\xc5\xb6}p\x13\x88X\x8aI\x81\xea\x8a\xf4\xbe\xa6\x8a\xaf\x8a\xe4 N\x05\x8604pt\xb6\xd8\xb6ap\x95i\xf7\x05\xc100\x05\x06 \r\x8aT\x8a\xce\x881\x05\xcf0gp\xe0\xb6y\xb6\xacp=i\xc9\xcd\xc5\x883\xcdh\x88\xdc\x8aN\x8a\t\xd7Z\x05\xd00\xf2pL\xb6\xe0\xb6Xp\xd9\xb67\x05?\x88\xe8\xcd\x91i\xcf\x8a\x9f\xb6\xf3\xb6\x98\x05\xa90\np\xf6\xb6\x04\xb6\xc1p\xcbi \x05\xb3i\xe7\xcd\xe5\xb6\x94\x05\x07\xb6\xee\xb6\xf1\x05W0\xe7V\xd8\x0e\x92H\xa1\x04V^^iU\xb8\x04V\xd8^\x05\xe0=\x04V\x0e\x04\x8a\x96\xa2\x04V\xb6\xb6\x0c\x9a\x1c\xe7V0\xd7\x071\xe1\x0eVV\xb6\xa0bI\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'Exif_Sony_0x9009': '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'Exif_Sony_0x900a': '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'Exif_Sony_0x900b': '\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'Exif_Sony_0x900c': '\x08\x08\xdc8\x01\x00\x00\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00$y$y\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x97f\x00\x00y\x00\x95\x0ep\xb60^\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97f\x00\x00\\\x01\x00p\x00\x00\x00\x12\x03f\xc4\x00\x00\x00tX\xf3\x95\x02`\x95\x02$$+\x00\x00\x00\x00\x00y\xba\x91\xac\xe0\x91\xe0\xba\x00\x00\x00\x00\xc3)\x00p\x00\'\xda)\x00\x00\x00\x00J\x01"\x8b\x85\xc3\xb7\x95\xdb)\x00\x95\xe4)\x00Q\xa0\x8b\x00\xd3\xa0\x8b\x00\xb6\x94\x8b\x00/\x94\x8b\x00$\xc2\x9e\x00\xc4b\x9e\x00\xe3b\x9e\x00y\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', 'Exif_Sony_0xa000': 2147483652L, 'Exif_Sony_0xa001': '7 ', 'Exif_Sony_0xa100': '\xcd\x99\x8c\x01\x10a\x1b\x01\x13\xb4\\1\xa7w\xda\x1a\xaag\xcd\x11\xd0\xaa\x0b\r\xff\x8c\x8c\x1ft\xcc\x8f\x0f@gJ3$\x01\xc9\x0e\x8c\x82\xd6\x16\xdf\xf9jm\xec\xc93\x03\xc9"\xca*\t\x98=\x15:N\x06;\x83\x07\x91"\n\xbe\xd4:,\xff\xdb%Vy\xe87\xb3i1,\x83\nT\x18\x13\xac\xb5\'2\xe5a\t\x82qjp@\x17\x9eMx\x11\xca_\x9d\xb6(wV\x07\x04\x08\x05\x08\x1a\t\x88N\x96&\x93\xea\xdf\x8d\xaf\x92y\x00', 'Exif_Sony_0xa101': '\x1dU\x1e\x08\n\xa7\x1a\x01\x13t\xce8\r\xbd\xdb\x1a\xaa\xf7_\x18\nl\n\r\xff\x1c\x1e\x16\x0e\n\x8e\x0f f\xca;\x05\x10\xc9\x0e\xec\x82v\x1f_\xf8jm\x8c\xc9\xa3\nM#\xca*c\x98\xad\x1c\xbeE\x06;\xe2\x07\x01+\xf7\xbc\xd4:L\xffK\xaa<>\x01=xn)\x87D\xc8\x1f\x1e`n\xe1\xe4\xa4!\x12\xb0I|-\xa6\xaa\xed\x0cjY\x8c\x18\x9f\xf6B\x01\x96\xe6[3\xef6\xc8(\xdb\x83\x19\x0f/\xfd\xaf"\xdc\xb0\xd5-x\t3\'\x14\xc2\xd8\x06\x9aQ9\x18k\xe3\xab=\x92\xcf\x01\x02\xbb\xebm\'\xee\x9d\xf0"OBl>0\xc0!\x1e\xfb\x8d<\x1a\x96 \x1c1\xa8b\xf5 E\x03\xb92\x01c\x97\xc9\x88\xfc\xac,\xbd\xd8M\x0c\xdd\xe6O\x08\xa4\xeey \x13\x04N!q\xd7\x98\t3\xf6\xb1\xf5\xf9\xb8\xc6\xcf\x15v\xe7r\xe7r\xbcV\xb5\xdd\x9c\xfb/\xadcQUB\xce\xfd\x95\xe5\xb2=\x97x(\xd5a\x03_\x82\xb9\x04Q\xc5\x99J\xa8\x865\x86\xe0\xf3e\xac0\x9f\x81 \xec\x9e\xb9!9\xc3\x7f\xb8\xe7\x04\x95\xc4\xb4\xe8\x95\xdd\xc9\xe5\x018\xcc\xf1Q\x82l>a\x87\xd4\xe7\x91!a\x88\xcb"\xe0\ty04\xe1\x99\x07M\xcfs\xd2\xc5\x95\x95\x13X\x8a', 'Exif_Sony_0xa200': '\xfdT7\x08\x8a\xab\x00\x01\xc3x\xce8\r\xbd\xdb\x1a\n\xfb_\x18jl\n\r_\x10\x1e\x16N\x08n\x0e@fZ2\xa5\x13)\x0fW.\x08\x0e\x08\xf5pm\xf5\xc9\xa3\n\x8d"Z#\x03\x98=\x15\xdeG\x962\x87\x07\x9d"\xce\xb7\xd4:K\xf9\xdb5qy\xe87\x93i\xa1%\x89\nD\x18\x13\xac\xb5\'2\xe5a\t2}\x08\x11\x0fIR\x1e\x11I\x87\n\xa2\xe2\xea,wV\x94\x01\x99H\x1a\x00\x01=xn) C\xd2\x1f\x11`n\xe1\x14\xa3\xb1\x1b\xd0I\xec$6\xad}\x05\x0fY\x16\x11\x13\xf2B\x01\xf6\xe6\xcb:O>\xc8(\xcb\x83\x19\x0f%\xf4\xbf"\xbc\xb0E$\x18\x003\'\x14\xc2H\x0f:X\xa9\x11\xe8\xe3!4\xc3\xc5\x91\x0b[\xebm\'n\x97\xf0"\xafBl>\xd5\xca;\x1e\x02\x84\xac\x13\xd6+\x1c1\xc8be)e\x08);oc\'\xc0\x88\xf0\xac,\xdd\xd8\xdd\x05}\xeaO\x08\x94\xeey \xea\tT!\x0e\xd7\x98\t\xad\xc0\x83\x04\xb6\xf5^1\xf4u\x11\x00\xc2#\xa3/b\xa2\x82\x00\xbe\xec\xb35(\xe3i4d0\xb1\x16g\x83\x8b\x08\xed\xc0\x172\x99\x88\xae J\xd1\xb8\x03\x1c\x83\xe1\x02M\xd7\x03\x02\x1af\x0f4\xb2S!)D\xa57\x8eY>:\x93e\xb3/\x1ct\xf5\x11\xb9S\x89"J\xfb\x8a)\x10\x16\xbd\x17\x0e\xf3\xb4)\xef\x9ci\x1b\xc5\xc3\x16\xe4\xe9{O\x10\x91\xce\r&>a\x0b+\x95A\xc0\x10\x88,4\x1a\x93\x9dA5\xa2\xb2l\x03*\xf7p3"By\x11g\xf9\x0b,;\x83\xa3\x15\xd2p#/\x93\xb7L,\x16&k\x12\xaf\x0c\xd4!\x07\x0f//\xdfn\xa7\x17\x8a\x88\xc0\x1d\xbbv\xdf\x18k\x02(\x07\xcc\xd4g%)\x7fg-\x10\xba\x94\x1aO\x00\xb9\x08\xb3w\x9f\x0e)\xfcB\x00\x1c\x9d?\x05\x91\xa4>\x0f\xec\xd9\x8a#\x96\x87f\x0cj\xb9-\x07\xcc\xb5\xc6(,\xb3\xaa%\x93\xa163\xa1+Q&x5\x0f$\x87\x96\x939\x03\xe6\x08"w\xe4;\x15\x982M\x07^A\xca6\xe1\xb0\n\x16\x08\x0478\x13$\xe9\x03$\xaf\x11\x0bc\x17\x14&\x9d\xf3\xa3\x0f\xe1_\xd3!\x18\x97!1\xa9G\xca#F\xf5\'%hF\x150\xf4\x1f\xbc6\xe8`m\x07a\x9d\xa0\x04\x82Z\xe4,\xa3\xc1\xef0\x93\xcf\xa0\x1f\xafy\xd9\x15\xdd\x91\xbe)By6\x1f\x03e\x93\x01\xd3\x10\xed\x06\xb8:\xad\x0cc\xbfO\t\x81\x9e\x991D6\xa70\xd0\x93\xf3!\xe2q\xe9\x0f\x19\xf5\xb5\x0b\x1b\x08\x9b\x1f\x91\xd8\xfe8\x02\xbb\xa9!\xe2\xf8\x1f*\xbf\xd6\x8a,[X\xf70\xac F2\xe8S\'\x13N3#7b\xe4;\x1c\xdb\x02d\x02_\x98\x1922\xf5o,\x0fO\\\x03\xff\xd8\xf4+\xd1D\x8e\x05\x96\xa4I(\x04xm\x11\xb0\xe1V22W20=\xc9\x18/\xd1\x04\xa0\x17Ao\x1f\x12\x9e\xec\x15\x136\xedf#\xb7nq\x05\x1c\xbf\xfb2\x96\x0b\x87\x07\xa4\x10i\x1a\x96 \x8f\x04Z\xb0h/\x06u\x871\xe3\xf6\xda/\x06\xb3u\x1bvEv.\xe8&\xb3.PW\xa5\x03e\xd7_3\x89W\xa3 ]P\x0c\x0e\xce\xb84\x0b^I\x82 c\xb7t\x1f-\xe4\xd1\x17E\x92&%W~\x96\x076\xc7\x9e"E\xee\xe1&r\x17Q\x1dX\x1b\x89>v\xa9R:\x9d) )\x8c|\x8a\x07\xccU\xca\x028\x07\xde\x07Cd\x14#k\xe2#\x0bl\x08\xc4\x0c|\xbb9\x02\x82yl8\x0b\x0eB-\xa1\x1b\x113\xdf\xc6\x8e\'!\xe3\x86/\xca+\x17\x03p\x83\x96\x1d\xfc\xe0\xa4\x12\xc5\x08\x9e\x14j\x80@\x12\x8fbH\x13uO\x00\x16\xc4\x80\x02.\x02+G7\x88\x99\xd86\xafwt3\x03\x97\xe8\x05E\x86\x85\x19\x05\x19\xc5\x06V\xe5\xc7\x04\x8d\x88b\x0eUV\xd25\xb0\xb67&\xbaWM\x05bg\x07$\xbe\xe3\xf1\x12if\x9c0\n\xaf\xf8\tr\xdd^2\xdc\x8e\xee\x10\xf1\xc1\xc9\x03\x15L\x0e\x1c\x01\x122#\x8bV\x8f(z\xf5\xca\x05\xc2\xca\x86$\x00\x02\xb7\x18\x90\xe4\xd5$\xdb\xf06$\x9e>\x88\x18\xeb\xf3S/i\xba\x013\xe4\xad\xb9\x1b\xdf\x08\xaa*\xb5\x87^\x15\xb8\xc4\xd0\x08\x89\xf8:\x14\x9b\xd2B*Z\xdf\x8d\x16\xfe;\x03#\x97j\xcc\x10;\xb5\x01\x195\xc2_\x14\xb0Jp7K\xbcz3\x813x\x1c\xb1\xf4\xa5\x02\xd5\xc4a\x19\xe5\xd0S(O\x12p\x02&\xf3\xf4$\xbfoK4N\xba\x98#W\x94 >\xcfV\x17\'\xdaq\xf1*\x93k\x0b6|~X\x03\x8d\x9c\xe8!\xb0\xcb\x975|\x85S/\x9c\x95\xaa\x1d\x01q\x92,w\xa7\xec\'\xefN\x06\'\xde\x9d\x11#U\x8cb!r6\xf2#\xefe\xfd\x04q3\x1f\x0e\x97\xef;\x11\x88\xa10\x17C\xae?\x1d\x03\xc5\xee/v^$\x1f\xf8&3\x18\xdeU\x86-JH\x8c.,\xca\xa250G\x04\x1e{) ;w\x81~\x15\xa0K}\x0b[\xef\xa9#\x92\x83_-u^\x99\x00`Iu\x06\x0b\xd6g/p\xc4\xa3\x03\xb7\xbaw&\xf1\x07\xf3\x12\xcb\x86I%\x85me\x16\xb9\xab\xfe\x10\xa7GW\n;\xc9\xa1\x0b\xde\xdc|7\x86\xd3\x9b)J\xec\xdb\x11\xd3\x95\xd7!Q\xa8L*iv\xce\x0f\x9a\xc7Y\x1f\x15\x83O\nT\xb9Z\x0bWi\x90\x11F\x19t1\xf6\x94i;\x95\x10Q\nj\xf3\r\x1e&(r\x15\x00\x97\x83\x06\x1a}\xdf2\xa6\xab\x9b>/\xc44\x1a9\xfe\xf9\x08\x15(_\x07{\xc6\x93\x1b\x90Z\x95\x1d\x14{\xd4$\xd4\x90%\'g\xb3|\x01\xc6I\x16\x12\x9c\x990\'PY\xdd%\xcaxw\x01e\xaaq3N%`\x1b\xcf\x0b\x04-O\xf5#\x07N\xd7I\x12\xde\x8a\xd8-\xb57;$\xfb\xd8\x94\x17\x8a%"\x01\x91\x8d\x86%\xa0\xd6\xbf\x15\xf9i|\x07\xfc*\x05\x10)\x89\xf5+\xa45$\x08\xcbB\x9c&\xc4uB\x18|\x13\xfa\x13\x13\xf4\\3\x00Tf\x10\xf8K\x00\xbe1\xc5\x00,Q\x00\x00\xca\x01\x08\x00\x9bZ\x01\x00\n\xe3\x01\x00\xb4\xca\x00\x00\'\xf8\x00\x00\xb4\xca\x00\x00\xb4\xca\x00\x00\xe5\x1b\xe5\x1b\xe5\x1b\xe5\x1b\xa6pr\xb6|pk\x8aq\xb6\xa7\x8a"\x88\x82\xcd\x9fp\xf7p2\x05\xba0\xa7\x05Q0fp\xa5\xb6\xd7\xb6\xfb\x8a~ \xda\x8az\x92#\x05\xef\xd7\xdb\x8a\x99\x8a\xe0\x88U\x05\xe20&p1\xb6\xc5\xb6}p\x13\x88X\x8aI\x81\xea\x8a\xf4\xbe\xa6\x8a\xaf\x8a\xe4 N\x05\x8604pt\xb6\xd8\xb6ap\x95i\xf7\x05\xc100\x05\x06 \r\x8aT\x8a\xce\x881\x05\xcf0gp\xe0\xb6y\xb6\xacp=i\xc9\xcd\xc5\x883\xcdh\x88\xdc\x8aN\x8a\t\xd7Z\x05\xd00\xf2pL\xb6\xe0\xb6Xp\xd9\xb67\x05?\x88\xe8\xcd\x91i\xcf\x8a\x9f\xb6\xf3\xb6\x98\x05\xa90\np\xf6\xb6\x04\xb6\xc1p\xcbi \x05\xb3i\xe7\xcd\xe5\xb6\x94\x05\x07\xb6\xee\xb6\xf1\x05W0\xe7V\xd8\x0e\x92H\xa1\x04V^^iU\xb8\x04V\xd8^\x05\xe0=\x04V\x0e\x04\x8a\x96\xa2\x04V\xb6\xb6\x0c\x9a\x1c\xe7V0\xd7\x071\xe1\x0eVV\xb6\xa0bI\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x08\xdc8\x01\x00\x00\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00$y$y\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x97f\x00\x00y\x00\x95\x0ep\xb60^\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97f\x00\x00\\\x01\x00p\x00\x00\x00\x12\x03f\xc4\x00\x00\x00tX\xf3\x95\x02`\x95\x02$$+\x00\x00\x00\x00\x00y\xba\x91\xac\xe0\x91\xe0\xba\x00\x00\x00\x00\xc3)\x00p\x00\'\xda)\x00\x00\x00\x00J\x01"\x8b\x85\xc3\xb7\x95\xdb)\x00\x95\xe4)\x00Q\xa0\x8b\x00\xd3\xa0\x8b\x00\xb6\x94\x8b\x00/\x94\x8b\x00$\xc2\x9e\x00\xc4b\x9e\x00\xe3b\x9e\x00y\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x99\x8c\x01\x10a\x1b\x01\x13\xb4\\1\xa7w\xda\x1a\xaag\xcd\x11\xd0\xaa\x0b\r\xff\x8c\x8c\x1ft\xcc\x8f\x0f@gJ3$\x01\xc9\x0e\x8c\x82\xd6\x16\xdf\xf9jm\xec\xc93\x03\xc9"\xca*\t\x98=\x15:N\x06;\x83\x07\x91"\n\xbe\xd4:,\xff\xdb%Vy\xe87\xb3i1,\x83\nT\x18\x13\xac\xb5\'2\xe5a\t\x82qjp@\x17\x9eMx\x11\xca_\x9d\xb6(wV\x07\x04\x08\x05\x08\x1a\t\x88N\x96&\x93\xea\xdf\x8d\xaf\x92y\x00\x1dU\x1e\x08\n\xa7\x1a\x01\x13t\xce8\r\xbd\xdb\x1a\xaa\xf7_\x18\nl\n\r\xff\x1c\x1e\x16\x0e\n\x8e\x0f f\xca;\x05\x10\xc9\x0e\xec\x82v\x1f_\xf8jm\x8c\xc9\xa3\nM#\xca*c\x98\xad\x1c\xbeE\x06;\xe2\x07\x01+\xf7\xbc\xd4:L\xffK\xaa<>\x01=xn)\x87D\xc8\x1f\x1e`n\xe1\xe4\xa4!\x12\xb0I|-\xa6\xaa\xed\x0cjY\x8c\x18\x9f\xf6B\x01\x96\xe6[3\xef6\xc8(\xdb\x83\x19\x0f/\xfd\xaf"\xdc\xb0\xd5-x\t3\'\x14\xc2\xd8\x06\x9aQ9\x18k\xe3\xab=\x92\xcf\x01\x02\xbb\xebm\'\xee\x9d\xf0"OBl>0\xc0!\x1e\xfb\x8d<\x1a\x96 \x1c1\xa8b\xf5 E\x03\xb92\x01c\x97\xc9\x88\xfc\xac,\xbd\xd8M\x0c\xdd\xe6O\x08\xa4\xeey \x13\x04N!q\xd7\x98\t3\xf6\xb1\xf5\xf9\xb8\xc6\xcf\x15v\xe7r\xe7r\xbcV\xb5\xdd\x9c\xfb/\xadcQUB\xce\xfd\x95\xe5\xb2=\x97x(\xd5a\x03_\x82\xb9\x04Q\xc5\x99J\xa8\x865\x86\xe0\xf3e\xac0\x9f\x81 \xec\x9e\xb9!9\xc3\x7f\xb8\xe7\x04\x95\xc4\xb4\xe8\x95\xdd\xc9\xe5\x018\xcc\xf1Q\x82l>a\x87\xd4\xe7\x91!a\x88\xcb"\xe0\ty04\xe1\x99\x07M\xcfs\xd2\xc5\x95\x95\x13X\x8a\xfdT7\x08\x8a\xab\x00\x01\xc3x\xce8\r\xbd\xdb\x1a\n\xfb_\x18jl\n\r_\x10\x1e\x16N\x08n\x0e@fZ2\xa5\x13)\x0fW.\x08\x0e\x08\xf5pm\xf5\xc9\xa3\n\x8d"Z#\x03\x98=\x15\xdeG\x962\x87\x07\x9d"\xce\xb7\xd4:K\xf9\xdb5qy\xe87\x93i\xa1%\x89\nD\x18\x13\xac\xb5\'2\xe5a\t2}\x08\x11\x0fIR\x1e\x11I\x87\n\xa2\xe2\xea,wV\x94\x01\x99H\x1a\x00\x01=xn) C\xd2\x1f\x11`n\xe1\x14\xa3\xb1\x1b\xd0I\xec$6\xad}\x05\x0fY\x16\x11\x13\xf2B\x01\xf6\xe6\xcb:O>\xc8(\xcb\x83\x19\x0f%\xf4\xbf"\xbc\xb0E$\x18\x003\'\x14\xc2H\x0f:X\xa9\x11\xe8\xe3!4\xc3\xc5\x91\x0b[\xebm\'n\x97\xf0"\xafBl>\xd5\xca;\x1e\x02\x84\xac\x13\xd6+\x1c1\xc8be)e\x08);oc\'\xc0\x88\xf0\xac,\xdd\xd8\xdd\x05}\xeaO\x08\x94\xeey \xea\tT!\x0e\xd7\x98\t\xad\xc0\x83\x04\xb6\xf5^1\xf4u\x11\x00\xc2#\xa3/b\xa2\x82\x00\xbe\xec\xb35(\xe3i4d0\xb1\x16g\x83\x8b\x08\xed\xc0\x172\x99\x88\xae J\xd1\xb8\x03\x1c\x83\xe1\x02M\xd7\x03\x02\x1af\x0f4\xb2S!)D\xa57\x8eY>:\x93e\xb3/\x1ct\xf5\x11\xb9S\x89"J\xfb\x8a)\x10\x16\xbd\x17\x0e\xf3\xb4)\xef\x9ci\x1b\xc5\xc3\x16\xe4\xe9{O\x10\x91\xce\r&>a\x0b+\x95A\xc0\x10\x88,4\x1a\x93\x9dA5\xa2\xb2l\x03*\xf7p3"By\x11g\xf9\x0b,;\x83\xa3\x15\xd2p#/\x93\xb7L,\x16&k\x12\xaf\x0c\xd4!\x07\x0f//\xdfn\xa7\x17\x8a\x88\xc0\x1d\xbbv\xdf\x18k\x02(\x07\xcc\xd4g%)\x7fg-\x10\xba\x94\x1aO\x00\xb9\x08\xb3w\x9f\x0e)\xfcB\x00\x1c\x9d?\x05\x91\xa4>\x0f\xec\xd9\x8a#\x96\x87f\x0cj\xb9-\x07\xcc\xb5\xc6(,\xb3\xaa%\x93\xa163\xa1+Q&x5\x0f$\x87\x96\x939\x03\xe6\x08"w\xe4;\x15\x982M\x07^A\xca6\xe1\xb0\n\x16\x08\x0478\x13$\xe9\x03$\xaf\x11\x0bc\x17\x14&\x9d\xf3\xa3\x0f\xe1_\xd3!\x18\x97!1\xa9G\xca#F\xf5\'%hF\x150\xf4\x1f\xbc6\xe8`m\x07a\x9d\xa0\x04\x82Z\xe4,\xa3\xc1\xef0\x93\xcf\xa0\x1f\xafy\xd9\x15\xdd\x91\xbe)By6\x1f\x03e\x93\x01\xd3\x10\xed\x06\xb8:\xad\x0cc\xbfO\t\x81\x9e\x991D6\xa70\xd0\x93\xf3!\xe2q\xe9\x0f\x19\xf5\xb5\x0b\x1b\x08\x9b\x1f\x91\xd8\xfe8\x02\xbb\xa9!\xe2\xf8\x1f*\xbf\xd6\x8a,[X\xf70\xac F2\xe8S\'\x13N3#7b\xe4;\x1c\xdb\x02d\x02_\x98\x1922\xf5o,\x0fO\\\x03\xff\xd8\xf4+\xd1D\x8e\x05\x96\xa4I(\x04xm\x11\xb0\xe1V22W20=\xc9\x18/\xd1\x04\xa0\x17Ao\x1f\x12\x9e\xec\x15\x136\xedf#\xb7nq\x05\x1c\xbf\xfb2\x96\x0b\x87\x07\xa4\x10i\x1a\x96 \x8f\x04Z\xb0h/\x06u\x871\xe3\xf6\xda/\x06\xb3u\x1bvEv.\xe8&\xb3.PW\xa5\x03e\xd7_3\x89W\xa3 ]P\x0c\x0e\xce\xb84\x0b^I\x82 c\xb7t\x1f-\xe4\xd1\x17E\x92&%W~\x96\x076\xc7\x9e"E\xee\xe1&r\x17Q\x1dX\x1b\x89>v\xa9R:\x9d) )\x8c|\x8a\x07\xccU\xca\x028\x07\xde\x07Cd\x14#k\xe2#\x0bl\x08\xc4\x0c|\xbb9\x02\x82yl8\x0b\x0eB-\xa1\x1b\x113\xdf\xc6\x8e\'!\xe3\x86/\xca+\x17\x03p\x83\x96\x1d\xfc\xe0\xa4\x12\xc5\x08\x9e\x14j\x80@\x12\x8fbH\x13uO\x00\x16\xc4\x80\x02.\x02+G7\x88\x99\xd86\xafwt3\x03\x97\xe8\x05E\x86\x85\x19\x05\x19\xc5\x06V\xe5\xc7\x04\x8d\x88b\x0eUV\xd25\xb0\xb67&\xbaWM\x05bg\x07$\xbe\xe3\xf1\x12if\x9c0\n\xaf\xf8\tr\xdd^2\xdc\x8e\xee\x10\xf1\xc1\xc9\x03\x15L\x0e\x1c\x01\x122#\x8bV\x8f(z\xf5\xca\x05\xc2\xca\x86$\x00\x02\xb7\x18\x90\xe4\xd5$\xdb\xf06$\x9e>\x88\x18\xeb\xf3S/i\xba\x013\xe4\xad\xb9\x1b\xdf\x08\xaa*\xb5\x87^\x15\xb8\xc4\xd0\x08\x89\xf8:\x14\x9b\xd2B*Z\xdf\x8d\x16\xfe;\x03#\x97j\xcc\x10;\xb5\x01\x195\xc2_\x14\xb0Jp7K\xbcz3\x813x\x1c\xb1\xf4\xa5\x02\xd5\xc4a\x19\xe5\xd0S(O\x12p\x02&\xf3\xf4$\xbfoK4N\xba\x98#W\x94 >\xcfV\x17\'\xdaq\xf1*\x93k\x0b6|~X\x03\x8d\x9c\xe8!\xb0\xcb\x975|\x85S/\x9c\x95\xaa\x1d\x01q\x92,w\xa7\xec\'\xefN\x06\'\xde\x9d\x11#U\x8cb!r6\xf2#\xefe\xfd\x04q3\x1f\x0e\x97\xef;\x11\x88\xa10\x17C\xae?\x1d\x03\xc5\xee/v^$\x1f\xf8&3\x18\xdeU\x86-JH\x8c.,\xca\xa250G\x04\x1e{) ;w\x81~\x15\xa0K}\x0b[\xef\xa9#\x92\x83_-u^\x99\x00`Iu\x06\x0b\xd6g/p\xc4\xa3\x03\xb7\xbaw&\xf1\x07\xf3\x12\xcb\x86I%\x85me\x16\xb9\xab\xfe\x10\xa7GW\n;\xc9\xa1\x0b\xde\xdc|7\x86\xd3\x9b)J\xec\xdb\x11\xd3\x95\xd7!Q\xa8L*iv\xce\x0f\x9a\xc7Y\x1f\x15\x83O\nT\xb9Z\x0bWi\x90\x11F\x19t1\xf6\x94i;\x95\x10Q\nj\xf3\r\x1e&(r\x15\x00\x97\x83\x06\x1a}\xdf2\xa6\xab\x9b>/\xc44\x1a9\xfe\xf9\x08\x15(_\x07{\xc6\x93\x1b\x90Z\x95\x1d\x14{\xd4$\xd4\x90%\'g\xb3|\x01\xc6I\x16\x12\x9c\x990\'PY\xdd%\xcaxw\x01e\xaaq3N%`\x1b\xcf\x0b\x04-O\xf5#\x07N\xd7I\x12\xde\x8a\xd8-\xb57;$\xfb\xd8\x94\x17\x8a%"\x01\x91\x8d\x86%\xa0\xd6\xbf\x15\xf9i|\x07\xfc*\x05\x10)\x89\xf5+\xa45$\x08\xcbB\x9c&\xc4uB\x18|\x13\xfa\x13\x13\xf4\\3\x00Tf\x10\xf8K\x00\xbe1\xc5\x00,Q\x00\x00\xca\x01\x08\x00\x9bZ\x01\x00\n\xe3\x01\x00\xb4\xca\x00\x00\'\xf8\x00\x00\xb4\xca\x00\x00\xb4\xca\x00\x00\xe5\x1b\xe5\x1b\xe5\x1b\xe5\x1b\xa6pr\xb6|pk\x8aq\xb6\xa7\x8a"\x88\x82\xcd\x9fp\xf7p2\x05\xba0\xa7\x05Q0fp\xa5\xb6\xd7\xb6\xfb\x8a~ \xda\x8az\x92#\x05\xef\xd7\xdb\x8a\x99\x8a\xe0\x88U\x05\xe20&p1\xb6\xc5\xb6}p\x13\x88X\x8aI\x81\xea\x8a\xf4\xbe\xa6\x8a\xaf\x8a\xe4 N\x05\x8604pt\xb6\xd8\xb6ap\x95i\xf7\x05\xc100\x05\x06 \r\x8aT\x8a\xce\x881\x05\xcf0gp\xe0\xb6y\xb6\xacp=i\xc9\xcd\xc5\x883\xcdh\x88\xdc\x8aN\x8a\t\xd7Z\x05\xd00\xf2pL\xb6\xe0\xb6Xp\xd9\xb67\x05?\x88\xe8\xcd\x91i\xcf\x8a\x9f\xb6\xf3\xb6\x98\x05\xa90\np\xf6\xb6\x04\xb6\xc1p\xcbi \x05\xb3i\xe7\xcd\xe5\xb6\x94\x05\x07\xb6\xee\xb6\xf1\x05W0\xe7V\xd8\x0e\x92H\xa1\x04V^^iU\xb8\x04V\xd8^\x05\xe0=\x04V\x0e\x04\x8a\x96\xa2\x04V\xb6\xb6\x0c\x9a\x1c\xe7V0\xd7\x071\xe1\x0eVV\xb6\xa0bI\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x08\xdc8\x01\x00\x00\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00$y$y\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x97f\x00\x00y\x00\x95\x0ep\xb60^\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97f\x00\x00\\\x01\x00p\x00\x00\x00\x12\x03f\xc4\x00\x00\x00tX\xf3\x95\x02`\x95\x02$$+\x00\x00\x00\x00\x00y\xba\x91\xac\xe0\x91\xe0\xba\x00\x00\x00\x00\xc3)\x00p\x00\'\xda)\x00\x00\x00\x00J\x01"\x8b\x85\xc3\xb7\x95\xdb)\x00\x95\xe4)\x00Q\xa0\x8b\x00\xd3\xa0\x8b\x00\xb6\x94\x8b\x00/\x94\x8b\x00$\xc2\x9e\x00\xc4b\x9e\x00\xe3b\x9e\x00y\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x99\x8c\x01\x10a\x1b\x01\x13\xb4\\1\xa7w\xda\x1a\xaag\xcd\x11\xd0\xaa\x0b\r\xff\x8c\x8c\x1ft\xcc\x8f\x0f@gJ3$\x01\xc9\x0e\x8c\x82\xd6\x16\xdf\xf9jm\xec\xc93\x03\xc9"\xca*\t\x98=\x15:N\x06;\x83\x07\x91"\n\xbe\xd4:,\xff\xdb%Vy\xe87\xb3i1,\x83\nT\x18\x13\xac\xb5\'2\xe5a\t\x82qjp@\x17\x9eMx\x11\xca_\x9d\xb6(wV\x07\x04\x08\x05\x08\x1a\t\x88N\x96&\x93\xea\xdf\x8d\xaf\x92y\x00\x1dU\x1e\x08\n\xa7\x1a\x01\x13t\xce8\r\xbd\xdb\x1a\xaa\xf7_\x18\nl\n\r\xff\x1c\x1e\x16\x0e\n\x8e\x0f f\xca;\x05\x10\xc9\x0e\xec\x82v\x1f_\xf8jm\x8c\xc9\xa3\nM#\xca*c\x98\xad\x1c\xbeE\x06;\xe2\x07\x01+\xf7\xbc\xd4:L\xffK\xaa<>\x01=xn)\x87D\xc8\x1f\x1e`n\xe1\xe4\xa4!\x12\xb0I|-\xa6\xaa\xed\x0cjY\x8c\x18\x9f\xf6B\x01\x96\xe6[3\xef6\xc8(\xdb\x83\x19\x0f/\xfd\xaf"\xdc\xb0\xd5-x\t3\'\x14\xc2\xd8\x06\x9aQ9\x18k\xe3\xab=\x92\xcf\x01\x02\xbb\xebm\'\xee\x9d\xf0"OBl>0\xc0!\x1e\xfb\x8d<\x1a\x96 \x1c1\xa8b\xf5 E\x03\xb92\x01c\x97\xc9\x88\xfc\xac,\xbd\xd8M\x0c\xdd\xe6O\x08\xa4\xeey \x13\x04N!q\xd7\x98\t3\xf6\xb1\xf5\xf9\xb8\xc6\xcf\x15v\xe7r\xe7r\xbcV\xb5\xdd\x9c\xfb/\xadcQUB\xce\xfd\x95\xe5\xb2=\x97x(\xd5a\x03_\x82\xb9\x04Q\xc5\x99J\xa8\x865\x86\xe0\xf3e\xac0\x9f\x81 \xec\x9e\xb9!9\xc3\x7f\xb8\xe7\x04\x95\xc4\xb4\xe8\x95\xdd\xc9\xe5\x018\xcc\xf1Q\x82l>a\x87\xd4\xe7\x91!a\x88\xcb"\xe0\ty04\xe1\x99\x07M\xcfs\xd2\xc5\x95\x95\x13X\x8a\xfdT7\x08\x8a\xab\x00\x01\xc3x\xce8\r\xbd\xdb\x1a\n\xfb_\x18jl\n\r_\x10\x1e\x16N\x08n\x0e@fZ2\xa5\x13)\x0fW.\x08\x0e\x08\xf5pm\xf5\xc9\xa3\n\x8d"Z#\x03\x98=\x15\xdeG\x962\x87\x07\x9d"\xce\xb7\xd4:K\xf9\xdb5qy\xe87\x93i\xa1%\x89\nD\x18\x13\xac\xb5\'2\xe5a\t2}\x08\x11\x0fIR\x1e\x11I\x87\n\xa2\xe2\xea,wV\x94\x01\x99H\x1a\x00\x01=xn) C\xd2\x1f\x11`n\xe1\x14\xa3\xb1\x1b\xd0I\xec$6\xad}\x05\x0fY\x16\x11\x13\xf2B\x01\xf6\xe6\xcb:O>\xc8(\xcb\x83\x19\x0f%\xf4\xbf"\xbc\xb0E$\x18\x003\'\x14\xc2H\x0f:X\xa9\x11\xe8\xe3!4\xc3\xc5\x91\x0b[\xebm\'n\x97\xf0"\xafBl>\xd5\xca;\x1e\x02\x84\xac\x13\xd6+\x1c1\xc8be)e\x08);oc\'\xc0\x88\xf0\xac,\xdd\xd8\xdd\x05}\xeaO\x08\x94\xeey \xea\tT!\x0e\xd7\x98\t\xad\xc0\x83\x04\xb6\xf5^1\xf4u\x11\x00\xc2#\xa3/b\xa2\x82\x00\xbe\xec\xb35(\xe3i4d0\xb1\x16g\x83\x8b\x08\xed\xc0\x172\x99\x88\xae J\xd1\xb8\x03\x1c\x83\xe1\x02M\xd7\x03\x02\x1af\x0f4\xb2S!)D\xa57\x8eY>:\x93e\xb3/\x1ct\xf5\x11\xb9S\x89"J\xfb\x8a)\x10\x16\xbd\x17\x0e\xf3\xb4)\xef\x9ci\x1b\xc5\xc3\x16\xe4\xe9{O\x10\x91\xce\r&>a\x0b+\x95A\xc0\x10\x88,4\x1a\x93\x9dA5\xa2\xb2l\x03*\xf7p3"By\x11g\xf9\x0b,;\x83\xa3\x15\xd2p#/\x93\xb7L,\x16&k\x12\xaf\x0c\xd4!\x07\x0f//\xdfn\xa7\x17\x8a\x88\xc0\x1d\xbbv\xdf\x18k\x02(\x07\xcc\xd4g%)\x7fg-\x10\xba\x94\x1aO\x00\xb9\x08\xb3w\x9f\x0e)\xfcB\x00\x1c\x9d?\x05\x91\xa4>\x0f\xec\xd9\x8a#\x96\x87f\x0cj\xb9-\x07\xcc\xb5\xc6(,\xb3\xaa%\x93\xa163\xa1+Q&x5\x0f$\x87\x96\x939\x03\xe6\x08"w\xe4;\x15\x982M\x07^A\xca6\xe1\xb0\n\x16\x08\x0478\x13$\xe9\x03$\xaf\x11\x0bc\x17\x14&\x9d\xf3\xa3\x0f\xe1_\xd3!\x18\x97!1\xa9G\xca#F\xf5\'%hF\x150\xf4\x1f\xbc6\xe8`m\x07a\x9d\xa0\x04\x82Z\xe4,\xa3\xc1\xef0\x93\xcf\xa0\x1f\xafy\xd9\x15\xdd\x91\xbe)By6\x1f\x03e\x93\x01\xd3\x10\xed\x06\xb8:\xad\x0cc\xbfO\t\x81\x9e\x991D6\xa70\xd0\x93\xf3!\xe2q\xe9\x0f\x19\xf5\xb5\x0b\x1b\x08\x9b\x1f\x91\xd8\xfe8\x02\xbb\xa9!\xe2\xf8\x1f*\xbf\xd6\x8a,[X\xf70\xac F2\xe8S\'\x13N3#7b\xe4;\x1c\xdb\x02d\x02_\x98\x1922\xf5o,\x0fO\\\x03\xff\xd8\xf4+\xd1D\x8e\x05\x96\xa4I(\x04xm\x11\xb0\xe1V22W20=\xc9\x18/\xd1\x04\xa0\x17Ao\x1f\x12\x9e\xec\x15\x136\xedf#\xb7nq\x05\x1c\xbf\xfb2\x96\x0b\x87\x07\xa4\x10i\x1a\x96 \x8f\x04Z\xb0h/\x06u\x871\xe3\xf6\xda/\x06\xb3u\x1bvEv.\xe8&\xb3.PW\xa5\x03e\xd7_3\x89W\xa3 ]P\x0c\x0e\xce\xb84\x0b^I\x82 c\xb7t\x1f-\xe4\xd1\x17E\x92&%W~\x96\x076\xc7\x9e"E\xee\xe1&r\x17Q\x1dX\x1b\x89>v\xa9R:\x9d) )\x8c|\x8a\x07\xccU\xca\x028\x07\xde\x07Cd\x14#k\xe2#\x0bl\x08\xc4\x0c|\xbb9\x02\x82yl8\x0b\x0eB-\xa1\x1b\x113\xdf\xc6\x8e\'!\xe3\x86/\xca+\x17\x03p\x83\x96\x1d\xfc\xe0\xa4\x12\xc5\x08\x9e\x14j\x80@\x12\x8fbH\x13uO\x00\x16\xc4\x80\x02.\x02+G7\x88\x99\xd86\xafwt3\x03\x97\xe8\x05E\x86\x85\x19\x05\x19\xc5\x06V\xe5\xc7\x04\x8d\x88b\x0eUV\xd25\xb0\xb67&\xbaWM\x05bg\x07$\xbe\xe3\xf1\x12if\x9c0\n\xaf\xf8\tr\xdd^2\xdc\x8e\xee\x10\xf1\xc1\xc9\x03\x15L\x0e\x1c\x01\x122#\x8bV\x8f(z\xf5\xca\x05\xc2\xca\x86$\x00\x02\xb7\x18\x90\xe4\xd5$\xdb\xf06$\x9e>\x88\x18\xeb\xf3S/i\xba\x013\xe4\xad\xb9\x1b\xdf\x08\xaa*\xb5\x87^\x15\xb8\xc4\xd0\x08\x89\xf8:\x14\x9b\xd2B*Z\xdf\x8d\x16\xfe;\x03#\x97j\xcc\x10;\xb5\x01\x195\xc2_\x14\xb0Jp7K\xbcz3\x813x\x1c\xb1\xf4\xa5\x02\xd5\xc4a\x19\xe5\xd0S(O\x12p\x02&\xf3\xf4$\xbfoK4N\xba\x98#W\x94 >\xcfV\x17\'\xdaq\xf1*\x93k\x0b6|~X\x03\x8d\x9c\xe8!\xb0\xcb\x975|\x85S/\x9c\x95\xaa\x1d\x01q\x92,w\xa7\xec\'\xefN\x06\'\xde\x9d\x11#U\x8cb!r6\xf2#\xefe\xfd\x04q3\x1f\x0e\x97\xef;\x11\x88\xa10\x17C\xae?\x1d\x03\xc5\xee/v^$\x1f\xf8&3\x18\xdeU\x86-JH\x8c.,\xca\xa250G\x04\x1e{) ;w\x81~\x15\xa0K}\x0b[\xef\xa9#\x92\x83_-u^\x99\x00`Iu\x06\x0b\xd6g/p\xc4\xa3\x03\xb7\xbaw&\xf1\x07\xf3\x12\xcb\x86I%\x85me\x16\xb9\xab\xfe\x10\xa7GW\n;\xc9\xa1\x0b\xde\xdc|7\x86\xd3\x9b)J\xec\xdb\x11\xd3\x95\xd7!Q\xa8L*iv\xce\x0f\x9a\xc7Y\x1f\x15\x83O\nT\xb9Z\x0bWi\x90\x11F\x19t1\xf6\x94i;\x95\x10Q\nj\xf3\r\x1e&(r\x15\x00\x97\x83\x06\x1a}\xdf2\xa6\xab\x9b>/\xc44\x1a9\xfe\xf9\x08\x15(_\x07{\xc6\x93\x1b\x90Z\x95\x1d\x14{\xd4$\xd4\x90%\'g\xb3|\x01\xc6I\x16\x12\x9c\x990\'PY\xdd%\xcaxw\x01e\xaaq3N%`\x1b\xcf\x0b\x04-O\xf5#\x07N\xd7I\x12\xde\x8a\xd8-\xb57;$\xfb\xd8\x94\x17\x8a%"\x01\x91\x8d\x86%\xa0\xd6\xbf\x15\xf9i|\x07\xfc*\x05\x10)\x89\xf5+\xa45$\x08\xcbB\x9c&\xc4uB\x18|\x13\xfa\x13\x13\xf4\\3\x00Tf\x10\xf8= index: cur = cur + 1 del self._keys[cur] def index(self, key): if key not in self: raise KeyError(key) return self._keys.index(key) class ReadOnlyDict: def __init__(self, data): self.data = data def __call__(self, key): return self.data[key] if __name__ == '__main__': od = odict() phatch-0.2.7/phatch/lib/openImage.py0000644000000000000000000003334211346363116017231 0ustar rootroot00000000000000# Copyright (C) 2009 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import os import re import Image import imtools import system import thumbnail try: import pyexiv2 except: pyexiv2 = None def check_libtiff(compression): if not(open_libtiff or compression.lower() in ['raw', 'none']): raise Exception('Libtiff tools are needed for "%s" compression'\ % compression) def open(uri): format = imtools.get_format_filename(uri) local = not system.is_www_file(uri) # svg, pdf, ... if local: image = open_image_without_pil(uri, WITHOUT_PIL) if image: image.info['Format'] = image.format image.format = format return image # pil try: image = open_image_with_pil(uri) ok = True except IOError, message: ok = False # interlaced png if ok and not(Image.VERSION < '1.1.7' and image.format == 'PNG' and 'interlace' in image.info): return image # png, tiff (which pil can only handle partly) if local: image = open_image_without_pil(uri, ENHANCE_PIL) if image: image.info['Format'] = image.format image.format = format return image else: image = None if image is None: raise IOError(message) return imtools.open_image(uri) def open_image_exif(uri): return imtools.transpose_exif(open(uri)) def open_image_exif_thumb(uri): if pyexiv2: try: pyexiv2_image = pyexiv2.Image(uri) pyexiv2_image.readMetadata() thumb_data = pyexiv2_image.getThumbnailData() if thumb_data: return imtools.open_image_data(thumb_data) except Exception, details: pass return open_image_exif(uri) def open_thumb(filename, image=None, open_image=open_image_exif_thumb, size=thumbnail.SIZE, save_cache=True): return thumbnail.open(filename=filename, image=image, open_image=open_image, size=size, save_cache=save_cache) def open_image_with_pil(uri): image = imtools.open_image(uri) #types which PIL can open, but not load compression = image.info.get('compression', 'none') if hasattr(compression, 'startswith') and \ compression.startswith('group'): # tiff image with group4 compression check_libtiff('g4') # raise exception if openImage not present image = open_libtiff(uri) return image def open_image_without_pil(filename, method_register): """Try to open images which PIL can't handle.""" extension = system.file_extension(filename) if extension in method_register.extensions: methods = method_register.get_methods(extension) for open_method in methods: image = open_method(filename) if image: return image def open_image_with_command(filename, command, app, extension='png', temp_ext=None): """Open with an external command (such as Inkscape, dcraw, imagemagick). :param filename: filename, from which a temporary filename will be derived :type filename: string :param command: conversion command with optional temp file interpolation :type command: string :param extension: file type :type extension: string :param temp_ext: if a temp file can not be specified to the command (eg dcraw), give the file extension of the command output :type temp_ext: string """ temp = None temp_file = None if temp_ext: # eg dcraw temp_file = os.path.splitext(filename)[0] + '.' + temp_ext else: # imagemagick, ... if not extension.startswith('.'): extension = '.' + extension temp = system.TempFile(extension) temp_file = temp.path command.append(temp_file) try: output, error = system.shell(command) if os.path.exists(temp_file): image = Image.open(temp_file) image.load() # otherwise temp file can't be deleted image.info['Convertor'] = app return image finally: if temp: temp.close(force_remove=False) elif temp_ext and os.path.exists(temp_file): os.remove(temp_file) message = _('Could not open image with %s.') % app + \ '\n\n%s: %s\n\n%s: %s\n\n%s: %s' % \ (_('Command'), command, _('Output'), output, _('Error'), error) raise IOError(message) #libtiff TIFFINFO = system.find_exe("tiffinfo") TIFFCP = system.find_exe("tiffcp") if TIFFINFO and TIFFCP: RE_TIFF_FIELD = re.compile('\s+(.*?):\s+(.*?)\n') RE_TIFF_FIELD_IMAGE = re.compile(' Image (.*?):\s+(.*?)$') TIFF_COMPRESSION = { 'CCITT Group 3': 'g3', 'CCITT Group 4': 'g4', 'Deflate': 'zip', 'JPEG': 'jpeg', 'LZW': 'lzw', 'PackBits': 'packbits', 'None': 'none', } TIFF_COMPRESSION_TYPES = TIFF_COMPRESSION.values() TIFF_COMPRESSION_TYPES.sort() def get_info_libtiff(filename): """Get tiff info of a file with ``tiffinfo``, which needs to be installed on your system. :param filename: name of tiff image file :type filename: string :returns: info about the file :rtype: dict """ result = {} def set(key, value): key = 'libtiff.' + key.lower().replace(' ', '.') if not (key in result): result[key] = value source, err = system.shell((TIFFINFO, filename)) for match in RE_TIFF_FIELD.finditer(source): value = match.group(2) again = RE_TIFF_FIELD_IMAGE.search(value) if again: set('Image %s' % again.group(1), again.group(2)) set(match.group(1), value[:again.start()]) else: set(match.group(1), value) if not result: raise IOError('Not a TIFF or MDI file, bad magic number.') result['compression'] = \ TIFF_COMPRESSION[result['libtiff.compression.scheme']] return result def open_libtiff(filename): """Opens a tiff file with ``tiffcp``, which needs to be installed on your system. :param filename: name of tiff image file :type filename: string :returns: PIL image :rtype: Image.Image """ # get info info = get_info_libtiff(filename) # extract temp = system.TempFile() command = (TIFFCP, '-c', 'none', '-r', '-1', filename, temp.path) try: returncode = system.shell_returncode(command) if returncode == 0: image = Image.open(temp.path) image.load() # otherwise temp file can't be deleted image.info.update(info) image.info['Convertor'] = 'libtiff' return image finally: temp.close(force_remove=False) raise IOError('Could not extract tiff image with tiffcp.') def save_libtiff(image, filename, compression=None, **options): """Saves a tiff compressed file with tiffcp. :param image: PIL image :type image: Image.Image :param filename: name of tiff image file :type filename: string :param compression: g3, g4, jpeg, lzw, tiff_lzw :type compression: string :returns: log message :rtype: string """ if compression in ['raw', 'none']: image.save(filename, 'tiff', **options) return '' if compression is None: compression = image.info['compression'] elif compression in ['g3', 'g4'] and image.mode != '1': image = image.convert('1') if compression == 'jpeg': option = ['-r', '16'] if image.mode == 'RGBA': image = image.convert('RGB') else: option = [] if compression == 'tiff_lzw': compression = 'lzw' temp = system.TempFile() try: image.save(temp.path, 'tiff', **options) input = [TIFFCP, temp.path, '-c', compression] if option: input.extend(option) input.append(filename) out, err = system.shell(input) finally: temp.close() if out or err: return 'Subprocess "tiffcp"\ninput:\n%s\noutput:\n%s%s\n'\ % (input, out, err) return '' else: open_libtiff = save_libtiff = get_info_libtiff = None # inkscape INKSCAPE = system.find_exe('inkscape') if INKSCAPE: def open_inkscape(filename): """Open an Inkscape file.""" command = [INKSCAPE, filename, '-e'] return open_image_with_command(filename, command, 'inkscape') else: open_inkscape = None # imagemagick IMAGEMAGICK_CONVERT = system.find_exe('convert') IMAGEMAGICK_IDENTIFY = system.find_exe('identify') if IMAGEMAGICK_CONVERT: def open_imagemagick(filename): """Open an image with Imagemagick.""" command = [IMAGEMAGICK_CONVERT, filename, '-interlace', 'none', '-background', 'none', '-flatten'] return open_image_with_command(filename, command, 'imagemagick') else: open_imagemagick = None if IMAGEMAGICK_IDENTIFY: def verify_imagemagick(filename): """Verify an image with Imagemagick.""" command = (IMAGEMAGICK_IDENTIFY, '-quiet', filename) retcode = system.shell_returncode(command) if retcode == 0: return True return False else: verify_imagemagick = None # xcf tools (gimp) XCF2PNG = system.find_exe('xcf2png') XCFINFO = system.find_exe('xcfinfo') if XCF2PNG: def open_xcf(filename): """Open a gimp file.""" command = [XCF2PNG, filename, '-o'] return open_image_with_command(filename, command, 'xcf2png') else: open_xcf = None if XCFINFO: def verify_xcf(filename): """Verify a gimp file.""" command = (XCFINFO, '-u', filename) retcode = system.shell_returncode(command) if retcode == 0: return True return False else: verify_xcf = None # dcraw DCRAW = system.find_exe('dcraw') if DCRAW: def open_dcraw(filename): """Open a camera raw image file.""" command = [DCRAW, '-w', filename] return open_image_with_command(filename, command, 'xcf2png', temp_ext='ppm') def verify_dcraw(filename): """Verify a camera raw image file.""" command = (DCRAW, '-i', filename) retcode = system.shell_returncode(command) if retcode == 0: return True return False else: open_dcraw = None verify_dcraw = None # register methods # IMPORTANT: the order of registering is important, the method # which is first registered gets more priority RAW_EXTENSIONS = ['arw', 'cr2', 'crw', 'dcr', 'dng', 'erf', 'kdc', 'nef', 'orf', 'pef', 'raf', 'sr2', 'srf', 'x3f'] WITHOUT_PIL = system.MethodRegister() WITHOUT_PIL.register(['xcf'], open_xcf) WITHOUT_PIL.register(RAW_EXTENSIONS, open_dcraw) WITHOUT_PIL.register(['svg', 'svgz'], open_inkscape) WITHOUT_PIL.register(['ai', 'avi', 'cmyk', 'cmyka', 'dpx', 'eps', 'exr', 'mng', 'mov', 'mpeg', 'mpg', 'otf', 'pdf', 'pict', 'ps', 'psd', 'svg', 'svgz', 'ttf', 'wmf', 'xcf', 'xpm', 'ycbcr', 'ycbcra', 'yuv'], open_imagemagick) # This is for file formats which PIL can read, but not all subformats # For example: compressed tiff files ENHANCE_PIL = system.MethodRegister() ENHANCE_PIL.register(['tiff'], open_libtiff) ENHANCE_PIL.register(['png'], open_imagemagick) VERIFY_WITHOUT_PIL = system.MethodRegister() VERIFY_WITHOUT_PIL.register(['xcf'], verify_xcf) VERIFY_WITHOUT_PIL.register(RAW_EXTENSIONS, verify_dcraw) VERIFY_WITHOUT_PIL.register(['eps', 'psd', 'pdf', 'svg', 'svgz', 'wmf', 'xcf'], verify_imagemagick) def verify_image(info_file, valid, invalid, method_register=VERIFY_WITHOUT_PIL): extension = system.file_extension(info_file['path']) if extension in method_register.extensions: verify_image_without_pil(info_file, method_register, valid, invalid) else: verify_image_with_pil(info_file, valid, invalid) def verify_image_with_pil(info_file, valid, invalid): try: im = open(info_file['path']) #if info has 'Convertor', the image is not opened by PIL #and already loaded and verified if not ('Convertor' in im.info): im.verify() valid.append(info_file) return True except Exception, error: invalid.append(info_file['path']) return False def verify_image_without_pil(info_file, method_register, valid, invalid): """Try to verify images which PIL can't handle.""" extension = system.file_extension(info_file['path']) methods = method_register.get_methods(extension) for verify_method in methods: if verify_method(info_file['path']): valid.append(info_file) return True invalid.append(info_file['path']) return False if __name__ == '__main__': print TIFF_COMPRESSION_TYPES filename = '/home/stani/Downloads/0009.tif' image = open(filename) print(image.info) #save(image.rotate(10), filename + '.tif', compression='g4') phatch-0.2.7/phatch/lib/pyWx/0000755000000000000000000000000011346363116015715 5ustar rootroot00000000000000phatch-0.2.7/phatch/lib/pyWx/__init__.py0000644000000000000000000000126011346363116020025 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follow PEP8 phatch-0.2.7/phatch/lib/pyWx/about.py0000644000000000000000000002473711346363116017416 0ustar rootroot00000000000000# -*- coding: UTF-8 -*- # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # generated by wxGlade 0.4.1cvs on Thu Jun 7 21:24:31 2007 from /home/stani/sync/python/convert/trunk/about.wxg # auto generated so no pep 8 import sys import wx import wx.lib.hyperlink as hl if sys.platform.startswith('win'): class TransparentBitmap(wx.Panel): def __init__(self,parent,id,bitmap=wx.NullBitmap,*args,**keyw): super(TransparentBitmap,self).__init__(parent,id,*args,**keyw) self.SetBitmap(bitmap) self.Bind(wx.EVT_PAINT, self.OnPaint) def SetBitmap(self,bitmap): self._bitmap = bitmap size = self._bitmap.GetSize() self.SetSize(size) self.SetMinSize(size) self.GetParent().Layout() def OnPaint(self, evt): dc = wx.PaintDC(self) dc.SetBackground(wx.Brush( self.GetParent().GetBackgroundColour())) dc.Clear() dc.DrawBitmap(self._bitmap, 0,0, True) else: TransparentBitmap = wx.StaticBitmap class wxgAboutDialog(wx.Dialog): def __init__(self, *args, **kwds): # begin wxGlade: wxgAboutDialog.__init__ kwds["style"] = wx.DEFAULT_DIALOG_STYLE wx.Dialog.__init__(self, *args, **kwds) self.logo = TransparentBitmap(self, -1, wx.NullBitmap) self.title = wx.StaticText(self, -1, _("Program Version"), style=wx.ALIGN_CENTRE) self.description = wx.StaticText(self, -1, _("Description")) self.website = hl.HyperLinkCtrl(self, -1, label = 'http://www.stani.be', URL = 'http://www.stani.be') self.credits = wx.Button(self, -1, _("C&redits")) self.license = wx.Button(self, -1, _("&License")) self.close = wx.Button(self, wx.ID_CLOSE, _("&Close")) self.__set_properties() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.OnCredits, self.credits) self.Bind(wx.EVT_BUTTON, self.OnLicense, self.license) self.Bind(wx.EVT_BUTTON, self.OnClose, id=wx.ID_CLOSE) # end wxGlade def __set_properties(self): # begin wxGlade: wxgAboutDialog.__set_properties self.SetTitle(_("About")) self.license.SetDefault() # end wxGlade def __do_layout(self): # begin wxGlade: wxgAboutDialog.__do_layout sizer_7 = wx.BoxSizer(wx.VERTICAL) sizer_9 = wx.BoxSizer(wx.HORIZONTAL) sizer_7.Add(self.logo, 1, wx.ALIGN_CENTER_HORIZONTAL, 0) sizer_7.Add(self.title, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 4) sizer_7.Add(self.description, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 4) sizer_7.Add(self.website, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 4) sizer_9.Add(self.credits, 0, wx.ALL|wx.EXPAND, 4) sizer_9.Add(self.license, 0, wx.ALL|wx.EXPAND, 3) sizer_9.Add(self.close, 0, wx.ALL|wx.EXPAND, 4) sizer_7.Add(sizer_9, 0, wx.TOP|wx.ALIGN_CENTER_HORIZONTAL, 10) self.SetSizer(sizer_7) sizer_7.Fit(self) self.Layout() # end wxGlade def OnCredits(self, event): # wxGlade: wxgAboutDialog. print "Event handler `OnCredits' not implemented!" event.Skip() def OnLicense(self, event): # wxGlade: wxgAboutDialog. print "Event handler `OnLicense' not implemented!" event.Skip() def OnClose(self, event): # wxGlade: wxgAboutDialog. print "Event handler `OnClose' not implemented!" event.Skip() # end of class wxgAboutDialog class wxgCreditsDialog(wx.Dialog): def __init__(self, *args, **kwds): # begin wxGlade: wxgCreditsDialog.__init__ kwds["style"] = wx.DEFAULT_DIALOG_STYLE wx.Dialog.__init__(self, *args, **kwds) self.notebook = wx.Notebook(self, -1, style=0) self.notebook_pane_6 = wx.Panel(self.notebook, -1) self.notebook_1_pane_5 = wx.Panel(self.notebook, -1) self.notebook_1_pane_4 = wx.Panel(self.notebook, -1) self.notebook_1_pane_3 = wx.Panel(self.notebook, -1) self.notebook_1_pane_2 = wx.Panel(self.notebook, -1) self.notebook_1_pane_1 = wx.Panel(self.notebook, -1) self.credits_code = wx.TextCtrl(self.notebook_1_pane_1, -1, "", style=wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL) self.credits_documentation = wx.TextCtrl(self.notebook_1_pane_2, -1, "", style=wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL) self.credits_translation = wx.TextCtrl(self.notebook_1_pane_3, -1, "", style=wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL) self.credits_graphics = wx.TextCtrl(self.notebook_1_pane_4, -1, "", style=wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL) self.credits_libraries = wx.TextCtrl(self.notebook_1_pane_5, -1, "", style=wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL) self.credits_sponsors = wx.TextCtrl(self.notebook_pane_6, -1, "", style=wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL) self.close = wx.Button(self, wx.ID_CLOSE, _("&Close")) self.__set_properties() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.OnClose, id=wx.ID_CLOSE) # end wxGlade def __set_properties(self): # begin wxGlade: wxgCreditsDialog.__set_properties self.SetTitle(_("Credits")) # end wxGlade def __do_layout(self): # begin wxGlade: wxgCreditsDialog.__do_layout sizer_100 = wx.BoxSizer(wx.VERTICAL) sizer_1 = wx.BoxSizer(wx.HORIZONTAL) sizer_11_copy_3 = wx.BoxSizer(wx.HORIZONTAL) sizer_11_copy_2 = wx.BoxSizer(wx.HORIZONTAL) sizer_11_copy_1 = wx.BoxSizer(wx.HORIZONTAL) sizer_11_copy = wx.BoxSizer(wx.HORIZONTAL) sizer_11 = wx.BoxSizer(wx.HORIZONTAL) sizer_11.Add(self.credits_code, 1, wx.EXPAND, 0) self.notebook_1_pane_1.SetSizer(sizer_11) sizer_11_copy.Add(self.credits_documentation, 1, wx.EXPAND, 0) self.notebook_1_pane_2.SetSizer(sizer_11_copy) sizer_11_copy_1.Add(self.credits_translation, 1, wx.EXPAND, 0) self.notebook_1_pane_3.SetSizer(sizer_11_copy_1) sizer_11_copy_2.Add(self.credits_graphics, 1, wx.EXPAND, 0) self.notebook_1_pane_4.SetSizer(sizer_11_copy_2) sizer_11_copy_3.Add(self.credits_libraries, 1, wx.EXPAND, 0) self.notebook_1_pane_5.SetSizer(sizer_11_copy_3) sizer_1.Add(self.credits_sponsors, 1, wx.EXPAND, 0) self.notebook_pane_6.SetSizer(sizer_1) self.notebook.AddPage(self.notebook_1_pane_1, _("Code")) self.notebook.AddPage(self.notebook_1_pane_2, _("Documentation")) self.notebook.AddPage(self.notebook_1_pane_3, _("Translation")) self.notebook.AddPage(self.notebook_1_pane_4, _("Artwork")) self.notebook.AddPage(self.notebook_1_pane_5, _("Libraries")) self.notebook.AddPage(self.notebook_pane_6, _("Sponsors")) sizer_100.Add(self.notebook, 1, wx.EXPAND, 0) sizer_100.Add(self.close, 0, wx.ALL|wx.ALIGN_RIGHT, 4) self.SetSizer(sizer_100) sizer_100.Fit(self) self.Layout() # end wxGlade def OnClose(self, event): # wxGlade: wxgCreditsDialog. print "Event handler `OnClose' not implemented!" event.Skip() # end of class wxgCreditsDialog class CreditsDialog(wxgCreditsDialog): """Credit dialog.""" def __init__(self,parent,credits): """Shows a dialog with the credits of a project. :param parent: parent control of dialog (mostly app frame) :type parent: wx.Window :param credits: people by category :type credits: dictionary """ super(CreditsDialog,self).__init__(parent,-1) for attr, all in credits.items(): ctrl = getattr(self,'credits_%s'%attr) ctrl.SetValue('\n'.join([' - '.join(x.values()) for x in all])) w, h = parent.GetSize() self.SetSize((int(2*w),int(h/1.5))) def OnClose(self,event): self.EndModal(wx.ID_CLOSE) class Dialog(wxgAboutDialog): def __init__(self,parent,title,logo,description,website, credits, license): super(Dialog,self).__init__(parent,-1) self.SetBackgroundColour(self.GetBackgroundColour()) #title self.title.SetLabel(title) title_font = self.title.GetFont() title_font.SetPointSize(title_font.GetPointSize()*3) self.title.SetFont(title_font) #logo self.logo.SetBitmap(logo) #description self.description.SetLabel(description.replace('&','&&')) #website self.website.SetLabel(website) self.website.SetURL(website) #save other parameters self.credits = credits self.license = license #layout self.GetSizer().Fit(self) self.Layout() def OnCredits(self,event): dlg = CreditsDialog(self,self.credits) dlg.ShowModal() dlg.Destroy() def OnLicense(self,event): import wx.lib.dialogs dlg = wx.lib.dialogs.ScrolledMessageDialog(self, self.license, _('License')) dlg.ShowModal() def OnClose(self,event): self.Destroy() def example(): import gettext, random gettext.install("test") # replace with the appropriate catalog name def create_credits(*args): result = {} for arg in args: result[arg] = [{ 'name':'%s %d' % (arg, x), 'email':'info@%s%d.com' % (arg, x)} for x in range(random.randint(1, 9))] return result app = wx.PySimpleApp(0) logo = wx.ArtProvider_GetBitmap(wx.ART_GO_HOME,wx.ART_OTHER,(128,128)) credits = create_credits('code','documentation','translation', 'libraries','graphics') aboutDialog = Dialog(None, 'title', logo, 'description', 'website', credits, 'license (latest GPL)') app.SetTopWindow(aboutDialog) aboutDialog.Show() app.MainLoop() if __name__ == "__main__": example() phatch-0.2.7/phatch/lib/pyWx/about.wxg0000644000000000000000000002554711346363116017573 0ustar rootroot00000000000000 About wxVERTICAL wxALIGN_CENTER_HORIZONTAL 0 1 wxALL|wxALIGN_CENTER_HORIZONTAL 4 1 wxALL|wxALIGN_CENTER_HORIZONTAL 4 1 wxALL|wxALIGN_CENTER_HORIZONTAL 4 $parent $id label = 'http://www.stani.be' URL = 'http://www.stani.be' wxTOP|wxALIGN_CENTER_HORIZONTAL 10 wxHORIZONTAL wxALL|wxEXPAND 4 OnCredits wxALL|wxEXPAND 3 1 OnLicense wxALL|wxEXPAND 4 wx.ID_CLOSE OnClose Credits wxVERTICAL wxEXPAND 0 Code Documentation Translation Artwork Libraries Sponsors wxHORIZONTAL wxEXPAND 0 wxHORIZONTAL wxEXPAND 0 wxHORIZONTAL wxEXPAND 0 wxHORIZONTAL wxEXPAND 0 wxHORIZONTAL wxEXPAND 0 wxHORIZONTAL wxEXPAND 0 wxALL|wxALIGN_RIGHT 4 wx.ID_CLOSE OnClose phatch-0.2.7/phatch/lib/pyWx/autoCompleteCtrls.py0000644000000000000000000002241211346363116021741 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import locale import sys import wx import graphics from other.pyWx.TextCtrlAutoComplete import TextCtrlAutoComplete if hasattr(wx, "PopupWindow"): class AutoCompleteTextCtrl(TextCtrlAutoComplete): def __init__(self, parent, id, value, style, choices): #ignore style TextCtrlAutoComplete.__init__(self, parent, choices=choices) self.initialize(value, choices) def initialize(self, value, choices): self.all_choices = choices self.SetValue(value) self.SetEntryCallback(self.setDynamicChoices) self.SetMatchFunction(self.match) self.setDynamicChoices() wx.CallAfter(self._showDropDown) def match(self, text, choice): ''' Demonstrate "smart" matching feature, by ignoring http:// and www. when doing matches. ''' t = text.strip().lower() c = choice.lower() if c.startswith(t): return True if c.startswith(r'http://'): c = c[7:] if c.startswith(t): return True if c.startswith('www.'): c = c[4:] return c.startswith(t) def setDynamicChoices(self): text = self.GetValue().lower() current_choices = self.GetChoices() choices = [choice for choice in self.all_choices if self.match(text, choice)] if choices != current_choices: self.SetChoices(choices) def _showDropDown(self, state=True): if not self.dropdown.IsShown(): TextCtrlAutoComplete._showDropDown(self, True) def onControlChanged(self, event): if self: TextCtrlAutoComplete._showDropDown(self, False) event.Skip() def onClickToggleDown(self, event): TextCtrlAutoComplete.onClickToggleDown(self, event) self._showDropDown() def onListClick(self, evt): TextCtrlAutoComplete.onListClick(self, evt) self._setValueFromSelected() def _setValueFromSelected(self): TextCtrlAutoComplete._setValueFromSelected(self) TextCtrlAutoComplete._showDropDown(self, False) def StartEvents(self): p = wx.GetTopLevelParent(self) p.Bind(wx.EVT_ACTIVATE, self.onControlChanged) p.Bind(wx.EVT_MOVE, self.onControlChanged) def StopEvents(self): p = wx.GetTopLevelParent(self) p.Unbind(wx.EVT_ACTIVATE) p.Unbind(wx.EVT_MOVE) def onActivate(self, evt): if evt.GetActive(): self._showDropDown() else: self.onControlChanged(evt) class AutoCompleteIconCtrl(AutoCompleteTextCtrl): def __init__(self, parent, id, value, style, choices, colNames=None, multiChoices=None, showHead=True, dropDownClick=True, colFetch=-1, colSearch=0, hideOnNoMatch=True, selectCallback=None, entryCallback=None, matchFunction=None, **therest): ''' Constructor works just like wx.TextCtrl except you can pass in a list of choices. You can also change the choice list at any time by calling setChoices. ''' if 'style' in therest: therest['style'] = wx.TE_PROCESS_ENTER | therest['style'] else: therest['style'] = wx.TE_PROCESS_ENTER wx.TextCtrl.__init__(self, parent, **therest) #Some variables self._dropDownClick = dropDownClick self._colNames = colNames self._multiChoices = multiChoices self._showHead = showHead self._choices = choices self._lastinsertionpoint = 0 self._hideOnNoMatch = hideOnNoMatch self._selectCallback = selectCallback self._entryCallback = entryCallback self._matchFunction = matchFunction self._screenheight = wx.SystemSettings.GetMetric(wx.SYS_SCREEN_Y) #sort variable needed by listmix self.itemDataMap = dict() #Load and sort data if not (self._multiChoices or self._choices): raise ValueError( "Pass me at least one of multiChoices OR choices") #widgets #Control the style self.dropdown = wx.PopupWindow(self, wx.SIMPLE_BORDER) flags = wx.NO_BORDER | wx.LC_ICON | wx.LC_SINGLE_SEL \ | wx.LC_SORT_ASCENDING #if not (showHead and multiChoices) : # flags = flags | wx.LC_NO_HEADER #Create the list and bind the events size = (64, 64) self.il = wx.ImageList(*size) self.sm_dn = self.il.Add(graphics.bitmap('ART_FOLDER', size)) self.sm_up = self.il.Add(graphics.bitmap('ART_FOLDER', size)) self.dropdownlistbox = wx.ListCtrl(self.dropdown, style=flags, pos=wx.Point(0, 0)) self.dropdownlistbox.SetImageList(self.il, wx.IMAGE_LIST_NORMAL) if sys.platform.startswith('linux'): self.dropdownlistbox.SetBackgroundColour( wx.SystemSettings_GetColour(wx.SYS_COLOUR_INFOBK)) #initialize the parent if multiChoices: ln = len(multiChoices) else: ln = 1 #else: ln = len(choices) #load the data if multiChoices: self.SetMultipleChoices(multiChoices, colSearch=colSearch, colFetch=colFetch) else: self.SetChoices(choices) gp = wx.GetTopLevelParent(self) #while ( gp != None ) : gp.Bind(wx.EVT_MOVE, self.onControlChanged, gp) gp.Bind(wx.EVT_SIZE, self.onControlChanged, gp) #gp = gp.GetParent() self.Bind(wx.EVT_KILL_FOCUS, self.onControlChanged, self) self.Bind(wx.EVT_TEXT, self.onEnteredText, self) self.Bind(wx.EVT_KEY_DOWN, self.onKeyDown, self) #If need drop down on left click if dropDownClick: self.Bind(wx.EVT_LEFT_DOWN, self.onClickToggleDown, self) self.Bind(wx.EVT_LEFT_UP, self.onClickToggleUp, self) self.dropdown.Bind(wx.EVT_LISTBOX, self.onListItemSelected, self.dropdownlistbox) self.dropdownlistbox.Bind(wx.EVT_LEFT_DOWN, self.onListClick) self.dropdownlistbox.Bind(wx.EVT_LEFT_DCLICK, self.onListDClick) self.dropdownlistbox.Bind(wx.EVT_LIST_COL_CLICK, self.onListColClick) self._ascending = True self.initialize(value, choices) self.dropdown.SetSize((self.dropdown.GetSize()[0], 500)) def match(self, text, choice): ''' Demonstrate "smart" matching feature, by ignoring http:// and www. when doing matches. ''' return text.strip().lower() in choice.lower() def SetChoices(self, choices): ''' Sets the choices available in the popup wx.ListBox. The items will be sorted case insensitively. ''' choices = choices[:34] self._choices = choices self._multiChoices = None flags = wx.LC_ICON | wx.LC_SINGLE_SEL \ | wx.LC_SORT_ASCENDING | wx.LC_NO_HEADER self.dropdownlistbox.SetWindowStyleFlag(flags) if not isinstance(choices, list): self._choices = [x for x in choices] #prevent errors on "old" systems if sys.version.startswith("2.3"): self._choices.sort(lambda x, y: cmp(x.lower(), y.lower())) else: self._choices.sort(key=lambda x: locale.strxfrm(x).lower()) self._updateDataList(self._choices) self.dropdownlistbox.InsertColumn(0, "") for num, colVal in enumerate(self._choices): index = self.dropdownlistbox.InsertImageStringItem( sys.maxint, colVal, self.sm_dn) self.dropdownlistbox.SetStringItem(index, 0, colVal) self.dropdownlistbox.SetItemData(index, num) self._setListSize() # there is only one choice for both search # and fetch if setting a single column: self._colSearch = 0 self._colFetch = -1 else: AutoCompleteTextCtrl = AutoCompleteIconCtrl = wx.ComboBox phatch-0.2.7/phatch/lib/pyWx/clipboard.py0000644000000000000000000000257611346363116020240 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import wx def copy_text(text): """Copies text to the clipboard. :param text: text to copy :type text: string :returns: if the operation was succesfull :rtype: bool """ if wx.TheClipboard.Open(): text_data = wx.TextDataObject(text) wx.TheClipboard.SetData(text_data) wx.TheClipboard.Close() return True return False def get_text(): """Gets text from the clipboard. :returns: text from the clipboard or an empty string :rtype: string """ if wx.TheClipboard.Open(): text_data = wx.TextDataObject() wx.TheClipboard.GetData(text_data) wx.TheClipboard.Close() return text_data.GetText() return '' phatch-0.2.7/phatch/lib/pyWx/compatible.py0000644000000000000000000000271111346363116020407 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 """This library enables enhanced features based on wxPython versions.""" import sys import wx if hasattr(wx, 'SearchCtrl'): #wxPython 2.8+ class SearchCtrl(wx.SearchCtrl): def __init__(self, *args, **keyw): super(SearchCtrl, self).__init__(*args, **keyw) self.Bind(wx.EVT_SEARCHCTRL_CANCEL_BTN, self.OnCancel) self.ShowCancelButton(True) def OnCancel(self, event): self.SetValue('') else: #wxPython 2.6- SearchCtrl = wx.TextCtrl if hasattr(wx, 'GCDC'): if sys.platform.startswith('win'): FONT_SIZE = 15 else: FONT_SIZE = 20 def GCDC(x): try: return wx.GCDC(x) except: return x else: FONT_SIZE = 15 def GCDC(x): return x phatch-0.2.7/phatch/lib/pyWx/dialogsInspector.py0000644000000000000000000000603411346363116021603 0ustar rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # generated by wxGlade 0.6.3 on Sun Jun 28 16:06:30 2009 # NO PEP 8 import wx # begin wxGlade: extracode # end wxGlade class AddTagDialog(wx.Dialog): def __init__(self, *args, **kwds): # begin wxGlade: AddTagDialog.__init__ kwds["style"] = wx.DEFAULT_DIALOG_STYLE wx.Dialog.__init__(self, *args, **kwds) self.tag_label = wx.StaticText(self, -1, _("Tag")) self.tag = wx.ComboBox(self, -1, choices=[_("Exif_Photo_UserComment")], style=wx.CB_DROPDOWN | wx.CB_DROPDOWN | wx.CB_SORT) self.value_label = wx.StaticText(self, -1, _("Value")) self.value = wx.TextCtrl(self, -1, "") self.warning = wx.StaticText(self, -1, _("warning")) self.panel_2 = wx.Panel(self, -1) self.cancel = wx.Button(self, wx.ID_CANCEL, "") self.add = wx.Button(self, wx.ID_ADD, "") self.__set_properties() self.__do_layout() self.Bind(wx.EVT_TEXT, self.OnTagText, self.tag) self.Bind(wx.EVT_BUTTON, self.OnAdd, self.add) # end wxGlade def __set_properties(self): # begin wxGlade: AddTagDialog.__set_properties self.SetTitle(_("Add Tag")) self.tag.SetMinSize((300,-1)) self.tag.SetSelection(0) self.value.SetMinSize((100,-1)) self.warning.Enable(False) self.add.SetDefault() # end wxGlade def __do_layout(self): # begin wxGlade: AddTagDialog.__do_layout sizer_14 = wx.BoxSizer(wx.VERTICAL) sizer_16 = wx.BoxSizer(wx.HORIZONTAL) grid_sizer_1 = wx.FlexGridSizer(2, 2, 4, 4) grid_sizer_1.Add(self.tag_label, 0, wx.ALIGN_CENTER_VERTICAL, 0) grid_sizer_1.Add(self.tag, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0) grid_sizer_1.Add(self.value_label, 0, wx.ALIGN_CENTER_VERTICAL, 0) grid_sizer_1.Add(self.value, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0) grid_sizer_1.AddGrowableCol(1) sizer_14.Add(grid_sizer_1, 1, wx.ALL|wx.EXPAND, 8) sizer_14.Add(self.warning, 0, wx.LEFT|wx.RIGHT, 8) sizer_16.Add(self.panel_2, 1, wx.EXPAND, 0) sizer_16.Add(self.cancel, 0, wx.TOP|wx.BOTTOM|wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL, 8) sizer_16.Add(self.add, 0, wx.ALL|wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL, 8) sizer_14.Add(sizer_16, 0, wx.EXPAND|wx.ALIGN_RIGHT, 0) self.SetSizer(sizer_14) sizer_14.Fit(self) self.Layout() # end wxGlade def OnTagText(self, event): # wxGlade: AddTagDialog. print "Event handler `OnTagText' not implemented!" event.Skip() def OnAdd(self, event): # wxGlade: AddTagDialog. print "Event handler `OnAdd' not implemented" event.Skip() # end of class AddTagDialog if __name__ == "__main__": import gettext gettext.install("app") # replace with the appropriate catalog name app = wx.PySimpleApp(0) wx.InitAllImageHandlers() dialog = AddTagDialog(None, -1, "") app.SetTopWindow(dialog) dialog.Show() app.MainLoop() phatch-0.2.7/phatch/lib/pyWx/dialogsInspector.wxg0000644000000000000000000001257611346363116021770 0ustar rootroot00000000000000 Add Tag wxVERTICAL wxALL|wxEXPAND 8 4 2 1 2 4 wxALIGN_CENTER_VERTICAL 0 1 wxEXPAND|wxALIGN_CENTER_VERTICAL 0 0 Exif_Photo_UserComment OnTagText 300,-1 wxALIGN_CENTER_VERTICAL 0 1 wxEXPAND|wxALIGN_CENTER_VERTICAL 0 100,-1 wxLEFT|wxRIGHT 8 1 1 wxEXPAND|wxALIGN_RIGHT 0 wxHORIZONTAL wxEXPAND 0 wxTOP|wxBOTTOM|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL 8 CANCEL wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL 8 ADD 1 OnAdd phatch-0.2.7/phatch/lib/pyWx/droplet.py0000644000000000000000000001121011346363116017733 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 #standard modules import types #gui-dependent import wx def fix_paths(paths): if isinstance(paths, (types.ListType, types.TupleType)) \ and len(paths) == 1: paths = paths[0] if isinstance(paths, types.StringTypes): paths = paths.strip().split('\n') for index, path in enumerate(paths): if path.startswith('file://'): paths[index] = path[7:] return paths class FileDropTarget(wx.FileDropTarget): def __init__(self, method): super(FileDropTarget, self).__init__() self.method = method def OnDropFiles(self, x, y, filenames): self.method(fix_paths(filenames), x, y) class Mixin: def SetAsFileDropTarget(self, object, method): dt = FileDropTarget(method) object.SetDropTarget(dt) class Frame(Mixin, wx.Frame): def __init__(self, parent, title, bitmap, method=None, label='', label_color=wx.BLACK, label_angle=0, label_pos=(0, 0), auto=False, pos=(0, 0), OnShow=None, splash=False, tooltip=''): wx.Frame.__init__(self, parent, -1, title, pos=pos, style=wx.FRAME_SHAPED | wx.SIMPLE_BORDER | wx.FRAME_NO_TASKBAR \ | wx.STAY_ON_TOP) self.label = label self.label_color = label_color self.label_x, self.label_y = label_pos self.label_angle = label_angle if OnShow: self.OnShow = OnShow self.hasShape = False self.delta = (0, 0) self.Bind(wx.EVT_LEFT_DCLICK, self.OnDoubleClick) self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp) self.Bind(wx.EVT_MOTION, self.OnMouseMove) self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp) self.Bind(wx.EVT_PAINT, self.OnPaint) self.bmp = bitmap w, h = self.bmp.GetWidth(), self.bmp.GetHeight() self.SetClientSize((w, h)) if wx.Platform != "__WXMAC__" and tooltip: #wxMac clips the tooltip to the window shape, YUCK!!! self.SetToolTipString(tooltip) if wx.Platform == "__WXGTK__": #wxGTK requires that the window be created before you can #set its shape, so delay the call to SetWindowShape until #this event. self.Bind(wx.EVT_WINDOW_CREATE, self.SetWindowShape) else: #On wxMSW and wxMac the window has already been created, #so go for it. self.SetWindowShape() dc = wx.ClientDC(self) dc.DrawBitmap(self.bmp, 0, 0, True) self.SetAsFileDropTarget(self, method) if auto: self.show() def show(self, bool=True): self.GetParent().Show(not bool) if bool: self.Show() else: self.Destroy() self.OnShow(bool) def SetWindowShape(self, *evt): # Use the bitmap's mask to determine the region r = wx.RegionFromBitmap(self.bmp) self.hasShape = self.SetShape(r) def OnDoubleClick(self, evt): self.show(False) def OnPaint(self, evt): dc = wx.PaintDC(self) dc.DrawBitmap(self.bmp, 0, 0, True) font = wx.Font(7, wx.NORMAL, wx.NORMAL, wx.NORMAL) dc.SetFont(font) dc.SetTextForeground(self.label_color) dc.DrawRotatedText(self.label, self.label_x, self.label_y, self.label_angle) def OnRightUp(self, evt): self.show(False) def OnLeftDown(self, evt): self.CaptureMouse() x, y = self.ClientToScreen(evt.GetPosition()) originx, originy = self.GetPosition() dx = x - originx dy = y - originy self.delta = ((dx, dy)) def OnLeftUp(self, evt): if self.HasCapture(): self.ReleaseMouse() def OnMouseMove(self, evt): if evt.Dragging() and evt.LeftIsDown(): x, y = self.ClientToScreen(evt.GetPosition()) fp = (x - self.delta[0], y - self.delta[1]) self.Move(fp) def OnShow(self, bool): pass phatch-0.2.7/phatch/lib/pyWx/folderFileBrowser.py0000644000000000000000000002320211346363116021705 0ustar rootroot00000000000000# -*- coding: utf-8 -*- # Copyright (C) 2009 www.stani.be # # 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 http://www.gnu.org/licenses/ # generated by wxGlade 0.6.3 on Sat Aug 22 16:01:46 2009 # NO PEP 8 if __name__ == '__main__': #to run examples import sys sys.path.insert(0, '..') sys.path.insert(0, '../..') import gettext gettext.install("test") import operator import os import wx from wx.lib.newevent import NewEvent from lib import listData from lib.system import start from lib.openImage import open_thumb from compatible import SearchCtrl from wxPil import pil_wxBitmap # begin wxGlade: extracode # end wxGlade class ListCtrl(wx.ListCtrl): def __init__(self, *args, **kwds): kwds["style"] = wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.LC_VIRTUAL super(ListCtrl, self).__init__(*args, **kwds) def CreateColumns(self): for col, header in enumerate(self.data.get_headers()): self.InsertColumn(col, _(header)) def InitData(self, data): self.data = data self.CreateColumns() self.RefreshAllItems() def SetData(self, data, amount=None): if self.data.set_data(data, amount): self.RefreshAllItems() def SetFilter(self, filter): if self.data.set_filter(filter): self.RefreshAllItems() def RefreshAllItems(self): self.SetItemCount(self.data.amount) #self.RefreshItems(0, self.data. amount) def OnGetItemText(self, item, col): return self.data.get(item, col) def OnGetItemAttr(self, item): return None def OnGetItemImage(self, item): return -1 class WxgPanel(wx.Panel): def __init__(self, *args, **kwds): # begin wxGlade: WxgPanel.__init__ kwds["style"] = wx.TAB_TRAVERSAL wx.Panel.__init__(self, *args, **kwds) self.splitter = wx.SplitterWindow(self, -1, style=wx.SP_NOBORDER) self.list_panel = wx.Panel(self.splitter, -1) self.tree_panel = wx.Panel(self.splitter, -1) self.filter = SearchCtrl(self, -1) self.tree = wx.TreeCtrl(self.tree_panel, -1, style=wx.TR_HAS_BUTTONS|wx.TR_NO_LINES|wx.TR_DEFAULT_STYLE|wx.SUNKEN_BORDER) self.preview = wx.StaticBitmap(self.tree_panel, -1, wx.NullBitmap) self.list = ListCtrl(self.list_panel, -1) self.__set_properties() self.__do_layout() # end wxGlade def __set_properties(self): # begin wxGlade: WxgPanel.__set_properties self.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_APPWORKSPACE)) self.filter.SetFocus() self.tree.SetBackgroundColour(wx.Colour(255, 255, 255)) self.preview.SetMinSize((128, 128)) self.preview.Hide() self.tree_panel.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_APPWORKSPACE)) # end wxGlade def __do_layout(self): # begin wxGlade: WxgPanel.__do_layout main_sizer = wx.BoxSizer(wx.VERTICAL) list_sizer = wx.BoxSizer(wx.VERTICAL) tree_sizer = wx.BoxSizer(wx.VERTICAL) sizer_7 = wx.BoxSizer(wx.HORIZONTAL) sizer_7.Add(self.filter, 1, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0) main_sizer.Add(sizer_7, 0, wx.EXPAND, 0) tree_sizer.Add(self.tree, 1, wx.EXPAND, 0) tree_sizer.Add(self.preview, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 6) self.tree_panel.SetSizer(tree_sizer) list_sizer.Add(self.list, 1, wx.EXPAND, 0) self.list_panel.SetSizer(list_sizer) self.splitter.SplitVertically(self.tree_panel, self.list_panel) main_sizer.Add(self.splitter, 1, wx.EXPAND, 0) self.SetSizer(main_sizer) main_sizer.Fit(self) # end wxGlade # end of class WxgPanel SelectedEvent, EVT_ITEM_SELECTED = NewEvent() ActivatedEvent, EVT_ITEM_ACTIVATED = NewEvent() class Panel(WxgPanel): def __init__(self, parent, id, data, Data, headers=None, **options): WxgPanel.__init__(self, parent, -1, **options) self._tree() self.SetData(data, Data, headers) self._events() def _tree(self, root_label=_('all'), icon=wx.ART_FOLDER): self.splitter.SetSashPosition(200) il = wx.ImageList(16, 16) il.Add(wx.ArtProvider.GetBitmap(icon, wx.ART_OTHER, (16, 16))) self.tree.AssignImageList(il) self.tree.AddRoot(root_label) def _events(self): self.tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.on_tree_sel_changed) self.filter.Bind(wx.EVT_TEXT, self.on_filter_text) def SetData(self, data_tree, Data, headers, id='path'): root = self.tree.GetRootItem() self.tree.CollapseAndReset(root) self.data_tree = [] self._append_children(root, self.tree.GetItemText(root), data_tree) if self.data_tree: all = reduce(operator.add, self.data_tree) else: all = [] self.data_tree.insert(0, all) self.tree.SetPyData(root, 0) self.tree.ExpandAll() self.list.InitData(Data(all,headers=headers, id=id)) def SetColumnWidths(self, *widths): for col, width in enumerate(widths): self.list.SetColumnWidth(col, width) def UpdateHeaders(self, headers=None): data = self.list.data data.update_headers(headers) for col, header in enumerate(data.get_headers()): item = wx.ListItem() item.SetText(header) self.list.SetColumn(col, item) def GetTreeLabel(self, label, parent_label): return label def _append_children(self, parent, parent_label, data_tree): keys = sorted(data_tree.keys()) for key in keys: item = self.tree.AppendItem(parent, self.GetTreeLabel(key, parent_label), 0) self.data_tree.append(data_tree[key]['data']) self.tree.SetPyData(item, len(self.data_tree)) self._append_children(item, key, data_tree[key]['children']) def on_tree_sel_changed(self, event): index = self.tree.GetPyData(event.GetItem()) self.list.SetData(self.data_tree[index]) def on_filter_text(self, event): self.list.SetFilter(self.filter.GetValue()) class OpenMixin(object): def _events(self): super(OpenMixin, self)._events() self.tree.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.on_tree_item_activated) self.list.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.on_list_item_activated) def get_tree_folder(self, item): index = self.tree.GetPyData(item) return os.path.split(self.data_tree[index][0]['path'])[0] def get_list_file(self, index): return self.list.data.get_by_header(index, 'path') def start_tree_item(self, item): start(self.get_tree_folder(item)) def start_list_item(self, index): start(self.get_list_file(index)) def on_list_item_activated(self, event): self.start_list_item(event.GetIndex()) def on_tree_item_activated(self, event): self.start_tree_item(event.GetItem()) def GetTreeLabel(self, label, parent_label): return label.replace(parent_label,'') class PreviewMixin(OpenMixin): def _events(self): self.preview_sizer = self.preview.GetContainingSizer() super(PreviewMixin, self)._events() self.list.Bind(wx.EVT_LIST_ITEM_SELECTED, self.on_list_item_selected) def show_preview(self, filename): bitmap = pil_wxBitmap(open_thumb(filename, size=(128,128))) self.preview.SetBitmap(bitmap) size = (bitmap.GetWidth(), bitmap.GetHeight()) self.preview.SetSize(size) self.preview.SetMinSize(size) self.preview.Show() self.preview_sizer.Layout() def on_list_item_selected(self, event): filename = self.get_list_file(event.GetIndex()) self.show_preview(filename) def example_data_tuple(): data = {'folder0': {'children': {}, 'data': [('item00', 'item00'), ('item01', 'item01'), ('item02', 'item02')]}, 'folder1': {'children': {}, 'data': [('item10', 'item10'), ('item11', 'item11')]}, 'folder2': {'children': {'folder3': {'children': {}, 'data': [('item30', 'item30'), ('item31', 'item31')]}}, 'data': [('item20', 'item20'), ('item21', 'item21')]}} files = [('f0/i00', 0), ('f0/i01', 1), ('f1/i10', 2), ('f1/f2/i120', 3)] data = listData.files_data_tuple(files) app = wx.PySimpleApp(0) frame = wx.Frame(None, -1, size=(800, 600)) panel = Panel(frame, -1, data, listData.DataTuple) app.SetTopWindow(frame) frame.Show() app.MainLoop() def example_dict_data(): files = [{'path': 'f0/i00', 'name': 'i00', 'size': '5kb'}, {'path': 'f0/i01', 'name': 'i01', 'size': '1kb'}, {'path': 'f1/i10', 'name': 'i10', 'size': '2kb'}, {'path': 'f1/f2/i120', 'name': 'i120', 'size': '3kb'}] data = listData.files_data_dict(files) app = wx.PySimpleApp(0) frame = wx.Frame(None, -1, size=(800, 600)) FilePanel = type('FilePanel', (OpenMixin,Panel), {}) panel = FilePanel(frame, -1, data, listData.DataDict) app.SetTopWindow(frame) frame.Show() app.MainLoop() if __name__ == "__main__": #example_data_tuple() example_dict_data() phatch-0.2.7/phatch/lib/pyWx/folderFileBrowser.wxg0000644000000000000000000001100111346363116022054 0ustar rootroot00000000000000 wxSYS_COLOUR_APPWORKSPACE wxVERTICAL wxEXPAND 0 wxHORIZONTAL wxEXPAND|wxALIGN_CENTER_VERTICAL 0 1 $parent $id wxEXPAND 0 wxSPLIT_VERTICAL list_panel tree_panel wxSYS_COLOUR_APPWORKSPACE wxVERTICAL wxEXPAND 0 #ffffff wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 6 1 1 128, 128 wxVERTICAL wxEXPAND 0 $parent $id phatch-0.2.7/phatch/lib/pyWx/graphics.py0000644000000000000000000000322711346363116020073 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import zlib from cStringIO import StringIO from urllib import urlopen import wx try: from lib import system except ImportError: def is_www_file(x): return True # fix this def bitmap(icon, size=(48, 48), client=wx.ART_OTHER): if icon[:4] == 'ART_': return wx.ArtProvider_GetBitmap(getattr(wx, icon), client, size) else: return wx.BitmapFromImage(image(icon)) def image(icon, size=(48, 48)): if icon[:4] == 'ART_': return wx.ImageFromBitmap(bitmap(icon, size)) else: return wx.ImageFromStream(StringIO(zlib.decompress(icon))) CACHE = {} def bitmap_open(x, height=64): try: return CACHE[(x, height)] except KeyError: pass if system.is_www_file(x): im = wx.ImageFromStream(StringIO(urlopen(x).read())) else: im = wx.Image(x) im = CACHE[(x, height)] = im.Rescale( float(height) * im.GetWidth() / im.GetHeight(), height).ConvertToBitmap() return im phatch-0.2.7/phatch/lib/pyWx/imageFileBrowser.py0000644000000000000000000001523511346363116021523 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import os import sys import wx if __name__ == '__main__': _ = unicode sys.path.insert(0, '..') sys.path.insert(0, '../..') from lib.openImage import open_thumb from lib.formField import IMAGE_READ_EXTENSIONS import popup from wxPil import pil_wxBitmap ICON_SIZE = (64, 64) def truncate(content, length=100, suffix='...'): if len(content) <= length: return content else: return content[:length].rsplit(' ', 1)[0] + suffix class ListCtrl(wx.ListCtrl): def __init__(self, parent, files, icon_size=ICON_SIZE, checkboard=False, **keyw): super(ListCtrl, self).__init__(parent, -1, style=wx.LC_ICON | wx.LC_SINGLE_SEL, **keyw) #create image list self.image_list = wx.ImageList(*icon_size) self.icons = {} for file in files.values(): self.icons[file] = self.image_list.Add( pil_wxBitmap(open_thumb(file, size=icon_size))) self.SetImageList(self.image_list, wx.IMAGE_LIST_NORMAL) #populate n = 10 if type(files) is dict: labels_files = files.items() #labels_files = [(truncate(label,n),file) # for label, file in files.items()] labels_files.sort() self._labels = [label for label, file in labels_files] self._files = [file for label, file in labels_files] self._files_to_labels = {} for label, file in labels_files: self._files_to_labels[file] = label for index, (label, file) in enumerate(labels_files): item = self.InsertImageStringItem(index, '', self.icons[file]) self.SetItemData(item, index) def GetLabel(self, file): return self._files_to_labels.get(file, file) def GetItemFile(self, item): return self._files[item.GetData()] def GetItemLabel(self, item): return self._labels[item.GetData()] def Select(self, index): self.SetItemState(index, wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED) self.EnsureVisible(index) def Deselect(self, index): self.SetItemState(index, 0, wx.LIST_STATE_SELECTED | wx.LIST_STATE_FOCUSED) class Dialog(wx.Dialog): def __init__(self, parent, files, icon_size=ICON_SIZE, **keyw): keyw["style"] = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER \ | wx.MAXIMIZE_BOX super(Dialog, self).__init__(parent, -1, **keyw) #controls #this is a dialog, add first panel self.panel = wx.Panel(self, -1) self.image_path = popup.DictionaryFileCtrl(self.panel, value=' ', size=(200, 200), dictionary=files, extensions=IMAGE_READ_EXTENSIONS) self.image_list = ListCtrl(self.panel, files, icon_size) self.status = wx.StaticText(self.panel, -1, "") self.cancel = wx.Button(self.panel, wx.ID_CANCEL, _("&Cancel")) self.ok = wx.Button(self.panel, wx.ID_OK, _("&Select")) self.ok.SetDefault() #layout sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.image_path, 0, wx.ALL | wx.EXPAND, 0) sizer.Add(self.image_list, 1, wx.EXPAND) #buttons btn_sizer = wx.BoxSizer(wx.HORIZONTAL) b = 6 btn_sizer.Add(self.status, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, b) btn_sizer.Add(self.cancel, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, b) btn_sizer.Add(self.ok, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, b) sizer.Add(btn_sizer, 0, wx.EXPAND, 0) #panel self.panel.SetSizer(sizer) panel_sizer = wx.BoxSizer(wx.VERTICAL) panel_sizer.Add(self.panel, 1, wx.EXPAND, 0) self.SetSizer(panel_sizer) self.Layout() #events self.selection = None self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self.image_list) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnActivated, self.image_list) self.Bind(wx.EVT_TEXT, self.OnText, self.image_path.path) def OnItemSelected(self, event): self.selection = event.GetIndex() value = self.image_list.GetItemLabel(event.GetItem()) if value != self.image_path.GetValue(): self.image_path.SetValue(value) event.Skip() def OnText(self, event): #print 'ontext',event.GetString() self.Select(event.GetString()) def Select(self, value): li = self.image_list #if the file is in the library -> use label instead value = li.GetLabel(value) if value in li._labels: index = li._labels.index(value) item = li.GetItem(index) li.Select(index) elif not(self.selection is None): #print "deselect", self.selection #li.Deselect(self.selection) DO NOT ENABLE OR IT BLOCKS UI! self.selection = None def ShowPath(self, state): self.image_path.Show(state) self.Layout() def SetValue(self, value): self.image_path.SetValue(value) self.Select(value) def OnActivated(self, event): self.EndModal(wx.ID_OK) def example(): import glob images = {} for image in glob.glob('/usr/share/icons/hicolor/48x48/apps/*.png'): images[os.path.basename(image)] = image class App(wx.App): def OnInit(self, *args, **keyw): frame = wx.Frame(None, -1, 'image file test', size=(600, 400)) image_list = ListCtrl(frame, images) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(image_list, 1, flag=wx.EXPAND) frame.SetSizer(sizer) frame.Layout() frame.Show() self.SetTopWindow(frame) dialog = Dialog(frame, images, title='Select Image') if dialog.ShowModal() == wx.ID_OK: print(dialog.image_path.GetValue()) if dialog.ShowModal() == wx.ID_OK: print(dialog.image_path.GetValue()) dialog.Destroy() return True app = App(0) app.MainLoop() if __name__ == '__main__': example() phatch-0.2.7/phatch/lib/pyWx/imageInspector.py0000644000000000000000000010046611346363116021247 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 if __name__ == '__main__': #add phatch to sys.path import sys sys.path.insert(0, '..') import gettext gettext.install('test') #---modules import cStringIO import os import zlib import wx import wx.grid as gridlib import wx.lib.newevent UpdateEvent, UPDATE_EVENT = wx.lib.newevent.NewEvent() from lib import imageTable from lib import formField from lib import metadata from lib import system import clipboard import droplet import graphics import tag import wildcard import wxPil import dialogsInspector try: import pyexiv2 except ImportError: pyexiv2 = None #---constants ALL = _('All') ALTERNATE_COLORS = (wx.Colour(254, 255, 255), wx.Colour(250, 250, 250)) COL_WIDTH = 140 CONFIRM_DELETE_TAG = \ _('Are you sure you want to delete this tag from "%s"?') CONFIRM_DELETE_TAG_ALL = \ _('Are you sure you want to delete this tag from all images?') FILENAME = '/home/stani/sync/Afbeeldingen/ubuntu_dog_1600x1200_3d.png' #FILENAME = '' GRAY = wx.Colour(112, 112, 112) RED = wx.Colour(255, 230, 230) SELECT = _('Select') SIZE = (450, 510) THUMB_SIZE = (128, 128) TAGS = [SELECT, ALL, 'Pil'] if pyexiv2: TAGS.extend(['Exif', 'Iptc']) TAGS.extend(['Pexif', 'Zexif']) # 'EXIF', TITLE = _('Image Inspector') WX_ENCODING = wx.GetDefaultPyEncoding() def empty_bitmap(width, height): dc = wx.MemoryDC() bmp = wx.EmptyBitmap(width, height) dc.SelectObject(bmp) dc.SetBrush(wx.TRANSPARENT_BRUSH) dc.Clear() return bmp class AddTagDialog(dialogsInspector.AddTagDialog): def __init__(self, parent, keys, *args, **keyw): """This dialog pops up when the user want to add a new tag. :param parent: parent frame of the dialog :type parent: wx.Window :param keys: ``keys`` are metadata tags of images. ``tags`` appear in the combobox up left to organize in different categories. :type keys: list """ super(AddTagDialog, self).__init__(parent, *args, **keyw) self.keys = keys self.OnTagText(None) def OnAdd(self, event): """This gets called when the ``Add`` button is pressed.""" self.EndModal(wx.ID_ADD) def OnTagText(self, event): """This event is binded to the ``tag`` ``wx.TextCtrl``:: self.Bind(wx.EVT_TEXT, self.OnTagText, self.tag) """ key = self.tag.GetValue() valid = bool(metadata.RE_PYEXIV2_TAG_EDITABLE.match(key)) exists = key in self.keys if not valid: self.warning.SetLabel(_('Tag should start with Exif_* or Iptc_*')) elif exists: self.warning.SetLabel(_('Tag exists already')) else: self.warning.SetLabel('') self.add.Enable(valid and not exists) def GetModal(self): """The dialog should be invoked by this method. :returns: tag, value :rtype: string, * """ if self.ShowModal() == wx.ID_ADD: tag = self.tag.GetValue() value = self.value.GetValue() else: tag = None value = None self.Destroy() return tag, value class Table(gridlib.PyGridTableBase): def __init__(self, thumb_size=THUMB_SIZE): """This forms a bridge between :class:`imageTable.Table`` and the virtual wxPython :class:`Grid`. :param thumb_size: size of the thumbnails :type thumb_size: tuple of ints """ gridlib.PyGridTableBase.__init__(self) self.table = imageTable.Table(thumb_size) self.SetRowColours() self.log = '' def GetAttr(self, row, col, kind): """Get the attribute of a grid cell. The attribute defines: * color (odd/even rows) * read-only :param row: row :type row: int :param col: column :type col: int :param kind: not used (but obligatory for wxPython) :returns: attribute """ if self.table.is_cell_empty(row, col): attr = self.missing_attr.Clone() else: attr = [self.even_attr, self.odd_attr][row % 2].Clone() attr.IncRef() attr.SetReadOnly(self.IsEditableCell(row, col)) return attr def SetRowColours(self, colors=ALTERNATE_COLORS): """Define the base attribute for odd and even rows: * background color * text color * selected color The selected color is based on the system (gtk, windows or mac os x). """ #odd rows self.odd_attr = gridlib.GridCellAttr() self.odd_attr.SetBackgroundColour(colors[1]) #even rows self.even_attr = gridlib.GridCellAttr() self.even_attr.SetBackgroundColour(colors[0]) #missing_rows self.missing_attr = gridlib.GridCellAttr() self.missing_attr.SetBackgroundColour(RED) #selected rows self.selected_attr = gridlib.GridCellAttr() self.selected_attr.SetBackgroundColour( wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHT)) self.selected_attr.SetTextColour( wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT)) # This is all it takes to make a custom data table to plug into a # wxGrid. There are many more methods that can be overridden, but # the ones shown below are the required ones. This table simply # provides strings containing the row and column values. def DeleteRows(self, pos=0, num=1): return self.table.delete_rows(pos, num) def GetRowLabelValue(self, row): return self.table.get_row_label(row) def SetRowLabelValue(self, row, value): return self.table.set_row_label(row, value) def GetNumberRows(self): return self.table.get_row_amount() def GetColLabelValue(self, col): return self.table.get_col_label(col) def GetNumberCols(self): return self.table.get_col_amount() def DeleteCols(self, pos=0, num=1): return self.table.delete_cols(pos, num) def GetValue(self, row, col): return self.table.get_cell_value(row, col) def SetValue(self, row, col, value): self.log = self.table.set_cell_value(row, col, value) def IsEmptyCell(self, row, col): return self.table.is_cell_empty(row, col) def IsEditableCell(self, row, col): return not self.table.is_cell_editable(row, col) class Grid(droplet.Mixin, gridlib.Grid): border = 4 Table = Table wildcard = '|'.join([wildcard.wildcard_list(_('Images'), formField.IMAGE_READ_EXTENSIONS), _('All files'), '*']) corner_logo = _corner_logo = None def __init__(self, parent, thumb_size=THUMB_SIZE): super(Grid, self).__init__(parent) #table self.table = self.Table(thumb_size) self.image_table = self.table.table self.SetTable(self.table, True) self.SetRowLabelSize(260) self._rows_number = self.GetNumberRows() self._cols_number = self.GetNumberCols() self._cols_sized = [] #bitmap self.PENCIL_BITMAP = getPencilBitmap() self.PENCIL_BITMAP_SIZE = self.PENCIL_BITMAP.GetSize() self.GRAY_BRUSH = wx.Brush("WHEAT", wx.TRANSPARENT) self.GRAY_PEN = wx.Pen(GRAY) #editor self.SetDefaultEditor(gridlib.GridCellTextEditor()) #drop self.SetAsFileDropTarget(self, self.OnDrop) self.SetAsFileDropTarget(self.GetEmpty(), self.OnDrop) self.SetAsFileDropTarget(self.GetTopLevelParent(), self.OnDrop) #events self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) self.Bind(gridlib.EVT_GRID_CELL_CHANGE, self.OnGridCellChange) self.Bind(gridlib.EVT_GRID_CELL_LEFT_CLICK, self.OnGridCellLeftClick) self.Bind(gridlib.EVT_GRID_CELL_RIGHT_CLICK, self.OnGridCellRightClicked) self.Bind(gridlib.EVT_GRID_CMD_LABEL_RIGHT_CLICK, self.OnGridLabelRightClicked) self.Bind(gridlib.EVT_GRID_LABEL_LEFT_DCLICK, self.OnGridLabelLeftDclicked) self.GetGridRowLabelWindow().Bind(wx.EVT_PAINT, self.OnRowLabelPaint) self.GetGridColLabelWindow().Bind(wx.EVT_PAINT, self.OnColLabelPaint) #FIXME: logo might get corrupted #self.GetGridCornerLabelWindow().Bind(wx.EVT_PAINT, # self.OnCornerLabelPaint) self.Bind(gridlib.EVT_GRID_EDITOR_HIDDEN, self.OnGridEditorHidden) def OnGridEditorHidden(self, evt): wx.CallAfter(self.ShowLog) def ShowLog(self): log = self.table.log self.table.log = '' if log: self.ShowError(log) #---refresh def UpdateIfNeeded(self): needs_update = False for image in self.image_table.images: needs_update = needs_update or image.update_if_modified() if needs_update: self.RefreshAll(update_column=True, force_thumbs=True) def UpdateRowsColsNumbers(self): """Only consider adding or removing rows.""" for current, new, delmsg, addmsg in [ (self._rows_number, self.table.GetNumberRows(), gridlib.GRIDTABLE_NOTIFY_ROWS_DELETED, gridlib.GRIDTABLE_NOTIFY_ROWS_APPENDED), (self._cols_number, self.table.GetNumberCols(), gridlib.GRIDTABLE_NOTIFY_COLS_DELETED, gridlib.GRIDTABLE_NOTIFY_COLS_APPENDED), ]: if new < current: msg = gridlib.GridTableMessage(self.table, delmsg, new, current - new) self.ProcessTableMessage(msg) elif new > current: msg = gridlib.GridTableMessage(self.table, addmsg, new - current) self.ProcessTableMessage(msg) self._rows_number = self.GetNumberRows() self._cols_number = self.GetNumberCols() def UpdateValues(self): """Update all displayed values""" # This sends an event to the grid table to update all of the values msg = gridlib.GridTableMessage(self.table, gridlib.GRIDTABLE_REQUEST_VIEW_GET_VALUES) self.ProcessTableMessage(msg) def UpdateThumbs(self, force_thumbs=False): if self.image_table.images: heights = [] for image in self.image_table.images: if force_thumbs or not hasattr(image, 'thumb_wx'): image.thumb_wx = wxPil.pil_wxBitmap(image.thumb) heights.append(image.thumb.size[1]) self.SetColLabelSize(max(heights) + 2 * self.border) def RefreshAll(self, update_column=False, force_thumbs=False): self.BeginBatch() self.UpdateThumbs(force_thumbs) self.GetGridColLabelWindow().Refresh() self.UpdateRowsColsNumbers() self.UpdateValues() self.EndBatch() self.AdjustScrollbars() if update_column: for col in range(self.GetNumberCols()): if col not in self._cols_sized: self.SetColSize(col, COL_WIDTH) self._cols_sized.append(col) self.ForceRefresh() #---events def OnGridCellLeftClick(self, evt): col = evt.GetCol() self.SetTitleFilename(self.image_table.images[col].filename) evt.Skip() def SetTitleFilename(self, filename): wx.GetTopLevelParent(self).SetTitleFilename(filename) def OnColLabelPaint(self, evt): window = self.GetGridColLabelWindow() rect = window.GetClientRect() dc = wx.PaintDC(window) dc.Clear() pen = dc.GetPen() dc.SetPen(self.GRAY_PEN) dc.DrawLine(rect[0], rect[1] + rect[3] - 1, rect[0] + rect[2], rect[1] + rect[3] - 1) def label_rect(position, col): col_width = self.GetColSize(col) col_height = self.GetColLabelSize() return (position, 0, col_width, col_height) def get_bitmap(index): return self.image_table.images[index].thumb_wx self._LabelPaint(dc, co=0, amount=self.GetNumberCols(), label_rect=label_rect, get_size=self.GetColSize, get_label=None, # self.GetColLabelValue, get_bitmap=get_bitmap, border=False, center_bitmap=True, pen=pen) def OnCornerLabelPaint(self, evt): if not self.corner_logo: return evt.Skip() if not self._corner_logo: self._corner_logo = graphics.bitmap(self.corner_logo) window = self.GetGridCornerLabelWindow() rect = window.GetClientRect() dc = wx.PaintDC(window) pen = dc.GetPen() dc.SetPen(self.GRAY_PEN) dc.DrawLine(rect[0], rect[1] + rect[3] - 1, rect[0] + rect[2], rect[1] + rect[3] - 1) def label_rect(position, col): return rect def get_bitmap(index): return self._corner_logo self._LabelPaint(dc, co=0, amount=1, label_rect=label_rect, get_size=self.GetColSize, get_label=None, # self.GetColLabelValue, get_bitmap=get_bitmap, border=False, center_bitmap=True, pen=pen) def CopyCellValue(self, row, col): if self.table.GetNumberCols(): clipboard.copy_text(unicode(self.table.GetValue(row, col))) def OnDrop(self, filenames, x, y): self.OpenImages(filenames) def OnGridCellChange(self, event): wx.CallAfter(self.RefreshAll) def OnGridCellRightClicked(self, event): """(row, evt) -> display a popup menu when a row label is right clicked""" # Did we click on a row or a column? event.Skip() row, col = event.GetRow(), event.GetCol() #bind menu events def on_copy(event): self.CopyCellValue(row, col) def on_add(event): self.AddColumnRow(col) def on_delete_cell(event): self.DeleteCell(row, col) #build menu control menu = wx.Menu() self._AppendMenuItem(menu, _('&Copy Value'), on_copy, id=wx.ID_COPY) if pyexiv2: self._AppendMenuItem(menu, _('&Add Tag'), on_add, 'Ctrl+N', id=wx.ID_ADD) if self.image_table.is_cell_deletable(row, col): self._AppendMenuItem(menu, _("&Delete Tag"), on_delete_cell, 'Del', id=wx.ID_DELETE) #show menu self.PopupMenu(menu) menu.Destroy() def OnGridLabelRightClicked(self, event): event.Skip() row, col = event.GetRow(), event.GetCol() if row == -1: self.OnGridColLabelRightClicked(col) else: self.OnGridRowLabelRightClicked(row) def OnGridLabelLeftDclicked(self, event): event.Skip() row, col = event.GetRow(), event.GetCol() if row == -1: system.start(self.image_table.get_image_filename(col)) def OnGridColLabelRightClicked(self, col): menu = wx.Menu() #open self._AppendMenuItem(menu, _('&Open...'), self.OnOpen, id=wx.ID_OPEN) #open url self._AppendMenuItem(menu, _('Open &Url...'), self.OnOpenUrl, 'Shift+Ctrl+O') #remove image def on_remove(event): self.DeleteCols(col) self._AppendMenuItem(menu, _('&Remove Image'), on_remove) #show menu self.PopupMenu(menu) menu.Destroy() def _AppendMenuItem(self, menu, label, method, shortcut='', id=None): if id is None: id = wx.NewId() menu.Append(id, '%s\t%s' % (label, shortcut)) self.Bind(wx.EVT_MENU, method, id=id) def OnGridRowLabelRightClicked(self, row): #build menu control menu = wx.Menu() self.CreateRowLabelMenu(menu, row) #show menu self.PopupMenu(menu) menu.Destroy() def CreateRowLabelMenu(self, menu, row): #bind menu events def on_add(event): self.AddRow() def on_copy(event): self.CopyRowLabel(row) def on_delete_row(event): self.DeleteRows(row) def on_set_row_label(event): self.RenameRowLabelValue(row) def on_set_row_values(event): self.ChangeRowValues(row) self._AppendMenuItem(menu, _('&Copy Tag'), on_copy, 'Shift+Ctrl+C') if pyexiv2: self._AppendMenuItem(menu, _('&Add Tag to All Images...'), on_add, 'Shift+Ctrl+N') if self.image_table.is_row_editable(row) and pyexiv2: self._AppendMenuItem(menu, _("&Delete Tag from All Images..."), on_delete_row, 'Shift+Del') self._AppendMenuItem(menu, _("&Rename Tag for All Images..."), on_set_row_label, 'Shift+Ctrl+R') self._AppendMenuItem(menu, _("&Modify Value for All Images..."), on_set_row_values, 'Shift+Ctrl+M') def CopyRowLabel(self, row): clipboard.copy_text('<%s>' % self.table.GetRowLabelValue(row)) def AddRow(self): key, value = AddTagDialog(self, self.image_table.keys).GetModal() if key: row = self.table.GetNumberRows() col = self.GetGridCursorCol() log = self.image_table.add_key(key, value) if log: self.ShowError(log, _('Unable to add tag <%s>') % key) self.RefreshAll() wx.CallAfter(self.MakeCellVisible, row, col) def AddColumnRow(self, col): key, value = AddTagDialog(self, self.image_table.keys).GetModal() if key: row = self.table.GetNumberRows() image = self.image_table.images[col] log = self.image_table.add_image_key(image, key, value) if log: self.ShowError(log, _('Unable to add tag <%s>') % key) self.RefreshAll() wx.CallAfter(self.MakeCellVisible, row, col) def DeleteCell(self, row, col): key = self.GetRowLabelValue(row) image_name = self.GetColLabelValue(col) if self.Ask('%s\n<%s>' % (CONFIRM_DELETE_TAG % image_name, key)) \ == wx.ID_YES: log = self.image_table.delete_cell(row, col) if log: self.ShowError(log, _('Unable to delete tag <%s>') % key) self.RefreshAll() def DeleteRows(self, pos=0, num=1): key = self.GetRowLabelValue(pos) if self.Ask('%s\n<%s>' % (CONFIRM_DELETE_TAG_ALL, key)) \ == wx.ID_YES: log = self.table.DeleteRows(pos, num) if log: self.ShowError(log, _('Unable to delete tag <%s>') % key) self.RefreshAll() def DeleteCols(self, pos=0, num=1): log = self.table.DeleteCols(pos, num) if log: self.ShowError(log, _('Unable to remove image')) if not self.CheckEmpty(): self.RefreshAll() def RenameRowLabelValue(self, row): key_old = self.GetRowLabelValue(row) key_new = self.AskText(_('Rename tag for all images to:'), title=TITLE, value=key_old) if key_new: log = self.table.SetRowLabelValue(row, key_new) if log: self.ShowError(log, _('Unable to rename tag <%s>')\ % key_old) self.RefreshAll() def ChangeRowValues(self, row): value = self.AskText(_('Change value for all images to:'), title=TITLE) if value: key = self.GetRowLabelValue(row) log = self.image_table.set_key_value(key, value) if log: self.ShowError(log, _('Unable to change tag <%s>')\ % key) self.RefreshAll() def OnKeyDown(self, event): key_code = event.GetKeyCode() #print key_code row, col = self.GetCellRowCol() shift = event.ShiftDown() ctrl = event.ControlDown() alt = event.AltDown() if self.ProcessKey(key_code, row, col, shift, ctrl, alt): event.Skip() def ProcessKey(self, key_code, row, col, shift, ctrl, alt): if key_code == 127 \ and self.image_table.is_cell_deletable(row, col): if shift: self.DeleteRows(row) else: self.DeleteCell(row, col) elif ctrl: if key_code == 67: #Ctrl+C if shift: self.CopyRowLabel(row) else: self.CopyCellValue(row, col) elif key_code == 78: #Ctrl+N if shift: self.AddRow() else: self.AddColumnRow(col) elif key_code == 82 and shift: #Ctrl+R self.RenameRowLabelValue(row) elif key_code == 77 and shift: #Ctrl+M self.ChangeRowValues(row) else: return True def OnRowLabelPaint(self, evt): window = self.GetGridRowLabelWindow() rect = window.GetClientRect() dc = wx.PaintDC(window) pen = dc.GetPen() dc.SetPen(self.GRAY_PEN) dc.DrawLine(rect[0] + rect[2] - 1, rect[1], rect[0] + rect[2] - 1, rect[1] + rect[3]) def label_rect(position, row): row_width = self.GetRowLabelSize() row_height = self.GetRowSize(row) return (0, position, row_width, row_height) def get_bitmap(index): if self.image_table.is_row_editable(index): return self.PENCIL_BITMAP self._LabelPaint(dc, co=1, amount=self.GetNumberRows(), label_rect=label_rect, get_size=self.GetRowSize, get_label=self.GetRowLabelValue, get_bitmap=get_bitmap, border=True, center_bitmap=False, pen=pen) #---paint def _LabelPaint(self, dc, co, amount, label_rect, get_size, get_label, get_bitmap, border, center_bitmap, pen): position = -self.GetViewStart()[co]\ * self.GetScrollPixelsPerUnit()[co] dc.SetBrush(self.GRAY_BRUSH) for index in range(amount): size = get_size(index) rect = label_rect(position, index) position += size if position < 0: continue if border: dc.DrawLine(rect[0], rect[1] + rect[3] - 1, rect[0] + rect[2], rect[1] + rect[3] - 1) bitmap = get_bitmap(index) if bitmap: bitmap_size = bitmap.GetSize() if center_bitmap: #centered offset_x = (rect[2] - bitmap_size[0]) / 2 else: #right aligned offset_x = rect[2] - bitmap_size[0] - self.border offset_y = (rect[3] - bitmap_size[1]) / 2 dc.DrawBitmap(bitmap, rect[0] + offset_x, rect[1] + offset_y, True) else: offset_y = (rect[3] - self.PENCIL_BITMAP_SIZE[1]) / 2 dc.SetPen(pen) if get_label: dc.DrawText(get_label(index), rect[0] + self.border, rect[1] + offset_y) #---dialogs def Ask(self, message, title=''): return self.ShowMessage(message, title, style=wx.YES_NO | wx.ICON_QUESTION) def AskText(self, question, value='', title=''): dlg = wx.TextEntryDialog(self, question, title, value) if dlg.ShowModal() == wx.ID_OK: answer = dlg.GetValue() else: answer = None dlg.Destroy() return answer def ShowMessage(self, message, title='', style=wx.OK | wx.ICON_EXCLAMATION): dlg = wx.MessageDialog(self, message, title, style, ) answer = dlg.ShowModal() dlg.Destroy() return answer def ShowError(self, message, title=TITLE): return self.ShowMessage(message, title, style=wx.OK | wx.ICON_ERROR) def OpenImage(self, filename): try: self.image_table.open_image(filename, encoding=WX_ENCODING) except IOError, message: self.show_error(_('Sorry, %s.') % str(message), title=_('Image Inspector')) return self.image_table.update() self.UpdateThumbs() self.SetTitleFilename(filename) self.RefreshAll(update_column=True) def OpenImages(self, filenames): wx.BeginBusyCursor() invalid = self.image_table.open_images(filenames, encoding=WX_ENCODING) if invalid: wx.CallAfter(wx.EndBusyCursor) self.show_error('%s:\n\n%s' % ( _('Sorry, unable to open these images:'), '\n'.join(invalid)), title=TITLE) wx.BeginBusyCursor() if len(invalid) != len(filenames): self.UpdateThumbs() if len(filenames) == 1: self.SetTitleFilename(filenames[0]) self.RefreshAll(update_column=True) wx.CallAfter(wx.EndBusyCursor) def GetCellRowCol(self, event=None): if event: x, y = event.GetPosition() return self.XToCol(x), self.YToRow(y) else: return self.GetGridCursorRow(), self.GetGridCursorCol() def show_error(self, message, title): return self.show_message(message, title, style=wx.OK | wx.ICON_ERROR) def show_message(self, message, title='', style=wx.OK | wx.ICON_EXCLAMATION): if self.IsShown(): parent = wx.GetTopLevelParent(self) else: parent = None dlg = wx.MessageDialog(parent, message, title, style, ) answer = dlg.ShowModal() dlg.Destroy() return answer class OpenMixin(object): def OnOpen(self, event): style = wx.OPEN | wx.CHANGE_DIR if hasattr(wx, 'FD_PREVIEW'): style |= wx.FD_PREVIEW path = os.path.dirname(self.image_table.images[-1].filename) dlg = wx.FileDialog(self, _("Choose an image"), defaultDir=path, wildcard=self.wildcard, style=style) if dlg.ShowModal() == wx.ID_OK: self.OpenImage(dlg.GetPath()) dlg.Destroy() def OnOpenUrl(self, event): dlg = wx.TextEntryDialog(self, _("Enter an image url")) if dlg.ShowModal() == wx.ID_OK: self.OpenImage(dlg.GetValue()) dlg.Destroy() def OpenImage(self, filename): super(OpenMixin, self).OpenImage(filename) self.GetTopLevelParent().SetTitleFilename(filename) self.SetTag(None) self.SetFilter(None) def OpenImages(self, filenames): super(OpenMixin, self).OpenImages(filenames) self.SetTag(None) self.SetFilter(None) def GetTopLevelParent(self): return wx.GetTopLevelParent(self) class GridTag(OpenMixin, tag.ContentMixin, Grid): def IsEmpty(self): return 0 in (self.image_table.get_image_amount(), self.image_table.get_key_amount()) def SetTag(self, tag): """Filters from all_data to tag_data""" if not (tag is None): super(GridTag, self).SetTag(tag) self.image_table.set_tag(tag) self.image_table.set_filter() self.GetFilter().SetValue('') if not self.CheckEmpty(): self.RefreshAll() def SetFilter(self, filter=None): self.image_table.set_filter(filter) if not self.CheckEmpty(): self.RefreshAll() class Browser(tag.Browser): ContentCtrl = GridTag def _init(self): self.GetContent().SetTag(SELECT) def GetPaintMessage(self): content = self.GetContent() if not content.image_table.images: return _('drag & drop any images here') tag = self.tag.GetStringSelection().lower() if tag == 'Exif' and not pyexiv2: return _('please install pyexiv2') if content.image_table.key_amount_tag: return _('broaden your search') return _('no %s tags found') % tag class Frame(wx.Frame): Browser = Browser def __init__(self, parent, filename='', icon=None, thumb_size=THUMB_SIZE, *args, **kwds): #adapt style if not('style' in kwds) and parent: kwds["style"] = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | \ wx.FRAME_FLOAT_ON_PARENT | wx.FRAME_NO_TASKBAR | \ wx.MAXIMIZE_BOX super(Frame, self).__init__(parent, *args, **kwds) if icon: self.SetIcon(icon) self._create_controls(TAGS, thumb_size) self._layout() #open filenames if os.path.isfile(filename): self.GetGrid().OpenImage(filename) elif os.path.isdir(filename): self.GetGrid().OpenImages([filename]) #bind events self.browser.EnableResize() self.Bind(wx.EVT_ACTIVATE, self.OnActivate) self.Bind(UPDATE_EVENT, self.UpdateIfNeeded) def OnActivate(self, event): if event.GetActive(): self.UpdateIfNeeded() def UpdateIfNeeded(self, event=None): if self.GetGrid().UpdateIfNeeded(): wx.CallAfter(self.browser.filter.SetFocus) def _create_controls(self, tags, thumb_size): self.panel = wx.Panel(self, -1) self.browser = self.Browser(self.panel, tags, {'thumb_size': thumb_size}) def _layout(self): #main_sizer main_sizer = wx.BoxSizer(wx.VERTICAL) #browser main_sizer.Add(self.browser, 1, wx.ALL | wx.EXPAND, 4) #layout self.panel.SetSizer(main_sizer) #panel_sizer panel_sizer = wx.BoxSizer(wx.VERTICAL) panel_sizer.Add(self.panel, 1, wx.ALL | wx.EXPAND, 0) self.SetSizer(panel_sizer) #layout self.Layout() def GetGrid(self): return self.browser.GetContent() def OpenImage(self, filename): self.GetGrid().OpenImage(filename) def OpenImages(self, filenames): self.GetGrid().OpenImages(filenames) def SetTitleFilename(self, filename): """To be called from the grid.""" if filename.strip(): di, ba = os.path.split(filename) self.SetTitle('%s %s' % (ba, di)) else: self.SetTitle(TITLE) def getPencilData(): # Embedded icon from the openclipart gallery return zlib.decompress( 'x\xda\x01\x88\x01w\xfe\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\ \x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\x00\x00\x00\x04sBIT\x08\ \x08\x08\x08|\x08d\x88\x00\x00\x01?IDAT8\x8d\x8d\xd1\xbdj\x94A\x14\x06\xe0gc\ 4\x12\xe3\x8aM\xb0N\xa1M\xb0\xb3K\x04+\x03{\x0b\xa2!F\xc5\xe3\r\xe4\n\xbc\ \x84\x93?"\xa4P\xb0\xb4\xd8"\x85`k#6\x16Z$\x85\xd8l D\x8c\x04!\xf1\xb3\x99\r\ \x1f\xeb\xeefO73<\xef\x9c9\xd3\xa8\xaa\xca\xa8\x15\x11\x15\xbe\xe0\x06\xd6\ \xf0\xb21J@D\\\xc2\x1f|\xc2\x0b\x1c\xe0+\x8c\x8d\x80\'\n\xfe\x8em\xecf\xe67\ \xccb\x7fh\x07\x11q\x19\xc7\xd8\xc1;\xcc\x17x\x173x30 "&\xf1\x1bo\xf1 3O\xca\ \xfe+\xfc\xc0\x1d\xdc\x1f\x1f\x80\xaf\xe0\x08\xaf\xf1(3Ok\xc7\x1f\xcaS\xe0\ \xe2\x7f3\x88\x88\xa9\x82\xb7\xf1\xb0\x8e#\xa2\x81{ey53O\xc6zp\x13\xbf\xb0\ \x85\xa5\xcc\xfc\xdb\x83W\xb1X\xf0\x11\xb5_\x88\x88k\xf8\x89u<\xe9\x83\xd7\ \xf0\xac\x8e\xcf\x02"\xe2:\x0e\x91x\x9e\x99U\x0f^\xc7\xd3^\x0c\xdd!\x1e\xe0#\ V\xfa\xe0\r,\xf7\xc3p\xa1\xd3\xe9T\xe8`\x0f\xb3\xedv\xfb\xb4\xd5j\xed\x16\ \xbc9\x0c\xd7;\x98\xc6\x02n\x96\x9b\xdf\x17\xfcx\x18\xae\x07tk\x06s\xf8\x8c\ \xdb\xe7\xe1~\x01p\x0b\xcdQ\xf0\xa0\x80ff6\xce\x83\xdd\xfa\x07\xca\x88\x87\ \x90\xc0\xf9\xffl\x00\x00\x00\x00IEND\xaeB`\x82A.\xa9\xf2') def getPencilBitmap(): return wx.BitmapFromImage(getPencilImage()) def getPencilImage(): stream = cStringIO.StringIO(getPencilData()) return wx.ImageFromStream(stream) if __name__ == '__main__': app = wx.PySimpleApp() frame = Frame(None, FILENAME, size=SIZE) frame.Show(True) app.MainLoop() phatch-0.2.7/phatch/lib/pyWx/inspector.py0000644000000000000000000001345511346363116020305 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follow PEP8 """This unites Table and Grid in one with the following presumptions: - the grid only grows in rows""" import wx import wx.grid as gridlib NUMBER_COLS = 3 TEST_DATA = [[str((row, col)) for col in range(NUMBER_COLS)] for row in range(100)] class Table(gridlib.PyGridTableBase): def __init__(self, grid): gridlib.PyGridTableBase.__init__(self) self._grid = grid def GetGrid(self): return self._grid def GetAttr(self, row, col, kind): return self.GetGrid().GetTableAttr(row, col, kind) # This is all it takes to make a custom data table to plug into a # wxGrid. There are many more methods that can be overridden, but # the ones shown below are the required ones. This table simply # provides strings containing the row and column values. def GetNumberRows(self): return len(self.GetGrid().data) def GetNumberCols(self): return self.GetGrid()._number_cols def GetValue(self, row, col): return self.GetGrid().GetTableValue(row, col) def SetValue(self, row, col, value): self.GetGrid().SetTableValue(row, col, value) def IsEmptyCell(self, row, col): return self.GetGrid().IsTableEmptyCell() def DeleteRows(self, pos=0, numRows=1): self.GetGrid().DeleteTableRows(pos, numRows) class Grid(gridlib.Grid): Table = Table _number_cols = NUMBER_COLS def __init__(self, parent, data, *arg, **keyw): gridlib.Grid.__init__(self, parent, *arg, **keyw) self.SetRowColours() self._table(data) self._layout() self._events() self._init() def _table(self, data): # The second parameter means that the grid is to take # ownership of the table and will destroy it when done. # Otherwise you would need to keep a reference to it and # call it's Destroy method later. self.data = self.all_data = data self.table = self.Table(self) self.SetTable(self.table, True) self._number_rows = self.table.GetNumberRows() def _layout(self): self.SetRowLabelSize(0) self.SetColLabelSize(0) self.DisableDragRowSize() self.SetColSize(0, 30) self.SetColSize(1, 240) self.SetColSize(2, 160) def _events(self): pass # self.Bind(gridlib.EVT_GRID_CELL_RIGHT_CLICK, self.OnRightDown) def _init(self): pass def OnRightDown(self, event): return print self.GetSelectedRows() def RefreshAll(self): self.BeginBatch() self.UpdateNumberRows() self.UpdateValues() self.EndBatch() self.AdjustScrollbars() self.ForceRefresh() def SetRowColours(self, odd=wx.Colour(250, 250, 250), even=wx.Colour(254, 255, 255)): self.odd_attr = gridlib.GridCellAttr() self.odd_attr.SetBackgroundColour(odd) self.even_attr = gridlib.GridCellAttr() self.even_attr.SetBackgroundColour(even) self.selected_attr = gridlib.GridCellAttr() self.selected_attr.SetBackgroundColour( wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHT)) self.selected_attr.SetTextColour( wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT)) def UpdateNumberRows(self): """Only consider adding or removing rows.""" current, new, delmsg, addmsg =\ (self._number_rows, self.table.GetNumberRows(), gridlib.GRIDTABLE_NOTIFY_ROWS_DELETED, gridlib.GRIDTABLE_NOTIFY_ROWS_APPENDED) if new < current: msg = gridlib.GridTableMessage(self.table, delmsg, new, current - new) self.ProcessTableMessage(msg) elif new > current: msg = gridlib.GridTableMessage(self.table, addmsg, new - current) self.ProcessTableMessage(msg) self._number_rows = new def UpdateValues(self): "Send an event to the grid table to update all displayed values" msg = gridlib.GridTableMessage(self.table, gridlib.GRIDTABLE_REQUEST_VIEW_GET_VALUES) self.ProcessTableMessage(msg) # ---table functions def GetTableValue(self, row, col): return self.data[row][col] def SetTableValue(self, row, col, value): self.data[row][col] = value def IsTableEmptyCell(self): return False def GetTableAttr(self, row, col, kind): attr = [self.even_attr, self.odd_attr][row % 2] self.AttrIncRef(attr) self.SetAttrReadOnly(attr) return attr def SetAttrReadOnly(self, attr, bool): # ugly hack to deal with unicode errors try: attr.SetReadOnly(bool) except UnicodeDecodeError: pass def AttrIncRef(self, attr): try: attr.IncRef() except UnicodeDecodeError: pass # ---test class TestFrame(wx.Frame): def __init__(self, parent): wx.Frame.__init__(self, parent, -1, "inspector", size=(640, 480)) grid = Grid(self, TEST_DATA) if __name__ == '__main__': app = wx.PySimpleApp() frame = TestFrame(None) frame.Show(True) app.MainLoop() phatch-0.2.7/phatch/lib/pyWx/inspectorTag.py0000644000000000000000000001124711346363116020736 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follow PEP8 import wx import inspector from tag import Browser, ContentMixin, extract_tags TEST_DATA = { 'decimal': [[str((row, col)) for col in range(inspector.NUMBER_COLS)] for row in range(100)], 'hexadecimal': [[str((hex(row), hex(col))) for col in \ range(inspector.NUMBER_COLS)] for row in range(100)], } class Grid(ContentMixin, inspector.Grid): def SetData(self, data, tag): self.all_data = data self.SetTag(tag) def IsEmpty(self): return not self.data class TestContentGrid(Grid): def SetTag(self, tag, filter=None): self.tag_data = self.all_data[tag] self.SetFilter() def SetFilter(self, filter=None): if filter is None: filter = self.GetFilter().GetValue() if filter.strip(): self.data = [row for row in self.tag_data if filter in unicode(row)] else: self.data = self.tag_data if not self.CheckEmpty(): self.RefreshAll() def SetData(self, data): self.all_data = data self.SetTag(_('decimal')) class TestBrowser(Browser): ContentCtrl = TestContentGrid paint_message = "nothing found" def _init(self): self.content.SetTag('decimal') class TestFrame(wx.Frame): def __init__(self, parent): wx.Frame.__init__(self, parent, -1, "Test Tag Browser", size=(640, 480)) browser = TestBrowser(self, TEST_DATA.keys(), {'data': TEST_DATA}) browser.EnableResize() class Frame(wx.Frame): Browser = TestBrowser def __init__(self, parent, data, tags, icon=None, *args, **kwds): if 'style' in kwds: kwds["style"] = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER if parent: kwds["style"] |= wx.FRAME_FLOAT_ON_PARENT if parent: kwds["style"] |= wx.FRAME_NO_TASKBAR super(Frame, self).__init__(parent, *args, **kwds) if icon: self.SetIcon(icon) self._create_controls(data, tags) self._layout() self._events() def _create_controls(self, data, tags): self.panel = wx.Panel(self, -1) self.browser = self.Browser(self.panel, tags, {'data': data}) self.status = wx.StaticText(self.panel, -1, "") self.close = wx.Button(self.panel, wx.ID_CLOSE, "") # _("&Close")) self.close.SetDefault() def _layout(self): # main_sizer main_sizer = wx.BoxSizer(wx.VERTICAL) self._layout_top(main_sizer) # browser main_sizer.Add(self.browser, 1, wx.ALL | wx.EXPAND, 4) # buttons btn_sizer = wx.BoxSizer(wx.HORIZONTAL) self._layout_buttons(btn_sizer) main_sizer.Add(btn_sizer, 0, wx.EXPAND, 0) # layout self.panel.SetSizer(main_sizer) # panel_sizer panel_sizer = wx.BoxSizer(wx.VERTICAL) panel_sizer.Add(self.panel, 1, wx.ALL | wx.EXPAND, 0) self.SetSizer(panel_sizer) # layout self.Layout() def _layout_top(self, main_sizer): pass def _layout_buttons(self, btn_sizer): btn_sizer.Add(self.status, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4) btn_sizer.Add(self.close, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4) def GetGrid(self): return self.browser.GetContent() def _events(self): self.Bind(wx.EVT_BUTTON, self.OnClose) def OnClose(self, event): self.Destroy() def CreateBitmapButton(self, id, tooltip, size=(24, 24), \ style=wx.NO_BORDER): bmp = wx.ArtProvider_GetBitmap(id, wx.ART_OTHER, size=size) btn = wx.BitmapButton(self.panel, -1, bmp, style=style) btn.SetToolTipString(tooltip) return btn if __name__ == '__main__': __builtins__._ = str app = wx.PySimpleApp() frame = TestFrame(None) frame.Show(True) dialog = Frame(frame, TEST_DATA, TEST_DATA.keys()) dialog.Show(True) app.MainLoop() phatch-0.2.7/phatch/lib/pyWx/paint.py0000644000000000000000000001026111346363116017402 0ustar rootroot00000000000000# -*- coding: UTF-8 -*- # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follow PEP8 import wx from compatible import GCDC, FONT_SIZE import graphics MARGIN = 2 * 10 class Mixin: paint_message = '' paint_logo = None paint_color = wx.Colour(60, 60, 60) # ,200) paint_border_color = None paint_opacity = 200 paint_radius = 8 def OnEraseBackground(self, event=None, paint_object=None): paint_object = event.GetEventObject() if not paint_object.IsShown(): return _dc = event.GetDC() if not _dc: _dc = wx.ClientDC(paint_object) rect = paint_object.GetUpdateRegion().GetBox() _dc.SetClippingRect(rect) dc = GCDC(_dc) dc.Clear() # Calculate text extents. paint_message = self.GetPaintMessage() if paint_message: tw, th = self.GetClientSize() cw, ch = tw - MARGIN, th - MARGIN font_size = FONT_SIZE + 1 while (tw >= cw or th >= ch) and font_size > 5: font_size -= 1 font = wx.Font(font_size, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTSTYLE_NORMAL, encoding=wx.FONTENCODING_SYSTEM) dc.SetFont(font) tw, th = dc.GetTextExtent(paint_message) td = font_size / 2 twd = tw + 2 * td thd = th + 2 * td else: tw = th = 0 # Draw logo. ew, eh = paint_object.GetSize() if self.paint_logo: # Draw logo. lw, lh = self._paint_logo.GetSize() lx, ly = (ew - lw) / 2, (eh - lh + 2 * thd) / 2 dc.DrawBitmap(self._paint_logo, lx, ly, True) else: # Skip logo. lx, ly = ew / 2, eh / 2 # Check if text is necessary too. if not paint_message: return # Draw rounded rectangle. if self.paint_logo: rx, ry = (ew - twd) / 2, ly - 2 * thd else: rx, ry = (ew - twd) / 2, (eh - thd) / 2 rect = wx.Rect(rx, ry, twd, thd) if self.paint_border_color: penclr = self.paint_border_color else: penclr = self.paint_color dc.SetPen(wx.Pen(penclr)) dc.SetBrush(wx.Brush(self.paint_color)) dc.DrawRoundedRectangleRect(rect, self.paint_radius) # Draw text. dc.SetTextForeground(paint_object.GetBackgroundColour()) dc.DrawText(paint_message, rx + td, ry + td) def EnableBackgroundPainting(self, object, state=True, color=wx.WHITE): if state: if self.paint_logo: self._paint_logo = graphics.bitmap(self.paint_logo) object.SetBackgroundColour(color) object.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground) else: object.Unbind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground) def GetPaintMessage(self): return self.paint_message #---begin def example(): import sys sys.path.extend(['..']) import images class TestFrame(Mixin, wx.Frame): paint_message = 'hello world' paint_logo = images.LOGO class TestApp(wx.App): def OnInit(self): wx.InitAllImageHandlers() frame = TestFrame(None, -1, "Test", size=(600, 400)) frame.EnableBackgroundPainting(frame) # ,color=(245,245,255)) self.SetTopWindow(frame) frame.Show(True) return 1 app = TestApp(0) app.MainLoop() if __name__ == '__main__': example() phatch-0.2.7/phatch/lib/pyWx/popup.py0000644000000000000000000006153011346363116017437 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 """All translations should be done here. Only controls eg. choice controls can give 100%safe english strings. SetValue(english) Display(dutch) #or any other language GetValue(english) The bridge between fields and ctrls is done as follows: formField.Field <-> treeEdit.create_popup <-> popup.Ctrl""" if __name__ == '__main__': import sys sys.path.insert(0, '..') sys.path.insert(0, '../..') import os import sys import wx import wx.lib.colourselect from lib.colors import RGBToHTMLColor, HTMLColorToRGB from lib.fonts import font_dictionary from lib.reverse_translation import _t from autoCompleteCtrls import AutoCompleteTextCtrl, AutoCompleteIconCtrl from wildcard import wildcard_list ####Plain Controls (no i18N) try: _ if not callable(_): raise NameError except NameError: _ = unicode ICON_SIZE = (64, 64) LOADING = _('loading') + ' ...' FONT_PATHS = ['/usr/share/fonts/truetype'] if sys.platform.startswith('linux'): TEXTCTRL_BORDER = 2 else: TEXTCTRL_BORDER = 4 #---sizer def SetMinVerSize(item, size, border=0): item_size = item.GetSize() min_size = (size[0], min(item.GetSize()[1], size[1] - 2 * border)) item.SetMinSize(min_size) item.SetSize(min_size) class ForcedBoxSizer(wx.BoxSizer): def __init__(self, orient, height, border=0): super(ForcedBoxSizer, self).__init__(orient) self._size = (height, height) self._border = border def AddForced(self, item, proportion, flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL, border=None, size=None): if not border: border = self._border if not size: size = self._size SetMinVerSize(item, size, border) super(ForcedBoxSizer, self).Add(item, proportion, flag, border) #---exceptions class NotImplementedError(Exception): def __init__(self, instance, method): """Not implemented error.""" self.instance = instance self.method = method def __str__(self): return 'Class "%s" did not implement method "%s".' \ % (self.instance.__class__.__name__, self.method) #---base controls def untranslated(self, x): return x class _Ctrl(object): _to_local = untranslated _to_english = untranslated _busy_cursor = False def Set(self, value): self.SetValue(self._to_local(value)) def Get(self): return self._to_english(self.GetValue()) def SplitValue(self, value): return (value, ) class _CtrlChoices(_Ctrl): def RegisterChoices(self, choices): self._choices = choices return [self._to_local(choice) for choice in choices] class _CtrlWithItems(_CtrlChoices): def Get(self): index = super(ChoiceCtrl, self).GetSelection() if index == wx.NOT_FOUND: index = 0 return self._choices[index] class _CtrlRelevantMixin: def SetRelevant(self, event_id, on_change): if on_change: self.on_change = on_change self.Bind(event_id, self.OnChange) def OnChange(self, event=None): """Wait until change is done.""" if event: event.Skip() if hasattr(self, 'on_change'): self.on_change(unicode(self.Get())) #other option in case troubles pop up (see also Close method) #wx.CallAfter(self.OnAfterChange) def OnAfterChange(self): self.on_change(unicode(self.Get())) class TextCtrl(_CtrlRelevantMixin, _CtrlChoices, wx.ComboBox): def __init__(self, parent, value, id=-1, choices=None, on_change=None, **keyw): if choices is None: choices = [] local_choices = self.RegisterChoices(choices) if hasattr(parent, "SplitValue"): v = parent.SplitValue(value)[0] else: v = value v = v.strip() if v and v not in local_choices: local_choices.insert(0, v) super(TextCtrl, self).__init__(parent, id, value, choices=local_choices, **keyw) self.Set(value) self.SetRelevant(wx.EVT_TEXT, on_change) self.OnChange() class _ComposedCtrl(_Ctrl, wx.Panel): """Composed controls are a wx.Panel with controls (extra button,...).""" def __init__(self, parent, value, size, **extra): super(_ComposedCtrl, self).__init__(parent, id=-1, size=size) self._CreateCtrls(value, **extra) self._Layout(height=size[1]) self._CreateEvents() self.SetBackgroundColour(parent.GetBackgroundColour()) def _Layout(self, height): sizer = ForcedBoxSizer(wx.HORIZONTAL, height, 0) self._AddCtrls(sizer, height) self.SetSizer(sizer) sizer.Fit(self) self.Layout() #---hooks to be overwritten def _CreateCtrls(self): """Needs to be overwritten.""" raise NotImplementedError(self, "_CreateCtrls") def _AddCtrls(self, sizer, height): """Needs to be overwritten.""" raise NotImplementedError(self, "_AddCtrls") def _CreateEvents(self): """Needs to be overwritten.""" raise NotImplementedError(self, "_CreateEvents") def GetValue(self): raise NotImplementedError(self, "GetValue") def SetValue(self): raise NotImplementedError(self, "SetValue") class _PathCtrl(_ComposedCtrl): InputCtrl = TextCtrl def _CreateCtrls(self, value, extensions=[], **extra): #folder self.path = self.InputCtrl(self, id=-1, value=value, **extra) if self.InputCtrl == wx.TextCtrl \ and not sys.platform.startswith('win'): self.path.SetSelection(-1, -1) #browse button bmp = wx.ArtProvider_GetBitmap(wx.ART_FOLDER_OPEN, wx.ART_OTHER, size=(16, 16)) self.browse = wx.BitmapButton(self, -1, bmp, style=wx.NO_BORDER) #extensions self._extensions = extensions def _AddCtrls(self, sizer, height): if wx.Platform == '__WXGTK__': #gtk provides a border already b = 0 else: #windows & mac like some distance b = 4 #don't force button, as crop is preferred to being crippled sizer.Add(self.browse, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, b) sizer.AddForced(self.path, 1) def _CreateEvents(self): self.Bind(wx.EVT_BUTTON, self.OnBrowse, self.browse) def GetDefaultPath(self, default_path=None): if default_path is None: default_path = os.path.dirname(self.path.GetValue()) old = None while not os.path.exists(default_path) and (default_path != old): old = default_path default_path = os.path.dirname(default_path) return default_path def GetValue(self): return self.path.GetValue() def SetBackgroundColour(self, color): super(_PathCtrl, self).SetBackgroundColour(color) self.browse.SetBackgroundColour(color) def SetValue(self, x): self.path.SetValue(x) def SetFocus(self): self.path.SetFocus() METRICS = ['px', '%', 'cm', 'mm', 'inch'] #---Main Controls (will be automatically registered through meta-class) class BooleanCtrl(_CtrlRelevantMixin, _Ctrl, wx.CheckBox): def __init__(self, parent, value, size, on_change=None): super(BooleanCtrl, self).__init__(parent, -1, '', size=size) self.SetValue(bool(value)) self.SetRelevant(wx.EVT_CHECKBOX, on_change) self.OnChange() def Get(self): return (_t('no'), _t('yes'))[self.GetValue()] class ChoiceCtrl(_CtrlRelevantMixin, _CtrlWithItems, wx.Choice): def __init__(self, parent, value, size, choices, on_change=None): local_choices = self.RegisterChoices(choices) super(ChoiceCtrl, self).__init__(parent, -1, choices=local_choices, size=size) self.Set(value) self.SetRelevant(wx.EVT_CHOICE, on_change) def SetValue(self, value): self.SetStringSelection(value) class ComboCtrl(_CtrlWithItems, wx.ComboBox): def __init__(self, parent, value, size, choices, style=['DROPDOWN', 'SORT']): local_choices = self.RegisterChoices(choices) style = self.RegisterStyle(style) super(ComboCtrl, self).__init__(parent, -1, choices=local_choices, size=size, style=style) self.Set(value) def Get(self): if 'READONLY' in self.style: return _CtrlWithItems.Get(self) else: return _Ctrl.Get(self) def RegisterStyle(self, style): "from a list of strings ['DROPDOWN','SORT'] to wx" self.style = style result = 0 for s in style: result |= getattr(wx, 'CB_' + s) return result class ImageDictionaryFileCtrl(_CtrlRelevantMixin, _Ctrl, wx.Button): _label = _t('Images') dialogs = {} def __init__(self, parent, value, size, extensions, dictionary, dialog, show_path=True, on_change=None, icon_size=(64, 64)): #avoid circular FIXME global imageFileBrowser import imageFileBrowser super(ImageDictionaryFileCtrl, self).__init__(parent, -1, LOADING, size=size) self.value = value self.extensions = extensions self.dictionary = dictionary self.title = _(dialog) self.show_path = show_path self.icon_size = icon_size self.Disable() wx.CallAfter(self.OnChange, None, value) self.SetRelevant(wx.EVT_BUTTON, on_change) def OnChange(self, event, value=None): if self.title in self.dialogs: dlg = ImageDictionaryFileCtrl.dialogs[self.title] else: dlg = None if not dlg: if self.icon_size == (128, 128): height = 350 else: height = 400 frame = wx.GetApp().GetTopWindow() dlg = self.dialogs[self.title] = \ imageFileBrowser.Dialog( parent=frame, files=self.dictionary, title=self.title, size=(frame.GetSize()[0], height), icon_size=self.icon_size, ) dlg.ShowPath(self.show_path) if value is None: value = self.GetValue() else: self.SetValue(value) self.Enable() dlg.SetValue(value) if dlg.ShowModal() == wx.ID_OK: self.SetValue(dlg.image_path.GetValue()) dlg.Hide() super(ImageDictionaryFileCtrl, self).OnChange(event) def SetValue(self, value): self.value = value self.SetLabel(_(value)) def GetValue(self): return self.value class ColorCtrl(_Ctrl, wx.lib.colourselect.ColourSelect): def __init__(self, parent, value, size): label = value if isinstance(value, (str, unicode)): value = HTMLColorToRGB(value) super(ColorCtrl, self).__init__(parent, -1, '', value, size=size) self.Bind(wx.lib.colourselect.EVT_COLOURSELECT, self.OnSelectColor) wx.CallAfter(self.SetLabel, label) wx.CallAfter(self.SetValue, value) wx.CallAfter(self.OnClick, None) def GetValue(self): return self.GetColorAsString() def GetColorAsString(self, color=None): if color == None: color = self.GetColour() if isinstance(color, (str, unicode)): return color return RGBToHTMLColor((color.Red(), color.Green(), color.Blue())) def OnSelectColor(self, event): color = event.GetValue() self.SetLabel(self.GetColorAsString(color)) self.SetValue(wx.NamedColour(color)) class FileCtrl(_PathCtrl): wildcard = _t('All files') + '|*' def OnBrowse(self, event): style = wx.OPEN | wx.CHANGE_DIR if hasattr(wx, 'FD_PREVIEW'): style |= wx.FD_PREVIEW dlg = wx.FileDialog(self, self._to_local("Choose a file"), defaultFile=self.GetDefaultPath(), wildcard=self.GetWildcard(), style=style, ) if dlg.ShowModal() == wx.ID_OK: value = dlg.GetPath() self.path.SetValue(value) #send event to signal the path has changed evt = wx.CommandEvent(wx.EVT_TEXT.typeId) evt.SetId(self.path.GetId()) evt.SetEventObject(self.path) evt.SetString(value) self.path.GetEventHandler().ProcessEvent(evt) dlg.Destroy() def GetWildcard(self): return self._to_local(self.wildcard) class LabelFileCtrl(FileCtrl): _label = _t('Selection') _all_files = _t('All files') def GetWildcard(self): if self._extensions: if len(self._extensions) < 5: label = '%s (%s)' % (self._label, ','.join(self._extensions)) else: label = self._label menu = [wildcard_list(self._to_local(label), self._extensions)] else: menu = [] menu.append(self._all_files + '|*') return '|'.join(menu) class FolderCtrl(_PathCtrl): def OnBrowse(self, event): dlg = wx.DirDialog(self, self._to_local("Choose a folder"), defaultPath=self.GetDefaultPath(), style=wx.DEFAULT_DIALOG_STYLE) if dlg.ShowModal() == wx.ID_OK: self.path.SetValue(dlg.GetPath()) dlg.Destroy() class DictionaryFileCtrl(LabelFileCtrl): dictionary = {} def __init__(self, parent, value, size, dictionary, **extra): self.dictionary = dictionary choices = dictionary.keys() choices.sort() super(DictionaryFileCtrl, self).__init__(parent, value, size, choices=choices, **extra) def GetDefaultPath(self, default_path=None): if default_path is None: value = self.path.GetValue() default_path = self.dictionary.get(value, value) return super(DictionaryFileCtrl, self).GetDefaultPath(default_path) class AutoCompleteDictionaryFileCtrl(DictionaryFileCtrl): InputCtrl = AutoCompleteTextCtrl def _CreateCtrls(self, value, extensions=[], **extra): super(AutoCompleteDictionaryFileCtrl, self)._CreateCtrls(value, extensions, style=wx.CB_DROPDOWN, # for compatibility with dropdown ** extra) if hasattr(self.path, "StartEvents"): self.path.StartEvents() class FontFileCtrl(AutoCompleteDictionaryFileCtrl): _label = _t('Fonts') _busy_cursor = True def GetDefaultPath(self, default_path=None): if default_path is None: value = self.path.GetValue() default_path = font_dictionary().get(value, value) if not os.path.isdir(default_path.strip()): for path in FONT_PATHS: if os.path.isdir(path): return path return super(FontFileCtrl, self).GetDefaultPath(default_path) def Close(self): if hasattr(self.path, "StopEvents"): self.path.StopEvents() class ImageReadFileCtrl(LabelFileCtrl): _label = _t('Images') class PixelCtrl(_ComposedCtrl): SizeCtrl = TextCtrl units = METRICS def _CreateCtrls(self, value, **extra): self.size = self.SizeCtrl(self, id=-1, value=value, **extra) ## if not sys.platform.startswith('win'): ## self.size.SetSelection(-1, -1) self.unit = wx.Choice(self, id=-1, choices=self.units) self.SetValue(value) def _AddCtrls(self, sizer, height): sizer.AddForced(self.size, 1) width = self.unit.GetSize()[0] if wx.Platform == '__WXGTK__': width = int(width * 0.8) sizer.AddForced(self.unit, 0, size=(width, height)) def _CreateEvents(self): """Nothing to do""" def SplitValue(self, value): "Split value and unit" value = value.strip() unit = self.units[0] for u in self.units: if value.endswith(u): unit = u value = value[:-len(u)] break return value, unit def SetValue(self, value): value, unit = self.SplitValue(value) self.size.SetValue(value) self.unit.SetStringSelection(unit) def GetValue(self): value = self.size.GetValue() if value: return '%s %s' % (value, self.unit.GetStringSelection()) else: return '' def SetFocus(self): self.size.SetFocus() FILE_SIZE_UNITS = ['kb', 'bt', 'mb', 'gb'] class FileSizeCtrl(PixelCtrl): units = FILE_SIZE_UNITS class SliderCtrl(_ComposedCtrl): """Needs to mimic a wx.SliderCtrl""" def _CreateCtrls(self, value, minValue, maxValue): value = int(value) #spin ctrl self.spin = wx.SpinCtrl(self, id=-1) self.spin.SetRange(minValue, maxValue) self.spin.SetValue(value) #slider self.slider = wx.Slider(self, -1, value, minValue, maxValue, style=wx.SL_HORIZONTAL) def _AddCtrls(self, sizer, height): sizer.AddForced(self.spin, 0, size=(int(height * 1.85), height)) sizer.AddForced(self.slider, 1) def _CreateEvents(self): self.Bind(wx.EVT_SPINCTRL, self.OnSpin, self.spin) self.Bind(wx.EVT_SCROLL, self.OnScroll, self.slider) #---control methods (obligatory) def GetValue(self): return unicode(self.slider.GetValue()) def SetBackgroundColour(self, color): super(SliderCtrl, self).SetBackgroundColour(color) if wx.Platform == '__WXMSW__': self.spin.SetBackgroundColour(color) self.slider.SetBackgroundColour(color) def SetFocus(self): self.spin.SetFocus() #---events def OnSpin(self, event): self.slider.SetValue(self.spin.GetValue()) def OnScroll(self, event): self.spin.SetValue(self.slider.GetValue()) class FloatSliderCtrl(SliderCtrl): """Needs to mimic a wx.SliderCtrl""" unit = 100.0 def _CreateCtrls(self, value, minValue, maxValue): value = int(value) #spin ctrl self.spin = wx.TextCtrl(self, -1, str(value)) #slider self.slider = wx.Slider(self, -1, int(value * self.unit), int(minValue * self.unit), int(maxValue * self.unit), style=wx.SL_HORIZONTAL) def _CreateEvents(self): self.Bind(wx.EVT_TEXT, self.OnSpin, self.spin) self.Bind(wx.EVT_SCROLL, self.OnScroll, self.slider) #---control methods (obligatory) def GetValue(self): return self.spin.GetValue() #---events def OnSpin(self, event): s = event.GetString() try: value = int(float(s) * self.unit) except ValueError: return self.slider.SetValue(value) def OnScroll(self, event): self.spin.SetValue(str(self.slider.GetValue() / self.unit)) #todo implement all controls as panel with custom BoxSizer #or maybe PopupControl should take care of this CTRL_CACHE = {} def ctrl_factory(name, CtrlMixin): ctrl_key = (name, CtrlMixin) try: Ctrl = CTRL_CACHE[ctrl_key] except KeyError: #example: name = FontFile (derived from class name) _globals = globals() ctrl_name = name + 'Ctrl' if ctrl_name in _globals: #this control is defined in this module Ctrl = _globals[ctrl_name] else: #unknown -> default to textctrl Ctrl = globals().get(ctrl_name, TextCtrl) if not (CtrlMixin is None): if isinstance(CtrlMixin, list): bases = tuple(CtrlMixin + [Ctrl]) else: bases = (CtrlMixin, Ctrl) Ctrl = type(name, bases, {}) CTRL_CACHE[ctrl_key] = Ctrl return Ctrl class EditPanel(wx.Panel): "See for example create_popup in treeEdit" def __init__(self, parent, typ, value, extra={}, size=(28, 28), pos=(0, 0), offset=0, label='', border=0, CtrlMixin=None): super(EditPanel, self).__init__(parent, id=-1, pos=pos, size=size) self.Freeze() self._SetColours() if label: self._CreateLabel(label) height = size[1] border = self._CreateEdit(value, extra, typ, height, border, CtrlMixin) self._Layout(offset, height, border, label) self.Thaw() def _CreateLabel(self, label): self.label = label self.labelCtrl = wx.StaticText(self, -1, label) self.labelCtrl.SetForegroundColour(self.fgcolor) def _CreateEdit(self, value_as_string, extra, typ, height, border, CtrlMixin): #create ctrl class Ctrl = ctrl_factory(typ, CtrlMixin) #adjust border if issubclass(Ctrl, TextCtrl): border = max(border, TEXTCTRL_BORDER) #create ctrl instance if Ctrl._busy_cursor: wx.BeginBusyCursor() self.edit = Ctrl(self, value=Ctrl._to_english(value_as_string), size=(height, height - 2 * border), **extra) #check min size if self.edit.GetSize()[1] > height: self.edit.SetMinSize((self.edit.GetMinSize()[0], height)) self.edit.SetFocus() if Ctrl._busy_cursor: wx.EndBusyCursor() return border def _Layout(self, offset, height, border, label): """Offset is an integer.""" sizer = ForcedBoxSizer(wx.HORIZONTAL, height, border) sizer.Add((offset, offset), 0) if label: sizer.Add(self.labelCtrl, proportion=0, flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL) sizer.AddForced(self.edit, proportion=1, border=border) if border < TEXTCTRL_BORDER and wx.Platform != '__WXGTK__': border = min(TEXTCTRL_BORDER, border) sizer.Add((border, border), 0) self.SetSizer(sizer) sizer.Fit(self) self.Layout() def Close(self): """Loses focus""" if self: if hasattr(self.edit, "Close"): getattr(self.edit, "Close")() result = unicode(self.edit.Get()) self.Destroy() return result #---support methods def _SetColours(self): self.bgcolor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHT) self.fgcolor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT) self.SetBackgroundColour(self.bgcolor) def example(): width, height = 300, 28 obj = globals() ctrls = [(name[:-4], obj[name]) for name in globals().keys() if name.endswith('Ctrl') and \ not name.startswith('_') and \ not name in ('AutoCompleteTextCtrl', 'AutoCompleteIconCtrl', 'ImageDictionaryFileCtrl', 'ColorCtrl')] ctrls.sort() class App(wx.App): def OnInit(self, *args, **keyw): """Keep this in sync with treeEdit.create_popup""" frame = wx.Frame(None, -1, 'popup test') sizer = wx.BoxSizer(wx.VERTICAL) def on_change(*args): print('on_change %s' % str(args)) for typ, ctrl in ctrls: if issubclass(ctrl, SliderCtrl): extra = {'minValue': 0, 'maxValue': 100} elif issubclass(ctrl, BooleanCtrl): extra = {'on_change': on_change} elif issubclass(ctrl, ChoiceCtrl): extra = {'choices': ('1', '2'), 'on_change': on_change} elif issubclass(ctrl, ComboCtrl): extra = {'choices': ('1', '2')} elif issubclass(ctrl, DictionaryFileCtrl): extra = {'dictionary': {'hello': 'world'}} elif issubclass(ctrl, FileCtrl): extra = {'extensions': ('*.py', '*.png')} else: extra = {} if issubclass(ctrl, ColorCtrl): value = '#FFFFFF' else: value = '1' popup = EditPanel(frame, typ, value=value, extra=extra, size=(width, height), pos=(0, 0), offset=10, label=typ, border=1, CtrlMixin=None) sizer.Add(popup, flag=wx.EXPAND) frame.SetSizer(sizer) sizer.Fit(frame) frame.SetSize((width, frame.GetSize()[1])) frame.Layout() frame.Show() self.SetTopWindow(frame) return True app = App(0) app.MainLoop() if __name__ == '__main__': example() phatch-0.2.7/phatch/lib/pyWx/screenshot.py0000644000000000000000000000433011346363116020444 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follow PEP8 import os import wx def get(rect): """ Takes a screenshot of the screen at give pos & size (rect). """ # Create a DC for the whole screen area. dcScreen = wx.ScreenDC() # Create a Bitmap that will later on hold the screenshot image. # Note that the Bitmap must have a size big enough to hold the screenshot. # -1 means using the current default color depth. bmp = wx.EmptyBitmap(rect.width, rect.height) # Create a memory DC that will be used for actually taking the screenshot. memDC = wx.MemoryDC() # Tell the memory DC to use our Bitmap # all drawing action on the memory DC will go to the Bitmap now. memDC.SelectObject(bmp) # Blit (in this case copy) the actual screen on the memory DC # and thus the Bitmap memDC.Blit(0, # Copy to this X coordinate. 0, # Copy to this Y coordinate. rect.width, # Copy this width. rect.height, # Copy this height. dcScreen, # From where do we copy? rect.x, # What's the X offset in the original DC? rect.y # What's the Y offset in the original DC? ) # Select the Bitmap out of the memory DC by selecting a new # uninitialized Bitmap. memDC.SelectObject(wx.NullBitmap) return bmp def get_window(window): return get(window.GetRect()) def save(rect, filename): ext = os.path.splitext(filename)[-1][1:].upper() typ = getattr(wx, 'BITMAP_TYPE_' + ext) return get(rect).SaveFile(filename, typ) def save_window(window, filename): return save(window.GetRect(), filename) phatch-0.2.7/phatch/lib/pyWx/shell.py0000644000000000000000000000347611346363116017410 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follow PEP8 try: _ except NameError: _ = unicode import time import __main__ import wx import wx.py TRANSLATE = _ class Frame(wx.Frame): def __init__(self, parent, title='Shell', intro='', values={}, icon=None, **kw): wx.Frame.__init__(self, parent, -1, title=title, **kw) self.shell = wx.py.crust.Crust(self, -1, intro=intro) pp = self.shell.shell.interp.locals['pp'] self.shell.shell.interp.locals.clear() self.shell.shell.interp.locals.update(values) self.shell.shell.interp.locals['pp'] = pp if icon: self.SetIcon(icon) self.Bind(wx.EVT_CLOSE, self.on_close, self) shell = self.shell.shell shell.Unbind(wx.EVT_IDLE) shell.Bind(wx.EVT_IDLE, self.OnIdle) def OnIdle(self, event): """Free the CPU to do other things.""" __main__._ = TRANSLATE event.Skip() if self.shell.shell.waiting: time.sleep(0.05) def on_close(self, event): parent = self.GetParent() parent.menu_tools.Check(parent.menu_tools_python_shell.GetId(), False) parent.shell = None event.Skip() phatch-0.2.7/phatch/lib/pyWx/tag.py0000644000000000000000000001305311346363116017044 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follows PEP8 import wx import paint from compatible import SearchCtrl def extract_tags(items): tags = [] for item in items: for tag in item.tags: tag = _(tag) if tag not in tags: tags.append(tag) return tags class ContentMixin(object): def GetBrowser(self): return self.GetParent() def GetFilter(self): return self.GetBrowser().filter def GetTag(self): return self.GetBrowser().tag def CheckEmpty(self): self.GetBrowser().CheckEmpty() def GetEmpty(self): return self.GetBrowser().empty def SetTag(self, tag): #check tag ctrl in parent tag_ctrl = self.GetTag() if tag_ctrl.GetStringSelection() != tag: tag_ctrl.SetStringSelection(tag) class Browser(paint.Mixin, wx.Panel): """ContentCtrl needs to be a class which implements these methods: - content.SetTag <- browser.OnTag - content.SetFilter <- browser.OnFilter""" ContentCtrl = wx.Panel paint_message = "nothing found" paint_logo = None # "ART_TIP" def __init__(self, parent, tags, content_ctrl_keyw, *args, **keyw): """At least four arguments should be passed: Browser(['foo', 'bar'], TestContentCtrl, {}, parent)""" super(Browser, self).__init__(parent, *args, **keyw) self._create_controls(tags, content_ctrl_keyw) self._layout() self._events() self._init() def _init(self): pass def _create_controls(self, tags, content_ctrl_keyw): #save tags self._tags = tags #search box self.filter = SearchCtrl(self, -1, "") #tag choice ctrl self.tag = wx.Choice(self, -1, choices=tags) if tags: self.tag.SetSelection(0) #empty ctrl self.empty = wx.Panel(self) #content ctrl self.content = self.ContentCtrl(self, **content_ctrl_keyw) self.is_empty = -1 def _layout(self): main_sizer = wx.BoxSizer(wx.VERTICAL) #horizontal browse sizer = search & tag control browse_sizer = wx.BoxSizer(wx.HORIZONTAL) browse_sizer.Add(self.filter, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4) browse_sizer.Add(self.tag, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 4) main_sizer.Add(browse_sizer, 0, wx.EXPAND, 0) #content control main_sizer.Add(self.content, 1, wx.ALL | wx.EXPAND, 4) #empty control main_sizer.Add(self.empty, 1, wx.ALL | wx.EXPAND, 4) #layout self.SetSizer(main_sizer) self.Layout() def _events(self): self.Bind(wx.EVT_TEXT, self.OnFilter, self.filter) self.Bind(wx.EVT_CHOICE, self.OnTag, self.tag) self.EnableBackgroundPainting(self.empty) def OnTag(self, event): self.content.SetTag(event.GetString()) def OnFilter(self, event): self.content.SetFilter(self.filter.GetValue()) def GetItemTags(self, item): """Can be overwritten.""" return item.tags def GetTags(self, items): return self._tags def GetContent(self): return self.content def CheckEmpty(self): is_empty = self.IsEmpty() if self.is_empty != is_empty: #update is needed self.empty.Show(is_empty) self.content.Show(not is_empty) self.is_empty = is_empty self.empty.Refresh() self.Layout() return is_empty def IsEmpty(self): return self.content.IsEmpty() def OnSize(self, event): event.Skip() if self.IsEmpty(): self.empty.Refresh() def EnableResize(self, state=True, object=None): if object is None: object = wx.GetTopLevelParent(self) if state: object.Bind(wx.EVT_SIZE, self.OnSize) else: object.Unbind(wx.EVT_SIZE) class TestContentCtrl(ContentMixin, wx.TextCtrl): def __init__(self, *args, **keyw): super(TestContentCtrl, self).__init__(*args, **keyw) self.filter = '' def SetTag(self, tag): self.SetValue('You selected tag: %s.' % tag) def SetFilter(self, filter): self.filter = filter if not self.CheckEmpty(): self.SetValue('You selected filter: %s.' % filter) def IsEmpty(self): return not self.filter class TestBrowser(Browser): ContentCtrl = TestContentCtrl def _init(self): self.CheckEmpty() class TestFrame(wx.Frame): def __init__(self, parent): wx.Frame.__init__(self, parent, -1, "Test Tag Browser", size=(640, 480)) self.browser = TestBrowser(self, ['foo', 'bar'], {}) self.browser.EnableResize() def example(): import sys sys.path.extend(['..']) #test app app = wx.PySimpleApp() frame = TestFrame(None) frame.Show(True) app.MainLoop() if __name__ == '__main__': example() phatch-0.2.7/phatch/lib/pyWx/treeDragDrop.py0000644000000000000000000001102211346363116020645 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follow PEP8 import wx class Mixin: def GetItemChildren(self, item): child, cookie = self.GetFirstChild(item) children = [] while child: children.append(child) child = self.GetNextSibling(child) return children def GetRootChild(self, item): root = self.GetRootItem() if item == root: return -1 parent = self.GetItemParent(item) while parent != root: item = parent parent = self.GetItemParent(item) return item def MoveChildUp(self, item): if item == self.GetRootItem(): return parent = self.GetItemParent(item) children = self.GetItemChildren(parent) if item in children: index = children.index(item) if index > 0: children.remove(item) self._order = children[:index - 1] + \ [item] + children[index - 1:] self.SortChildren(parent) #print 'SortChildren', \ # parent,self.GetItemParent(parent),self.GetRootItem() self._order = [] def MoveChildDown(self, item): if item == self.GetRootItem(): return parent = self.GetItemParent(item) children = self.GetItemChildren(parent) n = self.GetChildrenCount(parent, recursively=False) if item in children: index = children.index(item) if index < n - 1: children.remove(item) self._order = children[:index + 1] + \ [item] + children[index + 1:] self.SortChildren(parent) self._order = [] def OnCompareItems(self, item1, item2): if hasattr(self, '_order') and \ (item1 in self._order) and (item2 in self._order): index1 = self._order.index(item1) index2 = self._order.index(item2) if index1 < index2: return -1 if index1 == index2: return 0 return 1 else: raise 'no order' # Drag & drop def EnableDrag(self, dragTo=None): if dragTo is None: self._dragTo = self.GetRootChild else: self._dragTo = dragTo self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnBeginDrag, self) self.Bind(wx.EVT_TREE_END_DRAG, self.OnEndDrag, self) def DisableDrag(self): self.Unbind(wx.EVT_TREE_BEGIN_DRAG, self) self.Unbind(wx.EVT_TREE_END_DRAG, self) def OnBeginDrag(self, event): '''Allow drag-and-drop.''' item = event.GetItem() if item.IsOk() and item != self.GetRootItem(): event.Allow() self._dragItem = item def OnEndDrag(self, event): '''Do the re-organization if possible''' # If we dropped somewhere that isn't on top # of an item, ignore the event. target = event.GetItem() if not (target.IsOk() and target != self.GetRootItem() and \ hasattr(self, '_dragItem') and self._dragItem): return items = [self._dragItem, target] if self._dragTo: items = [self._dragTo(item) for item in items] parent, parentTarget = [self.GetItemParent(item) for item in items] if parent.IsOk() and parentTarget.IsOk() and parent == parentTarget: children = self.GetItemChildren(parent) if (items[0] in children) and (items[1] in children): # Move old, new = [children.index(item) for item in items] temp = children[new] children[new] = children[old] children[old] = temp self._order = children self.SortChildren(parent) self._order = [] self._dragItem = None phatch-0.2.7/phatch/lib/pyWx/treeEdit.py0000644000000000000000000006341511346363116020045 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follow PEP8 # ---import modules # gui-indepedent if __name__ == '__main__': import sys sys.path.insert(0, '..') from lib import formField from lib import metadata # gui-dependent import wx import graphics import popup import treeDragDrop if __name__ == '__main__': sys.path.insert(0, '../..') from lib.unicoding import exception_to_unicode FIELD_DELIMITER = ': ' WX_ENCODING = wx.GetDefaultPyEncoding() IMAGE_TEST_INFO = metadata.InfoTest() # ---functions # ---tree ITEM_HEIGHT = 28 ICON_SIZE = (ITEM_HEIGHT, ITEM_HEIGHT) TR_DEFAULT_STYLE = wx.TR_HAS_BUTTONS | wx.TR_NO_LINES | \ wx.TR_FULL_ROW_HIGHLIGHT | wx.TR_HIDE_ROOT | \ wx.TR_DEFAULT_STYLE | wx.SUNKEN_BORDER def _do_nothing(*args, **keyw): pass def rescale(image, x, y, filter=None): """For compatibility with wxPython 2.6""" if filter is None and hasattr(wx, 'IMAGE_QUALITY_HIGH'): filter = wx.IMAGE_QUALITY_HIGH if filter is None: image.Rescale(x, y) else: image.Rescale(x, y, filter) def get_index(li, index, n=3): try: return li[index] except IndexError: return (None, ) * n class TreeMixin(treeDragDrop.Mixin): """ - form is like an action """ def __init__(self, form_factory={}, CtrlMixin=[], icon_size=(28, 28), show_error=_do_nothing, set_dirty=_do_nothing): if wx.Platform == "__WXGTK__": # indentation self.SetIndent(int(self.GetIndent() * 1.5)) # # elif wx.Platform == "__WXMSW__": # doesn't work # # self.SetIndent(int(self.GetIndent() / 2)) # form factory self.form_factory = form_factory self.CtrlMixin = CtrlMixin # popup self.popup = None self.popup_item = None self._field_selected = False # methods self.show_error = show_error self.set_dirty = set_dirty # image list self.CreateImageList(icon_size) # drag & drop self.EnableDrag(dragTo=self.get_form_item) # collapse self.collapse_automatic = False self.evt_leave_window = False # clear self.delete_all_forms() # events self.events() def CreateImageList(self, icon_size): self.image_list = wx.ImageList(*icon_size) icon_disabled = graphics.bitmap(ICON_DISABLED) for form in self.form_factory.values(): self._AddFormToImageList(form, icon_size, icon_disabled) self.SetImageList(self.image_list) def _AddFormToImageList(self, form, icon_size, icon_disabled): wx_image = graphics.image(form.icon, icon_size) form.icon_bitmap = wx.BitmapFromImage(wx_image) # rescale(image, icon_size[0], icon_size[1]) import Image from wxPil import pil_wxImage, wxImage_pil wx_image = pil_wxImage(wxImage_pil(wx_image).resize(icon_size,\ Image.ANTIALIAS)) form.icon_tree = wx.BitmapFromImage(wx_image) form.icon_tree_disabled = icon_disabled form.icon_tree_id = ( self.image_list.Add(form.icon_tree_disabled), self.image_list.Add(form.icon_tree)) def set_item_image(self, x, image): self.SetItemImage(x, image, wx.TreeItemIcon_Normal) def tree_label(self, name, value): return ''.join([_(name), FIELD_DELIMITER, self.CtrlMixin._to_local(value)]) def delete_all_forms(self): self.DeleteAllItems() self.AddRoot('') # ---forms def append_form(self, form, item=-1): root = self.GetRootItem() if item is -1: item = self.AppendItem(root, _(form.label)) else: item = self.InsertItem(root, item, _(form.label)) self.set_item_image(item, form.icon_tree_id[True]) self.SetItemBold(item, True) self.import_form(item, form) self.SelectItem(item) return item def append_forms(self, forms): collapse = len(forms) > 4 for form in forms[: -1]: item = self.append_form(form) if collapse: self.Collapse(item) self.append_form(forms[-1]) return forms def append_form_by_label(self, item, label): return self.append_form(self.form_factory[label](), item) def collapse_forms(self): root = self.GetRootItem() for child in self.GetItemChildren(root): self.Collapse(child) def enable_form(self, item, bool): self.enable_form_item(self.get_form_item(item), bool) def enable_form_item(self, item, bool): form = self.GetPyData(item) self.set_item_image(item, form.icon_tree_id[bool]) self.SetItemTextColour(item, (wx.RED, wx.GREEN)[bool]) if bool: self.Expand(item) else: self.Collapse(item) def expand_forms(self): root = self.GetRootItem() for child in self.GetItemChildren(root): self.Expand(child) def export_form(self, item, label=None): form = self.GetPyData(item) for field in self.GetItemChildren(item): label, value_as_string = self.GetPyData(field) form.set_field_as_string(label, value_as_string) form.set_field('__enabled__', self.is_form_enabled(item)) return form def export_forms(self): root = self.GetRootItem() forms = [] for child in self.GetItemChildren(root): forms.append(self.export_form(child)) return forms def import_form(self, item, form): self.SetPyData(item, form) self.DeleteChildren(item) fields = form._get_fields() if not self.update_form_relevance(item): for label, field in fields.items(): if field.visible: self.append_field(item, label, field) enabled_field = form._get_fields()['__enabled__'] self.enable_form_item(item, enabled_field.get()) def append_field(self, parent, label, field, method=None, item=None): value_as_string = field.get_as_string() if method is None: new_item = self.AppendItem(parent, self.tree_label(label, value_as_string)) else: # print method, parent, item, self.tree_label(label,\ # value_as_string) # print new_item = method(parent, item, self.tree_label(label, value_as_string)) self.SetPyData(new_item, (label, value_as_string)) return new_item def get_form(self, item, label=None): return self.export_form(self.get_form_item(item), label) def get_form_item(self, item): return self.GetRootChild(item) def get_form_field(self, item): label, value_as_string = self.GetPyData(item) return self.get_form(item, label)._get_field(label) def get_form_fields_visible(self, item, form): """Retrieves the visible fields and their values. If a field is dirty, its value will be overwritten with the newly given value. Very important: this handles the dirty fields. """ form = self.GetPyData(item) fields = [] for index, ui_field in enumerate(self.GetItemChildren(item)): label, value_as_string = self.GetPyData(ui_field) field = form._get_field(label) if field.dirty: # overrule if dirty value_as_string = field.get_as_string() self.SetItemText(ui_field, self.tree_label(label, value_as_string)) self.SetPyData(ui_field, (label, value_as_string)) field.dirty = False fields.append((ui_field, label, value_as_string)) return fields def has_forms(self): return self.GetCount() def toggle_form_item(self, item, event): root = self.GetRootItem() if item == root: event.Skip() else: parent = self.GetItemParent(item) if parent == root: image = self.GetItemImage(item, wx.TreeItemIcon_Normal) if image != -1: self.enable_form_item(item, not self.is_form_enabled(item)) self.set_dirty(True) def set_form_field_value(self, item, value_as_string): label, old = self.GetPyData(item) form = self.get_form(item, label) field = form._get_field(label) value_as_string = field.fix_string(value_as_string) if value_as_string != old: # test-validate the user input (see formField.Field.get) try: if isinstance(field, formField.PixelField): field.get_size(IMAGE_TEST_INFO, 100, 100, label, value_as_string) # 100 is just some dummy value for base, dpi else: field.get(IMAGE_TEST_INFO, label=label, value_as_string=value_as_string, test=True) self.set_dirty(True) except formField.ValidationError, details: reason = exception_to_unicode(details, WX_ENCODING) self.show_error(reason) if formField.Field.safe: return if value_as_string == '': # hack, fix me value_as_string = ' ' self.SetPyData(item, (label, value_as_string)) self.SetItemText(item, self.tree_label(label, value_as_string)) form.set_field_as_string(label, value_as_string) def set_form_field_value_selected(self, value): item = self.GetSelection() if self.GetItemParent(item) == self.GetRootItem(): return if item and self.GetPyData(item): field = self.get_form_field(item) if not (isinstance(field, formField.ChoiceField) \ or isinstance(field, formField.BooleanField) \ or isinstance(field, formField.ColorField) \ or isinstance(field, formField.SliderField)): self.set_form_field_value(item, value) # ---selected form def append_form_by_label_to_selected(self, label): item = self.get_form_selected() return self.append_form_by_label(item, label) def enable_selected_form(self, bool): self.enable_form_item(self.get_form_selected(), bool) def get_form_selected(self): if self.has_forms(): return self.get_form_item(self.GetSelection()) return -1 def move_form_selected_down(self): self.MoveChildDown(self.get_form_selected()) def move_form_selected_up(self): self.MoveChildUp(self.get_form_selected()) def update_form_relevance(self, field_item): """Conditional form""" item = self.get_form_item(field_item) form = self.GetPyData(item) if not hasattr(form, 'get_relevant_field_labels'): return False all = form._get_fields() relevant = form.get_relevant_field_labels() ui_index = 0 ui = self.get_form_fields_visible(item, form) ui_labels = [f[1] for f in ui] ui_field, ui_label, ui_value_as_string = get_index(ui, ui_index) ui_field_prev = None # print '_'*40 for label, field in all.items(): if not field.visible: continue # print 'item=', item, ', label=', label, ', ui_field=', field, ',\ # ui_label=', ui_label, ', child =', self.ItemHasChildren(item),\ # ', prev =', ui_field_prev # print next_ui = False deleted = False # relevant if label in relevant: if label == ui_label: # already there next_ui = True elif ui_field_prev: # insert after previous ui field # print 'prev value', self.GetPyData(ui_field_prev) ui_field_prev = self.append_field(item, label, field, self.InsertItem, ui_field_prev) elif self.ItemHasChildren(item): # insert before first ui field ui_field_prev = self.append_field(item, label, field, self.InsertItemBefore, self.GetFirstChild(item)) else: # append as first element ui_field_prev = self.append_field(item, label, field) # not relevant elif label in ui_labels: # save values form.set_field_as_string(ui_label, ui_value_as_string) # remove self.Delete(ui_field) next_ui = True deleted = True # next ui if next_ui: if ui_field and not deleted: # deleted: we don't want to reference to dead objects ui_field_prev = ui_field ui_index += 1 ui_field, ui_label, ui_value_as_string = \ get_index(ui, ui_index) return True def remove_selected_form(self): form = self.get_form_selected() if form is -1: return False else: self.Delete(form) return True # ---last form def append_form_by_label_to_last(self, label): item = self.get_last_form() self.append_form_by_label(item, label) def get_last_form(self): return self.GetLastChild(self.GetRootItem()) # ---popup def create_popup(self, item): """Connect formField.field to popup.Ctrl (VIP!)""" field = self.get_form_field(item) label, value = self.GetItemText(item).split(FIELD_DELIMITER, 1) pos, offset, size = self.get_popup_pos_offset_size(item) typ = field.__class__.__name__.replace('Field', '') def on_change(value_as_string): field.set_as_string(value_as_string) self.update_form_relevance(item) if isinstance(field, formField.SliderField): extra = {'minValue': field.min, 'maxValue': field.max} elif isinstance(field, formField.ChoiceField): extra = {'choices': field.choices, 'on_change': on_change} typ = 'Choice' elif isinstance(field, formField.DictionaryReadFileField): if field.dictionary is None: field.init_dictionary() extra = {'extensions': field.extensions, 'dictionary': field.dictionary} if isinstance(field, formField.ImageDictionaryField): extra['show_path'] = False extra['on_change'] = on_change if isinstance(field, formField.ImageDictionaryReadFileField): typ = 'ImageDictionaryFile' extra['dialog'] = field.dialog extra['icon_size'] = field.icon_size elif not isinstance(field, formField.FontFileField): typ = 'DictionaryFile' elif isinstance(field, formField.FileField): extra = {'extensions': field.extensions} typ = 'LabelFile' elif hasattr(field, 'choices'): extra = {'choices': field.choices, 'on_change': on_change} elif isinstance(field, formField.BooleanField): extra = {'on_change': on_change} else: extra = {} self.popup_item = item self.popup = popup.EditPanel(self, pos=pos, offset=offset, size=size, label=_(label) + FIELD_DELIMITER, value=value, extra=extra, typ=typ, border=1, CtrlMixin=self.CtrlMixin) self.popup.Show() self.resize_popup() if not isinstance(field, formField.FontFileField): wx.GetTopLevelParent(self).Bind(wx.EVT_LEAVE_WINDOW, self.close_popup) self.evt_leave_window = True def create_popup_selected(self): item = self.GetSelection() if self.GetItemParent(item) == self.GetRootItem(): return self.create_popup(item) def close_popup(self, event=None): frame = wx.GetTopLevelParent(self) if frame and self.evt_leave_window: frame.Unbind(wx.EVT_LEAVE_WINDOW) self.evt_leave_window = False if self.popup: value_as_string = self.popup.Close() self.set_form_field_value(self.popup_item, value_as_string) # self.update_form_relevance(self.popup_item) self.popup = self.popup_item = None # # This would be logical but only works in wxPython2.6 # # def get_popup_pos_offset_size(self, item): # # text_only_rect = self.GetBoundingRect(item, textOnly=True) # # rect = self.GetBoundingRect(item, textOnly=False) # # pos = rect.GetPosition() # # size = rect.GetSize() # # offset = text_only_rect.GetPosition()[0] - pos[0] # # print self.GetClientSize(), self.GetSize(), self.GetRect(),\ # # text_only_rect, rect # # return pos, offset, size # # # A bit unlogical but works both in wxPython2.6 and 2.8 def get_popup_pos_offset_size(self, item): text_only_rect = self.GetBoundingRect(item, textOnly=True) rect = self.GetRect() pos = rect[0], text_only_rect[1] offset = text_only_rect[0] - rect[0] size = self.GetClientSize()[0], text_only_rect.GetSize()[1] return pos, offset, size def resize_popup(self): if not(self.popup is None): item = self.GetSelection() pos, offset, size = self.get_popup_pos_offset_size(item) popup = self.popup popup.Freeze() popup.SetSize(size) popup.SetPosition(pos) popup.Layout() popup.Thaw() # ---events def events(self): # events self.Bind(wx.EVT_TREE_SEL_CHANGING, self.on_sel_changing, self) self.Bind(wx.EVT_TREE_SEL_CHANGED, self.on_sel_changed, self) self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.on_item_activated, self) self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.on_select, self) self.Bind(wx.EVT_LEFT_DOWN, self.on_left_down, self) def enable_collapse_automatic(self, state): if state: if not self.collapse_automatic: self.collapse_forms() self.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.on_item_expanding) self.collapse_automatic = True elif self.collapse_automatic: self.Unbind(wx.EVT_TREE_ITEM_EXPANDING) self.collapse_automatic = False def on_item_expanding(self, event): item = event.GetItem() root = self.GetItemParent(item) for child in self.GetItemChildren(root): if child != item and self.IsExpanded(child): self.Collapse(child) def on_left_down(self, event): self.close_popup() event.Skip() def on_item_activated(self, event): item = event.GetItem() if self.is_form(item): self.toggle_form_item(item, event) else: self.on_sel_changed(event) def on_sel_changing(self, event): self.close_popup() def on_sel_changed(self, event): self.close_popup() item = event.GetItem() self._field_selected = self.is_field(item) if self._field_selected: self.create_popup(item) elif self.collapse_automatic: # maybe better always self.Expand(item) def on_select(self, event): self.on_sel_changing(event) self.SelectItem(event.GetItem(), True) event.Skip() # ---checks def is_field(self, item): return self.GetItemParent(item) != self.GetRootItem() and \ item != self.GetRootItem() def is_field_selected(self): return self._field_selected def is_form(self, item): return self.GetItemParent(item) == self.GetRootItem() def is_form_enabled(self, item): form = self.GetPyData(item) return self.GetItemImage(item, wx.TreeItemIcon_Normal) ==\ form.icon_tree_id[True] def is_form_selected(self): return not self._field_selected def example(): global _ _ = str import sys class Form1(formField.Form): label = 'form1' def __init__(self): formField.Form.__init__(self, foo1=formField.ChoiceField(value='a', choices=('a', 'b'))) class Form2(formField.Form): label = 'form2' def __init__(self): formField.Form.__init__(self, foo2=formField.PixelField(value='100')) class Form3(formField.Form): label = 'form3' def __init__(self): formField.Form.__init__(self, foo2=formField.FileSizeField(value='100')) form_factory = { 'form1': Form1, 'form2': Form2, 'form3': Form3, } form4 = formField.Form(foo3=formField.SliderField(value='100', minValue=0, maxValue=100)) forms = [x() for x in form_factory.values()] # + [form4] class Tree(wx.TreeCtrl, TreeMixin): def __init__(self, parent, form_factory, *args, **keyw): class I18n_CtrlMixin: """Fake example of a Mixin""" _to_local = str _to_english = str _to_local = staticmethod(_to_local) _to_english = staticmethod(_to_english) wx.TreeCtrl.__init__(self, parent, style=TR_DEFAULT_STYLE, *args,\ **keyw) TreeMixin.__init__(self, form_factory=form_factory, CtrlMixin=I18n_CtrlMixin, icon_size=(28, 28), show_error=parent.show_error, set_dirty=parent.set_dirty,) class Frame(wx.Frame): def show_error(self, message): sys.stdout.write(message + '\n') def set_dirty(self, bool): self.SetTitle(['', '*'][bool] + 'treeEdit test') class App(wx.App): def OnInit(self, *args, **keyw): frame = Frame(None) frame.set_dirty(False) sizer = wx.BoxSizer(wx.VERTICAL) self.tree = Tree(frame, form_factory) self.tree.append_forms(forms) sizer.Add(self.tree, proportion=1, flag=wx.EXPAND) frame.SetSizer(sizer) sizer.Fit(frame) frame.SetSize((300, 300)) frame.Layout() frame.Show() self.SetTopWindow(frame) return True app = App(0) app.MainLoop() # ---disabled ICON_DISABLED = \ 'x\xda\x01I\x03\xb6\xfc\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x1c\ \x00\x00\x00\x1c\x08\x06\x00\x00\x00r\r\xdf\x94\x00\x00\x00\x04sBIT\x08\x08\ \x08\x08|\x08d\x88\x00\x00\x03\x00IDATH\x89\xed\x94\xcfk\\U\x18\x86\x9f\xef\ \xdc\x99If\x98\xdc\xab\xf7\xb6\xbak\xa9\x01\xb9\xc5(\xed\xa2T\x14QAt\xad\xab\ l\xe2\xff\xe0\xda\xc4q`p\xe1\xc6\xff\xa1\xb3\xe9NA\x97\x82u\'-\xa2\x8bB\xa20\ I\x8b\xd4\xaa\xc9$\xce\x9da2?\xee9\x9f\x8b$\x9a\xdc\xdc\x9bQ\xe8\xc6\xd2\x17\ >\x0e\x9c\xf3\xf2>\x9c\xc3w>x\xa2\xc7^z\xfe|\xe9QzeF\xc0e \x04\xee\xc9\xf6\ \xf6\x83\x19\xde\x0b\xc0E`G\xb6\xb7\xd7\xff3pz\xee\xdc[\n\x1f\x00\xcf\x00\ \xdf\x0b|V\xde\xd9\xf9\xa9\xc0\x1b+\xac\x01W\x81\xadC\xef\xd7y\xde\xdc\'\x18\ F\xd1\xcbS\xd5\x8f\x81W\x81\x14\xb8\x02\x04\xc3(j\xd6\xba\xdd\x8d\x8c7\x9e\ \xaa6\x80e@\x81\xcb\x87\xdeA\xad\xdb\xfd.\x9bm\xb2\x1bI\x18V-\xbc\x94\xaa\ \xc6\xa9*\xa9j\xe9\xb0\x96-4\xfaQ\x14\x1fy\xfbQ\x14[h\xa4\xaa\xcb\x87^9\\\ \x17Sx!\t\xc3\xea\xcc\x1b\xfa\xbb\xbb\xfb\xbbax\x1f\xe8*D\'\x0eU\x97\x05\xf8\ 3\x0c\x9b\x00S\xd5\x86\x1e\xdc\xec\xb8\x9c\xc0\x03\xa3\xda\t\xb4\xf6\xcbg\xf7\xf64\x9b]\xd84[A\xe0U\x8dYq\ \xaa\xab\n\x8bE\xbeLX\xc7\x88\xb4\xf6\x9dk_\xea\xf5l\x81\xa7X[A\xe0UDV,\xcc\ \x84\ntrnm3\x08\xe2\xb3\xb2`\xc6\x93\xfe\x1c\x04\xf1T\xb51U\xcd\xb6\ ~\xae\xca"7\xcb"\xcd\xe7{\xbd\x8d"O!p\xc3\xf7\xe3\x89jc\x92\x033\xf0\x07\x80\ ;\x18{\'T\x11\xb9Y\x11i\xc6I\x92\x0b\xcd\x05\xae\xfb\xfe\xe2H\xb55\xce\x81y\ \xd0\x99\x17\xf9\x04\xd0\x91\xea\x876\xa7{\xe7DnTE\x1aq\x92\xdc\xcb\x9e\x9d\ \x9a4w}\x7f~\xa2\xfa\xda\xbesog;\xa0\x04\x9d\x8a1\xad\xba1m\x00\xe7\x9c\x0e\ \x9d[M\x8fA\x05\x9cS}\xc33\xe6\x95\xbb\xbe\xff\xdbR\x92\x8c2\x19\xa7Bu\ni\n\ \xd6\xea?\x83\xa2$\xd2\x993\xe6\xc4?\xbbS\xaf\xb7\xe7\x8c!un5U=\x82\x1a\x03\ \xf3\x16L\xe5`\x98\x9f\xd0\xa9.\x8d\x93d,p\xab\x04\x9f[\x988H\x04\xd6\xab"-\ \xab\xda\xbe6\x18\xfc}\xf1k\x83\x81\xb5\xaa\xed\xaaHK\xa0cadaR\x16\xf9B\xe0V\ \x9c$\xe3l~a\xd3\xfc\xb0\xb0pq\xe4\xdc\xfb\x0e\x9e\xaa\x88|[5\xe6\xab\xa5$qy\ \xde;\xf5\xba\xa7\xf0\xdeD\xf5u\x0f~\x9f7\xe6\xc6\xd5~\xff~\x9e\xf7\xcco\xf1\ \xe3\xc2\x82\x0fT\xf6\xac\xed\xbe9\x1c\x9ez\x9e\xe3\xfa\xa6V\x93\xa7=/\x02&W\ \xfa\xfd\xe4,\xef\x13\xfd\xbf\xf5\x17\xcf\xbe\x8a\xda\xa5\xa7Q\xf6\x00\x00\ \x00\x00IEND\xaeB`\x82\xc7,\x94\xd8' if __name__ == '__main__': example() phatch-0.2.7/phatch/lib/pyWx/vlist.py0000644000000000000000000001445011346363116017434 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follow PEP8 import wx ICON_SIZE = (48, 48) # ---vlist class Box(wx.VListBox): """Default Icon Size is ICON_SIZE (48).""" def __init__(self, parent, *args, **kwds): super(Box, self).__init__(parent, *args, **kwds) self.SetIconSize(ICON_SIZE) self.SetVerticalGradient() if wx.Platform == '__WXGTK__': self.SetTheme('default') else: self.SetTheme('light_blue') self._events() wx.CallAfter(self.SetSelection, 0) def _events(self): """Can be overwritten.""" pass def GradientColour(self, color): rgb = r, g, b = color.Red(), color.Green(), color.Blue() # wx2.6 m = max(rgb) rgb_without_max = [x for x in rgb if x != m] if not rgb_without_max: return wx.Colour(128, 128, 128) n = max(rgb_without_max) keyw = {} for c in ('Red', 'Green', 'Blue'): x = getattr(color, c)() if x == m: keyw[c.lower()] = x elif x == n: keyw[c.lower()] = x / 2 else: keyw[c.lower()] = x / 8 return wx.Colour(**keyw) def SetTheme(self, theme='default'): self._theme = theme if theme == 'light_blue': # mozilla like self._color_from = wx.Colour(180, 197, 214) self._color_to = wx.Colour(217, 226, 234) else: # theme based hilight = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUHILIGHT) self._color_from = self.GradientColour(hilight) self._color_to = hilight def SetIconSize(self, icon_size=(48, 48), units=5): # 31.0): """All vertical spacing is calculated by the icon size. The higher the units, the less space in between label and summary and the more space between the label/summary and the separators.""" self._icon_size = i_x, i_y = icon_size self._row_height = int(1.5 * i_y) # vertical spacing line_height = self.GetTextExtent('H')[0] first_line_unit = int(units / 2) unit_dy = (self._row_height - 2 * line_height) / units # positions self.icon_x = (self._row_height - i_x) / 2 self.icon_y = (self._row_height - i_y) / 2 self.text_x = 2 * self.icon_x + i_x self.text_y1 = int(round(first_line_unit * unit_dy)) self.text_y2 = int(round( (units - first_line_unit) * unit_dy + line_height)) def GetIconSize(self): return self._icon_size def OnDrawSeparator(self, dc, rect, n): dc.SetPen(wx.Pen(wx.LIGHT_GREY, style=wx.DOT)) y = rect.GetBottom() dc.DrawLine(rect.GetLeft(), y, rect.GetRight(), y) def OnDrawBackground(self, dc, rect, n): """ Gradient fill from color 1 to color 2 with top to bottom or left to right. """ if n != self.GetSelection(): return if rect.height < 1 or rect.width < 1: return size = (self._is_vertical and [rect.height] or [rect.width])[0] start = (self._is_vertical and [rect.y] or [rect.x])[0] # calculate gradient coefficients col2 = self._color_from col1 = self._color_to rf, gf, bf = 0, 0, 0 rstep = float((col2.Red() - col1.Red())) / float(size) gstep = float((col2.Green() - col1.Green())) / float(size) bstep = float((col2.Blue() - col1.Blue())) / float(size) for coord in xrange(start, start + size): currCol = wx.Colour(col1.Red() + rf, col1.Green() + gf, \ col1.Blue() + bf) dc.SetBrush(wx.Brush(currCol, wx.SOLID)) dc.SetPen(wx.Pen(currCol)) if self._is_vertical: dc.DrawLine(rect.x, coord, rect.x + rect.width, coord) else: dc.DrawLine(coord, rect.y, coord, rect.y + rect.height) rf += rstep gf += gstep bf += bstep def OnMeasureItem(self, n): return self._row_height def OnDrawItem(self, dc, rect, n): label, summary, bmp = self.GetItem(n) # coordinates x0, y0 = rect.GetTopLeft() x1, y1 = rect.GetBottomRight() # bitmap dc.DrawBitmap(bmp, x0 + self.icon_x, y0 + self.icon_y, True) # text if self.GetSelection() != n or self._theme == 'light_blue': c = self.GetForegroundColour() else: c = wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT) bold = self.GetFont() bold.SetWeight(wx.FONTWEIGHT_BOLD) dc.SetFont(bold) dc.SetTextForeground(c) dc.DrawText(label, x0 + self.text_x, y0 + self.text_y1) dc.SetFont(self.GetFont()) dc.DrawText(summary, x0 + self.text_x, y0 + self.text_y2) def SetVerticalGradient(self, bool=True): self._is_vertical = bool def GetItem(self, n): """Needs to be overwritten.""" return ('label %d' % n, 'summary %d' % n, wx.ArtProvider_GetBitmap(wx.ART_INFORMATION, wx.ART_OTHER, self.GetIconSize())) def RefreshAll(self): self.Refresh() if self.GetItemCount(): self.SetSelection(0) class TestFrame(wx.Frame): def __init__(self, parent): wx.Frame.__init__(self, parent, -1, "Test Tag Browser", size=(640, 480)) vlist_box = Box(self) vlist_box.SetItemCount(10) def example(): # install translation function everywhwere _ __builtins__._ = str # create test application & dialog app = wx.PySimpleApp() frame = TestFrame(None) frame.Show(True) app.MainLoop() if __name__ == '__main__': example() phatch-0.2.7/phatch/lib/pyWx/vlistTag.py0000644000000000000000000000725011346363116020070 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 """Wraps vlist in a tag browser jacket.""" import wx from vlist import Box from tag import Browser, ContentMixin, extract_tags # imported by dialogs.py #---Test case class TestContentBox(ContentMixin, Box): def SetTag(self, tag): self.SetVerticalGradient(tag == 'vertical') self.Refresh() def SetFilter(self, filter): try: n = int(filter) except ValueError: n = 0 self.SetItemCount(n) if not self.CheckEmpty(): self.RefreshAll() def IsEmpty(self): return not self.GetItemCount() class TestBrowser(Browser): ContentCtrl = TestContentBox paint_message = "type a number" def _init(self): """Normally overwrite this.""" self.CheckEmpty() class TestFrame(wx.Frame): def __init__(self, parent): wx.Frame.__init__(self, parent, -1, "Test Tag Browser", size=(640, 480)) browser = TestBrowser(self, ['vertical', 'horizontal'], {}) browser.EnableResize() class Dialog(wx.Dialog): ContentBrowser = TestBrowser def __init__(self, parent, tags, *args, **kwds): kwds["style"] = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER super(Dialog, self).__init__(parent, *args, **kwds) self._create_controls(tags) self._layout() self._events() def _create_controls(self, tags): self.browser = self.ContentBrowser(self, tags, {}, style=wx.SUNKEN_BORDER) self.status = wx.StaticText(self, -1, "") self.cancel = wx.Button(self, wx.ID_CANCEL, _("&Cancel")) self.ok = wx.Button(self, wx.ID_OK, _("&Add")) self.ok.SetDefault() def _layout(self): main_sizer = wx.BoxSizer(wx.VERTICAL) #browser main_sizer.Add(self.browser, 1, wx.ALL | wx.EXPAND, 4) #buttons btn_sizer = wx.BoxSizer(wx.HORIZONTAL) btn_sizer.Add(self.status, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4) btn_sizer.Add(self.cancel, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4) btn_sizer.Add(self.ok, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4) main_sizer.Add(btn_sizer, 0, wx.EXPAND, 0) #layout self.SetSizer(main_sizer) self.Layout() def _events(self): self.Bind(wx.EVT_BUTTON, self.OnOk, self.ok) self.Bind(wx.EVT_LISTBOX_DCLICK, self.OnDoubleClick, self.browser.content) self.browser.EnableResize() def OnOk(self, event): if not self.browser.content.IsEmpty(): event.Skip() def OnDoubleClick(self, event): self.EndModal(wx.ID_OK) class TestDialog(Dialog): ContentBox = TestContentBox content_ctrl_keyw = {'n': 5} def example(): #install translation function everywhwere _ __builtins__._ = str #create test application & dialog app = wx.PySimpleApp() frame = TestFrame(None) frame.Show(True) dialog = TestDialog(frame, ['vertical', 'horizontal']) dialog.Show(True) app.MainLoop() if __name__ == '__main__': example() phatch-0.2.7/phatch/lib/pyWx/wildcard.py0000644000000000000000000000207211346363116020061 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follow PEP8 import sys def wildcard_list(name, extensions): return '%s|%s' % (name, ';'.join([_wildcard_extension(ext) for ext in extensions])) if sys.platform.startswith('win'): #Windows is case insensitive def _wildcard_extension(ext): return '*.%s' % (ext, ) else: def _wildcard_extension(ext): return '*.%s;*.%s;*.%s' % (ext, ext.upper(), ext.capitalize()) phatch-0.2.7/phatch/lib/pyWx/wxPil.py0000644000000000000000000000334211346363116017374 0ustar rootroot00000000000000# Copyright (C) 2007-2009 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import Image import wx def pil_wxImage(image): if image.mode == 'P': image = image.convert('RGBA') if image.mode == 'RGBA': wx_image = wx.EmptyImage(*image.size) wx_image.SetData(image.convert("RGB").tostring()) wx_image.InitAlpha() wx_image.SetAlphaData( image.convert("RGBA").split()[-1].tostring()) else: wx_image = wx.EmptyImage(*image.size) new_image = image.convert('RGB') data = new_image.tostring() wx_image.SetData(data) return wx_image def pil_wxBitmap(image): return wx.BitmapFromImage(pil_wxImage(image)) def wxImage_pil(wx_image): size = wx_image.GetSize() image = Image.new('RGB', size) image.fromstring(wx_image.GetData()) if wx_image.HasAlpha(): alpha = Image.new('L', size) wx_alpha = wx_image.GetAlphaData() alpha.fromstring(wx_alpha) image = image.convert('RGBA') image.putalpha(alpha) return image def wxBitmap_pil(wx_bitmap): return wxImage_pil(wx.ImageFromBitmap(wx_bitmap)) phatch-0.2.7/phatch/lib/pyWx/wxcheck.py0000644000000000000000000000576311346363116017736 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follow PEP8 import os import sys from subprocess import call from lib.unicoding import ENCODING def _t(x): return _(x).encode(ENCODING, 'replace') def ensure(recommended, minimal): """Ensures the minimal version of wxPython is installed. - minimal: as string (eg. '2.6')""" #wxversion try: import wxversion if wxversion.checkInstalled(recommended): wxversion.select(recommended) else: wxversion.ensureMinimal(minimal) import wx return wx except ImportError: sys.stdout.write(_t('Warning: python-wxversion is not installed.\n')) #wxversion failed, import wx anyway params = {'recommended': recommended, 'minimal': minimal} try: import wx except ImportError: message = _t('Error: wxPython %(recommended)s' \ ' (or at least %(minimal)s) can not' \ ' be found, but is required.' ) % params +\ '\n\n' + _t('Please (re)install it.') sys.stderr.write(message) if sys.platform.startswith('linux') and \ os.path.exists('/usr/bin/zenity'): call('''zenity --error --text="%s"\n\n''' % message + \ _t("This application needs 'python-wxversion' " \ "and 'python-wxgtk%(recommended)s' " \ "(or at least 'python-wxgtk%(minimal)s')." ) % params, shell=True) sys.exit() #wxversion failed but wx is available, check version again params['version'] = wx.VERSION_STRING if wx.VERSION_STRING < minimal: class MyApp(wx.App): def OnInit(self): result = wx.MessageBox( _t("This application is known to be compatible" \ " with\nwxPython version(s) %(recommended)s" \ " (or at least %(minimal)s),\nbut you have " \ "%(version)s installed." ) % params + "\n\n" +\ _t("Please upgrade your wxPython."), _t("wxPython Version Error"), style=wx.ICON_ERROR) return False app = MyApp() app.MainLoop() sys.exit() #wxversion failed, but wx is the right version anyway return wx phatch-0.2.7/phatch/lib/reverse_translation.py0000644000000000000000000000175511346363116021421 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Follows PEP8 import gettextFix # otherwise doctests will fail unfortunately REVERSE = {} def _t(phrase): REVERSE[_(phrase)] = phrase return phrase def _r(phrase): return REVERSE.get(phrase, phrase) phatch-0.2.7/phatch/lib/safe.py0000644000000000000000000001436711346363116016251 0ustar rootroot00000000000000# Copyright (C) 2009 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 #import rpdb2;rpdb2.start_embedded_debugger('x') import operator import re SAFE = { 'int': ['abs', 'int', 'min', 'max', 'pow', 'sum'], 'str': ['chr', 'lower', 'str', 'title', 'upper'], 'bool': ['True', 'False'], 'datetime': ['day', 'hour', 'microsecond', 'minute', 'month', 'monthname', 'second', 'weekday', 'weekdayname', 'year'], 'rational': ['denominator', 'numerator'], } SAFE['all'] = reduce(operator.add, SAFE.values()) """Todo: alleen format ### moet vervangen worden, daarna gewoon eval met locals (incl indices) en globals. _ wordt '%s_%s'(eval(x),eval(y)) '""" RE_EXPR = re.compile('<([^<>]+?)>', re.UNICODE) RE_FORMAT = re.compile('#+') RE_VAR = re.compile('(?P[A-Za-z]\w*)(?P([.]\w(\w|[.])+)?)', re.UNICODE) class UnsafeError(Exception): pass def _format_int(match): """Converts a ``####`` string into a formating string. Helper function for :func:`format_expr`. :param match: match for a ``##``-string :type match: regular expression match :returns: interpolation format :rtype: string >>> f = _format_int(RE_FORMAT.search('####')) >>> f '"%04d"%' >>> eval(f + '5') '0005' """ return '"%%0%dd"%%' % len(match.group(0)) def format_expr(s): """Returns an expression with ``####`` in a pure python expression which can be evaluated. :param s: expression :type s: expression >>> f = format_expr('###(5+1)') >>> f '"%03d"%(5+1)' >>> eval(f) '006' """ return RE_FORMAT.sub(_format_int, s) def compile_expr(meta_expr, _globals=None, _locals=None, validate=None, preprocess=lambda x: x, safe=True): """If safe is a list, a restricted evaluation will be executed. Otherwise if safe is None, a unrestriced eval will be executed. :param meta_expr: meta-expression with :type meta_expr: string :param _globals: globals :type _globals: dict :param _locals: locals :type _locals: dict :param safe: safe names which will be accepted by the compiler :type safe: list or None :param preprocess: preprocess expression (e.g. for ## formatting) :type preprocess: callable >>> compile_expr('<1+1>_', safe=False) u'2_1' >>> compile_expr('<###(index+1)>', _locals={'index':1}, ... preprocess=format_expr, safe=False) u'002' """ if _locals is None: _locals = {} if _globals is None: _globals = {} if safe: def compile_sub_expr(expr): return unicode(eval_safe(preprocess(expr.group(1)), _globals, _locals, validate)) else: def compile_sub_expr(expr): return unicode(eval(preprocess(expr.group(1)), _globals, _locals)) return RE_EXPR.sub(compile_sub_expr, meta_expr) def assert_safe_expr(meta_expr, _globals=None, _locals=None, validate=None, preprocess=lambda x: x): for expr in RE_EXPR.finditer(meta_expr): assert_safe(preprocess(expr.group(1)), _globals, _locals, validate) def assert_safe(expr, _globals=None, _locals=None, validate=None): if _locals is None: _locals = {} if _globals is None: _globals = {} code = compile(expr, '<%s>' % expr, 'eval') if code.co_names: if validate: not_allowed = validate(code.co_names, _globals, _locals) else: not_allowed = code.co_names if not_allowed: raise UnsafeError( _('The following name(s) are invalid: ') + \ ', '.join([_(x) for x in not_allowed])) return code, _globals, _locals def eval_safe(expr, _globals=None, _locals=None, validate=None): """Safely evaluate an expression. It will raise a ``ValueError`` if non validated names are used. :param expr: expression :type expr: string :returns: result >>> eval_safe('1+1') 2 >>> try: ... eval_safe('"lowercase".upper()') ... except UnsafeError, error: ... print(error) The following name(s) are invalid: upper """ if _locals is None: _locals = {} if _globals is None: _globals = {} return eval(*assert_safe(expr, _globals, _locals, validate)) def eval_restricted(s, _globals=None, _locals=None, allowed=SAFE['all'][:]): """Evaluate an expression while allowing a restricted set of names. :param allowed: allowed names :type allowed: list of string :returns: result >>> eval_restricted('max(a, a+b)', _globals={'a':0, 'b':2}, ... _locals={'a':1}, allowed=['max']) 3 >>> try: ... eval_restricted('a+b+c', _globals={'a':0, 'b':2}, _locals={'a':1}) ... except UnsafeError, error: ... print(error) The following name(s) are invalid: c """ if _locals is None: _locals = {} if _globals is None: _globals = {} allowed += reduce(operator.add, [v.keys() for v in (_locals, _globals)]) def validate(names, _globals, _locals): return set(names).difference(allowed) return eval_safe(s, _globals, _locals, validate) def extend_vars(vars, s): """Extend ``vars`` with new unique variables from ``s``. :param vars: collection of previous variables :type vars: list of string :param s: multiple expressions :type s: string >>> vars = ['a1'] >>> extend_vars(vars, '___<###index>') >>> vars ['a1', 'foo', 'world', 'index'] """ for expr in RE_EXPR.findall(s): #locate for match in RE_VAR.finditer(expr): var = match.group('var') if not var in vars: vars.append(var) phatch-0.2.7/phatch/lib/system.py0000644000000000000000000004125511346363116016653 0ustar rootroot00000000000000# Copyright (C) 2009 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import os import re import shutil import subprocess import sys import types import tempfile import textwrap import safe VERBOSE = False BIN = [] # executable ARG_STR = '".+?"|\'.+\'|\S+' RE_ARG = re.compile(ARG_STR) RE_COMMAND = re.compile('^(%s)' % ARG_STR) RE_NEED_QUOTES = re.compile('^[^\'"].+?\s.+?[^\'"]$') if sys.platform.startswith('win'): _EXE = '.exe' import windows.locate WINDOWS = True def rename(src, dest): try: os.remove(dest) except: pass os.rename(src, dest) else: _EXE = '' WINDOWS = False rename = os.rename EXE_PATHS = {} def wrap(text, fill=70): return '\n'.join([textwrap.fill(line, 70) for line in text.split('\n')]) def title(text): """Turns a text in a title :param text: text :type text: str :returns: title :rtype: str >>> title('hello_world') 'Hello World' """ return text.replace('_', ' ').replace('-', ' ').title() #---os def is_www_file(url): """Checks whether a file is remote (http or ftp). :param url: file path or url :type url: str :returns: True if remote, False if local :rtype: bool >>> is_www_file('http://www.foo.com/logo.png') True >>> is_www_file('ftp://foo.com/logo.png') True >>> is_www_file('logo.png') False """ return url.startswith('http://') or url.startswith('ftp://') def is_file(path): """Checks wether a path is a valid local or remote file. :param path: the path which has to be checked :type path: str :returns: True if path is a valid local or remote file, False otherwise :rtype: bool >>> is_file('http://www.foo.com/logo.png') True >>> is_file('ftp://foo.com/logo.png') True >>> is_file('/etc/fstab') True >>> is_file('/etc/fstap') False """ return os.path.isfile(path) or is_www_file(path) def file_extension(uri): return os.path.splitext(uri)[-1][1:].lower() def filename_to_title(filename): """Converts a filename to a title. It replaces dashes with spaces and converts every first character to uppercase. :param filename: an absolute or relative path :type filename: str :returns: titled version of the filename :rtype: bool >>> filename_to_title('~/highlight_mask.png') 'Highlight Mask' """ return title(os.path.splitext(os.path.basename(filename))[0]) def ensure_path(path): """Ensure a path exists, create all not existing paths. It raises an OSError, if an invalid path is specified. :param path: the absolute folder path (not relative!) :type path: str """ _ensure_path(os.path.abspath(path).rstrip('/').rstrip('\\')) def _ensure_path(path): """Ensure a path exists, create all not existing paths. (Helper function for ensure_path.)""" if not os.path.exists(path): parent = os.path.dirname(path) if parent: _ensure_path(parent) os.mkdir(path) else: raise OSError("The path '%s' is not valid." % path) def fix_quotes(text): """Fix quotes for a command line parameter. Only surround by quotes if a space is present in the filename. :param text: command line parameter :type text: string :returns: text with quotes if needed :rtype: string >>> fix_quotes('blender') 'blender' >>> fix_quotes('/my programs/blender') '"/my programs/blender"' """ if not RE_NEED_QUOTES.match(text): return text if not ('"' in text): return '"%s"' % text elif not ("'" in text): return "'%s'" % text else: return '"%s"' % text.replace('"', r'\"') def set_bin_paths(paths=[]): """Initializes where binaries can be found. :param paths: list of paths where binaries might be found :type paths: list of strings """ global BIN BIN = paths def find_in(filename, paths): """Finds a filename in a list of paths. :param filename: filename :type filename: str :param paths: paths :type paths: list of strings :returns: found filename with path or None :rtype: string or None """ for path in paths: p = os.path.join(path, filename) if os.path.isfile(p): return p return None def find_exe(executable, quote=True, use_which=True, raise_exception=False): """Finds an executable binary. Returns None if the binary can not be found. This method need some extra love for Windows and Mac. :param executable: binary which will be used as a plugin (eg imagemagick) :type executable: string :param quote: quote the path if it contains spaces :type quote: bool :param use_which: use the command ``which`` on non windows platforms :type use_which: bool :param raise_exception: raise exception if not found :type raise_exception: bool :returns: absolute path to the binary :rtype: string or None >>> find_exe('python') '/usr/bin/python' >>> find_exe('python', use_which=False) '/usr/bin/python' """ try: return EXE_PATHS[executable] except KeyError: pass #executable with extension e.g. exe on windows executable_exe = executable if not executable_exe.endswith(_EXE): executable_exe += _EXE # try to first find in BIN executable_path = find_in(executable_exe, BIN) # try to find a system install (todo for windows) if not sys.platform.startswith('win') and use_which and \ executable_path is None: path, err = shell('which %s' % executable_exe, shell=True) path = path.strip() if os.path.isfile(path): executable_path = path if executable_path is None: executable_path = find_in(executable_exe, os.environ['PATH'].split(os.pathsep)) if (executable_path is None) and WINDOWS: executable_path = windows.locate.find_exe(executable) #quote if necessary if not (executable_path is None) and quote: executable_path = fix_quotes(executable_path) #cache and return the result EXE_PATHS[executable] = executable_path if executable_path is None and raise_exception: raise IOError('No such program: %s' % executable) return executable_path def find_command(text): """Find command in text :param text: command line :type text: string :returns: text :rtype: text >>> find_command('convert image.jpg image.jpg') 'convert' >>> find_command('"/my apps/convert" image.jpg image.jpg') '"/my apps/convert"' >>> find_command('/my apps/convert image.jpg image.jpg') '/my' """ match = RE_COMMAND.match(text) if match: return match.group(0) return None class TempFile: def __init__(self, suffix='', path=None): """Make a temporary file with :func:`tempfile.mkstemp`. Use the ``path`` attribute to get the filename. :param suffix: If suffix is specified, the file name will end with that suffix, otherwise there will be no suffix. ``TempFile`` does not put a dot between the file name and the suffix; if you need one, put it at the beginning of suffix. :type suffix: string :param path: prefabricated temp path :type path: string >>> t = TempFile('.png') >>> t.path.endswith('.png') True >>> t.close() """ if path is None: self._fd, self.path = tempfile.mkstemp(suffix) else: self._fd = None self.path = path self._closed = False def close(self, force_remove=True, dest=''): """It is important to call this method when finished with the temporary file. :param force_remove: Remove temporary file and raise IOError when it does not exist anymore. Set to False too allow for processes that delete the temporary file when failing to exit succesfully. :type force_remove: boolean :param dest: This is eg used for thumbnails in order to rename them to their proper location :type dest: string """ if self._closed: raise IOError("Temporary file '%s' is already closed." % self.path) self._closed = True if self._fd: os.close(self._fd) if not (force_remove or os.path.exists(self.path)): return if dest: shutil.move(self.path, dest) else: os.remove(self.path) def shell(*args, **options): """Runs a shell command and captures the output. :param args: the command to be executed in the shell :type args: tuple of strings :returns: stdout and stdout :rtype: typle of strings >>> shell('echo world', shell=True) ('world\\n', '') """ # TODO: 'shell': True IS REMOVED AND HAST BE MENTIONED EXPLICITLY options.update({'stdout': subprocess.PIPE, 'stderr': subprocess.PIPE}) pipe = subprocess.Popen(*args, **options) return pipe.stdout.read(), pipe.stderr.read() def shell_cache(args, cache='', key=None, validate=None, **options): """Runs a shell command and captures the output. It uses a caching system so that cached results don't need to run a subprocess anymore. The results are cached by sys.platform :param args: the command to be executed in the shell :type args: tuple of strings :param cache: the filename of the cache file :type cache: string :param validate: a validate (eg mtime) to validate the cache result :returns: stdout and stdout :rtype: typle of strings >>> shell('echo world', shell=True) ('world\\n', '') """ # Initialize cache_dict args = tuple(args) cache_dict = {} if key is None: key = args # Try to load from cache file if os.path.isfile(cache): f = open(cache, 'rb') source = f.read() f.close() try: cache_dict = safe.eval_safe(source) except SyntaxError: pass # Initialize result result = None # Is it cached already? if key in cache_dict: x = cache_dict[key] if sys.platform in x: x = x[sys.platform] if validate: if validate == x['validate']: result = x else: result = x if result is None: # Add to cache result = {'validate': validate} result['stdout'], result['stderr'] = shell(args, **options) if not key in cache_dict: cache_dict[key] = {} cache_dict[key][sys.platform] = result # Save to cache ensure_path(os.path.dirname(cache)) f = open(cache, 'wb') f.write(unicode(cache_dict)) f.close() return result['stdout'], result['stderr'] def shell_returncode(*args, **options): """Runs a shell command and returns it's exit code. :param args: the command to be executed in the shell :type args: tuple of strings :returns: command exit code :rtype: integer """ options.update({'stdout': subprocess.PIPE, 'stderr': subprocess.PIPE}) return subprocess.call(*args, **options) def split_command(text): """Breaks a single command line into a list of string arguments. :param text: command line text :type text: str :returns: list of arguments :rtype: list of str >>> split_command('blender file_in.png file_out.png') ['blender', 'file_in.png', 'file_out.png'] >>> split_command('"/my progs/blender" file_in.png file_out.png') ['"/my progs/blender"', 'file_in.png', 'file_out.png'] """ return RE_ARG.findall(text) def call(args, **keyw): """Same as subprocess.call, but if only a command line text is given it breaks it in a list of arguments so it can be used also with ``shell=False`` on Unix. """ if 'shell' in keyw: if not WINDOWS and type(args) in types.StringTypes and \ not keyw['shell']: args = split_command(args.replace('\\\n', ' ')) else: keyw['shell'] = not WINDOWS verbose = False if 'verbose' in keyw: if keyw['verbose']: verbose = True del keyw['verbose'] if VERBOSE or verbose: print(args) subprocess.call(args, **keyw) def start(path): """Open a file or browse a folder. :param path: location of the file :type path: string """ if hasattr(os, 'startfile'): #windows os.startfile(path) else: if sys.platform.startswith('darwin'): #mac command = 'open' else: #linux command = 'xdg-open' subprocess.call('%s "%s"' % (command, path), shell=True) class MethodRegister: def __init__(self): """Creates a register where methods to open files are registered by the extensions. >>> m = MethodRegister() >>> m.register(['bmp','png'], abs) >>> m.register(['png'], open) >>> m.register(['bmp'], None) >>> 'bmp' in m.extensions True >>> m.get_methods('bmp') [] >>> m.get_methods('png') [, ] >>> m.unregister_method(abs) >>> m.get_methods('bmp') [] >>> 'bmp' in m.extensions False >>> m.get_methods('png') [] """ self._dict = {} self._methods = {} self._extensions = {} self.extensions = [] def register(self, extensions, method): """Register one method for multiple extensions. If the method is None, it will cancel the registration. :param extensions: list of file extensions :type extensions: list of strings :param method: method to open a file :param method: function """ if method is None: return for extension in extensions: if not(extension in self._methods): self._methods[extension] = [] self._methods[extension].append(method) if not (method in self._extensions): self._extensions[method] = [] self._extensions[method].extend(extensions) self._update() def does_process(self, filename): """Check if the filename can be processed by any of the registered methods. :param filename: filename :type filename: string """ return file_extension(filename) in self.extensions def get_methods(self, extension): """Get all methods registered for an extension. :param extension: file extension :type extension: string :returns: list of methods registered for the extension :rtype: list """ return self._methods.get(extension, []) def unregister_method(self, method): """Unregister a method from all extensions. :param method: method to open a file :param method: function """ self._unregister(method, self._extensions, self._methods) def unregister_extension(self, extension): """Unregister an extension from all methods. :param extensions: list of file extensions :type extensions: list of strings """ self._unregister(extension, self._methods, self._extensions) def _unregister(self, key, d, values): """Helper method for :ref:`unregister_method` and :ref:`unregister_extension`. :param key: method/extension :param d: self._extensions/self._methods :type d: dict :param values: self._methods/self._extensions :type values: dict """ if key in d: for value in values.keys(): values[value] = [x for x in values[value] if x != key] if not values[value]: del values[value] del d[key] self._update() def _update(self): """Updates the list of extension after each change. Helper function for :ref:`register` and :ref:`_unregister`.""" self.extensions = self._methods.keys() phatch-0.2.7/phatch/lib/thumbnail.py0000644000000000000000000003425311346363116017312 0ustar rootroot00000000000000# Copyright (C) 2009 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 """The most important functions of this module are ``open`` and ``save_to_cache``. For the freedesktop specifications, it follows: http://jens.triq.net/thumbnail-spec/index.html """ import hashlib import os import stat import tempfile import urllib import Image import imtools import system def ensure_path(*paths): path = os.path.join(*paths) if not os.path.exists(path): os.mkdir(path) return path CHECKBOARD = {} FREEDESKTOP = True # os.path.exists(FREEDESKTOP_PATH) THUMB_INFO = {'software': 'Phatch'} def get_mtime(filename, file_stat=None): if file_stat is None: file_stat = os.stat(filename) return file_stat[stat.ST_MTIME] def get_filesize(filename, file_stat=None): if file_stat is None: file_stat = os.stat(filename) return file_stat[stat.ST_SIZE] if FREEDESKTOP: import PngImagePlugin FREEDESKTOP_SIZE = { 'normal': (128, 128), 'large': (256, 256)} SIZE = FREEDESKTOP_SIZE['normal'] FREEDESKTOP_PATH = { 'normal': os.path.expanduser('~/.thumbnails/normal'), 'large': os.path.expanduser('~/.thumbnails/large')} if os.path.exists(FREEDESKTOP_PATH['normal']): ensure_path(FREEDESKTOP_PATH['large']) else: #simulate freedesktop with a temp dir thumb_path = ensure_path(tempfile.gettempdir(), 'thumbnails') FREEDESKTOP_PATH = { 'normal': ensure_path(thumb_path, 'normal'), 'large': ensure_path(thumb_path, 'large')} def get_uri(filename): """Get uri of filename. :param filename: filename :type filename: string :returns: uri :rtype: string >>> get_uri('/home/user/test.png') 'file:///home/user/test.png' """ if filename.startswith('file://'): return filename abspath = os.path.abspath(filename) try: return 'file://%s' % urllib.pathname2url(abspath.encode('utf-8')) except: # fallback if fails on unicode return 'file://%s' % abspath def get_hash(filename): """Get md5 hash of uri of filename. :param filename: filename :type filename: string :returns: hash :rtype: string >>> get_hash('file:///home/user/test.png') '03223f4f10458a8b5d14327f3ae23136' """ return hashlib.md5(get_uri(filename)).hexdigest() def get_freedesktop_size_label(size): """Returns the freedesktop size label. :param size: requested size of the thumbnail :type size: tuple of int :returns: size label :rtype: string >>> get_freedesktop_size_label((128, 128)) 'normal' >>> get_freedesktop_size_label((128, 129)) 'large' """ thumb_width, thumb_height = size if thumb_width < 129 and thumb_height < 129: return 'normal' elif thumb_width < 257 and thumb_height < 257: return 'large' return '' def get_freedesktop_filename(filename, size_label='normal'): """Get filename of freedekstop thumbnail. :param filename: image filename :type filename: string :param size_label: ``'normal'`` or ``'large'`` :type size_label: string :returns: thumbnail filename :rtype: string """ filename = os.path.join(FREEDESKTOP_PATH[size_label], get_hash(filename) + ".png") return filename def get_freedesktop_pnginfo(filename, image=None, thumb_info=None): """Gets png metadata for the thumbnail. :param filename: image filename :type filename: string :returns: png info :rtype: PngImagePlugin.PngInfo """ full_info = THUMB_INFO.copy() if thumb_info: full_info.update(thumb_info) file_stat = os.stat(filename) info = PngImagePlugin.PngInfo() info.add_text('Thumb::URI', get_uri(filename)) info.add_text('Thumb::MTime', str(get_mtime(filename, file_stat))) info.add_text('Thumb::Size', str(get_filesize(filename, file_stat))) if 'software' in full_info: info.add_text('Thumb::Software', full_info['software']) if 'height' in full_info: info.add_text('Thumb::Image::Height', str(full_info['height'])) elif image: info.add_text('Thumb::Image::Height', str(image.size[1])) if 'width' in full_info: info.add_text('Thumb::Image::Width', str(full_info['width'])) elif image: info.add_text('Thumb::Image::Width', str(image.size[0])) return info def _open(filename, image=None, open_image=Image.open, size=SIZE, save_cache=True, **keyw): """Open image for thumbnail of the image specified by filename. .. note:: This does not return an image yet with the size. This needs to be combined with the :func:`open`. :param filename: image filename :type filename: string :param image: optionally pass the already opened image :type image: Image :param open_image: alternative open method :type open_image: function :param size: size ``(width, height)`` of the thumbnail :type size: tuple :param save_cache: save opened thumbnail to cache cache :type save_cache: bool """ # is the thumbnail small enough for the cache? size_label = get_freedesktop_size_label(size) if size_label: # retrieve the filename of the cached thumbnail if desirable thumb_filename = get_freedesktop_filename(filename, size_label) if os.path.isfile(thumb_filename) and \ not needs_update(filename, thumb_filename=thumb_filename): # png -> open with pil immediately, no need for open_image return Image.open(thumb_filename) if image is None: image = open_image(filename) if size_label and save_cache: return _save_to_cache(filename, image, size, size_label) return image def _save_to_cache(filename, image, size=SIZE, size_label=None, thumb_info=None, **options): """Save thumb as thumbnail for image filename. The size of the thumbnails should be a cache thumbnail size. :param filename: image filename :type filename: string :param thumb: thumb image :type thumb: Image :param thumb_filename: thumb filename :type thumb_filename: string :param size: size ``(width, height)`` of the thumbnail :type size: tuple :param size_label: ``'normal'``, ``'large'`` or ``None`` :type size_label: string :returns: image or thumb :rtype: Image """ thumb = imtools.convert_save_mode_by_format(image, 'PNG') if size_label is None: size_label = get_freedesktop_size_label(size) pnginfo = get_freedesktop_pnginfo(filename, thumb_info=thumb_info) if not size_label: # too large -> make thumbnail thumb.thumbnail(size, Image.ANTIALIAS) thumb_cache = thumb.copy() # save large thumbnail if size_label == 'large': thumb, thumb_cache = _save_to_cache_size('large', filename, size_label, thumb, thumb_cache, size, pnginfo, **options) # save normal thumbnail thumb, thumb_cache = _save_to_cache_size('normal', filename, size_label, thumb, thumb_cache, size, pnginfo, **options) return thumb def _save_to_cache_size(cache_size_label, filename, size_label, thumb, thumb_cache, size, pnginfo, **options): thumb_cache.thumbnail(FREEDESKTOP_SIZE[cache_size_label], Image.ANTIALIAS) temp = system.TempFile('.png') imtools.save(thumb_cache, temp.path, pnginfo=pnginfo, **options) thumb_filename = get_freedesktop_filename(filename, cache_size_label) temp.close(dest=thumb_filename) os.chmod(thumb_filename, 0600) if cache_size_label == size_label: # make thumbnail as it is smaller than this thumb cache size thumb = thumbnail(thumb_cache, size) return thumb, thumb_cache def delete(filename): for size_label in FREEDESKTOP_SIZE: try: os.remove(get_freedesktop_filename(filename, size_label)) except: pass def needs_update(filename, size_label='normal', thumb_filename=None): if thumb_filename is None: thumb_filename = get_freedesktop_filename(filename, size_label) if not os.path.exists(thumb_filename): return True try: thumb = Image.open(thumb_filename) except: return True try: thumb_mtime = thumb.info['Thumb::MTime'] except KeyError: return True file_mtime = str(get_mtime(filename)) return file_mtime != thumb_mtime else: _save_to_cache = None def _open(filename, image=None, open_image=Image.open, **keyw): """Open image for thumbnail of the image specified by filename. .. note:: This does not return an image yet with the size. This needs to be combined with the :func:`after_open` as in the :func:`open`. :param filename: image filename :type filename: string :param image: optionally pass the already opened image :type image: Image :param open_image: alternative open method :type open_image: function :returns: image :rtype: Image """ if image is None: return open_image(filename) return image def delete(filename): pass def is_needed(image, format='JPEG'): """Small images don't need thumbnails :param image: image :type image: pil.Image :param format: image format :type format: string :returns: ``True`` if large enough, ``False`` otherwise :rtype: bool >>> im = Image.new('L', (128, 128)) >>> is_needed(im) False >>> im = Image.new('L', (1024, 1024)) >>> is_needed(im) True """ if format == 'JPEG': #be more strict for jpeg (because of lossless compression) return image.size[0] > 512 or image.size[1] > 512 else: return image.size[0] > SIZE[0] or image.size[1] > SIZE[1] def thumbnail(image, size=SIZE, checkboard=False, copy=True): """Makes a not in place thumbnail :param image: image :type image: pil.Image :param size: thumbnail size :type size: tuple of int :returns: thumbnail :rtype: Image >>> im = Image.new('L', (1024, 1024)) >>> thumbnail(im, (128, 128)).size (128, 128) """ if copy: thumb = image.copy() #skip if thumb is smaller than requested size if thumb.size[0] > size[0] or thumb.size[1] > size[1]: thumb.thumbnail(size, Image.ANTIALIAS) if checkboard: return imtools.add_checkboard(thumb) return thumb def get_format_data(image, format, size=SIZE, checkboard=False): """Convert the image in the file bytes of the image at a certain size. By consequence this byte data is different for the chosen format (``JPEG``, ``TIFF``, ...). .. see also:: :func:`get_format_data` :param image: source image :type impage: pil.Image :param format: image file type format :type format: string :param size: target thumbnail size :type size: tuple of int :returns: byte data of the thumbnail """ thumb = thumbnail(image, size, checkboard) return imtools.get_format_data(thumb, format) def save_to_cache(filename, image=None, open_image=imtools.open_image_exif, thumb_info=None, **options): """Save the thumb of image as a thumbnail for specified file. This is called by the _open function, which requires that it returns the thumb. :param filename: filename of the image :type filename: string :param image: generate thumb from pil image directly (optional) :type image: pil.Image :param open_image: alternative for Image.open :type open_image: function """ #is save_to_cache implemented for the current platform? if _save_to_cache: #is image opened already? if image is None: image = open_image(filename) _save_to_cache(filename, image, thumb_info=thumb_info, **options) def open(filename, image=None, open_image=imtools.open_image_exif, size=SIZE, save_cache=True): """Retrieves a thumbnail from a file. It will only use the cache if ``size`` is smaller than the cache thumbnail sizes. On Linux it will try to load it from the freedesktop thumbnail cache, which makes it much faster. Otherwise it will generate the thumbnail. :param filename: filename of the image :type filename: string :param image: generate thumb from pil image directly (optional) :type image: pil.Image :param open_image: alternative for Image.open :type open_image: function :param size: size of the thumbnail :type size: tuple of int :param save_cache: save thumbnail in cache (linux only) :type save_cache: bool :returns: thumbnail :rtype: pil.Image """ thumb = _open(filename=filename, image=image, open_image=open_image, size=size, save_cache=save_cache) if thumb.size[0] > size[0] or thumb.size[1] > size[1]: #we need a smaller thumb return thumbnail(thumb, size, checkboard=True) #add checkerboard for transparant images return imtools.add_checkboard(thumb) phatch-0.2.7/phatch/lib/unicoding.py0000644000000000000000000000371111346363116017301 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import codecs import locale import system ENCODING = locale.getdefaultlocale()[1] try: codecs.lookup(ENCODING) except: ENCODING = locale.getpreferredencoding() try: codecs.lookup(ENCODING) except: ENCODING = 'utf-8' def ensure_unicode(x, encoding=ENCODING, errors='replace'): if type(x) is unicode: return x try: return unicode(x) except UnicodeDecodeError: return unicode(x, encoding, errors) def exception_to_unicode(x, encoding=ENCODING, errors='replace'): ## #python2.5 ## if hasattr(x, 'message'): ## return ensure_unicode(x.message, encoding, errors) #python2.4 try: return ensure_unicode(x, encoding, errors) except: try: return ensure_unicode(str(x), encoding, errors) except: return u'?' def fix_filename(f, encoding=None): if system.is_file(f): return f if type(f) is unicode: encodings = ['latin1', 'utf-8', ENCODING] if encoding: encodings = [encoding] + encodings for encoding in encodings: try: f = f.encode(encoding) if system.is_file(f): return f except UnicodeEncodeError: pass return None phatch-0.2.7/phatch/lib/windows/0000755000000000000000000000000011346363116016440 5ustar rootroot00000000000000phatch-0.2.7/phatch/lib/windows/__init__.py0000644000000000000000000000126211346363116020552 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follows PEP8 phatch-0.2.7/phatch/lib/windows/locate.py0000644000000000000000000000331711346363116020265 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 try: import _winreg except ImportError: _winreg = None class RegistryApplication: name = '' filename = '' def get_path(self, reg): pass class Blender(RegistryApplication): name = 'blender' filename = 'blendfile' def get_path(self, reg): return _winreg.QueryValue(reg, 'DefaultIcon').rsplit(',', 1)[0] class Inkscape(RegistryApplication): name = 'inkscape' filename = 'svgfile\\shell\edit' def get_path(self, reg): return _winreg.QueryValue(reg, 'command').rsplit(' ', 1)[0].strip('"') class Applications(dict): def __init__(self): apps = (Blender(), Inkscape()) for app in apps: self[app.name] = app apps = Applications() def find_exe(app_name): if app_name in apps: app = apps[app_name] try: reg = _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, app.filename) value = app.get_path(reg) _winreg.CloseKey(reg) return value except: pass return None phatch-0.2.7/phatch/lib/windows/register.py0000644000000000000000000000702711346363116020644 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follows PEP8 import os import sys import _winreg PYTHONW = os.path.join(sys.prefix, 'pythonw.exe') PY = 'Python.File' PYW = 'Python.NoConFile' def fix_label(x): return x.title().replace(' ', '').encode('ascii', 'ignore') def getFiletype(extension): return _winreg.QueryValue(_winreg.HKEY_CLASSES_ROOT, extension) #---register def register(label, action, filetype='Python.File', suffix='"%1"'): try: k = '%s\\shell\\%s' % (filetype, label) key = _winreg.CreateKey(_winreg.HKEY_CLASSES_ROOT, k) except: pass try: command = '%s %s' % (action, suffix) _winreg.SetValue(key, "command", _winreg.REG_SZ, command) return key except: return False def register_extension(label, action, extension, suffix='"%1"'): "Registering action for extension in windows explorer context menu." try: filetype = getFiletype(extension) except: return False return register( label=label, action='"%s" %s' % (PYTHONW, action), filetype=filetype, suffix=suffix, ) def register_extensions(label, action, extensions, folder=False, suffix='"%1"'): "Registering action for extensions in windows explorer context menu." result = [] if folder: if register(label, action, 'Folder', suffix): result.append('folder') for extension in extensions: if register_extension(label, action, extension, suffix): result.append(extension) return result def register_py(label, action, suffix='"%1"'): """ Registering action for python (*.py, *.pyw) in windows explorer contextmenu.""" keyw = { 'label': label, 'action': '"%s" "%s"' % (PYTHONW, action), 'suffix': suffix} py, pyw = keys\ = (register(filetype=PY, **keyw), register(filetype=PYW, **keyw)) if py and pyw: return keys else: return False #---deregister def deregister(label, filetype='Python.File'): try: key = '%s\\shell\\%s' % (filetype, label) _winreg.DeleteKey(_winreg.HKEY_CLASSES_ROOT, key + '\\command') except Exception, message: pass try: _winreg.DeleteKey(_winreg.HKEY_CLASSES_ROOT, key) return True except Exception, message: return False def deregister_extension(label, extension): try: filetype = getFiletype(extension) except: return False return deregister(label, filetype) def deregister_extensions(label, extensions, folder=True): result = [] if folder: if deregister(label, 'Folder'): result.append('folder') for extension in extensions: if deregister_extension(label, extension): result.append(extension) return result def deregister_py(label): deregister(label=label, filetype=PY) deregister(label=label, filetype=PYW) phatch-0.2.7/phatch/lib/windows/shortcut.py0000644000000000000000000000232111346363116020663 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follows PEP8 import win32com.client def create(save_as, path, arguments="", working_dir="", description="", icon_path=None, icon_index=0): # initialize shortcut shell = win32com.client.Dispatch("WScript.Shell") shortcut = shell.CreateShortCut(save_as) # set shortcut parameters shortcut.Targetpath = path shortcut.Arguments = arguments shortcut.WorkingDirectory = working_dir shortcut.Description = description if icon_path: shortcut.IconLocation = icon_path # save shortcut shortcut.save() phatch-0.2.7/phatch/linux/0000755000000000000000000000000011346363116015337 5ustar rootroot00000000000000phatch-0.2.7/phatch/linux/__init__.py0000644000000000000000000000144211346363116017451 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 phatch-0.2.7/phatch/linux/droplet.py0000644000000000000000000002157411346363116017373 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import os import wx from core import ct from lib.reverse_translation import _t from core.config import SYSTEM_INSTALL from lib import system from lib.linux.desktop import create_droplet from lib.unicoding import exception_to_unicode from lib.formField import IMAGE_READ_MIMETYPES try: from thunar import thunar_exists, create_thunar_action except ImportError: def thunar_exists(): return False try: from lib.linux.nautilusExtension import nautilus_exists, \ create_nautilus_extension except ImportError: def nautilus_exists(): return False WX_ENCODING = wx.GetDefaultPyEncoding() #---general def menu_action(self, program, comment, method, *args, **keyw): try: success = method(*args, **keyw) self.show_info(_('If you restart %s, ' 'the action will appear in the context menu.') % program + comment) except Exception, details: reason = exception_to_unicode(details, WX_ENCODING) self.show_error(_('Phatch could not install the action in %s:')\ % program + '\n\n' + reason) #---droplet def create_phatch_droplet(actionlist, folder, icon='phatch'): """""" create_droplet( name=system.filename_to_title(actionlist), command=ct.COMMAND['DROP'] % actionlist, folder=folder, icon=icon, ) def create_phatch_recent_droplet(folder, icon='phatch'): """""" create_droplet( name=ct.LABEL_PHATCH_RECENT, command=ct.COMMAND['RECENT'], folder=folder, icon=icon, ) def create_phatch_inspector_droplet(folder, icon='phatch'): """""" create_droplet( name=ct.LABEL_PHATCH_INSPECTOR, command=ct.COMMAND['INSPECTOR'], folder=folder, icon=icon, ) def on_menu_file_export_droplet_actionlist(self, event): if self.is_save_not_ok(): return self.menu_file_export_droplet(create_phatch_droplet, self.filename) def on_menu_file_export_droplet_recent(self, event): self.menu_file_export_droplet(create_phatch_recent_droplet) def on_menu_file_export_droplet_inspector(self, event): self.menu_file_export_droplet(create_phatch_inspector_droplet) #---thunar def create_phatch_thunar_action(actionlist, description='', icon='phatch'): """""" return create_thunar_action( name=ct.LABEL_PHATCH_ACTIONLIST % system.filename_to_title(actionlist), description=description, command=ct.COMMAND['DROP'] % actionlist, icon=icon, types='', ) def create_phatch_recent_thunar_action(icon='phatch'): """""" return create_thunar_action( name=ct.LABEL_PHATCH_RECENT + '...', description=ct.DESCRIPTION_RECENT, command=ct.COMMAND['RECENT'], icon=icon, types='', ) def create_phatch_inspect_thunar_action(icon='phatch'): """""" return create_thunar_action( name=ct.INFO['name'] + ' ' + ct.LABEL_PHATCH_INSPECTOR + '...', description=ct.DESCRIPTION_INSPECTOR, command=ct.COMMAND['INSPECTOR'], icon=icon, types='', ) def on_menu_file_export_thunar_actionlist(self, event): if self.is_save_not_ok(): return menu_action(self, 'Thunar', '', create_phatch_thunar_action, self.filename, description='') def on_menu_file_export_thunar_recent(self, event): menu_action(self, 'Thunar', '', create_phatch_recent_thunar_action) def on_menu_file_export_thunar_inspector(self, event): menu_action(self, 'Thunar', '', create_phatch_inspect_thunar_action) #---nautilus REQUIRES_PYTHON_NAUTILUS = '\n\n(%s)' % \ _('This requires also that the python-nautilus package is installed.') TOOLTIP = '_("%s")' % _t('Batch process images with Phatch') PRELOAD = """ from phatch.core.config import load_locale_only load_locale_only()""" def create_phatch_nautilus_action(actionlist): name = os.path.splitext(os.path.basename(actionlist))[0] title = system.title(name) create_nautilus_extension( name='phatch_actionlist_' + \ name.encode('ascii', 'ignore'), label='_("%s") + "..."' % _t('Phatch with %s') % title, command='phatch -d "%s" %%s &' % actionlist, mimetypes=IMAGE_READ_MIMETYPES, tooltip=TOOLTIP, preload=PRELOAD, ) def create_phatch_recent_nautilus_action(): create_nautilus_extension( name='phatch_recent', label='_("%s") + "..."' % \ _t('Process with recent Phatch action list'), command='phatch -d recent %s &', mimetypes=IMAGE_READ_MIMETYPES, tooltip=TOOLTIP, preload=PRELOAD, ) def create_phatch_inspect_nautilus_action(): create_nautilus_extension( name='phatch_image_inspector', label='_("%s") + "..."' % \ _t('Inspect with Phatch'), command='phatch -n %s &', mimetypes=IMAGE_READ_MIMETYPES, tooltip='_("%s")' % _t('Inspect EXIF & IPTC tags'), preload=PRELOAD, ) def on_menu_file_export_nautilus_actionlist(self, event): if self.is_save_not_ok(): return menu_action(self, 'Nautilus', REQUIRES_PYTHON_NAUTILUS, create_phatch_nautilus_action, self.filename) def on_menu_file_export_nautilus_recent(self, event): menu_action(self, 'Nautilus', REQUIRES_PYTHON_NAUTILUS, create_phatch_recent_nautilus_action) def on_menu_file_export_nautilus_inspector(self, event): menu_action(self, 'Nautilus', REQUIRES_PYTHON_NAUTILUS, create_phatch_inspect_nautilus_action) #---install def install_menu_item(self, menu, name, label, tooltip="", style=wx.ITEM_NORMAL): method = globals()['on_' + name] return self.install_menu_item(menu, name, label, method, tooltip, style) def install(self): #install menu items in reverse order #thunar if thunar_exists(): install_menu_item(self, self.menu_file_export, name='menu_file_export_thunar_inspector', label=ct.INTEGRATE_PHATCH_INSPECTOR % "Thuna&r", ) install_menu_item(self, self.menu_file_export, name='menu_file_export_thunar_recent', label=ct.INTEGRATE_PHATCH_RECENT % "T&hunar", ) self.menu_item.append((self.menu_file_export, [install_menu_item(self, self.menu_file_export, name='menu_file_export_thunar_actionlist', label=ct.INTEGRATE_PHATCH_ACTIONLIST % "&Thunar", )])) self.menu_file_export.InsertSeparator(3) #nautilus if nautilus_exists(): if not SYSTEM_INSTALL: install_menu_item(self, self.menu_file_export, name='menu_file_export_nautilus_inspector', label=ct.INTEGRATE_PHATCH_INSPECTOR % "Nautil&us", ) install_menu_item(self, self.menu_file_export, name='menu_file_export_nautilus_recent', label=ct.INTEGRATE_PHATCH_RECENT % "Nauti&lus", ) self.menu_item.append((self.menu_file_export, [install_menu_item(self, self.menu_file_export, name='menu_file_export_nautilus_actionlist', label=ct.INTEGRATE_PHATCH_ACTIONLIST % "Nautilu&s", )])) if SYSTEM_INSTALL: separator = 1 else: separator = 3 self.menu_file_export.InsertSeparator(separator) #droplet install_menu_item(self, self.menu_file_export, name='menu_file_export_droplet_inspector', label=ct.DROPLET_PHATCH_INSPECTOR, ) install_menu_item(self, self.menu_file_export, name='menu_file_export_droplet_recent', label=ct.DROPLET_PHATCH_RECENT, ) self.menu_item.append((self.menu_file_export, [install_menu_item(self, self.menu_file_export, name='menu_file_export_droplet_actionlist', label=ct.DROPLET_PHATCH_ACTIONLIST, )])) self.menu_file_export.InsertSeparator(3) if __name__ == '__main__': create_phatch_droplet( actionlist=''.join('/home/stani/sync/python/phatch/action ', 'lists/tutorials/thumb round 3d reflect.phatch'), folder='/home/stani/sync/Desktop', ) phatch-0.2.7/phatch/linux/thunar.py0000644000000000000000000000422611346363116017216 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follows PEP8 if __name__ == '__main__': import sys _ = unicode sys.path.insert(0, '../..') END = '' THUNAR_ACTION = \ '%(icon)s%(name)s' +\ '%(command)s' +\ '%(description)s' +\ '%(patterns)s%(types)s' import os import shutil from core.ct import USER_PATH THUNAR_USER_ACTIONS = os.path.join(USER_PATH, '.config', 'Thunar', 'uca.xml') BACKUP = '.backup_before_phatch' def thunar_exists(): return os.path.isfile(THUNAR_USER_ACTIONS) def create_thunar_action(name, command, description, types='', patterns='*', icon=''): if not thunar_exists(): return False #action data = {'name': name, 'icon': icon, 'command': command, 'description': description, 'types': types, 'patterns': patterns} action = THUNAR_ACTION % data #create actions string f = open(THUNAR_USER_ACTIONS, 'rb') actions = f.read() f.close() #check if already done if action in actions: return True actions = actions.replace(END, action + END) #write actions string f = open(THUNAR_USER_ACTIONS + '.phatch', 'wb') f.write(actions) f.close() #backup previous if not os.path.isfile(THUNAR_USER_ACTIONS + BACKUP): shutil.copy2(THUNAR_USER_ACTIONS, THUNAR_USER_ACTIONS + BACKUP) #overwrite with phatch actions os.rename(THUNAR_USER_ACTIONS + '.phatch', THUNAR_USER_ACTIONS) return True phatch-0.2.7/phatch/other/0000755000000000000000000000000011346363116015321 5ustar rootroot00000000000000phatch-0.2.7/phatch/other/EXIF.py0000755000000000000000000016664711346363116016455 0ustar rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # # Library to extract EXIF information from digital camera image files # http://sourceforge.net/projects/exif-py/ # # VERSION 1.1.0 # # To use this library call with: # f = open(path_name, 'rb') # tags = EXIF.process_file(f) # # To ignore MakerNote tags, pass the -q or --quick # command line arguments, or as # tags = EXIF.process_file(f, details=False) # # To stop processing after a certain tag is retrieved, # pass the -t TAG or --stop-tag TAG argument, or as # tags = EXIF.process_file(f, stop_tag='TAG') # # where TAG is a valid tag name, ex 'DateTimeOriginal' # # These 2 are useful when you are retrieving a large list of images # # # To return an error on invalid tags, # pass the -s or --strict argument, or as # tags = EXIF.process_file(f, strict=True) # # Otherwise these tags will be ignored # # Returned tags will be a dictionary mapping names of EXIF tags to their # values in the file named by path_name. You can process the tags # as you wish. In particular, you can iterate through all the tags with: # for tag in tags.keys(): # if tag not in ('JPEGThumbnail', 'TIFFThumbnail', 'Filename', # 'EXIF MakerNote'): # print "Key: %s, value %s" % (tag, tags[tag]) # (This code uses the if statement to avoid printing out a few of the # tags that tend to be long or boring.) # # The tags dictionary will include keys for all of the usual EXIF # tags, and will also include keys for Makernotes used by some # cameras, for which we have a good specification. # # Note that the dictionary keys are the IFD name followed by the # tag name. For example: # 'EXIF DateTimeOriginal', 'Image Orientation', 'MakerNote FocusMode' # # Copyright (c) 2002-2007 Gene Cash All rights reserved # Copyright (c) 2007-2008 Ianaré Sévi All rights reserved # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # # 3. Neither the name of the authors nor the names of its contributors # may be used to endorse or promote products derived from this # software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # # ----- See 'changes.txt' file for all contributors and changes ----- # # # Don't throw an exception when given an out of range character. def make_string(seq): str = '' for c in seq: # Screen out non-printing characters if 32 <= c and c < 256: str += chr(c) # If no printing chars if not str: return seq return str # Special version to deal with the code in the first 8 bytes of a user comment. # First 8 bytes gives coding system e.g. ASCII vs. JIS vs Unicode def make_string_uc(seq): code = seq[0:8] seq = seq[8:] # Of course, this is only correct if ASCII, and the standard explicitly # allows JIS and Unicode. return make_string(seq) # field type descriptions as (length, abbreviation, full name) tuples FIELD_TYPES = ( (0, 'X', 'Proprietary'), # no such type (1, 'B', 'Byte'), (1, 'A', 'ASCII'), (2, 'S', 'Short'), (4, 'L', 'Long'), (8, 'R', 'Ratio'), (1, 'SB', 'Signed Byte'), (1, 'U', 'Undefined'), (2, 'SS', 'Signed Short'), (4, 'SL', 'Signed Long'), (8, 'SR', 'Signed Ratio'), ) # dictionary of main EXIF tag names # first element of tuple is tag name, optional second element is # another dictionary giving names to values EXIF_TAGS = { 0x0100: ('ImageWidth', ), 0x0101: ('ImageLength', ), 0x0102: ('BitsPerSample', ), 0x0103: ('Compression', {1: 'Uncompressed', 2: 'CCITT 1D', 3: 'T4/Group 3 Fax', 4: 'T6/Group 4 Fax', 5: 'LZW', 6: 'JPEG (old-style)', 7: 'JPEG', 8: 'Adobe Deflate', 9: 'JBIG B&W', 10: 'JBIG Color', 32766: 'Next', 32769: 'Epson ERF Compressed', 32771: 'CCIRLEW', 32773: 'PackBits', 32809: 'Thunderscan', 32895: 'IT8CTPAD', 32896: 'IT8LW', 32897: 'IT8MP', 32898: 'IT8BL', 32908: 'PixarFilm', 32909: 'PixarLog', 32946: 'Deflate', 32947: 'DCS', 34661: 'JBIG', 34676: 'SGILog', 34677: 'SGILog24', 34712: 'JPEG 2000', 34713: 'Nikon NEF Compressed', 65000: 'Kodak DCR Compressed', 65535: 'Pentax PEF Compressed'}), 0x0106: ('PhotometricInterpretation', ), 0x0107: ('Thresholding', ), 0x010A: ('FillOrder', ), 0x010D: ('DocumentName', ), 0x010E: ('ImageDescription', ), 0x010F: ('Make', ), 0x0110: ('Model', ), 0x0111: ('StripOffsets', ), 0x0112: ('Orientation', {1: 'Horizontal (normal)', 2: 'Mirrored horizontal', 3: 'Rotated 180', 4: 'Mirrored vertical', 5: 'Mirrored horizontal then rotated 90 CCW', 6: 'Rotated 90 CW', 7: 'Mirrored horizontal then rotated 90 CW', 8: 'Rotated 90 CCW'}), 0x0115: ('SamplesPerPixel', ), 0x0116: ('RowsPerStrip', ), 0x0117: ('StripByteCounts', ), 0x011A: ('XResolution', ), 0x011B: ('YResolution', ), 0x011C: ('PlanarConfiguration', ), 0x011D: ('PageName', make_string), 0x0128: ('ResolutionUnit', {1: 'Not Absolute', 2: 'Pixels/Inch', 3: 'Pixels/Centimeter'}), 0x012D: ('TransferFunction', ), 0x0131: ('Software', ), 0x0132: ('DateTime', ), 0x013B: ('Artist', ), 0x013E: ('WhitePoint', ), 0x013F: ('PrimaryChromaticities', ), 0x0156: ('TransferRange', ), 0x0200: ('JPEGProc', ), 0x0201: ('JPEGInterchangeFormat', ), 0x0202: ('JPEGInterchangeFormatLength', ), 0x0211: ('YCbCrCoefficients', ), 0x0212: ('YCbCrSubSampling', ), 0x0213: ('YCbCrPositioning', {1: 'Centered', 2: 'Co-sited'}), 0x0214: ('ReferenceBlackWhite', ), 0x4746: ('Rating', ), 0x828D: ('CFARepeatPatternDim', ), 0x828E: ('CFAPattern', ), 0x828F: ('BatteryLevel', ), 0x8298: ('Copyright', ), 0x829A: ('ExposureTime', ), 0x829D: ('FNumber', ), 0x83BB: ('IPTC/NAA', ), 0x8769: ('ExifOffset', ), 0x8773: ('InterColorProfile', ), 0x8822: ('ExposureProgram', {0: 'Unidentified', 1: 'Manual', 2: 'Program Normal', 3: 'Aperture Priority', 4: 'Shutter Priority', 5: 'Program Creative', 6: 'Program Action', 7: 'Portrait Mode', 8: 'Landscape Mode'}), 0x8824: ('SpectralSensitivity', ), 0x8825: ('GPSInfo', ), 0x8827: ('ISOSpeedRatings', ), 0x8828: ('OECF', ), 0x9000: ('ExifVersion', make_string), 0x9003: ('DateTimeOriginal', ), 0x9004: ('DateTimeDigitized', ), 0x9101: ('ComponentsConfiguration', {0: '', 1: 'Y', 2: 'Cb', 3: 'Cr', 4: 'Red', 5: 'Green', 6: 'Blue'}), 0x9102: ('CompressedBitsPerPixel', ), 0x9201: ('ShutterSpeedValue', ), 0x9202: ('ApertureValue', ), 0x9203: ('BrightnessValue', ), 0x9204: ('ExposureBiasValue', ), 0x9205: ('MaxApertureValue', ), 0x9206: ('SubjectDistance', ), 0x9207: ('MeteringMode', {0: 'Unidentified', 1: 'Average', 2: 'CenterWeightedAverage', 3: 'Spot', 4: 'MultiSpot', 5: 'Pattern'}), 0x9208: ('LightSource', {0: 'Unknown', 1: 'Daylight', 2: 'Fluorescent', 3: 'Tungsten', 9: 'Fine Weather', 10: 'Flash', 11: 'Shade', 12: 'Daylight Fluorescent', 13: 'Day White Fluorescent', 14: 'Cool White Fluorescent', 15: 'White Fluorescent', 17: 'Standard Light A', 18: 'Standard Light B', 19: 'Standard Light C', 20: 'D55', 21: 'D65', 22: 'D75', 255: 'Other'}), 0x9209: ('Flash', {0: 'No', 1: 'Fired', 5: 'Fired (?)', # no return sensed 7: 'Fired (!)', # return sensed 9: 'Fill Fired', 13: 'Fill Fired (?)', 15: 'Fill Fired (!)', 16: 'Off', 24: 'Auto Off', 25: 'Auto Fired', 29: 'Auto Fired (?)', 31: 'Auto Fired (!)', 32: 'Not Available'}), 0x920A: ('FocalLength', ), 0x9214: ('SubjectArea', ), 0x927C: ('MakerNote', ), 0x9286: ('UserComment', make_string_uc), 0x9290: ('SubSecTime', ), 0x9291: ('SubSecTimeOriginal', ), 0x9292: ('SubSecTimeDigitized', ), # used by Windows Explorer 0x9C9B: ('XPTitle', ), 0x9C9C: ('XPComment', ), 0x9C9D: ('XPAuthor', ), #(ignored by Windows Explorer if Artist exists) 0x9C9E: ('XPKeywords', ), 0x9C9F: ('XPSubject', ), 0xA000: ('FlashPixVersion', make_string), 0xA001: ('ColorSpace', {1: 'sRGB', 2: 'Adobe RGB', 65535: 'Uncalibrated'}), 0xA002: ('ExifImageWidth', ), 0xA003: ('ExifImageLength', ), 0xA005: ('InteroperabilityOffset', ), 0xA20B: ('FlashEnergy', ), # 0x920B in TIFF/EP 0xA20C: ('SpatialFrequencyResponse', ), # 0x920C 0xA20E: ('FocalPlaneXResolution', ), # 0x920E 0xA20F: ('FocalPlaneYResolution', ), # 0x920F 0xA210: ('FocalPlaneResolutionUnit', ), # 0x9210 0xA214: ('SubjectLocation', ), # 0x9214 0xA215: ('ExposureIndex', ), # 0x9215 0xA217: ('SensingMethod', # 0x9217 {1: 'Not defined', 2: 'One-chip color area', 3: 'Two-chip color area', 4: 'Three-chip color area', 5: 'Color sequential area', 7: 'Trilinear', 8: 'Color sequential linear'}), 0xA300: ('FileSource', {1: 'Film Scanner', 2: 'Reflection Print Scanner', 3: 'Digital Camera'}), 0xA301: ('SceneType', {1: 'Directly Photographed'}), 0xA302: ('CVAPattern', ), 0xA401: ('CustomRendered', {0: 'Normal', 1: 'Custom'}), 0xA402: ('ExposureMode', {0: 'Auto Exposure', 1: 'Manual Exposure', 2: 'Auto Bracket'}), 0xA403: ('WhiteBalance', {0: 'Auto', 1: 'Manual'}), 0xA404: ('DigitalZoomRatio', ), 0xA405: ('FocalLengthIn35mmFilm', ), 0xA406: ('SceneCaptureType', {0: 'Standard', 1: 'Landscape', 2: 'Portrait', 3: 'Night)'}), 0xA407: ('GainControl', {0: 'None', 1: 'Low gain up', 2: 'High gain up', 3: 'Low gain down', 4: 'High gain down'}), 0xA408: ('Contrast', {0: 'Normal', 1: 'Soft', 2: 'Hard'}), 0xA409: ('Saturation', {0: 'Normal', 1: 'Soft', 2: 'Hard'}), 0xA40A: ('Sharpness', {0: 'Normal', 1: 'Soft', 2: 'Hard'}), 0xA40B: ('DeviceSettingDescription', ), 0xA40C: ('SubjectDistanceRange', ), 0xA500: ('Gamma', ), 0xC4A5: ('PrintIM', ), 0xEA1C: ('Padding', ), } # interoperability tags INTR_TAGS = { 0x0001: ('InteroperabilityIndex', ), 0x0002: ('InteroperabilityVersion', ), 0x1000: ('RelatedImageFileFormat', ), 0x1001: ('RelatedImageWidth', ), 0x1002: ('RelatedImageLength', ), } # GPS tags (not used yet, haven't seen camera with GPS) GPS_TAGS = { 0x0000: ('GPSVersionID', ), 0x0001: ('GPSLatitudeRef', ), 0x0002: ('GPSLatitude', ), 0x0003: ('GPSLongitudeRef', ), 0x0004: ('GPSLongitude', ), 0x0005: ('GPSAltitudeRef', ), 0x0006: ('GPSAltitude', ), 0x0007: ('GPSTimeStamp', ), 0x0008: ('GPSSatellites', ), 0x0009: ('GPSStatus', ), 0x000A: ('GPSMeasureMode', ), 0x000B: ('GPSDOP', ), 0x000C: ('GPSSpeedRef', ), 0x000D: ('GPSSpeed', ), 0x000E: ('GPSTrackRef', ), 0x000F: ('GPSTrack', ), 0x0010: ('GPSImgDirectionRef', ), 0x0011: ('GPSImgDirection', ), 0x0012: ('GPSMapDatum', ), 0x0013: ('GPSDestLatitudeRef', ), 0x0014: ('GPSDestLatitude', ), 0x0015: ('GPSDestLongitudeRef', ), 0x0016: ('GPSDestLongitude', ), 0x0017: ('GPSDestBearingRef', ), 0x0018: ('GPSDestBearing', ), 0x0019: ('GPSDestDistanceRef', ), 0x001A: ('GPSDestDistance', ), 0x001D: ('GPSDate', ), } # Ignore these tags when quick processing # 0x927C is MakerNote Tags # 0x9286 is user comment IGNORE_TAGS=(0x9286, 0x927C) # http://tomtia.plala.jp/DigitalCamera/MakerNote/index.asp def nikon_ev_bias(seq): # First digit seems to be in steps of 1/6 EV. # Does the third value mean the step size? It is usually 6, # but it is 12 for the ExposureDifference. # # Check for an error condition that could cause a crash. # This only happens if something has gone really wrong in # reading the Nikon MakerNote. if len( seq ) < 4 : return "" # if seq == [252, 1, 6, 0]: return "-2/3 EV" if seq == [253, 1, 6, 0]: return "-1/2 EV" if seq == [254, 1, 6, 0]: return "-1/3 EV" if seq == [0, 1, 6, 0]: return "0 EV" if seq == [2, 1, 6, 0]: return "+1/3 EV" if seq == [3, 1, 6, 0]: return "+1/2 EV" if seq == [4, 1, 6, 0]: return "+2/3 EV" # Handle combinations not in the table. a = seq[0] # Causes headaches for the +/- logic, so special case it. if a == 0: return "0 EV" if a > 127: a = 256 - a ret_str = "-" else: ret_str = "+" b = seq[2] # Assume third value means the step size whole = a / b a = a % b if whole != 0: ret_str = ret_str + str(whole) + " " if a == 0: ret_str = ret_str + "EV" else: r = Ratio(a, b) ret_str = ret_str + r.__repr__() + " EV" return ret_str # Nikon E99x MakerNote Tags MAKERNOTE_NIKON_NEWER_TAGS={ 0x0001: ('MakernoteVersion', make_string), # Sometimes binary 0x0002: ('ISOSetting', make_string), 0x0003: ('ColorMode', ), 0x0004: ('Quality', ), 0x0005: ('Whitebalance', ), 0x0006: ('ImageSharpening', ), 0x0007: ('FocusMode', ), 0x0008: ('FlashSetting', ), 0x0009: ('AutoFlashMode', ), 0x000B: ('WhiteBalanceBias', ), 0x000C: ('WhiteBalanceRBCoeff', ), 0x000D: ('ProgramShift', nikon_ev_bias), # Nearly the same as the other EV vals, but step size is 1/12 EV (?) 0x000E: ('ExposureDifference', nikon_ev_bias), 0x000F: ('ISOSelection', ), 0x0011: ('NikonPreview', ), 0x0012: ('FlashCompensation', nikon_ev_bias), 0x0013: ('ISOSpeedRequested', ), 0x0016: ('PhotoCornerCoordinates', ), # 0x0017: Unknown, but most likely an EV value 0x0018: ('FlashBracketCompensationApplied', nikon_ev_bias), 0x0019: ('AEBracketCompensationApplied', ), 0x001A: ('ImageProcessing', ), 0x001B: ('CropHiSpeed', ), 0x001D: ('SerialNumber', ), # Conflict with 0x00A0 ? 0x001E: ('ColorSpace', ), 0x001F: ('VRInfo', ), 0x0020: ('ImageAuthentication', ), 0x0022: ('ActiveDLighting', ), 0x0023: ('PictureControl', ), 0x0024: ('WorldTime', ), 0x0025: ('ISOInfo', ), 0x0080: ('ImageAdjustment', ), 0x0081: ('ToneCompensation', ), 0x0082: ('AuxiliaryLens', ), 0x0083: ('LensType', ), 0x0084: ('LensMinMaxFocalMaxAperture', ), 0x0085: ('ManualFocusDistance', ), 0x0086: ('DigitalZoomFactor', ), 0x0087: ('FlashMode', {0x00: 'Did Not Fire', 0x01: 'Fired, Manual', 0x07: 'Fired, External', 0x08: 'Fired, Commander Mode ', 0x09: 'Fired, TTL Mode'}), 0x0088: ('AFFocusPosition', {0x0000: 'Center', 0x0100: 'Top', 0x0200: 'Bottom', 0x0300: 'Left', 0x0400: 'Right'}), 0x0089: ('BracketingMode', {0x00: 'Single frame, no bracketing', 0x01: 'Continuous, no bracketing', 0x02: 'Timer, no bracketing', 0x10: 'Single frame, exposure bracketing', 0x11: 'Continuous, exposure bracketing', 0x12: 'Timer, exposure bracketing', 0x40: 'Single frame, white balance bracketing', 0x41: 'Continuous, white balance bracketing', 0x42: 'Timer, white balance bracketing'}), 0x008A: ('AutoBracketRelease', ), 0x008B: ('LensFStops', ), 0x008C: ('NEFCurve1', ), # ExifTool calls this 'ContrastCurve' 0x008D: ('ColorMode', ), 0x008F: ('SceneMode', ), 0x0090: ('LightingType', ), 0x0091: ('ShotInfo', ), # First 4 bytes are a version number in ASCII 0x0092: ('HueAdjustment', ), # ExifTool calls this 'NEFCompression', should be 1-4 0x0093: ('Compression', ), 0x0094: ('Saturation', {-3: 'B&W', -2: '-2', -1: '-1', 0: '0', 1: '1', 2: '2'}), 0x0095: ('NoiseReduction', ), 0x0096: ('NEFCurve2', ), # ExifTool calls this 'LinearizationTable' 0x0097: ('ColorBalance', ), # First 4 bytes are a version number in ASCII 0x0098: ('LensData', ), # First 4 bytes are a version number in ASCII 0x0099: ('RawImageCenter', ), 0x009A: ('SensorPixelSize', ), 0x009C: ('Scene Assist', ), 0x009E: ('RetouchHistory', ), 0x00A0: ('SerialNumber', ), 0x00A2: ('ImageDataSize', ), # 00A3: unknown - a single byte 0 # 00A4: In NEF, looks like a 4 byte ASCII version number ('0200') 0x00A5: ('ImageCount', ), 0x00A6: ('DeletedImageCount', ), 0x00A7: ('TotalShutterReleases', ), # First 4 bytes are a version number in ASCII, with version specific # info to follow. Its hard to treat it as a string due to embedded nulls. 0x00A8: ('FlashInfo', ), 0x00A9: ('ImageOptimization', ), 0x00AA: ('Saturation', ), 0x00AB: ('DigitalVariProgram', ), 0x00AC: ('ImageStabilization', ), 0x00AD: ('Responsive AF', ), # 'AFResponse' 0x00B0: ('MultiExposure', ), 0x00B1: ('HighISONoiseReduction', ), 0x00B7: ('AFInfo', ), 0x00B8: ('FileInfo', ), # 00B9: unknown 0x0100: ('DigitalICE', ), 0x0103: ('PreviewCompression', {1: 'Uncompressed', 2: 'CCITT 1D', 3: 'T4/Group 3 Fax', 4: 'T6/Group 4 Fax', 5: 'LZW', 6: 'JPEG (old-style)', 7: 'JPEG', 8: 'Adobe Deflate', 9: 'JBIG B&W', 10: 'JBIG Color', 32766: 'Next', 32769: 'Epson ERF Compressed', 32771: 'CCIRLEW', 32773: 'PackBits', 32809: 'Thunderscan', 32895: 'IT8CTPAD', 32896: 'IT8LW', 32897: 'IT8MP', 32898: 'IT8BL', 32908: 'PixarFilm', 32909: 'PixarLog', 32946: 'Deflate', 32947: 'DCS', 34661: 'JBIG', 34676: 'SGILog', 34677: 'SGILog24', 34712: 'JPEG 2000', 34713: 'Nikon NEF Compressed', 65000: 'Kodak DCR Compressed', 65535: 'Pentax PEF Compressed',}), 0x0201: ('PreviewImageStart', ), 0x0202: ('PreviewImageLength', ), 0x0213: ('PreviewYCbCrPositioning', {1: 'Centered', 2: 'Co-sited'}), 0x0010: ('DataDump', ), } MAKERNOTE_NIKON_OLDER_TAGS = { 0x0003: ('Quality', {1: 'VGA Basic', 2: 'VGA Normal', 3: 'VGA Fine', 4: 'SXGA Basic', 5: 'SXGA Normal', 6: 'SXGA Fine'}), 0x0004: ('ColorMode', {1: 'Color', 2: 'Monochrome'}), 0x0005: ('ImageAdjustment', {0: 'Normal', 1: 'Bright+', 2: 'Bright-', 3: 'Contrast+', 4: 'Contrast-'}), 0x0006: ('CCDSpeed', {0: 'ISO 80', 2: 'ISO 160', 4: 'ISO 320', 5: 'ISO 100'}), 0x0007: ('WhiteBalance', {0: 'Auto', 1: 'Preset', 2: 'Daylight', 3: 'Incandescent', 4: 'Fluorescent', 5: 'Cloudy', 6: 'Speed Light'}), } # decode Olympus SpecialMode tag in MakerNote def olympus_special_mode(v): a={ 0: 'Normal', 1: 'Unknown', 2: 'Fast', 3: 'Panorama'} b={ 0: 'Non-panoramic', 1: 'Left to right', 2: 'Right to left', 3: 'Bottom to top', 4: 'Top to bottom'} if v[0] not in a or v[2] not in b: return v return '%s - sequence %d - %s' % (a[v[0]], v[1], b[v[2]]) MAKERNOTE_OLYMPUS_TAGS={ # ah HAH! those sneeeeeaky bastids! this is how they get past the fact # that a JPEG thumbnail is not allowed in an uncompressed TIFF file 0x0100: ('JPEGThumbnail', ), 0x0200: ('SpecialMode', olympus_special_mode), 0x0201: ('JPEGQual', {1: 'SQ', 2: 'HQ', 3: 'SHQ'}), 0x0202: ('Macro', {0: 'Normal', 1: 'Macro', 2: 'SuperMacro'}), 0x0203: ('BWMode', {0: 'Off', 1: 'On'}), 0x0204: ('DigitalZoom', ), 0x0205: ('FocalPlaneDiagonal', ), 0x0206: ('LensDistortionParams', ), 0x0207: ('SoftwareRelease', ), 0x0208: ('PictureInfo', ), 0x0209: ('CameraID', make_string), # print as string 0x0F00: ('DataDump', ), 0x0300: ('PreCaptureFrames', ), 0x0404: ('SerialNumber', ), 0x1000: ('ShutterSpeedValue', ), 0x1001: ('ISOValue', ), 0x1002: ('ApertureValue', ), 0x1003: ('BrightnessValue', ), 0x1004: ('FlashMode', ), 0x1004: ('FlashMode', {2: 'On', 3: 'Off'}), 0x1005: ('FlashDevice', {0: 'None', 1: 'Internal', 4: 'External', 5: 'Internal + External'}), 0x1006: ('ExposureCompensation', ), 0x1007: ('SensorTemperature', ), 0x1008: ('LensTemperature', ), 0x100b: ('FocusMode', {0: 'Auto', 1: 'Manual'}), 0x1017: ('RedBalance', ), 0x1018: ('BlueBalance', ), 0x101a: ('SerialNumber', ), 0x1023: ('FlashExposureComp', ), 0x1026: ('ExternalFlashBounce', {0: 'No', 1: 'Yes'}), 0x1027: ('ExternalFlashZoom', ), 0x1028: ('ExternalFlashMode', ), 0x1029: ('Contrast int16u', {0: 'High', 1: 'Normal', 2: 'Low'}), 0x102a: ('SharpnessFactor', ), 0x102b: ('ColorControl', ), 0x102c: ('ValidBits', ), 0x102d: ('CoringFilter', ), 0x102e: ('OlympusImageWidth', ), 0x102f: ('OlympusImageHeight', ), 0x1034: ('CompressionRatio', ), 0x1035: ('PreviewImageValid', {0: 'No', 1: 'Yes'}), 0x1036: ('PreviewImageStart', ), 0x1037: ('PreviewImageLength', ), 0x1039: ('CCDScanMode', {0: 'Interlaced', 1: 'Progressive'}), 0x103a: ('NoiseReduction', {0: 'Off', 1: 'On'}), 0x103b: ('InfinityLensStep', ), 0x103c: ('NearLensStep', ), # TODO - these need extra definitions # http://search.cpan.org/src/EXIFTOOL/Image-ExifTool-6.90/html/TagNames/Olympus.html 0x2010: ('Equipment', ), 0x2020: ('CameraSettings', ), 0x2030: ('RawDevelopment', ), 0x2040: ('ImageProcessing', ), 0x2050: ('FocusInfo', ), 0x3000: ('RawInfo ', ), } # 0x2020 CameraSettings MAKERNOTE_OLYMPUS_TAG_0x2020={ 0x0100: ('PreviewImageValid', {0: 'No', 1: 'Yes'}), 0x0101: ('PreviewImageStart', ), 0x0102: ('PreviewImageLength', ), 0x0200: ('ExposureMode', {1: 'Manual', 2: 'Program', 3: 'Aperture-priority AE', 4: 'Shutter speed priority AE', 5: 'Program-shift'}), 0x0201: ('AELock', {0: 'Off', 1: 'On'}), 0x0202: ('MeteringMode', {2: 'Center Weighted', 3: 'Spot', 5: 'ESP', 261: 'Pattern+AF', 515: 'Spot+Highlight control', 1027: 'Spot+Shadow control'}), 0x0300: ('MacroMode', {0: 'Off', 1: 'On'}), 0x0301: ('FocusMode', {0: 'Single AF', 1: 'Sequential shooting AF', 2: 'Continuous AF', 3: 'Multi AF', 10: 'MF'}), 0x0302: ('FocusProcess', {0: 'AF Not Used', 1: 'AF Used'}), 0x0303: ('AFSearch', {0: 'Not Ready', 1: 'Ready'}), 0x0304: ('AFAreas', ), 0x0401: ('FlashExposureCompensation', ), 0x0500: ('WhiteBalance2', {0: 'Auto', 16: '7500K (Fine Weather with Shade)', 17: '6000K (Cloudy)', 18: '5300K (Fine Weather)', 20: '3000K (Tungsten light)', 21: '3600K (Tungsten light-like)', 33: '6600K (Daylight fluorescent)', 34: '4500K (Neutral white fluorescent)', 35: '4000K (Cool white fluorescent)', 48: '3600K (Tungsten light-like)', 256: 'Custom WB 1', 257: 'Custom WB 2', 258: 'Custom WB 3', 259: 'Custom WB 4', 512: 'Custom WB 5400K', 513: 'Custom WB 2900K', 514: 'Custom WB 8000K', }), 0x0501: ('WhiteBalanceTemperature', ), 0x0502: ('WhiteBalanceBracket', ), 0x0503: ('CustomSaturation', ), # (3 numbers: 1. CS Value, 2. Min, 3. Max) 0x0504: ('ModifiedSaturation', {0: 'Off', 1: 'CM1 (Red Enhance)', 2: 'CM2 (Green Enhance)', 3: 'CM3 (Blue Enhance)', 4: 'CM4 (Skin Tones)'}), 0x0505: ('ContrastSetting', ), # (3 numbers: 1. Contrast, 2. Min, 3. Max) 0x0506: ('SharpnessSetting', ), # (3 numbers: 1. Sharpness, 2. Min, 3. Max) 0x0507: ('ColorSpace', {0: 'sRGB', 1: 'Adobe RGB', 2: 'Pro Photo RGB'}), 0x0509: ('SceneMode', {0: 'Standard', 6: 'Auto', 7: 'Sport', 8: 'Portrait', 9: 'Landscape+Portrait', 10: 'Landscape', 11: 'Night scene', 13: 'Panorama', 16: 'Landscape+Portrait', 17: 'Night+Portrait', 19: 'Fireworks', 20: 'Sunset', 22: 'Macro', 25: 'Documents', 26: 'Museum', 28: 'Beach&Snow', 30: 'Candle', 35: 'Underwater Wide1', 36: 'Underwater Macro', 39: 'High Key', 40: 'Digital Image Stabilization', 44: 'Underwater Wide2', 45: 'Low Key', 46: 'Children', 48: 'Nature Macro'}), 0x050a: ('NoiseReduction', {0: 'Off', 1: 'Noise Reduction', 2: 'Noise Filter', 3: 'Noise Reduction + Noise Filter', 4: 'Noise Filter (ISO Boost)', 5: 'Noise Reduction + Noise Filter (ISO Boost)'}), 0x050b: ('DistortionCorrection', {0: 'Off', 1: 'On'}), 0x050c: ('ShadingCompensation', {0: 'Off', 1: 'On'}), 0x050d: ('CompressionFactor', ), 0x050f: ('Gradation', {'-1 -1 1': 'Low Key', '0 -1 1': 'Normal', '1 -1 1': 'High Key'}), 0x0520: ('PictureMode', {1: 'Vivid', 2: 'Natural', 3: 'Muted', 256: 'Monotone', 512: 'Sepia'}), 0x0521: ('PictureModeSaturation', ), 0x0522: ('PictureModeHue?', ), 0x0523: ('PictureModeContrast', ), 0x0524: ('PictureModeSharpness', ), 0x0525: ('PictureModeBWFilter', {0: 'n/a', 1: 'Neutral', 2: 'Yellow', 3: 'Orange', 4: 'Red', 5: 'Green'}), 0x0526: ('PictureModeTone', {0: 'n/a', 1: 'Neutral', 2: 'Sepia', 3: 'Blue', 4: 'Purple', 5: 'Green'}), 0x0600: ('Sequence', ), # 2 or 3 numbers: 1. Mode, 2. Shot number, 3. Mode bits 0x0601: ('PanoramaMode', ), # (2 numbers: 1. Mode, 2. Shot number) 0x0603: ('ImageQuality2', {1: 'SQ', 2: 'HQ', 3: 'SHQ', 4: 'RAW'}), 0x0901: ('ManometerReading', ), } MAKERNOTE_CASIO_TAGS={ 0x0001: ('RecordingMode', {1: 'Single Shutter', 2: 'Panorama', 3: 'Night Scene', 4: 'Portrait', 5: 'Landscape'}), 0x0002: ('Quality', {1: 'Economy', 2: 'Normal', 3: 'Fine'}), 0x0003: ('FocusingMode', {2: 'Macro', 3: 'Auto Focus', 4: 'Manual Focus', 5: 'Infinity'}), 0x0004: ('FlashMode', {1: 'Auto', 2: 'On', 3: 'Off', 4: 'Red Eye Reduction'}), 0x0005: ('FlashIntensity', {11: 'Weak', 13: 'Normal', 15: 'Strong'}), 0x0006: ('Object Distance', ), 0x0007: ('WhiteBalance', {1: 'Auto', 2: 'Tungsten', 3: 'Daylight', 4: 'Fluorescent', 5: 'Shade', 129: 'Manual'}), 0x000B: ('Sharpness', {0: 'Normal', 1: 'Soft', 2: 'Hard'}), 0x000C: ('Contrast', {0: 'Normal', 1: 'Low', 2: 'High'}), 0x000D: ('Saturation', {0: 'Normal', 1: 'Low', 2: 'High'}), 0x0014: ('CCDSpeed', {64: 'Normal', 80: 'Normal', 100: 'High', 125: '+1.0', 244: '+3.0', 250: '+2.0'}), } MAKERNOTE_FUJIFILM_TAGS={ 0x0000: ('NoteVersion', make_string), 0x1000: ('Quality', ), 0x1001: ('Sharpness', {1: 'Soft', 2: 'Soft', 3: 'Normal', 4: 'Hard', 5: 'Hard'}), 0x1002: ('WhiteBalance', {0: 'Auto', 256: 'Daylight', 512: 'Cloudy', 768: 'DaylightColor-Fluorescent', 769: 'DaywhiteColor-Fluorescent', 770: 'White-Fluorescent', 1024: 'Incandescent', 3840: 'Custom'}), 0x1003: ('Color', {0: 'Normal', 256: 'High', 512: 'Low'}), 0x1004: ('Tone', {0: 'Normal', 256: 'High', 512: 'Low'}), 0x1010: ('FlashMode', {0: 'Auto', 1: 'On', 2: 'Off', 3: 'Red Eye Reduction'}), 0x1011: ('FlashStrength', ), 0x1020: ('Macro', {0: 'Off', 1: 'On'}), 0x1021: ('FocusMode', {0: 'Auto', 1: 'Manual'}), 0x1030: ('SlowSync', {0: 'Off', 1: 'On'}), 0x1031: ('PictureMode', {0: 'Auto', 1: 'Portrait', 2: 'Landscape', 4: 'Sports', 5: 'Night', 6: 'Program AE', 256: 'Aperture Priority AE', 512: 'Shutter Priority AE', 768: 'Manual Exposure'}), 0x1100: ('MotorOrBracket', {0: 'Off', 1: 'On'}), 0x1300: ('BlurWarning', {0: 'Off', 1: 'On'}), 0x1301: ('FocusWarning', {0: 'Off', 1: 'On'}), 0x1302: ('AEWarning', {0: 'Off', 1: 'On'}), } MAKERNOTE_CANON_TAGS = { 0x0006: ('ImageType', ), 0x0007: ('FirmwareVersion', ), 0x0008: ('ImageNumber', ), 0x0009: ('OwnerName', ), } # this is in element offset, name, optional value dictionary format MAKERNOTE_CANON_TAG_0x001 = { 1: ('Macromode', {1: 'Macro', 2: 'Normal'}), 2: ('SelfTimer', ), 3: ('Quality', {2: 'Normal', 3: 'Fine', 5: 'Superfine'}), 4: ('FlashMode', {0: 'Flash Not Fired', 1: 'Auto', 2: 'On', 3: 'Red-Eye Reduction', 4: 'Slow Synchro', 5: 'Auto + Red-Eye Reduction', 6: 'On + Red-Eye Reduction', 16: 'external flash'}), 5: ('ContinuousDriveMode', {0: 'Single Or Timer', 1: 'Continuous'}), 7: ('FocusMode', {0: 'One-Shot', 1: 'AI Servo', 2: 'AI Focus', 3: 'MF', 4: 'Single', 5: 'Continuous', 6: 'MF'}), 10: ('ImageSize', {0: 'Large', 1: 'Medium', 2: 'Small'}), 11: ('EasyShootingMode', {0: 'Full Auto', 1: 'Manual', 2: 'Landscape', 3: 'Fast Shutter', 4: 'Slow Shutter', 5: 'Night', 6: 'B&W', 7: 'Sepia', 8: 'Portrait', 9: 'Sports', 10: 'Macro/Close-Up', 11: 'Pan Focus'}), 12: ('DigitalZoom', {0: 'None', 1: '2x', 2: '4x'}), 13: ('Contrast', {0xFFFF: 'Low', 0: 'Normal', 1: 'High'}), 14: ('Saturation', {0xFFFF: 'Low', 0: 'Normal', 1: 'High'}), 15: ('Sharpness', {0xFFFF: 'Low', 0: 'Normal', 1: 'High'}), 16: ('ISO', {0: 'See ISOSpeedRatings Tag', 15: 'Auto', 16: '50', 17: '100', 18: '200', 19: '400'}), 17: ('MeteringMode', {3: 'Evaluative', 4: 'Partial', 5: 'Center-weighted'}), 18: ('FocusType', {0: 'Manual', 1: 'Auto', 3: 'Close-Up (Macro)', 8: 'Locked (Pan Mode)'}), 19: ('AFPointSelected', {0x3000: 'None (MF)', 0x3001: 'Auto-Selected', 0x3002: 'Right', 0x3003: 'Center', 0x3004: 'Left'}), 20: ('ExposureMode', {0: 'Easy Shooting', 1: 'Program', 2: 'Tv-priority', 3: 'Av-priority', 4: 'Manual', 5: 'A-DEP'}), 23: ('LongFocalLengthOfLensInFocalUnits', ), 24: ('ShortFocalLengthOfLensInFocalUnits', ), 25: ('FocalUnitsPerMM', ), 28: ('FlashActivity', {0: 'Did Not Fire', 1: 'Fired'}), 29: ('FlashDetails', {14: 'External E-TTL', 13: 'Internal Flash', 11: 'FP Sync Used', 7: '2nd("Rear")-Curtain Sync Used', 4: 'FP Sync Enabled'}), 32: ('FocusMode', {0: 'Single', 1: 'Continuous'}), } MAKERNOTE_CANON_TAG_0x004 = { 7: ('WhiteBalance', {0: 'Auto', 1: 'Sunny', 2: 'Cloudy', 3: 'Tungsten', 4: 'Fluorescent', 5: 'Flash', 6: 'Custom'}), 9: ('SequenceNumber', ), 14: ('AFPointUsed', ), 15: ('FlashBias', {0xFFC0: '-2 EV', 0xFFCC: '-1.67 EV', 0xFFD0: '-1.50 EV', 0xFFD4: '-1.33 EV', 0xFFE0: '-1 EV', 0xFFEC: '-0.67 EV', 0xFFF0: '-0.50 EV', 0xFFF4: '-0.33 EV', 0x0000: '0 EV', 0x000C: '0.33 EV', 0x0010: '0.50 EV', 0x0014: '0.67 EV', 0x0020: '1 EV', 0x002C: '1.33 EV', 0x0030: '1.50 EV', 0x0034: '1.67 EV', 0x0040: '2 EV'}), 19: ('SubjectDistance', ), } # extract multibyte integer in Motorola format (little endian) def s2n_motorola(str): x = 0 for c in str: x = (x << 8) | ord(c) return x # extract multibyte integer in Intel format (big endian) def s2n_intel(str): x = 0 y = 0L for c in str: x = x | (ord(c) << y) y = y + 8 return x # ratio object that eventually will be able to reduce itself to lowest # common denominator for printing def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) class Ratio: def __init__(self, num, den): self.num = num self.den = den def __repr__(self): self.reduce() if self.den == 1: return str(self.num) return '%d/%d' % (self.num, self.den) def reduce(self): div = gcd(self.num, self.den) if div > 1: self.num = self.num / div self.den = self.den / div # for ease of dealing with tags class IFD_Tag: def __init__(self, printable, tag, field_type, values, field_offset, field_length): # printable version of data self.printable = printable # tag ID number self.tag = tag # field type as index into FIELD_TYPES self.field_type = field_type # offset of start of field in bytes from beginning of IFD self.field_offset = field_offset # length of data field in bytes self.field_length = field_length # either a string or array of data items self.values = values def __str__(self): return self.printable def __repr__(self): return '(0x%04X) %s=%s @ %d' % (self.tag, FIELD_TYPES[self.field_type][2], self.printable, self.field_offset) # class that handles an EXIF header class EXIF_header: def __init__(self, file, endian, offset, fake_exif, strict, debug=0): self.file = file self.endian = endian self.offset = offset self.fake_exif = fake_exif self.strict = strict self.debug = debug self.tags = {} # convert slice to integer, based on sign and endian flags # usually this offset is assumed to be relative to the beginning of the # start of the EXIF information. For some cameras that use relative tags, # this offset may be relative to some other starting point. def s2n(self, offset, length, signed=0): self.file.seek(self.offset+offset) slice=self.file.read(length) if self.endian == 'I': val=s2n_intel(slice) else: val=s2n_motorola(slice) # Sign extension ? if signed: msb=1L << (8*length-1) if val & msb: val=val-(msb << 1) return val # convert offset to string def n2s(self, offset, length): s = '' for dummy in range(length): if self.endian == 'I': s = s + chr(offset & 0xFF) else: s = chr(offset & 0xFF) + s offset = offset >> 8 return s # return first IFD def first_IFD(self): return self.s2n(4, 4) # return pointer to next IFD def next_IFD(self, ifd): entries=self.s2n(ifd, 2) return self.s2n(ifd+2+12*entries, 4) # return list of IFDs in header def list_IFDs(self): i=self.first_IFD() a=[] while i: a.append(i) i=self.next_IFD(i) return a # return list of entries in this IFD def dump_IFD(self, ifd, ifd_name, dict=EXIF_TAGS, relative=0, stop_tag='UNDEF'): entries=self.s2n(ifd, 2) for i in range(entries): # entry is index of start of this IFD in the file entry = ifd + 2 + 12 * i tag = self.s2n(entry, 2) # get tag name early to avoid errors, help debug tag_entry = dict.get(tag) if tag_entry: tag_name = tag_entry[0] else: tag_name = 'Tag 0x%04X' % tag # ignore certain tags for faster processing if not (not detailed and tag in IGNORE_TAGS): field_type = self.s2n(entry + 2, 2) # unknown field type if not 0 < field_type < len(FIELD_TYPES): if not self.strict: continue else: raise ValueError('unknown type %d in tag 0x%04X' % (field_type, tag)) typelen = FIELD_TYPES[field_type][0] count = self.s2n(entry + 4, 4) # Adjust for tag id/type/count (2+2+4 bytes) # Now we point at either the data or the 2nd level offset offset = entry + 8 # If the value fits in 4 bytes, it is inlined, else we # need to jump ahead again. if count * typelen > 4: # offset is not the value; it's a pointer to the value # if relative we set things up so s2n will seek to the right # place when it adds self.offset. Note that this 'relative' # is for the Nikon type 3 makernote. Other cameras may use # other relative offsets, which would have to be computed here # slightly differently. if relative: tmp_offset = self.s2n(offset, 4) offset = tmp_offset + ifd - 8 if self.fake_exif: offset = offset + 18 else: offset = self.s2n(offset, 4) field_offset = offset if field_type == 2: # special case: null-terminated ASCII string # XXX investigate # sometimes gets too big to fit in int value if count != 0 and count < (2**31): self.file.seek(self.offset + offset) values = self.file.read(count) #print values # Drop any garbage after a null. values = values.split('\x00', 1)[0] else: values = '' else: values = [] signed = (field_type in [6, 8, 9, 10]) # XXX investigate # some entries get too big to handle could be malformed # file or problem with self.s2n if count < 1000: for dummy in range(count): if field_type in (5, 10): # a ratio value = Ratio(self.s2n(offset, 4, signed), self.s2n(offset + 4, 4, signed)) else: value = self.s2n(offset, typelen, signed) values.append(value) offset = offset + typelen # The test above causes problems with tags that are # supposed to have long values! Fix up one important case. elif tag_name == 'MakerNote' : for dummy in range(count): value = self.s2n(offset, typelen, signed) values.append(value) offset = offset + typelen #else : # print "Warning: dropping large tag:", tag, tag_name # now 'values' is either a string or an array if count == 1 and field_type != 2: printable=str(values[0]) elif count > 50 and len(values) > 20 : printable=str( values[0:20] )[0:-1] + ", ... ]" else: printable=str(values) # compute printable version of values if tag_entry: if len(tag_entry) != 1: # optional 2nd tag element is present if callable(tag_entry[1]): # call mapping function printable = tag_entry[1](values) else: printable = '' for i in values: # use lookup table for this tag printable += tag_entry[1].get(i, repr(i)) self.tags[ifd_name + ' ' + tag_name] = IFD_Tag(printable, tag, field_type, values, field_offset, count * typelen) if self.debug: print ' debug: %s: %s' % (tag_name, repr(self.tags[ifd_name + ' ' + tag_name])) if tag_name == stop_tag: break # extract uncompressed TIFF thumbnail (like pulling teeth) # we take advantage of the pre-existing layout in the thumbnail IFD as # much as possible def extract_TIFF_thumbnail(self, thumb_ifd): entries = self.s2n(thumb_ifd, 2) # this is header plus offset to IFD ... if self.endian == 'M': tiff = 'MM\x00*\x00\x00\x00\x08' else: tiff = 'II*\x00\x08\x00\x00\x00' # ... plus thumbnail IFD data plus a null "next IFD" pointer self.file.seek(self.offset+thumb_ifd) tiff += self.file.read(entries*12+2)+'\x00\x00\x00\x00' # fix up large value offset pointers into data area for i in range(entries): entry = thumb_ifd + 2 + 12 * i tag = self.s2n(entry, 2) field_type = self.s2n(entry+2, 2) typelen = FIELD_TYPES[field_type][0] count = self.s2n(entry+4, 4) oldoff = self.s2n(entry+8, 4) # start of the 4-byte pointer area in entry ptr = i * 12 + 18 # remember strip offsets location if tag == 0x0111: strip_off = ptr strip_len = count * typelen # is it in the data area? if count * typelen > 4: # update offset pointer (nasty "strings are immutable" crap) # should be able to say "tiff[ptr:ptr+4]=newoff" newoff = len(tiff) tiff = tiff[:ptr] + self.n2s(newoff, 4) + tiff[ptr+4:] # remember strip offsets location if tag == 0x0111: strip_off = newoff strip_len = 4 # get original data and store it self.file.seek(self.offset + oldoff) tiff += self.file.read(count * typelen) # add pixel strips and update strip offset info old_offsets = self.tags['Thumbnail StripOffsets'].values old_counts = self.tags['Thumbnail StripByteCounts'].values for i in range(len(old_offsets)): # update offset pointer (more nasty "strings are immutable" crap) offset = self.n2s(len(tiff), strip_len) tiff = tiff[:strip_off] + offset + tiff[strip_off + strip_len:] strip_off += strip_len # add pixel strip to end self.file.seek(self.offset + old_offsets[i]) tiff += self.file.read(old_counts[i]) self.tags['TIFFThumbnail'] = tiff # decode all the camera-specific MakerNote formats # Note is the data that comprises this MakerNote. The MakerNote will # likely have pointers in it that point to other parts of the file. We'll # use self.offset as the starting point for most of those pointers, since # they are relative to the beginning of the file. # # If the MakerNote is in a newer format, it may use relative addressing # within the MakerNote. In that case we'll use relative addresses for the # pointers. # # As an aside: it's not just to be annoying that the manufacturers use # relative offsets. It's so that if the makernote has to be moved by the # picture software all of the offsets don't have to be adjusted. Overall, # this is probably the right strategy for makernotes, though the spec is # ambiguous. (The spec does not appear to imagine that makernotes would # follow EXIF format internally. Once they did, it's ambiguous whether # the offsets should be from the header at the start of all the EXIF info, # or from the header at the start of the makernote.) def decode_maker_note(self): note = self.tags['EXIF MakerNote'] # Some apps use MakerNote tags but do not use a format for which we # have a description, so just do a raw dump for these. #if self.tags.has_key('Image Make'): make = self.tags['Image Make'].printable #else: # make = '' # model = self.tags['Image Model'].printable # unused # Nikon # The maker note usually starts with the word Nikon, followed by the # type of the makernote (1 or 2, as a short). If the word Nikon is # not at the start of the makernote, it's probably type 2, since some # cameras work that way. if 'NIKON' in make: if note.values[0:7] == [78, 105, 107, 111, 110, 0, 1]: if self.debug: print "Looks like a type 1 Nikon MakerNote." self.dump_IFD(note.field_offset+8, 'MakerNote', dict=MAKERNOTE_NIKON_OLDER_TAGS) elif note.values[0:7] == [78, 105, 107, 111, 110, 0, 2]: if self.debug: print "Looks like a labeled type 2 Nikon MakerNote" if note.values[12:14] != [0, 42] and note.values[12:14] != [42L, 0L]: raise ValueError("Missing marker tag '42' in MakerNote.") # skip the Makernote label and the TIFF header self.dump_IFD(note.field_offset+10+8, 'MakerNote', dict=MAKERNOTE_NIKON_NEWER_TAGS, relative=1) else: # E99x or D1 if self.debug: print "Looks like an unlabeled type 2 Nikon MakerNote" self.dump_IFD(note.field_offset, 'MakerNote', dict=MAKERNOTE_NIKON_NEWER_TAGS) return # Olympus if make.startswith('OLYMPUS'): self.dump_IFD(note.field_offset+8, 'MakerNote', dict=MAKERNOTE_OLYMPUS_TAGS) # XXX TODO #for i in (('MakerNote Tag 0x2020', MAKERNOTE_OLYMPUS_TAG_0x2020),): # self.decode_olympus_tag(self.tags[i[0]].values, i[1]) #return # Casio if 'CASIO' in make or 'Casio' in make: self.dump_IFD(note.field_offset, 'MakerNote', dict=MAKERNOTE_CASIO_TAGS) return # Fujifilm if make == 'FUJIFILM': # bug: everything else is "Motorola" endian, but the MakerNote # is "Intel" endian endian = self.endian self.endian = 'I' # bug: IFD offsets are from beginning of MakerNote, not # beginning of file header offset = self.offset self.offset += note.field_offset # process note with bogus values (note is actually at offset 12) self.dump_IFD(12, 'MakerNote', dict=MAKERNOTE_FUJIFILM_TAGS) # reset to correct values self.endian = endian self.offset = offset return # Canon if make == 'Canon': self.dump_IFD(note.field_offset, 'MakerNote', dict=MAKERNOTE_CANON_TAGS) for i in (('MakerNote Tag 0x0001', MAKERNOTE_CANON_TAG_0x001), ('MakerNote Tag 0x0004', MAKERNOTE_CANON_TAG_0x004)): self.canon_decode_tag(self.tags[i[0]].values, i[1]) return # XXX TODO decode Olympus MakerNote tag based on offset within tag def olympus_decode_tag(self, value, dict): pass # decode Canon MakerNote tag based on offset within tag # see http://www.burren.cx/david/canon.html by David Burren def canon_decode_tag(self, value, dict): for i in range(1, len(value)): x=dict.get(i, ('Unknown', )) if self.debug: print i, x name=x[0] if len(x) > 1: val=x[1].get(value[i], 'Unknown') else: val=value[i] # it's not a real IFD Tag but we fake one to make everybody # happy. this will have a "proprietary" type self.tags['MakerNote '+name]=IFD_Tag(str(val), None, 0, None, None, None) # process an image file (expects an open file object) # this is the function that has to deal with all the arbitrary nasty bits # of the EXIF standard def process_file(f, stop_tag='UNDEF', details=True, strict=False, debug=False): # yah it's cheesy... global detailed detailed = details # by default do not fake an EXIF beginning fake_exif = 0 # determine whether it's a JPEG or TIFF data = f.read(12) if data[0:4] in ['II*\x00', 'MM\x00*']: # it's a TIFF file f.seek(0) endian = f.read(1) f.read(1) offset = 0 elif data[0:2] == '\xFF\xD8': # it's a JPEG file while data[2] == '\xFF' and data[6:10] in ('JFIF', 'JFXX', 'OLYM', 'Phot'): length = ord(data[4])*256+ord(data[5]) f.read(length-8) # fake an EXIF beginning of file data = '\xFF\x00'+f.read(10) fake_exif = 1 if data[2] == '\xFF' and data[6:10] == 'Exif': # detected EXIF header offset = f.tell() endian = f.read(1) else: # no EXIF information return {} else: # file format not recognized return {} # deal with the EXIF info we found if debug: print {'I': 'Intel', 'M': 'Motorola'}[endian], 'format' hdr = EXIF_header(f, endian, offset, fake_exif, strict, debug) ifd_list = hdr.list_IFDs() ctr = 0 for i in ifd_list: if ctr == 0: IFD_name = 'Image' elif ctr == 1: IFD_name = 'Thumbnail' thumb_ifd = i else: IFD_name = 'IFD %d' % ctr if debug: print ' IFD %d (%s) at offset %d:' % (ctr, IFD_name, i) hdr.dump_IFD(i, IFD_name, stop_tag=stop_tag) # EXIF IFD exif_off = hdr.tags.get(IFD_name+' ExifOffset') if exif_off: if debug: print ' EXIF SubIFD at offset %d:' % exif_off.values[0] hdr.dump_IFD(exif_off.values[0], 'EXIF', stop_tag=stop_tag) # Interoperability IFD contained in EXIF IFD intr_off = hdr.tags.get('EXIF SubIFD InteroperabilityOffset') if intr_off: if debug: print ' EXIF Interoperability SubSubIFD at offset %d:' \ % intr_off.values[0] hdr.dump_IFD(intr_off.values[0], 'EXIF Interoperability', dict=INTR_TAGS, stop_tag=stop_tag) # GPS IFD gps_off = hdr.tags.get(IFD_name+' GPSInfo') if gps_off: if debug: print ' GPS SubIFD at offset %d:' % gps_off.values[0] hdr.dump_IFD(gps_off.values[0], 'GPS', dict=GPS_TAGS, stop_tag=stop_tag) ctr += 1 # extract uncompressed TIFF thumbnail thumb = hdr.tags.get('Thumbnail Compression') if thumb and thumb.printable == 'Uncompressed TIFF': hdr.extract_TIFF_thumbnail(thumb_ifd) # JPEG thumbnail (thankfully the JPEG data is stored as a unit) thumb_off = hdr.tags.get('Thumbnail JPEGInterchangeFormat') if thumb_off: f.seek(offset+thumb_off.values[0]) size = hdr.tags['Thumbnail JPEGInterchangeFormatLength'].values[0] hdr.tags['JPEGThumbnail'] = f.read(size) # deal with MakerNote contained in EXIF IFD # (Some apps use MakerNote tags but do not use a format for which we # have a description, do not process these). if 'EXIF MakerNote' in hdr.tags and 'Image Make' in hdr.tags and detailed: hdr.decode_maker_note() # Sometimes in a TIFF file, a JPEG thumbnail is hidden in the MakerNote # since it's not allowed in a uncompressed TIFF IFD if 'JPEGThumbnail' not in hdr.tags: thumb_off=hdr.tags.get('MakerNote JPEGThumbnail') if thumb_off: f.seek(offset+thumb_off.values[0]) hdr.tags['JPEGThumbnail']=file.read(thumb_off.field_length) return hdr.tags # show command line usage def usage(exit_status): msg = 'Usage: EXIF.py [OPTIONS] file1 [file2 ...]\n' msg += 'Extract EXIF information from digital camera image files.\n\nOptions:\n' msg += '-q --quick Do not process MakerNotes.\n' msg += '-t TAG --stop-tag TAG Stop processing when this tag is retrieved.\n' msg += '-s --strict Run in strict mode (stop on errors).\n' msg += '-d --debug Run in debug mode (display extra info).\n' print msg sys.exit(exit_status) # library test/debug function (dump given files) if __name__ == '__main__': import sys import getopt # parse command line options/arguments try: opts, args = getopt.getopt(sys.argv[1:], "hqsdt:v", ["help", "quick", "strict", "debug", "stop-tag="]) except getopt.GetoptError: usage(2) if args == []: usage(2) detailed = True stop_tag = 'UNDEF' debug = False strict = False for o, a in opts: if o in ("-h", "--help"): usage(0) if o in ("-q", "--quick"): detailed = False if o in ("-t", "--stop-tag"): stop_tag = a if o in ("-s", "--strict"): strict = True if o in ("-d", "--debug"): debug = True # output info for each file for filename in args: try: file=open(filename, 'rb') except: print "'%s' is unreadable\n"%filename continue print filename + ':' # get the tags data = process_file(file, stop_tag=stop_tag, details=detailed, strict=strict, debug=debug) if not data: print 'No EXIF information found' continue x=data.keys() x.sort() for i in x: if i in ('JPEGThumbnail', 'TIFFThumbnail'): continue try: print ' %s (%s): %s' % \ (i, FIELD_TYPES[data[i].field_type][2], data[i].printable) except: print 'error', i, '"', data[i], '"' if 'JPEGThumbnail' in data: print 'File has JPEG thumbnail' print phatch-0.2.7/phatch/other/__init__.py0000644000000000000000000000142311346363116017432 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. phatch-0.2.7/phatch/other/findsystem.py0000644000000000000000000001271311346363116020064 0ustar rootroot00000000000000##THIS SOFTWARE IS NOT FAULT TOLERANT AND SHOULD NOT BE USED IN ANY ##SITUATION ENDANGERING HUMAN LIFE OR PROPERTY. ## ##TTFQuery License ## ## Copyright (c) 2003, Michael C. Fletcher and Contributors ## All rights reserved. ## ## Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions ## are met: ## ## Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## ## Redistributions in binary form must reproduce the above ## copyright notice, this list of conditions and the following ## disclaimer in the documentation and/or other materials ## provided with the distribution. ## ## The name of Michael C. Fletcher, or the name of any Contributor, ## may not be used to endorse or promote products derived from this ## software without specific prior written permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ## FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ## COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, ## INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ## (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ## SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ## STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED ## OF THE POSSIBILITY OF SUCH DAMAGE. """Find system fonts (only works on Linux and Win32 at the moment)""" import sys, os, glob, re def win32FontDirectory( ): """Get User-specific font directory on Win32""" try: import _winreg except ImportError: return os.path.join(os.environ['WINDIR'], 'Fonts') else: k = _winreg.OpenKey( _winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" ) try: # should check that k is valid? How? return _winreg.QueryValueEx( k, "Fonts" )[0] finally: _winreg.CloseKey( k ) def win32InstalledFonts( fontDirectory = None ): """Get list of explicitly *installed* font names""" import _winreg if fontDirectory is None: fontDirectory = win32FontDirectory() k = None items = {} for keyName in ( r"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", r"SOFTWARE\Microsoft\Windows\CurrentVersion\Fonts", ): try: k = _winreg.OpenKey( _winreg.HKEY_LOCAL_MACHINE, keyName ) except OSError, err: pass if not k: # couldn't open either WinNT or Win98 key??? return glob.glob( os.path.join(fontDirectory, '*.ttf')) try: # should check that k is valid? How? for index in range( _winreg.QueryInfoKey(k)[1]): key,value,_ = _winreg.EnumValue( k, index ) if not os.path.dirname( value ): value = os.path.join( fontDirectory, value ) value = os.path.abspath( value ).lower() if value[-4:] == '.ttf': items[ value ] = 1 return items.keys() finally: _winreg.CloseKey( k ) def linuxFontDirectories( ): """Get system font directories on Linux/Unix Uses /usr/sbin/chkfontpath to get the list of system-font directories, note that many of these will *not* be truetype font directories. If /usr/sbin/chkfontpath isn't available, uses returns a set of common Linux/Unix paths """ executable = '/usr/sbin/chkfontpath' if os.path.isfile( executable ): data = os.popen( executable ).readlines() match = re.compile( '\d+: (.+)') set = [] for line in data: result = match.match( line ) if result: set.append(result.group(1)) return set else: directories = [ # what seems to be the standard installation point "/usr/X11R6/lib/X11/fonts/TTF/", # common application, not really useful "/usr/lib/openoffice/share/fonts/truetype/", # documented as a good place to install new fonts... "/usr/share/fonts", "/usr/local/share/fonts", # seems to be where fonts are installed for an individual user? "~/.fonts", # okay, now the OS X variants... "~/Library/Fonts/", "/Library/Fonts/", "/Network/Library/Fonts/", "/System/Library/Fonts/", "System Folder:Fonts:", ] set = [] def add( arg, directory, files): set.append( directory ) for directory in directories: directory = directory = os.path.expanduser( os.path.expandvars(directory)) try: if os.path.isdir( directory ): os.path.walk(directory, add, ()) except (IOError, OSError, TypeError, ValueError): pass return set def findFonts(paths = None): """Find fonts in paths, or the system paths if not given XXX Doesn't current support OS-X system paths """ files = {} if paths is None: if sys.platform == 'win32': fontDirectory = win32FontDirectory() paths = [ fontDirectory, ] # now get all installed fonts directly... for f in win32InstalledFonts(fontDirectory): # yes, it's inefficient, the interface # for win32InstalledFonts really should be # using sets, not lists files[f] = 1 else: paths = linuxFontDirectories() elif isinstance( paths, (str, unicode)): paths = [paths] for path in paths: for file in glob.glob( os.path.join(path, '*.ttf')): files[os.path.abspath(file)] = 1 return files.keys() if __name__ == "__main__": print 'linux font directories', linuxFontDirectories() print 'font names', findFonts() phatch-0.2.7/phatch/other/pep8.py0000644000000000000000000012467511346363116016566 0ustar rootroot00000000000000#!/usr/bin/python # pep8.py - Check Python source code formatting, according to PEP 8 # Copyright (C) 2006 Johann C. Rocholl # # Permission is hereby granted, free of charge, to any person # obtaining a copy of this software and associated documentation files # (the "Software"), to deal in the Software without restriction, # including without limitation the rights to use, copy, modify, merge, # publish, distribute, sublicense, and/or sell copies of the Software, # and to permit persons to whom the Software is furnished to do so, # subject to the following conditions: # # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. """ Check Python source code formatting, according to PEP 8: http://www.python.org/dev/peps/pep-0008/ For usage and a list of options, try this: $ python pep8.py -h This program and its regression test suite live here: http://github.com/jcrocholl/pep8 Groups of errors and warnings: E errors W warnings 100 indentation 200 whitespace 300 blank lines 400 imports 500 line length 600 deprecation 700 statements You can add checks to this program by writing plugins. Each plugin is a simple function that is called for each line of source code, either physical or logical. Physical line: - Raw line of text from the input file. Logical line: - Multi-line statements converted to a single line. - Stripped left and right. - Contents of strings replaced with 'xxx' of same length. - Comments removed. The check function requests physical or logical lines by the name of the first argument: def maximum_line_length(physical_line) def extraneous_whitespace(logical_line) def blank_lines(logical_line, blank_lines, indent_level, line_number) The last example above demonstrates how check plugins can request additional information with extra arguments. All attributes of the Checker object are available. Some examples: lines: a list of the raw lines from the input file tokens: the tokens that contribute to this logical line line_number: line number in the input file blank_lines: blank lines before this one indent_char: first indentation character in this file (' ' or '\t') indent_level: indentation (with tabs expanded to multiples of 8) previous_indent_level: indentation on previous line previous_logical: previous logical line The docstring of each check function shall be the relevant part of text from PEP 8. It is printed if the user enables --show-pep8. Several docstrings contain examples directly from the PEP 8 document. Okay: spam(ham[1], {eggs: 2}) E201: spam( ham[1], {eggs: 2}) These examples are verified automatically when pep8.py is run with the --doctest option. You can add examples for your own check functions. The format is simple: "Okay" or error/warning code followed by colon and space, the rest of the line is example source code. If you put 'r' before the docstring, you can use \n for newline, \t for tab and \s for space. """ __version__ = '0.5.1dev' import os import sys import re import time import inspect import tokenize from optparse import OptionParser from keyword import iskeyword from fnmatch import fnmatch DEFAULT_EXCLUDE = '.svn,CVS,.bzr,.hg,.git' DEFAULT_IGNORE = 'E24' INDENT_REGEX = re.compile(r'([ \t]*)') RAISE_COMMA_REGEX = re.compile(r'raise\s+\w+\s*(,)') SELFTEST_REGEX = re.compile(r'(Okay|[EW]\d{3}):\s(.*)') ERRORCODE_REGEX = re.compile(r'[EW]\d{3}') E301NOT_REGEX = re.compile(r'class |def |u?r?["\']') WHITESPACE = ' \t' BINARY_OPERATORS = ['**=', '*=', '+=', '-=', '!=', '<>', '%=', '^=', '&=', '|=', '==', '/=', '//=', '>=', '<=', '>>=', '<<=', '%', '^', '&', '|', '=', '/', '//', '>', '<', '>>', '<<'] UNARY_OPERATORS = ['**', '*', '+', '-'] OPERATORS = BINARY_OPERATORS + UNARY_OPERATORS options = None args = None ############################################################################## # Plugins (check functions) for physical lines ############################################################################## def tabs_or_spaces(physical_line, indent_char): r""" Never mix tabs and spaces. The most popular way of indenting Python is with spaces only. The second-most popular way is with tabs only. Code indented with a mixture of tabs and spaces should be converted to using spaces exclusively. When invoking the Python command line interpreter with the -t option, it issues warnings about code that illegally mixes tabs and spaces. When using -tt these warnings become errors. These options are highly recommended! Okay: if a == 0:\n a = 1\n b = 1 E101: if a == 0:\n a = 1\n\tb = 1 """ indent = INDENT_REGEX.match(physical_line).group(1) for offset, char in enumerate(indent): if char != indent_char: return offset, "E101 indentation contains mixed spaces and tabs" def tabs_obsolete(physical_line): r""" For new projects, spaces-only are strongly recommended over tabs. Most editors have features that make this easy to do. Okay: if True:\n return W191: if True:\n\treturn """ indent = INDENT_REGEX.match(physical_line).group(1) if indent.count('\t'): return indent.index('\t'), "W191 indentation contains tabs" def trailing_whitespace(physical_line): """ JCR: Trailing whitespace is superfluous. Okay: spam(1) W291: spam(1)\s """ physical_line = physical_line.rstrip('\n') # chr(10), newline physical_line = physical_line.rstrip('\r') # chr(13), carriage return physical_line = physical_line.rstrip('\x0c') # chr(12), form feed, ^L stripped = physical_line.rstrip() if physical_line != stripped: return len(stripped), "W291 trailing whitespace" def trailing_blank_lines(physical_line, lines, line_number): r""" JCR: Trailing blank lines are superfluous. Okay: spam(1) W391: spam(1)\n """ if physical_line.strip() == '' and line_number == len(lines): return 0, "W391 blank line at end of file" def missing_newline(physical_line): """ JCR: The last line should have a newline. """ if physical_line.rstrip() == physical_line: return len(physical_line), "W292 no newline at end of file" def maximum_line_length(physical_line): """ Limit all lines to a maximum of 79 characters. There are still many devices around that are limited to 80 character lines; plus, limiting windows to 80 characters makes it possible to have several windows side-by-side. The default wrapping on such devices looks ugly. Therefore, please limit all lines to a maximum of 79 characters. For flowing long blocks of text (docstrings or comments), limiting the length to 72 characters is recommended. """ length = len(physical_line.rstrip()) if length > 79: return 79, "E501 line too long (%d characters)" % length ############################################################################## # Plugins (check functions) for logical lines ############################################################################## def blank_lines(logical_line, blank_lines, indent_level, line_number, previous_logical, blank_lines_before_comment): r""" Separate top-level function and class definitions with two blank lines. Method definitions inside a class are separated by a single blank line. Extra blank lines may be used (sparingly) to separate groups of related functions. Blank lines may be omitted between a bunch of related one-liners (e.g. a set of dummy implementations). Use blank lines in functions, sparingly, to indicate logical sections. Okay: def a():\n pass\n\n\ndef b():\n pass Okay: def a():\n pass\n\n\n# Foo\n# Bar\n\ndef b():\n pass E301: class Foo:\n b = 0\n def bar():\n pass E302: def a():\n pass\n\ndef b(n):\n pass E303: def a():\n pass\n\n\n\ndef b(n):\n pass E303: def a():\n\n\n\n pass E304: @decorator\n\ndef a():\n pass """ if line_number == 1: return # Don't expect blank lines before the first line max_blank_lines = max(blank_lines, blank_lines_before_comment) if previous_logical.startswith('@'): if max_blank_lines: return 0, "E304 blank lines found after function decorator" elif max_blank_lines > 2 or (indent_level and max_blank_lines == 2): return 0, "E303 too many blank lines (%d)" % max_blank_lines elif (logical_line.startswith('def ') or logical_line.startswith('class ') or logical_line.startswith('@')): if indent_level: if not (max_blank_lines or E301NOT_REGEX.match(previous_logical)): return 0, "E301 expected 1 blank line, found 0" elif max_blank_lines != 2: return 0, "E302 expected 2 blank lines, found %d" % max_blank_lines def extraneous_whitespace(logical_line): """ Avoid extraneous whitespace in the following situations: - Immediately inside parentheses, brackets or braces. - Immediately before a comma, semicolon, or colon. Okay: spam(ham[1], {eggs: 2}) E201: spam( ham[1], {eggs: 2}) E201: spam(ham[ 1], {eggs: 2}) E201: spam(ham[1], { eggs: 2}) E202: spam(ham[1], {eggs: 2} ) E202: spam(ham[1 ], {eggs: 2}) E202: spam(ham[1], {eggs: 2 }) E203: if x == 4: print x, y; x, y = y , x E203: if x == 4: print x, y ; x, y = y, x E203: if x == 4 : print x, y; x, y = y, x """ line = logical_line for char in '([{': found = line.find(char + ' ') if found > -1: return found + 1, "E201 whitespace after '%s'" % char for char in '}])': found = line.find(' ' + char) if found > -1 and line[found - 1] != ',': return found, "E202 whitespace before '%s'" % char for char in ',;:': found = line.find(' ' + char) if found > -1: return found, "E203 whitespace before '%s'" % char def missing_whitespace(logical_line): """ JCR: Each comma, semicolon or colon should be followed by whitespace. Okay: [a, b] Okay: (3,) Okay: a[1:4] Okay: a[:4] Okay: a[1:] Okay: a[1:4:2] E231: ['a','b'] E231: foo(bar,baz) """ line = logical_line for index in range(len(line) - 1): char = line[index] if char in ',;:' and line[index + 1] not in WHITESPACE: before = line[:index] if char == ':' and before.count('[') > before.count(']'): continue # Slice syntax, no space required if char == ',' and line[index + 1] == ')': continue # Allow tuple with only one element: (3,) return index, "E231 missing whitespace after '%s'" % char def indentation(logical_line, previous_logical, indent_char, indent_level, previous_indent_level): r""" Use 4 spaces per indentation level. For really old code that you don't want to mess up, you can continue to use 8-space tabs. Okay: a = 1 Okay: if a == 0:\n a = 1 E111: a = 1 Okay: for item in items:\n pass E112: for item in items:\npass Okay: a = 1\nb = 2 E113: a = 1\n b = 2 """ if indent_char == ' ' and indent_level % 4: return 0, "E111 indentation is not a multiple of four" indent_expect = previous_logical.endswith(':') if indent_expect and indent_level <= previous_indent_level: return 0, "E112 expected an indented block" if indent_level > previous_indent_level and not indent_expect: return 0, "E113 unexpected indentation" def whitespace_before_parameters(logical_line, tokens): """ Avoid extraneous whitespace in the following situations: - Immediately before the open parenthesis that starts the argument list of a function call. - Immediately before the open parenthesis that starts an indexing or slicing. Okay: spam(1) E211: spam (1) Okay: dict['key'] = list[index] E211: dict ['key'] = list[index] E211: dict['key'] = list [index] """ prev_type = tokens[0][0] prev_text = tokens[0][1] prev_end = tokens[0][3] for index in range(1, len(tokens)): token_type, text, start, end, line = tokens[index] if (token_type == tokenize.OP and text in '([' and start != prev_end and prev_type == tokenize.NAME and (index < 2 or tokens[index - 2][1] != 'class') and (not iskeyword(prev_text))): return prev_end, "E211 whitespace before '%s'" % text prev_type = token_type prev_text = text prev_end = end def whitespace_around_operator(logical_line): """ Avoid extraneous whitespace in the following situations: - More than one space around an assignment (or other) operator to align it with another. Okay: a = 12 + 3 E221: a = 4 + 5 E222: a = 4 + 5 E223: a = 4\t+ 5 E224: a = 4 +\t5 """ line = logical_line for operator in OPERATORS: found = line.find(' ' + operator) if found > -1: return found, "E221 multiple spaces before operator" found = line.find(operator + ' ') if found > -1: return found, "E222 multiple spaces after operator" found = line.find('\t' + operator) if found > -1: return found, "E223 tab before operator" found = line.find(operator + '\t') if found > -1: return found, "E224 tab after operator" def missing_whitespace_around_operator(logical_line, tokens): r""" - Always surround these binary operators with a single space on either side: assignment (=), augmented assignment (+=, -= etc.), comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), Booleans (and, or, not). - Use spaces around arithmetic operators. Okay: i = i + 1 Okay: submitted += 1 Okay: x = x * 2 - 1 Okay: hypot2 = x * x + y * y Okay: c = (a + b) * (a - b) Okay: foo(bar, key='word', *args, **kwargs) Okay: baz(**kwargs) Okay: negative = -1 Okay: spam(-1) Okay: alpha[:-i] Okay: if not -5 < x < +5:\n pass Okay: lambda *args, **kw: (args, kw) E225: i=i+1 E225: submitted +=1 E225: x = x*2 - 1 E225: hypot2 = x*x + y*y E225: c = (a+b) * (a-b) E225: c = alpha -4 E225: z = x **y """ parens = 0 need_space = False prev_type = tokenize.OP prev_text = prev_end = None for token_type, text, start, end, line in tokens: if token_type in (tokenize.NL, tokenize.NEWLINE, tokenize.ERRORTOKEN): # ERRORTOKEN is triggered by backticks in Python 3000 continue if text in ('(', 'lambda'): parens += 1 elif text == ')': parens -= 1 if need_space: if start == prev_end: return prev_end, "E225 missing whitespace around operator" need_space = False elif token_type == tokenize.OP: if text == '=' and parens: # Allow keyword args or defaults: foo(bar=None). pass elif text in BINARY_OPERATORS: need_space = True elif text in UNARY_OPERATORS: if ((prev_type != tokenize.OP or prev_text in '}])') and not (prev_type == tokenize.NAME and iskeyword(prev_text))): # Allow unary operators: -123, -x, +1. # Allow argument unpacking: foo(*args, **kwargs). need_space = True if need_space and start == prev_end: return prev_end, "E225 missing whitespace around operator" prev_type = token_type prev_text = text prev_end = end def whitespace_around_comma(logical_line): """ Avoid extraneous whitespace in the following situations: - More than one space around an assignment (or other) operator to align it with another. JCR: This should also be applied around comma etc. Note: these checks are disabled by default Okay: a = (1, 2) E241: a = (1, 2) E242: a = (1,\t2) """ line = logical_line for separator in ',;:': found = line.find(separator + ' ') if found > -1: return found + 1, "E241 multiple spaces after '%s'" % separator found = line.find(separator + '\t') if found > -1: return found + 1, "E242 tab after '%s'" % separator def whitespace_around_named_parameter_equals(logical_line): """ Don't use spaces around the '=' sign when used to indicate a keyword argument or a default parameter value. Okay: def complex(real, imag=0.0): Okay: return magic(r=real, i=imag) Okay: boolean(a == b) Okay: boolean(a != b) Okay: boolean(a <= b) Okay: boolean(a >= b) E251: def complex(real, imag = 0.0): E251: return magic(r = real, i = imag) """ parens = 0 window = ' ' equal_ok = ['==', '!=', '<=', '>='] for pos, c in enumerate(logical_line): window = window[1:] + c if parens: if window[0] in WHITESPACE and window[1] == '=': if window[1:] not in equal_ok: issue = "E251 no spaces around keyword / parameter equals" return pos, issue if window[2] in WHITESPACE and window[1] == '=': if window[:2] not in equal_ok: issue = "E251 no spaces around keyword / parameter equals" return pos, issue if c == '(': parens += 1 elif c == ')': parens -= 1 def whitespace_before_inline_comment(logical_line, tokens): """ Separate inline comments by at least two spaces. An inline comment is a comment on the same line as a statement. Inline comments should be separated by at least two spaces from the statement. They should start with a # and a single space. Okay: x = x + 1 # Increment x Okay: x = x + 1 # Increment x E261: x = x + 1 # Increment x E262: x = x + 1 #Increment x E262: x = x + 1 # Increment x """ prev_end = (0, 0) for token_type, text, start, end, line in tokens: if token_type == tokenize.NL: continue if token_type == tokenize.COMMENT: if not line[:start[1]].strip(): continue if prev_end[0] == start[0] and start[1] < prev_end[1] + 2: return (prev_end, "E261 at least two spaces before inline comment") if (len(text) > 1 and text.startswith('# ') or not text.startswith('# ')): return start, "E262 inline comment should start with '# '" else: prev_end = end def imports_on_separate_lines(logical_line): r""" Imports should usually be on separate lines. Okay: import os\nimport sys E401: import sys, os Okay: from subprocess import Popen, PIPE Okay: from myclas import MyClass Okay: from foo.bar.yourclass import YourClass Okay: import myclass Okay: import foo.bar.yourclass """ line = logical_line if line.startswith('import '): found = line.find(',') if found > -1: return found, "E401 multiple imports on one line" def compound_statements(logical_line): r""" Compound statements (multiple statements on the same line) are generally discouraged. While sometimes it's okay to put an if/for/while with a small body on the same line, never do this for multi-clause statements. Also avoid folding such long lines! Okay: if foo == 'blah':\n do_blah_thing() Okay: do_one() Okay: do_two() Okay: do_three() E701: if foo == 'blah': do_blah_thing() E701: for x in lst: total += x E701: while t < 10: t = delay() E701: if foo == 'blah': do_blah_thing() E701: else: do_non_blah_thing() E701: try: something() E701: finally: cleanup() E701: if foo == 'blah': one(); two(); three() E702: do_one(); do_two(); do_three() """ line = logical_line found = line.find(':') if -1 < found < len(line) - 1: before = line[:found] if (before.count('{') <= before.count('}') and # {'a': 1} (dict) before.count('[') <= before.count(']') and # [1:2] (slice) not re.search(r'\blambda\b', before)): # lambda x: x return found, "E701 multiple statements on one line (colon)" found = line.find(';') if -1 < found: return found, "E702 multiple statements on one line (semicolon)" def python_3000_has_key(logical_line): """ The {}.has_key() method will be removed in the future version of Python. Use the 'in' operation instead, like: d = {"a": 1, "b": 2} if "b" in d: print d["b"] """ pos = logical_line.find('.has_key(') if pos > -1: return pos, "W601 .has_key() is deprecated, use 'in'" def python_3000_raise_comma(logical_line): """ When raising an exception, use "raise ValueError('message')" instead of the older form "raise ValueError, 'message'". The paren-using form is preferred because when the exception arguments are long or include string formatting, you don't need to use line continuation characters thanks to the containing parentheses. The older form will be removed in Python 3000. """ match = RAISE_COMMA_REGEX.match(logical_line) if match: return match.start(1), "W602 deprecated form of raising exception" def python_3000_not_equal(logical_line): """ != can also be written <>, but this is an obsolete usage kept for backwards compatibility only. New code should always use !=. The older syntax is removed in Python 3000. """ pos = logical_line.find('<>') if pos > -1: return pos, "W603 '<>' is deprecated, use '!='" def python_3000_backticks(logical_line): """ Backticks are removed in Python 3000. Use repr() instead. """ pos = logical_line.find('`') if pos > -1: return pos, "W604 backticks are deprecated, use 'repr()'" ############################################################################## # Helper functions ############################################################################## def expand_indent(line): """ Return the amount of indentation. Tabs are expanded to the next multiple of 8. >>> expand_indent(' ') 4 >>> expand_indent('\\t') 8 >>> expand_indent(' \\t') 8 >>> expand_indent(' \\t') 8 >>> expand_indent(' \\t') 16 """ result = 0 for char in line: if char == '\t': result = result // 8 * 8 + 8 elif char == ' ': result += 1 else: break return result def mute_string(text): """ Replace contents with 'xxx' to prevent syntax matching. >>> mute_string('"abc"') '"xxx"' >>> mute_string("'''abc'''") "'''xxx'''" >>> mute_string("r'abc'") "r'xxx'" """ start = 1 end = len(text) - 1 # String modifiers (e.g. u or r) if text.endswith('"'): start += text.index('"') elif text.endswith("'"): start += text.index("'") # Triple quotes if text.endswith('"""') or text.endswith("'''"): start += 2 end -= 2 return text[:start] + 'x' * (end - start) + text[end:] def message(text): """Print a message.""" # print >> sys.stderr, options.prog + ': ' + text # print >> sys.stderr, text print(text) ############################################################################## # Framework to run all checks ############################################################################## def find_checks(argument_name): """ Find all globally visible functions where the first argument name starts with argument_name. """ checks = [] for name, function in globals().items(): if not inspect.isfunction(function): continue args = inspect.getargspec(function)[0] if args and args[0].startswith(argument_name): codes = ERRORCODE_REGEX.findall(inspect.getdoc(function) or '') for code in codes or ['']: if not code or not ignore_code(code): checks.append((name, function, args)) break checks.sort() return checks class Checker(object): """ Load a Python source file, tokenize it, check coding style. """ def __init__(self, filename): if filename: self.filename = filename try: self.lines = open(filename).readlines() except UnicodeDecodeError: # Errors may occur with non-UTF8 files in Python 3000 self.lines = open(filename, errors='replace').readlines() else: self.filename = 'stdin' self.lines = [] options.counters['physical lines'] = \ options.counters.get('physical lines', 0) + len(self.lines) def readline(self): """ Get the next line from the input buffer. """ self.line_number += 1 if self.line_number > len(self.lines): return '' return self.lines[self.line_number - 1] def readline_check_physical(self): """ Check and return the next physical line. This method can be used to feed tokenize.generate_tokens. """ line = self.readline() if line: self.check_physical(line) return line def run_check(self, check, argument_names): """ Run a check plugin. """ arguments = [] for name in argument_names: arguments.append(getattr(self, name)) return check(*arguments) def check_physical(self, line): """ Run all physical checks on a raw input line. """ self.physical_line = line if self.indent_char is None and len(line) and line[0] in ' \t': self.indent_char = line[0] for name, check, argument_names in options.physical_checks: result = self.run_check(check, argument_names) if result is not None: offset, text = result self.report_error(self.line_number, offset, text, check) def build_tokens_line(self): """ Build a logical line from tokens. """ self.mapping = [] logical = [] length = 0 previous = None for token in self.tokens: token_type, text = token[0:2] if token_type in (tokenize.COMMENT, tokenize.NL, tokenize.INDENT, tokenize.DEDENT, tokenize.NEWLINE): continue if token_type == tokenize.STRING: text = mute_string(text) if previous: end_line, end = previous[3] start_line, start = token[2] if end_line != start_line: # different row prev_text = self.lines[end_line - 1][end - 1] if prev_text == ',' or (prev_text not in '{[(' and text not in '}])'): logical.append(' ') length += 1 elif end != start: # different column fill = self.lines[end_line - 1][end:start] logical.append(fill) length += len(fill) self.mapping.append((length, token)) logical.append(text) length += len(text) previous = token self.logical_line = ''.join(logical) assert self.logical_line.lstrip() == self.logical_line assert self.logical_line.rstrip() == self.logical_line def check_logical(self): """ Build a line from tokens and run all logical checks on it. """ options.counters['logical lines'] = \ options.counters.get('logical lines', 0) + 1 self.build_tokens_line() first_line = self.lines[self.mapping[0][1][2][0] - 1] indent = first_line[:self.mapping[0][1][2][1]] self.previous_indent_level = self.indent_level self.indent_level = expand_indent(indent) if options.verbose >= 2: print(self.logical_line[:80].rstrip()) for name, check, argument_names in options.logical_checks: if options.verbose >= 3: print(' ', name) result = self.run_check(check, argument_names) if result is not None: offset, text = result if isinstance(offset, tuple): original_number, original_offset = offset else: for token_offset, token in self.mapping: if offset >= token_offset: original_number = token[2][0] original_offset = (token[2][1] + offset - token_offset) self.report_error(original_number, original_offset, text, check) self.previous_logical = self.logical_line def check_all(self): """ Run all checks on the input file. """ self.file_errors = 0 self.line_number = 0 self.indent_char = None self.indent_level = 0 self.previous_logical = '' self.blank_lines = 0 self.blank_lines_before_comment = 0 self.tokens = [] parens = 0 for token in tokenize.generate_tokens(self.readline_check_physical): # print(tokenize.tok_name[token[0]], repr(token)) self.tokens.append(token) token_type, text = token[0:2] if token_type == tokenize.OP and text in '([{': parens += 1 if token_type == tokenize.OP and text in '}])': parens -= 1 if token_type == tokenize.NEWLINE and not parens: self.check_logical() self.blank_lines = 0 self.blank_lines_before_comment = 0 self.tokens = [] if token_type == tokenize.NL and not parens: if len(self.tokens) <= 1: # The physical line contains only this token. self.blank_lines += 1 self.tokens = [] if token_type == tokenize.COMMENT: source_line = token[4] token_start = token[2][1] if source_line[:token_start].strip() == '': self.blank_lines_before_comment = max(self.blank_lines, self.blank_lines_before_comment) self.blank_lines = 0 if text.endswith('\n') and not parens: # The comment also ends a physical line. This works around # Python < 2.6 behaviour, which does not generate NL after # a comment which is on a line by itself. self.tokens = [] return self.file_errors def report_error(self, line_number, offset, text, check): """ Report an error, according to options. """ if options.quiet == 1 and not self.file_errors: message(self.filename) self.file_errors += 1 code = text[:4] options.counters[code] = options.counters.get(code, 0) + 1 options.messages[code] = text[5:] if options.quiet: return if options.testsuite: basename = os.path.basename(self.filename) if basename[:4] != code: return # Don't care about other errors or warnings if 'not' not in basename: return # Don't print the expected error message if ignore_code(code): return if options.counters[code] == 1 or options.repeat: message("%s:%s:%d: %s" % (self.filename, line_number, offset + 1, text)) if options.show_source: line = self.lines[line_number - 1] message(line.rstrip()) message(' ' * offset + '^') if options.show_pep8: message(check.__doc__.lstrip('\n').rstrip()) def input_file(filename): """ Run all checks on a Python source file. """ if excluded(filename): return {} if options.verbose: message('checking ' + filename) files_counter_before = options.counters.get('files', 0) if options.testsuite: # Keep showing errors for multiple tests options.counters = {} options.counters['files'] = files_counter_before + 1 errors = Checker(filename).check_all() if options.testsuite: # Check if the expected error was found basename = os.path.basename(filename) code = basename[:4] count = options.counters.get(code, 0) if count == 0 and 'not' not in basename: message("%s: error %s not found" % (filename, code)) def input_dir(dirname): """ Check all Python source files in this directory and all subdirectories. """ dirname = dirname.rstrip('/') if excluded(dirname): return for root, dirs, files in os.walk(dirname): if options.verbose: message('directory ' + root) options.counters['directories'] = \ options.counters.get('directories', 0) + 1 dirs.sort() for subdir in dirs: if excluded(subdir): dirs.remove(subdir) files.sort() for filename in files: if filename_match(filename): input_file(os.path.join(root, filename)) def excluded(filename): """ Check if options.exclude contains a pattern that matches filename. """ basename = os.path.basename(filename) for pattern in options.exclude: if fnmatch(basename, pattern): # print basename, 'excluded because it matches', pattern return True def filename_match(filename): """ Check if options.filename contains a pattern that matches filename. If options.filename is unspecified, this always returns True. """ if not options.filename: return True for pattern in options.filename: if fnmatch(filename, pattern): return True def ignore_code(code): """ Check if options.ignore contains a prefix of the error code. If options.select contains a prefix of the error code, do not ignore it. """ for select in options.select: if code.startswith(select): return False for ignore in options.ignore: if code.startswith(ignore): return True def get_error_statistics(): """Get error statistics.""" return get_statistics("E") def get_warning_statistics(): """Get warning statistics.""" return get_statistics("W") def get_statistics(prefix=''): """ Get statistics for message codes that start with the prefix. prefix='' matches all errors and warnings prefix='E' matches all errors prefix='W' matches all warnings prefix='E4' matches all errors that have to do with imports """ stats = [] keys = list(options.messages.keys()) keys.sort() for key in keys: if key.startswith(prefix): stats.append('%-7s %s %s' % (options.counters[key], key, options.messages[key])) return stats def get_count(prefix=''): """Return the total count of errors and warnings.""" keys = list(options.messages.keys()) count = 0 for key in keys: if key.startswith(prefix): count += options.counters[key] return count def print_statistics(prefix=''): """Print overall statistics (number of errors and warnings).""" for line in get_statistics(prefix): print(line) def print_benchmark(elapsed): """ Print benchmark numbers. """ print('%-7.2f %s' % (elapsed, 'seconds elapsed')) keys = ['directories', 'files', 'logical lines', 'physical lines'] for key in keys: if key in options.counters: print('%-7d %s per second (%d total)' % ( options.counters[key] / elapsed, key, options.counters[key])) def selftest(): """ Test all check functions with test cases in docstrings. """ count_passed = 0 count_failed = 0 checks = options.physical_checks + options.logical_checks for name, check, argument_names in checks: for line in check.__doc__.splitlines(): line = line.lstrip() match = SELFTEST_REGEX.match(line) if match is None: continue code, source = match.groups() checker = Checker(None) for part in source.split(r'\n'): part = part.replace(r'\t', '\t') part = part.replace(r'\s', ' ') checker.lines.append(part + '\n') options.quiet = 2 options.counters = {} checker.check_all() error = None if code == 'Okay': if len(options.counters) > 1: codes = [key for key in options.counters.keys() if key != 'logical lines'] error = "incorrectly found %s" % ', '.join(codes) elif options.counters.get(code, 0) == 0: error = "failed to find %s" % code if not error: count_passed += 1 else: count_failed += 1 if len(checker.lines) == 1: print("pep8.py: %s: %s" % (error, checker.lines[0].rstrip())) else: print("pep8.py: %s:" % error) for line in checker.lines: print(line.rstrip()) if options.verbose: print("%d passed and %d failed." % (count_passed, count_failed)) if count_failed: print("Test failed.") else: print("Test passed.") def process_options(arglist=None): """ Process options passed either via arglist or via command line args. """ global options, args parser = OptionParser(version=__version__, usage="%prog [options] input ...") parser.add_option('-v', '--verbose', default=0, action='count', help="print status messages, or debug with -vv") parser.add_option('-q', '--quiet', default=0, action='count', help="report only file names, or nothing with -qq") parser.add_option('-r', '--repeat', action='store_true', help="show all occurrences of the same error") parser.add_option('--exclude', metavar='patterns', default=DEFAULT_EXCLUDE, help="exclude files or directories which match these " "comma separated patterns (default: %s)" % DEFAULT_EXCLUDE) parser.add_option('--filename', metavar='patterns', default='*.py', help="when parsing directories, only check filenames " "matching these comma separated patterns (default: " "*.py)") parser.add_option('--select', metavar='errors', default='', help="select errors and warnings (e.g. E,W6)") parser.add_option('--ignore', metavar='errors', default='', help="skip errors and warnings (e.g. E4,W)") parser.add_option('--show-source', action='store_true', help="show source code for each error") parser.add_option('--show-pep8', action='store_true', help="show text of PEP 8 for each error") parser.add_option('--statistics', action='store_true', help="count errors and warnings") parser.add_option('--count', action='store_true', help="print total number of errors and warnings " "to standard error and set exit code to 1 if " "total is not null") parser.add_option('--benchmark', action='store_true', help="measure processing speed") parser.add_option('--testsuite', metavar='dir', help="run regression tests from dir") parser.add_option('--doctest', action='store_true', help="run doctest on myself") options, args = parser.parse_args(arglist) if options.testsuite: args.append(options.testsuite) if len(args) == 0 and not options.doctest: parser.error('input not specified') options.prog = os.path.basename(sys.argv[0]) options.exclude = options.exclude.split(',') for index in range(len(options.exclude)): options.exclude[index] = options.exclude[index].rstrip('/') if options.filename: options.filename = options.filename.split(',') if options.select: options.select = options.select.split(',') else: options.select = [] if options.ignore: options.ignore = options.ignore.split(',') elif options.select: # Ignore all checks which are not explicitly selected options.ignore = [''] elif options.testsuite or options.doctest: # For doctest and testsuite, all checks are required options.ignore = [] else: # The default choice: ignore controversial checks options.ignore = DEFAULT_IGNORE.split(',') options.physical_checks = find_checks('physical_line') options.logical_checks = find_checks('logical_line') options.counters = {} options.messages = {} return options, args def _main(): """ Parse options and run checks on Python source. """ options, args = process_options() if options.doctest: import doctest doctest.testmod(verbose=options.verbose) selftest() start_time = time.time() for path in args: if os.path.isdir(path): input_dir(path) else: input_file(path) elapsed = time.time() - start_time if options.statistics: print_statistics() if options.benchmark: print_benchmark(elapsed) if options.count: count = get_count() if count: sys.stderr.write(str(count) + '\n') sys.exit(1) if __name__ == '__main__': _main() phatch-0.2.7/phatch/other/pil_1_1_6/0000755000000000000000000000000011346363116016772 5ustar rootroot00000000000000phatch-0.2.7/phatch/other/pil_1_1_6/JpegImagePlugin.py0000644000000000000000000003731311346363116022362 0ustar rootroot00000000000000# This file has been patched to be included with Phatch to fix the handling of # CMYK jpg images. It is based on the patch proposed by Kevin Cazabon on the # python image sig mailing list: # http://www.mail-archive.com/image-sig@python.org/msg00800.html # The Python Imaging Library (PIL) is # # Copyright (c) 1997-2006 by Secret Labs AB # Copyright (c) 1995-2006 by Fredrik Lundh # # By obtaining, using, and/or copying this software and/or its associated # documentation, you agree that you have read, understood, and will comply with # the following terms and conditions: # # Permission to use, copy, modify, and distribute this software and its # associated documentation for any purpose and without fee is hereby granted, # provided that the above copyright notice appears in all copies, and that both # that copyright notice and this permission notice appear in supporting # documentation, and that the name of Secret Labs AB or the author not be used # in advertising or publicity pertaining to distribution of the software # without specific, written prior permission. # # SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS # SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. # IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR ANY SPECIAL, # INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # http://www.pythonware.com/products/pil/license.htm # The Python Imaging Library. # $Id: JpegImagePlugin.py 2199 2004-12-18 08:49:05Z fredrik $ # # JPEG (JFIF) file handling # # See "Digital Compression and Coding of Continous-Tone Still Images, # Part 1, Requirements and Guidelines" (CCITT T.81 / ISO 10918-1) # # History: # 1995-09-09 fl Created # 1995-09-13 fl Added full parser # 1996-03-25 fl Added hack to use the IJG command line utilities # 1996-05-05 fl Workaround Photoshop 2.5 CMYK polarity bug # 1996-05-28 fl Added draft support, JFIF version (0.1) # 1996-12-30 fl Added encoder options, added progression property (0.2) # 1997-08-27 fl Save mode 1 images as BW (0.3) # 1998-07-12 fl Added YCbCr to draft and save methods (0.4) # 1998-10-19 fl Don't hang on files using 16-bit DQT's (0.4.1) # 2001-04-16 fl Extract DPI settings from JFIF files (0.4.2) # 2002-07-01 fl Skip pad bytes before markers; identify Exif files (0.4.3) # 2003-04-25 fl Added experimental EXIF decoder (0.5) # 2003-06-06 fl Added experimental EXIF GPSinfo decoder # 2003-09-13 fl Extract COM markers # # Copyright (c) 1997-2003 by Secret Labs AB. # Copyright (c) 1995-1996 by Fredrik Lundh. # # See the README file for information on usage and redistribution. # __version__ = "0.5" import array, string import Image, ImageFile, ImageChops def i16(c,o=0): return ord(c[o+1]) + (ord(c[o])<<8) def i32(c,o=0): return ord(c[o+3]) + (ord(c[o+2])<<8) + (ord(c[o+1])<<16) + (ord(c[o])<<24) # # Parser def Skip(self, marker): n = i16(self.fp.read(2))-2 ImageFile._safe_read(self.fp, n) def APP(self, marker): # # Application marker. Store these in the APP dictionary. # Also look for well-known application markers. n = i16(self.fp.read(2))-2 s = ImageFile._safe_read(self.fp, n) app = "APP%d" % (marker&15) self.app[app] = s # compatibility self.applist.append((app, s)) if marker == 0xFFE0 and s[:4] == "JFIF": # extract JFIF information self.info["jfif"] = version = i16(s, 5) # version self.info["jfif_version"] = divmod(version, 256) # extract JFIF properties try: jfif_unit = ord(s[7]) jfif_density = i16(s, 8), i16(s, 10) except: pass else: if jfif_unit == 1: self.info["dpi"] = jfif_density self.info["jfif_unit"] = jfif_unit self.info["jfif_density"] = jfif_density elif marker == 0xFFE1 and s[:5] == "Exif\0": # extract Exif information (incomplete) self.info["exif"] = s # FIXME: value will change elif marker == 0xFFE2 and s[:5] == "FPXR\0": # extract FlashPix information (incomplete) self.info["flashpix"] = s # FIXME: value will change elif marker == 0xFFEE and s[:5] == "Adobe": self.info["adobe"] = i16(s, 5) # extract Adobe custom properties try: adobe_transform = ord(s[1]) except: pass else: self.info["adobe_transform"] = adobe_transform def COM(self, marker): # # Comment marker. Store these in the APP dictionary. n = i16(self.fp.read(2))-2 s = ImageFile._safe_read(self.fp, n) self.app["COM"] = s # compatibility self.applist.append(("COM", s)) def SOF(self, marker): # # Start of frame marker. Defines the size and mode of the # image. JPEG is color blind, so we use some simple # heuristics to map the number of layers to an appropriate # mode. Note that this could be made a bit brighter, by # looking for JFIF and Adobe APP markers. n = i16(self.fp.read(2))-2 s = ImageFile._safe_read(self.fp, n) self.size = i16(s[3:]), i16(s[1:]) self.bits = ord(s[0]) if self.bits != 8: raise SyntaxError("cannot handle %d-bit layers" % self.bits) self.layers = ord(s[5]) if self.layers == 1: self.mode = "L" elif self.layers == 3: self.mode = "RGB" elif self.layers == 4: self.mode = "CMYK" else: raise SyntaxError("cannot handle %d-layer images" % self.layers) if marker in [0xFFC2, 0xFFC6, 0xFFCA, 0xFFCE]: self.info["progression"] = 1 for i in range(6, len(s), 3): t = s[i:i+3] # 4-tuples: id, vsamp, hsamp, qtable self.layer.append((t[0], ord(t[1])/16, ord(t[1])&15, ord(t[2]))) def DQT(self, marker): # # Define quantization table. Support baseline 8-bit tables # only. Note that there might be more than one table in # each marker. # FIXME: The quantization tables can be used to estimate the # compression quality. n = i16(self.fp.read(2))-2 s = ImageFile._safe_read(self.fp, n) while len(s): if len(s) < 65: raise SyntaxError("bad quantization table marker") v = ord(s[0]) if v/16 == 0: self.quantization[v&15] = array.array("b", s[1:65]) s = s[65:] else: return # FIXME: add code to read 16-bit tables! # raise SyntaxError, "bad quantization table element size" # # JPEG marker table MARKER = { 0xFFC0: ("SOF0", "Baseline DCT", SOF), 0xFFC1: ("SOF1", "Extended Sequential DCT", SOF), 0xFFC2: ("SOF2", "Progressive DCT", SOF), 0xFFC3: ("SOF3", "Spatial lossless", SOF), 0xFFC4: ("DHT", "Define Huffman table", Skip), 0xFFC5: ("SOF5", "Differential sequential DCT", SOF), 0xFFC6: ("SOF6", "Differential progressive DCT", SOF), 0xFFC7: ("SOF7", "Differential spatial", SOF), 0xFFC8: ("JPG", "Extension", None), 0xFFC9: ("SOF9", "Extended sequential DCT (AC)", SOF), 0xFFCA: ("SOF10", "Progressive DCT (AC)", SOF), 0xFFCB: ("SOF11", "Spatial lossless DCT (AC)", SOF), 0xFFCC: ("DAC", "Define arithmetic coding conditioning", Skip), 0xFFCD: ("SOF13", "Differential sequential DCT (AC)", SOF), 0xFFCE: ("SOF14", "Differential progressive DCT (AC)", SOF), 0xFFCF: ("SOF15", "Differential spatial (AC)", SOF), 0xFFD0: ("RST0", "Restart 0", None), 0xFFD1: ("RST1", "Restart 1", None), 0xFFD2: ("RST2", "Restart 2", None), 0xFFD3: ("RST3", "Restart 3", None), 0xFFD4: ("RST4", "Restart 4", None), 0xFFD5: ("RST5", "Restart 5", None), 0xFFD6: ("RST6", "Restart 6", None), 0xFFD7: ("RST7", "Restart 7", None), 0xFFD8: ("SOI", "Start of image", None), 0xFFD9: ("EOI", "End of image", None), 0xFFDA: ("SOS", "Start of scan", Skip), 0xFFDB: ("DQT", "Define quantization table", DQT), 0xFFDC: ("DNL", "Define number of lines", Skip), 0xFFDD: ("DRI", "Define restart interval", Skip), 0xFFDE: ("DHP", "Define hierarchical progression", SOF), 0xFFDF: ("EXP", "Expand reference component", Skip), 0xFFE0: ("APP0", "Application segment 0", APP), 0xFFE1: ("APP1", "Application segment 1", APP), 0xFFE2: ("APP2", "Application segment 2", APP), 0xFFE3: ("APP3", "Application segment 3", APP), 0xFFE4: ("APP4", "Application segment 4", APP), 0xFFE5: ("APP5", "Application segment 5", APP), 0xFFE6: ("APP6", "Application segment 6", APP), 0xFFE7: ("APP7", "Application segment 7", APP), 0xFFE8: ("APP8", "Application segment 8", APP), 0xFFE9: ("APP9", "Application segment 9", APP), 0xFFEA: ("APP10", "Application segment 10", APP), 0xFFEB: ("APP11", "Application segment 11", APP), 0xFFEC: ("APP12", "Application segment 12", APP), 0xFFED: ("APP13", "Application segment 13", APP), 0xFFEE: ("APP14", "Application segment 14", APP), 0xFFEF: ("APP15", "Application segment 15", APP), 0xFFF0: ("JPG0", "Extension 0", None), 0xFFF1: ("JPG1", "Extension 1", None), 0xFFF2: ("JPG2", "Extension 2", None), 0xFFF3: ("JPG3", "Extension 3", None), 0xFFF4: ("JPG4", "Extension 4", None), 0xFFF5: ("JPG5", "Extension 5", None), 0xFFF6: ("JPG6", "Extension 6", None), 0xFFF7: ("JPG7", "Extension 7", None), 0xFFF8: ("JPG8", "Extension 8", None), 0xFFF9: ("JPG9", "Extension 9", None), 0xFFFA: ("JPG10", "Extension 10", None), 0xFFFB: ("JPG11", "Extension 11", None), 0xFFFC: ("JPG12", "Extension 12", None), 0xFFFD: ("JPG13", "Extension 13", None), 0xFFFE: ("COM", "Comment", COM) } def _accept(prefix): return prefix[0] == "\377" ## # Image plugin for JPEG and JFIF images. class JpegImageFile(ImageFile.ImageFile): format = "JPEG" format_description = "JPEG (ISO 10918)" def _open(self): s = self.fp.read(1) if ord(s[0]) != 255: raise SyntaxError("not a JPEG file") # Create attributes self.bits = self.layers = 0 # JPEG specifics (internal) self.layer = [] self.huffman_dc = {} self.huffman_ac = {} self.quantization = {} self.app = {} # compatibility self.applist = [] while 1: s = s + self.fp.read(1) i = i16(s) if MARKER.has_key(i): name, description, handler = MARKER[i] # print hex(i), name, description if handler is not None: handler(self, i) if i == 0xFFDA: # start of scan rawmode = self.mode # patch by Kevin Cazabon to comment this out - nobody should be using Photoshop 2.5 any more (and it breaks newer versions) # CMYK images are still inverted, we'll fix that just before returning. #if self.mode == "CMYK" and self.info.has_key("adobe"): # rawmode = "CMYK;I" # Photoshop 2.5 is broken! self.tile = [("jpeg", (0,0) + self.size, 0, (rawmode, ""))] # self.__offset = self.fp.tell() break s = self.fp.read(1) elif i == 0 or i == 65535: # padded marker or junk; move on s = "\xff" else: raise SyntaxError("no marker found") # patch by Kevin Cazabon to re-invert CMYK JPEG files if self.mode == "CMYK": self.im = ImageChops.invert(self).im def draft(self, mode, size): if len(self.tile) != 1: return d, e, o, a = self.tile[0] scale = 0 if a[0] == "RGB" and mode in ["L", "YCbCr"]: self.mode = mode a = mode, "" if size: scale = max(self.size[0] / size[0], self.size[1] / size[1]) for s in [8, 4, 2, 1]: if scale >= s: break e = e[0], e[1], (e[2]-e[0]+s-1)/s+e[0], (e[3]-e[1]+s-1)/s+e[1] self.size = ((self.size[0]+s-1)/s, (self.size[1]+s-1)/s) scale = s self.tile = [(d, e, o, a)] self.decoderconfig = (scale, 1) return self def load_djpeg(self): # ALTERNATIVE: handle JPEGs via the IJG command line utilities import tempfile, os file = tempfile.mktemp() os.system("djpeg %s >%s" % (self.filename, file)) try: self.im = Image.core.open_ppm(file) finally: try: os.unlink(file) except: pass self.mode = self.im.mode self.size = self.im.size self.tile = [] def _getexif(self): # Extract EXIF information. This method is highly experimental, # and is likely to be replaced with something better in a future # version. import TiffImagePlugin, StringIO def fixup(value): if len(value) == 1: return value[0] return value # The EXIF record consists of a TIFF file embedded in a JPEG # application marker (!). try: data = self.info["exif"] except KeyError: return None file = StringIO.StringIO(data[6:]) head = file.read(8) exif = {} # process dictionary info = TiffImagePlugin.ImageFileDirectory(head) info.load(file) for key, value in info.items(): exif[key] = fixup(value) # get exif extension file.seek(exif[0x8769]) info = TiffImagePlugin.ImageFileDirectory(head) info.load(file) for key, value in info.items(): exif[key] = fixup(value) # get gpsinfo extension try: file.seek(exif[0x8825]) except KeyError: pass else: info = TiffImagePlugin.ImageFileDirectory(head) info.load(file) exif[0x8825] = gps = {} for key, value in info.items(): gps[key] = fixup(value) return exif # -------------------------------------------------------------------- # stuff to save JPEG files RAWMODE = { "1": "L", "L": "L", "RGB": "RGB", "RGBA": "RGB", "RGBX": "RGB", "CMYK": "CMYK", "YCbCr": "YCbCr", } def _save(im, fp, filename): try: rawmode = RAWMODE[im.mode] except KeyError: raise IOError("cannot write mode %s as JPEG" % im.mode) info = im.encoderinfo dpi = info.get("dpi", (0, 0)) # get keyword arguments im.encoderconfig = ( info.get("quality", 0), # "progressive" is the official name, but older documentation # says "progression" # FIXME: issue a warning if the wrong form is used (post-1.1.5) info.has_key("progressive") or info.has_key("progression"), info.get("smooth", 0), info.has_key("optimize"), info.get("streamtype", 0), dpi[0], dpi[1] ) if im.mode == "CMYK": # invert it so it's handled correctly in Photoshop/etc. - Kevin Cazabon. im = ImageChops.invert(im) ImageFile._save(im, fp, [("jpeg", (0,0)+im.size, 0, rawmode)]) def _save_cjpeg(im, fp, filename): # ALTERNATIVE: handle JPEGs via the IJG command line utilities. import os file = im._dump() os.system("cjpeg %s >%s" % (file, filename)) try: os.unlink(file) except: pass # -------------------------------------------------------------------q- # Registry stuff Image.register_open("JPEG", JpegImageFile, _accept) Image.register_save("JPEG", _save) Image.register_extension("JPEG", ".jfif") Image.register_extension("JPEG", ".jpe") Image.register_extension("JPEG", ".jpg") Image.register_extension("JPEG", ".jpeg") Image.register_mime("JPEG", "image/jpeg") phatch-0.2.7/phatch/other/pil_1_1_6/TiffImagePlugin.py0000644000000000000000000006221111346363116022360 0ustar rootroot00000000000000# Patched version to fix dpi problem, see the python image-sig mailing list: # http://www.mail-archive.com/image-sig@python.org/msg01572.html # Two patches: see line 580 & 732 # The Python Imaging Library (PIL) is # # Copyright (c) 1997-2006 by Secret Labs AB # Copyright (c) 1995-2006 by Fredrik Lundh # # By obtaining, using, and/or copying this software and/or its associated # documentation, you agree that you have read, understood, and will comply with # the following terms and conditions: # # Permission to use, copy, modify, and distribute this software and its # associated documentation for any purpose and without fee is hereby granted, # provided that the above copyright notice appears in all copies, and that both # that copyright notice and this permission notice appear in supporting # documentation, and that the name of Secret Labs AB or the author not be used # in advertising or publicity pertaining to distribution of the software # without specific, written prior permission. # # SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS # SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. # IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR ANY SPECIAL, # INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # http://www.pythonware.com/products/pil/license.htm # The Python Imaging Library. # $Id: TiffImagePlugin.py 2803 2006-07-31 19:18:57Z fredrik $ # # TIFF file handling # # TIFF is a flexible, if somewhat aged, image file format originally # defined by Aldus. Although TIFF supports a wide variety of pixel # layouts and compression methods, the name doesn't really stand for # "thousands of incompatible file formats," it just feels that way. # # To read TIFF data from a stream, the stream must be seekable. For # progressive decoding, make sure to use TIFF files where the tag # directory is placed first in the file. # # History: # 1995-09-01 fl Created # 1996-05-04 fl Handle JPEGTABLES tag # 1996-05-18 fl Fixed COLORMAP support # 1997-01-05 fl Fixed PREDICTOR support # 1997-08-27 fl Added support for rational tags (from Perry Stoll) # 1998-01-10 fl Fixed seek/tell (from Jan Blom) # 1998-07-15 fl Use private names for internal variables # 1999-06-13 fl Rewritten for PIL 1.0 (1.0) # 2000-10-11 fl Additional fixes for Python 2.0 (1.1) # 2001-04-17 fl Fixed rewind support (seek to frame 0) (1.2) # 2001-05-12 fl Added write support for more tags (from Greg Couch) (1.3) # 2001-12-18 fl Added workaround for broken Matrox library # 2002-01-18 fl Don't mess up if photometric tag is missing (D. Alan Stewart) # 2003-05-19 fl Check FILLORDER tag # 2003-09-26 fl Added RGBa support # 2004-02-24 fl Added DPI support; fixed rational write support # 2005-02-07 fl Added workaround for broken Corel Draw 10 files # 2006-01-09 fl Added support for float/double tags (from Russell Nelson) # # Copyright (c) 1997-2006 by Secret Labs AB. All rights reserved. # Copyright (c) 1995-1997 by Fredrik Lundh # # See the README file for information on usage and redistribution. # __version__ = "1.3.5" import Image, ImageFile import ImagePalette import array, string, sys try: if sys.byteorder == "little": byteorder = "II" else: byteorder = "MM" except AttributeError: if ord(array.array("i",[1]).tostring()[0]): byteorder = "II" else: byteorder = "MM" # # -------------------------------------------------------------------- # Read TIFF files def il16(c,o=0): return ord(c[o]) + (ord(c[o+1])<<8) def il32(c,o=0): return ord(c[o]) + (ord(c[o+1])<<8) + (ord(c[o+2])<<16) + (ord(c[o+3])<<24) def ol16(i): return chr(i&255) + chr(i>>8&255) def ol32(i): return chr(i&255) + chr(i>>8&255) + chr(i>>16&255) + chr(i>>24&255) def ib16(c,o=0): return ord(c[o+1]) + (ord(c[o])<<8) def ib32(c,o=0): return ord(c[o+3]) + (ord(c[o+2])<<8) + (ord(c[o+1])<<16) + (ord(c[o])<<24) # a few tag names, just to make the code below a bit more readable IMAGEWIDTH = 256 IMAGELENGTH = 257 BITSPERSAMPLE = 258 COMPRESSION = 259 PHOTOMETRIC_INTERPRETATION = 262 FILLORDER = 266 IMAGEDESCRIPTION = 270 STRIPOFFSETS = 273 SAMPLESPERPIXEL = 277 ROWSPERSTRIP = 278 STRIPBYTECOUNTS = 279 X_RESOLUTION = 282 Y_RESOLUTION = 283 PLANAR_CONFIGURATION = 284 RESOLUTION_UNIT = 296 SOFTWARE = 305 DATE_TIME = 306 ARTIST = 315 PREDICTOR = 317 COLORMAP = 320 EXTRASAMPLES = 338 SAMPLEFORMAT = 339 JPEGTABLES = 347 COPYRIGHT = 33432 IPTC_NAA_CHUNK = 33723 # newsphoto properties PHOTOSHOP_CHUNK = 34377 # photoshop properties COMPRESSION_INFO = { # Compression => pil compression name 1: "raw", 2: "tiff_ccitt", 3: "group3", 4: "group4", 5: "tiff_lzw", 6: "tiff_jpeg", # obsolete 7: "jpeg", 32771: "tiff_raw_16", # 16-bit padding 32773: "packbits" } OPEN_INFO = { # (PhotoInterpretation, SampleFormat, FillOrder, BitsPerSample, # ExtraSamples) => mode, rawmode (0, 1, 1, (1,), ()): ("1", "1;I"), (0, 1, 2, (1,), ()): ("1", "1;IR"), (0, 1, 1, (8,), ()): ("L", "L;I"), (0, 1, 2, (8,), ()): ("L", "L;IR"), (1, 1, 1, (1,), ()): ("1", "1"), (1, 1, 2, (1,), ()): ("1", "1;R"), (1, 1, 1, (8,), ()): ("L", "L"), (1, 1, 1, (8,8), (2,)): ("LA", "LA"), (1, 1, 2, (8,), ()): ("L", "L;R"), (1, 1, 1, (16,), ()): ("I;16", "I;16"), (1, 2, 1, (16,), ()): ("I;16S", "I;16S"), (1, 2, 1, (32,), ()): ("I", "I;32S"), (1, 3, 1, (32,), ()): ("F", "F;32F"), (2, 1, 1, (8,8,8), ()): ("RGB", "RGB"), (2, 1, 2, (8,8,8), ()): ("RGB", "RGB;R"), (2, 1, 1, (8,8,8,8), (0,)): ("RGBX", "RGBX"), (2, 1, 1, (8,8,8,8), (1,)): ("RGBA", "RGBa"), (2, 1, 1, (8,8,8,8), (2,)): ("RGBA", "RGBA"), (2, 1, 1, (8,8,8,8), (999,)): ("RGBA", "RGBA"), # corel draw 10 (3, 1, 1, (1,), ()): ("P", "P;1"), (3, 1, 2, (1,), ()): ("P", "P;1R"), (3, 1, 1, (2,), ()): ("P", "P;2"), (3, 1, 2, (2,), ()): ("P", "P;2R"), (3, 1, 1, (4,), ()): ("P", "P;4"), (3, 1, 2, (4,), ()): ("P", "P;4R"), (3, 1, 1, (8,), ()): ("P", "P"), (3, 1, 1, (8,8), (2,)): ("PA", "PA"), (3, 1, 2, (8,), ()): ("P", "P;R"), (5, 1, 1, (8,8,8,8), ()): ("CMYK", "CMYK"), (6, 1, 1, (8,8,8), ()): ("YCbCr", "YCbCr"), (8, 1, 1, (8,8,8), ()): ("LAB", "LAB"), } PREFIXES = ["MM\000\052", "II\052\000", "II\xBC\000"] def _accept(prefix): return prefix[:4] in PREFIXES ## # Wrapper for TIFF IFDs. class ImageFileDirectory: # represents a TIFF tag directory. to speed things up, # we don't decode tags unless they're asked for. def __init__(self, prefix="II"): self.prefix = prefix[:2] if self.prefix == "MM": self.i16, self.i32 = ib16, ib32 # FIXME: save doesn't yet support big-endian mode... elif self.prefix == "II": self.i16, self.i32 = il16, il32 self.o16, self.o32 = ol16, ol32 else: raise SyntaxError("not a TIFF IFD") self.reset() def reset(self): self.tags = {} self.tagdata = {} self.next = None # dictionary API (sort of) def keys(self): return self.tagdata.keys() + self.tags.keys() def items(self): items = self.tags.items() for tag in self.tagdata.keys(): items.append((tag, self[tag])) return items def __len__(self): return len(self.tagdata) + len(self.tags) def __getitem__(self, tag): try: return self.tags[tag] except KeyError: type, data = self.tagdata[tag] # unpack on the fly size, handler = self.load_dispatch[type] self.tags[tag] = data = handler(self, data) del self.tagdata[tag] return data def get(self, tag, default=None): try: return self[tag] except KeyError: return default def getscalar(self, tag, default=None): try: value = self[tag] if len(value) != 1: if tag == SAMPLEFORMAT: # work around broken (?) matrox library # (from Ted Wright, via Bob Klimek) raise KeyError # use default raise ValueError, "not a scalar" return value[0] except KeyError: if default is None: raise return default def has_key(self, tag): return self.tags.has_key(tag) or self.tagdata.has_key(tag) def __setitem__(self, tag, value): if type(value) is not type(()): value = (value,) self.tags[tag] = value # load primitives load_dispatch = {} def load_byte(self, data): l = [] for i in range(len(data)): l.append(ord(data[i])) return tuple(l) load_dispatch[1] = (1, load_byte) def load_string(self, data): if data[-1:] == '\0': data = data[:-1] return data load_dispatch[2] = (1, load_string) def load_short(self, data): l = [] for i in range(0, len(data), 2): l.append(self.i16(data, i)) return tuple(l) load_dispatch[3] = (2, load_short) def load_long(self, data): l = [] for i in range(0, len(data), 4): l.append(self.i32(data, i)) return tuple(l) load_dispatch[4] = (4, load_long) def load_rational(self, data): l = [] for i in range(0, len(data), 8): l.append((self.i32(data, i), self.i32(data, i+4))) return tuple(l) load_dispatch[5] = (8, load_rational) def load_float(self, data): a = array.array("f", data) if self.prefix != byteorder: a.byteswap() return tuple(a) load_dispatch[11] = (4, load_float) def load_double(self, data): a = array.array("d", data) if self.prefix != byteorder: a.byteswap() return tuple(a) load_dispatch[12] = (8, load_double) def load_undefined(self, data): # Untyped data return data load_dispatch[7] = (1, load_undefined) def load(self, fp): # load tag dictionary self.reset() i16 = self.i16 i32 = self.i32 for i in range(i16(fp.read(2))): ifd = fp.read(12) tag, typ = i16(ifd), i16(ifd, 2) if Image.DEBUG: import TiffTags tagname = TiffTags.TAGS.get(tag, "unknown") typname = TiffTags.TYPES.get(typ, "unknown") print "tag: %s (%d)" % (tagname, tag), print "- type: %s (%d)" % (typname, typ), try: dispatch = self.load_dispatch[typ] except KeyError: if Image.DEBUG: print "- unsupported type", typ continue # ignore unsupported type size, handler = dispatch size = size * i32(ifd, 4) # Get and expand tag value if size > 4: here = fp.tell() fp.seek(i32(ifd, 8)) data = ImageFile._safe_read(fp, size) fp.seek(here) else: data = ifd[8:8+size] if len(data) != size: raise IOError, "not enough data" self.tagdata[tag] = typ, data if Image.DEBUG: if tag in (COLORMAP, IPTC_NAA_CHUNK, PHOTOSHOP_CHUNK): print "- value: " % size else: print "- value:", self[tag] self.next = i32(fp.read(4)) # save primitives def save(self, fp): o16 = self.o16 o32 = self.o32 fp.write(o16(len(self.tags))) # always write in ascending tag order tags = self.tags.items() tags.sort() directory = [] append = directory.append offset = fp.tell() + len(self.tags) * 12 + 4 stripoffsets = None # pass 1: convert tags to binary format for tag, value in tags: if Image.DEBUG: import TiffTags tagname = TiffTags.TAGS.get(tag, "unknown") print "save: %s (%d)" % (tagname, tag), print "- value:", value if type(value[0]) is type(""): # string data typ = 2 data = value = string.join(value, "\0") + "\0" else: # integer data if tag == STRIPOFFSETS: stripoffsets = len(directory) typ = 4 # to avoid catch-22 elif tag in (X_RESOLUTION, Y_RESOLUTION): # identify rational data fields typ = 5 else: typ = 3 for v in value: if v >= 65536: typ = 4 if typ == 3: data = string.join(map(o16, value), "") else: data = string.join(map(o32, value), "") # figure out if data fits into the directory if len(data) == 4: append((tag, typ, len(value), data, "")) elif len(data) < 4: append((tag, typ, len(value), data + (4-len(data))*"\0", "")) else: count = len(value) if typ == 5: count = count / 2 # adjust for rational data field append((tag, typ, count, o32(offset), data)) offset = offset + len(data) if offset & 1: offset = offset + 1 # word padding # update strip offset data to point beyond auxiliary data if stripoffsets is not None: tag, typ, count, value, data = directory[stripoffsets] assert not data, "multistrip support not yet implemented" value = o32(self.i32(value) + offset) directory[stripoffsets] = tag, typ, count, value, data # pass 2: write directory to file for tag, typ, count, value, data in directory: if Image.DEBUG > 1: print tag, typ, count, repr(value), repr(data) fp.write(o16(tag) + o16(typ) + o32(count) + value) fp.write("\0\0\0\0") # end of directory # pass 3: write auxiliary data to file for tag, typ, count, value, data in directory: fp.write(data) if len(data) & 1: fp.write("\0") return offset ## # Image plugin for TIFF files. class TiffImageFile(ImageFile.ImageFile): format = "TIFF" format_description = "Adobe TIFF" def _open(self): "Open the first image in a TIFF file" # Header ifh = self.fp.read(8) if ifh[:4] not in PREFIXES: raise SyntaxError, "not a TIFF file" # image file directory (tag dictionary) self.tag = self.ifd = ImageFileDirectory(ifh[:2]) # setup frame pointers self.__first = self.__next = self.ifd.i32(ifh, 4) self.__frame = -1 self.__fp = self.fp # and load the first frame self._seek(0) def seek(self, frame): "Select a given frame as current image" if frame < 0: frame = 0 self._seek(frame) def tell(self): "Return the current frame number" return self._tell() def _seek(self, frame): self.fp = self.__fp if frame < self.__frame: # rewind file self.__frame = -1 self.__next = self.__first while self.__frame < frame: if not self.__next: raise EOFError, "no more images in TIFF file" self.fp.seek(self.__next) self.tag.load(self.fp) self.__next = self.tag.next self.__frame = self.__frame + 1 self._setup() def _tell(self): return self.__frame def _decoder(self, rawmode, layer): "Setup decoder contexts" args = None if rawmode == "RGB" and self._planar_configuration == 2: rawmode = rawmode[layer] compression = self._compression if compression == "raw": args = (rawmode, 0, 1) elif compression == "jpeg": args = rawmode, "" if self.tag.has_key(JPEGTABLES): # Hack to handle abbreviated JPEG headers self.tile_prefix = self.tag[JPEGTABLES] elif compression == "packbits": args = rawmode elif compression == "tiff_lzw": args = rawmode if self.tag.has_key(317): # Section 14: Differencing Predictor self.decoderconfig = (self.tag[PREDICTOR][0],) return args def _setup(self): "Setup this image object based on current tags" if self.tag.has_key(0xBC01): raise IOError, "Windows Media Photo files not yet supported" getscalar = self.tag.getscalar # extract relevant tags self._compression = COMPRESSION_INFO[getscalar(COMPRESSION, 1)] self._planar_configuration = getscalar(PLANAR_CONFIGURATION, 1) # photometric is a required tag, but not everyone is reading # the specification photo = getscalar(PHOTOMETRIC_INTERPRETATION, 0) fillorder = getscalar(FILLORDER, 1) if Image.DEBUG: print "*** Summary ***" print "- compression:", self._compression print "- photometric_interpretation:", photo print "- planar_configuration:", self._planar_configuration print "- fill_order:", fillorder # size xsize = getscalar(IMAGEWIDTH) ysize = getscalar(IMAGELENGTH) self.size = xsize, ysize if Image.DEBUG: print "- size:", self.size format = getscalar(SAMPLEFORMAT, 1) # mode: check photometric interpretation and bits per pixel key = ( photo, format, fillorder, self.tag.get(BITSPERSAMPLE, (1,)), self.tag.get(EXTRASAMPLES, ()) ) if Image.DEBUG: print "format key:", key try: self.mode, rawmode = OPEN_INFO[key] except KeyError: if Image.DEBUG: print "- unsupported format" raise SyntaxError, "unknown pixel mode" if Image.DEBUG: print "- raw mode:", rawmode print "- pil mode:", self.mode self.info["compression"] = self._compression # BEGIN PATCH xres = getscalar(X_RESOLUTION, (1, 1)) yres = getscalar(Y_RESOLUTION, (1, 1)) if xres and yres: xres = xres[0] / (xres[1] or 1) yres = yres[0] / (yres[1] or 1) resunit = getscalar(RESOLUTION_UNIT, 1) if resunit == 2: # Inches self.info["dpi"] = xres, yres elif resunit == 3: # Centimeters self.info["dpi"] = xres * 2.54, yres * 2.54 else: # No absolute unit of measurement. self.info["resolution"] = xres, yres # END PATCH # build tile descriptors x = y = l = 0 self.tile = [] if self.tag.has_key(STRIPOFFSETS): # striped image h = getscalar(ROWSPERSTRIP, ysize) w = self.size[0] a = None for o in self.tag[STRIPOFFSETS]: if not a: a = self._decoder(rawmode, l) self.tile.append( (self._compression, (0, min(y, ysize), w, min(y+h, ysize)), o, a)) y = y + h if y >= self.size[1]: x = y = 0 l = l + 1 a = None elif self.tag.has_key(324): # tiled image w = getscalar(322) h = getscalar(323) a = None for o in self.tag[324]: if not a: a = self._decoder(rawmode, l) # FIXME: this doesn't work if the image size # is not a multiple of the tile size... self.tile.append( (self._compression, (x, y, x+w, y+h), o, a)) x = x + w if x >= self.size[0]: x, y = 0, y + h if y >= self.size[1]: x = y = 0 l = l + 1 a = None else: if Image.DEBUG: print "- unsupported data organization" raise SyntaxError("unknown data organization") # fixup palette descriptor if self.mode == "P": palette = map(lambda a: chr(a / 256), self.tag[COLORMAP]) self.palette = ImagePalette.raw("RGB;L", string.join(palette, "")) # # -------------------------------------------------------------------- # Write TIFF files # little endian is default SAVE_INFO = { # mode => rawmode, photometrics, sampleformat, bitspersample, extra "1": ("1", 1, 1, (1,), None), "L": ("L", 1, 1, (8,), None), "LA": ("LA", 1, 1, (8,8), 2), "P": ("P", 3, 1, (8,), None), "PA": ("PA", 3, 1, (8,8), 2), "I": ("I;32S", 1, 2, (32,), None), "I;16": ("I;16", 1, 1, (16,), None), "I;16S": ("I;16S", 1, 2, (16,), None), "F": ("F;32F", 1, 3, (32,), None), "RGB": ("RGB", 2, 1, (8,8,8), None), "RGBX": ("RGBX", 2, 1, (8,8,8,8), 0), "RGBA": ("RGBA", 2, 1, (8,8,8,8), 2), "CMYK": ("CMYK", 5, 1, (8,8,8,8), None), "YCbCr": ("YCbCr", 6, 1, (8,8,8), None), "LAB": ("LAB", 8, 1, (8,8,8), None), } def _cvt_res(value): # convert value to TIFF rational number -- (numerator, denominator) if type(value) in (type([]), type(())): assert(len(value) % 2 == 0) return value if type(value) == type(1): return (value, 1) value = float(value) return (int(value * 65536), 65536) def _save(im, fp, filename): try: rawmode, photo, format, bits, extra = SAVE_INFO[im.mode] except KeyError: raise IOError, "cannot write mode %s as TIFF" % im.mode ifd = ImageFileDirectory() # tiff header (write via IFD to get everything right) fp.write(ifd.prefix + ifd.o16(42) + ifd.o32(8)) ifd[IMAGEWIDTH] = im.size[0] ifd[IMAGELENGTH] = im.size[1] # additions written by Greg Couch, gregc@cgl.ucsf.edu # inspired by image-sig posting from Kevin Cazabon, kcazabon@home.com if hasattr(im, 'tag'): # preserve tags from original TIFF image file for key in (RESOLUTION_UNIT, X_RESOLUTION, Y_RESOLUTION): if im.tag.tagdata.has_key(key): ifd[key] = im.tag.tagdata.get(key) if im.encoderinfo.has_key("description"): ifd[IMAGEDESCRIPTION] = im.encoderinfo["description"] if im.encoderinfo.has_key("resolution"): ifd[X_RESOLUTION] = ifd[Y_RESOLUTION] \ = _cvt_res(im.encoderinfo["resolution"]) if im.encoderinfo.has_key("x resolution"): ifd[X_RESOLUTION] = _cvt_res(im.encoderinfo["x resolution"]) if im.encoderinfo.has_key("y resolution"): ifd[Y_RESOLUTION] = _cvt_res(im.encoderinfo["y resolution"]) if im.encoderinfo.has_key("resolution unit"): unit = im.encoderinfo["resolution unit"] if unit == "inch": ifd[RESOLUTION_UNIT] = 2 elif unit == "cm" or unit == "centimeter": ifd[RESOLUTION_UNIT] = 3 else: ifd[RESOLUTION_UNIT] = 1 if im.encoderinfo.has_key("software"): ifd[SOFTWARE] = im.encoderinfo["software"] if im.encoderinfo.has_key("date time"): ifd[DATE_TIME] = im.encoderinfo["date time"] if im.encoderinfo.has_key("artist"): ifd[ARTIST] = im.encoderinfo["artist"] if im.encoderinfo.has_key("copyright"): ifd[COPYRIGHT] = im.encoderinfo["copyright"] dpi = im.encoderinfo.get("dpi") if dpi: #BEGIN PATCH ifd[RESOLUTION_UNIT] = 2 #END PATCH ifd[X_RESOLUTION] = _cvt_res(dpi[0]) ifd[Y_RESOLUTION] = _cvt_res(dpi[1]) if bits != (1,): ifd[BITSPERSAMPLE] = bits if len(bits) != 1: ifd[SAMPLESPERPIXEL] = len(bits) if extra is not None: ifd[EXTRASAMPLES] = extra if format != 1: ifd[SAMPLEFORMAT] = format ifd[PHOTOMETRIC_INTERPRETATION] = photo if im.mode == "P": lut = im.im.getpalette("RGB", "RGB;L") ifd[COLORMAP] = tuple(map(lambda v: ord(v) * 256, lut)) # data orientation stride = len(bits) * ((im.size[0]*bits[0]+7)/8) ifd[ROWSPERSTRIP] = im.size[1] ifd[STRIPBYTECOUNTS] = stride * im.size[1] ifd[STRIPOFFSETS] = 0 # this is adjusted by IFD writer ifd[COMPRESSION] = 1 # no compression offset = ifd.save(fp) ImageFile._save(im, fp, [ ("raw", (0,0)+im.size, offset, (rawmode, stride, 1)) ]) # # -------------------------------------------------------------------- # Register Image.register_open("TIFF", TiffImageFile, _accept) Image.register_save("TIFF", _save) Image.register_extension("TIFF", ".tif") Image.register_extension("TIFF", ".tiff") Image.register_mime("TIFF", "image/tiff") phatch-0.2.7/phatch/other/pubsub.py0000644000000000000000000013645411346363116017210 0ustar rootroot00000000000000# Copyright: (c) 2004 Oliver Schoenborn # License: wxWidgets(based on LGPL,http://www.wxwidgets.org/about/newlicen.htm) #--------------------------------------------------------------------------- """ This module provides a publish-subscribe component that allows listeners to subcribe to messages of a given topic. Contrary to the original wxPython.lib.pubsub module (which it is based on), it uses weak referencing to the subscribers so the lifetime of subscribers is not affected by Publisher. Also, callable objects can be used in addition to functions and bound methods. See Publisher class docs for more details. Thanks to Robb Shecter and Robin Dunn for having provided the basis for this module (which now shares most of the concepts but very little design or implementation with the original wxPython.lib.pubsub). The publisher is a singleton instance of the PublisherClass class. You access the instance via the Publisher object available from the module:: from wx.lib.pubsub import Publisher Publisher().subscribe(...) Publisher().sendMessage(...) ... :Author: Oliver Schoenborn :Since: Apr 2004 :Version: $Id: pubsub.py,v 1.8 2006/06/11 00:12:59 RD Exp $ :Copyright: \(c) 2004 Oliver Schoenborn :License: wxWidgets """ _implNotes = """ Implementation notes -------------------- In class Publisher, I represent the topics-listener set as a tree where each node is a topic, and contains a list of listeners of that topic, and a dictionary of subtopics of that topic. When the Publisher is told to send a message for a given topic, it traverses the tree down to the topic for which a message is being generated, all listeners on the way get sent the message. Publisher currently uses a weak listener topic tree to store the topics for each listener, and if a listener dies before being unsubscribed, the tree is notified, and the tree eliminates the listener from itself. Ideally, _TopicTreeNode would be a generic _TreeNode with named subnodes, and _TopicTreeRoot would be a generic _Tree with named nodes, and Publisher would store listeners in each node and a topic tuple would be converted to a path in the tree. This would lead to a much cleaner separation of concerns. But time is over, time to move on. """ #--------------------------------------------------------------------------- # for function and method parameter counting: from types import InstanceType from inspect import getargspec, ismethod, isfunction # for weakly bound methods: from new import instancemethod as InstanceMethod from weakref import ref as WeakRef # ----------------------------------------------------------------------------- def _isbound(method): """Return true if method is a bound method, false otherwise""" assert ismethod(method) return method.im_self is not None def _paramMinCountFunc(function): """Given a function, return pair (min,d) where min is minimum # of args required, and d is number of default arguments.""" assert isfunction(function) (args, va, kwa, dflt) = getargspec(function) lenDef = len(dflt or ()) lenArgs = len(args or ()) lenVA = int(va is not None) return (lenArgs - lenDef + lenVA, lenDef) def _paramMinCount(callableObject): """ Given a callable object (function, method or callable instance), return pair (min,d) where min is minimum # of args required, and d is number of default arguments. The 'self' parameter, in the case of methods, is not counted. """ if type(callableObject) is InstanceType: min, d = _paramMinCountFunc(callableObject.__call__.im_func) return min-1, d elif ismethod(callableObject): min, d = _paramMinCountFunc(callableObject.im_func) return min-1, d elif isfunction(callableObject): return _paramMinCountFunc(callableObject) else: raise 'Cannot determine type of callable: '+repr(callableObject) def _tupleize(items): """Convert items to tuple if not already one, so items must be a list, tuple or non-sequence""" if isinstance(items, list): raise TypeError, 'Not allowed to tuple-ize a list' elif isinstance(items, (str, unicode)) and items.find('.') != -1: items = tuple(items.split('.')) elif not isinstance(items, tuple): items = (items,) return items def _getCallableName(callable): """Get name for a callable, ie function, bound method or callable instance""" if ismethod(callable): return '%s.%s ' % (callable.im_self, callable.im_func.func_name) elif isfunction(callable): return '%s ' % callable.__name__ else: return '%s ' % callable def _removeItem(item, fromList): """Attempt to remove item from fromList, return true if successful, false otherwise.""" try: fromList.remove(item) return True except ValueError: return False # ----------------------------------------------------------------------------- class _WeakMethod: """Represent a weak bound method, i.e. a method doesn't keep alive the object that it is bound to. It uses WeakRef which, used on its own, produces weak methods that are dead on creation, not very useful. Typically, you will use the getRef() function instead of using this class directly. """ def __init__(self, method, notifyDead = None): """The method must be bound. notifyDead will be called when object that method is bound to dies. """ assert ismethod(method) if method.im_self is None: raise ValueError, "We need a bound method!" if notifyDead is None: self.objRef = WeakRef(method.im_self) else: self.objRef = WeakRef(method.im_self, notifyDead) self.fun = method.im_func self.cls = method.im_class def __call__(self): """Returns a new.instancemethod if object for method still alive. Otherwise return None. Note that instancemethod causes a strong reference to object to be created, so shouldn't save the return value of this call. Note also that this __call__ is required only for compatibility with WeakRef.ref(), otherwise there would be more efficient ways of providing this functionality.""" if self.objRef() is None: return None else: return InstanceMethod(self.fun, self.objRef(), self.cls) def __eq__(self, method2): """Two WeakMethod objects compare equal if they refer to the same method of the same instance. Thanks to Josiah Carlson for patch and clarifications on how dict uses eq/cmp and hashing. """ if not isinstance(method2, _WeakMethod): return False return self.fun is method2.fun \ and self.objRef() is method2.objRef() \ and self.objRef() is not None def __hash__(self): """Hash is an optimization for dict searches, it need not return different numbers for every different object. Some objects are not hashable (eg objects of classes derived from dict) so no hash(objRef()) in there, and hash(self.cls) would only be useful in the rare case where instance method was rebound. """ return hash(self.fun) def __repr__(self): dead = '' if self.objRef() is None: dead = '; DEAD' obj = '<%s at %s%s>' % (self.__class__, id(self), dead) return obj def refs(self, weakRef): """Return true if we are storing same object referred to by weakRef.""" return self.objRef == weakRef def _getWeakRef(obj, notifyDead=None): """Get a weak reference to obj. If obj is a bound method, a _WeakMethod object, that behaves like a WeakRef, is returned, if it is anything else a WeakRef is returned. If obj is an unbound method, a ValueError will be raised.""" if ismethod(obj): createRef = _WeakMethod else: createRef = WeakRef if notifyDead is None: return createRef(obj) else: return createRef(obj, notifyDead) # ----------------------------------------------------------------------------- def getStrAllTopics(): """Function to call if, for whatever reason, you need to know explicitely what is the string to use to indicate 'all topics'.""" return '' # alias, easier to see where used ALL_TOPICS = getStrAllTopics() # ----------------------------------------------------------------------------- class _NodeCallback: """Encapsulate a weak reference to a method of a TopicTreeNode in such a way that the method can be called, if the node is still alive, but the callback does not *keep* the node alive. Also, define two methods, preNotify() and noNotify(), which can be redefined to something else, very useful for testing. """ def __init__(self, obj): self.objRef = _getWeakRef(obj) def __call__(self, weakCB): notify = self.objRef() if notify is not None: self.preNotify(weakCB) notify(weakCB) else: self.noNotify() def preNotify(self, dead): """'Gets called just before our callback (self.objRef) is called""" pass def noNotify(self): """Gets called if the TopicTreeNode for this callback is dead""" pass class _TopicTreeNode: """A node in the topic tree. This contains a list of callables that are interested in the topic that this node is associated with, and contains a dictionary of subtopics, whose associated values are other _TopicTreeNodes. The topic of a node is not stored in the node, so that the tree can be implemented as a dictionary rather than a list, for ease of use (and, likely, performance). Note that it uses _NodeCallback to encapsulate a callback for when a registered listener dies, possible thanks to WeakRef. Whenever this callback is called, the onDeadListener() function, passed in at construction time, is called (unless it is None). """ def __init__(self, topicPath, onDeadListenerWeakCB): self.__subtopics = {} self.__callables = [] self.__topicPath = topicPath self.__onDeadListenerWeakCB = onDeadListenerWeakCB def getPathname(self): """The complete node path to us, ie., the topic tuple that would lead to us""" return self.__topicPath def createSubtopic(self, subtopic, topicPath): """Create a child node for subtopic""" return self.__subtopics.setdefault(subtopic, _TopicTreeNode(topicPath, self.__onDeadListenerWeakCB)) def hasSubtopic(self, subtopic): """Return true only if topic string is one of subtopics of this node""" return self.__subtopics.has_key(subtopic) def getNode(self, subtopic): """Return ref to node associated with subtopic""" return self.__subtopics[subtopic] def addCallable(self, callable): """Add a callable to list of callables for this topic node""" try: id = self.__callables.index(_getWeakRef(callable)) return self.__callables[id] except ValueError: wrCall = _getWeakRef(callable, _NodeCallback(self.__notifyDead)) self.__callables.append(wrCall) return wrCall def getCallables(self): """Get callables associated with this topic node""" return [cb() for cb in self.__callables if cb() is not None] def hasCallable(self, callable): """Return true if callable in this node""" try: self.__callables.index(_getWeakRef(callable)) return True except ValueError: return False def sendMessage(self, message): """Send a message to our callables""" deliveryCount = 0 for cb in self.__callables: listener = cb() if listener is not None: listener(message) deliveryCount += 1 return deliveryCount def removeCallable(self, callable): """Remove weak callable from our node (and return True). Does nothing if not here (and returns False).""" try: self.__callables.remove(_getWeakRef(callable)) return True except ValueError: return False def clearCallables(self): """Abandon list of callables to caller. We no longer have any callables after this method is called.""" tmpList = [cb for cb in self.__callables if cb() is not None] self.__callables = [] return tmpList def __notifyDead(self, dead): """Gets called when a listener dies, thanks to WeakRef""" #print 'TreeNODE', `self`, 'received death certificate for ', dead self.__cleanupDead() if self.__onDeadListenerWeakCB is not None: cb = self.__onDeadListenerWeakCB() if cb is not None: cb(dead) def __cleanupDead(self): """Remove all dead objects from list of callables""" self.__callables = [cb for cb in self.__callables if cb() is not None] def __str__(self): """Print us in a not-so-friendly, but readable way, good for debugging.""" strVal = [] for callable in self.getCallables(): strVal.append(_getCallableName(callable)) for topic, node in self.__subtopics.iteritems(): strVal.append(' (%s: %s)' %(topic, node)) return ''.join(strVal) class _TopicTreeRoot(_TopicTreeNode): """ The root of the tree knows how to access other node of the tree and is the gateway of the tree user to the tree nodes. It can create topics, and and remove callbacks, etc. For efficiency, it stores a dictionary of listener-topics, so that unsubscribing a listener just requires finding the topics associated to a listener, and finding the corresponding nodes of the tree. Without it, unsubscribing would require that we search the whole tree for all nodes that contain given listener. Since Publisher is a singleton, it will contain all topics in the system so it is likely to be a large tree. However, it is possible that in some runs, unsubscribe() is called very little by the user, in which case most unsubscriptions are automatic, ie caused by the listeners dying. In this case, a flag is set to indicate that the dictionary should be cleaned up at the next opportunity. This is not necessary, it is just an optimization. """ def __init__(self): self.__callbackDict = {} self.__callbackDictCleanup = 0 # all child nodes will call our __rootNotifyDead method # when one of their registered listeners dies _TopicTreeNode.__init__(self, (ALL_TOPICS,), _getWeakRef(self.__rootNotifyDead)) def addTopic(self, topic, listener): """Add topic to tree if doesnt exist, and add listener to topic node""" assert isinstance(topic, tuple) topicNode = self.__getTreeNode(topic, make=True) weakCB = topicNode.addCallable(listener) assert topicNode.hasCallable(listener) theList = self.__callbackDict.setdefault(weakCB, []) assert self.__callbackDict.has_key(weakCB) # add it only if we don't already have it try: weakTopicNode = WeakRef(topicNode) theList.index(weakTopicNode) except ValueError: theList.append(weakTopicNode) assert self.__callbackDict[weakCB].index(weakTopicNode) >= 0 def getTopics(self, listener): """Return the list of topics for given listener""" weakNodes = self.__callbackDict.get(_getWeakRef(listener), []) return [weakNode().getPathname() for weakNode in weakNodes if weakNode() is not None] def isSubscribed(self, listener, topic=None): """Return true if listener is registered for topic specified. If no topic specified, return true if subscribed to something. Use topic=getStrAllTopics() to determine if a listener will receive messages for all topics.""" weakCB = _getWeakRef(listener) if topic is None: return self.__callbackDict.has_key(weakCB) else: topicPath = _tupleize(topic) for weakNode in self.__callbackDict[weakCB]: if topicPath == weakNode().getPathname(): return True return False def unsubscribe(self, listener, topicList): """Remove listener from given list of topics. If topicList doesn't have any topics for which listener has subscribed, nothing happens.""" weakCB = _getWeakRef(listener) if not self.__callbackDict.has_key(weakCB): return cbNodes = self.__callbackDict[weakCB] if topicList is None: for weakNode in cbNodes: weakNode().removeCallable(listener) del self.__callbackDict[weakCB] return for weakNode in cbNodes: node = weakNode() if node is not None and node.getPathname() in topicList: success = node.removeCallable(listener) assert success == True cbNodes.remove(weakNode) assert not self.isSubscribed(listener, node.getPathname()) def unsubAll(self, topicList, onNoSuchTopic): """Unsubscribe all listeners registered for any topic in topicList. If a topic in the list does not exist, and onNoSuchTopic is not None, a call to onNoSuchTopic(topic) is done for that topic.""" for topic in topicList: node = self.__getTreeNode(topic) if node is not None: weakCallables = node.clearCallables() for callable in weakCallables: weakNodes = self.__callbackDict[callable] success = _removeItem(WeakRef(node), weakNodes) assert success == True if weakNodes == []: del self.__callbackDict[callable] elif onNoSuchTopic is not None: onNoSuchTopic(topic) def sendMessage(self, topic, message, onTopicNeverCreated): """Send a message for given topic to all registered listeners. If topic doesn't exist, call onTopicNeverCreated(topic).""" # send to the all-toipcs listeners deliveryCount = _TopicTreeNode.sendMessage(self, message) # send to those who listen to given topic or any of its supertopics node = self for topicItem in topic: assert topicItem != '' if node.hasSubtopic(topicItem): node = node.getNode(topicItem) deliveryCount += node.sendMessage(message) else: # topic never created, don't bother continuing if onTopicNeverCreated is not None: onTopicNeverCreated(topic) break return deliveryCount def numListeners(self): """Return a pair (live, dead) with count of live and dead listeners in tree""" dead, live = 0, 0 for cb in self.__callbackDict: if cb() is None: dead += 1 else: live += 1 return live, dead # clean up the callback dictionary after how many dead listeners callbackDeadLimit = 10 def __rootNotifyDead(self, dead): #print 'TreeROOT received death certificate for ', dead self.__callbackDictCleanup += 1 if self.__callbackDictCleanup > _TopicTreeRoot.callbackDeadLimit: self.__callbackDictCleanup = 0 oldDict = self.__callbackDict self.__callbackDict = {} for weakCB, weakNodes in oldDict.iteritems(): if weakCB() is not None: self.__callbackDict[weakCB] = weakNodes def __getTreeNode(self, topic, make=False): """Return the tree node for 'topic' from the topic tree. If it doesnt exist and make=True, create it first.""" # if the all-topics, give root; if topic == (ALL_TOPICS,): return self # not root, so traverse tree node = self path = () for topicItem in topic: path += (topicItem,) if topicItem == ALL_TOPICS: raise ValueError, 'Topic tuple must not contain ""' if make: node = node.createSubtopic(topicItem, path) elif node.hasSubtopic(topicItem): node = node.getNode(topicItem) else: return None # done return node def printCallbacks(self): strVal = ['Callbacks:\n'] for listener, weakTopicNodes in self.__callbackDict.iteritems(): topics = [topic() for topic in weakTopicNodes if topic() is not None] strVal.append(' %s: %s\n' % (_getCallableName(listener()), topics)) return ''.join(strVal) def __str__(self): return 'all: %s' % _TopicTreeNode.__str__(self) # ----------------------------------------------------------------------------- class _SingletonKey: pass class PublisherClass: """ The publish/subscribe manager. It keeps track of which listeners are interested in which topics (see subscribe()), and sends a Message for a given topic to listeners that have subscribed to that topic, with optional user data (see sendMessage()). The three important concepts for Publisher are: - listener: a function, bound method or callable object that can be called with one parameter (not counting 'self' in the case of methods). The parameter will be a reference to a Message object. E.g., these listeners are ok:: class Foo: def __call__(self, a, b=1): pass # can be called with only one arg def meth(self, a): pass # takes only one arg def meth2(self, a=2, b=''): pass # can be called with one arg def func(a, b=''): pass Foo foo Publisher().subscribe(foo) # functor Publisher().subscribe(foo.meth) # bound method Publisher().subscribe(foo.meth2) # bound method Publisher().subscribe(func) # function The three types of callables all have arguments that allow a call with only one argument. In every case, the parameter 'a' will contain the message. - topic: a single word, a tuple of words, or a string containing a set of words separated by dots, for example: 'sports.baseball'. A tuple or a dotted notation string denotes a hierarchy of topics from most general to least. For example, a listener of this topic:: ('sports','baseball') would receive messages for these topics:: ('sports', 'baseball') # because same ('sports', 'baseball', 'highscores') # because more specific but not these:: 'sports' # because more general ('sports',) # because more general () or ('') # because only for those listening to 'all' topics ('news') # because different topic - message: this is an instance of Message, containing the topic for which the message was sent, and any data the sender specified. :note: This class is visible to importers of pubsub only as a Singleton. I.e., every time you execute 'Publisher()', it's actually the same instance of PublisherClass that is returned. So to use, just do'Publisher().method()'. """ __ALL_TOPICS_TPL = (ALL_TOPICS, ) def __init__(self, singletonKey): """Construct a Publisher. This can only be done by the pubsub module. You just use pubsub.Publisher().""" if not isinstance(singletonKey, _SingletonKey): raise invalid_argument("Use Publisher() to get access to singleton") self.__messageCount = 0 self.__deliveryCount = 0 self.__topicTree = _TopicTreeRoot() # # Public API # def getDeliveryCount(self): """How many listeners have received a message since beginning of run""" return self.__deliveryCount def getMessageCount(self): """How many times sendMessage() was called since beginning of run""" return self.__messageCount def subscribe(self, listener, topic = ALL_TOPICS): """ Subscribe listener for given topic. If topic is not specified, listener will be subscribed for all topics (that listener will receive a Message for any topic for which a message is generated). This method may be called multiple times for one listener, registering it with many topics. It can also be invoked many times for a particular topic, each time with a different listener. See the class doc for requirements on listener and topic. :note: The listener is held by Publisher() only by *weak* reference. This means you must ensure you have at least one strong reference to listener, otherwise it will be DOA ("dead on arrival"). This is particularly easy to forget when wrapping a listener method in a proxy object (e.g. to bind some of its parameters), e.g.:: class Foo: def listener(self, event): pass class Wrapper: def __init__(self, fun): self.fun = fun def __call__(self, *args): self.fun(*args) foo = Foo() Publisher().subscribe( Wrapper(foo.listener) ) # whoops: DOA! wrapper = Wrapper(foo.listener) Publisher().subscribe(wrapper) # good! :note: Calling this method for the same listener, with two topics in the same branch of the topic hierarchy, will cause the listener to be notified twice when a message for the deepest topic is sent. E.g. subscribe(listener, 't1') and then subscribe(listener, ('t1','t2')) means that when calling sendMessage('t1'), listener gets one message, but when calling sendMessage(('t1','t2')), listener gets message twice. """ self.validate(listener) if topic is None: raise TypeError, 'Topic must be either a word, tuple of '\ 'words, or getStrAllTopics()' self.__topicTree.addTopic(_tupleize(topic), listener) def isSubscribed(self, listener, topic=None): """Return true if listener has subscribed to topic specified. If no topic specified, return true if subscribed to something. Use topic=getStrAllTopics() to determine if a listener will receive messages for all topics.""" return self.__topicTree.isSubscribed(listener, topic) def validate(self, listener): """Similar to isValid(), but raises a TypeError exception if not valid""" # check callable if not callable(listener): raise TypeError, 'Listener '+`listener`+' must be a '\ 'function, bound method or instance.' # ok, callable, but if method, is it bound: elif ismethod(listener) and not _isbound(listener): raise TypeError, 'Listener '+`listener`+\ ' is a method but it is unbound!' # check that it takes the right number of parameters min, d = _paramMinCount(listener) if min > 1: raise TypeError, 'Listener '+`listener`+" can't"\ ' require more than one parameter!' if min <= 0 and d == 0: raise TypeError, 'Listener '+`listener`+' lacking arguments!' assert (min == 0 and d>0) or (min == 1) def isValid(self, listener): """Return true only if listener will be able to subscribe to Publisher.""" try: self.validate(listener) return True except TypeError: return False def unsubAll(self, topics=None, onNoSuchTopic=None): """Unsubscribe all listeners subscribed for topics. Topics can be a single topic (string or tuple) or a list of topics (ie list containing strings and/or tuples). If topics is not specified, all listeners for all topics will be unsubscribed, ie. the Publisher singleton will have no topics and no listeners left. If onNoSuchTopic is given, it will be called as onNoSuchTopic(topic) for each topic that is unknown. """ if topics is None: del self.__topicTree self.__topicTree = _TopicTreeRoot() return # make sure every topics are in tuple form if isinstance(topics, list): topicList = [_tupleize(x) for x in topics] else: topicList = [_tupleize(topics)] # unsub every listener of topics self.__topicTree.unsubAll(topicList, onNoSuchTopic) def unsubscribe(self, listener, topics=None): """Unsubscribe listener. If topics not specified, listener is completely unsubscribed. Otherwise, it is unsubscribed only for the topic (the usual tuple) or list of topics (ie a list of tuples) specified. Nothing happens if listener is not actually subscribed to any of the topics. Note that if listener subscribed for two topics (a,b) and (a,c), then unsubscribing for topic (a) will do nothing. You must use getAssociatedTopics(listener) and give unsubscribe() the returned list (or a subset thereof). """ self.validate(listener) topicList = None if topics is not None: if isinstance(topics, list): topicList = [_tupleize(x) for x in topics] else: topicList = [_tupleize(topics)] self.__topicTree.unsubscribe(listener, topicList) def getAssociatedTopics(self, listener): """Return a list of topics the given listener is registered with. Returns [] if listener never subscribed. :attention: when using the return of this method to compare to expected list of topics, remember that topics that are not in the form of a tuple appear as a one-tuple in the return. E.g. if you have subscribed a listener to 'topic1' and ('topic2','subtopic2'), this method returns:: associatedTopics = [('topic1',), ('topic2','subtopic2')] """ return self.__topicTree.getTopics(listener) def sendMessage(self, topic=ALL_TOPICS, data=None, onTopicNeverCreated=None): """Send a message for given topic, with optional data, to subscribed listeners. If topic is not specified, only the listeners that are interested in all topics will receive message. The onTopicNeverCreated is an optional callback of your choice that will be called if the topic given was never created (i.e. it, or one of its subtopics, was never subscribed to by any listener). It will be called as onTopicNeverCreated(topic).""" aTopic = _tupleize(topic) message = Message(aTopic, data) self.__messageCount += 1 # send to those who listen to all topics self.__deliveryCount += \ self.__topicTree.sendMessage(aTopic, message, onTopicNeverCreated) # # Private methods # def __call__(self): """Allows for singleton""" return self def __str__(self): return str(self.__topicTree) # Create the Publisher singleton. We prevent users from (inadvertently) # instantiating more than one object, by requiring a key that is # accessible only to module. From # this point forward any calls to Publisher() will invoke the __call__ # of this instance which just returns itself. # # The only flaw with this approach is that you can't derive a new # class from Publisher without jumping through hoops. If this ever # becomes an issue then a new Singleton implementaion will need to be # employed. _key = _SingletonKey() Publisher = PublisherClass(_key) #--------------------------------------------------------------------------- class Message: """ A simple container object for the two components of a message: the topic and the user data. An instance of Message is given to your listener when called by Publisher().sendMessage(topic) (if your listener callback was registered for that topic). """ def __init__(self, topic, data): self.topic = topic self.data = data def __str__(self): return '[Topic: '+`self.topic`+', Data: '+`self.data`+']' #--------------------------------------------------------------------------- # # Code for a simple command-line test # def test(): def done(funcName): print '----------- Done %s -----------' % funcName def testParam(): def testFunc00(): pass def testFunc21(a,b,c=1): pass def testFuncA(*args): pass def testFuncAK(*args,**kwds): pass def testFuncK(**kwds): pass class Foo: def testMeth(self,a,b): pass def __call__(self, a): pass class Foo2: def __call__(self, *args): pass assert _paramMinCount(testFunc00)==(0,0) assert _paramMinCount(testFunc21)==(2,1) assert _paramMinCount(testFuncA) ==(1,0) assert _paramMinCount(testFuncAK)==(1,0) assert _paramMinCount(testFuncK) ==(0,0) foo = Foo() assert _paramMinCount(Foo.testMeth)==(2,0) assert _paramMinCount(foo.testMeth)==(2,0) assert _paramMinCount(foo)==(1,0) assert _paramMinCount(Foo2())==(1,0) done('testParam') testParam() #------------------------ _NodeCallback.notified = 0 def testPreNotifyNode(self, dead): _NodeCallback.notified += 1 print 'testPreNotifyNODE heard notification of', `dead` _NodeCallback.preNotify = testPreNotifyNode def testTreeNode(): class WS: def __init__(self, s): self.s = s def __call__(self, msg): print 'WS#', self.s, ' received msg ', msg def __str__(self): return self.s def testPreNotifyRoot(dead): print 'testPreNotifyROOT heard notification of', `dead` node = _TopicTreeNode((ALL_TOPICS,), WeakRef(testPreNotifyRoot)) boo, baz, bid = WS('boo'), WS('baz'), WS('bid') node.addCallable(boo) node.addCallable(baz) node.addCallable(boo) assert node.getCallables() == [boo,baz] assert node.hasCallable(boo) node.removeCallable(bid) # no-op assert node.hasCallable(baz) assert node.getCallables() == [boo,baz] node.removeCallable(boo) assert node.getCallables() == [baz] assert node.hasCallable(baz) assert not node.hasCallable(boo) node.removeCallable(baz) assert node.getCallables() == [] assert not node.hasCallable(baz) node2 = node.createSubtopic('st1', ('st1',)) node3 = node.createSubtopic('st2', ('st2',)) cb1, cb2, cb = WS('st1_cb1'), WS('st1_cb2'), WS('st2_cb') node2.addCallable(cb1) node2.addCallable(cb2) node3.addCallable(cb) node2.createSubtopic('st3', ('st1','st3')) node2.createSubtopic('st4', ('st1','st4')) print str(node) assert str(node) == ' (st1: st1_cb1 st1_cb2 (st4: ) (st3: )) (st2: st2_cb )' # verify send message, and that a dead listener does not get sent one delivered = node2.sendMessage('hello') assert delivered == 2 del cb1 delivered = node2.sendMessage('hello') assert delivered == 1 assert _NodeCallback.notified == 1 done('testTreeNode') testTreeNode() #------------------------ def testValidate(): class Foo: def __call__(self, a): pass def fun(self, b): pass def fun2(self, b=1): pass def fun3(self, a, b=2): pass def badFun(self): pass def badFun2(): pass def badFun3(self, a, b): pass server = Publisher() foo = Foo() server.validate(foo) server.validate(foo.fun) server.validate(foo.fun2) server.validate(foo.fun3) assert not server.isValid(foo.badFun) assert not server.isValid(foo.badFun2) assert not server.isValid(foo.badFun3) done('testValidate') testValidate() #------------------------ class SimpleListener: def __init__(self, number): self.number = number def __call__(self, message = ''): print 'Callable #%s got the message "%s"' %(self.number, message) def notify(self, message): print '%s.notify() got the message "%s"' %(self.number, message) def __str__(self): return "SimpleListener_%s" % self.number def testSubscribe(): publisher = Publisher() topic1 = 'politics' topic2 = ('history','middle age') topic3 = ('politics','UN') topic4 = ('politics','NATO') topic5 = ('politics','NATO','US') lisnr1 = SimpleListener(1) lisnr2 = SimpleListener(2) def func(message, a=1): print 'Func received message "%s"' % message lisnr3 = func lisnr4 = lambda x: 'Lambda received message "%s"' % x assert not publisher.isSubscribed(lisnr1) assert not publisher.isSubscribed(lisnr2) assert not publisher.isSubscribed(lisnr3) assert not publisher.isSubscribed(lisnr4) publisher.subscribe(lisnr1, topic1) assert publisher.getAssociatedTopics(lisnr1) == [(topic1,)] publisher.subscribe(lisnr1, topic2) publisher.subscribe(lisnr1, topic1) # do it again, should be no-op assert publisher.getAssociatedTopics(lisnr1) == [(topic1,),topic2] publisher.subscribe(lisnr2.notify, topic3) assert publisher.getAssociatedTopics(lisnr2.notify) == [topic3] assert publisher.getAssociatedTopics(lisnr1) == [(topic1,),topic2] publisher.subscribe(lisnr3, topic5) assert publisher.getAssociatedTopics(lisnr3) == [topic5] assert publisher.getAssociatedTopics(lisnr2.notify) == [topic3] assert publisher.getAssociatedTopics(lisnr1) == [(topic1,),topic2] publisher.subscribe(lisnr4) print "Publisher tree: ", publisher assert publisher.isSubscribed(lisnr1) assert publisher.isSubscribed(lisnr1, topic1) assert publisher.isSubscribed(lisnr1, topic2) assert publisher.isSubscribed(lisnr2.notify) assert publisher.isSubscribed(lisnr3, topic5) assert publisher.isSubscribed(lisnr4, ALL_TOPICS) expectTopicTree = 'all: (politics: SimpleListener_1 (UN: SimpleListener_2.notify ) (NATO: (US: func ))) (history: (middle age: SimpleListener_1 ))' print "Publisher tree: ", publisher assert str(publisher) == expectTopicTree publisher.unsubscribe(lisnr1, 'booboo') # should do nothing assert publisher.getAssociatedTopics(lisnr1) == [(topic1,),topic2] assert publisher.getAssociatedTopics(lisnr2.notify) == [topic3] assert publisher.getAssociatedTopics(lisnr3) == [topic5] publisher.unsubscribe(lisnr1, topic1) assert publisher.getAssociatedTopics(lisnr1) == [topic2] assert publisher.getAssociatedTopics(lisnr2.notify) == [topic3] assert publisher.getAssociatedTopics(lisnr3) == [topic5] publisher.unsubscribe(lisnr1, topic2) publisher.unsubscribe(lisnr1, topic2) publisher.unsubscribe(lisnr2.notify, topic3) publisher.unsubscribe(lisnr3, topic5) assert publisher.getAssociatedTopics(lisnr1) == [] assert publisher.getAssociatedTopics(lisnr2.notify) == [] assert publisher.getAssociatedTopics(lisnr3) == [] publisher.unsubscribe(lisnr4) expectTopicTree = 'all: (politics: (UN: ) (NATO: (US: ))) (history: (middle age: ))' print "Publisher tree: ", publisher assert str(publisher) == expectTopicTree assert publisher.getDeliveryCount() == 0 assert publisher.getMessageCount() == 0 publisher.unsubAll() assert str(publisher) == 'all: ' done('testSubscribe') testSubscribe() #------------------------ def testUnsubAll(): publisher = Publisher() topic1 = 'politics' topic2 = ('history','middle age') topic3 = ('politics','UN') topic4 = ('politics','NATO') topic5 = ('politics','NATO','US') lisnr1 = SimpleListener(1) lisnr2 = SimpleListener(2) def func(message, a=1): print 'Func received message "%s"' % message lisnr3 = func lisnr4 = lambda x: 'Lambda received message "%s"' % x publisher.subscribe(lisnr1, topic1) publisher.subscribe(lisnr1, topic2) publisher.subscribe(lisnr2.notify, topic3) publisher.subscribe(lisnr3, topic2) publisher.subscribe(lisnr3, topic5) publisher.subscribe(lisnr4) expectTopicTree = 'all: (politics: SimpleListener_1 (UN: SimpleListener_2.notify ) (NATO: (US: func ))) (history: (middle age: SimpleListener_1 func ))' print "Publisher tree: ", publisher assert str(publisher) == expectTopicTree publisher.unsubAll(topic1) assert publisher.getAssociatedTopics(lisnr1) == [topic2] assert not publisher.isSubscribed(lisnr1, topic1) publisher.unsubAll(topic2) print publisher assert publisher.getAssociatedTopics(lisnr1) == [] assert publisher.getAssociatedTopics(lisnr3) == [topic5] assert not publisher.isSubscribed(lisnr1) assert publisher.isSubscribed(lisnr3, topic5) #print "Publisher tree: ", publisher expectTopicTree = 'all: (politics: (UN: SimpleListener_2.notify ) (NATO: (US: func ))) (history: (middle age: ))' assert str(publisher) == expectTopicTree publisher.unsubAll(ALL_TOPICS) #print "Publisher tree: ", publisher expectTopicTree = 'all: (politics: (UN: SimpleListener_2.notify ) (NATO: (US: func ))) (history: (middle age: ))' assert str(publisher) == expectTopicTree publisher.unsubAll() done('testUnsubAll') testUnsubAll() #------------------------ def testSend(): publisher = Publisher() called = [] class TestListener: def __init__(self, num): self.number = num def __call__(self, b): called.append( 'TL%scb' % self.number ) def notify(self, b): called.append( 'TL%sm' % self.number ) def funcListener(b): called.append('func') lisnr1 = TestListener(1) lisnr2 = TestListener(2) lisnr3 = funcListener lisnr4 = lambda x: called.append('lambda') topic1 = 'politics' topic2 = 'history' topic3 = ('politics','UN') topic4 = ('politics','NATO','US') topic5 = ('politics','NATO') publisher.subscribe(lisnr1, topic1) publisher.subscribe(lisnr2, topic2) publisher.subscribe(lisnr2.notify, topic2) publisher.subscribe(lisnr3, topic4) publisher.subscribe(lisnr4) print publisher # setup ok, now test send/receipt publisher.sendMessage(topic1) assert called == ['lambda','TL1cb'] called = [] publisher.sendMessage(topic2) assert called == ['lambda','TL2cb','TL2m'] called = [] publisher.sendMessage(topic3) assert called == ['lambda','TL1cb'] called = [] publisher.sendMessage(topic4) assert called == ['lambda','TL1cb','func'] called = [] publisher.sendMessage(topic5) assert called == ['lambda','TL1cb'] assert publisher.getDeliveryCount() == 12 assert publisher.getMessageCount() == 5 # test weak referencing works: _NodeCallback.notified = 0 del lisnr2 called = [] publisher.sendMessage(topic2) assert called == ['lambda'] assert _NodeCallback.notified == 2 done('testSend') testSend() assert _NodeCallback.notified == 5 def testDead(): # verify if weak references work as expected print '------ Starting testDead ----------' node = _TopicTreeNode('t1', None) lisnr1 = SimpleListener(1) lisnr2 = SimpleListener(2) lisnr3 = SimpleListener(3) lisnr4 = SimpleListener(4) node.addCallable(lisnr1) node.addCallable(lisnr2) node.addCallable(lisnr3) node.addCallable(lisnr4) print 'Deleting listeners first' _NodeCallback.notified = 0 del lisnr1 del lisnr2 assert _NodeCallback.notified == 2 print 'Deleting node first' _NodeCallback.notified = 0 del node del lisnr3 del lisnr4 assert _NodeCallback.notified == 0 lisnr1 = SimpleListener(1) lisnr2 = SimpleListener(2) lisnr3 = SimpleListener(3) lisnr4 = SimpleListener(4) # try same with root of tree node = _TopicTreeRoot() node.addTopic(('',), lisnr1) node.addTopic(('',), lisnr2) node.addTopic(('',), lisnr3) node.addTopic(('',), lisnr4) # add objects that will die immediately to see if cleanup occurs # this must be done visually as it is a low-level detail _NodeCallback.notified = 0 _TopicTreeRoot.callbackDeadLimit = 3 node.addTopic(('',), SimpleListener(5)) node.addTopic(('',), SimpleListener(6)) node.addTopic(('',), SimpleListener(7)) print node.numListeners() assert node.numListeners() == (4, 3) node.addTopic(('',), SimpleListener(8)) assert node.numListeners() == (4, 0) assert _NodeCallback.notified == 4 print 'Deleting listeners first' _NodeCallback.notified = 0 del lisnr1 del lisnr2 assert _NodeCallback.notified == 2 print 'Deleting node first' _NodeCallback.notified = 0 del node del lisnr3 del lisnr4 assert _NodeCallback.notified == 0 done('testDead') testDead() print 'Exiting tests' #--------------------------------------------------------------------------- if __name__ == '__main__': test() phatch-0.2.7/phatch/other/pyWx/0000755000000000000000000000000011346363116016270 5ustar rootroot00000000000000phatch-0.2.7/phatch/other/pyWx/TextCtrlAutoComplete.py0000644000000000000000000005226411346363116022746 0ustar rootroot00000000000000# Copyright: (c) 2006 CDF Inc. ( http://www.cdf-imaging.com ) # License: wxWidgets(based on LGPL,http://www.wxwidgets.org/about/newlicen.htm) # Website: http://wiki.wxpython.org/TextCtrlAutoComplete ''' wxPython Custom Widget Collection 20060207 Written By: Edward Flick (eddy -=at=- cdf-imaging -=dot=- com) Michele Petrazzo (michele -=dot=- petrazzo -=at=- unipex -=dot=- it) Will Sadkin (wsadkin-=at=- nameconnector -=dot=- com) Copyright 2006 (c) CDF Inc. ( http://www.cdf-imaging.com ) Contributed to the wxPython project under the wxPython project's license. This was slightly adapted by Stani for Phatch: - disable the parent event binding - change styles of the popup and listctrl ''' import locale, wx, sys, cStringIO import wx.lib.mixins.listctrl as listmix from wx import ImageFromStream, BitmapFromImage #---------------------------------------------------------------------- def getSmallUpArrowData(): return \ '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x10\x08\x06\ \x00\x00\x00\x1f\xf3\xffa\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\ \x00\x00C\xb0\x89\ \xd3.\x10\xd1m\xc3\xe5*\xbc.\x80i\xc2\x17.\x8c\xa3y\x81\x01\x00\xa1\x0e\x04e\ ?\x84B\xef\x00\x00\x00\x00IEND\xaeB`\x82" def getSmallDnArrowBitmap(): return BitmapFromImage(getSmallDnArrowImage()) def getSmallDnArrowImage(): stream = cStringIO.StringIO(getSmallDnArrowData()) return ImageFromStream(stream) #---------------------------------------------------------------------- class myListCtrl(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin): def __init__(self, parent, ID=-1, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0): wx.ListCtrl.__init__(self, parent, ID, pos, size, style) listmix.ListCtrlAutoWidthMixin.__init__(self) class TextCtrlAutoComplete (wx.TextCtrl, listmix.ColumnSorterMixin ): def __init__ ( self, parent, colNames=None, choices = None, multiChoices=None, showHead=True, dropDownClick=True, colFetch=-1, colSearch=0, hideOnNoMatch=True, selectCallback=None, entryCallback=None, matchFunction=None, **therest) : ''' Constructor works just like wx.TextCtrl except you can pass in a list of choices. You can also change the choice list at any time by calling setChoices. ''' if therest.has_key('style'): therest['style']=wx.TE_PROCESS_ENTER | therest['style'] else: therest['style']=wx.TE_PROCESS_ENTER wx.TextCtrl.__init__(self, parent, **therest ) #Some variables self._dropDownClick = dropDownClick self._colNames = colNames self._multiChoices = multiChoices self._showHead = showHead self._choices = choices self._lastinsertionpoint = 0 self._hideOnNoMatch = hideOnNoMatch self._selectCallback = selectCallback self._entryCallback = entryCallback self._matchFunction = matchFunction self._screenheight = wx.SystemSettings.GetMetric( wx.SYS_SCREEN_Y ) #sort variable needed by listmix self.itemDataMap = dict() #Load and sort data if not (self._multiChoices or self._choices): raise ValueError, "Pass me at least one of multiChoices OR choices" #widgets #Control the style self.dropdown = wx.PopupWindow( self, wx.SIMPLE_BORDER ) flags = wx.NO_BORDER | wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.LC_SORT_ASCENDING if not (showHead and multiChoices) : flags = flags | wx.LC_NO_HEADER #Create the list and bind the events self.dropdownlistbox = myListCtrl( self.dropdown, style=flags, pos=wx.Point( 0, 0) ) if sys.platform.startswith('linux'): self.dropdownlistbox.SetBackgroundColour( wx.SystemSettings_GetColour(wx.SYS_COLOUR_INFOBK)) #initialize the parent if multiChoices: ln = len(multiChoices) else: ln = 1 #else: ln = len(choices) listmix.ColumnSorterMixin.__init__(self, ln) #load the data if multiChoices: self.SetMultipleChoices (multiChoices, colSearch=colSearch, colFetch=colFetch) else: self.SetChoices ( choices ) gp = self #while ( gp != None ) : gp.Bind ( wx.EVT_MOVE , self.onControlChanged, gp ) gp.Bind ( wx.EVT_SIZE , self.onControlChanged, gp ) #gp = gp.GetParent() self.Bind( wx.EVT_KILL_FOCUS, self.onControlChanged, self ) self.Bind( wx.EVT_TEXT , self.onEnteredText, self ) self.Bind( wx.EVT_KEY_DOWN , self.onKeyDown, self ) #If need drop down on left click if dropDownClick: self.Bind ( wx.EVT_LEFT_DOWN , self.onClickToggleDown, self ) self.Bind ( wx.EVT_LEFT_UP , self.onClickToggleUp, self ) self.dropdown.Bind( wx.EVT_LISTBOX , self.onListItemSelected, self.dropdownlistbox ) self.dropdownlistbox.Bind(wx.EVT_LEFT_DOWN, self.onListClick) self.dropdownlistbox.Bind(wx.EVT_LEFT_DCLICK, self.onListDClick) self.dropdownlistbox.Bind(wx.EVT_LIST_COL_CLICK, self.onListColClick) self.il = wx.ImageList(16, 16) self.sm_dn = self.il.Add(getSmallDnArrowBitmap()) self.sm_up = self.il.Add(getSmallUpArrowBitmap()) self.dropdownlistbox.SetImageList(self.il, wx.IMAGE_LIST_SMALL) self._ascending = True #-- methods called from mixin class def GetSortImages(self): return (self.sm_dn, self.sm_up) def GetListCtrl(self): return self.dropdownlistbox # -- event methods def onListClick(self, evt): toSel, flag = self.dropdownlistbox.HitTest( evt.GetPosition() ) #no values on poition, return if toSel == -1: return self.dropdownlistbox.Select(toSel) def onListDClick(self, evt): self._setValueFromSelected() def onListColClick(self, evt): col = evt.GetColumn() #reverse the sort if col == self._colSearch: self._ascending = not self._ascending self.SortListItems( evt.GetColumn(), ascending=self._ascending ) self._colSearch = evt.GetColumn() evt.Skip() def onEnteredText(self, event): text = event.GetString() if self._entryCallback: self._entryCallback() if not text: # control is empty; hide dropdown if shown: if self.dropdown.IsShown(): self._showDropDown(False) event.Skip() return found = False if self._multiChoices: #load the sorted data into the listbox dd = self.dropdownlistbox choices = [dd.GetItem(x, self._colSearch).GetText() for x in xrange(dd.GetItemCount())] else: choices = self._choices for numCh, choice in enumerate(choices): if self._matchFunction and self._matchFunction(text, choice): found = True elif choice.lower().startswith(text.lower()) : found = True if found: self._showDropDown(True) item = self.dropdownlistbox.GetItem(numCh) toSel = item.GetId() self.dropdownlistbox.Select(toSel) break if not found: self.dropdownlistbox.Select(self.dropdownlistbox.GetFirstSelected(), False) if self._hideOnNoMatch: self._showDropDown(False) self._listItemVisible() event.Skip () def onKeyDown ( self, event ) : """ Do some work when the user press on the keys: up and down: move the cursor left and right: move the search """ skip = True sel = self.dropdownlistbox.GetFirstSelected() visible = self.dropdown.IsShown() KC = event.GetKeyCode() if KC == wx.WXK_DOWN : if sel < (self.dropdownlistbox.GetItemCount () - 1) : self.dropdownlistbox.Select ( sel+1 ) self._listItemVisible() self._showDropDown () skip = False elif KC == wx.WXK_UP : if sel > 0 : self.dropdownlistbox.Select ( sel - 1 ) self._listItemVisible() self._showDropDown () skip = False elif KC == wx.WXK_LEFT : if not self._multiChoices: return if self._colSearch > 0: self._colSearch -=1 self._showDropDown () elif KC == wx.WXK_RIGHT: if not self._multiChoices: return if self._colSearch < self.dropdownlistbox.GetColumnCount() -1: self._colSearch += 1 self._showDropDown() if visible : if event.GetKeyCode() in [wx.WXK_RETURN,wx.WXK_TAB] : self._setValueFromSelected() skip = False if event.GetKeyCode() == wx.WXK_ESCAPE : self._showDropDown( False ) skip = False if skip : event.Skip() def onListItemSelected (self, event): self._setValueFromSelected() event.Skip() def onClickToggleDown(self, event): self._lastinsertionpoint = self.GetInsertionPoint() event.Skip () def onClickToggleUp ( self, event ) : if ( self.GetInsertionPoint() == self._lastinsertionpoint ) : self._showDropDown ( not self.dropdown.IsShown() ) event.Skip () def onControlChanged(self, event): self._showDropDown( False ) event.Skip() # -- Interfaces methods def SetMultipleChoices(self, choices, colSearch=0, colFetch=-1): ''' Set multi-column choice ''' self._multiChoices = choices self._choices = None if not isinstance(self._multiChoices, list): self._multiChoices = [ x for x in self._multiChoices] flags = wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.LC_SORT_ASCENDING if not self._showHead: flags |= wx.LC_NO_HEADER self.dropdownlistbox.SetWindowStyleFlag(flags) #prevent errors on "old" systems if sys.version.startswith("2.3"): self._multiChoices.sort(lambda x, y: cmp(x[0].lower(), y[0].lower())) else: self._multiChoices.sort(key=lambda x: locale.strxfrm(x[0]).lower() ) self._updateDataList(self._multiChoices) lChoices = len(choices) if lChoices < 2: raise ValueError, "You have to pass me a multi-dimension list" for numCol, rowValues in enumerate(choices[0]): if self._colNames: colName = self._colNames[numCol] else: colName = "Select %i" % numCol self.dropdownlistbox.InsertColumn(numCol, colName) for numRow, valRow in enumerate(choices): for numCol, colVal in enumerate(valRow): if numCol == 0: index = self.dropdownlistbox.InsertImageStringItem(sys.maxint, colVal, -1) self.dropdownlistbox.SetStringItem(index, numCol, colVal) self.dropdownlistbox.SetItemData(index, numRow) self._setListSize() self._colSearch = colSearch self._colFetch = colFetch def SetChoices(self, choices): ''' Sets the choices available in the popup wx.ListBox. The items will be sorted case insensitively. ''' self._choices = choices self._multiChoices = None flags = wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.LC_SORT_ASCENDING | wx.LC_NO_HEADER self.dropdownlistbox.SetWindowStyleFlag(flags) if not isinstance(choices, list): self._choices = [ x for x in choices] #prevent errors on "old" systems if sys.version.startswith("2.3"): self._choices.sort(lambda x, y: cmp(x.lower(), y.lower())) else: self._choices.sort(key=lambda x: locale.strxfrm(x).lower()) self._updateDataList(self._choices) self.dropdownlistbox.InsertColumn(0, "") for num, colVal in enumerate(self._choices): index = self.dropdownlistbox.InsertImageStringItem(sys.maxint, colVal, -1) self.dropdownlistbox.SetStringItem(index, 0, colVal) self.dropdownlistbox.SetItemData(index, num) self._setListSize() # there is only one choice for both search and fetch if setting a single column: self._colSearch = 0 self._colFetch = -1 def GetChoices(self): if self._choices: return self._choices else: return self._multiChoices def SetSelectCallback(self, cb=None): self._selectCallback = cb def SetEntryCallback(self, cb=None): self._entryCallback = cb def SetMatchFunction(self, mf=None): self._matchFunction = mf #-- Internal methods def _setValueFromSelected( self ) : ''' Sets the wx.TextCtrl value from the selected wx.ListCtrl item. Will do nothing if no item is selected in the wx.ListCtrl. ''' sel = self.dropdownlistbox.GetFirstSelected() if sel > -1: if self._colFetch != -1: col = self._colFetch else: col = self._colSearch itemtext = self.dropdownlistbox.GetItem(sel, col).GetText() if self._selectCallback: dd = self.dropdownlistbox values = [dd.GetItem(sel, x).GetText() for x in xrange(dd.GetColumnCount())] self._selectCallback( values ) self.SetValue (itemtext) self.SetInsertionPointEnd () self.SetSelection ( -1, -1 ) self._showDropDown ( False ) def _showDropDown ( self, show = True ) : ''' Either display the drop down list (show = True) or hide it (show = False). ''' if show : size = self.dropdown.GetSize() width, height = self . GetSizeTuple() x, y = self . ClientToScreenXY ( 0, height ) if size.GetWidth() != width : size.SetWidth(width) self.dropdown.SetSize(size) self.dropdownlistbox.SetSize(self.dropdown.GetClientSize()) if (y + size.GetHeight()) < self._screenheight : self.dropdown . SetPosition ( wx.Point(x, y) ) else: self.dropdown . SetPosition ( wx.Point(x, y - height - size.GetHeight()) ) self.dropdown.Show ( show ) def _listItemVisible( self ) : ''' Moves the selected item to the top of the list ensuring it is always visible. ''' toSel = self.dropdownlistbox.GetFirstSelected () if toSel == -1: return self.dropdownlistbox.EnsureVisible( toSel ) def _updateDataList(self, choices): #delete, if need, all the previous data if self.dropdownlistbox.GetColumnCount() != 0: self.dropdownlistbox.DeleteAllColumns() self.dropdownlistbox.DeleteAllItems() #and update the dict if choices: for numVal, data in enumerate(choices): self.itemDataMap[numVal] = data else: numVal = 0 self.SetColumnCount(numVal) def _setListSize(self): if self._multiChoices: choices = self._multiChoices else: choices = self._choices longest = 0 for choice in choices : longest = max(len(choice), longest) longest += 3 itemcount = min( len( choices ) , 7 ) + 2 charheight = self.dropdownlistbox.GetCharHeight() charwidth = self.dropdownlistbox.GetCharWidth() #self.popupsize = wx.Size( charwidth*longest, charheight*itemcount ) width = max(self.GetSize()[0],charwidth*longest) self.popupsize = wx.Size(width, charheight*itemcount ) self.dropdownlistbox.SetSize ( self.popupsize ) self.dropdown.SetClientSize( self.popupsize ) class test: def __init__(self): args = dict() if 0: args["colNames"] = ("col1", "col2") args["multiChoices"] = [ ("Zoey","WOW"), ("Alpha", "wxPython"), ("Ceda","Is"), ("Beta", "fantastic"), ("zoebob", "!!")] args["colFetch"] = 1 else: args["choices"] = ["123", "cs", "cds", "Bob","Marley","Alpha"] args["selectCallback"] = self.selectCallback self.dynamic_choices = [ 'aardvark', 'abandon', 'acorn', 'acute', 'adore', 'aegis', 'ascertain', 'asteroid', 'beautiful', 'bold', 'classic', 'daring', 'dazzling', 'debonair', 'definitive', 'effective', 'elegant', 'http://python.org', 'http://www.google.com', 'fabulous', 'fantastic', 'friendly', 'forgiving', 'feature', 'sage', 'scarlet', 'scenic', 'seaside', 'showpiece', 'spiffy', 'www.wxPython.org', 'www.osafoundation.org' ] app = wx.PySimpleApp() frm = wx.Frame(None,-1,"Test",style=wx.TAB_TRAVERSAL|wx.DEFAULT_FRAME_STYLE) panel = wx.Panel(frm) sizer = wx.BoxSizer(wx.VERTICAL) self._ctrl = TextCtrlAutoComplete(panel, **args) but = wx.Button(panel,label="Set other multi-choice") but.Bind(wx.EVT_BUTTON, self.onBtMultiChoice) but2 = wx.Button(panel,label="Set other one-colum choice") but2.Bind(wx.EVT_BUTTON, self.onBtChangeChoice) but3 = wx.Button(panel,label="Set the starting choices") but3.Bind(wx.EVT_BUTTON, self.onBtStartChoices) but4 = wx.Button(panel,label="Enable dynamic choices") but4.Bind(wx.EVT_BUTTON, self.onBtDynamicChoices) sizer.Add(but, 0, wx.ADJUST_MINSIZE, 0) sizer.Add(but2, 0, wx.ADJUST_MINSIZE, 0) sizer.Add(but3, 0, wx.ADJUST_MINSIZE, 0) sizer.Add(but4, 0, wx.ADJUST_MINSIZE, 0) sizer.Add(self._ctrl, 0, wx.EXPAND|wx.ADJUST_MINSIZE, 0) panel.SetAutoLayout(True) panel.SetSizer(sizer) sizer.Fit(panel) sizer.SetSizeHints(panel) panel.Layout() app.SetTopWindow(frm) frm.Show() but.SetFocus() #wx.CallAfter(self._ctrl._showDropDown,True) app.MainLoop() def onBtChangeChoice(self, event): #change the choices self._ctrl.SetChoices(["123", "cs", "cds", "Bob","Marley","Alpha"]) self._ctrl.SetEntryCallback(None) self._ctrl.SetMatchFunction(None) def onBtMultiChoice(self, event): #change the choices self._ctrl.SetMultipleChoices( [ ("Test","Hello"), ("Other word","World"), ("Yes!","it work?") ], colFetch = 1 ) self._ctrl.SetEntryCallback(None) self._ctrl.SetMatchFunction(None) def onBtStartChoices(self, event): #change the choices self._ctrl.SetMultipleChoices( [ ("Zoey","WOW"), ("Alpha", "wxPython"), ("Ceda","Is"), ("Beta", "fantastic"), ("zoebob", "!!")], colFetch = 1 ) self._ctrl.SetEntryCallback(None) self._ctrl.SetMatchFunction(None) def onBtDynamicChoices(self, event): ''' Demonstrate dynamic adjustment of the auto-complete list, based on what's been typed so far: ''' self._ctrl.SetChoices(self.dynamic_choices) self._ctrl.SetEntryCallback(self.setDynamicChoices) self._ctrl.SetMatchFunction(self.match) def match(self, text, choice): ''' Demonstrate "smart" matching feature, by ignoring http:// and www. when doing matches. ''' t = text.lower() c = choice.lower() if c.startswith(t): return True if c.startswith(r'http://'): c = c[7:] if c.startswith(t): return True if c.startswith('www.'): c = c[4:] return c.startswith(t) def setDynamicChoices(self): ctrl = self._ctrl text = ctrl.GetValue().lower() current_choices = ctrl.GetChoices() choices = [choice for choice in self.dynamic_choices if self.match(text, choice)] if choices != current_choices: ctrl.SetChoices(choices) def selectCallback(self, values): """ Simply function that receive the row values when the user select an item """ print "Select Callback called...:", values if __name__ == "__main__": test() phatch-0.2.7/phatch/other/pyWx/__init__.py0000644000000000000000000000142311346363116020401 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. phatch-0.2.7/phatch/other/pyWx/img2img.py0000644000000000000000000000046311346363116020200 0ustar rootroot00000000000000## This file imports items from the wx package into the wxPython package for ## backwards compatibility. Some names will also have a 'wx' added on if ## that is how they used to be named in the old wxPython package. import wx.tools.img2img convert = wx.tools.img2img.convert main = wx.tools.img2img.main phatch-0.2.7/phatch/other/pyWx/img2py.py0000755000000000000000000002136011346363116020056 0ustar rootroot00000000000000#---------------------------------------------------------------------- # Name: wxPython.tools.img2py # Purpose: Convert an image to Python code. # # Author: Robin Dunn # # RCS-ID: $Id: img2py.py,v 1.5 2003/12/22 19:09:46 RD Exp $ # Copyright: (c) 2002 by Total Control Software # Licence: wxWindows license #---------------------------------------------------------------------- # 12/21/2003 - Jeff Grimmett (grimmtooth@softhome.net) # # o V2.5 compatability update # """ img2py.py -- Convert an image to PNG format and embed it in a Python module with appropriate code so it can be loaded into a program at runtime. The benefit is that since it is Python source code it can be delivered as a .pyc or 'compiled' into the program using freeze, py2exe, etc. Usage: img2py.py [options] image_file python_file Options: -m <#rrggbb> If the original image has a mask or transparency defined it will be used by default. You can use this option to override the default or provide a new mask by specifying a colour in the image to mark as transparent. -n Normally generic names (getBitmap, etc.) are used for the image access functions. If you use this option you can specify a name that should be used to customize the access fucntions, (getNameBitmap, etc.) -c Maintain a catalog of names that can be used to reference images. Catalog can be accessed via catalog and index attributes of the module. If the -n option is specified then is used for the catalog key and index value, otherwise the filename without any path or extension is used as the key. -a This flag specifies that the python_file should be appended to instead of overwritten. This in combination with -n will allow you to put multiple images in one Python source file. -u Don't use compression. Leaves the data uncompressed. -i Also output a function to return the image as a wxIcon. """ # # Changes: # - Cliff Wells # 20021206: Added catalog (-c) option. # # 12/21/2003 - Jeff Grimmett (grimmtooth@softhome.net) # # o V2.5 compatability update # import cPickle import cStringIO import getopt import glob import os import sys import tempfile import zlib import wx import img2img def crunch_data(data, compressed): # compress it? if compressed: data = zlib.compress(data, 9) # convert to a printable format, so it can be in a Python source file data = repr(data) # This next bit is borrowed from PIL. It is used to wrap the text intelligently. fp = cStringIO.StringIO() data = data + " " # buffer for the +1 test c = i = 0 word = "" octdigits = "01234567" hexdigits = "0123456789abcdef" while i < len(data): if data[i] != "\\": word = data[i] i = i + 1 else: if data[i+1] in octdigits: for n in range(2, 5): if data[i+n] not in octdigits: break word = data[i:i+n] i = i + n elif data[i+1] == 'x': for n in range(2, 5): if data[i+n] not in hexdigits: break word = data[i:i+n] i = i + n else: word = data[i:i+2] i = i + 2 l = len(word) if c + l >= 78-1: fp.write("\\\n") c = 0 fp.write(word) c = c + l # return the formatted compressed data return fp.getvalue() def main(args): if not args or ("-h" in args): print __doc__ return # some bitmap related things need to have a wxApp initialized... if wx.GetApp() is None: app = wx.PySimpleApp() append = 0 compressed = 1 maskClr = None imgName = "" icon = 0 catalog = 0 try: opts, fileArgs = getopt.getopt(args, "auicn:m:") except getopt.GetoptError: print __doc__ return for opt, val in opts: if opt == "-a": append = 1 elif opt == "-u": compressed = 0 elif opt == "-n": imgName = val elif opt == "-m": maskClr = val elif opt == "-i": icon = 1 elif opt == "-c": catalog = 1 if len(fileArgs) != 2: print __doc__ return image_file, python_file = fileArgs # convert the image file to a temporary file tfname = tempfile.mktemp() ok, msg = img2img.convert(image_file, maskClr, None, tfname, wx.BITMAP_TYPE_PNG, ".png") if not ok: print msg return data = open(tfname, "rb").read() data = crunch_data(data, compressed) os.unlink(tfname) if append: out = open(python_file, "a") else: out = open(python_file, "w") if catalog: pyPath, pyFile = os.path.split(python_file) imgPath, imgFile = os.path.split(image_file) if not imgName: imgName = os.path.splitext(imgFile)[0] print "\nWarning: -n not specified. Using filename (%s) for catalog entry." % imgName old_index = [] if append: # check to see if catalog exists already (file may have been created # with an earlier version of img2py or without -c option) oldSysPath = sys.path[:] sys.path = [pyPath] # make sure we don't import something else by accident mod = __import__(os.path.splitext(pyFile)[0]) if 'index' not in dir(mod): print "\nWarning: %s was originally created without catalog." % python_file print " Any images already in file will not be cataloged.\n" out.write("\n# ***************** Catalog starts here *******************") out.write("\n\ncatalog = {}\n") out.write("index = []\n\n") out.write("class ImageClass: pass\n\n") else: # save a copy of the old index so we can warn about duplicate names old_index[:] = mod.index[:] del mod sys.path = oldSysPath[:] out.write("#" + "-" * 70 + "\n") if not append: out.write("# This file was generated by %s\n#\n" % sys.argv[0]) out.write("from wx import ImageFromStream, BitmapFromImage\n") if icon: out.write("from wx import EmptyIcon\n") if compressed: out.write("import cStringIO, zlib\n\n\n") else: out.write("import cStringIO\n\n\n") if catalog: out.write("catalog = {}\n") out.write("index = []\n\n") out.write("class ImageClass: pass\n\n") if compressed: out.write("def get%sData():\n" " return zlib.decompress(\n%s)\n\n" % (imgName, data)) else: out.write("def get%sData():\n" " return \\\n%s\n\n" % (imgName, data)) out.write("def get%sBitmap():\n" " return BitmapFromImage(get%sImage())\n\n" "def get%sImage():\n" " stream = cStringIO.StringIO(get%sData())\n" " return ImageFromStream(stream)\n\n" % tuple([imgName] * 4)) if icon: out.write("def get%sIcon():\n" " icon = EmptyIcon()\n" " icon.CopyFromBitmap(get%sBitmap())\n" " return icon\n\n" % tuple([imgName] * 2)) if catalog: if imgName in old_index: print "Warning: %s already in catalog." % imgName print " Only the last entry will be accessible.\n" old_index.append(imgName) out.write("index.append('%s')\n" % imgName) out.write("catalog['%s'] = ImageClass()\n" % imgName) out.write("catalog['%s'].getData = get%sData\n" % tuple([imgName] * 2)) out.write("catalog['%s'].getImage = get%sImage\n" % tuple([imgName] * 2)) out.write("catalog['%s'].getBitmap = get%sBitmap\n" % tuple([imgName] * 2)) if icon: out.write("catalog['%s'].getIcon = get%sIcon\n" % tuple([imgName] * 2)) out.write("\n\n") if imgName: n_msg = ' using "%s"' % imgName else: n_msg = "" if maskClr: m_msg = " with mask %s" % maskClr else: m_msg = "" print "Embedded %s%s into %s%s" % (image_file, n_msg, python_file, m_msg) if __name__ == "__main__": main(sys.argv[1:]) phatch-0.2.7/phatch/other/pyWx/toasterbox.py0000644000000000000000000005605011346363116021042 0ustar rootroot00000000000000# --------------------------------------------------------------------------- # # TOASTERBOX wxPython IMPLEMENTATION # Ported And Enhanced From wxWidgets Contribution (Aj Bommarito) By: # # Andrea Gavana, @ 16 September 2005 # Latest Revision: 29 May 2009, 09.00 GMT # # # TODO/Caveats List # # 1. Any Idea? # # # For All Kind Of Problems, Requests Of Enhancements And Bug Reports, Please # Write To Me At: # # andrea.gavana@gmail.com # gavana@kpo.kz # # Or, Obviously, To The wxPython Mailing List!!! # # # End Of Comments # --------------------------------------------------------------------------- # """ ToasterBox is a cross-platform widget to make the creation of MSN style "toaster" popups easier. Description =========== ToasterBox is a cross-platform widget to make the creation of MSN style "toaster" popups easier. The syntax is really easy especially if you are familiar with the syntax of wxPython. It has 2 main styles: - TB_SIMPLE: using this style, you will be able to specify a background image for ToasterBox, text properties as text colour, font and label. - TB_COMPLEX: this style will allow you to put almost any control inside a ToasterBox. You can add a panel in which you can put all the controls you like. Both styles support the setting of ToasterBox position (on screen coordinates), size, the time after which the ToasterBox is destroyed (linger), and the scroll speed of ToasterBox. Supported Platforms =================== ToasterBox has been tested on the following platforms: - Windows (verified on Windows XP, 2000) - Linux - Mac License And Version =================== ToasterBox is freeware and distributed under the wxPython license. Latest revision: Andrea Gavana @ 29 May 2009, 09.00 GMT Version 0.2 """ import textwrap import wx from wx.lib.statbmp import GenStaticBitmap as StaticBitmap # Define Window List, We Use It Globally winlist = [] TB_SIMPLE = 1 TB_COMPLEX = 2 DEFAULT_TB_STYLE = wx.SIMPLE_BORDER | wx.STAY_ON_TOP | wx.FRAME_NO_TASKBAR TB_CAPTION = DEFAULT_TB_STYLE | wx.CAPTION | wx.SYSTEM_MENU | wx.CLOSE_BOX | wx.FRAME_TOOL_WINDOW TB_ONTIME = 1 TB_ONCLICK = 2 # scroll from up to down TB_SCR_TYPE_UD = 1 # scroll from down to up TB_SCR_TYPE_DU = 2 # ------------------------------------------------------------------------------ # # Class ToasterBox # Main Class Implementation. It Is Basically A wx.Timer. It Creates And # Displays Popups And Handles The "Stacking". # ------------------------------------------------------------------------------ # class ToasterBox(wx.Timer): def __init__(self, parent, tbstyle=TB_SIMPLE, windowstyle=DEFAULT_TB_STYLE, closingstyle=TB_ONTIME, scrollType=TB_SCR_TYPE_DU): """ Default class constructor. ToasterBox.__init__(self, tbstyle=TB_SIMPLE, windowstyle=DEFAULT_TB_STYLE) Parameters: - tbstyle: this parameter may have 2 values: (a) TB_SIMPLE: a simple ToasterBox, with background image and text customization can be created; (b) TB_COMPLEX: ToasterBoxes with different degree of complexity can be created. You can add as many controls as you want, provided that you call the AddPanel() method and pass to it a dummy frame and a wx.Panel. see the demo for details. - windowstyle: this parameter influences the visual appearance of ToasterBox: (a) DEFAULT_TB_STYLE: default style, no caption nor close box; (b) TB_CAPTION: ToasterBox will have a caption, with the possibility to set a title for ToasterBox frame, and a close box; - closingstyle: set this value to TB_ONCLICK if you want to be able to close ToasterBox by a mouse click anywhere in the ToasterBox frame. """ self._parent = parent self._sleeptime = 10 self._pausetime = 1700 self._popuptext = "default" self._popupposition = wx.Point(100,100) self._popuptop = wx.Point(0,0) self._popupsize = wx.Size(150, 170) self._backgroundcolour = wx.WHITE self._foregroundcolour = wx.BLACK self._textfont = wx.Font(8, wx.SWISS, wx.NORMAL, wx.NORMAL, False, "Verdana") self._bitmap = None self._tbstyle = tbstyle self._windowstyle = windowstyle self._closingstyle = closingstyle self._panel = None self._bottomright = wx.Point(wx.GetDisplaySize().GetWidth(), wx.GetDisplaySize().GetHeight()) if parent is not None: parent.Bind(wx.EVT_ICONIZE, lambda evt: [w.Hide() for w in winlist]) self._tb = ToasterBoxWindow(self._parent, self, self._tbstyle, self._windowstyle, self._closingstyle, scrollType=scrollType) def SetPopupPosition(self, pos): """ Sets the ToasterBox position on screen. """ self._popupposition = pos def SetPopupPositionByInt(self, pos): """ Sets the ToasterBox position on screen, at one of the screen corners. """ w, h = wx.GetDisplaySize() self._bottomright = wx.Point(w, h) # top left if pos == 0: popupposition = wx.Point(0,0) # top right elif pos == 1: popupposition = wx.Point(w - self._popupsize[0], 0) # bottom left elif pos == 2: popupposition = wx.Point(0, h - self._popupsize[1]) # bottom right elif pos == 3: popupposition = wx.Point(self._bottomright.x - self._popupsize[0], self._bottomright.y - self._popupsize[1]) self._bottomright = wx.Point(popupposition.x + self._popupsize[0], popupposition.y + self._popupsize[1]) self._popupposition = popupposition def SetPopupBackgroundColor(self, colour=None): """ Sets the ToasterBox background colour. Use it only for ToasterBoxes created with TB_SIMPLE style. """ if colour is None: colour = wx.WHITE self._backgroundcolour = colour def SetPopupTextColor(self, colour=None): """ Sets the ToasterBox foreground colour. Use it only for ToasterBoxes created with TB_SIMPLE style. """ if colour is None: colour = wx.BLACK self._foregroundcolour = colour def SetPopupTextFont(self, font=None): """ Sets the ToasterBox text font. Use it only for ToasterBoxes created with TB_SIMPLE style. """ if font is None: font = wx.Font(8, wx.SWISS, wx.NORMAL, wx.NORMAL, False) self._textfont = font def SetPopupSize(self, size): """ Sets the ToasterBox size. """ self._popupsize = size def SetPopupPauseTime(self, pausetime): """ Sets the time after which the ToasterBox is destroyed (linger). """ self._pausetime = pausetime def SetPopupBitmap(self, bitmap=None): """ Sets the ToasterBox background image. Use it only for ToasterBoxes created with TB_SIMPLE style. """ if bitmap is not None: bitmap = wx.Bitmap(bitmap, wx.BITMAP_TYPE_BMP) self._bitmap = bitmap def SetPopupScrollSpeed(self, speed): """ Sets the ToasterBox scroll speed. The speed parameter is the pause time (in ms) for every step in the ScrollUp() method. """ self._sleeptime = speed def SetPopupText(self, text): """ Sets the ToasterBox text. Use it only for ToasterBoxes created with TB_SIMPLE style. """ self._popuptext = text def AddPanel(self, panel): """ Adds a panel to the ToasterBox. Use it only for ToasterBoxes created with TB_COMPLEX style. """ if not self._tbstyle & TB_COMPLEX: raise Exception("\nERROR: Panel Can Not Be Added When Using TB_SIMPLE ToasterBox Style") self._panel = panel def Play(self): """ Creates the ToasterBoxWindow, that does all the job. """ # create new window self._tb.SetPopupSize((self._popupsize[0], self._popupsize[1])) self._tb.SetPopupPosition((self._popupposition[0], self._popupposition[1])) self._tb.SetPopupPauseTime(self._pausetime) self._tb.SetPopupScrollSpeed(self._sleeptime) if self._tbstyle == TB_SIMPLE: self._tb.SetPopupTextColor(self._foregroundcolour) self._tb.SetPopupBackgroundColor(self._backgroundcolour) self._tb.SetPopupTextFont(self._textfont) if self._bitmap is not None: self._tb.SetPopupBitmap(self._bitmap) self._tb.SetPopupText(self._popuptext) if self._tbstyle == TB_COMPLEX: if self._panel is not None: self._tb.AddPanel(self._panel) # clean up the list self.CleanList() # check to see if there is already a window displayed # by looking at the linked list if len(winlist) > 0: # there ARE other windows displayed already # reclac where it should display self.MoveAbove(self._tb) # shift new window on to the list winlist.append(self._tb) if not self._tb.Play(): # if we didn't show the window properly, remove it from the list winlist.remove(winlist[-1]) # delete the object too self._tb.Destroy() return def MoveAbove(self, tb): """ If a ToasterBox already exists, move the new one above. """ # recalc where to place this popup self._tb.SetPopupPosition((self._popupposition[0], self._popupposition[1] - self._popupsize[1]*len(winlist))) def GetToasterBoxWindow(self): """ Returns the ToasterBox frame. """ return self._tb def SetTitle(self, title): """ Sets the ToasterBox title if it was created with TB_CAPTION window style. """ self._tb.SetTitle(title) def Notify(self): """ It's time to hide a ToasterBox! """ if len(winlist) == 0: return # clean the window list self.CleanList() # figure out how many blanks we have try: node = winlist[0] except: return if not node: return # move windows to fill in blank space for i in xrange(node.GetPosition()[1], self._popupposition[1], 4): if i > self._popupposition[1]: i = self._popupposition[1] # loop through all the windows for j in xrange(0, len(winlist)): ourNewHeight = i - (j*self._popupsize[1] - 8) tmpTb = winlist[j] # reset where the object THINKS its supposed to be tmpTb.SetPopupPosition((self._popupposition[0], ourNewHeight)) # actually move it tmpTb.SetDimensions(self._popupposition[0], ourNewHeight, tmpTb.GetSize().GetWidth(), tmpTb.GetSize().GetHeight()) wx.Usleep(self._sleeptime) def CleanList(self): """ Clean the window list. """ if len(winlist) == 0: return node = winlist[0] while node: if not node.IsShown(): winlist.remove(node) try: node = winlist[0] except: node = 0 else: indx = winlist.index(node) try: node = winlist[indx+1] except: node = 0 # ------------------------------------------------------------------------------ # # Class ToasterBoxWindow # This Class Does All The Job, By Handling Background Images, Text Properties # And Panel Adding. Depending On The Style You Choose, ToasterBoxWindow Will # Behave Differently In Order To Handle Widgets Inside It. # ------------------------------------------------------------------------------ # class ToasterBoxWindow(wx.Frame): def __init__(self, parent, parent2, tbstyle, windowstyle, closingstyle, scrollType=TB_SCR_TYPE_DU): """ Default class constructor. Used internally. Do not call directly this class in your application! """ wx.Frame.__init__(self, parent, wx.ID_ANY, "window", wx.DefaultPosition, wx.DefaultSize, style=windowstyle | wx.CLIP_CHILDREN) self._starttime = wx.GetLocalTime() self._parent2 = parent2 self._parent = parent self._sleeptime = 10 self._step = 4 self._pausetime = 1700 self._textcolour = wx.BLACK self._popuptext = "Change Me!" # the size we want the dialog to be framesize = wx.Size(150, 170) self._count = 1 self._tbstyle = tbstyle self._windowstyle = windowstyle self._closingstyle = closingstyle self._scrollType = scrollType if tbstyle == TB_COMPLEX: self.sizer = wx.BoxSizer(wx.VERTICAL) else: self._staticbitmap = None if self._windowstyle == TB_CAPTION: self.Bind(wx.EVT_CLOSE, self.OnClose) self.SetTitle("") if self._closingstyle & TB_ONCLICK and self._windowstyle != TB_CAPTION: self.Bind(wx.EVT_LEFT_DOWN, self.OnMouseDown) self._bottomright = wx.Point(wx.GetDisplaySize().GetWidth(), wx.GetDisplaySize().GetHeight()) self.SetDimensions(self._bottomright.x, self._bottomright.y, framesize.GetWidth(), framesize.GetHeight()) def OnClose(self, event): self.NotifyTimer(None) event.Skip() def OnMouseDown(self, event): self.NotifyTimer(None) event.Skip() def SetPopupBitmap(self, bitmap): """ Sets the ToasterBox background image. Use it only for ToasterBoxes created with TB_SIMPLE style. """ bitmap = bitmap.ConvertToImage() xsize, ysize = self.GetSize() bitmap = bitmap.Scale(xsize, ysize) bitmap = bitmap.ConvertToBitmap() self._staticbitmap = StaticBitmap(self, -1, bitmap, pos=(0,0)) if self._closingstyle & TB_ONCLICK and self._windowstyle != TB_CAPTION: self._staticbitmap.Bind(wx.EVT_LEFT_DOWN, self.OnMouseDown) def SetPopupSize(self, size): """ Sets the ToasterBox size. """ self.SetDimensions(self._bottomright.x, self._bottomright.y, size[0], size[1]) def SetPopupPosition(self, pos): """ Sets the ToasterBox position on screen. """ self._bottomright = wx.Point(pos[0] + self.GetSize().GetWidth(), pos[1] + self.GetSize().GetHeight()) self._dialogtop = pos def SetPopupPositionByInt(self, pos): """ Sets the ToasterBox position on screen, at one of the screen corners. """ w, h = wx.GetDisplaySize() self._bottomright = wx.Point(w, h) # top left if pos == 0: popupposition = wx.Point(0, 0) # top right elif pos == 1: popupposition = wx.Point(w - self._popupsize[0], 0) # bottom left elif pos == 2: popupposition = wx.Point(0, h - self._popupsize[1]) # bottom right elif pos == 3: popupposition = wx.Point(self._bottomright.x - self._popupsize[0], self._bottomright.y - self._popupsize[1]) self._bottomright = wx.Point(popupposition.x + self._popupsize[0], popupposition.y + self._popupsize[1]) self._dialogtop = popupposition def SetPopupPauseTime(self, pausetime): """ Sets the time after which the ToasterBox is destroyed (linger). """ self._pausetime = pausetime def SetPopupScrollSpeed(self, speed): """ Sets the ToasterBox scroll speed. The speed parameter is the pause time (in ms) for every step in the ScrollUp() method. """ self._sleeptime = speed def AddPanel(self, panel): """ Adds a panel to the ToasterBox. Use it only for ToasterBoxes created with TB_COMPLEX style. """ if not self._tbstyle & TB_COMPLEX: raise Exception("\nERROR: Panel Can Not Be Added When Using TB_SIMPLE ToasterBox Style") self.sizer.Add(panel, 1, wx.EXPAND) self.sizer.Layout() self.SetSizer(self.sizer) if self._closingstyle & TB_ONCLICK and self._windowstyle != TB_CAPTION: panel.Bind(wx.EVT_LEFT_DOWN, self.OnMouseDown) def SetPopupText(self, text): """ Sets the ToasterBox text. Use it only for ToasterBoxes created with TB_SIMPLE style. """ self._popuptext = text def SetPopupTextFont(self, font): """ Sets the ToasterBox text font. Use it only for ToasterBoxes created with TB_SIMPLE style. """ self._textfont = font def GetPopupText(self): """ Returns the ToasterBox text. Use it only for ToasterBoxes created with TB_SIMPLE style. """ return self._popuptext def Play(self): """ Creates the ToasterBoxWindow, that does all the job. """ # do some checks to make sure this window is valid if self._bottomright.x < 1 or self._bottomright.y < 1: return False if self.GetSize().GetWidth() < 50 or self.GetSize().GetWidth() < 50: # toasterbox launches into a endless loop for some reason # when you try to make the window too small. return False self.ScrollUp() timerid = wx.NewId() self.showtime = wx.Timer(self, timerid) self.showtime.Start(self._pausetime) self.Bind(wx.EVT_TIMER, self.NotifyTimer, id=timerid) return True def NotifyTimer(self, event): """ Hides gradually the ToasterBoxWindow. """ self.showtime.Stop() del self.showtime self.ScrollDown() def SetPopupBackgroundColor(self, colour): """ Sets the ToasterBox background colour. Use it only for ToasterBoxes created with TB_SIMPLE style. """ self.SetBackgroundColour(colour) def SetPopupTextColor(self, colour): """ Sets the ToasterBox foreground colour. Use it only for ToasterBoxes created with TB_SIMPLE style. """ self._textcolour = colour def ScrollUp(self): """ Scrolls the ToasterBox up, which means gradually showing the ToasterBox. """ self.Show(True) # walk the Y value up in a raise motion xpos = self.GetPosition().x ypos = self._bottomright[1] windowsize = 0 # checking the type of the scroll (from up to down or from down to up) if self._scrollType == TB_SCR_TYPE_UD: start = self._dialogtop[1] stop = ypos step = self._step elif self._scrollType == TB_SCR_TYPE_DU: start = ypos stop = self._dialogtop[1] step = -self._step else: errMsg = ("scrollType not supported (in ToasterBoxWindow.ScrollUp): %s" % self._scrollType) raise ValueError(errMsg) for i in xrange(start, stop, step): if i < self._dialogtop[1]: i = self._dialogtop[1] windowsize = windowsize + self._step # checking the type of the scroll (from up to down or from down to up) if self._scrollType == TB_SCR_TYPE_UD: dimY = self._dialogtop[1] elif self._scrollType == TB_SCR_TYPE_DU: dimY = i else: errMsg = ("scrollType not supported (in ToasterBoxWindow.ScrollUp): %s" % self._scrollType) raise ValueError(errMsg) self.SetDimensions(self._dialogtop[0], dimY, self.GetSize().GetWidth(), windowsize) if self._tbstyle == TB_SIMPLE: self.DrawText() wx.Usleep(self._sleeptime) self.Update() self.Refresh() self.Update() if self._tbstyle == TB_SIMPLE: self.DrawText() self.SetFocus() def ScrollDown(self): """ Scrolls the ToasterBox down, which means gradually hiding the ToasterBox. """ # walk down the Y value windowsize = self.GetSize().GetHeight() # checking the type of the scroll (from up to down or from down to up) if self._scrollType == TB_SCR_TYPE_UD: start = self._bottomright.y stop = self._dialogtop[1] step = -self._step elif self._scrollType == TB_SCR_TYPE_DU: start = self._dialogtop[1] stop = self._bottomright.y step = self._step else: errMsg = ("scrollType not supported (in ToasterBoxWindow.ScrollUp): %s" % self._scrollType) raise ValueError(errMsg) for i in xrange(start, stop, step): if i > self._bottomright.y: i = self._bottomright.y windowsize = windowsize - self._step if windowsize <= 0: break # checking the type of the scroll (from up to down or from down to up) if self._scrollType == TB_SCR_TYPE_UD: dimY = self._dialogtop[1] elif self._scrollType == TB_SCR_TYPE_DU: dimY = i else: errMsg = ("scrollType not supported (in ToasterBoxWindow.ScrollUp): %s" % self._scrollType) raise ValueError(errMsg) self.SetDimensions(self._dialogtop[0], dimY, self.GetSize().GetWidth(), windowsize) wx.Usleep(self._sleeptime) self.Refresh() self.Hide() if self._parent2: self._parent2.Notify() def DrawText(self): if self._staticbitmap is not None: dc = wx.ClientDC(self._staticbitmap) else: dc = wx.ClientDC(self) dc.SetFont(self._textfont) if not hasattr(self, "text_coords"): self._getTextCoords(dc) fg = dc.GetTextForeground() dc.SetTextForeground(self._textcolour) dc.DrawTextList(*self.text_coords) dc.SetTextForeground(fg) def _getTextCoords(self, dc): """ Draw the user specified text using the wx.DC. Use it only for ToasterBoxes created with TB_SIMPLE style. """ # border from sides and top to text (in pixels) border = 7 # how much space between text lines textPadding = 2 pText = self.GetPopupText() max_len = len(pText) tw, th = self._parent2._popupsize if self._windowstyle == TB_CAPTION: th = th - 20 while 1: lines = textwrap.wrap(pText, max_len) for line in lines: w, h = dc.GetTextExtent(line) if w > tw - border * 2: max_len -= 1 break else: break fh = 0 for line in lines: w, h = dc.GetTextExtent(line) fh += h + textPadding y = (th - fh) / 2; coords = [] for line in lines: w, h = dc.GetTextExtent(line) x = (tw - w) / 2 coords.append((x, y)) y += h + textPadding self.text_coords = (lines, coords) phatch-0.2.7/phatch/other/relativedelta.py0000644000000000000000000004136011346363116020524 0ustar rootroot00000000000000""" Copyright (c) 2003-2007 Gustavo Niemeyer This module offers extensions to the standard python 2.3+ datetime module. """ __author__ = "Gustavo Niemeyer " __license__ = "PSF License" import datetime import calendar __all__ = ["relativedelta", "MO", "TU", "WE", "TH", "FR", "SA", "SU"] class weekday(object): __slots__ = ["weekday", "n"] def __init__(self, weekday, n=None): self.weekday = weekday self.n = n def __call__(self, n): if n == self.n: return self else: return self.__class__(self.weekday, n) def __eq__(self, other): try: if self.weekday != other.weekday or self.n != other.n: return False except AttributeError: return False return True def __repr__(self): s = ("MO", "TU", "WE", "TH", "FR", "SA", "SU")[self.weekday] if not self.n: return s else: return "%s(%+d)" % (s, self.n) MO, TU, WE, TH, FR, SA, SU = weekdays = tuple([weekday(x) for x in range(7)]) class relativedelta: """ The relativedelta type is based on the specification of the excelent work done by M.-A. Lemburg in his mx.DateTime extension. However, notice that this type does *NOT* implement the same algorithm as his work. Do *NOT* expect it to behave like mx.DateTime's counterpart. There's two different ways to build a relativedelta instance. The first one is passing it two date/datetime classes: relativedelta(datetime1, datetime2) And the other way is to use the following keyword arguments: year, month, day, hour, minute, second, microsecond: Absolute information. years, months, weeks, days, hours, minutes, seconds, microseconds: Relative information, may be negative. weekday: One of the weekday instances (MO, TU, etc). These instances may receive a parameter N, specifying the Nth weekday, which could be positive or negative (like MO(+1) or MO(-2). Not specifying it is the same as specifying +1. You can also use an integer, where 0=MO. leapdays: Will add given days to the date found, if year is a leap year, and the date found is post 28 of february. yearday, nlyearday: Set the yearday or the non-leap year day (jump leap days). These are converted to day/month/leapdays information. Here is the behavior of operations with relativedelta: 1) Calculate the absolute year, using the 'year' argument, or the original datetime year, if the argument is not present. 2) Add the relative 'years' argument to the absolute year. 3) Do steps 1 and 2 for month/months. 4) Calculate the absolute day, using the 'day' argument, or the original datetime day, if the argument is not present. Then, subtract from the day until it fits in the year and month found after their operations. 5) Add the relative 'days' argument to the absolute day. Notice that the 'weeks' argument is multiplied by 7 and added to 'days'. 6) Do steps 1 and 2 for hour/hours, minute/minutes, second/seconds, microsecond/microseconds. 7) If the 'weekday' argument is present, calculate the weekday, with the given (wday, nth) tuple. wday is the index of the weekday (0-6, 0=Mon), and nth is the number of weeks to add forward or backward, depending on its signal. Notice that if the calculated date is already Monday, for example, using (0, 1) or (0, -1) won't change the day. """ def __init__(self, dt1=None, dt2=None, years=0, months=0, days=0, leapdays=0, weeks=0, hours=0, minutes=0, seconds=0, microseconds=0, year=None, month=None, day=None, weekday=None, yearday=None, nlyearday=None, hour=None, minute=None, second=None, microsecond=None): if dt1 and dt2: if not isinstance(dt1, datetime.date) or \ not isinstance(dt2, datetime.date): raise TypeError, "relativedelta only diffs datetime/date" if type(dt1) is not type(dt2): if not isinstance(dt1, datetime.datetime): dt1 = datetime.datetime.fromordinal(dt1.toordinal()) elif not isinstance(dt2, datetime.datetime): dt2 = datetime.datetime.fromordinal(dt2.toordinal()) self.years = 0 self.months = 0 self.days = 0 self.leapdays = 0 self.hours = 0 self.minutes = 0 self.seconds = 0 self.microseconds = 0 self.year = None self.month = None self.day = None self.weekday = None self.hour = None self.minute = None self.second = None self.microsecond = None self._has_time = 0 months = (dt1.year*12+dt1.month)-(dt2.year*12+dt2.month) self._set_months(months) dtm = self.__radd__(dt2) if dt1 < dt2: while dt1 > dtm: months += 1 self._set_months(months) dtm = self.__radd__(dt2) else: while dt1 < dtm: months -= 1 self._set_months(months) dtm = self.__radd__(dt2) delta = dt1 - dtm self.seconds = delta.seconds+delta.days*86400 self.microseconds = delta.microseconds else: self.years = years self.months = months self.days = days+weeks*7 self.leapdays = leapdays self.hours = hours self.minutes = minutes self.seconds = seconds self.microseconds = microseconds self.year = year self.month = month self.day = day self.hour = hour self.minute = minute self.second = second self.microsecond = microsecond if type(weekday) is int: self.weekday = weekdays[weekday] else: self.weekday = weekday yday = 0 if nlyearday: yday = nlyearday elif yearday: yday = yearday if yearday > 59: self.leapdays = -1 if yday: ydayidx = [31,59,90,120,151,181,212,243,273,304,334,366] for idx, ydays in enumerate(ydayidx): if yday <= ydays: self.month = idx+1 if idx == 0: self.day = ydays else: self.day = yday-ydayidx[idx-1] break else: raise ValueError, "invalid year day (%d)" % yday self._fix() def _fix(self): if abs(self.microseconds) > 999999: s = self.microseconds//abs(self.microseconds) div, mod = divmod(self.microseconds*s, 1000000) self.microseconds = mod*s self.seconds += div*s if abs(self.seconds) > 59: s = self.seconds//abs(self.seconds) div, mod = divmod(self.seconds*s, 60) self.seconds = mod*s self.minutes += div*s if abs(self.minutes) > 59: s = self.minutes//abs(self.minutes) div, mod = divmod(self.minutes*s, 60) self.minutes = mod*s self.hours += div*s if abs(self.hours) > 23: s = self.hours//abs(self.hours) div, mod = divmod(self.hours*s, 24) self.hours = mod*s self.days += div*s if abs(self.months) > 11: s = self.months//abs(self.months) div, mod = divmod(self.months*s, 12) self.months = mod*s self.years += div*s if (self.hours or self.minutes or self.seconds or self.microseconds or self.hour is not None or self.minute is not None or self.second is not None or self.microsecond is not None): self._has_time = 1 else: self._has_time = 0 def _set_months(self, months): self.months = months if abs(self.months) > 11: s = self.months//abs(self.months) div, mod = divmod(self.months*s, 12) self.months = mod*s self.years = div*s else: self.years = 0 def __radd__(self, other): if not isinstance(other, datetime.date): raise TypeError, "unsupported type for add operation" elif self._has_time and not isinstance(other, datetime.datetime): other = datetime.datetime.fromordinal(other.toordinal()) year = (self.year or other.year)+self.years month = self.month or other.month if self.months: assert 1 <= abs(self.months) <= 12 month += self.months if month > 12: year += 1 month -= 12 elif month < 1: year -= 1 month += 12 day = min(calendar.monthrange(year, month)[1], self.day or other.day) repl = {"year": year, "month": month, "day": day} for attr in ["hour", "minute", "second", "microsecond"]: value = getattr(self, attr) if value is not None: repl[attr] = value days = self.days if self.leapdays and month > 2 and calendar.isleap(year): days += self.leapdays ret = (other.replace(**repl) + datetime.timedelta(days=days, hours=self.hours, minutes=self.minutes, seconds=self.seconds, microseconds=self.microseconds)) if self.weekday: weekday, nth = self.weekday.weekday, self.weekday.n or 1 jumpdays = (abs(nth)-1)*7 if nth > 0: jumpdays += (7-ret.weekday()+weekday)%7 else: jumpdays += (ret.weekday()-weekday)%7 jumpdays *= -1 ret += datetime.timedelta(days=jumpdays) return ret def __rsub__(self, other): return self.__neg__().__radd__(other) def __add__(self, other): if not isinstance(other, relativedelta): raise TypeError, "unsupported type for add operation" return relativedelta(years=other.years+self.years, months=other.months+self.months, days=other.days+self.days, hours=other.hours+self.hours, minutes=other.minutes+self.minutes, seconds=other.seconds+self.seconds, microseconds=other.microseconds+self.microseconds, leapdays=other.leapdays or self.leapdays, year=other.year or self.year, month=other.month or self.month, day=other.day or self.day, weekday=other.weekday or self.weekday, hour=other.hour or self.hour, minute=other.minute or self.minute, second=other.second or self.second, microsecond=other.second or self.microsecond) def __sub__(self, other): if not isinstance(other, relativedelta): raise TypeError, "unsupported type for sub operation" return relativedelta(years=other.years-self.years, months=other.months-self.months, days=other.days-self.days, hours=other.hours-self.hours, minutes=other.minutes-self.minutes, seconds=other.seconds-self.seconds, microseconds=other.microseconds-self.microseconds, leapdays=other.leapdays or self.leapdays, year=other.year or self.year, month=other.month or self.month, day=other.day or self.day, weekday=other.weekday or self.weekday, hour=other.hour or self.hour, minute=other.minute or self.minute, second=other.second or self.second, microsecond=other.second or self.microsecond) def __neg__(self): return relativedelta(years=-self.years, months=-self.months, days=-self.days, hours=-self.hours, minutes=-self.minutes, seconds=-self.seconds, microseconds=-self.microseconds, leapdays=self.leapdays, year=self.year, month=self.month, day=self.day, weekday=self.weekday, hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond) def __nonzero__(self): return not (not self.years and not self.months and not self.days and not self.hours and not self.minutes and not self.seconds and not self.microseconds and not self.leapdays and self.year is None and self.month is None and self.day is None and self.weekday is None and self.hour is None and self.minute is None and self.second is None and self.microsecond is None) def __mul__(self, other): f = float(other) return relativedelta(years=self.years*f, months=self.months*f, days=self.days*f, hours=self.hours*f, minutes=self.minutes*f, seconds=self.seconds*f, microseconds=self.microseconds*f, leapdays=self.leapdays, year=self.year, month=self.month, day=self.day, weekday=self.weekday, hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond) def __eq__(self, other): if not isinstance(other, relativedelta): return False if self.weekday or other.weekday: if not self.weekday or not other.weekday: return False if self.weekday.weekday != other.weekday.weekday: return False n1, n2 = self.weekday.n, other.weekday.n if n1 != n2 and not ((not n1 or n1 == 1) and (not n2 or n2 == 1)): return False return (self.years == other.years and self.months == other.months and self.days == other.days and self.hours == other.hours and self.minutes == other.minutes and self.seconds == other.seconds and self.leapdays == other.leapdays and self.year == other.year and self.month == other.month and self.day == other.day and self.hour == other.hour and self.minute == other.minute and self.second == other.second and self.microsecond == other.microsecond) def __ne__(self, other): return not self.__eq__(other) def __div__(self, other): return self.__mul__(1/float(other)) def __repr__(self): l = [] for attr in ["years", "months", "days", "leapdays", "hours", "minutes", "seconds", "microseconds"]: value = getattr(self, attr) if value: l.append("%s=%+d" % (attr, value)) for attr in ["year", "month", "day", "weekday", "hour", "minute", "second", "microsecond"]: value = getattr(self, attr) if value is not None: l.append("%s=%s" % (attr, `value`)) return "%s(%s)" % (self.__class__.__name__, ", ".join(l)) # vim:ts=4:sw=4:et phatch-0.2.7/phatch/other/surd.py0000644000000000000000000001744311346363116016661 0ustar rootroot00000000000000#!/usr/bin/python # # surd.py -- Rational Number Objects -- V1.1 # # !!! REQUIRES PYTHON VERSION 1.2 OR LATER !!! # # Rational number class. This module supports the creation and manipulation # of surds, or rational numbers. The alllowed operations are +, -, *, /, pow, # and unary -. Reverse methods for mixing with non-surds are supplied. # Floats are converted to surds by multiplying by the power of ten necessary # to make them whole numbers. For example, 4.6 would be treated as 46/10. # Exponentiated numbers are not handled yet. # # In addition, the following operator overload methods are provided: # cmp # hash # call # repr # str # float # int # long # # Surds appear to work just fine with other math functions such as cos and log. # # Nick Seidenman # SAIC, McLean # nick@osg.saic.com # gcd (m, n) # Uses a modified Euclidean algorithm to # return greatest common devisor of m & n. # Handy for reducing fractions. # # (Thanks to GvR for the niftier version that uses tuple arithmetic!) def gcd (m, n): while n: m, n = n, m % n return m import math class surd: def __init__ (self, num=0L, denom=1L): # If the constructor arguments were floats, we need to # convert them into a whole number divided by an exponent # of 10. if type (num) == type (0.0): # Were we handed a float? np = long (math.pow (10, len (`num - long(num)`) - 2)) nd = long (num * np) if type (denom) == type (0.0): # Is the denominator a float too? dp = long(math.pow (10, len (`denom - int(denom)`) - 2)) dd = long (denom * dp) num = nd * dp denom = dd * np else: num = nd denom = denom * np elif type (denom) == type (0.0): # Is the denom a float? dp = long (pow (10, len (`denom - int(denom)`) - 2)) dd = long (denom * dp) num = num * dp denom = dd else: num = long (num) denom = long (denom) # Zero divisor is not allowed - nip this in the bud. if denom == 0: raise ZeroDivisionError # Always want the sign to go with the numerator. if denom < 0: # Think about it ;) num = -num denom = -denom # Reduct the fraction. if num > 0: d = gcd (abs(num), abs (denom)) else: d = 1 self.num = num / d self.denom = denom / d def __add__ (self, arg): if not hasattr (arg, 'denom'): spam = long (arg) arg = surd (spam) denom = self.denom * arg.denom num = self.denom * arg.num + arg.denom * self.num d = gcd (abs(num), abs(denom)) return surd (num / d, denom / d) __radd__ = __add__ def __sub__ (self, arg): if not hasattr (arg, 'denom'): spam = long (arg) arg = surd (spam) denom = self.denom * arg.denom num = self.num * arg.denom - arg.num * self.denom d = gcd (abs(num), abs(denom)) return surd (num / d, denom / d) __rsub__ = __sub__ def __mul__ (self, arg): if not hasattr (arg, 'denom'): spam = long (arg) arg = surd (spam) s = surd (self.num * arg.num, self.denom * arg.denom) d = gcd (abs(s.num), abs(s.denom)) s.num = s.num / d s.denom = s.denom / d return s __rmul__ = __mul__ def __div__ (self, arg): if not hasattr (arg, 'denom'): spam = long (arg) arg = surd (spam) s = surd (self.num * arg.denom, self.denom * arg.num) d = gcd (abs(s.num), abs(s.denom)) s.num = s.num / d s.denom = s.denom / d if s.denom == 0: raise ZeroDivisionError return s __rdiv__ = __div__ def __neg__ (self): return surd (-self.num, self.denom) def __abs__ (self): return surd (abs (self.num), abs (self.denom)) def __int__ (self): return int (self.num) / int (self.denom) def __long__ (self): return long (self.num) / long (self.denom) def __float__ (self): return float (self.num) / float (self.denom) def __repr__ (self): return `self.num` + '/' + `self.denom` def __str__ (self): if self.denom == 1: return `self.num` else: spam = `self.num` + '/' + `self.denom` return spam def __cmp__ (self, other): if not hasattr (other, 'denom'): spam = long (other) other = surd (spam) # Make sure we are dealing with a common denominator. spam = self.num * other.denom eggs = other.num * self.denom if spam < eggs: return -1 elif spam > eggs: return 1 else: return 0 def __hash__ (self): return hash (`self`) def __call__ (self, *args): return 0 ######################################################## # # T E S T D R I V E R # ######################################################## SurdTestError = 'SurdTestError' import time def test_error (): raise SurdTestError def test_driver (): print 'testing surd ...' # Instantiation tests. a = surd () # Create without arguments if a != 0: test_error () b = surd(10) # Create with just numerator. if b != 10: test_error () c = surd (145, 15) # Create with explicit num & denom if c != surd (145, 15): test_error () ra = surd (3.2) if ra != surd (32, 10): test_error () rb = surd (12.0, 2) if rb != surd (6, 1): test_error () rc = surd (1045.2, 2.5) if rc != surd (10452, 25): test_error () rd = surd (12000, .05) if rd != surd (240000): test_error () # Test GCD reduction. if (a + surd (29, 3)) != c: test_error () # Arithmetic tests. r = b + c if r != surd (59, 3): test_error () r = b * c if r != surd (290, 3): test_error () r = b - c if r != surd (1, 3): test_error () r = b / c if r != surd (30, 29): test_error () r = -c if r != surd (-29, 3): test_error () if c + 4 != surd (41, 3): test_error () if c * 3 != surd (87, 3): test_error () if c - 24 != surd (-43, 3): test_error () if c / 13 != surd (29, 39): test_error () # Comparison tests. if a == b: test_error () if b < c: test_error () if c < a: test_error () if b == c: test_error () if c != surd (290, 30): test_error () if -b >= a: test_error () # Sanity (div by zero) tests. try: z = surd (4, 0) except ZeroDivisionError: pass else: test_error () try: z1 = surd (4) z2 = surd () # 0/1 z = z1 / z2 except ZeroDivisionError: pass else: test_error () # Hash tests if hash (a) != hash ('0L/1L'): test_error () if hash (b) != hash ('10L/1L'): test_error () if hash (c) != hash ('29L/3L'): test_error () if hash (c) == hash (b): test_error () if hash (c) == hash (a): test_error () if hash (c) == hash (-c): test_error () # Sign should always go on numerator ... if hash (surd (4, -3)) != hash ('-4L/3L'): test_error () if hash (surd (-14, -3)) != hash ('14L/3L'): test_error () # Call tests. if a(): test_error () if b(): test_error () if c(): test_error () # Math function tests. (Not by any means exhausive, but I believe # representative. m = surd (pow (13.2, 2.5)) if `float(m)` != `math.pow (13.2, 2.5)`: test_error () m = surd (math.sin (30)) if `float(m)` != `math.sin (30)`: test_error () # If we made it here we passed every test. print 'all surd tests passed.' # B E N C H M A R K S # Addition. start_time = time.time () a = surd () for i in range (0, 1000): a = a + surd (4, 3) print '1000 additions in ', time.time () - start_time, 'seconds' # Subtraction. start_time = time.time () a = surd (10) for i in range (0, 1000): a = a - surd (4, 3) print '1000 subtractions in ', time.time () - start_time, 'seconds' # Multiplication. start_time = time.time () a = surd (3.2) b = surd (2.1) for i in range (0, 1000): c = a * b print '1000 multiplications in ', time.time () - start_time, 'seconds' # Division. start_time = time.time () a = surd (4.2) b = surd (2.1) for i in range (0, 1000): c = a / b print '1000 divisions in ', time.time () - start_time, 'seconds' if __name__ == '__main__': test_driver () phatch-0.2.7/phatch/other/tamogen.py0000644000000000000000000001554011346363116017332 0ustar rootroot00000000000000# -*- coding: utf-8 -*- #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # Title: Tone Altering Mosaic Generator (TAMOGEN) # Version: 1.1 # Author: Jack Whitsitt, Juho Vepsäläinen # Contact: http://sintixerr.wordpress.com # #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # 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 . # #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # 1.0 Original version by Jack Whitsitt. # 1.1 Restructuring of the code, new pixel dispersion method and folder fill # type by Juho Vepsäläinen. import glob, os, sys, Image, ImageChops from itertools import izip from ImageStat import Stat from lib import openImage IMAGE_ITSELF = 0 OTHER_IMAGE = 1 FOLDER = 2 FILL_TYPES = (IMAGE_ITSELF, OTHER_IMAGE, FOLDER) def mosaic(im, filltype, x_squares, y_squares, x_pix, y_pix, fill_image=None, fill_folder=None): assert filltype in FILL_TYPES fill_size = (x_pix, y_pix) num_squares = (min(x_squares, x_pix), min(y_squares, y_pix)) final_img = Image.new(im.mode, fill_size) fill_section_size = get_section_size(fill_size, num_squares) im_section_size = get_section_size(im.size, num_squares) # calculate missing pixels for dispersion algo to avoid blank pixels missing_column_pixels = fill_size[0] - num_squares[0] * fill_section_size[0] missing_row_pixels = fill_size[1] - num_squares[1] * fill_section_size[1] # alter section sizes based on missing pixels if missing_row_pixels: fill_section_size[0] += 1 im_section_size[0] += 1 if missing_column_pixels: fill_section_size[1] += 1 im_section_size[1] += 1 boxes = BoundingBoxContainer() boxes.append('fill_box', (0, 0), fill_section_size) boxes.append('im_box', (0, 0), im_section_size) fill_images = FillImages(fill_section_size, im.mode) if filltype == IMAGE_ITSELF: fill_images.append(im) elif filltype == OTHER_IMAGE: fill_images.append(openImage.open(fill_image)) elif filltype == FOLDER: for file_name in glob.iglob(os.path.join(fill_folder, '*')): try: fill_images.append(openImage.open(file_name)) except IOError: pass for column in range(num_squares[0]): for row in range(num_squares[1]): bsection = im.crop(boxes['im_box']) fill_img, tone_diff = fill_images.findClosestImageAndToneDiff(bsection) set_new_tone(fill_img.copy(), tone_diff, boxes['fill_box'], final_img) boxes.move_down() boxes.reset_y() boxes.move_right() return final_img class FillImages(list): def __init__(self, fill_section_size, mode): self.fill_section_size = fill_section_size self.mode = mode super(FillImages, self).__init__() def append(self, item): super(FillImages, self).append(FillImage(item, self.fill_section_size, self.mode)) def findClosestImageAndToneDiff(self, cmp_img): if len(self) == 1: return self[0].image, self._getToneDiff(get_tone(cmp_img), self[0].tone) record_fill = self[0] record_avg = sys.maxint for fill in self: diff_image = ImageChops.difference(cmp_img, fill.image) image_avg = sum(Stat(diff_image).mean) if image_avg < record_avg: record_fill = fill record_avg = image_avg return record_fill.image, self._getToneDiff(get_tone(cmp_img), record_fill.tone) def _getToneDiff(self, a, b): return map(lambda x, y: x / max(y, 0.001), a, b) class FillImage(object): def __init__(self, image, fill_section_size, mode): self.image = self._generateThumbnail(image, fill_section_size, mode) self.tone = get_tone(image.convert(mode)) def _generateThumbnail(self, im, fill_section_size, mode): return im.resize(fill_section_size, Image.ANTIALIAS).convert(mode) class BoundingBoxContainer(dict): def append(self, box_name, topleft, bottomright): self[box_name] = BoundingBox(topleft, bottomright) def move_right(self): for box in self.values(): box.move_right() def move_down(self): for box in self.values(): box.move_down() def reset_y(self): for box in self.values(): box.reset_y() class BoundingBox(list): def __init__(self, topleft, bottomright): super(BoundingBox, self).__init__([topleft[0], topleft[1], bottomright[0], bottomright[1]]) def get_left(self): return self[0] def set_left(self, value): self[0] = value left = property(get_left, set_left) def get_top(self): return self[1] def set_top(self, value): self[1] = value top = property(get_top, set_top) def get_right(self): return self[2] def set_right(self, value): self[2] = value right = property(get_right, set_right) def get_bottom(self): return self[3] def set_bottom(self, value): self[3] = value bottom = property(get_bottom, set_bottom) def move_down(self): amount = self._get_height() self.top += amount self.bottom += amount def move_right(self): amount = self._get_width() self.left += amount self.right += amount def reset_y(self): height = self._get_height() self.top = 0 self.bottom = height def _get_height(self): return abs(self.top - self.bottom) def _get_width(self): return abs(self.right - self.left) def get_tone(img): return Stat(img).mean def get_section_size(im_size, num_squares): def calculateSection(coord1, coord2): return int(round(coord1 / float(coord2))) return [calculateSection(x, y) for (x, y) in izip(im_size, num_squares)] def set_new_tone(fill_img, tone_diff, cur_fill_box, final_img): temp_pix = [] for pix_col in fill_img.getdata(): temp_pix.append(tuple([int(x * y) for (x, y) in izip(pix_col, tone_diff)])) fill_img.putdata(temp_pix) if fill_img.mode == 'RGBA': final_img.paste(fill_img, (cur_fill_box.left, cur_fill_box.top), fill_img) else: final_img.paste(fill_img, (cur_fill_box.left, cur_fill_box.top)) phatch-0.2.7/phatch/phatch.py0000755000000000000000000000442411346363116016030 0ustar rootroot00000000000000#!/usr/bin/env python # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 """Local launch script for all platforms""" import sys if sys.version_info[0] != 2: sys.exit('Sorry, Phatch is only compatible with Python 2.x!\n') from os.path import abspath, dirname, join from core import config def create_paths(relative=''): root = dirname(abspath(__file__)) def expand(path): return abspath(join(root, relative, path)) phatch_data_path = 'data' paths = { 'PHATCH_DOCS_PATH': 'docs', 'PHATCH_FONTS_CACHE_PATH': 'cache/fonts', 'PHATCH_IMAGE_PATH': 'images', 'PHATCH_LOCALE_PATH': 'locale', #data 'PHATCH_DATA_PATH': phatch_data_path, 'PHATCH_ACTIONLISTS_PATH': join(phatch_data_path, 'actionlists'), 'PHATCH_BLENDER_PATH': join(phatch_data_path, 'blender'), 'PHATCH_FONTS_PATH': join(phatch_data_path, 'fonts'), 'PHATCH_HIGHLIGHTS_PATH': join(phatch_data_path, 'highlights'), 'PHATCH_MASKS_PATH': join(phatch_data_path, 'masks'), 'PHATCH_PERSPECTIVE_PATH': join(phatch_data_path, 'perspective'), } for key, path in paths.items(): paths[key] = expand(path) paths['PHATCH_PYTHON_PATH'] = root return paths def init_config_paths(): if hasattr(sys, "frozen"): __file__ = sys.argv[0] relative = '' else: relative = '..' return config.init_config_paths(config_paths=create_paths(relative)) def main(): #override paths with local paths #start application import app app.main(init_config_paths(), app_file=__file__) if __name__ == '__main__': main() phatch-0.2.7/phatch/pyWx/0000755000000000000000000000000011346363116015147 5ustar rootroot00000000000000phatch-0.2.7/phatch/pyWx/__init__.py0000644000000000000000000000144111346363116017260 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follow PEP8 phatch-0.2.7/phatch/pyWx/dialogs.py0000644000000000000000000005674211346363116017161 0ustar rootroot00000000000000# -*- coding: UTF-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Follows PEP8 #---first test import os import time if __name__ == '__main__': import sys sys.path.extend(['lib', '../core', '../core/lib']) sys.path.insert(0, os.path.dirname(os.getcwd())) #test environment import gettext gettext.install("test") #---begin import wx from core import ct from lib.reverse_translation import _r from core import pil #core.lib from lib import system from core.message import send, ProgressReceiver #gui-dependent from lib.pyWx import clipboard from lib.pyWx import graphics from lib.pyWx import vlistTag from lib.pyWx import paint from lib.pyWx import imageInspector from lib.pyWx.wildcard import wildcard_list, _wildcard_extension from lib.pyWx.tag import Browser, ContentMixin import images from wxGlade import dialogs VLIST_ICON_SIZE = (48, 48) _MAX_HEIGHT = None # cache def get_max_height(height=510): global _MAX_HEIGHT if _MAX_HEIGHT is None: _MAX_HEIGHT = min(height, wx.Display(0).GetGeometry().GetHeight() - 50) return _MAX_HEIGHT else: return _MAX_HEIGHT class BrowseMixin: def show_dir_dialog(self, defaultPath, message=_('Choose a folder'), style=wx.DEFAULT_DIALOG_STYLE): dlg = wx.DirDialog(self, message, defaultPath=defaultPath, style=wx.DEFAULT_DIALOG_STYLE) if dlg.ShowModal() == wx.ID_OK: path = dlg.GetPath() else: path = None dlg.Destroy() return path class IconMixin: if wx.Platform == '__WXGTK__': _icon_size = (32, 32) # (48, 48) else: _icon_size = (32, 32) def _icon(self, name='information'): name = 'ART_%s' % name.upper() #title icon bitmap = graphics.bitmap(name, (16, 16)) _ic = wx.EmptyIcon() _ic.CopyFromBitmap(bitmap) self.SetIcon(_ic) #dialog icon bitmap = graphics.bitmap(name, self._icon_size) self.icon.SetBitmap(bitmap) self.icon.Show(True) class ErrorDialog(dialogs.ErrorDialog, IconMixin): def __init__(self, parent, message, ignore=True, **keyw): super(ErrorDialog, self).__init__(parent, -1, **keyw) self._icon('error') self.message.SetLabel(system.wrap(message, 70)) if not ignore: self.ignore.Hide() self.skip.SetDefault() self.GetSizer().Fit(self) self.Layout() #---events def on_skip(self, event): self.EndModal(wx.ID_FORWARD) def on_abort(self, event): self.EndModal(wx.ID_ABORT) def on_ignore(self, event): self.EndModal(wx.ID_IGNORE) class ExecuteDialog(BrowseMixin, dialogs.ExecuteDialog): def __init__(self, parent, drop=False, **options): super(ExecuteDialog, self).__init__(parent, -1, **options) self.set_drop(drop) def browse_files(self): style = wx.OPEN | wx.MULTIPLE | wx.CHANGE_DIR if hasattr(wx, 'FD_PREVIEW'): style |= wx.FD_PREVIEW dlg = wx.FileDialog( self, message=_("Choose File(s)"), defaultDir=self.get_default_path(), defaultFile="", wildcard=self.wildcard(), style=style, ) if dlg.ShowModal() == wx.ID_OK: self.path.SetValue(ct.PATH_DELIMITER.join(dlg.GetPaths())) dlg.Destroy() def browse_folder(self): path = self.show_dir_dialog( defaultPath=self.get_default_path(), message=_("Choose an image folder")) if path != None: self.path.SetValue(path) def get_default_path(self): path = self.path.GetValue().split(ct.PATH_DELIMITER)[0] return os.path.dirname(path) def export_settings(self, settings): settings['paths'] = self.path.GetValue().split(ct.PATH_DELIMITER) settings['extensions'] = [self.extensions.GetString(i) \ for i in range(self.extensions.GetCount()) \ if self.extensions.IsChecked(i)] settings['recursive'] = self.recursive.GetValue() settings['stop_for_errors'] = self.stop_for_errors.GetValue() settings['overwrite_existing_images'] = \ self.overwrite_existing_images.GetValue() settings['always_show_status_dialog'] = \ self.always_show_status_dialog.GetValue() settings['check_images_first'] = self.check_images_first.GetValue() settings['browse_source'] = self.source.GetSelection() settings['desktop'] = self.desktop.GetValue() settings['repeat'] = self.repeat.GetValue() wx.GetApp()._saveSettings() def get_selected_extensions(self): result = [] exts = pil.IMAGE_READ_EXTENSIONS for index, extension in enumerate(exts): if self.extensions.IsChecked(index): result.append(extension) return result def set_drop(self, drop): if drop: #change title self.SetTitle(_('Drag & Drop')) #radio box self.source.Hide() #hide browse & path self.browse.Hide() self.path.Hide() #layout (only allow vertical fit) grid_sizer = self.GetSizer() size = (self.GetSize()[0], grid_sizer.GetMinSize()[1]) self.SetMinSize(size) self.Fit() def import_settings(self, settings): #path self.path.SetValue(ct.PATH_DELIMITER.join(settings['paths'])) #browse source self.source.SetSelection(settings['browse_source']) self.on_source(None) #extensions exts = pil.IMAGE_READ_EXTENSIONS self.extensions.Set(exts) for index, extension in enumerate(exts): if extension in settings['extensions']: self.extensions.Check(index) #overwrite existing images self.overwrite_existing_images.SetValue( settings['overwrite_existing_images'] or\ settings['overwrite_existing_images_forced']) #overwrite existing files self.check_images_first.SetValue( settings['check_images_first']) #recursive self.recursive.SetValue(settings['recursive']) #errors self.stop_for_errors.SetValue(settings['stop_for_errors']) #always_show_status_dialog self.always_show_status_dialog.SetValue( settings['always_show_status_dialog']) #always save on desktop self.desktop.SetValue(settings['desktop']) #repeat images self.repeat.SetValue(settings['repeat']) #---wildcard def wildcard(self): extensions = self.get_selected_extensions() selected = wildcard_list(_('All selected types'), extensions) default = wildcard_list(_('All readable and writable types'), pil.IMAGE_EXTENSIONS) read = wildcard_list(_('All readable types'), pil.IMAGE_READ_EXTENSIONS) result = [selected, default, read] result.extend([('%s ' + _('images') + '|%s')\ % (ext, _wildcard_extension(ext)) for ext in extensions]) return '|'.join(result) #---events def on_browse(self, event): if self.source.GetSelection() == 0: self.browse_folder() else: self.browse_files() def on_default(self, event): state = self.select.GetLabel() == _("&All Types") exts = pil.IMAGE_READ_EXTENSIONS for index, extension in enumerate(exts): self.extensions.Check(index, state) if state: self.select.SetLabel(_("&No Types")) else: self.select.SetLabel(_("&All Types")) def on_source(self, event): source = self.source.GetStringSelection() if source == _('Clipboard'): self.browse.Disable() self.browse.SetLabel(_('Browse')) self.path.SetValue(clipboard.get_text()\ .replace('\n', ct.PATH_DELIMITER)) else: self.browse.Enable() self.browse.SetLabel(_('Browse %s') % source) class FilesDialog(dialogs.FilesDialog, IconMixin): def __init__(self, parent, message, title, files, icon='warning', **keyw): super(FilesDialog, self).__init__(parent, -1, **keyw) self.SetTitle(title) self.message.SetLabel(message) self.list.InsertColumn(0, _("File")) self.list.InsertColumn(1, _("Folder")) for index, f in enumerate(files): index = self.list.InsertStringItem(index, os.path.basename(f)) self.list.SetStringItem(index, 1, os.path.dirname(f)) self.list.SetColumnWidth(0, wx.LIST_AUTOSIZE) self.list.SetColumnWidth(1, wx.LIST_AUTOSIZE) min = 100 if self.list.GetColumnWidth(0) < min: self.list.SetColumnWidth(0, min) self._icon(icon) class ProgressDialog(wx.ProgressDialog, ProgressReceiver): """+1 is added because eg opening a file is also an action""" def __init__(self, parent, title, parent_max=1, child_max=1, message=''): if message == '': message = '.' * 80 ProgressReceiver.__init__(self, parent_max, child_max) wx.ProgressDialog.__init__(self, title=title, message=message, maximum=self.max, parent=parent, style=wx.PD_CAN_ABORT | wx.PD_APP_MODAL | wx.PD_REMAINING_TIME | wx.PD_SMOOTH) self.Bind(wx.EVT_CLOSE, self.close, self) #---pubsub event methods def close(self, event=None): self.unsubscribe_all() self.Destroy() def update(self, result, value, **message): """Fix for wxPython2.6""" status = self.Update(value, **message) if type(status) == bool: result['keepgoing'] = result['skip'] = status else: result['keepgoing'], result['skip'] = status if result['keepgoing']: self.Refresh() else: self.close() def sleep(self): time.sleep(0.001) class ActionListBox(ContentMixin, vlistTag.Box): #---vlist.Box obligatory overwritten def SetTag(self, tag=imageInspector.ALL): super(ActionListBox, self).SetTag(tag) #process tag self.tag = tag if tag == imageInspector.SELECT: tag = _('default') #choose tag actions if tag == imageInspector.ALL: self.tag_actions = self.all_actions else: tag_i18n = tag.lower() self.tag_actions = [a for a in self.all_actions if tag_i18n in a.tags_i18n] #sort self.tag_actions.sort(cmp=lambda \ x, y: cmp(_(x.label_i18n), _(y.label_i18n))) #take filter in account self.SetFilter(self.GetFilter().GetValue()) def SetFilter(self, filter): filter = filter.strip().lower() actions = self.tag_actions[:] if filter: actions = self._filter_actions(filter, actions) if not actions: #nothing found for the tag, look everywhere actions = self._filter_actions(filter, self.all_actions[:]) self.actions = actions self.SetItemCount(len(self.actions)) self.GetParent().CheckEmpty() self.RefreshAll() wx.GetTopLevelParent(self).ok.Enable(not self.IsEmpty()) def _filter_actions(self, filter, actions): selected = self._filter_attr(filter, 'label_i18n', actions) selected += self._filter_attr(filter, 'doc__i18n', actions) selected += self._filter_attr(filter, 'tags_i18n', actions) selected += self._filter_attr(filter, 'tags_hidden_i18n', actions) return selected def _filter_attr(self, filter, attr, actions): selected1 = [action for action in actions if unicode(getattr(action, attr)).startswith(filter)] for action in selected1: actions.remove(action) selected2 = [action for action in actions if filter in unicode(getattr(action, attr))] for action in selected2: actions.remove(action) return selected1 + selected2 def _events(self): self.Bind(wx.EVT_CONTEXT_MENU, self.OnContextMenu) #---actions def SetActions(self, actions): self.all_actions = actions.values() for action in self.all_actions: self.TranslateAction(action) self.all_actions.sort(cmp=lambda x, y: \ cmp(_(x.label_i18n), _(y.label_i18n))) def TranslateAction(self, action): action.label_i18n = _(action.label).lower() action.doc__i18n = _(action.__doc__).lower() action.tags_i18n = [_(tag).lower() for tag in action.tags] action.tags_hidden_i18n = [_(tag).lower() for tag in action.tags_hidden] def OnContextMenu(self, event): # todo: does contextmenu always have to be recreated? #create id self.id_view_source = wx.NewId() #create menu menu = wx.Menu() item = wx.MenuItem(menu, self.id_view_source, _("View Source")) item.SetBitmap(graphics.bitmap('ART_FIND', (16, 16))) self.Bind(wx.EVT_MENU, self.OnViewSource, id=self.id_view_source) menu.AppendItem(item) #show menu self.PopupMenu(menu) #destroy menu menu.Destroy() def OnViewSource(self, event): action = self.actions[self.GetSelection()] module = action.__module__.split('.')[-1] filename = os.path.join(ct.PHATCH_ACTIONS_PATH, '%s.py' % module) message = open(filename).read() dir, base = os.path.split(filename) send.frame_show_scrolled_message(message, '%s - %s' % (base, dir), size=(600, 300)) def RefreshList(self): self.actions.sort(cmp=lambda x, y: cmp(_(x.label), _(y.label))) self.Clear() self.SetItemCount(len(self.actions)) self.RefreshAll() def GetItem(self, n): action = self.actions[n] return (_(action.label), _(action.__doc__), graphics.bitmap(action.icon, self.GetIconSize())) def GetStringSelection(self): return self.actions[self.GetSelection()].label def IsEmpty(self): return not (hasattr(self, 'actions') and self.actions) class ActionBrowser(Browser): ContentCtrl = ActionListBox paint_message = _("broaden your search") paint_color = images.LOGO_COLOUR #paint_logo = images.LOGO class ActionDialog(paint.Mixin, vlistTag.Dialog): ContentBrowser = ActionBrowser def __init__(self, parent, actions, tag='default', **keyw): #extract tags tags = self.ExtractTags(actions.values()) #init dialog super(ActionDialog, self).__init__(parent, tags, -1, **keyw) #configure listbox list_box = self.GetListBox() list_box.SetActions(actions) list_box.SetIconSize(VLIST_ICON_SIZE) list_box.SetTag(_(tag)) self.Bind(wx.EVT_ACTIVATE, self.OnActivate) def ExtractTags(self, actions): """Called by SetActions.""" tags = vlistTag.extract_tags(actions) tags.remove(_('default')) tags.sort() tags = [imageInspector.SELECT, imageInspector.ALL] + tags return tags def GetListBox(self): return self.browser.content def GetStringSelection(self): return self.GetListBox().GetStringSelection() def GetTagSelection(self): return _r(self.GetListBox().GetTag().GetStringSelection()) def OnActivate(self, event): if event.GetActive(): wx.CallAfter(self.GetListBox().GetFilter().SetFocus) class WritePluginDialog(dialogs.WritePluginDialog, IconMixin): def __init__(self, parent, message, **keyw): super(WritePluginDialog, self).__init__(parent, -1, **keyw) path = os.path.join(ct.PATH, 'templates', 'action.py') self._icon('information') self.message.SetLabel(message) self.path.SetLabel('%s: %s' % (_('Path'), path)) self._code(path) self.template_show(False) def _code(self, path): self.code.SetValue(open(path).read()) self.code.SetMinSize((660, 300)) self.code.SetFont(wx.Font(10, wx.TELETYPE, wx.NORMAL, wx.NORMAL, 0, "")) #---events def on_help(self, event): import webbrowser url = "https://lists.launchpad.net/phatch-dev/" webbrowser.open(url) def on_template(self, event): self.template_show(event.IsChecked()) def template_show(self, show): sizer = self.GetSizer() self.path.Show(show) self.code.Show(show) self.SetMinSize(sizer.GetMinSize()) self.Fit() self.code.ShowPosition(0) def example(): class App(wx.App): def OnInit(self): wx.InitAllImageHandlers() frame = wx.Frame(None, -1, "") self.SetTopWindow(frame) frame.Show(False) wx.CallAfter(self.show_dialogs) return 1 def show_dialogs(self): ## self.show_error_dialog() ## self.show_execute_dialog() ## self.show_files_dialog() ## self.show_progress_dialog() self.show_action_dialog() self.GetTopWindow().Destroy() def show_error_dialog(self): dlg = ErrorDialog(self.GetTopWindow(), 'message') dlg.ShowModal() dlg.Destroy() def show_execute_dialog(self, drop=False): dlg = ExecuteDialog(self.GetTopWindow(), drop) dlg.ShowModal() dlg.Destroy() def show_files_dialog(self): dlg = FilesDialog(self.GetTopWindow(), 'message', 'title', ['path/file'], 'warning') dlg.ShowModal() dlg.Destroy() def show_progress_dialog(self): from lib.events import send import time n = 5 dlg = ProgressDialog(self.GetTopWindow(), 'title', 'messages', n) result = {} for value in range(n): send.progress_update(result, value) if not result['keepgoing']: break time.sleep(1) dlg.Destroy() def show_action_dialog(self): from core import api api.init() dlg = ActionDialog(self.GetTopWindow(), api.ACTIONS, size=(400, 500)) dlg.ShowModal() dlg.Destroy() app = App(0) app.MainLoop() class ImageTreeDialog(dialogs.ImageTreeDialog): def __init__(self, *args, **keyw): super(ImageTreeDialog, self).__init__(*args, **keyw) self.SetSize(keyw['size']) self.browser.tree.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.on_tree_item_right_click) self.browser.list.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.on_list_item_right_click) def SetColumnWidths(self, *widths): self.browser.SetColumnWidths(*widths) def UpdateHeaders(self, headers=None): self.browser.UpdateHeaders(headers) def SetData(self, data): self.browser.SetData(data) def SetOkLabel(self, label): self.ok.SetLabel(label) def ShowButtons(self, visible): self.hint.Show(visible) self.ok.Show(visible) self.cancel.Show(visible) def _AppendMenuItem(self, menu, label, method, shortcut='', id=None): if id is None: id = wx.NewId() menu.Append(id, '%s\t%s' % (label, shortcut)) self.Bind(wx.EVT_MENU, method, id=id) def inspect_list_item(self, index): self.inspect(self.browser.get_list_file(index)) def inspect_tree_item(self, item): self.inspect(self.browser.get_tree_folder(item)) def inspect(self, path): frame = ImageInspectorFrame(None, filename=path, size=(470, get_max_height(510)), icon=images.get_icon('inspector')) frame.Show() def on_tree_item_right_click(self, event): item = event.GetItem() #menu events handlers def on_open(event): self.browser.start_tree_item(item) def on_inspect(event): self.inspect_tree_item(item) #build menu control menu = wx.Menu() self._AppendMenuItem(menu, _('&Open...'), on_open, id=wx.ID_OPEN) self._AppendMenuItem(menu, _('&Inspect...'), on_inspect, id=wx.ID_FIND) #show menu self.PopupMenu(menu) menu.Destroy() def on_list_item_right_click(self, event): index = event.GetIndex() #menu events handlers def on_open(event): self.browser.start_list_item(index) def on_inspect(event): self.inspect_list_item(index) #build menu control menu = wx.Menu() self._AppendMenuItem(menu, _('&Open...'), on_open, id=wx.ID_OPEN) self._AppendMenuItem(menu, _('&Inspect...'), on_inspect, id=wx.ID_FIND) #show menu self.PopupMenu(menu) menu.Destroy() class StatusDialog(dialogs.StatusDialog): def SetMessage(self, text, report=None): if report: wx.GetApp().report = report self.report.Show(bool(wx.GetApp().report)) self.message.SetLabel(text) self.GetSizer().Fit(self) self.Layout() def on_button_report(self, event): self.GetParent().show_report() self.EndModal(wx.ID_OK) def on_button_log(self, event): self.GetParent().show_log() self.EndModal(wx.ID_OK) class ImageInspectorGrid(imageInspector.GridTag): corner_logo = images.ICON_INSPECTOR_96HIGH def CreateRowLabelMenu(self, menu, row): super(ImageInspectorGrid, self).CreateRowLabelMenu(menu, row) if self.HasActionList(): id_insert = wx.NewId() menu.Append(id_insert, _('&Insert Tag in Action List...') + '\tCtrl+Shift+I') def on_insert(event): self.InsertTagInActionList(row) self.Bind(wx.EVT_MENU, on_insert, id=id_insert) def ProcessKey(self, key_code, row, col, shift, ctrl, alt): if ctrl and shift and key_code == 73: self.InsertTagInActionList(row) return super(ImageInspectorGrid, self).ProcessKey(key_code, row, col, shift, ctrl, alt) def InsertTagInActionList(self, row): key = '<%s>' % self.GetRowLabelValue(row) frame = wx.GetApp().GetTopWindow() frame.tree.set_form_field_value_selected(key) def HasActionList(self): frame = wx.GetApp().GetTopWindow() return hasattr(frame, 'tree') class ImageInspectorBrowser(imageInspector.Browser): ContentCtrl = ImageInspectorGrid paint_logo = images.LOGO_INSPECTOR class ImageInspectorFrame(imageInspector.Frame): Browser = ImageInspectorBrowser if __name__ == '__main__': example() phatch-0.2.7/phatch/pyWx/gui.py0000644000000000000000000012562211346363116016315 0ustar rootroot00000000000000# -*- coding: UTF-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for python editing. # Follows PEP8 #---Global import #import import new import sys #check wx from lib.pyWx.wxcheck import ensure try: wx = ensure('2.8', '2.8') except: #sphinx import wx #force wxpython2.6 for testing #import wxversion #wxversion.select('2.6') #import wx #check with other encoding ##wx.SetDefaultPyEncoding('ISO8859-15') #standard library import glob import pprint import webbrowser import os #---Local import #gui-independent from core import api from core import ct from core import config from core import pil from core.message import FrameReceiver from lib import formField from lib import notify from lib import safe from lib import system from lib import listData from lib.unicoding import exception_to_unicode notify.init(ct.INFO['name']) #gui-dependent from lib.pyWx import droplet from lib.pyWx import graphics from lib.pyWx import imageFileBrowser from lib.pyWx import imageInspector from lib.pyWx import paint from lib.pyWx.clipboard import copy_text import images import dialogs import plugin from wxGlade import frame WX_ENCODING = wx.GetDefaultPyEncoding() COMMAND_PASTE = \ _('You can paste it as text into the properties of a new launcher.') ERROR_INSTALL_ACTION = \ _('Sorry, you need to install the %s action for this action list.') WARNING_LOST_VALUES = \ _('Sorry, the values of these options will be lost in %(name)s %(version)s:') CLIPBOARD_ACTIONLIST = \ _('The droplet command for this action list was copied to the clipboard.') CLIPBOARD_RECENT = \ _('The droplet command for recent action lists was copied to the clipboard.') CLIPBOARD_IMAGE_INSPECTOR = \ _('The droplet command for the image inspector was copied to the clipboard.') NO_PHOTOS = \ _('In Phatch you need to open or create an action list first.') + ' ' + \ _('As an example try out the polaroid action list from the library.') + \ '\n' + \ _('Afterwards you can drag&drop images on the Phatch window to batch them.') +\ '\n\n' + \ _('For more information see the tutorials (Help>Documentation)') #---theme def _theme(): if wx.Platform != '__WXGTK__': set_theme('nuovext') def set_theme(name='default'): if name == 'nuovext': from nuovext import Provider wx.ArtProvider.Push(Provider()) #---Functions def findWindowById(id): return wx.GetApp().GetTopWindow().FindWindowById(id) class DialogsMixin: _icon_filename = None #---dialogs def show_error(self, message): return self.show_message(message, style=wx.OK | wx.ICON_ERROR) def show_execute_dialog(self, result, settings, files=None): dlg = dialogs.ExecuteDialog(self, drop=files) if settings['overwrite_existing_images_forced']: dlg.overwrite_existing_images.Disable() if files: #store in settings, not result as it will be saved settings['paths'] = files dlg.import_settings(settings) result['cancel'] = dlg.ShowModal() == wx.ID_CANCEL if result['cancel']: dlg.Destroy() return #Retrieve settings from dialog dlg.export_settings(settings) dlg.Destroy() def show_files_message(self, result, message, title, files): dlg = dialogs.FilesDialog(self, message, title, files) x0, y0 = self.GetSize() x1, y1 = dlg.GetSize() x = max(x0, x1) y = max(y1, 200) dlg.SetSize((x, y)) result['cancel'] = dlg.ShowModal() == wx.ID_CANCEL def show_message(self, message, title='', style=wx.OK | wx.ICON_EXCLAMATION): if self.IsShown(): parent = self else: parent = None dlg = wx.MessageDialog(parent, message, '%(name)s ' % ct.INFO + title, style, ) answer = dlg.ShowModal() dlg.Destroy() return answer def show_status(self, message, log=True): dlg = dialogs.StatusDialog(self) dlg.log.Show(log) dlg.SetMessage(message) dlg.ShowModal() dlg.Destroy() def show_question(self, message, style=wx.YES_NO | wx.ICON_QUESTION): return self.show_message(message, style=style) def show_image_tree(self, result, image_infos, widths, headers, ok_label='&OK', buttons=False, modal=False): data = listData.files_data_dict(image_infos) dlg = dialogs.ImageTreeDialog(data, listData.DataDict, headers, self, size=(600, dialogs.get_max_height(300))) dlg.SetColumnWidths(*widths) dlg.SetOkLabel(ok_label) dlg.ShowButtons(buttons) if modal or buttons: answer = dlg.ShowModal() result['answer'] = answer == wx.ID_OK else: dlg.Show() def show_report(self): report = wx.GetApp().report if report: self.show_image_tree({}, report, widths=(200, 60, 60, 60, 500), headers=['filename', 'width', 'height', 'mode', 'source'], buttons=False, modal=not isinstance(self, Frame)) else: self.show_message(_('No images have been processed to report.')) def show_log(self): if os.path.exists(ct.USER_LOG_PATH): log_file = open(ct.USER_LOG_PATH) msg = log_file.read().strip() log_file.close() if not msg: msg = _('Hooray, no issues!') else: msg = _('Nothing has been logged yet.') self.show_scrolled_message(msg, '%s - %s' \ % (_('Log'), ct.USER_LOG_PATH)) def show_info(self, message, title=''): return self.show_message(message, title, style=wx.OK | wx.ICON_INFORMATION) def show_progress(self, title, parent_max, child_max=1, message=''): dlg = dialogs.ProgressDialog(self, title, parent_max, child_max, message) def show_progress_error(self, result, message, ignore=True): message += '\n\n' + api.SEE_LOG errorDlg = dialogs.ErrorDialog(self, message, ignore) answer = errorDlg.ShowModal() result['stop_for_errors'] = not errorDlg.future_errors.GetValue() errorDlg.Destroy() if answer == wx.ID_ABORT: result['answer'] = _('abort') self.show_log() elif answer == wx.ID_FORWARD: result['answer'] = _('skip') else: result['answer'] = _('ignore') def show_scrolled_message(self, message, title, **keyw): import wx.lib.dialogs dlg = wx.lib.dialogs.ScrolledMessageDialog(self, message, title, style=wx.DEFAULT_DIALOG_STYLE | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER, **keyw) dlg.ShowModal() def show_notification(self, message, force=False, report=None): self.set_report(report) active = wx.GetApp().IsActive() or self.IsActive() if force or not active: notify.send( title=system.filename_to_title(self.filename), message=message, icon=self.get_icon_filename(), wxicon=graphics.bitmap(images.ICON_PHATCH_64)) if not active: self.RequestUserAttention() #---settings def get_setting(self, name): return wx.GetApp().settings[name] def set_setting(self, name, value): wx.GetApp().settings[name] = value #---data def load_actionlist_data(self, filename): if not os.path.exists(filename): return try: data, warnings = api.open_actionlist(filename) except KeyError, details: self.show_error(ERROR_INSTALL_ACTION\ % exception_to_unicode(details, WX_ENCODING)) return except: self.show_error(api.ERROR_INCOMPATIBLE_ACTIONLIST % ct.INFO) return if data['invalid labels']: self.show_message('\n'.join([ _('This action list was made by a different %(name)s version.')\ % ct.INFO + '\n\n' + \ WARNING_LOST_VALUES % ct.INFO + '\n', '\n'.join(data['invalid labels'])])) if warnings: if formField.get_safe(): self.show_error('%s\n\n%s\n%s' % ( api.ERROR_UNSAFE_ACTIONLIST_INTRO, warnings, api.ERROR_UNSAFE_ACTIONLIST_DISABLE_SAFE)) return else: wx.CallAfter(self.show_error, '%s\n\n%s\n%s' % ( api.ERROR_UNSAFE_ACTIONLIST_INTRO, warnings, api.ERROR_UNSAFE_ACTIONLIST_ACCEPT)) return data #---notification def _execute(self, actionlist, **keyw): app = wx.GetApp() self.set_report([]) api.apply_actions_to_photos(actionlist, app.settings, update=self._send_update_event, **keyw) def _send_update_event(self): update_event = imageInspector.UpdateEvent() for frame in wx.GetTopLevelWindows(): if frame != self: wx.PostEvent(frame, update_event) def set_report(self, report): wx.GetApp().report = report def get_icon_filename(self): if self._icon_filename == None: self._icon_filename = os.path.join( self.get_setting("PHATCH_IMAGE_PATH"), 'icons', '48x48', 'phatch.png') return self._icon_filename class Frame(DialogsMixin, dialogs.BrowseMixin, droplet.Mixin, paint.Mixin, frame.Frame, FrameReceiver): DEFAULT_PAINT_MESSAGE = _("click '+' to add actions") paint_message = DEFAULT_PAINT_MESSAGE paint_color = images.LOGO_COLOUR paint_logo = images.LOGO def __init__(self, actionlist, *args, **keyw): frame.Frame.__init__(self, *args, **keyw) _theme() self.dlg_library = None self.dirty = False self.EnableBackgroundPainting(self.empty) self._menu() self._toolBar() self._plugin() self.on_menu_file_new() images.set_icon(self, 'phatch') self._title() self._description() self._drop() self._set_size() self._events() self._pubsub() if actionlist.endswith(ct.EXTENSION): self._open(actionlist) def _set_size(self): #make it eee pc friendly self._width = 400 self._max_height = dialogs.get_max_height() self.SetSize((self._width, min(600, self._max_height))) super(Frame, self).__set_properties() def _plugin(self): plugin.install_frame(self) def _description(self): self.show_description(False) def _drop(self): self.SetAsFileDropTarget(self.tree, self.on_drop) def _menu(self): #export menu self.menu_file_export = \ self.menu_file_export_actionlist_to_clipboard.GetMenu() #file history self.menu_file_recent = wx.Menu() self.filehistory = wx.FileHistory() self.filehistory.UseMenu(self.menu_file_recent) self._set_file_history(self.get_setting('file_history')) self.Bind(wx.EVT_MENU_RANGE, self.on_menu_file_history, id=wx.ID_FILE1, id2=wx.ID_FILE9) self.menu_file.InsertMenu(2, wx.ID_REFRESH, _("Open &Recent"), self.menu_file_recent, "") #library #actionlists = [(system.filename_to_title(a), a) # for a in wx.GetApp().get_action_list_files()] #actionlists.sort() #library = self.menu_file_library = wx.Menu() #prefix = len(actionlists) < 10 #self.library_files = {} #for index, actionlist in enumerate(actionlists): # id = wx.NewId() # label = actionlist[0] # if prefix: # label = '&%d %s' % (index + 1, label) # item = library.Append(id, label) # self.library_files[id] = actionlist[1] # self.Bind(wx.EVT_MENU, self.on_menu_file_library, item) ##wx2.6 compatible #wx_ID_EDIT = 5030 #self.menu_file.InsertMenu(3, wx_ID_EDIT, _("Open &Library"), # library, "") self.library_files_dictionary = formField.files_dictionary( paths=[config.PATHS["PHATCH_ACTIONLISTS_PATH"], ct.USER_ACTIONLISTS_PATH], extensions=['png']) #shell self.shell = None #menu_item (for enabling/disabling) edit = [getattr(self, attr) for attr in dir(self) if attr[:10] == 'menu_edit_'] edit.remove(self.menu_edit_add) view = [getattr(self, attr) for attr in dir(self) if attr[:10] == 'menu_view_'] self.menu_item = [ (self.menu_file, [ self.menu_file_new.GetId(), self.menu_file_save.GetId(), self.menu_file_save_as.GetId()]), (self.menu_edit, [item.GetId() for item in edit]), (self.menu_view, [item.GetId() for item in view]), (self.menu_tools, [ self.menu_tools_execute.GetId(), self.menu_tools_show_report.GetId(), self.menu_tools_show_log.GetId()]), (self.menu_file_export, [ self.menu_file_export_actionlist_to_clipboard.GetId()])] self.on_show_droplet(False) # Mac tweaks if wx.Platform == "__WXMAC__": #todo: about doesn't seem to work: why?! app = wx.GetApp() #app.SetMacHelpMenuTitleName(_('&Help')) app.SetMacAboutMenuItemId(wx.ID_ABOUT) app.SetMacExitMenuItemId(wx.ID_EXIT) #app.SetMacPreferencesMenuItemId(wx.ID_PREFERENCES) else: self.menu_file.InsertSeparator(8) def _title(self): path, filename = os.path.split(self.filename) self.SetTitle(ct.FRAME_TITLE\ % (self.dirty, os.path.splitext(filename)[0])) self.frame_statusbar.SetStatusText(path) self.SetStatusText(ct.COPYRIGHT) def is_protected_actionlist(self, filename): return config.PATHS["PHATCH_ACTIONLISTS_PATH"] == \ os.path.dirname(filename) #---toolBar def add_tool(self, bitmap, label, tooltip, method, item=wx.ITEM_NORMAL): id = wx.NewId() bitmap = graphics.bitmap(bitmap, self.tool_bitmap_size, client=wx.ART_TOOLBAR) args = (id, label, bitmap, wx.NullBitmap, item, tooltip, "") tool = self.frame_toolbar.AddLabelTool(*args) self.Bind(wx.EVT_TOOL, method, id=id) return tool def _toolBar(self): self.tool_bitmap_size = (32, 32) self.frame_toolbar = wx.ToolBar(self, -1, style=wx.TB_FLAT) self.SetToolBar(self.frame_toolbar) self.frame_toolbar.SetToolBitmapSize(self.tool_bitmap_size) tools_item_other = [ self.add_tool('ART_FILE_OPEN', _("Open"), _("Open an action list"), self.on_menu_file_open)] tools_item = [ self.add_tool('ART_EXECUTABLE_FILE', _("Execute"), _("Execute the action"), self.on_menu_tools_execute)] self.frame_toolbar.AddSeparator() tools_item_other.extend([ self.add_tool('ART_ADD_BOOKMARK', _("Add"), _("Add an action"), self.on_menu_edit_add)]) tools_item.extend([ self.add_tool('ART_DEL_BOOKMARK', _("Remove"), _("Remove the selected action"), self.on_menu_edit_remove), self.add_tool('ART_GO_UP', _("Up"), _("Move the selected action up"), self.on_menu_edit_up), self.add_tool('ART_GO_DOWN', _("Down"), _("Move the selected action down"), self.on_menu_edit_down)]) self.frame_toolbar.AddSeparator() tools_item_other.extend([ self.add_tool('ART_FIND', _("Image Inspector"), _("Look up exif and iptc tags"), self.on_menu_tools_image_inspector)]) self.frame_toolbar.AddSeparator() self.toolbar_description = self.add_tool('ART_TIP', _("Description"), _("Show description of the action list"), self.on_menu_view_description, item=wx.ITEM_CHECK) tools_item.extend([self.toolbar_description]) self.tools_item = [tool.GetId() for tool in tools_item] self.tools_all = tools_item + \ [tool.GetId() for tool in tools_item_other] self._menu_toolbar_state = True self.frame_toolbar.Realize() def enable_actions(self, state=True): if state != self._menu_toolbar_state: for tool in self.tools_item: self.frame_toolbar.EnableTool(tool, state) for menu, items in self.menu_item: for item in items: menu.Enable(item, state) self._menu_toolbar_state = state self.tree.Show(state) self.empty.Show(not state) self.show_description(state and self.get_setting('description')) def enable_menu(self, state=True): self._menu_toolbar_state = None menu = self.frame_menubar for index in range(menu.GetMenuCount()): menu.EnableTop(index, state) def enable_toolbar(self, state=True): self._menu_toolbar_state = None for tool in self.tools_all: self.frame_toolbar.EnableTool(tool, state) def show_paint_message(self, message=None): if message == None: self.paint_message = self.DEFAULT_PAINT_MESSAGE else: self.paint_message = message self.Refresh() #---menu events def on_menu_file_new(self, event=None): if self.is_save_not_ok(): return self._set_filename(ct.UNKNOWN) self.description.SetValue(ct.ACTION_LIST_DESCRIPTION) self.saved_description = ct.ACTION_LIST_DESCRIPTION self._new() self.enable_actions(False) def on_menu_file_open_library(self, event): if self.is_save_not_ok(): return if not self.dlg_library: self.dlg_library = imageFileBrowser.Dialog( parent=self, files=self.library_files_dictionary, title=_('Library Action Lists'), size=(self.GetSize()[0], 370), icon_size=(128, 128)) self.dlg_library.image_list.Select(0) if self.dlg_library.ShowModal() == wx.ID_OK: filename = self.dlg_library.image_path.GetValue() filename = self.library_files_dictionary.get(filename, filename)\ .replace('.png', '.phatch') #21/9/2009 may be removed #save_filename = os.path.join(ct.USER_ACTIONLISTS_PATH, # os.path.basename(filename)) self._open(filename) self.dlg_library.Hide() return def on_menu_file_open(self, event): if self.is_save_not_ok(): return dlg = wx.FileDialog(self, message=_('Choose an Action List File...'), defaultDir=os.path.dirname(self.filename), wildcard=ct.WILDCARD, style=wx.OPEN, ) if dlg.ShowModal() == wx.ID_OK: filename = dlg.GetPath() self._open(filename) dlg.Destroy() #def on_menu_file_library(self, event): # if self.is_save_not_ok(): # return # filename = self.library_files[event.GetId()] # save_filename = os.path.join(ct.USER_ACTIONLISTS_PATH, # os.path.basename(filename)) # self._open(filename, save_filename) def on_menu_file_save(self, event): if self.filename == ct.UNKNOWN \ or self.is_protected_actionlist(self.filename): return self.on_menu_file_save_as() else: self._save() return True def on_menu_file_save_as(self, event=None): if self.is_protected_actionlist(self.filename) \ or not os.path.isfile(self.filename): default_dir = ct.USER_ACTIONLISTS_PATH else: default_dir = os.path.dirname(self.filename) dlg = wx.FileDialog(self, message=_('Save Action List As...'), defaultDir=default_dir, wildcard=ct.WILDCARD, style=wx.SAVE | wx.OVERWRITE_PROMPT, ) if dlg.ShowModal() == wx.ID_OK: saved = True path = dlg.GetPath() if dlg.GetFilterIndex() == 0 \ and not os.path.splitext(path)[1]: path += ct.EXTENSION if os.path.exists(path) and self.show_question('%s %s'\ % (_('This file exists already.'), _('Do you want to overwrite it?'))) == wx.ID_NO: saved = False if saved: self._save(path) else: saved = False dlg.Destroy() return saved def on_menu_file_export_actionlist_to_clipboard(self, event): if self.is_save_not_ok(): return copy_text(ct.COMMAND['DROP'] % self.filename) self.show_info(' '.join([CLIPBOARD_ACTIONLIST, COMMAND_PASTE])) def on_menu_file_export_recent_to_clipboard(self, event): if self.is_save_not_ok(): return copy_text(ct.COMMAND['RECENT']) self.show_info(' '.join([CLIPBOARD_RECENT, COMMAND_PASTE])) def on_menu_file_export_inspector_to_clipboard(self, event): if self.is_save_not_ok(): return copy_text(ct.COMMAND['INSPECTOR']) self.show_info(' '.join([CLIPBOARD_IMAGE_INSPECTOR, COMMAND_PASTE])) def on_menu_file_quit(self, event): self.on_close() def on_menu_file_history(self, event): if self.is_save_not_ok(): return # get the file based on the menu ID filenum = event.GetId() - wx.ID_FILE1 filename = self.filehistory.GetHistoryFile(filenum) self._open(filename) def on_menu_edit_add(self, event): settings = wx.GetApp().settings if not hasattr(self, 'dialog_actions'): self.dialog_actions = dialogs.ActionDialog(self, api.ACTIONS, settings['tag_actions'], size=(self._width, min(400, self._max_height)), title=_("%(name)s actions") % ct.INFO) if self.dialog_actions.ShowModal() == wx.ID_OK: self.set_dirty(True) label = self.dialog_actions.GetStringSelection() self.tree.append_form_by_label_to_selected(label) self.enable_actions(True) self.dialog_actions.Hide() def on_menu_edit_remove(self, event): if self.tree.remove_selected_form(): if self.IsEmpty(): self.enable_actions(False) self.set_dirty(False) else: self.set_dirty(True) def on_menu_edit_up(self, event): self.set_dirty(True) self.tree.move_form_selected_up() def on_menu_edit_down(self, event): self.set_dirty(True) self.tree.move_form_selected_down() def on_menu_edit_enable(self, event): self.tree.enable_selected_form(True) def on_menu_edit_disable(self, event): self.tree.enable_selected_form(False) def on_menu_view_droplet(self, event): self.show_droplet(event.IsChecked()) def droplet_label_format(self, x): #return '123456789012345678901234567890' return x # [:18] def on_menu_view_description(self, event): self.show_description(event.IsChecked()) def on_menu_view_expand_all(self, event): self.tree.expand_forms() def on_menu_view_collapse_all(self, event): self.tree.collapse_forms() def on_menu_view_collapse_automatic(self, event): self.enable_collapse_automatic(event.IsChecked()) def on_menu_tools_execute(self, event): actionlist = self.tree.export_forms() self._execute(actionlist) def on_menu_tools_safe(self, event): self.set_safe_mode(event.IsChecked()) def on_menu_tools_image_inspector(self, event): frame = dialogs.ImageInspectorFrame(self, size=(470, dialogs.get_max_height(510)), icon=images.get_icon('inspector')) frame.Show() def on_menu_tools_browse_library_user(self, event): system.start(wx.GetApp().settings['USER_DATA_PATH']) def on_menu_tools_browse_library_phatch(self, event): system.start(wx.GetApp().settings['PHATCH_DATA_PATH']) def on_menu_tools_show_report(self, event): self.show_report() def on_menu_tools_show_log(self, event): self.show_log() def on_menu_tools_update_fonts(self, event): config.check_fonts(True) def on_menu_tools_python_shell(self, event): from lib.pyWx import shell self.tree.close_popup() if self.shell is None: title = ct.TITLE.lower() self.shell = shell.Frame(self, title=_('%(name)s Shell') % ct.INFO, intro='%(name)s ' % ct.INFO, values={ '%s_%s' % (title, _('application')): wx.GetApp(), '%s_%s' % (title, _('frame')): self, '%s_%s' % (title, _('actions')): self.tree.export_forms, }, icon=graphics.bitmap(images.ICON_PHATCH_64), ) self.shell.Show(event.IsChecked()) def on_menu_help_website(self, event): webbrowser.open('http://photobatch.stani.be') def on_menu_help_documentation(self, event): webbrowser.open('http://photobatch.stani.be/documentation') def on_menu_help_forum(self, event): webbrowser.open('http://photobatch.stani.be/forum') def on_menu_help_translate(self, event): webbrowser.open( 'https://translations.launchpad.net/phatch/trunk/+pots/phatch') def on_menu_help_bug(self, event): webbrowser.open('https://bugs.launchpad.net/phatch') def on_menu_help_plugin(self, event): help_path = self.get_setting("PHATCH_DOCS_PATH") help_file = os.path.join(help_path, 'index.html') if not os.path.exists(help_file): #debian/ubuntu help_file = os.path.join(help_path, 'build', 'html', 'index.html') if not os.path.exists(help_file): #ppa help_file = os.path.join(sys.prefix, 'share', 'phatch', 'docs', 'index.html') webbrowser.open(help_file) dlg = dialogs.WritePluginDialog(self, '\n'.join([ _('A html tutorial will open in your internet browser.'), '', _('You only need to know PIL to write a plugin for Phatch.'), _('Phatch will generate the user interface automatically.'), _('Study the action plugins in:') + ' ' + ct.PHATCH_ACTIONS_PATH, '', _('If you want to contribute a plugin for Phatch,'), _('please email: ') + ct.CONTACT])) dlg.ShowModal() #settings in mixin because now app bas, also config_path def on_menu_help_about(self, event): from lib.pyWx import about from data.info import all_credits dlg = about.Dialog(self, title='%(version)s' % ct.INFO, logo=graphics.bitmap(images.LOGO), description=_('PHoto bATCH Processor'), website=ct.INFO['url'], credits=all_credits(), license=ct.LICENSE, ) dlg.ShowModal() dlg.Destroy() #---helper def _new(self): self.set_dirty(False) self.tree.delete_all_forms() def _open(self, filename): self._new() if not os.path.exists(filename): self.show_error(_('Sorry, "%s" is not a valid path.' % filename)) return if system.file_extension(filename) in pil.IMAGE_READ_EXTENSIONS: self.show_error(NO_PHOTOS) filename = self.library_files_dictionary['Polaroid']\ .replace('.png', '.phatch') data = self.load_actionlist_data(filename) if data: description = data.get('description', '') self.show_description(bool(description)) if description: wx.FutureCall(5000, self.show_description, False) if not description: description = ct.ACTION_LIST_DESCRIPTION self.description.SetValue(description) self.saved_description = description if self.tree.append_forms(data['actions']): self.enable_actions(True) self._set_filename(filename) # add it to the history if not self.is_protected_actionlist(filename): self.filehistory.AddFileToHistory(filename) elif self.IsEmpty(): self.enable_actions(False) self.set_dirty(False) def _save(self, filename=None): if filename: self._set_filename(filename) description = self.description.GetValue() self.saved_description = description if description == ct.ACTION_LIST_DESCRIPTION: description = '' data = { 'description': description, 'actions': self.tree.export_forms(), } api.save_actionlist(self.filename, data) self.set_dirty(False) if filename: # add it to the history self.filehistory.AddFileToHistory(filename) def _set_filename(self, filename): self.filename = filename self.set_dirty(False) #---view show/hide def enable_collapse_automatic(self, checked): self.set_setting('collapse_automatic', checked) self.menu_view.Check(self.menu_view_collapse_automatic.GetId(), checked) self.tree.enable_collapse_automatic(checked) def show_description(self, checked): self.set_setting('description', checked) self.description.Show(checked) self.menu_view.Check(self.menu_view_description.GetId(), checked) self.frame_toolbar.ToggleTool(self.toolbar_description.GetId(), checked) self.Layout() def show_droplet(self, checked): if checked: if api.check_actionlist(self.tree.export_forms(), wx.GetApp().settings): self.droplet = droplet.Frame(self, title=_("Drag & Drop") + ' - ' + ct.TITLE, bitmap=graphics.bitmap(images.DROPLET), method=self.on_drop, label=self.droplet_label_format( system.filename_to_title(self.filename)), label_color=wx.Colour(217, 255, 186), label_pos=(8, 8), label_angle=0, pos=self.GetPosition(), auto=True, OnShow=self.on_show_droplet, tooltip=_( "Drop any files and/or folders on this Phatch droplet\n" "to batch process them.\n" "Right-click or double-click to switch to normal view.")) else: wx.CallAfter(self.on_show_droplet, False) else: if self.droplet: self.droplet.show(False) def on_show_droplet(self, bool): self.menu_view.Check(self.menu_view_droplet.GetId(), bool) if not bool: self.droplet = None # don't keep a reference #---checks def append_save_action(self, actions): only_metadata = self.only_actions_with_tag(actions, 'metadata') message = ct.SAVE_ACTION_NEEDED + " " + \ _("Phatch will add one for you, please check its settings.") if only_metadata: message += ' \n\n%s%s' % (\ _('The action list only processes metadata.'), _('Phatch chooses the lossless "Save Tags" action.')) self.show_message(message) if only_metadata: self.tree.append_form_by_label_to_last('Save Tags') else: self.tree.append_form_by_label_to_last('Save') def only_actions_with_tag(self, actions, tag): for action in actions: if tag not in action.tags: return False return True #---other events def _events(self): #wxPython events self.Bind(wx.EVT_CLOSE, self.on_close, self) self.Bind(wx.EVT_SIZE, self.on_size, self) self.Bind(wx.EVT_MENU_HIGHLIGHT_ALL, self.on_menu_tool_enter) self.Bind(wx.EVT_TOOL_ENTER, self.on_menu_tool_enter) self.Bind(wx.EVT_TEXT, self.on_description_text, self.description) self.tree.Bind(wx.EVT_TREE_END_DRAG, self.on_tree_end_drag, self.tree) self.tree.Bind(wx.EVT_CONTEXT_MENU, self.on_context_menu, self.tree) def on_description_text(self, event): if not self.dirty and event.GetString() != self.saved_description: self.set_dirty(True) def on_drop(self, filenames, x, y): api.apply_actions_to_photos(self.tree.export_forms(), wx.GetApp().settings, paths=filenames, drop=True) def on_menu_tool_enter(self, event): self.tree.close_popup() event.Skip() def on_tree_end_drag(self, event): event.Skip() wx.CallAfter(self.set_dirty, True) def on_context_menu(self, event): if self.tree.is_form_selected(): self.tree.PopupMenu(self.menu_edit) def is_save_not_ok(self): if self.dirty: answer = self.show_message(_('Save last changes to') + '\n"%s"?'\ % self.filename, style=wx.YES_NO | wx.CANCEL | wx.ICON_EXCLAMATION) if answer == wx.ID_CANCEL: return True if answer == wx.ID_YES: return not self.on_menu_file_save(None) return False def on_close(self, event=None): if self.is_save_not_ok(): return self.Hide() wx.GetApp()._saveSettings() #Destroy everything self.Destroy() def on_size(self, event): event.Skip() if self.IsEmpty(): self.empty.Refresh() else: self.tree.resize_popup() def IsEmpty(self): return not self.tree.has_forms() #---file history def _get_file_history(self): result = [] for index in range(self.filehistory.GetCount()): filename = self.filehistory.GetHistoryFile(index) if filename.strip(): result.append(filename) return result def _set_file_history(self, files): files.reverse() for filename in files: if os.path.exists(filename): self.filehistory.AddFileToHistory(filename) #---settings def set_dirty(self, value): self.dirty = ('', '*')[value] self._title() def set_safe_mode(self, state): if state == False: answer = self.show_question( _('Safe mode protects you from the execution of possibly '\ 'harmful scripts.\nAre you sure you want to disable it?'), style=wx.YES_NO | wx.ICON_QUESTION | wx.NO_DEFAULT) if answer != wx.ID_YES: self.menu_tools.Check(self.menu_tools_safe.GetId(), True) return formField.set_safe(state) #---droplet def get_droplet_folder(self): folder = self.show_dir_dialog( defaultPath=self.get_setting('droplet_path'), message=_('Choose the folder for the droplet')) if folder: self.set_setting('droplet_path', folder) return folder def menu_file_export_droplet(self, method, *args, **keyw): folder = self.get_droplet_folder() if folder is None: return try: method(folder=folder, *args) self.show_info(_('Phatch successfully created the droplet.')) except Exception, details: reason = exception_to_unicode(details, WX_ENCODING) self.show_error(_('Phatch could not create the droplet: ')\ + '\n\n' + reason) def install_menu_item(self, menu, name, label, method, tooltip="", style=wx.ITEM_NORMAL): #item item = wx.MenuItem(menu, -1, label, tooltip, style) setattr(self, name, item) menu.InsertItem(0, item) #method method_name = 'on_' + name method = new.instancemethod(method, self, self.__class__) setattr(self, method_name, method) #bind item & method self.Bind(wx.EVT_MENU, method, item) #return id return item.GetId() #---Image Inspector class ImageInspectorApp(wx.App): def __init__(self, paths, *args, **keyw): self.paths = paths super(ImageInspectorApp, self).__init__(*args, **keyw) def OnInit(self): wx.InitAllImageHandlers() _theme() frame = dialogs.ImageInspectorFrame(None, size=dialogs.imageInspector.SIZE) images.set_icon(frame, 'inspector') frame.OpenImages(self.paths) frame.Show() self.SetTopWindow(frame) return 1 def inspect(paths): app = ImageInspectorApp(paths, 0) app.MainLoop() #---Droplet class DropletFrame(DialogsMixin, wx.Frame, FrameReceiver): def __init__(self, actionlist, paths, *args, **keyw): wx.Frame.__init__(self, *args, **keyw) self.filename = actionlist self._pubsub() data = self.load_actionlist_data(actionlist) if data: wx.CallAfter(self.execute, data['actions'], paths=paths) else: sys.exit(_('Impossible to load data from action list.')) def execute(self, actionlist, paths): self._execute(actionlist, paths=paths, drop=True) self.Destroy() class DropletMixin: def OnInit(self): wx.InitAllImageHandlers() #do all application initialisation self.init() api.init() self.report = [] #check for action list if self.actionlist == 'recent': self.actionlist = self.get_action_list( self.get_action_list_files() + \ self.settings['file_history']) if self.actionlist is None: return 0 #create frame frame = DropletFrame(self.actionlist, self.paths, None, -1, ct.TITLE) frame.Hide() self.SetTopWindow(frame) return 1 def get_action_list_files(self): return glob.glob(os.path.join(ct.USER_ACTIONLISTS_PATH, '*' + ct.EXTENSION)) +\ glob.glob(os.path.join(config.PHATCH_ACTIONLISTS_PATH, '*' + ct.EXTENSION)) def get_action_list(self, file_list): if not file_list: file_list = self.get_action_list_files() d = {} for f in file_list: d[system.filename_to_title(f)] = f actionlists = d.keys() actionlists.sort() dlg = wx.SingleChoiceDialog(None, _('Select action list'), ct.TITLE, actionlists, wx.CHOICEDLG_STYLE) if dlg.ShowModal() == wx.ID_OK: actionlist = d[dlg.GetStringSelection()] else: actionlist = None dlg.Destroy() return actionlist def init(self): pass def _loadSettings(self, settings): self.settings = settings if os.path.exists(ct.USER_SETTINGS_PATH): f = open(ct.USER_SETTINGS_PATH, 'rb') #exclude paths as they should not be overwritten try: items = safe.eval_restricted(f.read(), allowed=['True', 'False']).items() except: sys.stdout.write(' '.join([ _('Sorry, your settings seem corrupt.'), _('Please delete "%s".' % ct.USER_SETTINGS_PATH), _('Also check if your hard disk not full.\n')])) sys.exit() f.close() for key, value in items: #FIXME: paths should not be in settings if not 'PATH' in key: self.settings[key] = value def _saveSettings(self): f = open(ct.USER_SETTINGS_PATH, 'wb') settings = self.settings.copy() # non permanent settings for key in ('desktop', 'safe', 'no_save'): if key in settings: del settings[key] f.write(pprint.pformat(settings)) f.close() class DropletApp(DropletMixin, wx.App): def __init__(self, actionlist, paths, settings, *args, **keyw): self.actionlist = actionlist self.paths = paths self._loadSettings(settings) super(DropletApp, self).__init__(*args, **keyw) def drop(actionlist, paths, settings): app = DropletApp(actionlist, paths, settings, 0) app.MainLoop() #---Application class App(DropletMixin, wx.App): def __init__(self, settings, actionlist, *args, **keyw): self._loadSettings(settings) self.filename = actionlist super(App, self).__init__(*args, **keyw) def OnInit(self): wx.InitAllImageHandlers() #frame self.splash = self._splash() self.splash.CentreOnScreen() self.SetTopWindow(self.splash) self.splash.Show() self.report = [] wx.CallAfter(self.show_frame) return 1 def MacReopenApp(self): """Called when the doc icon is clicked, and ???""" #TODO: test if this is working self.GetTopWindow().Raise() def _splash(self): return droplet.Frame(None, title=ct.TITLE, bitmap=graphics.bitmap(images.SPLASH), splash=True, ) def show_frame(self): #do all application initialisation self.init() api.init() #create frame frame = Frame(self.filename, None, -1, ct.TITLE) frame.menu_tools.Check(frame.menu_tools_safe.GetId(), formField.get_safe()) frame.CentreOnScreen() frame.Show() self.SetTopWindow(frame) frame.enable_collapse_automatic(self.settings['collapse_automatic']) #delete splash self.splash.Hide() self.splash.Destroy() del self.splash def init(self): super(App, self).init() def _saveSettings(self): frame = self.GetTopWindow() self.settings['file_history'] = frame._get_file_history() if hasattr(frame, 'dialog_actions'): if frame.dialog_actions: self.settings['tag_actions'] = \ frame.dialog_actions.GetTagSelection() super(App, self)._saveSettings() def main(settings, actionlist): app = App(settings, actionlist, 0) app.MainLoop() if __name__ == "__main__": main() phatch-0.2.7/phatch/pyWx/images.py0000644000000000000000000102454111346363116016775 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # Follow PEP8 # Embedded images are specially designed by Igor Kekeljevic for Phatch. import sys import wx from lib.pyWx import graphics LOGO_COLOUR = wx.Colour(174, 218, 48) #---logo 192x192, RGBA, images/phatch-logo.png LOGO = \ 'x\xda\x00m@\x92\xbf\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\xc0\x00\ \x00\x00\xc0\x08\x06\x00\x00\x00R\xdcl\x07\x00\x00\x00\x04sBIT\x08\x08\x08\ \x08|\x08d\x88\x00\x00 \x00IDATx\x9c\xec\xbdw\x9c\x1d\xd5y\xff\xff>g\xda-{\ \xef\xf6]I\xbb\xea]2E\x800\xc2`\x841\x06\x82\x8d+6v\xdc\xf2\xb5\x13;8\xdf$8q\ \x0c\xfe\xe5\x17\xb0S q\\\x12\x7fq\xf9\xfe\x8cm\x0c\xc4\x8e\x01\x03r\x037\ \x84)\xa2J \xa4U_I\xbbZi\xb5}o\x9fv\xce\xef\x8f\xb9\xf7\xee\xdd\x95\x04\x02D\ \xb1\xb3\x9f\xd7\xeb\xee\xbd;s\xe6\xcc\x99\x99\xe79O=\xcf\xc04\xa61\x8diLc\ \x1a\xd3\x98\xc6\xff8\x88W{\x00\xff\xd31w\xfe\xbc\xcb\x96/_vZcSS\xab\x0e\xc3\ L\xa1Xt\xfb\xfb\x0fg6?\xb3\xf9\xf6R\xb1\xd8\xfbj\x8fo\x1a\xd3xYp\xf2\xc9\']\ \xf4\xdb\xdf\xad\x1f\x1f\x1d\x1b\xd5c\xd9\x8c~\xf2\x99\xa7\xf5\x13\x9b6\xeag\ \xb6m\xd5\xbd\xfd\x07\xf5\x96\xad\xcf\xea\x1b\xfe\xfd\xdf\xb6\x9e\xbe\xfa\ \x8c\x8f\xbd\xdac\xfdC\x86\xf1j\x0f\xe0\x7f"\x84\x10\xce\x17\xbf\xfa\xe5_\ \xbf\xfd\xd2\xb7\xb5vw\xefa\xdd\xfd\xbft\xef\xfd\xd5\xbdO\xf6\x0f\x8c\x1ep\ \x15N`\x04\xc9\xa6\xa6f\xce]sv\xeb9\xe7\xbc\xe1\xb2\xdf=\xf8\xe0\x9e\xa1\xc1\ \xa1\xcd\xaf\xf6\xb8\xa71\x8d\x13\x827\xbe\xf9M_\x0e\x82@\xdf}\xcf\x8fKK\x96\ /;b\x867-+\xfd\x96w\xbf\xfd\x9a\x9b\xef\xbb\xbb\xb4\xeb\xc0>\xbd\xb5k\xabnko\ ?\xed\xd5\x18\xeb4\xa6q\xc2\xf1\xb5o\xde8>:>\xa6O]u\xca\xa7\x9f\xab]\xfb\xec\ \xd9k\xfe\xe4\xaa\xbf\xdaZrK\xfa\xba\x7f\xfa\xc2\xc6Wj|\xd3\x98\xc6Q!\x84p\ \xd2\xf5\xf5k\x0c\xd3l}\xb1}\x98\x96\xb5\xe8\xfe\x07\x1f\xd0\xf7\xff\xee~m;\ \xce\xec\xe7k\xdf\xb1`\xc1\xe5\x0f<\xf2\x90\xfe\xddC\xbf\xd3\xcdmm\x8b^\xecy\ \xa7qt\xc8W{\x00\xbf\x0fhni^\xf9\x91?\xf9\xc8\x97\xef^wO\xef\xaf~\xfd\xcbG~q\ \xef\xcfw_}\xcd\xd5\xb7\xb4\xb6\xb7\xady\xa1}\xa5\x1b\xd2\xe7574\xe0z>\x9e\ \xeb>\xaf\x97\xe7\xd0\xfe\xfd\xeb\x1e\xde\xb0\xc1\x9d={6+O>\xe9m/\xee\n\xa61\ \x8d\x17\x81\x86\xa6\xa6\x95\xff\xf6\xef_\xbc\xbf\xf7@\xaf.y\x9e\xde\xb8e\ \xa3~\xaak\x93\xde\xb3\x7f\x9fVJ\xe9\xde\xbe^\xfd\xbe\xf7\xbf\xef\xcbRJ\xe7x\ \xfb\x9c5w\xf6U\xdd\xfb\xba\xf5wo\xb9y\xe0x\x8f\xb9\xe2#\x1f\xda\xec\xfb\xbe\ \xfe\xd8\x95\x9f\\\xff\xa2.d\x1a\xc7\x84\xf9j\x0f\xe0\xb5\x8aEK\x16_v\xc7\ \x1dw\xfch\xc5\xb2\xe5\xce\xb3;7\xf3\x85/]\xff\xe8\xfe\x03\x87\xees\x0b\xfe\ \xf8\xc9\xcb\x97\xb7]\xf8\xf6\xb7]\xb5b\xe1B\xe7\xb6[n\xbbj\xcd\x9a5k?\xfd\ \xd7\x9f^\xa3\x94r\x9f\xaf_)e\xcc0\x0c\x8a\xc5\xe2\xf3\xb6\xad\xa0{o\xf7\xe3\ B\x88\x93\xe6\xce\x9d\xbd\xea\xa5]\xd54\xa6q\x1cX\xbct\xe9E\xdd\xfb\xbau_o\ \x8f\xfe\xd3\xbf\xf8\xd8\xbd\xcd\xed-Gx`\x0c\xc3H\x7f\xe4\xaa\xab6\xae\xfb\ \xd5/u\x18\x86\xfa\x0b\xff\xf4\x8f\xf7\x1eO\xdf\x1ds:\xaf\xd9\xb1{\xa7\xbe\ \xedG?8n\tp\xca\xea\xd3\xaf/\x95J\xfaK_\xfb\x8a~!\xd71\x8di\xbc`81g\xd1W\xfe\ \xf3\xab[\xb5\xd6\xfao\xff\xee/\xb7J\xc3H\x1f\xabm2\x9d^\xf4\xc7\x7f\xf1\x17\ [\x9f\xde\xb6U\xf7\x1f>\xa4W\xbcn\xe5e\xcf\xd7\x7f{\xc7\xcc+\x9fz\xfa)}\xfb]\ w\x8c\x1f\xef\x98^w\xda\xa9\xd7\x15\x8b\x85W\x8d\x01\xecXl\xda\xf8\xfe\x9f\ \x82\x8b\xfe\xe8\xa2\x1bG\xc7F\xf5\xe3O=\xaec\xf1\xe7\xf7\xd2H)\x9d\xf7}\xe2\ \xcf6\x1e8xP?\xfa\xc4c\xe3\x89d\xf29\x8f\xa9K\xa7\xcf\xfa\xd5\xfd\xbf\xd1\ \x0f>\xfc\xa0\x96\x86q\\\xb6\xc3\xe9o8\xeb\xfa \x08\xf4?\xfc\xf3\xe7K\xc7{\ \x1d\'\n\xed\xb3f]y\xfa\xea\xd5\x7f\xb0)\x19\xd3^\xa0)8\xe7\xdcs/o\xa8o\xe07\ \xbf\xbd\xff\xd1R\xf1\xf9\xbd4J)\xf7\xbe;\x7f\xfc\xf1\xef\xddq{\xe6\xcc3\xce\ L\x7f\xeb\xa6\xff\xfb\xd4s\x19\xc5\xc5Ba\xeb\xa1\xfe~\x1a\x1b\x1b\xe9\xe8\ \xec<\xae\xe0VkK\xcbB\xc30\xe8;x\xf0\xc0\x0b\xb9\x96\x97\x8a\xb7_r\xda-\x17\ \xbeq\xf5\x8d###\xaf\xe8y_IL3\xc0\x14\xe4\xf3\x85\xe8\x874\x8e\xdbH\x1d\x1b\ \x1a\xdax\xf7\x9dw\xde\xb4i\xcbf\xde\xfb\xce\xf7\xb4\xbe\xe5\xe2\x8b\x8e\x19\ \xe0\n\x83 \xbbe[\x97\xbbp\xc1B\xe6\xcd\x9f\xbb\xf6x\xfa_\xb2t\xc9\xca\x92\ \xebrx`p\xf7\xf1\x8e\xe9\xa5\xe2/?\xb6\xf6\xfeO^q\xc6\x07\xdf\xf9\xa6&\xe6\ \xce\xb27\xbcR\xe7}\xa51\xcd\x00S\xb0s\xcf\x9e\xc1|>\xcf9g\xafyA\x1e\x97\x8d\ \x0f>t\xcd\xc3\x8f?\xee\xda\xb6\xcd\x07?\xfc\xc1\xab\x9e\xab\xedc\x8f=\xb1^ \ x\xf7\xbb\xdf}yk{\xfb\xf3\xea\xd7o<\xe7\x8d+\x86\x86\x06\xe9zv\xeb\xad/dL/\ \x06\xd20\x9c+?r\xee=\x17\x9d\xbbx\xad\x10\x82l\xae\xc4\xf8xaZ\x02\xfcO\xc1\ \x8e\x1d;o}\xf4\xc9\xc7Y\xb4`Az\xfe\xe2Ek\x8f\xf78\xa5\x94{\xe3\x7f~\xed\x86\ \xc3\x83\x03\xfc\xd1E\x97\xb4\xae~\xfd\x99\xc7\xcc\xe2\xdc\xb9m\xfbM\x8f>\ \xf38W\xbc\xf7\x8aU\x7f\xfag\x1f\xbf%\x91L\xb6\x1d\xab\xed\xea\xb3\xd7|l\xed\ \x1b\xcea\xfb\x8em\xf4\xed\xdb\xff\xcb\x17x9/\x08\x96e\xa5\xaf\xbe\xf2\x82\r\ \x97\x9c\xb7\xf42\xd3\x90\x14K\x1e\xa3\xe3%\xba\x0f\x8c\xaf\x7f9\xcf\xfbjb:\ \x1bt\nJ\xc5\xd2\xe8\xcc\xb9s/\x7f\xebE\x97$K\xae;\xef7\xbf\xfa\xd5\xcd\xc7{\ lft\xb4+\xa7\x82\xcf\xbc\xfbmo\xa7\xa7\xef@\xfaw\xeb\x1f8\xea\xb1\xb9\xf1\ \xf1\xae\x925~\xfe\xd2\xe5\xab\xe6\xbd\xef\x9d\xef\xe9\xbc\xe0\xcdo\xfa\xcb\ \xe6\xb6\xd6\xd5\xf1xlYCS\xd3\x8a\x99\x1d\x1d\'/Y\xb2\xf8\xe2w\xbe\xe7\xdd\ \x9f\xf9\xe7\xcf\x7f\xe1/\xdbZ\xdb\xcc/\xfc\xe3?\xde\xbei\xe3\xa6\xef\x9d\ \xb0\x0b\x9d\x82y\xb3[\xd6\xfe\xc5G\xce\xfd\xf1\x19\'w\x9c\xecX&A\x102\x9eu9\ 8\x98\xe5\x97\xbf\xdd\xf2\xc9\x97\xeb\xbc\xd3x\r\xe2ug\xae\xfeR\xff\xd0\x90>\ \ \x1aki\xfe\xd4\xc5\xe7\xbf\xc9ill\x7f\xacvu\r\xd6)\xdb\x9e\xbd/S\x92\ {\x16\x15\x0c\'\xdd\x9e\x9cA}\xba\x1e\xcb\xb4\x88\xc7\xe2\x8c\x0e\x0fq\xf7\ \xaf\x7f\xc8\x7f\xfd\xe46~\xf3\xd0\x86M\xf1\x06\xd7\t<\x11\x16s\xee\t\xd7\ \xc7\xafZ\xf5\xd1\xfb\x16\xbe^\xce\x8c\xd9&B\n\xbc $_\xf4\xc8\xe4]\x9e\xdc\ \xd2\xf7\xf3\xee}\x03w\xbd\x94\xfe\x97v\xc4?}\xd6\xe2\xf8\x97\x862AW\xc9\xd7\ \xaf){b:\x15\xe2(\x08|?\xf3\xddo~\xeb\xe3\xa7\x9e|\xf2\x8f>\xf8\x81?^1<2\xfc\ \xff}\xf63\x9f\xbdX\x85\xe1\xf3z\x86N\x7f\xfd\x99kg\xcd\x9c\xc9\xf6\x1d[\'mO\ \xa4\x9c\xb5Z\x07kbIs\xd5\xa9oR\x175\xce\x0c\xd3N\xdc\xa6\xa86\xf0\xe0\xe3}X\ \xf9\x90+.\xfd(\x00\xcfly\x8c\x9b\x7f\xf3\x19\x9e\xdd\xb8\x9b\xad\x0f\xe7\ \xf1K\xa5U\x17~,\xb9\xea\xf5o\x05;1\x8f\x03]\xfe\xa3\x87\xf7\x85\xeb\xf6m)l\ \x1c\xe8\xc9\xdc\xf7R\xaeuUj\xd5\x95\x8b6\x9d\xb2"\x1cr\xc9\xbfc7\x89\xc5%\\\ 7\xa0X\xf4)\x96\x02F\x86\xc7\xf7\xbc\x94\xfe\x85\x10\xce\xd9\xf3\xf9RsJ2\x96\ \xb5\xae~x\x97\xfb\xf6\x97\xd2\xdf\x89\xc64\x03\x1c\x03\xbd\xbbw\xdf\xfe\xcd\ o\xfd\xdfu\xf3;:.\xbb\xea/\xffz\xed\xf8x\xe6G\xff\xf4\xf9/<\xe7\xc3;\xf9\xb4\ U\x1f\xfb\xce7\xbey\x99c;\xdc\xf5\xb3\x9b\xbb\x96\x9d%\xae\xabo\xb5\xd7\xb6\ \xcd\r\xcf\xb2c\xbe3\xb8\xdf`\xdf\x96\x80\xae\r&\x8bV)\xc2 \xf0%\xa6\xd5Ckq\ \x17W\\\n\xae\xe7\xf2\x95\xef|\x8a\xfd\xfd\x9b9\xb0}&\xd2\xb2I\'\r,3O\xe0\ \x99\x04^/m\x0b\xec\xb3\xda\xe6\xa9\xb3N\xbf8\x81\x1038\xb0\xcb|\xf4\xe0\xce\ \xcc}\xfd{\xc3\xdd\x07v\xe4\x8f\xdbSd[N\xdb{\xedw\\o\x14$\xa9\xc3\x9d\xa4n;\ \x89\xad-\x0f\x10^\xb2\x83\xd0\t(\x94|\x0e\x0e\x16\x9fx)\xf7\xd14\x8d\xd9\ \xa6\x14X\xa6dN\x93\xbc\xe8\xe1\x97\xd2\xd9\xcb\x80i\x06x\x0e\xfcv\xdd\xba\ \x0f}k\xe9\x92\x81\x0f\xbe\xe3\x1d\xce5\x9f\xfd\xece\x9b7o\xben\xdd]w_w\xb4\ \xb6s\xe6\xcf\xbb\xe8\x9e\x1f\xff\xf8\xdb3\xdag\xb0k\xcfN\nu\x0f\xac8\xf9\xed\xf3\x04\xc9\x06\x89\xe5X\xf4\xef\rx\xe6~M\xe0:,z\ \xdf\x12\x00zzz\xf8\xed\xcf\x9f%T>\x86\xdd\x8biJf\xae\x10d\xc6B\xbc\x82\x87a\ \x98\xc4\xeb\x02bI@g\x89\xc5\n\xcc^l\x9c5k\x81:\xcb\x8a\xa7!\xac\xbfe_\x97\ \xd7\xf5\xc4\xcf\xf3\xd7\x0c\x1d\x08\xd6\x07\x9e\x9f9\xd6\xf5\x9d\xe1\xac\ \xfa`K\xb1>mj\x89\x90\x06\xe3\xfd\xa3\xcc\xeb?\x9dl\xd7r\x9eh\xfb-\x99S\xc7\ \x19\x19\xc9>\xfeR\xee\xa1i\x88V!@\nA\xd2\xc6\x11B8Z\xeb\xe3\x8e\xb1\xbc\xdc\ \x98f\x80\xe7@\xe0\xfb\x99\xbbn\xb9\xf5\xfc\xec\xf8\xc8-\x9f\xff\xbbk\x16\ \xde\xfc\xdd\xef^{\xfd\xb2\xa5+\xbeq\xe37\xfe&\x9f\xcb\r\xb4\xccN\xac]|\xea\ \xcc5\xab\x97\xbd\xed\xbc\xab?\xfdwk\xdb\xdb\xda\x01\xe8\xee\xd9\x8e\x99\x18\ \xc2D\xa2\x95B)\x93\xc0\xf7i\x9aabX\x02)\x02\x0c\xd3\xc2\xb2%\xeds\x05\xf7\ \xdf\xa2X8\x7f!\x00\x9b\xb7?\x81\x91\xf4p,\x90\xb6\xc6\xb6\xa0}\xa1\xc6\xb45\ J\x08\xb4\n)\x16\x05\xc5\xa2\xc0\x89I\n\x164\xb6%H7&\xf0\xdc~\xebY\x8f\\rQ\xab\xdb\x946\x85\x89%c\x84\xa5\x10\ \xdb\x88\x13\x08\x9f0Q \xe3gX\xe7\xae\xfb\xd4K\xbd\x7f\x86\xd0\x0e\x1a\x84\ \x00\xcb\x94$\x1d\x16\x16JL3\xc0\xef\x03\x92\xf5\xe9\xd3:\x976]\xb6\xe4\xcc\ \xd4Y\r+\x9e\xe9\xfc\xe5\xb6[q\xb9\x82\x986\x98\xdd\xb6\x0c?\x08\xe8\x1b:\ \xcc\x81\xc3\x070\x0c\xc9\xb2\x85+pl\x9b\xd3O9\x9d\xfd#\x7f\xcf#\xfb\xae#p!?\ \x16\x10\x06\x16*,\xe2\x07>H\x850\xc1\xf7a\xf40\\~\xfe\xfb\x8991\x9ez\xfaq\ \xb6\xee\xda\x80\x94 \x05h`\xc1)6\x89\xfa\x80\xb69P\xccAf\x08\x06\xf6\x83W\ \x82D=$\xeb!\x91RX1\x97 \x04\x1dJ\nYI~<\x87m\x170L\x8dS\x97\xa5\xbe\xbd\x89\ \xd6\x05si\x9a\x95\xe9\\X8\xf7\xea\x8e\r+\xb0U\xe4q\xf2s\x1e\x89X\x12!=\x94\ \xf4\x18\xf6\xb2\xdc\xad\x7f\xf2\xf5\x03~\xef\xfa\x97z\x0f\xa5 \x0eQ\x01*\ \xd3\x104\xc7\xd5\xa2\xc1\xe3\xce\x83}\xf91\xcd\x00\xc7\xc0\x82Sf\xdc\xef\ \xf9\xfe\xda\xcc\xe8\x18O\xfd:\xcb\x13\xf7v\xd3\xd4\xfe\x04\xfb\xdf\xf5s\xde\ \xf2\xfa\x1bp\r\x97\x8d\xbb\x9fa\xd7\xb6.\xbc\xa2b\xe9\xf2\x95\xe4\x0c\x9f\ \x99\xc9\x99,\xe8\xe8\xe4]\xe7\x7f\x96\xfe\x1f\xf6\xb1e\xf46J\xc5\x00L\x0fd\ \x880\xa1\x7f/\x1c\xdc\r\xbe\x0b\r\xf5\x8d\\\xb0\xe6=\x00l\xdf\xf5\x14\x83#\ \x870,\x00\xc1\xfc\x935\xad\xb3\x15\xb9q\xd0\x1a\xac\x184\xce\x88>\x00\xa1\ \x0f\xc3\x07a\xb07\x9aa\xeb\x1a\xa0\xb9C\xa1m\x17\x04\x84\x86\x8d[\xd4\xe4r\ \x8a\xdc\xc8\x18B\x0e\x12O\xc1\xbc\xef\xff1fhbJ\x03C:\x08!0,\x0f/\xd4\x8c\ \x97\\\x0e\xc7\x0f\xbb\x0ff\x1e\xb8\xe1D\xdcG)\xb0\x88.\x07\xd3\x90\x18\x868\ \xee\xd5s\xaf\x04\xa6\x19`\nbu\xb1Eg^\xea\xdc2s\xe1\xd8Y\x89\xc6$\xc9T\x13\ \x87\xbbG\x19\x1d\xacc\xf6\xb2\x18X\xc3\xfc\xf4\xe1\xff\x85_r\x81\x80\xbaz\ \xc9@\xbf`\xe3\xcd\x92o\r%y\xfbG\xde\xcf\x85\xaf\x7f\x1bkW\xbd\x81\xff\xf5\ \xce\x7f\xe3\xee_/\xe0\x17O\xdc\xc0\xc1=E\x86\x0e\x80[\x9c8\x97aJ.y\xf3\x9f\ \xb0`\xee<\x00~r\xdf\x7fa\x980c>\xb4\xcf\xd14\xcc\x8c2UT\x181\x00\xe5\xd0\ \x9a.\xab\x14N\x12:\x97\x02\x02\xf2c\xe0\x16\xa0\xbf\x1b\xf2\xe3\xd0\xd0\x0e\ \xf1:\x8f\xfaV\x88\xa7lT\xa00e\x0c\xeb\xd1%4\x16Z\x10\xbe&Q\x97",\xf8\xc4M\ \x0b?\x14x2\xc4\x8d\xe7y\xd0^\xef\xb4\xcd\x89\xf7,^\xad\x07\xbdB\xe9\xd6\xa1\ >v\xef}F\xdf\x1a\x86\xea\x98\x06\xf5\xb1\xa04U\x83WJA\xc21\x16B\xf0b\x1f\xcf\ \t\xc74\x03LA\xd3\x0c.\x8a\xa7\ngy%\x89\xcc\xe4\x88c!\r\x8f\x95o\x00\'6\x824\ \x14*\x8c\x88-\xc8IT\xd1\xa0\xbeA\xd0\xf2\xa6$\x0f\xdd}\x98[o\xfc\n\x07z\xb6\ \xd3s\xb0\x87\xf7_t9\x1fz\xc7g8\xfb\xd4wq\xdd\xbf}\x8a\xbe\xe2}$\xea\xa1\xb1\ \r\xea\xdb`I\xdb;\xf9\xc4\x1fG\x89\xa3{v\xee\xe4P\xee\x19V\x9e\x0b\x894\xd8V\ D\xefZE\x04oZ\xe0\x06eF\x00\xd0\x10x`9\x91z\x91l\x80\xbaFh\x9a\t\xbe\x07\xb9\ \x11P\n\xf6o\x810\xf0\xa8o\x13\xc4\x1d\xcd9\x1b.\xc0\x08\x0c\x9cX\x02\x89E\ \xcc\x81X,N\xce/QP%v\x85\xdd\x8c\x9e\xf2,\xef\xbf"\x8d\x90\xe3\xad*\x10W\x19\ \x96$\x96L\xdf\x18\xba3\x0fl\xfa\x8dw\xd3\xbd7\xed\xb8\xeex\xef\xa7\x148\x10\ 1\xaciH\x1a\x12\xf25U\xdfh:\x12<\x05sW&\xbe\x18\xaf\x0b\xe6\xa14\xe9\xe6\x18\ \xfbw\x8d\x91\x1f\xd3\xd8\xb1\x903N\xb9\x90\xd6\x969\xec\xd9\xd1Cf8D\xe7c\ \xb8\xbeB\x99\x90\x19W\xe4\xc6C\x8a\x05\x8f\xfd{v00v\x10O\x98\xcc\x9f\xb5\ \x80Y\xed3\xb9\xf4\xc2\xcb9i\xe5j\xd2-!\xbe\xb3\x87:{.\x9f\xf9\xf0m\xcc\xe9\ \x9c\x03\xc0o\x1e\xb8\x9b\xed\xc3w\x10O\x814"#XZ\x12\x8d\xc4\xf7\x02\xc2\x00\ \x84\x8c\xa4\x01\x1a\x10\x11Qi\rRN\x14yUa\xb4=\x91\x8eT\xa2\xa6YP\xdf\x1a1\ \xcb\x8c\'^\xcf\xdc\x9eS\x89\x898I\'\x8d(\x06hORp\x03\x06\x13\x078x\xca\x83\ \xe4\xdf\xf1\x0b\x16\x9e7\x8a\xe9\xe4\xa8oIc\xc7 Y\x9f\xc2\xcdg\xc8g\x06\xd2\ \xb3\xe6\xd6\xad\xdd\xfc`\xfe\x01\xaf\xa4\xf6\x1d\xcf\xfdL\xc5\xe4\x9a\xa53\ \x8cKSq\x1b) [\xf0\x92]\x07\x83\x7fzY\x1e\xde\x8b\xc0\xb4\x04\x98\x82X\xa2t\ \x9eW\x14\x084*\x0c8\xb0C\xd0:\x0b\x02?\xc6\x86\'\x7fM\xc2\xb2\xc9e<\xec0\ \x862B\x0e\xf5h2c\x8a\xa1\xbe\x00\xad#2\x94\x06\x1c>\xbc\x81\xa7\xbb\x1b\xc8\ \xba%\xde\xf5\xc6\xb73g\xc6,.x\xc3\xdb8m\xe59<\xb8\xf1\x12\xf6\xee\xdd\xcd\ \xec\x8e\x89\xc5c\xbf{\xf8>\xe2\xa9\xf2?\x1aB\xc2\xb2\x1bU\x83\x9a\xd8n\x98\ \xd1\x0c/tY#R\x10\xf8`\xda\xd1o\xa5"\x06\x90FYU"\xda7C\xb51\xbf\xfb,Lm`Y\x16\ \x96\xb0\xf0}\x0f7=\xca\xc0\xb9\xeb\x19y\xc3\xc3\x18mY\x1a-\x85\x8e\x99\x18u\ \t\x02\xbfH)_b\xe4P\t\x15jT(Pa/o\xbdR\xdc\xb2o\xb3qk\xcf66\x1c\xdc\x1d\xae{\ \xae\xfb\xa9\x10nEu\x13B\xe0\x98z\xda\x06x\xadB\x1a\x86\xa3\xb5&\xf4\x05\xbe\ !\x08\x94\x8b\x0e\x01)\x08B\x17\xa5\x14\xe3\xf9,\x98\xa0|\xc9\x8egb\x1c:0\ \x8e\xed\xd88qM\xa9\xe8U\xfbZx*\x0c\x8e\xff\x82\x82\xb7\x99\xac\xbb\x87\x0bN\ \xfd g\x9ft*M\x8dM\xbc\xfd\x82?al|\x8cMOo\xa4X*a\x9a&\x83^\x17"\x19\x11m\xe5\ #\r\x930T(5\xb1\x8d\xf2G\x8b)L\xe0q\x84d\x10\x13\x9bh}\xe8\\\x1a\xdc6La!\x9a\ \xea" !D\x85\ \xfe\x91Rb\x19\x02\xc7\xb1g\xbb\xae\xf7\x9aXf9\xcd\x005\x88\xa7\xe2k\x84\xf4\ P\n\xd0\x90\x1b\xd3Hi"\r\xb0\x1d\x13t\t\xad@\x86\x06\x87z4#CYf/\x134\xcd\x0c\ H6(\xf6<\xad8\xbc/RC\x0eu\xc3\xcc\x85P,\xf5\xd1\xd5\xfd%r\x85!\xf6\x1ex\x1b\ \x17\x9e\xb9\x96\xb6\xe6f\x04\x823N_\r\xc0\xd3\x9b7\xf1\xe9\x8f~\x87\x8d]\ \xbfd\xfb\xc1_1\x1c>\x8c\xd6! \xd0JGv@\r\x13\x08Y\xfe\x7f\n\x13P\xfe\xbf\xc2\ \x00\x95\xff\xe3[\x17\x91\x1eo\x85\xf7l!{\xc6v\x06\x17\xed$\x16hb\x12\xcc\ \x98\xc9x\xa1@.\x1f\x12\xe4\xc0\x08M\xa4\x90$\x13!Jj\x84\x00\x84\xc00%\xa9\ \x86f\x10\x82B&K\xdf\xae\x1dt=\xb2\x83\xec\x90\x9dn_`^\x95\xac\xb7o\xcf\x8f{\ G\xf8\xf7\xab\xf1\x11\x11\x19\xc1\x96)I\xc4\xe4\x8ai\x06x\r\xc2\xb4t\':".$\ \x94\ne\xd5\x02M\x18\x86\x04\x1e\x84\x01\xc8\xc0 \xd5\x12p\xc6b\x00I\x18\xfa\ \x84\xa1f\xf628\xbc/\xea\xabo\'\xb4\xcf\x8b~\x0b\t\xfb\x0f\xdeL\xff\xde~\xf2\ %\x9f\x0bV\xbf\x81R>K}}}\xd4@+\xce<\xfdL\xceXu:\xdbv\xbe\x93\xdb\x7f\xfau\ \xba\xd5\xd7\xd1\nT\xa8&\xa4\x82*\xcf\xe8\x02Te\x86\xafa\x82\xca\xff\x15Ia\ \x18\x829KgP\x7f\xb2G\xfc\xaf\xee\xc2\xf3\x0bh\xedaKI!\xe7\x13\xb8\xe0\x8f\ \x08Le\x91\xb2\x1c\xcc\xb8\x04\xa1Q(\x94\x94\x84q\x85\x13\x8f\xa3\xb5\xc2/*\ \x06z\x07\x19\x1f\x82\xb1\x01\xc8\x8fi\xc2P\xe2\xbb\x1e\xa1\xef\x93j2\xde\ \x98\x1f?V\x80+\xba\x00)\x05\x96!\xa8\xb3\xbc\x95\xa3\xf0\x92\x92\xf8N\x14\ \xa6\x19\xa0\x06\xd2(-\xd2\xdaDk\x8da\n\xbc\xbcF\x96\xdd\x04\xc9T=n\xd1%\xf4\ C\xb4\xafq\xea \x9a\xa1A\xeb\x88\x02\xa5\x01\x8d\xedQpK)\x18\xea\x83\x96\x0e\ 0\x04\xc8\xb0\x9e\xf9\xadkxr\xc3\x13\xe4\xc6\xb2\xcchi\xa5\xad\xb5\x9dPHL3R\ \x8b\xa54X\xbax)\xab_\xf7G\x1czj=\xb0o\xb2\xeaC\xf4]\x99T5e\xe2\x17e\xf5\xa4\ \xbc/\xdd`2gI\x1b\xa9\xfa\x10;\xe6\xe3\x16\x87P*\xd2a\xbcB@\xa9 \x11\xa1\x89\ \x11\n\x9a\x12&\x86\x90 D\xd4\x87\x04Qg\xe1\x12\xe0Xq2#y\xc6\x075\xb9\x11Mf\ \x14\n\xe3\x1a\xdf\x97\xa8P\x83\xd0h\xa1"\xe1#T\xfc\xa87\xb5\xac\x02i\xa2| C\ \nl\xf9\xda\xb1\x03\xa6\x19\xa0\x06\x86%\x1d]\xa6"\xd3\xd1\x94\x8a\xba\xaanX\ \xb6\xa2\xae\xbe\x99\xcc\xf002\x10\x14\x94F+\x8dRae\x82\x03\r\xf3O\x81\xf1_G\ \x0c\xd0\xb7\x03\xea["\t0;~)\xd7\xfd\xcd\xb5\xec\xdc\xbd\x9b\xaf|\xfb\xdbdrY\ \x0c\xcb\xa6\xad\xa9\x85\xf3\xcf<\xb3:\x06\xd30\xb9\xe4-\x97\xd0\xdd\xbb\x85\ -\xc5\xebQ\xca\x9dd\x17T\xdc\xa0RF\xe7\xa8\xcc\xfcM\xad\x06\x1d\x0b\x9ahh\ \x138\t\x85_\x1a@J\xf0=M\xe0C>c`\xc7\xe2(\xe5\x13O\xf9\xe8\xd0\'\xa6\x1dl\ \x04\x86\xad\x91\xb6\xc2\xd3\x01\x01\x9a\xccX@~L\x90\x1d\xc9\x91\x19\xd6\xe4\ \xc75\x81/\t\x95B\x08A\xa8B\x10e\xc6\x17\x1a!\x05\xd24R\x10\x1eqO\x05\x13c\ \x16B`\x1a\x92\x98%\x8eYk\xe9\x95\xc64\x03\xd4\xc0v\xac\xb4\x90\xd1\xc35c\ \x91z \xa5\xc4w\x15\xa5L\x89\xfaF\x08\x1b4Z\xf9\xf8c\x820\x14\x04A\xe4\xa2\ \xa90\x804\xa0m\x0e\xf4\xef\x8b\xbc5]\x0f\xc3Ik!eG\x0b\xba\x96,Z\xc4\xe7\xff\ \xe6o\xf8\xd7\x1b\xff\x0f{\xe4NV,X\x80\xd2\x9a\x00\x81\x8f\xc6\x11\x02SJ.\ \xbf\xec#\x0c\xfdp\x0b\xfb\xd4\xedh\x1dN\x96\x02e4\xb6\x08\xdag\'\xe9X`\xe3$\ \r\xbc\xd2\x18Bh\x02\x17\xbc"\xf8\x9eI\xbc.\x8d\xe5\x84\x98v\x9e0\xc8`\x98\ \x91\x94\x10\xb6\xc0J\x18h\xe5S\n4\xb9\xd1\x80\xfc\xb8 3$\xc8\x8c\x08\x8aY\ \x85\xef\t\xc2@\xa1\xcbIx\x1aPJW\xafWW\xdd;\xa0B\xb3\x04\x1eS\xa1+\x7ftY\x02\ \x18\x82x\xcc\xee\x04\xff\xc4?\xc0\x17\x81i\x06\xa8\x81\x93\xb4\x16B\x14v\ \xb5\x1dAv\x0cb\x8eF\x05\xd0\xbd\xb5\xc8\xd0!M\xaa\xd9&\xd9\xa0pb\x1e\x81\ \x0f\xb6\x1d\x1d\xeb\xb9P*\x01\x1a\xda\x17\xc0@O4C\xfb\x1e\xf4t\xc1\xfcS\x87\ \xab\xe7ikm\xe5\xd3\x7f\xf6\t\xbeu\xcb\xf7\xb9\xf5\x8e\x1f\x92\xb2\x00\xadY\ \xb4t)\xe7\x9ew\t\x1d\r\x8d\xcch\x9f\xc1\x85\xa7}\x82\x9f?\x9aa\x8fXGP\x9e\ \xfdc\t\x8b\x19\x9d\x82\x8eE6\x89:\t\xc2\x05]\xc2+h\x8ay\x81[\x80\x86\xd6\ \x194v$\t\xfc\x0c\x85\xb1!\x04\n)\xc1\x88\x81\x1d\x8f\x81\n\x08C(d\x8a\x8c\ \x0f\t\xc6\x07#\xc2/\xe55\xbe\xab#\xa6\x16\x02\x15\x86U\x02\xd6L0\xb9\xae\ \x90~\x8dmR\xca\xe9m\xc7\xba\xaf\x95\xf6B\x80)%\r\t\xf1\x82\xabj\xbf\\\x98\ \xae\nQ\x03\xd3R\x8b*\xae>\xc3R\x04\xae(\x8b\xfahF\x1d\x1f\x84C\xbbC\x0e\xee\ \x84b>\x86\x10&\x96#1L\x88\' \xdd\x00\xf1$$\xea\xa2\xe0S\x05C\x07 \xf0\'\xbf\ \x8f\xb0c\xd6,\xdet\xf6\xd9\xb8%\x9f\x969\x0b8<0\xc0\xc1\xfd\xfb8|\xa8\xa7\ \xda\xe6\x8c\xd5g\xb0z\xf6\xfb1t=R\x18\xcc]\xd4\xc4\xe9\xe771\x7f%\xd45\xf8H\ #O\xe8\x07\x8c\x0fi\x86\x0f\x81_\x82y\xcb\x172k\xc9,\xdcb?nn\x10\xd3TX\x0e8I\ \x83x\xcaA\x05>\x99\x91\x90\xbe]\x8a\x9em\x92\xdempx\xaf"3\xa2)\x15\x15A\xa8\ Ph\x94RDa\rQVa"\xea\xd7Un\xa8a\x08\x05\x81\'\xf6\x1f\xeb\xbe\xd6\xaa@R\nbF\ \xd8j\xd9\xf6\x8b~\xc7\xc2\x89\xc4\xb4\x04\xa8\x81az\x9d\x15\x9dZ\x08E\xe0\ \x89\x89\x08k\x00\x9e\x12\x08\xa1\xf1]\xc8\x8e\x86\xd8\x8e\xc4IJRM\x06\xf5\ \xad\x8aX\\\xe0x.\xa0y\xfd%pp\x8f$;b\xd0\xb3= W)\xb8U\x83\xf3\xce9\x97\xb1\ \xdc8[\x0fn\xc2tb\x0c\x0e\r\xb2\xa3\xeb\t\x16\xcc\x99OC2M,\x16\xe3\xfc\x8b/f\ K\xcf\x15\xec\xd3?\x8a\xdc\xad)A*\xd1\xc8\xf0@\x81\xc1\x83\x1e\xd2ph\x9dgQ\ \xd7X@\x08M\xc9\xef\xa7t\xe8 \x86,b&5RJ\x02_\x91\x1fS\xe4F}F\xfb\x05c\x83\ \x82bN\x11\x06\xa0\xb5\x88b\r\xbaF\xb5\x99\x94w\xa4\xab\x04\xack\x08\xbf\xf6\ \xb7R\xe0\x16\xc3\xee\xa3\xddS\xa5\x85\x0b\xbal/\x80!%I3L\'\xe2\xe6\xcaq\xcf\ [\x7f\xe2\x9e\xde\x8b\xc34\x03\xd4\xc00\xb5S\t\xf7\x98\x0e\x089\xe1X\xd7D\ \xfex!@\xfb \x82(\x1b\xd3+A~\xa1\xe60\ 1\xcbs\x0c\xe2\xa7\x12\x83\x10\x04\x9e?t\xac\xfbZi\'\x88l\x00\xcb\x14$L\xb5p\ \x1c\xd6\xbf\x0c\x8f\xf1\x05\xe1\x0f\x96\x01\xce\\\xb3\xe6\x83\xf5MM\xee\xaf\ ~\xf6\xb3\xdb\x8f\xa7\xbd\x13\x8fwJ3\x8a6ICP\xccj\x04\xa2\x1a\xc8\x99\x08\ \xe8T|\x8e\x10\x86Q\xd0K\xfa\x10x\x02\xaf\x04\x99\xa1R\xb4p\xa5\xc1\xa7\xbe\ \xd9\xa5\xae1K<)\xd0F\x1f\xdf\xfd\xf5\xe5H)X6\xfb"N\x9d\xff\x1eN\x9dw\x05~\ \xa9\x84\xd2>=#\xdf\xa1\xc9x\x17\x87z\x03\xb6\xb5>E}:\xcd\xc9+Va\x1a6C\xb9}\ \xf8\x9e&;*\xe9\xed\xcd\xe0\xe6\xfb\xd0J\x12Kj\xfa\xf7\xf5a\xd9\xbd\x98\xb6\ \x8f\x13\xd7\xd4\xd55\xb1w\xfb8\xfd\xdd\x01\xb9\x11(\xe4\xc0\x0fd5\x9a\\\xd1\ \xeb\'\x114\x13\xbf\x8f \xfa\xa9m\xa70\x08\x1a\xa4\xd6\x1c\xeb\xdd\x08\x1a\ \xdc\xca\t\x85\x98\x88\x06\'\xa5\xf7\xbc\x85\x87_\t\xfcA\xda\x00o<\xff\xfc\ \xeb.\xbb\xecm\xb7\xdc\xf2\xa3\x1f\xfd\xe8\x1d\x1f\xf8\xe85\xc7s\x8ci\x1b\ \xb3e9\xea)D\x94_c\x18T\x89]\x13\xfd\xaej\xf2\xa2\xcc\x1c\x02\x94\xd6\xa80JG\ \xf0K\xe0\x15\x05\x99A8\xb4\'\xa4g\x9bG\xdfn\x17?\xb00\x1c\x03i\xc0\xceC\xf7\ q\xd7\xe3Wr\xeb\x86\xb7qH\xdfC,\xae\tC\x97\xacx\x1ceB\xcf\x9e>\xf6\xec\xdb\ \xcb\xc0\xd0\x01\x94\x0e8<\xd4SUI|\xdfC\x85\ni\x08\xdc\x82\xa00\xeeS\xca\x85\ \x84\xbe\xc1\x8c\xe4\x1a\x9c\xe0L\x0e\xee\x14\x0c\xec\x87\xec\x98\xc0\x0b\ \x0c\x82 D\x85a\xa4\xd73\x85\x88\xcb\x177\x95\xc8\x8fI\xfcLf\x98\xb2\'\xf491\ \xa1QE6\x80!\x05\xe6k$\r\xf352\x8c\x13\x87\xf7}\xe0\x03\xf7\x9cu\xd6Y\x9f\ \xd0\x1a\x0c\xdbf\xe1\xdc\xb9\x17\xbc\xef\x93W]\xf7\xec3\xcf<:\xd4\x7f\xf0\ \x98%>\xe2)yY\xd3L.5\x0c\xb0\xe2\xa0THa\xcc\xc0r"\xbd\xbfB\t\xbav\x8a$\x92\ \x0c\x15F\x88\xbe\x05*\x8c"\xc6*\x10\x04\x9e\xa0\x90\x15\x8c\xf6\x07\x143\ \x9a04\xb0l\x810\x15\x85\xb0\x9f\xf1p;\xad3\x1d\xdaf\xd8\x84b\x0c\xed\x14)\ \x0e\xb6Q\xca\x8fb\'\x0c\x92\t\x87\xdf>|\x17\xfdc]\xc4S\x12\xc3t\t|\x8d\xf2\ \xcd*\xd3\x01XV\x8c\xd1\\\x96\x03\x1bG\xd8\xbf\x7f\x0c?\x94\x84\xa1F\x95\xf3\ ytU\xc7\x17\xcf9\xf3\xd7\xa6[O%\xf4\x89\xe3E\xf5\x18K\n\xbc\xbc\xe1\xf6\xeeP\ G\xcd\xf0L\xc4\xed\x95KZ\xf5\xe5\xa9\xb8E]\xc2A)E&\xefr(+\xbb\x0e\x8f\x07?\ \x7f)\xcf\xfaD\xe0\x0fJ\x05\xb2\x1c\'\xbdh\xf1\xa2\x8b*I`\xfbv\xef&\xdeq\n[\ \x1e\xb8\x8f\xab>\xfbw\xf7|\xf1\x0b\xd7\x9e\xbd{[\xd7Q_7*\r\xaf\r,4`Z\x1a\ \xbf\xa4\x91\x12(\x1b\x81\xb5k~\x89h\xa0\x1c\xe4\xa9\x9d\xfe\xa2\xb6\xb2\xec\ =\x89\x080\xd2\x9a\x02O\xe0\x97 3\xa48lib)H5\x96hh\x0finw\x88\xd5If\xcf\xb70\ \xec\x83\x04+\xee\xa5p\xa0\x83-;B\xbcB\xc0CO\xddM\xb2%\x8a1 \xc0-\x08\x84\ \x06\xb7(p\x12\x1a\x84d\xe6\xac9\x8c\r\x8e\xb0k\x7f/A(\xa6\xe8\xf8G7d+\xffO\ \xdaV\xab\xde0\x95\xf8\'\xee\x87mDi\r\x02I.\x90\xc7\xac\xf2Pe\xber\'RJL)H\'\ \xad\xd3\xe0\x15\x7f\xdd\xc1\x11\xf8\x83R\x81|\xd7\xcdl\xda\xb4\xe9\xd6\nI\ \x9eu\xfe\x9b\x18\xea\xdd\xcc\xc2\xd7\xbf\x05\xa9\x84\xf3\x8d\xdb~x\xbfq\x8c\ \x97R\x18F\x85m\xc0\xb0\xca\xba\xbd!&\xf2\x0e\xaa{\xa9\x95\xe95:\x11\x93\xda\ \xe9\x8a\xc5\\n\xa4\x94\xc0\xf7\xa2\x15anQ\x90\x1b\x15\x0c\xf4\xc0\x9eM>]\ \x8f\xe68| \x8f\xaf}\xb4\xf0\xa9k2i\\\xb2\x17o\xceM\xac\xef\xfb$H\x17\xc3\ \x00\x8dBHI\xe0\x0b\xc2\x00\xbc\xa2\x8e\xd4\xa01\xd8\xdf\xdd\xc7\x81}\xa3\ \xf8\x01\x11\xe3MRg\x04Sg\xfa\xda\xefI\x0cQ\xfeSQ\x95\xa6\xb6u\x0cH9\x12\xc7\ 2\x90B\xa2\xb4\xa6T0\x9e\xb3\xda[\xed\xed\xaa\x04\xc3\x92f\xb8\xf0\xb9\x8ey\ \xa5\xf0\x07\xc5\x00\x00\xbbv\xed\xbe/\x9eH\xf0\x86\x8b.\xa6w\x7f\x0f\xc9D\ \x82\xbe-\x0f\xe09M\x98\x81\x9f\xfe\xea\xcd\xb7\xdd{\xb47\xb3\x18\xa6H!D\x94\ \x07di\xbc\x82@\x18\x93\xa9[T\xffN\xf9\x08Q\xdd[c$Tg^\xadU\xc4\x10e\t\x11\ \x04\x91\xf7\xc8+Fz\xfc\xd8\x00t?\xad\xd9\xb6!`\xd7SE\xf6m\xeb\xc7\xf5B\x02\ \xdf`\xf0`\x88iQ\xce\xa6T\x08)\xf0]A\xe0\x97\x97J*\x81R\x06\xf9\xf1\x12n\xd1\ G)\xa6\x10?G\xa83\x02A,\x16#\x9dJ\x93H$\x8f\xc9\x18\xb5LaKA\x9d#\xb1-\x93\ \x92\x0f\xa4\x15f\x83"\x08\x14\xa5"\xcf\x9d\xd9Y\xd3\x97\x90\x02CJ\xe2\x86\ \xff\x9a\x88\x03\xfc\xc11@\xf7\xce\x9d\xeb~p\xfb\x1do\x1f\x18\x1cv\xfd DJA<\ \x19g\xf8\xe0\x0e2\xdaa\xf9\xfc9k\xbf\xf9\xc3;7\x9a\x96\x95^\xbct\xc9\x9a\ \xc6\xe6\xe6E\x00\x96#WV\xfa0LM)/j&\xf7Z\x82\xe7\xc8Y_\xd7\xb4\xab\x91\x0c\ \xa2z\xe8\xe4\xe3uY/\x0f\xcb:\xbcW\x12\x14\xf3Q4v\xa0\x07\xf6m\xd6<\xfb\xbb\ \x1cO?\x90g\xe4\x90\x87a\x81aI\x90\x1a\x10\x94r\x91J\xa5\xc2\xa8\x8f\xd0W\ \xf8\xbe\x8f\xe7A\x18\x8a\xa3\x12\xb2\xd6\x02!\x0c\xea\xea\xeahjj&\x16\x8b\ \x03\x02\x8d\xc0\xb2\xec\xa3\x1a\xc1\x86\x80\xb8)H9\x06\xa6%\x18<\xac\x19\ \xcb\x84h\xcffl\x9f\xc0\xaa\x93\x04\x81&\x0c9\xe6Z\xe1\xda\xd9\x1f\x04RH\x0c\ C\xe0\x98G\x11\x9d\xaf\x02~\xaf\x19 \x96H\xb4}\xfa\xff\xf9\xdc=\xff\xfb\xea\ \xcf^\xd7\xd0\xdc<\x1b \x0cCw\xe3#\x0f\xaf\xfb\xbb?\xff\xc4\xd9\xa5R\xd1\x8d\ \xc7\xa3$E\xd3\x80M\x8f<\x80g\xd7\xb3t\xe5\xc9+\xbew\xfb\xdd\x03\xff\xf2\xe5\ \xaf>\xf2\x93\x8d;\xb7\xac9\xff\xcd\x97\xdbq\xb1\x12"W\x9dai\xbc\xd2\x84\x06\ #jg\xf8\xa3zHtY7\xd6\x93\xb7\x97\xdbOb\x10!\x10BVuc\xa5#CU\x85Q\x80\xcd-\x08\ \x8a9AvX\x90\x1f\x8d\\\xab\xd2\x12\xd5\xb1\xa8\x10\xbc\xa2\x8c\x08\xbf\xec\ \x86\r\x02\x850L\x82 \xea\xa7v\xed@\xad\x14\x90\xd2@\n\x83b\xc9\xa5Xr\xf1<\ \x1f\x15*L\xd3*\xa7*HL\xc3\xc4\xb1\x0c\xe2\x96$\x1e\x93\x8c\x8d\x082E\xc5\ \xf8\xa0\xa6\xbdC\x92t$\xc2t\xb1\xec\x90\xf1C!\xa1\x86R\xde\xeb:\xd63R\x9aL\ \xad\x11.\xcb\x12\xc04\x04\xa6i\xbe\xeaIq\xbf\xb7\x0c`\xd9v\xfa\xcf?u\xe5\ \x96\x99m\xad\x97\xfd\xed?\\{m\xd7\xe0`\xcf\xa7\xae\xbe\xfa\xc6\xca\xfe\xde}\ {7\xfe\xfb\x17>\xff\xa1x"Q=\xc6\xb6%\x8f=x?;7\xac\xe7\xf0\xfe]\xce\xfe\xee=<\ \xfa\xd0\x83\xce\xaa\xf3.\xbc\xcerh\x05\x814\x04\xd2\x84\xd0\x9fPxt\xc5\x03T\ \xabJ\xa8\t\xa2?\xaa!y\x94\x19UkU\x9e\xfd#F\x13B"\xca\xa9\xc8\x95\x94\x83(H\ \x15\xe5\x10\x85a\x94I:\x91\xeb\xac\xf1]\x1fi\x88\x1a\xf5\'\x125ay\xddpY\xd3\ :\xaa\xb1\xeb{>\x9e\x1f\x10\x86\x933XU\x18R\x97\xac\xa3!\x9d&f*,\xceJ\x082\ \x00\x00 \x00IDAT\x1b\x0e\xf7k\x0e\xeeS\xcc^\x02)\xc7 \xdd )\x15\x14~\x18\ \x12\x84:Zw\x10F:\xbdR\xc7\x9e\xcdCE\xa6\x9a4\x87\xae\xa6D\x9bR\x10\x8b\xdb\ \xaf\xfa\xdb\'\x7f/\x19`f\xc7\xac5\x1f\xfa\xe8G\xd7\xb7\xb4\xb7\xb5\xfa~\xc0\ \xde-[\xe8}v\x0bk\xcf}\xe3\x07\x17-[Z\xad:\xb0\xf1\xb1Go\xff\xef\xef\xdf\xfc\ u\xcb\x8aJ\xd3\x84A\xc0\xf0\xa1\xfd<\xf6\xc4\xe3\x14\xfc\x80dS\x0b\'\x9f\xb4\ \x94\xae\'\x1e\xba\xc9\xb4\xa3\xea\x05R\x82\x10:"L&\xeb\xce\x13^\x10=\xc9\ \x9f\xce\x946\x93%B\x85I&\xdc\x91ZWR\xa9\x15\x95\xb5\x04\x1a\xaaj\x93\x9aj`k\ \x8daE\xab\xb2\xf2\xe3T\xd7(T\x08K\x18\x9a\xd0\x8ff\x7f5\x95\xf8\xa70\xa1\ \xef\xf9\x93\xf7\x01a\x10\x12\x06\x05\xc6F\xb3\xe4}MvL\xb1\xf8u\x82\x99\x9d\ \x06\xd9\x81\xa8\\z\x85\xf0CM9\xa0%\x90\x02\xfc \x8a\x81\x1c\x0bZ\xe3F\x97X\ \x1ek9\x1f\xc8\x94\x90\xb4\xf4\x8a\x17G\x01\'\x0e\xbf\x97\x0c\x90\xaeo\xe8\ \xec\x983{E\xe5\x01nx\xe8w\xb4vv0\xa3\xbd=}\xc3\xd7n\xfcQ,\x1e\xafF\x19o\xff\ \xfe\xcd\x9f\xfa\xed/~\xfe\x15\xb7X\xa4w\xcf.\x8a\xf9\x1c\xeds\xe6\xd1\xd06\ \x93S\xcf>\x87\xbf\xff\xdf\x7f\xfe\xa9\x07\xef\xfd\xd9\xedez\xc7\xb45a\x181B\ eQm\x85`\xa3\x19\x9cIj\xcd\xd1\xd4\x9d\xea\xee\n\xe1U\xf7\xd5\xd8\x01T\x8e/3\ \x86\x8a\xa4Ju\xa5W\xb5/\x8d\x90\x12\xb4F\x1a\x92\xdc\xc8\x84wJDUg1\x0c\x81\ \x1fD3\xf1T\xd5\xa7\xf2\x11\x08L\xd3"\x0c\xa3\xd4j\xa5\x14J\x85h\xe13:\xa0)\ \x954\xb1\xb8&\x9d0\xa9KH\xc6\x07\xc0\x0f\x14^\x10Fz~y\xedAD\xf8\x82PiB4a(\ \x08}\xf9\xbc\xf5\x82\xaaF\xb0\x88T \xc3\x1082x\xd9^\xfaq\xbc\xf8\xbdd\x80\ \x1d]]\xb7?\xfa\xf0\xc3_/k\xdc\xc4\x13ulyf3s\x96/\xa3\xad\xbea\xe1\xc6\xbd\ \xfb{\x16.]v\x1a\xc0\xc5\x97^\xfa\xed\x0b.~\xebU\xbd\xbbw \xa4d\xd1\xebN\xe5\ \xcd\x7ft)\xe7_t\tW_\xf9\x89\xcf=\xfe\xc0\xfa\xaf\x1b\xa6\\(\xcbwBHMv\xb8\ \xbc\x16\x16M\xe0\xfb\xd1rH\xdf\'\xf4\x02\x94R\x84a\xcd\x1a\x00j\x88\xbd:\ \xc2r\xb0\xe8\x08\x8fQ\xa5\xfd\x91\xdb+ko+\xfdV\t\x86\xf2jt\x11b\x98\x16\xe8\ \x88\x19\xb4\xd2@d\x1b\x08#\xca\xfd\xa9\xe8\xffGS\xc5\x9a\x9a[i\x9f\xd9A]\ \xc2A\n\xc5p_@\xa9\xe4\xe3\xe753\xe7\x80c\x9a\x10\nJ\x85\x10?P\xf8\x81\x8a\ \x08?2\x0e\x90B\xd0\xd1\xbc\x02\xb4IG\xeb\xb9\x04!\xd5\t\xc2/\x19\xc7|\xeb\ \xbd\xd2\xda\x9d\xc4\x88r"\x1a\x1c\x93\xe1\xb4\r\xf0b\xf1\xd0\xfa\x07\xbe\ \xae\xb5\xa6\xa9\xb5\x9d\xb6\xce\xb9d\xb2y\xba\xbb\xb61k\xc9"\xfav\xec\xe0\ \xff\xdc|\xf3\xbdRJ\xe7\xdc7\x9e\xfb\xb1\x98ry\xfb{\xdf\xc7\xa9g\xae\xe1-o\ \xb9\x90xK;\x7f\xf5\xf1?\xf9\xd4\x03\xbf\xf8\xf9\xf5\x00v\x8c\xaaO\xdat4\x81\ \x1b-\x89\x0c\x830\x9a\x95\xcb\xd3\x9f&\xd2\x97U\x18\x12x~\xb4\xbfb\xf8\x96\ \x8f\xd7G\x8c\xb4\x8c\x1ao\x90\xa8\x10\xbe\x9e\xca\x08\x15\xb7jm\xf8!b\x17i\ \x94=L\xa2\xe2^\xd5\xe5\x199bR\xa5\xe4\x84]\xc2d&\xd2\x1a\x8a\xb91\x86\x0e\ \xf5\xd0\xbb\xaf\xc8\xa1\xbd%\xe6.\x97\xc4c\x0e\x8e\x05\xe8\x04\xa6\x13\'\ \xd4\x06AXN\x89\xae\xcc\xf8e\xc2\xb7\xad:\x9a\xd3\xabp\xec\x96j\xa5\xba\xcaG\ \x85\xe29\xcb\x9d\xeb\xf2\x0c\xa1\xcbWhH\x19-\x8d\x8c\xbd\xfa)\xd1\xbf\xb7\ \x0cP,\x16w\x1f<\xd4\x7f_\xcb\xcc\x0e,\xdb\x02\xad\x19\x18\x1calp\x88\xd9+\ \x97c\x05A\xebMw\xde\xb5~\xcf\x9e\xeeMu\r\r,\\\xb6\x8c\x0b\xde\xf5^\x9e\xdd\ \xb6k\xd3\x1f\xbf\xf9\xbc\xf3\x7f\xf3\x93{\xbe^\xe9\xcbrD\x1b@\xe8\x07\x08\ \xa9\x08C@\xe8\xb2\xef\x9e\xc9T]\xf3[+E\xe8\x07\x04\x9e\x8f\x0e"\xc3R\xd4\ \x10\xb2\xa8\xfd\xd6\xe2\xe8\xdc1\xc9\xbe\xa8l\xabUe\xcaJ7\x8a0\x08)\xe5j\ \xe4\x8c\x14eU-Jy\xd65\xc7U\x18V \x08\x8a\x92L\xc6c\xa0W\xd39\xdf\xa6\xbd\ \xc3\xa2\x94\xb5\xb0L\x13a\xc5\xf1\x83\x80 \xf0\xd1\xc8\xb2\xaa#\x889)\x92N\ \x13\xaf\x9b{)\xb9R\x11\xa5c8f\x03m\xf5\xcb(z\xa3\xe5k\x05\xad\x05\xbe\xabw>\ \xd7\xb3\x9a\xb0\x97t\xd5\x060\xa4\xc4\xb1\xcdW\x9d\x01~\xafs\x81\x9ez\xfc\ \xf1\xdb\x17-]z\xc1\x8cY\xb3f\x03\x08)\xc9d\xb2\x084\xb3\x16-Bz^\xa7eYM\xb9\ \xb1\x11\xb3\xa5\xb9\x99x\xcbL\x0e\x1e\x1eN\x0e\r\x8f\x16:\xe6\xcd_y\xb8w\ \x7f\xc64\xcd\xfay\xcb;\xae\x0c\x19]\x04\x8aT\x0b\x14\xc6!p\r\x0cC\xd5\xf8\ \xf2\'\xfc\xfa\xd5\xf8n9\xbb1\xfa\x1d\xe9\xe4Q\n\xf5\xd1\xdbN\x18\x0e\x93\ \xaf\xa3f\xb2\x9f\x82(3\xd5\x8aI\x9c\x84F)\x9f\xf1~\x03\xc3\x8e\xce%M\x81\ \xe5(\xec\x98I!S\xf6\x02\x95\xadi\xad\xa3\xd9[\x08I"\xa50\x84\xa0\xa19\x0e\ \x81F\xe9\x10\x85A\x18\xaaI\x06z\x94\xfd*9g\xc5\xc7hHv\xd2?\xda\r"\xc5\xc1\ \xa1\xcdx~\x01\xcb\x8c3\x96?H\xbe4\x84\xe7\x170m\x81W0\xe8\xdb\xae\xffA\x85\ \xe1\x91\x0b\x1e\x88j--m\xe5\xd3\xe9\x84I:\x19\xa3y\xd6"\xdcR\x89l.\xc7HA\ \x8b}\x83\xde\xd7\x8fv\xdc+\x85W5\x1aa\x9a\xe6\x1a\xcb\xb2\xee\x95\x86\xe1\ \xa2u\xab\x88\xc4\xfb`\x10\x04\xb7h\xad\xb3\x95vZk\x94R\xeb\xc30\\\x7f\xb4~>\ \xf7/7\xd9\xb5s\xdb\xb6\xfb\xfe\ \xed\x8b_\xbc\xdes\xdd\x17\\|\xf7\xa5\xe2UU\x81\x84\x10\x97\x9b\x96\x95\x9e=\ wN\xabi\x9ae\xff\xb8h\xb5,\xeb\xd3\x96e][\xf9\xd8\xb6}m,\x16\xbb?\x16\x8b\ \xad\xb7,\xeb\xba\xa9\xfd\xfc\xeb?\xfc\xfd\xc5{v\xee\xe8\x9aHX\xd3\x14\xbc\ \x00\xcfs\x99\xd1\xd1I]S+-3ga\xfb\x1e\x07\xf7t\r\x0e\xee\xdd1X8\xb4\x83\xcc\ \xa1n\n\xd9,~\xcd\xd4k\x98Q\xa4\xb5\xea\xab\xa91n#\xbf}\x8d1[\xa3gW\xe4\xfc\ \x84\xc7\xa8b\x90\xeaI1\x03\xa8IL\xab\x9c\xe2h\xc6\xb4\x9e0r\rS\xa2\xb5\xa2\ \x90\x8d\x18\xad\xcc>\xd5}\xbe\x1b\x96\x93\xee$1\'F<\x1e\xc7\xb6c\xd8\tIa\ \xd4G\n\xaa\xba}\x18*B\xa5A\x1b\x08\x0c\xe6\xcfX\x83F#\x85I\xdciDi\x88;\xcd\ \x98F\x0c)\rF\xf2{H\xd5\xb5\xe0\xc4\xe2\xf4\x0cL\x10\xbf4*U\xab\x9f{\x0eUJ\ \xbb\x15)#\xb4\xa2X,\x97\xc7\x16\x90H$\x9c7\x9es\xce\xaa\xbf\xbe\xea\xaa\xab\ \x7f|\xd7]\xf7465\xbd\xe2k\x04^\x11\x06\x10R:\xf1D\xe2\x96\xa6\xa6\xa6\xde\ \xe6\xe6\xe6\x81\xc6\xa6\xa6\xdeT:\xfd\x13\xd34?\xd6\xd4\xda\xc2\xb2\xd7\xad\ \xa4s\xee\x1c\xe2\xf18N,J\xd3\xa9\xaa\x145\x04g\x18\xc6y\xb6m_\x9bL&\xb5m\ \xdb\xd7U\xb6\x87A\x90\xb9\xf6o?\xbdf\xd7\xf6m]\x08\x81a\x18$\x92\t\xd2\x9d\ \xf3\x98\xb3x1\xe7\xbc\xf1\x1c\x02ir\xff\x93\x9b\xb9w\xdd\xba[\xbf\xfd\xe5/}\ hd` c\x06EJ\x07\xb7\x93\x1d\xee\x01&\x8e\xe3\x90L&\xb1,\x8bD"\x111\x87\xe3`\x9a&B\x08,\xcb\x9a\xc4\ \x08a\x10d~x\xf3\xf7n,\x16\xf2X\xb6MCK+\x8b\xe6\xcfc\xce\xe2\xa5\x8c\x86"\ \xf3\xe5k?w\xfb\xfe\xed[\x99\xd3\xd9q\xd5\x85\x97^ro_\xf7\xee\xf4\xf6M\x1b\ \xe9\xdd\xdbM\xae0\x06D\xaaM)\xaf\t\xa7V\xec\x98j\x04\xd7T\xa6R\xaaR\xb96\ \xd2\x9f\xc3\xb2\x7fPk\x8d!\x8d\xaa\xbb\xf2\x88~\xa6\xfc\xaf\'\xed\xab0K\xb9\ .\x91\x8e\xa8\xac0.+\x03\x88\xb9|\xae\xac\xb6\x08d9\x04\xad5U\xca\t=Y}\ \x89^}S\xc3\xca\x85\x8bf_d\x1a\xd2\xf9\xf3O~\xf2\x83Oo\xdct\xff\xdd?\xbe}\ \x83\xd6Q\xe9RC\n\xb6\xee\xde\xc9\x81\xcc\x10=\xd9Q\xba\x86F\xd9>\xff\x0fW\xfe\xe9{\x01\xce:\xe7\x9c\ \xeb\x0f\xec\xde\x81R!\x96\xe3\xe0$\xebH\xd57\xe0\xc4\xad\xc8sCTz<\xf0u\x8dZ\ S\x13\xb9-\x9fO\xab(M\xa22\xf6Ii\x11T\xd4\x92\tBVJ\x97\x03X\x13\x8a\xfe\xc4\ \xe5\x949l\xca\xec_Q\x17&\xfa\xd3\x04\x81\xc4\x89M\x0e\xa8\t\xa1\xa3\n\xd2\ \x01\x04AH>\x9f\xc7\x0f\x02\xc2P\x95%\x87\x00$RDi\x0bR8\x84\xcaag\xdf\xc3\ \x98f\x8cL\xb1\x9f\xd1\\/=\x877\x91/\x0e\x13\xd6\x88>)\r\x8a\x85\x02a\x10VW\ \x95\x89\xb2W)\xda\x1f]G\xe0M\xa4B\xafZ\xb5\xf2\x83A\x10Rrs\xd5~\xce~\xfd\ \x99+L\xcb\x8a\xbcR\x122\xa3C(\x0c4\x12\x81\xc6U\x90\xf1\x15\xdb\x0f\x0f\xb3\ \xad\xe7@\x94\xa7T\xc6U\x7f\xfd\xd7\xd7\x1f-u\xfdD\xe2e_\x11&\xa48O\x08\x81i\ Y\xd5\x19_)E\xa9\x90\x8f\xc2\xe2\x861\x91\x13\xc3\x84J\x91\xcde\x89\xd96RJ\ \x0c\xc3\x98\xb4\xefX\xd8\xb3s\xd7M\x9b\x1ez \xd6\xdd\xbd\xb7\xf5\xfb_\xfb\ \xca\x97\x83 \xa8z\x15T\xe0\xb7\x1a\x86\x89\x11\xb3\xa8K\xd5\xd3\xd8\xdaJ}c3\ \x07\x07w %8\x8e\x83\x1dSx\xae\xc20E-\x9dQ!\xcard\xa8<\x96\xc8f\xa8\x14\xa7E\ \xd42A\x8d\xa4\x90Q\x0eR%jJ\xb9}\xb5\xbf\x8aG\x88\x1a\xe3\x96\x1a\x01AD8\xb9\ \xd1\x00\xc3\xb6\xab\xc6\xb4\x10\xe5\x17i\x18&\xa6\xa1\xc9fr\xf8\xe5\xc0\x9c\ \x10\x92\xd07\x88\xaav\x1a\x84a\x80\x17(r%\x8f\xa1\xf1n\xb4\x86\xcd\xbb\x7fJ\ \x18\xe6\xf1\x821,\xc3\xc4\x0b\xa2\x1c\xa1\xbax\x1bM\xe9\xb9\xec;\xf4$\x1a\ \x8di\xda\x84a\x88a\x9b\xe8Pa\x9a\n\xcfu\x91F\xa4\xa2\x85\xbe\xaeJ\x809\xf3\ \xe7\\\x96\xcf\xe7\x19\x1d\x1b\'\x9b\xcd\x90J\xa5I\xa6\x1a\xa8ojG\xfb\x03\ \x11\x13x\x19F\xfa\xfb9x\xe0\x10\xe9\xd6v\x12\xcd\xedh\xad0-\x8bQ%\xd85\x18\x86QUs\xa4\ \x94\x98\xa6I\xe0y\x08!\xf0}\x9fR\xa9D\x10\x04\xf8\xe5\xb4\x84(\x8fEU%@E\n\ \x00\xdc\xf9\xdf\xff}\xe3w\xbe\xf2\xc5\xebj\x89\x1f \x93\xcf\xed\xb1\xe31Z\ \xdaf2s\xee|f\xce\x9dO]c#\xa5b\x16\xc3\x90\x98f\xb4\xfe\xd7+\x08l\xc7\x9e8\ \xb0\x96X)\x97\x06\xac\x89\xb0\xd6\x06\xb2&\x19\xcbeu\x08-\xca\xc9f\xe1\xa4\ \xf6\x93\xbf\xcbkw\xab\xf9F\x95\xd9_DnXQ^\xa0#\xa2\xf3k*\xe9\xd1\xaa\x9c\x04\ \x07\xbe\x1f\x94\'\x12\xca\x19\xa6\n\xc30\xabF0\x1a\x86\xcb\xc4\x8f\x86\x92;\ N<\x16\x8f\xca2\x06\x01R\xd8\xd4%\xdaY0\xeb\rd\x8b\x03\x98\xa6\x85aX\xf8\xbe\ \x8f\xd6\xe0\x16\xa3\xfcpi\x98e#8\xba\x0f\xbe\x17T\x19`lt|w,\x99f\xc4i\xe2\ \xf1\xfd\xfd<\xde\xb5\x83\xa1\xf1,\x8bW\xae\xaa\xde\x9f\xdc\xfeM|\xfb_\xff\ \x9e\xdch\x1f\xc9\xb8I\xdf\xf6\xadH!"\xd7-\x82B\xa8\xe9\xf75\xdb\x0e\r\x12O&\ Y\xbel\xd9\xcb\xfaJ\xa5\x97\x95\x01\x84\x10)\xad\xf5\x12!\x04\x89\xbadT\x92C\ )\xf2\xd9\t\x119U\xc5\xa9\xa8\x16RFjF\x18\x86\xc4\xe3q\xda\xda\xdahnn\xa6\ \xa1\xa1\x81t:M2\x99$\x1e\x8fW\x99FJICC\xc3z\xc30\x96\x1em,[\x9e\xde\xfc\xe9\ \x96\xf6Y44\xb70\x7f\xe9r\xde~\xc9E,^\xb6\x9c\x90\x00)E\xf9\xa1\x86\xf8\x9e\ \xc04\xc5dUe\x92\x11\xac\'1D\xa4\x02\x95\xafa*q\x0b\x81\xd2\x95J\x0c\xbaJ\ \xecG~\x98\xccH0\x919\x81\x8ejsjY\xa3\x16E\x12\xca0\xa1T\xf4\xab\xa9\tR\x18H\ i\x10\xf8\ni\t\\\xd7%\xf0\'\xb2?\x87\xb3\xddU\x95\xcd\xf7\x02\n\xa5"-\xa9\ \xa5$\x9dvf6\xbf\x8e|q\x98\xb1|\x1f\xa3\xe3}x\xaeG\x18FL\x04\x91\\\xca\x8c\ \x8dQ\xcc\xe7\xa3\xeb./\xbc\xf1\xdd\xa0\x9a\x061>:\xd6\xd5\xb1\xf8T\xc2 \xc0\ \rCzG\xc7\xd91\x92ap,\x1bM~\x1a\x96\xd6g\xb8d\xce0\xde#\xff\xc1#\xdf\xf9\x1c\ \xf5M)\xfav\xefb\xff\xf6\xad(\xa5\xe8\xda\xf8\x14\xcf<\xba\x01_\x9a\xec\xc9\ \x14i\xef\xe8\xe8|\x11\xa4w\xdcxY\x18@J\xb9\xd6\x89\xc5\xae\x89\'\xe274\xb4\ \xb4\x90nh\x88f\xa2R\xb1:s;Nl\xd21S\xf5|\xc7\x99p\x87VT\x9f\xca\xb1Z\xeb\xaa\ \xa4\xa8\x18\xc6\xf1x\x9ct:}^,\x16{\xff\xd1\xc6t\xa0\xa7g\xdd\xf0\xe8\xe8}3:\ \xe7\x107\r\n!\xc8D\x9d\xeb\xf9\xc5\t\x8f\x84\xa1\t\xbc\xc9\xae\xcd\xea\xf8\ \xca\x7f&\xbe\'\x13oU\x9d\xd7Q\xf6f\xc5f\xa85\x10\xaae\x05\'6\x1d\xe1V\x9d\ \xa4\xfb\x88H\xe3R*\x8c\xdeTS\x135\x8b\xd4/\x8d\x10\x16\x81\x1f \xa4,/\xb4\ \x89r\x97*\xae\xd8I\xe7\xaaa\xe8\xc6\xba\x05\x84\x01\xcc\x9bu\x16\xc9D+\xbe_\ B)MC\xbc\xb3,Y\xa3\xbe<\xd7\xc5+\xb9\x84at\x8eT\x83\x19I\xa2*\xc3N\xdc+\xd7\ \xf53\x8d\xed\x9dU5\xcd0L\\\xb7\xc43\x8f?\\\xbeE5\x92M\x08\xc6\xf7=\xc3m_\ \xbcf\xfd\xde}{\xd7\xc5\xd3\r\xec\xd8\xf8\x04\xc9D\x9c\xf3\xd6\xae\xa5-\x95\ \xc0Q\x01\xb3\x16-}YS\xa6O\xa8\r`\x18\xc6e\xb6m\xdf\x03\xd1E\x86AH"\xe60>:F]\ \xb2\x0e?\x08\xc8\x8e\x8fa\x98\x06^\xa9\xc4\xa2E\x0b\x19\x1d\x1d%\x93\xc9VU\ \x9b\n\xf1I\x19\x05\x9d\x82 \x98d,O\xf5\xcb\xd7n\xab0\xc8\xb1\xf0\xbd\x1b\ \xbfv\xb1\xa9\x82kV\xae9\xe7\xb2\xed\xb7\xff\xc8\xf9\xd6\x17o\xf8x\xbcy\xf8\ \xfed\xcaH\x83\x88\x8c`W \xe2z\xc2s\xa9\xa9z\x84*\xcay-\xb3\x8a\x8a\xee/t\ \xd5\x16\x10R\xa2\x82\x10)%J\xab(%A\x96}\xe8U\xf3b2\x93Me9]=yd\x90zE\x85\xe5\ L\x18\x1aRF\x06\xb0\xefE\xd1]\x15j\x82\xc0\x8b\\\xb3\xa1D\xfa\x15\xe3\x9d\ \x1a\x06\x8b\x8e_8\xf3|\x92\xb1\x16B\xf5:\x1e\xdbr+\x1d\xad\'3\x9c\xdb\x8b\ \x00\xb2\xee\x00\xc9\xfa\x06r\xe3c\xd5\x81\xd8\x0e\xd4\xb7\xf9\xa4\xd2P\xc8\ \xa5)e\xf3\xa8\xc0\x05\x04\x81g\x0eT^{\xeazl\x1d\x1a\x1c"V\x97B\x00\x96\xe3\ \x804\x88YbRL$\xcaa\x92H)\x08\xc6\x07\xda\x9e\xf9\xddoo=iA\xe7\xa29\x0b\x97\ \xafH\x11\xd2h\x1bH\x149\xbf\xc4\xc8\xfe\xeec\x96\xb29\x118a\x0c`;\xce\x07\ \x96\x9c\xb2\xea\xb6tS3\xe3\xc3C\x1c\xde\xbb\x07!\x04\x99\xb1q\x16/^Loo/u\ \xa94:\x16C+\x85p\x1cz{\x0fp\xca\xa9\'\xb3c\xfbN\xc20$\x97\xcbUgw\xbb\\v9\ \xca_\xd7\x93f\x7f\xe0\x88\xef\xa9\xbf\x8f\x85o\x7f\xe3\x1b\xd7\xf3\x8do\\_\ \xf9\x7f~\x83]-\x87(\xcd\xc8\xb7.\xa4\x88\xfcv5\xc6m\xc5\xb1S\xe5\x85\xea>=a\ \xd8\x96\xbfU\x10\xa2u$\xb9dY\x1a\xd421L\x84\x12j\xb6Ll/\x9f0j\x13\xa2\x02E\ \xe0I,\xbb" \xa2r\xe5J\t\xdcR\xa4\x02\x05~P\x95&\xa6\xa5\t\x03=\x89\xf8\xe3v\ #K:\xde\xc2\x8e\x03\xbf\xc4\xf3K\xec:\xf0#N[\xf4a\x0c\x92\xd8N\x82|!C\xb1\ \x94\xa7\xbb\xef1\x9cX\x1c\x1d*\xe2\xc9\x80tK\t\xd30\x18;l\xd37\x0e\xd2\xceR\ **\xe2N4\xcc\xd0\x9fp\x83nz\xe2\x89uR\x90QA\x90\x96\xa6I2\x99\x8c\x9e\xa3\ \xb4P\xda-\x97V\x8f\xaeK\x96S\xac\xdb\x9a\xd3+\xfe\xd7\xff{\xed\xb7[\xeb\x93\ <\xfa\xd4\xd3,\x9b7\x17i\x18d3\x19\x820\xe4\xfdW\xbc\xef\xb2[n\xbe\xb9\xadT,\ \x1e3\xe5\xfa\xa5\xe0\x84\xa8@B\x08g\xde\xd2e\xdfI\xa6\xeb\x91B\xd2\xd4\xd1\ \x89\xa7B\x92\xc9$\xa6i\x12\xaa0z3\xa1\xe3\x90H\xa5I\xd6\xd5\x91H$\xa2}\xa1\ \xa2\xa5\xa5\x99d2YU{b\xf18Nu\x7f\xd5\x9b\xa3\xc1\xb0\xccIq\x81*\x8e0\x88\xcb\xff\xab\ \x89N+Fpa\rR\xd2\xd7\xb3\x0faX\x93\xbcdBF\xd5!\x84\x14\x04\ \xa5<\xbb\xb6o\xe3\xce;\xef\xc4\xd3\x10\xc6S\x0ce\x0b\x1c\x18\x19g \x93\xc3\ \x93\x16\x8bO:e\xd5q?\xd4\x17\x88\x13\xa2\x029\xb1\xd8\xf9\xd9\xd1\x11<\xcf\ \xa3\xb1\xad\x9d\xc1}\xfbH&\x92\x14\xb3E\xe2\xf18=\xfb\xf7\x93\x88G\x8b\xd3C\ /\n\x80I\xd3$\x16\x8b\x91\xcddihj\xc4\xec\xe9\xad2\x80\x1d\x8b\x01\x82\xa0\ \x1c\x14\xa9\xb8C+\x04~4\xf5\x07"#YH9\xe9\x81<\x17b\x89\xd8i\xd2\x8c\xce!\r\ \xf0]\xa2\x87\\\xd6iaB\xed\xa9\xfd]U\x81\xe0\x888@E\xb5\x912\xca\x0c\xa5\x9c\ \x9a,\xc4\x84\xa7\xa86\xff\xb9\xf6\x98\xa8o]\x8d,\x0b)0-\x89_\n&\xec\xe2r\ \x04J\x88\x89\xaa\x10\xd5\x99\xbe2H&/\xe0\x07\x08U@*>\x83\xc1\xf1]\x8ce{\x19\ \xcb\xf6\xa25\x98\x96\xa0\xb5\x13ZfHJ9\x93\xfe\xbd02\x18b[\x1e\r-1\xe2\xa9y\ \x0c\xf7\x1f"4\x0b\x98\x98\xa8\x00\xa4\x11\xe2\xb9\x00\x12\x15\x86\x13\xa1{`\ \xc7\x96-\x1b\x84\n2\xdd[\xb7\xa4\xdbf\xcc\xa0\xbd\xb1\x01\xc3I\xa0J\xc3\xd5\ \xe4@\x81\xa8.\xadT\xa1\xcfC\x0f\xfd\x8e\xd1\xd1qL\xcb\xc0\x17&\x88\xb0:\xee\ \xf1\xb1\xd1\xcc\x1d\xdf\xbd\xe9o\x8e\xf7\x99\xbeP\x9c\x10\t`\xdb\xf6\x92b6K\ fd\x04\xcbq\x88\xc7\xeb\x90\xa6\x89\xeb\xbaeO\x82\x87\x90\x9ab\xb1\x84\x16QX\ \xbf\xb6\xearC[\x94\tZY\xbc^a\x84\xb0\xec\xc5\xa8\xb8C\x8f6\xe3O\x95\x08Zp\ \xd4\xd2\x87G\xbdx\x93\xcer\\\x0b\xcb\x91x\x05\x85.\xbf\x95\xfaX\xb3\xfb\xc4\ \xf7D~\xcf\xd4\xb6\x1a\xa8-}\x82\xae\x94*9\xb6\xfb\xb3\xb6\xfbhp\xe5-B\xa3\ \xb5\xa82F\x85a\x84\xd0\x04^Xs\x8eZ\xaf\xcc\x14\xef\x94\x06\xd7\xcb\xf2\xe4\ \xae\xef3\x92\xd9\x0b@\xbcN0w\x99`\xc5j\x89\xf6\r\xba\x9e\x90\xec|\xc6\xa7T\ \nH\xd4A\xa0|JA\xc8\xc1}\x87\x10f@<\x19\x05\x08UH\xd9m\x1ce\x90\x06~pD\n\xf3\ M_\xfb\x8f\xcf\xcf\x98\xb7\x00\x87\x90\xb6\xba\x04\x86\x9d\xc0H7\x13[q:\xed\ \x17|\x86\xb3\xae\xbc\x8d\xd6\x0b\xaeA.\xb8\x90\xc6Y\x8b\x18\x1a\xe8\xc7\x89\ ;\x0c\x1e\xd8\xc7#\xbf\xfa9\xb3\xdb\xdb\x10B\x90\xcbf\xf8\xf7\xbf\xbb\xea\ \x86C\xbd=[\x8f\xf7\x99\xbeP\x9c\x10\x060Mc\x9em\x99\x084Z\x85\xc4\xd3\xe9\ \xc8\x03\xa2\xa2\x82M*\x0c)\x16\\\x04\x1a\x15\x04\x84\x81O\x10\x04U\xb5&\x97\ \xcdT\t[JY%\x04\xdf\xf7&\xa5\x1c\x08)\x91\xd2\xa8\xba\xfcdy\xe5z\x95\t\xb4&\ \xf0\xfc\xe3\xbeYR\x06\x9d\x954\x08i\x96U\x05\xa3\x1c\x89\r\xa7X\xa9S\x08\ \xbcf\xd3$\xdb\xa0\xf6\xff\xa3\x12<5\x0c5\t\xe5\xb02\x95\xc2VQm\xd20\xf0Q\ \x81\xa8\x12?\xba\x92 \x07^)\x98X\x03\\>\xaf\xd2\xd1"\x9aIc\xad\xf96-\xc1\ \xe2U\x92\xe5\xa7K\xc2\xa2\xc9\xb3\x8fh\xf6\xed\x0c\x89\xc7\x15\x86\x14\xb8E\ \x85\xeb\x87\x08\xa9)\x15\x8a\xc4\xea|\x9cXE\xd1u\xd9{\xa0\x8f\xfeC\x07y\xcf\xe5\xef\xe4\ \x8c\xd5kX\xb9t)\x03c\x11_9\xb18\xcbW\x9e\xdc\xda\xd0\xd4\xb4\xf2h\xfd\x9f\ \x08\x9c\x10\x06\xc8\xe5r;=\xcf\x8b\xc4\xd6\xe88\xa5B\x11/W V\x97B\x1a&n\xa8\ \xb1b\xb1H\x87\x0f"&\x88\xd5\xa50\x9d\x18\r\xcd\xcd\x84B`:\x0eZ\x08\x0c\xcb$\ \x08|\xe2\xf18\r\r\re\xbb\xa0b\x1eN\x99\x89k\xa0\x81B.\xf7\xe8\x0b\x19w<\xed\ tbh4!\xd2R\xf8\xae\xc0\xb4\xcc\xf2\xb2\xca\x89~\'\xfd.\x0fB)\x8di\x0bl\'\xca\ \xb4\x9c\xc4\x14\xd5\xc6\xe5\x99^\xd40@e{\x95@\xcb6\x025\x84\\\x9e\xe5\x11\ \xe0\x97B\xa41\xd986m#\x8a3\x84e\xfb\xa0\x86\xe1L\xbb\xacz\xd5\x0c^\xebH\x9a\ d29FF\xb2H\xa1\xc9\xe7\x8b\x84\x02\xbc\x92F\x1a\n\'!@\x86\x18F\xd4\x874\xa2\ \x05/\xc2\xd4H\xc3\xc0\xb4\xechI\xa5/A\x99\x80\xa01\xdd\xdcy\xcb\xf7\xbf\xbf\ \xe5\xf6\xdbo/}\xf1?\xbezoCc\xe3\xa4Jo\xe3##[\xbf\xf2/\xff\xfc\xb9D\xaa\x15\ \xb7\x94\xc1\xf7\x871\xa4Iss3\xad\xad\xad\x98R\x92\x8c\xc7\x89;\xff?{o\x1e%\ \xd7]\xdey\x7f\xee\xbe\xd5^]\xbdwKj\xed\x92mY\xb2-o`ll\xb0\xd9lbb\x96`H&\x90\ \x84\xd7\x90\xe4\xc5\x87IB\x98$\xcc;\x19`\xc8\x00\'\xcc\xd8d\x12\xccj\xf6\ \xd5\x86`\x04\x98\xc8\xbb\xf1"a\xd9\xda\xd5R\xab\xf7\xad\xba\xf6[u\xf7\xf7\ \x8f[\xdd\x92\x8d\r2#\xd9\x02\xf4=\xa7\x8e\xfa\xa8\xab\xeb.\xf5{\xee\xefY\ \xbe\xcf\xf7Q\t\xa2\x90\x89\x85\x16z"I\xe0\xfb\x08\x82@\xabi\xd3\x0cBn|\xfb\ \xdb\xefx>\xdf\xeb\xf3\xc1I1\x00\xc7u\xefi6\x9b\x88\xa2Hqn\x8e\xc3\x8f\xef\ \xa0o\xe5*\x12\xe9\x0c\xb2\xaa\x91\xeb\xea\xc2\xb0\x12\x18\xc9\x14\x9ai\xa2h\ :f*\x8d\xe7\xb9\xf4\xaf\\\xc9|\xb9\x8aj\x98x\xaeK\x18\x04\xf1\x13_\x88\xc5\ \x97dEY\xe2\xd3\x00\xbf\xe8-\xb4\xd1\xde!~\xa9<\xc7/\xfe\x8d?\x17\x86\x1e~\ \xe4\xc5r\x88~\xecbD\xcfif\xf1\x9a\x92\x14\xe8\x19\x8a\x18\xda\x14\xb2rK\xc8\ \xda\x0b!\xdb%"\xab\xf1\xefb\xc6\xf0R.\xe7i\xe7\x1d-\xe6\xfc9\xf6\x84>\xd6Fy\ \xdcQ\x84\x08\xa2\x80f\xcdo\xfb\xf4B{\x90]\x84 \x84\x84\xbe\xc0\xa2h\xc5\xf1\ nV\xe0\x0b\xbf\xb0#A\x9cQ\x12\x9485\xab\xa5B|?\x0efU\xa3\xad\xd9\xaf\xc41\ \xc7\xa2}\xc6\x92\x87,\xc5\x1b\x8dJ\x0b\x84\x10!R\x96\x1a\x86R\xc9,\x86\n\ \x92,\xf3\xf6?\xfc\xa3\xab\xdf|\xe3[\xff\xe1\x99\xf7\xeb\x1b_\xf8\xdc\x87\ \xa30@\x10D\x049BQT2\xe9\x0c\xa9T\xdc}f\x1a&\x85B\x01\xc7i0\xb0l\x19\xdb\xee\ \xba\x8b\xa3{w3\xb2o\x0f^\xabEW.\x87\xe7\xf9+\xaf\x7f\xf3\x9b>\xfe|\xbe\xdb\ \x13\xc5II\x83\xfa\x9ewg\xb5V\xdb\xa3\xc8\xf2\x86V\xabE\xef\x8a\x95\xe8f\x82\ \x85\xd9i\xd6l:\x97z\xa5\x82k7\xb0\x1b6A\xe0\xd3\xbd|\x05\xaa\xa6\xd3\xa8V\ \x18X\xbd\x9a\xe2\xfc\x02\x88\xd2R\x96G\xd5t\x14\xb5]\x13\x90\xd4gy\xb2>{ *\ \x88\xe2\xf3r\x81\x8c\x94X5\xb2"\xbe\x1b!HA\x9b\xe3\x12\x10z~\xfch8\xeeXB\ \x04\xc9,d\xba"\xacLL\x0f\x88+\xc7\xf1;\x96m\x0ch5\x04j\x0b\n\x0b\xd3\x1ea\ \x18\xb7)\x86\xa1\xd4.\xfe\x1c3\xaa\xc5\x9f\x04\xa2\xa7W\x9a\xdb\x05\xb4\xb8\ \xe7 \xae\x97\xb4\x1a\xe1\xb1\xaa\xb1\xb0X\x1e\x8b\xda2(O\x0ft\xb3\xe9n:\xb3\ \xabI\xe89L+AOw/GFF\x10\x88P\xcd\x08Qor\xd8\x1d\xa6\xe4\x1eD\x14A5"|!\xae\ \x1bH\x1a\x88RD\x14\xc6Js\x82tlG\x12\xa3\x10\xdf\x13\xda:\xa5ma\xaeH \x9b\ \xce\xe3\x07 \x89\x12\xc3\xfb\xf6s\xedk_w\xe3\xeb^\xf3\xda\x1b\x17\xbd\x01\ \x01xt\xc7Ng\xef\xc1{\xc8f\xf3\xf1\xee\xaf\xa8\x98\xa6\x89i\x98H\x92\x88"I\ \xa0(\x04j\x96\x8a\x171\xb8\xf1\x9c\xa7}G\xcdF\x9d-W\\E\n\xff\xbd\x0f\xdew\ \xff\x9d\xd3\x13\x13\xdb\x9f\xcfw\xfc\xabp\xd2\xa8\x10\xae\xeb^\xe3\xfb\xfe;\ \xacD\xf2&E\xd3\nc\x87\xf6#+*\x9d\xbd\xbdL\x1c\x1e\xa6Z\xabaX\t\xf2\xd9\x1c\ \x8a\xa63=6\xca\xd9\x17]\x82\x1f\n\x98\xa94#{wc\x18&\xb2\xaaa\xd7\xeb\xa8\ \x86\x81\xe78$,\xebiM\x12\xcf\x86(\x8a)\x13\xae\xd3z^\xe9\xb2\xa9}\xd1\xed\ \x97\xbcU\xfd\x07\xbb\x1ci\xcdr\x80(\x87q\xa5S\x94\x90"\x11\xcf[l\x10\x89\ \x90u\x19\x0c\x19\xdb\t\x91\x9a!F\xc2G\x94\xe2E\xbc\xe8\xe1X\xe9\x88D\xd6\ \xa5sPd\xf2\x90@mv\x03\x91\xc1\x00\x00 \x00IDAT\xc1G\x90|\xa2@"\x08\xc4x\x13\ X\xe4\xb3\xc5\t\x95g\xd4\x10\x8e9\xf9\x82\x10S\xa4E\x00\x86@y\xbfA h_\xa3\ \xc8\xa2v\xa9\x80\xef\x85$\xcd\x0e\xd6\xac\xbc\x8a\xad\xe7\xbe\x96\xb5g_\xc6\ \xc2\xe803\xe3\x13\xf8\xaeK\xae#\xcf\xba5kx\xa2\xb0\x1f\xbf\xd5D\x96eR\xb9\ \x1c\x7f\xfb\xc7[\xd1T\x99\xfb\x1f\xff\x01\xa33\xbb\xf8\xc6\x0fn\xa5\\\x99\ \x8b}{b\xf2\x9d\xe7F\x84\x81\x80\xac\x81*FT\x17||W\xc4H\x8a\xb8\x8e\x8ff\x00\ \x91L:\x95\xc3\x0f\x05\x149b\xa18\xbf\xf4]xN\x0b]\x8f\x9b\xea\x03\xa7\xa5\ \xc5:\xa8\x01\x8ahA\xe4#\x89\x12\x86a \x8a"\xd5J\x99\xc8u\xa8\xd8\x0e\x99\ \xa4pLi\xa3\xfd\x940\xac\x04\xb2\xa2R\xdc\xbf\x8bM\x9b6]~\xb2\r\xe0\xa4\xe9\ \x02EaX\r\x83`\xfb\xa5/}\xc9\x7fn\xd5jV\xff\x8a\x15\x18\x89$\xc3{\xf7\xb00;\ \x8b\xa2\xa8\x04\x81O\xb98Oyn\x96\xd5\xe7l\xe2e\xaf\xbb\x96\xc7\xb6o\xe7\xe8\ \xfe\xbd\x14g\xa61-\x0bEQi6mj\xa5\x12\x84!\x89T:\xce\xef\xff\x12\xb7\x04 "\ \x1a\xb7\xeb\x8d\x7fz\xe6\xff\x9f{\xc1\xf9\xd7\xbe\xf3\xa6w}\xf4\x8do~\xcb\'\ \xcf\xbb\xe0\x82\xeb\xf3\xf9\xbc\xbeo\xcf\x9eG\x01|7\xa8\xee\xbf7\xfcWE\x97\ \xec\xbe\xb3\xb4\x8b\xe7\x0e\x05\xb2\xaa\x8bmi\x13\xa1\x9d\xd5\x8a\x7fNv\xcb\ \x85x\x1e8\x9eH\xa5(C\x04\xc9\x9c\x8e \xc4\xc6 \xca\xb1\xef,k\x11\xb9\x9e\ \x08\x04\x91F9B\x90"$9$\x8aD@l\x07\xc2\x8b\x96\xd0v\x95\x16\xb9?BLsV\r\x10\ \xe5\x10\xbb"\xb4\xff&~\xbb\xac\xc05\x97\xff!\x7f\xff\xaeo\xd2\x97\xbb\x84\ \xae\x9eM\x98\xa9\x02\xd9\xee.\xdcZ\rO\x10\xf1\xec&\x9a\xaaPi\xb6b\xd58\xcfC\ \x92%T]\'i%\xc9\xa6\xb2\xac\xe8_\xcf\xb9k/\xe7\x0f^\xfb\x9f9k\xd5\xc5\x8cO\ \x1ff\xb68\x86 \x88H\x02H\x92H\xe0\xcbT\xe6#|\x0f<[@MH4*\x01f\xc2\xc4n4Y\xbf\ \xfcR\x96\xf5\xaf\xc5\x0fB\\\xd7e\xfd\xc6\xb3\xc8\xe5r\xdc\xf7\xc0\x03<\xbec\ \x07N\x04\xa2$31y\x88TZ\xc3\xb0$\xba:\xd7\xb0v\xe5\x1a\x1c\xc7\xe5\xc9\xa7\ \x9e\xc4\xf7\x03\x12\x89\x04\xbe\xac\x91\xc9\xe5yfVL\x10E\xc6\xf7\xefa\xd7\ \xa3\x8f`\xa5\xd3\xe3;\x1f{\xec;\'k\xcd\xc2)\xe8\x08Kd\xb2\xd5|\xbe\xa3\xd0\ \xb3b\x05D\xe08\x0e\xa2 \xf0\xed/\x7f\x89\xb9\xd9Y\x0c\xd3\xa4oh%\x0b3S|\xec\ \xe6\xbf\xa0e\xdbq\xc7\x14\xa0\xe9z\xbb\x11#\xe6\xf8+\x8a\xdafw\xc6\x8b\xff\ \x17\xdc\x9e%D<\x9bfP*\x93\xd9\xf8\xfe\xbf\x7f\xff\x1di+\x83\x1f\xc2\xaa\x95\ +\x0b\xef\xfd\x9b\xbf\xbd\xa8R\x7f\xed\xcb~\xfa\xc3\x1f\xbe\x11\xc0\xb1\xbd\ \xd9\x9d\xdf\xf3>\xb8\xf3{|p\xf35\xd9C\xb2\x1a\xac\x8c\x82\xa0\x1d`\xb6\x1bv\ D\x19Y\x95\xa9.4\xb1\xcb0\xf1\x84\xc1\xf2\xad\x01\xa1 S\x9c\x0f\xe9\xed\x97\ \xc8u\xf9,*\x9d/2\x1fz\x86B\x9c\x9aLy>\xbe>Y\xf1\xf1=\x85\xe8\x17\x02\x99gf\ \x86\xa2v\xe5\x18\x1c\x1bT=>\x8fl\xba\x8b\xdb\xfe\xc7\x83t\xe6\xfb\xf1}\x9f\ \xb9\x85{\xb0\xf2\x1d\xf8AH\xab8\xc7\xd4\xd1\xa3\x14\xce\xd9\x8cS)#K\x12\xaa\ a!F\x02\xae\xd8\xce>\x85>\xd5\xe6/\xeaWm=\xf7\x95l=\xf7\x95\x1c\x18y\x9cw}\ \xe0J\xdcf\x95f#D\x94#$A@\xb5\x04\x0f\x9ct\x03\xa8Vk\xdb\xd6\ \xad_\x7f\xd3\xa2\x1f\xbb\xd8\xd4\xbef\xe3\xc6\xb9\xf9\xf9\xf9B\xd3\xb69\xf4\ \xd4\x93K\xef?\x9e%\xb9\xe8\xf7/Vg5C\x7f:/\xe7Yw\x81x\xa16\x1b\x8d_\xa0\xcd\ \x9e\xbb\xf9\xdcw\xf4\x0e\xf43vp\x94\xce\xee^z:\xf2\xc8\xb2\xc4\xaa\x15\xcbo\ \xd8\x91\xcfm)\x17\x17\x9eV5\x1e\xdfk\xbfw\xe3e\xda\x9dnC \xf0DBI$\xf0\x8e\ \xd11\x9czD\xab*\x11\x06p\xe0\x1e\x1f\xab#\xa2s\x95\x88 )4\x9b"\x03C^\\?\x88\ b\xce\x8d$)l\xbdl%w\xdf\xb9/Ng\x06\x01\x82\x18\x12\x05\xd2\x12\xa7b\xb1\xb9%\ \xf6\x84\x8eE\xb3\x92\x12w\xc5E\xa1\x88"k\xbc\xe3\x0f?\xcc\xdb_\xf7\x9e%C\ \x91e\x99\xce\xce.j\xcd&F2\xcb\xcf\x1f\xdbI\xb9X\xe6\xd1\xbd\xdf\xc4\r#\x12\ \xc9$\tc*\x16\xf5\xf5}\xca\xe52\xa1\xe7\x91O?\xc1\xaa\xc1A\x96/\x1bd\xc3\xba\ \xf5\xe43\x99\xa5\xeb_\xb3\xfc<\xbeu\xeb\x01\xfe\xfa\x7f\xfc\x01\x07\xc7\xb6\ \xe3\xb6\x04\xdcHdr8\xc0m\xd9H\xa2\x04r\x0bD\t\xcbH\xb2lh-\x85\xe5+\x08\xc2\ \x80\xb9\x99Y\xe6\xa6&X\xa8T\xe8*t093\x8d]oP\x17\x04DA\x8dc\x08D|\xbf\x0eD\ \xc8\x92\x8c\xaajT\xab\x13te3\xfc\xc7W\xbf\xce\xb9\x17]J\x18Et&\x134Z-\x8e\ \x8e\x8e\x12\xf8>\xbaibW\x15\x9c\x86]\x10%I\x0b\x83\xe0y%;~\x19N\xba\x01\xd8\ \xf5\xda\xb8\x99L\xc6\x9dHm\xf8A\xc0\xea\xf5\xeby\xe8\xde{\xcf\x93\x14\xe5c\ \xbe\xe7]\x0eO_\xfc\x92$-\xe5\xc8[m\xf1\xa4\xc56\xc7_\x96\xfa\x846\x07H\x92\ \x9e\x16\x00\xcb\x8a\x92z\xe5\xab\xae\xb9)\xf4#:\xbb\xbai5m2\xf9U4[-\xba\n]\ \xf4\xf7\xf5_\xfbL\x03\xa8\xce\x8a\xf3\x07\x1f\to_\xffrn\xf4k2n3\x9e\xc9\x15\ \x85!\xbe\x13\xe0;\xd0(\xc6^\xa3f\x184\x8a-\x0e\xcd\xf8L\xed\x15Xu\x89\x8c\ \xac\xa6\x19Z%\xa2\x1a"\x95R\x03\xbb\xe6R\x9a\xddM\xba\x90\xa6^\xf2\xe2v\xc2\ 0X\x9a\xe0\xb8\x14\xf8\x1ew=\x82\x00\x92,\x01\x01v%\xa2\xa3\xa3\x8f\xff\xf7/\ o\xe5\xe2\x0b\xaf\xc6\x03Tb\x19\x91\x07~\xf6\x10;\x9f\xdc\xc3\xdcB\x85\xe5k\ \xd6\xb2a\xe5j\xd6\\\xb5\x8a\xde\\\x0eU|\xe6\x0es\x0c\xad `\xdf\x91\x11\x0e\ \x1e\xd8\xcf=\xb7\xdf\xce\xfc\xf4\x14/\xbb\xf0B^\xfe\xb2\x97\x91N\xa5\xc9\ \xa6;\xf9\xc7\xbf\xfa\n\xff\xfa\x95\x8f\xf2\x99\xdb>\x86\xef\x86H\x12\xa4\ \xf2\xa0\'C\x0cS\xe3\x82\xad\xd7p\xe9\xf9\x7fIG2\x85\xd3h \x110<|\x84e\xab\ \xd7\xa0F\x02\xeb6\x9f\x872<\x8c\xeb\xba\x04\xbe\xc7\xd8Q\x07Q\xf4i9\rTUis\ \x90\xe2]\xde\x0fB\n\x85N\xact\x9a\xf9\xc9\t:\x07\x06\t\x15\x85\xc1\xa4\xc5\ \xe4\xd44\xbai\xd12\x1a$\xd3\x19J\xb3\xd3\xe4::\xb6\xcc\xcf\xcc\x9c4\xc9\x94\ \x93n\x00\x07\xf6\xed\xdb\xf6\xb2W\\\xfd!\xdf[$\x94E(\xb2B"\x91*\x04A\xb0\ \xdbs\xdd+t\xd3\xbc9\n\xc3\x0f\x85A\xb0T@\xb1\x92\xa9\xf8\xa1\x18\x1dS{PT\r\ \xbf\xed\x1e=\xdd\n\x16\t\xf8\xf1\xfb\x03\xdf\xc7sZO[\xcc\xe7l\xde\xfc\xfe\ \x15+\x87\xb4f\xcd&p}\x0c\xcbB\x95e\xc6GG\xc9\xe6s\xd8\xcd\xe6/\x0cv\x93D\ \xf1\x87\xd3\x87\x9a\xa9\xf2,\xacz\t\x14\x06U\x9as"\x81/"\x10\x13\xd3\x9c\ \xba\x88\xac\x05\x04n\x88\xaa\xeb\x88\x82\x88[o\xb1\xfbG\x1e\xe2kZ\x84$\xe8\ \xeaqi\xd6Z\xf1\xe0l\x07\\\xa7A\xb3\xe1\xb7\xfdj\x81\xa8=\xd5e)\xcb\xd4v{\ \xc5\xc5\x9d@\x88\xeb\x02\xdd\x85M\xbc\xf2\xb2w\xd3[\x18\xc4\xf5=\x0c$~\xfa\ \xe0\x83|\xeb\x07\xffNvp\x05k.\xb9\x92\xcb\xd6\xac\xe2\x9c\xa4\x89(\xc4\x01\ \xdd\xaf\xfaBuI\xe2\xdcU+9wU,\x88]m\xb6\xf8\xc9\x83\x0f\xf2w\xff\xf3c\x0ct\ \xe4\xf8\xa3\xb7\xde\x88\x95Jp\xd6\xda\x97s\xd3\x1fw\xf2\xc5o\xff\x1dZ"\xc00\ u\xf4\xa4\xee\x94\xc6\xf5;\x97\xa7\xae\xbc\xe1\xc7\xdf\xfa<\xaf~\xc5\xabQd\ \x0bU\x0e\xb9\xefGw\xf1\xb3\xed?\xe1\xe2+\xaff\xf9\x86\x8d\x9c\xdf\xddG\xabM\ o\xa9\xdf5M\xb36N\xad*q\xd7\x1dw\xf3\xc9\x8f\xddF\x18\x04tu\xf7\x10\xf8\x0e\ \xae\xe7\x93\xeb\xea\xc6\xf7\xbd\xf6\x1c\xe1&\x1b:2h\xa6\x89\xaa\xe9\xe8\x96\ E\xabQ\xc3\xf7}V\xad\\y\xf9\xc94\x80\x93.\x8e\xdb\xb2\xed\xa9\x97^\xf5\x8a\ \x0f\xc6\x9c\xf0\x90(\x08 \x0c\xf1]\x97\xb1\xd1\x91\xfb\xeb\xd5\xda\xb0\xefy\ \x0fEQ\xf4O\xaa\xa6]\x1f\x06A\x01\xc00-t\xd3\xc4i\xb5\xb0\xebu$I"\xd9\x0e\ \x80Y\n\x81\x7f\xd1w&\x8a\x08\xa2h\xbc\xd9\xb0\x97\x02`YQR\xafy\xcdk\xbe\xfd\ \xea\xdf\xbbV\x9e\x9d\x9c\xc12\x13\xf8\xae\x83\xa4\xaa\x8c\x1e\x19\xc6q\\ffg\ \x87\xd7\xae_w\xd1\xeau\xeb._6\xb4\xe2\xe2T6\xfb\x12\xaf\xd5z\x8d \x08\xb4\ \x1a>\xb3\x07az\x7f@\xe7\x06\x1f3-\x11E"n\xcbg\xf9\x98\x82\xbf*\xa0Q\x0c\xe3\ \x94\xa1\xac +\n\x92\xac\xd1X\xf0H\xf4z\xe8\x8a\x86\xd3h\xe19\xd0lDx-pZ\x8b\ \x8d\xef\xb0\xd8F\x18=\xfdJb\xbb\x96\x04d%\xc4P;X\xdd\xfdF\xfa\xfazX68D\xcb\ \xf5\xf9\x9b\xbf\xfek\x0e\xcf\x97Xs\xe9\xe58\x81\x80\x1b\x84\xb4\xbc\x80\xa2\ l\xd24U"\x01\x92\xcf\xf3K\xd5\x14\x99\xf5C+x\xf9K_J)\x84\x8f\xfe\xd3G\x19\ \xe8\xee!\x99\xcd\xa0\xc8\x06\x1d\xd9N\xaa\xd10\x1d=\xbd\xd5\x07\xbe\xda\xb8\ ^\x8f\xba\xd3\x83}\x83/y\xed\xab\xaeCVt\xc2 @\x16#\xf6\x1f<\x8c\xe7yLNOm{\ \xf0\xbe{n\x9d+\xce\xed\xa9\xd7k\xe3\xb5zm\xbc^\x9aN\x97flk\xdb\xf7\xefcrz\ \x96\xa9\x89q\x1c\xdfc\xfc\xe8\x08\x8a\x99\xe0\x8b\x9f\xff<\x97\xbe\xfc\x15\ \x0c,\x1fBn+\x81$L\x03\x81\x88\x85j%\xa6\xd68.v\xadJ\xa5\\\xde\x7fdx\xf8\xa4\ \r\xd8>%\xb2(\x93\x93\x13{R\x86\xbe\x81(BUT\x820@W\x15:\xf2\x1d\x1b\xa7\xc6\ \'\xb6\x01\x84A\xe04\x1b\x8d\x8d\xeb6l\xa8\x8c\x1c9\x92Jf\xb2H\x8a\x12\xcbtG\ \x11\xaa\xa6-)\x86\xc5\xd5\xd4v\xa1\xe8\xb8\'\'\xb4\xd3n\xae\xfb\x8d\xe3\x8f\ \xff\xa6?\xf8\x83\x1d}\x03}Z\xfc\xd4V\xb1\xed:\x9e\xefsh\xdf\x01j\xb52\x9d\ \x1dy\xfe\xecO\xff\xec\xbd\xaa"\xe3\xb8-D\xd9\xe1\xc9=;\xf9\xcc-_C\x14Et]\ \xa7^\xaf\xd3\xaa9<\xf2e\xe8\\\xed0t\x91\x80(\x8b\xa4\xfc\x90\xcb\xf7H|SV\ \xb0\xb2\xa9\xa5&qA\x10pj\x16~\xabI\xad\x16\x105!\x0c\xc1w\xda\x05\xb6\xe8\ \xd8\x89/\xd6\x15\x96|\xffh1\x06\x88_\xba\x9ab(u]\x1c\x0bE!;\x1e~\x88m\xf7>B\ a\xd5z\xca\xd5\x1a\x8f?\xf4\x00\xf9\xce\x1e$M\xa3\xd9h\xd0j6\x90#\x93NA\xe0\ \xd9\xe9i\xbf\x1a\x91,s\xd9\xa5\x97\xb0a\xe5\x10\xb7\xfc\xdb\xbfQ\xb0T\xce\ \xd9r\x1ek\x97]@\xbd\xda\xac\xcar\x9f\xf6\xcaW=\xb2\xad\xd0\xd1\xc3\x85\x97\ \xae[rS\x17\xaf=\x9b\xc9`\xdb6\xa3\xc3\x87\x86\xef\xdf\xbe\xfd\x13\xc7\x7f\ \xf6\xb9\xe7\x9f\x7f\xcb\xdc\xcc\xe8M\xbe \xd1\xb0G\xa8Ue\xfc\xb0AG\xff \x9d\ }\xfd\xf4\xacX\xc3\xe7>u\xcb\xb6\xc9\xd1\xa3\xef\xf9\xc0\xc7\xff\xf9\xeb\xe7\ _r\xd9\xe6\x85F\x93\xace\xa1(\x1a\x82(\xa3\x9bq\x93T:\x939\xa9=\xc2\xa7D\x1e\ \xbd\xa3\xabkc\xdf\xc0\xe0\x05\x81\xe3\xe0\xb7\xa7\xab \xc0\xc2\xc2\xc2\xf0\ \xd8\xd1\xa3O\xb3\xde\x0b.\xb9\xe4\xf2\xa1\x15+Ve;;I\xa6RL\x8eO\xe0\xb6Z\xa4\ 2\xd9X\x8a\x8f\xf8\x06/\xe5I\xda\xe9\xc2%5\xb60\xc0\xb6\xed\xb7\x07\xbe\xbf\ \x00\xb0\xf5\xe2\x8b?|\xfe\x05\x17\\\xbb\xe5\xbc-1\xc5"\x82j\xa5\xc4\xaa\xa1\ \x15LMN\xd2j\xc6-~N\xab\x9d"\xf4\x03\x02Od\xef\xaeC\x0c\x0f\x0f/\xb9_\xaa\ \xaa"I\x12\x9e\xe7\xd1(\xc2\xf8.\x08}\x81\xbdU\x91=B,\xee\xb5\x98\xbdZ\x82\ \x00NU\xc6\xea\xb1\xc1\x8d\xf0\xdc\xb8\xc9>\x16\xae\x02"\x81\xb0\x1d\x00/>\ \xf1\x97\xfeT\x88\xab\xb5\xa2\x04\x97n\xfaS\x82\xa6\x8c K\xccL\x1794]\xc6\ \xf6|\xf6\xee\xd9M\xc3\xb6Q5\x1d\xcd4)\xe4\xf3\\\xb8z\x88\xf3{:\x18Rd\x9aaD\ \x15\x01\xbfmX\xed\xa4\xeb\xafD\x00\xcc\x01\r\xc0I$\xd8|\xd1%\xcc\xcc\x95\ \xb8\xfb\xae\x1f\xd0\xdf\xd3\x8b\xe8IZ\xb5V\x95\xcf:{5o}\xcb\xdbPD\x83\xa1e\ \xab\xe8\xea\xeab\xa14\x87\xefC\xc3\xb6\x19\x1f\x1fGR\x94\xe0\xe0\xfe\xfd\ \xb7\x1d\xff\xf9\x96eY\xa1\xe0\xdd\xe0\xba6\xba\x01\xf5J\x88\xa2\x81]\xa9!+\ \x06\x0b3\x93\xb8\xad\xe6=\xe3G\x8e|.\x99\xc9\xe4\xce\x7f\xc9K\xaft\x82\x90\ \x95\x9d9F\xe7\x8a\x04\x81O\xe0y(\xb2D\xa3R\xee\xd9\xf9\xf8\x8e\x7f<\xc1\xa5\ \xf8+qJ\x0c@\x14Ey\xf3\xd6\x0b\xdf\xd2\xaa\xc5\xae\xcc\xc0\xe0 \x8a$\xb1\xe9\ \x9cs\xce)\x95\xcbS\x93\x13\x13;\x17\xdf\xab\xea:\xe7_|\xc9\xf5N\xadJ2a\xb1r\ h\x05\xa6\x95@1-\x10\xe2\x9c|\xecb\xc8\xc7\xbd\x946%Z \x88\xa2\xf1Z\xa9\xf4w\ \x00\xe9lv\xe3\x1b\xdf\xf4\xa6/\xd7\xaa\x15\xba\xfa\x07\x99\x9e\x9a\xa5Ro\ \x10 \x90\xcbd\x90d\x01A\x90Ifrt\x15:\xe8\xef\xeb\xa3\xd0\xd9I\xa1P`|r\x92G\ \x1fy\xe4i\x9dg\x8b\x85\xa9\xc58\xc4.\xb7[\x1d\xdbtl\x88\xe9\xca\xae\xd3\xc2\ s]dE\xc1o\x8a\xe4V\xb4Pu\x01\xaf\x193\xd8\xc2Hh\xfb\xfe\xd2\xf1e\xe0\xa7\x19\ \x81\xd0v\x7f\xf4\xa8\x8b\xe5=\x97\xe09\x0e3\x95*\xae\xa4s\xf4\xf0a\x0e\x1f:\ \x84 \x89H\xa2\xc8\xfa\r\x1by\xe7\x1b^\xcf\xf9\xeb\xd7P\xb2\x9b\x8c\x94\xab<\ ^\xaa3\xee\x86TU\x95\x86,b\x03M\xe2\xc5\x1d\x02-\xe2C\xfb\xedC\x86\x1c3\x0e\ \x01\xf0\x80\xf90bd|\x9e\xf1\xc9\x19\x8ct\x8e\xfe\x9e\x1e\x1e\xb8w;\xdd\xb9\ \x1c\xd5r\x99\xad\x97\xbc\x8aZ\xc3\xa7\xb8Parv\x1e7*\xe3{6\xaa \x91\xce\xe61\ \x0c\x83(\xa2\xf0\xd8#?{\xda\x02u\xbc\xe6\x80 \xb5nt\xec\x10+\xa3Q/9mmQh\xd9\ \x0eG\x0f\x1d\xa4o``\xcb\xe4\xd8\xd8\x7f=\xbc\x7f\xdf\x81+^\xf5\xaa\xbf\xc8\ \xe4;\xe4\xa4\xa6Q\xf7\x02\x9cV\x0b\xc2\x80\xe2\xec\x0c^\xab)?\xf9\xe4\xae\ \xcf\xf8\x9ewR\xa4\xd4O\x89\x0b4z\xf8\xf0\xf6\xba\xdd\x1c\x16Dqe2\x95\xc4\ \xd4u\n\x1dy\xc2(\xd2\xfe\xf4]\xef\xfa\xb4 I\xa9F\xa5\x9a\x964\xd5\x91%\xa9\ \xd0\xa8Vb\xfa\x83\xae#\np\xd69\x9b\xb0[\x0eu\xbb\x11\x0b3\xb5\xe5\xc6k\xb5\ \xea\xf8\xc1}\xfbnk\xd3\x91\xb5(\x8a\xb4f\xa3\xb1\x14\x10m9o\xcb\xdf\x84\x81\ O\xff\xf2!\xdc\x102\x85\x02B\x14\xd1r\x1c\x9e:8L\xd64\x10T\x8d\xf9r\x99\xad\ \x17\\\xc9\xf8\xc4$\xa5j\x8dF\xbd\xc1\xc8\xd8\x04\x9e\xe7\xb5\x85\xa0\x8eq\ \xf8\xfdg<\xe5\x85\xf6\x0e$\x8a\x02\x9e\xdb\x8ae\x08\x893Z\x8emcX\x16^\xc3 4\ m\x04\x89c\xb3\xbc\xc4\x88\xe8\x19\x1b\xc6\xf1\xae\x10\x80\x84\x82J\x0f\xb3\ \xd3S\x08\xb2\x88\x9e\xcc19>\xce\xf8\xe1#\x08\x8a\x8a\xef\xb8\xbc\xec\xea\ \x97p\xd1\x85\x17\xf2\xb3\x03\x07\x19\x9d+\xa2\x9b\x16f"\x89\x95L\xc5T\x83\ \x84\x0e\x9a\x81C;c\x04\x18\xc4\x0b\xdc%~\xe2\x99\xc4\xa4\xa9\x00H\x01y \x03\ H\x82@Y\x16\x99,\x15\xa9\x97\xcb\x04\xaeK\xe7\xaa\xf5\xec?\xb8\x87\xbe\xce\ \x0e\xf6\xfc\xfcQ\x0c\xc3\x04A\xc0\xd4\x15R\x1d*\xa0\xc5\nt\x82\xc0\xb2e\xcb\ PT\xf5\x17\x98\xa1\x82\xe8\\,\xab\x1aQ=\xc2i\xba1\xab\x14\x910\x08\xa9\x94\ \x8a@\x9c\xf8Hf2\x17\xd7\xca\xe5\x87\x0e\xec\xd9\xbd3\xdfQ\xb8h_\xad\xd2\xae\ \xc6\xc7\x9c\xb0\x94e\xb1\xfc\x82\x0b\xb8\xf3\xbbwl\x1e=r\xe4\x97O\xa7?A\x9c\ \x12\x03\xf0\\\xb7\xfa\xbf\xfe\xfb\x7f\xdbx\xf3\xfb\xffv\xb7$\x8a+%E&\x00\ \x82\xf6\xe2z\xc3\ro\xfc\xf8\x9e\xa7\x9eBVd4\xdd\xa0\xd9\xb4Qu\r\x81\x10I\ \x8a\xe3\x00Y\x14\xc8$\x12\xc7q\xc9\x04\x08\xfd\xb1\xd9\x89\xf1\x0f>\xdb1;\ \xbb\xbb.>w\xcb\xe6\x1bU\xdddp\xddz\xea\xa5\x12\xa5Z\x153\x91@Wd\x02Y\xa6XoP\ \x9a\x99BR\x14>\xf3\xd9\xcf\xc5\xed\x85\xedGrq~6N\xdb\xb5U(\x16\x1b\xf1#b\ \xb2W<\xdaGDVd\xac\x14H\xa9\x06\xa1\'\x91\xea\xf19\xf2\xb0\xcc\xa2\xa0\xa1\ \xd3j\xe1T\x12H\xfd>\xa1\x1d\x10\x12\x11\x86q\x83\xbc\x00\x1c\'\xa3\x03<\xdd\ \x08T\xa1\x80,\x18LLM\xd2\xbdz=\xbbw\xfd\xaf\x1fOh\xfa\xd7S\xe9$\xe9D\x92b\ \xb9\xc2\x86\x8dga\x88\x02\xaa\x00\x97]q\xc5\xcd\xb7\x1f9r\xe7\xc9X\xab\xa7l\ DR\x14E\xc1\xf8\xd8\xf8\xfd\xb2\xaa\xac\xeb\xef\x1fX\x1e\x06\xb1\xc8j\x18Ex\ \x9eK\xd3u\x11%\x990\x08\x11\xa5\xb6,\xa2$#\x88\xc21-\xcd\xe3\x16\xbf \x08\ \xd8\xb6=|p\xdf\xbe\xcf?\xdb\xf1\xaey\xcdk\xee,t\x14z4\xd3\xa4{\xa0\x9fZ\xb9\ DG\x7f?\xae\xefc7[\xf8\x9e\x8b\xa4\xc8\xc8\xaaN\xb6\xab\x87tW7\x89L\x96D6O\ \xaa\xa3\x93\xf9\xf9"\xa3\xa3\xa3(\xaa\x86\xa2i\xb1\x9b\xd5\xa6\x01+\xed\x86\ \x1b\xcd0\x11\x15\x85\xce\xc1U\xc8\xa9"\xa1/\xe05:h\xd5kDA\xcc\xdd\x0f|\x1fY\ 6\xc9.o \x86\xf1\xdc.\xdf\x13AP\x08\x83c\x94\xe6gB\x10\xc0\x12\x87\x90D\x9dl\ \xcf\x10\x07\xf7\xecfnr\x82(\x0c)\xf4\xf5\xd2\xd9\xdd\xcdO\x7f\xf6\x085\xc7E\ \xd3\x8c\xa5\x8e\xbb\xc5,Y@\x84\xeb\xb4\x08\x95X\xe7\xb3Yo\xd0,\x97)OLQ\x9e\ \x9d\xa74W\xc4\xaeV\x08B\x90t\x1dM\x12\xf1\x88H\x9b\x1a\xa6\xa12+\x8a\x1cm\ \xd8X\xb2\xcc`2\xc1\xb9\xeb\xd7sdz\x8a\xc3\x07\x0f\xa2\x19\x16\x0b\xa52\xcd\ \xf2\x02]Ck\xc9g\xd2\xf4\xac=\x9b\xe9\xd9\x06^\xa5\x88\xa9(4KE\xb4D\x12-_\ \xe0\xd1\xfb\xee\xddY\x9c\x9d]\x9a\x1e\xdf?\xd4\xf7\x7f\x141a\xb9\xae\xcd\ \xb2\x81\xf5X\x96J&\xd5\x89\xe7\xb9\x18\x86I\x84\x80\xddh \x88\xe2\xceF\xad\ \xb6\xad\\,\x0e\xf7v\x16\xfe\xcb\xb2u\x1bH\x15z\x90\xa2\x88T*\x85\xed\x05\ \xc8\xd9\x02\xe9\\6\xf7\x83o~\xe3#\'c\x9d\x9eRq\xdc\xd1#\x87w\xb8\xae{\xf3y\ \x17l}0iY\x8bRo\xec\xd9\xb7\xef\x1b#\xa3c\xdb\xacD2\x95L\xa5\xd3\x9e\xeb\xe2\ \xb9\x0e\x92,\x17\xce:\xfb\xec\x9b&G\x8e\x10\xe7\x0b\x89\xf3\xe3m\xed\xd0\ \xbe\xee\xee\xcb;\xbb\xba.\x9f\x9d\x99\xd9~\xfcq.z\xc9KnY6\xb8l\xb3$K,\xcc\ \xceb\xd7\xeb4\x1d\x97\xd2|\x91t>G\x84@\xd0j!\xab\x1ago9\x9f|\xbe\x83\x9am\ \xd3\x95\xcf\xb1he\xb2$\xf1\xc0\xfd\xf7\xe39\xb1\n\x9a\xefz(\xbe\xd7.Z\xc5\ \xcd\xf8\x92,Q\xafVQ\x13&\x86t1\x15\xfb>\xecR\x05#\x05\xf5y\xb0\xac\x04a\x18\ \xe2\xdb:\xf59\x89t\xc6\'\xf4#$UA\x08\x85%\xaar\x14Dp,\xc1\x05\x80\xdfH\x12%\ A\xcf\x14hy\x1e\xd3cc\xa8\xbaF2\x9fC5MF\xa6&\x91U\x15\xbb\xb4\x80\xef8$3\x19\ \xd2\x1d\x9d\xa4rY\x12\x99\x0cV6\x17\xcb\xb98\x0e\r;\xa6;h\x9a\x86\xe8\xba\ \x98\x86\x8a\x95J\xa3\x1a:\x8aa\xe0\x0b\x11\xae\x08M\xdb\xa5\xe5:1\xeb\xb4\ \xd9\xc2\xf3\x1c\xb6\x17\xe7H\xba\x1e/_\xb3\x86?\xb8\xe6\x95\xec>\xfb,n\xbf\ \xed3\xac\xd9r\x01O\xfct\x1b\xf7\xff\xe8\x07\xc3\x17]~\xe5!\xab7\xb8Z""\xbd|\ \r\x9e\xef\xa3\xe9\x16\x9a,\xd2\xf4\x02\xa6\xc6\xc7v\x1e\xff\xfdxM\xb7\x90\ \xcf\xf6P\xaa\xcc\xd0\xb7|\x80\x91\x03\x0e7\xfe\xe1\x1f\xb3\xed\'\xdb\x98\ \x9d\x9a&\x9bJ315\xc9\xf4\xf4t\n\xe2\x0c\xe1\xc6\x8b_:W\xe8\x1b(<\xf9\xe0=\ \x14\x06V0_\xab\x13\xb8-\xba\x12\x06\xcd\x9e\xfe\x93\xa6\x18}\xca\xd5\xa1\ \xa7\'\xc6w|\xe3\xeb_\xbb\xf9\xf5\xaf\x7f\xfd-V2\xc9\x13;w\xde\xf9\xe5\xcf\ \x7f\xfem\xcfU\xce>\xf7\x13\xff|\x83\x99H\x14Zm\xce\x8a@L\x88\xf2\x9d\x16N\ \xcba\xcb\xf9\xe7}\xf0\x87\xff\xfe\x83\xcb\x17\xdf\x9f\xcef7\x9ew\xdey7\xc9\ \xb2\x1c\xd3\x88e\x89\xc9\xf1\tr\xf9\x87\xf8aH\xbd^\xc3o\ \xd6\xa9-\xcca$\x92\xa8\xba\x81a&1\x13&f2\x89\xac)`\x99\x08a\x84\x17F\x04\ \x8e\x87\x1f4\x88jU\x14M\xc5u\x1c\x9a\x8d&\x92,\xe3\xfbn,H,\x89\x8cON\xe1;M\ \x86ryzM\x8bW\\u\x15_\xf9\xd2\x97\xe8]\xb1\x8a\xc7\xee\xfe\xf1Cw\xdfu\xd7G>\ \xfd\xfd\x1f]n\xa63\x9a(I\x08A\x80 I8A\xc8\xd7>\xf3\xaf\xb7\xd6\xca\xe5C\x8b\ \xdf\x8f(I\x9a(A:\x9b"<,S\xacy\x98V\n5\x93\xa3^\xaf\x93\x19X\xc1@\xd2d\xa1^G\ \x9a\x9b_\x9a\x1b<_,\xeeX\xe1\x07W\x9fw\xd9\x95\x04\x8b\x19?\xd3\xa2j7\xf9\ \xcc?\x7f\xec\xbf\x9e\xac\xf5\xf9\xdc5\xf3\x17\t\xe7_r\xc9\xfb\xdf\xf4G\xef\ \xf8P\xadR\xc1w\x1dj\xe5\x12-\xbbN\xb3R\xa2\xe9x$\xac$_\xff\xfa\xd7\x06\x9b\ \xb6=\x06p\xdd\x1b\xde\xf0\xe0\xaa\x95C\x17[\x89$N\xcb!TU:z\xfb\xd0\x0c\x13\ \xd30\x98\x1a\x1f\xdd\xb9{\xc7\x8em\xbb\x9f\xdc\xf5\xd0\xee\x9d;\x9f\xd3o\ \x94d9y\xf1+_U\x8d\x8bU\xc1\xd2\xc2?\xf6\xafO\xe0\xf9\x18\x86\xca\xd8\xd1#\ \xe8\x89\x04\xb5\xf9\x05\x1c\xbb\x89f\x1a\xb1\nD\x18O\x87\x91\x15\x05\xa7\ \xd5DQ5Zv\x83\xeeu>\xcb.\x88p\xeb\xb1\xa0T\xe8@\x14\xb45?\xdb\xd3S\xfcJ\x81u\ g_M\xab\x15\xf0\xf8\xbd\xf7\xd0\xbbj%\x86e\x81$\xa1\xa8\x1aF\xc2"\x0cBdYA\ \xb3,t\xcbB5LTI \x88@3\x12d:;Ivu!\xc6\x9cfdY\x89\xd9\xa5b\\\xb0\x13%\x19\xcd\ 41R\xa9\x98r\x1a\x86\xb8\xad&^\xab\x85g\xd7p=\x97f\xadN\xb3V#\n\x03:\x14\x8d\ W\xbd\xe2\x15\xa8\xc0?~\xe4#H\x86\xc9S\x0f\xdd\xf7\xf8\xfd?\xfa\xc9\xf9\x92$\ i\xaf\xbc\xfe\xf7\xdf\x99/t\x16\x16%\xd9\xef\xf8\xf2\x17n\xab\x95\xcbO\x0bN\ \x15M-,_\xd9=+\xc8:\xf3\xb3\x13\xe4\xbb\xd7\xd1\xd5\xd7\xcd\xc6\xb3\xb7\xb0o\ \xcfn\xa6\xc7\xc6\xf8\xe3\xf7\xde\xcc\xd7n\xf9$\x93\xe3G?2=1\xf9~\x80T&;\xf0\ \xb6\xf7\xfc\xc5\x87\xaex\xf5\xebn0LKs]\xc7\xf9\xfe\xd7\xbe|\xfb\xbd?\xbc\ \xeb\xb6\x83\xbb\x9fT/\ \x97A\x10i5m\xecZ\x15\xc3\xb2h\xb5\x1c\xae\xbe\xfa\xea\x9b\x8a\x0b\x0b;6\x9d\ \xbb\xe9\x83\x8a\xa2\x90\xb0,\x1c\xd7\xc5H&13\x19\xc4H@\xb3,\xee\xfa\xce7o}>\ \x8b\x1f\xc0\xb1\xed#\x00v\xb5\xfa\xc43\x7f\'J\x92fX\xd6F3\x91\xbcZ\xd1\xb4\ \x82n\x9a[\x04Ax\xd91B[{\xab\x8e\xa2\x98\xc9\x1a\x84\xed\xff\x8a\xa8\xcfG\xa1\xfekQ\x14R^\xc3\xa5\xe5xt\xf5tr\xe4\xc0Sl\xde\ \xbc\x85 \xf0\xe9\xe8,079\xc1\xd8\xfe\xbd\xe4W\xad\xc7\xdf\xbd\xfb\x94\r\xc2\ x.\x9c\x96\x83\xb2\xa7\xc6\xc7\x0e\xac;g\xd3U\x99l\xb6\xc7\xf7\xfd80\xf5=\ \xa20\xa0\xd5l188\xc8\xd9\xe7\x9cs\xb5\xe7y9M\xd7I\'\xd3\xf8\x80l\x98h\xba\ \xbe\xa8+\xea\xdc\xfa\x91\xff\xfe\xa6\x939{6\x8a\xa2\xc0s\x9c)\xbbV\xbb\xbfV\ .m\xab,\x14\xbf\x82 \xdc/ \x14DQ\\u\xfc\x86*\xcb\xf1D\x1c\xaf\xe5\xb4)\xdd\ \xc7F\xa7\xce\rG\xf8nH\xba\x1bTK$\x0c\xa1#\xb5\x95\xf2|\x91j\xb9L~`\xa0M\xb4\ \x8b\xe7\x1e\x8b\x92\x8cnY\x08\x82H\xae\xb7\x9b|w\x0f\xf5R\x99\xee\xc1A\xf2\ \xfd\x03\xa8\x86\x89\xa2\xa9\xc7\n\x86R[*F\x96\xdb\nu\xf1K5\x8c\x98p\x17F8\ \xcd\xb8x\xe7\xb9.-\xdb\xc6\xf7<\xecZ\x8d\xb1={\x99=:J\xabi\xe39-\xfc\xc0\'\ \x9fM\xb1v\xedz\xee\xbd\xe7>\xccD\x92\xa9\x91#\x87+\xa5\xf2\xfd\'r\xcf4S\xbb\ \xb8\xa3\xa7\xf7\x06\xc3H\x90H\xa7\xc9e\xf3\x88\xa2\xc8\xd4\xd8Qt]\xe3\xac\ \x8dg1:z\x94\xc9\x03{\x9c\xcaB\xe9\xaf\xa20t`g__\xfff\xdd4\xf1]\x87\x96m\xd3\ \xd9\xd5\xb5\x94\x95\xc9gs\x98\xe9,\xf5F\x1d-\x91\x00AD7-\x1e{\xe8\x81m?\xfa\ \xce\xb7?\xf8B\x9eo\xcbn\xde\xd9\xb2\x9bw\x9a\xc9\xe4\r\x8a\xaa\xbe_Q\xd5\ \xcd\xb2\xa2`\xa5R\xb8\xae\x83\x10\x86\xb1\xc8W{\xb0\x07\xc4\xddr\xc5\x91\ \x90\xe2H\xc8\x1f\xbd/G\xa3^"\xd7=H"\x91@l\x8f\x94R\x14\x05#\x99D\xd35\x84(\ \xc2m8tm^\x86\x99\xc9\x90n9\xc8\x9aF\x10\x04\xc8jl,\x9ai\xa0(2\xae\x1b\xf7cD\ B\x84$GHa\x18+Rx\x1e^\x10\xcb\xd7Tfg\x998p\x90z\xb5\x8c\xdbl\xe29-\x1a\xb5z<\ \xd2)\xf0\t|\x9f\xbesB\xc2\xec~\xc6&F0T\x99j\xbd\x85 >\x0f\xc7!\x12R\xcb\x86\ V\xf2\xf8#\x0f\xa1H\x12\x8f<\xf2 \x89t\x96\xc3\xf3\xf3\xe8\x9a\x86i\x18\xd4K\ \xf3\xccML|\xe2W\x7f\xd8\xc9\xc7i\xb9\x03,\xe2\xa7\xdf\xff\xde-\xf1\x13.~i\ \x86A:\x9b\x8bs\xf3\x084\x9b6N\xcb\xa6Z\xab\xd2\xd1\xd5\x83i%\x10e\xd9\xf9\ \xd4\x87\xff\xf1\x94\xaa\x89\xfd2\xd8\xb5\xda7*\xc5\xe2\x16?\xf0\xdf\xa9\x19\ \xe6C\xdd\x83\xcbcq/AlK\xa1\xc4e\x7fY\x96\xc9f\xb3\xe4\xf3\xf9\xf6\xef\x05\ \xd2\xc9d\xac\x92\xad\xebKR\xf2\x89l\x16\xd3\xb20L\x13M\xb7X{\xc1V|\x1fdEBRT\ \x06V,\xc3L\xa4\xd0\x0c\x83lOW\xdc\x9f\xe0\xb8H\xa2\x84$\x88\x88\x82\x88(\ \xc6n\x91$\xc9\x10\x85Tf\xe7\x98\xda\x7f\x90\xd2\xe4\xd4R|\xe1\xb9.\xae\x13K\ Q\xfa\xae\x8b\xa8\x04\x9c\xf7f\x8fl\xaf\x87\x95\x08yj\xea\xfb\xf8\x81\xf74\ \x8e\xd4\x89 \n\xc3\xf4\xfe\'\x9f\x00\xdfG\x905\x1a\x8d\x06\x9a\xaaS.\xce\ \x93/\x14\xb0K\x0bT\xaa\xf5\xaa\xeb8\xdbO\xd9\x97\xf2Kp\xda\xee\x00\x00\x8f\ \xdew\xef\xed\xbf\xf7\xd6\xb7\x7f\xd02\xcd~\xcd0\xd1L\x93t\xc2\x02\xcfYzJ\ \x15ggP\x12)&\xc7\x8e\xd2\xb2m\xbe\xf5\xd5/\xbf\xf3\xc5>o\x80\xf9\xc9\xc9\ \xdb\xe6\'\'o\xcbuu\xbfYR\x94\xb7\x04~p\xad\x10\x84K\x06\xb08\xf9F\x92$\xf2\ \xf9|\x9c\x95\x91\xe2\xa1 \xbd\xfd\xbd\xccUj\xe8\xa6\x81a\xc6\xd9\x1eQR\xe9_\ \xbb\x0e3\x9dAQ5\xdc\xa6\x8f\x95\xc9\x10\xa8:\x83C\xcb\xa8\xd4mZ\xb5:Q\x14\ \xf3r\x82\xc0_\xd2\x12\x8d\x08\x97z\x95k\xc5\x12\xe5\xe9\xd9\xa5*r\x18\xf8D\ \xe1\xb1!$\xe9^\xe8>\xd7G5]\x1a\xf3\x01A\x0b\x04S\xe6\xa9}?\xe7\xe8\x93I:\ \x96\r\xfdJ\x95\xbe\xe3\x91JgQ\r\x03\xc9m\xd1\xa8\x94\x88"\x91Z\xb5D.\x9fgfj\ \x92\x85\xe2\x02\xf5R\xe9\xbcS\xf45\xfcJ\x9c\xd6;@\x18\x04\xceO\xbew\xc7\'T]\ G7L\x06\x06\x97a%SH\x8a\x86(\xc5\x03#\x92\xa9\x14\xc5\xa9\t&GF\xa87[\x0f?\ \xf9\xd8c\xb7\xbf\xd8\xe7}<\x16f\xa6\xbfZ]X\xb8NR\xe4\xdb\x9e\xb9\x0bx^,\x12\ \x8c\x103[5\xdd"\x0c\x03T]\xa7\xab\xbb\x8bT:\x83\x95H\xa2\xe9\x16C\xe7\x9cKG\ o?\x89d\n]\xd5\x08\x1d\x0f\xaf\xd1\xc2)\x95)\xce/P\x1a\x9ddvd\x94\xca\xec|<\ \x1f,\xf4\xf1\x03\x17?\xf0\x08\x82\x10\xc7nu\xf8Pa\x00\x00 \x00IDATQ\x9d/R\ \x9d-\xb2\xa8\x9c\x15EQ\xbbuU\xc0\xc8\x84\xac|\xa9\xc7\xc0\xe6*VR\xa7\xb5\ \x00\xa1\xd7\xae&\x8b2\xb5Z\x85\xa3G\x8e\xa2\xe9:\x9e\xe7\x9ep\xa0\xea8^\xa1\ \xd1\xa8\x11\x041\x0fL35\xa6\'&Y\xa8T\xf0=\x17\xcfuo\xf5\\\xf7\xd0\xaf\xfe\ \xa4S\x83\xd3\xda\x00\x00~r\xe7w?^\xab\xd5\xe6\xccd\x12M\xd7Qu=\xd6\x17\x15%\ \x14MC\x04V,_N\x14\xf8|\xfd3\xffv\xcb\x8b}\xbe\xcf\x85f\xa3\xf1nA\x12\x1f^\ \x9cz\x13\x86!\xbae\xd1\xbbr5]\xcb\x87p\x1d\x87H\x00\xc7\xb6\xf1\x9a.C}\xfd\ \xa4s9,+\xc1\x8a\rg\x119>N\xa9\x8aWm\xe0\xdb-\xc4\x08$Adab\x06\xa7\xd1D64\ \xd2\xf9<\x9e\xe3R\x1c\x9d\xa0Q\xaea\x97\xaa\xd8\xe5*\x8d\x85\x123\x87G(O\ \xcd\xb5\x9b\xe4\x17\xd3\xa3"\x92,\xd3\xb3!\xe0\xac\xd7\xb40\x12\x01\xadr\ \x08\x81H\x14\xc6\xb4\r\xc30p\xdd&3{D\xd2\xd9\x1c\x9a\xaeS*\x16O(\x03\x04 \ \xa9\xca\xca\xc0\x8f\xf0\xdd\x08QV\xf0Z. `\xa9*\xb6\xdd\x1c\xaf\x97J\xef>U\ \xf7\xfcDp\xda\x1b\x00\xc0\xb6\xef|\xeb#\x92\xa2 H2\x82,c\xa52$\xb3y\xc2\xc0\ \xc7n4X(\x16\xc9e\xd3LOM\xbd\xe0y\xe4\x13E\x18\x04N\x18\x867\xcb\x8a\xb2\x94\ \xe9\xe8]\xb1\x12U\xd3\xe8\xef\xeda\xe5\xf2\xe5d\xb29j\x0b%4M\xe7\x9d\xaf\ \xbb\x96+6m\xe6\xcf^\xfb\x1a\xb6\xf6\xf7\xa1\xa81)O\xd3\xe3\xce(M70\xcc8\xe3\ \xe3\xdb\x0e\xba\xa6\xa3h*V:M*\xdfA\xbdX\xa6:W\xa42=Kefn\x89W%\xc9R\xfc\x92d\ $I\xe2\xec\xd7\n\xf4\x9e\x15\xd1\x9cW\x88<\t\x11\t!\x02IUPU\x15Q\x8eg\x0e\ \xcf\x0c\x87t\x0f\x0c`\xd7\xebT\x17J\xf7\x9d\xe8u\xeb\xa6\xb1*\x08\x03\xc20\ \xc0os\xbe\x92\x96I\x04T\x17Jo;\x15\xf7\xfa\xf9\xe0\xb4\x8e\x01\x16q\xf7\xf7\ \xef\xbc\xe5\xa2\xcb.\xbb\xb1\xa7\xb7os.\x9dban\x96\xa6\xdd@\x91\x15TUF\xd5M\ \xa6&\'q[\xad\x13\x9e\x0e\xf3b\xc0m\xb5\x1e\x12-\xebf\x04\xe1\xd3\x99\x8e\ \x02\xa2(\xd1\x91\xcb\xf2\xea+\xaf\xc0\x95\x15\n\xfd}\xd4K\x0b\x1c9x\x90\x89\ \xf9y.Z\xb7\x16\x01\xd8W\xaea%S1\xa1M7PTe\xa9\xba\x1b\xf8A{\x94i\x0b]\x8b\ \x8d\xc2q[(\x9a\xda\xd6\x15j\xe05\xe3v\x98 \xf0\xb1\xebu4C\xc3\xccG\x88\xa9\ \x06HI\x16&|\x14]@\x90\x0c\x8cd\x86\xc0i\x91\xc8d\xf0\x9a\rj\xa5\x05js\x02\ \x9d}\x03t\x0f\x0c0|\xe0\xc0\xf3\xa2!\xb7\x9a\xcd\x95\xbe\xeb\xa2(*\xbe\x18\ \x12x.\x95z\x1d+\x08\xbf\xe14\x9b\xdbO\xc5}~>\xf8\x8d0\x800\x08\x9c[>\xf2\ \xa1\xb7\xfd\xb7\xffu\xebS\xf3SSX\x89\x04\x99T\x8a\xd0\xf71t\x9d\r\x9b\xce\ \xe1\x8b\x9f\xfe\xf4\x0bZ@\xf9u\xd1j4n3,\xebf+\x99\xda \x8a\x02\xeb\x86V \ \xcb2=\x03&\xc33=l\x90%\xe6\xe7KD\xa2\x88\xd4\xa6)\x0cf\xd2T\xd1HdR\x98\x86\ \x8c.\xc11\xcdl\x080h\x05\x11\xf5\xa6O\xb3\xdeD\xd3u\xc8\xe5b\xb5\x0c\xd7\ \xa3e7\xf0\\\x07\xcf\xf5\xe8\xea1\xe8\x18\x12\x19\x9d\x9c\'ts\x88\xb2J\xc2\ \xe8\xa2^Z\xa0\xd9\xa8Q\xabTh4$\xa4F\x85\x10p\x9c\x16N\xb1\x87\xb3\xb7\x9cG\ \xd3mqx\xdf\xde\xdb~\xe9\x05\x1e\x07EU;%Q$\x14\xa5xL\xaa\xef\x13\x06!\xc9d\ \xf2\xce\xd9\x89\x89\x17\xfd\xe9\x0f\xbf!\x06\x00\xb007\xb7\xfb\'\xdf\xfd\ \xd6\xb6k^\xff{W\xa3ixa\x88\x96HRi6y\xf4\xb1\xc7\x99\x9d\x9b;\xa5\xf3dO&|\ \xcf{\xb7f\x9a\xff\xa1\xa9*\xa6\xa1\xa3\xa8\n\xae-R\xc8\xe5\x19\xab\x94Y\xb5\ f\r\xdf\xbe\xf3N\xfe\xf4mo\'\xa1*\xf4&L\x16T\x9d\x9c*b\x01\x16\xf0\xccJTK\ \x12h$\x14\xfc\x84\x82\xe3G\xb4\\\x1fO\x95\x91R\n\xb2 \x91\x96\x1c\x10\x03\ \x16\x90(\x06.\x96\x9eAH\xca\xb8\xbe\x8f\xefG\xb8-\x15\xcd2(W\xe71\xa2\x10O\ \x92\x99o\xd4i\xce$\x18Z\xb3\x05\xc7i\xb2P\\\xd8379u\xc2;\x80n\x9a/\x0b\xfd\ \x10!\n\xf1\xfc\x80 \x08\x11E\xf1\xe1\xe9\xb1\xb1\xebN\xea\r\xfd\xbf\xc0o\ \x8c\x01\x00$\xd2\x99\xaa\xaa\x1b\xcc\x1f=B\xbe\xb3\x0b\x9f\x10\xbf\xe9\x80i\ \xd2\n\x82\x17-\x93\xf0|\xe1\xb9\xee\xf60\x0c\xe7\x14Y*\x98\xc9$\x02\x02\xf5\ z\x1d\xcds\xe9Z>DJ\x95\xf9\xf7o}\x8b\x0b/\xbf\x92\xadC\x03(\x82\xc4&\xf5\x97\ \x87kz\xfb\x05\x80\xdc\x16\x11e\xb1\x15R\xc5F\xa6A\x8d\x16.>.\xaaf\xe2\xd8\r\ \x16\x8e\x16\x99\x1e\x9b$\x10\xa6q\xa9@KA7tj\x95\x05\xcaSMp\xd7\xd3\xd5\xd9\ \xc1B\xb5\xce\x9e\x1d;>\xfc\x1c\x87\x7fV(\xaa\xb2\xca\xf1\\db1/\x04\xc1i\xd6\ j\xa7\xcd\xe2\x87\xdf\x90 x\x11\x89t\xba`\xd7\xaaX\xf9\x02h:\xae Q\xab\xd7\ \x00p]o\xfcE>\xbd\xe7\x85Z\xa5|\xbb\xaaj\xb1>f\xb5J\xa3\xee\x12y\x0eiM\xe5\ \xd0\xc1\x03\xfc\xd1M\xef\xe1\x0b\xff\xe7S\xfc\xfc\xf0\x11\xec\xa5\xee\x99\ \xe7\x0f\x05\xb0\x90\xc8\x91\xa0\x93.:\x19$\x13v\xa3\x8ayB/\x85\x95\xb7\xc8\ \xf6\x9a\xa8\x86E>3@WG/\xadf\x8b\xe2t\x93\xfat\x0f\x17\xbf\xe4R\x16J%&\xc6\ \xc6\xb6\x8f\x1f>\xfc\xbcR\xcc\xa1\xef\xa7tE&\x14\xe3vP\xaf\xd5\xba\xce\xf7\ \xbcS2\xf0\xfa\xd7\xc5o\x94\x01\x1c\xda\xb7\xef\x1eQV\xf0\x82`I\\!\x91\xc9\ \x02p`\xef\x9e\xed/\xda\x89\xfd\x1a\x98\x19\x1b\xfd\xa0\x95\xb0\xaa\xadf\x93\ f\xabE\xa3QG\xd1t\xdc\xd2\xe8\x12Gv\xddCw\xf7 \x86\xaec\xe8\t\x02\xdf\xe3\ \xe8\xd4!*U\x07O7\x18\x9b\xa9\xb00SC\x08B\x16f\xa6Q#\x17M\x95\t\x15\x1d\x17a\ \xf8\xfe\xbb\xeez\xf7\xc8\xbe\xbd\xa7]\xb0z\xaa\xf0\x1bU\x07\xf8m\x81\xefy\ \xd50\xce\x8b\x13\x85\x11\xa2(\xa0[qC\x8ff\x9a\xf8~\x80 \xc9\xfc\xf8{w\xdcR\ \xab\x96R\xfd+\xfao\xf9\xf9\xa3\x8f\x14J\xc59^\xf6\x8ak\xa8\x15\xea\xa8\xa3#\ \xb8\xe5y\x1e\xdb\xbf\x87\x9d\x8f<\xcc\xdas7\xd3l\xd8D\xbe\x8d(\x0e\xe3\x05.\ \xf5J\x05M3\x10$\x93t\xb6\x07\xc3\niTj\xcc\x8c\x1c\xc1\x14\x024Q@1M\xf2\xcb\ \x86\xe8\xeb\xed\x1d\xff\xffn~\xef\x1b\xe7\xa7\xa6\x9eW\x0f\xf5o:\xce\xec\ \x00/\x12^\xfb\xfa\xeb\xbex\xd1%\x17\xdf\x18\x05!\xaai\x91\xc8\xe5\x91U\rD\ \x11\xcf\x0bx\xf8\xfe;\xa8\xdb\xcdj\xbd\xd1J\x15\xa7\xcax\x9e\x83\x10\x84t\ \x0e,g\xd3\x85\x17b\x88\xd2NQ\x14\x0b\x8aa\xf4Wf\xa79\xbc\x7f\x1f\xe9t\x96\ \xd0\xf7\x98\x9c\x9c\xa4\xd9l\x12\x04!\xba\xa1\x93N\xa5\xc8\xe6r\xf8Q\x84,K\ \xf4-[Nh&\xe9\xed,p\xf9e\x97A\xadDO\xef\x00\xa3\x93\x93s\xefy\xe7;\xdf\xf6\ \xe0}\xf7\xfd\xce\xec\x00g\x0c\xe0E\x82(I\xda\ro~\xf3\xd77\x9d{\xee\xb5\xb9\ \xde>\x90\x14\x04I$\x08\x02\x0e\xee\xdd\xc3l\xa5\xc8\x13\x8f\xed j9\x04^\x8b\ \x81\xa1\x95\x8c\x8d\x8e1\xb0|\x05F2\xc1\xdd\xdf\xfe\xce\xbaF\xb5\xba_\xd5\ \xb4\xd4\xeb\xae\xbf\xfem\x83goz\xdd\xa6s\xce\xb9\xdauZ\xd8\xf5\x1a\x8e\xef\ \x13\x84!\x02\x02\x96\xa1#D\xe0\xf9>\x1b\xce:\x07\xa1e#{.\xd5j\x95\x97^u\x15\ \x8f\xdc\x7f\x1f\x17\\x\x11\x99L\x86\xaa\xe7\xf1\xd6\xdf\xff\xfdw\xff\xf0\ \xce;o}\xb1\xef\xd1\x0b\x813A\xf0\x8b\x84(\x8a\x82\xddO>\xf9\xd5C\x87\x0f\ \xdf3\xb4v\xfd\xd6T6S\x08\xfc\x00\xcf\x0b\xf8\xd6\x17>\xc3\xd8\xe1#\xe0:\xf8\ \xaeCw\xa1\x9b\xbeu\x9b\x99\x18=\x82[\xaf\xd2(W8z\xe8\xd0\x9f\x03\x04A\xe0\ \xec}\xea\xa9G\x1f\xbe\xfb\'\xb7\x1f\x1d9\xbas\xfd\xb9\xe7mJ\xa5s\x85\xa4\ \xaa\x91\xb7\x12\x08\xad\x16\xd5\xf9YTQ@\x17E"\xcf\xc32\x0c\x06\x07\x079p`?\ \xe3\xe3clX\xbf\x81\x03\x07\x0e037OR\xd7y\xe55\xd7\xbc\xe6\xe1\x87\x1f\xde91\ 6\xb6\xff\xc5\xbeO\xa7\x1ag\x0c\xe0EF\xa5T\x1ay\xe4\x81\xfb\xbf\xd9\xa8\xd5J\ GGFv\xed{\xfc\x01\xa1X\xaa\xf4\xf7tw\xb3~\xfdZ\n\xf9<\xefx\xd7{\x98\xac\xd6\ \x91u\x95L\xe431=Eqn\xfe\x17\xe4\x01\xa7\xc7F\xf7?\xb9\xe3\xb1{V\x9fu\xf6\ \x86\\w\xf7r\x10H\x98&\x9e\xe3RZ(!\x89"\x02\x11\xb2\x91\xa0\xdeh0?7K\xb5RA\ \x10%\xb2\xd9\x1c3\xd3S\x8cNL\x90\xd45\xb6l\xbd\xf0\xaa/\x7f\xe1\x0b\xbf0w\ \xf9\xb7\rg\\\xa0\xd3\x08IK\xb9\xa1`F_\xd4\xbbWi=\xcb\x87x\xc3u\xd7q\xfe\xe6\ \xf3\xf8\xe9S\x079\xf8\xc4\xa3ttv\xb0\xf3G\xdb\x18\x9e\x9c\xe2\xc8\xc1\xe1_\ \xaa\xce\xf6\xa6?}\xd7\x87\xafz\xed\xb5\xef\xc8%\x93\x059\n9z`\x1f\x95J\x19E\ \x12Ifs\x0c\x0c.\xc7\xb7k\x8c\x1d\x1d\xc5\t\x02\x92\xe9\x0c\xeb\xd7\xac\xa1\ \xb7\xbf\x0f\xb7\xd5\xc2\xb6m.\xba\xe0\x82\x13V\x80\xfbM\xc5\x99\x1d\xe04\ \x80$I\xda\xa6-\x9b\xae\x97\x9bs\x9f&\n\xac.+@\xeb\x18d\xef\x9e\xbd\x1c84L\ \xae\xab\x8b\xb9\x99I\x14I`z\xe4\x08\xc5r\x15A\x14\x1fl\xda\xf6s2`w?\xfe\xd8\ \xdd?\xf9\xde\x1d\x9fO\x17:\xad\xde\x81\x81\x0b\x12\xa94\x86\xae\xe3\xf9>\ \xb5R\t\xcfsi\xd4\xeb\xd8\x8eC\x88@(\xc9L\x17\x8b\x8c\xce\xceQ\xaa\xd6y\xdf{\ \xff\xf2\xba\xd9\xa9\xa9=\xcf\xf5\xf9\xbf-8c\x00\xa7\x01\xfe\xd3\x9f\xfc\xd1\ \xb7\xd3J\xeb\xbfL\x1c=\xa2eL\x11\x05\x17\xa9U\xc2S2\x08f\x82\xae\xa1\x95\ \xacX\xb9\x8a\xa0Vczf\x1aE\xd7\xb7\x1d\xdc\xb3\xf7\x83\xbf\xeas}\xd7m\x02\x10\xf8>\xba\xaec7\xe3\xb9bG\xc7\xc7\x10$\tEV\x90u\x83\ (\x8a\x18=<\xfc\xf0\xaeG\x1f9-\x1bVN5\xce\x18\xc0)\x84f\x18\x9d\x7f\xfe\x97\ \xef\xb9\x03|\xb2I\x950\xb4\xf1\xbc&\x99L\x1f\xc5\xc9\t\x1a\xa5\tr\x96@j\xe6?\xf1\xd4\xb8@Z\x86M\xe7\xbf\xb4?l\x96\xa9,\xc4\x03\ \xf4<\xc7\xc1\x0f\x02\x820\xd6"\xf5\xc3\x10Q\x82\xb9\xb992\x99\x0c\x13s\xf3\ \xe4\xb29Z\x9eG\xab\xd9t>\xf3\xcf\x1f\xff\x9d\xf2\xfb\x8f\xc7\x994\xe8)\xc4\ \x1b\xde\xf8\xc6o\xf5\xadXy\x8e\xa8\xe8(\x92\xc4\xd4\xe4\x18\xad@#\xf2"v\xde\ s\')-\x9e\x9c\x1dF\xa0\x1b\x06V\xca\xc2J&0-\x13I\x16\xf1\x9b5\x9a\xb52{\xa7\ \xb5Of\xd2\xb9\xab\xd7\x9eu6SG\x0e\x10\x04.s\xc3\xfb\xe3\x1dB5\x19\x9d\xb7\ \x19\x1d;Jo\xd6\xc2q\xdc\xf6xW\x85t:EOg\'\x81\xefQ\xaeV\x99\x9e\x99\xa6\xd1\ \xa8\xd3r}\x04\xc3D\x94d>\xf7\xbf?\xf9\x07#\x07\x0fn\x7fq\xef\xd4\x8b\x873;\ \xc0)\xc2\xaa\xb5koX\xb7q\xe3\xd5r2\xc9T\xa9A\xb9\xd2\xc2\xca\xaedP\xedc\xff\ \xa3w\xa3\x0b\xcd%a+Q\x92Qu\r\xc34\xd1\r\x03I\x91\x89\x02\x07\xa7Y\xe7\xe8\ \xac\xbb\xad\x7fh\xf3\xf5\xa2$1yd\x183\x99 \xf0\x02\x1a\xd5\n\xb5\xc9#L\xef\ \xdfE\xb3^\xc5\xf3<\xce{\xd7\x9f\xd0\xdf\xd3KW\xa1\xc0\xcc\xc48\xbbv\xed\xe2\ \xf0\x91#\x04aH\xa3^\'\xf4\x03\xea\x8d\x06\x92n`\xe6\x0b\xec\xfa\xf9\xe3\xdb\ v=\xf6\xe8\xef\xa4\xeb\xb3\x883\x06p\x8ap\xde\xf9\xe7\xddd\xe6;X\xcc38a\x88&\ IX\x9a\xc8\xce\xbb\xbf\x83%\xc7\xbd\xb9a\x08\x86\xa9c\x98\x06\xbai\xa0h*\x02\ \x11n\xcbf\xb6h\xefq\xf5es\xcb::\xae\xd6U\x95\xf9\x89Q\xb2\x85\x02F2\x87\x9e\ J\xd0h6HdS\x18\xc9$\xab\xd6\xae&\n\x03\xc6\x0e\x1d\xe2\x07w|\x17\xdb\xb6\xf1\ <\x1f\xdb\xb6i6\xe3i/\xb2$\xe3E\x11\x96\xa22|`\xdf\xf6/~\xea\x7f\xbf\xfdE\ \xbdI\xa7\x01\xce\x18\xc0)@\xbeP\xd8\xb2q\xcby\x97\xcb\xc7\xf5\xed\x86D\x04\ \x91\xcf\xf6;\xbe\x88)\xfbK\x8b_\xd64\x0cK\xc7\xb0LtSG\x96%\x02\xcf\xa6Y+S\ \x15\xfa\x0e\r\xad\xdcp\xa3n\x98\x94\xe7g\xd05\x89\x10\tAQ \x02+\x9d\xc2L\ \xa5\t=\x9f\x91\xa7\x9e`\xf6\xf0A\x9a\xcd&v#^\xf4A\x10\x12D\x11\x82$\xa1YIt\ \xddd\xf9\xf2\x15\xb8\x9eW\xfd\xd8\xbb\xde\xf9\xa6\x96m\x9fV\x1a=/\x06\xce\ \x18\xc0)\x80\xae\xeb)7\x12\xe64\xcf/HJ\xac\xd0&\t\xb0c\xfb\x0f\x9c\xb1]\xf7\ i\x92\x18\xfb\xfd\xa2\xac`\x18:\xa6ebZf<\xd77\xf2p\xeaUF\xcb\xca\xf6\xfe\x95\ \x1b\xae\xd5\r\x9dV\xbd\x8a\xaek\xa8f\x9ad&\x8b\x91I\x93HeP5\x9dV\xbd\xc6\ \xbeG\x1e&\x95I\xa3iz<\xf4"\x8a\x10U\r\xc5\xd0\xc9\xa43\xe4\xba\xba\x81\x88|\ W7Q\x04\xff\xf0\x177]wf\xf1\xc78\x13\x04\x9f\x02\xd4\xaa\xd5\x91{\x7f\xb4\ \xed\x9fF\x0e\x1e\xbcG\x94\xa4\x9e|>\xbf\xeaK\xff\xf6/\xef\x9e\xdf\xbd\xfdjE\ \x8c\xe4(\x8agT\x98\x96\x85\x990I\xa4\x12\x98\t\x0bQ\x8c\xf0\x1d\x9b\xca\xc2\ \x82\x13e7\x0b\x89d2\'\x8b\x12n\xab\xce\xd0\xfa\x8d\xacX\xbe\x1cG\x10\xb1Ri\ \x14E#\x91\xce0st\x04Q\x92\x99\x9b\x9b\xc3L$\x914\x9dD\xbe\x83B\xff }+W3\xb8\ f\r\xbe\xe7\xd0\xa8\xd5\xf0}\x9f\x1f\xdd\xf9\x9d[\xef\xff\xf1\x8f~\'\x9a]N\ \x04g\na/\x10\x06;\x8dO\xf7Z\xee; ~\xfaK\xaaFo\x7f\x1f\xb9\xce.\x82\xb0\x89n\ h\x04\xae\x8d]Y\xc0S\xfa\xf0\x8ce(\x92D\xe4;\xf4\xf6us\xdd\xb5o`h\xe5\x10n\ \x00\xff\xbe\xfd^d\xdd@\x88"\xaa\xf3s\x8c\x8f\x1c\xc6H$\xe8\xe8\xe9#S\xe8\ \xa4X,\xeey\xfc\xc1\xfbo\x7f\xf0\xa7w\xdf95zt\xf7K\xae\xbc\xea\xe6d:S\x08\ \xa3\xc8\xf9\xf1\x9d\xdf\xfd\xf0\xefj\xca\xf3\xd9p\xc6\x00^\x00X\x86r\xf9\ \xc6\xae\xf0?D\x81\xb6\xca\xa7H&\x9f\xe3=\x7f\xf3Q\xd4d\x07\xd5\xb9\x11\x1a\ \xb5"\xf5\xca<#c\x13\x04\x99\xb3(\xcf\xcf\x12z-T<.\xb9\xecJ&\xa6\xa6\xe9[1Dg\ >\xc7d\xa9\x86\x9aH\xe26j\xec\xfe\xd9\xc3\xf4\xac\\E\xb9^\x7fx\xec\xf0\xe1m\ \xdf\xfe\xc2gom6\x1ag\xdc\x9b\x13\xc4\x19\x03x\x01\xb0\xa1_\xdb\x9dR\xfc\r\ \x8b\x81\xafn\x18\xfc?\x7f\xf3QP\x93t\xf7-\xa3\xe1\xf9\xb8\xbe\x8f\xeb\xf9\ \xa4\x93I\xc2(\xe4\x89\xc7\x1f\'l\xd5\xb1L\x8bL6\x87`XT\x1d\x17\xdf\xf5\xa86\ \xea\xc3\xf5\xd2\x02O=\xf6\xe8\xeeZ\xa3\xf1\xf0c\x0f>p\x8b\xe7\xba/\xf8\x8c\ \xdd\xdf\x06\x9c\t\x82O1\xba;\xac\x0f\'\x95\xd6\x86\xf6\xc0FDYfp\xc3V\xf6\ \x8c\x159\xff\xecN\xd2ZD\xc6PA\xd0H\xe6{\x08\xc3\x880\x08\xd0\xfdsp\x9c&\xb6\ \xdddtr\n\xaf\xd9"a%PR)>\xf4\x81\xbf\xbenav\xf6\xd7\x92+<\x83\xa7\xe3L\x10|\ \n\xa1\xe9\xea\xaa\xb59\xef\xeb\x82\xc0\x12\xdd!\xd7\xd9\xcb\xea\xf3\xaf\xc1\ \xcc\xe5\x99\xab58:=\x87HDoo?f"\x81 \x88\x84Q\x84,\n,\x14\x8b,\x1f\x1a\xc2\ \x8b"l\xd7G\xd6u~\xf0\xedo~d\xd7\xa3\x8f|\xe5\xc5\xbe\xb6\xdf\x16\x9c\xd9\ \x01N!\x96\xe7\xf87\x81\xf8\xc9\x1fE`\xa53,\xdb\xf8\x12\x8cL\x16A\x14!\x02/\ \x08\xd93:\xc5\xd1\xb9\n\xf9l\x96\x84i\xa0(\n\xbe\xe7!h:\x93s\xf3\xe4\xb2\ \x19\x12\xc9\x04O\x1d:\xec\xdc\xfb\xc3\xbb~\xa7\xe8\xca\xa7\x1ag\x0c\xe0\x14\ \xa13\xab\xdf\x9cV\xbd\xcb#\xda9\x7fIa\xdd\xd6W\x91\xed\x1bB6\x8c\xa5\xf9\ \x06\x00\xc2\xff\xdf\xde\x99F\xc7Q]y\xfc\x7f\xab\xd4\x8bV[\x96l#/\x18\x83\ \x8d\xb1\x8d\x17\x81 6\xde\xaa\xaae\x1d\x1c\x10\x83\x87\x08\x1fH\x98\x81\x9c\ \x81I2\x90\xc9\x042\t\x0cCL\xc8\x02\x0c\x81\x19\xb2\x0c\x01\x86\x13\x07HB\ \x1c\x92\x01O\xc6\xd8\x96\xba\x1a[\xb2YFx\xb7\xf1\x06\xb6b\xbci\xb5\xb5tK\ \xdd\xf5\xee|\xe8\x96,u\xbf\xean\xc9j\x07\x1f\xea\xf7\xad\xdfV\xafn\xbd\xfb\ \xde}\xf7\xdd\xea"\x82\xe2\xc9F[\xb0\x1bm\xc1n\xa0/7\xbaEs\xb9\xdd\x10\xcc\ \xdd?\xff\xb7\'\xf5\x8e\xf6\xf6\x0b\xe6K8\x17\x02\x8e\x02d\x88\xb1\xf9\xf8\ \x1a\x00\xf4\xda\xfen\xaf\x1b.\x8f\x07\xee\x9c\xec\xb3\x85b_\\\xf7\xe4\xe4\ \x81H\xee\x8fPT\x05\x07>\xdc\xb3\xe5w/\xfd\xd7\xfd\xc7\x1a\x8el\xc9x\xc7?c8{\ \x80\x0c0\xf5\x8a\xa9+\xf3\xac\xe6\xe5@t\xf6wy<\xc8\xcd\xcf\x85\x12i\x86\xe8\ :\x05\x97\xdb\x0b\xc5\x9d\x0b"B\x96\xdb\x03oN\x8e\xb4\x1dEQ\xc1@\xf7S\x0f?\ \xb8\xb8\xd9\xd9\xf4f\x04g\x05\xc8\x00\xa3F\x8f\xb9\xdf\xd5\xda\x82`{\x1b@\n\ \xbc9^\xe4\xc7N{\x89\xbbq\xfa\xc8f\x84:;\xd0\xaa\\\x16\xa0\xecQGK&L\x98y\xc9\ \xe4\xc9\xa5\xde\xdc<\x08K@\x88\xe8\x97\xdc\xbb{z\xce\xbc\xf8\xccSwt\\\xc0\ \x1f\x01\xf9\xb4\xe3(@\x06\xc8r\xbb\\\x05\x93f#\xb4\xa7\x0e\xd99\xd9\xc8\xcd\ \xcbE\xde\x88|\xb8\xbd\x1e\xa8*!\xd4\xde\x8e\x86\x86\xe3{\xd6\xbf\xbbS\x07b\ \xff\x13z\xeb\x17BnO6\xf2\nF\xa0x\xfc\x04\x14\x8e\x1e\x8b\xa7\x1fy\xe8\xd6\ \xe3G\x8f~f\xfe\xa8\xf6/\xc1\x05\xf5\x91\xbc\x0b\x85\xa6SM\xab\xdb\x82\x8c1\ \x93\xaf@Nn6\xb2s\xb3\xe1\xcd\xf6"+K\x01[=\x08u\x9e\xc1\xde\xc3]}\x9f\r\x12\ \x96\xd5\xbd}\xd7\x9e\x87\\\x1e/\xbc\xf9\xf9 \x00\x87\xf6\xeejl\n\xf2=`\x11Fw\xc7i\x1c<\xdc\xb8n\xe7\xa1\x8e\x7f\xee_\xa7\xe9\xd4\xa9\xda\ \xb6\xf63[\xa1(]]\xdd\xddG\xfdo\xad\xbd\xb7\xe5\x02\xfa\xf8\xf7\x85\x8a\x13\ \n\x91!r\x0b\nf^y\xf5U\xbf\x99~U\xd9\xacE7\xde\x8c\x13\x87\xf7cW`\r\xc2B\xc1\ \x9b\xab\xff4\xb6\'\x14r\xe2u>\x058{\x80\x0c\xd1y\xe6\xcc\xeew\xcd\xc0\xec\ \xce\xf6\xce\x9b\xc2\x16k\xc1\xae\x8e\xf9{w\x1e\xd9\xdc\xf8\xc9\'k\x9c\xc1\ \xef\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0p\xdeq\xdc\xa0\ \xe7\tM\xd3\xa6\x10)\x07$Y5\xa6\xe9/?\xef\x1d\xba@\x19n9:nP\x00\xba\xae\xbf\ \x02\xd0\x17\xd3,\xde\x05p3\xa0\xec \xe2\xea\x9e\x9e\x9eU\xb5\xb5\xb5\xad\ \xa9*)\x8aR\xca\x9c\x98N\x84m\x83\xec\xeeg\x9a\xe1\x96cF\x14\xc00\x8cI\x00\ \xaee\xe62"\xba\x98\x19\xa3\x01\x8c\x04\x00ft\x11\xa1\x9d\x19\xfb\x01\xfaPU\ \xf1\xc1\xa2E\x8b\xeaW\xae\\)2\xd1\x97\xf4\xa0\xd2A\x14\xce\x01(\x07\xe0\x89\ \xcc\xb8\xc1\xe5r?f\x18\xc67\xfd~\xff\x0b\xc9*1\xf3\\\xd9\x82+\x04}\xda\x15\ \x80t\xddh\x050".\xbd\xd14\xfdc\xcewg\x86[\x8e\xc3\xa6\x00\x8b\x17WLV\xd5\ \xf0\x97\x00Z\xc1\x8c\x99\xd1T\x023\xe0\xc9\x0b\xc3\x9d\xd7\x83p0\x0b=\x1dn\ \x08\x8b@\x84\xcf\x03\x0c!\x80\xb7\xdf\xde\xd8\xac\xebz5\x80\x97\x8b\x8b\x8b\ \xdfZ\xbdz\xb55\\\xfdJ\xc5\xfc\xf9\xf3\xb3\x01L;\x87&\xf2\x98\xf1\xbc\xae\ \xeb\xc5\xa6i\xfe\xc8\xae\x103\x95\xcaC\xfe\xadO\xb5\x02\xf8|\xbe\xa9Bp\xfc\ \xe0\x07@\x1f\x9c\xff\xde\x0c\xbf\x1c\xcfY\x01\x16/.\x9f\xa5\xaa\xe2;@d\x05@\ \t\xb1E\xd9\x85!,\xfd\xde\xe6\xbe\xdf\x87k\xc7c\xc7k\t\xe3\xad\x08\xa0\x15\ \x00V455\x1f\xd3u\xdf/\xc2\xe1\xee\x9f\xa4cZ\x9c+\xd9\xd9\xd9\xb3\x98\x87#&\ \x8a\xbe\xafi\xda\xda@ }\x10D4\x17HX\xbbC\x00><\xf7kg\x0e!D\x99|\xab(\xea\ \xcf{g0\xfcr\x1c\xb2\x02,X\xb0 \xdf\xe3\xf1<\xc6,\xfe\xa1\x7f;\xee\x9c\x08z\ \xba\xd2o6\xcb\x1bA\xa4[\x05\xb8O\xc8\xe3\x00~\xd4\xe5r\xdfo\x18\xc63\xc1`\ \xf0\x89-[\xb6\x04\x87\xda\xcfT\x08A\xa5D\x12\xa3\x12h\x05\xf8\x0f\xfd~{\x01\ e\x1a\xc0e6M)D\xf4\r\x00w\xc6gTTT\x8c\t\x87#%\x92:\xbb\x03\x81@d\xd0\x9d>\ \xaf\x90\xdd\xfd\x9e\xf7\x15 \x13r\x1c\x92\x02h\x9a6\x8fHy\x8d\x19\x17\xf7O\ \xbfx\xdeq\\y\xcb~l}e\x06N\xec\x18\x8d\xb13\x9b0\xe1\xda\x13\x03\xea\x8e\x99\ \xde\x82)\xbe\x064\xbc[\x02\x08\xc2\xfc{\xb7"\xd8\xeaE\xfd\xaa\x19\xb0z\x06L\ \xc4\x05\xcc\xf8\xae\xd7\x9b}\x97\xae\xeb_7M\xf3\x8d\xa1\xf45\x15D\xa2T6\xc3\ \x11\xa1\xce\xef7\xff.>\xdd0\x8ce\xccX\x03i$-\xf9d\xd7\x08\x87\xc3\xd2k\x00\ \xfc\xa96\x7f\x00\x80\x19e2\x93\xc3\xb2\\\xe7]\x012!\xc7A+\x80a\x18_e\xc6\ \x7f\x00p\xf5O\x9fp\xcd\t\xcc\xb9}/\x88\x80\xb2\xbbv\xa3\xfdd\x0e\n\xc6u$\ \xd4\xcf)\nb\xc6\xcd\x07q\xf9\xf5\x1f#t\xc6\x83\xbc1]\x181\xb1\x1de_\xde\x85\ \xf7~1\x1b\xcc\t7x1@\xff\xad\xeb\xc6\xcb\xaa\xaa\xdcW]]}z\xb0}N\x0e\xcd\x95\ \xa52\xf3\x0eY\xba\xdf\xef_\xab\xeb\xfaom\xbcF\x17\x01}\x7f\xfb\x7f\xf6\nD6\ \x9e\x8b\xe8\xc6\xad\xaa\xaaJmnn\xfek\x00\xb73\xa3\x14@\t\x80\x0e\x80?\x00\ \xf0\x9ci\x9a\xaf\xdb\xf5\xbe\xb2\xb22\xa7\xbd=x\x9d\xa2\x882f\x9a\x0e\xf0e\ \xb1~\x14\x03\xc8F\xf49\x85\x00\x9c\x02\xb0\x0f\xe0\x80\xaa\xaa\xafVWW7\xd8\ \xb5\xa9\xeb\xc6A\x00\x97\xd9\xe5\x03\x80\xaaF>\xd2u#\xfe\x8e\x8e\x9bf\xcd8\ \xbb:>\x9f\xaf\xc8\xb2x9\x11t"\xccb\xc6\x04\x00\xf9\x00,\x80Z\x00>\xc0\x8c\ \xf7\x00e\x1d\x10\t\xc4\xcf\xea\x99\x90\xe3\xa0^\x88\xd1u\xfdQf\xfc\x1cq\x83\ \x9f\x08\xb8T\xfb3zg\nR\x85t\xf0\xf7\'\xcbk!oLW\xdf\xef13Z0\xea\xd2\xa4c\xfb\ \x0e\xcb\x12\xdb\x0c\xc3\xb8j0}NFUU\x95\n`\xb6,\x8fY\x91*@\x0c\xbb\xf7s\x05$\ \x06j\xd4s!),\x94m\xba\xae_\xdd\xdc\xdc\xfc>3~\xc7\x8c\x9b\x01L\x02\xe0\x060\ \n\xa0r\x80~o\x18\xc6\xbf\xdbu\xa4\xb3\xb3\xf3\x1e"\xb1\x81\x19?\x02\xf8o\ \x00,@t\xf0\x8e\x88\xb5C\x88*\xc2$\x00\x15\x00\xfd\xd0\xb2\xc4A]\xf7=$ko\xd9\ \xb2e\x05\x00.\xb5\xbb^\n\xa4\xab\x82\xa6i\xc5\xba\xee\xfb\x99\x10|\x94\x08/\ :@g\x01(Dt\x12\xf6\x00\\\x02`1\x11\x1e \x12\x1b\x00\xf5\xc6\xf8v2!\xc7\xb4\ \x15\xc00\x8c\xef\x03\xf4\x88,\x8f\x19x\xf7\xb99h?\x91\x9b\x98\'\x08M\x07\n\ \xd1\xf0N\tN\xec\x18\x8d\x9eN\x97\xa4>a\xeb\xcb\xd3\xd1|hd\xaan\\\xc2\x8c:M\ \xf3})\xdd~\'\xa3\xa5\xa5e\x1a\xa2\x83#\x01!(\x99\x02\xe4\xc9\x93\xf9\xa4<]\ \xeafe@\\\x01Pml\xb6\xb2\x85\x19\xff\xe8\xf3\xf9\x96\xda\xe4]\x9b\xac\xae\r.\ \x80\x7f\xa0\xeb\xbeo\xc6g\xf4\xf4\xf4\xcc\xc1\xd0\x0fH\x13\x14@\xd3\xca\xcb\ \x89\x94=\x00\x7f\r\x807\xdd\x86\x14\x85\xb7&\xa6\x0e\xbf\x1c\xd3R\x80\x98\ \xd9\xf3/\xc9\xcat\xb7\xbb\x11l\x19x\x7f\xcd\x07G\xc2\xff\xd8\xc2\xb2\xc4dI\xd6\x9e\xde\xc1\x1c\xf3\xcc\xdd.)s\xcc\xe3\ \xf1\xcc\x93\xcf\x88\xca\x12\x9b\x01$\xedGeeeNGG\xe7TI\xd6G\x81@ \xe9\x11?Q\ \xc2{\x03\xb1tJoc(\xad;\xfcr\xecEb\x02\xd1\xc2\xa1t\xd2\x9d\x17\x86\'/< m\ \xf4\xb4V\xf8\x1e\xd9\x82\x96C#\xd1\xd9\x94\rWv\x04\xc5S[\xe1\x8e+\xc7\x00\ \xf2\xc6v\xe2\xcc\xb1\xc4\x93\xe4!\xc0B\xe0\xf0\xca\x95+\x15\xbb\x97lb\xfe\ \xf3Kl\xea\x0fc\x90\x97\xdcs\xa1\xaa\xaa\xf4\xc1Y\x965\x17H<\x99\xe8?P\x99\ \xf9:\xc8\x9f\xdb[\xb2\xc1\x1f{\xdfAzrn7\x80\xba\xba\xbafB\xba?L\xe7\xa5\x13\ \n\xcaMK\xa1\xa7\xaek\xdb\xe6\xb0\xcb\xb1\x97\x84\x9bt\xbb]w3c\xed\xa0\xbaG\ \xc0\xbc\xaflG\xc1\xf8\xc4\xc9AQ\x19\xc5\x97\xb7b\xd2u\xc70\xae\xf4T\xc2\xe0\ \x8f\xd6g\\}\xd7n\x14^r\xce\x1f:<\xc8\xacT\x04\x02\xfe\x07\x93\xbda\xe6\xf1x\ \xecf\x7f\xf6x<\xc3\x19\xa1)\xbb\xce\xe9\xea\xea\xea\x8f%\xe9 \x92\xbf\x99\ \xd6\x7f\xa0\nAv\xc1fR\x8f\x96\xc7\x93\xfdt,\xce&\x01\xbb\x88N\xcb\xb2\xdd[\ \xa4\x11\x88\xc86\'\xe8\xb4\xd00\x8c\xbb\xedji\x9aV\xaci\x86\xd4\x99\x80\x0c\ \xc8\xb1\x97\x84\x99d\xdd\xbau-\x00n\xd0u\xfd>\x80~\x00\xdb\xb8\x97\xfe\r\ \x03\x1f\xbd=\x01\xa5w\xec\x89\xb9\xde\x08\x9d\x8d\xd9\x03\x82\xdd\xe2\xb1\ \xc2*Bg\xdc\xc8-\x8a\x86\xfa7\xed+D\xdb\x91\x14g\x07\xf64\x11\xe1\x89\xa2\ \xa2\xa2g\xe5\xbe\xf8\x81DC \xa4n\xc1CI6U\x83\xa2\xbc\xbc\xfcb\xcb\x12\xa3$Y\ \xdb`\xb3\xfb\xb6;\xecQ\x94\xb3\'\xacD"h\x13\x12|\xa3a\x18w\t!^\x0e\x04\x02\ \x91\xe8\x8bJ\xfc]\x80o\xb1\xe9b\xdb\xc6\x8d\xeb\xa5\x03\x08`i|\x14\xc0U\x86\ a\xfc\x1f3\xefaVc\x87o\x91\xb6@ \xb0\xab_\x99?\x01t\x9f\xb46\xe3yM3*\x15\x05\ \x7f$\xa2\xa3\xcc\xece\xe6\xc9\xcc\xa4\x11\xe1\x06\x80L\x00O\xf4\xaf\x93)9\ \xf6b\xe7od\xd34\x9f5\x0c\xe3u\x00O1c\x05R\x04H\x1d}\xff"\xa8Y\x02WV\xed\xc7\ \xd6\x97g\xe0\xd8\xb6\xd1\x187\xb7\x11\x13\xae91\xe0\x948\xd8\xea\xc5\x91\ \xbaqhxg\x1c\xd8"\xcc\xbfo+\xba\x9a\xbd\xf8`\xd5LY(t*>\x01\xf8\xc7.\x97\xeb\ \xf9\xf5\xeb\xd7w\xa6_\xcd\xf6\x1d\xe0a3\x7f,\xcb\xb2\xb1[\xe5vw\x14y\xb0W(\ \x14\xea\xbf*\xd9yaTf\xbcD\xa4<\x17\rS\x16\xbd\xa7\xf7\x0c\xe9\xb3K\x16CO\'l\ \xc6V~4\x1a\x98@\x14]`\x89\x94_\x02\xb8\xab\xb7\x80i\x9a\xeb5\xcdx\x9fH\x1a\ \xa3\x04"T2\xa3\x92\xfb<\x10\xd4g\xac\xc8f\xe8\x0c\xca\x11@\x8a\x93`\xbf\xdf\ \xff\t\x80\xdbt]\x7f\x1cP\x1e\x05\xf8&$Q\x84#[\xc6\xe1x\xbf\x88\xcfc[\xc7\ \xa0\xf5p\xc1\x00\x058\xb9\xbb\x08\xfb\xd7]\xd2\xf7\xbb\xf6\x99\xab\xe2\xdf\ \x08K\x85\x00h\x033^loo{\xa3\xbe\xbe>\xd1\xa6J\x8d]\x08D2\xaf\xc8\xa0`\xa6\ \xb9\xb28\xa3x7\\/\xcb\x96-\xf3\x84B\xdd\t\xbek"\x1c\xac\xab\xabk\xef\xfdm\ \x9a\xe6v]7\xea\x00y<\x12\x06\x86\xad\x9cb\xc6\xaf\x89 \xf1\xea\x91\xed\xbd\ \xba\xdd\xea\xa6p8\xd2\x02@6\xf3\xc6\x13?i\xb0\xa2\xe06f\xd4"\xfa^\xc2 H\xdc\ cdJ\x8e\xbd\xa4\x15\rj\x9a\xe6v\xd3\xac\xb9\x99Y\xcc\x06\xf8gHb\x0b\xca\xc2\ \x9d\x93\x11\te\xa53\xf8\x19@=3\x1e&\xc2\xa5\xa6Ys} P\xf3\xfb\xa1\x0c\xfee\ \xcb\x96y\x10\xf5+\xcb\x18\xb6\x15\xc0\xce\x0e\xb5,\xf9\xc6-\x14\n]\t\xc9\ \x84$\x9b\xe9TU\xb9\x1d@\x8ao\x07p-\x11\xae%b\xa9I\x98L\xd9\xa3\xab)\xdf\x83\ \xe8yG\xf2\xab0\'\xc8\xcc\xef\xf7\x1f"B\x19\x11$\xaeW{\x88D\x82\x02dR\x8e\ \x90\x15LF\xcc\xd6\xbb\xb7\xa2\xa2\xe2\xdb==\xd6\x17\x00\xfe+"T\x00\xb0u\xdf\ \x04\xdb\xe7\xde3\x13\xab\xa7\xa3NJ\xc4\ D\x04\x00\x00H5\x9e\xa9\x1a\xdc[\xf8\x7f\x1b\x8c\x7f\xaf\r\xd6\\\t\xee\r\xc8\ \x1b\xaaa\x08\xbe\x97 \xb0\xfd\x07\x00\x80\x03\xa0\xa1\n1\xf4/\xf8W\x18\x90a\ \xafVx0@\xe9u\xbe\xf6\xb9;\x1f]\x11\x98\xa7F\xf7\x12\xc4\x96T\xc5]\x02#s\xef\ \xe4R\xd4\xd3gp\xb2M!p\x07\x13\xc9{z\xb2g\x8b\xef\xe4C\xa2\xa4\x13\xc6\xd3S\ \xf5\x81\x99\xcf\x953\xd4\x1c\xbe\xe3.\xf9\xa8\x88/I\x91\xae+\xbfs\xeb\xda\ \xe0\xe5\xda`\x97\xf6\xf036r4\xde\x98\xc8\x7fi\x14\x8c\xf4\xd6)zb\x94\x19\ \xe0\xf13qS:\xcb\xfaf\x87>R\x0f?\x8a\xabn\xe6R\x08\x06\x15-\xe6\x07\xf2\x1b$\ R\xc1\xb8\xe6\xff\xd7\x1c\xa9M\xbc\xa5\xf9\x8b#\x93~\x8e\x9e\xe0\x83\xa8\xe2\ +\x12F\xfb\x974\xde*`\x87c\xcbh5\x15\x16\xa4\x0e\x0eo\xca`\x19h&\xda\x969\ \x90%C$M\x85\xb0d\x8a~\xe0\xa4\x0b\xef\r\xa6\xf0\xe2D-\x9b_\xf4\x04\xf2\x19O\ \xe4Y\x19=\x14\x00\xe0g\xad/\x86\x10r\xb1US\xc3\xb5\xcb\xce\xfd\xdf\xe0\xce?\ \x9bY\x0c\xfeD\xe2\xa12v\xb3\x8c\x1c.\xbe\xdc\xd4$\xf1N!\x02\x06a\x89\xef2\ \x9c\xb4\xd8\xc7\n\xa7\xc4#\x08e\xb4F\x94\xdb\x88\x8e\xb8\x8dr\xda\x01\xa2|p\ W\xfaeA\xb5j\x9e-Zb\xcc8YE\x05C\xa44\x8e\x95\x98\x9eP>\xc7\xe9\x86-\x03\x97\ \xfe+\xa7I\xa1\xc7\xb0O\xa4JPM\xc2\x97\xec;\x7f\x8f\xbf\x8dz-5\x85&\x05\'\ \xf6\x84`\x9eh\xcb\xf7|<\x94c\xfc\xa1\xf7;-^\xf8\x05\xd4\xe9U\xb6\x05\xc1\ \xc5\xda\x9e\xd2\xa3\xb0BD\nO,\t;@~\xfa\x00e\x06\xdc\xa3\xf8\x02\x0e\xa5\x84\ U\xfc\xab%{\xb8\xd6_\xbf\x9e\xf4\xa8\xbe\xb3\xf6PO\xa8\xef\xa4\xa5\x9a\x1e!\ \xc4\x0b\xabz\x9b\x9f\xe8\xa3\xe7_D>}\xaeW\xbd\xf0\xfe\xea\xe6\xa7=e\x9b\x19\ ]\xb4\x90\r\xc3\xfb\x0b\xf5\xc1\xcaM\x95Vt!\xe97s\xac\x82\xd0\xf7c\xcd\x16\n\ ?B\xa0D\x87\x0b\x82C\x0ckP\x1dY]-\x00\xea\xed(\x82\x1f\xcb\xebiBd\xa3F\x1c\ \x99\x03-T\x0e\x8cD\x9c\xe9\x86>\xd2\xc1iM,\xf8\x14\x06\xb7&\x9d0\xe9.\x9c\ \xe6\x94\x9ed\x9cx2{\x18\x8b\x86=\x94\xb6\xb6v\xa9\x99/\x9c!bD\x02\xa4\xacE\ \xf9\xa5t\xf6\xdc\xfdA\x92\xa3\xd0\xad\xab\xcc\xeb\xee\x9d\xe6\x13\xed\x1c\ \xfa:\xc0G\xe3\x1a\xcb\xf2w/\xb6\'}\xb8\xf3`\xde`!\x8eH\x18\xaa\xbb\xaaK2c\ \xbc\xdc\xf4<\xb6\xca\xb8r\xebZkPV\x1d\x8e\xcb0\xa1\x0c\x0f0\xe1\x02\xfb\x9b\ .\xc8\x84\xc7r\'I\x10\xda~\',Y\xdd\xd6\xe9!*\x96:\x045\x06Mz\xfbo\xe7\x1a\ \xb1\xe2\xa9\xfc:\xc9\xb2\xfa\xa0\x07*8_\x9c\x05A`\x1c\xe0!\x94\x17\xf0\x9b\ \x13\xa2so\xe8+Z\xb9\xbc\xb5\xb5\xe1Z]\xaf\xb5\x7f\xcf!\xdb\x9aK)\xf0r\xcf\ \xcf\x99R\x90\th\xe1w\xc9K\xa5\xbc\x88\xff#\xb5\x04\xff\x1b?\x99,\x16X\xabx\ \xe2u\xf3\xab\x7f\x00q\x15x\x8e\x0b\xd0[Xa\x15\xf8\x00\x9c\xc2\xeb\x04oyG+;a\ P\xf1N\xb4\x1b\xab\xaa2T\x06\xc8\xf3n\xb0c_\xb2.;\x92\xf5,\xa9\xa7)hz\x0f3&\ \x9c\x8ch\xaf\xcc\x8aH+,v6\xc1Z\xc5\x16]\xd7?\x8cTk"\xa30\x82*\xa9>\xe5\xf9\ \x04\x98\xff\xec?\x19\xc8\x0e\x1fc\x9b\x96\xc0\x0e\xa0\x93\x10\x87\x9b\xe4,\ \x0c:\x9a(|Z\xc6\x17-@|y\xd8\xc15\xe6\xf3\x8b\xb1\xda\x95H\x13\x96;.cV\x11\ \xba\x1e\xf9\xd0\xde@<\xec\xd1\xd6C\xc3w\xb5\xd1n\xab3\xbe\xacLo6\xd9\xf0\ \xe4-r\xb1\xab\xef6\xe3\xe7\t\\\xd1\xa6h\xc8\xdbaZ\xeb\xa5\xf2\xc8\xc6-<\xcf\ \xdf\xe5\xc5\x1a_\x10\xdc\xf6K+I\x82\x02;\x99\x07\xb7\n\xb5\xbc\xc2S\xef\xa7\ \xbb\xe5\xc8FG6\x07h2~\xbc\x1ca |=\xacU4\xdc\x9c-\x1fo$\xbcN\xb4\x8e\x16\xb6\ \xc0\x01<|\xf12\xc1c\x05\xd7\xbc\xf8\x86\xd95\xd0\xe5\xb2\xd5\xc8\x91\x83\ \xe4\xeb\x87\xf7q\x08\xddN\xf2@l\xf2kGK\xe4\xb2:\xf9P\x844+S\x9c\r\x18\xba\ \x94\xa9\xdah\x83\x97\xd2\xbaM\xcc\x99b\xdeD\xdbp\x0b\x0f.q\xbc\xe6\x1c\x8f\ \xeeIr\xfa\xc0\x01\x15\xb7\xe8\xfd\xbb_\xd9t]\x9a\xec{\xe3:\xd0YN\xe9z\xb3>x\ \x81B\\K\xec\n\x14x\xc3\x161q\xefn\xd8B\xbd\xf7\xadWB\xda;\x1d<\xd6\xee\x90&\ \x1f\xcd\xbcK^(fp\xf4N\x87\xa2\xb5\xe2\xad\xc0\xc4\x06\x00z+\x16\x8f\xb1Y!\ \xcf\xc7L\xd6\xea#w\xdd\xe4\xb7@\xd5\xfc\xd57-\xdb\xf5\xdc\x8d\xdb\xfd\xc1\ \xb6.T\x81\x03\x7f\x06\x9a\xeeR#$or\xefs\xd4\x0e \x1d\x96N\x96\x98\x009\xb3\ \x17\xdc\x15\xedB\x83\xc1\x8bl\xe4&+6\xa2\xf2\xaa\xe2\x0f.\xbd.w\xe8\xfb\x9b\ \x9d\xa2\x1a\xb7@\x9e\x87\xbc\xf4\xbe\x12\xd8\\\x95H\x1dL\xf7\xaaX:+B\xf4\ \xcdAXn\xe1\xfeU\x8b9\xdb:sO\x9f\xbd\xfc\xc2\xeb4G\x17\x14\x95a\x1c\xb7i\xd7\ \xdd\xace\xa8\xe3xY \xb2\x94\xd9\x9at\x84A\xe6\xc4\x14\xea\xa4\xd6\xb1cZ\xcb\ e\xaa\x87sq\xf2Zq~\xb1\xb1r\xb9\x8f\x91Q)\x93\x97\xa5\xe3lqLhs\xe1\xdd%\x1d\ \xb1.v\xf7Y\xed\xf5\xbf\r\x91\x04L\xc0\x17F\xb2K\xd1E\xdd\xbc\xcb?\xd9\xfd\ \x9d\xfb\xaa\x8d\x1c\xa0\x99\x86\xedi\x9e\xa3\xef\xdeS^s\xd7\xe8\x11\xf7kW\ \x8d\xa3\xa3\xf8\xf0M\xec\xfe\xfc\xd2\xe1\\\xbfM\xc2\xe9:1\x00\x10\xb3q\x1aH\ \x9fN\xb1ky\x8f\xc5\xc9\xd7/H\x7f.\xe4\xe6y\xe7\xb5\xe7X\xaawr\xe1;\xb5\x0f\ \x16\xe1\x9b7\xa35\x8d\xc8\xdc\xf2\xd8X\x0e2k\xec\x0f\x13\xfa(\xf0\xae\x11 B\ "\x04\x9d\xe9u"\xfb\xce\xa6#\xf30\xf8\xa4\x87\x08\x85\xdedO\xde|\x0f"A\xe4\ \xd0S\x02\x88\xad\xc1\xc7|0]\xab\x13gB\x00\xc9\xed\xf0\x9c4u\x14\x9fa\x8d\ \xd1\x9c\x8b\xa4a\x1f\xbd\xe7N\x80\xb9H\xf7"u\xec\xba]\x13f\xff\xf6\r\x06\ \x13\xdaG\xd5\xee\x86\x90x\x9eS!\xeb\xe1p\xf9G)\xd4n0\xce\xc6\n\x849$\x16\ \xfa[\xf3\xab\xd2\xe9 w\xab\xa0\xcc\xac\xee\xa3\x85\x90\x9d\xab+I\xfd\x00\ \xe9\xddE@\xeaCJ\xf9\xf7wL7\x7fQ\x8f\x9a\\\x7f\x8b\xfd<\x92\xb5\x17\xcb}*,b-\ hHI\xa2 \xb9\xf3@\xf8"\xe7\x13F\xe4\x98\x96\x00X\xf6k\x9c\xbe\x96\xd2\x82. \ \x8coT@1pAF\xaa\xd6\\\xc2V7\xf8pu\xf5\xf9\r\n\x8f\xaa\xff\x00A\nmHB\xe1*\xbe\ \xc6\x0c\xaf5@\x0e\xbf\x12+\xb6s\xccN\x91\xb4\x11\xec\x9fr~\xa9f`\xf3\x9cs12\ \xd4D2\xb03\x8f\x9e\xb1\xae6\x05_\x93\xedW$\'[I\xc6\xf6\x91=<7\x884\xcd\xc1\ \x02\xfd\xd1]^4\xe3\xbc?\xb3\x8d\x1aG\x8f\x14\xf4\x87*\xc26\xcf\xc3\xac\x7fy\ \x9dV\x8a\x8d\xad\x04\x08\xbeT\x0c\xe7\x1d\xf7S\xb7\xb5\x07\xb5;\x0c6\xbb\ \x8a\xb8\x89\xf8\xb2\xbe\xe3\xfc\xc7l}\xb7\x1b\xfe\x9b4\x9a\x0f\x06i\x03\x88\ \x0fS\x12\x96\x98\xd5\x94\xcaHF\xb1\xca\xf9\xd9\xbc\xfa\x1b\xa0\xad\xa3\r\ \xfdA%\x84\xed\x87\xe7\xe1\xbe\x8d\xcd\xdan`f@\xdf\r\xf3,\xdce\xd9 \xd3\x8d\ \xe6\xbe\xcd\x9aT\xf8>\x1fMs\xa0[`\xd1\x1b~\xb39\x829B>\xb7\x7fZ\xa0:\x8e\ \xc1\x14\xd2\x06\xa1\x82H\x93\x906_\xf7\xf9\xb3\x84\xcc\xe3R\x87\xc0O\x9f\ \xaa\x97\xa0\xde3\xb8VN\xa2\xf1\xf2\x17u\xd2*\xd2E\xe8\xe2\xc0\xd1\\\xb0\xe4\ \xe0\x9b\xdeR\xdf\xd0\xef\x14U\xc65\xa5\xf7 \xbf}E\x95\xfe"}\xa9?X.\xee\x85\ \x1a\xcb\xcd\n\xd5\xd4\x9dc\xff\xc1u\xe7\x06\x83\xfbm\x7f\x94y\x83\x90\xddh{\ E\'g\xdd\xe9\x9f\x1a\x94\x0ey\xb9\xcc_\xfeXr+W>\xbe\x91dV\x135\xb7\x1f\x10\ \xdbO0h)\xac\\+\x9b+{\x9c\x13io\x93\xf3\x94ak\x11\n(\xdcj\x0e\xdc\x0c\x15\ \x0e:f\xb6\xce\x7fGIb\x01@H`\xc1\xd3\xc7pYr5\xbd\x87vo]\xa8\x90HdNA\xc1\x17\ \xf5\x81\x16\xd2\x9a\xf3\x8e\xabn\xac\x82\xf4U\'\xfaQ\xe9\xb6:~\x83\xf3\x13\ \x9f\xe7\xb8v$>\xd1\x00p\xe5\x16\x86\x137<\xcdZ8\x1f\x05y\xc0\x96\x14\x94\ \x9fDn\x99\xa2\x12\xe2\x1b\x9aZ~\xbe\xb6\x8f\xac\xf0\xf8\x1b\xed0\x9eU\x9a"\ \xcc\x91=\xcd\x99=\x0eYD\x1c\x9dr\xc1\xac0\x01\xf2\x81W\x0b\x03\x13\x07?\xfd\ \xb7pd\x0e\xec\x8as\xf8\x00O\xd3\xbc\x03\xdb\xb9\xff\xe0\x05m\xc6\xa0\xba\ \xf9i\xb5rr\n\xe0\x9f#\x8a\x11\x81B+\xdf\x8f}\xdf\xa0\x89/\xd0Q\xb2k\xe7\xde\ \xec\x15\xce\x90Y\x1f\xfb\t\xc1*\x88\x8d\x18\xf1\x04\x0f\xc7D\xb8\x9b\xce\ \xf9\xe3\x8b\xa2d\xe5\x85\x07\xfb\x10\xda\xb6<\xe2\xcdc\xbdCP\xa4uXE\xb6\x17\ 6\x13\x8f%\xc45\xf41:\x93}\x83u\xce<\xccB*\xc6B\x91\x00!R\x82\xba\x9a\x99\ \x15o\x87\xa6\x9d\xb9/]\xd2\x0c*\xe3y\xa2/\xbf&\\\xc7&\x14s?8\x02]\xf6\'\xbb\ \xb4\xc5}\xfd\xaaQ\x10tY\xfc\xde\xdd\xd9zM\x13\xd3\xe6]\xd1xJH\x9dW\x81\x10{\ .\xc3H\x90\xf4OYzH\xb4\xdd-F?\xc7uD\xfc\x94\x17\x97\x1c\xe7\x02\x02\xb8\xcf\ \\3\xbf\xd5-\xb4\xe6B\xd9\xe6B;oF\x0b\xc0\x14\x11\x837\xfc\xde\x1fp]\x8cG\ \x94u\x1e\xff\xb9\x15\x15\x13\xc3\x19o\x85K,8\xdd\xd2?1\t9\xb6\xdeS\x03\xe1R\ +\x1b\x8cl\xc6\xea\x0c}\x80\x96r\x03k\xe5\xedq\xad|\xdf\xde\x90\xb8\x03\xf4\ \xf2\x8f\xbc.\x03\x8f\x97\xb0\x05\xcaR\xe9n\x0c\xfd\xe9^6\xabR$\xeb0\xe7\xdc\ \x19I\xd6\xc8\xb4\x91\x91\x8c\xddf0\'\x1c\x97l\xfa\x1c\x8a|gi\xf8\x90\xf6~\ \xd1\xc4\xf3\xdekPXrG\x81\xc0!\xfa\xf8=\xb9.\xf6\x97Ir\x98t\x13Q\xbbC\x98(id\ Z\x92\xdc$O\xc3YP\xc3\xa7K\xa5\xcdn\x97}.\x86\x0f\x00\xecb\xc0\x9e\x8f\xc3Ma\ \xf7p\x08\xa1?@\x80\xe7\x06\xae\xdef0h\xae\xf8^\xee/-\xb2\xa9\x01\x11@k\xad\ \xe8F(\xd5`\xe7\xc9B\xd0eA\x97\x84\xe4(\x9eF4\x0b\x9aV\xcc\xef\x03\xf3\x10\ \xa4\x1f-_B\xe3*\xdeD\xd92\xd5\xa3\x86\x8e\xe5;%\xe9\xefOmU\xc6\xa3*\xc3G\ \xfc:\xb4\xfauF^\xbb\xf4\x84V\xb7\x0b\x1bg\xec\xf2wc\x9c\x9d\xe7\xdd\x116rd\ \xfc\x9c3\'\xf6\x0f\x9a5\xea\xd7:^-q=\x0b2>I\xf5\x9e\xce\xfa\x88\x9ap\xfdg^,\ \xf3=\xc6\xada\x10\x17\xee^c\x8d\x8d\xd6"#\x02\n\xc8\xf04\xd8\xfe\x1a\x1f\x19\x0cd\ @m\\\x08\xf3\xb1\x8cB\xf8\xa4\xe3\xb4\xfbaA\x8a\xc9\xaeR\xc4\xab\xaf8&@\xb6L\ <\x00BX\n\x9a\x8d\xb7\\\xeeQ\x01\xd5\x8a\x086\x97z\xcf-_\x96\xad7s\xeb\x83\ \xf4\xf0A\x971\xeb\x91<[O@\x80y\xc7\x03\xe7t\x82*\xeaA\xf8\x10\x8f\x99\xf5\ \xf9D\xcbT\x96Ih F\x01\xf2\nG\x06U\xe0\xed0\xf3\xea\xe7l\xb5a:lw\xa8\x97\xf1\x97\xc3\xfaG\x90\ \xeb\x9e3\xf5\x0c\x99Q\x8e\xca}j\xd3\x92\x90\x82_\x94\x8aO\x131\xcfA\x888)\ \x81\x05\x01\x0b\xcb\xcd}\xc0/\x81\xca\xff\xd8N\xb4\xb9T\x94\xb6X\x07\xa2S\ \x9d\x85\x9b\xf3\xfc\xa5\x16n\xb9\xd1\xddI\xf0\x89}\xcf\x02\xcf\x89\xe2\xb6\ \xca\xe4\xf3\xf4oJ\xcf\t\x81\x0c\x11\xd5\xb8\xcad:\x00\xcfM\xc8<-?\x1asx\xa2\ B-\x83\x91<\xac\xcf5?\x92OR8\x18L:\xc85}\xc7 \xa5\xd4\x1c8\xfd+\xa9DA\x9e0\ \x15~#$@\xb7\xc6R\xf2"\x1e\xfaz\x82Xf\xcf\xb4\xfd \xbe\xc9|\xac\x8b?\xa9\x0e\ ~\xb1KBt9\xb3jg\xc6\'\xb8\x9aGg \xdf"X\xb8\xffy\xa8\x9a\xb0\xc2K\x86.\xe2\ \x80>\xe5\x90\'\x9c\x03\x8e\xe8\xa0\xb5#\x06\xc0\x0b\xfa\xac\x0e\x97\xd7\x07\ /\x8fFX\x1cs|\xde\xfb\xd5\x15\xcds\xc4\xa8\x04\x13o!^\x17r\x8a"\x89I5\xb7\ \xbf\xfbFeP\x14\xe0\x86\xab\xfc\xa1\xae\xe2\x95?^\xc2\xc0\x08,\x85\xe1_eJkf\ \x9b\xaf\xe2\xca\x8bk\x86\x048S2\x86x\x80\x9dhx;a\xefU\xf825\xf9\x92g\x1f\ \xe53\x85\x97\xa9{\xc7T\x92\xec3\x92D8D\xa4\x833Q3q~\xd3\x7f\xfe\x0b/\x1c\xa5\x1bs\xef\xc1\xed\xca\xb4\xf3|`\x82Xx\xd7\x9e\xe4\x9dj\ \x1fu\x0c\xe3\xc6\xe0\xfe\xf5{v\xf3\xcc\x18\xb0\xd5{,.\xe0^\x03K\x05\x84\xef\ \x9f\x9e\x1f\x97V\xe8$0\xab\xad\xfc;\x8e\x7f\x14^\x0f\x9a\xa9?\x8a\xa9\xc3\ \x80\x0b\xe3\xae.\x96F\xc9\xa7\x97\xd9\x87\xab\xb9\xf8\xf8\x10\x9d\x01J9\x1b\ \xab\x82\x9b\xc4\x9d?\xa3/\xce\x97\x90\x1f*\x9b\x0e\xdb3\xb7,`)\xd8Dn\x9d(oJ\ \xb2c\x89\xd9\xd1"\xf5/\xd3\xf6&\xd5\xa2\x16\xef3\x14Q/#\xe3\xdf\xd05\xe7\ \xba*\x84\xea\x99\xea2\xe1\xe8=\xfb\x92\xb8\xc6\xca\xe7U\xb4)\xc0.c\x84\xdd\ \'\xd8<\xd0\x04y\x13me\x90\xfb\xb0]w\x94e\xcb\x1cv\xa9\xce\xfe\xfdh\x97!I\ \x17\xc7`7f\xff\x16\x8c\xc3\x9eW\xc1\xed\xf4\xf9\xe2\xf0\xf1\x93\xa2eCD\xb3\ \xc2N\xa6\xc3\x80\x9d\x15\xbc=F\x13\xa3\xc9\xf7\x89\xc5\xca\x18oJ\x96\xc3\ \x02\x04\x1c\xcd\xb3\x93\x821\xb0\xcc\xe7\xa0<\x927\'\x81\xfb3m\x85\x90X},\ \xd7js)3\xbe\xcf\xf3\xe2L\xb1\xa8\x93\x99\xb2q\xa0c\x16*\xc6]\xad\xb1d\xad\ \xc4;.Z\x04\xec\t\xd6\x04\x8c\x94\xa2l{\xef\xdf\xa8%\t\x909\xfao\x008\xf9\ \x10\xa1\x15\xc5\x85iheL\x99n\xf2k56\xe0\x99\x12V@\xde/\x18_5=E\x1eP\xeeSB;%\ \x1b\x93A\x15\xa2\xbc\x95\xa0\xfd\xaax\xd1\xed\xdf\xef\'\xba7S\xf8\xe2b\x8d>\ 8}\xce&\x0cv$\xdd\xb6p/\xd7\xfd\xa7(\xc3X\xaf\xdf\xed\x00\xef\xdb\ \x93\xc6\xe7\x0c\x97\x88\xb7\x19E\x96\xb3\xfe\x06\x19d\xf5C\xe5\x19`\xff\xce\ D\xef\x01j6\x90\xe8\x0e9w\xf9h\xe3or\xbe\xa7\xcdt>\x08\xd8WA0\x13\xccE\x8a\ \x81\xb0\x84\x91\xf1\x9eL\x912">\xb8\x91/\xb7f \xf0\n\xbc5^\xca\xaeU\xf7\x96\ \x89F\xa9/\xbd\xe7\x19\xe7_\xd9\xef\xaa\x8e\x83l\xa6\xf8l8\x1f\x16P\xe0\xe8Q\ g}-\xa1N\xca\xb3\x85c\xe4\xc1\x94\xbb\xcb4\x1f\x01\x94\x86\xdb\x81\x8a>\x96*\ ^\xc4*\xbf/\x1f\x8f\xd5\x7f\x08m\xb8\xd5\t\x01$\x87\xc8\x91[=\x9c\xb8l}\xf2/\ )\xaf\xe6\x07B\x0f\x04d\x03\x99z\xcf\xe1\x0b\xcaz\x8a\x85\xd8\x02oN\x07I>\ \x8cq\xbd\xd9+\x95=\x9b\xb2t\xe5\x81\xf1\xe0\xe7T\x0c\xce\xf1\xe4\xa0a\x8c\ \xb6Sz\xd0\xb1Z\xb5F\x9d_\xffLX\xfa\x82\xfa\x17=\xf3\xd2u\x14\xd5\xacB\xd7\ \x93W\xe2J\xdc\xacJ\xd2ue\xab\x07\xa8\x99\t>\x1d\x8d\xb1\x8ew\xc1(X \x14\x12\ k\xd1rw\xf4X\xb4q\xa5\x88\xd1[}\xa1$d\xe3;\xb78\x05\x928~\x05ry\x9f_\xcc6\ \x8dP\xeea\xff4/hb\xf0\x04P}\x1bV\xe9\x89\x11H>\t\xaac\x16b\x1b\x8cOn\x08\ \xcf\x1d\xe7\xca\x9f\x1c\xaab\xee\x1a\xe4\x91i}\x9a\xf0"#5\xdc\xc0\xf8n\xd5F\ \x1aq"6\xb0\x9f\xe5\x9ev\x81\xfd9\xba\xd8v\x13\x8e\x9b\x8f\xfb\xc5(\x80%\x8a\ \x98\x13\x959R\xe2\x0c\xabpv\x9aR\xa3\xa9\xdb\xa2\x82\xc2\x1d\x18!\x14[\x87\ \xf9&H\xda\x07\x8a\xb8=1\x9d\xcd\x7f\x89\xb6<\x94n\x00E\xbdh_\xcfq|\xb8\xe0\ \xb3\xe5e\x9b\x1d\xc3N\x1a*(\x98\x86\xcc\x9f\x88\xa0p\xc9\xfc\xec\t`\xa9\xbb\ \xe8\xd51\xa2l,\x89\xc2\xde\x954K2\x98\xb9\xd2\x8a\xbeNG\x8d?\xday\x19\x85\ \xaf\xb0\x94\xb8\xc81\xf2\x95sU\xb7\x7f9K\x01\xae\xf1\xa0\x98\xea\xday"f\xa8\ \x8cn \x80\xf3\x01\xd1K\xb2p\xc0ZM\x89\xe9\xa9~\xdeR\xd2\xd7j\x81\xbfw#\xcfe\ \xb0\xdc}\xa3\xbd\xe3\xf4\x8cl\xd7\re"]n\xbcN\xb7]\xa7\xd4r\xdc\xe5\x91\x91 \ Z6cvo\xf23\xf9\xb3\xa8\xa2\x06<\x80\x92\x8cR\xc4Q\xd6w@\xe7\x97o(\x10\xf1\xba\t\x1fE>\xeaj\xc5\xb2\xed2\xe7\xb1\x8d\ \xd1\x93m\xfe!\x1d\x1ez\x0b\xf2S\x13v\xa8\x18B\xc4>\xe8\x7f\x81\xfd\xf9@Z\ \xbb\xa6*\xcbDS\x0c]\xceZ8\xc4zE\xda\xfd\n\x0c\xe7W\x96 \xdc\x7fj\xd7Wb<{\ \x98\x7f\xc0\xe8\x8f\xc2\xeb;7\xfe\xb2\xe5\xff5\xbf\x08\x8en\x08\xc0\xc9\xf7\ \x90\xa3\x90\xc3\x06\xe91\xe4\xd3\xdc\x0eL\xae\xd9\xec:2q\xf7\xe0\x12\xf4\ \x1d\xda\xfe$\xfb\xf7\xd8\x01\xa9\xed>\xf0\r\xe6\x1ei\xc5:$(\xb2\xa2\xf8\xc8\ \xe7\xd8\xb3)\xbb3OG\xae\x87\xee\xe1\xbfo\xf2\xa8\x86\x83\'\xbf\xfb\x9a\x03\ \x9e\x89\xb2\x9f|\xc6\xe4R@\x95\x19\x0b\xdb\xad<1o\x049\xc2l\x1e\xca\x91\xf7\ \x9e|:M9\xf0\xa7\xa2F-nu\x8d\x12W\xb9\xae\x90g\xc6\xe58\xf8\xa7\x0e>6\xd7\ \x8f\xea;x\xfa\xd7of\xa1\xdf\xfc&\xb7\xf7\xe4\x19}\xf2\x1d4\xc2\xed\x87\x08#\ \x9d8g,\xd9\xc6\xaf\xa2\x07\xd1hD\xdfj\xdf;Q";\xe3\xd8j\x0c\xdd/zg#G\xfdw\ \xdab\xeba\xf5\xd7\xfe\xc8\xd1\x0e\xdb\x06\xeetI\xf9W\x9e\tl\xed\x84e1@8w\ \x95\x0epP\x95-$\x17\xe6_V\xc5\x98\x9fj\xce\x95\xc2\xe8\xa0py\xda\xf3k\x7f\ \x16\xafy\xc5\xcf\xb5\xf7\xf5\xaf\xda\xb9\xbf\xeb\xfe\xb5O\xd0\x8b\xff\x0cX\ \xbcTi\xb6\xe3\xb7\xeb\x9a7OZ\x84\xf6\x00\x85\xfdc\xaf(\xd5\xbd\xa5\x1b\xf4\ \x93\xb8\x17\xb0\xc0\xc0\xdeW\x9e\xf8\x0c\xb6{\xc0\x9f\xdc\xa9\x92\xd7G\x04\ \xa1\x07\x08]\xd6\x08K\x7f|\xdd\xcd`\x0eX\xe1\xc8fp;z\xe1\x03\x9b\xdf\x94\ \x1f\n\xef\x13k\x91VZ\xfd\x89\xf1\x08y\xeb!N\xa1\xff\x8e\x1c53.\xe9\x8bmqJ.\ \x0b\xd6\x8ds\x85\x0e\xb2\xe1\x0bz"f\xf7\x15\xe6\xfc\x03\x05\x9e\x13\x00\xe7\ \xb2d<$\xf5\xcb7\xef\x9a\xa8e\xeb5\x7f\x15\xf5\x03\xd5\xd5\xa8\xc6\x8e\x01\ \xd4\xba\xb7+\xec\xf7\x00\x1cw\x9c\x83\xde\xedP\xab\xf4P\xdd\xb5\xd3\xd9C\ \xfe\xdd\x1d$1\xf14>\xd7Jzg\xd3\x1f!\xbc\xeb39\x19\x00\x9d\xb0\x80\xeeg\xf1\ \x80p}\xd8CR\x1d\x91\xc9\x1f\xde\x87\xe7\xfe\xb6\xf4\xf3\xfdp\x829\xcew\xd7\ \xe1c\xb9\xaa(\xbe\xcd(\xc0$acT\x0b\xcf\xc8\xbe\xe8\xfb\xaf\x06=y\xeen4%\x0b\ G\x1c\xf7V$#f\xf1\x84\xf78\x03H3\xfep\xbcEG\xdb\x94FK\x8d\xda\xd6sNkw+r\x0b\ \x12R\xf2h\xf4d\xbe\xe6\x04\x81\xe81A\xe4\xd0,\xcc\x1f\xdd\x1b\xce3+\x98e\ \xd8\xa9t\xe2\xce\xa15\x1bxvJw\xdc\x8d\xe96\xa1\xe5\xed\x00\xc3P\x9e\xc7\xe5\ \xf0t\xa0\xd9\x8f\xa4\xe0g\x1bPj\xa8xb\x89\x8c\x95J\x17\x13\xbc\x86\x16R\xa0\ \xd1{K\xac{F\x83\xdbj\xba\xecc\xcd\xf6\xce\xb2\x0b?\xeb\x05\xec\x9f\x8c\x08i\ \x19\xdb\xc5\xc2\xba\xbd\xcc\xe1\xdc\x01\xee\'\x13D\xf2\xfe\xef\x8c1\xe9bL;\ \xdec\x9c\xcds\xfd\x9ay=A\xba{R\xb2\xf3I&\xec=@\xa57\xdd`\xcc\xa5q\x02\xd1\ \xcc\xee\t\xb9\xc2\x9fF\x1b\xed\x98\x93\xe7#\xdc,u\x0f\x91\xba\xf5\x91v\t\ \x12\\\xd0\xb2\x94}\x88CO\xbc\xdc\x80\xd6g\xf5\xae\x7f\xbb\xd6g\x96r\xc1\xac\ \xe9\xdd3\x91\x14Q\xaa\xd7\xfd\xe4\x1dO\xa24\xbb\xc2\x7f\xd8\xe3Q\x97{\xf5\ \x9e\xe4Pm\x04\xbf|\x97\xffja\x9d,\xe8\x80+\xfaW\xa0W\xc1El\xd0N\xfcko\xdbg[\ E(\x895_R\xb5I^\x99k9E?%Ow\xeb\x90\xdf\x01[=oH1\x7f\x0c~\x1e\xc9\xd2\x10\xe1\ 1\x18\xd7s\x02J\x06\xb6\xfa\xacJ\xc4\x1c\r=\xe9Q\xda\x1d\x9b?\xd6A\x1d\xccT\ \xb2\x0f.\xea\x1e\xf4:\xe7Q\xec\xbe\x99\xe0/we)\xda\xee\x16\xea5\xa3LOO\xe7\ \xd75\xd6\xf7\x8b\x97\xf9\x1bI\xd8{;4\xb5h\xfaN\x0eS\xa6U\xeb\xcc\xfc\xcd\ \x84}\x023u|\xa9\'\xaf\x99\xbc\x01^\x0bH\x0cs3\xffs\xfe\x8a\xf1g\x01\xd5T\'\ \x11\xabZc\xb0\xb8\xe7-\x9e\x96\xc8!\xd4\xbf\xa8)\x9d\x15\xc2\x97\x1ev\x8f\ \x9e\x0fkF\x13F\xa6BM\xb9\'j\xc9\xdc\xbdK\xe1P8e\t\xb2\xec\x11r|hy\x8a\x1fa\ \xa5Aw*\x0e\xc2iH\xc8{\xa0/\x94}\x0fc\x99q\xddG\xb3\x9aW\x07\xd9\xd72\x87qo\ \xc7e!\xf67\x94\xfd\x12%\xe9\x85\xe9\xc3}d\xbc2?O\x15\xc9\x14\x85\xf6e?\xb6\ \xd2\xde\xa3\x9c\xbc\xaes\xb8T\x88\x8347\xbb\xfe\'\x1e\x106\x8b\x9dD\xa0\xaf\ \'\xb1\x9b\xbb1\x0c!\xfe\x94*uY\xea\x83\xcd\xa9\x02K\x9e\xae\x04\x15\xe91H\ \x99\xedzaM\xfaD@\x9eFs\x9b\x87\xda\xce\x83a\xf6\xbb\xdd\x8e\t\x81H\x19Qn/\xae\xca\xf0!?\x9d\x96\xe78\xdbC+\xc2(\x07!\x9d\xdb,i7WV\xc6\x01g\ \xb3\x19\t\xd6\xee\x8a0MR\x08E\x89\xc5\x01i\xa7I\xb80),\xbb\xe9\xca&\x1a\x91\ L\xecya\xae\xaa\xfb\xea\x9e\xefw\x9az`\xbe\x1d\xceK\xedQ\xd2b29\x15x\x1a\xcf\ \xf7\r\xe1\xf6t\x16V\x11\xc2\xfc\x91\xd6a\xbf;M\xafC+\xb3\xaf\xbf3\x87\x15\ \x87\xc8.\x8e]\xd8,K\x11]\xca\xe7lKH}QEb\xfdR?\x13\xa7\xca\xb9\xf79\xf0\xbb<\ \xb7\x00P\xae\x83K\xcdW\x08G\xb2[\xc6\x85\xf2\xa9\xfa\xaeB`\x1c\x18J\x7f\x07\ \x9a\xfb\xda\xcac\xa3\xc1\x12}\t\xe4!\x896\xc9&\x9e\xb5=\xac\x9d\xd8#\x16\ \x1e\xc9\xd4\x16\xdf\xfdSK\xc3T \x91\xee\x10R\xf2\x02\xe2\xaf\xb0X\'\x19\x89\ \xb9\x12\xb7\xd7\xcdw\xadW\x9c\x1d\x19Qz?#\xc9\xda/a\x93\x8b/Xx_\x97\xc4\xf3\ \x88\xfa\x98\x97\xcc\xe1\x1cN\xda\x7f,\xad\xd4\xf8\x08\x820\x9f\tk\xcdpo\xfe\ \xd6\xe0\x87\\\xdb\x11\xbf\x8c\xe7\xb2\xdb\xb5Y\xf5C\xdakY.\xda\xae\xfa\x8d\ \xe25\xda\xee\xde\x1dd\xc9y\x0c\xb8U\xad\xcf\xc1\x8b\x94\xe7|\xfb\xb6\x9f{\ \xb0\xeds\xad\xd4\xfe\xf5\xb1\xdf\xd3\xfdH\xa8\xf7\x8c\xa2\x1a\xf1#\x18\xfch\ \x8dq86\x8a\xc3\xe6bJV\xf2f]\x83$\xb4\xf7k\xd8\'\xa6\xb7\xedI\t\x99\x11\xbbK\ \x89\x1ae\xf8\xcc\x10\n8\x89\xcf\x9c\x8bP\xd0\xf4\x9b\x9flo-Y\xfb\xa2\x8d_\ \xecJR\x199H\xb0f9\x0f\xfd`\xd5\xc3-1;\xbe\x05\x9a=\x8a\x96\rr\x81\xff\xccH>\ (~c\xd3\xd1\xe7\xebz\xc1\xaa\xbe\xf0\xb1\xf11s;-\xd3\xc0/\x9a\x12\x14`V|\xdb\ \x1b\xc5U\xa9_3\xda\xbe\xd5\x86%;l-0\x14\x85\x8a\x11 L\x15\xdd6DM\xdcK\xfd~\xa1y\ \x1f\xe8\x0f\xac\x05\x9e7\xd0\x97\x0fN\xdb\x0f\x12s\xec\xec\xdb%\xa1\xaaw\ \xd3\xb4\x0f\xa9\x1e7\xab\xe1xZ\xd2\xb7Us}k\xe3\xfa\xdc\xe6\xd2\xa9L\xd7J\ \x86u\xb1\xfa=\x99#kO\xe4\xc7\xad\xe7V\xb1\xe8\\\xda\\\xc3\x10,N\xec\x02\x9e\ \x8b\xdd\x15:\xab\xb2K*\xcc\xe674`\x97Rs\x8a\x8c\xa9Ww\x84\x88\x00Z\xc4)\xd0\ A\x1e\xb7\xb0\xfb\x0b\x82\xda`\xea\xd9\xbe\xb2\x18\xfb[\xda\x92\xbd\x06\x00\ \x00W\xff\x9b\x05\x88{\xba9\xf1\xf17\xf0\x89\xa86DU\x85\x83\x13\xe4\xd2\xc6\ \x84\xd3@\x82\xd64\xec\x15\x0b\x9a\x8ep\xa2\xbe\xd5Bm@\xd6E\x98\xfaCW?\xcd\ \x1a\x07\xd3C\xc9\x1bk\x98o\xb4\xffk\xde\x8a;\x89N\xb0\xe0\xab\xfd^\x8e\xe0\ \x00\xc8+\xdd\xf4\rk\n\xa4\xaf\xb4\x8a\x10\x8c0\x08\x8e\xbb\xf8\x97\xc0\xb6\ \x899\xdcF6\xe2,u\x00\x93$\x9a$\x93\\\x1f,J\xad\x94+\nm\xf1#s\x05\xc0-%\xa9\ \x98\x830\xfb\xc6\xe7D\xc0\xe0\xbckZ\x86\xa4\xc3G\x11\xc5\xff\xf5\xa9\x8dy8\ \xe3v\x03\x94%Xp\xa0\xe4F\x95\n\xcd\x93\xc8[\x08\xf3\x80\xd8\x19\xfaY!`\xe5{\ \xbc\x88\xa3c\x10\x9a\x0fo{B\xa1\xeb\x96i@\xec\x04\xab\x87\xb3\xaf\xdc\xf11G\ \xd2\xfd\x83\xdd\xc5\xb71\x82\x18*8L\xe6\xa8\xad!=\xd2\xc0\xa1\x97\x98\x85\ \x17\xa0\xf697t\xb4\x05*\x9a\xfc?;q\xf0\xffvnB\xed\xbe\x97\x8e\xc4_\x8f\x8a\ \x03\xeeECMG\xb5\x1ej\x13\xfe\x7f\xbc\xe7g\xa9' #RGBA LOGO_INSPECTOR = \ 'x\xda\xc4\x9b\x85WT\xed\xf7\xf6\x0f=\x840\x12\xd2))\xdd%\xe1\xd0C(C\x89\x80\ \xc0\x83\x94"!\xdd5\x804Hw\t\xc8\xd0\xa84R\x02\xd2R\x02\xd29t\x8804\xbf\xe3w\ \xad\xf7oxg\xc1\x0c\x8b\x05\x9c3\xf7\xde\xfb\xba>\xd7}\x0e\x91\xcft\xd4\xee\ \x11\xd1\x11\x01\x00pOC]\x19\x01\xbev\xfc\xfb\x84\xe0\x83\xcf\x88y\x07\x02\ \xf0\x05\xd7\x15\xa6\xa1\x0f\x01\x1f~\x90W\xef\x01\x80\x05\xd0P~\xa2\xef\x95\ \xbd\xe7\xef\x9dn\xa6\x92\x81\xa9F\x8d\xbc\xc3\x14c\xf8\x18\xeb\xb8\xa0\xb0\ \x07\xea\x10nMJ\rU\x0b\x86\x1e\xbc\x1b\xf6\xc6\xa1\xa08\xee\xd0\xb5\xad\xd2\ \xd0t\x97\x8bW\x8a\x8a\x8a*\t\x8aAA\x15\x85Pcl\xd6|v,\xf2\x0f\x8a\xf5\xa4\ \xc6[n\x9e\x1ft\x0e\x17<\x15\xd0\xfaS\x98>\xe3K\x8f\xd2\xb49\xcd\x07Z\xed\ \xa3z\xa3\xfb\x1b\xb9\xae\xa8\x9d\xd6v\x9f4\x9f\xa5\x86\xf7\xc9\xe4\x0f\xc5`\ \\\xbcck\x0b\xc1\xf7\xe9\n\xd64\x1e\x024\x05I\x99\xaa\x80\x10\x8cK<\x16\xb0@\ \xea\xbc\xa6\xc3\xea\x80\xe4L\x8aa\x07\xdd\x97)\xb3\xc7\x05\x1e\xba!& \x80\ \xea\xd6\xc7\x92\xfb@\xccO\r\xed\xff\x1f\xbf\x80\x88\xf3$\x90\xdfc/F&\x7f\ \x00X\xbc\x039\xdb\xfc\x97\xda\x86n\xd8\x91\xea\xb0\xcb\xabK\x08#?\xdb\xc3\ \xa9\x82+.\xdb\xb8\xf7\x83[\x88\xae\rc\r\x1e\x0e\x009\x81\x0f\xa7\x04\xee\ \xc3\xa0ha$T}\x06HDB\xa10\xd5\x97?u?\xde\x07\xdc\x1e\xf2p\xf4\x9b\x8f1r\xae\ \xb7\xf9+$\xf5\x17~\xbb\x85Zj\x11j\xf0\xb8\x03\x01\x80???\x95\xef\ \xd9\x1e\xa3\x91\x91\x91\xa4l\xceHv\xb3/\xe6\x80\xa7\xc4>7S\x9d]\xf5>\xccM\ \xed\x11\x00p\x17?3p\x87\xca%\x00\x10\xad\t$Tb1\xdb\x935\x0c\xda\x85>q\xc7\ \xc5\x0e^(.\xe6\x98S\x8b\xa5k{HI\xe4 w:\xa9\xa7\xc0-X-\xc5\x10\x1b>g`\xe0\ \xea\xa4\x8c\x84\x92\xfe|\x9f\xef\xa6lM\x07\xc9\x11\x03\x9c\x8d|`\x10w}:B\ \x00\xa6\xaeod\x94\xb6\xb7\xd0\x82\xa9\xb8\xb9zcs\xb8\xd4~W\x11\x1e\x1eN\x1b\ n\xa9\x856\r\x12\xc6\xcf{\x8a\xc3J\x19U\xa8\x08WW\xf4H\x84zO\xe6\xb1\xf2\xf9\ ^J\x9b\xe7\xb0"\x1b=\xb0\xa4\xd05|\xc4M\xd9Xp\x1e\xee\xe2\xe1c/\x07t\xbap\ \xd1R\x96\x94\xcb\xaa\xc9Z_^\xdd\xdb\xc9O\xba&\x83\x83\x83\xc3\xadW\x08V\\\ \x97\xe2\xee\xf7\xa8I\xc9\x9bn\x9c\x0e\xe3\xed\x8c\xcf\xafM\x00\x8bL\xce\xfa\ \xb7s\xc2\xaf\xe7\xea\xdf\x12\xbfy\xf3\x86zjz:oblLW\x03r\xfa\xd8\xf5\xc0\x04\\~\x02\x9c\xe0 Yf\x92\x87g]\xf7\ \xff\x92\xe1\x05=\x16\x8fh\xcc\xcd\xba\xbc\xf4q\xef\x0e\x8fe^\xfa\xba{\xa3y\ \xb67\xfbY*\xa9_\xeb\x97\xd8\xbd\xe6\xaa`([X\x02\xb6\xb7\xc0\xc8\x9al\xc8m\ \xbf\xbf\x99\x04\xd3{\xf6\xef\'$\xc2\xac\xb8$\x0f\t\xba\x85\x961\x04\xa8G\ \xbc}\xad\x8f]7\x87\xd2F\xa4\xd6b\xc4)8\xb5\xd4e\x1bX\xc0\x8e\x85\xdc\x7f(\ \xf0+\x90\x05p\x1e\xe1)\x06\x97\x88\x8f\x87\xc3c\xff7U\x00f\xc1\xb3\xfd\xfc\ \x97\x89S\xe0\xd7\xb22\xef\xfaBn\xf9\xbcQ\x02\x15]\xbe\x11\xe9D\x04\x82\x84\ \xa2\x1b#\x1f\xd6\xe7\xe7\x88W\xac\xff\x0c\xfe\xde\xda%up\xc3\x82F\xfa!\x93\ \xe0\xa2\xb0e\x17\xd2vD\xf6\xf0a\xfcH\x86\xa8o\xfc\xae\xc1j6/W\x8b\xcf\xdf\ \x02\x82\xa0\xf25=8\xff\x884\n\x85\xe2\xaczq\xfa\x07]\xef\xb4t\xec>XWr\xee\'\ \xff\t\xf5\x08\xeb9\x0c\xb2Y\x11\xa06_\x8a\xb6\xa7YlJ$\x97C\xe9\xa9\x852\xf4\ >\x00(\'\xbe\xbc\xb7\\W\xe4\xd9\xe7\xe6\xe1\xf1\xdf\x9cw\xa5~|=\x16\x1f\xf0w\ xu\xb5\x90\xd2\x02\'\x181\xf0T5\xf2\xa8\x00/\xa8\xa8\xae\x91\x89\xb1\xf5\xea\ \xa0\x85\xe2W\x85\xf7~\xb9I\x83\xe3U&\xf4\xbf\x98\xa2+"{\xb2\x9fc\xe8\x88xS\ \xe8l\xef\xd7\x1bI\xd6\x8f\xe5\xe1\xde\x8b\xac\xd3\xd6p\x1e<\xd6\x1c\xc5\xc1\ ;\x1d\xa3\xaf65\xeb\xdf\xd4V\x17\x96\xbc\xbf\xe1\xb20\xcaf\xd2\x86\x07\x9b\n\ D\xeb\x16\xa9\xb6\xc9x\x1ed\x90\x8df\x88\xeen\xdbO\x94p\xec\xdd\xe6\xf9ytE\ \x90\x02\xf5F\xaa\x9fb\x84)\x80E\xdf\xc3\xb6:\xa3\x97\xc6\xfe\xfbq\x8c\xb2U"\ \xdaoL\x85h\x90\x0f\xefq\x87K\xcf\xc4#\xb0a\xdc\xa6\xd4\xc5\xbb\xdd\x9e\x12\ \xc5\xf9(\x92\xe4G\xf9\x93\xee\x19p\xe7\x916\x1bcN\x00\x1bN\xc8m\x90\x8f"\ \xa2\xb1\xf2\xb8\x0e\x95\xabZ\xd9s|\xba\xee\x93\x02.bj\xff\xab\xfb$\xf8\r#\ \xb9r\xbb\xc1*\xd1\x02\x01v\xab\xdf#\x87\x01\x16\xe43\xacF\xf2u\xe6Ly}\x00\n\ \x83\xbe\xbe:\xf7RRRZ\x17\x0c\xf4>\x1b\xdc\xfdUy\'\x08\xfb\xe1\x05\x16\x08^\ \xd6\xdfdQ\xcf:\x8fi\xc3/\xfc#\xd4\xcbR\xac(`\xdb!D"\xd4\x0b%\xc2\xd3}\xf1"\ \xbc\xaeN$9\x99\xb2\xa8\xb1\x91\xe6\xd8\x8b\xa4\xf9 \xb4j\xf7\xa7;c\x902gR\ \x98%\xcd\x8fW"v\xf6\xf6O\\]E3\xb3\xb2\\\xce\x8f,\xc5$$\xd8rF\x14\xe1\x84f\ \xd3\x05\xf6t\x10\xd6\xe5\xd6\xe9\x1f\xd1\x96\xac<\xc5\xafb\\`\x90Z\xbehk\ \x11\xda\xad\xe6\x97\xfe\x9b\x19\xae\x87\xe7\xdf\xb9\xe4\x8f\xfb4\x928\x99\ \xf0\xc1n/J>\n\\oC\x92\xe1\x01\xd9\xe7\x0cp\x9e\x8dm7:^\xa3\xdb\xd3\x0f\x92\ \x8b\xcf\xafn\xce\xce\xceNB;Y \xac\xf3\xee\xbe\xbf\x8d\xa0$\x06\x81\r\x06\ \xd4D\x83"\x89\xc36\x9d4J**\xd2:r\xa7\xfaZ\x19"\xb4E\xaa\xb1\xbd[cE\xf9\xf6/\ \xee$w\x83\xc7\xb7\xc5H\x19\xa4\x82p\x08H\xff\xc3\x1c,\xcc\xd4Zqeff>\x81,c\ \xae:i\\\xd9C\xfe:D\x04\xff\x86\xe2\xb5\xbep\xca{\x02y\x92\xd4O\xe9f6\'\xe3\ \xb4\xd8z\xf5@\xa0\xd5\xf9\xe2\x8b\xbd\x9e\xac\xc5\xc9\xfb\xd2\xd7\xb7Ec\x84\ d\xc0\x88\xb4U\x0c\x16\x10x\xd8V\x99\x12\xafp\xbb\xfe\xb4\xbc\\\xe1\xfc?\x16\ \xe8\xa4\xb86\xa3\xa1\x81\x1a\x9c\xb0\x97\x1b\xc2\xfacC\x8bF\xf5\xc1\x98\x1d\ \x89m\xb60\xc5\xc9fN\xe4\xf1\x1a\x17\xcb\x83h\xf7\x8b\x80\xd1\x93i{\xea\xbf\ \x12\xed\xdeY\x06@PI\tg\xeb\xdd\xed\xd5L\x8d\xe5C\xb0\x9f\x83\xb58q\xe6\xde\ \x14\xc3\xe0X\xac\xebc\x12\xf9xV1\xae#S\xfa\x8f\xf0\xf2F\xdb\xad\x8fW\xa3\ \x03/"\x9f\x9a\xfeU\x16\xa3\x0b\x83\xc2\x82\xd7\xacePmR\xbdn0\x9c\x0e\xcb\ \x80\\u\xf6-\xf3\xbb\xcb\xeb;\xe3\xaf;)y84\xd4\x90s$\x14A\xd4i\xbcR\x80\xf1\ \x0e\xdc\xb6\xfc\x81\x04\x92E\xd2K\xdaV\xd3RR,o\xaf\xbd\x1b\x97CNtuuW\xfcGg\ \xa9\xceb\xe6:Q\x04\x17\xbduo\xd8[\xbe8-\xc9W\x18\x9f\xd0I8-\x86\xd4\xd7K\ \xe0\x86>\x11\xea\xb50\xfe\x95\x9fgdQ\xad\x08\xd9HF\xf4K\x1b!\xca(\xe1\x9a\ \x9ay\xcd\xabQ\xa3w~\x07\xf3M\x87(\x14\xd1\x88\xb4\xebcU\xb5Z\xe6\xbe8\x1du@\ \xaa\n\x0e\x83\xac\x80\xf3\x93\xf3w\xc6\xea\xe9\xb5\xdf\xdd\xed\x8d\x11\xb2\ \xdb\x12\x8a-\x80\xcc\xf7\x16\xbe\x00\xc2\xebEw\x17\xb9S\xe0\xac\xe4\x84kV\ \xccW4\x02\x8d\xcb~\xc9\xc9\xc9R\x98\x83W\x93E\xa7\xab\xbe>\xaa\xda\xda\xfc\ \x86\xd5/c\xdb\xefn\xee=O\rSd\xf99\xdc-\xd6*;~\x81y\x88t\xee\xe5\xee\xdf y\ \x9dix\x05\x16\xe5\xb0i\xafN\xd3Iv-&#b\xac)\xe3\xac\x80\xa0\x8b\x90\x00\xf0\ \x9cJC\xfc\xd7\x13\xa5&\xdff3\xbc\xdb@\xd8\xd9G\x10\x8a\xe5h\x9cm\x91.\'\x1b\ #L\xa3JZb\x0f\xae\xc0\xc5\xf9d\xe9-\xadU_\x1c\x160\xda\xe2Za^\xb7{\xff\x9d\ \xbe\xc2\xde\xef\xaf\xc4O\xe5N\xb9\xf6\xe6\x9bp\x02\x02\x81\xa8B\x06w\xa5Y\ \x0e\x187\x17._\xa2:hn\x069\xae#!\xe6\xb7\x13\n\xfc>^C\xe9\xc2\xe4Al\xc8\xf3\ gN\x1fs\x9e\x81C%\x04\xe7\xa9./\xbf\xa7\xf0\xe7\x87\xd5]\x9b\xfbn=\xf3\xccj\ \xde\x8bl\xd7\xf0\x10OG\xe2\x9a\xdb\x8f\xc3\xd7\xfd\xaf\xc8\xc1\xa912=\xc6\ \xcb\xf6=hrT\x88#^\xf3\xe4\x9a\xe6\x07U\x04\xfd\xe0\xa5\xd7\n\xc7\xe3\x93\ \xa1<9\xfb\x9f\x84!E\x17\xa4\xfb4\xec\xd3\xf2\xea\x9c\x14\xdc\xbc\xbc\xbe\ \xb7\xe3\x9a\x827=\xdeh\x7f\xb7\x9c\xaa]}H0Y\xf9[\xd0\x13:\xee\xdf\x90\x00\ \x81\'\xc3\r%r\x17\xebI\xed\xd5\xd5\n~\x96bt)0g\xd6\xe2\xa1\x89S\xdfC\xa7\ \x02%\x97\x0c\xd9D\xf5\xe5\xbf\x13O\xfb>p\xdc\x11X\xf5\xc6\xecw9s\x91K\x93\ \xe0\x03\xff\xda\x9f\xc9\xef\x88urj\x8a\x8d!\x8eAT\x03\x00\xe2\xfa\xd43K\xfa\ \x7f\xcf\xcdM\x9c\xa0G\xefz>p\x18-\xbe\xd4\xd5\xcd]1\x15\x81\x1f\x17D\x0b\ \xca\x1c\x00\t\x08r.\xfc\xdc\xf6\xa3\xae\xe8<\xd3\xda\xd5D\x85s\xbfK;3LF\x89\ =\xaa\xbb\x8d\xa8\x05\xa3\xc9I\xf1\xbc\xd5\xeb\xbe\xfc\xdd\xc5\xa8\xd2\xf4\ \xa9\x80\x96G!9\x9a!F\xd8\xcd\x8d\xfd(Ba>\xe2\x1e\xbd\x04\xd8\xfeO c\xe5\r\ \xdbv\to\x99\x85@\x96\xd0\xd0\xd5\xbd\x8e}\x1axi\xfe\xcd\xbd\x13\x0f\xdd\xae\ \xc6c\xad\xc3\xac &0\xb1F\x04xZ\xf1&\xf5\x1f\xb5\x1c~C7{.\xce\xfem_qV\'\xb0x\ 7B\xd0y\xed\x1f\x1f\x06\x05\xfb\xadn\x96D\xa0\xfd\xfa\xf3\xf9\xdfR\x85\x8d3+\ \xf5\xa1\xbc\xc3\xb1~\xb2`\xe7;\xf4\xed\x81\xbc\x15w\xbe\xc7\x93\x0e\xe9\xbe\ :k\x8c\xd5\xe9\x8e\xd1\xfdX\xd58o\xc5\xdc\xe4\x84\xa8./\x814=\x92n\x07\xb3\ \x1a\x8b\xdbqA\xffmMOjj\xea\xacl\xd7\x14\xc4k&\'\xaa:\xa8\x8c#\xe0\xfc\xce\ \xd9\xfaQJa\xfb\xcd\xfe\xa1\xe3l\xab\xf7\xe0i\xedsJ\x98\xbac\xf9\xe3\x852\ \xa1\xb6o\x92u\xa7v\xa4\xddB\xce\x1b)\xe6\xbd\\\xf2.c\xf7\x87^p\x9fnt\xf1!\ \xe7\xa9|\x85\xa6\x9b\xa7[^\xcfGQ\xc5/7\xa1\r\xd9\xe8b\xcfj\x05]\xfe\xfe8\ \xc3\xd5M\xd5\xe2\x84F\xab\xe45\xfd\x19\x10\xbc\xdb\xcav\x1d)\x0b\xc9\xc9\ \xf0\xe8\x9a\xc3\xef\xc3\x03R\xad\x85Ut\xcfA\xf1\xff\x1a\xc1\xe4\xb3u\x10J@\ \x16\xc0OC\xf2"U\x1c\xaa\xd4\xe0\\\x98\xac\x08\x894\x1d\xe9\x98\xfevFe\xea\ \xb5\x82\x17\xfa\xe2ta\x86\t\xf6\x1e]\x80\x15\xe4 \x11\xbd\xb3\xf3zo\xae\x81\ \xcc\xdd\xdd]\x9d\x9d\\\xbd\x18\x91\x9f\xccFC\x02\x1e\xf7\xbf\xf9F\x97t1{\ \xb6\xde\xb8\xca\xbd\x0fJ{;G\x17\x18\xde/\x82\x08\xf83x\xad\xdf\x85\x92\xd7\ \xed\x05Z\xce}K*\xe1\x19\xa5\xca+\x11\xda0\x84\xcfQ\x17\xb1\xe0\xf9\x18\x95\ \x91\xdf\xca\x13\xb3\xe9Ni#\x1a\xab_\xc7[\xfa\xacnCX\xcb\x15\xd7\x85\xa8\xd7\ F\xe7\xf5s\x017\x8a\x9cIM\x8f)\x892S\xadyh\x0c7\x0fc\xe2\xd8q\xc1\xc36\xee\ \xa0\xcak\xbc\x8e\xd9\x9e\xc6\xd2X\xb4\xe7\xe4\xfcw\xd5\xdc\xe6\x8bY=\x9d6\ \xef\xcb\x14\x7fS\xe3\xb2\xa6\n"]\xb7P\x0c\x13\xedO\xb3\xed\x9b\x00\x05\xce\ \xa7\xb91\x9fG\xe5\xe9\x99\xef\xce\xfbj-:\xb1\xf5\r\r\xb1\x01\xbe\xc1w\'\x01\ \xc4\xcc\x96\xb9\xb8-\xa0\xfb\xd6\x82SK\n\x89k#r\x1c\x8d\xfd\x8f\x905Y\xffQ\ \xa4\xcbZ\xef\xcd\xedNy\xf5m{\x12\xa7\xb6\x83B\xa2\xe4h\x1c\x0f`\xca|Wev\x18\ \xff\xed\xf4\xd7\x9cazI\xd3O\xf4D\x93\xfd\x8b\x8a\xa3~\x1e\x07\xdbi\x8e^\xca\ /_\xc4\xd6\x92\xf2\xae\xd9\xbf]N\x95\xe3\xef\xad\xee\x1d\xd0\xfa\x1c\xf7P\ \xd7\xfe\xd7C\xd4\xfag\x80W\xca\xef\xbc\x06\xa3 \xe9\xf0D7\x9d\xe2r\xde\x1e\ \xa7q\xac\xc8C\xc8l\xa4\x05\xfd=\x92\xc2\x05\xfc\xb9\xb5\x01\xde\xea\xbf\xa6\ 5\xd9\'\x02\xd3\xd4\xe3\n0\xa0[\xc8\xe5d\xb8\xbd\xebW\xe5\x1cX\xc8\xf82O\xee\ \xbcy\xbb\t-N%qm\x93\xab\x1e\xc1\x97.\xc3*\xd4\xfe~-\xc9\x1f4x\x9e6>\xdb\xb5\ \xc2\x07\x06\xeb(Ut+\xf6\xe7<\xb5.O\xab\x03o\xd2\xad\x8dm\xb7\x9bG\xeb\xf8\ \xf4j\xbb\x83#\xee2\xaa\xfa\xd6cDu\xfa0\xdf0y/\xb7\\\n\x86\xac\x8d\x1f\xcc\ \xef\x95\x19\x99\xfbS\xdd]\xb5\xdfE\x83\xdd\xe7\xf4\xc3\xe6\xf3\xd1\xc55\x04\ \x1f\xe7\x99\xc1\xbd\x18a!\xd5\'<\'\xb9+\xd8\xbd\x86\x06H\x1clz\x08\x0c\xb2\ \xfeN\x9a=\x89\x10|\xfe\xfe\x9f0\xdf\xcbV\x1a\x85\xf3N2!\xdf3\x07\x80&!\xf9\ \xddT\x13\xc8z\xd7\xeb\\\n*29!\xa3\xa5\xb2\x8a\xf4\xd7]\xe3\x92\xa7\xfe\xe6\ \xf02\xeb\xcc\x92\xffhToJ\xe5OG\x97ZA\xf9\xbcc\x80\xe0~\x12\xad\xa2\xe8\x15\ \x90\xe2\x04~\xe8\xf9\x96,\xf8\xec\xee?}\x91*\xad7\xf1%\xdb\xda\xf8r\xec~t}\ \xb0=\xba\xf7\xf2X\xe1\xee3\xe5\xc6\xc6\xc6E\xff\xc6\xcd\x87\xc1kww\x82\xa3\ \xcfy7\x94\x83i\x82\x11\x964\xef\x95\x0b\x99\xd6\xcaQD\xda\x13\xf9\xf62b\xda\ a\x853\xc77\xc9"3T\x14X\xc4(\xdcR\nP\x7f\x98\xa1\xc5\n\xbal\xda\xe0\xcar\'\ \x0e\x08\xbf\x9d\xfe\x98\x85\x88A\x81\x16\x92pK\xcad\xcf\xe5o\x83\xa9\xa9\ \x0f\xe6\xbd\xd6b\xed\xde\xbeUb\x81J\x1d\xb0\x00,\xb4V\x8f3\xb4x\n\x9e\x1d-\ \x08\x06\x1cG\x95\xcb\x9f\xd5\x86\x1d\x12\xb1\x8a\xc3\xde\xbb<\x8e\xb5\xaaw\ \xdb\x1e/zg\xc5\x8ak\x1d\x13\x99#[\xce\xd6\xb0\xe0q\xb5\x96j\x1d\xa0<\xe1\ \x16\xea\xaa\xc9\x18\xf0\xd4V>d\xef]hf\xc9*\xfdR#\xbe\x8a\x8a\xcab\xd4"\x9a\ \xf1O\xfa]\xa9\xc2\r\xed\xb7\xbb\x9b\xc3\x874$\x85\x8d\x8d\xb8\x9d\x16\x90\ \x9e\x1e\x95\xf7=Q\xd0\xe8\x1e(\xa9\x1a\x142C\xae81?e\x8ee5Y\x8b\xf7\xa9\x08\ _\x97\xebf\xec\x96\xdejR7\x89\x92;*\xb3\x146\xab\xadK\xf9\x0c\x0e%\x8d\x18[\ \\\x8c\xe3\xca\xf5\xc2^\xeb\xcd\tirE{\xbd,\xcc\xbd\xdc?[\x10"Q\xe7\xb9O\x1a\ \xb1rrQ\xeb\xb8\xe0\xc3%\xba\xdfHq\x1f\x86\xc8\x1b\xb5\xcd,\x11\xbf<\x0c4\ \xf7%D\xaf.\x88\x8e\xa47\xa9A\n\x12\xd6\x9e\xb3\xdd~\x02:\xc6\x8ek\\\xd1#\ \x1do\x1b\x16n\xd5&\xc4\xa8\xa5_\x8f&xx\x12\'R\xd6\xaf\xcc\xc5\x85\x11S\xaf\ \xae1\xdfyu>B\xee\xae^\xf7\x08\x06\x04\xd3;]\x0b\xc3\xe1ph|\xdf}R\xb5g\x08\ \x04\xf29_\x9c:{\x8c"\xcb\x960\xafUT\xdf\xba\xc4\'\xd9,3WJ\xefv\xcfz\x1dE!\ \xee\xa8{\xf8\xd3\xa9\xcf(}\xe3\x15\xa7\xfd\x85\xb4q\x9e\xca_\xe0\xea\xc8\ \xbe\xc5\xd7Q\xb8q\x1bUZ\xa7\x1b\xf7\x08\xf1\x1d\xd1+\x12\xc9 y\xd7\xc4\xe0\ \'\xcf\xdc\x1b\xc7\x18]i\xd2\xb0r\xb4\xe2\xb3\xd5L\xe6\xc8?\xbe\xa6Q\xf5\x9b\ \x02\x82k\x95%\xe9tA=!\xf6\xc6f8\xf3T\x80\x15\xd9\xb4\xd8d\xa5\xddM\n\xb0\ \xe2Z\xc6$\x86\x87\xe3\xcf\xbbM\x0c\x0f\x8ad\x0c\xd9\xfa\xcb\xe7\x15\x9d`\ \x02\x16\x9c?=AB\xd3K\x82-\x84\xde\x07\xdea\x9c:4\xd2\xf6<\xff\xe3\x1f\xc4\ \xb6"\x19L\xe5\xef\x06E9\x1e\x04x\xe5"ae6aJjjV\xbaX6(\xa4\x0b=Q\x80BYm=8@\ \xedUV{\x90\x93\xba\xb3G`\xabX\xe6\xbahC,\x9c\xd8\t\x1f\xdf\xfc\x9d\x90Bg\ \xe3\xa5K\xb9\x14\xea\xf1\x8aE\xe8?\xda\x98\x85:\x8a\x92\xe0\x804\x83\x84*\ \xb3\xdd\xdfj\x8e\xfb\xfaf:\x97\x1b\x01\x00,\xc5\x1f\x11\xf0\x95\x13\xfb[FY\ \x8f\xeb\x93\x83\x85\x16=Q\x9b\xecz\x01(\xe4\xd9`\xdd\x8fZ\x8f$\xd27\x7f\xd3\ \xf4|\x94\xfb_\x89\xfc\xb9\xbdbn|\x98\xb8u\xfe\x8eeY\xd2t3\xad\x0e#\x81,\xf5\ \x89\x85\x86\xc4\xc5\xe1>\xe0{\x1e\xf4\xe7\x9dlt\xb9\x02\'\x15LQ\x97\xb2\xf5\ b3\xab\xf1\xa0\xf9NQW\xf7\xfe\xea\xf1\x7f\xdf\xd7\\\xc0s\x7fH\x17\xcbJC\xd2\ \x89\x9eh\xa3j\xdf\x95\xf3\xddm\xdd\xfb\xea\x1e\x8eh\\\xfaZ\x1cRb\x7ftu\x03\ \x89\xe8\xe6~\xf4\x08\xc6N\xfeD\xa5\x87\xfb\x19\xdceX|IQ[;\xf6\xa10%{\x92\ \x06;9a5G\x92\x86\x9b\x9b\x1b\x0b\xc8G\x1d\xc185|\xc4\xe8\\_R\xd0\x9cB\x94\ \xd9Vf\xb8\xb8\xf0gY\x82 \xb8!\x0ek\xbd\x9e\x8em\x17\x9b\xe6\x0b\xbf~\xfd\ \xaa\xe2\x8eb\xcb\xa6\x9c\xb6R\xed\xe6\xc7\xa2\x84\x97\xb9\xf71z\x06\\\xed7H\ ^\xb3\x93G:\x0f\xae*\xcd\xac\xf0\x9b\xde\xb0";\xea\xf8\xd4\t\xfdN\xcb\x8d\n\ \x1a\x1b\x1b\xcd\x1bJ\xaf\xee@\x8e6u\xe9\xa1\xb2st\xfc\xfeI\xd7\xea~$\x92\ \xf1\x94\x8b\xa4}\x89\xcc\xc0\x80qtd\x8c|\xac>s=dP\x02E%d\x83\xc6!\x08}\xb2\ \xb7\xd0B ..~>d+\x8f\xa3\xa2\x9b0\xb8\xf1\xf3\xe7\xcfe\x83\xec\x1fi\xd8\xfb\ \xfb\xfb?\xc5\xee\x81s\xb5<\xff\xbd\xd9\xdd\t4\xfb\xb3\xb9h+\xcd\x0f`\xf7\ \x93\xe0\xab\xf8\xfb\xdf4\xc9z\xec\xa5\x8b\xb8\xac"\x8d\xa2\xa2\xa3?\xc7\x99\ 9k\xf1a,\x95\xb2\xac\x8dc\xa0\xff\xb5\x81\xdc\x16-\xe10\xe3\xa5\xa9\xab\x9b-\ k\xe7\xc1\x18"\xf5\x0eo\xaf\x9aJ\x80\x95\xbb\x18\x04M)\xb0\xceB\xf6\xe3\x1fC\ \xe6s\x1dMG+\x1b\x16\xa3\xb4\xb3$,\x87\xd2\xe1`\x04\x00\x97\x1c\t\xb3\xdcjf\ \x8e*$\xe9\xde\x99m\x11\xdbJ~yP\xfa\xb6\x0f,\xbd\xc5\xcf\xf8\xe7|\xe1\x8a,A\ \xfdI\xa5\xcb\xa3\x81\xb7\xa2\xb7\xe7}\n!\xd0\xd5&\xa9\xb9\xdf\xbf\x13\xe0\ \xc5\xcd\xea\xe0\x8a\x06/\xb4x*\xc1#\xbdO6\x8b>~\xa4)\xd3\x1f/Wp\xfbO\xcc\ \xc4JH;)\x1c\xc6\xfa\xb9\xa4d3\xaaX\xf3\x0e=\xe6\xbe\xfb\xab\x87\xa78\xd5\ \xda\x18\'\xda\x80\x96\xfd\x1e1 \x85\xd6\xd2\xa5\xfc\x16ps\xd9\x8fYj\xbf\x06\ 3N\x85\xec\xa9\xa4\xc64\x16Y\xc3\xe0\xe7\xa4`\x87i\xb6>\xd0\x11rd\xe4\xfd\ \x15~,l\xfdn\xf5&>h\xc3\xbc\xd47\x8cS\x91b\xf0H_2\xf4\xa6,n\x98i\xbd\xa5m~\ \xe3Z\xb5\xa3\x84\xb7\x97\x9d\xa5c\x0f\xba\xd3\xf5-P8\xc6\xcd\x96\x08\x19\ \x18\x188*7\xbf!\x8a\x8d\x8d}f@\xc5\xc1\xc1\x01\n\xa1\x8a\x9a\x1a\xc1\x87\ \xfe\x8f\xa5\xf8\xd6\x9f\x8d\'\x7f\xfdZ\xfdY\xa0\xf4O93lGTD2\xe8~\xeb3\xcb\ \xb1e\xbb\x1aL\xfb\x97@\xff$y.\x9c\xceq\xfd\xaa41\xfa\xc8M\xe4Y\x07\xc4?\xba\ G\x0b\xc4\xb5\xe8\xfd\x9a\x9cT\x06\x97\xa1\x8f\xe9\xe8\xc2\xaf\x14\xc2\xaa\ \xcd\xba\xcer`\xf6~\xd1\xef#\x12\x80\x80\x03\x0f\x1e\xb8\xe4i\x9e\xe1\xcf$\ \x08+\x14\xb6|\xd0r\xa8\n\x1e\x12\xae9\x08\xea\x1b\x98\xb2\x0bv\x9b\xad\xb6\ \x9a\xe5o\x0e\xfcyb2\x08\x9c\xd0\xea\x82\xab\xfa\xd3\xe2\xb8\xd8X\xa0]\xc60\ \xc9\xe1\xfbb\x0ez\xa2\xa8x\x01\x80\x8a\x8a\nl\x86\xb7o\xdf\x9a9\x84\xb8\xc9\ \xc4\xfe\xfae\xb87S\x8b\x03\xfc#\x00(v\xa9\x88\xd9\x9d\xab\xff\xde\x0b.\x17\ \xc7\xb2\xcc\x12\xe3\xa8BS\xb7i\xb3v\x7f\x8f\x85fw+\x1a\xaby\x9e\xbew\x93v\ \xea\x80\xb3\x9b\xddk\x9a\x92\xc6\xb58Y\'{;\xbb\xebOUo\xe6y*\xa7o\xe6^\xf2*o\ \xd0BN\xa0\xffE\xb0?M\x17bJIII@\xfc\xdd\xbet\xa3\x18\xf1<\x98\x8f\xb4\xcd\ \xf3\x7f\x00\xe6&\x15\x16\xa8\xb2\x10Mx\xd5n\xdc\xb7\xa7\x11?~(Y\x91\x18\x85\ \xb8\x8b\xc7)\x81\x89\xa5{-^!\x0e\xd4\xa7\xf3\x9b\x80\xe4\xb4\xb4\xa2\xaf_\ \xbfF\xd3%\xab\xb3\'\x0c\xdb\xd4\xba\xa2u\xc0@\x07\xba!+S\xfcC0e\x8bM\xf7U\ \xb93\x8a\xa2S\xbbh>\xd3X17\xedV-=n\xf3\xd8o\x86\xab1\xca\xbcf\xa1\x11\x03\ \xb2\xb9\xd58\x8b\xbf\x1c\xb4\xdf\xdd\x1e2H9/\xef8K}\x7f\xbbP\xc9\xa5\xca<\ \x04\xdf\x92\xab\x1c\xe5,FZ\xd2H\xed\x7f\x99P\xe4\xe1?\xa7}\xfa\xf8\x18\xf7C\ ?.\xa8\xd49G\xf8\xed\xe8mZ;\xe6\xcb\x17\x0b>\x0c\xba\nCc\x1a\x1e\x8c\xbaf\ \x98\'\x13~4\xe2\xaf\xc5\xce\xf6fC\xa7_\xfa2\x02B\x1e{\xcf\x9f\xa7n\xccb\x97\ \xe9\x0f\xe8\x85\x922\xca 33\xe9\xc0\x93\xb6\xba>\'T/\x9d\x90;\xdb\xf0B`\\\\\ \x05@\x98\xd3V\xd1\x1d\xfd\x06\x9e\xdf\xb5\xfd\xfeo\xf7R)\x8e\xfd\xf8(\x191J\ \x80;F\xf8\xf6\xf7\x9b\xea\x9c\x8b\x01\xde\xf2\xc0\x07\x10\xdc0\xfb\x17\xf5]\ B{1\x07\xf2\x9f\xd16\xc6\xd81\xbaZ\xe9B\x9dW/\xcd\xd7A/)N3,\xf8\xf8\x117\xa0\ }\xf8\xfa@\xa7\x82~h\x8aZ\x89\xcc\xfd\x947\xd9\xc1\xe0=(t\xe7~2\xb0\x02hH\ \xa7Pn\xe0\xad7POG\x19\xab:6>\xbe\xaa\x81\xe5\x19\x9f\xdf\xd4D\xeb{\xb6\x87\ \x05heK15\x99\x8e\x98$\x84s\x16\x84\xb7l\xc4SC\xbb\x10Ta`\x81\xb3\xdd\xa7\ \xcd\x81\x7f\x83\t\x98Z\x1f\ R\x12\xa9X\xc4\x7f\x9c\xbb\xf11\xaf%@a\x9f\xf6\x8a!\xd5A\x9b\x00\xc76\x92\ \xe2-\xd0\x98\x98\xde\xf6\x97\x118\xda\xccrZ\t%\x93W\xb4\xb7/\xa3\x18.\x93v\ \xfc\xa1C\x88xn\x1ew/\xb4\xb1T\x17\x85\x8a\xaa\xab#w\x98\xad\xc3# ep~\x9dj\ \x98\xdf\xd6\xb6\x90\x048\x82P4\xf3\xf5\r5`q}~\xacS\xa97\xa8q@+\xf3>B\x8fjg\ \x84 \xb5\x87\xd1]=\xc3\x05\x9d\xe3)\xf7\x15\xac\xa8\x8b\xce\xd4\xa1e\nnh\n\ \x90\xec\x1a\xadp\xd4\x81s7-6\x1c/\xa4\xaa\xdd\xa2\xb5\x92(\xe8\xc8]n\xceu\ \xda\xc3\xf0\x9d\xd7\xfa\xb9\xa9)I\xfe\xe1\xb0 5\xe0\xd4~#\xe1\xa0\xe0\xf6cv\ e\xbf\xea\x92\xc4\xeft\xc7\x15W\xe9\x159\x90?I\x9a\xf5^\xd5\n\x0c\x1f3_\xec)\ \x00\x0b0\x88/\n8s&=\x91\xc9Q\x05?$\xb2z\x82q\x08X\x90\x1d\xc9r\xa3\xf0\x96C\xac\x07\x0f\x02\xf3kk\ yV\xf5Q\xf4u\xec\xdc\xe7\xf8U\x83\xa2I\xfd\x03`2\x0b\xb4\x17\xb0\xd5\xd23\ \xe8I~I\x98\x94\xab;\x7f\xca\xe4/\xecV\xfd\xf4\xe0t\xb1J\xd0\x1c\x1e<>>\x0e\ \x8b\x08\xe9\x8e\xa0\xff96\x16g!\xb4\xbc~t\xc6\xd0\xbd\x14\xc8\x8cO\xb6\xda\ \xa9\x81\xb7\xaa\x92\x88\x8f\x1d &\xd9 \xb5\x9d!\x0f\x1a\nh\xc34\xe1+\xe2\ \xac\xb8 \x05\x81\x8c\x8e\x05\x1c{\x91\x80\xa7\'\xd7\x96E\x91\xc37\x88\xf0\ \x93o\x9f\x1aKl\\\x07{\xf2[{e\xe5\xf0(M\xd2\x08\xadKhI0\x10t\x1fVaPn\xc8/\ \xe3\x9c\xef\xa8\xc1M\xb9\\\x1fX\xefls\x88&l\xfb\xb2x\xc8\x85\xc4E\xd7?\xb1\ \x9d[\xf1O*\xbfk\xf8\xfa\x95-\xa9\xbf\xeb\x10\xe3\x9d\x98\xa3d\xbdW\xa0kI\ \x1e\n%\x84\xbf5\xf8\x81>\x01\xb1\xb8\xb0\xb2\xf2^\x10\xa3t\xe6\xb0M[Q\xd6|\ \x82\xbd,\xad\x02\x01\xf0S\x8c\xb1\xc4^\x06C\x81\x93\xac\x88\xe3\x14\x16W^c\ \x13\xca\x02=:\x01#\xad\xd9\xedI\xde\xdd5\x06,\xe6\x90\xf4\xbc\xd5O\x16n\x08\ P5m\xbb\xf4\xcd\xbf\xa04/\xe02-\xa0\xdd\xfc3\x9f\xceG\xdc\xed,V"\xfay\x0b9E\ \x9dC\x16\\\x02+92\x15\xb8\xac\x16x\x1aR\x82\xcc`#\xea\xbc\x8b"\x82\xcd\xffU\ \x11\xc1\xede\xba\x1c\xe47}\x07\x85vu\xa4\x13\x8d\xec\xbfP\x03\xf2\xb9\xa3(H\ f\xfa\x83\x1c\xf7\x9er&\xb9|\xebf\xb0h<\x9b\x18+^1\x8c\x04:\xc4\xf8\xe9"\x91\ \xb1\xe0Y\xf0_l\x08:\xdd\xe6\xf5\xf6r>\x81\xe8\xe2g\x9d\x1aB\x81\x8f\xb8T\ \xb0\xf7\x1b\x83\xcc\x97\xd5\x0e\xbf\xd2\xf7\x93\x05G[\xea1\xd4&?\x90\x94:j\ \xf2J\x90\xed0\xb1\xb9\xd1\x04\xa6\x89\x16\x97\x13\x8fq\xef\x88\x06\xf2\xdfZ\ J\x1d\xe9\xabB\x1aN\xc4\xea+$\xa6[\xcf#d\x08<\nc\x19\x85\x1f!\x8f\x14s\x98O\ \x0e9\x17\x1a\xc7\x87o\xe2J\xca\xbc\xdd\x95\x9f~7\x9c\xa1\xa4\t/\xeb\xfd\xcf\ \xa5\x1c\x85\xdaQ\x1bLS\xf0\xe2g\xfd\x9e\x8cxt#\xad\xe8S\x18\x80\xc5\x82|FSt\ \xfdu\xfaeV\xdb\x1b\xa3)\xf7N\x0b\xc5\x196\xf4\x8c\x88\x8f\x13\xa2\xcb0T\xa6\ ;W\x1a\rj(xp\xe1?\x8c\x8c\x8cB$\xbe_\xf5\r\x8a\x07K\xd2\xe8#g/\xb2\x0b"\x88I\ <\xb2\xc3\xc4\xa8q3K`\x06o\x97[x\x92\x1cS3Zl\x7fz[\xe4\x99\xc9\xaaC\x0e\xb2\ \x1d\xbc\xff\xc6.\x07\xeb\x15\xacq}\x17zW\xd1\xd8\xf8\xbe\xda\xbc\xfd\xf6W\ \x04\x93\xcf\xb9h\x8c\xb0&\\z9\xb6N^0\xc1c\xc3f\xec\xd7\xaf\x03\xdf\xd5H\xae\ @8$\x16\x9bf2\xd4\x07g\xe0Y\xff\xcbNi\xd0\n\x00\x936\x10\xf7^\xae6\xd9g\x82\ \x907\xeb\xf0K\x93\xcfS\'\xc6\xd30\xa0\xe5t)\xad\xd3\xddC\xaaw&\xc5\xd4 V\ \xca\x80\xc7a\xb3\xfe$\x7f\x7f\xfe?\x1e\x0e\xfd\xaf\x9f\xb54\xa5\x18\xf0-\ \xf2\x82&\x9a.\x99o\xda\x82V\x98[\xfe\xd7\xb5\xd5\xb7O#\xcc^\xb2\ \xaf\x94\x11\x1c\x18\x7f\x03\xd9Y>\x8f\x0chUN\xab\xc2\xf0\xb6\x86\xaa\x1d\ \xf6<\xf8\xeb&i\n\xac8\xff\xb0r\xc4\xfc$\xa1\x86\n\x00\x1f\x93G\x9e\x07kq\ \xee\xf2\xd18\xde\xee\x1f3\xfc\xf8\x89\xc5\xcd\xc1]\x8c\xec[\xab\xdd\xb2\x8a\ \x97\xabu\xf8\xfd\xa5\xec\xce\xedl\xd6\xf6\xd0e\xe14l\xbe\xc8\x08hL\xf1\xc7\ \xec\xcdRx\x1d4\xa5H\x86\xc3\x9e\xb8i;o\x8f\xa7\x1c0\xd2\xe3\x9e\xfa\xeb>\ \xc5|\xb9\xb3a6\xcdQw\xf3\xba\xd1a\'O@\xf8\x00\xcb\xd9\x0fS\xe0\xdeC\xba\x08\ DTa!\xdbG\x04\x8f\xd3\xc9\xee\x16e\xbc\x8c\x0c\x89*\xa4\xa3)\xec\xc3\x07r\ \x90\xfc\xd2K"\xe3\xe2H\x91\xdd\x8eb\xbc\xc3\x9a\xf3\xb6\x900\x18\x10\x04\ \x92\x06\xfa|jE\xc1\xdcay\x12\xd3M\xbcP\xf1 D\x14^F\x15\x1b\xceuw\xd6\xd0\ \xee+DId.b\xd5k\xcf\x98\xed\xdaE\xb3\xeb\x89l\xfb\r\xc4\x05\x9a\xcbc\xe6\x07\ \xca\xc3\xa0\x9f\xf7(\xc55\x88#W\xb67\xe2n\xbe\x04o%]\\\xe6W\xde\xb5\xb8\xcb\ \xd0Z\xa9!\xf1[\xb0\xfe\x03C>X&\x0e\x8e\x1en~\xfe`\xfb\xcc\xc5\xb6\xf8\xb8\ \x83\xc5\x89V\xd2\xca\xd9\xe6\x96\xb7\x98\x18\xc67\xd4\xbf\xdc\xfb\xa8#g6^\ \x84t\xb2\x80\x1f`x\x8a\x8a\xdeWjumb\xd8\xd9%{b`\xa0\x86M\xf2\x8aA\xad\xfcT\ \xb8\x1b\'\x9db$\xac\x8bfm\x7f\x9f\x11\xbd\xe8:*\xe7Y\x82\xe0\xe9\xa4)\xaa\ \xf3<\x0cW\x93\xc3V\x84t\xd2X\xfd7W\xbf_$\xe98\xef\xd56\x8a\xa6p\x04\x0cV&\ \xaf,\x88%3/\xf3\xa4Xq\xc5\xb4\x95\xb4\xb5\xef}L\x06er\xd6\xa1^359\x8b}|f&\ \x08d\xf9gpa\xeb\x01\xfd\xf4\x92\x8d\nda\x90-)\x99\x15\x99\xc3\x88\x8f\xe3\ \xbf\xdd5!\xf7\x1d}\xa0\xa3@)\x02\x98\x91\xed\nho\'\x06\xf6\x88\xa8u\xc5\xc4\ \xc4\xfe\x99%V\xd0n\xa9\xc2\xa2\x98\x9f\xe2j\xf6g;\xb1\xff\xc0@\xf1\xf2\xa2\ \xdc|\xe1ri\xdb-\x93\x98\xf5\xf2\x94\xe4\x14\x02\xc0 u\xb3\x15\xff\xf6V\xdf|\ 6\xb6b\xb0\x8a\xda\xda9\xe3{\x05\xc5\xb1\x0e\xf9F[\x89\xbe\x9a\xc1/\xa8\xda\ \x95\xf2:\x82\xca\xc8\xc8,c\xae,\x8dS\x1b\x1e5\x8f\xb3$\xf5\x83j}\xdf\xdd\ \xdd\x1d\x08\xa2\x7f\xbbn\xfb\xff\xee\x05\xa0\x15\xb5\x01\x12F\x9a\xdas\xe8%\ \xbbw\x8fi\xbeQ\xd5&\xedu\x99\x17<\xa3)\xcd\xf1\xa0\x03\xbc\xa6\xd8\xbaVj\ \xfa\xae\x1dy\xf9\xf9\xc3\n\xb9\xbd\xeen\x16\xd49\xf5\x9e\x19T\x0e\xce\xe7|z\ k\xf1\xca\xdc\x82\xa6\x84\x9c4\xe2\xa2\xd9}7\xe0z9\x94\xccl\x84F\xf4\x8a\xb8\ @>\xa4,\xe7\xc4\xbcg\xce\xa9]\xce\x12=\x92cN\x16\x11\x1a\xe2\x9at\xf6\x8d\ \x8eJ\xe4\xfd\xa2\xf9\xe53X\x01\x96"\x1cK[\x0f\xb4\xc089\xdf\xb3 a|\xed\x89\ \x9f\x8b\x8b\x8b*7.\x14*g\xfbs\x04@\xba\xe4\xa1Vrj*(\x89\xde\x1a\x879\xa3\ \xb4\xdckgb\xb9Ek6\x1f\x93\xd9R\x06,\x06\x92\xfb\xa56\x92]\x00\x07Bh\xa42\ \x94\x04\x1fL\xf5\xf7\x89\xc2\xb2[\x83Yzc\xe9\tx8\xea\xdf\xceE\x99\n\xec*\ \xb7\x9de\xefx\xbb\xcdu\xd8%\xe4\xb3\x86[\x8e\x83\xcdz\x03\xb2\xd5\xc2\xd5\ \xb8\xa6`N\'\xcd\xe7\xcb(Z\x99U\xe6\x91\xdeH?p\x18\xeeP\xf6/2j\x1af\xec\x9cr\ v\nv\xdbH\x03\xbc\x12\x02\xd6\xdb\x0c\x0c\x94dr:K\xb4\xb3X\x8b\x95\xf9\x1e(\ \x89d(\xcb\xe4\x9c\xa5+dh\xb1e\r\xffwu\xb6\x0f\xd2\x05H\xb2}\x15\xc6\xb6R\ \xe2\xae\x90\xf9\x8e\xe6o/\x7f\x1dU\x9b\xe20\x96/\x90<\x8c\x8e\xf7[7\x05\x8d\ ~f\xe6}j\xea\x03\xc1\x0c\x05J"\xef\x0f,L\xf1V \x8a\xb0 -\xc0_\x1f\x19\xc1\ \x1c\x13\x85\xc9\xdb\x04\xb1\xc1\xd4\xab\xb8\xe1c\x0f\xe3\x1f_F\xdc\\a"\xb2\ \xd3\x0b\x98\x9e\xfc\xdc\x88\'E|\xa7w\xaa`l\xf1\xc5,\xbe\xb9\x0eP\x90\xa2v\ \xb0\xf8O\xfeP\x01\xc7&\xee\x96`\xe14\xc0q\xf6\x89l\x85\xe5\xc9\xa66\xf8\xe7\ &?\xe9\niS\xf4\xbf\xaa\x8b\xa6{\x95\xc9yv\xb0\xb0\xcb\x11\x1d\xb8JA\x1d\x8ch\ \xc8\x85J\xaf\xdev/\xdd\x15\xb4Y\xc0y\xc6\xb7I\xc0DSc\xd1\x89\rt\xdc\xde\\\ \x81o\xec1\xd3!\x1b\xd6^sI\xcf\xa7O\x9f\x1455y=\xf6f"A\xe8\xbb\xf6\x8f\xa7h\ \xbag]UL9\x84\x9e\x18Vf\x13\xbe\xb3U\xb8\xba\xa8\x06\xdb\n\xc2\x8a<{E\xe6\ \x05\xd4\xdc\xe3\x85\x8fo\x8b\x81 \x1av(\xd4\x1bU\x9c\x8c\x9d\xf0\x11\x1dA"\ \x91\xd8\xe6\x8c\x7fx\x91kV]\x1b=\x8a\x1d\xac\x08\x18\x18\x18\xd898tl\x8d\ \x15\x81e\xfa\xf9\xfbw\x94\x16\xe7\x1aV\xa7x\xdc\xdd-\xa6]\t\x12|q\x82^\xfb;\ \xf1T\xcd\xd7W\x96\xbb\x18Z\xd8\xa0C\x96kOL\xabw7|/\x82S\xbd\xf8C\xe3Q\x17\ \xb1\xf0\xebI\xee\xf5w\xd2\x93SS\xff\xb6#\x18H}\x87\x98#\x95\xc1\xee\x16\xb6\ \x19\xa2\xf9\x84\x8ajX\n \x06\xc30(<\x161\x0c\\Tv\x16ok\x8cC\x1dE\xb55\t\xf1\ C7\xc1I\xbb\xdd\'\x0b<\xef\x9e\x96F\xcb9.\xfb\x00\xce\xeew\xfeWg\xb1\x95ee\ \xdf\xba\xd0\x13\xd6F\x87?\x14\xef\xff\x9e\xc3\xf5\xbcR\xcd\xcb\xdf\xbe\xf31\ \xf9H\x81\x84=\x01S\x9d\xe5B\xb3\xe4\x13\x9e\x9e/\xf6\x13\xad\xeb\xce\r\xce\ \x15\xbe\xce\x0bK\xb7g\x92\xff\xae\xfed\x96\xac\xe9\xe5]\xdaB,\x83]\xcb\xc9J\ \xb6\xac\x90x\xad1\xb7}\x93\n5\x10\xacwM$QQQ\xff6\xbb\xa1\xb0g\xe6\xe6\xf1\ \xa02RRQ\xb1B!^,\xced\x9b\xae\xa3\xcc\xbek\xb1_\x85H\xbag!_\x1a\xde\x85\x1b\ \x99\xc9\xa6\xea\x1f\xb5\xde\xef\x16J~\xce\xa7\xf32\xe0"\xc5\xc4\xb0\xcaT:\ \x1a\xf1\xda\xdd(\xac\xd5\x1c\xc2:)\xa6}\xb1S^\x1d\xc0\x9a%\xfe\x88\xb6\x08\ \x06\xd1 \xb6\xbd\xfcFk\xeb<4\xd6\xad\xe7\xd3J\x10\\2\x9beZnX\x19\x92L\xfe\ \xd9f\x18\xdb\x8a$R\xb9\xab\xbc;O\xa7\xb4SZMS\x9387\xe0\xd2\x1e\xe8\xf0F\xe7\ D\x80\xb1\xba\xa0\xb2\x921Y\xe4)\x11\x89\x8e>u\xefP\xd8\x07\xdf@\x9e\xb7\xa7\ \\\x89\xea\xabu\x83\x02\xdd\xe7\xc7k\x9d\xd2}`C\xdc\x07G*R\xb9uj\tOQC\x830*:\ z\x0c,\xd8T\xb9\xd1C\xf2H\x06\x17\xe5\xc9c}\x17\xfc\t|8\x12\xda\xd5\xc4\xc1\ \x96\xa8\xfe\xf7\xb8/\xef\xfc-(+1\x08\xf8Iw)\xcfr\x98\xec\x89R\x04)U\xdbq\ \xef\xa5 >\xf6\x13\xe7\xc59\x9dw\x87\x82\xf5\x87#\x98Q\x86\xd0\x0c\\I\x83\ \x04\xe1(\xaf\xc7\xff6\x83\n\xab\xaaH\x8bTc\xbb\xcaJs\xa3\xc0\xf9@?/d\xd0\ \x9a\x00\xe7+|\xe9\xb0\x8fX\xb05\xe8twZiB\x8c\xcf\xb8\x0eLBd\xe1\x96A\x08Y\ \xa4\x17\xc0\xab\x9d&\xbd%\xa2\xd7}\xd4U\xbc\xf7x\xd7ag\xb2\xec\xfco\xe9\x1d\ ^\xd0\xfeE\xff+\x87\xc8\xe5\x9d\xdb\x8b\xd7\xcf\x8c\x8di\xb9\x8b\xbd6R\xa6>\ \xa1P0\x17\x97D\n\x158\xbeP.E\xf1\xbd\x00\xf9\xb0\x04-]\xfd\xf2\xa2\x87\xc7\ \x89 \xbf\xde\x15\xd8g>\x00\xa6\xbe\x12\x98\x12*\x16\'\xbf[\xeb\x8d\xa5~\xf5\ 9C\xd4@\\a\xbe\t\x93\xf68y\xca\xcf\x19r\xe8\xfd\xceT\x9c\x9b<\xb2\x10\x14\ \xcf\xa7r\xa7\x94\xdc\xc5\x8d\xe7\xab\xd1\x05\xa8G"\x191\xd4\x0ci\xe6&w\x98\ \xf6;\xb9\xbaY>0\xac\xc7qhV)\xfb\xfa\xf2\xe2\x93\x17\x89<\xe65\\\x12\xccC`w\ \xffxb@e\xea\xbb\xdf\x00\xcaT[\xa6\x82c\xbf\xb2\x11\xb62\xdb}0\xa6\xff\xdb\ \xa1\xa2\xa2\xc2\x02\x98\xbc_\xe1\xb9\x99E\x94\xcc\xe2\xb5\x07\x8d\xbc\x8b\ \xe7\x1a\x7f-\x97,\xbd\x13?\xcd7\xf8_\xa2z\xba\xd3b\xebEK\xbc\xdc\xd9\x0c\ \x1b\xbcl\xc5F\x04\x01\xe4\'\x13u\x0b\x1d\xfd\x19\xac\xf6{2-\xce\xe5: \x1ep\ \xd2,\x1cC\xa2\xd0\x88\x859\xd2\xb6\'\x0bE\xe0\xabX\xbe\xef[;_c\xbe\xfb\xa7:\ \xd9\x01\x97\xdbRk1\xa2\xad3,\x92\x0f^B\x82\xd5\xd9C0\x8b\xbed\x83\xa9\xfc\ \xa1\xc9\xe4i/}x\x04\x9a\xb7\xd8\xc4\xc4\xc5\x83kG\x18V:\xdb\xd6;+\x1d\xd5\ \x02~\x13\xf8\x95"x\xfcnv\xcd\xfb\xfenO\xb0"\x15\xfd\xfd\xe5(U\x9e\x80\x02(D\ \xf3\x18\x86\x17\xd5\xf3\xdf3J\xbc\xc0\xab\xb9\xa5\x1a\x8f}\x99\xe4\x94\x94`\ \xe8\x8e\xfe\xe0C\xb3\\\xd7/[v!\xe5w\x9e.\xdf\x1fS\xb0\xe2\x12\xe2b\x0f\xe8=\ \x95\xbb\xc9\xd2\xce\x92\x88-M~\xc7\x8a\xebr\xca\xdad\xd57"|\xef\xde\xbdhqm\ \x02t\xc8\xd9u\xc2\xa2\xf9:Tv\xa6\x92Jdkd\xc1\x04\x8e\xa5R\xdbF\xaf\xa2\xa2\ \xf2\xa9\xaa\xaa\xb7(^\x9e\x08\xce#\x7f5;\xda\x85>\xf1\x9e*<\x89\x17\xe2\x7f\ \xf4\xa8\x0b\xfcvT\xfb\xdd\xcd!h\xb9`6\xe7\xdf\x1c\x96%\x1e\x1e\x1e\xd6\xb1\ \x9c\x0f\xaez\x8c\xb3}\x97x\xb2\x16\xd0\xdc\xf9\xdac\xfb\xcc\xd0o[\xd3\xbc\ \x8b#\xcd\x14\x9b\x87\x03\xcc\x0e\x89\x83\x1b\x8f\xdb\xdb[v\xd0\x9a\xd8\x92\ \xec\x97\xf5s\x8e\xa1\xd0y\xe9)D0JdF\x89y\xafQ\'\xd9\x83\xfdT\xb2=[\x13\xce#\ :\xb1\xbd\xb7^\x9aw;\xd1>;\xad\xae\xba\xa2\x1e,\xb9\xe8e\x15i\xf9\xfc>\x0c\ \xa2F-\x97\x8f& 3]?\x95\x0b:\xc0\xec\xdd\xfc^<\xea\xec\x88\ \xfe\xa4\xd2\xfc\x8a\n\x12\xa7\xb6\xd3T+\xa8\x07\xd3\xbbJn"\xb6D\xc8\x87~v\ \x14\n%\xe4\x7f\xe9\xe6T*\x9e6h\t\x12]\xcdZ\xac\x18\xd7\xfdbQO\x0b\x0b\xff\ \xbd\xac=+CB\xf2HR\xdcP\xac\x7f\xb3z$x\xf7\x87\xa7z\x8f\x18=\x8fSUb\x9f\xab)\ \x9a7\x1f\xba\xe9\xd8vj\xf8\xf8\xfa\xa8;]\xc8\x92\r\x1bK\xe1\xfa\x96E\xdf\ \xc0U\xa2C\x9e\xc1`\x05_\xc7\xac\x8f\xa3\x98\x12\x8c\xe7(\xba$\xc4d\x1b8aK3\ \xdf\xfc\xe7\x18\xc1\x90^\x14M-\xc8i\xd5\x1b\x93\x08\x83\xd4\xd0;6b%#\xfe\ \x80\xf8\xb1\xe1\xd8~3=j\xa8\x1fC\xc7\x18\xdd3"F\xa2\x04:\xe7`\x0c\xa3Y\xb8\ \xa0i\xdd_\x8f6\\EKc\x86d\x91/_\xbf\xfew\xb29\xdcx\xfdgP\xd8\xfb\xcf+u\x9eZ\ \xff+\x0f\xe5"]\xee\xa8\xd5\xb2\'(\x94\x07V\'Oiv\xc8\xf88b(\xcb\xf3\x81j,]\ \x18\x06\x0c\xd2`h_\x1c+\xb9\x08C\x11\x95\xe6\n:\xc7\xeb\x0f\xdb\x88\xaa\x17\ \x8f\xa7\xcb\xf9>\xb8\xddm\xff\x16\xf1yDf\xd0\xca\x0e\xf0\x9e\xda\xf5\xb1\ \xb1\xf0<]jpb\x063\xca\x80\xf4n\xc5\x0f\xe9\xf9\xd14\xcf\xb8\xe3H\xcd\xee0mV\ \xa4E\x0c\xc2lZCOo\x8d\xd7\xa9\xfd\xe6\xd7\x072\xf9s\x0bq\xab!\xa7\xcc\x12\ \xf1\xc0[?a\xcf\x03\xd3+\xdc1z\xa7\xd6\xfb\xc9\x88y\xdf\xc36\x87\xfd\xdf_\r\ \xcd\xcc\xf6?\xa3P/\x8a\x8b\x8b\x99\xb1\xf2\x89:\xf1\xb6\xadf\xa5\x16\xb5\ \x96N\x99\xea\xdf7\x8c\x12\x8b\xae\x9c\\\x1c\x1d\xb4\x1c\x16\x16\x15\xdd\x8b\ \xa6\xbe\xa3(\xd1\xc9\x89\xea\x8e +\xfa\xf6\x8d\xa9\xf69\t\n\xe5\x83J(\xb1\ \x7f\xafZ\x04\xa2\xbd\xac\xe7o\x17Qp\xd1:\x91\x84\x14\xce\x07Mh\x00\x90?\xcf\ \xffM\x9c\xf5\xcc\xa0\x87\xb7t\\Z6\x8c\xa4\xd7\xb0\xccA)\x9b%m\x90-C\xeb\xbf\ \xbf[c\x8d;(\x8e\xc6\xcb\x9d@%\x17\x97H\xcf\xd67\xac\xa5\xa6\xd8\x8e\x8e_\ \x90U\xbb \x19u\x87\xc7\x82\x90\xe6\xae\xcf^<]\'\xccEzo\xe3\xbb\xb6\xd1B\xad\ \xeb+w\xb3\xd2pK\t#\x83\xfd\xf3}\x90\x1b\xd38\xc9#\xbb\x91\t\x00+;AP<\xbdd\ \x9c\xdf\x9f\xa4\xbc/\xfb\x95y\xd7\xeb\\\xf9\xc9\xab\xd4\xed\xe7a\x15\x95\ \x95\x06Rh\x9f\xb7o\xf73_\x894}\xfe\xf8\xf1U\xee\x123\xb7\x88\xf6D\xdd\x12\ \x0e\xab\xffn\x87\x9c\xde\x92\xd6\xe2\x9d\x1c>\n\xbf)\xc6\xde\xf8\x81\x9f\xd9\xcc\xc1S\xb1\ \xfcT]\r\xb2P\x8b\x91#\xfb\x9d\x85\x03\xecS\xdf\xf2\xc1\xa8\xe3\xe7\x85L\x86\ \xf0D%\x89,,4vJ\xca\x9as\x0f\x95yG\xfb\xed\xee\xb4\xf0\x9b_|h\xdf\x1b\xe6\ \xbd\x05\xfa2T\x14\xb1@#\x80B\xad\xe4x.>y\xcc4*\xcb\xf7\xddFd\x9aiK\xeel{f\ \xec\xa7\x91?6OX\x02\x82\xc8\xc0\x80\xc6*\x06\xa4\x9b\xb6\xb3_&N\x8b\xa6&&W\ \x1f\xe8W\x1f\x16k\xc9V=\xa5\x85\xe0\x1e\xa5T\xfb\xe1!\xe0PL\xcc|\xb4@\xf3\ \xfb\x8a\x97m\x99\x8f\xa2\n\x89Ya0\x088\xd96\xd9\xde\x9b\xc6\n\xb4r>C0\xae&\ \xd3g\xbf\xdb\x19\xf8\x87\xa2\x98\x07N\xfd\x97\xba\xab\xe2l\xfem\x97\x14=\ \x0c\xee\x8e\xd8M\x1c\xb69ZOz\xba\xdaE,\xa8\xac\xa7G\xc1\x14x\xed\xf2\xe5\ \xcb\x17\x16\x90\x7f\xabt[\xf4\x89N\'\xef\xb5l\xda\x91\x88\xda\x8e|\x07\x0b\ \xdc\x9a\xbd\x1a\x1e\x8e\xef0S\x83u\xd8\xfa\x99\xd0\x17\x13\x10\xf4\xcb\xb0E\ \x99\x15\x888^\xa0\xa2\xad!\xf6\xd4x\xaaB\x18\x06\x03\xa3\xde?\x12\x03\xb9\ \xd5o(W\xaeO\xf3\x97\'Y\x17ST\xee\xc1\x83\xf7\x85\xc9\xab\xdf\xaeR-{\xa2\xd4\ Z\xb5\x85y\x8a]\xbf\xbf\xc6\x8e*\x94ACO\xc8\x8a\xcd\x96+.\x11pV*\x95\x82\x18\ \x1e\xbb7o*\xcb\xc0.{}w\xbb#\x0e|H\x1e\xafH\xaeS\x81\xcf\x12\xb1\x0c\xd3\x88\ J\xa1\x7f1z\xce\xb3\xb6\x9f\xe4\x1cv\xd4U\xe8\x00|\xa6\x8d\t\xadg\xbf\xdf$\ \x0b\x978\x8f\xdc \x13\x1a\x93\xc7\xd5xb\xf3|v\xec\x8d\x86\xb3\xa5]\t\x8b\'m\ i\xc2\xf3s\xd4\x8a\x94\x06`\x14\x15W\xe3\x0b\x04\x81o\x9fN\xcf\x91\xf4Y\xd2\ \x18\xb3\x93{\xbcx\xf5\xf6\xed=\x10\xd7\r\xab\xaeym\x86ep\xc0\x91|\xfe\xf55\ \xd5\x0b\x13\x93\xfb\x10\xdcV\xd1&Sh\xe3W\xf7\xbd+\xcd\xe4\xe4d\x8b\xf9F\x17\ nA\xc1C\x04r\xe7h\xa5\xfbSe\xa5\x8a\x99\x19#\x1d\x1d\xdd\xd8\xfc/\x9d\xe8\xad0\x17\xf3\x14R\xec!\xa0\x8er\x19\xcd\x95+W8\xb78D\ \x99\nL\x03s\x1eo\xd3\x10\xf5Xv\x04\t\xb8\tE\xc9tH\xe8\xc5\x8f\x87\xf1\xef\ \x05\xfdV\x88\xcd\xb0j\xec\xc6\xd8\xfe\xfc\x19\x14\xa4\x80\x97uIOc\xe1\x12\ \xb2\xba\x00\xc2<\x1c\xbc\x82\xd5\xe7?\xe6\x9b\\\xdb_\xe8\xeb\x8b\rW}a\x91\ \xfa\x8a\xf9ub\xc7\xad\xb5xu\x1a\xdad\x08\'\x1c\x14\xc9\x81n\xe1\x92G\xb2\ \xbf~\x8d\xd2\xd5\xd5\r\xb6\xcd\xf5\xc6\x17\xb5\x19R41\xa1_\xf4;\xd1\x063/h\ \x89>)\x93\xf3\xaf\x89bj\x056T\xb8\x8b\xcdHk=\x9e\xa6\xf4s50\x95\xb6\xd45\ \xe7\xef\xe8\x1c\xc0\xe5\x9e\xf7zj23I9\x03\x04\xa4\x0c\x8a\xde\xde\xd2\x8f\ \x1e=j\x0e\xeaH\x91!{\\\xc3\x10/\x7f\xc9\x8dL\x90:l\x8d_\x8eP\xb8f\x05\'\xcc\ \xa5\xfb\x9e\x82\xaa\xab+qH\'\xc0\xb7\xbb\x15l\xd1\x88\x1b\xe3\xf6^X\x95J%\ \xd8>3\x83L~\xa6\xc1\x06s\xb0P\x8e(\x9b\x0c\x98\x89\xc9KB\xd4\xe3l\x01\t@\ \x02~\x02+2\x1d\t\xe5%\x8f\xfc\xd1\xe6\x8b\x19(,d\x9b\xc3??\x8e\x0f$\x81\xf3\ \xfc\xbb7\x004\xdfn\r\x86\x1f\x9e\xc1\x08\x98\x9dP\x86\x16\x03\xaa\xaa*@\x13\ \xfe~u\xf5\x03af\xc9v\xb6I\xd7X\x9b/\xc3\xeaX\n\x91\xbf\xf9\xa1\x8f\x8b\x19\ \xfeg>\xe2\x80@\xe0\xeb\xd7\xaf\xcf\x9b\xdeq\x8c\xc8aL\xb5\xb2\xa5\xc6\x06\ \xd3\x07l>Cp\xb1\x8f\xaenr\xb5\x13\xee>g\xbd*\xe4\x8e\xa2\xd6|E\xa3\x9a\xe6\ \x93\r4\xeb\xdb~\x1e\xa5\xe1d\x12\xdd\xe4z\xd5\x88\x1a\xb10\xf2\x87AP\xe5\ \xe5\xb5\xf6\x13\x9c\x87|\x00O1\xc5I\x9e\xd3c\xcd\xa1\x0cQ\x822}\xba\x15g\ \xc8?_\xd67Py\xcc\xf4\x8f\xd1j=\x16^\xbc\x1a\xb7\xb7\xcb$\xe2Y\x17\xfe\x94&\ \xdeH\xa0\xce\x83[\x1c\xf3:SGk\x02>55\xd5\xdad?\xd1\xbb\x01~Q\x9dY2\xfb\x84g\ \x03\x90\xc96PX\xf9B\x12\xc4\xc7\xfa\x1da\x90b\x92\xca\x01:\xa6av\xe0\xedE\ \xceN\to\xc0\xee\xce\x8e\x10\xa8\xf0\xe3\x93\x93\xca\x10V-H\x01\xce\x11\x16\ \x04\x1b"\xfb(\x91\x19\xe0\xe7\xe7\xcf\x91s\xdd\xa45\xd2\xd7\x8f\xc9\xeci\ \xc2\x1b\xac\x93SA\x06\x91\xa4nG\xa0\xf0\x19\xbd\x99\xaf\x08F\xf0\xb4&\x14er\ T\xc147\xbeM\xb9\xb3\xb3\x03\xa6\x89\xa3\x9fJd+\x85\xd1\x02\xd8\xc0\xa1\xa9Y\ \xcbz\xfe\xa6\x06\xb6\x11\xddz`\xb3\x04\x0cs\xf8\xb7w\xa8\xbb\xd8\xaa\x05\ \x11\x86\xf8\x97\x02\xfe\xddX\x0bf\xc5\xbf\xa8\xc5\x94\x94\x14Kp8>UT\xec\xb1\ \x11\x9a\xbe+\xef\xdb\xd0\x8cX0`^&P\xb8\xc4\xaa\x9be\xb8\xc6\xc2w\xbc\xb7\ \x14%\xa7\xffA\x07MX\xa0l@\xf5<5\xa5\xb2\xbc\xdc\xd7w\xe9[[\xb5\x84\xa4\xe4!\ vG\x0e\xc5\x86\x1eb\x80}\xcf@a\xff\x0b\t\x10\x8ax\x8d\xbd\x0c\x83\x1co\x08\ \x06\x1a\xff\xdb\xe9y\xb9\xcf\x0e\x83\xcc\x8c\x17k\x82|+F\x17\x96L.\xd8~-\ \xa2k0E5v\xf0 \x17\xe8\xb0\x8c\xa61\x7f\x94"c\xaa\xa7\xf7\x995GG\\\xb5\xe8X/\ \xa4SQ\x1d\xa2#E=\x9f\x8a\xbf\xfe^Q\xc6W\xf1\x86\xb4\xa9#\x92\xe7\xfa\x85\ \xa4\xe9ok\x86\x11\xbc\xeb\x00fp\xc4\x8fg\xac\xe2\xc1\xb4g\xd1\x19\x82\x07\ \x9a\xd9\xe2\xcevn\xd7\x07A\xbc\xf9\xd0\xbf\x7f\xee6\xc3\r\xd7\xab\x1b\xe5\ \xbe\x16|0\x1b\xd4\xf3\x1au\xd9\xbdm)\xcb}\xfb\xf6\xed\xe2\xd8\xa7\x83\x81\ \x07\x91\xcaq\t"U\x92?r\x89I!\xf8\xc9\xad1?\x93\xfb\x8en{\xa5\xde\xf1PE\xf5\ \xb2F\x18\xbe\x0bT\x9c\x9c\xf8\x0ba\rKF\x08\x95<\xd3\x9e\x80\xa0\x1f\x9b\x98\ \x98\xb4\x04\x80\xe9\x9f\x17L\xfb\'p\xce$\xe9\xbd\x18\xde\x9cRtKs\x00\x11\ \xe9\x89l\xa9\xe6;\x9e\xe2\xc6?\x03\xbc.K\xfe\x18oR\x82\xe9\xc1\xdeT\x01\xb3\ \x9d\xc7\xfa\xcb\xad\'#J"\x19\xc9N\xad\xc7\xf8cb\xc3\x06M\xb8\x0e@\xe30;\xf2\ \x13\x0c2;>^WZbs\xa7\xaa8\xf0\x9cO\xbe\x17=\xe1?Bx\xbc\xb8\xd8\xe9,t\xa3H\ \xf3M\xd6\x1d\x05\xcb\xa9\xd2`\xc5\x05\xf3\x8au\x86\xd7f\x86m\x8d/\xc6\x91\ \xefy\r\x00Z~\xee\x9b\xc9\x05\xf6\x93\xab\x1b\xb0\xc1\xcdL\x8bq\x8eG\xc9RL\ \xe9c\x11Q\xd4\xe6~\xf7\xb3]\xab\'#-i^bY`j\x1c0\x16$f\xd3\xf7I#\xe2\x9dK\x7f\ k&\xe1\xb1\x19\xe8s1\xf5\xde\xce\x9fJ\xb9c\xb3\xf4I\xe4\xef\x0c\xd3Xl\xe5g\ \xd2\xd8\xad\xc3\x98\xc5\x12\x8e\xde\xcd\x15\x94\xa1\x88\x0c(S6\xdf\xcd\xd6\ \xdf\\a\xaa\x17\xea\xacO\x8a\xae\xce\xf6\xcdr\xfa_\xd1\x11\xb2\x86@?\x0c[\ \xf9\x19M?-\xd4\xdb\x10\xa6T\xa9\xe5\x1b\\\x05;\xe7O\xae\xefA\xa2\xc2\xedq|\ \x1b\x1eK\xa0\xce\xbf*\xb7\xa5\xf1\x14\x7f/T\x89NPg_\x07\xb1\xc5\x92\x9e0\ \x86P\x8d\xf2\xb8\xd5\xa63\x15\x1fem<{yy\xe9IOGj\xc4\x13U\xa8V46\x16U(2\xb8\ \x8a\x18\xc8\xf5\xf8@\\\xae\xe1\xcd>Af(\xd3\xd8\xdcd"\x92\xedE\xd1I\x13V\xb5\ \xfb\xbc=@\x0e<\x864\x18\xe4\xc0\x91\xec\x9b\xa3q\xf5\x8c6\x1b\xfdY\xfb\x8e\ \xba\xf9QT[\xbb\xa2\xcb\xd6O\xd6\xeb\xbf\xa5\n=\r\xdfN\xf9+^|%\x8a~\xc0\x0f\ \x03\x83)\x12\xfa2\xd7\xf5\xcd\x1b\xde\x17/^$hqb\xcd\xd4*9\xd60$89\x10C\xb9g\ \xa6\xeb\xb1#f\x03\x0b\xb9\xc9{S\x7f\xe3\xbe\xf8\xeb\x93\xac\xe5\xd0[\x80y\ \xd4!J\x97\xfeZ3\xa4H\xe1\x95o\n\x1e;\xa5\n+\n\x95\xa0\xff\xc8\xa0\xddv\xf4@\ \xdc\xa4\xe1\x1bf\x06\x0c\xed\xe6\xa36\x9f\xb5\x91\xd0m\xa1\x00\xd9 \x89\x99\ \x98\xa5\xe0\xaa\xf2\x808a\x1bB\xd6F(\xcc\xd4\xef\xb8\xc7\xebO?\xd7\xc6\x05:\ \xef\xb0,da\xa9\x80\x0bKfb\xdd\x01\xaa\x95#CU\xdd~\xdb\xacU\x8cxf0\xb5\xfd\ \xb1\x94\xc8[\xd1\x99\xd3P\xb3tB\x1bT\xae\xac\xcc\xccL\xcf\xddf\xa6(\xd5\xa2\ "\xda"P\x07\xc2\x12\xea\x9c\x95\xbc\xcf1\x90y\xe1\xb9\x0c\xab\xa1\xe8\xd8\ \x86\xd0\xf9=\xbfU\xa5\x88\x9d\xe3\xbf\x13O\xad\xc0H\xb9\x18yrP\xe0\x9bj\xcd\ \x98D\xb5\xa4\xfd\xcb\xc5\xe8\xdaM&\xd6z0ue\xa7\xbc\xbaw \x85\x174\xbf\x7f\ \x1b"\xffn_\x03\x9bB\xf8\x11/o\x9b\xfe\xa82[\xf0\xe6\xa6\x8d\x9b\x9b\xdb\xbf\ \xedI**\xaatQ[\x9dR\x028\\\xfd\xbf`\xc5\xce\x83\xde\x08\xe7\x84k\x82\xc2\x02\ \xa1zF\xbb\'\xee&\xbc\x16\xe4H5k(\xfdR\xcc%?\x95\x90+]:g\\\xa6\xcc\xab\xbe\ \x1d\xc5\x99*\xad\xb0g\xf0\xb1\xdf\xbf\r\xff]b8\x99\xab\x7f\xeb\x7f\xf9\xb3@\ \xc9\x896|le\xc8\xb7\xd7\xd2\xcf\xb3\xc7\xd3\xe8\x86\xd2\xc1_A\x8dG<\x87N\ \xb1\xb0\xb55\xfb\xee(B\x81\xbda)\xa0\x85OP\x10\xf3\xd1\xee\xe9a\xbc\x9b \ \xd5\xca7g\x03\x83\xe3\x01\xde\xea\x04\'0\xe0~B\xa1\xd8\x86t\xc8K\x10p\xaa\ \xa07,W\x96\xf4\xfd\xac0u\xdc\xa0%RQ\x15\x8b\xa1\xf4\x81\xa6\x89\x12\xed\x96\ \x8f \x07\x12\x81\xe6Q\xc2\x83L\xc8O\xfei\xd5\xf9Wn\xa9;ne\xc5\xd4K`\xdcMf[?\ n\x90-G\xa7\xa0\xa0\x00K>\x8f,\xefj\x1e\xed\xbc\xe0>m\t\x02a\xee\x0f\xb7`!\ \xd3\xf1\xfc\xcf\xe3\xc1A\xfe\x16\x11\xfc\x19t\xf4\xf4\xb5>\xa7\xaf\xe7\xdf\ \r\xf2\xff\xbbb\xc9m\xfd\xbe\xcf\n\xda\xb5\xf8\xe3\xb5\xa3\xe3\xff\xf6H\xd0\ \xb9&\x91z:\xb4\xffn\x91]\xbe\xc1,\xa9\x19\x18P\xd5;\xcc\x86\xd8O\x94\xac\ \xb4\xdf]\xb5\xeb\x9a\x9a\xc6\xec\xec\xbcVf\xbbOI\xd5\x03<\xd3\x9f\x12T\xab\ \xbc\x16X\x1d\x13\xaa\x9f\xae_S\xf4\x95\xc5\x0e\x08z\x16dB\xe9\xf3<\x7f\xfb\ \x86\xcd\xa1\x19\xedpTA\xda#\xc8rQ\x13\xdcaBB\xa5\xc2\x1a#\xfcJdV\xd9\xca\ \xaa{\x04,\xfcil\xec\xbd\x16)4!\x80D<\xfa\x98L\xcbS<\xb8^e\xb9+\xd1m_R\xc8\ \xddUw\xd3\xf8g\xdeu\xb4\xe70\x00#+\xfd\xe6W\x85@VH\xdb\xd8}\xc0\xb9\xbf\x8e\ \x8f;*\xe4\xd7/C\xbf\xfd7\xe6\xdd\xe6\xb7\x7f\xa8\xd9\x8a?\xc6\x08\x0fH\x1b\ \x01v[\xb80\xa8" \x01\xedB\xc0\xf3N\x96\x7f\xa6\x0b[\x8df\x8b\xd9\x8f\xe3Y[o\ \x88\x12\xb2:\x87\xeeeK\xb5<\xf9N\xe3~ax\xb7\xb4\x85\xe5P\x15e\x99\xc7l\xc1\ \x92\x02\x7f\x98\x02\xf7\xb1\xdd\xe5$\xd7\xf8\xd2\xd0\xd0y\x88\xb1:^\xed\xf9\ \x17\x87j\xbd\x8e\xff;d\xf8/\xad\xd9\x89\xe5\x94\x83\xe3\x8fY\xf1\x81gK{\xfa\ \xfe\\\xc3\x9a`\xe0\x05q\xae\xdf\x1f\x1e\x87\xd9:p\xd8\x94\x8b\x84\x05-F\xf9\ \x1dx\x91\xdf;C\t\x84\xbc\xff\xb0?\xc6\xcc\xc3\xff]\xb9\x07\xf3\xca\xbfUF\ \x94QV\xb5\x9d\xbdpj/\x02+d+(E\\\xaa-Kq(\xa9\x80\xf4\xefm\xb8\x1f\x8f\xac\ \xf5\x0f$ \xfd\xc2\t%\x01\xf4q\xf4\x87\xf1\x83\xd7q_\xa8\x17z\x1b\x91\x1c\ \xce\xfb\x92VT\x90\xa1FC\x96\xdd\x9e\xed$$;\xe3\xa4\x12\x16\'\xcf\x90k\x14VV\ \xb6m.w\x86\x1e2=\xf6\xb2\xb0\xf2\xf5\xf5\xe5\x07(\x00\x0ed:PG\xba\xd62\x94\ \x8b\x9f\xa0\xc2\xb4F\x01\xe3\x83\x97\x81y\x11\x06\x91\xb6\x1fg\xbf(b\xbe\ \x81\xfck\x0c(i\x84uA\xcbN\x1b6\xb05_\xb1\x92\xbdV\xd5r\xd0E\x16p\x84\xf3\ \x9f\xf1\x03]\x83\x14\xe3\xd4\x9el\x19\xdeG2\xc5O\x00R\x1a\x06\x96-\x00\xd7\ \x8a\x0f\xf1\xf2\xa5\xb0\xeb@r?\xb3 /\xafl\x0eB5\x87b0\xac-o\xc2H\x90\xa0\ \xe8\x8a\xda#\xf6\x1e\xf6\xd5\xb3&\x87_\xfc9\x1f\x94er\x8e\x89\xde\xb8\xbb\ \xcd\xa0I\xb5\xf2\xe4\x19\x99o\xb6\xd4\xfew\xfbj\x08\xb1\x80\xa2\xbd\xfdvBq\ \x90%\xcd\x0c\x98\x04_\xfal\xab\xb4\x9e\xaf>\xfa\xb7x\xa7\xa7\xa7,H\x96\x07\ \xd1\xde\x91\xb2\xc1\x8a\xd0\x80v\xb2\xa8\xff\xd4\nmD\xec\xffm\xc3NNZ\x0c$\ \xf3x\xad\x84Q\x03\x008k\xdd\xff6\x18\x9d\xa5b\xf2n\xfe\xda>?\xfd\xf3\xc8\ \xd4yEM\xf8M\xaf\xf7{\x9d\x99\xf0\xb3\x1f\x82P\xd2\xabZ+s\xf2\x88\x17z\x12\'\ \xe5\xc0\x04`\x80G\xc9\x98O\x02\xcdV$\xd6\xfc\xa2\xdfS\xbb\x92\xfb\x99\xb5N\ \x9e;\xe0e\x10\xfbV\xf3\x9b\xdd\xbd_\xe4F7?6\xea\xcaJJJ\xf6\xdd\xdd\xdd\xb3\ \xc0\x87\xc7\xe6\xbb&\xc3\x19^V<\x8bua\xff\x079\xbc\x01\xbf\xec\xa5gHi&\xa4\ \xd9\xa6\x8e)\x85/\x16\x0e\x03\x8c\x02\xae\xe6\x96T\xad\xad\xad\xd3\xcc\x8e`\ \x9f\x9e\x02\x80\x99\x95\xa6\x84\xc3L\xd0\xa1\x1fZv}Xr\t\x17@q\x13}\xe5\x8b\ \x06\xd5\xbeJ\x19\xc2FFB\n\x15\x03X\x90\xe7\xbc\x8f\x1e\xd9h\xa5\x0b\x1dw\ \xd5\xd5\xd5m7\x1f\x90\x19\xa7\x82D\x83\xa4w\x98\xbeX\x0fF\xa9\x84\xf6\x0bo=\ \xb6\x1a\xaa\xd3"\x8082\x16P\x82\xd8A\xd2\x8d\xaffb\x92e\x9b\x9e\n\xb2\xfb\ \xd9\xde\xec\xbf\xbd\xb5\x7f\xa8\xa4\x95)Fx\xecER\x90`\x96\xb7\xb4\xa0\x82\ \xbf\x9c\xa3\x9b0\xfc\xef\x8ac\xf8\xe5\xa5\xcf\xdeb\x1b}\x96\xa4S/\x182kmG\ \x1d?"\xec\x81\xa0\xaa7\x900\xb6\x91\xfb:t\xd7\x01\x8c )\x06\x04v\xb4TC\xb1\ \x9bL\x7f\xe9\xcd\x81C\xack,\xfd \xf0f\xd7\\\x18\xec\x8fg\xf0\xe3\xa3n\xb25\ \xb4\xc2\x9d4\x1fo\xb4^\xa9@\x87\xf7]E\xd1\x9f\xf9\x94\xa3+q\xfd}\xcd\x82o\ \xe2\xb1\x8a\x80\x05j\xe1_{\xae\xaac\xa3\x80.\x83\x08\x0f\xaa\x95\x1c\xdf\ \x91\xf0\x94\xa9\xfcK\xbc\x8f*D\x1e{\x9fPD\x83u\xef*++\xddOO#$@\x96\xb6x#\ \x93#O\xe2\xfb\x95+\x19!P<\xa4\xc1sb@\xdf\xd0\xa4\x95\xe7\xfa\xcdI\xa4W\n\ \xe8\x94\xa6\xce,\xe9\'\x16l\x85N\x9b\x07\xca=\x10|\xc9\xb7\xd0\xe4!\xc9L\\\ \x1c\x80\x05\xb8\xc5\xf2\xf7\xbf\x12i\xbc\xd8\xcc\xea\x07\xd7Uk|[\xec\xd3=qN\ \xa4sp\xbe,\x7fP\x95"D\x06\x95\x88\x9b\xff\x80\x8aJ\x9bA\xb6\xfe\xcf\xde\xc0\ \xc0@S\xa7\xc5\'SH\xcbk\x1c\x07\xa5\x16b\x9ap\x85\xdaM\xf5\x96>\x1d\x99\xda)\ \xb6n\xa1\x84A\xeb\xc4\xfeW`\\L\x18\xde\xb4\xc8\x0c\xc7\xb4\xeb?\xda\xc8\x91\ \xdc\xfc\xe0\xbf\xa9\x98A\xad\xbd\xe3(e-B;\xaa\xe7\n\x9a\xa9\xa0\xdd\x08\'v\ \xde\xd3\x88Q\xb4g]=\xa5`I\x1f\x9a\xb8\x03=\x91#\xfaML\xa8\xc4\x87\xc3do\xaf\ F\x0c<\x15\x10\x98]n/\xd0k\x07-\x87\xbd\x9ft\x8bj\xdcw%\xae7FG-\xe6\xe2056S\ \xaaC-\xcf;\xd1\xed\xd3\xf8\x03\xec\x1e\xfb\xfd\xf9er\xc4yK\x96\x01=6>*\xbbD\ \xb8S\x17f/p_(\x17\xf6\'\xe2\x8a\xec\x86\x16\xbaB\xfad\xd7{\x83O\x8f\x10\x10\ \xe0\xa5\x99\xd9\xcdN\x81R\xc4\xa2\xbd\xbd}\x15\x05\x8c}\xf9\xe3\x12\xf9\xd5\ 3\xd9\xb4~\xd1\x9a\x8cy\x03\xd7w#\xa5X\xb6=\x9e\x85Ra\xf4\x07~\xb3\xd6i\xff\ \xf3\xbb\xe2\xb4\x97D\xc0\xb8\x1c\xf3[\xa1\xfb_\xf0\xb0:8$U\x19\x01\t\xc7\ \xf9\xf7\xa0,\xa6\x9dO\xe4\xdd*\x03P\x03\x03Zt\xb6\xf4\xc6\xa7\x16\xfa\x01\ \xac\xd2\x0bBVV@\xdeV\x88\x0f\nI\x8eg\x92\xb3\x19\xe1)\xcd~\xe7\xf8\x98)O\ \x91\x87\xc3\x83/\x16:\xa2+\x8f\xf7\xaa\xc4}\xdc\x02Cb\xfa0\xc3uE\x03\xb7[\ \xc8\x92F\x9a\x0cZ\xaf,\xd4\xd1\xb4\xf1\xfdj&\xa8\x96\x0f\xa7\xc4\xde\xdb\ \xda\xa8y\xd4\x1e\xd3\xbd\xeb\xd0\xf0\x08\xc7\xcaQ\x9cxna\x87\xc9\xaet\x97NL\ \xdb\x93\xdcY\xa6}\xf7l\xe2%\x9f\x14)\xb3|\xcc\xc5\tz\x05\xd4\x18\xe4(:\xd4\ \xdax\xa6\xc5S\xb0\xfep>*v\xd7cUq\xd3{\xa8\xc5\x8f\xc0-\xa7\xf0\xb5\']\xe5>\ \xbe\x9f\x0c\xb0)\xd4\xfa\xba\\1\n\x9f{\xa4\x94\x180h\xc0b\xc3\rf\xfa`7O\xd5\ \'\xdb\x9eG\x96x\xf2\xe4\xd8\xe5\xbd\xfc$+\x0f+\x8d\xd5L\xfb]\xe8\xd4\xe1\ \xb7\xab\x83\x1b\x00;\x19\xc1\x83T/\xd0+\xde^4\xed\x95\xb4\x14\x95\xf7l\x93A\ \xc0uxzV{\xa2]\xfe\xb9\xe0JW\x18\xc2`J@v-\xb4\x18\x0b\xab\x83\xc9\xb44\xed\ \x87\x986\x9f\xf9\xb7\xecyPPf\xea\xdf\xd2c)2<\xcc\xe8\xc4\x0f.\xa7kR<\xeaP\ \xdc\xc3\xc5k\xd7C\xe9\x88\xf4\xb2\x81\xbc\x99\xd4\x1bW\x99mnh\xe8\xf1B\x88\ \x86\x0f\x1f\x18\x14\xe1@\xc3d\xf0m\xe2\x1f2\xd2Mx\xb6\x95L\x88Z\xa9%\xff>E:\ \xc8v\ni\xa5\x970\xe2\xac3}\xb35\xb6Y,\x8b\xae\x1afoM\xd1\x1d\x18\xc9\xb1\ \x93\xe2j\x9b;x>U6\x99/S*\xf7\x9aTJ\x9f+X\xe5\xf8L`>\x9d\xb3!\x1e\tD*\x13\ \x15\xa9\xc5\xf7\x86\x92\tD\x14\n\xf5\xd9w&\x88\x8f\xcf\x18M\x05Me9\x85I{HS\ \xf6\xd6x:\xe1\xef\x13R\x8c\x04\x7f\xc8\x8f\xaa\xdc\xe5\x8d#Z\x17i[\xbd\xad\ \xf0\x84\xe3\xab\xe0\xe1\x1e\xeaGH,\x8a.\x9d\x91^x)\xec$P6\x1f\x14}\xfd*^\ \xed\xf4\xfb\xef\x08\xbfN#\x89\xe7\xdfk\xbfpO#_\x9cz\x93\x1c\xd1\xdeFg\xf5\t\ \xb1&\xe7\x15\x98\xa9\xe7\x82\xfb\xf3/v\x89nf\x13\x17\x84JJ\x05X8\x1d\x1c\ \xd38]4J 06m\x97d\xad\xd7Y\x0f\xfe\x9c\x9f\xd7"dE"\x06\xb2)d\x9a\xcbUo\xafU!\ \x84\x1d\x1ey\xa8\x9a)f:\x08.\xef\xc0\xe0\xa0M\x1c\xad\xa8\x87\xa1\x86F\xbf\ \x98\xf6\x84\xbb\xe7\x14\x15\x8c\xc8\xe4\xfaw\xad\x9a\x99\xafxk\xcb\x80\x04\ \xe4#u\x14\x0b2\xc7v\xf9\xc1l\x1d\xdfD"~\xd76}\x04\xaf\xca\x9f<[#\xef\x1a\ \xa3\xe3\x11\x1a\xb6\xa9D\xa2\x1c\x17\xd5\x1cD\xb0W\xa4\xb0\x9c\xe5"^\xa9e\ \xfa\xf95Z!\xbe\xbc\xfaV\x92k&.T\x98\xaa\xda\xe9\x02gQ\xea\xfc\xed\xa7G=\x9d\ 8\x0fd\xc8K\xdan\xb6\xdc\xa2\x11\xf4\xc0d\nn\xf3="\x03O\x07,5F\xc4\x97\x91\ \xf6\'3\xe1.z\x06$\xf4\x01\n\xcc\x8fw#P&\xd0\x90\x10E\xd8\xa6uo\x13*\x11\x8a\ \xd8jV%c\x90\xaayw\xb2\xe9\xe9(\xa4\xad)\xc3\xa2\xfe\xf0i\x03\x81\x85.\x9c\ \x1f\x06A\x8f\xac\xdf\x87}\xe7H3\ryS\xd5\xd4\xab\xe7\xfeG\x12\x12\xf1\xe6\ \xa9\xcdO\xc0\x99\xc7\x9c\xdf\xe7\xee\x06S\xeb\xb6\x8d\xf8s\xbe\x16\xaf\x04y\ \x02a\xad\x9aK\x96&9@\xa9^\xec$.\xddd@\xc9q\xf3\xa5\xfd?$\x8b\x04\xb2\x93K[O\ ~\xd2\x15\x05\xd7\xc4V\xb9\xa8\x96\x10\x85z$ \xfa\xdb\x96Z]\x8aS)\x8d\x96V\ \xa0\xcc\x02\xd3S\xe9\xcb\x9e\x9d\n\xba\xc1Hq\x92YO\x9bh\xeb\xbc\xed,W\x8bg\ \xb3\xdc~\x02\xc9\xaap\x0b\xff,\r\x8dkF\xdb\xdd=I\x93{\xe4?^\x8d\x7f\xaa\xac\ \xfc\xf7/O\xab\xbd\xf4N\xb8@E\xb5\x0fT0\xd0\xf9\x9e\xbeJa\x99\x06KF\r\x80\ \xe5L\x01}\\\xbd\t\xc5\xa3\xd9\x15Cf\xfc\xb6\xc7\xf5e\xf9y\xc2\x1e\xe2\xd8\ \xa2\xfe\xd6\x9d;\xfc\x9e\xe7h\xc4\x8f\x9dg7\x0c\x85\x98\x13\xae\x8f\xc9!o2\ \xab&\xa7\x99\x03\xf6r<%\xfc\xfa\xc4\xb4%\x95x\t:\xfe\x8bq\x81\xbd\xaf\xe1\ \xd3\x04\x12\xc6\xec\xf4_\xba\x0e\x8b\xff\x89\xe2\xad\xea\x88\xa1\x15\xcd\ \xb7\x7f\x91\xd6\xe3\xd1h\xff\x03\x00dB\xbf\xce\x9b\xf5Q\xbf\xf4\n\x9ew\xe9c\ |\xfe\xd9\xe6\x1eI7\xcb\xd0Kl*\xf45\x165\xe4\xe2\n"\x00us\x83\xe3-\xb8|&\x9a\ \xb9]Q\xe4{@\xaf\xa7+\xfcZ\xd5\xd8xv{\xcc\xce-\xb9d\xfb\x89\xa7\xf8\x17\xbe\ \x15v\r7\x82\xee\x9f0\xad\xee\xdaG\x00@S\xfa\xef^\x00\xee\xb8\xeb\x97\xf2,\ \x7fn\xae\x04 q\x8f\x03\x07\xf7ul\x99\xee\xbb\x10\xe97\x95\xfbM\x87|\xbd\xe0\ \xb5w\xf2_\x9e\x7f\xd7\xfaDcoQ/\xcc\xc9\x7f\xad\xe5|\xfe+\xc5\xf1^\\`(\x8c\ \x03A\xc8\x92R\xcf"m\xb1\xee\x008\x0f::\xb3cYJ@>a\xdb\xf9\x18U\'|\xe8\xbb\ \xae\x12\xabybQ\xae\x14\xdb\xb2:\xe3\x8cy\x0c\xf1\xfc\\A\xe6\xae\x0e\xb7\xb7\ \xcf\xac\x12\x93\x90\x90o\xb4\xec61\xa2\x0f\xef\x84\xb0~\x10\xb6\x91\x8e\x89\ \xaf\xb5\xea\x1bx\xea\xbf\xa3\xf7\xc7w\xe9\x8a\xa97\x9e9OrdE\xd7\xdd\xa7\xc8\ \x12+HsA\x82\xf9\x07\x98$\\\x0e\xdb0\xabM\xe8\\\x9cl\xeb\xe6\xac\xd7\xc9d\ \xb8\xd4$U\x99\xeb8\xcb\x0f\x91\xe7\x16\x9axF*\xd8\xac\xdf\x99\xe3\xa9\r@\ \x8f\xd6\x12\xe4\xe1\xc9a\x88U\xed\xbb\xf4\xbbe\xeb}\xdf\xd0\xc9!\x9bf\xd9 \ \xab6\x94\xff\xe6\xfc\x01\xec@\xcc}8`\xb0\xbd\xfeM\xf1\xfb\x11\xef}\x9e\xdc\ \x92\xd24ih|\xea0\xcd\xac\xc3\x83\xfeW\xd8o\xf7+g\xda\xab\xb1l\x03%bG\xaf\ \x15\x0b\xdb"\xd9\x92V\xa1\xd85uA\xd6\xd8\xa9X\xce85\x0cP\xf5\xd2k\xda\xa28\ \xd6=86\xe33*\xc5cw\x9fP}\xb9\xa7t\x9f\x80\x8f\xfb\x8c\xaf+\xa2,\xd7\x0e\xd1\ \x9d\xf0\x96+\xdc\x9c\x9dg\x98Z\r\x9e\xb0\x92\xed/\xc5\xc5\x1b\xb7\xb1\xf4\ \x92~\x0f\x9344\x81w\xb7\xd7\x17\xab\xbb\xe6w\xcd\xa6\x8d\xce\xac\x19"\xd6Q\ \xb82\xdd\xdf\xe2U\xce\xfbk\xb0;\x8a\xfd\x12\xad39\x7fU\x18+\x1d4\xae\x91\ \x82T\x16}\xf0\r[\xcf E\xe6\xe5Cj\x08\x91L\xf0rH\xe7[\x19 \x07\xba\x1aq\x0f\ \x9f\x88\x80$\x19\x917\x8a\xe6\x8dT-J).\xb6\xa6\x88\x8e\x8a\xe2TcK\xacE\xa1P\ \x8e\xe4\xcdV\x1f\xe1\xb2\xb7\xca>A[\xfc\xf2\xfd\xc5\x05\xca\x05gr\x95JY\xae\ \xb2\xd9\xa1\xddb\xf7\xd8\x93x\xdc\xd8e\x12\xb4<\x96\x9d\xcd\xb0\x89\xe5\xf3\ z\x15\xccl\xd9\xa6\xf0i\x8c\x15\x9fK\x9cx\xda?`\xd1\nr\r"W#\xff\x14T\xb8^\ \xf6x\xa47}\'\xa4+\x11\xa82\x03\xec\xe7pc\r\\\x1cZ\xaf\xb4\x8e*v\x19w\xcc\ \x18\xc9a\xcf\x03\xda\xcd\xdf\xda\xd9\x9dw\xdf\xdeL-5\x1e\xf7\xd2o\xd8\xca\ \x9f\xd0"LM\xf9\x00\xd9K\x8b\x9a\x83\xa1\xce\x0f\xd4$\x92\xd9\xebp\xac\x11iJ\ \x95\xce\xf5\xfe\xa4\xe3\x1e\xc1\x80\xfb\xb6y\xfe\x12\xf6\x0e\x0e\xca\xa0\ \xca!\xca\x92\x13\x10p\x15])@\xa0\xd8\rgOKJ\xdeb\xbd\xc7w\xfd&;4\x07\x82\x05\ \x83$!\xe0\x13bI\xfd\xaf\xea\x0e\x8eV\xba\xe70\x87Kw#\x05J\x04\rnn_\xa6m>7}\ \x84\x9a\x8a\xf4\xbeG=\x02\xdft\x8c\xf0&J\xfd\xbbGO\xf3\xd8\xfb\x84\x91\x81y\ \x1c\xee\xf0\x81\xbf\xa1\xb6\xe7\xb7\x07\xdbpv\x1e<\xfd\xbc\xefU\xa7\xe4\x19\ \xb8}1a\xff\xd7\xcau\x7f\xc3\xf5}\xed\xd1b\xf0\xd1CtF\xaf\xc1 \x11-\x8c\xd1\ \x05\x11\x840!\x8c.z\x8d\xdeb\x90(\xd1\xa3G\xef}D\xafA\xb4\x89\xe8u\x88N\xb4\ (\xa3\xfb\x8e\xf7ox\xef:\xeb\xfer\xcfZ\xfb\xec}\xce\xde\xfby\xce=\xfb\xe0v\ \xd7\x9e\x06\xd8\xda\xbf\xf1t\x8d`D\xb0\xff\xe5\x0e\xbbav\x8f\r:\xc35h\x1e\ \xd4\xc2\xa8\x14\x02\x0c\x92\xd9\xc1R\xa1\xe7a\x06L\x0b\xbad\x02y!\xb6T\x14\ \xb2\xa5\x8aa3\x91\x06\xdc\x16\x83\xadib\xd61\x17+\xe4\x81\xe7\x10q\x06\x9a&\ \x93\x98\xef\x95\x7f,h\\v=vlT\x83\xfcv\xba\\y\x9c:n\x90~\x97\xdbE\xf7[0\xf1\ \xc9\xc9\xb4\xb8\xbe\xae\xc5n\xde\xc1\x8c\xe6+\xfb<6[v2\x9bOI\x91p\xe7\xc5\n\ \xf5,\xf78\x00o\x818\x05qx\x14$\xd7LI\x92\x89\xf9Q\xf4\x0f\xe5pH.\xb8\xe3\ \xb9N9o\x14jr\x08\xa6\xb6r\xf6\x88\x85\xc4=\xb3\xea1kf\x1e\xd3\x80q\x1dM\x95\ \xa3\x9d\xde\x92}\xdc"\xcb\xeeh\xec\xf0\x153@\xc6C8E,#\x14@\xad\x9a?7\xe6\ \xcc\xf6\x99 [{\xf5\xcb]\xb5\x83Z\x9c\x8b^6\x93\x99g\xca\x03n6\xa1\xab\xcaJ\ \xfe\xb5\xca\xcbJ|\x1dq\xf9\xd3g;qU\xe3\xb2\xa5;\x80`\x0e"\xcf\xbe\xc3\xb3E\ \xeb`k?\x9f\x8f5-=\x08\xd0\xe3l\xb38\x81X\xfd.\xd0w\x9a\x96i2\t6-\ \x87\xf1l\xccwT\x0b\xf2\xa1;\x12\xe9\x9e\t\x92gK\xd9c\xe0\xd6\xa7\xff\xb2\\\ \xdb\x9fp\xad\xf3\xf8U\xa5!04A\xb8\x05\xbc\x1a{\xcdY\xd3\x9fV\xda\xbb~1\x80\ \xd6,\xbd.>\x8a.\x01g\x81\xfb>\x05{\x9b\x03g\x82Dh7@D\x16\xab\xf2\x94j\x8bt\ \xc4\xf9\x06e\xa6\x98\x9ac\x97\xd1&\xfff\xdbNaxd{\xd9\xceT[\x85\xa3\x07:yT\ \xca7\xbbmzv>\xe3\xe8\x04\xa3\x0f\x7f\xb7\xe7\xaa\xe6\x95z\xaa\xcc\x81>\x96\ \xe9\xf7\x80\x15\x19\nnD\xfd0\x1fuY\xa8\xdf\xa5U9\xbe\xf0\x93\xca\x16\x86\ \x93\x84w;\xb3\xc7\xa7\xd6\xc0\x7f~i\x80\xc2}\xb3^\xf7\xb1\xc1\xc2\xbf\xe9\ \xf0\x16\xb7\xe1\xd8\xc2\xfb~\x7f\x17I\xfc\x11;\xb5~X\x97\xdd\xd2\xf5\xb5\ \xd3\r\xa7\x08\xf0\xfd\x92\x97\x9f\xea\xa1^\x98jbm\xf7\xdcf\xac\xf2\xcb,\xb6\ h\xfa1\x90%\xdf2I\xefW\xbf\x1e\xaa\x81\xad\xb8\x03\x03\xb4^\xcf0B9ot}(\x85#\ \xfa\x91p\xc0\xd1tG\xc0md\xc9\xab\xa2\x0f\xed\x07u\x14\xe6\x0b\x0f\xd6\xbfSw\ B%\xda\xce\xf6\x17[\x8e\xce\xe6\x9d\xc6Wz"\x8e\x8e\xfaY\xf1\x06\xf9\x81\xa0c\ \xfb\xe1\xf2G\xa3I\xf0_\x06\xdd\xc3O\xf5nMZ\x0c\x9eP*M\xf8\x1a\xc6%C\xd0\xb8\ y\xf57\xafRby\x06\xc2}a\x9cT%\x8d\x82\x02V\xf3\x9e\x99\x96F\x94C\xb5\xec\x10\ `\xba\xeaL\xb2\xe5,\x14N\xa2\x80\xa4\xe8\xb6*\x99\xf4\xf0\xcff\xf69\x83Y\xa1\ OePG2(\xec\x9b`\xd9\'+\xc5\x0b\xd6h(H\xeb\xd6~ \xdd\xb7i\xcf=\x0bX\xf09\xde\ \xb8\x99\x8d\xa2a\x0e\x1c\xfa;_\x9a\xaa@\xe3UL\xe1\x10\xf7\xf3SA\x01\x97\xb7\ d4a\xe0\x8a\xf9_\xd7H|G\x05*\x90s\xe4\x7f``\xeeBN\xf3\x17Av\xaa\xa4\xd8\xf7\ \xc6\x94\x9d\xdeZ\xd6_\x88\x06\xa92\x1c\x941N\\D\xec\xa7\x014\xb3P\xbe2\xe6H\ \xe8\xf5\xca\xca;l\x9e\xf7j=Yp\xbb\xbb\xed\x1dN\x13\x8bn? \x01\xf5~7\x0caM\ \x040L\x96w\x17h\xa4T[\xa3X\x1c\x96Z\xe9\t\xc9\x98r\x8e7Q)S\xa6\xb5cI\x87\ \xfe\xa6tp\x91<\xb5\xcbK\xbb\xb5\xea\xcf=\xe0QZ\xca\xb4X\xa2\x82\'\xbasI%\ \x9c@\x1d\xd79\x01\x8co\xf2nhUX@\x9b|8\xa0\xfa\xcf3\xc0\xc3wg\xfd\x1b#\xe9\ \x98U\x1a\x01\x03\xcf\x0b9\xe3\xf6\x83\x94\xbd\xfa\xf1}\x9d\x9a\xd4\xfe\x19C\ \xb2\xbc4Jx\x92\xf4I\x9e\xc73\x99s\xf2\xc7\xb5\xca\xee\x03|\x89\xe5\xc1\xab\ \x03q%\x9e\x91\xaa\x89TfI\x8e\xb1Z\xa9\xb3\xa2\xa1\xf8\x1f\xa5\xf5\xa6\x07\ \xcew\xea\xac\x98.Gd\x9d\xeb\\_8\x7f\xce\xb4d\x8a\x84.h\xa4e\xfc\\\xafM\xb1Be-\ \x8e\xfe\xd7e\xa7\x18~klw\x13\x97\xfcJ$H\x95y\xf5\xd8\x91-\xe5h\xec\xecQ@\ \x1c%\xed\x83\xb6\xd3\x7fP\xb197\xfd)Io\xdd\xb6\xb7\xb2S\xedyF\nQF\x95\xa0\ \x85\x10\xf9\xf1\x0c\x99B$\xd9\xea\x9f\x92\x12\xe7\xda\x97\xbf&\x13\xbe\xaf\ \xf9d%\xa9r\x12\xe3\xe1\xdd5\xee\x9cl\x0bS?\xbf\xd9\xc6\xbb+\xd0\xeb{\x9a\ \x01\xa0\xee\xc6\xd5\xeb\x99tg\xcd\x0e\xbc}F\xc6"\x83\xc0\xa0\x03\xb3=\x0f\ \x96>\xeb\xf1\x17d?\x04\x98\xcd#\xdf\x9e\xef\x08e\xccI\x01\x07\xd2`\xd9\x02\ \xd6\x81\xc7\x82\x9f\xec\xc1\x01V,\x97\xa6No\xedM\x04\xc6-\x95S\xfcV\xcba,\ \xc7o\x02\x85\xdb\xce\xabx\xf8\x04\x84G3\xa51\xa8\xd7\xe5[\x86\xa6\xdbd\xdb\ \xc3\xeeM\xd2\x89}\x86OB\xab>\xf6\x1d\xaeF\xb8\xbdnVTjR\x9d\xb2\xc7\xd9#n\ \x8aa:\xb1\xfc\xf3\xdd\x86O\xcd\xaa_=\xb2\xd6FsO\xb0,!R\x9c\x1d\xe2\'\xb5\ \xba\xec\x94\xb2<\xbcd0\xf1\xd4`_8\xf9A\x0cb\xf9\xea/\x11Hp\x1e\xd9.\xe5\x7f\ \x19\xdd\x81\xc6\x02\xb1\x96\x8a\x8a\x8a\x10K\x8f\xf8\x1d\xbc5\xdf\xee\xb0j\ \xc0dN\x05\xeeK\x1f\xcb\x06z1\xab\x9c\xbc<nJA\xe4\x98i\x16\xc8\xdaM\xb6\xc7\x97S\x88\xc0W\x17\xb2\xb2edjLf\x89\ \x93\x1a|\xc9\xbd|\x83\x9e9\xdf\xf2z9\x9c\x9a\x10q0\xdd\xe5f^-\xc4j\xf5\xd3\ \xc8\xca\xbbvB\x0e&\xe7\xf9w\x0bM\xfa\xdf\x7f\x7fk\xdfK\xaf4;"ux\xf5.\x8e\ \x17\xe94\xa5pml\xa8\xab\xdeQ\x85 ~\xfd\xfe\x1dr_\x8a\x1cxw\xe3\x0cK\x19\xdf\ \x16\xc7\xba@D{\xbb\xdcR\x9d5\xb9\x1f\xba(S\xda\x8b=S\xeb\xd5\x93t\x89EB\xb7\ #KJ\x02<^\xba\x13)?\xfb\xd6d\xc0\x16\xaaj\xa7\x9e\xdf+\xff\x0b\xa0\xab\xe1\ \xad\xe1k\x99~u\xe1\x02X\x0eX\xa0KwF\xdc\xf2^/\xb1\xfb\xd3\xc7\x04\x9dl\xc1o\ R\xdf\xd0\x9a\xd7\x147\x93\x9fn\xd4\x11-\x1a\x03\x0c8s\xde\xe5\x14\x83\xe95\ \x834\xf8] \xff\x9ca\\\x99fA&\x17~\xf4#\xf4\xc5N\xf8\xb7W\x04\xc1\xfeU\xca"\ \xef?\x06q\xe5\xaf<4h\xaa~\xb1\x7f\xc8N"\xbfq~d\xa1MJJz\x1b\x89\xb0\x12q{sW\ \xd1G\x92\x90\x0cH\xd2\xd9\x7fqh\xd8\xa2\x1e\xf4\xb7U\xf2\xfd\x9c\xb8f\xfa\ \x13Rfff\xef\x931\x15\x9c \x15\x15\x15\x97\xdbk\x9f\xa5\x8e\xc0\xe7\xca**\ \x17=\xe4\xcf\xf3\xb1\t\xefC\x9a\xe6\x03S\xbf#\x82Y\xe4\x9e\x15\x98\x1e\xeb\ \x0e\xcb\x16:\xfe\x9e\xe4\xfb]\xc8\xbdR\xc7\x02]g\x83\xe3\xa7/\xda\x82.\xea\ \x96\xcb\x80 \x93\x8e^\xa9\xf176\xdd\xda\xf4L\x13\xc99m\xd1\xb3\x8d\xee}\x86\ \xe4\xdcC\xb5\x14\x9f\xbf\x12\xb8\xd1\xa7\x8eH\xd6\x13\x00\xd4\xbc\x80\xeaO\ \x14j~Ku\xd6\xfbf\t\x10\xad\x8b\xc9g\xa9g\xf0M\xf0\x04\xb5U\x91\xf8\x9d_\xf1\ \x16j}\xcem\x7f\xfc\xd1\xb0|iK\xa7j\x9de\x18\x02\x8cF\xd4\xf6\xc7\xb2^\xf5\ \xe7\xe6\xe6>\x8f\x17l\x95)G\xdb\xcb\xfcp~J\x8a\xc3\xff\xae\x94\xd8\x03\xde\ \x9b\xda\xa4\x00U\xd8\xeeT\x8a\xa6\xc5\x01d\xf9\xfdS{\x00o\xfa\x92\x95\xc5\ \x12\xf3\xc3\\2\xf0V\x06\x1b\xeb\x80 \xfcoc\xbc\x97WW\xdbX\xb8\xafP\'ss\x8b|\ \x9fWT\xb4\x195\xf2\x8f;Y\xd0(dcc\xa3v\xc3\x0b\xda\x9b\xb59\xd6\xeas\\\xed\ \xba>(\xaf\x0b\n\xeb<<\x14A:.\x0eZ\xa3\xb2\xb8r\xe7r\xbe\xc9l\xe6\xdc\xf8\ \xb3\x7f+\xec\xea\n\xf6\x87v\xfe[\xdf\xdbM\xf376B\xb0a\xc3\x1a\x05\xe9~:]\'6\ o\xa6\x03$#:\x02\xd4c\xb6\xcc\x15Fo\xbf\x028\xe1\xae\x9fT\xf9Us\xff\xcd\xb6\ \xb3\xcb\xc38\xaa\xef^\x04\xef?\x87\xfe\x92Q:{\xebhc\x03\x95aQ\x11g \xf2l\ \x12%\x94\xe5R\x8ee\x91\xbdD\x95\xe8\xfd\xf3g\xb7\xd3\tEs\xcd\xe61`\x16\xbdL\ \xe5\xf7\x19?\xab5\x02o\xe5^~\xa6\x03T\x96\xa9\xb7:\xaf@\xd2\x1a\xe2q\x85\ \x83\x85;\xae\xa9zzz\xf4\x1f9"\xdf\xafb\x81\x87\n\x0c\x06[.\xb4=o7\x1d\x1b*\ \x0b\x13\xb3\x1e]^\x89`-\xc4\xda\x81\n2S\xba\x15\xf4\xf8\xf980\x87^\x9ez\xad\ \xdb\x9bXL\xdamc\xf8\xe2\'V\x05\x98\x1dZ\x89-\xfd\x17z:\xf1\x05\x1c\x9cG\xc7\ 8\xb4l\xce\x1f\xad\xbf\xebz>\xfb\nlde\x17\x91\xf1\xcd\x84\xb3%F\xa6\x8e\xa7\ \x02\x90\x88\xba\xdb~\x1c\xdcc|\xba\xac\xcd\x16o\x03e\x8f\x97\xf7\xf7o\xdby\ \xe7\x10\x8c\x90\x05\t\xca\x1e\xdf\xbd\x02\xa7-(\xe8\x8e\xf8\x12\xd5\x06+\ \xbd\x04\xae\xf4\xad\xba\xdc\x8dk?_\x0f\'y\xf4\xe0\xdd!cd\xfa\x14\xae\x1fsj.\ \x84\xfaC\xdc\xd6\xee`Z@\xdf\'z}\xf4A\x96\xef\xfe\xc5\x14\xa6{Xa\\\x96\x14\ \x8d\xb9?\xe5+d\x8c<,\xd5/s^\xe9&@!\xdf{\xc2\xa6M\xea\xf4\\"\x1e`p\xee-\x0e\ \xd3\x95b\x1f\xa2\x1c< \x11\xd1\xd0\xd0\xb9\x0c\xe8<1\xa6\'l\x90\xceW\r\x92\ \x19\xec\xce\xec\xfa6C\xb0\x8c;&y\xb8M\x16\xac\x8dT\x1a\x13WB\x86D\xf5[rP.\ \xca\xaa\x10\x08\x1a\x8e^\'\xca\x06\\\x9fwp&\xfc\x84A\xe1u\x7f\x17\x93\x08u>\ A\xd9\xdf\xd6\x18\xae\xdd\x17\xea\x93\xdcQ\xb4\x01;\xe6\\dS\xb3\xf3\x86\x8a%cB\xb1\x11\xdbb\xa9\xd5\ \xa7\xde\xff\xca\xd3\xc0\\\xb4\xba4\xdeb\t\xe9rw\xba\xed~\xa9)\x97\xcd\x9a\ \xf5\xcc\xcd@Z\x8cD?0\xb1>\xaaAO\xc8\xb8\x85\'Lu\xb8\xbfDQ>`\x82\xfc\x8cz`z\ \x10#\xe1Vw\xfa\xb93\xfe9\xb1_\xadPH\xdf\x86T/5\x11\xe7\x9f\x824\xd3f9Z\xc0\ \x19|+MY;C\xf2\xcc\x9d?i\xa1\xc4\xeavHG\xac\xe3\xfd|\xd6\xaad\x80\xb55\xcf\ \xf3\xbb\xeb\xe3r\x12\xc2O\xfd\xe6\xdf\x0b\x85:\x1b\xbb\x1an\xf9\x9e\x9a\xf7\ \xfd>ub\xf1Y\xa3\xf4d"\x8c\x95=\xa3\xf3Cc&\xbe\xe6\xd8\xb5\xea\xa8D\xacu\xa7\ \xd68\xcc\xfe{\x8c\xe61>H\xa3\xed\xfeD\xb6\x1d.\xca\x19\xee\xc8\xc5\xe4M\rp=\ O/21\x836+R\xe8\n\xe4+f\x126R\x90upX\xdfBeb\xbc[)#\xa1&\xa4\xb7\xc5Zf\x0f\ \x1cQ\x91\xd4\xfd\xd9j\x05\xba\x96\x8e\xe4pj\x12\x94\x0bSU]\x1d\xb5p\xdb\t\ \xd5n_\xd8*\r\x11\xb1P\'g\x10\x05n\xcc\xea\xf2\xfd/\xa2oJ\xd1\x87K\xbe\x07\ \xb6^*j\xe58\x89\x9b\x14\xf9\x9a\x11\xbc\x95B]\xe5Fus8\xc4\xf5\x8a\xaeA\x83\ \xa6\x02\x12\xfb\xc9\x88^\xbal\xd6/s\xb9\xeb\x81\\b}\xe5\xe0>\xac-\x82\x1b\ \xf1\xc9\x1c#\xbf\xd9\xaag2]\x93\x12q2P+P\x9a\xea\x0f\x86\x0bi\x00\xd9\xe3w\ \xf7do\xdd\xc1i~\xdaM\xb2=\xbc\xa4\x01X\xdc\xdfQVFR\xd5~\xc9\x9f>\x02\xec\'\ \x01\xe1p\x13\xd5\xebTc!\x00\x16 \xcc\xb4\xfbK\xfbd\xf5\x97\xda\xa2\xa7]"\ \x94\xadF3\x9aL\x88\xb7\xae\x97%t\x07u\\O\x11\xf8\x9d_\xf0\x8b\x9a\x0b\xa4\ \xeb\xaf\x85\xfdE\xf0j$\xab\x0f<\xbaU\xd2\xf3\x14\xeay\x96\xcc\x9ae\x15\x90\ \xd3up*\xb6\xf1i/\x08y@\xee\x83\xc0d\x04qsht\xd6E\xc3\x9a\xa5\xccu\x00\xf5\ \xbd\x1c\xf7\xac\x1e6\x9c\xc0\xc3.\xc2\x81u\xd7\xaf\xf8I\xae\xc4\t\xf8G\xeeR\ 7\x1d\xe1\x109Y\xac/\xd1\x00\xc2b\xc8\xe8W\x0ci*\xc6\xd2<\xd9\x18,2\xfeZ\xad\ \xa9\xf8\x97\x7fG\xf5\x13\n\x13\xfd\xf5\xe1\x8a\xe2{\xb5\xf3\xeb\x17\xc5k\ \xb9@\x19\x1b\xe6\x02+GS\xe0;"P\xad\xbf\xbf?\xaa\xb8\xcb\xa9\xc6\xc19\x9e@G\ \x87\x991\xb4\xab\x8ad.\x06\xb3Lh\'\xf3\x9f\x94Q\xae\xef\xd3\x13\x0c\xc6\xe2\ \xe6\xf2\xd4}m\x80\xf2\xdd\xcf\xaf+\xb4\xea\xeb<\xd4q\xa0\xdfV\x89\x11\xaa\ \xaf\x1b\x1b\x84\x8c\xab\xbe)\xe6\xe4\xd4Y\x97\xfcJ\x99 [\x8f\x1b\xb1Z\x93[\ \x8d\x97\xd9\x10\x140_\xce\x97\x17\xa7R\xb4\xb0\xc0c\xd8\xd1p\xd4\x16\xe7W\ \xcc\x1c\x1e.\xdd\x92\xaf\xac\xaa\xc2l\xc3\xc1M\x8b\x8838\xceC\xfd6\xed\xaa\ \xb2\xb2hS\x9fu\x9ad\xbb_\x8c\xac\xfb\xad\x0c\x10\\M]\xec2W\xe5\x0c\xa9\xb3F\ \xfd\x9ek\xb0w9\xd9z\xa9\xcbY\xfd\xae\xbeQ\x89O\xfb\x97&\xf4\xc5\xf0_~*\xf7\ \x0fYN\x8c\x04\x08\x9cD\xf0\xd6\x0fs\x9cY\x072\x0b\x8b\xbc\x81\x8d\xda\x01\ \x13O\x8a\xf7l\x13\x93\xd3\xa0%\x8a\xd7b\x81\xfe\xbf\xb8\xa8\x83x\xc4Z\x07N\ \xce\xcen\xc0I\xea\xedEa4=\xd85\xed\xea{=:\xaa\x15p\xb1\x9e\x82\x97}\x17\x91\ z!\x81\x15j\xbeex\x91&f]\xed0\x0b\x1e\\wm>L]\xa2\xfa0\t7\xd2\x18\xca\x98\xbc\ /\x1b\xb7\xeb\xf0\x98e\xb1p{\xae \x97\xad\xf8$=|\xf7\x19\x80\xda\xbcF7\xdd\ \x90y\x0f\xc4n\xbaoD\xd3t{\xbbT\x94\xf0s\x8d\xf5E6\xeb\xef=\x17\xe6\xfe\xa3\ \xfd\xf6+\xc7\xbf\xe8\x8e\xe7\x88\xb3k\xac\xc8>\xf2\xabmP;\xf5\xc9\xd7\x9c\ \x86\x06\x1a\xe1\xf6s\xf6~sQ\x83\xd01\x05\xdb\xc0n^\xf8\xeb\x1f\x94\xc5Z;\ \xd0\x87\xf4\x0c\x0c\x0b\xbe\xff\xe0w\xf6\xa5\xbc{4\x96B\xf9\'\x8aO\xb6l\x1c\ \x1c\xa0\xecK\x9f\xee\xcb\xfe\xff\xab\x02P\xd6,\xb4)5\xb5\xb7/YO,7~\xea2\xad\ \x17\x1crc\xeaw\xb2\xb5\x1d\xc3<\xdb\x1f\xcb*\x03\r\xe3i\xba\xce I\xa7=\xf0\ \x82\xd1\x85/\xd2g\x8eeP\xb5\x82\xdeY)=\x12\r\x8a\xa1\xbei\xc1H$R\xcb\x8a\ \xaf`\xca\xd8"\xbf\x1a\x85\xfbRo\x9d\xc4\xef\xd4\x87\x16.\x8a6\xeb\x12@\xd8\ \x94cggV\x8f\xbf!\x13\xd8}r\xc1\x11\x8fX\x95\x8c\xe90\xeb\xc2\r\xd8\xcc\xf4\ \xf2^\x1fLZM^\xbf\x91\x02\x129Swr\xe2\x88]1>q\xc8\xa9J\x17\xc4\xd2\x92\x05\r\ |A\xd8\xdc\x94\x12T\xfd\xc9KW\x04\xbfR\xf8\xc7\xf2Y\x1e\xfaC\xd4)\x06#\x9b\ \xae^\xb0T\x91zA\x82|\xdf\x12\xb3z\x8eee\x9b\x15\xc6\x8d\xff\x06\x93\x04B\t\ \xae\xa1]\xbdM\t\x14h\xa27O\xc6fg\x89\xd8\xff\xf4\xb3\x062U\xee^B\x80*\xe1\ \xaaU\x05\xccs$\x00\x8d\x14d\x05\xcf\xefInD~\xce\x1b|\x9a\xc5\x93\xe5\xd7s,\ \n\xd0\x8b\xf6\xf6v\xd3B]\xcb\xb1,\xa6\xc4\xf9\xd5\xe6J\xf4\xef\xdf\xdd\xc6\ \x8d\x8e\xeb111f+r\xf1\x14T\xcb\xdc!\xdc]^\x1e\x11al-p"u\x1f\xdc\xd3\x0f\xe3\ {\x17\xd3z\xfc\xa7\x8f\xe10.\xd9s\x92\xc9\x05\x96E}\x9bo \xce\xce\x17\xf8\ \xec\xbf3\xe9;\x08\xbd\x8a\xed\xdc\x07x\x8cz$\xd0XX\\F\xdc\xc8C\xb8}&I\xbd\ \xb8\'**z\xc0\xdf\xeb\xd5\xdd\xe8\x1e\x81@|-\x90\xeemu\xdf\xae\x05\xf3y\x14\ \xcc\'h\x92mw\xb1\x0e_7\xaf\xfc\x80z\xf9j\x86\xe1\x7fW;\x12Z\x00M1\xee\x11\ \x12F\xdc\x12\xb2\xd5c\xbd\x83\xdc\xb9\x17#\xfb\x1a8D\x1bR\xdb\xd6\xd6\x86\ \xe2NPL\x98\xdb\x13\xa5\xc4\x8e\xefG\xa3s\x04\x1dXt\xd0\xeeE5c\xd0\xf8\x14\ \xd2\x81:\x9e\x19\'nww\xf7F\x1f\xfc\xac\xbe\x022\xf9l{\x81\x85\x9a\xfa\x8eL\ \xd1\x8f\xc7O\xd1K\xf5\xad\x88/4\x91\x8e\x89i\x81/L\xdf\xb0\xd5\xfb\x88\xe3\ \xe6\xc6\xffNT\\\xfc\x04\xcb\xe6\xb9[\xe6-\xd8\x13!\x13\x80\xfaz\x10U\xa4\ \xd9\xf1\xc6\xc8L\xbdm\x82\x8e\xb1\x9c\x10\xea\x98\x9dW\x82_S^\x9d\x9bj\xa7F\ )\xccD&\x0ba\rN\x13\x06i\xd4\xe5\xbb07Z\x83\x87\xaf\x19@8v\xc0\x0f\xce\xedG}\ \x8c:\xfb:\x05\x9e\xaa\t9\n\xb2H6\xae)\x8e8..\x95\\\xe2\x07\xbb#\x82\xf7\x93\ \xf6~\x1e\xe9\xa2\xa2\xd2\x9f\xcfx-\xbf\x85;\xf9\xb0\xfd\xa3t~,;\xfc\x992\ \xcel\xec\xc8\x8a\xae\xdb\xee\x1f\xf8\xbd\rhs\xfa\x9c\x99\xbd\x8akW\x80\no\ \x000\xc7%\xfd\xd2Q\xb5\xbd\xb3T \x91N\xde\xaf\xd0\xb3\xfb{\xae>\x922"\xd2\ \xd4\x1a*iJ\xcf\xe2*\x83\x07\xe3\xde\x04bSl\x87\xa1\xa0\xd6\x87\xc6\xa2\xff\ \xa6\xf9W)Y\x9eb^\n\xd2v\r{\xef5L\xdb\xcc\xd5\xdb6\x1fVYj@\x1d\xe6cJ\xdd~\ \x89Z\xaft\x87O\x8c\x8f+n\x1chop\xd4\x03$\xc8\xda\x98\x8f\x0eWzN\xbaI\x84\ \x0f\x8d\x9d\xda\x94888\xac&\xed\x1ft\x92\xd0\nvb%\xdd3\xe7\x05\xcf\xf9\xf7\ \xab\xba\xcd~2\x14Tl\xd04\xb9\xbb:\x94\\\x0f\x96\xd1mu\x06\xe3e\x8cX\x89\xfa\ _\xba\xbfi\xfb \xd1\xd8\xd0p\x7f\xcd\xdd\xeb\xd6\x80Z\x0eNy \x00\xa8\xae\xf0\ \xd6\xdeL:\x06\x0f\xd6\xb0g\xa5\xa0\x1aDa\xf9\x0bZ\x0cm`(}\x8a\x07\xc1\r+\ \xb6]\xf0K$\xa3\xfc\xc3\xc8\xc6)\x8f\xf8\xaa\x8c\xfd,\xf19\x0e\x00\xb2\xc3\ \x1a\x132!\xfe\x7f\x1d\xc2\xf0\x81/\xc7\x81D\x14\xdf\n)\xb1r_p\xfc\x7fv<\xba\ CfYI2\xd20}\x05`\x1f5%-h%\xc4,\xe4\x7fg\xba\xe4\x16' #gif 128x128 DROPLET = \ 'x\xda\xad\x96y8\x14\xdc\x1e\xc7\xc7.\x13\xa3\xacQ\x96\x88\xca2\xa2\xa2\x18y\ e}3\xd6\xca\xc8\xbe\xb4\xd8\xb9\xb2\x94\xb1\x14\x85\xc8T\xc2\xd8IHd)\x8cud\ \xac1\x9a\xb2M\xf6\x18K\x96a\x1a\x193\xc6\xcc\xbcS\xf7\xbe\xcf\xf3\xde\xee\ \xbf\xf7<\xe7\x9c\xdf\x1f\xe7\xf3\x9c\xcf\xef\xf9\xfesN\x92\xb5\xa5\xa9\xa0\ \x80\x94\x00\x00\x00\x10473\xb2e\xd7\xd8\x9f\x8b\x9f\x97\xbdw\xea\xbb\x0f\ \xb0\x0bw\x88\xa1\xf9e~\xf6\x80\xf3{%\x02\x00\xfc\x95\xe6F\x7f\\\x8e\xc8%\ \xe68\xfa\x89\xe2\x8f$\xb4g\xd5?vp\x1d\x93\xc0\xaa\xb9\xe1\xa7\xe2\xee\xc5\ \x8f)\x8a*\xfa\xb4\\~\xf3\xda0\xed\xe8b\x91\x95\xff\x15\x9b\xc5"d)\xd8\xe6\ \xd6D\xdd\xea%\xba\xb5\x91\x02\xbfO\xb1\t\xf4\xca\x99?\xe5\x8f\xe9(B\xe5\xd0\ \xd6/y\xfd\x02R=k\xe4y\x0f\xbf\xcf\x94\x8c\xf3\xf4$\xd4\x87\x97\x81\x1e>\xd8\ vj%\xdc\x15\x8f\xc4\xb1"\xc9\x1fY\xd4\xf5\xf1\xad\x9c,\x88\xd6lj\xc3;\x0e\ \xc2W\xab\x81\x1a\x8f\xad\x81\xf4\x8c\xc9\xe9\x86\x98\x9b\x91\xfb\xe6\x9el\ \xbc`\xd9\x1a$\x97\xb7\xb9\x1bt\x9f\xdd\x8a8\r\xc1\x96:\x8f\x9ee\xf4\xeaG\ \xb70\x89\x13-\xc4\x18=\xa2J\xff\xa5S\x98\xdaA\x9c\x19kl\xcb\xc1\xd9\xaexe\ \x06t\x969W\x0c\xcd#\xb1O\x9cQ\x05\x89\xa4\xcdzme\xc2\x97\xac\x01\x10\xaa\ \x8d[\xe10\x8b\xa4\xcd\xaa\x9d(e\x99\x8b3)\x07\xed\xdd\x9b\xfde\x07\xe0\xd9C\ Y\x9f@;\xc2\xa9{\'\xc4\xd0\xc9\xb4\xef>\xfai\x1ek\xd8E\xaf\xe7\x99\xb1\xf6\ \xa6\xfa2\t\x81\xf8vh$\x8a\xd1\xa9\xb3\xd4\xdbI\x1b\xc9{\xa4\x90\x07}A\x12|U\ #\x853\x92\xa1\xc9T\')\xd9Q\x83\xc2\xf9\x90}<\x05\x99q\xdb\xe4>\x14q\xb6\xa8\ \r\xbfE\xd8\x86s\xde\xd2\x95\xd60\t\xbc\xbd+$Z*n\xe9\x9b\xbb\x9a-5X\x17iNM\ \x1a\xfc\x06\x0f-{\xf1\x04\x06[\xac\xd0\x15{\xd0\xd5\xa1\xee:]~\\\x91\xd7\ \x92\xb6J\xd9\x19\x82\xfa^t\x17\xd0\xbc\x8anv\x0e\x1e\xae:\x89\xe3S\x8e\xc0\ \xc1h\xd9U\x9c\x8a{]7n\xa3\x9b\xedl\xccT+\xc9\xa3y\x8f\x0c\xe7\xdd2\xab7.\ \x8b\x1e\xe4*\x83\x87\xee\xbbP{H\xc5u\xba\xea\x96\xf2\xf9\xf8\xf2n\x18\xed\ \x1a\xf3\xa8\x19\xc6\xcaO\x06\xab\xfd\xa1\x1c\xe6l\xe7\x19\x96\x8cy\xee\xa1\ \xf5\xb9!\xfcG\xc7\x9b\x9fJ\xcc\xc9_J\xa10\xda\xaa\xa5\xb1\xfc\xa9\xa0~\xfcv\ \x08\x07f\xc4\xa3\x12\xee\x0c\x91\x90S\xe4%\xdcU70\xdbo\xb2\xfc\xab?\x0f\'\ \x1c\x0f\x7fRGc>P\xf8\x97\x0c\x05\x82\xf0\xdb%\xd7\x92\xc5$\n\xe5@K\xbe\x13\ \x1c\xec\xd6L\x9cb1\x89@k\xc9`\x0e\x01\x05u\x03\xf7.\x1e~\xa5.\x9e\xe3)\x8d\ \x80\x07\x07$\n5\xe69E\xff\r\x08[\xfc\x17\xf4\x1f@\x0e)\xfcO\xe8o@C\xfe\x9f\ \xd0\xdf\x80\x9b\xe1\xef\xaa\x9f@G\xfc\xef\xaa\x9f\xc0\xfd}\xbf\xab~\x02\xdc\ "\xff\xa3\xfa?5\xfc\xdd\rmni\xdc!\xfd1aFKf\x89\x1e\xa3\xfb/\xdb\x88\x99Dv@\ \xf0\xcdC*{\xcc\x19]\xb8\xed\xa4\xe1\xf2h\x0e<\x9a!\x9e\x87o^\xd9l\xbbh\x92Q\ `\x10 \x95un\x05\xeb\xa8\x93\xd6\x8b\x07w\x14<\xdd\x8dA(\xbf\xe52\xa3\xce\ \x10D\xa3\x07\x94\xf1:\xd7\x82\x1f\xa6\x8d.K\n\x08q=Y\x97}\xf1m%\xd9K9\xa1)\ \xccG\\\xe2\xf5\r\xa3\t\x16d%*\xa3J\xbd\xb0\xf1\x87M\xfe\x14,\x1e\xfc\x81<\t\ \xb7xf\x80A\xf0\x85\xcd\x85\x87S\xc8\xbb\x9b\xa0`\xe6\xc8u\x80\xedP\x82\x1cr\ \xbf\x01\xf9\x870\xcdw\x12\xf0m\xd3\xb2\xa4-\xbag\x9a\xd8\xb9_\xd0\xc0\xd3\ \x1f\xf8\xb8^\xad\x95\x8e\xf2\xf4\xdb\xed\xe0\xcd\xff\x02\x8b/m\x92\xce\x04G\ T\xad\x1f\xab\xc0,e\xaa\xdca\x891\xf0\x1b\xcd"\x955@\x16u\x8e\x97\xb2\xfe\ \xc54rM\x100t\x83\xf2nn9T\xb1\xe4!2C\xbf\x8b\xaa<\x96\x9b\xd8,\xf0\x84\xd4\xb6\x1c\xa7\x9d\x1aB\x1d\x14\xc9\xa8\ \'\x91\x18\x84\xda\x8as9\xcd\xed\x95r\x11\x91^\x90B\xef\x9a\xc2\xba\xf4\x17e\ `\x13\x17\xe9\x87\x8c}\xbb\xd8\xda\x1b.\xb4\xee\xe8|\x06Q\xfc\x99\x9d\x85=\ \xfd@\x17O\xd7\xd3\xb5\xcc\x16\x1d\xea\x84\xcd0ee<\x1cYKUJF\xcf\x08\xbc\'\ \xe5)\xae\xba\xa8<\x8a\x07)\x94\xedY\xa9ly\xeb\xe6\xf0\xbd\xafLw\xc6\xba\x8c\ \x1b_\x8d\xae&\xd2\xcf\x8c9{\xe0R\xa3\xb8\xf9\x12\xfc&\x13\x81\x89"s\xd6\xc8\ v\xe6\x86p\xe7Ey\xbb7A\x9dg\xc6\xfcu\xa1\x1b\xf39\x80\xdb(n~J\t\x8c2\xecr\ \xe1-\xd7\xad\xec\x0e\x11\xc75\x87-\x02\xe2\xc8\xec\xce\xd4\x87\x81\xf5\xf1\ \xda\xd90ea\tae&\x03\x81h\x1c\x1a\xb9\xe10\x1c5\xf7\n_$O\xf7\xdd\xfd|\x06\n\ \x9a\xack\xc5\xd1\xec2\xc7\x19\x18}\xc3\xce\xa5\x86y\xcey\x83\xe5\xd1\x00\ \xa1\xb6hlC\xf4\xf6\x82\xaa\x14\x05\\\x8aR\x13\x8c\xcd\xe5\x81P\x9f\r\xde\ \x14\x88m-\x99~\xda\x9e3\xa3\xf6\xf2;\xd18\x83h2|{W\x805\xb5U\xe4\xdd\xa2\'!\ \xcc\x97\xba^\xf1Now#x\xedO%\xb5\xd1\xad\xa6\xa0F@\xac\xf7\xa1?\xae\xea\x0f\ \xa7\x94\x9a\xba\x1a-\xa8\xad)\xc5L\xf79,\xf4t\xabf\xcf\xa8,\xf8\x10\xd7\x91\ \xbd6Q_\x15C\xaf,\x177$\x01IHv\xf2"\xa6R\x1e>\x91-\x03\xb24\xdd\x18\x7f\xe9{\ \xa6\xbb\xb7tsLk.dM=@!\xe9\x8b\xa9}yh\xb4P;\x14\xfc1W\x87|\xaa\xbbd\xe0hu7OD\ \n\xd8\xfc\xe6Zu\xfe<\xae\xfdN\xce\xbd\xc9\xb8\x06\xe2iW\xe4\xbc\xac\xc9\xe6\ \xf1{\xb46\xee%\xc7j2p\xcc\xb5\x8c\xb8nq\x1e\xb7\x08\x1b3M{\x96\x8d\xddi\xc8\ \xd7oV\xa5Nl|\xe3dZ\xcb\xbem}:G)[\xd8\xf4\x03\xcb\x1f\xd6\x04k\xafK\x14\x96\ \xc4\xd2\xa4\xf0\xaf\x7f\xbd$\xe1\x84\xf2\xe3\xe0\x0e\xfe\xde@\xbd\x01\xbc\ \xea\xd7n\xfb\x98\xae{\xf6\x08[\xc7\xf1Dwd\xd9(\xffJ\xee\xdd\xa8s\xbe\x05\ \x90K\xcbM\x87w\xcf\xef\x89V\xfa*\x1c\x83D\xa0\\\x1f\xa7>tjv\xe4T\xa5[\x023Y\ Z\xe0R\x92\x1d\xe3\x04|;\xa7\x82\xda\xa3\xe5\xdb\x97%\xa61\xaa\x16\xc83\x19\ \xa5\x83\x94\x9a\xf3\xbd\x8b\x84\xb6\xbcV\xa3#nR#U\n\xb4\xeb\x9b\x86Fz\x98mW\ N\x17\xf8\xd7\xc3\xdb\xb1M\xa8\x15\xff\x1d\xcf\xf83{M\\~\xf0\x95v\x80\xd3\ \x9eFA\x0f\x97\x02\x10\x8d5\xdd\xa5\xcego1\x98Y[oO\xdcYU\xa9\xa4\x8f\x9d\xb4\ e\x8ce>w\xfb\x1e\'\x8c|O\x8a9\xfb\x013+3\xab0\xfb\xe8~IHD\xc0\xf2\x0e\xfb^\ \x13\xff\xeb\n\xec\xb0\x9bFCY\xa7Y\xdd\xdbu}\xb3E\x85\x88\x9cL\xcd\xcfi\x9dS\ \x1b\xad\xac\xbc@\t\xe6\x14F/C"&I\xccJ\xddke\x95\xb3Nr\xa4pe\xbfF\xd1\x1c\ \xc8\xea-\x89\xd0\xaau-\x8f\xa3\x92\xb9c\x18\xa5\x12\x9a\xfe\xd8\xe9\x15+E\ \x9a\x08\xe1\xe6\xebE\'T\xafI9h\r94z\xe8#\xc4%l\xebJ?\xa5\xf3\xb4\x9aZ\xa8\ \xbf\xf7\xa7\xe6[\x9e\xdd\xe8\xbc\x00s\xe1t9B\x13"$\xf1@\xe3\x8e!\x16\xdf-\ \xd4\xee\xf55\xa0\xf3\xa3\x03\xeav\x82\x8a\x8b\x136R]x\xf9\xee{-\xbd<\xd07(\ \xe7kr\xde\xa1\xc9\xdb\xcb\xab\xac%\x8cu\xd5(,\xf6\xc4\x01\xa6N*\xdc\xaaS6D\ \x0f\x0cC\xf7\xc2^\xf2\xed\xb1\xa7\xa8j\x9eV\x15+<\xae\x18(\x89\xbb\x8f\xab \ \xb9\xc3\x81\xfa\xd5\x18\x944(\x9b\x11\xa1\xa4\x90]J\x97\xa1H\x1e\xccH`\xac\ \xcd\xc2\xa8\xb2\x9a\xa4\x80\x99\xe4\xa7K\xfb\xd8\xff\x18\x80\xb9\xb1\xa5Q\ \x95\xa1\xdb\xfd\xbf\x00\x88]}+' #---icon32gif (32x32) ICON_PHATCH_32GIF = \ 'x\xda\x01\xc0\x02?\xfd\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ \x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ \x08d\x88\x00\x00\x02wIDATX\x85\xed\x96MO\x13Q\x14@\xcf\x9b\x19`J!-`\t\r-H\ \x0c)\xc4\x8f (\x10b\x82\x0b\x13\x12\xb6\xc6\x8d+\xe3\x1f\xf0O\x18pk\x0c?\ \x81\x187nL\\\x1ajP\x88.@\x82\x011\xa6\x11\xa4\xa5\x14\x8b\xb6B)\xcc\xf4\xb9\ \xa8mh\xe9\xb4\xa3\xd1\xe0\xa2w5y\xef\xe6\x9es3\xef\xdd:*s\xdfM]\t\\\xbe${1\x07\xb1\xd5\ \xe6\x82\xbc\x99`P\xfcU\x81\x1cX\xd3\r\x8c\x83l\xba\x7f0\xc2\xd9k\x9bl\xaf4\ \xe7\x05\xb4:\x13#\xad\xe6\xf3\xed\x8a\x08\xabAt\xbccgK\x8a\x91{\x0b\xac\xcf\ y\xd1t\x93\xce\x910\x9an\x909R\xd8x\xd3F2\xea\xa4\xfb\xc6g\xe6\xa6\xfaH\x84\ \x1b\n\xeaT\x12))p\x1c\x0e0p\xe7=\xed\x03\xd1\x8a\xdd\xec\xac5\xf1\xfa\xd1\ \xe5\x13\xeb\xe5$N\x08\x14\xc3\x01j\x9dG\x8cM\xce"\x84\xc4H\xab|y\xdbFx\xa1\ \x95\xb6\x0b;\xf8\x86"\xd4\xd6\x1b\x00\xbc\xb8?\xcc\x8fh\xbd\xa5`)\x91\x82[P\ \n\x0e\xe0\xe9\x8d#Dv\xeb\xd5\xc3~\x96\x9e\x04\xd8Ykb\xf9i7\xc1\x07\x83H\x99\ \xad\xeb\xbd\x14\xb3\x84[\xd5/{\rk\x1c\x06c\x13\xb3\xf4\xdd^\x05 \x1er\xf1}\ \xa3\xb1 \'\xb5\xab\xb3\xb5t\x06\x80\xc0x\x88\xb1\x89Y\x1aZ\xf7mK(V\x1b\x00j\ m\x86\xba\xc6C\xd4\x1a\x13\x80d\xc4Y\xb2hn]\xd1~\xe5\xd7\x99\xe5\xfa*`)Vp\ \x80t\xb2\x86\xc5\xe9^\xc2\x0b\xad\x00\xb4\xf7G\xd1\xf4\xc2\xe2BH\xfc\xc3\ \x11 {\x08\x17\xa7{\xd9\x8bY\x9f\x83\xe2(\xfb\x0bdF\xb0>\xefe\xe5\xd99\xa4\ \x04M7\xb9x\xeb\x03\xce\x96\x14\x00\xba+\xcd\xf9\x9b\x1fq\xb8\xd3\x00\xac>\ \xefb}\xde\x8bqP\xf9\x8d\x91\x9f/v,\xdd\xfe\x04\x02\x01H\xfc\x83[\xf8\xafF\ \xf9\xb6\xd1\x88\xcb\x97D(\xf2X^\x92\xf8\'\xb7\x9d\x92\xf9P\xa0\xf2\xb0pzR $\ \xa9]\x1d\xf3P\x05!qw$\x10\x8aD\x9a\n\xfb_\x1d\x00\xd4\xb7\x1c\xd8\x82\xce\ \x04\x83"\xc7\xb45\x07\x00:G\xc2l-y\xc8\x98\x82+w\x97\xf1\xf4\xc4Il607\xd5\ \x87y\xa8\xe2\x1f\x8a\x10z\xe9\xab\x08.^\xb35\x8a\x8b#0\x1e\xa2c8\xc2\xf6J3\ \xef\x1e\xf7\x94\x85Z\x81+\n\xd8\x95\xf9]\xe0\x1f\t\xfc\xcb8\xf5\x07IU\xa0*P\ \x15\xa8\n\xfc\x04\xe0u\xe8\xe3\xa4\x99\xcf\xbe\x00\x00\x00\x00IEND\xaeB`\ \x82\x91D<\x95' #---icon64 (64x64) ICON_PHATCH_64 =\ 'x\xda\x01\xd7\x0b(\xf4\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00@\x00\ \x00\x00@\x08\x06\x00\x00\x00\xaaiq\xde\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ \x08d\x88\x00\x00\x0b\x8eIDATx\x9c\xedZyl\x14\xd7\x19\xff\xbd9v\xf6\xf2\xae\ \x17\x1b\xdb\xf8\x08.^ \x94\xc4\x90BZ\x14A.RQ\xd4JAi\x10IC!\x11\x7f\x14\x94\ \x926$\r\xaaB\x81-DTH@\xd5\xd24\xa2Q#9i\x1b\xe5\xa0M\xa8\xda\x84\x9c\x8d\xea\ 6!\x06\x157\x04\xc7&\xe6\xf0\xe2\x03\x1f\xac\xbd\xf7\xcc\xbc\xf7\xfa\xc7\xce\ .{\xcc\xae\xd7\xc4\xc9V\x8a\x7f\xd2\xa7\x99y\xc7\xf7\xbe\xef\xf7\xbe\xf7\xde\ 7\xb3K8\xe7\xf82C(\xb5\x01\xa5\xc6\x14\x01\xa56\xa0\xd4\x98"\xa0\xd4\x06\x94\ \x1aS\x04\x94\xda\x80Rc\x8a\x80R\x1bPjL\x11Pj\x03J\x8d/=\x01\xd2\x175\xd0\ \x9e={*dY\xf6\x12B\xbc\x00l\x00.\x12BzeY\xee\xdd\xbcy\xf3\x10\x80\x92\xbc\ \x95\x91\xcf\xe3mp\xdf\xbe}\x8b\x18c\xab\x04A\x98\xcd9\xf7\x02\xf0r\x0ew\xa2\ \xd6t<\x15@\x1f\x80\x1eB\xc8\x9b\x00^~\xf4\xd1G?\x9at\xc3L0i\x04\xf8|>\xbb\ \xa2(\xf7\x10B6\x02\xb81\xbb^\xb2hpW\x0fAqD\x00\x10\xc4\xc36\x8c\x0eTBW\xe5\ \x1c]\x86I\x9d\x9c\xb3\xc3\xa2(\xbe\xfc\xd8c\x8f\xb5M\x8a\x91&\xf8\xcc\x04\ \xec\xde\xbd{\xae(\x8a\x9b\x00\xac\x07P~E\xdd\x15\xbd\x8c1x\xea/\xe0\xf6\xef\ \x7f\x90\xd1\xf7\xedg\xbf\x81\xcb\xfek \x08\xe3nE\xe79\xe7\xbf\xd0u\xfd\xe9\ \x1d;v\xe8\x9f\xc9\xe0,\\5\x01\x87\x0e\x1d\x92\x07\x06\x06\xb6\x13B~\n@L\xaf\ \xe3\x9c\x83\x10\x92zVU\x15p\x9e\xc4\xdd\x0f\x7f\x9a\xa1\xe3\xa5\x03M\xe0\ \xc1\x05\xb0X\xe4\xbc}\xb3\xd0I\x08y|\xdb\xb6m/]\x95\xd1&\xb8\xaaS`\xd7\xae]\ \xf3{{\xfb?`\x8co\xa3\x94\x8a\x94RPJ\xa1\xeb:\xac\xe5\xfdX\xfc\xdd\xa3`$\x98\ *\xd3u\r\x0e\xcf(tJ3\xc4\xe1\x19\x05\xa5\x1a\x92\xfd\x89\x14\xc4\xe2\xbb\xde\ \x86\xec\x181\xcaX\x96\xd09\xba\xae\xbf\xb8s\xe7\xce\x0f\xb6o\xdf~\xcbd\x100\ \xa1\x08\xf0\xf9|\x02\xa5\xf4\x11B\xc8.\x00Jv\xbdm\xda\x00n\xba\xef=(v\x1d\ \xc3\xfe2\x9cx\xe5&\xcc\x98\xe3\xc7\xcc\xafu\xa3\xac"j\xaa38d\xc3\xb9\x13M\ \x18\xe8\xaa\xc5\xa2\xbbZ\xe1\x99\x11F8\xa0\xa0\xf5\xb9[\xa0\x85\xa6\x8dg\ \xd2\xf3\xa2(\xfe`\xc7\x8e\x1dcE;\x91\x85\xa2\t\xf0\xf9|VM\xd3\x0e\x03XiVo\ \xf5\x0c\xe0\xa6\xb5\t\xe7\'\x03\xa1\xcb\x16\xbc\xff\x87\xdb\xa0\x86<\xe35\ \xedf\x8c\xdd\xb3g\xcf\x9e\x0f\xaff\x9c\xa2\x96\x80\xcf\xe7\xb3\xc6\xe3\xf1W\ \x19c+\x19cHJ24\xe3q\x15\x8e\xbaO (qh\x94N\x8a(\xae(\x9c\xf5\x1d\x88\xc7U\ \x93\xa5\x90Z\x12\xa0\x94\xce\xe2\x9c\xb7n\xdd\xba\xf5\x11R`\xf3\xc8\x87q#`\ \xcb\x96-6Y\x96\x8f\x00X\x9e\xafM4\x1aEGG\x07\xae_\xf9\x11V\xae\x17\xf35\x03\ g@\xcf\x19\r\x92L0\xa3QB!s\x8f\xfc\x8e\xa1\xf3\xddf\xcc\x9e=\x1bV\xab5\xbfN\ \x9eq\xff7J\xb5\xfb\x0e\x1c8\x10(\xe8T\x1a\n\x12\xe0\xf3\xf9\xec\xc1`\xe8\ \x08\x80\xdb\xf3\x0c\x0f\x00\xd0u\x1d\x83\x83\x838\xdd\xd1\x8e\xed\x7f\x1e\ \x86b\xcb\xf4l\xb8\x8f\xe2\x19_\x0c\x1d\xc7D\xe8\xaa\x04\xce9,v\x8a\xe6e\x0c\ \xf7\xff\xcc\x8a2Of F\x82\x1c\xbbWO\xc7\xfcy\xcd\xa8\xac\xac\x84(\x8a(6Q\xe4\ \x9c\xb7K\x92\xb4b\xef\xde\xbd\xfd\xc5\xb4/H\xc0\x96-[\xfe\x04\xe0\x9e\xc2\ \x03&\xae\xf1x\x1c\xd6\xfa\xe3\xb8m\xc3\xb9\x8c\xfa\x93\xef\xe9\xf8\xfd\xe3\ \x12*\xdc\r\x98>}:\x9cN\'8\xe7\x08\x85B\xb8t\xe9\x12\x821?6\xee\xa7\x98\xbd0\ 3+\x7f\xeb\xd0,h\xfd7\xc0b\xb1d\x8c3>8\x00t\x0b\x82\xf0\xcd\xfd\xfb\xf7w\x8f\ \xd7:/\x01\x9b7\xffx\xa3 \xe0\xb7&\xcaM\x11\x8b\xc5\xb0p\xedk\xa8n\x8a\xa4\ \xca\xc6\x86\x19\xf6\xadw\xa1\xbe\xfaZTUU\xc3f\xb3A\x92\x12\x11@)E$\x12A__\ \x1f\x86C\x1d\xf8\xc9\xb3\x11(\xf6+\x91\xd3\xdfe\xc7\xc9?~\x0b\x8a\x92s\xd8\ \xe4E\x96+\xfd\x94\n+\x9e|\xf2\x97\xed\x85\xfa\x98\x12\xb0i\xd3\xa6\x1b$I\ \xfa\x17\x80\xd4\xe23\xe3\x89\x88:\xaa\x17|\x02\x80\x83\xf20\xe6\xad8\x93Q\ \xff\xfcn\x19\xe1\xb3\x0b\xd1\xd0\xd0\x00EQr\x12\x1c\xce9\xa2\xd1(\xce\x9f?\ \x8f\xba\xaf\x9f\xc4w\x1ed\x19\xf5\xa7_o\x82\x00\'\xc0\t\xfaN\xcc\xcb\xea_TH\ \x04\x08!\xcb\x0f\x1eq\xd5\x07\n&F\xb1\xa0PpB\ \x8a\x18\xe3:\xce\xd1\x92M@j\x13\\\xb7n\xdd\nA\x10^+\xf6\xb8\xa1\x94bhx\x10=\ \x83\'\x11\x0c\x06a\xb1QlnQ!\xa6\xbd\xde\x9fy\xa7\x0e\x83\xad\xcb I\x99[M\ \xf6\x18\x9a\xa6\xa2a\xe5[\xb8\xe6\xc6\xe1T\x99\xae\x02\x07\xd7[\xa0FE\xb8\ \xca\\h\xacY\x04\x8f\xc7\x93\xb6\x11\x16\x9b\x17\xe4\xffQ\xa10\xcdf\x9fs\x0e\x87\xdd\x89J\xc7\\\xd4z\xae\x87\x8dz\xd1\ \xfe\x96\x08\x9d\xb1\x94\xcc\\\xd6\x03\xb9\xca\x9f\x13\xba\x89T:\xa9K\x87s\ \xd6\xa7\xa8]4\x98\xd1\xf7\xe4\x9b"\xac\xba\x17\xb5\x9e\xebP\xe1\x98\x03\xab\ \xd5j\xa4\xdf\xc5ET\xbe\xc8\xe5\x9c>q\xef\xbd\xf7.K\x12@8\xe7X\xb3f\xcd\\Q\ \x94N\x03\x98@.\xcd\xc19\x87\xae\xeb\xa9\xc4&(\xb6c\xf5\xde\xbe\x8cV\xf1\xa0\ \x8c3\xaf.F\xb0{\xa6\xe91X>\xaf\x0bM\xdf\xfe\x0fd[\xe6\x11\xf2\xfc\xc3\xb5p\ \x93\xeb\xe1t:!\x08\x04\xa2(\x9a~\'\xb8\xca\xcf\x19\xbd\xaa\x1a\xbf\xe1\xf0\ \xe1\xc3\x97$\xc3\x90\x07\x19\xa3)\xed\x13Q*\x08\x89\xdc\xdff\xb3#\x14\xa8\ \x86\x1a\xeb\x83%\xed\x00U\xca4\xcc\xbf\xef\xdf\x18h?\x87\xd1\xeeZD\xfb+\x00\ \x81\xc2^3\x02\xcf\x1c?*\xaf\x1d\xcc\xd1\x19\x0f\x13\x08\xf1*\xd8<6#\r\x86\ \xc91j\x06\xf3z\x13\x7fjEQ\\\x03\xe0\xd7\x04\x00Y\xb5j\xd5jQ\x94\x9e!\x84\ \x98\x1c\xb4\x85\x07M*\'\x960\xae\xbb\xff\x1fp\xd7E\n\xb6/\x16\x81\x0b\x0e|\ \xd4r3\xb8:\xe1\xb3\xbf 8\xe7\xfd\xe1p\xe8\x87G\x8f\x1e}\x95s\xae\x11$\xc2^Y\ \xb2d\xc9\xd2\xea\xea\x9a\x16A\x10fLT)c\x0c\x8d+?D\xe3\xd2\x8b\x93jl\xd7\xd1\ F\xf8\xdf]`\xf2\xcd\xb0\xe8\x99\xce@4\x1a\xf9k{{\xfb\xcf\xfb\xfb\xfb\xbb\x01\ \x04\x01h"\x12\x04\x88~\xbf\x7f,\x12\t\xbf\xe3r\xb9\xea$I\x9a\xc59\'\x9cs0\ \x96X\xeb\x85DUU\x9c\xfe\xa7\x86\xb2\xba\x11x\xea\xae\xa4\xb3\x17;\x80\xb2\n\ \x14|\xed\x05\x12\xaf\xc9\xbd\x9f\x00\xae\xca+e\x1f\xbf#\xe3X\xcb5\xb0Ym D\ \x18\xd7\x06saI\xfb\xce\xf6\xf6^|\xa2\xb5\xb5\xf5\xe9P(4\x04 \x0c@\xe3\x9c\ \xb3d\x04\x88\x00\xec\x00\xdc\x00\xab\x0e\x132\xd2\x93+\x01\xf9#\x00\xc8\x9d\xfdl\xc9\ \x8e\x90Iq:\xc3\xfe\xc9\xfe\x87H\x16!fW3p\xb3\xebd;k\x86\xcf\xe5/2\x05\x07L\ \xdb\xf2\xbf\x08\x07\xc7\xc3\x17N\xc0\xff\x1b\xbe\xf4\x7f\x93\x9b"\xa0\xd4\ \x06\x94\x1aS\x04\x94\xda\x80Rc\x8a\x80R\x1bPjL\x11Pj\x03J\x8d)\x02Jm@\xa91E\ @\xa9\r(5\xfe\x07\xc5\x1a\xe2\xf8\x18N\x9c\xff\x00\x00\x00\x00IEND\xaeB`\x82\ $:\x90\xe3' ICON_INSPECTOR_32GIF = \ 'x\xda\x01\x9f\x05`\xfa\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ \x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ \x08d\x88\x00\x00\x05VIDATX\x85\xed\x96_lTu\x16\xc7?\xbf{g\xda\x0e\x9d\xb9\ \x1d\xec\x1f\xb1\x12\xaa4L\x87PXP\x08X\x1c\x82\x08\xbeh|\xe2\x81\xac\x8a\x1a\ V\xdd\x85\x05\x1f\xdcd\xe5\xd1\x8d\xf8\xe7\x89j6Qx\xf2\xa1\xd1D\xa3\x89\xc1\ \xc4D"+\x9b\xf0\xc7-\n%\xa2\x03L\x81\xd2\x0e\xa5\x9d\x99\x0e\xd3\xf6\xce\x9d\ \x99\xfb\xfb\xb3\x0f\xad5]\n"\x91\xb0\x0f|\x93\xfbt\xcf=\xe7s\xcf\xc9\xf7\ \xe4\x08a\xd9\xdcNY\xb7\xb5\xfa\x1d\x80\xff\x07\x80\xc0o\xfd\xe0\x93\x8f?1\ \xd9\xec0\x95\x8a\xc2\xb2\x04uu\x116?\xfb\x9c\xb8Y\x00q#.x\xa7s\xb7I\xa5\xce\ \x93\xc9d\xf0\xfd\n\xb5\xb5\xb5TU\x05\xa9T|\x8aE\x17\xcb\xb2q\x1c\x87\xd9\ \xb3\xa3,Z\xb4\x88\xe7\x9e\x7f\xfe\x86\x81\xae\x0b\xd0\xb9\xbb\xd3\x1c?~\x1c\ \x00\xa5\x14mmm\xac]\xbb\x86X\xac\r\xc7\tS(\x8c\x91L&9x\xf0\xdf\xf4\xf6\xf6\ \x12\x0c\x06\xf1<\x8fP\xa8\x86\xe5\xcb\x97\xf3\x97\xad[\x7f\x15\xe4\x9a\x00\ \xdb\xb6n3\xf9|\x9eH\xc4\xa1T\xf2x\xec\xb1\xf5l\xda\xb4\t!\x04\x97.]"\x97\ \xcb\xd1\xd8\xd8\xc8\x9c9s\xd0Z\xd3\xd5\xf5!\xfb\xf7\x7fE$\x12\xc1\xf7%\xae[\ $\x1a\x8d\xf0\xfe\x9e\xbd\xd7\x85\x98\x11`\xf33\x9b\x8d\x100k\xd6,\xae\\)\ \xb0n\xddZ\xb6l\xd9B6\x9be\xd7\xae7\xe8\xee\xeeFJIuu5+V\xac`\xe7\xce\x9d\xd4\ \xd7\xdf\xc5{\xef\xed\xe5\xe0\xc1op\x9c\x08\xc6\x80R>\xae\xeb\x91H$\xd8\xf1\ \xf2\x8e\x19A\xae\x02x\xfa\xa9\xa7\x8cm\xdb\x04\x02UT*\x1e\xe1\xb0\xc3\xae]\ \xafcY\x82\x17_|\x89\xfe\xfe4\xb1\xd8\x02,\xcbBk\xc5\xd9\xb3)\xda\xda\x16\ \xf0\xf6\xdbo\x91\xc9dy\xf7\xdd\x7f\xe2\xba.\xb6=\x91\xd7\xb2,\n\x85\x02\xf1\ x\x1bo\xbc\xf9\xe6U\x10\xd3l\xf8\xc2\x9f^0\xc6\x80\x10\x13\xc9=\xafD{\xfbB\ \xa2\xd1:>\xfd\xf43\x86\x86\x86X\xb6\xec\x0f\x18\xa3\x91\xd2\xc7\x18C{{;\x83\ \x83\x97\xe9\xea\xea\xe2\xd8\xb1c\xcc\x9d\xdbL\xb9\\\x9e\xec\x80\xc2\xf7}\ \x1c\xc7!\x99<\xc3\xf6\xbfn7\xd7\x04\xf8\xc7k\xaf\x99\x91\x91\x1c\xc1`\x00\ \xdf\xf71F\xe3\xfb\x92\xe6\xe6\xb9\x00\x9c>}\x9a\xfa\xfa\x06\xc6\xc6\\\xa4Th\ \xadQJ\xe1\xba.\xe1p\x84L&\xc7\x91#G(\x95\xcaX\x96\x85R\x12\xad\'\xe2\xca\ \xe52\xe1p-\x03\x03ivl\xdfaf\x04\xf8\xee\xbb\xef\t\x87\xc3\x93\xc5\rZk\x8c1\ \x94J%r\xb9\x1c\xb6mc\x8c\x9eJ:\xfdQ\x04\x02\x01B\xa1\x1a\x8c1(\xe5O\xc6N\ \xbc3FS\xa9\x94\xa9\xad\x9d\xc5\xf9\xf3\x17x\xf5\xef\xaf\x9ai\x00\xdb\xb6n3\ \xc1`\x15R\xca\xc9\xc2\x1a)\x15`8w\xee\x1c\xfb\xf6\xed\xa3\xa9\xa9\x11\xa54\ \xc0Tr\xa54B\x08\xa4\xf4ihh\xa0\xa3c5\xb6-\xf0\xbc\xd2\xe4\x08&b\xb46hm(\x97\ \xcbD"aN\x9c8\xc1;\x9d\x9df\n \x9d\x1e \x18\x0c\xa0\x94\x9a\xf6W\x96eq\xf1b\ \x1f===\xf4\xf5\xf5\x11\x8b\xc5\xc8f3\xd3f\x98\xc9d\x987o\x1e\x1b6\xac\xa7\ \xb5\xb5\x953gRTWW\xe3\xfb\xfe\xb4\\Zk`b\x1c\x8e\x13\xe1\xc0\x81\x03\xbft\ \xc0\x18C0\x18\x98\xea\x80\xd6z\xcaf}}\x17\t\x85B\x04\x026\xb1\xd8\x02\x96,Y\ \xc2\xf8\xb8\xcb\xe8\xe8\x18\xc5b\x91\xa5K\x97\xf2\xca+\x7f#\x1e\x8f\x93J\ \xa5H&\x7fB)\xd0Fa\x8c\x9a\x1a\x9b\x94\x12)\x15B@(\x14bppp\xba\r\x9fx\xfcq\ \x13\x8dF)\x97+(%\x7fv)B\xc0\xc8\xc8\x08O>\xf9\x04\x89D\x82\x96\x96\x16\x86\ \x86\x86\xc9fs455\x12\x8f\xc7\x01\x18\x1e\x1ef$\x9fep \xcb\xbf\xbe\xf9\x82\ \xff\x1cM\x12\xae\x0b\xa2\x94\xc1\xb2\x04\x96\x15\xc4\xb6\x05\xe3\xe3.\'O\ \xf60\x90N\x8b\xab\xf6@\xeb\xfc\xf9&\x1e\x8f\xe38\x0eR*|\xbf\x02\x80\x94\x8a\ \xcb\x97\x07I$\x1ef\xe3\xc6\x8d,^\xbc\x98\x9a\x9a\x1a<\xcf\xe3\xd4\xa9\x1f\ \xd8\xb3g/w\xdf\xd3\xc4\xcae\x8f\xb2r\x83\xc5\xa1\xc2\xcb|\xbe;L\xfe\x87\xfb\ \t\xd6\x15\x91e\xc1\xe8h\x81\x0b\x17\xce1\x90\xbe4m\x17\xcc\xb8\t\xefmn6\xb1\ X\x8ch4\x8am\xdb\x08!\xd0Z\xd3\xdf\xdfO\xb1X\xa4\xbe\xfe.jjjp\xdd"\xf9|\x1e\ \x83\xe6\xc1e+\xf9\xe3K\xab\xf8\xe8\xc8\x9f\x99}\xbffnk\x15\'?x\x80\xdc\xa9\ \x16\xd2\xb9\x9f\xe8\xe99uc\x9b\xf0\x7f\xd52\xaf\xc5444\x10\x8d\xd6\xe18u\ \x08!\xf0\xbc"RJl{\xc2z\x96\rc#\x92\xd0\xc2\xa3\xdc\x97\x18b\xf8\x8cE\xe3|\ \xcd\xbdq\x9b\x1f\xbbV\x91:Z\xcb\xa1o\xbf\xbe9\x80k\xc9\x89\x84\xcd\xe8\xd8\ \xf8T\xd2\x8e\x87V\x1a\xe9U\x11}\xb0\x9b\xf8Z\x97t\xd2\xe2\x9e\x98\xe6\xbe%6\ \x87;W\xe1\r\xde\xcd\x97_}~\x15\xc4M\x03\xcc\xa45kV\x9b\xd2\xa8M\xdd\x03\xdf\ \xb2p]\x91b^\xd0\x9f\x04\x93z\x84\x93\xdf\'\xb9\x9c\x19\xba\xb5\x00\x00\x89\ \x87\x1f2n\xdef\xce\x9an\x08\x14\xe9\xdf\xbf\x8abi\x84\xde\x0b\xbd\xbf\xef\ \x08\xae\xa7\xd5\x1d\x1d\xa6R\x9a\xd8\x03\x85\xd1+\x9c\xedM]\xf3&\xb8%G\xe9\ \xa1\xc3\x87Em\xa4\x8a\xc2\xd8\xf5\x8b\xc3-\xea\xc0o\xd1m?\xcb\xef\x00\xdc\ \x01\xf8/ky\xbeP\xcelT\x0f\x00\x00\x00\x00IEND\xaeB`\x82\xc9%\xc46' ICON_INSPECTOR_64 = \ 'x\xda\x01F\x15\xb9\xea\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00@\x00\ \x00\x00@\x08\x06\x00\x00\x00\xaaiq\xde\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ \x08d\x88\x00\x00\x14\xfdIDATx\x9c\xed[{t\x94\xd5\xb5\xff\x9ds\xbe\xc7\xbc\ \x1fy\x10\x84\x90\x84\x86\x80\x88\xbcA\xd1+"b\x81J\xad\x8f\xd6G1\xf5\xc1\xf5\ \xdaZ\xb5\xd7\xebZ\xed\xb5\xd8V\xef\xeaE\xef\xe5.\xafR\xd4\xfa@EZ\x1fe\x81 T\ \xa5\x8a\xa0\x08B\xb5\x94\x04\x02\x04K $!\xefL2\x99\x99d\xbe\xc79\xe7\xfe\ \xf1\xcdL\x12\x08/\xc5\xe6\xba\xea^\xeb\xacIfe\xce\xd9\xe7\xb7\x7f\xfbw\xf6>\ \xdf\x84H)\xf1\x8flt\xa0\x1d\x18h\xfb\x1a\x80\x81v`\xa0\xedk\x00\x06\xda\x81\ \x81\xb6\xaf\x01\x18h\x07\x06\xda\x94/sr)%I\xbd\xa6\x81&\xc7\xfeI\xfa\x95\ \x10"\x01 \xfd\xfa\xf72r\xb6\x0b!)%I\r\xca\x18\x13\x00\xc4\x19|\x9c\n!(\x1c@\ \xc4\xdf\x03\x8c\xb3\x06\x80\x10\x82\x01\x00\xa5\x94\xa7\xdf\xb3m\x1b\x9d\ \x9d\xb1\x9c\x8e\x8e\x8e\xc1\x9d\x9d\xd1\x9cx<\x91%%\xdcp\x98\xc7\x01\xd9\ \xed\xf7\xfb:\x02\x81@K0\x18l\xf6\xfb\xfd\xcd\x9a\xa6\xf5\x06\x8c\n!(!\x84\ \x7fY`|a\x00R\x0e\x82\x10"\x00 \x16\x8b\xbb\x0f\x1c\xa8\xbc\xb8\xaa\xaajzuu\ \xcd\xa4\xb6\xb6\xb6\xe2X,\x96gY\x96_\x08\xae\xa5\xb2\x02\x80\x84\x94\x00c\ \xd4RU5\xe6\xf7\xfbZB\xa1puA\xc1\xb0\xf2\xa2\xa2\xa2\x1d\xa3F\x8d\xdc:h\xd0\ \xa0\x96\xf4:\x9cs\x85Rz\xd6\x81\xf8\xdc\x00\xa46N\x08!\x1c\x90\xa8\xac<0y\ \xc7\x8e?_\xb7w\xef\xde\xab#\x91\xf6\xf38\xe7\x841\x06MS\xa1(*\x00H)!\xa5\ \x14\x12\x90 \x84\x82R\n\x00\x94sA,\xcb\x04\xe7\x1c\x9cs\x00\x04\xc1\xa0\xff\ \xe8\xf0\xe1\xc3\xdf\x9d4i\xe2\x9bc\xc7\x8e\xfb0\x1c\x0eu\xa4\xd6eg3=>\x17\ \x00\x9cs\x851f\x03@YY\xd9\xc5\x9b6m\xbeg\xdf\xbe\xfdW\xda\xb6\x15\xd4u\x17\ \x14E\x01\xa5\x8c\x13"\xd1\xddm\xc04\rJ)\x83\xcb\xa5\x13UU\x01HX\x96\x85d\ \xd2\x00\xe7\\\xea\xba\x06]wI\x00R\x08\tB@m\xdb&\x86a@J\x89A\x83\x06\x95M\ \x9d:\xf9\xb5\x193f\xbc\x9c\x97\x97\xd7\x94\xf2\x811\xc6\xf8\xc9\xfc<\xeb\ \x008\xe2\x06J)\xe1uuG\x0b\xdfxc\xcd\xcf\xcb\xcav-\x90\x12\xaa\xcb\xe5\x06\ \xa5\xc4\x16BPJ)M&\x93\xb0m\x1b\x05\x05\x058\xff\xfc\xf31|\xf8p\xe4\xe6f\xc3\ \xe7\xf3\x01\x00\xe2\xf18\x9a\x9b[PUu\x08{\xf6\xecA]\xddQh\x9a\n]\xd7\xc19\ \x07!DRJ\x05\x00\x98\xa6\xc9\x0c#\x89@ Ts\xf1\xc5\x17\xfdv\xee\xdc9\xcb\xb2\ \xb3\xb3Z\xa5\x94T:\x0e\x9d\x89\xd0~>\x00R\x1b\x13\x00\xf0\xde{\x1b\xe7\xaf]\ \xfb\xe6\xa2X,V\xe4\xf5zA\x08\xe1)\xf5&\x94R\xc4b1\xe4\xe7\xe7\xe3\xdb\xdf\ \x9e\x87\t\x13\xc6\xc3\xeb\xf5\x9et\xeeX,\x86\x9d;\xff\x8a\xb7\xdez\x1b\x8d\ \x8d\x8d\xf0\xf9|\x10B \xed[*\xf7a\xdb6\xeb\xeaJ //\xafb\xee\xdc\xb9\xffy\ \xf9\xe53\xff\xa0(J\x1fF~)\x00\x08!\x14J\xa9\xdd\xd9\x19\xf3\xbf\xfc\xf2\x8a\ \xff\xde\xb1c\xc7]^\xaf\x07\x8a\xa2Z\xb6\xcdU\'\xa7\t\x08!H$\xe2\x989s&n\xbc\ \xf1\x06x\xbd^H\xe9\xd0\xddI\x0bz\xec\xbc\xb0,\x1b\xba\xae\x01\x00\xa2\xd1(^\ }\xf55l\xdd\xba\r~\xbf\x0fBH\xa4K\x05)\x9d\x1a\x811\xc6\r\xc3P\x92I\x03\xa3G\ \x8fZ]ZZ\xfa\xef\xc3\x87\x17U\xa5k\x8d\xb4\x18\x9f5\x00\x84\x10\x8cR\xca\xeb\ \xeb\xeb\x07?\xf5\xd4o\x7fW]]}E \x10\xe0\x9c\x0bH\xe9\x1c}\x00\xc0\x18E"\xd1\ \x85k\xae\xb9\x1a\xdf\xfd\xeeu\x00\x00\xcb\xb2\xe0\xe4\xbc\xa3\x80\xb5\xb5\ \xb5\xa8\xab\xab\x03!\xc0\xb0a\x05\xc8\xcf\xcf\xcf\xac\xd3\xfbo_}\xf55\xfc\ \xf1\x8fo\xc1\xef\xf7\xa7D\xb1\xafQJ9\xa5\x94$\x12q\xaa\xeb\xae\xa3\xd7^{\ \xcd\x83\xf3\xe6]\xf9r\xca_z&)qR\x00\xd2\xd4\xaa\xa9\xa9\xf9\xc6c\x8f=\xfez$\ \x12\x99\xea\xf3y-\xcb\xb2UBz\x8a:J):;c\xb8\xea\xaa+1\x7f\xfe|\x08! \x84\x80\ \xa2(\xe8\xe8\xe8\xc0\x8a\x15+\xb0z\xf5j\x1c\xc4M7}\x1f\x83\x06\xe5a\xdc\xb8\xf1\xd0u=]\x08\xa4\x1c\ w4\xc34M\xec\xde\xbd\x1b\xd1h\x07V\xae\xfc\x03\xa6L\x99\x82H$\x02\xb7\xdb\ \x8d\xdd\xbb\xf7\xe0\xf1\xc7\x1f\x87\xd7\xebM\x01\xd0\xbfI)\xa1\xaa\x8a\x95H\ t\xab.\x97^\xfd\xe3\x1f\xff\xa8t\xca\x94)\xdb\xd2\xdauF\x00\xa4\x1a\x18\x12\ \x8b\xc5\xbc\x8b\x16=\xba\xa6\xb6\xb6v\x96\xcf\xe7\xb5-\xcb>\xaeqb\x8c"\x1eO\ `\xc2\x84\xf1x\xe0\x81\x7f\x07\xe7\x1c\x94R\xd4\xd7\xd7c\xee\xdc9\x08\x04\ \xc2\x183f\x0c,\xcbB\xdfuz\x84\x8dR\x02M\xd3PQ\xb1\x17\x80\xc4\x1bo\xacFSS\ \x13\x9a\x9b\x9b1j\xd4H,[\xf6\x12*++\xe1\xf5zO\x90\n=\xa6(\x8amY\x96\xc2\xb9\ \x1dY\xb0\xe0\xf6[f\xcd\x9a\xf5\xd6\xa9\x98p\\;\x9c:[\xc5\x0b/\xbc\xb4\xb8\ \xba\xfa\xf0,\xaf\xd7k\x99\xa6u\xcc\xe6\xd3t$\xb0m\x0b\x17\\0\x15\x80\xa3\ \xea\x84\x10,]\xba\x14R\x12\x8c\x193\x06\x86\x91\x84\x10\xa2\xd7g\xfa\x02.\ \x84DWW7\xc6\x8c\x19\x83x<\x8eW_}\x15\x94R\x94\x95\x95\xa1\xac\xac\x1c\x13\'\ N\x80a\x18\'\xddx\xda,\xcbR(\xa5\\Q\xd4\xac\xa7\x9f~f\xe5\x9bo\xae\xbb\x911f\ \x0b!N\xd8\xf5\xf6\x01\x80s\xce(\xa5|\xfd\xfa\xf5\xff\xbcm\xdb\xb6\x1f\xf9\ \xfd\x01\xdb\xb2LUJ\x99\x116g8u\xbce\x99\xf0z\xbd(..\x06\x00(\x8a\x82\xfa\ \xfazl\xdb\xb6\x1d\xe7\x9e;\x1a\x96eBJ\x87\xa2B\xf4\x1e"u\xce;\x83\x10g\xae\ \xe2\xe2b|\xf4\xd1V\x98\xa6\x89\xfa\xfaz|\xfc\xf16\xf8|>x<\xee\x0c\x8b\xfa\ \xfa\xd1wH)\xc19g\x00\xb8\xcf\xe7w\xafX\xf1\xbb\x97\xd6\xad{s>\xa5\xd4\xe6\ \x9c\xab\'\x05 \xd5\xbe\xf2\xca\xca\x03\xe7\xafZ\xb5\xeaQ\xaf\xd7+8\xb7i\xff\ \x1a)A\x08`\x9a&\x02\x81\x00\xc2\xe1p\xbaz\xc3\xde\xbd{aYV\xea\x08\xeb\x1b\ \xf9\xb4\x068\xa0\xf4\x1d\xb6\xcd\xe1\xf5\xfa\xd1\xd9\x19CGG\x14\xa6i\xa2\ \xac\xac\x0c\xc9d\x12\xe1p\x18\x86\xe1\x9c\x1e\xa7cB\x08&\x84\x90>\x9f\xcf\ \xbd|\xf9\x8a\x17\xdey\xe7\x9d\xef2\xc6,\xce\xf9qLPR\x9b\x07\x00\x18\x86A_~y\ \xc5b\xcb\xb2s\xddn\x95\xa7\xd0\xec\xd9v/0\x08\x91\xb0m\x0e]w\xc1\xe5\xd23\ \xce\xb5\xb4\xb4d~w\xa8\xdf\x17\xb8~\xe1L\xbd\xad(jJW\xe2\xe0\x9c\xa3\xb1\ \xb1\t\xb1X\x14\x9a\xa6\xc1\xb6-H\xa9\xf73\xe7\t\x8d\x02Tx<>\xfd\xc5\x17\x97\ \xbf\xe4\xf7\xfb\xa3\x97\\r\xc9\xc6c5\x81\xa6\x00`\x84\x10\xf1\xf6\xdbo\xdf~\ \xe0@\xe5\xb7\xdcn7\xb7m;\xb3\xf9t\x94\x8ew\xdc\xa1\xb0\x10@ss3:;;!%\xa0\xaa\ j\n\xd4SG\xbe\xef\xbc\x12\x8c9\xcb2F\xa1i\x1a(e\xb0,\x1bR\x1e\xab#\xa7\x1e\ \x9cs\nH\xa9(\xaa\x7f\xe9\xd2\xa7~_VV>)\xa5\t\x99\xbdQ)%%\x84\xc8\xa6\xa6\ \xa6s\xd6\xaf\x7f\xeb\x01\xb7\xdb#\x9d*\x0f\x99\x9c\xed\xd9h_\x1d\x00\x80\ \xee\xee$\xda\xdb#\xd8\xbf\x7f?>\xfb\xec3\x84\xc3!0\xc6 \x04?\xee\xf3\xc7\ \x8ecs\x98s\x0eEQ\x11\x08\xf8\xa0i:\x86\x0f/B8\x1cF<\xde\x99aT_-9\xf9Hi\x02e\ \x8cr)E\xde\x13O,y\xa5\xb6\xb66\x9fR\x9a\xee]@\xa5\x94 \x84\x885k\xd6\xde\ \x19\x89DF(\x8a\xc2{\x10JG\xf0\xf8H\t!@)CGG\x04---8r\xe4\x08v\xee\xdc\x89\ \xdc\xdc\\\xf8\xfd~\x98\xa6\x05\'+N/\xf2\x8e\xa6\x18\xc8\xca\n#\x10\x08@\xd3\ 4\x8c\x1f?\x01\x9a\xa6\xa1\xb9\xb9\x05\x8a\xa2\xf4s\x9a\x9c\xde\xb0m\x9b\xa9\ \xaafG\xa3\xd1s\x9fxb\xc9s]]].8%\x00\xa1\x94Rq\xe4\xc8\x91![\xb6l\xbd\xcb\ \xeb\xf5H\xdb\xb6h\xef(\x1f\x1b\xc1\x9e\xf7y\xca\xb9V44\xd4#\x1a\x8db\xfb\ \xf6\xed\x88\xc7c\x18?~\x1c:;\xd3Q;\x9e\x01\xc7+\xb8SP\xc5\xe3q\x8c\x1b7\x0e\ \x942\xe4\xe4\xe4`\xda\xb4ihkkC{{{\xaa\x1a\xe4\'=\x05N\xc6\x04\xdb\xb6\x15\ \x8f\xc7cWVV~\xeb\xf9\xe7\x9f\xff\x0fJ)\x97R:\xed\xd9\xfb\xefoZ\x90H\xc4\xf3\ \x18cB\xca\xdeGc\xdfn\xac\'j\x0e\x03\x18#0M\x03\xfb\xf6U\xc2\xef\xf7\xe3\xf0\ \xe1\xc3X\xb3f-.\xbf\xfcr\x10BR\x85KO\xf5\xd7_\xe4\x9d\xdc\x06l\xdb\x82\xcb\ \xe5\xc2\x9c9\xb3\x91H$0f\xcc\x18\x8c\x1d;\x16\x1f\x7f\xfc1\x14EI\xd1\xf9Tl:\ \x15\x13,%\x10\x08\x88?\xfd\xe9\xbd\x9fn\xd8\xb0\xe1;\x94RN[ZZ\xf3>\xf9\xe4\ \x93\xefi\x9a*8\x17\xa4o\xa4z\xce\xedc\xdf\x97\x120M\x0b\xe1p\x18\xef\xbf\ \xff>\n\x0b\x0b\xe0v\xbb\xb1u\xebV\xec\xdf\xbf\x1f\xb7\xddv\x0b\x9a\x9b\x9b3\ \xcdM\xef9zG\x8c1\nB\x08"\x91v\x94\x96\x96b\xc8\x90!\x08\x85B\xb8\xf4\xd2\ \xe9\x88D"\xd8\xbcy3rrra\x9afJHOOO\xfag\x06\xc0\xb9\xe0.\x97\x8b\xac\\\xb9z\ \xc9\xd1\xa3\xf5\xf9\xb4\xa5\xa5%\'\x1e\x8f\x0f\xd64\x8drn\x8b\xfe#\x85c"\ \x98QY\xf8\xfd\x01\xd4\xd7\xd7c\xd7\xae2\\\x7f\xbds\x07\xb0~\xfdz\x0c\x1a4\ \x08\x0b\x16,@[[\x04\x89D\x17\x08!\xa0\x94\x81R\x06\xc6\x9cWB\x08\xe2\xf1\ \x04:;;q\xfb\xed\xb7\xe1\xba\xeb\xae\x05c\x0c%%%\xa0T\xc1\xa2E\x8f\x80R\x06\ \x8f\xc7\x93\xf1\xe7D\x0c8\x95\xc6H)\xa4\x106g\x8c\xa9\x94R\xa3\xa1\xe1\xe8\ \xcb\x96eF\xd8M7\xdd\xd8\xf2\xf4\xd3O\xff5++\xebR\xb7\xdb\x93m\x9a&O\xf5)$}\ \x94\x1d\xbb\xf1\xde\x0b\x08!\x10\x08\x04\xf1\xfe\xfb\x1bq\xc3\r\xdfC^^\x1e\ \x12\x89\x04\x8e\x1e=\x8aK.\x99\x8e\x8b.\xba\x08\r\r\x8dhnnFWW\x02\x86a \x99\ L\xc20\xba!%0rd\t\xee\xb9\xe7\xc7\x98;w.\x84\x10\xd0u\x1d\x8a\xa2 \x99\xec\ \xc6\x9a5k3-\xb2\xcd-(\n\xeb\xd5\x15\x9ez\xa4\xaaP)\x84\x10\x84P\xaa\xeb\x1a\ \xed\xec\xec\xac\xde\xb9\xf3/\xf7}\xf6\xd9\x81\xa5W]\xf5m\x8b\xac]\xbb\x96]s\ \xcd5<\x10\x08^\x1e\x01B\x00! \x08\x91\x921\x851\xc6\x90L&\xe355\xd5[\xaa\xaa\x0e\xad\ \x8b\xc7c\x9f\x00h\x04\x10}\xe8\xa1\x87\xba\x7f\xf9\xcb_J\xf6\xf8\xe3\x8fc\ \xec\xd8\xb1|\xe3\xc6\x8dvGGG"\x12\x89\xec\xa9\xab\xab+\x97R\xea\xa1Ph\xa8\ \xaajzJL\x84\xb3\x08!}U\xd7\xe9\xedm\xdbFVV6b\xb1\x04^|\xf1\x05\xb8\xddnL\ \x9f~\t\n\x0b\x0b\x11\x08\x042\xa7\x02\xe7<\xd3\xb8P\xea\x08\xa0\xa2(hhh\xc0\ \xc2\x85\x0b\xd1\xd0\xd0\x80i\xd3\xa6a\xd9\xb2e\xc8\xce\t\xe3\xdcQ\xa3\xa1\ \xeb\x1c-\xbe\x7f\x85U\xb8\x05\x87\xff2\x18\xbcK\x03\xd58\xa4@\x86\t\x0e\xdd\ \t\x14E!\x8a\xc2h"\x91h>t\xe8\xe0\xc6\xb2\xb2]\xcf\xd6\xd5\xd5\xad2Mc7\x80\ \xc6\xa1C\x87F\x96.]j\xdew\xdf}\xce\xfa\xe9\x1e\xbe\xb2\xb2\x12w\xdf}7\xd9\ \xb4i\x93\x17@\x10\xc09\xa1P\xf0\xa2\x11#J\xbe\x93\x9f_\xf0O.\x97\xee\xb6m\ \x0e\xdb\xb6\x85\xe3|\x9a\x15\xbd\x8f9\tEQ\xd1\xda\xda\x8a\xdd\xbb\xcbPTT\ \x84\x1bn\xb8\x01\xf3\xe6\xcd\xc3y\xe7\x9dw\x1c\x03,\xcbDyy9\xd6\xad[\x8f\ \x95+W\xa2\xb1\xb1\t\x9a\xa6\xe2W\xbf\xfa\x15\x86\xe6\x0fA,\xda\x8d\xe2\x11C\ \xc0J\x96b\xf3\xdf\xd6@\xcf\x02\xcc\xb6 >\xf9\xcdE0c\x1e(.\x0b\x8238%4\x85\ \x94\x90\x91H\xdb\xbe\xda\xda\x9a\xed\x8d\x8d\x8d;\x92\xc9\xe4\x01\x00\xad\ \x00"\x84\x90\x8e\xd2\xd2R\xf3\xa1\x87\x1eBqqq\xa6u\'\xa9r\x11\x8c1\x18\x86\ \x81\xc5\x8b\x17c\xc9\x92%J[[[\x10@\x88\x10r\x8e\xdf\xef\x9f\\TT4k\xe8\xd0a\ \x17\xf8\xfd\xbe<\xa7{\xb32\xacp\x12\xcfQ\x0c\xa7\xb2\xa4\x90\x92\xe3\xf0\ \xe1j\xd4\xd6\xd6@UU\x14\x16\x16\xa0\xb0\xb0\x08\xc1`\x10B\x08\xb4\xb7\xb7\ \xe3\xf0\xe1j\xd4\xd4\x1c\x81\x10\x02\x05\x05\x85(..F}}\x03\xf2\x06\xe7b\xd5\ \x1fV\xe3\xfe\xfb\xef\x87~\xeekp\x15\xb6!\x91\xa4\x08eK\x84\x87Jt\xb5\x05\ \xf1\xc9o\xa6\xc1\x8a\xbaA]\x96\xa4D#\xcd\xcdMe\x15\x15{~\x17\x8f\xc7\xeb\ \xa5\x94\xd5\x00"\x00:\x18c\xd1\xd9\xb3g\x9b\xf7\xdcs\x8f\xbc\xf2\xca+\x01 s\ k\x05\xf4\xba\x11J\x83\x00\x00\xe5\xe5\xe5X\xb4h\x11V\xadZ\xa5K)\x83\x00B\ \x00r\xddn\xd7\xa8\xdc\xdc\xbc\xa9\xf9\xf9\xc3\xa6fgg\x9d\xa7\xeb.\xb7s\x1c\ \np\xceS\x8f\xbd\xd2Y\xe1\xd0\xd1\xb2lD\xa3\xedhm\x8d \x16\xebL\xdd\x11Hh\ \x9a\x0e\x9f\xcf\x8f\x9c\x9c\x1c\x84BAPJ!%\x10\x8bEq\xcd\xd5\xd7\xe2\x87w\ \xcf\xc7\xf2\xcd\xd7\xa3\xbcv3\xba:\x14x\xfc6\\!\xc0\xeb#\xc8*\x94H\xb6\x05\ \xf0\xe7\xdfL\x83\x11\xf5H\xcdc\xc3\xe8\xe6\xade\xe5\xbb\x16655\xbe\x01@\xd3\ 4-2o\xde<\xf3\xce;\xef\xc4\xec\xd9\xb33\xb5\x08\x80>\xd7\xf3}\xae\xc4\xd2lH\ \xa3\xf3\xf6\xdbo\xe3\xc9\'\x9f\xc4{\xef\xbd\xa7\xdb\xb6\x1dH\xa5F\x16\xa5t\ \xb0\xdb\xed.\xce\xcb\xcb\x1b\x9f\x93\x93{~(\x14*\xf0z\xbdY\x8c1\xe64Q\x1c\ \x9c\x8b\xcc\x82\x84@R\xca\xd2\x92\x99b\tI_p\xa4}p\xb2\x99\x08Yu\xa0\x81\x8c\ \x99\x15\xc7\xd8\x1b\xff\x86\xc6\xbfQ$\xe3\x02\xb6\x05\xb8|\x80/\x0b\xf0\x06\ \t\xb2\x0b$\x92\x91\x00v,\xb9\x10F\xd4-]~I\xb8E:**\xf6\xdcp\xc5\x15\x97\xbfw\ \xcb-\xb7*\xd3\xa7O\xb7\xd3B+\xa5\xecW\x84\xfb\xbd\x14M\xebB\xba\x03\xdb\xb8\ q#\x96/_N\xd6\xad[\xa7$\x12\x89\xb4F\xa4\x01\xc9v\xb9\xdcC|>_Q0\x18,\n\x85B\ \xf9>\x9f/O\xd7]9\xaa\xaa\xf9\x19\xa3\xa9\xa7\xc7=b\x95N\x95\xf4\xef\x8e\x83\ \xb8\xf0\x8e\xd9\ \xb3\xbf\xb9\xc6\xe9Z\xe9\t7y\xca\'C\xe9{\xb8\xde@\xb4\xb7\xb7\xe3\xd3O?\xc5\ \xbb\xef\xbe\x8b\x8d\x1b7\x92}\xfb\xf6i\x96e\xe9\x00\xdc)0\xdc\x00\\\x84\x10\ \x8d\x10\xa2\n!T\x00,5\x08z\x8a\n\t\x80\xa7\xae\xae\x89\x10B\x0f\x87\xb3\xa6\ M\x992\xe5>MS\x83I\xa3[\xec/\xaf\xa1\xa3\xbeu\xa4\x0f\x08\xb6\x01x\xb3\x80@.\ \xe0\xf6R\x0c\x9b p\xe8\x83s\xb0s\xd9$xB\xc2\xe0\x96\xd4\x93\xc9\xe4\xef\x97\ /\x7f\xe9\x07EEET8\xf7\xfc\x9f\x0f\x80\xde\xd6\xfb\x89O\xda\x0c\xc3@yy9v\xec\ \xd8\x81]\xbbva\xdf\xbe}\xa4\xae\xae\x8e\xb5\xb6\xb6*\xa6i*\x00T8Wo\xbd\x01\ \x00zjV\x1b\x00O\x01\x91%\x84\x18\x16\x0e\x87gN\x9e<\xe5~MS\xfd\x0e\x08\xb5t\ \xd4\xbc#\x98\x91\x02!\x1e\x01\x04\x07T7pN1\xd0p\x08\xd8\xfe\\\x11\xce\x19Tl\ \xfb\x03\x1e\xa5\xb5\xa5u\xdd\xa7\x9f~r\xf3\xea\xd5\xab\xbb\xae\xbe\xfaj\xc9\ 9\x97\xfd\xe5\xff\x19\x03\x90\xb64+\x00\x1c\',\xf1x\x1c\r\r\r\xa8\xab\xabC}}\ =\xea\xea\xea\xd0\xd4\xd4\x84D\xc2\xe9\x03\xda\xda\xda\x00\x00\xa1P\x08\x1e\ \x8f\x07\x94R\x0c\x1d:\x14---x\xee\xb9\xe7\x14\xc30\x86J)\x0b\xc3\xe1\xf0\ \xccI\x13\'\xff\x9b\xaa\xabA\xd3\xe8\x16\xfbv\xd7\xd2\xd1W\xd6`\xc6m\x16\x9a\ \x0f\x01\xb1V\xc0\xe5\x07\x9ak\x81-\xcf\x87\x90\x9f\xf7\r\xbb`\xf8`\xa5\xb9\ \xb9usY\xd9\xae[)\xa5G?\xfa\xe8#L\x9d:U\xa4\xd2\xa0\xdf\xbd|\xaeo\x89\x11B2\ \x1b\xef\xb9\xefs\x80\xf4\xf9|())AII\xc9\x19\xcf[RR\xc2\xef\xbd\xf7\xde\xa3\ \x8a\xa2\xc8\xf6\xf6\xf6\xcd\x7f\xdd\xb5\x93L\x9c8\xe9~U\xd5\xfd\xe7\x8e\xcd\ \x17\xfb\xdf\x02\x05=\x82\x19\xb7\xda\xf0e\x01\x07\xb6\x03\x1f,\x0b\xa1p\xe8\ p;\xbfp\xb0\xd2\xd4\xd4\xf2\xc1\x9e=\xe5\xffbYV\xd3\x83\x0f>H\xa6N\x9d\xca\ \xd3\xe9{"c\x0f?\xfc\xf0\xe7\xc1 c\xe9G\\\xe9\xbe?\r\xc6\xb1\xf7\xf5@\x8f\ \xf2\xa7\x7fN\x8fty\xf1\xee\xbb\xef&\x18c\xa2\xab\xab\xab\xbd\ \xa3\xa3\xa31\'g\xd0$M\xd3\\\xa1\\\x8f\xd8\xf7\x01!6\x89A\xd1\x056\xfco\x08\ \xc3\x86\x149\x9bol\xf9\xb0\xa2b\xf7\x1d\x86a\xd6\xfe\xecg?\xe3\x8f<\xf2\x08\ O\x1f\xb7\'\xbdN\xef\xed\xc8@\x8etS$\xa5\xc4\xf2\xe5\xcb\t\xa5TQ\x14\xa5\x00\ \xc0\x8cP(\xfc\xf0e\x97\xcd\xec\xfc\xe67g\xcb\xe9\xd3/\xe5\x85\xc3\xbe!sr\ \xb3\xe5\xf9\xa3\xc7[s\xe6\xce\x91\x13\'N\xde\xac\xebz1\x00\xf5\'?\xf9\tK]\ \x81\x9d\xd6\xba_\x98\x01g\xcb\xd2\x91\x12B`\xe2\xc4\x89\xf0\xf9|b\xc3\x86\r\ \tEQRL\x886\xe6\xe6:L\xf0\xfa<"\x18\x08\x89\x9c\xbcl\xa5\xa5\xb9\xed\xc3\xbd\ {+\xee0M\xa3v\xfe\xfc\x9b\xc5SO=\xc5\x01d\xea\x98S\xda@G\xfedLX\xbcx1\x01\ \x90f\xc2\xa5\x0e\x13.\xeb\x9c5\xeb\n1{\xce\x1c9q\xe2\xe4\x0f4\xcd\x89|ii)K&\ \xbb3s\x9c\xeez\x03\xbe\xe1\x13\x8d^ \x05B!\x80K\x83\xc1\xe0/g\xcd\xba">y\ \xf2\x94\xad\xba\xae\x8d\x00\xa0\xdd|\xf3\xcd\xac\xbb\xbb;\xd3n\x9f\xc9:\x03\ \xbe\xd13a\x02c\xac\x80RzqVV\xd6m\x1e\x8fg,\x00\xc5\x89|\x12R\xca3\xde\xfc\ \xffk\x00\xfa\x01\x01p\x8a\xaaA\x00\xc2\x00\xd4\xf9\xf3\xe7\xd3\xcf\x1b\xf9\ \xaf\x04\x00i\x10\xd2\x8a\xfe\xca+\xaf\x90\x193f`\xea\xd4\xa9\xec\xd7\xbf\ \xfe5\xf9"\x91O\x8f\xb3\xfem\xf1/\xcb\xd2\xd5\x9ceY0M3\xf3\xddC)\xe5i?6\xef\ \xcf\xbe2\x00\x00\xceMN\xba\xb5\xed\xdd\xb2\x7f\x11\xfbJ\x01\x00\xf4T\x93_t\ \xe3i\xfb\xca\x01p\xb6\xed\x1f\xfe\x7f\x86\xbe\x06`\xa0\x1d\x18h\xfb\x1a\x80\ \x81v`\xa0\xed\xff\x00\x8b\xde\x9e\xca\xcd\x1f]\xe8\x00\x00\x00\x00IEND\xaeB\ `\x82\xc6h[,' ICON_INSPECTOR_96HIGH = \ 'x\xda\x15\x9a\x05TT]\x14\x85\x1f=\xf4\xd0)%R"%54C\xf3\xd3\x82\x804\x08H\x83\ \xa4twJK\x83\xb4\xb4t\xb7\x88\x0c \xc2\xd0)%\x8dt\xfe\xcfY\x97\x19\xd6\x9a\ \xc5\xcc\xbd\xe7\xdc\xbb\xbf\xbd\x1f/JCM\x01\x1f\x87\x1a\x07\x00\x00|%EY-\ \xf05\x12\xfc1\x85`\x82\xcfCU"\x9d\xe0\x0b\xba+\\I\x1b\x02>|!o\xc17\x19\x00%\ Yim\xaf\xec\x03?\xcflc\xb9\xce\x87\x97\xae\xdf\x17\x16\xacV\xf6K.\xa5\xb8\ \xb4>j<\x95\xc3^\xb4\xc3\x95%\n\xd5\x08\xc3\x85\x04S\x9cTH&J\x01Dd\xa9{rD\ \xf6\x91\x85\xab\x9d\xd1\xd4\x0c\x98\x10\x81\xa0PR[E\xd4\xf2\xaczv\x83\x15c\ \x04\xece\xb7\xe4\xd6\x0f\xf6\xa3\xdb\xc3z%\xc1\x94\xdb\x91\xcb\xbf\x99~\x97\ \xe2G\xec\xaeV\xb9\x7f}G}\xad\t\x8e\x03T(-xTI\xc2\xcd\x88\x110\xf6Te\x1f?\ \x02\x04Lx{\x80G\xc5\x9c\x12\x93\xd2\x02+\xbf\x84\x1e\x9f\x91\xde\r\xe3B\x8e\ s4\xb8\x90\xad\x96\x137\xdb\x15\n\x8f,d3|@\xc0X\xf7\x905\xea\x8f\xeb\x14\x97\ \xc3\xeeF\xea\x9fJ`b\xc4\xd8\t\xd3\xfc\xe2\xe5{\xde\xcaS_I\x19e\xb7\xb3i\xb2\ ]\x93]\x1d_WN\xc7\x9b\xd7M (\x17\xa4!\x07l\xa9\xd1Ot\x8d\xdcu\x8e\x06\xa2H\ \xda\xb0\x19\xd3\xfc\x8c?\xf8\xc1!k\xd1\x85\xbeR/\x8e\x1fF\x14\x08\x18\xc2\ \xcd\x02\xb5p\x94\xd9\x19C\x9d\x11\xad7\xe75\x01Oy\xddv&\xfa#\xf0ln\xf6?\t\ \xd8Y_\x9c\x9d\xa9lf?%\x8e\nt%\xd0\xd1\x91fO\x05\xd6\x01[\xf6 \x1f\x88\xb4\ \xd4\x07\'\x18\n%\xc5\xc1\x80\xc2\x13\x95\x05\x1ch\x05l\x07H6\xdfo\x9e,\xb5{\ v\xbb\xf7bl_\xd2y.\xd6Y"`\x18=\xcc\xcel\xc5\xe0\xba+*\xba\x9c\x0e\\\xf27e\ \xf0\xa1#\xa4%6\xc1PT\xe5r-\xae\xf4\xaa\x18\xee\x87zo\x04\xcc:\xe0t3=\xdd\ \xbf\xbd\xa8\xc8\xc2J\x986\xbc\xc4\x86!4#V\xdf4\xf6U$\x01\x16\x00erJv\xc5[\ \xcd\x85]\xfaY\x86B\xd5\xd87C\xa1\xd3<*\xbf\xff\xc2\x066\xea\x9aK\xd4\xf3\ \xfcM\x84ioBl\xea\xfb0(~\x98e\xbb\x82\x8b\x0c7\x93B\xba\x97>\xd0[^k\xa0\xa1\ \x03\x9c\xa3\x85\xd1\x85<\xc0\xd5\xd1\xe3\xc3\x9c\xae\x89\xdf\xf9\xb4Ap\xaf\ \xa9\xb2&i\x98+\x02P\x13o\xf79\x8ap5\xf6\tx\xc8=R\xb7O\xfc\x85\x1a\x8d\x16\ \xa8j\x94V\xb5\xa5\xd8jX\xcd\x92<\x12`\xe8\xb5\x86!\xa4\x96\'\xe1\x90\xfc\ \xd5\x8c\xad\xf8\xae\x88\xe0#!\x99TGl\xd2\xc8\xdbo\x89\x8c2W~\x97\xf7\xef\ \xb7\xa2\xc9\x9e\xfb\x7f\xd9\xbb)\x00\xdcZkT\xf7ro\x84\xba\xc8~:\xff\r\x8c\ \x1c\xe8R\xdb\x18\xcb%q\xa6\x11\xca\x86j\xf4\xf3\xb4\xeb\xe8\\\x0f;4\x8f\xdd\ \x8e\x17\xc8\x18\xb4\xc5\x0c2M\xbb\xe7\xf8iO#"P\x19\x8c\x8b^I8\x80\x93\x1b\ \x13\xa2\xb2@\xba "|\xf6\xb1\xd4K\x03\xafDk\x02<\xca\x8ev\x82\x1a\x94,\x12?\ \x8c\xff\xb7\x1a\x1c*\xbcj\x19[e\xe7\xe8\xf8\xb0\x9c\xe3\xb9|\x82\x05\xf0\ \xa8&\x97U|\x97T\xf6\xf8\x0e~\xca2\xe6\xedw\xdd\xea\xdca\xd8-\x8bT_\x8a\xd6\ \x10%k\xa8\xf3\xcf\x1d\xa5\x0bO\xc3\xfb\xaaY\xba\xf8W\xf6\x7f<;\x88\x16\xaa\ \xcb\x17\x8c\x03\xaa\x83B\xb0\xb9\xda\x9d\xe1\x90f\xce\x18-e\xbe \xa9\xe3\ \xe5\xbc\x87\xb3\xc3\x0f\xa1\x89\xb6\xc5Z\x8cAR\xabOQR\x08\xf1\x18\xf8\x8c\ \xcdh\xd2[N\xbfWV7q\xee9\xea\xe8\xb8C\xe6Y\x80\xf2)\x0c43|\xecp\xe5bT\x00\ \x82\x89\x169\xbc\xf1\xceV\x99\x11\na\xa4%\xe8\xe7WM\x19}\xf6\xfb\xfd\x87\ \xb3\x8b\x0b\x86\xf4QQ\xa9i\xfe1\x94X`\xad\'+\xcaU\xd2\xd9!\x91\x0f\xf8\xfa\ \xa6\x8a\x89.a\xc5\xf5d\x90bI\xc4a\xfeW\xb5y\x9db\xdf\xdaq\xc4\xbc\xdau\x0fP\ \xff\xe1\xafU,\x8d\x10\x81\xd0\xa2\xf3\xc6Hgg\xa6\x02\n\x9e\xd9\x0fs\xa0 {\ \xb4\xb4\x96\x1b\xb8\xea\x82\xa9\xf4\xc2",\xf5\'\xf8\xf17\x86\x13\x86\'\x15\ \xd4\xfb\x7f\x95\xbfJRa\xc1\xd2.\xc5\xa7\x114\x9d\xae\xd0\xf1\xda\x88\x13\ \xaa\xb3V\xc7\x82\xa0\x90\xca5fZ\xd6\xe0\x1b\xae\xb0\xc0\xa5\x84\xb1tu\xc8\ \xae}s\xbf~\xfd\xea\xebtwu"\xd9q\xf3\xa7\xe6-^\x7f`\x89\r\x9a\xc4\xe3-\xfb\ \x91\xa8\x94\xcaTh!\xdb\xef\x8a\xca.j\xe6P1\x04\xa5(Y F~\xef\xd3\xdfN\xbb]\ \xbf\xf0\xb6\x83\x93\xc2\xf1l\xfaZ\xb7\xfd\xb1\x15\x9e\xb8\x93\x02\xc2D\x1a\ \xca6\xf7A\x8d\xba\xf5T2\x87v\x94\x98\x0f\x0f\x97\xd7z_wl\xb2\xc8:\xa4\xf6W\ \xb8v\x8f\xf8\x00\xd9cy\x9d\x0f\x82YE\x11O.\xb8u\xb3\xddg\xf6W\xd4r}!\r\x9c1\ \x01\xb3\xda\x88[T(\xd5I\n\xbf\xf7\x8a_wv\xa7\xf9`t\xf7n\x9b#\xef\x10Y \xac\ \xe23\x1d\xba#\x19\x8d\x86\x90\xca\xd4@$\xd1S\xe7\xfbs$c\xa6J0\xefV\x03\xec\ \x9b\xf1\xc5\xe7\xf4\xb8\x01\x01\xec\xb4\x17>\x18\x97+\x01\x92\xa8A\xf9\xf8m\ \x9d\xf5J7\x9d\xd9\x85l\x1dZ\xe5)V\xe3\xb9~wT\xd6?\xde\xe0\xf7hv\xd2c~X\xa1\ \xfc\xfc\xa6J\xcb\x089\'G\xe1w\xdd\xa8\xc1\xe6\x85\xbe\x1d+\xe5\xc5\xd4\xb5\ \xady\x87\x9c\xc5OU\xaf\x06h\xc2,y\x7f\xe4\xf8\x90\xc8\xc7\xd3\xa2\\^\xf5v?\ \x1b\x91\rx\xbc\x95<\xde)\n\x90a&>\x89\x1d\xdf\xbf<\x17fdj\xd2*\xd76\t8\xee]\ Q\xdb\xcc&\x19\xad\x17\x0e$\\\x8c\x14\xcf\x07\x92\x86(\xb6\xb3\xc5\xce\x7f\ \x15\x8e\x10J\xde}\xc31B2y\x001\xd0\x9f\x97\xc9\xdfhvI \x89)\xca\xcf~d\x7f\ \xe0\xe0j\xfdmn}\x1b\x04\x84\x7f\x89H\xd7<\xbd\x16\xabn?\xdc\xd3 \xc5\x88=\ \xf1\xd3\x11\x10\x80\x9b\xf6\xe7\xa1\xf1\xb0\x17K^or\x1f\xb53f\x8d}\xf4\x12\ \x93x\xe7\xd6X# \xca`\xfe\x89\x85\xd2b\xc2\xfd\x89\xd0\x8a\xef\xa8\xbb\xa8\ \xe7aG\x16\xf4\xbb\xc3V\xad\xbb\xcbSO-\xfb\xbf\x95$\'9\xd0\xe0\xe5e\xbaE\xb7\ )U\xe1\xbb\xe3\x84\x83d\x9c9\xdd\x13\x9a><\xcf\x95{\x13\xaf\xdb\x83\xe6\x82\ \x8a?\xa6\xd3\xd2\xf2\xfe\xb0\x1e\xa5b\xad%\xb7\x83F]z\xcf\xfd\xbaa\x0fb\xb8\ Dm\xed=\x8a\x8d\xd1\x10%G*\x0ev\x18\xfc\xae~\x94\xeb\xf1i ,\x14\xea(\xc4L\ \xf4d\x99B\xe6\xec\xbc\x07J\x1a#\xb7\xe8\x7f[E)\xe9\xdf1.\xbf\xf3\x9fm\x9e\ \x7f9\xf9o\xdeF\x17\xe2\xa3\xa6\x07\x04\xfb\xf8\xc9\xc2\x8aD\xa0u\xee\x07\ \xf2\x02\r\xe8-\x95hy+f>\x1b\x8e\x90j2VH\xaf\xd3\xdd:\x85\xe4#w?OY\x89\xcd\ \xfe=\xe6\xf7|\xb4P\xdep{A\x85\x8f#\xe8\xdd\xeb\xd1\xcf)\\\xe3I`\xd6\xd0\xb3\ ]-yq\x1f/\x0e\xb9\xdf\x12\x87\x8f\xe1f\xab\x11\x92w\x12\x9f\xb2\xb2rVg|\xdc?\ #\x9f\xd7q\xe2.49\xc8((`E\x0f2\xf1\xab\x82\xed\xe8=^\xebOR+\xa5\xa1\x9bZi\ \x95\x13\xc7\xa6\xf3\xdeI\xd0k9VBGE\x01\xde&j\xc7\xbb>\xc1\x0c$\x86\xa7\x19\ \xfa\x9eD\x9f9\xc4+b\x94J\x98B\xce#\ \x94\r\xb0\x08>\xb4\xa8\x13\x06K\x88<\x9e?\xc5.IYw\xcd\xbb\xe5\xfcW\xd1\xb44\ \xf2\xafMM\x0cI\x8aL\x94\xbf\xa4\xcb\xcdM\xd4s\xb3\x90\x861\xa2\xc8d9\x1c\ \x0b\x80\x914\x85\x03\x82\x19\xa2\xc8\xfc\xf1\x9d\rU\xf8\xcc\xcck\x00\x1di\ \xe4\xf9\x04\xc2\x08b<\'\'gg\x7f_VW\x97\xa2\xad\xbd\xbd\xce\xef\xd6C\x9b\x83\ \xcc\xf7\xc0\x0e9K\x87\xdf\xfc\xb4\x07\xab\xa4G-\xaaV!\xa2\xa6\x1b\xc4\xb5\ \x04*\x04J\x98\xb6O&\xc59\xfa\xf1\xf1#\x8d\xe3\x15\x02\t\xe9\xa5\x15\x16\x1f\ g\\\x179\x7f\xb2\xc6JN!\xebH:\x85\xf1\xd12\x13\xf4+\xa34\xde\x04\xefi\x8aI\ \xb7\xf3\x02$\xd8t&\x7f\xf1\xa3\xef\x9ei\xc8\x16\xb9\x88^+\xbah\x01\x81\x0f\ \xd4\x19\x0bHR\xf7\xb4\xfc\xd4\xc7\x18\xc4\xb3\tw\xfc:=\xd2\xb11\x1b~!\xa1\ \x8d\x87\xdb#\x05\x03\x03\x9a\x9f\xbb\xfc \xac\xbc\xbd\xbd\'\x96\x96\xe2\xaa\ \xab\xb9\xde6\xe8\x7f\xd1\xabC\xb5\x18\x8e\x97c&n\x1a\x8f\x12\xe1!x\xcf\x18X\ [\xa0\\\xfcs\xceu+\xfbq1\x83\xd7\xa2\xd6ec\xa8\x13\x15n\xc2g\x1a\xc83\x04\ \xe2\x00\x94\x01\xa3Z\xd3\xde\xd0\x8b\x8b\x1c\xc9s\xcb]\x94{\x8f\x8e\xac\x19\ ]\\\xa6\xadV\xfd\xf0\xeajGZ\xff\xaba\xea\x19\xe9\xb6\x8608]\x82\xe4\x03z8\ \xbe\x9d\x9cH\x8e<\'yX\x89\x92i\xcb\x93\xc5\x16\xe9\xfb\x85\xfbX]\x03\xd3\ \x860\xc7\x90\xcfT\x11t"\x18\xd6y~\x82\xc0\xbf\xfd:\xdb\xe9#\x04V\xecI\xfe\ \xbfI\x81\xf4\x08%Q\x93*\xd7n\x92\xf63\x8d\xf9\xf2\xc5\xe6\x8d\xf6\xd4\x19\ \xc9\xf6\x8fV\xd3\xebPl\x92\x89\xc9\xc9\xba\x15\xcc\x89@\x148;\x86E,\x88\x8b\ \x8b\xe3\xfe\x00\xffd(\x8fA7\x89P^\xc3k\xf7\xab]\x83\xc8\xbd\x87i\xc91Z\x99\ \x88\x12\xa28y\x9a\x19\xe9\xf0\xdeq\xf1K1\xbc\'"\xa4#oI@\x11\x01\xbdT\x88I#\ \xd1\xb8<>\x0e\xb4\xcfwp\x94\xe1\xa1\xefI\xff\xeb)~\xd9"MP\xc4\xed\x17[\xb0\ \xed\x90\xd5\x83W\'\x1bIcV\x93SS\x1b\x00s\xdexQe%.h)K\x13\xc7\xb7{3\xdc{\xf4\ \x07\xe2$\\y\x86HutJ\x11\x99\xae\x0f\x7f\xdcD\xc6*\xa7\xff\xf8\x07\xbd\x95\ \x02@\xd6\x85\x9b\x99n#r2\x04\xf6b\t\xe44Q\x99\x94\xff\x04\xcb\x08\x96D2\xcc\ \xbc\x8c\xec\x06\x1e6\x84)I\x86\xf3\xfcov\xd5~\x14\x90\xd3j\xa5\xbd0\x88w{\ \xe3\xf5\xbc\x8f\xa1\x18\xbfz-m\xde\xceE\xcd\x16\x87A\xc7\xc4\xa4\x9b\x08N\ \x04A\'J\x18\xe6\xb5\xf9\xf9v1\xe0\xf1\x1e\x08\xe4\xb5\x18\x12\x06v\x0f\x0e\ \xe4$\xf2\x86\x7f\x16\xff\xc7\xeb\xb1\xaf\x17\nG)\xdd `\x0e\xb9:\xc2\r\xe5\ \xad\xae\xa8\xf0\xd8\x01e\xa9\xdb\x18\xe9\xeeH\x89\xc9\xab\xfa\xb7\x07EV\x93\ \xb4\xacByk\xac\xfd\xa0dk\xcb\xed\xa3\xeb\xec\xa1\xfdS\xc1ww\xa43E\xcb\xc5\ \xefw\x97\xd3F-\xb3\xdf\x7f\x1fq_\x85"\xa12\xcb\xea\x12\xd7\xa4\x1fG@\xa1\ \xa5\x0c\xeee\x80\x14\x08l\xb3\xba\x17k\xa6\xbcF\x1d\xb6\x13C\xf2\xc5\xa4\ \x9b\xc9ZC\x12e\x8b\x88\xc4nvVz`\xc3\x9f\x95\x92k-\x86\t\xb0\x182U0\xc7\xc5\ \xfe\xe2\x01\xf9\xc5\xc5\xd3u\x83\xbf_\xf93D\xfb\xa8\xff`\x8f\xd5\x8f\xae\ \xa8\xd8\x18\x17uBP\xabN\xb5\xa8\x10\xaf\x18Pi\xd0\xbe\x05\x8d\xc0\xef\xae\ \xdbC\x1aM\xaet\xc7"m D\xf4\xe1\xf9IY\x92\xbc\xe3\x97\x9d\xd0\x1b\t\xcf\xa57\ \xd7\xfal\xa4\x13?\x7f\x9a\x07\\\xd2\x94\xf3Y\x9exv\xfb\x00Q\xb2\xc4 \x99**\ \xa4Z\xee\xe2\xb9.LzI>\xef=\xcf^\x9f12\xae\x9cy\xe6\x11\xa6E\xa03\x9d\xcd\ \x0b\x86\xbc\x19\xd3\x1f\x19\xbc;`yx\xd8~\x12\xc1\xb6\xd9\xc8c\xca\xb492\xf8\ m\x88\xc9\xb9\x8dc\x15\x99\x7f^\xad\x870}\xde\x9a"\x1b\x12\xd6\xd19\x9fp\x1d\ \xcfi\xd0B\x9e\x17\xe1\xf7\xcf\xee5\\\xe2By\x05\xf2U\x98\x92"\xdb\xbcN\xfes\ \xaa\xac\xf8N\xb9\xf1\x8b\x1eX\x8fG24\xb5\xcb+\xf8\x91\xa6\xfa\xac35\x0e\xbf\ \xd4\xe6\xb0\xc4"\x8d\xd3\x0bu\x8d\xd7\xa94\x1e\xac5\xeb\xcf\xb7\x11\x81\x14\ \x98\xaa\x89\xd8m\xa8\x9d#\xab\xe8\x9e\xc5\r\xabR+T\xc3X\xf3IA\x9cVUU\xe95;>\ !\x10\xdd\xe7qF8\xf8\xc8\x00\xcc\xc9# \xa7\xfemy6ReP\x9b\x9b\xf6\xc4g\xd7\ \xf9LMz\xad\x86\xa4\xb4ur\xfc/\xe6\xb69g\xf8\x0f>\xdb6\x82\x06\x94\xe6hQ\xea\ F\x87\xb7\xa2\x82\x89:\xee\xf4y\xf5\xd5wB\xd4 )\xf4\xc4\xd5cj\x8fE\x9b\xd97\ \xd1\x9e\xbd\xab\x9dIon\xc8\xb5A\xa2\x80\xeftkJ\rQ~\xdf$\x06\x11\xa9\xad\xe3\ B=d\xf7\xdb\xdbf\xc6]\xdf\xae\xb3xh0\xb5\xab\x93:PJS{`\xc3\xe5\x8bI7\x1d01?\ \x1f\xadU\x1e\n\x0e0\xf5 `8a\xa8\xe1\x84\xf4\xe1Z\xe5\x00\x82\x8a \xf6~-&\ \xeaW\xa4\x81\xd3\x10%jP\xcfpM\xc7i\x05\xab\x9b\xd1p\xc3\xb8\xc4\xb6\xa7\xe4\ m\xbfT\x80\xa4\x87\xbb\xfbd\xde\xe3\xddr\x80~\x83\xd5\x18\xd22\xad\xd1Ntv\ \xdayq\xf6\xa6T\x9b\xba\xca\xb8\xfc\x9e+\xd7\xd9\xec\xf3w3\xaf\xc7\x07\xa6o\ \xcf\x1e\x91\xfcK\xf1\x9e\x91~\x9dO\x16<\xdfe\x89\xba\xff\x8dX\xb8\xbf\xbd\ \xaaYxG\xef\xe2\x0f\x87\xa0\x061\x88\x88\xb6\x03@\x81\xc67\xa5\xba\xaf\xe9%\ \xe0\xb1\x87\xf3P\xca\x16k\x9dS\x1e\xfb\xe5\xb8\xae|>\xbae(3\x93FP\xb2\x16k\ \x9d\xacT\x83si\x97\xbc\x1eQ7\\\x99\x9b\x1b\xc4\xe2\xa3/]\xdb\xb0\xd5\'\xe7H\ %\x0e\xc7\xa3\xea[\xf6\xf3\xbc\x7f\xb4\xfd\xe4\xd8\xeb\xc1lK\xd5\xe3\xb3\xc1\ \x15\x92\x1f.\xfdv\xb0\xb3\xab}\x8f|\x94!\x0by\x08\xb5\xd7\x94\x17\xcc\x92\ \x03\xe5Ye\n}\x9b6H\xaa\xe7e\x97\x16\r\xe1\xce\xa8\xa5{\'gsnc\x98\xd7\x9fe\ \x93\xe4V\x14~\x98\xabz\xb5\x0c\x1c\x12TQ\x01AGM\xd4v\xd4/q\xbd\x7f\xe3\xb1\ \x90\xae\x05\x1e\x03\x8a\xb9\x19\tF\xa0\xc5,\xe3\xab\x16\xbb\x89\xe7\x92;\ \xd2dvQ\x0c\xfdS\xc9\x87\x90<\xfcb\xc6\x90o*g1\\mW\x06\xd9\x7fe\x0eR\xa4]l\ \x86\xcf]\xf1\xb5`l\xdb\xf4\x90du\xf1\xec\r_\x81\x0b\xb1\x83\x8f\xd2\x94$\ \xa9/Hq\xd8\xd2G\xc1\rZ\xf6\xba\x12\xfcEM\r\xab\xf8\x17\n\x96Ec\x02\xf4D@\ \xed\x9ed(\xfb\xe0\x9e7\xb4{\xb9\xb1\xbb\xfd\x92*f\x10\x884\x84\x1a!\x1dV#\ \xdd\xa5\xc1\xfe\xf2e\xe2\xa9L\x05[\xf2\xb2)[\xb4\xdb:\xbd\x95\xd4\x8f\x84\ \xf6}(\xd6\xea\xad6\x12\xa5\xef\xd8\xaf\x1fmvA\xe4\xf9\xd4\x88\x08\xbc\x85N\ \xf1c3\x86f\x95\xb8\xb3Zd\xcf\xad\x11\x94\x06\xd7\xbb\x16\xe3KG\xc6Z\xb4L\ \xfe\x9c\xd7\x83\xdf\x0b\x07#\xc7H\x8b\xf58\x83]\xe3AR\x1f\x1e:\x96\xba\xb9\ \xbb\x17\xe8q\xf6\xc5\xd5hl\xdf\xdc\xef\xbe\x0b\xc8\xb9;IxX\xa73N\xd5\xa0/L\ \x1f~\x8fG\xf5\x13]*\xd6>\x02n\x8e.LK \x9aw\xedK\x97\xd2\xa6\x824\xf9b\xc5`\ \xc9\xd0\xa4\x18\x10\xe6\n\x17f\xcd\x86F\x1br=\xee\x0fR\x98x\xcb\xd6\xe9}\ \xbe\xafS\x94\xc1\xd4\xd4I\xcd\xf3\xbb\x80%pD\xc3\x07\xf81j\x8c\xd6\x8amk^h\ \xd1\x0f\x9e\xc5\xe4ifW!`\x10\xd0\x19\nS$W\xb7\xb7\xb7k\x96k\x9bRb\x82\xf6\ \xd9\xe3`>\xccM$N\x96i\xad,n\xbe\xd4(w\xb8J\xc6\xa4y\xa9{\xf3\xa8\xcai)I\xd0\ \xb9b\x9a\x83E\xf5\x13\x1e\xf0\x8f\x1e\xbf9\x14\x82\xa4\x80Te\x0c\xd0\xbe\ \x82\xe9\xaa\x9e5\x98\xb0\xeb\x9e7\xb1\r\xf5\xc1\xc7\r\xeb\n\xd0)\xe6\xcc\ \x1b\xff\x82\x13\x06\x1f\xb1m|\xc3\xa7\xda\xb0F\xcd\xe2\x8egN\x89\xb9\x99\ \xcd*\xa0z+fA\xbe\x9d\xedz$\x1c\x8e\x14IS\x97\xab\xc2\xd2\xac\xbc\xec\x14\ \xe9j\xaac\xc6\xfd\xd0I\xa5\xa339=\xbd\x19Z\xe3\xe3\xed]k3\xc5\xa2\xa1\xcck\ \xd6\x87\xdeNG\\v\x1f\xa7Y\xfbI\xe4Z\x9c\xdbi\xae\xbdVP\x86+}x \x8aD\x83#\ \xd5T\x9f|\xfdD\x18t\xac\xc4Q\xa1\xc9\xc9\xf5\xfe\xf7\xed\x1eM\xa2\xb4N\x7fz\ R\xbcwW\x96Q)\xd1\xf0\xd1\xe1g\xd9\xae\x08\xbf\x17P\x08\xcf\xdcE\xe3zHl\xe7\ \x1d\x8a\xe8\xde\x97\x86<\xdc0\xb8\xe1\x971\xc6\xd9|A\xc4Z\x9c\xcb/\xcc\xac\ \xbb\xfd^[\xb7.~x\xe7\n\xc61\xd8w\x10\xe0\xd0\x84\xe1\xc9\xa5%\x07\x9a\xd1>\ \x82\xb9N\x83\xb7nc\xb9~,\xfe\x7f\xb3V\x82y\t\x94[\x13\x94\xee\xceO\xff3\xb9\ P<8\xf2\xabK\xd2\x15\xa6\xf0\x98\x075zbf&\xfc-_\xd4[>l#$H\x14(NX\xfe\x9e\xc8\ \xcc\x17\xfd\x08)\x06\x00\xb6\xd6\xde]N\x17\xf2\xe2~A?\xd0\xf9^ZG\'\xd3mF\ \xdf\xc4We\xea\xab>\xf0\x87|\xed/od!\xdb\xef\xba\xe1\xadR\x99\x82U"\xf3\xb6`\ \xdfu@\xb8\xa8h@\x13\xf7\x81u\xf6\xf6ka<\xcc6D\xdf\xdfI\xde\x97\x10\x13\xed_\ |\x03\xf1i\xcdf\x14^[\xfc\xe4\xf4z<`\xf9\x84\xcepz\xbb\xf9\x94F\\\xff\\Ez\ \xf5\xd2\xd8vO\x9f\xa6\xffd\x1e\x15=\xefj`\x04\xf4K4\x82\xf6=\x91DO\xf7\xb5\ \x154KT\xb30\x01\xaf\xcb%\xf7\xa6a\x8c\xd28\xcc\xd2_|\x96O/\xf6+\x85\xc5\x01\ \x046g\x8c\x8b\x9c\xa6\xa4\xe7\xf5\xa6\xaeogiiDY\xc5\x1f\x0bb,\x06>\xb5\xc7\ \xac\x95\xbbC\x0c\xb3E\xa2u\xd4^\xfa\xdf\xc4\x0c\xd0\x85\x0e\xfce\n\xc8\xcdk\ i\xc7m\x14\xd2\x94\n/0}DFk\xfe\x91e\xf6\xf1\xf1I\x1a\xdd<>\xee\'D\x03@cr\xde\ \x9apn\xc1\xdd\x984\xdd\x85\xd7)\x1f\xd4\xfe\xa6Q\xbb2^\x98/\xd38\xdb\xe7\ \xb0\x15\x08<\xdfC\xfeK\x8e\x04\xffzX\xa2\x92\x19\xfcDt~r!\xcbe~`\x0f~dp\xb2\ \\\xf4(t\x846\xe1y"\x025N\xcf\x0c\x81\x1e\xab\xb0\xfc-juu\xa2\x1b\x84\xb1.\ \xe3}\xc0b\x88.\\\x1d\x96|p\xe1#\x8e\xa2\xeb\x83\xb1\xc6\x05\xad\xd6G\xe8\ \xe6\\\x11\xed9,\xce\xb3\xa6{\x9d\tg\xdf\xcb\xc9\xa1\xe8\x14\xebu\xfb\xa3\ \x81\xba\xfb\xef\x0b\x10\x085,\xe69{r\xd06\ts\x8e\xf6\xa9\n-\x85\x9a\xd7\xbd\ [`\xe2\x02:\xd4m\xfc\xc4\xa9\t3\xce\x91.\\r\xed\x97C0\xb0\xfd.;\x05\x11\xe6\ \xa3i/\xfe\x99P\x96d\xc5b\xadw\xb6\xb6p\xa6$)\x8e\xd4>\'\xff\xbfv\xb2LDe\x1c\ \xe7\x80\x8b\xe9\xb2\xfc\xc6\xef\x92\x07,\x12\xbb\xff:\xc76>\x18\xde\tR\x98\ \xc5\x92\x04\x9a\xde^/:\ \xf7\xe3\xb3\xa5*_\xf5\x12v%\xd8\x0bb\x99\xd1\x8c\x9c\x0f\xfc\xa99\xb2\x16\ \xc2\x1e\xb8\x8c\x0f\xe0/|\x07\x08\x9fi\xa0 ..<\xd8\xa2\x83\xc1\xe9\x96~\xd6\ b\x8f\xa5\x97\xa4\x03\x83\xc8l\xa7AK\xcb\'\xf9\x1c\xef\x8e\xbcA\xfa\x04o\xa7\ s4(\x82\xb24\xba\x90\xce\xe7\xf6\xc0\xd3Wm\x8a\x9fwD%\xbc*yd\xc0\xf2\xe7\x12\ #\xfa\xe74FC\x91\x0by\xad\xce\x94\xc3\x9a\xc8Qf\x7f\x83\xfc\x9a \x01\x04\x8a\ 2\x19[t\xf8t\xa5\xae\xc5T\x89*\x98Ob&\xe7\xe6vU\xb8y\xf0\xd0N\xbch\x9bW\xfcE\ \xc1=\xd7u\xd1h\x978f\xb5v\xfe\xa5C\xbd\xfd\xf6\xf7\x8cDo\x9c\xd4Q\xbd\xca\ \x86/\x94!}t\r!z\x84\xce\x88~pp\xf0\xce\xc6\xa67\x91Q\x86\x96\x869GMf\x8a\ \xdfw\xf3\xb9\x89\xb4Xn`5\x16\xc3\xeb\x19\xa6\xc6\xaf]\xc8\xcdN\xd19\x93\xfd\ \xe1\xeap\xf6[-\xf5@\x9e\xe7R*S\xcc\x95\xaf\xab|\xf7\xc1@I\xd9\xf4\xe1/y\xe1\ 7\xb7\xfb\xad\xad3\xdc\xe8Bh\xe0+n\xf1k\x99]c\xb2\xa7\xecz\x87\xba\xb8\xe8\ \xba/ZsV\xb7\x9d\xb8\xdb\x9e\xc5\x00xmt=\x06N\x9da\xb8\xdc\x1dP\xf0{g\xdb\ \xdc+\x8fZ\xe2h\x84\xd6\x13e\x08z\x7fd\xbeL\x1a\xdf\xaes\\\x12\xbd\x18`;j\ \xbd\xb7\x9d4\t\x98\xf3r\xf43\nD\xbe\xc4-&\r\x83\xa3\x04\xdcL\xe5\x81\x9aS\ \xfb\xe1\xaf\x15z\x88\xf4\x809/h\xb3\xc1\xb1\xfd\xf8\xbe5\xd6)\xe0v\xe1\x9d\ \x83\x83\xb4\x18]DI9\x01\xc9\x11\xe1\xd3\xb3\x838~\xf2\x9a?\xe7\x12\xfc~r\t\ \x07~0\xa0\xd0\xc6v\xba~\xd6\xba\xa6e\xfd\xd4\x07\xdb\x02O\xd7\xe8|\xda\x06\ \xccY\x95\x03\xe6l\x1fcZ\xa7\xa2N\x99\x1c\xb7}\x8c\xa4~\xdds\xbf\x1c\xb8KR#\ \xe8\xf6\xbf\xa4\xdb\xd3\xf2m\xb4\xcd/-\xa5\xa9\xd4\xed\x0e\xa30\xf6\xa2\xdb\ \x18\x8a\xeb\xff\xa2\xdf\x90\x8d\xc2\x0b \xde\xed\xd6\xf8\x9f?\xffw]V\xf2~W\ \xfc\xdf\x85N\xf4\x90\xf79\x04\x01Kv\x9f\xaa\x11\x88\xb2\x9a\x04\x9f\xee\x14\ \x0e\x90\xc8W\xd7\xe3G\xbd\xdf\x92\x9e&\x8d\xbc\xcd\x0e\x12\xd6g\xc6}9\xe4\ \xbc\x1e\xc5Z\xd0\xd0\x80\xd6\x1f\x91 %\x96[\xab\xf0\xdfJ\xf7UD\xca<\x96>\ \xa4fn\xf82\x0e\x8d!\xd6\xe5uyJs\x8e+\x02\xf6\x8a\xcaB<\xc55\x1e\xb4m\x97\ \x9e\x94\r\xf3\x00B\x98\xa2\xf2XI\xf9\xc2x\xe2Ib\xf2\xaf\x01\xbf\x1d\xb7\xe9\ \xe8\xff\x90}\x82f~\x85s\x9d\xf1\xc2\xf2:\xec}k\xd0\xa1\x04\xfa\x88\xff\xb8;\ I\'\xdf\x916/{?g+\x86D\xf4#HD}\xaf\x9c}\xb7EW@\xbc\xb7\x1f\xd3?\xba\xbc\xe8:\ +\xe6\x9e\xdb\x100\x96\xb7}\xbb\xe9\xb3\xb7?\xe6\\#p\n\x8c\x9aC\xd0\xdd\xeen\ \x90\xdd\xff.\xb5\x82\xfcD\r\n\xdc\xa8\x8a\xfc"8\x8d2L\xe3\xd4\x11\xe4\xbe7\ \xc3DN\xb2\x9bX\xc1a\xc1\x10B\xf6\xe8u\xc44\x1d\x85\x1b\xd9\xa5?\x1c0\x8e\ \xaa\x11j\xbaF\xa2.&!\x98\xe3xx\x7f\x9a\xce\x8dR\x9c\xb2\x9e\x10pgq\xe2\x14\ \xe0\xe3\xf6\xa5\xb0lo\xed\x8c\xbb\x99\xa6\xbd\xc9\xecCH\xfc\xb97\xc7i\xcb\ \x1b\xd1\xfc\x99\xca\xc4\xf0b\x15\x9aU\x8fR\xe2\x1do\xa0\xd7\x14L\xf8\xfb=9\ \x9e\xcbQ\xc9\xea\x12T\xa5\xd9\xef\xa3I\xbe\xab1\x13\xff\xbb\x98\x0en\xd3\ \x83\xe6\x95\xf8\xa6&AC\xe7\xde\xeb\xab\x93\x84\x00t9M3}\x96\xb7\xa1\xcd\xcb\ \x04\xa73T\x80-\x8d\xee\xaf\xf27U\xeb\x19\x16\xf1C\xf4\x0f\xc7>\xa0\xdc\xc8\ \xa8\xa5\x11\x8f(?X\x96~\xce\x11\xb4\x18\x1aNRkf \x8e\x82\xfd\x98|\xf7q&\xe8\ y\xe3\xf2\x7f\x8f\x98\xcd\xf7\x13\xce\x81.pS\xc7\x95\xae\xf3\xbd\x7fz&Qi\xf3\ \xe9&s\xdc7\\H@\x00\x9b@\x99\x99\xf8\x9bUC\x8a+\xc2jLd#\xc9Y\xd8-^8\xa2J|O;\ \x14\xd9y\xb6\xe5ss\x80W~T\x8c\xbf!\xf8\xce\xa4\xc0\xc5\x05\x7f\xb4^\x83\x93\ \xbc\xcez\x9c\xae\xe3/BT\xaf\xeb\x8eL%\x93\x0fCh\xd9\xeb\xe9\xef_X\xa2I\xd4\ \x9fJz\xf9U\xb3=\xe6m\x84\xd7BI\xa4\xd8\x07C\x08%"\xc1\xeaH\x04\xde\x8c\xcc<\ \xa8p\x08\x19I\xcf\x0c\xd6\xab\xe0\xd1\x08\xe2\x81M\xc3}\xf3\xe6\x8do\xcf\ \x81\xfa[\xae?\xd8\xac?z\x8e\xd7\xfa\x89\xf00\x0b\xd8~Y\x0c?\xd1\x13\xd8\xf0\ \xce\xbe\x8fY\xaa\xd1zt\x86C8R\xbf\x87\xb3\xe6z\xed\xa3\x02K\xc0\x05\xc06\ \xb4\xe1\xf2[o\xcc\x932\xc5\xaf\xfd\x81=^\xfd\xd7\x89?\x01\ \x81,\x1fy\x0c\xe6\x1c\x85\x9b\x81\x91\xa2\xb0\xc8\x82p~\xc1S8\xa6\xdd\xf7\ \xb2}\xc5\xfd\x14\xfe\xf99\xcb\xa2\xd2\xc9\xe3\xfe\\\x03Q\x94\xac\x14\xa47\ \x9a\xec\xf9I\x0fZw\x7f\xda\x0b\x07\r\x9d\xc1\xdc\x1f/N\x95~\xbf\xe2.u\x0b\ \x853f{\xffau\xd9-N\x17\xc1\xfev_,\xe9\x1d\xf449\x8c\x92\xe4\xc7K\xbb\x99\ \xccH\xf9"\x822\xfb\xf1\xe3\xc0\xa8\xee\x83\x9b\xb4O\x82\xdb)\x1c[?\x8b\xb9\ \x97&\x97\x97\xbbH\xa5\xb8\x03\x8d\x806\x1d\x9d\x17Y%67\x94`\xb2\xd1\x00P\ \x00%\xa0\x1f\x85y\\\xcc\xf5"\xa4\xd7\xd4Yx;\x9b\x87e9m\xe3\xf5\xb7s\x91\x8e\ \xf0\x82\xabN:J\x7fA\x14C\x8d\x16\xa1m\xf1\x9a\x0cq\x13yu\xf5\x04\xa7\x0b\ \xeamZB\xb1\xe3@q\x1a\x13\xf7\xe8\x12\x1b05\xa5h\x81"A\xeb\x7f\xb5\x169h\x9e\ \xc8\x1e\x03\x9a\xba\x7f\xe2\xdb\xe4@S?G\x1b\xdc\x0b|\x1ca&\x80\xfd\x86\x82\ \xba\xccJ\xa4\xe4q!E\xb1~\xb0\xbb\x1bT\xbd\xa7\xb6\xd5\xf6#\x14\xb4Q\xdc`\\\ \x02\x85\xd2b\xb9\xc3\x00\xd4z!\xa6L\x15\x02\x1c\x8d\x0e\xba\xe8\xe6\xfb\xe5\ =\xca\xde\x0br\\\xf4\xe0\xb31\xa1\x15_\xe7\xa56\x01\\@\x1bpC\xdd\t4MD-\xfeZh\ C]\xa9\xcd\xb1\xfe\xc3\xa9\xf3\x9c<^x\x1d\xd2\x07C\xa2\x84\xa2\xf0\xa3\xbcCI\ \xbcJ\x0f\x80\xed\xaf\xc4\x8b\xd8\xfe\t\x00\x13\xa0<{\xaa\xf4W\x11\xee\xe1\ \xaaP#\xcb\x15Hm\x1e\xe3\xddm\xd4\x8ax\xf3\xfa\xe2W\x9bO [v\xfe\xfc\xe9\xcb\ \x15o\xd7\xe4$\x07\xc5\x1d{\x8827\xe0\xe1\x03H\x1e\xeb{Bl\xe8u\xb7\xca}\x8c|\ \x11\x02\xfd\xb9\x8b\xb8\xe7\xb4\xccu\xe7\xc5c\x10\x80\x06\xb5k\xaf1h&\xe8\ \x0f\xc7\xef\xff=\x92\x9c\x83\xf7\x92\xd78y0\xd3\x1a1\x14B\xf8@\x00\xb2\xb5\ \xaf\xc9a\xc1yR\xceD\xfe\x15\x07\x86\x04\xa03\x91\xd7\xa2C\xc33\x0f\x96w\xaf\ MM\xc8\xd1\xb0\xdb\xf9\xfc\xcf\xf4\xe3\xab\xaa\xd7\xb8\x00\x1f\xe0\xbd\xff\ \x11%1\x02\xc0\xf39\x9bT\xb8\xa6\xe8:\xc6\xb8\xc4!aUc\xce\x12t`\x8a\xad\x03\ \x02!\x81\xa4\x81V@\x14\x98\x86\xbd\x17]\x86M\x90?\x7fz\xbfm|c\x16\xaaa\xdb\ \x1cR\x0b\xb7\xeda\xb0\xfd-\xd8$dxdM\xad\xd49\xd0\x9c\xe7C\x1b\x01\xae\x89\ \x1cwg\x7f\x1fnm\x8d\x05\x1a\x96\x99\x1a\x93\x84\xad-+\xfb\x95\xae\' \x0c\ \x9a\x86\xf3\xe1Hw\x85%\xc5\x9eo\x8f\xc5\xcf\xe7\x91n\xd1A%h\xca\xd3SKKq\x9b\ \xa3\xe9\x16\x97\x87K\x88Q\xb4\x7f\xf9\x97^\xb1\xe3?[WD\x9d\xe5+Q\xae\xeeu\ \x8e\x81u[4\xf2Y\x8a]\xc2w\xe8\x86o\x89d\xa6\xb4\x7f\xce4m\x8e\x80\\\x1c\xe7\ NU^\x02\x94\xa1\x1cr\xa8O\xad\x9d^2\xcc\x8cy\xaa}\x01z\xd8K\xb3\x83\x91\xc6>\ \xaa\x82\x1f\x9d\x95\x80\xa9\xe5L\xaap3\x87\xe5\x8e\x0f.\x05\x1a\xb3\x13\x8b\ \x8b\xbe\xa1%6\x8c\xbc\xe2\xc4\xa1PG\xb4A;X\xfb\xde\xfb\xaba\xe7\xb7R\xca\ \xc1\x05\x82\x1a[\xf8\x991\x08R\xfd\xf5\xe8\xce\x19L\x14\x0b\xf2\xad\xb1\xac\ \x08l\x12\x96\xf5\x01\x12\xc9xp\x19l\xd1\xeb-=uzx\xe0HR\x1c0NW\xa9&\xfb\xd9\ \\\x00\x83:+\xce\x94\xbf\xae\x8c\xa7\x98ZX\x88Yj\xf7\xb4@V\x1b}\xdb|\xbf\x9a\ \xfd4GM\xb4\xbb\xfd\xba\x01/V\xd3~B\xad\xc7\xec\xa5H\xdd~\x14\xbf\xf6\x98d\ \x06\xec\x18n\xfb\xc0\xaaf\xe0=\x9fB\x04\xc7f\xec\x01\xb3\x18E\'\x08\xf8\xc7\ NPz\xd3U\xa7~\xcc\xe5\xef\x04j<\x17\x07\xea\x81\xef)?m\xf9\xa9\x1b\x11\xc2\ \x1bx \x94\x86Z\x9d0\xa0{J\x91\xc5\xc5T\xa0\xc5o\xe0\x8c\x99[\xe5q\xd0\xce\ \x04&\x16\x16\xa6nA\xda\x8b\x11\x11D\xe8\x8b\xe5f\xa8@t\x06\xdd0\xe0\x86<\ \xf9\x98x\xc7\xda\x8b\xed\x8a\x12\x97\x80\xa2G"\x05\xff\x00\x1a-\x0e\xaf\xd6\ \x96$\x00\x90L\xfd\xbb\x17@G\'\xdf\xa6\xc2\xc2\xe7\xee\xd0\x93p\xf5\x9fm\xb3\ \x96\xf8K\xf5y\n\xa4\x9cth\xbf\x99\xc9\x8c\xcf\xd3\xf3\xbaf\xa68}ev:\xbf3M\ \xda\x0f\xbf\x93@\x0f)|2@\xd2\x0bS\xb0\xb6f\xf5\xd8\x9f\r\xca\x11\xf5,\xd4*\ \x0f\xe4\r\'z*\xdf"\x88O\xc995p\xba\x0f\xd6G\xa5c\xa6\x13e$\xca\xa7\xd6o\x8e\ Rc:J|_\xae<\xa6\xfe}$\xf6\x19\xed\xaa\x06\xa9\xb2\xca\x14\xdb\xd7\xe6#\xbd\ \xabE\xd7\xf1\x07d\xfc\x93\x05]\xbd4\xb4X\xb5v7\x19\x1eE\x14xqFi\x8e\x07\xb5\ A\xbb\xc7\x0b\x8f\xa3e\xfc\xa3\xf6p2\'\x19~\x01\x01\xc6\xf4Q3\x10Xb\xe9\xa3\ \x02\xa8Q\xd8\x81M\xcd\xcdN\xc6\xed\x1e\x07w\xda\x1c\xa9\xb1\x83\x85E\xd8A\ \xe6STI=\xce\x99\xf0\xb6\x0f\\/\xf9QCt\xef\xaf\xb0\x16\x06\x1e\xfa\x1a\xa7\ \xf3+\xe0F\xef\xde\x00{\xc8\xee\x98\x0f\x7f\xb7\nZ[\xa9"\xe8\xfd[\x9c\xe2\ \x87\x1f\xac\x12}t-\xfd\x0f\x1a\x91\'\xbb\xea\x01\xd4\x97\x8b\xae\x84}k\ \xfb\xbc`\x11~d\xc3H@O\x02\x1a\x88\xd9zK\xdc\x7f\xff\x17z9.F2\xf2\xf6g)\x13\ \xc5\x11\x0cg\xd2\x0b#f\xc6\x01(\xa0\xed}\x8b=r\x923\xdbe\xcfO\xea\xfe\xb8}\ \x80\x93\xa8iN9T\rv\xf2\xdea\xae\xbeXr\xa1\xb5\xc1\xefI\xe8\x9fo^\x81\x93\ \x96hO\xb1\xf2U \xbc\x80^\xb6\xab\xff\xa4\x1c\x05\n`k"{\x90E\xc8\x16\xf0c\ \xf3\xbd\x86N\xaa\x0c\xa5\x90q\xa2\xf6Zp\x98\xe3B\xd3\xf9A\xa3\x1dR,IY\x00?n\ \x98\xa4*\xdb\xd5\xb6?\xd4k\xae\xb71\xdfhA\xd6[\x80\x18\xcfX\xb4g\\\xa4ZT\ \x89=\xa8\x90\xcd#\xd2\xc0\xd5p\x895W/\x10\xb4^d\xbd\xa6\xd0W%*\xe5\x1fhB\ \x9e\xfb\xcd\xd17\xae`3\x96\xbd\xae\xd4k}\xff\xec\xe1`E"L\xf4\xf0\x8a\xabb\ \xba\xa2\xe1\xbd93q\xaf\xc9\xc3i7\x98\x08\xfalJs\xc2ss\xe9\xf6g\xeb\xd0\xd2\ \x8d<\xa8X\xd4scA\xbf\xa3\x1e9\xc4\xa4\xc8\xf2\xa9\xce\xf9/i\xa89\x19\xa7\ \xaf{\x83\x17o\r\xaa\x06N\xe8\xa7\xe8w\x9f&\xa2\x1c\xb8\x13\xc2*\xae\x0fj\ \xbc\x938\x90U\xc5W\x08\xec\xe2_\xdf\xac^\xd2\x18{\xad\xb5\xe6}1h\xbe\xa8YZ2\ Z\x00H\x19\xf5\nq\xcf{\xd8P\xca4\x94\xc7\xca_\x95\xd6\xcb\xc5\x90\x17t\x9f\ \xbf\xbe\xf5\xfb\x81\x10\xbf4\x14;\xfd\xf64T\xab\x82g\x884\xb2Y-\x1cE\x16\ \x85\x19\x18`\\\\g\x03T\xb2\x04\x0f\xfa\xa2HX\x11\xfcx\xc9\xc0iq\x88,\xcf\ \x8b\x8e$&\xe4\xab\x13\xebR\x9fN\\\xe4\xecy\xf8.6\x8a\xca+N\x06]N\xf2\xa4QK\ \xd0x%\x8eokV\xbdN\x1a\xb3\xe2\xb1\xfd\xc5\xf6#G\x94b;/\xa0\xcb\xe9\x8bl\x89\ \xa0W\xd0\xfa\xfdX=\xa7\xfd\xfcWl\xd7\xed\xe5\xd0\xee\xbb\xcd\x1a\rR\x0c\xd0\ 8\xb5\xd1Iq\x92\xbbv0\xf6\xf3\x80\x07(\xe4`\xa1y#^\xf4\xb0\xe7\x9f\x10Zw\x1d\ ~\xb5\x99r\xee\xc3\x1e\xde8{e\xdd\x9f\xe1+@\xccN2\xde\xb9\x1c\xaf\x01\xd1@\ \x0b\xa4C?\x83\xe6\xbf[\xf7\xe73x\xa5wS\xa4\xce\x00=\x9f\x0bw7\x1a\x80\xb5\ \xdc\x8b\xea\x92\x92\x95\xd8\x90"\xbf\xe8\xdf6\x8fe\tu\x99\x1e\xbd\x93*\x8b\ \xed0z\x7faM\x84J\xaa\x13)\xa4\x94\xd1V]d\xc8E\xf8-\x95\x1aJH\x1fpw\xf2v\xae\ \xde\x12\x9d\xa9W1$2]\x16\x18\xd8g\xea%.J1\xdf\x9fu)\x05O\x9b&\x051\\{\x88S\ \x1eR\xb7d\xe1\xc8\xfd\xdb\x04\x17\x8f\xe8\xbf\xf2\xb8\xa6\xef\xfe)\xadO\x97\ #\xab\xf5l&d\x8b\x99\x82>\xcaH\xe4\xc9\xd4\xe9\xb9\xfdD\x8b\x1e,Lnp\xf9\x9d\ \xa4`>\xff\xd5\x06\xf1+J\xb988>\x9e\xc0~\xb1\x85\x88\xbb\xfb\x8eo~a\x01,\x90\ 4\xbb{G\xa1\x14C\xa0\xb3p\xb4\xde\x0f\xa3\x13\r\x1d\x9d\x8c\x92(C5N\xda\x06\ \x97\ry\xfb\xa56\xb2\xaa\xaa\xaa\x0c!\'\xba\x87\xebq\x8c\x9dE\x9d\xa1G\x9f2\ \xac\xba\xd0\xa8b\'\x0f8\xe1\xfcj-Ja\xd8@iE\x8c\xcf\xf7#\x95\xd5\xc1#\x84,\ \x8fc_\xe5\xeb\x83\xb4\xdaGh\x1fe\xa5\xe3\xd2\xfcE\x9f\xe8QGC\x8f\xc7\xabV,\ \x80\x18\x8a\xd1\xa2\xa2\x19>z\x83\xd7\xe7\xf7\xecS\xc9\x89~\x83\x15\xfe\xe7\ \xbd\x15\x1a\x86\x06\xab\xb1\xbe\xbb\xeb\xbf\xa0\xdb\x00\xcdTq\xf9\x97y)l8\ \x8f\xf2\x0fLE\xda`U&\xe0,-m\x86\x97\xfevv\x98\xcb\xd6\xd1\x91\xeeU\xb9\xb6\ \xa1\xc9\xa0u\xd9\x8cn?\xcd\xcd\x85\x82\x11\x8de"\xaf\xe8m\xa7=+\x19\x99&g\ \x9a\x06\x07\x99f\xb9\xb6\xd9\'\xa6\x04YDGz\xde\xcfQ\xe89C\xd7\x84\x1f\x03T\ \x96\x8d\xd4\xed\xb5\r\x01z0\x04}`\xdd\x8b\xc9\xfc;\xb8\xf4\xc9\x99&\x8c\x04\ qA\xfadVuy\xae\xf4\xfe\x86q\xf1\x98\x00D\x00\x11\xc9\xf8\x1d\x1a\x93\x12IMwN\ P!\xa4i\x025\x90\x9a\x94!\t\x98\x941\x17\x15N\\x2\xbc\xbe`\x05O8o\r\xc7\x12R\ -\xba\x1da\xa5\xf0\xc7\x0f\x1e\xf9\x0fj\x9a\xf8\x85\xf11\xbd\x87\x07\xc2\xc8\ \xb2\xbd\xf8\x8b\x1f\x9fP\xe2\x8aA\xf2lB\x86\xd7a\x9e\x9f\xd3\xb0\x05\x9aw\ \xf3\xabt\xb9r\x8f\xe6\xec\x87\xcf\xb7\xef\xa9\xcfO\xee\xfe\x8e\'\xffK0\xa6\ \xb1\x9a\x88V[\xdd\xd7|\xca\xe8\x82\xc9=\x18\xd1\xd4qC\x9f@+/iq\xb63\x99G\ \x10\x06_\xb3m\xfc\x8e\xe2\xdc\xcbi\xec\x8e\xf6\x0b\xb5\xef1\xab3\xd5\'\xc05\ \xd9\xefw}\xca\xb4\xedt&\x17#\x8b\x89\xce\xc1\ng\xe4\xb3\x02t\x1fM\x9c\xe1\ \xb0\x19~\xb2O%\x0b\xaf(\xdcv\xbc\'\x08Z\xd8\x11\xa1\xf6\xc8\\b\xc6\x9bd5\ \x91I*zTa\x8f\xc3\x9d\xc1\x90\x1a\xb5pj\xb6\x8d\x9cs\x0c\xe7\xff\xbe\xd6\x16\ \xa2T\xe0\x13\xbf`\x8b\xa6{\x8fR\x88!\xa7\xf0\xd6s\xa8\xee\xb7O)\x13T\xc0\ \x0f\x0f\xc7\xe0v\x9ehK\xfc\xf1n;\x98{\xde/=\xc44\x91\t\x9d\xed;\xd4v\xc0<6s\ ll\xecjK\xa8{d\xfbGf\x88f\x91\xfc\x81\xaa\xaeh\xbd.\x90)\x19 \xf1\x8fL\x00Sm\ \x93Y?&\x14NJ\xc3\xc6\x81^\xa4\x98\xaf\x98\xf8\xad\x10\x98\x08\'\xa4\xe7\xb5\ Ylq)\xe5\x17\xc0\xcf\xac\xb6i\xb3\xfa\x14\xcec\x84]\xf6\xa4~\xbb6G\xc8d/_\ \x10\x8aT\xd4\x89\xe2\x17\x85\x8d\xeb\xce\x93\xa5=\xeb\xe9\x85\x85\x1c\xaf.\ \r^,\t\xe36\xea\xbe}\xbd\x7fd\x1e]\xba"\xec\x16\xf7n\x94o\x124\t`Z\xc0\xf6\\\ r\xa7\xc8\x18qANY\xf4*b59r\xf7V\xa0\x96\xa0\xf0\xe02\x90jh\x17h\xf1gI\xa3\ \x12\xb3\x99\x19\x1c\xa0\x0f\x92y/|\xd4\xbbIN\xce\x8f\xa0\xb4\xc5\xbc\xda\ \xa7\xd9\xfcQ?\xbb\xc5\x9aw\xb7=\xe2\x11\x16]{\x80\x0b\x8f\x94\x83\x98\xc5\ \xf2\x82\x81\x01\xaf\xe3\xec\xe7\x7f\xb7\x07c\x07\xc8\xc9\xcbe\x1fn\xba\x80;\ \x17N\xbdZ\xa9yVcyli`\x10\x97\xb8u\x0c5?\x81\x92w\xbd\x16\xb4\x02\xd9\x941\ \xcfJv\xda\xc8\x1b\x91/\x1bU\r\xf4\x85\xa2\x02o\x12\xfd;i\x0e\x02~\x87"\x07\ \xc4{P4\x92i\xd6\x10\x97\xa9.$\xd8\x10TnJ\xbf8y\xd3\x05F\x98\xfd\xd2Lxfin\ \xb8E\xf5\x9bXC3\xac\x0b\xb743\x9d@e*\x9e\xe7\x81\x9aa\xfd\xcc\xc6\xe4.\xda*\ PH\xa8\xd1\x02:\xd0&$hv-\xfe2\x1fco\x99\xba\xb75\x83mLx\xbb\x92\x82\xebn\x9b\ 7E\xab\x8f\xf2%J\xed\x94\xbad\x8e\xe4\xfd\xd9\x94\xcf\\\xcc\xfd\xa8\xff\x0b\ \x1fW\x10\\\xebi\x06\x8e\xff\x84\x9c\xc2~\xae>\xech\xb6NF\xdeT\x15\xa2\xad\ \xbb\xaae2\xf7`\x1ct\xcf\xff\xfb}knSS\x13\x19\x08\xbf\xdbq\xa3v\x8f\xce\'\ \x90wV<\x94x\xec\xd1\xc4L\xe6\xe1\x825\x9a/\x06h~\xd6\x10\xd6\x7f\xb0@stV\ \xaaE\x0f*\xd4\xc8b,\x13\xaf\xaf\x0c\xd6\x1al\x92\x8b\x8cxa+\x8d\xbe-\x84| \ \xb2k{\x13\x1e\xa6S\xd3\x15]E#\xca\xbb\xfb\x1b\xa7e\xf7Sj\xd3V\x90%6K\xd0\ \x8f\x08\xb3C\t\x895\xf8\x93\xb0,eE\xd5\x9d\xbe\xa6\xe2\xa7\xd2\xf7.\xc4Gc%\ \xac\xaa\x9f\xc4\xec\xeeo<\x8f\xba\x0f\x9a\x16f\xc7\x03\x1e\\\x1f\xe2\x9c|\ \xd1<\x17]\xb0r\xfd.\xe6\xfc\xf6\'\xbd\xe7\x8e&\x01 ~\xf2/xB6>\xfe\xc7\xd5\ \x9b\xf6\xc2 \xd2\xc1\x84\r:\xf4\xc51\x1d\x1a\xaaIS\'\xd9\x7f\xd1\x0402\xdb\ \x1f\x99\xa0@\xedml`\xe6\xeb\x03#\xc3\xac\xc4Q\xd8\x15\x15\x980\xeb&\x98\xae\ ]H\x0b>k\xa6\xec\xddJ\xa4\xcb\xe2\xc6\x1f,\xecg\x16^K\xca\x11\x83\x7f\xf4B]Y\ \x90\x95\n\x9e\x9e\x14mm><\xdeo0\x1b\x9cx4\x11(\xd3|\x1a/\xa2\xccS\xe4\xea8!\ E:\x9eTOW\xeb\x14\xcejM3\x02;?\xeb_\x0e\xb1p\xde\xee\xc6\xca\xff\x91GMe\x8f\ \xae\xb7z\xb8\x0b\xa0\xed\xf2\xbb\xf5`\r\x16\xcd\xe0c\x03\x92\xd6\x1b\xe3\ \xa7v\xf9EDD \xc5)|C\x9fo4\x19\x7f\xa9\x03\xd5X\xa4\xa7\xbe\xe1\xa6\x95lp\ \xc5@W53B:\x9bO\xb9t\x02\xb6\xbf\xbfj\x16\r\xa9\xc4\xc9?}\xca\xaf:Ei\x11\xca\ \xcb\xd2\xc9$\xf4\x075\xb3r\x9dL\xf2\xe9/\x0fa\r,18\xc4L \x88\x7f\xfd\x01\ \x9d\xf5Q\xa6:n~j!n\xf2U\x83\xf0\xdf\xc7L\xb6m\x87\xc0\x94 [M_j\xcb\x9e/\xa8\ \xda\xe7\x95TF\xf3L\x8c\xcd\xe8\xf0u\xdbN\x07l\xce\xeb5%H(\xd5\xaaRf\xad\x1d\ \x8a2\xfbs\xf2\x98\xac\\\x9f\xc39\xa5L\x15\xcc(Y\xf3\x9e{\x01(\x95v\xe0\xaf\ \xef\xd90\xd7\x89\xa9\xa9\x90\xd2<\xffO\x19%J\xda:\xc5%6\x1c\xb5\xf8\xaf[.\ \x94\'\xb8\x88\x99O}z\x96\x15B\xecV\x14\x19x\xe44\xfb\n4\xd82\xd5JY\x15\x8a\ \xea4\xa3d\xeb\x9fQ\xe2\x11L\xbb\xbf(\xa9\xe0H:jJ6\x0e\xb7K\xf6\xa2\xee\xd1\ \xa4?\x9c\x8d\xb3\xe4]\xa8\x15\x88)\xd6\xfa\xa0^\x90\xb8\x92<\xb6%\xa2\xd20\ \x7f_\x97\xf0\xc4?(\xa3DY\n\x12\x89\xaeT\x90\x08:C\n\xef\x97\xe2\x94\x02\x02\ 1\xdc\xbe\xc3\xb2\x8c\x1b\xf5\x8a\x8d;\xa8C\x1f\x19\xea\x82\xf2\x91\xb5\x91\ \x84\xcc\xa4\xdf\x0e"\xd7\xae\x17$\x82\xa4~\x9c\xce?M\xbc\xa0bL\xd9~\xdfz\ \x10C\xd1-,\x92<\xc2@\x1e\x83O\x9dL\xab\x11\xe8\xb5\xf9\xa7\xb2f\xa8\xf3r\ \x19\xd7\xe0\x1c\xba\xd0\xa2\xb5:\xa4m\x8b\xb2q\x9f"\x17,\x8b*\x1f\xac\xca\ \xd5\xb0\xbf\xf3NN\xb3\xec^\x04\x1a\x07-\xd4P&S.\x97\x87\xe8\xb0=\xc3\xd9\ \xce\xe6\x1d\xe2d\x99i\xe1\xa1\xb2`\xb1\xf8A\x8a\xbd\x10\x9bU\xb2+$;0\x8a\ \x91\nZ\xc5\\\xde\x8d\r\xa1\x8c\x92\xdd\x8e\xc1\xa9z\xc3\xc4o\x96\xcf\x87hs\ \xfa)\x9c\x04\x13\x0f\x8e\xcb\xb2\ny\x8c\xf1i\xd8*0w\x88\x88h\xb0CQ^\xeck\ \xc2\xe8\xf25p~{\x0c\x1d\xef\xbf(e\xa0\x14ZS\xdf\x0b\xc5\'\xeesm\xbd\xbbx\ \xf6\x9f1m\xa7\xcf\xa5\xe3\xe7\xa9]i\x94\x91[Lh\x8dJ\xb60Q[u2\xe8\xfc\x88\ \x862t\xf1\x95\xacN\x82\xe5\xeb#\xd1\x13\x90%I\xb7\xca\xb5eP\xd3\xa4\xed\x8f\ \xcbd\xab\xdd\xc8y\x8db~\xa9\x8e\xc1<\x9c#\xf9\xa4\xf3\x02\x99\x88\xf8L\x89\ \xfb\x0c\'^+X\x105\xafeQ\xb4o\x17\x83\xfdG\x84c\xac\xa4D\x047\xe2e\xd2\xdc\ \xa6\xae\x10\xd9\xed\x14\x1b.R7\x98\x11zZ\xab\x1c\xf7\xbd\x80\xf4[\xd3\xf0q\ \x9f\xa7z0\x9dU\xae\xc1j|\xa7,\xfbf\x18\xdc\xac_\x00i\xe8:\xa0o\xedW FY\xc3~\ +\x05\xac\xa7\x82\x92\xf1\xe4\xdfMD\x82Y\xcf~\xa8\x8d6Y<\xafO\xd6QO\xca?y8\ \xba\xe7\xba\xbc\xe4\x8b\xe1\x94\x08?\xd1.\x904\x9d\xed\xc22\xcd\x93i\xdbMZ\ \xeb\x8f\xa0\x7f\x0fZ\x08?\x99\x96Ms33\x04\x0c\xaf\xc8<\xe43\xcd\x13\x1fo\ \x1e\x17\xf9\x19\x0c%4\x16\xde\x8a@\x8ei\xd5\x96\x00\xf7\xa2\xb0\xa0\xed\xc3\ \xec\xe8\xc5\x99\xaf\xe3>\xc9\x9c\xe6\r\xeb\xafb\xeb^\xe6~\xb0J\xaa\xeb\xe6\ \x85\x9aJ.-\xf6&\xaaf\t\x16\x18\x92;\xc9]\xcd\x8d\xfb\x0fQp\xea\xf5\x80\xc7\ \x07\xdc\xaf\xb1Z\xb6.\x08|\x1f\xbd6\xd45\x91\xf4\xd5xI/\x99\xb1e\xe9\n{\xfa\ <\xaa\xdb\x00}\xbe\xfb\x94\xe5OG|\xb1\x0e(R\\\xe9\xa3\xa9\xca\x83q/^T\xb1F\ \xb6\x82\xa1\x85)\xd8>\xfaI\xd0\xe6lW\xbc\x05R\x1e\xed\x95\xe4\x98)\xb5\xf9\ \xb7\x9f{\\$@\xdao\xb6\x11K\x8f\x13\x8f\x9a\x124\xee;\xa6\xb8\x83\xe7\x06\ \xf9\xbb\x15O\xe60"\xc5\x8d\x19O\xc3\xe7>\xca\xc5\xe4J\xbc\x80B\x8e\xedj:=4n\ \xb6\xd1\xb0"u\xc99\xf5\x00\x80\x8d<\x06\xe8\xa9\xe9~\xf0\xee\xf2\xbd~_bC\ \xbd\x91m\x10]\x98\x91\xa25E\x807"\x1c\x13\xdb\x98\xb2\x1a\\\x1a\xe8}\xfc{\ \x95\xe0\x9dR\xa0W\xb3O\xc0\xe8\x07\xff\xbf\xf1.\xda\x0c\x00\x1c\x980\xe4J\ \x7fA\x1e\xb3g`\x101v\xdc\x82\x1c\xf0\xc3\xa8D\x85\xc3\xe6\x91\xae\xfb\x8b\ \xefV#\xa7\xa82hm\x93\x18Nb\x9f\x8f\xdc9I\x17\t\x1aG:\xc7\xe4u\xe9\xf6\xdb%\ \x0cBqF\xb5\xb10\x9a\xac\xd0\xb6\x19b\xebR\xc7\xc5\xfe\x9e\xe1\xc1#\xd3\xc6\ \xb7\xe7\xba\xb8\x96M\x9e\xd3s\x80\x87\xf7g\xf1\x7f\x8c\xa5,\xb3h\x0ew\x87\ \xedG[\xa3\xe9\xdc\xd6\xc5Z#Z\xa4a.\x08Uxd\xb9\xcd\'%v\x01\xfb\xa1r8P\xb6\ \x7fm\xaf\xad\x8c/\xf1d\x82\x08^q\xd1\x8a\xa7\xce\xbbVr\xfa\xbc\xd5\x90+o\ \xcc\nI@/\xb1.+\x8a\x15\xf6-H\n6\x8d\x8a>\xdb\x19U\xe4W\x14\xd4\xaf\xde(\x90\ \x86\xc5\x10\xda\x12\x82\x17/\xfd\xd6I\xd7}\xf5\x1a\x8b\xcd8\x87^\x9e\x93\ \xdc\xc5\xea\x80=\xba\xcf\x92%\xcf\xe6\x93\x93\xc4\xed\xfe\xcbRx\x99\xd4S(\ \xa4\xd6O?\xbd3\xc9\xb7\x0c\xe5\xa7"9\x97\xe1\x0e\xb3\xe0\x07sR\xf0\x909u\ \x9c\xc8_\xdc\xec\xd54\x98\xf2|\x033\x85\x85\x82\x86\xf2\x0bx\xe4\xa6\x92\ \xffi*f\xb7A\xafibD\xbf\xd9s(\x84GG\'\xf3`Z1K\x96\x03\x035\x90\x1c\'\xcc\xdc\ \xd3\xf3\x92\xa6H>N$\xcc\xd5\xd1\xfa\x1e\xf7V/\xfe\x08\xa0\xf5i\xe2\x01\xab\ \xb6n\xf1R\x8eMG\xfe\xacS\x85\xe9p\x94\xae\x19\x02p?\x04\xadW\x95\xc2\x15\ \x05\x06\x93\x94\x8b\xa1Q\xb2\xf96\xd4\xacL4\x19:\x95\xd3\xd3\xdc\x1d\xc7w\ \xdb\x8c\xf65\xa8\xc5\xbf\xbe\xbc\xaeT\x99\xfa\x1a\xae\xf4\xca\xe79=,\xf0\ \xec\x99\xd0\xa23Z\xd7e\xe7Q\x81V\xb9\xd7\x0c\x0f\xc9{\xa4\x91\xe7\x9a\xc9\ \xe3\xb9I\xdd\xfbM\xe5\x9d\xb6xS\x9eHph\xb0\x85N\x16)X\x1c.\xb6\n\x1f|\x9d:\ \xfe\xf5J\x1d6\x0c\xeaB\xf6(\x0f\x9e\xef\xa1k\xde\xc6Q\xd7m\xf5WRf\r\xda\xc4\ \x14\xe5b[\x05\x85\xed\n\xd0\xf8\xf8}\x9c\xab|$Ber}7\xb8>\x80\xee3O\xe9\xe1\ \xc0\xef\xf2\xab;\xba\x8e\x11\x957c{\xf6YS\xf7g\xcc@\x8aG\xc5\xba\x87b\x06-U\ %k\x89Z/\x0c\x1cF\xe0\xcb\xfb\xd6\xbb\xad\x8f\xcfb\xb8\x03\x01wL\xa90\xa8\ \xf93bl\xc7\xca\xdd\xfb4\xc2\xc5\x98k\xb6\x11\xdea\xda\x10\x9d\xca\xd7#W\xaa\ P\xf3\x816l)j\xf3hE\x8eT[j\xf7\xfd\xbaaD#\xe7\xa8\x85\xd8\xfb\x8c\x92 8c\xc2\ \xa1c\x1d\xdb\xca\xac\x85\xab\xf0\xf6k\x929\xb5\xb5\xc3\xd7\xa3\x81\xfa\xe4\ \xc6q\x85(\xe3\xf7i\xe6{{\xd2\x9f\xb5\x94\xac\x0f\x1a\xa4\x18z\xca\xf52\x91\ \x1c\xe415\xdc\x06Mg+\x8c\xfb\x9f\xe9\x00\x0c\x1d\x9d\xb1\xdd\xa9\xd2\x06\ \xcb\xd1\xb4\x93\xdec\xd3\xc0G\x19\xbcS\x7fE\x1f\x9fvOLc\x19\xf7W\\\xe9\x1cs\ \xf6\x1e\x07\xb5f\xfdjn\xd6\xbb\xbd\xd6-\xa8R\xb7\xed\xb4\xa2B\x9f\x84o\xf00\ \x1b\xec_B\xc8\x0e\xf7_v\x7f~\xe7\xf3"T\x9b#H\xbbb\x04%B\xaf\x1b\xe3u\x9d\ \x9e\xf7\xbf\x90\xab\xdb\x83\xa1\xa0\xa9I\xfaw\x83\xfe\xb1\xe5\xfct\x94\xdbb\ \xf3{*"\x8b\xedB\x97\x00\xf5-\xf7 &\xe4\x88\x90y\xd0\xbc@\x8f\x93\x1c\xd9\ \xfc\xf5+\x02:\x05\x07\xa4T\x84\\;h\x98\x0cWshTi]YB4\x89N\xe2Y\x8f\x9e\xcd^E\ \x03\n|\xbb>\ \xfb\xef\x18\x94\x12ru\xb1\x93\x81\xfc\xa5#\xe9\xc0\xfd\xe2o0>(\x95\xcb*SA\ \x13\x82ed\xfbo\xeb\xfb\xd6\xaf6;\x13\x05\xac-\xad\x1c?1\xd2\xca1i\x17\x90\ \xce_\x9dx\\\xf6\xed\xc3Y\xfd\xe1\xb5\x17\x99<\x1f\xd9\xeb\xb4\n\xbdB\xbc&\ \xf4\xed\x1a\xdfTu\xdd\x9f\x8e\xfe\xb7%\xd5r*\x0eD\x87B7f-\x12\x1aA\x0b\x82\ \t\x84\x0c\xd1j\x81\xd3\xa7\x0fu\x8d\xd7\xe6\x08ku\xdd>}\xf6_\x9a\xf3\xc2r\ \x19F\xd4\xc7\xd1\xcd\xfab-\x17\x99\xff\xfe\xab\xe4Vcr5%\x93C\xd1\x11\xf6\ \xe8\x1a=\xb9yE\x9b\xf5:4\x91\x9a\xd8\xb5g-\x07\xdd\x8arh\xfe\xd9\x7f\xe4y\ \x18kM\xb7=\'\xdf\x9f\xd7\xd0\xd6\xfa\x88C\x12\xfdH\xaf\xfb\xf2\x8b\x12$\xa8\ \x9d\xba\xae\xad\x8a\xeahP\xa5\xc0i_\x1br5{\xcc\xd6\x9a\xb1\xce\xbf\xe2\xca\ \x16\x8eRq\xfa\x8c\xa3\xf1\xa2"R\xb6/r89r\xd8\xa2K7/\xa3\xa4\xd5\xe3d\x9d\ \xc2Z&\xb0\x96\xa2\xe9\rl+\xc3\xe2\xcb\xe6h:\xfd\xc4\xad\xd8\xce\xe0~ih\xbfY\ \xca\xa8%\x90\x88\x16\x1f\xd7\x91\xf5\x96#\x95Z\xdc\xeff\xd2\xf5\xc5h\xbd\ \x05\xa5y\x14\xee\x14\x7f\xb6\xe7F$l\x88\xf1\xdd\xa7\x97y\x19\xba\x95\xd3\ \x02` \xfcI\xc1\x18\xec\xd6\t\xe0\x84B\xfb\x11\xe2\x0e\x89\xd3|-\xef\x13\xa5\ /^\xe1\xf5\'zD\xed\x7f\x91\xe8\xc8z\xdfXYi7\xfd-\x89I\x8d\xc9\x9a\xe1\xbb\ \xb0\x12\x03T\x8a!_F\xc7\x9d-\xba\x0f\xb6\xdd\xa1U\xfe\xc5\xb8\xedl\x13\x06M\ Z\x12q\x9e\xe5\xf6\x17\xc9\xbf\xf4\x842\x840g\xbbR=\x1cN\xb5\x97ksX\xa9\xab\ \x8f\xef=\x95\x8f\x15\x1b\xb4k!\x86\x17\xb0io\r\xbfG\xc0\x9e\xa7*W\x9a|\xb0\ \x9cKg\x1c\n\xa2\x0e\xde\xe84f\x15\xa4|\x0f\xfe!\xdbG\xa5\x9b\x84\xe4\x14P\ \xbb\x1c\x1d\xec*#\x935\x94\xa5\xcak\xff\xdb_%\xe7N\x1f\xadL\xe7\x0e\xd8\xe4\ \x8b\x0c\xea\'\xc4\xa3\xed\x91\x0e\xc4k\xc3\xe3T\xd3\xe2LS.\xc6\x7f\xf1\xe2\ \x85\xc4\x11&P\xa3\xcda\x07v\xcd\x1b\x1b]\xd8\xfb\x18%\x18M\x18\x92(MA\xc5\ \xfa\x810\x91\xed\xdaW\xe2Uy\x8aP\xe3\xd7\xaf\xd9\xa6\xf4\xca*S^\xdb\xc5\xe9\ \xc67\xc4\x8b\xc2\n9\xd2\xde\xf9\x0e\xf1o`\x90D4\x064\x00\x9b\xe1T\xc9\xfb\ \xfb\xe6\xe9\xc2?\xda\xd0\x84\x9f\xc4\x1f|\xa7\xdeA\xa3\xa5\x0f\xa5us%\xcc\ \xff\xe6B\x81\xf8P\x85\xcb\x89\x0c\x88A\xc9?\xf1\xea\x80e\x8dq\x85Q\xa6\xdeO\ \x04\xfe\xfb.4.\xbf@\xd9\xea\x1a\xe20\xc5\xfbD\xdex\xce}\xc8n\x04\xca\xbf\ \x89v8\x99\xd7\xa0(\x1c\xbc\xb5\x87y\xc2 (\xd0\xcc\xf3\xd7u\r\xb3\x12\xd0\ \x90\xafI\xb4\xe8\xdfn9/:\x18`S\x1ajc\xa6\x80\x8a\x9c&\xa7\x0fJ/!\x860\xc1\ \xf7[\xce\x7f\xb7\x94\x89_.\xca\xb8\x19\xb1\x02e\xe2\x99\xa3(\xdf\x95Xsd\xd3\ 8\xf5OQ\x90\xa7\xf9\xbe\xa6\xeb\xaa6\xa0\x11\xfewS)\x96\xd4\x97\x8f\xce\x83d\ \xba\xbe\x1a\xd3\x7ft\x1f$1)\x9d\xcd]+I\x03\x01\xf0\xa1$\xa7&[\r7\r\xfe\x1fZ\ jh|' def get_icon(name='phatch'): icon = wx.EmptyIcon() if sys.platform.startswith('win'): py = eval('ICON_%s_32GIF' % name.upper()) else: py = eval('ICON_%s_64' % name.upper()) icon.CopyFromBitmap(graphics.bitmap(py)) return icon def set_icon(window, name='phatch'): window.SetIcon(get_icon(name)) phatch-0.2.7/phatch/pyWx/nuovext.py0000644000000000000000000014433111346363116017237 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Embedded icons (48x48) are from NuoveXt 1.6: # - Author: Alexandre Moore # - Author website: http://nuovext.pwsp.net/ # - Icon website: http://www.gnome-look.org/content/show.php?content=26448 # - Icon download: http://www.gnome-look.org/content/download.php? # content=26448&id=1&tan=15504822&PHPSESSID=34ec3de1af33e253ee03357a124bfbeb # - License: GPL # # Follow PEP8 import wx from lib.pyWx import graphics class Provider(wx.ArtProvider): def CreateBitmap(self, artid, client, size): if artid in PROVIDER: return graphics.bitmap(PROVIDER[artid]) else: return wx.NullBitmap PROVIDER = {} #---wx.ART_ADD_BOOKMARK PROVIDER[wx.ART_ADD_BOOKMARK] = \ 'x\xda\x01\xe7\x06\x18\xf9\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \ \x00\x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08\ |\x08d\x88\x00\x00\x06\x9eIDATX\x85\xcdVkl\\G\x15\xfe\xce\xcc\xdc\xdd\xeb}x\ \xfd\x8c\x1f\xb5\x9d\xd4Mb\xb7\x0e1I\ri\xa1\xe1!\x85\xa2"\xa1\x84\xa2\xf0\ \x8f\xa8\x8eZQB\x14)HD\xadT\xa1\x08\xf5GA\x02\x83RB\xa3\xf4G\xe5\xfc\xa9P\ \x11\x81F<\xea"!R\x1a\x81\x93F\x81l#\x97\xd8\x9b8~\xc7\xbb\xde]{w\xef\xddy\ \xf1\xc3\xae\x95\xf5\xda\x8d\xdb\n\x95\x91\x8et5s\x1e\xdf\x99s\xee7\x87\xac\ \xb5\xf8$\x17\xfbD\xa3\xff?\x00\x10\x1fF\xf9\x877v8)us\xb7\xb1\xe6k \xdbe\r\ \xea\x00\x80\x18fa)\xce\x88\xfd\xa1Fl<\xff\xa3M\x97\xe5z}\xd2zz\xe0\xfb#ma\ \xcfd\x8f\x16\xe7\xcd\xd1\xcc\xa8\xa9)L\x08T\x99V\x04\x11\x05g\x0e|\x9aG\x96\ \x8dA4\xe4\x11kc\xa9@\x94\xf5\xb9\xac\xb2\xefg\xed\xa3\xb9\x8f\r\xe0\xd0\x7f\ \xaa\xf7\xc8\xbc\xee\xbf\xfdo\xddT\xbb\xb0\r;7}\x19\x1b\xeb;\xc0Y\xe9\xe5Yk0\ \x96\x1c\xc1\xe0\xc8\x1b\xb8\x1d\xfe\x17\xea?\xc5\'\x9d\x10?pr\xcb\xdc\x9b\ \x1f\x19\xc0w\xde\x8d\x1d.\xcc\xea\xbe\xec\xe5\xa8\xf8\xea\x03\xbd\xd8T\x7f\ \xff\xdd\x12\x02\x00$f\xe2\xf8\xf3\xb5W\x10\xdb\xb1\xa0*\xea\xf8\xd1S\x0fd^\ \xfc\xd0\x00\x9e\xba\x12\xfb\xf6\xc2\xb4\xee7\xd7\x1b\xf1\xf8\x83\x87\x11\t\ \xc6\xca\x95\xdeoaS~\x94-\xa4\xf0\x9bK\'\xe0l\x9dE\xa4\x81\x1f8\xdd\x9d9\xb3\ n\x00O^\x8a\xf5\xf8Y}>\x7f\xad\xca}|\xc7a\x84\x82Q\x00\x80\x08\x11\x02!\xc2\ \xf0\xfc%\xb8,\x02\xa3\x01\xab\x01\xa3\x01O\xce\xa3\xb3\xb9\x072oQ\xcc-\xfa\ \x9c/\xcc\xe1\xb7\x97_D\xb4k\xc1\x0bV\xf2\xdd/?\x98\xb9\xb82V\xd9_\xf0\xfa\ \xc4q\x92\xbe9\x91\x1a\x82\xfb\xd8\xfd\xdf\x82\x10\x0e(\xec#T\xc3\xc1\x1dZL\ \xbc\x00\x1c\xec\xf8y\x89\xdd/\xfe\xf9$DTBD\x81\xa0\xb2\xc8\xa74\x82\xda\xc5\ \x17;\xbf\x89\x81\xa1W\xdc\xfa\xed\xe6\xc4\xeb\x13\xc7?\xf7\xf5\xe6\xe3%\x19\ \x97\xf1\xc0k\xc3}\xfbr\xd3\xf6\xa1\xadu\x9fAU\xa4\x06\xe1&\x85p\x83\x069E\ \x18\xf80\xf0aW\xbbs\xe8\xe5s\x88"B\x1b4\xa2-\x1a\xf5\xd5Mh\xaf\xfe4r\xd3\ \xf6\xa1\xd7\x86\xfb\xf6\xad\xb4*\x03\xa0\xa5>(\xd3\x0c\x1d\xcd;\x11k\xb5p"\ \x1a\x06\xb2DV+\xba\x85\x81A\xb1DD\x85Bu\xab\xc5\xb6\xb6]\x90i\x06-\xf5\xc1\ \x0f\x04\xf0\xc4@CD\xe6\xed\x9e\xe6\xca\xcd\xa8kq!\\]\xe6\xd4\xa0\x08\x0b\ \xbd\x06\x00Y&,\xa0\xd1\xd0\x16Fs\xe5f\xc8\xbc\xdd\xf3\xc4@C\xe4N\xbb\x92\ \x1e\xf0\x8a\x85]\xca\x83{_\xeb\x16\x84+\x01@\xe2\x96\xf7\x1e\xa0\x03\xb0\ \x1a\xb0\xda\xc2h\xc0(\xa7\x0c\x80\xf2\x08\xf1kC0jQ\xcfj\x00\x8e\xc4\xf6\xed\ \x9d\x08\x86\x81-\x1b\xb7\xe0\xef7\x86\\\x8f\n\xbb\x00\xfceU\x00Z\x9av2\x1c\ \xf74m\x80\xa5E6uY\x0c\x07\x1a_.\x0b\xb8r\xfd\xe0\x0b\xfde{?}\xf3 \xb0\xe4\ \xa7\xb5\xb9\x114\xc2\xa0\xa5i\xbf\x13@I\t\xb4D\xc4u\xc2\x08G8\x00\xb5$\x1f\ \xfd\xb9.\xdayx&\x05\x0b\x89P\x88\xc1\r\x84\xa0%JJP\x02\xc0H\xf8\x8c\x13\x84\ \xd0\x8b\xc8i\xf5\x86[\xef\xd2\xf0\x914W!\x91\x061\x85@\x80\xc3H\xf8k\x02\ \xb0\xd2\x8e\xe5\xbc,<\x93\x04H-\xca\xc7\xb8\x01\x06\x06\x87q\xe4\xec8$2(\ \xf8yXi\xc7\xee\xd4)%"\xc3/J_\xd9Y/A\r\xe1{\x11\xa0\x08v\x13S\x89\xdc\xb8\ \xcb\xa3\xa7\xee\n\xe0\xec\xa1\xe9\xbc\xf2\xe8\xd9\xab\xefL\xe1\xe2\xad!\x08\ \x12\x080\xa7D\xd6\x04\xb0B\xcf!\x07W\'\x13\x18\xfc\xc7(\x94G\xcf\x9e=4\x9d_\ i\xb7\xe6<\xf0\xa5\xe7+~U\xdb\xc1\x9e\xde\xba\xad\x16\x9fo\xedF\xcc\r/\x9f]\ \x1b\x9f\x84Sl+y\x8e\x8b|\x14\xdd\x1dM\xcb:\xb9b\x01o\x8f]E\xfc\xca\x14\x92C\ \xe6\xa5\xbf>W\xf8\xeejq\xd6\x1cJ\xeb\xc2\xcdGf\xe2\xe3\x8dF%\xf7\xa5\xe4yl\ \xaejAWm;j+*\xd1\xdd\xda\x8a\xf2\xdf\xb3\x15\x00\x90\xf1s\x88\'\x13xon\x14SW\ }$\x87\xf4\xd9\r\xb1{\x8e\xac\x15\xe7\x03G\xb2\xef\x9d\xfe\n\xbbr\xe3\xad\ \xe7\xc3Mx\xa6q\xa7\xa0`\x8c\x10q*\xd0\x14\xaaCe \x0c\x97\x07@D\xf0T\x11\xf3\ 2\x8f\xa9\xfc,2\xc5\x1c\xfc\x8c\xc5\xd4;\xca\xe6&\xf1B\xf7\xa6G\x9e\xfb\xe5S\ \x03k\xb2\xd9\xba\xa6\xe2\xdd\xcfD\x1e6\xa4~R\xd5\xce\x1e\xa9\xba\x97!\xd2\ \xcc\xc0x\xa9\x8e\xd1\xc0\xc2\x84A:a\x90\x1e1o1+\x8e\x9d\x7fa\xe1\xc2\xdd|\ \xaf\n\xe0\xe4\xc9\x93488H\xc3\xc3\xc3,\x93\xc9P\xa1P\xa0\xa2\xf2X\xdd\xa3\ \xb3\x0fs\xd7\xec\x15.\x1eukh\xb3p\xc9\x01\x00\xe5Y\xe9\xa5\xecu\xe5\xe1\r\ \xed\xb1\xdf\xdf\xfeS\xed\xdb\x8e\x08Z\xd7uMUU\x95mii1\x9d\x9d\x9dv\xff\xfe\ \xfd\xb6\xab\xab\xab\x1c\xc0\xb1c\xc7\xd8\xc0\xc0\x00\x9f\x99\x99\x11\x85B\ \xc1QJ\t\xad\xb5c\x8c\x11\xd6Za\xad\x15\x00\x84\xb5\x96/}s\x1e\x84\x13j@%,\ \x90\x9f\xc1\xbc\xf6!\x01h\x00\x9a1\xa6\x01("\x92D\xa4\x88Hq\xce\xa5\x10B\ \xb9\xae+\xab\xab\xabUOO\x8f\xea\xef\xef7"\x1e\x8f#\x1e\x8fS:\x9df\x9e\xe7\t\ \xad5\xd7Z\x8b\xa5\xe0\xce\x92\x08k\xad\x83\xc5\xa6\x15\x00\x84\xf6\xc1\xb37\ \xad\xb2\xd6\x12c,\x08\xc0\xc1\xd2\x13j\x8cQD\xc4\x96\x12d\x8c1\xd2zq\x88\ \xf1}\xdff\xb3Y\x93H$\xd8\x85\x0b\x17LI\t\xce\x9c9C\xe7\xce\x9d\xa3D"\xc1\ \xe6\xe6\xe6X>\x9f\xe7\xc5b\x91)\xa5\xb81\x86\x19c8\x002\xc6\x10\x169\xe4}J\ \xb4\x00,\x11Y"2\x8c1\xc3\x183\x9cs\x1d\x08\x04\xf4R)L[[\x9b\xd9\xbbw\xaf\ \xe9\xed\xed]\x0e\xba\xae&\xfc_\xae\xff\x02\xc5{W\xc9\xe5\x8ct\xf8\x00\x00\ \x00\x00IEND\xaeB`\x82%\xdaW\x14' #---wx.ART_COPY PROVIDER[wx.ART_COPY] = \ 'x\xda\x01\xa1\x03^\xfc\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ \x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ \x08d\x88\x00\x00\x03XIDATX\x85\xc5W=O\x1bA\x10}3w\x1b\x03\x85\x95\x08$$\xda\ P\xa4\x88\xd28\ruD\x91"\xff ?\x822\x05\xbf\x81\x8a\x1f@\x87DC\x17\x89\x8a\ \x82\x8a"\x12\x94\x91\xe8\x90,\x84\x90\x8c8\x8c\xc1\xb7\xbb\x93\xe2\xbcfw\ \xbdwgKQ2\xd2\xe9\xd6\xeb\xddyo\xde\xcc~\x1c\x89\x08\xfe\xa7\xe5\x8b\x0c>==\ \xa5\xeb\xebk\x0c\x87C\x0c\x87C\xbc\xbc\xbc\xa0\xdf\xef\xd3h4\x82\xd6\x1a\ \xc6\x18\xac\xaf\xaf\xcb\xde\xde\xde\xdcQ\x91S\xe0\xf2\xf2r\x7fuu\xf5\x8b\ \x88\x90\xd7?}\xcfL$\x12\x11\x01\x1190!"\xdc\xde\xde\xee\xf7z\xbd\xfdy\tL\ \x15\xe8v\xbb\xef\xbb\xdd\xee\x07\x11A\xea\x89\xc0k\x9f\xe7\xe7\xe7\xf5y\xc1\ \x03\x02\x00\xd8\x01\xb5\x11\xf0\x89LT\x98\xbe\x89hF\xad&c\xcf\x19\xa7\x064\ \x11\xa9!\xb6\x10\x81@\x81\x06\xa7A\x7f]\x90u\xf5\xd2d\\\xd3\xfeg\xe6+@\xc0k\ ^\xa7\x9d^~\xdd\xef:#"h\xad?^\\\\|O\xd4\x93Xk!"\xb0\xd6\xca\xf9\xf9\xf9\xcf\ \x9d\x9d\x9d\xfb\x19\x021p\x13\xa8\xdf\xef\xda+++\xdf\xd6\xd6\xd6\xbe\xf9\ \x84\xdd\xe3\x8f+\x8a\xe23\x80_\xb9\xe7\x80RU]\x07\xdc\xa4\x88\x8b\x9a\x99g\ \xd4t\xbe\x95R9\xe0\xa5\xc0_>\x7f\x83@\x9b\x8f,\xcb\xb2\x80\x80\xef,\xb1\xb6\ \x93\xe9H\xc9\xec\xa2o#\xc0\xcc!\x01\x11\tV\x81O&\x15\xa9\xafBj^\x9b13\x07\ \x04\x88(\xf3\'\xa7\xa2O\x81\xc4E\xb6\x80\x85\x04\\;vT\'c,\xbf\xdf\x9e\x04\ \xd7VC\xb3\x04\xe2\xbc5\xe50\x05>\xe9M\xd6F8\xce\x82\x006\x08`l\x0c\xac\x9d\xfcP(`\xfb\xfb\x91\x95+\x91L\x06\xa9h<\ \x0e\xa07,\x16\xe1\xde=$\x9b\x9d1yip\x10\xdd\xb2\x85\xba]\xbb\x16\x04\xa8\ \xdf\xbb\x97\x07\xaa\x94?\xfa\x88\xeaDb\xfa\xbb\xde\xbe\x8d,YBX,"\xd0\xbb \ \x80\xf1\xbcN\x1b\x04:q\xf3\xa6\xc4\x96-C*\x11p\xec\xe1Ct\xdb6\xea\x1f#>e\ \x8b\xdb\xdb\xb9\xafJ\xe9\xf8q\x92S\x10##L\x0c\x0fc\xadU\xe3y3\xa2\xe1\x9cP\ \xdc\x99J}\xd3\x90\xc9l\xa8O\xa7\xc1u\t]\x97\xe1M\x9b\xf8\xd9<{\x7f\xff\xc3\ \x0f\xd1(\xa2\xb9\xbd}N\xdb\xadw\xdfe\xf1\xc5\x8b\xb8f\xf2\x98\r\x14\n\xf4\ \x8f\x8e\xfem}\xb18\xe3\x16\xcc)HD\xe4\xe3\xa1bqCm<\x8e\x13\x04x\x80w\xe6\ \x0c\x0f\xdfx\x83\xdc\xab\xafN\xf7\xbb\xf7\xc1\x07\xc4\x0e\x1e\x04Uz\x81\xa5\ \x8f@\x0c\x9e;G\xe2\xf3\xcf\xf1\x1c\x07\xa2\x88H\x95\xa1b\x11\x11\xf9x\x0e\ \xa9\xaa\xce\xf0\xab\xcd\xcd\xd5\x9d\xc9d\xef\x8d\\N\xcb\xcb\x96\xe9x\xc5{\ \x97.\xd5\xc1\xcf>SU\xd5\xbb\x87\x0e\xe9@c\xe3t[\x7fc\xa3\xfe\xfb\xd0!UU\x1d\ \xf8\xf4S\xbd\xbbd\xc9t[y\xd92\xbd\x91\xcbig2\xd9{\xb5\xb9\xb9z\xb6\xde\xbc\ \xd9\xf0j:\xfdV`\xed\xa9\x9aX\x8c\x96D\x82\xa9\x0c\xf2\xc0\x18\x8ao\xbeI\xdd\ \'\x9fP3\xab \x19\tC\x06\xb7m#u\xe6\x0c\x8b+s*p\xa7\\fdb\x02\xd7\x98\x9d\xbf\ (\x14\xe6\xa4\xe4\x05\xeb\x81\x7f\xa4\xd3\xc7}k\x7fS\xe58<\x13\x8b\x91\xa8\ \xa4\xde\tUb2\'\xa9\xcdi+\xabrkb\x02?\x8a\xa82\xe6\xc4\xcf\x0b\x85\xb9!\x93\ \xc7\x14\xa5\xb1\xa6\xa6\xf7\xa5\xaf\xaf\xd1\x8f\xa2\xad\x7f\xf7}\x16\x1bC\ \xb3\xe3\x90\\h\x00\x10\x07\xc6\x80\xbe(\xe2\x81\xb5\xc4\x81j\x91?{MM\xef/4\ \xe6\xb1%\xd9\x9d\xb66S\xb8r\xe5\xf7\x13\xd6\xee/\x82D@\x02\xa8\x11\xa1\n\ \xf0*\xfd\x02\xc0\x07FT)\x03\x0e\x90\x02\x8d\x19\xf3\x87\xf4\xc6\x8d\xbfk\ \xf9\xe2\x0b\xfb\xa3\x00\xa6\xec\x9f\xd9\xec\x8b\x1a\x86\x7f,\xab\xbeTfV({\ \xc4\xe2\x15\xc0\x84\xc8\xd7\xe2\xba\xbf]\x93\xcf_~\xd2\xdc\xf3\x02\x1c;vL::\ :\xe4\xf6\xed\xdbfddD|\xdf\x17-\x97\xcd\x9f\x1e>|1\xa3\xfa\xeb\x04\xfcJ\xe1\ \x19\xad\xfc\x04\x81@\xe0V\x19\xce\xe7E\xfe\xb2\'\x9b\xbdD<\xae\xf1x\xdcf2\ \x19]\xbe|\xb9]\xb5j\x95\xee\xd8\xb1CW\xcf*lEU\xd9\xb7o\x9f9\x7f\xfe\xbc300\ \xe0\x96J%/\x0cC7\x8a"\xcfZ\xeb\xaa\xaa\xab\xaa.\xe0\xaa\xaaSy7i\x91\xd8*\ \xc8\x00\xfc\x0b\n\x05\xd5\x00\x88\x80\xc8\x18\x13\x01\xa1\x88\x84"\x12\x88H\ \xe88N\xe0\xban\x18\x8f\xc7\x83E\x8b\x16\x85\xeb\xd6\xad\x0b\xf7\xef\xdfo\ \xdd\xae\xae.\xba\xbb\xbb%\x9f\xcf\x1b\xdf\xf7\x9d(\x8a\x9c(\x8a\xdc\x8a\xb8\ WqWU=&\x0f\xad\x0b\xb8\x05U\xe7\x1b\xd5PUED\x12"\xe2\x01!\x10ZkC\x111\x95\ \x05\x8a1F\xa2(\x9a\\\xb1\x88\x8e\x8e\x8ejOO\x8f\x1d\x1a\x1a\xb23\xb6\xe0\ \xf4\xe9\xd3r\xf6\xecY\xe9\xe9\xe91\xf9|\xde\x8c\x8d\x8d9A\x10\x98 \x08\x1ck\ \xad\xb1\xd6\x1a\xc0Xk\x85\xc9T>u\x1f\x15P\x11Q\x11\xb1\xc6\x18k\x8c\xb1\x8e\ \xe3D\xb1X,\x8a\xc7\xe3\xb6\xa6\xa6\xc6\xb6\xb4\xb4\xd8M\x9b6\xd9\xf6\xf6\ \xf6i\xd1\xa7:\x84\xffK\xfb\x0f\xcf\xeeY|\xc9\x95\x1e\xb6\x00\x00\x00\x00IEN\ D\xaeB`\x82\xf0\x13j\xa4' #---wx.ART_EXECUTABLE_FILE PROVIDER[wx.ART_EXECUTABLE_FILE] = \ 'x\xda\x01/\x07\xd0\xf8\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ \x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ \x08d\x88\x00\x00\x06\xe6IDATX\x85\xcd\x96]l\\G\x15\xc7\xff3w\xee\xee\xb5w\ \xd7\xeb\x8f\x8d\xd7_\xeb\xb8\xae\x938\xb5QH\x1aH[\x1aAD\x1a$$H\xd4\x10\x84\ \x04\x84\xbaP\x01!*\n\x0fV*UUE\xf3P\x10\xc2\x0fi\x03Q\x03\xaa\x9c\x97>\x14H\ \xea\x08A\x0cR\xa5T\t\xc5IC\xc0\x1b\xd74\xf6\xd6\xc6\x1fk{\xd7\xf6\xae\xbd\ \xbb\xf7\xde\xf9\xe2\xc1\xce\xc7z\xbd\xb1\x0bB\xe5H\x7f\xe9Jst\xceo\xce\x9c;\ s\x88\xd6\x1a\x1f\xa7\xd1\x8f5\xfb\xff\x03\x00\xfb(\xce/|\xb8\xdd\x9c\x15#\ \xbb\x95V_\x04\xd1mZ!\x04\x00\x84"\x01M\xa2\x94\xd0\xdfW\xb2\x8d\x97~\xdct\ \x9d\xaf7&YO\x0f\xfch\xb8\xd1g\xab\xf41wA\x1dK\x8d\xaa\xca\xdc\x04C\xb9\x8a\ \xc0\x8b\x00\x0cj\xc2!\x0bH\xd31\xb0p\x16\xc1F:\xeb\t\xd0.\x8b\x96u\xfd\xbcy\ 4\xf3_\x03\x1c\xf9\xa0b/\xcf\xca\xee\x99\x7f\xc8\xda\xaa\xc5v\xech\xda\x83\ \x8d\x1b\xb6\xc0\xa0\xf9\xc5\xd3Za,9\x8c\xbe\xe1\x8b\x98\xf1\xfd\x1d\x1b>aL\ \x9a\xa5\xc6\xe1S\x9b\xe6\xfe\xf4\x1f\x03|\xf7f\xf0h.!\xbb\xd2\xd7\x03\xec\ \x0b\x0fu\xa0i\xc3\xd6\xb56\x04\x00\x88MG\xf1\xc7\x81\xd7\x11\xdc\xbe(JB\xc6\ \xb1\xd3\x0f\xa5^\xf9\xc8\x00\xcf\xdc\x08~sqJv\xab[5x\xf2\xe1\xa3\xf0{\x83\ \x85N\xb7[X\x15.\xa5s\xb3\xf8\xcd\xb5\x9307\'\xe0\x0f\x1b\x87_\xdb\x96:\xbbn\ \x80\xef\\\x0b\xeet\xd2\xf2Rv\xa0\xdczr\xfbQ\x94z\x03\x00\x00VJ\xe0)%`%\x04\ \x94\x01\x84\x10\x00\x80\xd6\x1aJ\x00\xc2\xd6\xe0Y\r7\xb3\x14s!7\x87\xdf]\ \x7f\x05\x81\xb6E\xdb[f\xec>\xf3p\xeaj\xb1=\xdc\xb1\x9e\x89\x17\tw\xd4\xc9\ \xd9AX{\xb6~\x15\x8c\x99 >\x07\xbe\x88@\xb6j\x08\t\xefM(\x96\x83".$\x1cH8P\ \xc4\x05L\x17,\xc0Q\x12\x16\x084\n\x18~\x07^\x8f\x85\xcf\xb6\x1eDrP[\xdcQ\'{\ &^$k\x02\xbc9\xd4u 3\xa5\x1f\xd9\x1c\xfa\x14\xca\xfd\x95\xf0\xd5\n\xf8\xc2\ \x12\xc4ta\xcb4\xbe\\\xf5\x02\xb4\xa6H81(8\xab\n\xccEi\xb5D\xa0AbCE-\x9a+>\ \x89\xcc\x94~\xe4\xcd\xa1\xae\x03k\x02H.\x9f\xe6\xf3\x14[\xeav \x18\xd10\xfd\ \x12\n|IJ\xc2C}\xd8W\xf9C\x13\xd9\x86\xa0\xe5\xc3\xc0`\x1ce\x8b\x9f\x87\xac\xbe\x8c\xc6\xc8*\xf3\ \xc1=\x96qs\xb8<\xd6\x8f\xe8\x8d8\x92\x83\xea\x97o?\x9f\xfb\xfej~E\x87\xd2\ \x90\xaf\xee\xd9\xe9\xe8x\x8d\x12\xc9\x03\xb3\xfc\x12Z\xca\x1b\xf0`M\x04\xd5\ \xfe\x01\x98fU\xd1\xc4)\'\x83h2\x86\x7f\xce\x8d"\xde\xef 9(\xcfU\x07\xeb\x9f\ -\xe6\x7f\xdf\x91\xec\x07\xaf=Ao|\xf8\xce\t_-\x8e\xd7\xec`\xc4\x1b$\xf0\x9b%\ \xa8-\r\xa1\xcc\xe3\x83ex@\x08\x81-\\,\xf0,\xe2\xd9\x04Rn\x06NJ#\xfe\x9e\xd0\ \x99I\xbc\xbc\xad\xe9\xf1\xe7_}\xa6w\x95\x99i\x1d\x00\xb7m\xf7q\xff\xa3\x8a\ \x88\x9f\x967\xd3\xc7\xcb\x1f\xa0\xf0\xd7QP#\xdfGI`qBa>\xa60?\xac\xde\xa1\ \x9au^zy\xf1\xcaZ\xb1W\x058u\xea\x14\xe9\xeb\xeb#CCC4\x95J\x91\\.G\\a\xd3\ \xd0\xbe\xc4\xa3\x86\xa5\xf63\x0b\xfb\xacJ\xd2\xc2,b\x02\x80\xb05\xb7g\xf5-a\ \xe3\xa2\xb4\xe9[3\x7f\xa8\xbal2\xaf\xb6,K\x95\x97\x97\xeb\x86\x86\x06\xd5\ \xda\xda\xaa\x0f\x1d:\xa4\xdb\xda\xda\n\x01:;;ioo\xaf1==\xcdr\xb9\x9c)\x84`R\ JS)\xc5\xb4\xd6Lk\xcd\x000\xad\xb5\xb1\xfcm\x18^\x98\xa5a\x94A\x03\xd9i,H\ \x07\x1c\x80\x04 )\xa5\x12\x80 \x84pB\x88 \x84\x08\xc308cLX\x96\xc5+**\xc4\ \xce\x9d;Eww\xb7b\xd1h\x14\xd1h\x94\xcc\xcf\xcfS\xdb\xb6\x99\x94\xd2\x90R\ \xb2\xe5\xe4\xe6\xb2\x98\xd6\xda\xc4R\xd32\x00L:0\xd2#Zh\xad\t\xa5\xd4\x0b\ \xc0\xc4\xf2\xd3\xa9\x94\x12\x84\x10\xba\xbcAJ)%R.\xbd#\x8e\xe3\xe8t:\xadb\ \xb1\x18\xbdr\xe5\x8a\xca;\x82\xb3g\xcf\x92\x0b\x17.\x90X,F\xe7\xe6\xe6h6\ \x9b5\\\xd7\xa5B\x08C)E\x95R\x06\x00\xa2\x94"X\xbaCn\x0f\x99\x1a\x80&\x84hB\ \x88\xa2\x94*J\xa92\x0cCz<\x1e\xb9|\x14\xaa\xb1\xb1Q\xed\xdf\xbf_utt\xdcI\ \xba\xae&\xfc_\xda\xbf\x01\xbd\x85\xa3\xd0\xbfw:B\x00\x00\x00\x00IEND\xaeB`\ \x82\x854Z\x7f' #---wx.ART_FILE_OPEN, wx.ART_FOLDER_OPEN PROVIDER[wx.ART_FILE_OPEN] = PROVIDER[wx.ART_FOLDER_OPEN] = \ 'x\xda\x01\xca\x055\xfa\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ \x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ \x08d\x88\x00\x00\x05\x81IDATX\x85\xb5W\xdfk\x1cU\x14\xfe\xee\xee\xcc\xec\ \xcft\xb3l\x92\xa6\x9b\xa6i\x926\xa9Ii\xb56\x82\xd2\x07\x15\x15mA!\x82>T\xfa\ \x0b\x15#\xf6A\x04\x15Eh_\xfa\xa0\x14\xc4\x87 \xf8\x10\xff\x00\xa9\x08>\xf9 \ *\xc6\x97F\x11\xb5 \x94P*\x9a&\xfd\xb5\x9b4ivv\xee9\xc7\x87\xf9\xb13\xbb\x13\ \xe2\x8a.\xdc]f\xe6\xde9\xdf\xfd\xce\xf7\x9dsW\x89\x08\xfe\x8f\xcf\xb97\x0e\ \xe7\xf3\x1d\xf9\xbe\x81\xc1\xd1Ry\xfb\x8e\x02DJ\xab\xab+=\xc3\xbb\xc7~\xdc1\ ~\xf8[\x7f\x9e\xfa7\x00\xae_\xbf\x84\x8f\xcf\x9d\xee\xd93v\xdf\xe8\xf6\xfe\ \x9d\xbb\xf2YcG\xc62\xfa\x94\xe2\x81t\xca,3\xe9\x81|.\xdba\x99I\xd4\xeb58l\ \x02\x10\x98\xaa\x0eJt\x9e\xed\xbe\xe7\xd93\xfe\xbb\x8c\xcd\x82\xbd\xff\xce\ \xa4\xd5\xbb\xb5\xf7\xe1\xe1\xe1\xe1\x89b!\xbd7\x932w)\xf0\xc8\xe9WNm\xb1\ \x0c \x01\xdd\xb2\x86\xd9De\xe5\x0e\xd6\x8d\x0c\xd2)\x0b\x1di\r\x08cmu\r\xc8\ t\xaa\xf0\xdcM\x01\xf4m+\x7fx\xe4\xf1\x89)S\x85\x02\xa9$\x00\x1b`\x05n\x9a\ \x7fm\xe96\xac\\\t\xa5b\x01\t\xa9\x03p\x00\x00\xc4\x0c"\x8d\x04K$\xe6\xa6\ \x00r\xf9l)\xc16(\x08\xde:G\x85nV\xef\xdc\xc5X\xb9\x0fJ\xec\xc8\x1c&\x02\x13\ A\t\xb7\x07@A1\x115\xaec\x00\x88\x08\x16o\xac\xe0\xf2\x95%,\xdeX\xc6\xd8\x9e\ \xdd\x80D\x9f\x13\x11\x884@:\xdb\x16\x00b\xb6\x99\xb4\xb7\xf3\x98\xe8\x00\ \x96n\xae\xe0\xab\xef~\x03\x00\xa4\xd2\x16\x14\x9a\x84-\x02"\r\xd2\x04\x10u\ \xb4\x05@Dl"j\x8a\xadB\xdf\x00i\rfvo\xc4\x98\x8a\xc5\xcd?\x11A1\xb5\xc7\x80\ \x88\xb2\x89)\x12\x10MWD\x04\x11\x8e\r\x0e\x00L\x0c\xd2\x04"BR8\xd5\x16\x00\ \x95L\xd68\xa4\x81\x98\x19`&\x97\x01\x0f\x94\x88\x04\xf0\xc4\xa7\x9f4\x98\ \x08Bd\xb5\x05\x00\x82u\xad)"\xbef%hM`\x16\xf8\x14\x84\x9f\x87\x05H\xa4!\xac\ \x93m\x01p\x9czMkB2\xb1\xc1\x04\xe5\xa5\x80)\x06\x1a \xc2 \xed\n\x90\x99@\ \xd4&\x80\xba][\xd7\xcc\x804(\x0eb{\x97L\x04\x96\x06\x03a1\x84wOD`\xd2\x91\ \xadl\n\xc0\xb6\xd7\xd7\x99\x01\x02\xc7\x19!\x08"\xec\xd7\xc4Fp\x11\t\xc4G^!\ "\x8a\x96\xee\xcd\x01\xd4j\xb6\x08\xc0\xec/T-L\x13\xf9"t\xe3\x8b\x87/\x10\ \xa0\xf6\x86\x07\xa2-\x00\xc2$\xcc\x0c\xf1\x17*\xff\xa7\xc9\x86\x1c\xee\n\ \xe2\xad\xe5\x08\xfdD\x04\xdf\xd2\xff\x18\x00\x8b\x88\xb0\xb8\x00Z4\xa6\x02\ \x00,\xdct\xd7\xcb\x7f\x90\x02\xdf\x05\xed2 "\xc4\x0c\xc4\x02poq\x0b\x03Q\ \xff\xfb)`\xd2\x10\x91\x88\x0b62\x17\xa6\xa6\xa6TWWW\xfe\xe6\xed\xd5"\xb3K\ \x9d\x9f\xc3\xf0\xf0w\xc7\xcc\x81\x0eD$\xe4\xff\xd0p\xebEg,\x03sss\x98\x9c\ \x9cLW*\x95\x9c\xe38[\x88\xa80:X*O\x1c\xd8\xfb\xaa\xae-{\r&\xbe\x19\x855\xb0\ \xb4t\r\x97\xffX\xc6P9\x13\x12_\xc8\x86,\x91f\x94\x98\x99\x99Q\x85B\xa1x\xe8\ \xd0\xa1\xc1\xc5\xc5\xc5\xa1Z\xad\xd6OD\xdd\x00\xf2\xa7\x8e>ulkvm\x94\x03\ \x11\xe9\x88\xa5\xc2,\xb00X\x18u\xdb\xc6\x85\xcf\xbf\x00!\xd5\x92\x02rS\x10i\ F\x89\x93\'O\x8a\xd6\xda$\xa2\x0e\xefaVD\xb2\xcc\x9c%\x12s\xe7\xc1\xa3\xe8\ \xe8\x19\r\x05ts\x19Vu\xcaJ\x00\x100\x0b\x84\xc5\xeb\x8e1)p\x9d\x94n\xd1\xc0\ \xf1\xe3\xc7o(\xa54\x80\x0c3gD$\x03 \xa3\x89\x0cR\x19\xf7\xa5-/k\xf8\xba\x90\ \xb3p`O/\x84\xddr\xeb\x8b\xd2\x17^\xd0\x8c\x98\x01\x88\xd9\x02`zzZr\xb9\xdcU\ \x11I\x03\xc8z#C\xc4\xa6\x88\x7f\x9e\x8b\x11!7r\x9bM\x1b`\x96`\xe7\xec\xaf\ \xd1\x9e\xf8\xfa\xe9\xc0\xbe\'\x9f\x8be\x00\x00j\xb5\xda_\xa6i~\xaf\xb5~\x1a\x80E,\ \xc6O\x0bY\xe4\xd7\xdd\x1d\xc5Q\xaf\x12\x06r\x9d[\xebf:w\xd1\xc8\xdbW.\xcd\ \xdf\xaa\xae\xaf^w^&z\xdd\xef\x80J%1\xb4\xff\x91\xe9\xb1\x83G^Cn rrl\xe9\x05\ \x8e\xe3\xcc\x19\x86\xd1\xcd\xcc\xfb\xd6\xee\xda{i\xb3\xb9\x7f\x03~n\xcf\x9a\ |\x1a\tj\x00\x00\x00\x00IEND\xaeB`\x82c\x98\xa2\xce' #---wx.ART_FIND PROVIDER[wx.ART_FIND] = \ 'x\xda\x01U\x06\xaa\xf9\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ \x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ \x08d\x88\x00\x00\x06\x0cIDATX\x85\xc5\x97]lT\xd7\x11\xc7\xff\xe7\x9c{\xed\ \xdd\xb5\r6\xf6\xa2@ -u\xac \nv\x89S\xd5\x89\xad\xb6HvM\x03B\x05\x01\xae\xaa\ 6\xad\x02EJ\x9f\x8aJ\xd5\x97J\x15"\xa9*\xf5\x85T\xaa\xaa\x1a\n\x02\x1e"\x93<\ \xa0\n7\x8eHH\x1c9\xfe\x88\xb3\x98u\x0c\xc41Z\xdb+\x9bf\xd7k\xaf\xbf\xd6{\ \xbf\xceL\x1fv\xed\xda\tQ\x8c\x9d\x90\x91\xe6~\xe8\x9e\xb9\xf3\xd3\x9c9g\xe6\ \x08f\xc6\xd7)\xc62\xc7)\x00\xf9\x00r\x00\xcc\x00\xb0\x1e\x06\x80p]\xf7\xdb\ \xd1h\xf4\xc7===\xdf\x1b\x1a\x1a\xf2\xdb\xb6\x8d\x92\x92\x12\xec\xdc\xb9\xf3\ nYY\xd9\xf5\xa2\xa2\xa2\xb7\x00\xcc\xae\x06@\xdco\n\x92\xc9\xc9\xb5\x03\x03\ \x1f\xff\xb6\xa9\xa9\xe9\xe9p8\xfc\xc1\xc1\x83\x07\x8d\xaa\xaa\xaa\x02\xbf? \ \x87\x86\x06S\x17/^\x9c\xb1,kKCCC~]]\xdd_\x8b\x8a\x8a\xbaVL\xc0\xccKt``\xa0\ \xe8\xc2\x85\x0b\x97\xf6\xee\xdd\xfbr4\x1a=\xe3y:\xe5y\x1e\xbb\xae\xc7\x8e\ \xe3\xb2\xe3\xb8l\xdb\x0e\xcf\xcd\xa5[O\x9c\xf8\xfd\xefN\x9e<\xf9\xc6\xe0\ \xe0\xe0\x9eO\xffg\xb9\xba$\x02\xfd\xfd\xfd\xb2\xb5\xf5\xdd\xbf\xb5\xb6\xbe3\ s\xfe\xfc\xf9g\x85\x90\xe5\x8b\xbf/5\x06\x98\xd9~\xf3\xad7\xffx\xab\xef\xc3\ \xfaC\x87\x0e\x1d/++\xeb{\xd0\x00\xc8\xc5/\xed\xed\xed\xbb:;;\x8a\xcf\x9c9[K\ \x84rf\x86\x94\x02RJH)\xa1\x94\x84a((\xa5 \x04\xa05\xe5\xfe\xf0\x07\xbb^4\ \x0c\xf3?mm\xef\xfd!\x1e\x8f\xcb\xcfs\xb4,\x80\xdb\xb7\xef\xfc\xe2\xc8\x91\ \xa3\x05\x0c<\xc5`\x08!\xc0\xcc &0\x13\x88\x18D\x99\x88(\xa5\x90\x9bk\x02\ \x02\xb9G\x8e\xfc\xfa@oo/\xde\x7f\xbf\xfb\x89\x15\x03\xbc\xf4\xd2_\xfc33\xd3\ \xa5;v\x94\xef\xd2\x1e\x01\xcc \xca8ebhbP\x16&\x03B`\x06rsLH%k\x1e}tS\xe4\ \xce\x9d;\xdf_1\xc0\xdd\xbb\x1f?\xb2i\xd3\xe6\xcdD\x1c\xd0Z\xc3u=\x10\x11\ \xb4&h"\x90\x9e\xd7\xff\x83\xcd\xdfsL\x13OVV~3\x1e\x8f\x7fk\xc5\x00CCCJJ\x15\ \xf0\xb4\x86\xd6\x1a\xb6\xe3\xc2q2\x10\x94\x85X\xa2Zg\xe14\x88\x18yy\x81\'&&\ &\x96\xbb\xb1-\xc8\x82\xc1\xc8\xc8h<\x16\x8b\xc14\x0c8\xae\x0b\xedi\xccy\x1a\ \xa6i\xc04\x14\xe6\xd7\x82\x00\xf0\x99\x9d\x83\x19\xb1X\xec\xb1\xe9\xe9\xa9\ \xcb+\x8e\xc0\xc0@\xfft8\x1c\x0e\'\x12\x89\x85l\x17\x02\xb0,\x0733s\xb0\xd26\ \\\xd7\x83\xe7ih/\x1b\x01O\xc3\xb6\x1dLM\xcd:===\x14\x89\x0c\xbe\xb7b\x00\ \x00\x88F\x87/^mn\xd6\x9e\xab\xa1\x89 2\xcb\xceP\xd0D\xb0,\x1b\xa99\x0bssi\ \xa4R\x16fg\xd3\xb0,\x07\x9f\xc4\xfe;\xd6\xd5\xd99\x9aLN\x84V\x050;;s\xf9\ \xd5\xcbM\x1d\xa1\x1b=p\x1d\x0f\x8e\xeb\xc1q\\\xb8\xae\x07\xed\xe9\xec\x8aX\ \x94\x94LH\xa5R\xc93\x8d\xff\xe4\xbe\xbe\xbe?E"\x11\xefA\x01>S\x0b\n\n\xd6\ \x94VW\xd7\xbcq\xec\xd8\x0b\xa5;\xca+ Df\xd6\x99\x010\xc0\x99\x0b\x18\x8cd29\ w\xee\\\xe3\xd8\xf0P\xc4M$\x12O\x85B\xa1\xa9U\x03\x00\x80\xcf\xe7{\xbc\xbc\ \xfc;\xe7\xea\xeb\x9f\xady\xfa\x99gD\xb0d=\xfc\xfe\x00 \x00\xd7u1\x99L\xe2\ \xa3\x8fn\'\x9b\x9b\xff\x9d6MU\xa0\x94*p\x1c\xe7\x83\xe1\xe1\xe1\xfap8<\xb1j\ \x00\x00\x08\x06\x83>)\xd5OKK\x1f\x7fa\xf3c\xdf\xa8X\xb3f\x8d2\xcd\x1c\x9a\ \x9e\x9e\xa2\x89\xf1\xc4\xcc\xc4D\xe2m\xcb\xb2\xfe\xbca\xc3\x86\xefF\xa3\xd1\ \xbfo\xd9\xb2%\xc7\xef\xf7\xf7E"\x91\xfaP(to\xd5\x00\xf3r\xf6\xecYq\xea\xd4\ \xa9M\xc1`\xb0T)U\x90_P\x900M\xf3\xc3\x96\xd7__\xe8\x03\x82\xc1\xe0\xfe`0\ \xd8\xb4u\xebV3??\x7f\xb0\xbf\xbf\xffG]]]w\xbf\x14\x80\xe5Jqq\xf1\xc1\xf5\ \xeb\xd7\xbfRYYi\xe4\xe7\xe7\x7fr\xf3\xe6\xcd\xdd\x9d\x9d\x9d\xe1/\xb2{\xe0\ \xea\xf5y2>>\xfe\xda\xd8\xd8\xd8\xcfB\xa1\x90GD\x8f\xd4\xd4\xd4\xbcS]]\xfd\ \x85\xb5\xe1K\x03\x00\x80D"\xf1j<\x1e\xffy[[\x9b\xa7\xb5.\xdc\xbd{wKmm\xedO\ \x1e\x1a\x00\x00\x8c\x8f\x8f7\xc5b\xb1\xe7\xae]\xbb\xa6m\xdb\xf6\xef\xdb\xb7\ \xef\xb5={\xf6\xfc\xea\xa1\x01d!^\xb9w\xef\xde/\x9b\x9b\x9b)\x95J\xa9\x86\ \x86\x86\x7f\x1d>|\xf8\xc4}\x07\xaf\xb4\x97[\x8e\x16\x16\x16>WUU\xa5O\x9f>\ \xcdW\xae\\\xa1\xa3G\x8f\xbe\xd8\xdd\xdd\xbdd\xccW\n\xc0\xccX\xbbv\xed\xf3uu\ u\xba\xb1\xb1\x91\xaf_\xbf\xce\xc7\x8f\x1f\x7f\xb9\xbd\xbd\xfd\xfeM\xe9W%\ \x85\x85\x85\xc7jkk\xff\xb1}\xfbvy\xe3\xc6\x8d\xf0\xd8\xd8\xd8\x93\x1d\x1d\ \x1d\x04,\xda\x07n\xdd\xba\x85\x96\x96\x16\xd1\xdd\xdd-FFF\xe4\xe4\xe4\xa4\ \xb0,K\xda\xb6-<\xcf\x93ZkAD\x82\x99\xe7u\xc1\x81\x10\x02B\x08\x16B\xb0\x94\ \x92\x95Rl\x9a&\xe5\xe6\xe6R \x10\xe0u\xeb\xd6Qoo\xefo\x8a\x8b\x8b\xebS\xa9\ \xd4\xf3\xa3\xa3\xa3\xf1\x05\xdb\x8a\x8a\n3\x91H\x18\xe9t\xdap]\xd7$"\x83\ \x88\x0cf6\x88\xc8@\xe6Xf\x10\x91\xca>+d\x92wq\x02SV5\x00-\xa5\xd4\x00<\x00\ \x9e\x94\xd2\x13BxRJO)\xe5\x99\xa6\xe9\xe6\xe5\xe5y\x1b7n\xf4\xf6\xef\xdf\ \xaf\x95\xcf\xe73?\xe5\xdc\xcc:7\x01\x98\xccl2\xb3\x89\xcc\xb9pA\x999\x97\ \x99s\x00\x98B\x88%p\xcc,2\x81\x11`f\x91\xa9\xa8\x00\xb2\xcd\x14g\xc2\xc7\ \x81@ \x13\xcaK\x97.\x89\xabW\xaf\x8a\xc1\xc1A999)\xd3\xe9\xb4\xb4m[y\x9e\ \xa7\x88Hj\xad%\x00IDr\x91\x83%"\x84 \x00,\xa5$!\x04I)\xb5R\x8a\x0c\xc3\xd0>\ \x9f\x8f\x02\x81\x00\x95\x94\x94\xd0\xb6m\xdb\xe8\xc0\x81\x03\\__\xcfKr\xe0\ \xeb\x92\xff\x01\x1b\xcf_\xf0\xc9?Xv\x00\x00\x00\x00IEND\xaeB`\x82]\xea\x17\ \n' #---wx.ART_GO_DOWN PROVIDER[wx.ART_GO_DOWN] = \ 'x\xda\x01,\x07\xd3\xf8\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ \x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ \x08d\x88\x00\x00\x06\xe3IDATX\x85\xcd\x96[l\x1cW\x1d\xc6\xbfsffw\xf6\xbe\ \xb6w\xb3\xb6k;\xaek\xe7\xe6\x94\xd4IP\x1ah\x04\x95B)\x95P\xa2\xa2\xf0FUW\ \x84K\x88*\xc2C\xdaJ\x15D\xa8\x0f\x15\x0f\xf8!m \n\x88\xca\x96P%Z\x9a6\xa1\ \x85\x18\x15$W1\xe04!\x8d\xd7\x91\xdb\xd8\x9b\x18_\xd6\x97]\xef\xaewgg\xf6\ \xdcx\xf0\x85\xae/\xb1[\x84\xca_\xf3iF:\x97\xefw\xfe\xe7\xcc9\x87(\xa5\xf0Y\ \x06\xfdL\xdd\xff\x1f\x00\xf4OR\xf9\xc7\xb7\xdb\x8c4\xbfs@*\xf9\x18\x88jU\ \x12\x11\x00 \x143P$N\t}\xbbR\xdf\xdc\xf3\xd3\xc6kl\xa3}\x92\x8d\xac\x81\x1f\ \r7\xf8l\x99;Q\x9a\x93\'\xb2#\xb2\xb28\xae#,\xeb\xe1F\x00\x1a5\xe0\x909\xe4\ \xe8(\xf4\x98\x85P\x03M\xbb\x02\xb4\xc3\xa4\xc1\x8e\x9f7\x8d\x14\xfek\x80c\ \x1fU\x1cd\x96\xe8\x9c\xbe!j\xaa\xf2;\xb1\xbb\xf1al\x8en\x85F\xcb\x93\xa7\ \x94\xc4hj\x18}\xc3\x970\xed\xfb\x00\xd1\xfb\xb5\t\xc3\xab=q\xa6e\xf6\xcf\ \x9f\x1a\xe0\xbb\x03\xa1\xe3\xc5\x19\xd1\x91\xbb\x16\xd0\xbf\xba\xa3\x1d\x8d\ \xd1\xed\xeb\r\x08\x00\x90\x98\x8a\xe3O7_A\xa8-\xcf=\x11\xed\xc4\xd9\x1d\xd9\ \x97>1\xc0\xd1\xeb\xa1o\xe5\'E\xa7\xbcU\x8d\xc7\xf7\x1c\x87\xdf\x1d\x02\xa0\ \x90\x93IH\xa9\x80\xf9g\xfe-\x01\xa5\x00\xa2\x08*\xbd\xd5\x00\x08r\xc54^\x7f\ \xff4\x8c-3\xf0\xc7\xb4\'\xce\xed\xcavm\x18\xe0\xdb\xef\x87\xf6:9\xd1c\xdd\ \x0c\x9b\x8f\xb7\x1d\x87\xd7\x1d\x00\x00\x08\xb3\x00\xc7LaG\xf0\xe1y\xd3e\ \xbaz\xfb]T\x86#\xd0\xb9\x0f\x000W\x9c\xc5\x1b\xd7^B\xa05o\xbb\x83\xda\x81_\ \xed\xc9^Y\xee\xb5\xe2/\xb80~\x8a0G\x9eN\x0f\xc2\xfc\xda\xf6oB\xd7\r\x10\x9f\ \x03o\xa5\x86\x12\xe1\x88\x89\xfb\xd1\x16yt\xd5\xac\xcd\xe6\xa7\xe0T\x8c\xc2\ cpXi\x01\xb70\xf1\xa5m\xdf@\xf7\xe0+f\xf4s\xf2\xf4\x85\xf1S_\xf8z\xed\xa9\ \xb2\x11\xaf\xd8\x07^\x1b\xea8\\\x98T\x0fn\x89|\x1ea\x7f%|5\x1c\xbe\x98\x001\ JP(\xadj\xfc\xf1\x90(\x01z\t\xdeM\x02\x81:\x81hE\r\x9a*\x1e@aR=\xf8\xdaP\xc7\ \xe1\xe5\xf5W\x00\x08&\x9eb\x19\x8a\xad\xb5\xbb\x11\xaaW0\xfc\x02\x12lI\x1b\ \x01X\x94\xee\xe1\xa8\xa8W\xd8\xd9\xb0\x0f,C!\x98x\xea\xae\x00Ov\xc7\xfc\xcc\ R\x07k\x83\xcd\x88\xd4\x99\xd0MQ\xd6\xe1F\x00\xd4\xc7`%\x18\xa8K \xd6\xe0Cm\ \xb0\x19\xccR\x07\x9f\xec\x8e\xf9\xd7\x04\xb0K\xc5}\xdc\x86y_]\x0b|A\x00`\ \xabh=\x00\x0e\x05V&\xb7O\xa2es\x0b\xb8\r\xd3.\x15\xf7\xad\t \x98l"R\xc3=5\ \x9b\xa0\x08[E|]\x00\x10\xb6\xaa\xeak\xabA$\x85`\xb2\xe9.\x00\xf0\x9b\x86\ \x0f>\xbf\x06\x80\x03\xe0\xb81\xd7\x83\x9c]B\xb6\xc0`\x15(\xaa=\xcdkz\xd7\ \x85[05D0\xfcA\x01\x1f]\xcd\xe1\xadw\xde\x86-\xd3P`\xf0z)L\x97\x17\x82\xa1l\ \n\xca~C\xc9\xe0P7\x81\xae\x0b\x00\x02\x00\xd0\xe8mF@\xd5\xe0\xb1\xd83\xeb\ \x0e\xbe\xb5v?Zk\xf7\x03\x00~\xd3s\n\xf7\xed\xd1\x90\x92\xfd\x88\xd2\xedpQ?\ \\.\ry\x0b\xce\x9a\x19PL\x8d\x16\xec\x1cl\x99\x02\x08\x07\x08G\xc0\xf0cZ\xfe\ \r\x97\xd3\xbf]\x17`1.\xfc\xf3\x1c\xa6*\xdf@4\xe2\x87A5\x14\xd4\x18\x18\xb2(\ :\x16\x14S\xa3k\x02@jW\x98#\xd5\x8c\x9d\x00C\x16\x84\x08\x10"\xb0\xc9\x13E\ \xdc\xe9B<\xf7\x97u\xcd{\x87\xfe\x80~\xf52\xea\xeb*\xe0\xa2\x06\\\xd4\x00!%d\ X\x02V\x9e)H\xadl7,\x03x\xb3=7\xce\n\xe8\x9b\x98I\x83a\x1a\x96\x1a\x81\x8d$l\ L\xa0\xcaOpi\xf6\x19\x8c\x16\x06\xd64\xbf\x99\xfc\x07\xdeM\xfd\x04-\xcd\xd1%\ \xf3E%S\x19\x94\n\xaa\xef\xcd\xf6\xdc\xf8\xda\x19\x00\xa0\x18^\x1d\xbc5\t)\ \x15tJ@\t\x03%\x1c\x1aU\xb87R\x85\xdfM\x1c\xc3\xac\x93\\a>\x9e\x1d\xc2\xefo\ \xff\x10;[\xa30\xa8^&\x02\x8a\x81\xc1\t(\x86W\x97\xb7[\x01`j\x81\xb3\xa9\x11\ g\xec\xda\x9da\x18\xd4\x80K\xfb\x8f\xdc\x9a\x81-\xb5~t%\x8e\xc2\xe6\xf9\xa56\ \xd9\xe2\x0c:\x07\xbe\x83\xb6]Ue\xf5\x17\x15\x1f\xbd\x83d\xa20fj\x81\xb3\xeb\ \x02\x9c?6iq\x9b<\xd7\x7f5\x89+\xff\x1a\x84N\xf4\xb2T\x9a\xba\x1b\xcd\xf5\ \x04\x9d\x1f\x1e\x87P\x02\x0e\xb7\xf0\xeb\x1bG\xd1\xf6@\x10n\xcdUV\xd7 \x06\ \xfa\'\x12\xe8\xfb\xfb\x08\xb8M\x9e;\x7fl\xd2Z\xee\xb7\xe6}\xe0\xcb/x~Q\xb5\ \x95~o\xcb\xce*|\xb1~\x17B\xa6\xaf\xacV-y\xeap\x9a\xf5\xa09\\\x87\xd6\xaa&Ty\x82\xf3\xe5\ \xfe Dl\x00Q\xc3@\xc8\xe3]j\x97u\n\x88\xa7\x12\xf8pv\x04\xc9~\x07\xa9Aq~S\ \xe8\x9e\xa7\xd7\xf2\xb9\xeb\x95\xec\x07\xe7\xbeB\xaf\xdf~\xef\x05_\r\x9e\ \xad\xde\xad\x13w\x88\xc0oxP\xe3\x8d \xe8\xf2\xc1\xd4\\ \x84\xc0\xe6%\xcc1\ \x0bIk\x06\xd9R\x01NV!y\x95\xab\xc2\x04^\xdc\xd5\xf8\xd0\xf3/\x1f\xed\x96\ \x9f\n`1\x0e<\xeb\xdf/\t\xffY\xb8\x89>\x14\xbe\x97\xc2_KA\xb5\xf2:R\x00\xf9q\ \x89LB"3,\xdf\xa3J?\xd9\xf3b\xbew\xbd\xbeW\x058s\xe6\x0c\xe9\xeb\xeb#CCC4\ \x9b\xcd\x92b\xb1HJ\xdc\xa6\x91Gf\xf6k\xa6<\xa4\x9bx\xc4\xac$\xcd\xbaI\x0c\ \x00\xe0\xb6bvZ\xdd\xe26.\t\x9b\xbe5\xfd\xc7\xaa\xcb\x86\xeeV\xa6i\xcap8\xac\ \xea\xea\xea\xe4\xb6m\xdb\xd4\x91#GTkk\xebJ\x80\x93\'O\xd2\xee\xeenmjjJ/\x16\ \x8b\x06\xe7\\\x17B\x18RJ])\xa5+\xa5t\x00\xbaRJ[\xf8\xd647\x0co\x0cA(\xc0\ \x9a\xc2\x9cp\xc00\x7f\x80\x08J\xa9\x00\xc0\t!\x8c\x10\xc2\t!\\\xd34\xa6\xeb\ :7M\x93UTT\xf0\xbd{\xf7\xf2\xce\xceN\xa9\xc7\xe3q\xc4\xe3q\x92\xc9d\xa8m\xdb\ \xba\x10B\x13B\xe8\x0b\xe6\xc6\x82t\xa5\x94\x81\xf9E\xab\x03\xd0\x85\x03-wGq\ \xa5\x14\xa1\x94\xba\x01\x18X8B\xa5\x94\x9c\x10B\x17\x06H)\xa5D\x88\xf9\xc3\ \xcdq\x1c\x95\xcb\xe5d"\x91\xa0\xbd\xbd\xbd\xb2l\n\xba\xba\xba\xc8\xc5\x8b\ \x17I"\x91\xa0\xb3\xb3\xb3\xd4\xb2,\xadT*Q\xce\xb9&\xa5\xa4RJ\r\x00\x91R\x12\ \xcc\xef!d\xa1\xa9\x02\xa0\x08!\x8a\x10")\xa5\x92R*5M\x13.\x97K,L\x85lhh\x90\ \x87\x0e\x1d\x92\xed\xed\xedK\xa6\x1bZ\x84\xff\xcb\xf87^\x9f\x7f\x9cb$E`\x00\ \x00\x00\x00IEND\xaeB`\x82$q\\\xb6' #---wx.ART_GO_HOME PROVIDER[wx.ART_GO_HOME] = \ 'x\xda\x01x\x07\x87\xf8\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ \x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ \x08d\x88\x00\x00\x07/IDATX\x85\xb5\x96[\x8c$e\x15\xc7\x7fU\xd5\xd5]}\x99K\ \xef,\xcc\xec\xee\xcc\xec\xce\x0c\xcc\xb2;\xb8\xdc\xb2J\x94D\x88\xc8\x03k4\ \x0c1\xf1\x81@\x80\x17} J\xd4\xc4\x98H\xbc\x10\x1eLL41\x84\'\x91\xc4\x07\x9e\ \xf4E\xa3\xd9\xf0 h\xbc\xb0\x0b\xc22\x10\x11\x96ee\xd9\xe9\xb9vOwO\xd7\xed;\ \xe7\xf3\xa1{f\xbawz\xb3\x8e\x89_R\x95T\xd5\xa9:\xff\xef\xfc\xff\xffs\xca\ \xb1\xd6\xf2\xffX\xcf|\xf3\xfeRi\xa0t\xe8\xf0\xd4\xd1\x91\x83\xe3\x93CX;\xd2\ l\xd6\xaf\x9f\xb9\xf1\xf8k\x93s\xf7\xbf\xbc\x15\xe7\xfc/\x00\x96\x97\xdf\xe6\ \xb9g\x9e\xb8\xfe\xa6\xe3\xb7\x1d\x1d\x9f8rC\xa9\x90\x99\xccg3\x87\x1cG\x0f\ \x079\xff\xa0\x8a9\\*\x16\x06\xb2\xbeG\x92D\xa4\xea\x03\x16\xdfI\x10o\xf8\ \x07\xd7\xdd\xf4\xe0\xf7\xb7\xbe\x95\xb9V\xb2\x1f\x7fw>;6:v\xf7\xcc\xcc\xcc\ \xc9\xf2Pps>\xe7\xdf\xe0\xa0\xb3O|\xf5\xb1\xc1l\x06\\\xcc\xaewT}\xaa\xf5\x06\ a&O\x90\xcb2\x10\x18\xb0\xcafs\x13\xf2\xc3nw\xec5\x01\x1c:p\xf0\xa7\xa7>\x7f\ \xf2k\xbe\xd3\x95\xc8\xf1\x80\x18\xd4A\xaf\x88_\\Z\'[\x1ca\xa4<\x84k\x13 \ \x05@T\x1118\xaa\xfe\x9e\x00\x14K\x85\x11Wcd;\xf9\xee\x18\xa7\xebf\xad\xd1\ \xe2\xf8\xc1C86\xee\x89Q\x11T\x04w\xaf\x00\x1c\x1c\x15\x91\x9d\xeb>\x00\xac\ \xb5TV\xea\xbcwa\x89\xca\xca\x06\xc7o\xba\x11l\xefs\x11A\xc4`\xc5\xe4\xf7\ \x04@Tc\x15\xd3\xd9y\x9f\xec\xc0\xd2j\x9d\xd3\xaf,\x00\x90\x0b\xb28\\!lk\x11\ 1\x88\x11\x10\x19\xd8\x13\x00km,"W\xe4v\xba\xce \xc6\xa0\xaa\xed\x1b}L\xa5\ \xb6\xcd\xbf\x88\xe0\xaa\x14\xf6\x08\xc0\x89E\xa5\'!W\\\x89\x08\xd6j\xdf\xe4\ \x00*\x8a\x18AD\xf0\xac\xe4\xf6\x04\xc0\xf1\xbcH\xbb4\xd0\'\x02UiW\xa0\x03\ \xcaZ\xbb\r\xcfn\x95_LG\x88{\x14!\x96\xd0\x18\xe9\x11\xdf\x95J0FP\xb5l\x95\ \xa0\xfby\xb7\x00E\x0cV\x8d\xb7\'\x00i\x9aD\xc6\x08\x9e{\x95\x00\xa7C\x81J\ \x1fh`\xad"\xa6-@UAd\x8f\x00\x928\n\x8d*\xd8v\x89/\xad\x19V\xe22\xa9W&\x94\ \x0cj\x12\xd6\x16#>\\J\x18+\xbb\x0c\xb5\xd3n\xbf\xdf\xbd{\x11\xc1\x8a\xf4\ \xa0\xbc&\x808\x0eCU\xb8\xbcaX\xf3O\xb0o\xf6\x93\x8c\x15<\x1ai\x1d\xc2\r\x9a\ q\x88\x16\x0bl.%\xbcVY\xe1\xf6\xec\x8e^\xac\xb5\xdb\xe2\x93N#\x12\xedm\xdd\ \xd7\x06\x10E\xf1\x87\xd5\x02\xc1\x91y\xc6F\x0e\xb0\x91VY\xae\xbfMh\x1a\x181\ \x84FXKWX\xd7\nv\x9f\x87\x14\xf6a\xe98r\xdb\xff\x9d\xa3\x03bO\x00Z\xc5O\x0c\ \xba\x93\xa70\xc5\x11V\x13\x87\xf7W_g#Z&\x9b\x01\xb0\xc4\xa9\xd2L\x1a\xa4\ \xd6#\xd6\x84\x90M\xb6(\xb0\xaa=\xe5\x17\x11T\xf5\xbf\xa7\xe0\x1b?\xfcy\xf9\ \x96;>\xf5\xd4%s\x91\xb8Z\'W\x98\xc1\xf1o$\r7Xo\\\x06kI\xd52:|+\xb5\xc1a\x1a\ \xad\x84\xac\xd7\xdciP"]\x14t\xac\xa8\xd2c\xc3\xabi\x1b\x80\xd1\x83\xa3\xdfZ\ \xb4\x1f\x8d,,\x9dg\xa9U\xe6b#\xc5\xcbN2y\xfd\xe7X\xac\xaf\xb3\xd8\xa8\xb2\ \x1eF\xe4\x83)b\xb1D\n\xd2\xd5\x0b\xb6w\xdf\xa1@\xc5\xa0\xaa=\x8d\xe8\xaa\ \x00\xbe\xfc\xd0c\xeezZ}\xf8B\xedc*\x8d\x1c\x95\xa6\xc3f\xa24\x13\xe5\x9f\ \x95\xb7h&\t\xcd$\xe1@\xf9$abI\x15\xacm\x0f+km\x97\xff\xbb\x0e#\xa8\xc8`_\ \x00g\xcf\x9eerr2\x18\x18\x18\x18\t\x82`\xeaOg\xdfy`5\xae\x8e_X\xabPk\r\x13\ \xa5Jj\x94f,\xbc\xf1\xef\xd3\xc4\xc6rh\xdf\x9dL\xec\xbf\x9bf\xa2\xa4\xa2\xa8\ *o.Z\xde\xbc\x18\xa3\xaa]\xe2\xdb\xd1\x81\xaa\x96z\x00<\xff\xfc\xf3\xce\xd0\ \xd0P\xf9\xae\xbb\xee\x9a\xaaT*\xd3Q\x14M\x88\xc8u\xd9\xd2\xf0\xf4\xa5\xda*\ \x976\x96IL\xbb\xdb\xc5\x89a3\x11\x94\x80D,\xc3\xa5[\xa9EB31\xa4F0\xa2\xacE\ \x1eO\xbf\xb8\x80\x90\xdbE\x81\x88\xc1Z\xdb3\x8e\xddG\x1f}\xd4\x1ac|\x11\x19\ \xb0\xd6\x16\x80\x82\xb5\xb6\x80\xe3\x0cW\xaaU\x8c\x18\xea\xd1\xfb$\x89!\x8e\ \x13\xc20al\xe8\xb3$\xa2$2H=4\x18\'\x8bH\x1b\xa4\x88\x92tZ\xf3.\nD\xb0\xd6fw\ Q\xf0\xc8#\x8f\xac8\x8ec\x80\xbc\xaa\xe6\xad\xb5\xf9ds\xa3e\xd2\x04G\x15G\ \x0b$qJ\x1c\xa5Da\xc2\x80?\xc7D\xf9\x0b\xbcq\xe1\x97|X\xf9\x13d\x07\xd8\x7f\ \xf4$\xc6("\x8a\x8a\xb6-\xd8\x11\xde\x8e\x03\x14\xb0\x99]\x00\x9e}\xf6Y[,\ \x16/Zk\x03\xa0\x00\x14\x1a\x8b\xe7W\xf2\xcd\t\xdd/w2\xc4q\xe28%\x8c\x12\xc2\ 0\xa6\x15\xc6\x14\xdc\xa3\x8c\x0f~\x89\x9cs\x840\x8c1^\x06\x93\x1a\xac\x08h\ \xda\xd6\xc0\x96\r\xdb\xe2\xc3\xaa\x82\xa5\xff,\xa8V\xab\x9b\xbe\xefoXk\xcb@\ 6\xaa\xaf\x9ad\xbd\xf6\xc1\xe0\xbe\xa9\x1b\n\x83\x82j\x8aM\xdb\xff\xc0V\x15q\ \x1cp2\x88(\xeb\xe19*\xd5\x97ISAu\x03\x9bq\xae\x98\x01m\r\xb4\x97\xf68o\xfb"\ \x08\x82qU\x9d\xeeT \x0f\xe4G\xf5\x83Kam\x85\x9ciQ"%\xb0)\x9e\x1a\\\x11\x9c6\ \xe9\xd4[o\xb0\xdez\x89 \x93`\xf4_\xb8\xce2\x9e\xd3\xe9|\xdd\x0e\xe8\xfc\xd4\ X{\x95N\x18\x04A-MS\xaf\x93<\x0bd\xef\x9c-y\x95\x00\x96jK\x8c\x16r\x80\x8bZP\ U\xac\xe3\xa0\xd6a\xd0+\xe3\x06c\x0c\xba\xe3X\xbf\x8a\x8b\x10P\xe8\xf1~{\x14\ +\xae\xebQ*\x1f\xfc]\xdf\n\xd4j\xb5\xa6\xef\xfb\x7f\x04r[NPU\xff\xeb_\xb9\ \x07?ZC\x9akdd\x05\x9fE2\xf6#|\xbd\xcc\x00\x11\x07\xb2c\x1c+\xde\xcf\x91\xfc\ \x1c\xfb3S\x0c1\x8a+\xb2\x8b\x02\xc7\xf18r\xf3=/\xce\xde~\xea\x81\xbe\x00\ \x00\xa2(\xfa\xd8u\xdd?o9A\xd4f\xde]\x1f\xe6\xe1\x93\x8a.\x9d\xa1\xdez\x8bM\ \xfb7"\xce\x908\xaf"\xde\xdf):\x1b\x14m\x8b@6\x19\x19\x1c m\x86\xd1\xe5\x0b\ \xef\x9c\xde\xa1@\xc0q\x99\xbe\xe5\xde_\xcc\xde\xf6\xc5\x87r\xe5\xd9\xb4/\ \x05[+M\xd3\xb3\x99L\xe6:U=\xb1\xd9\x8au:\xfe\xad\xad4\xce9\x0f\xce\x84\xbc[\ -q\xa15CR\x18\xa2Tvq\xbd\x14\xeb\xbc\x8f\x1f\x8d\xb3\xbe\xb6\xd6\xa8\xd6\xaa\ \xaf\xfc\xe5\xf4o^\x9f>\x90/\x8b\x98\xfb\xda\xc9=\xa6N\xdc\xfb\xb3\xd9[\xee{\ \x92\xe2\xe1]\xbf\xad}\xa7\xa11\xe6\xf7\x13\x13\x13/=\xf7\xc2\x1f\xce\xbfz\ \xf6\xdc\xc6O\xbe\xf7\xf0wr\x19.N\xdfv\xe0\xaf\xe7>\xd8|\xe7\xc9\xa7_\xf0\ \xf7\x8f\xcf\x9c\x18\x1e.\x8f\x99$J\x17/]\\\xae\xbc\xf7\x8fw\xb1\xba\x9a\xc9\ d\xd6J\x85\xec)1\x82\xe3\xfaL\xce}\xfaGG\xeex\xe8\xa9~y\x80\x9d\xc1\xb1\x97\ \xe3\xcc\x993\xcc\xcf\xcf\xbb\xc7\x8e\x1d\xf3\xa7\xa6\xa6rsss\xfe\xfc\xfc\ \xbc\xbb\xb0\xb0\x80\xb5\x96o?\xfe\x99\xf2\xf93\xbfz\xea\xf2\xc2\xaf\x1f\xbf\ \xd6\xb7\xfe\x03\x14 -\x99u}%\xb9\x00\x00\x00\x00IEND\xaeB`\x82\x01%\xa1V' #---wx.ART_GO_UP PROVIDER[wx.ART_GO_UP] = \ 'x\xda\x019\x07\xc6\xf8\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ \x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ \x08d\x88\x00\x00\x06\xf0IDATX\x85\xcd\x96]lT\xc7\x15\xc7\xff\xf3qw\xef~\xd9\ kcX\xdb\xf8+6\x04\x83\x03\x14B\x05\x91 (\xaa\x9bV\x95ZHR\xda\x97\x16\xc5\xa8\ i%\x82"\xd1\x077TU\x95V}@y(\x91HiP\xfaP\xd9/Q\x9b\xa8\xa4\xa0\xaa\x8d\x93<\ \x14\x0b\x88lC\x08^\x82)x\xb1\xe3o\xec\xf5z\xed\xdd\xbd\xf7\xceW\x1f\x0c[\ \xec\xc5\x98\xa4\xaa\xd2#\xfd\xa5\xab;3\xe7\xfcf\xce\xcc\x9c!\xc6\x18|\x99F\ \xbf\xd4\xe8\xff\x0f\x00\xfc\xf3t\xfe\xe5\xad-VR\x0e\xec\xd2F\x7f\x0b\xc44\ \x19\x8d2\x00 \x14\x930$N\t\xfd[)\xaf=\xfb\xeb\xbaK\xe2a}\x92\x87\xd9\x03?\ \xed\xaf\t9:}\xd8\x9b\xd5\x87g\x06uin\x84#\xaa\xab\xe1G\x04\x8cZp\xc9,\xd2t\ \x08<\x96Eq\rM\xfa"\xf4\x98M\x8b\x8e\xfd\xb6~0\xf3_\x03\x1c\xfcWI\xb3\xc8\ \xaa\xb6\xdbWT\xc5\x8a\xb9\xc7\xb0\xb5\xee)\xd4\xae\\\x07F\x17.\x9e1\x1aCS\ \xfd\xe8\xea\x7f\x0f\xb7C\x9f`\xe5F6j\x05\xd9\xfe\x13k\xa7\xdf\xff\xc2\x00?\ \xb9Z|(7\xa9\x8e\xa5/E\xf876\xb4\xa0n\xe5\xfa\xe5&\x04\x00HL\xc4\xf1\x8fO\ \xff\x88\xe2-s2P\xc6\x0e\x9f\xdc0\xf3\xfa\xe7\x06x\xe1r\xf1\x0f\xe7\xc6U\x9b\ \xbeQ\x8eg\x1f?\x84\xb0\xbf\xb8\xa0\x8f\x82\x07J\x18\x88a\x05m\xe9\\\x12\xef\ \xf4\x1c\x87\xf5\xe8$\xc21\xb6\xff\xcd\xcd3\xed\x0f\r\xf0\xa3\x9e\xe2mnZ\x9d\ \xcd~\x1a\xb5\x9f\xddr\x08A\x7f\x04\x00\xc0\x83\x04\xbe \x01\x0f\x10\x80)|r\ \xeb\x02\x8c1\xd8R\xbf\x13Z\x02\xd21\x10Y\x03/3\xefs67\x8d\xbf\\z\x1d\x91\ \xa69\xc7_\xc4v\xfd\xe1\xf1\x99\xee\xc5\xb1\n\x8e\xe1\xe9\x91W\x88p\xf5\xf1d\ \x1f\xec\xa7\xd6\x7f\x0f\x9c[ !\x17\xa1j\x89`\xb9\x04/\x12\x00wqe\xa8\x13\ \xfb\xd7\x1f\xc5s\r?\xc7\xc7\x89N\xc0\xf2\xc0#\x02\x81\x98D\xa4F\x82\x85]\ \xf8}6v7>\x87\xa9>c\x0bW\x1f?=\xf2\nY\x16\xe0\xed\x9b\xc7\xf6f\xc6\xcd\x8eG\ \xcb\xbe\x8ah\xb8\x14\xa1\n\x89PL\x81X\x1e4\\h\xb8\xb8:\xf1\x11\x9e\xa9;\x82\ \x15\x81\xd5\xa8\x8dn\xc0\xd7*~\x8c\xab\x03=\xf9vp\x0f\xc1U\n\x91*\x85\x95%\ \x15\xa8/\xf9\n2\xe3f\xc7\xdb7\x8f\xed]\x16@\tu@\xa4(\xd6UnEq\xb5\x81\x15V\ \xd0\x10y%RW\xf0d\xd9\x01\xd4\x16m\xca\x8f\xd9T\xf1$6\x85\xbf\x8d\xfe\x91k\ \xd0\xf0\xf2\xe2\x01\x89\x92j\x83\xc7j\xb6C\xa4(\x94P\x07\x1e\x08\xf0|G,,\ \xb2\xa6\xb9\xb2h\r\xca\xaalp[-p8\x96\xe9\xc7\xba@36\xafh^\xec\x07\xbb\x1b\ \xbe\x8bUb\x0bF\'?[\x00L}\n\xb1\x9a\x10*\x8b\xd6@dM\xf3\xf3\x1d\xb1\xf0\x92\ \x00\x8e\x97\xdb.\x1d\xd8\rUk\x11*\x02\x00\x91W\xda\x9b@\x14\r\xd8\x1d\xdb_\ \x10\xfc\xae=\xb3\xf9\x10\xf4D\x19R\xe9I\x18\x88\xbc\xfc!\x8d\xb5\xb5k!\x1d\ \xd8\x8e\x97\xdb\xbe$\x80\x12\xba\x9eh\x86\xd5\x15\xab`\x88\xc8+\xa7\xd3\x10\ \x1e\xc7w*\x7f\xb6d\xf0\xfc*\xee\xf8\x15F\xaf\x0b\xe4\x9cY\x80\x88\xbc\xaa+\ \xcbA4\x85\x12\xba\xfe\x01\x00\x08\xdbV\x08\xa10\x03 \x01H(\xe3 \xe9L\xe3\ \xfb\x95\xaf\x82\x90\xe5k\x17\xa5\x0c/\xee~\rWzna\xc4\xb9\x04G\'a \x10\x0cR\ \xd8\xbe \x94\xc0\xd2)\xd0\x02.e\x04\x9c\xab4\x80\xb1Df\xd8f\x91\x93\xcb\x02\x9c:8\x9e\x95\ \x0e9\xd2{q\x0c\xdd\x9f\xf5\x81\x93\xff,\xa9E\x97\x7f\xc1\xdd\x9b\x02\x8bX\ \xe8\x1dM\xa0\xeb\xa3AH\x87\x1c9up<\xbb,\x00\x00|\xd0\x9am\x9f\x1d2o\\\xbe<\ \x84\x0f\xfb\xbb\x91\xf3\xbc\xbc\xd3\xe5\x01\xe6\xfb\t)\xf1\xcf\x81\x8fq\xa1\ \xbb\x1f\xb3C\xe6\x8d\x0fZ\xb3\xf7}\x0f,9\xa5\xb2P\xe5K\x13\xf1\xe1r-\xa7\ \xf6&\xc5Y\xac\x89V\xa1\xb1\xb4\x0e\xfd\xee\xef\x11O\x9c\x84V\x80V\x80Q\x06F\ \xce\x7f+\xa5\xb0\x9e\xaeB\xf7\xd85\\\x9f\x1e\xc4X\xaf\x8b\xa9>ujU\xf1\xea\ \x97\x96\x8a\xf3\xc0\'\xd9\x8bo~\x9d^\xbe\xd5\xf9\x9bP\x05^.\xdf\xca\x89\xbf\ \x98 l\x05P\x11,C\x91/\x04\x9b\xf9@\x08\x81#=\xcc\x8a,\xc6\xb2\x93\x98\xf12p\ g\x0c\xc6.J\x93\x19\xc5\xd1\xcdu;\x7f\xf1\xbb\x17:\xf4\x17\x02\xb8k\xbb^\x0e\ ?\xa1\x89|5ZOwF\x1f\xa1\x08WR,>\x10Z\x01s#\x1a\xa9\x84F\xaa_wR\xc3[\xcf\x1e\ \x9d;\xbf\x9c\xef\xfb\x02\x9c8q\x82tuu\x91\x9b7o\xd2\x99\x99\x19\x92\xcb\xe5\ \x88\'\x1dZ\xf6\xf4\xe4\x13\xcc\xd6{\xb8\x8d\xa7\xedR\xb2\x86\xdb\xc4\x02\ \x00\xe9\x18\xe1$\xcd\r\xe9\xe0=\xe5\xd0\xbf\xde\xfe\xfb\x8as\x16\xf7\x1b\ \xdb\xb6u4\x1a5UUU\xba\xb1\xb1\xd1\xec\xdb\xb7\xcf455\x15\x02\xb4\xb6\xb6\ \xd2\x8e\x8e\x0e611\xc1s\xb9\x9c%\xa5\xe4J)Kk\xcd\x8d1\xdc\x18\xc3\x01pc\x0c\ \xbb\xf3\xcd\x98\x1fV0\x86"\x18 ;\x81Y\xe5B\x00P\x00\x14\xa5T\x01\x90\x84\ \x10A\x08\x91\x84\x10\xc9\x18\x13\x9csi\xdb\xb6())\x91\xdb\xb6m\x93mmm\x9a\ \xc7\xe3q\xc4\xe3q\x92J\xa5\xa8\xe38\\)\xc5\x94R\xfcNp\xeb\x8e\xb81\xc6\xc2\ \xfc\xa6\xe5\x00\xb8r\xc1\xd2\x03F\x1ac\x08\xa5\xd4\x0f\xc0\xc2\x9d\x12\xaa\ \xb5\x96d\xbet\x12c\x0c\xa5\x94\x12\xa5\x14\x00\xc0u]\x93N\xa7u"\x91\xa0\xe7\ \xcf\x9f\xd7\x0bR\xd0\xde\xdeN\xce\x9c9C\x12\x89\x04\x9d\x9e\x9e\xa6\xd9l\ \x96y\x9eG\xa5\x94LkM\xb5\xd6\x0c\x00\xd1Z\x13\xcc\x1f\xe1\xbb\x8fL\x03\xc0\ \x10B\x0c!DSJ5\xa5T3\xc6\x94\xcf\xe7SwR\xa1kjj\xf4\x9e={tKKK>\xe8Cm\xc2\xff\ \xa5\xfd\x1b\xac\x1e\x82\x18@\xe9\xdd\xa1\x00\x00\x00\x00IEND\xaeB`\x82XuXz'\ #---wx.ART_TIP PROVIDER[wx.ART_TIP] = \ 'x\xda\x01G\x06\xb8\xf9\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\ \x00\x00 \x08\x06\x00\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\ \x08d\x88\x00\x00\x05\xfeIDATX\x85\xd5W[l\x14U\x18\xfe\xfe3gvg/\xdd\xed\x14)\ \x8b\xdb\x14\xcaum\xb1\x0fZ/\x14\x8d\xd7\x07\x84@E\x82\xb7\xc4\x18xQ\xdf\x95\ h\xd0\xc4D\x13\x8d\x97\xf8F\xf4\xc5\x07\x9ax\x8dF\x14\x85\x045DCk\xc5\xf8\ \xd0\xa6\xb5h\xcb"\xb2\xa5\x94\xb2\xdb\xbdtgv.\xe7\xf80\xdd\xd2\xeeE\x115\ \xc6/\xf9\xb3;g\xfe\xf9\xffo\xce\x7f9\xff\x90\x94\x12\xff%\xd8\x7f\xea\xfd\ \x7fK`\xdf\x1b\xbd\xa4o\xd8\xb1$\xb8vkGp\xed\xd6\x0e}\xc3\x8e%\xfb\xde\xe8\ \xa5+\xb1E\x97\x9b\x03K:w\x86\xf2\x85\xe2\x03R\xcam,\x1c\xbf\x9b\xc2\xb1\xb0\ \x1aj\x02\x00\xd8\xb3i\xc8\xc2dA\x14R_\x12\xd1g\r\xe1\xe0\xfb\x17\x07?\x9a\ \xfdG\x08\xac\xec~D\x9d\x98\x9c~\x0cZ\xd3\xb3\xe1k\xb6/\xbb\xf6\xfaMX\xb5"\ \x0eF\x80\xedz:\xaa\x02\x08\t\x9c\xfau\x02C?\x1eGa\xe4\xe0y\x98\xe9\x17\xaf\ \x8e]\xf5\xd6\xe9\xbe^\xfb\x8a\t\x84\xd7o[Vr\xe4\x87\xbe\xf6\x87n\xed\xbam;\ \xd6\xc5C\xb8\x90g\x08\xf9\x81\xe5\x11 \xec\x07\x88\x80\xbc\tLd\x81\x9c\t,\ \x8f\n\xfc\x99(\x1a\xf6\ \x9b\xb5|U\x11\xf0\xaf\xbeg\x93\x12\xef\xbe?\xb2\xf2\x064GT(\x04\xf88P\xb4/I\ \xc9\xa964}.\xb9H\x871 \xaa\x01\xcd\x11\x15\xd1\xd6\xeb\xa0\xc4\xbb\xef\xf7\ \xaf\xbegS\xe5s\xbcrAHz.\xd0\xb9\x07\xed1\xc2o3\x84\x15:`V\xe4\xf1O\x93\xc0\ \xa3/}\x05\xcb\xcc\xcf\xafY\xfe\x0e\xa8\x15zM!`h\x02h\x8f\x11\x06:\xf7\xc0\ \x98\xe8\x7f\x0e\xc0\xe6\xba\x04\x1a\x12=:kZ\x7f\xa7\x12\x89#\xa2y\xd9=cx\ \xf74\x15P\xe6\xf6\x8b\x11\x10]{\xd7"g\xa6\rL\x17\xbc\x10H\t\x845 \xe4\xf3\ \xfeGB*\x94H\x1c\xaci\xfd\x9d\r\x89\x1e=?zp>\x17\x16\x11(Y\xd6f5\xbeQ\xd5\ \x03\xde6\xab\x1c\xc8[\x9e\x00\x80O\x01\x02\x1c\xe8j\x05\x9e\xdf\xb2\xf8m\ \x1f}\xfe#\x9c\xd5w\xce_gL\x80\x13 \t(\xb9\x04=\x00X\xf1\x8djiht3\x80w\xcbz\ \x159 ;\x99\xbe\x06\x01\x15p\x84\xe7p\xa1\x00\x80\xe1x1\xae\x84\x9d\xfd\xadJ\ \x9f1\xef\xd7\x11@@\x05\x98\xbe\x06\x80\xec\xac\x1b\x02)\xb1\x944\x1d\x9cy\ \xcc\xcaN+\xc1k\xd4\x0e\xa3\xfa\xfa4\xf7\x0ci:\xa4\xc4\xd2\xba\x04\xcap\x85\ \x17\xefz\r\xa7\x16\x01"\xaf%\xd7\x82\x94\x9e\xcd\x9a\xb6*\x8c\\\x90f\x06\ \xa6\xd3\x06\xc6\xea\x1b\xe45\xd6\xd9\\\xb9\xd6\x82\xed\x02\xa6\x03H3\x03"\\\ \xa8K\x00\xa0A\x91\x19\x83a_\x07\xd7\xf5\xb2\xb8&\x81:;P/\x04\xa6\x05\x186 2\ c\x00hp\x11\xf1\x85\x17~\x9f\xef\x88\x93\xea\xb7g- kV\'aY\xd4?\xc8\x81Z\x925\ \x81Y\x0bpR\xfd\xb6\xdf\xe7;R\x97@~\xf4`F\xa4O~-\xf2)Ld\x01[x\xa5X)J\x9d\x10\ \xd4\xd2\xb5\x85wR\x8a|\n"}\xf2\xeb\x85=\xa0\x8a\x80gH\xbe`\r\xbe\x8d\x19\ \x038\x93\xae\xb3\x035\x08P\x9d\x1d8\x93\xf6\x9a\x995\xf86\x18\xc9\x17\xaa\ \xfcU.\x94\xc6\x0f\x1fwS}\x1fX\xa9\x01\x8cM\x03\x93\xb9j\xa3\x7fT\x86\x0be2\ \x07\x8cM\x03Vj\x00n\xaa\xef\x83\xd2\xf8\xe1\xe3\x95\xcf\xd5\xcc\xdb`@}\xdc\ \x18x\xa5\x93\x82\xaf&\x06h\x15B>\xef\x04,\xe3l\x06x\xe2\xf5\xaf`\x19\x97\ \xce\x023\x98@t\xc1\xceL\xe6\x80\x81\xd3\xc0\xec\x85S(\r\xbc2\x1a\x0c\xa8\ \x8f\xd7\xf2\xf5\xa7\x03\x89\x7f\xe3\xd3-\x81X\'6\xb5\x01\xed\xcb\xeb\xf7\ \x862\xa4\x04F\xce\x01\xc7\x93\x8019\x88R\xff\xcb\x7f} )\xa3<\x92\xa9\xed\ \x0f\xdf\xea[w\x1f\x96\xe9\x1an\\\x01\xb45U\xf7\x02\xc7\x05\x92i\xe0\xfb_\ \x81\xf3\x19\x13\xd6\xcf\x1f\xc3\x1ey\xe7\xcaG\xb22\x16\x0e\xa5|\xed\xbd\xcb\ xK7\xfc\xd18\x9a\xc3\x97&\xa4B\t\x98*\x00\xa5l\n\xce\xd9>8\xbf|\xf2\xf7\x86\ \xd2\xfd\xfb\xf7\xd3\x89\x13\'h||\x9ce\xb3Y2\x0c\x83\xce\x97\x1a\x1b\x0c4<(@\ [XC\xfc6\n\xc5B\xa4yc\xb94\xd3\x90\xb3\x93\xb3"\x9f\xfa\x86A~\xae!\xf7^\xb3\ \x9a)h\x9a&\x1a\x1b\x1beKK\x8bH$\x12r\xd7\xae]\xb2\xa3\xa3\xa3\x9a\xc0\xde\ \xbd{\xd9\xd1\xa3G\x95\xa9\xa9)n\x18\x86\xea8\x0ew]W\x15Bp)%\x97Rr\x00\\J\ \xa9H)9\x88\x14\xa8\x91&\xc9C\xcd\x00@\xce\xec\x14\xec\\\x06R\xba\x00\\\xc6\ \x98\x0b\xc0!"\x9b\x88\x1c"r\x14E\xb19\xe7\x8e\xa6i\xb6\xae\xebNWW\x97s\xe0\ \xc0\x01\xc1\x87\x87\x871< print "Event handler `on_button_report' not implemented!" event.Skip() def on_button_log(self, event): # wxGlade: StatusDialog. print "Event handler `on_button_log' not implemented!" event.Skip() # end of class StatusDialog class FolderFileBrowser(ffb.PreviewMixin, ffb.Panel): def GetTreeLabel(self, label, parent_label): return label[:-1].replace(parent_label,'')\ .replace(USER_FOLDER,'~') class ImageTreeDialog(wx.Dialog): def __init__(self, data, Data, headers, *args, **kwds): # begin wxGlade: ImageTreeDialog.__init__ kwds["style"] = wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER|wx.MAXIMIZE_BOX|wx.THICK_FRAME wx.Dialog.__init__(self, *args, **kwds) self.panel = wx.Panel(self, -1) self.browser = FolderFileBrowser(self.panel, -1, data, Data, headers) self.hint = wx.StaticText(self.panel, -1, _("Double click to open or right click for more options.")) self.cancel = wx.Button(self.panel, wx.ID_CANCEL, "") self.ok = wx.Button(self.panel, wx.ID_OK, "") self.__set_properties() self.__do_layout() # end wxGlade def __set_properties(self): # begin wxGlade: ImageTreeDialog.__set_properties self.SetTitle(_("Explorer")) self.browser.SetFocus() self.hint.Enable(False) self.ok.SetDefault() # end wxGlade def __do_layout(self): # begin wxGlade: ImageTreeDialog.__do_layout sizer_14 = wx.BoxSizer(wx.VERTICAL) sizer_15 = wx.BoxSizer(wx.VERTICAL) sizer_16 = wx.BoxSizer(wx.HORIZONTAL) sizer_15.Add(self.browser, 1, wx.EXPAND, 0) sizer_16.Add(self.hint, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 6) sizer_16.Add(self.cancel, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 6) sizer_16.Add(self.ok, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 6) sizer_15.Add(sizer_16, 0, wx.EXPAND|wx.ALIGN_RIGHT, 0) self.panel.SetSizer(sizer_15) sizer_14.Add(self.panel, 1, wx.EXPAND, 0) self.SetSizer(sizer_14) sizer_14.Fit(self) self.Layout() # end wxGlade # end of class ImageTreeDialog class WritePluginDialog(wx.Dialog): def __init__(self, *args, **kwds): # begin wxGlade: WritePluginDialog.__init__ kwds["style"] = wx.DEFAULT_DIALOG_STYLE wx.Dialog.__init__(self, *args, **kwds) self.icon = wx.StaticBitmap(self, -1, wx.NullBitmap) self.message = wx.StaticText(self, -1, _("You only need to know PIL to write a plugin for Phatch,")) self.template = wx.CheckBox(self, -1, _("&Show template for action plugin")) self.path = wx.StaticText(self, -1, _("Path")) self.code = wx.TextCtrl(self, -1, _("Code"), style=wx.TE_MULTILINE|wx.TE_READONLY) self.help = wx.Button(self, -1, _("&Ask for Help")) self.ok_copy_1 = wx.Button(self, wx.ID_OK, _("&OK")) self.__set_properties() self.__do_layout() self.Bind(wx.EVT_CHECKBOX, self.on_template, self.template) self.Bind(wx.EVT_BUTTON, self.on_help, self.help) # end wxGlade def __set_properties(self): # begin wxGlade: WritePluginDialog.__set_properties self.SetTitle(_("Write Action Plugin")) self.icon.SetMinSize((32, 32)) self.code.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_INFOBK)) # end wxGlade def __do_layout(self): # begin wxGlade: WritePluginDialog.__do_layout sizer_7 = wx.BoxSizer(wx.VERTICAL) sizer_9 = wx.BoxSizer(wx.HORIZONTAL) sizer_11 = wx.BoxSizer(wx.VERTICAL) sizer_10 = wx.BoxSizer(wx.HORIZONTAL) sizer_9.Add(self.icon, 0, wx.ALL, 6) sizer_11.Add(self.message, 0, wx.ALL, 6) sizer_11.Add(self.template, 0, wx.ALL, 6) sizer_11.Add(self.path, 0, wx.ALL, 6) sizer_11.Add(self.code, 1, wx.ALL|wx.EXPAND, 6) sizer_10.Add(self.help, 0, wx.ALL|wx.EXPAND, 6) sizer_10.Add(self.ok_copy_1, 0, wx.ALL|wx.EXPAND, 6) sizer_11.Add(sizer_10, 0, wx.ALIGN_RIGHT, 0) sizer_9.Add(sizer_11, 1, wx.EXPAND, 0) sizer_7.Add(sizer_9, 0, wx.EXPAND, 0) self.SetSizer(sizer_7) sizer_7.Fit(self) self.Layout() # end wxGlade def on_help(self, event): # wxGlade: WritePluginDialog. print "Event handler `on_help' not implemented!" event.Skip() def on_template(self, event): # wxGlade: WritePluginDialog. print "Event handler `on_template' not implemented" event.Skip() # end of class WritePluginDialog class ErrorDialog(wx.Dialog): def __init__(self, *args, **kwds): # begin wxGlade: ErrorDialog.__init__ kwds["style"] = wx.DEFAULT_DIALOG_STYLE wx.Dialog.__init__(self, *args, **kwds) self.icon = wx.StaticBitmap(self, -1, wx.NullBitmap) self.message = wx.StaticText(self, -1, "") self.future_errors = wx.CheckBox(self, -1, _("Apply for future errors ")) self.abort = wx.Button(self, wx.ID_ABORT, _("&Abort")) self.ignore = wx.Button(self, wx.ID_IGNORE, _("&Skip to Next Action")) self.skip = wx.Button(self, wx.ID_FORWARD, _("Skip To Next &Image")) self.__set_properties() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.on_abort, id=wx.ID_ABORT) self.Bind(wx.EVT_BUTTON, self.on_ignore, id=wx.ID_IGNORE) self.Bind(wx.EVT_BUTTON, self.on_skip, id=wx.ID_FORWARD) # end wxGlade def __set_properties(self): # begin wxGlade: ErrorDialog.__set_properties self.icon.SetMinSize((32, 32)) self.ignore.SetDefault() # end wxGlade def __do_layout(self): # begin wxGlade: ErrorDialog.__do_layout sizer = wx.BoxSizer(wx.VERTICAL) sizer_4 = wx.BoxSizer(wx.HORIZONTAL) sizer_5 = wx.BoxSizer(wx.HORIZONTAL) sizer_2 = wx.BoxSizer(wx.VERTICAL) sizer_5.Add(self.icon, 0, wx.ALL, 6) sizer_2.Add(self.message, 0, wx.ALL, 6) sizer_5.Add(sizer_2, 1, wx.EXPAND, 0) sizer.Add(sizer_5, 0, wx.EXPAND, 0) sizer_4.Add(self.future_errors, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 6) sizer_4.Add(self.abort, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 6) sizer_4.Add(self.ignore, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 6) sizer_4.Add(self.skip, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 6) sizer.Add(sizer_4, 0, wx.EXPAND, 0) self.SetSizer(sizer) sizer.Fit(self) self.Layout() # end wxGlade def on_abort(self, event): # wxGlade: ErrorDialog. print "Event handler `on_abort' not implemented!" event.Skip() def on_skip(self, event): # wxGlade: ErrorDialog. print "Event handler `on_skip' not implemented!" event.Skip() def on_ignore(self, event): # wxGlade: ErrorDialog. print "Event handler `on_ignore' not implemented!" event.Skip() def on_details(self, event): # wxGlade: ErrorDialog. print "Event handler `on_details' not implemented" event.Skip() # end of class ErrorDialog class FilesDialog(wx.Dialog): def __init__(self, *args, **kwds): # begin wxGlade: FilesDialog.__init__ kwds["style"] = wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER|wx.MAXIMIZE_BOX|wx.THICK_FRAME wx.Dialog.__init__(self, *args, **kwds) self.icon = wx.StaticBitmap(self, -1, wx.NullBitmap) self.message = wx.StaticText(self, -1, _("Message")) self.list = wx.ListCtrl(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER) self.cancel = wx.Button(self, wx.ID_CANCEL, _("&Abort")) self.ok = wx.Button(self, wx.ID_OK, _("&Continue Anyway")) self.__set_properties() self.__do_layout() # end wxGlade def __set_properties(self): # begin wxGlade: FilesDialog.__set_properties self.icon.SetMinSize((32, 32)) self.ok.SetDefault() # end wxGlade def __do_layout(self): # begin wxGlade: FilesDialog.__do_layout sizer_1 = wx.BoxSizer(wx.HORIZONTAL) sizer_12 = wx.BoxSizer(wx.VERTICAL) sizer_13 = wx.BoxSizer(wx.HORIZONTAL) sizer_1.Add(self.icon, 0, wx.ALL, 6) sizer_12.Add(self.message, 0, wx.ALL, 6) sizer_12.Add(self.list, 1, wx.ALL|wx.EXPAND, 6) sizer_13.Add(self.cancel, 0, wx.ALL|wx.EXPAND, 6) sizer_13.Add(self.ok, 0, wx.ALL|wx.EXPAND, 6) sizer_12.Add(sizer_13, 0, wx.ALIGN_RIGHT, 0) sizer_1.Add(sizer_12, 1, wx.EXPAND, 0) self.SetSizer(sizer_1) sizer_1.Fit(self) self.Layout() # end wxGlade # end of class FilesDialog class ExecuteDialog(wx.Dialog): def __init__(self, *args, **kwds): # begin wxGlade: ExecuteDialog.__init__ kwds["style"] = wx.DEFAULT_DIALOG_STYLE wx.Dialog.__init__(self, *args, **kwds) self.sizer_11_copy_4_staticbox = wx.StaticBox(self, -1, _("Options")) self.sizer_8_staticbox = wx.StaticBox(self, -1, _("Types")) self.browse = wx.Button(self, -1, _("Browse Folder")) self.path = wx.TextCtrl(self, -1, "", style=wx.TE_RICH2) self.extensions = wx.CheckListBox(self, -1) self.source = wx.RadioBox(self, -1, _("Source"), choices=[_("Folder"), _("File(s)"), _("Clipboard")], majorDimension=0, style=wx.RA_SPECIFY_COLS) self.stop_for_errors = wx.CheckBox(self, -1, _("Stop for errors")) self.check_images_first = wx.CheckBox(self, -1, _("Check images first")) self.overwrite_existing_images = wx.CheckBox(self, -1, _("Overwrite existing images")) self.recursive = wx.CheckBox(self, -1, _("Include all subfolders")) self.always_show_status_dialog = wx.CheckBox(self, -1, _("Always show status dialog when done")) self.desktop = wx.CheckBox(self, -1, _("Always save on desktop")) self.repeat_label = wx.StaticText(self, -1, _("Repeat images")) self.repeat = wx.SpinCtrl(self, -1, "1", min=1, max=9999999) self.select = wx.Button(self, wx.ID_DEFAULT, _("&All Types")) self.button_1 = wx.Button(self, wx.ID_CANCEL, _("&Cancel")) self.ok_copy = wx.Button(self, wx.ID_OK, _("&Batch")) self.__set_properties() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.on_browse, self.browse) self.Bind(wx.EVT_RADIOBOX, self.on_source, self.source) self.Bind(wx.EVT_BUTTON, self.on_default, id=wx.ID_DEFAULT) # end wxGlade def __set_properties(self): # begin wxGlade: ExecuteDialog.__set_properties self.source.SetSelection(0) self.stop_for_errors.SetValue(1) self.check_images_first.SetValue(1) self.always_show_status_dialog.SetValue(1) self.ok_copy.SetDefault() # end wxGlade def __do_layout(self): # begin wxGlade: ExecuteDialog.__do_layout grid_sizer = wx.FlexGridSizer(5, 2, 4, 4) sizer_10_copy = wx.BoxSizer(wx.VERTICAL) sizer_3 = wx.BoxSizer(wx.HORIZONTAL) sizer_6 = wx.BoxSizer(wx.VERTICAL) sizer_11_copy_4 = wx.StaticBoxSizer(self.sizer_11_copy_4_staticbox, wx.VERTICAL) grid_sizer_1 = wx.FlexGridSizer(1, 2, 6, 6) sizer_8 = wx.StaticBoxSizer(self.sizer_8_staticbox, wx.VERTICAL) grid_sizer.Add(self.browse, 0, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 6) grid_sizer.Add(self.path, 1, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 6) sizer_8.Add(self.extensions, 1, wx.ALL|wx.EXPAND, 6) grid_sizer.Add(sizer_8, 1, wx.ALL|wx.EXPAND, 6) sizer_10_copy.Add(self.source, 0, wx.ALL|wx.EXPAND, 6) sizer_11_copy_4.Add(self.stop_for_errors, 0, wx.ALIGN_CENTER_VERTICAL, 6) sizer_11_copy_4.Add(self.check_images_first, 0, 0, 6) sizer_11_copy_4.Add(self.overwrite_existing_images, 0, 0, 6) sizer_11_copy_4.Add(self.recursive, 0, wx.ALIGN_CENTER_VERTICAL, 6) sizer_11_copy_4.Add(self.always_show_status_dialog, 0, 0, 0) sizer_11_copy_4.Add(self.desktop, 0, 0, 0) grid_sizer_1.Add(self.repeat_label, 0, wx.ALIGN_CENTER_VERTICAL, 0) grid_sizer_1.Add(self.repeat, 0, wx.ALIGN_CENTER_VERTICAL, 0) sizer_11_copy_4.Add(grid_sizer_1, 1, 0, 0) sizer_10_copy.Add(sizer_11_copy_4, 0, wx.ALL|wx.EXPAND, 6) sizer_10_copy.Add((20, 20), 1, wx.EXPAND, 0) sizer_10_copy.Add(sizer_6, 0, wx.EXPAND, 0) sizer_3.Add(self.select, 0, wx.ALL|wx.EXPAND, 6) sizer_3.Add((148, 10), 1, wx.EXPAND, 0) sizer_3.Add(self.button_1, 0, wx.ALL|wx.ALIGN_BOTTOM, 6) sizer_3.Add(self.ok_copy, 0, wx.ALL|wx.ALIGN_BOTTOM, 6) sizer_10_copy.Add(sizer_3, 0, wx.EXPAND, 0) grid_sizer.Add(sizer_10_copy, 1, wx.EXPAND, 0) self.SetSizer(grid_sizer) grid_sizer.Fit(self) grid_sizer.AddGrowableRow(1) grid_sizer.AddGrowableCol(1) self.Layout() # end wxGlade self.options_sizer = sizer_11_copy_4 def on_browse(self, event): # wxGlade: ExecuteDialog. print "Event handler `on_browse' not implemented!" event.Skip() def on_source(self, event): # wxGlade: ExecuteDialog. print "Event handler `on_source' not implemented!" event.Skip() def on_default(self, event): # wxGlade: ExecuteDialog. print "Event handler `on_default' not implemented!" event.Skip() # end of class ExecuteDialog if __name__ == "__main__": import gettext gettext.install("app") # replace with the appropriate catalog name app = wx.PySimpleApp(0) wx.InitAllImageHandlers() aboutDialog = StatusDialog(None, -1, "") app.SetTopWindow(aboutDialog) aboutDialog.Show() app.MainLoop() phatch-0.2.7/phatch/pyWx/wxGlade/dialogs.wxg0000644000000000000000000010066711346363116020725 0ustar rootroot00000000000000 4 1 5 1 2 4 wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 6 on_browse wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL 6 wxALL|wxEXPAND 6 wxVERTICAL wxALL|wxEXPAND 6 $parent $id wxEXPAND 0 wxVERTICAL wxALL|wxEXPAND 6 0 0 Folder File(s) Clipboard on_source wxALL|wxEXPAND 6 wxVERTICAL wxALIGN_CENTER_VERTICAL 6 1 6 1 6 wxALIGN_CENTER_VERTICAL 6 0 1 0 0 6 1 2 6 wxALIGN_CENTER_VERTICAL 0 1 wxALIGN_CENTER_VERTICAL 0 1, 9999999 1 wxEXPAND 0 20 20 wxEXPAND 0 wxVERTICAL wxEXPAND 0 wxHORIZONTAL wxALL|wxEXPAND 6 wx.ID_DEFAULT on_default wxEXPAND 0 10 148 wxALL|wxALIGN_BOTTOM 6 wx.ID_CANCEL wxALL|wxALIGN_BOTTOM 6 1 wx.ID_OK wxVERTICAL wxEXPAND 0 wxHORIZONTAL wxALL 6 1 32, 32 wxEXPAND 0 wxVERTICAL wxALL 6 1 wxEXPAND 0 wxHORIZONTAL wxALL|wxALIGN_CENTER_VERTICAL 6 wxALL|wxALIGN_CENTER_VERTICAL 6 wx.ID_ABORT on_abort wxALL|wxALIGN_CENTER_VERTICAL 6 1 wx.ID_IGNORE on_ignore wxALL|wxALIGN_CENTER_VERTICAL 6 wx.ID_FORWARD on_skip wxHORIZONTAL wxALL 6 1 32, 32 wxEXPAND 0 wxVERTICAL wxALL 6 1 wxALL|wxEXPAND 6 wxALIGN_RIGHT 0 wxHORIZONTAL wxALL|wxEXPAND 6 wx.ID_CANCEL wxALL|wxEXPAND 6 1 wx.ID_OK Write Action Plugin wxVERTICAL wxEXPAND 0 wxHORIZONTAL wxALL 6 1 32, 32 wxEXPAND 0 wxVERTICAL wxALL 6 1 wxALL 6 on_template wxALL 6 1 wxALL|wxEXPAND 6 Code wxSYS_COLOUR_INFOBK wxALIGN_RIGHT 0 wxHORIZONTAL wxALL|wxEXPAND 6 on_help wxALL|wxEXPAND 6 wx.ID_OK Explorer wxVERTICAL wxEXPAND 0 wxVERTICAL wxEXPAND 0 1 $parent $id data Data headers wxEXPAND|wxALIGN_RIGHT 0 wxHORIZONTAL wxALL|wxALIGN_CENTER_VERTICAL 6 1 1 wxALL|wxALIGN_CENTER_VERTICAL 6 CANCEL wxALL|wxALIGN_CENTER_VERTICAL 6 OK 1 Ready! wxHORIZONTAL wxEXPAND 0 wxVERTICAL wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 6 1 wxALIGN_RIGHT 0 wxHORIZONTAL wxALL|wxALIGN_CENTER_VERTICAL 6 on_button_log wxALL|wxALIGN_CENTER_VERTICAL 6 on_button_report wxALL|wxALIGN_CENTER_VERTICAL 6 OK phatch-0.2.7/phatch/pyWx/wxGlade/frame.py0000755000000000000000000005477111346363116020227 0ustar rootroot00000000000000# -*- coding: utf-8 -*- import wx from lib.pyWx.treeEdit import TreeMixin class Tree(TreeMixin,wx.TreeCtrl): def __init__(self,parent,*args,**keyw): from core.api import ACTIONS from core.translation import to_local, to_english class I18n_CtrlMixin: """Fake example of a Mixin""" _to_local = to_local _to_english = to_english _to_local = staticmethod(_to_local) _to_english = staticmethod(_to_english) wx.TreeCtrl.__init__(self,parent,*args,**keyw) TreeMixin.__init__(self, form_factory= ACTIONS, CtrlMixin = I18n_CtrlMixin, icon_size = (28,28), show_error = parent.show_error, set_dirty = parent.set_dirty, ) def OnCompareItems(self,item1,item2): """Unclear why this is necessary, because of mixin?""" return TreeMixin.OnCompareItems(self,item1,item2) class Frame(wx.Frame): def __init__(self, *args, **kwds): # begin wxGlade: Frame.__init__ kwds["style"] = wx.DEFAULT_FRAME_STYLE wx.Frame.__init__(self, *args, **kwds) # Menu Bar self.frame_menubar = wx.MenuBar() self.menu_file = wx.Menu() self.menu_file_new = wx.MenuItem(self.menu_file, wx.ID_NEW, _("&New\tCtrl-N"), _("Start a new action list"), wx.ITEM_NORMAL) self.menu_file.AppendItem(self.menu_file_new) self.menu_file_open = wx.MenuItem(self.menu_file, wx.ID_OPEN, _("&Open...\tCtrl-O"), _("Opens an actions list"), wx.ITEM_NORMAL) self.menu_file.AppendItem(self.menu_file_open) self.menu_file_open_library = wx.MenuItem(self.menu_file, wx.ID_PREVIEW_GOTO, _("Open &Library...\tCtrl-Shift-O"), _("Opens a ready-made actionlist from the library"), wx.ITEM_NORMAL) self.menu_file.AppendItem(self.menu_file_open_library) self.menu_file_save = wx.MenuItem(self.menu_file, wx.ID_SAVE, _("&Save\tCtrl-S"), _("Saves an action list"), wx.ITEM_NORMAL) self.menu_file.AppendItem(self.menu_file_save) self.menu_file_save_as = wx.MenuItem(self.menu_file, wx.ID_SAVEAS, _("Save &As...\tCtrl-Shift-S"), _("Saves an action list as"), wx.ITEM_NORMAL) self.menu_file.AppendItem(self.menu_file_save_as) self.menu_file.AppendSeparator() menu_file_export = wx.Menu() self.menu_file_export_actionlist_to_clipboard = wx.MenuItem(menu_file_export, wx.NewId(), _("Copy Actionlist as &Command to Clipboard"), _("Paste this command in a launcher"), wx.ITEM_NORMAL) menu_file_export.AppendItem(self.menu_file_export_actionlist_to_clipboard) self.menu_file_export_recent_to_clipboard = wx.MenuItem(menu_file_export, wx.NewId(), _("Copy R&ecent as Command to Clipboard"), _("Paste this command in a launcher"), wx.ITEM_NORMAL) menu_file_export.AppendItem(self.menu_file_export_recent_to_clipboard) self.menu_file_export_inspector_to_clipboard = wx.MenuItem(menu_file_export, wx.NewId(), _("Copy Image I&nspector as Command to Clipboard"), _("Paste this command in a launcher"), wx.ITEM_NORMAL) menu_file_export.AppendItem(self.menu_file_export_inspector_to_clipboard) self.menu_file.AppendMenu(wx.ID_FORWARD, _("&Export"), menu_file_export, "") self.menu_file_quit = wx.MenuItem(self.menu_file, wx.ID_EXIT, _("&Quit\tCtrl-Q"), _("Quit the application."), wx.ITEM_NORMAL) self.menu_file.AppendItem(self.menu_file_quit) self.frame_menubar.Append(self.menu_file, _("&Action List")) self.menu_edit = wx.Menu() self.menu_edit_add = wx.MenuItem(self.menu_edit, wx.ID_ADD, _("&Add...\tCtrl-+"), _("Add an action"), wx.ITEM_NORMAL) self.menu_edit.AppendItem(self.menu_edit_add) self.menu_edit_remove = wx.MenuItem(self.menu_edit, wx.ID_REMOVE, _("&Remove\tCtrl--"), _("Remove the selected action."), wx.ITEM_NORMAL) self.menu_edit.AppendItem(self.menu_edit_remove) self.menu_edit.AppendSeparator() self.menu_edit_enable = wx.MenuItem(self.menu_edit, wx.ID_APPLY, _("&Enable\tCtrl-1"), _("Enable action"), wx.ITEM_NORMAL) self.menu_edit.AppendItem(self.menu_edit_enable) self.menu_edit_disable = wx.MenuItem(self.menu_edit, wx.ID_CANCEL, _("&Disable\tCtrl-0"), _("Disable action"), wx.ITEM_NORMAL) self.menu_edit.AppendItem(self.menu_edit_disable) self.menu_edit.AppendSeparator() self.menu_edit_up = wx.MenuItem(self.menu_edit, wx.ID_UP, _("&Up\tCtrl-Up"), _("Move the selected action up"), wx.ITEM_NORMAL) self.menu_edit.AppendItem(self.menu_edit_up) self.menu_edit_down = wx.MenuItem(self.menu_edit, wx.ID_DOWN, _("&Down\tCtrl-Down"), _("Move the selected action down"), wx.ITEM_NORMAL) self.menu_edit.AppendItem(self.menu_edit_down) self.frame_menubar.Append(self.menu_edit, _("&Edit")) self.menu_view = wx.Menu() self.menu_view_droplet = wx.MenuItem(self.menu_view, wx.ID_HELP_PROCEDURES, _("&Droplet\tCtrl-D"), _("View as a droplet to drag and drop files"), wx.ITEM_CHECK) self.menu_view.AppendItem(self.menu_view_droplet) self.menu_view_description = wx.MenuItem(self.menu_view, wx.ID_PREVIEW, _("&Show Description\tCtrl-H"), _("Tools to handle the current action list"), wx.ITEM_CHECK) self.menu_view.AppendItem(self.menu_view_description) self.menu_view.AppendSeparator() self.menu_view_expand_all = wx.MenuItem(self.menu_view, wx.ID_INDENT, _("&Expand All\tCtrl-E"), _("Show all the parameters of the actions."), wx.ITEM_NORMAL) self.menu_view.AppendItem(self.menu_view_expand_all) self.menu_view_collapse_all = wx.MenuItem(self.menu_view, wx.ID_JUSTIFY_FILL, _("&Collapse All\tCtrl-Shift-E"), _("Show only the labels of the actions."), wx.ITEM_NORMAL) self.menu_view.AppendItem(self.menu_view_collapse_all) self.menu_view_collapse_automatic = wx.MenuItem(self.menu_view, wx.ID_NOTOALL, _("&Collapse Automatically"), _("Expanding one action collapses the others."), wx.ITEM_CHECK) self.menu_view.AppendItem(self.menu_view_collapse_automatic) self.frame_menubar.Append(self.menu_view, _("&View")) self.menu_tools = wx.Menu() self.menu_tools_execute = wx.MenuItem(self.menu_tools, wx.ID_OK, _("&Execute...\tCtrl-Return"), _("Execute the action list"), wx.ITEM_NORMAL) self.menu_tools.AppendItem(self.menu_tools_execute) self.menu_tools_safe = wx.MenuItem(self.menu_tools, wx.ID_YESTOALL, _("&Safe Mode (recommended)"), _("Allow Geek action and unsafe expressions"), wx.ITEM_CHECK) self.menu_tools.AppendItem(self.menu_tools_safe) self.menu_tools.AppendSeparator() self.menu_tools_image_inspector = wx.MenuItem(self.menu_tools, wx.ID_FIND, _("&Image Inspector (exif)\tCtrl-I"), _("Look up exif and iptc tags"), wx.ITEM_NORMAL) self.menu_tools.AppendItem(self.menu_tools_image_inspector) menu_tools_browse_library = wx.Menu() self.menu_tools_browse_library_user = wx.MenuItem(menu_tools_browse_library, wx.NewId(), _("&User"), _("Browse action lists, masks, highlights and fonts"), wx.ITEM_NORMAL) menu_tools_browse_library.AppendItem(self.menu_tools_browse_library_user) self.menu_tools_browse_library_phatch = wx.MenuItem(menu_tools_browse_library, wx.NewId(), _("&Phatch"), _("Browse action lists, masks, highlights and fonts"), wx.ITEM_NORMAL) menu_tools_browse_library.AppendItem(self.menu_tools_browse_library_phatch) self.menu_tools.AppendMenu(wx.ID_MORE, _("&Browse Library"), menu_tools_browse_library, "") self.menu_tools.AppendSeparator() self.menu_tools_show_report = wx.MenuItem(self.menu_tools, wx.ID_PROPERTIES, _("Show &Report...\tCtrl+R"), _("Show report of processed images"), wx.ITEM_NORMAL) self.menu_tools.AppendItem(self.menu_tools_show_report) self.menu_tools_show_log = wx.MenuItem(self.menu_tools, wx.ID_ZOOM_IN, _("Show &Log...\tCtrl-L"), _("Show log file"), wx.ITEM_NORMAL) self.menu_tools.AppendItem(self.menu_tools_show_log) self.menu_tools.AppendSeparator() menu_tools_update = wx.Menu() self.menu_tools_update_fonts = wx.MenuItem(menu_tools_update, wx.NewId(), _("&Fonts"), _("Scan for new fonts on your system"), wx.ITEM_NORMAL) menu_tools_update.AppendItem(self.menu_tools_update_fonts) self.menu_tools.AppendMenu(wx.NewId(), _("&Update"), menu_tools_update, "") self.frame_menubar.Append(self.menu_tools, _("&Tools")) self.menu_help = wx.Menu() self.menu_help_website = wx.MenuItem(self.menu_help, wx.ID_HOME, _("&Website...\tCtrl-W"), _("Go to the Phatch homepage."), wx.ITEM_NORMAL) self.menu_help.AppendItem(self.menu_help_website) self.menu_help_documentation = wx.MenuItem(self.menu_help, wx.ID_HELP, _("&Documentation...\tCtrl-M"), _("Go to the Phatch documentation."), wx.ITEM_NORMAL) self.menu_help.AppendItem(self.menu_help_documentation) self.menu_help_forum = wx.MenuItem(self.menu_help, wx.ID_SELECTALL, _("&Forum...\tCtrl-F"), _("Go to the Phatch forum"), wx.ITEM_NORMAL) self.menu_help.AppendItem(self.menu_help_forum) self.menu_help.AppendSeparator() self.menu_help_translate = wx.MenuItem(self.menu_help, wx.ID_ITALIC, _("&Translate Phatch...\tCtrl-T"), _("Translate Phatch in your native language."), wx.ITEM_NORMAL) self.menu_help.AppendItem(self.menu_help_translate) self.menu_help_bug = wx.MenuItem(self.menu_help, wx.ID_NO, _("&Report a Bug...\tCtrl-B"), _("Report a bug on launchpad."), wx.ITEM_NORMAL) self.menu_help.AppendItem(self.menu_help_bug) self.menu_help_plugin = wx.MenuItem(self.menu_help, wx.ID_INDEX, _("De&veloper Documentation...\tCtrl-P"), _("Learn to develop Phatch with Python and PIL."), wx.ITEM_NORMAL) self.menu_help.AppendItem(self.menu_help_plugin) self.menu_help.AppendSeparator() self.menu_help_about = wx.MenuItem(self.menu_help, wx.ID_ABOUT, _("&About Phatch...\tCtrl-Shift-A"), _("Displays information about this application."), wx.ITEM_NORMAL) self.menu_help.AppendItem(self.menu_help_about) self.frame_menubar.Append(self.menu_help, _("&Help")) self.SetMenuBar(self.frame_menubar) # Menu Bar end self.frame_statusbar = self.CreateStatusBar(1, 0) self.description = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE) self.tree = Tree(self, -1, style=wx.TR_HAS_BUTTONS|wx.TR_NO_LINES|wx.TR_FULL_ROW_HIGHLIGHT|wx.TR_HIDE_ROOT|wx.TR_DEFAULT_STYLE|wx.SUNKEN_BORDER) self.empty = wx.Panel(self, -1) self.__set_properties() self.__do_layout() self.Bind(wx.EVT_MENU, self.on_menu_file_new, self.menu_file_new) self.Bind(wx.EVT_MENU, self.on_menu_file_open, self.menu_file_open) self.Bind(wx.EVT_MENU, self.on_menu_file_open_library, self.menu_file_open_library) self.Bind(wx.EVT_MENU, self.on_menu_file_save, self.menu_file_save) self.Bind(wx.EVT_MENU, self.on_menu_file_save_as, self.menu_file_save_as) self.Bind(wx.EVT_MENU, self.on_menu_file_export_actionlist_to_clipboard, self.menu_file_export_actionlist_to_clipboard) self.Bind(wx.EVT_MENU, self.on_menu_file_export_recent_to_clipboard, self.menu_file_export_recent_to_clipboard) self.Bind(wx.EVT_MENU, self.on_menu_file_export_inspector_to_clipboard, self.menu_file_export_inspector_to_clipboard) self.Bind(wx.EVT_MENU, self.on_menu_file_quit, self.menu_file_quit) self.Bind(wx.EVT_MENU, self.on_menu_edit_add, self.menu_edit_add) self.Bind(wx.EVT_MENU, self.on_menu_edit_remove, self.menu_edit_remove) self.Bind(wx.EVT_MENU, self.on_menu_edit_enable, self.menu_edit_enable) self.Bind(wx.EVT_MENU, self.on_menu_edit_disable, self.menu_edit_disable) self.Bind(wx.EVT_MENU, self.on_menu_edit_up, self.menu_edit_up) self.Bind(wx.EVT_MENU, self.on_menu_edit_down, self.menu_edit_down) self.Bind(wx.EVT_MENU, self.on_menu_view_droplet, self.menu_view_droplet) self.Bind(wx.EVT_MENU, self.on_menu_view_description, self.menu_view_description) self.Bind(wx.EVT_MENU, self.on_menu_view_expand_all, self.menu_view_expand_all) self.Bind(wx.EVT_MENU, self.on_menu_view_collapse_all, self.menu_view_collapse_all) self.Bind(wx.EVT_MENU, self.on_menu_view_collapse_automatic, self.menu_view_collapse_automatic) self.Bind(wx.EVT_MENU, self.on_menu_tools_execute, self.menu_tools_execute) self.Bind(wx.EVT_MENU, self.on_menu_tools_safe, self.menu_tools_safe) self.Bind(wx.EVT_MENU, self.on_menu_tools_image_inspector, self.menu_tools_image_inspector) self.Bind(wx.EVT_MENU, self.on_menu_tools_browse_library_user, self.menu_tools_browse_library_user) self.Bind(wx.EVT_MENU, self.on_menu_tools_browse_library_phatch, self.menu_tools_browse_library_phatch) self.Bind(wx.EVT_MENU, self.on_menu_tools_show_report, self.menu_tools_show_report) self.Bind(wx.EVT_MENU, self.on_menu_tools_show_log, self.menu_tools_show_log) self.Bind(wx.EVT_MENU, self.on_menu_tools_update_fonts, self.menu_tools_update_fonts) self.Bind(wx.EVT_MENU, self.on_menu_help_website, self.menu_help_website) self.Bind(wx.EVT_MENU, self.on_menu_help_documentation, self.menu_help_documentation) self.Bind(wx.EVT_MENU, self.on_menu_help_forum, self.menu_help_forum) self.Bind(wx.EVT_MENU, self.on_menu_help_translate, self.menu_help_translate) self.Bind(wx.EVT_MENU, self.on_menu_help_bug, self.menu_help_bug) self.Bind(wx.EVT_MENU, self.on_menu_help_plugin, self.menu_help_plugin) self.Bind(wx.EVT_MENU, self.on_menu_help_about, self.menu_help_about) # end wxGlade def __set_properties(self): # begin wxGlade: Frame.__set_properties self.frame_statusbar.SetStatusWidths([-1]) # statusbar fields frame_statusbar_fields = [""] for i in range(len(frame_statusbar_fields)): self.frame_statusbar.SetStatusText(frame_statusbar_fields[i], i) self.description.SetMinSize((300, 40)) self.description.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_INFOBK)) self.description.SetForegroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_INFOTEXT)) self.empty.SetBackgroundColour(wx.Colour(255, 255, 255)) # end wxGlade def __do_layout(self): # begin wxGlade: Frame.__do_layout sizer_1 = wx.BoxSizer(wx.VERTICAL) sizer_1.Add(self.description, 0, wx.EXPAND, 0) sizer_1.Add(self.tree, 1, wx.EXPAND, 0) sizer_1.Add(self.empty, 1, wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0) self.SetSizer(sizer_1) sizer_1.Fit(self) self.Layout() # end wxGlade def on_menu_file_new(self, event): # wxGlade: Frame. print "Event handler `on_menu_file_new' not implemented!" event.Skip() def on_menu_file_open(self, event): # wxGlade: Frame. print "Event handler `on_menu_file_open' not implemented!" event.Skip() def on_menu_file_save(self, event): # wxGlade: Frame. print "Event handler `on_menu_file_save' not implemented!" event.Skip() def on_menu_file_save_as(self, event): # wxGlade: Frame. print "Event handler `on_menu_file_save_as' not implemented!" event.Skip() def on_menu_file_export_droplet_actionlist_to_clipboard(self, event): # wxGlade: Frame. print "Event handler `on_menu_file_export_droplet_actionlist_to_clipboard' not implemented" event.Skip() def on_menu_file_export_droplet_recent_to_clipboard(self, event): # wxGlade: Frame. print "Event handler `on_menu_file_export_droplet_recent_to_clipboard' not implemented" event.Skip() def on_menu_file_export_droplet_inspector_to_clipboard(self, event): # wxGlade: Frame. print "Event handler `on_menu_file_export_droplet_inspector_to_clipboard' not implemented" event.Skip() def on_menu_file_quit(self, event): # wxGlade: Frame. print "Event handler `on_menu_file_quit' not implemented!" event.Skip() def on_menu_edit_modify(self, event): # wxGlade: Frame. print "Event handler `on_menu_edit_modify' not implemented!" event.Skip() def on_menu_edit_up(self, event): # wxGlade: Frame. print "Event handler `on_menu_edit_up' not implemented!" event.Skip() def on_menu_edit_down(self, event): # wxGlade: Frame. print "Event handler `on_menu_edit_down' not implemented!" event.Skip() def on_menu_edit_enable(self, event): # wxGlade: Frame. print "Event handler `on_menu_edit_enable' not implemented!" event.Skip() def on_menu_edit_disable(self, event): # wxGlade: Frame. print "Event handler `on_menu_edit_disable' not implemented!" event.Skip() def on_menu_edit_add(self, event): # wxGlade: Frame. print "Event handler `on_menu_edit_add' not implemented!" event.Skip() def on_menu_edit_remove(self, event): # wxGlade: Frame. print "Event handler `on_menu_edit_remove' not implemented!" event.Skip() def on_menu_view_droplet(self, event): # wxGlade: Frame. print "Event handler `on_menu_view_droplet' not implemented!" event.Skip() def on_menu_view_description(self, event): # wxGlade: Frame. print "Event handler `on_menu_view_description' not implemented!" event.Skip() def on_menu_tools_execute(self, event): # wxGlade: Frame. print "Event handler `on_menu_tools_execute' not implemented!" event.Skip() def on_menu_tools_show_log(self, event): # wxGlade: Frame. print "Event handler `on_menu_tools_show_log' not implemented!" event.Skip() def on_menu_tools_python_shell(self, event): # wxGlade: Frame. print "Event handler `on_menu_tools_python_shell' not implemented!" event.Skip() def on_menu_help_about(self, event): # wxGlade: Frame. print "Event handler `on_menu_help_about' not implemented!" event.Skip() def on_menu_help_translate(self, event): # wxGlade: Frame. print "Event handler `on_menu_help_translate' not implemented" event.Skip() def on_menu_help_plugin(self, event): # wxGlade: Frame. print "Event handler `on_menu_help_plugin' not implemented" event.Skip() def on_menu_view_expand_all(self, event): # wxGlade: Frame. print "Event handler `on_menu_view_expand_all' not implemented" event.Skip() def on_menu_view_collapse_all(self, event): # wxGlade: Frame. print "Event handler `on_menu_view_collapse_all' not implemented" event.Skip() def on_menu_help_website(self, event): # wxGlade: Frame. print "Event handler `on_menu_help_website' not implemented" event.Skip() def on_menu_help_documentation(self, event): # wxGlade: Frame. print "Event handler `on_menu_help_documentation' not implemented" event.Skip() def on_menu_help_forum(self, event): # wxGlade: Frame. print "Event handler `on_menu_help_forum' not implemented" event.Skip() def on_menu_help_bug(self, event): # wxGlade: Frame. print "Event handler `on_menu_help_bug' not implemented" event.Skip() def on_menu_tools_image_inspector(self, event): # wxGlade: Frame. print "Event handler `on_menu_tools_image_inspector' not implemented" event.Skip() def on_menu_file_export_actionlist_to_clipboard(self, event): # wxGlade: Frame. print "Event handler `on_menu_file_export_actionlist_to_clipboard' not implemented" event.Skip() def on_menu_file_export_recent_to_clipboard(self, event): # wxGlade: Frame. print "Event handler `on_menu_file_export_recent_to_clipboard' not implemented" event.Skip() def on_menu_file_export_inspector_to_clipboard(self, event): # wxGlade: Frame. print "Event handler `on_menu_file_export_inspector_to_clipboard' not implemented" event.Skip() def on_menu_tools_browse_user_library(self, event): # wxGlade: Frame. print "Event handler `on_menu_tools_browse_user_library' not implemented" event.Skip() def on_menu_tools_browse_system_library(self, event): # wxGlade: Frame. print "Event handler `on_menu_tools_browse_system_library' not implemented" event.Skip() def on_menu_tools_browse_library_user(self, event): # wxGlade: Frame. print "Event handler `on_menu_tools_browse_library_user' not implemented" event.Skip() def on_menu_tools_browse_library_phatch(self, event): # wxGlade: Frame. print "Event handler `on_menu_tools_browse_library_phatch' not implemented" event.Skip() def on_menu_tools_show_report(self, event): # wxGlade: Frame. print "Event handler `on_menu_tools_show_report' not implemented" event.Skip() def on_menu_tools_update_fonts(self, event): # wxGlade: Frame. print "Event handler `on_menu_tools_update_fonts' not implemented" event.Skip() def on_menu_tools_safe(self, event): # wxGlade: Frame. print "Event handler `on_menu_tools_safe' not implemented" event.Skip() def on_menu_file_open_library(self, event): # wxGlade: Frame. print "Event handler `on_menu_file_open_library' not implemented" event.Skip() def on_menu_collapse_automatic(self, event): # wxGlade: Frame. print "Event handler `on_menu_collapse_automatic' not implemented" event.Skip() def on_menu_view_collapse_automatic(self, event): # wxGlade: Frame. print "Event handler `on_menu_view_collapse_automatic' not implemented" event.Skip() # end of class Frame class App(wx.App): def OnInit(self): wx.InitAllImageHandlers() frame = Frame(None, -1, "") self.SetTopWindow(frame) frame.Show() return 1 # end of class App if __name__ == "__main__": import gettext gettext.install("app") # replace with the appropriate catalog name app = App(0) app.MainLoop() phatch-0.2.7/phatch/pyWx/wxGlade/frame.wxg0000644000000000000000000004231111346363116020364 0ustar rootroot00000000000000 1 1 wx.ID_NEW menu_file_new Start a new action list on_menu_file_new wx.ID_OPEN menu_file_open Opens an actions list on_menu_file_open wx.ID_PREVIEW_GOTO menu_file_open_library Opens a ready-made actionlist from the library on_menu_file_open_library wx.ID_SAVE menu_file_save Saves an action list on_menu_file_save wx.ID_SAVEAS menu_file_save_as Saves an action list as on_menu_file_save_as --- --- menu_file_export_actionlist_to_clipboard Paste this command in a launcher on_menu_file_export_actionlist_to_clipboard menu_file_export_recent_to_clipboard Paste this command in a launcher on_menu_file_export_recent_to_clipboard menu_file_export_inspector_to_clipboard Paste this command in a launcher on_menu_file_export_inspector_to_clipboard wx.ID_EXIT menu_file_quit Quit the application. on_menu_file_quit wx.ID_ADD menu_edit_add Add an action on_menu_edit_add wx.ID_REMOVE menu_edit_remove Remove the selected action. on_menu_edit_remove --- --- wx.ID_APPLY menu_edit_enable Enable action on_menu_edit_enable wx.ID_CANCEL menu_edit_disable Disable action on_menu_edit_disable --- --- wx.ID_UP menu_edit_up Move the selected action up on_menu_edit_up wx.ID_DOWN menu_edit_down Move the selected action down on_menu_edit_down wx.ID_HELP_PROCEDURES menu_view_droplet View as a droplet to drag and drop files 1 on_menu_view_droplet wx.ID_PREVIEW menu_view_description Tools to handle the current action list 1 on_menu_view_description --- --- wx.ID_INDENT menu_view_expand_all Show all the parameters of the actions. on_menu_view_expand_all wx.ID_JUSTIFY_FILL menu_view_collapse_all Show only the labels of the actions. on_menu_view_collapse_all wx.ID_NOTOALL menu_view_collapse_automatic Expanding one action collapses the others. 1 on_menu_view_collapse_automatic wx.ID_OK menu_tools_execute Execute the action list on_menu_tools_execute wx.ID_YESTOALL menu_tools_safe Allow Geek action and unsafe expressions 1 on_menu_tools_safe --- --- wx.ID_FIND menu_tools_image_inspector Look up exif and iptc tags on_menu_tools_image_inspector menu_tools_browse_library_user Browse action lists, masks, highlights and fonts on_menu_tools_browse_library_user menu_tools_browse_library_phatch Browse action lists, masks, highlights and fonts on_menu_tools_browse_library_phatch --- --- wx.ID_PROPERTIES menu_tools_show_report Show report of processed images on_menu_tools_show_report wx.ID_ZOOM_IN menu_tools_show_log Show log file on_menu_tools_show_log --- --- menu_tools_update_fonts Scan for new fonts on your system on_menu_tools_update_fonts wx.ID_HOME menu_help_website Go to the Phatch homepage. on_menu_help_website wx.ID_HELP menu_help_documentation Go to the Phatch documentation. on_menu_help_documentation wx.ID_SELECTALL menu_help_forum Go to the Phatch forum on_menu_help_forum --- --- wx.ID_ITALIC menu_help_translate Translate Phatch in your native language. on_menu_help_translate wx.ID_NO menu_help_bug Report a bug on launchpad. on_menu_help_bug wx.ID_INDEX menu_help_plugin Learn to develop Phatch with Python and PIL. on_menu_help_plugin --- --- wx.ID_ABOUT menu_help_about Displays information about this application. on_menu_help_about wxVERTICAL wxEXPAND 0 wxSYS_COLOUR_INFOTEXT wxSYS_COLOUR_INFOBK 300, 40 wxEXPAND 0 wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 0 #FFFFFF phatch-0.2.7/phatch/templates/0000755000000000000000000000000011346363116016176 5ustar rootroot00000000000000phatch-0.2.7/phatch/templates/action.py0000644000000000000000000000671211346363116020033 0ustar rootroot00000000000000# -*- coding: UTF-8 -*- # Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follow PEP8 # Always import this (other imports in method Action.init): from core import models from lib.reverse_translation import _t # Declare constants here (remove this line, for demonstration only) CHOICES = [_t('Description'), _t('Image')] # Use any PIL function you need def init(cls=None): global Image import Image def foo(image, dpi, horizontal): # process image with pil # (...) image2 = Image.new('RGB', (10, 10)) return image class Action(models.Action): label = _t('Label') author = 'Author' email = 'info@email.com' init = init version = '0.1' tags = [_t('tag')] __doc__ = _t('Description') def interface(self, fields): fields[_t('Boolean')] = self.BooleanField(True) fields[_t('String')] = self.CharField('hello world') fields[_t('Choice')] = self.ChoiceField(CHOICES[0], CHOICES) fields[_t('Color')] = self.ColorField('#FFFFFF') fields[_t('Resolution')] = self.DpiField('') fields[_t('File')] = self.FileField('/home/images/logo.jpg') fields[_t('File Name')] = self.FileNameField('') fields[_t('In')] = self.FolderField('') # folder fields[_t('Float')] = self.FloatField(3.14) fields[_t('As')] = self.ImageTypeField('') # png, jpg fields[_t('As')] = self.ImageReadTypeField('') # png, jpg fields[_t('As')] = self.ImageWriteTypeField('') # png, jpg fields[_t('Mode')] = self.ImageModeField('') # png, jpg fields[_t('Resample')] = self.ImageResampleField(_t('bicubic')) fields[_t('Integer')] = self.IntegerField(-4) fields[_t('Integer+')] = self.PositiveIntegerField(0) fields[_t('Integer+0')] = self.PositiveNoneZeroIntegerField(0) fields[_t('Horizontal')] = self.PixelField('5%') # accepts %, cm, inch fields[_t('Slider')] = self.SliderField(60, 1, 100) def apply(self, photo, setting, cache): # get info (always get this) info = photo.info # in case you use PixelField you can get width, height & dpi ... # ... from photo (use new_*) width, height = info['size'] dpi = info['dpi'] # ... or from user input (see actions/image_size.py) dpi = self.get_field('Resolution', info) horizontal = self.get_field_size('Horizontal Offset', info, width, dpi) # collect parameters parameters = { 'dpi': dpi, 'horizontal': horizontal, } # return manipulated photo photo.apply_pil(foo, **parameters) return photo # icon: 48x48pixels icon = 'ART_TIP' phatch-0.2.7/phatch/windows/0000755000000000000000000000000011346363116015672 5ustar rootroot00000000000000phatch-0.2.7/phatch/windows/__init__.py0000644000000000000000000000126211346363116020004 0ustar rootroot00000000000000# Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follows PEP8 phatch-0.2.7/phatch/windows/droplet.py0000644000000000000000000001667311346363116017732 0ustar rootroot00000000000000# Phatch - Photo Batch Processor # Copyright (C) 2007-2008 www.stani.be # # 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 http://www.gnu.org/licenses/ # # Follows PEP8 import os import wx from core import ct, config from lib import system from lib.windows.register import register_extensions, deregister_extensions from lib.formField import IMAGE_READ_EXTENSIONS WX_ENCODING = wx.GetDefaultPyEncoding() ICON = os.path.join(config.PATHS['PHATCH_IMAGE_PATH'], 'phatch.ico') EXTENSIONS_INSTALL_SUCCESFUL =\ _("These extensions have been succesfully installed:\n\n") EXTENSIONS_INSTALL_UNSUCCESFUL = \ _("Phatch did not succeed to install the requested feature.") EXTENSIONS_UNINSTALL =\ _("Phatch tried to uninstall itself from the Windows Explorer.") RECENT = ct.LABEL_PHATCH_RECENT + '...' INSPECTOR = ct.INFO['name'] + ' ' + ct.LABEL_PHATCH_INSPECTOR + '...' _IMAGE_READ_EXTENSIONS = ['.' + ext for ext in IMAGE_READ_EXTENSIONS] #warning win32 def win32_missing(self): "imports shortcut" global shortcut try: import lib.windows.shortcut as shortcut return False except ImportError: self.show_info( _('You need to install the Python Win32 Extensions for this feature.')) return True #---droplets def create_droplet(name, arguments, folder, description=None): if description is None: description = name shortcut.create( save_as=os.path.join(folder, name + '.lnk'), path=ct.COMMAND_PATH, arguments=arguments, description=description, icon_path=ICON, ) #droplet def create_phatch_droplet(actionlist, folder): """""" name = os.path.splitext(os.path.basename(actionlist))[0] create_droplet( name=name, arguments=ct.COMMAND_ARGUMENTS['DROP'] % actionlist, folder=folder, description=ct.LABEL_PHATCH_ACTIONLIST % \ system.filename_to_title(name)) def create_phatch_recent_droplet(folder, icon=ICON): """""" create_droplet( name=ct.LABEL_PHATCH_RECENT, arguments=ct.COMMAND_ARGUMENTS['RECENT'], folder=folder, ) def create_phatch_inspector_droplet(folder, icon=ICON): """""" create_droplet( name=ct.LABEL_PHATCH_INSPECTOR, arguments=ct.COMMAND_ARGUMENTS['INSPECTOR'], folder=folder, description=ct.INFO['name'] + ' ' + ct.LABEL_PHATCH_INSPECTOR, ) #wx dependent def on_menu_file_export_droplet_actionlist(self, event): if self.is_save_not_ok(): return if win32_missing(self): return self.menu_file_export_droplet(create_phatch_droplet, self.filename) def on_menu_file_export_droplet_recent(self, event): if win32_missing(self): return self.menu_file_export_droplet(create_phatch_recent_droplet) def on_menu_file_export_droplet_inspector(self, event): if win32_missing(self): return self.menu_file_export_droplet(create_phatch_inspector_droplet) #---windows explorer #register def register_phatch(label, arguments, extensions, folder): return ', '.join([x.replace('.', '') for x in register_extensions( label=label, action=arguments, extensions=extensions, folder=folder, )]) def create_phatch_explorer_action(actionlist): """""" return register_phatch( label=ct.LABEL_PHATCH_ACTIONLIST % \ system.filename_to_title(actionlist), arguments=ct.COMMAND_ARGUMENTS['DROP'] % actionlist, extensions=_IMAGE_READ_EXTENSIONS, folder=True, ) def create_phatch_recent_explorer_action(): """""" return register_phatch( label=RECENT, arguments=ct.COMMAND_ARGUMENTS['RECENT'], extensions=_IMAGE_READ_EXTENSIONS, folder=True, ) def create_phatch_inspect_explorer_action(): """""" return register_phatch( label=INSPECTOR, arguments=ct.COMMAND_ARGUMENTS['INSPECTOR'], extensions=_IMAGE_READ_EXTENSIONS, folder=False, ) def remove_phatch_explorer_actions(actionlist): for label in [RECENT, INSPECTOR, ct.LABEL_PHATCH_ACTIONLIST % system.filename_to_title(actionlist)]: deregister_extensions(label, _IMAGE_READ_EXTENSIONS, folder=True) #wx dependent def menu_file_export_explorer(self, method, *arg, **keyw): result = method(*arg, **keyw) if result: self.show_info(EXTENSIONS_INSTALL_SUCCESFUL + result) else: self.show_error(EXTENSIONS_INSTALL_UNSUCCESFUL) def on_menu_file_export_explorer_actionlist(self, event): if self.is_save_not_ok(): return menu_file_export_explorer(self, create_phatch_explorer_action, \ self.filename) def on_menu_file_export_explorer_recent(self, event): menu_file_export_explorer(self, create_phatch_recent_explorer_action) def on_menu_file_export_explorer_inspector(self, event): menu_file_export_explorer(self, create_phatch_inspect_explorer_action) def on_menu_file_export_explorer_remove(self, event): remove_phatch_explorer_actions(self.filename) self.show_info(EXTENSIONS_UNINSTALL) #---install menus def install_menu_item(self, menu, name, label, tooltip="", style=wx.ITEM_NORMAL): method = globals()['on_' + name] return self.install_menu_item(menu, name, label, method, tooltip, style) def install(self): #install menu items in reverse order #explorer install_menu_item(self, self.menu_file_export, name='menu_file_export_explorer_remove', label=ct.INTEGRATE_PHATCH_REMOVE % "Windows Explore&r",) install_menu_item(self, self.menu_file_export, name='menu_file_export_explorer_inspector', label=ct.INTEGRATE_PHATCH_INSPECTOR % "Windows Explore&r",) install_menu_item(self, self.menu_file_export, name='menu_file_export_explorer_recent', label=ct.INTEGRATE_PHATCH_RECENT % "Windows &Explorer",) self.menu_item.append((self.menu_file_export, [install_menu_item(self, self.menu_file_export, name='menu_file_export_explorer_actionlist', label=ct.INTEGRATE_PHATCH_ACTIONLIST % "&Windows Explorer",)])) self.menu_file_export.InsertSeparator(4) #droplet install_menu_item(self, self.menu_file_export, name='menu_file_export_droplet_inspector', label=ct.DROPLET_PHATCH_INSPECTOR,) install_menu_item(self, self.menu_file_export, name='menu_file_export_droplet_recent', label=ct.DROPLET_PHATCH_RECENT,) self.menu_item.append((self.menu_file_export, [install_menu_item(self, self.menu_file_export, name='menu_file_export_droplet_actionlist', label=ct.DROPLET_PHATCH_ACTIONLIST,)])) self.menu_file_export.InsertSeparator(3) if __name__ == '__main__': create_phatch_droplet( actionlist='/home/stani/sync/python/phatch/action \ lists/tutorials/thumb round 3d reflect.phatch', folder='/home/stani/sync/Desktop',) phatch-0.2.7/setup.py0000644000000000000000000001542611346363116014453 0ustar rootroot00000000000000#!/usr/bin/env python # Phatch - Photo Batch Processor # Copyright (C) 2007-2009 www.stani.be # # 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 http://www.gnu.org/licenses/ # Follows PEP8 import sys WINDOWS = sys.platform.startswith('win') MAC = sys.platform.startswith('darwin') LINUX = sys.platform.startswith('linux') NO_WINDOWS = ''' Sorry, the use of setup.py is not supported yet for Windows. Please read the instructions at http://photobatch.wikidot.com/install#toc8 ''' if WINDOWS: sys.exit(NO_WINDOWS) import glob import os import subprocess from distutils.core import setup sys.path.insert(0, 'phatch') from data import info #centralised info generates README and AUTHORS #Temporarily execute the following statement if these files needs update. #info.write_readme_credits() write = sys.stdout.write error = sys.stderr.write CLASSIFIERS = [ 'Development Status :: 4 - Beta', 'Environment :: Console', 'Environment :: MacOS X', 'Environment :: Win32 (MS Windows)', 'Environment :: X11 Applications', 'Environment :: X11 Applications :: Gnome', 'Environment :: X11 Applications :: GTK', 'Intended Audience :: Developers', 'Intended Audience :: End Users/Desktop', 'License :: OSI Approved :: GNU General Public License (GPL)', 'Natural Language :: Dutch', 'Natural Language :: English', 'Operating System :: MacOS :: MacOS X', 'Operating System :: Microsoft :: Windows', 'Operating System :: OS Independent', 'Operating System :: POSIX', 'Operating System :: POSIX :: Linux', 'Programming Language :: Python', 'Topic :: Artistic Software', 'Topic :: Multimedia :: Graphics', 'Topic :: Multimedia :: Graphics :: Graphics Conversion'] INSTALL = len(sys.argv) > 1 and sys.argv[1] == 'install' CLEAN = len(sys.argv) > 1 and sys.argv[1] == 'clean' if not WINDOWS: DATA_PATH = 'share/phatch/data' DOC_PATH = 'share/phatch/docs' LOCALE_PATH = 'share/' def doc(path=''): return os.path.join(DOC_PATH, path) def data(path=''): return os.path.join(DATA_PATH, path) PACKAGES = ['phatch', 'phatch.actions', 'phatch.console', 'phatch.core', 'phatch.data', 'phatch.lib', 'phatch.lib.pyWx', 'phatch.other', 'phatch.other.pil_1_1_6', 'phatch.other.pyWx', 'phatch.pyWx', 'phatch.pyWx.wxGlade', 'phatch.templates'] #Create an array with all the locale filenames i18n_files = [] for filepath in glob.glob("locale/*/LC_MESSAGES/phatch.mo"): targetpath = os.path.dirname(os.path.join(LOCALE_PATH, filepath)) i18n_files.append((targetpath, [filepath])) #docs doc_files = [ (doc(), glob.glob('docs/build/html/*.html')), (doc('_static'), glob.glob('docs/build/html/_static/*')), (doc('_sources'), glob.glob('docs/build/html/sources/*.txt')), ] #data data_files = [ (data(), ["data/geek.txt"]), # eg geek.txt (data(), ["data/user.png"]), (data('actionlists'), glob.glob("data/actionlists/*.phatch")), (data('actionlists'), glob.glob("data/actionlists/*.png")), (data('blender'), glob.glob("data/blender/*.blend") +\ glob.glob("data/blender/*.py")), (data('blender/preview/object'), glob.glob("data/blender/preview/object/*.jpg")), (data('fonts'), glob.glob("data/fonts/*.ttf")), (data('highlights'), glob.glob("data/highlights/*.png")), (data('masks'), glob.glob("data/masks/*.jpg") +\ glob.glob("data/masks/*.png")), (data('perspective'), glob.glob("data/perspective/*.png")), ] # TODO: make /data/blender construction dynamic!!! see os.walk blender_previews = ('book', 'box', 'can', 'cd', 'lcd', 'sphere') for blender_preview in blender_previews: data_files.append((data("blender/preview/rotation/%s" % blender_preview), glob.glob("data/blender/preview/rotation/%s/*.jpg" % blender_preview))) #images, fonts & icons if WINDOWS: #todo: fixme PACKAGES += ['phatch.windows', 'phatch.lib.windows'] os_files = [] elif LINUX: # check for mac? PACKAGES += ['phatch.linux', 'phatch.lib.linux'] os_files = [ #desktop ('share/applications', glob.glob("linux/*.desktop")), #images ('share/phatch/images', glob.glob("images/*.png") +\ glob.glob("images/phatch*.svg") +\ glob.glob("images/icons/scalable/*.svg")), #for notification ('share/phatch/images/icons/48x48', glob.glob("images/icons/48x48/*.png")), #man page ('share/man/man1', ['linux/phatch.1']), #mime type ('share/mime/packages', ['linux/phatch.xml']), ] #icons icon_sizes = ['%dx%d' % (x, x) for x in (16, 24, 32, 48, 64, 96, 128, 192, 256)] icons = [('share/icons/hicolor/%s/apps' % x, glob.glob('images/icons/%s/*.png' % x)) for x in icon_sizes] + \ [('share/icons/hicolor/scalable/apps', glob.glob('images/icons/scalable/*.svg')), ('share/pixmaps', glob.glob('images/icons/256x256/*.png'))] os_files.extend(icons) # setup options setup_options = { 'packages': PACKAGES, 'scripts': ['bin/phatch'], 'data_files': i18n_files + doc_files + data_files + os_files, 'classifiers': CLASSIFIERS} setup_options.update(info.SETUP) if __name__ == '__main__': #run the setup dist = setup(**setup_options) # disabled: distro maintainers do the right thing # non distro users, who don't use packages at all, # might need to enable it if 0 and LINUX: # Update the mime types ROOT = os.geteuid() == 0 if ROOT and dist != None: #update the mimetypes database -> associate.phatch try: subprocess.call(["update-mime-database", os.path.join(sys.prefix, "share/mime/")]) write('Updating the mime types database.\n') except: error('Failed to update the mime types database.\n') #update the .desktop file database -> application menu try: subprocess.call(["update-desktop-database"]) write('Updating the .desktop file database.\n') except: error('Failed to update the .desktop file database.\n') write("\nInstallation finished! " "You can now run Phatch by typing 'phatch' \n" "or through your applications menu.\n") phatch-0.2.7/tests/0000755000000000000000000000000011346363116014073 5ustar rootroot00000000000000phatch-0.2.7/tests/acceptance_test.py0000755000000000000000000002213311346363116017576 0ustar rootroot00000000000000#!/usr/bin/python # Phatch - Photo Batch Processor # Copyright (C) 2009 Nadia Alramli, Stani (www.stani.be) # # 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 http://www.gnu.org/licenses/ # # Phatch recommends SPE (http://pythonide.stani.be) for editing python files. # # Follows PEP8 import logging import time import optparse import sys import os from test_suite import config, utils, phatchtools report = logging.getLogger('report') def clean(): """Clean generated files from previous run""" utils.remove_path(options.output) utils.remove_path(config.OUT_ACTIONLISTS_PATH) utils.remove_path(config.OUT_DIFF) utils.create_path(options.output) utils.create_path(config.OUT_ACTIONLISTS_PATH) def set_logger(log_path): """Setup logging""" logging.basicConfig( level=logging.INFO, format='%(message)s', ) #console = logging.StreamHandler() #console.setLevel(logging.INFO) #logging.getLogger('').addHandler(console) error_handler = logging.FileHandler(options.log, mode='w') error_handler.setLevel(logging.ERROR) logging.getLogger('').addHandler(error_handler) report_handler = logging.FileHandler(options.report, mode='w') report.addHandler(report_handler) if __name__ == '__main__': # Option parser parser = optparse.OptionParser() tags = sorted(phatchtools.get_action_tags().keys() + ['library', 'save']) parser.add_option( '-t', '--tag', default=None, choices=tags, help='Generate tests by tag', ) actions = sorted(phatchtools.get_actions().keys()) parser.add_option( '-s', '--select', action="append", choices=actions, default=None, help='Generate selected actions tests', ) parser.add_option( '-a', '--all', action='store_true', default=False, help='Generate all tests', ) parser.add_option( '-e', '--extended', action='store_true', default=False, help='Generate extended tests', ) parser.add_option( '-c', '--compare', default=None, help='Comparison folder', ) parser.add_option( '-i', '--input', default=config.DEFAULT_INPUT, help='Image input folder [default: %default]', ) parser.add_option( '-o', '--output', default=config.DEFAULT_OUTPUT, help='Image output folder [default: %default]', ) parser.add_option( '-l', '--log', default=config.DEFAULT_LOG, help='Log file path [default: %default]', ) parser.add_option( '-r', '--report', default=config.DEFAULT_REPORT, help='Report file path [default: %default]', ) parser.add_option( '--no-execute', action='store_true', default=False, help='Generate actionlists only, don\'t execute', ) parser.add_option( '--no-clean', action='store_true', default=False, help='Don\'t remove previously generated files', ) parser.add_option( '--clean', action='store_true', default=False, help='Remove previously generated files', ) parser.add_option( '--options', action='store', default='', help='Command line options to pass to phatch', ) options, args = parser.parse_args() if not options.no_execute and not os.path.exists(options.input): msg = 'The input directory "%s" is empty or doesn\'t exist' logging.error( msg % options.input, ) sys.exit(1) choices_function = None start_time = time.time() if not options.no_clean: clean() if options.clean: # Only clean do nothing else sys.exit(0) set_logger(options.log) save_action = phatchtools.get_action('save') convert_mode_action = phatchtools.get_action('convert_mode') actions_by_tag = phatchtools.get_action_tags() all_actions = [ action for name, action in phatchtools.get_actions().iteritems() if name not in config.DISABLE_ACTIONS] processing_actions = [ action for name, action in phatchtools.get_actions().iteritems() if name not in config.DISABLE_ACTIONS and name not in actions_by_tag['metadata']] metadata_actions = actions_by_tag['metadata'].values() if options.tag == 'library': phatchtools.generate_library_actionlists(options.output) elif options.tag == 'save': actionlists = [[convert_mode_action, save_action]] phatchtools.generate_actionlists( options.output, actionlists, include_file_action=True, ) elif options.tag: if options.extended and options.tag != 'metadata': actionlists = phatchtools.minimal_actionlists( actions_by_tag[options.tag].values(), save_action, [convert_mode_action], ) choices_function = phatchtools.extended_choices else: actionlists = phatchtools.minimal_actionlists( actions_by_tag[options.tag].values(), save_action, ) phatchtools.generate_actionlists( options.output, actionlists, choices_function=choices_function, ) if options.select: if options.extended: actionlists = phatchtools.minimal_actionlists( [phatchtools.get_action(name) for name in options.select], save_action, [convert_mode_action], ) choices_function = phatchtools.extended_choices else: actionlists = phatchtools.minimal_actionlists( [phatchtools.get_action(name) for name in options.select], save_action, ) phatchtools.generate_actionlists( options.output, actionlists, choices_function=choices_function, ) if options.all: if options.extended: actionlists = phatchtools.minimal_actionlists( processing_actions, save_action, [convert_mode_action], ) actionlists.extend( phatchtools.minimal_actionlists(metadata_actions, save_action), ) choices_function = phatchtools.extended_choices else: actionlists = phatchtools.minimal_actionlists( all_actions, save_action, ) phatchtools.generate_actionlists( options.output, actionlists, choices_function=choices_function, ) if not options.extended: actionlists = [[convert_mode_action, save_action]] phatchtools.generate_actionlists( options.output, actionlists, include_file_action=True, ) phatchtools.generate_library_actionlists(options.output) if not options.no_execute: errors = phatchtools.execute_actionlists( options.input, options=options.options, ) if errors: report.info('Number of errors: %s' % len(errors)) report.info('Errors:\n\t%s' % '\n\t'.join(errors)) else: logging.info('No errors') if options.compare: utils.create_path(config.OUT_DIFF) new = [] mismatch = [] output_files = [ image for image in os.listdir(options.output)] for image in output_files: path1 = os.path.join(options.compare, image) if os.path.exists(path1): path2 = os.path.join(options.output, image) if not utils.compare(path1, path2): result = utils.analyze(path1, path2) report.info( 'Mismatch: %s\nreason: %s' % (image, result['reason'])) if 'diff' in result: result['diff'].save( os.path.join(config.OUT_DIFF, image) + '.png') mismatch.append(image) else: new.append(image) if new: report.info('Number of new images: %s' % len(new)) report.info('New:\n\t%s' % '\n\t'.join(new)) if mismatch: report.info('Number of mismatches: %s' % len(mismatch)) report.info('Mismatches:\n\t%s' % '\n\t'.join(mismatch)) if not (new or mismatch): logging.info('No difference') logging.info('The report was saved to: %s' % options.report) logging.info('Execution took %.2f seconds' % (time.time() - start_time)) phatch-0.2.7/tests/doc_test.py0000755000000000000000000000335311346363116016260 0ustar rootroot00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright (C) 2007-2008 www.stani.be # 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 http://www.gnu.org/licenses/ # # Follows PEP8 import os import subprocess import sys COMMAND = [ 'nosetests', '--with-doctest', '--noexe', # DO NOT look for tests in python modules that are executable. '-P', # --no-path-adjustment '-q', # --quiet ] MODULES = ['actions', 'console', 'core', 'data', 'lib', 'pyWx'] def main(COMMAND, MODULES): if sys.platform.startswith('win'): # windows args = COMMAND + ['-e', 'linux'] + MODULES elif sys.platform.startswith('darwin'): # mac args = COMMAND + ['-e', 'linux|windows'] + MODULES else: # linux args = COMMAND + ['-e', 'windows'] + MODULES + ['linux'] os.chdir('../phatch') # The commented lines might be necessary for windows?! #os.rename('__init__.py', '__init__.py.test') #if os.path.exists('__init__.py'): # os.remove('__init__.py') result = subprocess.call(args) #os.rename('__init__.py.test', '__init__.py') os.chdir('../tests') return result if __name__ == '__main__': sys.exit(main(COMMAND, MODULES)) phatch-0.2.7/tests/input/0000755000000000000000000000000011346363116015232 5ustar rootroot00000000000000phatch-0.2.7/tests/input/bee.png0000644000000000000000000004305611346363116016503 0ustar rootroot00000000000000PNG  IHDR>asRGBbKGD pHYs B(xtIME22 IDATx}wxٖlzO $Bҥ)`A;QQرc6DҫTA PHHo-}fn"wJvvwoX?~L<)q+027tzy5i,M`wvd,-o8~8x8 T5@dຉ@jR(?`p?"c *H}ǀs 0 :HK QMv6ʪo?\?ږX01Z`JvڵbK+Je#ewgKk/fLW<,YnhR8Z)e w! L3Wa_%fpe@9 4xM 4r`ho Ge.N{+EC n 0-زFJ9/LZ{.Qhn:@]&Dc o;Bd&`0`hwURf?[O43͢b~7`b$ @j+W}i!5|*@wO:j{MEo׀ G7osoH;}ӦϻjZD3/dO+|?O^J{S/ߣ ~]ܡڮ*L_H/Y(rׁ_^Dzw(p+#6HEL~@I9p:;p2bnpE`Wa^#v)ߣ/vowk{ܾ5 }4nV؁Gy;NY7/fpQ)l2-母lAHp6ʚR5ßXF(,QHYv@HvicO2@Gq*  8 .(V $!LƀT|v-0(]Y-6yB1.+%W/~|;+,`hfnO;e#|_)6f\*Yū-|gbl܆Kk= |PJ@о5sغ< l\V:]@Z_=xM_f;2O/5TC@34C Dt]< d4>A9tmPd0'(6~ TgWp~]/7A˷%-sVwMl{`1Acc=yd kp{&ū@[Pʦ NsjJW@5`J#f[@cRE?q2jW_N}3F-\n[xPI1Nm?ds & UkaXgn̠okhͦn=>ήڎ"c٠7}F" @4N}N~~v6I {@nל6-Y2ѯ?J4B}z Wб,'Vx;SJDvf}k!2s0M_wn<`c=N6sR/ M⹹y1-6:.NOv.]2 GuQnj_bt05_yeHpF%8,o06k3z:a6Uc^\F|Lz/@|QHW޸\~ʫw>B[vw\***op_9}Vhke^ r!"$ f/"HHrfb_zz[-RLO6=lbZde_?_l~t04ݼ[>*&J۷bbb5z\w׻Z ^5 bJ1rX%z)4hf̘Y!frI'8+-^8Ỹ\LDu^]$@J|X6x-m"U %:41Ey瀓N[+2G`4='Aw`UVQLLPeDZd[\TD8#G.ZnYt}kR%LKB&~I*)\GyFӢ:Ё e. 1ۥ\ZGYd@qQ C!Wl<[+tH9%'뚍+Aw/0kg\O4L>l($$NW,`5O>s6`-a^N1'GRE~7jI䝔.PVr?Sm3&C&:;4z~ -&Rqo:tyCWUx@c-X !4eo`樝\sreF,7ԔHᐬ#{  `Nc4myQ%Y^Q+CU}{>mW"̠N\ ~ Nj@o P7b&@>$5%@~E 0`JPvN%oߝ2s]:W\+V~. aA1Q! y5Ԇ!L~1F~q$6 $_ 29ztH<7S$.'KAfvI}RChBċeNxޙw Dacj0p fudTZ^E!VG2}^x JIOTVۮ)8D;?_-FNlsM2TW^u0مP>rH$'GRm2kZed,Ǡ<n/}L pW ,~G!R|l :fݖ igqH ,DL,c45`YԱCpH6`J2= K{. A@RXTCҙExDoZǹ8-'^yc#?v,Vz tB|xpp izW8C;Y)^Sjn&xй߁VlUҟ3X:Br0DG#&:ArPi eu8qeu(, ,Z Y+>9,x Ō3811Q$%%qZZjjjW^iP k;!   A(~3waif@Y6 O;Z/{0J ״K\0$ypHL7S%H5Rr/4Rx;K+`sb bˎqx~ P:4I2%kK/(Ip_љJ_=OmhEL}aX<^s5o`ܹ$_EaڴiZkZqì|D\U EPrT{%| ׈^Z}¹y]h41yD.U5!Ã8Pڹqb\8Ȝ,Ev \^Eh<4T̾6J!T*{ tvqWag/CGqEEL Ӻ:i?]!LFyP6  aA0B"'fÏ{݇[G݃Nq̮?.Y״>O1I!ȟ,‘Ys^sS}bQTɣo*aܠVYz !YQM<ޜMt^2(Ȩ(0 [͒Ծm$@y`lzwpz?~>``4)8JJJhҤIkVٱdb!b  bP._8C Zд1]?_RxගY5VvpxLBg YjhF%%t=ӥS?*|&swMFNmRr A3.x6椄PZÕq )A B*!B" ABEՖ}1-CUUl5mժUܻwoڳk 11XQ~A5|)ڴ3lu.eW%B{W-DV={s5ǦlwVdvn3H/@X~n;^>t-^g8^"MD$a!pc~#)  Qߕ?a=~ ,nvvj-[`Xlc°ɢ8Ǎޤ7Dx_{yma~a“-0s}a ̙ < ^6wN)uVgΔCa&_)mT7W_^E"#;!(=/u)X59IXXׅYܩ~rdHvXF@zZR[߅K_ƌ30j(Ѯ];9»v²eѣGN V1N ww b --OD$; 8|4V dnƂmS =QM[NaԈܾ]nx]qq unk+7WO&h0.w?/?iB>4vס2 8Qg k~R+! PHz0`R6~ vc?$B~l׀O*, HkWKBq ¥ԩSq%`޼yAXX;NO pˬx/]֭|1tsU1ol%VqWWۅEzqբ8+s8jUUvV>N܆]Ƀ{hSNW ҚCj_+ IDAT`咩7 D0`&0U)cIC$ Xt=kgORj a藞 M!=`B0ߨq3|o;@Dϋ/o6fsRRϟ#R0vd0hT>ٳ~;) g~A%`Msr+[;\>.儔Dh55hJWܨ 4\GP\B| d1bǚ3acV,*`qS0*@H\ `;u _ ^D1X2A,/]=־לW߳|Ϝ5ǃ5o6b,ҥ}7V-әXn=K u!V=we="2s}jz \8@94#,$la=Y@%x:| Cʕ+W^xQlj|/+;QV^J:M3{ 8U̓ey[Rj\<"A^&lG Anwf{`ٍ=I.l sǯW&|Q(ڹ̂[ic&言Cxj4mHOOF=9s} ~ڀ7<]FkVCґ%Wz<7qV.+SfT !]:pN1g+K٢Ω QPX.ĚϛGxƫj #_7^r e Vgb䱲=! C0D +n٭B\8:Z)G#S' X Ƞ0 &5v\3}9Z;x2eJ=QXX;Z] >/H.DRKn~{>\׃zts.yKf*6fCؽ 5IL aTB`;'}8./;vI ?e^믟%- 5\C}s#Gȍ7cC)+tBfVB5USj5I!c\b+>iCsNykrRN4s F_Ubs*>S,{líҶ??t<]Z @TU;0废899?ٳg^(8!!rt"ƏEnY5 Be"#?H#.QѳUwchөqPUd 5TV}DQ:Sap/ě_0R)Ő:yL* A6iIV0iWǀ _I KK#*9|P˯dxx<… uX͟?/_N׿h԰2)!Pn~]zJ).K y~]KZ4 NWV9|Mlbamd״ZD[LȪZtߐ9L`rq IPm=$.uRz`'[Gh#&"ErرN/7vcT]㤜* 5sdD罊Jr24H8tJ#쒤*X,Fͳ+*>lhT9Lm)**>\jTdTH)+ A @p ;lg@| pnJa $bz|E>{ Lf͢"n:ݴXn%^Fn&"]b_V ruv5$T"*8ثF!Y4lp2Qi0 [Ċ֥o 6Kesm\#AM᪓ x"*Pgjh´/?xI>Y/022g̘A|&yF/B_pT{mVaQnFP/];`aRXSQ%-Z2[ C vr9po<7Zp+5psʠKm/q,;r%=3I_sB|S>y!1o߾]I&ٳ_>yd:q"ƏD#F [M^w|x #Fzߩ[iv8Rp]bU;Z$EmP߼-k av;#l<ŚFPP}T7p9n=1 pG2X#ziP Ly8|[VN^bӼ pPڵ+"u"i 'NdK/.W-֖LvA\Ebp :2:o5mږ)t§o_,"43HZU3Q\b V /4$p)HVTX# Lg^ށ/;&#ׇׇDt#/h JŠDnq/4L4TUo;yb90-/~ziFX!$U3iveuT[LOT^s/+̕iɡ=n'i쎴u7*>F^A,cCJd C2'!N*YKqbl/ٞ 3C0NiƱ1VcؘPI2sn^(qUV9i )OeU4e^J AE5jlu.A.o7|$ԙb`eP>hPՊksFB Lo Jse.Tsm]9jg&50sx;ƂthޗiAqCI7$OƴSux[fBτ6%Bǟ8]jg0\T/3ͩ ѿ˛7vD_]z224sb ymrK؉RGju2i蚛VOz>PH0 p94ebsgjxl`r%T#2*Ё}Tr*c 3SY^TZCNRFlGoMMreaG7P^A.F!oʤW-ѯ? yX?V@.4xC0_4;>|D|u~yH\)АuR*0n-᧠eLt01٧?2iZ,FrxYS@G]-Cbf\ ߏ^OKa̾4rhdb v[c7G"P1n0֩]!PR;i$AeҊ `Nї}#~b .Ker: ,>FZQkqvɬg]O*9Y# O&i @p42/:l.FeKʪaJ=ִ>ѱ x { >_sOO kE16 P]SjʮC'R]kWc}6\M$p>?@IDNg2a+u|%cq̞R,Zrgrr<\93Bf+ל[J{NjFD G9x].ZSeض3W_i) 9B@3"ͻ*iJ#_#}i)aT6-!ѫ5g|jbպ,˯:#Iڼ0o}RXlږiKLG^WalDi^X;Xg39-HKr[W56KBY@b,T I:Ŧy3M|D0fOa9%V5ؘ`|b'5Ì be]_`5 E>ȐSJSejm\.)^C$I~;=L kO7߽`ƈ[Kji>r{tiւ=e6ptry^wB jJDGEfCbe !+'(ul7a޽Plۙ"s"Ņ+](R7G]cbM~)|]⵿ҪQu:SYg*ERB(L@h6zGWN,[AM&9FZJҧÑϘm>wؙ*Mlbqx)Jl,Q-WLj NS-V (ᇴ K1ܕ& .=*٢eie{.w#4 z'j riQ[">Εd2 :2z w>W=uhi]]jvqn-HbpL]Y% m :"[͉Cqӆ n!QV[24Č8+C8!.DX\ܭs,N3`Y lsU, rw0l`<،a `2?K0(fԡ9} <^I : l ~Ԁ%i/ DtT0ŠUbOtT0jmN8Tl6 [R8f_2:\~mlUjD B?PeKS`QiETQcĠt3Ns\y3p,xUH@D1r<:@T@<5"TP`T}CV9.¬@8*kapWPVL$ JYHۦI+7?/L$כ`YL5Ms3CͮAl ~أ#| x & vV@|"+/ݠFVTCp.ʘ-fNm(ׯ+ |DX յ2 "h|BY<>'r5܌h&wmTV̘%?5~7QFdΐ˷4oЙBޣ5n cZhB;)$Г@vݼ@W9PPvP_{?>nWDGc@xd?𚝨Eai^rPyUs,u6`A!bzUEyzel@moT?кs&q*k(t57beh!h (v '!RJ9Q{Ny?3(|hG!% ϦBp?IDAT3kv6CdOgFϩQgՄTC$658^i & 9b}~]Aa!uy`:a7UpZ(mAZC~w_퇴ٛ|@g[xn&i3*Ht^OP+eAnO n@(O/djk/J}xC'ޝ>d1>]րc?nhxcEPM y~` -=ۀ &(E R fKmϑgztT ;7ڰhn6F =Y/Y0Y ZO6s62jﶯTk7gџU@eU4&}lw(Zs`d@LZ %}6?K[ h z~?Zݶ@[lz=et5PɲA+`Չc?{)O[܌qrNs 5uWJiX/W[ʳ?nrqJ2[nO3@Io- lI'%pV7= @??H{IyZD@9yOsmFjl_7@=$M|`G $fwL  q'Wc濃U5ONc_'_$2__)ZʘIENDB`phatch-0.2.7/tests/input/exĩf ïptç.jpg0000755000000000000000000054271711346363116021256 0ustar rootroot00000000000000%ExifII* z(2i@ CanonCanon PowerShot G72010:03:03 11:03:08>F0220Nbv ~   |0  0100 ( 0 8 ( 2010:03:03 11:03:082010:03:03 11:03:08  a.@H"PO   H&0nE" # $N( % '( \@p@@a&D {@IMG:PowerShot G7 JPEGFirmware Version 1.00s/A sU J8|8~~]s@Gp -m4) qbD` )))))))))%%%))) ##Åʵ0D II*R980100 S@@  (4    !#"! $)4,$'1'-=-167:::"*?D>8B3796    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOx!  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzw!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?^zkalob2?ʵK"< [0{FMsv)nysq&F#iCқtsa3$eVeEmA,v#/: oTY2&I; eQ )aHjdqj(z*+]b FYbƹ 7sX.YT|~G׊fdFϣL (l}# XnzȷZjdǯ󦈒iӯJ3&Tf [*vUV v=utA}OO2Ď&`Y˫lwVwsU5Ԃhwѽ}k\oϺ_ރ֨$ ()UqNO=h햏uwlQ X2{i[fd*9koXou-RG^|: c-0_1>MԏVLz-ΉėT!_VO1\WĒIn/<\D2@8g6ʲ<VM݋ Ξk;hE dA*ìqױɚCp <(Auv#h=5-ؐpLRnqPgמ*fx[T6tIg=\'Uo,t`eSE-[އ5աzr)d6#,=Iȭju {wSen/Ҫ^R3[JXaItFZrLw4 YB0*Ԧ4N+ܣ;<ݩHӧ& [Ԝޝ5SlhYC#r}Np?@?%i<׽mz:$Iq#^1ד޶b;xq ++=W8zRN-n(b NS{x^nV6o8MkK2]s0'\FK(_M&V(rX$Q/v\ⲻmֱMw5otOl0glJukAaHĄޠerum`Er~7nekDS~l,5T.HdQB-'j㸬,Y2Z鱲#a${@p_'_15=+j9\@Ѳia\`I9bQun@#_zdS(n[؃Ȝ nUx;S(8ٰ^`kioˀ!PqCqqqCWR ,݆eC7ϠTuAf V60K s Qm~{}q]>_=jM hnN2m#f)&U1 (1OLV+beOeN?AsREE)˕F:DIi$z;XZ̐B xطX93*?:d: G̹pCl}hiqZ23);րJB96n^-1Cwp}*nS*C:8]váҫ]xg(s\~?ҶSݖn?e38 yStҧ(XQ}8R}*i*20dLu R\ƥ$yŏnm+n!{d}%*V8DL rs;iq#; ?λ)S卼yϙմ])BR7zrir98;*m%ք{]>mM"3rrL2SHdl1ML@);)#hU"#h*Ql{n^kDid=yWS) |Wi:R 0u!M4RaNFP2Oj\ \FLѰ,І2 թ8=qV޳r!T#1R^xR;GA& >N$h.|EXH E(]WHc֠H!jHFVoU1b9%[b, 3T-I XGz_8D7)=xiZlO?zl1EK(&~F*}JeGp@)*:N{$ UѰ۽9bSQu-Ur 9<{bޡQ0u'[řMlKבl㐸S *x.8I.öCGj Bpx! sڎԀ߹8T]Qc#-Ye4;'E2&ٺP1Y,BUQMo 'r o=Xdw[h~ѽyo)VP3 3{Dy 䟠" 2) ̸,2`2j8cLB}h֚ޝ) jEA%ctN1PD+/z4'tasֹq:{ S9?O#5Ƃ7(v̭U9e N~brN:Ұ85nv &(UIe!) ! rj#L[j`LR%% ;@irPf\a#Y.3VӃz".q\GLes 渴r9=Zw- &75bgdz{ՙ 9M"Kdr;@=hd*,j<)كNNQ҃LB#Qn>ZpgbƝPצk'Tvs84*qUX\aQrj="IUx?.^#`⤚F˰hj4wMu4ancD~b rG<שXxC#v`)Xu>66`wހkWȹtvZj.5墱pW91>EI⹑Ds3^ ?:JL=ly]wOB퉲F$'}[simgg66nU{t\.č`4ͽ8գ g:lMnLgHDdv7!td>m0N*sj*ENnq;E($8mp/ #ڱuHD0~5Ț/ ẌL~+xk[WXMSβB󕅚1&H9QIUpryjŵѼ+kugi-H4žGluExayG蚽^+gAY&)C!p]Fxܳ]V<]* .%H$hoH8X㻃,#J=JZ[xvݻX%'@r+ NEpΗftqL^K-R4HhyQ})&F\B(SsVmihwi#y4q¤'8Gc@ZE~P88a]̷J3PgC2mc囐٢E퍝,̈20\2ƼX5]]SB]Bggu3$l;q/j/i*nhdž?\P$3bCLypX7>?ÿ 4iK=ܪe88qԒ@8]E.rzyoѓ>8o1IMIDɦ|'$:1r^<ִ{dF.ssB=5.cg7ۗQl6bVydļT8?tǭ:=55ºPOӮ"1[EPjszJqDTQʅո?w?tJ>_ 4s_-m !*bKG,|рpkNϚ67gw&e [Xazv?tKsjw"g-PpʽS{:I/sw,f5IvAo.A*iP OZYmY^y'ý{<$6'Ipи#A{Wlnh~se-OaYF:h(zDzt tXtY3I?ʃQ+MB{6̷<ܤE##zZ]zP|߉WV[MAN]4nNޛ FVBe2DU8$};t+J'9E7r$u=t+|g-Է!n_W;K«Ɲ4'ı.(?wsXh8\$u4Vr ~csWխ"l|;Fqc?G5?oAmtk^a*^]i{?LiB$p|u8+G)6=G~xZHsZ]n?6qsv{1^gGWsݸ?gS1mR?D4Rjc,0gk6Z`73*Hz}kž+x./VZ'[xǤJۜc$p}iΣfj\0(ؔ'_ޯ';󬫈K?} 8H qP9JPuf<:ljh.Io &tI4>cK)tc{WiN{T#d|<1q^Ϥos1‰yn vvՁneb10?IM- VAm::F 1Mr΅ivD.z}R?W3T߹ˬɧ$1C 6 mԴS( ~קQj7vy$r\<`0!595n]Xɭ6VúL]cB MÍN OP.Llؕw r9b;6;/%-81*IN=}/uѬP${u R~g8+ج-ى!q"d=ٮ2jږEhmoum"p>xUЮAR q\,_TtG3}0U cfM:f ͻFj?~ȗ~"!|SFKbӮu&U.T ⬹$ZޅO癓IVMS~kyL~DY$LյuS'{6xnZ&0,H*TА~ް.&H[ $ɏ,-=>Wع$O9@Hf btު$!Scw'4]0G )>RxWYW3,]~SSֶi'ror(o17/Oq9?y3J0[FOtF-;~grg@- ?n[?? ڷ*u-KSԴgvT3 @>-lJ6޼ Uߘ+, ]A^vS(xe b 䜸ñ^': wfVfxtQ';[=?2;@1+r1w)9涄LyW>,{cN'h {=q[?uO?z^}h8'VQ,Jp X݇h\ rWpdѮhdt!ʍ{"Yv4|rT|Ϟ3~>昱 ovBRāFIix'f<? T婫[3 IT\stwCxo|!)a%]m曩)ӮcAêCy+v#П)|3,Q OΨp?kQ,L^v(]i; 򭁸6t·3i3ռ!mEO*&6x R@ z-2QzDϹμ1ڌE d[;8P̭1u5|=q[As6^Kr9a 55mm=Oq~ SX Ax#1ojm {X!651!~ RNQGgOh)z߆<3zQfe}\7:ݼ[E9dI[h ژ 9~=ZjApzn[jX:;HY,~w}k)AҒjb7|y;>Zϊ~KمUXnHQC(epK`I=@?}`j:tYu{TwH> oQ˔A⾱Ҡk>~b&|ͮi D(@=x^ri?lt9npAū#8ǴmMfҦ6d {ʿ|R ucg  Eotyg-<*󴲂HBʞS׆N^%{(Gsϊ>|F|#7u;;D[xnw.HV5c:t^'tEյx>?/1#KB?e#ĭZN;Fnw;t),yBT.:}+/b di[{n ))tn2"ŸĜ8:QJԢfFL>^8x#޳RQv-++3oߴzv,~$P O w5TQ/xs‘v?zuޫjOC+V\ CWLhޛцXt+gfH6V`H rqW:ʓ `ugdgZт';GN T]R驍*i`Ө'3 8lc..NvdV2ye7ǹ㪎sKH 2Lקzݪy5a4|su?1swsi*-̮a <ƒd@I&|q=00wPUIfv/(zuz0ޯ`i#$r;~LeFUI!+o!I;קTRClK ̸ q?ng 71ڎrca9p*%rXD_-_;Fd=y3 2_E hH=~7y_)g̤O|#>t {]V7gWb&K2T(J(<~v讗(F[ZL9(xϡ+f8 jiR H' <zHQq_.Z(Hlvln]Lq t4Kwtxe,2 \+TT)ބa +Q`=EH,yS$d1^ջḸ F`?ꝃFs,يږi$v;K d6gwھ!Z5_qu<6_BJn=r˸[vԎ?O&ij6jɃVOTUͮ>Yq`dnJd֪;R{x\,M62r E!m%\CTQH=y>,*[kH.VդP6  9B$, 1黆^mʶ&.nbokHO%$ǧs\ΣOx؋ѱ`oz^NK tRk?%O蚾%Ԗ(R(-dU@aU]׮|KnZ\ȷ(<2|xzn>UQm+%wK礄;nU]ß  \I3xRzz?/H"4 |=X~|fMLj*[9[8fAڳMzw/WVg4@ of2G n aU:{?Qff׬#sclA5W!|>z{|a04o5ms^6V]3ªL# 󥻝^kfy\1ЄeVQ{Bu?~'< q8#.DyRe 6WW웢ŧ ӚI maAz9֊v3US}ѻC töby=md0|Ņ@ s?'SXu 3dI?W;{8M5mOUⴱdyfҩ0nG:[))]Yz,r5ķ-ѣ@*&o,ʏ^:nh2hz >q3' c: VmxRܚy !6T^D./I AѬGAj'u+w/DPV4\Ϋ&[JI7&S\gD ~ZҔy)VBFޭ[|rGF|neBʊ6dTɞ orJ-YS{= d^_&T^sOJ˝ܴܢt{[YE%˙$G3f-kŞԧM3ȧp7Z2J:t9# j7 _^aR<_ i? u ;!6RdxKڠ 1G:r3H#;3c YgUAQ#[}BN/Ovr#%圷LOnK(293Єd{̀~=)ߙhCkfJwT+ ,@G9O^dT'8N]5K%]!l:`gzՅt19'i:Ln=|n*mv1$Y=n̑0{ăӕ?DnTepB>gZ&mi'f"qdpQ#L!6<-T1ߚQ@7l48\.nKF ʠt oYt)d̡ 4wj g I+n[S)FB7}Ŧ1ѵwy2wN@^H-5kH*JIq@'@uB*NjQ^khbB9'/fKê<3Zys[ܩbGOһTnϠ7_m( V9c왗vˣ1bU9WxrtR6g˽'!t+h|'ɞgkeZK`fI{bi A g q;%o튳E˽JiwmsaDnCq;FMq?'/߉'ּ!xc÷ڳj{-Zv* ɘO;REOwOƍ;x~.cn[C,i6!ʼnI>4i]l׶3IG+[F8w`fhal_BEW[u){-awc|#%wt,ҿ_4 kP) V{g !%Xkw +Bx]SG3E@36vM\ʔdrTkV~7|,j/~gsɴF%[P=Qc<^4Ԑ)|5v)AKsЎvݬ]:$|`e:X~i^>ԵmFuH`\4Z}r2\A_[o:ZbvGg F]qLi*n܊U5cٟ4_f}|t4ȾhD$wn*+>1ޝ?QVbCkrZiQ88瞙Uk^rUWM|I|^M Ki? V4K[ 4%2}̪}GRǩ5,??ॺ2xZ"6vwֵb"~߷{^ѥB+$c8GsO_oEQ[HZ;UmfXrFִ[;] 剧k]O%qni IA`!d8\O[wRFMjiӂU{>3Z,OEOo捯îBkh]H;n1nz}v DHYW:kɷ5~p_tO]gû]l'.oa1ӊ}È6ݹ#dYOSmsὃķ 1fSXX>Jލ2??U6tgoƽş1;#lr9k󺴹%}/{_x#A\!OFqh̀s>6կJ;;3 os-':Յvkvπv&B+MܧUve]?qYmp4mڡ{}EOr7Bz7Fp3^}R~F-@O3:@ܱn#8檝+Ir-N|iڡsc[U_MCׁ󎆳ɫkYY$,]% ]OPO^ƿSODK$Ιjd`&LuU/${V3P\-QX y#n+תe+s_7|]d|ZA[Ş q;-N\)cj>'+n,h6e}׀Aǧ~ i,$dGݟW9ecGB&6_.+#HS|{NHP1 03N,[b2Zv6(8}{_wAg-㢙0 c?ux'ɮOX[n `G}ѝJ?!]iss~Ҝ&d*7YI]獣XA2, 0vOAWqlL]wL*ۙZMnӞ֛L9 ۇrN$W%:wrl ק0GC%R bH9$юA^Z8?8߂KNANGIf1LsJNݻh[&MvgLX!1%mRH\3eʿ;s׌'`mu#EMI @Mqihw$eDѶf&(1P0 YpzMq+ZK+\Zjv<$gyD>\|2GӢ~!yUCH"ӼUm#͟`Np@zc#)+X4.Q 7vԠJ!`&Uٌ?H჊s\GHtE'65FMX({6s_z#Z6oVȭ񏛏R3UkMZg%'k5O)>Em?{ r~^e5lLƯ40aẃ{3p݂9Fpt똒']HRevRpfápy"e[yWdoW9WWlcZ;hIo"cp)|6/r_ csx_~ .X{|?21$ I9' uIAػQ]N]3SzʼnᗴA"\Ak$v.[!Ner1'zQJ졅 ;;,l}#@,